APP下载

基于发布/订阅模型的WSN设计*

2016-08-18党宏社付晓军

电子器件 2016年3期
关键词:代理服务器消息客户端

党宏社,付晓军,张 超,王 黎

(陕西科技大学电气与信息工程学院,西安710021)

基于发布/订阅模型的WSN设计*

党宏社*,付晓军,张超,王黎

(陕西科技大学电气与信息工程学院,西安710021)

为降低通信频率对节点能耗的影响同时提高大规模节点下传感器网络的连通率,设计了一种以发布/订阅模型作为应用层数据交互方式的无线传感器网络。该网络利用6LoWPAN技术实现组网,并以Contiki操作系统为平台完成了基于发布/订阅模型的MQTT-S应用层协议设计。测试结果表明,该设计能够有效降低节点的通信流量,实现对节点功耗以及网络通信优化,并能与互联网实现无缝连接减少开发成本,对大规模传感器网络的设计与应用具有重要意义。

无线传感器网络;发布/订阅模型;MQTT;6LoWPAN

如何降低节点功耗提高网络连通率是无线传感器网络WSN(Wireless Sensor Network)研究的重要内容。其中,节点能量的消耗主要来自射频模块[1-2],即消息的收发消耗了节点的大部分电量。另外,节点数量的增长,势必增加网络的通信量,由于带宽受限,容易造成部分节点通信失败,增加丢包率[3-4]。因此,降低网络中的通信量,减少节点不必要的消息收发,有利于节省节点功耗,提高网络的连通率。

如何在满足用户需求的同时减少节点消息收发的频率主要取决于节点与用户之间的数据交互模式。文献[5]以 6LoWPAN(IPv6 over Low Power Wireless Area Networks)为背景,提出了一种受限应用层协议CoAP(Constrained Application Protocol)。该协议将请求/响应模型作为交互方式,能够借助6LoWPAN网络的IP特性,通过URL实现用户对传感器节点的直接访问,但随着用户数量的增加,节点需要针对同一组数据反复接收请求并做出响应,造成网络的通信冗余。文献[6]提出一种以消息队列遥测传输协议 MQTT(Message Queue Telemetry Transport)作为应用协议的 ZigBee无线传感器网络。该协议以发布/订阅为模型,提供一对多的消息发布模式,解除了用户与节点之间的耦合。但是Zig-Bee网络与当前的IP网络存在异构问题,该模型在解决ZigBee网络中节点之间的数据交互具有较好的效果,但与互联网融合的时候无法体现其优越性。

本文利用6LoWPAN的网络优势,基于发布/订阅模型,通过对用户与传感器网络之间的消息交互方式的优化,达到降低节点消息收发频率的目的,以此来降低节点功耗提高网络连通率。

1 模型设计

通过对发布/订阅模型的分析,本文针对特定网络对原有模型进行改进并最终通过软件设计实现在传感器网络中的应用。

项目来源:陕西省社会发展科技攻关项目(2015SF275)

收稿日期:2015-07-28修改日期:2015-09-08

1.1模型分析

发布/订阅模型包括发布端(Publisher)、代理服务器(Broker)以及订阅端(Subscriber)3个对象组成[7]。其结构如图1所示。通过发布、订阅和推送3个动作来完成消息的收发。

(1)发布端即消息的发送者,该模式的发送者不会将消息直接发送至用户,而是通过将数据按照主题分类的方式自动发送至代理服务器。

(2)订阅端即消息的接收者,接收端无需反复发送请求,只需通过服务器根据主题订阅需要的数据即可通过服务器推送的方式获得数据。

(3)代理服务器负责管理发布端与订阅端提交的主题和数据。在接收到发布端发布的数据后,查找是否存在订阅该主题的用户。如果存在则把该信息推送至相应的用户。

图1 发布/订阅模型

1.2模型改进

通过发布/订阅模型能够解除节点与终端用户之间的耦合,但是该模式下,当传感器节点出现故障或能量耗尽停止工作时,管理员无法及时得到通知,给传感器网络的维护带来困难。为此,本文基于原有的发布/订阅模型针对无线传感器网络增加了节点状态监测模块,如图2所示。

图2 改进模型结构

