APP下载

物联网广泛协议标准化适配接口系统设计与研究

2016-07-07段为中国移动通信集团广东有限公司广州510623

电信工程技术与标准化 2016年5期
关键词:物联网

段为(中国移动通信集团广东有限公司,广州 510623)



物联网广泛协议标准化适配接口系统设计与研究

段为
(中国移动通信集团广东有限公司,广州 510623)

摘 要针对目前物联网发展过程中终端协议繁多、不统一且复杂等问题,本论文采用了NIO、NoSQL、XML和JavaEE等技术,对物联网广泛协议的标准化适配进行了研究与实现。研究结果阐明了物联网广泛协议标准化适配的重要意义,为物联网上层应用提供了简单、快速、高效的基础平台。

关键词物联网; 终端协议; 标准化适配; NIO; NoSQL

1 引言

随着物联网技术的广泛应用,各行业各类型的物联网终端迅速发展,未来规模也在不断扩大。但是,目前终端通信协议众多并且很难统一,使用较多的协议,如Modbus、ZigBee、MQTT、CIP、WMMP-A/WMMPSA、RS232/485等协议,每个协议都有自己的使用场景或适用行业。除了这些主流并且较规范统一的协议之外,部分终端厂商还有自己的终端通信协议。物联网应用开发者面对复杂繁多的终端协议,自己逐一解析开发应用的成本大并且耗时较长。因此,与物联网终端协议的标准化适配问题是物联网研究的一个重要方向。从中国移动推动物联网快速发展的角度看,协议标准化适配和快速接入,将大大降低物联网应用开发者的开发成本和开发周期,从而巩固中国移动在物联网发展中的地位。

物联网涉及智能感知、识别技术与普适计算等通信感知技术,被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。物联网是互联网的应用拓展,与其说物联网是网络,不如说物联网是业务和应用。到2020年,中国会有54亿个物联网终端,其中全球每5个就有1个物联网终端在中国;预计物联网将创造3 250亿美元的市场。面对如此庞大的终端市场,物联网应用的发展潜能也是非常巨大的。

众所周知,每个行业甚至每种类型、每个厂商的终端都有自己的特定标准和协议,这对物联网终端接入网络以及物联网应用的快速发展造成了一定的障碍。如果类比的话,微信是把人与人,以及人与商家、应用连接在一起的基础平台,从而微信公众号等应用能快速发展,而目前移动物联网恰恰缺少一个作用类似微信的基础平台把协议各异的物联网终端通过标准化适配将人、系统和应用都连接在一起,导致目前物联网应用发展较慢。

2 物联网广泛协议适配系统定位

2.1系统定位

主要研究和实现一个与具体行业业务语义无关的物联网广泛协议适配接口系统,实现行业终端各种通信协议的处理、数据采集及管理,为上层应用提供一个安全、可靠、稳定的终端接入通道和基础平台。系统支持多种终端的快速接入适配、数据解析和存储等,降低物联网应用开发者的开发成本和降低开发周期,从而推动物联网应用的发展。图1为物联网广泛协议适配接口系统逻辑架构图。

2.2系统需求描述

针对目前物联网终端种类繁多、协议复杂且不一、接入开发成本大和耗时长等现状,物联网广泛协议适配接口系统主要是研究各类物联网终端的标准化适配、快速接入、数据存储和转发等。系统主要从以下几方面需求来考虑:(1)协议的标准化配置;(2)高并发终端接入;(3) 正确解析终端数据;(4)不同结构类型数据存储。主要需求描述如下。

协议的标准化配置:每个协议都有自己的标准和规则,协议配置需要最大程度地兼容各类型的协议,特别是主流的终端协议,以达到统一协议、标准化配置的目的。系统同时需要保留相应接口,针对部分特殊协议予以自定义扩展实现,提高系统的可扩展性。

高并发终端接入:系统应考虑未来百万级的终端接入量,面对海量接入终端,系统需解决高并发问题,提高系统的并发数和吞吐率。

图1 物联网广泛协议适配接口系统逻辑架构图

正确解析终端数据:根据在系统的配置协议,系统需要将终端上传的数据正确、高效地解析。除了接收和解析终端上行数据,系统可以对指定上行指令进行回应或者主动向终端下发数据。

不同结构类型数据存储:各行业各类型的终端数据解析之后的数据结构都不一样,本系统需要实现将不同结构类型终端数据的快速读写。图2为物联网广泛协议适配接口系统功能架构图(系统包括除基础网络和应用之外其余各层)。

