APP下载

泛在网网关中间件架构设计

2016-08-28陆晓钧上海贝尔股份有限公司

信息通信技术与政策 2016年7期
关键词:中间件通信协议插件

陆晓钧 上海贝尔股份有限公司

产品与技术方案

泛在网网关中间件架构设计

陆晓钧上海贝尔股份有限公司

对泛在网网关中间件架构进行了设计,针对无线物联网终端的需求,分析了物联网网关的基本产品需求,提出了泛在网网关的设计思路,阐述了层次结构、信息交互流程。针对网关中间件的架构设计和相关的数据上报、心跳上报等功能重点剖析了设计原理和可实现的架构原理。

物联网;泛在网;网关中间件

1 泛在网网关概述

泛在网是具有全面感知、可靠传输、智能处理特征的连接物理世界的网络。泛在网用途广泛,遍及智能交通、环境保护、政府工作、公共安全、平安家居、智能消防、工业监测、老人护理、个人健康、花卉栽培、水系监测、食品溯源、敌情侦查和情报搜集等多个领域。泛在网的接入方式是多种多样的,如广域的PSTN、短距离的Z-Wave等,泛在网网关设备是将多种接入手段整合起来,统一互联到接入网络的关键设备。它可满足局部区域短距离通信的接入需求,实现与公共网络的连接,同时完成转发、控制、信令交换和编解码等功能,而终端管理、安全认证等功能保证了泛在网业务的质量和安全。

泛在网网关在未来的泛在网时代将会扮演着非常重要的角色,可以实现感知延伸网络与接入网络之间的协议转换,既可以实现广域互联,也可以实现局域互联,将广泛应用于智能家居、智能社区、数字医院、智能交通等各行各业。泛在网组网采用分层的通信系统架构,包括感知延伸系统、传输系统、业务运营管理系统和各种应用,在不同的层次上支持不同的通信协议,如图1所示。感知延伸系统包括感知和控制技术,由感知延伸层设备以及网关组成,支持包括Lonworks、UPnP、Zig Bee等通信协议在内的多种感知延伸网络。感知设备可以通过多种接入技术连接到核心网,实现数据的远程传输。

泛在网网关具备如下几个功能。

图1 泛在网网关逻辑架构

(1)广泛的接入能力。目前,用于近程通信的技术标准很多,仅常见的WSN技术就包括Lonworks、ZigBee、6LowPAN、RUBEE等。各类技术主要针对某一应用展开,缺乏兼容性和体系规划,如Lonworks主要应用于楼宇自动化,RUBEE适用于恶意环境。如何实现协议的兼容性、接口和体系规划,目前在国内外已经有多个组织在开展泛在网网关的标准化工作,如3GPP、传感器工作组,以实现各种通信技术标准的互联互通。

(2)协议转换能力。从不同的感知网络到接入网络的协议转换,将下层的标准格式的数据统一封装,保证不同的感知网络的协议能够变成统一的数据和信令;将上层下发的数据包解析成感知层协议可以识别的信令和控制指令。

(3)可管理能力。强大的管理能力,对于任何大型网络都是必不可少的。首先要对网关进行管理,如注册管理、权限管理、状态监管等。网关实现子网内节点的管理,如获取节点的标识、状态、属性、能量等以及远程唤醒、控制、诊断、升级和维护等。由于子网的技术标准不同,协议的复杂性不同,所以网关具有的管理能力不同。

2 泛在网网关设计思路

泛在网网关可以实现感知网络和基础网络以及不同类型的感知网络之间的协议转换,既可以实现广域互联,也可以实现局域互联。本泛在网网关设计面向感知网络的异构数据感知环境,为有效屏蔽底层通信差异化进行有效网络融合和数据通信,采用模块化设计、统一数据表示、统一地址转换等实现。下面从泛在网网关的层次结构、信息交互流程两方面来进行阐述。

(1)层次结构

泛在网网关支持感知延伸设备之间的多种通信协议和数据类型,实现多种感知延伸设备之间数据通信格式的转换,对上传的数据格式进行统一,同时对下达到感知延伸网络的采集或控制命令进行映射,产生符合具体设备通信协议的消息。泛在网网关对感知延伸设备进行统一控制与管理,向上层屏蔽底层感知延伸网络的异构性,共分为4层,分别为业务服务层、标准消息构成层、协议适配和感知延伸层。

●业务服务层。业务服务层由消息接收模块和消息发送模块组成。消息接收模块负责接收来自泛在网业务运营管理系统的标准消息,将消息传递给标准消息构成层。消息发送模块负责向业务运营管理系统可靠地传送感知延伸网络所采集的数据信息。该层接收与发送的消息必须符合标准的消息格式。

