最近研究了一些物联网平台技术资料,以做选型参考。脑子里积累大量信息,便想写出来做一些普及。作为科普文章,力争通俗易懂,不确保概念严谨性。我会给考据癖者提供相关英文链接,以便深入研究。

      —— 冯立超 HiwebFrank


3. 连 接

    从物理连接的角度,有大量的底层技术,包括网线、WiFi、GPRS、3G / 4G / 4.5G、Bluetooth、Zigbee、RFID 以及正吵的 NB-IoT、LiTRA 等等,此不赘述。


    对于协议,一般都主流支持 MQTT, HTTP, WebSockets。具体细节可点击:

          MQTT ; 

          亚马逊协议清单

          微软协议网关

          IBM MQTT详述


    由于物联网各种设备所处环境复杂,如室内、井下、隧道、甚至月球火星,很难保证链接的可靠性和持续性。这对应用系统的开发和使用带来挑战,于是,大家想出来一个办法(我估计是亚马逊先想出来的,因为我喜欢亚马逊方案的完备性和文档的完整易读性(什么逻辑)),就是在云平台上把设备最新的状态数据缓存起来,设备和缓存交互,而应用程序只和这个缓存的数据打交道。这样,应用程序就可以假设设备是永远在线的了。


    这个缓存数据,其实就是一个JSON文件,而亚马逊给其取了一个好听的名字:设备影子 Device Shadow

    微软嘛,好吧,你叫 Shadow,我就另想一个名字吧,嗯——,设备孪生 Device twins ,(亏你想的出来)

    IBM西装革履职业一些,老老实实,就叫 设备最后事件缓存 Device last event cache 。


    这是一个很好的思路,这个影子孪生缓存设备,可以使应用系统更加高效、设置比设备更多的元数据及属性、预置设备状态、处理长时间工作流业务等等。


    对于物联网设备连接到云端,需要解决很多问题,包括设备到云/云到设备的通信,如消息传送、文件传输、请求响应方法;消息路由;设备元数据存储检索及设备状态信息同步;通信安全与访问控制;设备连接性监控及设备标识管理等等。各家都有自己的解决方案。

    微软比较清晰地提出一个专门的服务:IoT Hub,对海量物联网设备与云端解决放案之间提供可靠、安全的双向通信。


    微软给出的 IoT Hub 概念示意图如下,供参考:


wKiom1kNTv2CNFh7AALDjSYGyaU750.jpg


    下一讲,我们谈谈平台。