律師這種職業能藉由爭辯對法條的不同見解而拿到報酬,可惜工程師沒這麼幸運──如果有技術規格寫得不清不楚,產品設計師最後還可能會因為做出了錯誤的詮釋而付出慘痛代價。

以上是筆者最近與產業組織Thread Group主席Grant Erickson交談後領悟到的心得;Thread在不久前宣佈,已經有分別來自於ARM、NXP Semiconductors、OpenThread與Silicon Labs的四種軟體堆疊(software stack)成功完成了互通性測試,成為首批能取得Thread Certified Components認證的軟體堆疊。

Thread Group將這個進展視為重要里程碑,因為該組織不只是透過針對單一參考實作(reference implementations)進行量測,來驗證Thread 1.1規格的一致性(該組織已經在去年11月開始進行驗證,當時他們公佈了Thread 1.1規格的第一版硬體參考測試平台與測試框架)。

這一次,Thread Group表示,該組織藉由以包含上述四種軟體堆疊的混合網路(blended network)來測試每個裝置的規格一致性,又向前邁進一步;Thread Group設定的遠大目標是實現「真正的連網裝置生態系統多供應商選項」。

我請Erickson解釋為何這是一件大事,他說明了如果沒有該組織最新採取的這些額外驗證步驟,可能會發生什麼樣的錯誤;他舉例指出,開發符合Thread Group新規格的物聯網(IoT)裝置設計工程師,就算確定他從頭到尾都有遵循規格,並不能保證他的產品具備互通性。

物聯網裝置突然無法與其他裝置通訊、甚至無法連結網路的情況並不罕見;同樣的,該裝置可能經歷週期性故障或是丟失封包…這種情況為什麼會發生?

Erickson解釋,技術規格可能是經過擔保(under-written)的,這並不一定很罕見,特別是當技術規格很新的時候,產業組織會隨著時間定期更新規格;在推出最新的Thread 1.1規格時,立即的問題就是如何確保使用者在Thread認證產品上有更一致的使用體驗。

但採用相同晶片與軟體堆疊的Thread產品或許可以互通,但它們可能無法順利與其他採用不同晶片與軟體堆疊的Thread認證產品共同運作。

Erickson表示,互通性問題通常導因於對規格的的不同詮釋:「舉例來說,規格可能載明要遵循三個步驟,但是並沒有標示這三個步驟的優先順序;」或許實際產品的變異性在處理上並不是什麼大問題,例如Wi-Fi產品:「你只要將產品重新開機,就能讓它連線。」

但相較之下,物聯網裝置必須在一個電池壽命是關鍵所在的、條件不那麼寬鬆的環境中運作:「你無法承擔重新啟動裝置所消耗的電池電量;」Erickson將物聯網形容為一種要求更為嚴格的任務關鍵網路,並認為Thread Group正在提供更強固的Thread 1.1認證計畫。

在被問到這次還有其他哪些新訊息(與去年秋天發佈第一版1.1規格相較)時,Erickson指出了由Nest Labs/Google所開發之OpenThread的加入:「我們的第一個計畫只涵蓋三種軟體堆疊,」分別來自ARM、NXP與Silicon Labs:「但現在有四種。」

那Thread 1.1與Thread 1.0 (符合此規格的產品並未商用)在基本上到底有什麼不同?Erickson表示:「1.1規格有兩項主要功能,包括應用導向的頻道靈活性(application-directed channel agility),以及密鑰變換(key change)。」

Erickson 解釋,Thread 1.1產品具備偵測空域中干擾的能力,並會自動Thread網路內的淨空頻道,不須使用者干預;類似的,當出現安全性威脅,Thread的應用層能重設一個主密鑰(master key),並驅動網路中新一輪的旋轉密鑰(rotating keys),使得黑名單(black list)的取得或是移除某個連網裝置更容易。」

而Ericson總結指出,Thread Group及其成員:「在提供互通性──不只是規格一致性──方面已經超越了大多數的技術聯盟,這將為終端使用者帶來更佳的產品體驗;」現在Thread Group的成員已經可以提交零組件以及產品進行測試與Thread認證,而他也承諾,幾星期之後Thread 1.1規格就會向大眾公開。

編譯:Judith Cheng

(參考原文: Thread Adds Stitch to Spec,by Junko Yoshida)