根据传感器网络的改进模型在无线传感器网络中汇聚节点作为传感器网络与互联网等外部网络的接口,负责消息的转发。因此,传感器节点发布的消息同样需要经过汇聚节点发送至代理服务器,设计通过汇聚节点完成节点状态监测的功能,具体实现过程如下:

传感器节点触发方式主要分为定时触发以及传感器状态触发。根据触发方式的不同设计了不同的状态监测机制。

(1)定时触发传感器定时向服务器发布消息。汇聚节点在转发消息的同时,根据传感器ID,结合系统时间为节点标记一个时间戳。同时汇聚节点周期性对节点时间戳进行检查,经过若干周期若标记节点时间戳未改变,则判定为节点异常并通过汇聚节点将异常发布。

(2)状态触发通过传感器状态的变化不定时发布消息的一种触发方式。为此,传感器节点在发布消息的同时,将周期性地向汇聚节点发送一条状态信息,告诉汇聚节点工作正常。汇聚节点同样根据状态信息定义时间戳,从而起到节点管理的功能。

(3)汇聚节点在管理节点状态的同时,同样会将传感器网络的状态信息发布到服务器。使客户端能够得到传感器数据的同时,了解网络的运行状态,起到网络维护的功能。

1.3设计实现

MQTT是由IBM设计的一种轻量级的发布/订阅协议,被广泛应用于M2M通信当中。但MQTT设计仍然基于TCP/IP通信实现。为此,IBM制订了MQTT-S协议,该协议通过压缩消息长度,利用UDP传输等方式使MQTT适用于无线传感器网络。该协议也被认为最有可能成为传感器网络标准的协议[8-9]。

为保证消息发送的可靠性,MQTT-S协议设置了3个服务质量QoS(Service of Quality)等级:

QoS 0代理服务器与客户端之间的消息只传输一次,不需确认;

QoS 1服务器与客户端之前的消息最少传输一次,并要求确认;

QoS 2服务器与客户端通过4次握手实现消息的准确传输。

无线传感器网络的局限性显然无法使用较高等级的传输。本文将QoS等级设置为0,即只发送一次,由于传感器节点数量大、采集频率高,单个节点偶然丢包不影响传感器网络的应用,因此QoS0可以满足需求。

结合改进的发布/订阅模型,本文通过软件编程的方式设计实现MQTT-S在6LoWPAN网络中的应用,其结构如图3所示。

图3 MQTT-S结构图

其中消息的传输主要由MQTT-S节点、MQTT-S网关、MQTT-S转发和MQTT代理服务器4部分组成。节点作为发布端进行消息的发布;网关用来完成MQTT-S与MQTT之间的转换;转发操作用来实现传感器网络与互联网之间的通信,本文利用6LoWPAN技术组网,转发功能需将IPv6数据报转换成IPv4之后发送至网关。具体实现过程如图4所示。

图4 功能实现流程

节点工作流程分为4个步骤:

步骤1发布端通过服务器主机地址连接到代理服务器,参数包括服务器地址、节点ID以及保持连接时间,其中MQTT固定端口号为1883;

步骤2节点注册待发布信息的主题(topic);

步骤3注册成功后,节点通过事件触发的方式,将消息进行封装后发布到服务器,其中消息携带QoS等级信息,用来协调工作模式。

步骤4节点消息发布后断开连接,进入休眠降低功耗,等待下一次触发。

汇聚节点工作流程如图4右所示。系统网络初始化并创建一个二维数组用来存储节点ID以及时间戳,等待接收消息。当获取的消息为MQTT发布信息时,进行IPv6与IPv4的转换并发送至代理服务器,同时将该节点ID以及发送时间添加至数组,如果数组中存在该节点ID,则将对应的时间更新。当节点接收到的是节点发送的状态信息时,不做转发,只记录其发送时间。在处理网络节点消息的同时。汇聚节点也像普通传感器节点一样。定时将网络运行状态信息发送至代理服务器,能够让用户及时了解网络运行情况,起到维护的作用。

通过该设计,传感器节点的收发信息的次数与请求/响应模式对比,理论数据上减少近50%。

2 系统设计

