一种面向数据对象的远程过程调用方法及相关设备与流程

文档序号:37272337发布日期:2024-03-12 21:02阅读:16来源:国知局
一种面向数据对象的远程过程调用方法及相关设备与流程

本公开涉及云迁移,尤其涉及一种面向数据对象的远程过程调用方法及相关设备。


背景技术:

1、随着云计算技术的高速发展,具有规模大、虚拟化、可靠性高、通用性强、高可扩展性和廉价等优点的云计算服务,为企业节约了数据成本和资源,使得企业更加积极地将应用系统迁移到云计算平台。

2、然而,在应用系统的迁移过程中,需要针对云化后的环境对应用系统进行适配化改造,以充分利用云计算平台的能力。适配化改造可以通过设计分层,实现业务与数据的解耦,也可以通过微服务架构,围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。上述的适配化改造方法均涉及将原本一体的应用系统切分为多个服务模块,这意味着原有的以运行时数据对象传递请求参数与结果的本地函数模式(调用栈),将改为远程过程调用(remote process call,rpc)模式。

3、在rpc模式的应用中,现有的序列化方法往往由于无法正确、完善地处理指针,导致出现运行时数据结构与序列化数据结构不一致的情况,降低数据对象在远程过程调用过程中的空间效率和时间效率,增加了适配化改造的开发工作难度,使得改造后的应用系统难以维护。

4、因此,如何面向数据对象提供可靠且高效的远程过程调用方法,成为本领域技术人员急需解决的技术问题。


技术实现思路

1、鉴于上述问题,本公开提供一种克服上述问题或者至少部分地解决上述问题的一种面向数据对象的远程过程调用方法及相关设备,技术方案如下:

2、一种面向数据对象的远程过程调用方法,应用于客户端,所述方法包括:

3、获得请求方发送的业务请求;

4、根据所述业务请求的业务逻辑,生成与所述业务请求对应的多个数据服务请求;

5、按照启动线程的线程数量对预留地址对应的内存空间进行分配,在所述内存空间中为各所述线程分配对应的内存分区,其中,所述预留地址为所述客户端与服务端基于内存映射机制预先约定好的虚拟内存区域对应的映射地址;

6、在任一所述线程获得所述数据服务请求的情况下,将该线程对应的内存分区的下一个可用空间首地址和所述数据服务请求发送至所述服务端,以使所述服务端读取所述可用空间首地址上的数据,并响应所述数据服务请求进行数据处理,返回数据处理后得到的数据对象;

7、利用所述下一个可用空间首地址在该内存分区上创建匿名内存区域;

8、在获得所述数据对象的情况下,将所述数据对象存储至所述匿名内存区域中;

9、在各所述数据服务请求对应的所述数据对象均存储至所述内存空间的情况下,对所述内存空间中的各所述数据对象进行处理,获得数据对象处理结果,并将所述数据对象处理结果发送至所述请求方。

10、一种面向数据对象的远程过程调用装置,应用于客户端,所述装置包括:业务请求获得单元、数据服务请求生成单元、内存空间分配单元、请求参数发送单元、内存区域创建单元、数据对象存储单元和数据对象处理结果获得单元,

11、所述业务请求获得单元,用于获得请求方发送的业务请求;

12、所述数据服务请求生成单元,用于根据所述业务请求的业务逻辑,生成与所述业务请求对应的多个数据服务请求;

13、所述内存空间分配单元,用于按照启动线程的线程数量对预留地址对应的内存空间进行分配,在所述内存空间中为各所述线程分配对应的内存分区,其中,所述预留地址为所述客户端与服务端基于内存映射机制预先约定好的虚拟内存区域对应的映射地址;

14、所述请求参数发送单元,用于在任一所述线程获得所述数据服务请求的情况下,将该线程对应的内存分区的下一个可用空间首地址和所述数据服务请求发送至所述服务端,以使所述服务端读取所述可用空间首地址上的数据,并响应所述数据服务请求进行数据处理,返回数据处理后得到的数据对象;

15、所述内存区域创建单元,用于利用所述下一个可用空间首地址在该内存分区上创建匿名内存区域;

16、所述数据对象存储单元,用于在获得所述数据对象的情况下,将所述数据对象存储至所述匿名内存区域中;

