律师这种职业能藉由争辩对法条的不同见解而拿到报酬,可惜工程师没这么幸运──如果有技术规格写得不清不楚,产品设计师最后还可能会因为做出了错误的诠释而付出惨痛代价。

以上是笔者最近与产业组织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规格就会向大众公开。

20160719-ESMC-1