陈琦帆 舒 坚 孟令冲 刘琳岚
1(南昌航空大学物联网技术研究所 江西 南昌 330063)2(南昌航空大学软件学院 江西 南昌 330063)3(南昌航空大学信息工程学院 江西 南昌 330063)
基于虚拟接入物联网中间件平台的设计与应用
陈琦帆1,2舒 坚1,2孟令冲1,3刘琳岚1,3
1(南昌航空大学物联网技术研究所 江西 南昌 330063)2(南昌航空大学软件学院 江西 南昌 330063)3(南昌航空大学信息工程学院 江西 南昌 330063)
提出一种基于虚拟接入的物联网中间件平台VAM(Virtual Access Middleware)。通过引入虚拟接入层,将异构的传感网络协议转换为中间件平台的内部协议,从而屏蔽了传感网络的异构性,为应用层访问异构无线传感网络提供统一的访问平台。详细介绍此中间件平台虚拟接入模块以及平台通信协议的设计,并通过在水质监测系统下的应用,验证了VAM中间件的可行性,降低了应用层软件开发的复杂度。
中间件 物联网 虚拟接入 无线传感网络
物联网(IoT)[1]是以互联网作为核心,在其基础上通过无线传感器网络(WSN)[2]、无线射频识别(RFID)[3]以及智能嵌入式技术[4]等实现物与物之间的信息交互与共享。物联网通过在日常生活用品中嵌入各种具有短距离移动收发功能的嵌入式设备,使得人与物、物与物之间能够以一种新颖的方式进行相互通信。物联网的体系架构主要包含感知层和应用层。感知层的功能是对所有物理的和虚拟的“物”的相关数据进行采集。应用层则负责对底层感知设备的请求进行响应。应用层与感知层的高耦合性导致应用层软件在感知层的感知设备改变时需要进行大幅调整以适应不同的感知设备。
为了解决上述问题,在物联网的系统架构中引入了“中间件”。物联网中间件是位于感知层与应用层之间的软件层,它能够屏蔽底层网络的个体特征,解决了物联网架构中感知层设备的多样性和复杂性问题[5]。随着物联网技术的飞速发展,国内外学者对物联网中间件已有相关研究。例如:TinyDB[6]是一种基于TinyOS[7]操作系统的数据访问中间件,虽然其可以通过数据融合机制减轻冗余数据对带宽的损耗,但它只支持同构的节点,不能满足实用性需求。FoK等[8]则提出一种基于移动代理的中间件“Agilla”。通过Agent的移动,能够有效消减网络通信开销从而加快任务执行,但由于其是基于TinyOS 1.X的操作系统,故不太适用于较复杂的传感器环境。王凡[9]通过数据过滤的方式将ZigBee[10]和射频识别网络转换为统一的格式以实现物联网中间件的设计。Terzis等[11]提出了一种基于虚拟机的无线传感网络中间件,其良好的柔韧性使得传感网络可以进行快速部署和开发。
本文提出一种基于虚拟接入的物联网中间件(VAM)模型,并基于该模型实现了适用于无线传感网络的中间件系统。本系统通过虚拟接入技术接入异构无线传感器网络,统一化底层网络并使感知层的网络接入透明化。同时,本平台提供丰富的服务并保证了中间件服务的可扩展性,为上层应用提供了统一的接口。
基于虚拟接入的物联网中间件平台的基本功能是实现异构的底层网络的接入并为上层应用系统提供服务和统一的接口。
1.1 VAM中间件平台的总体架构
基于虚拟接入的物联网中间件平台主要由应用层、中间件层和感知层组成,其总体架构如图1所示。
图1 VAM中间件架构
VAM中间件平台的核心职责是提供服务支撑。服务支撑主要包括基础服务、数据交换服务以及应用管理服务。其中,基础服务实现VAM中间件平台的基本功能,包括数据管理、目录服务等。数据交换服务用于平台内部的数据分发与订阅。应用管理服务向应用层提供应用支撑接口。
虚拟接入层位于中间件层的最底层,目的是屏蔽感知层终端的个性特征,转换为平台层能够识别的共性特征,使得各种各样的底层网络能够统一接入平台内部。
VAM中间件平台为上层应用屏蔽底层因接入不用网络而带来的差异,使得上层应用可以集中于服务层面的开发,与底层硬件实现低藕合。中间件的使用降低了应用层的开发难度,同时使上层应用不需要直接面对底层架构,而通过中间件进行调用,增强了应用服务的可复用性。
1.2 VAM通信协议的设计
协议是为网络中进行数据交换而建立的规则、标准或约定的集合。协议也是一个通信程序的精华所在。VAM中间件平台不仅需要保证平台内部虚拟接入模块与服务支撑模块的数据传输,而且还需要与异构的底层网络进行数据通信。所以,本文设计了两种通信协议即:与底层网络的通信协议和与平台内部通信的协议。
由于底层网络的异构性,虚拟接入层与底层网络的通信无法采用通用的通信协议。所以,VAM中间件平台向用户提供协议注册服务,用户可以根据不同的底层网络注册不同的协议。VAM会将注册的协议写入XML文件中。虚拟接入层与底层网络通信时,首先读取XML文件,解析出对应的网络及通信协议以实现与异构的底层网络通信。
虚拟接入层与平台之间进行数据交互所需的协议是平台内部协议。当虚拟接入层完成底层网络数据的解析后,需要将数据通过TCP/IP通信方式发送到平台内部。平台内部根据数据的封装的格式再将数据进行还原,最后将这些数据存入数据库并分发给服务订阅者。此过程的数据封装和数据的还原需要设计一个标准的通用的通信协议格式,以便虚拟接入层与平台内部有效的通信。
为了有效地实现数据协议格式的通用性,底层网络的数据包由4部分组成:必备数据、感知数据、网络数据、其他数据。必备数据表示每一种协议必不可少的数据,主要有消息类型、节点ID、消息长度等。感知数据表示应用相关数据,例如节点的电压值等。网络数据表示网络状态相关数据,包括路由信息、邻居信息等。其他数据表示程序无关数据,以便日后扩展使用。平台内部通用通信格式如图2所示。
图2 平台内部通信协议
1.3 虚拟接入模块的设计
虚拟接入层的主要职责是屏蔽底层网络的差异性,为底层网络提供一套相应的结构和协议来完成不同传感网上传的感知数据的解析。这就要求虚拟接入层能够完成底层网络数据包格式到平台内部数据包格式之间的转换,虚拟接入层体系结构如图3所示。
图3 虚拟接入层结构图
虚拟接入层可与底层网络Sink网关节点进行收发数据。当收到不同底层网络的异构数据时,虚拟接入层对数据进行解析,并将相关数据流持久化写入数据库。
虚拟接入层在解析Sink网关节点数据时,根据XML文件中所注册的协议来解析消息包中的数据区,最终得到底层网络的感知数据与网络数据。通过解包过程得到有效消息后,根据预先设计好的平台内部的消息格式对有效消息进行封装,然后通过TCP/IP协议发送给上层应用进程进行处理。
本文以水质监测应用为背景,通过对VAM中间件平台的部署与实际应用来验证其可行性和有效性。
2.1 总体设计
水质监测系统主要由VAM中间件平台、应用客户端和底层感知网络三部分组成。底层感知网络负责水质信息的监测与采集;VAM中间件平台实现异构无线传感网络的接入与应用服务的支撑;应用客户端为用户提供网络管理平台。水质监测系统拓扑结构如图4所示。
图4 水质监测系统拓扑结构
2.2 VAM通信协议实现
可扩展标记语言(XML)[12]用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。在本文中,XML主要用于存储平台内部的协议格式及用户注册的协议格式。XML的读写是通过基于C++语言的TinyXML模块实现的。
平台内部协议格式中,协议里的每一个字段对应XML协议的每一个item,而每一个item中又包含了id、type、length、等基本属性。其中,id表示协议编号;divide表示当前item下是否存在子item;length表示这个字段的长度;type表示这个字段对应的数据是何种数据类型(0表示感知数据,1表示网络数据,2表示必备数据,3表示无关数据)。以下片段展示了平台内部协议配置的XML文件:
…
…
2.3 VAM通信流程
VAM通信主要通过SinkSocket类来完成,它是TCP/IP的多线程Socket通信类[13]。虚拟接入层初始化工作完成后,此时SinkSocket服务已经启动。首先SinkSocket服务会启动一个守护线程,该线程除非是关闭SinkSocket,否则是不会挂起或销毁,守护线程的主要目的是监听Socket的连接请求。当有一个新的连接到来时,守护线程即为该连接创建一个新的线程,该线程专门负责监听此连接Socket的数据收发。
SinkSocket数据包接收过程如下:首先SinkSocket从Sink网关节点接收数据,然后对数据进行CRC校验[14],如果接收成功则将该组数据发往上一层进行二次解包。在上一层中,根据所注册的协议来解析数据包。当把感知数据消息包头和包尾信息(节点ID、节点数量、路由跳数等基本信息)去掉后,余下部分携带节点上行消息的主要内容。根据节点类型不同,数据段的数据结构也不同,因此使用XML文件中自定义的数据段描述进行解包。解包完成后,根据包头的消息类型将数据包分发给各个函数进行处理。VAM与底层通信活动图如图5所示。
图5 与底层网络通信工作活动图
2.4 水质监测系统的部署与实现
本文通过在南昌航空大学前胡校区的湖泊内部署基于VAM中间件平台的水质监测系统以验证VAM中间件平台的有效性。其中,VAM中间件平台由C++语言开发,采用了Socket通信编程、共享内存、并发编程等技术。应用客户端是由Java语言开发的Web端程序,采用JNI[15]、DWR[16]等技术实现与VAM中间件平台的数据交互间。感知层由TinyOS网络与Zigbee网络两种异构的传感网络构成。其应用层软件、中间件平台层和感知层系统部署图如图6-图8所示。
图6 水质监测系统应用层软件
图7 水质监测系统中间件平台
图8 水质监测系统感知层部署
本文提出了一种基于虚拟接入的物联网中间件平台。首先,本文介绍了VAM中间件平台的基础架构。接着详细介绍了虚拟接入模块和平台通信协议的设计。随后,详细描述了VAM中间件平台的通信协议和通信流程。最后,通过水质监测系统的应用,验证了VAM中间件平台的可行性。
[1] Li S,Xu L D,Zhao S.The internet of things:a survey[J].Information Systems Frontiers,2015,17(2):243-259.
[2] Yick J,Mukherjee B,Ghosal D.Wireless sensor network survey[J].Computer Networks the International Journal of Computer & Telecommunications Networking,2008,52(12):2292-2330.
[3] Wu D L,Ng W W Y,Yeung D S,et al.A brief survey on current RFID applications[C]//International Conference on Machine Learning and Cybernetics,2009:2330-2335.
[4] 叶高扬,毕冉.基于物联网的智能家居系统设计与实现[J].计算机应用,2014(S1):318-319.
[5] 陈琦,韩冰,秦伟俊,等.基于Zigbee/GPRS物联网网关系统的设计与实现[J].计算机研究与发展,2011,48(S2):367-372.
[6] Madden S R,Franklin M J,Hellerstein J M,et al.TinyDB:an acquisitional query processing system for sensor networks[J].Acm Transactions on Database Systems,2005,30(1):122-173.
[7] Levis P,Madden S,Polastre J,et al.TinyOS:An Operating System for Sensor Networks[J].Ambient Intelligence,2005:383-396.
[8] Fok C L,Roman G C,Lu C.Agilla:A mobile agent middleware for self-adaptive wireless sensor networks[J].Acm Transactions on Autonomous & Adaptive Systems,2009,4(3):1223-1227.
[9] 王凡.基于ZIGBEE和RFID的物联网中间件的设计与实现[D].北京邮电大学,2011.
[10] Kalaivani T,Allirani A,Priya P.A survey on Zigbee based wireless sensor networks in agriculture[C]//International Conference on Trendz in Information Sciences and Computing,2011:85-89.
[11] Terzis S,Nixon P,Narasimhan N,et al.Middleware for pervasive and ad hoc computing[J].Personal & Ubiquitous Computing,2006,10(1):4-6.
[12] Bray T,Paoli J,Sperberg-Mcqueen C M.Extensible Markup Language (XML) 1.0[M].Springer London,2011:115-146.
[13] 王堃,于悦,张玉华,等.面向物联网应用平台的Socket设计与优化[J].吉林大学学报(工学版),2012(S1):290-294.
[14] 李冬霞,叶倩文.循环冗余码仿真实验系统设计[J].武汉大学学报(理学版),2012(S2):228-232.
[15] Liang S.Java(tm) Native Interface:Programmer’s Guide and Specification[M].Addison Wesley Pub Co Inc,2016.
[16] Li Y,Xiao Y,Liu T.Extended enterprise connector framework using direct web remoting (DWR):US,US 20100031233 A1[P].2014.
DESIGN AND APPLICATION OF MIDDLEWARE PLATFORM FOR INTERNET OF THINGS BASED ON VIRTUAL ACCESS
Chen Qifan1,2Shu Jian1,2Meng Lingchong1,3Liu Linlan1,3
1(InternetofThingsTechnologyInstitute,NanchangHangkongUniversity,Nanchang330063,Jiangxi,China)2(SchoolofSoftware,NanchangHangkongUniversity,Nanchang330063,Jiangxi,China)3(SchoolofInformationEngineering,NanchangHangkongUniversity,Nanchang330063,Jiangxi,China)
We propose a middleware platform for Internet of Things based on virtual access. By introducing a virtual access layer, the heterogeneous sensor network protocol is transformed into an internal protocol of the middleware platform, which shields the heterogeneity of sensor network and provides a unified access platform for the application layer to access heterogeneous wireless sensor networks. This paper in detail introduce the design of virtual access module and communication protocol, and the feasibility of VAM middleware is verified by the application in water quality monitoring system, which reduces the complexity of application software development.
Middleware Internet of Things Virtual access Wireless sensor network
2016-08-14。江西省高等学校科技落地计划项目(KJLD14054)。陈琦帆,硕士生,主研领域:无线传感网络,物联网技术。舒坚,教授。孟令冲,硕士生。刘琳岚,教授。
TP311
A
10.3969/j.issn.1000-386x.2017.07.009