当前位置:无忧公文网 >范文大全 > 征文 > 面向物联网监测系统的通信服务模型设计

面向物联网监测系统的通信服务模型设计

时间:2022-03-16 08:31:40 浏览次数:

zoޛ)j馟iL׎�5zM6]Mu'm5~<o;tQ工作主要集中于感知层、物联网标识技术、物联网大数据挖掘等的研究,对传输层的通信效率方面和协议设计研究较少。本文拟研究面向物联网监测系统的通信服务效率问题。

1 物联网监测系统概述

物联网通常可以概括为三层域[2]:a)感知层,通常是基于物理、化学、生物等技术的传感器采集所需的各种数据(如温度、湿度等);b)传输层,其主要传输方式分为有线和无线两种;c)应用层,对采集上来的数据进行智能分类、查询处理及决策支持等。物联网监测系统通信服务是物联网传输层重要的一部分。

对于物联网监测系统而言,其基本结构可以描述如图1:

1.1 物联网监测系统通信特点

物联网监测系统通信服务具备的特点:

(1)通信对象是远程终端(传感器),通信具有自动化控制特点,通信服务端通过设置各种命令,终端自动完成相应操作和控制。

(2)监测安全性起见,信息传递需要基于一定的数据协议进行传输。

(3)通信高并发以读数据为中心,很多物联网监测系统通信适合采取长连接。

1.2物联网监测系统通信服务的关键问题

物联网监测系统感知层与传输层通信为典型的多对一结构。当系统的规模不断增长后,传输层就成为系统的通信中心,传输层通讯服务器的通信服务好坏将直接影响系统的性能。因此一个良好的通信模型需要解决以下几个关键问题:

(1)数据通信协议设计。物联网监测系统服务器端和远程采集单元通过一定的数据传输协议,实现采集控制、数据的传输、设备状态查询、通信管理等,因此一个合理有效的数据通信协议是系统通信服务的基础。

(2)大量采集终端并发上传采集数据,且往往伴随着高速数据流。

(3)多对一的通信管理。多对一通信管理是通信服务的一个重要环节,由网络的复杂性带来的诸如连接中断、数据丢失、时间不同步等问题将对系统的稳定性提出了考验,如何有效的管理多远程采集终端的通信也是物联网监测系统的关键问题。

2 通信服务模型设计

由上文分析可知,一个性能良好的物联网监测系统通信服务模型必须要解决以上几个关键问题才能应对大规模物联网终端通信的功能需求及性能需求,满足物联网应用的需要。针对以上问题,本文拟从通信协议设计、数据传输、通信管理三方面构建通信服务模型。

2.1 通信协议设计

基于可扩展性考虑,通信服务模型设计了一种可扩展的自定义通信协议格式。

按照物联网监测系统的一般性需求,我们将协议分为查询、设置、维护等三类消息,其中查询类包括数据采集,时间查询等消息;设置类包括时间同步,IP端口设置,通道修改等消息;维护类包括设备登陆,心跳包维持,重传等消息。

(1)消息头格式,消息头中的信息用于对消息数据的标识和扩展

(2)数据传输消息格式示例,通信服务端根据消息类型的不同统一对数据消息进行解析和封装

2.2 数据传输模块设计

考虑物联网监测系统适用于长链接这一特点,并结合目前性能优良的通信IO模型,设计的基于连接对象池及线程池的通信服务数据传输模块能够合理的利用系统资源,并能够支持大规模采集终端通信,基本满足物联网监测系统在通信服务的效率需要。

图2和图3分别指出了数据传输模块的连接和数据处理流程算法:

2.2.1 非阻塞socket连接池

传统的阻塞式通信通常是每个线程对应一个连接.有n个客户端总共就要有n个服务线程加一个监听线程,这种模型不仅浪费系统资源,而且在终端量较大的情况下过多的线程开销将会造成系统的瓶颈甚至崩溃。

本文基于NIO的通信模型,采用多线程等技术设计了一种基于事件通知socket通信结构,旨在解决阻塞式通信的一系列通信问题,予以满足物联网监测系统大规模通信的需要。

(1)连接处理线程

此线程专门用于处理来自远程采集终端的连接,并将其存入到连接对象池中。

关键程序代码实现如下:

ServerSocket server = new ServerSocket(port);

//等待新的连接

Socket incoming = server.accept();

//有新连接接入,创建新的com连接对象,初始化

Com boardCom = new Com(incoming);

//com对象注册上报消息句柄

Com.setUpdateHandler(this)

//将新的Com插入连接池

insertPool(Com);

(2)数据事件驱动线程

此线程循环扫描连接池,将有数据准备完毕的连接加入到数据处理队列中。

关键代码实现如下:

//扫描连接对象池

