朱广萍,黄 晞
(福建师范大学 光电与信息工程学院,福建 福州 350007)
面向智慧园区的物联网中间件的整体架构
朱广萍,黄 晞
(福建师范大学 光电与信息工程学院,福建 福州 350007)
随着物联网技术的不断发展及“中国制造2025”的提出,构建面向智能生产线、智能车间、智能工厂等制造业的物联网应用模式越来越受到人们的关注。在智能制业中,接入物联网的设备种类众多,设备的数据格式不统一,因此上层应用在采集设备数据和对设备进行管理时,需要引入中间件来解决这些问题。设计了一种面向服务的物联网中间件模型,此中间件建立在具备上述特点的智能园区的背景下。中间件负责实现前端感知设备与上层应用间的信息交互,并将上层应用的命令下发到设备中实现对设备的实时管理,为各种异构的智能设备接入物联网应用环境提供了一种有效的解决方案。并且通过一个应用实例来进一步阐述此中间件的工作原理及实现方法。
物联网;中间件;面向服务;架构
物联网是在互联网、移动通信网等通信网络的基础上,针对不同应用需求,利用具有感知、通信与计算能力的智能终端自动获取物理世界上的各种信息,将所有能够独立寻址的物理对象互联起来,实现全面感知、可靠传输、智能处理,构建人与物、物与物互联的智能信息服务系统[1]。物联网是由简单二维条码、射频识别技术、无线传感器网络、CPS(Cyber-Physical Systems)[2]及M2M(Machine-to-Machine)系统[3]等各种信息传感设备及系统通过与普适网络、下一代互联网[4-5]等核心技术结合起来形成的智能网络。物联网包含感知延伸层、网络层、业务和应用层三层[6-11]。第一层负责采集物和物相关的信息;第二层是异构融合的泛在通信网络;第三层是应用和业务,为手机、PC等各种终端设备提供感知信息的应用服务[12]。提供与物相关的服务是物联网的内在要求。然而,物理的物数量大、种类多,具有异构性,虚拟的物具有信息关联复杂的特性。因此,需要建立一个通用的服务平台,以实现对物的有效管理、交互和处理,确保提供与物相关的服务[13]。于是物联网中间件便产生了。
物联网中间件是介于感知设备与上层业务系统之间的一种基础软件。由于智慧园区的不同场景需要接入不同的终端设备和不同的上层应用,所以该物联网中间件采用SOA架构设计,如图1所示。
图1 中间件整体架构
物联网中间件主要由设备驱动层、服务对象调度管控层、业务服务应用层三部分组成。
设备驱动层:主要包括设备注册请求、设备连接请求、安全认证、设备注销、设备配置、打开设备、关闭设备及针对不同类型的设备实现数据采集与控制。
服务对象调度层:分为驱动服务对象、系统控制对象、业务服务对象三部分。其中驱动服务对象主要实现设备驱动配置、设备登记管理、设备配置等,通过设备驱动管理调度完成终端设备的注册请求、连接请求、安全认证、读写数据等;业务服务对象主要实现服务本地命名、服务线程池、服务日志及对外发布API函数,通过业务服务管理调度完成业务应用层与设备层之间的数据通讯。系统控制对象主要包含任务管理器、线程池管理、内存管理、性能监控及系统日志等。服务对象调度将所有设备驱动、业务逻辑等均看作是服务对象,并对其进行管理、配置及调度,完成物联网应用系统的传感网部署接入和分布式实时交互业务处理[14]。
业务应用层:针对具体物联网应用系统而设计,提供与应用系统各种数据交互方式,对数据进行解析。
设备驱动层:由于接入中间件的底层设备不同所上传的数据格式也不同,为了向上层应用屏蔽底层设备差异,需要在设备驱动层解析传输协议,统一化数据格式。设备驱动层提供统一的驱动协议标准接口IDriver,通过定义标准的驱动通信接口,中间件利用反射技术动态加载驱动DLL实现动态加载设备驱动,终端设备与上层数据交互由驱动协议内部完成,形成XML数据文件,最终通过统一接口方法传递给中间件。
对于设备的配置和数据解析要通过采用读取XML配置文件的方式,采用配置文件的好处是可以保证在不修改代码的前提下,通过修改配置文件可以达到调整功能的目的,并方便以后进行功能扩展[15]。设备在接入中间件后,首先分配给每个设备一个数据缓存区,然后针对不同的设备调用不同的数据解析方式,完成数据安全认证和校验,而后通过配置数据过滤模式将数据进行不同层次的过滤,再通过XML转化模块将数据转化为XML格式。
设备驱动层数据处理过程如图2所示。
图2 设备驱动层数据处理过程
服务对象调度层:是中间件的核心部分,把设备驱动和业务都看做服务对象,实现对业务、驱动及设备服务的管理和调用。当设备接入中间件后,配置相应驱动及业务保存到数据库中,并把设备信息也保存到数据库中。启动中间件后,自动获取驱动表、设备表和业务表,实例化相关对象,自动调用驱动和业务层中的各个方法事件。
中间件驱动服务层定义了接收驱动层事件的相应方法,设备连接方法Connect(),设备断开方法DisConnect(),获取设备状态GetStatus(),读取数据ReadData(),写入数据WriteData(),这些函数负责接收驱动层的相应事件,并把数据转发至业务层接口。业务层处理后返回到驱动层,通过驱动层下发到设备。同时在这些方法和事件中实现应用系统对采集到的数据进行处理。业务服务层定义了接收业务层事件的方法,设备参数设置方法Setup(),ProcessResult()负责接收业务执行处理结果,GetAndSendWait-Cmd()负责接收业务层下发的待发指令列表,并在函数内按照预先定义的指令类型,将指令转发给相应函数,由相应函数具体执行。
业务服务层工作流程如图3所示。
业务层:负责直接与上层应用交互,由于上层可能有许多应用,要是每个应用都可以调用中间件的数据,必须要定义标准的外发布API函数。中间件需要实现对所有业务的无差别调用,所以不同业务都必须继承统一接口方法,定义为IBusiness接口类方法。此接口向上层应用暴露三个功能:设备参数配置调用,发送命令,获取数据。业务服务层利用反射技术动态加载业务层DLL。
经过中间件的一些数据需要直接被应用调用,另一些数据可能需要进入数据库保存,还要定义一个数据库接口。缓存后的XML文件进行数据过滤操作后批量入库[16],数据过滤操作需由上层应用调用API的相关配置,这样可以减少冗余数据,同时不用针对每条RFID数据都对数据库进行相关的入库操作,尽量减少数据库连接和断开,节省资源。
图3 业务服务层工作流程
该案例实现了基于中间件的工厂车间环境监控系统。系统分为上位机部分和下位机部分。上位机部分包括:环境监控页面、中间件、数据库。下位机部分包括:网关、ZIGBEE设备两台、传感器采集模块、传感器控制模块。
通过ZIGBEE终端节点采集温室环境信息,组网无线发送到ZIGBEE中心节点,中心节点再将数据送到网关,网关再通过串口将数据发送到中间件。中间件负责对网关数据进行解析,将温度、湿度和烟雾数据分别转化成相同格式的XML数据,直接供监控页面应用调用。监控页面通过调用中间件的API函数对终端设备进行参数配置和发送命令。中间件收到命令数据后,对命令进行解析,按照预先规定的协议格式,在驱动层将数据发送给网关,网关再将数据发送到ZIGBEE中心节点上,中心节点通过无线组网将设置的信息发送给ZIGBEE终端设备。终端设备根据收到的命令操作控制模块:继电器控制加热设备和通风设备。
基于中间件的工厂车间环境监控系统见图4。
文中设计的中间件介于感知设备与上层业务系统之间,采用SOA架构设计,具有粗粒度、松耦合的特点,满足了物联网多种设备接入、支持多个应用的需求。实现多类型感知设备的接入管理。每个设备可灵
图4 基于中间件的工厂车间环境监控系统
活指定为特定应用系统提供信息服务;摆脱物联网终端设备非标准化协议,带来的开发、维护和扩展的限制。最后通过具体案例验证了上述功能。
[1] 吴功宜.物联网工程导论[M].北京:机械工业出版社,2012.
[2] Wolf W.Cyber-physical systems[J].Computer,2009,42(3):88-89.
[3] Cha I,Shah Y,Schmidt A U,et al.Trust in M2M communication[J].IEEE Vehicular Technology Magazine,2009,4(3):69-75.
[4] Bardram J,Friday A.Ubiquitous computing systems[M].[s.l.]:CRC Press,2010:37-94.
[5] Koshizuka N,Sakamura K.Ubiquitous ID:standards for ubiquitous computing and the internet of things[J].IEEE Pervasive Computing,2010,9(4):98-101.
[6] 朱晓荣,孙 君,齐丽娜,等.物联网[M].北京:人民邮电出版社,2010:32-33.
[7] 万知之.综合传感网业务层数据分发模块的设计与实现[D].南京:东南大学,2014.
[8] 郑红刚.物联网技术的应用与发展综述[J].建筑工程技术与设计,2014(11):684-685.
[9] 丁一鸣.物联网业务表示与选择机制的研究与实现[D].南京:南京邮电大学,2013.
[10] 张 浩.物联网环境下智能交通系统模型设计及架构研究[D].北京:北京交通大学,2011.
[11] 魏 歌.不同物联网架构的分层标准的研究[J].计算机技术与发展,2015,25(1):221-225.
[12] 朱洪波,杨龙祥,于 全.物联网的技术思想与应用策略研究[J].通信学报,2010,31(11):2-9.
[13] 杨 慧,丁志刚,郑树泉,等.一种面向服务的物联网中间件的设计与实现[J].计算机应用与软件,2013,30(5):65-67.
[14] 范小兴.SMO物联网中间件平台系统[J].福建质量管理,2011(6):62-63.
[15] 王 凡.基于ZIGBEE和RFID的物联网中间件的设计与实现[D].北京:北京邮电大学,2011.
[16] 邓海生,李军怀.RFID中间件研究与设计[J].计算机技术与发展,2008,18(11):55-57.
Overall Architecture of an IoT Middleware Based on Intelligent Park
ZHU Guang-ping,HUANG Xi
(College of Photonic and Electronic Engineering,Fujian Normal University, Fuzhou 350007,China)
With the development of IoT technology and the publishment of “Made in China 2025”,the IoT application pattern,such as intelligent plant,intelligent workshop and intelligent production line,has caused more and more attention.In intelligent manufacturing,many types of devices access the IoT and the data formats are not uniform,so it’s necessary to introduce a middleware when the up-level applications have to read the data and control the devices.A service-oriented middleware model is designed which is built on the background of intelligent park with the above characteristics.The middleware is responsible for the information exchange between the sensing devices and the up-level application,and sends the application commands to the devices to achieve real-time management,and also offers a promising solution for embedded intelligent devices with heterogeneity to be accessible in IoT.Moreover,an application example is introduced to explain the working principle and application methods of the middleware.
Internet of Things;middleware;service-oriented;architecture
2016-01-15
2016-06-02
时间:2017-01-10
福建省自然科学基金项目(2013H6008)
朱广萍(1990-),女,硕士,研究方向为智能检测;黄 晞,副教授,硕士,研究方向为智能技术及机器人技术、网络通信与控制技术。
http://www.cnki.net/kcms/detail/61.1450.TP.20170110.0941.016.html
TP31
A
1673-629X(2017)02-0171-03
10.3969/j.issn.1673-629X.2017.02.039