一种消息转换方法和装置的制造方法

文档序号:9910769阅读:260来源:国知局
一种消息转换方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据处理领域,特别是涉及一种消息转换方法和装置。
【背景技术】
[0002]软件版本升级是系统软件实现内容更新的常用手段,针对规模较大的系统例如分布式系统,系统中可以包括大量的组件(英文-Component),组件中安装有软件,在软件版本需要升级时,如果同时对系统中的所有组件的软件同时进行软件版本升级,会导致系统长时间无法工作的黑账期。故一般情况下,对于规模较大的系统,采取的是对组件逐步进行软件更新的方式,例如先升级一部分组件的软件版本,再更新一部分组件的软件版本的方式。
[0003]对系统中组件逐步进行软件更新的过程中,会导致系统中组件之间的软件版本不相同的情况。升级过程中系统仍在继续工作,系统的组件之间存在消息的交互,若不同软件版本的组件之间出现消息交互,会导致组件之间互相无法识别、理解对端发来的消息。例如系统中包括组件a和组件b,在软件升级过程中,组件a的软件版本升级到了版本η,组件b的软件版本升级到了版本m,若此时组件a接收到组件b发送的消息I,由于组件a和b之间软件版本不同,组件a可能无法识别、理解消息I是什么消息,包含了什么内容,从而无法对组件b发送的消息I产生回应或处理消息I。从而影响了系统在软件升级过程中的正常工作。
[0004]可见,让不同软件版本下的组件之间能够理解互相发送的消息是一个亟需解决的技术问题。

【发明内容】

[0005]为了解决上述技术问题,本发明提供了一种消息转换方法和装置,实现不同软件版本下的组件之间能够理解互相发送的消息,使得所述系统可以在软件升级过程中保持正常工作。
[0006]本发明实施例公开了如下技术方案:
[0007]—种消息转换方法,应用于包括多个组件的系统中,所述方法包括:
[0008]获取第一组件向第二组件发送的第一消息,所述第一组件和第二组件为所述系统的组件;
[0009]识别所述第一组件和第二组件的软件版本,所述第一组件的软件版本与所述第二组件的软件版本不同;
[0010]调取与所述第一组件的软件版本相符的第一消息类型描述文件,与所述第二组件的软件版本相符的第二消息类型描述文件;
[0011 ]根据所述第一消息类型描述文件识别出所述第一消息的消息类型;
[0012]根据所述第一消息类型描述文件、所述第二消息类型描述文件和所述第一消息的消息类型确定出消息改动信息,所述消息改动信息用于标识在所述第二组件的软件版本下的所述第一消息相对于在所述第一组件的软件版本下的所述第一消息的区别;
[0013]根据所述消息改动信息修改所述第一消息的消息类型,得到改动后的消息类型;
[0014]以所述改动后的消息类型生成第二消息,并向所述第二组件发送所述第二消息。
[0015]可选的,所述以所述改动后的消息类型生成第二消息,包括:
[0016]判断所述改动后的消息类型所占用消息空间是否大于所述第一消息的消息类型所占用消息空间;
[0017]若大于,申请消息空间符合所述改动后的消息类型所占用消息空间的空白消息,根据所述空白消息和所述改动后的消息类型生成所述第二消息;
[0018]若不大于,根据所述第一消息和所述改动后的消息类型生成所述第二消息。
[0019]可选的,还包括:
[0020]预先获取所述系统中各个软件版本的源代码;
[0021]通过软件代码编译过程自动识别各个软件版本的消息类型;
[0022]根据提取的各个软件版本的消息类型生成与软件版本一一对应的消息类型描述文件,其中包括与所述第一组件的软件版本对应的第一消息类型描述文件和与所述第而组件的软件版本对应的第二消息类型描述文件。
[0023]可选的,所述识别第一组件和第二组件的软件版本,包括:
[0024]根据事先协商过程识别所述第一组件和第二组件的软件版本;或者,
[0025]根据所述第一组件和第二组件之间的交互信息识别所述第一组件和第二组件的软件版本。
[0026]可选的,所述第一消息的消息类型包括消息名称、类型、消息成员名称、消息成员类型、消息成员在所述第一消息中的偏移量、消息成员占用空间和所述第一消息的消息类型占用的消息空间。
[0027]—种消息转换装置,应用于包括多个组件的系统中,所述装置包括:
[0028]第一获取单元,用于获取第一组件向第二组件发送的第一消息,所述第一组件和第二组件为所述系统的组件;
[0029]第一识别单元,用于识别所述第一组件和第二组件的软件版本,所述第一组件的软件版本与所述第二组件的软件版本不同;
[0030]调取单元,用于调取与所述第一组件的软件版本相符的第一消息类型描述文件,与所述第二组件的软件版本相符的第二消息类型描述文件;
[0031]第二识别单元,用于根据所述第一消息类型描述文件识别出所述第一消息的消息类型;
[0032]确定单元,用于根据所述第一消息类型描述文件、所述第二消息类型描述文件和所述第一消息的消息类型确定出消息改动信息,所述消息改动信息用于标识在所述第二组件的软件版本下的所述第一消息相对于在所述第一组件的软件版本下的所述第一消息的区别;
[0033]修改单元,用于根据所述消息改动信息修改所述第一消息的消息类型,得到改动后的消息类型;
[0034]第一生成单元,用于以所述改动后的消息类型生成第二消息,并向所述第二组件发送所述第二消息。
[0035]可选的,
[0036]所述第一生成单元具体用于判断所述改动后的消息类型所占用消息空间是否大于所述第一消息的消息类型所占用消息空间;
[0037]若大于,申请消息空间符合所述改动后的消息类型所占用消息空间的空白消息,根据所述空白消息和所述改动后的消息类型生成所述第二消息;
[0038]若不大于,根据所述第一消息和所述改动后的消息类型生成所述第二消息。
[0039]可选的,还包括:
[0040]第二获取单元,用于预先获取所述系统中各个软件版本的源代码;
[0041 ]编译单元,用于通过软件代码编译过程自动识别各个软件版本的消息类型;
[0042]第二生成单元根据提取的各个软件版本的消息类型生成与软件版本一一对应的消息类型描述文件,其中包括与所述第一组件的软件版本对应的第一消息类型描述文件和与所述第而组件的软件版本对应的第二消息类型描述文件。
[0043]可选的,
[0044]所述第一识别单元具体用于根据事先协商过程识别所述第一组件和第二组件的软件版本;或者,
[0045]所述第一识别单元具体用于根据所述第一组件和第二组件之间的交互信息识别所述第一组件和第二组件的软件版本。
[0046]可选的,所述第一消息的消息类型包括消息名称、类型、消息成员名称、消息成员类型、消息成员在所述第一消息中的偏移量、消息成员占用空间和所述第一消息的消息类型占用的消息空间。
[0047]由上述技术方案可以看出,获取第一组件向第二组件发送的第一消息,识别第一组件和第二组件的软件版本,所述第一组件的软件版本与所述第二组件的软件版本不同,调取与所述第一组件的软件版本相符的第一消息类型描述文件,与所述第二组件的软件版本相符的第二消息类型描述文件,根据所述第一消息类型描述文件、所述第二消息类型描述文件和识别出的所述第一消息的消息类型确定出消息改动信息,根据所述消息改动信息修改所述第一消息的消息类型,得到改动后的消息类型,以所述改动后的消息类型生成第二消息,由于生成第二消息的过程需要依据所述第二消息类型描述文件,故所述第二消息可以被所述第二组件识别并处理,由此可以实现不同软件版本下的组件之间能够理解互相发送
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1