为进一步验证改进的发布/订阅模型对节点通信频率的优化效果,本文设计了基于该模型的无线传感器网络测试系统。该系统主要包括传感器节点、汇聚节点、代理服务器以及客户端4部分。其中设计内容主要包括传感器节点以及汇聚节点2部分。

2.1传感器节点设计

节点硬件选用TI公司推出的TM4C123G微控制器作为传感器节点的控制单元。同时配以CC1120射频模块实现数据的收发。软件方面,选用Contiki作为传感器节点的操作系统,其完全采用C语言开发,具有运行内存小,支持TCP/IP网络以及6LoWPAN报文压缩、CoAP应用层协议等优势[10,11]。是目前对于6LoWPAN协议栈支持最好的嵌入式操作系统。本文将Contiki移植到TM4C123G微控制器中并基于该系统平台编程实现MQTT-S协议,最终实现对传感器节点的数据发布。

2.2汇聚节点设计

汇聚节点硬件选用TI公司推出的TM4C1294微控制器作为主控单元,与TM4C123G相比,存储空间及运行内存更大,支持以太网通信,满足系统设计需求。通过搭配CC1120射频模块实现无线收发功能。

软件方面,汇聚节点作为6LoWPAN路由的根节点。设计内容主要包括Contiki操作系统的移植,IPv6数据报与IPv4之间的转换以及针对汇聚节点接收到的消息通过报头解析,获取消息类型并存入数组。同时与传感器节点一样,周期性地向代理服务器发布传感器网络状态信息。

3 系统测试

3.1系统功能测试

测试系统包括4个传感器节点,1个汇聚节点,1个计算机,其中计算机用来运行代理服务器和测试客户端。代理服务器选用开源消息代理软件Mosquitto实现,测试客户端选用了IBM的开源项目IA92。如图5所示为传感器节点以及汇聚节点实物。

图5 测试硬件环境

利用本地计算机运行Mosquitto代理服务器。汇聚节点通过以太网连接至路由器并由路由器分配一个IPv4地址。与本地代理服务器组成局域网进行通信,以此减少外网对测试结果的影响。各节点启动系统初始化并成功组网后。连接至代理服务器,注册节点主题。之后每隔5 s自动发布一次信息。

(1)传感器节点功能测试。如图8所示,客户端输入代理服务器的地址并连接,指示灯变成绿色表明连接成功在主题订阅栏(Subscribe Topic)输入相应节点发布的主题并点击订阅(Subscribe)完成订阅,等待接收代理服务器推送。同时,可点击取消订阅(Unsubscribe)通知服务器取消对相应主题的推送。图6显示了收到节点1的传感器数据信息。订阅主题“jun/sust/1/sensor”,接收到的推送信息为“{"sensor":{"flag":1,"value":339,"voltage":3}}”。测试结果证明传感器节点的数据采集功能实现。

图6 MQTT测试客户端

(2)汇聚节点功能测试。同样的方式订阅汇聚节点发布的主题“jun/sust/huiju/static”,然后将传感器节点1断电,移除传感器网络。程序默认3个周期未收到节点信息视为断线。测试结果如图7所示。

图7 聚节点测试客户端

