1.2.3 应用层
应用层是物联网的“社会分工”与行业需求的结合,是物联网与行业专业技术的深度融合。应用层利用云计算、模糊识别等智能计算技术,解决对海量数据的智能处理问题,以达到使信息最终为人所用的目的。
应用层主要包括服务支撑层和业务体系结构层。物联网的核心功能是对信息资源进行采集、开发和利用,因此这部分内容十分重要。
服务支撑层的主要功能是根据底层采集的数据,形成与业务需求相适应并实时更新的动态数据资源库。该部分采用元数据注册、发现元数据、信息资源目录、互操作元模型、分类编码、并行计算、数据挖掘、数据收割、智能搜索等各项技术,亟须重点研制物联网数据模型、元数据、本体、服务等标准,发展物联网数据体系结构、信息资源规划、信息资源库设计和维护等技术;各个业务场景可以在此基础上,根据业务需求的特点开展相应的数据资源管理。业务体系结构层的主要功能是根据物联网业务需求,采用建模、企业体系结构、SOA等设计方法,开展物联网业务体系结构、应用体系结构、IT体系结构、数据体系结构、技术参考模型、业务操作视图等的设计。物联网涉及面广,包含多种业务需求、运营模式、应用系统技术体制、信息需求、产品形态均不同的应用系统,因此必须建立统一、系统的业务体系结构,才能够满足物联网全面实时感知、多目标业务、异构技术体制融合等需求。对业务类型进行细分,可以得到包括绿色农业、工业监控、公共安全、城市管理、远程医疗、智能家居、智能交通和环境监测等不同的业务服务,根据业务需求的不同,对业务、服务、数据资源、共性支撑、网络和感知层的各项技术进行裁剪,形成不同的解决方案,这些方案可以承担一部分人机交互功能。
应用层能够为各类业务提供统一的信息资源支撑,通过建立并实时更新可重复使用的信息资源库和应用服务资源库,各类业务服务可以根据用户的需求进行组合,使物联网的应用系统对于业务的适应能力明显提高。该层能够提高对应用系统资源的重用度,为快速构建新的物联网应用奠定基础,满足物联网环境中复杂多变的网络资源应用需求和服务。该部分内容涉及数据资源、体系结构、业务流程等领域,是物联网能否发挥作用的关键,可采用的通用信息技术标准不多,因此尚需研制大量的标准。
目前流行的物联网应用层协议包括CoAP、MQTT、XMPP和AMQP 4种协议。
(1)CoAP
CoAP(The Constrained Application Protocol)是由Internet工程任务组(IETF)开发的一种简化的HTTP协议。CoAP使用REST体系结构,客户机和服务器可以使用熟悉的GET、PUT、POST和DELETE命令来传输信息。CoAP依靠6LoWPAN来实现与IPv6的兼容,这不仅有助于物联网节点的互联网接入,还提高了其与HTTP的互操作性。但是,IPv6转成6Lo WPAN格式进行的分片和重组影响了网络的性能。考虑到物联网设备固有的资源限制,CoAP显著地减少了消息首部长度,首部长度减少到4个字节。与HTTP不同,CoAP在其传输层采用UDP协议。与TCP相比,UDP具有多种优势:首先,它的简单性使其适用于资源受限的物联网设备;其次,UDP可以实现物联网应用所需要的多播功能;此外,它还为采用DTLS协议的应用程序提供了严格的安全保障。然而,用UDP代替TCP有许多缺点,比如,UDP没有提供一个强大的拥塞控制机制。另外,CoAP内置的超时重传(RTO)机制在许多情况下都被证明是无效的。IETF正在开发高级拥塞控制(CoCo A)来解决这个问题。
(2)MQTT-SN
MQTT-SN(Message Queuing Telemetry Transport for Sensor Networks)是一种开放式通信技术,专门为资源受限的设备而设计,以有限的吞吐量在网络中运行。与CoAP中使用的REST体系结构不同,MQTT-SN采用发布/订阅(publish/subscribe)机制,这是因为它具有良好的可扩展性。MQTT-SN针对物联网设备需求进行了多次修改。例如,与MQTT不同,该协议不一定需要TCP作为下层协议,它与UDP兼容;它减少了消息开销,并提供了一种新的休眠模式机制,专门针对利用电池供电的物联网设备。MQTT-SN由3个组件组成:客户机、转发器和网关。客户机使用MQTT-SN直接或通过一个(或多个)转发器将消息发送到网关。网关将MQTT-SN格式分组转换为MQTT格式,然后转发给MQTT服务器,反之亦然。网关既可以作为独立设备实现功能,也可以集成到服务器中。在MQTT-SN规范中定义了两种类型的网关:透明网关和聚合网关。透明网关在每个客户机和服务器之间创建一对一的连接。由于一些MQTT服务器在同时连接的数量上有限制,所以MQTT-SN建议在这种情况下将网关聚合,将客户机之间的所有通信封装到网关和MQTT服务器之间的单个连接中,从而减少并发连接的数量。与透明网关相比,聚合网关要复杂得多。MQTT-SN还包括一个新的休眠模式,客户机可以通过DISCONNECT消息通知网关其休眠周期。在此期间,所有发送到休眠客户机的数据都在网关中进行缓冲。
(3)XMPP
XMPP(Extensible Messaging and Presence Protocol)最初被用于促进结构化数据的实时交换,可以封装在XML小包中。XMPP使用分布式客户机/服务器体系结构,客户机必须在与其他客户机交换任何信息之前建立与服务器的连接。总体而言,XMPP体系结构包括3种类型的设备:客户机、服务器和网关。客户机无法直接交换信息,所有通信必须通过XMPP服务器,这些服务器相互连接,以允许与不同服务器关联的客户机之间进行消息交换;这些服务器使用协议网关来提供与其他即时消息(IM)协议的互操作性。虽然IM是XMPP服务的主要应用程序,但上述特性加上其显著的扩展性和灵活性,使该协议适用于对延迟敏感的物联网。XMPP利用TCP在服务器之间或服务器和客户机之间提供无损通信。尽管TCP具有可靠性和拥塞控制机制,但增加了设备的开销。
(4)AMQP
AMQP(Advanced Message Queuing Protocol)是为可靠的点对点通信而开发的开放标准,它最初是为银行的服务设计的,主要用于处理大量的排队交易。对可靠性的注重和对可扩展性的支持使AMQP适合于任务关键型的物联网应用程序。总的来说,协议由一个传输层(在两个节点之间提供连接)和一个消息层组成,这有助于节点之间的消息交换。节点可以承担AMQP体系结构中定义的3个角色之一:生产者、消费者和队列。生产者和消费者是分别生成和接收消息的应用层进程,而队列提供存储和转发服务。一对生产者和消费者通过全双工信道进行连接,每个连接都包含一组单向通道,它们提供可靠的跨存储连接通信。帧头被定义为具有一个8位长度的固定字段和一个为将来使用而保留的扩展字段。AMQP基于TCP协议,并且通过使用TLS和SASL来保证通信的安全。