●标准消息构成层。标准消息构成层由消息解析模块和消息转换模块组成。消息解析模块解析来自业务服务层的标准消息,调用消息转换模块将标准消息转换为底层感知延伸设备能够理解的依赖于具体设备通信协议的数据格式。当感知延伸层上传数据时,该层的消息解析模块则解析依赖于具体设备通信协议的消息,调用消息转换模块将其转换为业务服务层能够接收的标准格式的消息。消息构成层是泛在网网关的核心,完成对标准消息以及依赖于特定感知延伸网络的消息的解析,并实现两者之间的相互转换,达到统一控制和管理底层感知延伸网络,向上屏蔽底层网络通信协议异构性的目的。

●协议适配层。协议适配层保证不同的感知延伸层协议能够通过此层变成格式统一的数据和控制信令。

●感知延伸层。此层面向底层感知延伸设备,包含消息发送与消息接收两个子模块。消息发送模块负责将经过消息构成层转换后的可被特定感知延伸设备理解的消息发送给底层设备。消息接收模块则接收来自底层设备的消息,发送至标准消息构成层进行解析。感知延伸网络由感知设备组成,包括射RFID、GPS、视频监控系统、各类型传感器等。感知延伸设备之间支持多种通信协议,可以组成Lonworks和Zigbee以及其他多种感知延伸网络。

(2)信息交互流程

信息交互流程分为以下几个阶段,如图2所示。

●最终用户产生符合标准数据格式的消息,并将其发送至网关业务服务层的消息接收模块。

●业务服务层消息接收模块将标准消息发送至标准消息构成层的消息解析模块。

●消息解析模块调用相应的消息转换功能,将标准信息转换为依赖于具体设备通信协议的消息。

●消息解析模块将转换为依赖于具体设备通信协议的消息传送至感知延伸服务层的消息发送模块。

●感知延伸服务层的消息发送模块选择合适的传输方式,将依赖设备通信协议的特定消息发送至具体的底层设备。

图2 泛在网信息交互流程

●底层设备根据特定消息执行信息采集操作,并将结果返回给网关感知延伸服务层的消息接收模块。

●网关的感知延伸服务层的消息接收模块将依赖设备通信协议的特定消息传送至标准消息构成层的消息解析模块。

●消息解析模块调用信息转换模块,将依赖于设备通信协议的特定消息转换为标准消息。从图2可以看出,泛在网网关解决了泛在网网络内不同设备无法统一控制和管理的问题,达到屏蔽底层通信差异的目的,并使得最终用户无需知道底层设备的具体通信细节,实现对不同感知延伸层设备的统一访问。

3 泛在网关中间件架构设计

(1)数据上报

以下给出网关中间件数据库主要表设计:在插件中根据数据上报周期获取并解析数据之后,需要将数据上报至平台,上报数据使用平台定义的REST接口,处理如下的请求和回复消息。

请求消息:

Parameters

Method PUT

Base URL

API Endpoint/devices/<device_id>/datastreams/<data_stream_id>/datapoints

Headers

WOT-ApiKey API_KEY_HERE

WOT-Developer DEVELOPER_ID_HERE

Body

“{

““timestamp””:““2012-03-15T16:13:14””,

““value””:““294.34””

}”

回复消息:

Parameters

Status Code 200 OK

其中,根据serial_no,在device_property表中可以获取device_id,wot_apikey,developer_id,product_id信息。通过product_id以及获取数据中的tagtext,可以在device_stream表中获取device_stream_id的信息。

(2)心跳上报

在成功获取设备数据之后,更新agent_statistics表。以网关参数表中的心跳周期参数heart_beat_cycle为周期,启动timertask任务,比对当前时间与agent_statistics表的last_update_time字段的差,如果这个时间差在一个心跳周期之内,则使用平台提供的如下接口,上报心跳消息并处理回复消息:

请求消息

Parameters

Method GET

Base URL

API Endpoint/devices/<device_id>/heartbeat

Headers

WOT-ApiKey API_KEY_HERE

WOT-Developer DEVELOPER_ID_HERE

Body

回复消息

Parameters

Status Code200OK

(3)反控长连接及反控

为了实现设备反控,网关中间件模块与平台建立了TCP长连接,把所有需要反向控制的设备都在这个TCP长连接中注册,当平台收到Restful的设备控制命令的时候,将通过这个TCP长连接来发送指令下来。关联的表:wot_gw_db.device_property有一项属性:register_status,当设备的该属性被设定为“Y”的时候,在启动时向平台注册该可反控设备。

TCP长连接建立后,会初始化一系列的状态维护,包括建立一个处理接受缓冲区中的数据到消息队列,启动一个消息分发线程从消息队列中获取并处理消息,还将对长连接进行维持。

(4)REST方式的参数配置