汇聚节点发布的消息为“{"static":{"online":3,"offline":1,"offid":1}”,显示了网络当前在线节点个数、离线节点个数以及离线节点的ID,系统默认20个周期内节点未重新连接,将默认该节点已不在网络中,将从数组中删除。测试结果表明,汇聚节点能够对网络的状态起到监测的作用。

3.2数据流量测试

为测试发布/订阅模式在节点收发上的优化程度,利用6LoWPAN网络常用的CoAP协议与本文设计实现的MQTT-S协议进行比较。分别取一个相应节点在相同环境下运行10 min,其采集周期均为5 s/time,通过路由器的流量统计功能,每分钟统计1次相应汇聚节点的通信总流量值。其对比结果如图8所示。

通过测试,运行MQTT-S的节点与运行CoAP协议的节点相比,在实现功能相同的情况下,发布/订阅的交互机制能有效减少传感器网络的数据流量。随着节点数量的增加,该优势将更加明显。

图8 流量统计图相同时间流量对比

4 总结

针对无线传感器网络特点,对发布/订阅模型进行改进,并作为传感器网络的数据交互方式,实现了对无线传感器节点通信频率的优化。通过软硬件设计完成了模型的系统测试平台。该测试系统以6LoWPAN作为传感器组网协议,节点采用Contiki嵌入式操作系统,并以该操作系统作为开发平台实现了MQTT-S应用层设计。结合MQTT代理服务器以及客户端软件实现了消息的发布、订阅与推送。通过测试,系统功能完整,能够有效减少节点通信频率,降低射频模块的工作时间,从而起到降低节点功耗,提高网络连通率的作用。此外,以6LoWPAN作为组网协议,能够与互联网实现无缝连接,降低了系统开发难度,具有较高的应用价值和推广价值。

[1] Schurgers C.Optimizing Sensor Networks in the Energy-Latency-Density Design Space[J].Mobile Computing,IEEE,2002,1(1):70-80.

[2] 宋光明,葛运建.智能传感器网络研究与发展[J].传感技术学报,2003,26(2):107-112

[3] Lucas D,Joel J.A Survey on Cross-Layer Solutions for Wireless Sensor Networks[J].Journal of Network and Computer Applications,2011,34(2):523-534.

[4] Wang Yun-bo,Vuran M C,Steve G,et al.Cross-Layer Analysis of the End-to-end Delay Distribution in Wireless Sensor Networks[J]. IEEE/ACM Transactions on Networking,2012,20(1):305-318.

[5] Krishnamurthy S,Deutsche Telekom Labs.TinySIP:Providing Seamless Access to Sensor-Based Services[A].Mobile and Ubiquitous Systems:Networking&Services,2006 Third Annual International Conference[C]//IEEE,2006:1-9.

[6] Kovatsch M,Duquennoy S.A Low-Power CoAP for Contiki[C]// Proceedings of the 2011 IEEE 8 th International Conference on Mobile Ad Hoc and Sensor Systems.Piscataway:IEEE Press,2011:855-860.

[7] Souto E,Guimarães G.A Publish/Subscribe Middleware for Sensor Networks[J].Pers Ubiquit Comput,2006,10:37-44.

[8] Hunkeler U,Truong H.MQT T-S-A Publish/Subscribe Protocol for Wireless Sensor Networks[C]//COMSWARE 2008.3rd International Conference on Communication[A].IEEE,2008:791-798.

[9] Ernesto García Davis,Anna Calveras.Improving Packet Delivery Performance of Publish/Subscribe Protocols in Wireless Sensor Networks[J].Sensors,2013,13:648-680.

[10]Xin Ma,Wei Luo.The Analysis of 6LoWPAN Technology[J].Computational Intelligence and Industrial Application,2008,19(20):963-966.

[11]Oikonomou G.Comput Sci Experiences from Porting the Contiki Operating System to a Popular Hardware[C]//Distributed Computing in Sensor Systems and Workshops(DCOSS).IEEE,2011:1-6.

党宏社(1962-)男,汉族,陕西武功人,陕西科技大学,教授,主要研究方向为信息融合,工业过程控制,hsdang@163.com;

付晓军(1989-),男,汉族,山东临沂人,陕西科技大学硕士研究生,主要研究方向为无线传感器网络,junefunfxj@126.com。

Design of WSN Based on Publish/Subscribe Model*

DANG Hongshe*,FU Xiaojun,ZHANG Chao,WANG Li
(College of Electrical&Information Engineering,Shaanxi University of Science&Technology,Xian 710021,China)

To reduce the influence of traffic on the energy consumption of nodes and improve the connectivity of sensor networks in large scale nodes,a wireless sensor network has been designsed utilizing publish/subscribe model. This network uses 6LoWPAN networking technology combined with the Contiki operating system to achieve the MQTT-S that is an application layer protocol for wireless sensor networks.The test results show that the design can effectively realization of node power consumption and network communication optimization,which is of great significance for the design and application on a large scale sensor networks.

wireless sensor network;publish/subscribe model;MQTT;6LoWPAN

TP393

A

1005-9490(2016)03-0586-05

EEACC:6150P10.3969/j.issn.1005-9490.2016.03.017

猜你喜欢

代理服务器消息客户端
一张图看5G消息
如何看待传统媒体新闻客户端的“断舍离”?
地铁信号系统中代理服务器的设计与实现
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
IP地址隐藏器
消息
消息
消息