一种面向移动智能设备的物联网中间件服务模型
0引言
2010年以来,由苹果、谷歌和三星等公司引领的移动智能设备呈现出爆发式的增长态势,使得传统面向桌面计算机的应用系统开发不可避免地向更方便快捷的移动智能设备领域倾斜。物联网和移动互联网融合的应用前景集中在移动智能设备与物联网感知节点通信带来的一系列更加智能、便利的控制场景,实现随时随地对感知设备的状态进行监测和远程控制[1]。“面向移动智能设备的物联网中间件服务模型”以安卓智能移动设备为监测和控制工具,考虑到不同行业需求,通过统一配置,提供具备标准接口、具有高兼容性和扩展性的软硬件集成模块,使移动应用开发者专注于业务本身,而无需关注复杂的物联网技术实现过程。该模型可以有效服务工业、农业、电力、交通、物流、安防、环保和消费等领域的细分市场。
1国内外研究现状和趋势
从功能角度抽取的物联网体系结构一般包含感知、传输、处理和执行等部件,分为“后端集中式”和“前端分布式”两大类型[2]。相对于由纯软件构成的“后端集中式”应用服务中间件,“前端分布式”嵌入式中间件具有应用部署成本低、部署方式灵活的特点,更接近数据产生的源头,有利于降低网络中数据通信量,改善物联网应用的网络状况。
许多有关物联网中间件的研究都是面向无线传感器网络(wireless sensor networ,WSN)的。根据WSN中间件的编程方式,可以分为基于虚拟机、基于移动代理、基于数据库、基于应用驱动、面向消息、基于元组空间等设计方法[3]。提出的多种设计方法分别针对不同的技术实现,目前暂不存在明确、统一的物联网中间件体系结构。
利用会话初始协议(session initiation protocol,SIP)[4]、STUN[5]协议、TURN[6]协议和ICE[7]协议等协议,来构建嵌入式中间件与移动智能设备之间数据传输通道。SIP协议由IETF于1999年提出,在传输层TCP或UDP之上传送;STUN协议和TURN协议以及综合了两者特点的ICE协议提供了穿越网络地址转换(network address translation,NAT)的可能。ZigBee 和WiFi是使用广泛的两种短距离无线通信协议标准。2000年12月,IEEE 802.15.4工作组成立,致力于定义一种廉价、固定、便携或移动设备使用的极低复杂度、成本和功耗的低速率双向无线连接技术,ZigBee是这种技术的商业化命名,它已经成为事实上的WSN工业标准。WiFi技术联盟成立于1999年,制定的标准对应于IEEE 802.11。WiFi规定了协议的物理层和媒体接入控制层,并依赖TCP/IP作为网络层。基于ZigBee等协议的WSN可以连接WiFi网络,实现互联网访问。
2中间件设计和实现
本文设计的物联网中间件服务模型向上与移动智能设备交互、向下与WSN接口,实现WSN协议和TCP/IP协议的格式转换、节点统一管理以及向移动设备提供服务等功能。这样的设计方案融合了应用层移动设备和底层传感设备的接入和管理需求,在智能主机即嵌入式网关处理WSN信息的汇聚、上传和移动端设备服务消息的下达。
2.1系统架构
物联网中间件服务模型系统架构可以划分为四个功能层:安卓资源层、数据传输层、设备服务层、传感网接口层。系统架构如图1所示。
图1 系统架构
传感网接口层主要负责建立不同类型的底层设备与中间件的适配通道,解析、构建和收发底层协议栈命令。设备服务层是中间件的核心模块,一方面建立可扩展的设备类型,统一封装和管理与底层协议的交互设备,实现异构设备的中间件映像,即设备抽象;另一方面从设备抽象服务资源,完成监听和派发服务请求的一系列处理过程。数据传输层主要用于动态建立智能主机与移动设备之间稳定的端到端连接链路,完成NAT穿透,克服公网IP地址随机变化的影响,双方可以多对多互联。安卓资源层是C和C++类库,将中间件提供的服务发现、服务映射、数据传输机制相关的资源开放给移动设备的Android NDK,完成统一的移动端编程API。
2.1.1基于MIPS架构和Linux的嵌入式智能主机
智能主机是嵌入式中间件的硬件基础和保障,在运行中间件的同时兼具无线AP、路由器等网络通信功能。综合考虑部署的灵活性、资源受限等因素,使用基于MIPS架构的WiFi智能芯片作为主处理器,操作系统为OpenWrt。主机硬件设计参考无线路由器的制作方案,同时集成WSN网关节点,如图2所示。
图2 智能主机硬件原理
2.1.2无线传感器网络的适配器
适配器对应传感网接口层,用于建立和底层WSN设备通信的接口。考虑到中间件兼容的WSN协议的可扩展性,适配器没有直接与传感网网关节点交互,而是通过Socket连接到源数据服务再间接连接到WSN。源数据服务与无线传感器网关节点通过串口连接,负责收发无线网络的二进制数据包。适配器解析源数据服务发送过来的二进制数据,转换成程序友好的类格式命令,并反向把程序友好的类格式命令转换成二进制数据。适配器可以细分为连接断开ZigBee网络、解析构建ZigBee基础命令、解析构建ZCL命令、收发ZigBee命令等模块。
2.1.3设备代理和服务抽象
设备服务层是中间件的核心层,基于应用控制软件架构,分为设备代理子层和服务抽象子层。设备代理子层管理当前所有已经加入到WSN中的设备,实现搜索设备、描述设备、配置设备、从设备中抽象服务、向服务抽象子层开放服务访问点等功能。服务抽象子层监听移动设备和设备代理子层的服务请求消息,解析消息,参照服务规则解释并派发消息。服务包括服务发现和服务映射,服务发现描述实时处理传感网设备加入和离开、网络资源动态申请及释放、感知数据封装成面向应用的多样服务的抽象行为;服务映射是将控制终端(移动设备)不同的请求映射成不同的服务,并实时响应灵活多变的请求订阅的抽象行为。
2.1.4主机和移动端数据通道
基于SIP协议的移动端设备连接智能主机建立P2P数传通道时序如图3所示。
图3移动端设备(A)与智能主机(B)建立
P2P数传通道时序示意图
Fig.3The sequencing of establishing P2P data transmission channel
for mobile device(A) and smart host(B)
数据传输层完成在智能主机和移动设备之间建立端到端的数据通道、维护通道、释放通道的任务,它需要解决NAT穿透和公网IP地址随机变化等问题。该层软件架构基于PJSIP,它是一个开源的SIP协议库,移植性良好,适合嵌入式开发。考虑到应用的扩展性、嵌入式主机资源的有限性、NAT穿透需要公网服务器支持等各方面因素,架设云端服务器,提供SIP Server、STUN/TURN、Web和数据存储服务。当NAT无法穿透(Symmetric NAT),即智能主机和移动设备之间P2P通道无法建立时,才通过云端服务器中转数据,从而加强数据传输的安全性。
2.1.5安卓资源库
安卓资源库支持运行安卓系统的移动设备的物联网应用开发。智能主机与移动设备之间的通信协议使用TLV和JSON等格式。在NDK中调用中间件的服务管理、设备管理、网络配置、端到端连接管理等API资源。
2.1.6系统工作过程
下面根据系统运行过程列出主要步骤。
① 智能主机首次启用,把身份证书发送到云端服务器验证有效性,生成设备登录用的ID号以及安全密钥。
② 移动设备扫描主机二维码或者局域网内自动发现获取主机ID等信息,建立与主机的关联。
③ 智能主机每次启动时,向SIP服务注册。
④ 移动设备安装的APP软件每次启动时,向SIP服务注册。
⑤ 移动设备经SIP服务中转,与智能主机建立会话。
⑥ 双方ICE协商,寻找并建立最优端到端数据传输通道。
⑦ 移动设备开始调用连接主机的服务,监控主机管辖区域。一台移动设备可以监控多台主机,反之一台主机可以连接多台移动设备,两者是多对多互联的。
2.2关键技术
物联网中间件服务模型的关键技术主要有以下三点。
2.2.1设备服务层的本体化
设备代理子层是中间件设备功能服务化的关键,位于中间件WSN适配器之上、服务抽象子层之下,间接与设备进行交互。需要关注设备的内部属性和系统功能,以建立可扩展的设备类型,统一封装和管理WSN设备,实现异构设备的中间件映像。映像的关键是基于本体论[8]思想的设备抽象,采用多元本体建模,包含通用本体、领域本体和服务本体。三种类型的本体分别对应三层含义:设备的公共属性;基于设备类型的设备静态信息和动态信息;设备对外提供的原子服务接口,该接口通过设备通信部分访问服务抽象子层。服务抽象子层的核心功能是处理与智能主机连接的移动设备产生的监控消息流。需要处理的两个环节是:当移动设备接入后,服务抽象子层监听服务请求和发回服务请求;依据请求的服务类型,将消息进行格式转换,查找设备-服务状态列表,然后传递至对应的下层设备服务访问点作进一步处理。底层设备的类型有两大类:传感器和执行机构,即监视设备和控制设备,与行业的关联度有限。因此,可以提供设备的扩展接口,以对象化的继承方式持续完善设备-服务机制,使中间件拥有行业共性。
2.2.2私网间设备通信
智能主机属于资源有限的嵌入式设备,与移动设备均有可能位于各自的私网内,从数据安全角度考虑,应该尽可能实现异构网络之间端到端的可靠通信,避免公网服务器中转数据。
TCP是面向连接的传输层协议,有复杂的握手和超时重传等确保数据传输可靠性的策略。但由于资源消耗大、传输效率低、NAT穿透性差,相比UDP,TCP不适用于资源有限的智能主机。然而UDP是无连接协议,无法保证数据的可靠传输,所以要求应用层协议必须提供适当的策略加以弥补。考虑到SIP在应用层提供了端到端的三次握手机制和指数退避的超时重传策略,可以有效弥补使用UDP带来的不可靠性,所以采用SIP/UDP方式建立智能主机与移动设备之间的数据传输通道。当通道建立以后,两端数据直接基于自定义的TLV报文经UDP完成传输。此外,ISP提供的通信两端的公网IP是不定时变化的,在数据通道建立之后中间件需要时刻监视IP地址的变化,维持端口心跳。一旦IP变化出现就要立刻重建端点间连接,确保数据传输的实时性和可靠性。
2.2.3可扩展的中间件适配器
IEEE 802.15.4定义了物理层和介质访问控制层的数据传输规范,ZigBee协议定义了网络层、应用程序支持子层以及应用层的数据传输规范,它们与互联网TCP/IP协议族没有交集。中间件作为底层网络连接互联网的中间环节,首当其冲的身份是两种协议交互的数据网关,实现ZigBee与TCP/IP数据格式的转换。其中,ZigBee协调器和嵌入式微处理器利用串口交换数据是使用广泛、成熟度高的解决方案。对于其他的底层WSN协议,则在传感网接口层即中间件的适配器环节提供命令集标准接口,以便扩展。
3应用案例
本文提出的“一种面向移动智能设备的物联网中间件服务模型”,已经成功应用于建设某智慧小区。该小区包括公寓区和别墅区。在面积约100m2的室内
区域放置智能主机1台,智能开关、智能窗帘、门磁传感器等执行机构和烟雾传感器、红外传感器等感知设备若干,即可实现室内环境的综合监控。其中,各类ZigBee传感器和执行机构作为底层WSN设备,与用户远程移动端设备之间通过现场智能主机中间件实现信息交互。WSN设备的入网、更新、移除等信息实时记录在中间件的设备-服务列表中,移动端通过WiFi或者3G等网络连接智能主机,调用中间件服务,完成对现场智能家居的信号采集和控制动作。
4结束语
中国物联网整体市场前景十分广阔,打造支持不同设备接口、不同互联协议、可集成多种服务的共性技术平台,将是物联网产业发展成熟的结果。
从本质上看,物联网中间件是物联网应用的共性要求。“面向移动智能设备的物联网中间件服务模型”包括:第一,兼容WSN协议,实现物联网感知层无线设备数据接口;第二,基于嵌入式系统、面向对象的软件设计等相关技术具体环境下的设备映射、服务抽象和服务调度机制;第三,解决异构网络端到端数据通道建立和维护的现实问题;第四,嵌入式智能主机部署灵活,具有较高的行业通用性且易于实现;最后,服务资源开放的安卓API函数库适应移动端应用二次开发的要求。已有的应用案例证明了上述模型的可靠性、实用性和技术共性。
参考文献
[1] 工信部电信研究院.2014年全球物联网发展报告[J].中国信息化,2014,239(8):42-46.
[2] 陈海明,崔莉,谢开斌.物联网体系结构与实现方法的比较研究[J].计算机学报,2013,36(1):168-188.
[3] 王林,姜杰.无线传感器网络中间件技术研究综述[J].计算机工程与科学,2014,36(2):244-249.
[4] Rosenberg J.RFC3261 SIP:session initiation protocol[S].IETF,2002.
[5] Rosenberg J.RFC5389 STUN:session traversal utilities for NAT[S].IETF,2008.
[6] Mahy R.RFC5766 TURN: traversal using relays around NAT[S].IETF,2010.
[7] Rosenberg J.RFC5245 ICE: Interactive Connectivity Establishment[S]. IETF,2010.
[8] 郭星明,郭天晨,张三元.基于管理信息本体和需求功能构件的中间件平台[J].浙江大学学报:工学版,2009,43(5):844-848.
[9] 工信部电信研究院.2014年物联网白皮书(节选)[N].中国电子报,2014-6-17.
An IOT Middleware Service Model for Mobile Intelligent Devices
罗剑
(浙江经济职业技术学院数字信息技术学院,浙江 杭州310018)
摘要:描述了一种面向移动智能设备的物联网中间件服务模型,系统架构由传感网接口层、设备服务层、数据传输层和安卓资源层组成。该模型通过建立与无线传感器网络异构设备的通信接口,封装感知设备提供的状态监测和远程控制功能,向移动端开放统一的物联网接入服务,实现物联网应用带有共性的技术环节,为移动智能设备面向物联网的二次开发提供便利。已有的应用案例证明了服务模型的可靠性、实用性和技术共性,可以有效提升物联网不同行业应用开发的效率。
关键词:物联网互联网移动智能设备无线传感器数据传输TCP/IPZigbee
Abstract:An IOT middleware service model for mobile intelligent devices is described.The system architecture is composed of sensor network interface layer,device service layer,data transmission layer and Android resource layer.Through building the communication interfaces with heterogeneous WSN devices,and the status monitoring and remote control functions offered by encapsulating sensing devices,the model opens universal access service to mobile devices,to implement technical aspects with commonality for IOT application,provide facilitation for secondary development of mobile intelligent devices orienting IOT.The existing application cases verify the reliability,practicability and technical commonalities of the service model; the model may effectively upgrade the efficiency of application and development of IOT in various industries.
Keywords:Internet of things(IOT)InternetMobile intelligent deviceWirelessSensorData transferTCP/IPZigbee
中图分类号:TP319;TH86
文献标志码:A
DOI:10.16086/j.cnki.issn1000-0380.201604018
2015年度浙江省公益技术研究工业基金资助项目(编号:2015C31107)。
修改稿收到日期:2015-05-13。
作者罗剑(1971-),男,1996年毕业于武汉工业大学自动化专业,获硕士学位,副教授;主要从事自组织网络、嵌入式系统、数据库知识发现等方向的研究。