for(int i=0;i

{ //判断该链接是否数据到来

if(m_ComPool.get(i).hasData())

{ 获取该连接对象

Com com=m_ComPool.get(i);

//将该链接加入到数据处理等待队列

HandlQueue.add(com);

}

}

2.2.1 工作线程池

为提高系统利用效率,线程池往往是一种十分有效的解决方法,在此通信服务模型中工作线程池旨在并发的处理来自多采集终端的数据,实现数据的封装解析以及数据库操作等相关工作。

关键实现代码如下:

//创建固定线程数目的线程池,可配置

ExecutorService executorService = Executors. newFixedThreadPool();

/*工作线程*/

//设置当前上报的连接Com

setCurUpdateCom(com);

//更新有效时间记录

com.setLastUseTime(System.currentTimeMillis());

//读取数据

len=com.readData(buffer, len);

//向层上报数据

onReadDataHandle(buffer,len);

//协议数据解析

analyzeData(byte[] buffer, int len)

//数据库操作

operateDatabase();

2.2.2 缓存技术

在物联网监测系统中,处理来自采集终端的数据往往需要和数据库、文件中的相关信息进行交互操作,而数据库和文件的操作势必造成通信服务的效率下降,为提高系统性能,通信服务采取数据缓存技术,在第一次获取数据时,将数据加载到多个Map中,以后相关操作就直接从缓存获取数据。

2.3通信管理

引言中提到,通信管理在物联网监测系统中关系着整个系统的稳定性和正确性需求,通信服务的通信管理主要通过以下几种机制实现

(1)重连和重传机制。不同时间和不同地域网络状况的差异必然会造成通信最常见的两个问题,连接中断和丢包问题。连接中断通常通过重连进行解决,通信服务端在收到新的连接后更新连接池,并检查是否存在因为网络中断而造成的数据丢失问题;当系统发现数据丢失告知通信服务,服务将通过查询数据序列号,确定丢失的序列并向相应采集终端发送重传消息。

(2)心跳包机制。在长连接模式下的物联网监测系统,由于要保持长期的通信状态,需要一种机制来维持彼此的通信链路,心跳包机制是一种有效的维护方式。通信双方在一定的时间间隔相互发生消息,通信服务端通过心跳时间来管理多采集终端的通信状态,从而达到有效利用通信链路的效果。

(3)时间同步机制。实时性是物联网监测系统的一大特征,因此服务端和采集终端的时间同步显得尤为重要。然后由于时钟频率的差异,采集终端和服务器之间必然存在时间上的差异,因此通信服务采用TPSN方式对服务器和采集终端进行时间校准。其原理如图所示:

2.4整体设计实现

综合以上描述,物联网监测系统的通信服务模型设计类图如图5:

核心类功能说明:

Commander类:命令层,完成命令和协议数据的转换,实现上层业务逻辑层的通知

ComMgr类:通信服务管理层,实现数据的传输和通信的管理

SocketCom类:实现通信com接口以及对socket封装

Protocol类:协议层,实现协议的封装和解析

3 实验分析

为了检测使用此通信服务模型性能,将从终端连接时间和数据接收CPU使用率两个方面进行分析。

测试环境:服务器端1台PC,采集终端模拟2台PC,配置均为:Intel Q8200(4 CPUS),内存4G,操作系统 windows server 2008

实验结果表明,随着客户端数量的成倍增加,终端连接登录时间和CPU利用率呈现平滑增长的趋势,此模型在合理消耗资源的基础上能够满足高并发通信要求。

4 结束语

本文针对物联网监测系统的通信服务的效率问题,结合实际的物联网监测系统项目提出了一种面向物联网监测系统的通信服务模型。模型从通信数据协议的设计到数据的高并发传输均提出了相对有效的实现方案。最后通过模拟实验得出此通信服务模型能够较好的满足物联网监测系统的高并发要求。

目前此通信服务模型已经在小规模物联网监测系统中验证,以后将在大规模应用中不断完善。

参考文献

[1]朴利民,李建中,陈渝. 无线传感器网络[M] 北京:清华大学出版社,2005

PU L M,LI J Z,CHEN Y . wireless sensor networks[M]. Beijing: Tsinghua University Press,2005

[2] 王海陶,宋小明,卢纪宇. 物联网业务特征及业务模型研究[J].广西通信技术,2012年第3期

WANG H T,SONG X M,LU J Y. Research on business characteristics and business model of IOT[J]. Guangxi Communication Technology,2011.3th

[3] 唐丽霞,王会燃,刘锐锋. 电力物联网信息模型及通信协议的设计与实现[J].西安工程大学学报,2010年12月,第24卷,第6期.

TANG L X,WANG H R, LIU R F . Design and implement of information model and communication protocol for power internet of things [J]. Journal of Xi’all Polytechnic University,vol.24,No.6,Dec.2010

[4] 冯 俊. 物联网信息采集系统的设计与实现[J].电脑知识与技术,2011 11月,第7卷,第28期.

FENG J . Design and implementation of information collection system for IOT [J]. Computer knowledge and technology,vol.7,No.28,October 2011.

[5] 杨丰玉,陈 英,吴振华. 一种面向物联网应用的底层网络通信模块设计[J].计算机应用与研究,2012年3月,第29卷,第3期.

YANG F Y, CHEN Y, WU Z H . Design of underlying communication model for application in Internet of Things [J]. Application Research of Computers,vol.29,No.3,Mar 2012.

[6] 胡 萍,陈志鹏. 基于线程池的高性能服务器软件的设计和实现[J].计算机技术与发展,2006年8月,第16卷,第8期.

HU P, CHEN Z P . Design and Realization of Software of High Performance Server Based on Thread Pool Technology [J]. Computer Technology And Development,vol.16,No.8,Dec.2006

[7] 孙卫琴. Java网络编程精解[M].北京:电子工业出版社,2008

SUN W Q . java network programming[M]. Beijing: Electronic Industry Press,2008

推荐访问: 联网 监测系统 模型 面向 通信