基于对象协议映射的编码解码方法及系统的制作方法

文档序号:6505976阅读:175来源:国知局
基于对象协议映射的编码解码方法及系统的制作方法
【专利摘要】本发明公开了一种基于对象协议映射的编码解码方法及系统,所述方法包括:根据协议的应用数据域创建实体对象;建立并存储OPM数据表;编码时,将接收到的实体对象按其属性顺序编码为协议子字符串,并将多个所述协议子字符串串联成所述协议数据域的协议字符串;解码时,将接收到的协议数据域的协议字符串解码为实体对象,读取所述OPM数据表,由所述实体对象的属性反射得到所述协议的应用数据域中数据项信息并解析出所述协议。本发明将协议与面向对象的语言相结合,程序框架简单、代码复用率高,具有低代码、短开发周期、高效率、及扩展性强的优点。
【专利说明】基于对象协议映射的编码解码方法及系统

【技术领域】
[0001]本发明涉及通信【技术领域】,特别涉及一种基于对象协议映射的编码解码方法及系统。

【背景技术】
[0002]在通信【技术领域】,各种具有通信功能的设备和电脑系统或各移动终端系统之间进行数据通信时,往往以各种形式的通信协议为载体。由于自然语言世界事物都具有各种属性,因此,如何在纷繁复杂的应用层用户数据的解码和编码对于通信协议的处理是重要且困难的,例如一个简单的串口配置,用自然语言描述则包括串口名、波特率、校验位、数据位、结束位等多个属性。
[0003]现有的通常一个通信协议所要承载的应用数据信息通常都以千计,对其进行编码解码是很大一个工作量,因此,该方法的软件开发周期较长,成本较高、工作效率低下且扩展性不强。


【发明内容】

[0004]本发明提出一种基于对象协议映射的编码解码方法及系统,能解除通信协议编码解码中繁杂的工作量,且将协议与面向对象的语言相结合,程序框架简单、代码复用率高,具有低代码、短开发周期、高效率、及扩展性强的优点。
[0005]为实现上述发明目的,本发明采用如下技术方案:
[0006]一种基于对象协议映射的编码解码方法,其包括:
[0007]根据协议的应用数据域创建实体对象,所述协议的应用数据域中每一数据项的信息与该实体对象的每一属性对应;
[0008]建立并存储0ΡΜ数据表,所述0ΡΜ数据表描述所述协议的应用数据域中数据项的信息与该实体对象的属性映射对应关系;
[0009]编码时,将接收到的实体对象按其属性顺序编码为协议子字符串,并将多个所述协议子字符串串联成所述协议数据域的协议字符串;
[0010]解码时,将接收到的协议数据域的协议字符串解码为实体对象,读取所述0ΡΜ数据表,由所述实体对象的属性反射得到所述协议的应用数据域中数据项信息并解析出所述协议。
[0011 ] 进一步地,在上述的基于对象协议映射的编码解码方法中,所述方法还包括:
[0012]根据协议的链路层框架验证所述协议的合法性信息,并剥离出所述协议的应用层数据域。
[0013]进一步地,在上述的基于对象协议映射的编码解码方法中,所述根据协议的应用数据域创建实体对象步骤具体包括:
[0014]在创建的实体对象的每一个属性上面增加一个元数据特性,该元数据特性描述了此属性对应数据项的信息。
[0015]进一步地,在上述的基于对象协议映射的编码解码方法中,所述数据项的信息包括:该数据项在协议中的顺序号、解析用的数据类型、数据长度、计量单位及描述信息。
[0016]进一步地,在上述的基于对象协议映射的编码解码方法中,所述存储OPM数据表的步骤具体为:
[0017]将所述OPM数据表存储于可持久化的介质中。
[0018]进一步地,在上述的基于对象协议映射的编码解码方法中,所述可持久化的介质为关系数据库,所述OPM数据表为一个通用的表字段,其至少包括实体对象名、每一属性在该实体对象中的序号、每一属性对应的数据项的数据类型、数据长度、计量单位及数据项的描述。
[0019]进一步地,在上述的基于对象协议映射的编码解码方法中,所述可持久化的介质为Xml文件,所述OPM数据表至少包括一个实体对象的集合,每个实体对象的子元素至少包括每一属性在该实体对象中的序号、每一属性对应的数据项的数据类型、数据长度、计量单位及数据项的描述。
[0020]本发明还提供一种基于对象协议映射的编码解码系统,包括:
[0021]对象创建模块、用于根据协议的应用数据域创建实体对象,所述协议的应用数据域中每一数据项的信息与该实体对象的每一属性对应;
[0022]数据表建立模块、用于建立并存储OPM数据表,所述OPM数据表描述所述协议的应用数据域中数据项的信息与该实体对象的属性映射对应关系;
[0023]数据表存储模块、用于存储OPM数据表于可持久化的介质中;
[0024]协议字符串编码模块、用于将接收到的实体对象按其属性顺序编码为协议子字符串,并将多个所述协议子字符串串联成所述协议数据域的协议字符串;
[0025]协议字符串解码模块,用于将接收到的协议数据域的协议字符串解码为实体对象;
[0026]及反射解析模块、用于读取所述OPM数据表,由所述实体对象的属性反射得到所述协议的应用数据域中数据项信息并解析出所述协议。
[0027]进一步地,在上述的基于对象协议映射的编码解码系统中,所述可持久化的介质为关系数据库或Xml文件。
[0028]本发明基于对象协议映射的编码解码方法及系统避免了通信协议编码解码中繁杂的工作量,将协议与面向对象的语言相结合,程序框架简单、代码复用率高,具有低代码、短开发周期、高效率、及扩展性强的优点。

