System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,特别是涉及一种数据通信方法、装置、设备、存储介质和程序产品。
技术介绍
1、随着通信领域的不断发展,在多个应用进程间进行消息通信的情况下,为了保证通信数据传输的效率,一般会对通信数据进行序列化处理与反序列化处理。即,直接通过预设的结构化语言对通信数据进行序列化处理与反序列化处理。
2、然而,由于现有的结构化语言信息体积大,且在配置结构化语言时需要大量的人工进行编码,因此,会降低数据通信的效率。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够提高数据通信效率的数据通信方法、装置、设备、存储介质和程序产品。
2、第一方面,本申请提供了一种数据通信方法,包括:
3、在第一应用具有与第二应用通信需求的情况下,获取第一应用所支持的第一编程语言下的第一通信数据;
4、基于第一编程语言与序列化yaml语言之间的数据结构体关系,对第一通信数据进行序列化处理,得到基于yaml语言的第一字节码;
5、向第二应用发送第一字节码,以使第二应用对第一字节码进行反序列化处理,得到第二应用所支持的第二编程语言下的第二通信数据。
6、在本申请实施例中,引入了各类编程语言与序列化yaml语言之间的数据结构体关系,一方面,基于预先配置的数据结构体关系对通信数据进行序列化处理与反序列化处理,能够提数据处理的效率;另一方面,各应用之间均采用yaml语言下的字节码进行通信,提高了数据通信的规范性。
7、在其中
8、从yaml文件中,提取基于yaml语言的各结构体信息;采用第一编程语言对应的语言模板,对所提取出的各结构体信息进行处理,得到基于第一编程语言的各结构体信息;确定基于第一编程语言的各结构体信息与基于yaml语言的各结构体信息之间的关联关系,并将关联关系作为第一编程语言与序列化yaml语言之间的数据结构体关系。
9、在本申请实施例中,通过采用第一编程语言对应的语言模板,对yaml语言下的各结构体信息进行处理,得到基于第一编程语言的各结构体信息,进而确定第一编程语言与序列化yaml语言之间的数据结构体关系,能够保证数据结构体关系确定的高效性和准确性。
10、在其中一个实施例中,基于第一编程语言与序列化yaml语言之间的数据结构体关系,对第一通信数据进行序列化处理,得到基于yaml语言的第一字节码,包括:
11、基于第一编程语言的各结构体信息,确定第一通信数据包含的第一编程语言下的第一结构体信息;将第一结构体信息作为索引,从数据结构体关系中进行查询,得到第一通信数据在yaml语言下的目标结构体信息;根据目标结构体信息和第一通信数据,生成第一字节码。
12、在本申请实施例中,通过基于第一通信数据在yaml语言下的目标结构体信息和第一通信数据,确定第一字节码,能够保证第一字节码的准确性,以及字节码生成的高效性。
13、在其中一个实施例中,根据目标结构体信息和所述第一通信数据,生成第一字节码,包括:
14、基于第一通信数据,对目标结构体信息对应的结构参数进行填充,得到待转换信息;采用字节码生成规则对待转换信息进行处理,生成第一字节码。
15、在本申请实施例中,通过采用字节码生成规则,对填充了结构参数的目标结构体信息进行处理,得到第一字节码,能够保证第一字节码的准确性。
16、在其中一个实施例中,基于第一编程语言与序列化yaml语言之间的数据结构体关系,对第一通信数据进行序列化处理,得到基于yaml语言的第一字节码,包括:
17、在第一编程语言为非指定语言的情况下,基于第一编程语言与序列化yaml语言之间的数据结构体关系,对第一通信数据进行序列化处理,得到基于yaml语言的第一字节码;在第一编程语言为指定语言的情况下,对第一编程语言下的第一通信数据进行字节对齐处理,得到第一字节码;其中,指定语言至少包括面向过程的编程语言。
18、在本申请实施例中,通过将各编程语言划分成指定语言和非指定语言,并采用不同处理方式,对两类编程语言下的通信数据进行处理,以得到对应编程语言下的第一字节码,能够有效提高确定第一字节码的效率。
19、在其中一个实施例中,该方法还包括:
20、获取第三应用发送的基于yaml语言的第二字节码;基于第一编程语言与序列化yaml语言之间的数据结构体关系,对第二字节码进行反序列化处理,得到第一编程语言下的通信数据。
21、在本申请实施例中,通过基于第一编程语言与序列化yaml语言之间的数据结构体关系,对第二字节码进行反序列化处理,得到第一应用能够解析的通信数据,能够保证数据通信的可靠性。
22、第二方面,本申请还提供了一种数据通信装置,包括:
23、数据获取模块,用于在第一应用具有与第二应用通信需求的情况下,获取所述第一应用所支持的第一编程语言下的第一通信数据;
24、数据处理模块,用于基于所述第一编程语言与序列化yaml语言之间的数据结构体关系,对所述第一通信数据进行序列化处理,得到基于yaml语言的第一字节码;
25、数据发送模块,用于向所述第二应用发送所述第一字节码,以使所述第二应用对所述第一字节码进行反序列化处理,得到所述第二应用所支持的第二编程语言下的第二通信数据。
26、第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
27、在第一应用具有与第二应用通信需求的情况下,获取第一应用所支持的第一编程语言下的第一通信数据;
28、基于第一编程语言与序列化yaml语言之间的数据结构体关系,对第一通信数据进行序列化处理,得到基于yaml语言的第一字节码;
29、向第二应用发送第一字节码,以使第二应用对第一字节码进行反序列化处理,得到第二应用所支持的第二编程语言下的第二通信数据。
30、第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
31、在第一应用具有与第二应用通信需求的情况下,获取第一应用所支持的第一编程语言下的第一通信数据;
32、基于第一编程语言与序列化yaml语言之间的数据结构体关系,对第一通信数据进行序列化处理,得到基于yaml语言的第一字节码;
33、向第二应用发送第一字节码,以使第二应用对第一字节码进行反序列化处理,得到第二应用所支持的第二编程语言下的第二通信数据。
34、第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
35、在第一应用具有与第二应用通信需求的情况下,获取第一应用所支持的第一编程语言下的第本文档来自技高网...
【技术保护点】
1.一种数据通信方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一编程语言与序列化YAML语言之间的数据结构体关系通过如下方式确定:
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一编程语言与序列化YAML语言之间的数据结构体关系,对所述第一通信数据进行序列化处理,得到基于YAML语言的第一字节码,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标结构体信息和所述第一通信数据,生成第一字节码,包括:
5.根据权利要求1所述的方法,其特征在于,所述基于所述第一编程语言与序列化YAML语言之间的数据结构体关系,对所述第一通信数据进行序列化处理,得到基于YAML语言的第一字节码,包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.一种数据通信装置,其特征在于,所述装置包括:
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种数据通信方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一编程语言与序列化yaml语言之间的数据结构体关系通过如下方式确定:
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一编程语言与序列化yaml语言之间的数据结构体关系,对所述第一通信数据进行序列化处理,得到基于yaml语言的第一字节码,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标结构体信息和所述第一通信数据,生成第一字节码,包括:
5.根据权利要求1所述的方法,其特征在于,所述基于所述第一编程语言与序列化yaml语言之间的数据结构体关系,对所述第一通信数据进行...
【专利技术属性】
技术研发人员:王振浩,江慧强,谢晓东,王洪伟,季旻,
申请(专利权)人:天津中科曙光存储科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。