物联网平台通信协议的实现方法

文档序号:7795440阅读:241来源:国知局
物联网平台通信协议的实现方法
【专利摘要】本发明公开了一种物联网平台通信协议的实现方法,包括如下步骤:设计平台通信协议枚举类型;设定平台通信协议内容;序列化平台通信协议;协议解析。相对于其他物联网平台通信协议,本发明成功解决了物联网平台传输数据量大、自成体系、难以兼容其他系统及难以扩展等缺陷。
【专利说明】物联网平台通信协议的实现方法
【技术领域】
[0001]本发明属于物联网【技术领域】,具体是一种物联网平台通信协议的实现方法,更具体涉及一种能在物联网系统内部实现信息交换和互联共享的平台通信协议的实现方法,普遍适用于物联网领域相关信息系统。
【背景技术】
[0002]随着物联网时代的到来,物联网的应用范围正在变得越来越大,各种物联网设备都需要接入到物联网相关系统,例如办公室会在需要的时候自动定购办公物品;衣服和身体上的传感器会实时将我们的健康数据传输医生;冰箱内的牛奶没有了,会自动从食品店那里定购牛奶。这类M2M(机器对机器)通信是物联网的关键之处。
[0003]随着技术的发展,传感器技术、纳米技术、全球定位技术、智能终端技术等也加入到物联网中,物联网的标准概念得到了扩展,提出了任何时刻、任何地点、任何物体之间的互联,无所不在的网络和无所不在的计算的发展前景。但目前物联网大多是在特定行业或企业闭环应用,这些闭环应用有自己的协议、标准和平台,自成体系,很难兼容,信息也难以共享。物联网的标准成为了物联网发展的一个比较大的障碍。尽快统一技术标准,形成一个管理机制,这是物联网马上就要面对的问题。目前物联网在通信协议方面的问题主要如下:
[0004]1.平台通信协议缺乏:目前物联网协议标准的制定主要集中在传输层的网络通信协议层面,而用于物联网应用层之间通信的平台协议却鲜有人研究。
[0005]2.传输数据量大:在平台通信协议层面,有研究人员采用XMPP等XML机制,但其数据传输量大,会大大增加物联网平台的网络负载。
[0006]3.自成体系,很难兼容其他系统。目前物联网大多是在特定行业或企业闭环应用,这些闭环应用有自己的协议、标准和平台,自成体系,很难兼容,信息也难以共享。

【发明内容】

[0007]发明目的:针对上述现有技术存在的问题和不足,本发明的目的是提供一种物联网平台通信协议的实现方法,相对于其他物联网平台通信协议,成功解决了传输数据量大、自成体系、难以兼容其他系统及难以扩展等缺陷。
[0008]技术方案:为实现上述发明目的,本发明采用的技术方案为一种物联网平台通信协议的实现方法,包括如下步骤:
[0009]( I)设计平台通信协议枚举类型;
[0010](2)设计平台通信协议内容;
[0011](3)序列化平台通信协议;
[0012](4)协议解析。
[0013]优选的,所述步骤(I)包括:
[0014]a)设定设备枚举:抽象出系统中所能处理的终端设备类型,设置终端名称,并存放于同一个类型描述符中;
[0015]b)设定消息通道枚举:根据消息的传输形式,设定消息通道,并存放于同一个类型描述符中;
[0016]c)设定消息分类枚举:根据物联网终端与平台之间约定的通信协议,将消息命令抽象为若干分类,并存放于同一个类型描述符中;
[0017]d)设定参数类型枚举:将物联网终端之间的静态及动态参数抽象出来,并存放于同一个类型描述符中;
[0018]e)设定消息指令枚举:根据物联网终端与平台之间约定的通信协议,将消息指令进行抽象,并存放于同一个类型描述符中。
[0019]优选的,所述步骤(2 )包括:
[0020]I)设定消息头协议:按照硬件终端的消息头格式,抽象为平台理解的消息头协议;
[0021]2)设定原始数据协议:将消息相关数据组合在一起,抽象为原始数据协议;
[0022]3)设定解析数据协议:将原始数据经过解析后进行封装,抽象为解析数据协议,并将协议内容--加入其中;
[0023]4)设定参数协议:将终端自身协议中约定的静态及动态参数进行抽象,设定参数协议;
[0024]5)设定应答结果协议:将应答结果进行抽象,形成应答结果协议;
[0025]6)设定消息内容协议:将终端自身协议中约定的消息命令进行抽象,形成消息内容协议;
[0026]7)设定下发指令协议:将对终端设备进行操作的下发指令的形式进行抽象,形成下发指令协议;
[0027]8)设定升级协议:将平台与终端约定的通信协议中的升级部分进行抽象,形成升级协议。
[0028]优选的,所述步骤(3)包括:对所述平台通信协议进行结构化消息格式定义,以及采用序列化工具生成编程语言类文件。
[0029]优选的,所述步骤(4)包括:
[0030]A)按照所述平台通信协议编写原始数据封装模块,将终端上传的二进制数据解码为原始数据;
[0031]B)按照所述平台通信协议编写状态数据解析模块,此部分输入为原始数据,输出为解析数据:根据消息头中的消息类型采用不同的协议解析方式,将消息体中的二进制数据彻底解码为终端采集到的状态信息;
[0032]C)编写下发命令封装模块,此部分输入为下发命令,输出为原始数据:按照平台通信协议将输入的下发命令编码为原始数据。
[0033]更优选的,所述步骤(4)还包括:
[0034]D)编写字节流数据解析模块:将输入的原始数据按照统一通信协议编码为字节流数据。
[0035]有益效果:本发明与现有物联网平台通信协议相比,具有以下优点:
[0036]1.采用序列化框架作为物联网平台的底层通信框架,系统间通信采用二进制格式,效率高,编码紧凑,使用方便,格式灵活,大大减少平台各系统间传递的网络通信数据量。
[0037]2.设计了物联网接入设备的硬件通信协议抽象化方法,并对这种抽象形式进行了统一规范。
[0038]3.设计了协议解析器,其用于将物联网接入设备的硬件通信协议转化为物联网平台通信协议。
【专利附图】

