律師這種職業能藉由爭辯對法條的不同見解而拿到報酬,可惜工程師沒這么幸運──如果有技術規格寫得不清不楚,產品設計師最后還可能會因為做出了錯誤的詮釋而付出慘痛代價。
以上是筆者最近與產業組織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規格就會向大眾公開。