图2 物联网广泛协议适配接口系统功能架构图(系统包括除基础网络和应用之外其余各层)

3 物联网广泛协议标准化适配关键技术实现

3.1协议的标准化配置

由于面对的协议众多,兼容大多数主流协议如Modbus、RS232/485、Wmmp-s/T等是本系统的难点之一。所谓协议,是经过协商后而形成的一种标准。根据协议将设备数据分开每一小段,那么每一段都有它的含义。比如设备数据前面6个字节代表的是设备编号,后面4个字节是温度等,那么我们就可以根据该协议将设备数据拆成两部分,然后再进行数据类型转换,那么就可以解析出设备相应的一些数据。这是系统标准化协议配置中基本的实现原理。当然部分协议实际情况比较复杂,比如长度不固定等,所以这些复杂因素在系统设计过程中都要考虑进去。

本系统将协议拆分为模组协议和设备协议,相当于将终端上行数据由相应的模组协议和设备协议分别解析,它们的解析结果合成后就是完整的终端数据。无论是模组协议配置还是设备协议配置,它们设计思路和实现原理都是一致的。协议配置主要是熟悉协议后,根据系统约定的规则以XML节点方式拆分成各数据类型的字段,目前系统支持的字段有字节类型、短整型、整型、长整型、数组、固定长度字符串、不固定长度字符串、按位与设备包等,并可以根据实际需求不断扩展。针对一些设备数据长度不固定,或者协议比较特殊等情况,系统同时保留了相应接口,由开发者实现该接口而自定义解析数据,提高了系统对各种协议的兼容性和可扩展性。图3为协议标准化配置示例图。

在系统启动的时候加载所有正确配置的协议,每个协议都以协议对象的形式保存在内存中。系统收到设备数据时首先是在内存中查找相应的协议对象,然后使用该协议对象解析该数据。协议作为系统插件,支持类似硬件的“热插拔”:在系统运行时新增和修改协议,都会触发协议对象在内存中生成和更新。

图3 协议标准化配置示例图

3.2NIO高并发通信机制

NIO是New IO的简称,相对于传统的IO操作,它支持锁和内存映射文件的文件访问接口,提供多路非阻塞式的高伸缩性网络I/O。NIO最大的特点就是面向块、非阻塞和高伸缩性等,速度比较快,适合高并发的应用场景。NIO的工作原理如图4所示。

由一个专门的线程来处理所有的IO事件,并负责分发。

事件驱动机制:事件到的时候触发,而不是同步的去监视事件。

线程通信:线程之间通过Wait、Notify等方式通信,保证每次上下文切换都是有意义的,减少无谓的线程切换。

NIO的服务端只需启动一个专门的线程来处理所有的IO事件,NIO采用了双向通道(Channel)进行数据传输,而不是单向流(Stream),在通道上可以注册我们感兴趣的事件。一共有以下4种事件:服务端接收客户端连接事件、客户端连接服务端事件、读事件和写事件。

图4 NIO工作原理图

服务端和客户端各自维护一个管理通道的对象,我们称之为Selector,该对象能检测一个或多个通道(Channel)上的事件。以服务端为例,如果服务端的Selector上注册了读事件,某时刻客户端给服务端送了一些数据,阻塞I/O这时会调用Read()方法阻塞地读取数据,而NIO的服务端会在Selector中添加一个读事件。服务端的处理线程会轮询地访问Selector,如果访问Selector时发现有感兴趣的事件到达,则处理这些事件,如果没有感兴趣的事件到达,则处理线程会一直阻塞直到感兴趣的事件到达为止。

考虑到大量各种终端的连接需求,在技术架构上系统采用了NIO技术设计和实现了TCP和UDP通信引擎。同时加入了多线程控制,采用线程池技术动态地分配和调节线程数,异步、高效地处理连接和读写等事件,有效提高了系统的吞吐率和并发数。

系统通过合理的技术架构,同时随着终端接入量的增大相应地对服务器进行扩容,解决了系统的高并发问题。

3.3数据快速解析过程

在系统启动的时候,系统将所有正确配置的协议以协议对象的形式加载到内存里面,模组/设备管理器在解析数据时就会先找到相应的协议对象,然后使用该协议对象对数据进行解析。数据解析流程如图5所示。