【专利附图】

【附图说明】
[0029]图1为本发明基于对象协议映射的编码解码方法一实施例的流程示意图;
[0030]图2为帧结构的示意图;
[0031]图3为OPM数据表的示意图;
[0032]图4为某一实体的数据关系映射数据图;
[0033]图5为本发明基于对象协议映射的编码解码的结构示意图。

【具体实施方式】
[0034]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0035]本发明实施例中,根据协议的应用数据域创建实体对象,所述协议的应用数据域中每一数据项的信息与该实体对象的每一属性对应;建立并存储0ΡΜ数据表,所述0ΡΜ数据表描述所述协议的应用数据域中数据项的信息与该实体对象的属性映射对应关系;编码时,将接收到的实体对象按其属性顺序编码为协议子字符串,并将多个所述协议子字符串串联成所述协议数据域的协议字符串;解码时,将接收到的协议数据域的协议字符串解码为实体对象,读取所述0ΡΜ数据表,由所述实体对象的属性反射得到所述协议的应用数据域中数据项信息并解析出所述协议。这样就通过通信协议与面向对象的语言相结合,使得程序框架简单、代码复用率高,具有低代码、短开发周期、高效率、及扩展性强的优点。
[0036]下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。
[0037]请参阅图1,图1为本发明基于对象协议映射的编码解码方法一实施例的流程示意图。所述方法包括以下步骤:
[0038]步骤S101:根据协议的链路层框架验证所述协议的合法性信息,并剥离出所述协议的应用层数据域;
[0039]其中,所述协议的合法性信息包括协议的帧头帧尾、帧传输校验。
[0040]本发明所述协议为通信协议。
[0041]如图2所示,对链路层数据,判断第1和第8字节是否为0x68,帧尾字节是否为0x16 ;同时根据校验码的定义,判断校验是否正确。当链路层数据正确验证完成后,根据数据长度L可得到应用数据域数据。
[0042]帧是传送信息的基本单元,每帧由帧起始符标志域、控制域、数据长度域、数据域、中贞信息纵向校验域及巾贞结束域等6个域组成。每个域由若干字节组成。
[0043]校验码CS:从帧起始符开始到校验码之前的所有各字节的和模256的余。即各字节二进制算术和,不计超过256的溢出值。
[0044]发送方按照公式计算校验码;
[0045]接收方按照公式验证校验码,如校验码不匹配,则数据帧已经被破坏,应视为无效帧处理;通过此种格式、验证帧数据就可以分离出应用数据域;
[0046]步骤S102:根据协议的应用数据域创建实体对象,所述协议的应用数据域中每一数据项的信息与该实体对象的每一属性对应;
[0047]在具体实现时,根据协议的链路层控制码或应用层功能码,可唯一确定一个与所述协议的应用数据域中数据项对应的实体对象。在创建的实体对象的每一个属性上面增加一个元数据特性,该元数据特性描述了此属性对应数据项的信息,所述数据项的信息包括该数据项在协议中的顺序号、解析用的数据类型、数据长度、计量单位及描述信息,通过反射功能可以取得该元数据特性所对应的数据项的信息。
[0048]步骤S103:建立0ΡΜ数据表(即对象协议关系映射表Ob jectProtocolMapping),所述0ΡΜ数据表描述所述协议的应用数据域中数据项的信息与该实体对象的属性映射对应关系;
[0049]步骤S104:将所述0ΡΜ数据表存储于可持久化的介质中;
[0050]在具体实现时,所述可持久化的介质可为关系数据库,如:SqlServer、Oracle、FirebircUMySql等,所述OPM数据表为一个通用的表字段,如图3所示,其至少包括实体对象名、每一属性在该实体对象中的序号、每一属性对应的数据项的数据类型、数据长度、计量单位及数据项的描述。
[0051]如:某个实体的数据关系映射数据如图4所示。
[0052]所述可持久化的介质也可为Xml文件,所述OPM数据表至少包括一个实体对象的集合,每个实体对象的子元素至少包括每一属性在该实体对象中的序号、每一属性对应的数据项的数据类型、数据长度、计量单位及数据项的描述。
[0053]本步骤通过将所述OPM数据表存储于可持久化的介质中,实现了所述协议的应用数据域中数据项的信息与该实体对象的属性映射对应关系的持久化。
[0054]步骤S105:编码时,将接收到的实体对象按其属性顺序编码为协议子字符串,并将多个所述协议子字符串串联成所述协议数据域的协议字符串。
[0055]具体实现时,系统接收到与协议对应的实体对象,由于所述协议的应用数据域中每一数据项的信息与该实体对象的每一属性对应,故将接收到的实体对象按其属性的顺序依次进行编码,得到协议子字符串,每一该协议子字符串与该实体对象的每一属性对应。该实体对象的所有属性均完成编码后,将多个所述协议子字符串串联,即得到所述协议数据域的协议字符串。
[0056]步骤S106:解码时,将接收到的协议数据域的协议字符串解码为实体对象,读取所述OPM数据表,由所述实体对象的属性反射得到所述协议的应用数据域中数据项信息并解析出所述协议。
[0057]具体实现时,协议处理模块加载所述OPM数据表到内存,在解码应用数据域协议字符串时,通过高级语言的反射功能,从所述实体对象的属性名称得到该属性的数据类型、计量单位等信息并进行解析,所有属性解析完成后将实体对象返回,即可将对象表达为自然语言,完成解码。
[0058]在所有实体类的基类中至少实现两个函数:协议字符串到对象的解码函数Object StringToObject (string pdu)、对象到协议字符串的编码函数stringObjectToString(Object obj),同时在各实体子类中可根据具体情况对这两个函数进行重载。
[0059]请参阅图5,本发明还提供一种基于对象协议映射的编码解码系统,包括:对象创建模块1、数据表建立模块2、数据表存储模块3、协议字符串编码模块4、协议字符串解码模块5及反射解析模块6,所述对象创建模块I用于根据协议的应用数据域创建实体对象,所述协议的应用数据域中每一数据项的信息与该实体对象的每一属性对应;所述数据表建立模块2用于建立并存储OPM数据表,所述OPM数据表描述所述协议的应用数据域中数据项的信息与该实体对象的属性映射对应关系,所述数据表存储模块3用于存储OPM数据表于可持久化的介质中,所述协议字符串编码模块4用于将接收到的实体对象按其属性顺序编码为协议子字符串,并将多个所述协议子字符串串联成所述协议数据域的协议字符串,所述协议字符串解码模块5用于将接收到的协议数据域的协议字符串解码为实体对象,所述反射解析模块6用于读取所述OPM数据表,由所述实体对象的属性反射得到所述协议的应用数据域中数据项信息并解析出所述协议。
[0060]所述可持久化的介质为关系数据库或Xml文件。
[0061]所述可持久化的介质为关系数据库时,如:SqlServer、Oracle、Firebird、MySql等,所述OPM数据表为一个通用的表字段,其至少包括实体对象名、每一属性在该实体对象中的序号、每一属性对应的数据项的数据类型、数据长度、计量单位及数据项的描述。
[0062]所述可持久化的介质为Xml文件时,所述0ΡΜ数据表至少包括一个实体对象的集合,每个实体对象的子元素至少包括每一属性在该实体对象中的序号、每一属性对应的数据项的数据类型、数据长度、计量单位及数据项的描述。
[0063]相比于现有技术,本发明一种基于对象协议映射的编码解码方法及系统采用面向对象的设计方法,用面向对象的语言对通信协议进行编码和解码。系统中运用了高级语言的反射、特性等语言功能,设计中利用子类的覆盖可灵活实现编码和解码函数。架构体系采用了工厂模式、代理模式等设计模式,使软件开发人员(使用者)可以迅速的理解代码框架思想,实现了低代码、短开发周期、高效率、及扩展性强的通信协议软件编码及解码框架。
[0064]综上,本发明基于对象协议映射的编码解码方法及系统避免了通信协议编码解码中繁杂的工作量,将协议与面向对象的语言相结合,程序框架简单、代码复用率高,具有低代码、短开发周期、高效率、及扩展性强的优点。
[0065]这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。
【权利要求】
1.一种基于对象协议映射的编码解码方法,其特征在于,其包括: 根据协议的应用数据域创建实体对象,所述协议的应用数据域中每一数据项的信息与该实体对象的每一属性对应; 建立并存储OPM数据表,所述OPM数据表描述所述协议的应用数据域中数据项的信息与该实体对象的属性映射对应关系; 编码时,将接收到的实体对象按其属性顺序编码为协议子字符串,并将多个所述协议子字符串串联成所述协议数据域的协议字符串; 解码时,将接收到的协议数据域的协议字符串解码为实体对象,读取所述OPM数据表,由所述实体对象的属性反射得到所述协议的应用数据域中数据项信息并解析出所述协议。
2.根据权利要求1所述的基于对象协议映射的编码解码方法,其特征在于,所述方法还包括: 根据协议的链路层框架验证所述协议的合法性信息,并剥离出所述协议的应用层数据域。
3.根据权利要求2所述的基于对象协议映射的编码解码方法,其特征在于,所述根据协议的应用数据域创建实体对象步骤具体包括: 在创建的实体对象的每一个属性上面增加一个元数据特性,该元数据特性描述了此属性对应数据项的信息。
4.根据权利要求3所述的基于对象协议映射的编码解码方法,其特征在于,所述数据项的信息包括:该数据项在协议中的顺序号、解析用的数据类型、数据长度、计量单位及描述信息。
5.根据权利要求1所述的基于对象协议映射的编码解码方法,其特征在于,所述存储OPM数据表的步骤具体为: 将所述OPM数据表存储于可持久化的介质中。
6.根据权利要求6所述的基于对象协议映射的编码解码方法,其特征在于,所述可持久化的介质为关系数据库,所述OPM数据表为一个通用的表字段,其至少包括实体对象名、每一属性在该实体对象中的序号、每一属性对应的数据项的数据类型、数据长度、计量单位及数据项的描述。
7.根据权利要求6所述的基于对象协议映射的编码解码方法,其特征在于,所述可持久化的介质为Xml文件,所述OPM数据表至少包括一个实体对象的集合,每个实体对象的子元素至少包括每一属性在该实体对象中的序号、每一属性对应的数据项的数据类型、数据长度、计量单位及数据项的描述。
8.一种基于对象协议映射的编码解码系统,其特征在于,包括: 对象创建模块、用于根据协议的应用数据域创建实体对象,所述协议的应用数据域中每一数据项的信息与该实体对象的每一属性对应; 数据表建立模块、用于建立并存储OPM数据表,所述OPM数据表描述所述协议的应用数据域中数据项的信息与该实体对象的属性映射对应关系; 数据表存储模块、用于存储OPM数据表于可持久化的介质中; 协议字符串编码模块、用于将接收到的实体对象按其属性顺序编码为协议子字符串,并将多个所述协议子字符串串联成所述协议数据域的协议字符串; 协议字符串解码模块,用于将接收到的协议数据域的协议字符串解码为实体对象;及反射解析模块、用于读取所述OPM数据表,由所述实体对象的属性反射得到所述协议的应用数据域中数据项信息并解析出所述协议。
9.根据权利要求7所述的基于对象协议映射的编码解码系统,其特征在于,所述可持久化的介质为关系数据库或Xml文件。
【文档编号】G06F17/30GK104281632SQ201310302389
【公开日】2015年1月14日 申请日期:2013年7月11日 优先权日:2013年7月11日
【发明者】李洪, 朱奎, 刘剑, 张建成 申请人:深圳市金正方科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1