17、所述数据对象处理结果获得单元,用于在各所述数据服务请求对应的所述数据对象均存储至所述内存空间的情况下,对所述内存空间中的各所述数据对象进行处理,获得数据对象处理结果,并将所述数据对象处理结果发送至所述请求方。

18、一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现所述的面向数据对象的远程过程调用方法。

19、一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行所述的面向数据对象的远程过程调用方法。

20、借由上述技术方案,本公开提供的一种面向数据对象的远程过程调用方法及相关设备,应用于客户端,可以获得请求方发送的业务请求;根据业务请求的业务逻辑,生成与业务请求对应的多个数据服务请求;按照启动线程的线程数量对预留地址对应的内存空间进行分配,在内存空间中为各线程分配对应的内存分区,其中,预留地址为客户端与服务端基于内存映射机制预先约定好的虚拟内存区域对应的映射地址;在任一线程获得数据服务请求的情况下,将该线程对应的内存分区的下一个可用空间首地址和数据服务请求发送至服务端,以使服务端读取可用空间首地址上的数据,并响应数据服务请求进行数据处理,返回数据处理后得到的数据对象;利用下一个可用空间首地址在该内存分区上创建匿名内存区域;在获得数据对象的情况下,将数据对象存储至匿名内存区域中;在各数据服务请求对应的数据对象均存储至内存空间的情况下,对内存空间中的各数据对象进行处理,获得数据对象处理结果,并将数据对象处理结果发送至请求方。本公开利用内存映射机制实现远程过程调用的无序列化,使得数据对象在客户端进程和服务端进程中均为完全一致的内存镜像,并通过内存地址分区管理,使得客户端和服务端对数据对象所使用的地址空间完全一致,避免地址冲突,从而提高了数据对象的远程过程调用的效率,保障应用系统迁移到云计算平台后的可靠性。

21、上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。



技术特征:

1.一种面向数据对象的远程过程调用方法,其特征在于,应用于客户端,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述利用所述下一个可用空间首地址在该内存分区上创建匿名内存区域,包括:

3.根据权利要求1所述的方法,其特征在于,在获得所述数据对象的情况下,将所述数据对象存储至所述内存分区中与所述可用空间首地址对应的匿名内存区域中之后,还包括:

4.根据权利要求1所述的方法,其特征在于,所述服务端在接收到多个所述数据服务请求的情况下,依次响应各所述数据服务请求,在对一个所述数据服务请求进行数据处理完成后,再对另一个所述数据服务请求进行数据处理。

5.一种面向数据对象的远程过程调用装置,其特征在于,应用于客户端,所述装置包括:业务请求获得单元、数据服务请求生成单元、内存空间分配单元、请求参数发送单元、内存区域创建单元、数据对象存储单元和数据对象处理结果获得单元,

6.根据权利要求5所述的装置,其特征在于,所述内存区域创建单元,具体用于使用预设内存分配器中的内存分配算法对该内存分区进行内存地址分区管理,在该内存分区上创建与所述下一个可用空间首地址对应的匿名内存区域。

7.根据权利要求5所述的装置,其特征在于,还包括:可用空间首地址确定单元,

8.根据权利要求5所述的装置,其特征在于,所述服务端在接收到多个所述数据服务请求的情况下,依次响应各所述数据服务请求,在对一个所述数据服务请求进行数据处理完成后,再对另一个所述数据服务请求进行数据处理。

9.一种计算机可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时实现如权利要求1至4中任一项所述的面向数据对象的远程过程调用方法。

10.一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至4中任一项所述的面向数据对象的远程过程调用方法。


技术总结
本公开提供的一种面向数据对象的远程过程调用方法及相关设备,应用于客户端,可以利用内存映射机制实现远程过程调用的无序列化,使得数据对象在客户端进程和服务端进程中均为完全一致的内存镜像,并通过内存地址分区管理,使得客户端和服务端对数据对象所使用的地址空间完全一致,避免地址冲突,从而提高了数据对象的远程过程调用的效率,保障应用系统迁移到云计算平台后的可靠性。

技术研发人员:阎松柏,黄向平,杨毅,刘中一,李梦箫,尹丹丹,赵静,史晓菲
受保护的技术使用者:中国民航信息网络股份有限公司
技术研发日:
技术公布日:2024/3/11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1