网关使用了REST的风格进行接口设计,除了北向上报数据和部分南向数据获取使用REST以外,网关参数配置也使用REST风格服务,实现参数查询和修改功能,使用JAX-RS实现。JAX-RS是JavaEE6引入的一个新技术,是一个Java编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了JavaSE5引入的Java标注来简化Web服务的客户端和服务端的开发和部署。这里采用基于JAX-RS实现的框架Jersey来创建的Web Service,可方便地部署到Servlet容器,如Tomcat中。

查询请求接口设计如下:

请求消息:

Parameters

Method GET

Base URL

API Endpoint/parameters

Headers

No Headers

Body

This request does not require body data

回复消息:

Parameters

Status Code 200 OK

Headers

No Headers

Body

“{

{““parameterID””:““1””,““key””:““heartbeat_cycle””,““value””:““30””,““description””:““heartbeat cycle””},

{““parameterID””:““2””,““key””:““data_update_interval””,““value””:““60””,““description””:““data update interval””}

}”

修改请求接口

请求消息:

Parameters

Method POST

Base URL

API Endpoint/parameters/<parameterID>

Headers

No Headers

Body

“{

““key””:““heartbeat_cycle””,

““value””:““60””,

““description””:““heartbeat cycle””

}”

回复消息:

Parameters

Status Code 200 OK

Headers

No Headers

Body

This response does not contain body data

4 插件化架构

网关中间件包括一个支持Java Jar包插件的功能,可以提供在不重新编译网关程序的情况下,增加额外数据解析模块。

这些模块以Jar包方式提供(编程时需要遵守一定的规范,才能被网关中间件插件框架识别),放置在网关WebAPP特定目录之下,启动这些插件有两种方式:

第一种:网关程序启动时

当网关程序在Web容器内初始化时,会在特定目录(以下称Plugin目录)下寻找Jar包。将找到的Jar包依次解析,判断其是否为插件。如果是,Load插件到内存中,并启动插件的入口方法。

第二种:在页面上启动插件

网关程序的Web页面提供了一个上传插件和启动的交互UI。管理员可以通过这个页面,把本机的插件Jar包上传到Plugin目录下,并且解析和启动。

5 结束语

物联网技术已经进入快速发展的阶段,能够接入多种类型的无线物联网终端将成为其发展过程中必须解决的问题之一。物联网网关作为接入多终端的重要设备,其设计应该遵循设备适配灵活,接入方便等特点。本文所设计的物联网网关将成为业界相关领域发展的重要先导型研究。

[1]Bonnet P,Gehrke J,Seshadri P.Querying the Physical World [J].Personal Communications,IEEE,20007(5):10-15.

[2]CHOIi-Joung,JU Hong-Taek,CHA Hyun-Jun.An Efficient Embedded Web Server for Web-based Network Element Management[C].Network Operations and Management Symposium,2000:187-200.

[3]WANG Wei,LI Jun.An XML Firewall on Embedded Network Processor[C].4th International Conference on Networking and Services,2008:1-6.

[4]QIU Peng,ZHAO Yi,HEO Ung.Gateway Architecture for Zigbee Sensor Network for Remote Control over IP Network[C].8th Asia-Pacific Symposium on Information and Telecommunication Technologies,2010:1-4.

[5]Singh D,Daeyeoul K.Performance Analysis of Gateway Discovery Techniques:IPv6-Based Wireless Sensor Networks[C].2nd International Conference on Evolving Internet,2010:142-146.

[6]Hori Y,Onimaru K and Ikenaga T.Design and Implementation of an IPv6 Gateway Allowing Effective Use of Multihome Network[C].IEEE Pacific Rim Conference on Communications Computers and Signal Processing,2003,2:601-604.

[7]Guinard D,Trifa V,Wilde E.A resource Oriented Architecture for the Web of Things[C].Internet of Things(IOT),2010.IEEE,2010:1-8.

[8]Guinard D,Trifa V,Mattern F,et al.From the Internet of Things to the Web of Things:Resource-oriented Architecture and Best Practices[M].Architecting the Internet of Things.Springer Berlin Heidelberg,2011:97-129.

[9]Stirbu V.Towards a Restful Plug and Play Experience in the Web of Things[C].Semantic Computing,2008 IEEE International Conference on.IEEE,2008:512-517.

[10]Mulligan G.The 6Lo WP AN Architecture[C].Proceedings of the 4th Workshopon Embedded Networked Sensors.ACM,2007:78-82.

猜你喜欢

中间件通信协议插件
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
自编插件完善App Inventor与乐高机器人通信
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
基于jQUerY的自定义插件开发
关于电力物联网信息模型及通信协议的设计要点分析
基于Revit MEP的插件制作探讨
中间件在高速公路领域的应用
基于风险分析的安全通信协议简化研究
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介