基于REST架构的物联网设备插件机制设计

基于REST架构的物联网设备插件机制设计
朱赫;苏维均;王鑫
【摘 要】To solve the problem that the underlying equipment of the IoT gateway is limited by the communication protocol, which makes the interface underlying equipment of the gateway limited and can't switch arbitrarily in various networking scenarios.A plug-in mechanism based on REST architecture gateway was proposed to improve the flexibility and scalability.The mechanism was independent of the internal functions of the gateway, which realized the basic functions of the gateway to collect the transmission data and the equipment resource management to achieve the purpose of the equipment expansion of the access gateway, and the resource management of the device was realized through the combination of URI and protocol verb.In this research, the plugin-in mechanism was combined with a common IoT gateway architecture developed by Intel Corporation and was integrated into the architecture to carry out a verification test.The test results achieve the desired purpose.%为解决物联网网关底层设备受限于通讯协议, 导致网关底层设备接口有限,
不能在各种物联网场景任意切换的问题, 提出一种基于REST架构的物联网设备插件机制, 提高物联网网关的灵活性和可扩展性.相对独立于网关内部功能, 可单独实现网关采集传输数据、设备资源管理的基本功能, 达到接入网关设备扩展的目的, 通过统一资源标识符URI和协议动词组合的方式实现对设备的资源管理.此研究结合英特尔公司开发的通用物联网网关架构, 将插件机制融入其中进行验证测试, 测试结果达到了预期目的.
【期刊名称】《计算机工程与设计》
【年(卷),期】2019(040)001
【总页数】6页(P14-19)
【关键词】REST架构;统一资源标识符URI;物联网网关;设备管理;插件机制
【作 者】朱赫;苏维均;王鑫
【作者单位】北京工商大学 计算机与信息工程学院,北京 100038;北京工商大学 计算机与信息工程学院,北京 100038;英特尔中国有限公司,北京 100013
弹簧绳
【正文语种】中 文
【中图分类】TP3
0 引 言
伴随着物联网(IoT)[1]的浪潮,各种物联网产品接踵而至,在各种场景得到应用。例如传感器在机场防范入侵的系统中的应用,ZigBee路灯控制系统,与门禁系统相结合等等[2]。但是由于物联网设备通讯协议的多样化和物联网应用层协议尚无统一标准,导致物联网底层设备和网关的多样化。造成了如下问题:第一,大部分物联网设备针对性较强。当应用环境发生变化时,需要耗费大量的时间和精力针对不同场景开发物联网设备,并对程序、设备进行更新,这样效率低、成本高。第二,物联网网关受限于底层接入设备接口的扩展[3]。不同协议的物联网设备只能接入支持该协议的网关,无法满足现如今物联网设备需求量急剧增加的背景。因此,需要设计一种设备即插即用的机制,以解决物联网场景变换时,新的物联网底层设备接入而受限于网关下层通讯接口以至于无法扩展,需要对网关软件乃至硬件重新开发的问题[4,5]。目前还没有解决网关可扩展性的方案研究。
针对上述问题,本文设计并开发了一种基于REST架构的物联网设备插件机制。该插件机制是与作为网关软件平台的英特尔公司开发的通用物联网架构(Unversal-Agent-Broker-Arch,UABA)相结合,利用REST架构作为框架,便于各种通信协议设备连入网关的机制。该机制不但解决了物联网网关设备底层接口受限制的问题,而且也提高了网关的灵活性。在针对不同环境下的不同设备需求问题,只需通过插件机制将设备的通讯方式添加到网关内部就可以实现设备的接入,以达到对设备的远程管理和控制。
1 Plugin插件机制设计原理
Plugin插件机制设计的目的在于对网关底层接口的扩展,方便不同通讯协议的设备接入网关,并利用REST架构思想,对设备进行管理和控制。
1.1 理论基础
微软公司的Azure IoT Edge的物联网服务,核心是将云功能提供到物联网(IoT)的服务。它提供了一种思想,可以根据实际的具体情况构建物联网解决方案,无论接入设备的通讯协议是什么,都可以很快且方便的连入网关。如图1所示,Azure IoT Edge体系架构主要以以
下3部分组成:协议解析模块,过滤模块,数据传输模块。当物联网设备接入后,先对设备上报的消息进行协议解析,然后过滤获得有用的资源,最后通过传输模块发送到云端。
图1 Azure IoT Edge体系架构
同时,该架构还提出了一种消息在网关内部各个模块间相互传递的机制。通过键值对(key-value)来表示消息传输方向的对象,内容(Content)则是需要传递的数据信息,这种方式可以让各个模块串联起来,使得数据可以在网关内部通过中间传递模块(broker)传输。不管通过何种协议上传的数据,在网关内变成一种统一的数据格式,在网关内部传递最后传到云端。如图2所示。
图2 消息传递机制
双金属螺杆
1.2 REST架构
插件机制中应用了REST架构思想,用来定义和实现设备管理功能。REST(representational state transfer,REST),即表述性状态传递,是一种可以降低开发复杂性,提高系统伸缩性的针对网络应用的设计和开发方式。在REST概念中,将整个系
统对象看作一组资源的集合,系统中所有事物都抽象成资源,资源由统一资源标识符(uniform resource identifier,URI)标识,对资源进行操作除了要通过URI进行资源定位外,还需要配合HTTP协议动词(PUT、GET、POST、DELETE)来对资源自行操作,以达到控制目的[6]。
以往的基于REST架构的应用是通过复用超文本传输协议HTTP的基本操作对统一接口的资源进行操作。但由于物联网中的许多设备只有少量的内存空间和有限的计算能力,所以传统的HTTP协议应用在物联网上就显得过于庞大而不适用。针对这一特性,IETF的CoRE工作组为受限节点制定了一种基于REST架构的CoAP(constrained application protocol,CoAP)协议,它运行于UDP之上而不像HTTP协议运行于TCP之上。本文利用CoAP协议替换了传统的HTTP协议以来应对设备特性。
2 插件机制(Plugin Module)设计
Plugin Module在物联网网关软件中是一个提供设备接入通讯及管理的服务功能模块。它是运行在Linux系统上的可执行程序,它的设计开发流程跟一般嵌入式程序开发流程类似[7],具体如图3所示。
图3 插件模块设计开发流程
插件模块主要有两大功能。第一,设备通过通讯协议连入网关,并可以对设备进行读写资源操作。例如可以对设备进行开关操作,读取寄存器信息等。第二,通过Web端对接入设备资源进行管理,可远程查看设备信息并对其进行一系列的控制操作。
流化床
防冲撞护栏2.1 设计思路
苹果削皮机根据微软提出的IoT边缘服务思想,本文设计的插件机制对接入设备先进行通讯协议的解析,再对设备上报的资源进行封装为统一的数据格式,通过中间传递模块(Broker)发送到数据传输模块,上传到云端[8]。同时在插件机制中,加入了REST架构,可以通过URI和协议动词来对设备进行设备注册、设备查询、读写资源等远程控制操作。
英特尔公司在基于Azure IoT Edge体系结构的基础上,对通用物联网架构UABA中的所有功能服务重新定义,并设计出了一套自己的物联网服务软件平台。本文以其作为网关的软件平台框架,在网关内部加入插件机制,同时以西门子S7系列PLC作为样例,详细介绍插件机制功能作用,以验证用REST架构为核心的网关可扩展性。开发UABA时,在网关内部
封装了LWM2M协议和MODBUS协议,只有符合这两种协议的设备才能接入网关。而西门子S7系列的PLC设备是基于西门子公司定义的PPI或者MPI通信协议的设备,在原有的服务上,通过插件机制模块可以将新的设备接入网关,并且在此基础上,可以定义添加自己的服务功能来满足不同场景的需求。网关结构如图4所示,当设备连入网关,将经过协议解析的资源以JSON数据格式封装通过Broker推送到Iagent-Core模块,Iagent-Core模块是英特尔公司定义的设备管理服务模块,Iagent-Core模块通过基于CoAP协议的RESTful API发送给云端。
图4 加入插件机制的网关架构
2.2 RESTful API设计
2.2.1 资源URI设计
REST架构的思想是利用URL和协议动词相结合,使得可以对设备资源进行相关资源操作(CURD)[9]。为了使Web服务以及客户端服务能和云端数据库交互,网关内部采用的基于REST架构的CoAP协议。通过网关软件内部的RESTful API将服务平台层和接入层相连接。
设计URI要遵循以下4点原则:①URI具有意义且具有层次性;②URI具有独立性、可读性好;③资源重组或修改时,URI仍然可用;④URI仅标识资源而不标识行为,应当使用名词而不是动词[10]。以西门子S7系列PLC作为接入设备为例,在Plugin Module中定义的URI见表1。
表1 URI设计URI协议动词功能有无PayloadQuery URI/s7/devicePUT定义新设备并储存配置文件有无/s7/deviceGET查询设备配置文件无/s7/device?di=[]&name=[]/s7PUT向设备写资源有/s7?di=[]&area=[]&an=[]&addr=[]/s7GET向设备读资源无/s7?di=[]&area=[]&an=[]&addr=[]&len[]
物联网中每个设备都有自己的设备id,且每个设备id都不相同且唯一。表1中,Payload表示有效负载,即PUT操作需要下发到网关表示有效负载,即PUT操作需要下发到网关的资源,所有资源均以JSON的格式下发到网关。Query为查询操作,查询条件越多,对设备管理操作的针对性就越强[11-13]。
衬套2.2.2 响应设计
RESTful API使用CoAP状态码对服务器返回的结果进行描述。对于PUT操作,如果操作成功返回状态码CHANGED_2.04,失败则返回INTERNAL_SERVER_ERROR_5.00[14]。GET操作需要返回的消息体,都以JSON数据格式返回。JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。其简洁和清晰的层次结构使得易于机器解析和生成,并有效地提升网络传输效率。图5以西门子S7系列PLC为例给出了查询设备配置文件的相应情况以及返回的JSON数据格式。

本文发布于:2024-09-24 18:26:27,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/147832.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设备   网关   协议   资源
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议