【技术实现步骤摘要】
【国外来华专利技术】分布式系统中通信协议版本号的更新
本专利技术总地涉及分布式系统的控制
,更具体地涉及一种分布式系统中通信协议版本号的更新。
技术介绍
分布式系统是建立在网络之上的软件系统,其通常包括多个模块,这些模块之间要通过网络采用一定的通信协议进行通信。为了保证通信的准确性,各模块所采用的通信协议应当保持一致。在现有的分布式系统中,当通信协议发生变化时,是以人工的方式更新通信协议版本,在通信协议中带上协议版本号,在接收方校验版本号。这样的方法存在如下缺点:(1)容易遗漏:当通信协议发生变化肉眼不易区分,例如:某个通信协议包含多级数据结构嵌套,当嵌套层的数据结构发生变化时,维护者非常容易遗漏该变化;(2)效率低下:当分布式系统中存在数量较多的模块时,靠人工方式更新通信协议版本效率非常低下。因此,需要提供一种分布式系统中自动更新通信协议版本号的方案。
技术实现思路
为了解决上述问题而提出了本专利技术。根据本专利技术一方面,提供了一种分布式系统更新通信协议版本号的方法,所述分布式系统包括多个模块,所述多个模块之间通过预设通信协议进行通信,所述方法包括:生成修改前的代码版本和修改后的代码版本各自的语法结构表示,分别定义为第一语法结构表示和第二语法结构表示;获取所述第一语法结构表示和所述第二语法结构表示中各自的通信协议数据结构,分别定义为第一通信数据结构和第二通信数据结构;基于所述第一通信数据结构的所有语法信息生成第一文本消息,并基于所述第二通信数据结构的所有语法信息生成第二文本消息;计算所述第一 ...
【技术保护点】
1.一种分布式系统更新通信协议版本号的方法,所述分布式系统包括多个模块,所述多个模块之间通过预设通信协议进行通信,所述方法包括:/n生成修改前的代码版本和修改后的代码版本各自的语法结构表示,分别定义为第一语法结构表示和第二语法结构表示;/n获取所述第一语法结构表示和所述第二语法结构表示中各自的通信协议数据结构,分别定义为第一通信数据结构和第二通信数据结构;/n基于所述第一通信数据结构的所有语法信息生成第一文本消息,并基于所述第二通信数据结构的所有语法信息生成第二文本消息;/n计算所述第一文本消息和所述第二文本消息各自的唯一性标识,分别定义为第一唯一性标识和第二唯一性标识;以及/n比较所述第一唯一性标识和所述第二唯一性标识,并在所述第一唯一性标识和所述第二唯一性标识不同时更新所述预设通信协议的版本号。/n
【技术特征摘要】
【国外来华专利技术】1.一种分布式系统更新通信协议版本号的方法,所述分布式系统包括多个模块,所述多个模块之间通过预设通信协议进行通信,所述方法包括:
生成修改前的代码版本和修改后的代码版本各自的语法结构表示,分别定义为第一语法结构表示和第二语法结构表示;
获取所述第一语法结构表示和所述第二语法结构表示中各自的通信协议数据结构,分别定义为第一通信数据结构和第二通信数据结构;
基于所述第一通信数据结构的所有语法信息生成第一文本消息,并基于所述第二通信数据结构的所有语法信息生成第二文本消息;
计算所述第一文本消息和所述第二文本消息各自的唯一性标识,分别定义为第一唯一性标识和第二唯一性标识;以及
比较所述第一唯一性标识和所述第二唯一性标识,并在所述第一唯一性标识和所述第二唯一性标识不同时更新所述预设通信协议的版本号。
2.根据权利要求1所述的方法,其特征在于,所述修改前的代码版本和所述修改后的代码版本中各自的通信协议数据结构均基于预设结构体而生成,所述预设结构体符合预设命名规范。
3.根据权利要求2所述的方法,其特征在于,所述获取所述第一语法结构表示和所述第二语法结构表示中各自的通信协议数据结构包括:
解析所述第一语法结构表示和所述第二语法结构表示,以查找符合所述预设命名规范的数据结构;以及
获取符合所述预设命名规范的数据结构的首成员的数据类型,以得到所述通信协议数据结构。
4.根据权利要求1所述的方法,其特征在于,所述生成修改前的代码版本和修改后的代码版本各自的语法结构表示,包括:
生成修改前的代码版本和修改后的代码版本各自的抽象语法树。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第一通信数据结构的所有语法信息生成第一文本消息,并基于所述第二通信数据结构的所有语法信息生成第二文本消息,包括:
将所述第一通信数据结构的所有语法信息组合成第一字符串,并将所述第二通信数据结构的所有语法信息组合成第二字符串。
6.根据权利要求5所述的方法,其特征在于,所述所有语法信息包括通信数据结构的自身信息和子成员信息。
7.根据权利要求6所述的方法,其特征在于,所述自身信息包括域名信息、数据结构类型信息和占用大小信息。
8.根据权利要求6所述的方法,其特征在于,所述子成员信息包括子成员名字信息、基本数据类型信息、结构体/枚举/联合体/定义类型的展开信息和占用大小信息。
9.根据权利要求1所述的方法,其特征在于,所述计算所述第一文本消息和所述第二文本消息各自的唯一性标识,包括:
计算所述第一文本消息和所述第二文本消息各自的消息摘要值。
10.根据权利要求1-9中的任一项所述的方法,其特征在于,所述方法基于分散式版本控制软件的钩子脚本来实现。
11.一种自动驾驶系统,其特征在于,所述自动驾驶系统包括多个模块,所述多个模块之间通过预设通信协议进行通信,所述自动驾驶系统采用权利要求1-10中的任一项所述的分布式系统更新通信协议版本号的方法来更新所述预设通信协议的版本号。
12.一种车辆,其特征在于,所述车辆包括自动驾驶系统,所述自动驾驶系统包括多个模块,所述多个模块之间通过预设通信协议进行通信,所述预设通信协议的版本号通过包括以下步骤的方法来更新,所述步骤包括:
生成修改前的代码版本和修改后的代码版本各自的语法结构表示,分别定义为第一语法结构表示和第二语法结构表示;
获取所述第一语法结构表示和所述第二语法结构表示中各自的通信协议数据结构,分别定义为第一通信数据结构和第二通信数据结构;
基于所述第一通信数据结构的所有语法信息生成第一文本消息,并基于所述第二通信数据结构的所有语法信息生成第二文本消息;
计算所述第一文本消息和所述第二文本消息各自的唯一性标识,分别定义为第一唯一性标识和第二唯一性标识;以及
比较所述第一唯一性标识和所述第二唯一性标识,并在所述第一唯一性标识和所述第二唯一性标识不同时更新所述预设通信协议的版本号。
13.根据权利要求12所述的车辆,其特征在于,所述修改前的代码版本和所述修改后的代码版本中各自的通信协议数据结构均基于预设结构体而生成,所述预设结构体符合预设命名规范。
14.根据权利要求13所述的车辆,其特征在于,所述获取所述第一语法结构表示和所述第二语法结构表示中各自的通信协议数据结构包括:
解析所述第一语法结构表示和所述第二语法结构表示,以查找符合所述预设命名规范的数据结构;以及
获取符合所述预设命名规范的数据结构的首成员的数据类型,以得到所述通信协议数据结构。
15.根据权利要求12所述的车辆,其特征在于,所述生成修改前的代码版本和修改后的代码版本各自的语法结构...
【专利技术属性】
技术研发人员:曾健荣,王斌,周青松,
申请(专利权)人:深圳市大疆创新科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。