终端上行数据首先经过模组协议,循环读取和解析直到该协议所有字段已读完。如果数据长度不足,退出循环并且记录当前读取步骤,为下一次数据长度足够时解析做准备。经过模组协议所有的步骤之后,将设备部分数据交给设备协议去解析,跟模组协议一样经过相同的流程循环读取和解析,直到该协议所有字段已读完或者数据长度已不足时结束。

无论是模组协议和设备协议解析出来的数据都会临时存放在同一个数据流当中,它们在数据流中合起来的数据才是完整的解析后数据。数据流包含了终端的原始数据和解析后的数据,它贯穿了系统的整个解析和编码过程,也就是从数据上传到回应都可以读写数据流里的数据。数据流是系统的数据总线,允许系统对数据的任意扩展和处理。系统数据流程图如图6所示。

图5 数据解析流程图

3.4NoSQL存储不同结构类型数据

图6 系统数据流程图

数据流只是将数据临时存储在内存中,方便系统对终端数据的快速读写和扩展处理等。当系统处理完之后,最终还会将数据流中的数据保存在数据库中持久化。由于终端协议众多,系统解析后的数据和数据结构都不一致。

我们知道,传统的关系数据库通常结构固定、不易自动扩展,所以单纯的关系数据库不能满足系统的需求。但是近年来兴起的NoSQL数据库中,它们具有很高的可扩展性和灵活的数据模型,可以以JSON形式存储数据,灵活地存储不同结构类型的数据,并且是读写速度较关系型数据库快很多,对于高并发、数据量大的系统是非常符合要求的。因此本系统将结合NoSQL数据库中的MongoDB数据库技术,以解决不同结构类型数据的存储和高效读写问题。

相对于关系型数据库,MongoDB数据库技术具有以下优势。

文档存储。数据存储以BSON/JSON文档,这使得整个系统的数据表示可采用统一的模型。所有这一切都无需任何前期架构设计。

可扩展性。扩展性强和数据模型灵活,通过分片数据缩放处理理论上可实现更高的吞吐量。

易于查询。MongoDB以文档的形式存储数据,不支持事务和表连接。因此查询的编写、理解和优化都容易得多。简单查询设计思路不同于SQL模式,嵌入文档在特定的环境下可得到更好的查询。

安全性。由于MongoDB客户端生成的查询为BSON对象,而不是可以被解析的字符串,所以可降低受到SQL注入的攻击的危险。

由于MongoDB数据库的技术优势,系统将此用作存放终端数据,很好满足了系统不同结构类型数据的存储和快速查询等需求。

4 结论

物联网广泛协议标准化适配接口系统采用高并发的NIO通信技术和高效能的NoSQL数据库技术,通过先进的云应用架构,设计和实现了终端的标准化适配和快速接入的基础平台。物联网应用开发者只需要在该基础平台中注册终端并且配置协议,系统就可以正确解析数据并提供给开发者,免去了物联网应用开发时繁琐的终端接入和解析过程,大大提高了开发效率,降低了开发成本。

本系统在设计上遵循JavaEE技术规范和标准,合理地抽象出接口,保证了系统的扩展性和可靠性。在物联网快速发展的过程中,根据实际需求继续完善和优化,并配合实际网络实现一个更符合物联网应用及业务发展需求的物联网广泛协议标准化适配基础平台。

本论文发展了物联网广泛协议的标准化适配研究方法,目的是论述支撑物联网业务快速接入物联网终端和开发物联网应用的基础平台,从而减少开发成本和时间,以推动物联网业务的发展。

Board protocol standard adaptation interface system design and research of internet of things

DUAN Wei
(China Mobile Group Guangdong Co., Ltd., Guangzhou, China, 510623)

AbstractAccording to current development of internet of things withVarious, incongruous and complex terminal protocol, this paper had researched and implemented board protocol standard adaptation of internet of things using the technology of NIO, NoSQL, XML and JavaEE. The research results illustrate the important significance of board protocol standard adaptation of internet of things, which provides a simple, quick and effi cient platform for the application of internet of things.

Keywordsinternet of things; terminal protocol; standard adaptation; NIO; NoSQL

中图分类号TN915

文献标识码A

文章编号1008-5599(2016)05-0029-05

收稿日期:2016-03-02

猜你喜欢

物联网
基于物联网的无线测温模块设计
基于物联网ZigBee技术的智能家居监控系统 
基于高职院校物联网技术应用人才培养的思考分析
如何在高校架设学生洗衣服务系统
基于无线组网的智慧公交站点信息系统研究与实践
基于LABVIEW的温室管理系统的研究与设计
论智能油田的发展趋势及必要性
中国或成“物联网”领军者