【.com原稿】物联网生态系统的四大领域分别对应不同的厂商,即设备制造、物联网平台、应用和业务。凭借沃森强大的人工智能,IBM进入了中国物联网领域。IBM沃森物联网平台的落地,将为中国物联网产业注入新鲜血液。IBMWatsonIoT平台与设备和应用程序之间的通信主要依赖于MQTT协议。MQTT(MessageQueuingTelemetryTransport)的历史可以追溯到1999年,由IBM的AndyStanford-Clark博士和Arcom的ArlenNipper博士发明。2014年,MQTT正式成为推荐的物联网传输协议标准。MQTT是一种发布和订阅消息传递传输协议,用于在传感器和移动设备之间高效交换实时数据。MQTT在TCP/IP上运行,虽然可以直接对TCP/IP进行编码,但有一个可选的库来处理MQTT协议的细节。提供了范围非常广泛的各种MQTT客户端库。版本支持WatsonIoTPlatform支持以下MQTT消息传递协议版本:WatsonIoTPlatform支持MQTT标准允许的任何版本。MQTT是数据独立的,因此无法发送图像、任何编码文本、加密数据以及几乎所有二进制格式的数据。应用程序、设备和网关客户端在WatsonIoTPlatform中,主要的对象类是设备和应用程序。网关是设备的子类。MQTT客户端向服务标识自己的对象类用于确定处于连接状态时客户端的功能。对象类还决定了客户端身份验证的机制。应用程序和设备也可以在不同的MQTT主题空间中使用。设备在设备绑定的主题空间中运行,而应用程序可以完全访问组织范围的主题空间。服务质量级别MQTT协议为客户端和服务器之间的消息传递提供三种服务质量:“至多一次”、“至少一次”和“恰好一次”。尽管可以使用任何服务质量级别发送事件和命令,但您必须仔细考虑哪种服务级别适合您的需要。服务质量级别2选项并不总是优于级别0。最多一次(QoS0)“最多一次”服务质量级别(QoS0)是最快的交付方法,有时也称为“即发即忘”。消息最多传递一次,也可能根本不传递。未确认通过网络的传递并且不存储消息。如果客户端断开连接或服务器出现故障,消息可能会丢失。MQTT协议不要求服务器将QoS级别0发布转发给客户端。如果客户端在服务器接收发布时断开连接,则发布可能会被丢弃,具体取决于服务器实现。提示:在以特定时间间隔发送实时数据时,使用服务质量级别0。丢失一条消息并不重要,因为不久之后将发送另一条包含更新数据的消息。在这种情况下,使用更高质量的服务会产生额外成本,而没有任何实际好处。至少一次(QoS1)对于服务质量级别1(QoS1),消息始终至少传送一次。如果在发件人收到确认之前消息传递失败,则消息可能会被传递多次。消息必须存储在发送方本地,直到发送方收到接收方已发布消息的确认。保存此消息以备再次发送时使用。Exactlyonce(QoS2)Exactlyonce服务质量级别(QoS2)是最安全和最慢的传输。消息始终只传递一次,并且必须存储在发送方本地,直到发送方收到接收方已发布消息的确认。保存此消息以备再次发送时使用。对于服务质量级别2,采用比级别1更复杂的握手和确认序列来确保消息不重复。提示:发送命令时,如果您需要确认指定的命令将只执行一次,并且只执行一次,请使用QualityofServiceLevel2。此示例说明了一种情况,其中级别2招致的额外开销比其他级别更有利。订阅缓冲区和清理会话将为来自设备或应用程序的每个订阅分配5000条消息的缓冲区。使用缓冲区,任何应用程序或设备都可能滞后于它正在处理的实时数据,并且每个对其进行的订阅可能积压多达5000条待处理消息。当缓冲区已满时,最旧的消息将在收到新消息时被丢弃。使用MQTTcleansession选项访问订阅缓冲区。当cleansession设置为false时,订阅者从缓冲区接收消息。当cleansession设置为true时,缓冲区会被重置。注意:无论使用何种服务设置,订阅缓冲区限制均适用。如果应用程序无法跟上它订阅的消息速率,则在级别1或2发送的消息可能不会传递到应用程序。消息负载限制WatsonIoTPlatform支持以MQTT标准允许的任何格式发送和接收消息。MQTT是数据独立的,因此无法发送图像、任何编码文本、加密数据以及几乎所有二进制格式的数据。但是,对于某些用例,存在一些限制。WatsonIoTPlatform上的消息负载也有大小限制。消息负载格式限制消息负载可以包含任何有效字符串,但是,JSON("json")、文本("text")和二进制("bin")格式比其他格式类型更常用。下表概述了不同格式类型的消息负载限制:***消息负载大小重要提示:WatsonIoTPlatform上的***负载大小为131072字节。负载超过限制的消息将被拒绝。正在连接的客户端也会断开连接,并且诊断日志中会显示一条消息,如以下示例设备消息所示:已关闭来自x.x.x.x的连接。该端点的消息大小太大。【原创投稿,伙伴站转载请注明原作者及出处为.com】
