物联网设备协议转换方法及基于该方法的灯杆运营平台与流程

文档序号:16686414发布日期:2019-01-22 18:21阅读:303来源:国知局
物联网设备协议转换方法及基于该方法的灯杆运营平台与流程

本发明涉及avro在物联网设备数据采集中的协议转化、数据传输和数据校验的应用领域,具体设计一种物联网设备协议转换方法及基于该方法的运营平台。



背景技术:

随着万物互联时代的快速发展,物联网设备种类多样,协议类型千差万别,数据体量大,导致在应用层很难处理和适配多协议类型数据,以及数据传输校验。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种物联网设备协议转换方法及基于该方法的运营平台。

第一方面,本申请实施例提供了一种应用于业务系统的物联网设备协议转换方法,其中,协议网关的运用包括以下步骤:

s1,利用http请求定时从协议中心获取协议内容,进行解析和缓存,所述协议内容为协议中心基于avro定义的协议,分为i类协议、ii类协议、iii类协议以及对应的头协议;

s2,根据所述协议内容,消费消息队列数据,并用缓存协议中的i类头协议反序列化数据、数据验证;

s3,根据所述i类头协议中的操作项,从所述s2缓存协议中获取对应的i类具体数据协议内容,反序列化i类协议内容并进行数据验证;

s4,根据所述s3的数据,结合数据库中的数据,转化为设备的具体请求数据格式,并加入缓存;

s5,消费所述s4中缓存数据,并发送到设备;

s6,获取所述设备返回的数据,利用所述iii类协议进行序列化,并发送到消息队列中;

s7,消费所述s6中的消息队列数据,数据转化模块把所述iii类协议数据进行反序列化,根据数据生成所述ii类协议数据;

s8,处理所述ii类协议数据,并通过转发器发送给用以处理所述ii类协议并运用的业务系统。

s1中,所述基于avro定义的协议为json协议格式。

s4中,所述数据格式包括json、portobuf、16进制字符串。

s5中,所述协议网关通过http、mqtt、websocket、socket协议将所述缓存数据发送到设备。

s6中,所述协议网关通过同步和/或异步的方式获取所述设备返回的数据。

s6中,所述协议网关通过所述iii类协议封装数据,并序列化发送到消息队列。

s7中,所述ii类协议包括业务ii类协议、告警ii类协议、设备状态ii类协议。

s8中,所述协议网关根据所述s7产生的结果,通过存储模块把数据存储到数据库中,通过转发器模块把数据转发到对应的业务系统中。

第二方面,本申请实施例提供了一种应用于协议中心物联网设备协议转换方法,其中,协议中心的流程包括以下步骤:

定义avro标准协议;

定义i、ii类协议的头协议;

定义iii类协议内容;

定义i类协议内容;

定义ii类协议内容;

存储上述各协议内容。

第三方面,本申请实施例提供了一种基于该物联网设备协议转换方法的灯杆运营平台,所述灯杆运营平台基于所述应用于业务系统的该物联网设备协议转换方法实现数据的传输。

本申请实施例提供的物联网设备协议转换方案,平台利用avro定义统一标准数据格式,对于同种设备功能不同厂家或型号的设备定义设备协议,在传输开始时校验数据准确性,通过avro序列化后的数据可以减少传输量,保证数据的快速传输。

基于avro协议解决业务系统与设备之间的数据格式定义、数据传输和数据校验。利用avro协议可以定义一套标准的数据传输协议,序列化后的数据能够在mq、http(s)、socket、websocket等多种通信协议之间传输。avro协议序列化支持java、nodejs、python的多种开发语言。avro协议支持文本json格式定义,只需在协议中心定义和存储一套标准协议,并对业务系统提供获取协议数据格式、解析协议、序列化协议、反序列化协议等接口,在一定程度上保证各个系统使用的协议都是相同的而且不会被人为改变。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出了本申请实施例中的协议中心定义协议的流程示意图;

图2示出了本申请实施例中业务系统运用协议的流程示意图;

图3示出了本申请实施例中协议网关运用协议的流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明一部分而不是全部的实施例。为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,通常在此附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

动态avro协议在业务系统中的运用步骤如下:

步骤1-1:协议中心利用avro定义json协议格式,协议分i类协议、ii类协议、iii类协议以及对应的头协议;

步骤1-2:业务系统利用http请求定时从协议中心获取定义的协议内容,进行解析和缓存;

步骤1-3:使用步骤1-2中定义的协议,业务系统根据协议中心定义的操作项获取具体的协议内容,并组织成数据进行序列化、格式验证;

步骤1-4:使用步骤1-3中的序列化数据,业务系统把序列化的数据通过mq、websocket、socket等协议发送到协议网关消息队列中;