【附图说明】
[0039]图1为物联网平台通信协议体系架构图;
[0040]图2为上行通道协议交互流程示例图;
[0041]图3为下行通道协议交互流程示例图。
【具体实施方式】
[0042]下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0043]本发明包括如下步骤:
[0044]1、设计物联网统一平台通信协议(简称“平台通信协议”或“物联网平台协议”或“平台协议”或“统一通信协议”)枚举类型
[0045]物联网平台协议中有很多常用变量,本发明采用枚举类型来统一这些常用变量,其工作主要分为以下几个部分:
[0046]1-1:设定设备枚举
[0047]1-2:设定消息通道枚举
[0048]1-3:设定消息分类枚举
[0049]1-4:设定参数类型枚举
[0050]1-5:设定消息命令枚举
[0051]2、设定平台通信协议
[0052]每种物联网接入设备都有自己的硬件通信协议,需要相应的转化为平台通信协议,其工作主要分为以下几个部分:
[0053]2-1:设定消息头协议
[0054]2-2:设定原始数据协议
[0055]2-3:设定解析数据协议
[0056]2-4:设定参数协议
[0057]2-5:设定应答协议
[0058]2-6:设定消息内容协议
[0059]2-7:设定下发指令协议
[0060]2-8:设定升级协议
[0061]3、序列化通信协议
[0062]本发明采用序列化框架作为平台的底层通信框架,其基于二进制,因此比传统的 XMPP(Extensible Messaging and Presence Protocol), Json (JavaScript ObjectNotation)表示高效短小得多,具有效率高,编码紧凑,使用方便,格式灵活,支持二进制数据兼容,功能强大等诸多优点。其工作步聚有以下几步:
[0063]3-1:定义结构化消息格式:把前面定义好的平台协议按照一定的消息格式进行结构化定义。
[0064]3-2:生成类文件:采用序列化框架的命令行工具生成所需编程语言类文件。
[0065]4、协议解析
[0066]将接入设备的硬件通信协议转化为平台协议,需要采用协议解析器进行协议解析工作,其工作主要分为以下步聚:
[0067]4-1.按照统一通信协议编写原始数据封装模块;
[0068]4-2.按照统一通信协议编写状态数据解析模块;
[0069]4-3.编写下发命令封装模块;
[0070]4-4.编写字节流数据解析模块。
[0071]参照图1,本发明的物联网统一平台通信协议主要由设定通信协议枚举类型,设定平台通信协议,序列化通信协议和和协议解析器组成,这些组件都可以安装在Linux或Windows操作系统之上。
[0072]软件描述:
[0073]1.序列化框架:类似于XML,JSON这样的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持多种编程语言环境。通过将这些类包含在项目中,就可以很轻松的调用相关方法来完成业务消息的序列化与反序列化工作。其大大减少了物联网平台之间的网络数据传输量。
[0074]2.平台通信协议设计:将物联网接入设备的硬件通信协议抽象为平台系统之间的通信协议,定义相应的数据结构和接口,便于物联网平台之间的系统交互。
[0075]3.协议解析器(或称“解析服务器”或“协议解析服务器”):用于将物联网接入设备的二进制通信协议转换为前述设计的平台通信协议,其可解析为原始数据协议和最终数据协议。
[0076]图2为上行通道协议交互流程示例图。物联网接入设备上传数据至接入平台网关(简称“接入网关”或“网关”),网关解析终端上传数据,设置上行通道类型,消息属性分类,消息类型和消息头,并封装成原始数据,网关将封装好的原始数据传至解析服务器,其判断数据是否属于各状态数据(区域,应答,位置,参数等),并封装为解析数据,解析数据传至后端业务平台(或称“业务服务器”)进行业务处理。
[0077]图3为下行通道协议交互流程示例图。业务服务器通过设置下行通道类型,消息属性分类,消息类型以及相应指令信息,封装下发指令,协议解析服务器分析下发指令,判断其是否属于升级、区域或基本参数信息,封装成原始数据,传至接入网关,网关将原始数据封装成二进制数据发给物联网接入设备。
[0078]本发明的整体流程包括:设计通信协议枚举类型,设计平台通信协议,序列化通信协议和协议解析。[0079]具体包括如下工作步骤:
[0080]I)设计通信协议枚举类型
[0081]物联网平台协议中有很多常用变量,本发明采用枚举类型来统一这些常量,其工作分以下几个部分:
[0082]1-1:设定设备枚举:抽象出系统中所能处理的终端设备类型,并设置终端名称,如车载终端,冰箱,电视等,存放于同一个类型描述符中。
[0083]1-2:设定消息通道枚举:根据消息的传输形式,设定消息通道,如上行通道,下行通道,存放于同一个类型描述符中。
[0084]1-3:设定消息分类枚举:根据物联网终端与平台之间约定的通信协议,将消息命令抽象为几大类,如终端状态指示分类,升级消息分类等,并存放于同一个类型描述符中。
[0085]1-4:设定参数类型枚举:将物联网终端之间的静态及动态参数抽象出来,如数据上传时间间隔,心跳间隔,服务器IP等,并存放于同一个类型描述符中。
[0086]1-5:设定消息指令枚举:根据物联网终端与平台之间约定的通信协议,将消息指令进行抽象,如心跳指令,GPS定位指令,设置参数指令等,并存放于同一个类型描述符中。
[0087]2)设定平台通信协议
[0088]每种物联网接入设备都有自己的硬件通信协议,需要相应的转化为平台通信协议,其工作分为以下几个部分:
[0089]2-1:设定消息头协议:按照硬件终端的消息头格式,抽象为平台理解的消息头协议,一般有消息标识,协议版本,消息长度,消息序号,终端类型,终端ID,消息时间,消息方向等。
[0090]2-2:设定原始数据协议:将消息头与消息体等数据组合在一起,抽象为原始数据协议,一般有消息头,消息体,消息记录ID,消息通道类型,消息指令分类等。
[0091]2-3:设定解析数据协议:将原始数据经过解析后进行封装,抽象为解析数据协议,并将协议内容一一加入其中,这里的协议内容如协议头,应答结果,心跳数据,GPS位置
信息等。
[0092]2-4:设定参数协议:将终端自身协议中约定的静态及动态参数进行抽象,设定参数协议,一般有参数类型,参数长度和参数值。
[0093]2-5:设定应答结果协议:物联网终端与平台之间的通信协议中一般会约定应答机制,将应答结果进行抽象,形成应答结果协议,一般有应答是否成功,错误代码。
[0094]2-6:设定消息内容协议:终端自身协议中约定了各个消息命令,将这些消息命令进行抽象,形成消息内容协议,如GPS位置信息,心跳信息,工况信息,升级信息等。
[0095]2-7:设定下发指令协议:物联网平台经常需要对终端设备进行某种操作,其是通过下发指令的形式进行,将其进行抽象形成下发指令协议,一般有消息头,消息通道,消息属性,软件中心回应消息。
[0096]2-8:设定升级协议:物联网终端设备大多具有远程升级功能,将物联网平台与终端约定的通信协议中的升级部分进行抽象,形成升级协议,一般有升级类型,升级地址长度,升级IP地址,FTP端口,用户名长度,用户名,密码长度,密码,文件长度,文件名。
[0097]3)序列化通信协议
[0098]本发明采用序列化框架protocol buffer作为物联网平台的底层通信框架,其基于二进制,因此比传统的XMPP,JASON等表示高效短小得多,具有效率高,编码紧凑,使用方便,格式灵活,支持二进制数据兼容,功能强大等诸多优点。其工作主要有以下几步:
[0099]3-1:定义结构化消息格式:把前面定义好的平台协议按照一定的消息格式进行
结构化定义,每段信息是一小段逻辑记录,包含一系列的键值对,如下示例:
[0100]
【权利要求】
1.一种物联网平台通信协议的实现方法,包括如下步骤: (1)设计平台通信协议枚举类型; (2)设计平台通信协议内容; (3)序列化平台通信协议; (4)协议解析。
2.根据权利要求1所述物联网平台通信协议的实现方法,其特征在于:所述步骤(1)包括: a)设定设备枚举:抽象出系统中所能处理的终端设备类型,设置终端名称,并存放于同一个类型描述符中; b)设定消息通道枚举:根据消息的传输形式,抽象出各消息通道,并存放于同一个类型描述符中; c)设定消息分类枚举:根据物联网终端与平台之间约定的通信协议,将消息命令抽象为若干分类,并存放于同一个类型描述符中; d)设定参数类型枚举:将物联网终端之间的静态及动态参数抽象出来,并存放于同一个类型描述符中; e)设定消息指令枚举:根据物联网终端与平台之间约定的通信协议,将消息指令进行抽象,并存放于同一个类型描述符中。
3.根据权利要求1所述物联网平台通信协议的实现方法,其特征在于:所述步骤(2)包括: 1)设定消息头协议:按照硬件终端的消息头格式,抽象为平台理解的消息头协议; 2)设定原始数据协议:将消息相关数据组合在一起,抽象为原始数据协议; 3)设定解析数据协议:将原始数据经过解析后进行封装,抽象为解析数据协议,并将协议内容加入其中; 4)设定参数协议:将终端自身协议中约定的静态及动态参数进行抽象,设定参数协议; 5)设定应答结果协议:将应答结果进行抽象,形成应答结果协议; 6)设定消息内容协议:将终端自身协议中约定的消息命令进行抽象,形成消息内容协议; 7)设定下发指令协议:将对终端设备进行操作的下发指令的形式进行抽象,形成下发指令协议; 8)设定升级协议:将平台与终端约定的通信协议中的升级部分进行抽象,形成升级协议。
4.根据权利要求1所述物联网平台通信协议的实现方法,其特征在于:所述步骤(3)包括:对所述平台通信协议进行结构化消息格式定义,以及采用序列化工具生成编程语言类文件。
5.根据权利要求1所述物联网平台通信协议的实现方法,其特征在于:所述步骤(4)包括: A)按照所述平台通信协议编写原始数据协议封装模块,将终端上传的二进制数据解码为原始数据;B)按照所述平台通信协议编写状态数据解析模块,此部分输入为原始数据,输出为解析数据:根据消息头中的消息类型采用不同的协议解析方式,将消息体中的二进制数据彻底解码为终端采集到的状态信息; C)编写下发命令封装模块,此部分输入为下发命令,输出为原始数据:按照平台通信协议将输入的下发命令编码为原始数据。
6.根据权利要求5所述物联网平台通信协议的实现方法,其特征在于:所述步骤(4)还包括: D)编写字节流数据解析模块:将输入的原始数据按照统一通信协议编码为字节流数据。`
【文档编号】H04L29/06GK103747004SQ201410022490
【公开日】2014年4月23日 申请日期:2014年1月19日 优先权日:2014年1月19日
【发明者】樊建, 魏大利, 丁文, 李娜, 杨飞 申请人:樊建, 南京载玄信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1