物联网平台异构设备自适应接入方法、系统
技术领域
本发明属于物联网技术领域,尤其涉及一种物联网平台异构设备自适应接入方法、系统。
背景技术
目前,物联网市场规模庞大,据预计到2020年为止全球物联网市场规模将达到1.9万亿美元。且物联网产业链冗长,涉及软硬件开发、嵌入式开发、云产品的购买、服务器的搭建及维护等诸多环节。其中,物联网应用软件的开发周期及质量是物联网项目成败的关键。因此,缩短物联网应用软件的开发周期、提高物联网软件质量是亟待解决的问题。
传统的物联网应用开发都是以设备为中心,由设备生产厂商开发上层应用,导致物联网应用与设备间的强耦合、应用只适用于特定设备,导致应用的通用性差。而物联网项目涉及多类数据采集、传输、分析以及复合场景的融合,以设备为中心开发的应用并不能满足物联网的实际应用需求。要实现融合各类型物联网设备的应用,用户只能选择硬件设备与应用的定制开发,导致高昂的软硬件开发及维护成本。且设备生产厂商因缺乏专业的软件开发团队,软件质量及用户体验难以保障。
另外,以设备为中心的物联网应用开发方式导致物联网设备与物联网平台生态之间的强耦合,致使用户在使用物联网解决实际问题时必须采购多套物联网平台且物联网应用开发商或解决方案提供商也必须掌握不同平台的设备接入及开发方式或自行开发接入模块,拉长了物联网应用的开发周期。
针对物联网协议异构问题,现有技术学术界主要集中在构建异构协议解析网关以及标准协议之间的相互转换方面的研究,产业界主要的应用方案是在设备侧构建SDK、物联网操作系统或通信模组。非标准协议的标识问题,不涉及协议之间的相互转换,在设备侧构建SDK、物联网操作系统或通信模组的方案中,并不符合构建以应用开发为中心的物联网平台异构协议解析模块的需求。异构协议解析网关是一个硬件实体,并不满足有些场景的需求,如:智能门锁场景并不适合再额外添加一个硬件实体,且异构协议网关一般针对的是传感网协议,如:蓝牙,zigbee等,并不针对MQTT、CoAP等应用层协议。
通过上述分析,现有技术存在的问题及缺陷为:(1)现有技术针对物联网应用与设备间存在强耦合,致使用户在使用物联网解决实际问题时必须采购多套物联网平台且物联网应用开发商或解决方案,提供商也必须掌握不同平台的设备接入及开发方式或自行开发接入模块,拉长了物联网应用的开发周期。
(2)现有技术对由标准组织主导的数据格式标准化方法无法满足物联网市场设备种类众多且不断兴起的新型物联网设备市场化的需求问题。
解决以上问题及缺陷的难度为:
(1)针对非标准物联网协议的平台侧标识问题。难点在于物联网设备接入协议可分为标准通信协议,如MQTT、CoAP等和非标准通信协议,即厂商自定义协议。由于设备接入协议,包括标准通信协议和非标准通信协议,并没有对其数据格式(payload)部分作出具体的规定,所以该部分由用户对异构的数据格式做适配工作。
(2)针对标准组织主导的数据格式标准化存在的问题。难点在于物联网协议数据格式标准体系不完善、标准数量繁杂,单一的标准很难以适配物联网产业众多的物联网设备。
解决以上问题及缺陷的意义为:
(1)解决非标准物联网协议的平台侧标识问题。有利于实现非标准协议的快速接入,提高应用程序的开发速度、降低维护系统带来的开销。
(2)解决标准组织主导的数据格式标准化存在的问题。有利于加强标准协议的相互融合,在繁多的物联网协议中一个平衡,满足应用开发稳定的需求。
发明内容
为了解决现有技术存在的问题,本发明提供了一种物联网平台异构设备自适应接入方法、系统。具体涉及一种基于IPaaS(IP&Port as a Service,IP&端口即服务)物联网平台异构设备自适应接入方法及系统。
本发明是这样实现的,一种物联网平台异构设备自适应接入系统,包括:
协议标识获取模块,用于总体架构中的设备接入层非标准物联网协议的标识;
异构协议统一化中间件,包括虚拟设备模型层、模型映射层和应用数据模型层;所述虚拟设备模型层用于对同类型虚拟设备的抽象表示;
所述模型映射层用于将原始异构的数据格式转换成在平台上描述的应用数据模型;
所述应用数据模型层,通过构建虚拟层的方式屏蔽底层异构的虚拟设备模型,为应用开发提供设备模型,并与应用开发接口对接,对不同设备开发不同的模型映射描述文件。
进一步,所述设备接入层用于完成设备的接入,包括标准协议接入模块和非标准协议接入模块;
所述标准协议适配模块使用协议默认端口号并按照协议标准进行协议的实施;
所述非标准协议适配模块,以五元组中的目的IP和目的端口号作为非标准协议的唯一标识,为每一种非标准协议分配固定且唯一的IP+端口用于适配相应的非标准协议。
进一步,所述虚拟设备模型层中虚拟设备的属性包括Id、Name、Description、Protocol、DeviceList、RawdataId、Namespace和Manufacturer;
所述Id为虚拟设备模型的唯一标识;
所述Name为虚拟设备模型名称;
所述Description为虚拟设备模型的描述信息;
所述Proctocol为虚拟设备模型所使用的协议;
所述DeviceList为使用该虚拟模型的虚拟设备列表;
所述RawdataId为设备接入层用于异构协议的标识;
所述SN为应用模版的标识,
所述Manufacturer表示设备的生产厂家;
所述RawdataId为设备接入层用于异构协议的标识。
进一步,所述模型映射层还通过模型映射方法分别对JSON物联网协议和二进制形式的物联网协议完成映射;
所述JSON形式的物联网协议用于在原始数据中查找数据模型中对应的数据,然后再将数据进行处理成数据模型规定的形式,实施协议原始数据到数据模型的映射工作;
所述二进制形式的物联网协议用于通过预先定义协议状态的形式进行有限确定状态机组装;实施二进制物联网协议的模型映射任务;所述有限确定状态机由帧头、帧尾、长度标识位、功能码、数据和校验位构建,所述帧头、帧尾、长度标识位、功能码、数据和校验位与应用数据模型层中应用数据模型的属性名称进行映射。
进一步,所述应用数据模型层的应用数据模型属性包括:
SN为应用数据模型的标识;
Name为应用数据模型的名称;
Description为应用数据模型的描述信息;
NodeList表示应用数据模型下所有的节点列表;
Namespace为虚拟设备统一描述模型的命名空间;
Version为虚拟设备统一描述模型的版本号,与Namespace共同标识虚拟设备统一描述模型。
虚拟节点为针对应用的虚拟设备标识。
本发明的另一目的在于提供一种物联网平台异构设备自适应接入方法,包括:
步骤一,通过图形化用户接口构建应用数据模型及绑定;
步骤二,进行平台协议解析;
步骤三,基于异构协议统一化中间件进行应用数据标识及发送。
进一步,所述步骤一进一步包括:
(1)在平台构建应用数据模型;
(2)在平台上创建虚拟设备模型并与应用数据模型及虚拟设备进行绑定。
所述步骤二进一步包括:
1)所有协议适配层组件均运行于Docker容器中,并由kubernetes统一调度管理;标准协议在接收到数据后进行协议相关处理,非标准协议直接进行转发;标准协议采用的开源中间件为:mosquitto处理MQTT协议,californium处理 CoAP协议;
2)发布原始数据到消息队列,topic:rawdata{id:{#rawdataId}},{#}中值为变量,RawdataId为设备接入层用于异构协议的标识;
3)由异构协议统一化中间件消费原始数据,根据id查找协议对应的数据模型映射文件并进行统一化处理,将统一化处理后的结果再次发布到消息队列供平台其他模块使用,发布主题为topic:nomalized protocol{id:{#namespace}};
所述步骤三进一步包括:(i)订阅消息中间件上的rawdata主题,进行原始数据的接收;
(ii)根据rawdata中的id字段查询对应的虚拟设备模型的Id、SN、DeviceList 信息;
(iii)模型映射文件由虚拟设备模型Id命名,根据虚拟设备模型Id查找到对应的模型映射文件;
(iv)进行原始数据到应用数据模型的映射工作,并获取虚拟设备标识 DeviceId;
(v)根据虚拟设备标识在DeviceList虚拟设备列表中查询设备是否注册;
(vi)在应用数据模型中根据SN查询DeviceId对应的NodeId;
(vii)组织数据并重新发布到消息中间件。
本发明的另一目的在于提供一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行所述的物联网平台异构设备自适应接入方法,包括下列步骤:
步骤1,通过图形化用户接口构建应用数据模型及绑定;
步骤2,进行平台协议解析;
步骤3,基于异构协议统一化中间件进行应用数据标识及发送。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述的物联网平台异构设备自适应接入方法。
本发明的另一目的在于提供一种搭载所述物联网平台异构设备自适应接入系统,所述物联网平台异构设备自适应接入系统包括:协议标识获取模块,用于总体架构中的设备接入层非标准物联网协议的标识;
异构协议统一化中间件,包括虚拟设备模型层、模型映射层和应用数据模型层;所述虚拟设备模型层用于对同类型虚拟设备的抽象表示;
所述模型映射层用于将原始异构的数据格式转换成在平台上描述的应用数据模型;
所述应用数据模型层,通过构建虚拟层的方式屏蔽底层异构的虚拟设备模型,为应用开发提供设备模型,并与应用开发接口对接,对不同设备开发不同的模型映射描述文件。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:各协议接入模块完成异构设备的接入工作,是IPaaS方案设备接入层的具体实现,包括标准协议MQTT、CoAP协议的接入和协议标识获取模块实现非标准物联网协议的接入与标识,物联网网络协议识别方法在协议标识获取模块中实现,已接入虚拟设备列表系统截图。其中,接入协议为非标准协议且数据格式原始标识形如"192.168.10.3:51673"的设备采用的标识方法为IPaaS的标识方法,数据格式原始标识形如"{datastreams,[{temp,humi,sn}]}"的设备采用的标识方法为JSON形式的网络协议特征识别方法,数据格式原始标识形如"——"的设备采用的标识方法为二进制形式的网络协议特征识别方法。
本发明基于TCP或UDP服务端口与网络应用协议之间的映射关系,提出了 IPaaS的物联网异构协议平台侧自适应解析方法。针对物联网应用与设备间的强耦合问题,提出了针对应用开发稳定的虚拟设备数据模型三层映射方法。针对由标准组织主导的数据格式标准化方法无法满足物联网市场设备种类众多且不断兴起的新型物联网设备市场化的需求问题,提出了面向应用开发人员的虚拟设备统一描述模型开源协同机制。通过对应用程序开发稳定的虚拟设备数据模型三层映射方法和面向应用开发人员的虚拟设备统一描述模型开源协同机制作为IPaaS的一部分,构建针对应用开发稳定的虚拟设备数据模型及其共享共建机制。
相比于现有技术,本发明的优点进一步包括:本发明提出构建以应用开发为中心的物联网平台,以更好的利用现有的软件开发公司与人员,提高构建物联网应用的灵活性、用户体验与软件质量。打造以应用开发为中心的物联网平台最核心的就是在平台侧解决任意协议已知的物联网设备的接入问题和构建针对应用开发稳定的虚拟设备数据模型映射机制的分析,并适用于软件开发人员的虚拟设备数据模型共享共建方法。基于市面上的物联网设备只能够修改设备指向(即:设备信息上报的目的IP和端口)的事实,提出IPaaS的物联网平台侧设备接入方案,让应用开发者以最小代价接入设备与维护应用。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的物联网平台异构设备自适应接入方法流程图。
图2是本发明实施例提供的物联网平台异构设备自适应接入方法原理图。
图3是本发明实施例提供的平台协议解析流程图。
图4是本发明实施例提供的异构协议统一化中间件的操作流程图。
图5是本发明实施例提供的虚拟设备列表系统示意图。
图6是本发明实施例提供的统一化中间件功能验证测试数据示意图。
图7是本发明实施例提供的统一化中间件功能验证测试数据示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有技术针对物联网应用与设备间存在强耦合,致使用户在使用物联网解决实际问题时必须采购多套物联网平台且物联网应用开发商或解决方案,提供商也必须掌握不同平台的设备接入及开发方式或自行开发接入模块,拉长了物联网应用的开发周期。现有技术对由标准组织主导的数据格式标准化方法无法满足物联网市场设备种类众多且不断兴起的新型物联网设备市场化的需求问题。
针对现有技术存在的问题,本发明提供了一种物联网平台异构设备自适应接入方法、系统,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供一种物联网平台异构设备自适应接入方法,包括:
S101,通过图形化用户接口构建应用数据模型及绑定。
S102,进行平台协议解析。
S103,基于异构协议统一化中间件进行应用数据标识及发送。
步骤S101具体包括:
(1)用户在平台构建应用数据模型;
(2)用户在平台上创建虚拟设备模型并与应用数据模型及虚拟设备进行绑定。
步骤S102(如图3)具体包括:
(1)所有协议适配层组件均运行于Docker容器中,并由kubernetes统一调度管理。标准协议在接收到数据后进行协议相关处理,非标准协议直接进行转发操作。标准协议采用的开源中间件为:mosquitto处理MQTT协议,californium 处理CoAP协议。
(2)发布原始数据到消息队列,形式如下:topic:rawdata{id:{#rawdataId}}, "{#}"中值为变量,RawdataId是设备接入层用于异构协议的标识。
(3)由异构协议统一化中间件消费原始数据,根据id查找协议对应的数据模型映射文件并进行统一化处理,将统一化处理后的结果再次发布到消息队列供平台其他模块使用,发布主题为topic:nomalized protocol{id:{#namespace}}。
步骤S103(如图4)具体包括:
(1)订阅消息中间件上的rawdata主题,进行原始数据的接收。
(2)根据rawdata中的id字段查询对应的虚拟设备模型的Id、SN、DeviceList 等信息。
(3)模型映射文件由虚拟设备模型Id命名,根据虚拟设备模型Id查找到对应的模型映射文件。
(4)进行原始数据到应用数据模型的映射工作,并获取虚拟设备标识 DeviceId。
(5)根据虚拟设备标识在DeviceList虚拟设备列表中查询设备是否注册。
(6)在应用数据模型中根据SN查询DeviceId对应的NodeId。
(7)组织数据并重新发布到消息中间件供其他模块使用。
本发明中IPaaS物联网平台侧异构设备接入系统包括协议标识获取模块和异构协议统一化中间件两部分。协议标识获取模块实现总体架构中的设备接入层非标准物联网协议的标识,异构协议统一化中间件实现虚拟设备模型层、模型映射层和应用数据模型层。
在本发明中,IPaaS物联网平台侧异构设备接入系统分为四个层次(如图2 所示),分别为设备接入层、虚拟设备模型表示层、模型映射层和针对应用开发稳定的虚拟设备数据模型层,简称应用数据模型层。
本发明提出通过软件开发人员熟悉的开源协同的方式构建虚拟设备统一描述模型,应用数据模型使用虚拟设备统一描述模型作为其对设备的统一描述,软件开发直接基于应用数据模型不针对具体设备,不同厂商设备由虚拟设备模型表示,通过模型映射完成虚拟设备数据格式到应用数据模型统一描述的转换,应用数据模型与虚拟设备模型为一对多关系,可实现虚拟设备模型的热插拔,从而实现应用数据模型针对应用开发的稳定。
(1)设备接入层
设备接入层完成设备的接入工作,分为标准协议接入模块和非标准协议接入模块,标准协议适配模块使用协议默认端口号并按照协议标准实现协议,非标准协议适配模块以五元组中的目的IP和目的端口号作为非标准协议的唯一标识,为每一种非标准协议分配固定且唯一的IP+端口用于适配相应的非标准协议。
(2)虚拟设备模型层
虚拟设备模型表示层负责对同类型虚拟设备的抽象表示,是虚拟设备的集合。虚拟设备属性包括Id、Name、Description、Protocol、DeviceList、RawdataId、 Namespace和Manufacturer。Id是虚拟设备模型的唯一标识,Name为虚拟设备模型名称,Description为虚拟设备模型的描述信息,Proctocol是虚拟设备模型所使用的协议,DeviceList是使用该虚拟模型的虚拟设备列表,RawdataId是设备接入层用于异构协议的标识,SN是应用模版的标识,Manufacturer表示设备的生产厂家。
本发明通过在虚拟设备模版中设置虚拟设备列表,通过设备标识完成设备与平台的绑定保障平台的安全。
RawdataId是设备接入层用于异构协议的标识,但设备接入层由于同时存在多种协议标识方法,各协议标识方法所提取的标识并不统一,不适用于作为虚拟设备模型的标识。
表1虚拟设备模型属性描述
(3)模型映射层
模型映射层负责将原始异构的数据格式转换成开发者在平台上描述的应用数据模型。该模型映射方法分别针对JSON和二进制形式的物联网协议采用不同的方法完成映射。针对JSON形式的物联网协议,首先在原始数据中查找数据模型中对应的数据,然后再将数据进行处理成数据模型规定的形式,完成协议原始数据到数据模型的映射工作。针对二进制形式的物联网协议,通过预先定义协议状态的形式完成二进制物联网协议的有限确定状态机组装。
二进制物联网协议可分解为帧头、帧尾、长度标识位、功能码、数据和校验位,由这些标识所构建的有限确定状态机可以完成二进制物联网协议的模型映射任务。各功能码与应用数据模型中的属性名称完成映射。
(4)应用数据模型层
应用数据模型层通过构建一个虚拟层的方式屏蔽底层异构的虚拟设备模型,为应用开发提供一个稳定的设备模型,与应用开发接口对接,针对不同厂家设备只需开发不同的模型映射描述文件即可,保证应用开发不受设备更换的影响。应用数据模型层的描述如表2,SN为应用数据模型的标识;Name为应用数据模型的名称;Description为应用数据模型的描述信息;NodeList表示应用数据模型下所有的节点列表;Namespace是虚拟设备统一描述模型的命名空间; Version是虚拟设备统一描述模型的版本号,与Namespace共同标识虚拟设备统一描述模型。虚拟节点(NodeId)是针对应用的虚拟设备标识,由于各虚拟设备标识异构,即:DeviceId异构,不适用于直接作为针对应用的标识,所以用NodeId 作为虚拟设备针对应用的统一标识。
表2应用数据模型属性描述
属性 |
描述 |
SN |
应用数据模型标识 |
Name |
应用数据模型名称 |
Description |
应用数据模型描述 |
NodeList |
应用节点列表 |
Namespace |
虚拟设备统一描述模型命名空间 |
Version |
虚拟设备统一描述模型版本 |
下面结合积极效果对本发明作进一步描述。
本发明通过对IPaaS方法中物接入方法的分析,基于TCP或UDP服务端口与网络应用协议之间的映射关系,解决了非标准物联网协议平台侧标识问题。通过对IPaaS方法中物解析方法的分析,提出了针对应用开发稳定的虚拟设备数据模型三层映射方法,解决缺乏适用于针对应用开发稳定的虚拟设备数据模型构建方法问题。通过对IPaaS方法中物模型的分析,提出了面向应用开发人员的虚拟设备统一描述模型开源协同机制,解决了由标准组织主导的数据格式标准化方法无法满足物联网市场设备种类众多且不断兴起的新型物联网设备市场化的需求问题。
下面结合实验对本发明的技术效果作详细的描述。
本实验完成了各协议模块的功能验证。各协议接入模块完成异构设备的接入工作,是IPaaS方案设备接入层的具体实现,包括标准协议MQTT、CoAP协议的接入和协议标识获取模块实现非标准物联网协议的接入与标识,已接入虚拟设备列表系统截图如图5所示。其中,接入协议为非标准协议且数据格式原始标识形如"192.168.10.3:51673"的设备采用的标识方法为IPaaS的标识方法,数据格式原始标识形如"{datastreams,[{temp,humi,sn}]}"的设备采用的标识方法为 JSON形式的网络协议特征识别方法,数据格式原始标识形如"——"的设备采用的标识方法为二进制形式的网络协议特征识别方法。
实验完成了统一化中间件模块功能验证。异构协议的统一化中间件模块负责数据格式的解析工作,将异构的数据格式通过协议映射模块将原始数据格式转化为用户定义的虚拟设备模型和应用数据模型规定的格式。为验证功能,本发明发送的数据如图6所示,使用mosquitto客户端通过MQTT协议发送。
如图7所示,实验完成统一化中间件模块用户接口验证。异构协议统一化中间件模块的用户接口部分包括应用数据模型、虚拟设备模型和虚拟设备的详细信息、修改、创建等,以及JSON和二进制形式物联网协议的映射。
(1)应用数据模型的创建
应用数据模型在创建时需要填写应用数据模型的名称和应用数据模型描述信息,以及应用数据模型所使用的虚拟设备统一描述模型的命名空间和版本号,
(2)虚拟设备模型的创建
虚拟设备模型在创建时需要填写虚拟设备模型的名称、描述信息、设备生产厂商、通信协议、所属的应用数据模型以及上传历史数据。上传历史数据根据协议形式的不同分为JSON和二进制两种不同的形式,JSON形式的协议只需上传一帧协议数据即可,二进制形式的协议需要上传尽可能多的历史数据,但都需严格按照平台要求的数据规范上传。
(3)虚拟设备的详细信息
虚拟设备详细信息包括虚拟设备的名称、描述信息、设备模版和设备类型。虚拟节点ID是针对应用的虚拟设备标识,虚拟设备ID是设备本身上传的ID。展示的属性为虚拟设备统一描述模型中定义的属性以及设备数据格式在转换之前的原始属性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。