动态avro协议在协议网关中的运用步骤如下:

步骤2-1:协议网关利用http请求定时从协议中心获取定义的协议内容,进行解析和缓存;

步骤2-2:根据步骤2-1中的协议内容,协议网关消费消息队列数据并用步骤2-1缓存协议中的i类头协议反序列化数据、数据验证;

步骤2-3:根据步骤2-2的头协议中的操作项,从步骤2-1缓存协议中获取对应i类具体数据协议内容,反序列化i类协议内容并进行数据验证;

步骤2-4:根据步骤2-3的数据,结合数据库中的数据转化为设备的具体请求数据格式(json、portobuf、16进制字符串等),并加入缓存;

步骤2-5:网关消费缓存中数据并把数据通过http、mqtt、websocket、socket等协议发送到设备;

步骤2-6:网关可以根据步骤2-5获取同步数据,也可以根据设备自动连接网关,网关通过iii类协议封装数据并序列化发送到消息队列;

步骤2-7:数据转化模块把iii类协议数据进行反序列化,根据数据转化为业务ii类协议、告警ii类协议、设备状态ii类协议。把ii类协议数据进行序列化分别发送对应的消息队列中;

步骤2-8:根据步骤2-7产生的结果,存储模块把数据存储到数据库中;

步骤2-9:根据步骤2-7产生的结果,转发器模块把数据转发到对应的业务系统中。

实施例2

如图1中所示,本发明中的协议中心是定义协议格式,根据i类协议为例,定义的数据格式如下:

i类操作项定义,其中symbols的值即为操作命令且不重复,定义格式如下:

i类协议头协议,其中optcmd的内容是i类操作项定义的格式,在协议解析时动态更换为i类操作项协议。定义格式如下:

i类协议内容,i类协议中必须有header字段,对应的具体内容是i类协议头协议,协议解析时动态更换为i类协议头类型协议。定义格式如下:

以上协议中datakey是一种自定义数据取值key,支持自定义格式,比如日期格式化等。在协议解析取值时自动处理。

实施例3

如图2所示,业务系统与协议网关交互流程。该流程包括以下步骤:

步骤1,业务系统在启动,启动后定时从协议中心利用http请求获取协议内容,获取的协议内容解析为标准的avro协议,并把key(namespace+name)和协议内容缓存,再缓存操作项与协议key的关系。提供根据操作项查询协议schema接口、把json数据转化为具体协议的genericrecord对象接口和genericrecord序列化接口等;

步骤2:业务系统对设备操作转化为具体操作项,操作项可以获取到具体的i类协议内容,把i类协议中的内容用json格式组装好,调用转化为genericrecord对象接口和序列化接口,通过mq生产者发送方法把消息发送到消息队列中;

步骤3:业务系统缓存协议头header中的assetno+optcmd+requesttime和websocket句柄关系,用于协议网关返回数据做匹配并返回给应用层,定时删除过期未返回的数据并推送到应用层;

步骤4:业务系统接收到协议网关返回的数据,通过ii类头协议反序列化数据,获取具体的操作项以及对应的协议内容,并转化为json格式,取出json字段header中的assetno+optcmd+requesttime值,从缓存中获取websocket句柄数据发送到业务层。

实施例4

如图3所示,协议网关处理协议的流程,该流程包括以下操作步骤:

步骤1:如实例2中步骤1相同;

步骤2:协议网关成功启动和监听mq的i类协议topic、ii类协议topic和iii类协议topic、数据库线程池、业务系统mq、socket服务、websocket服务等;

步骤3:监听i类mq的topic进行处理数据,mq消费者的监听者把字节数据转化为具体avro协议(i类协议),通过操作项把协议数据转化为具体设备数据协议并加入到缓存中;

步骤4:网关监听缓存并把数据通过socket、websocket、mqtt、http(s)等通信协议发送到设备以及设备平台;

步骤5:网关同步和异步两种方式获取设备以及设备平台反馈的结果数据,把结果数据通过iii类协议进行封装发送到iii协议topic;

步骤6:数据监听者,监听iii类mq,把字节数据转化为iii类协议,根据操作项分别调用不同的数据转换操作者,进行协议数据适配,转化为ii类业务数据,ii类告警数据,ii类设备状态数据。同时把以上ii类协议数据序列化发送到对应mq的topic中;

步骤7:数据存储监听者监听各ii类topic,进行avro数据协议转化,根据操作项分别调用数据存储操作者把数据存储到数据库中;

步骤8:数据转发器监听者监听各ii类topic,进行avro数据协议转化,根据数据所属地区分别调用各业务系统的消息队列服务发送avro协议的序列化数据。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1