一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于ARINC653分区的RPC通信方法与流程

2022-04-16 16:06:10 来源:中国专利 TAG:

一种基于arinc653分区的rpc通信方法
技术领域
1.本发明涉及但不限于计算机系统软件技术领域,具体为一种基于arinc653分区的rpc通信方法。


背景技术:

2.航空电子系统中多功能集成在同一物理平台处理,综合化处理平台应运而生,该综合化处理平台中广泛应用的符合航空电子arinc653标准的分区操作系统能够提供时空隔离分区、静态存储管理、故障监控等能力。
3.未来航空电子系统需要多处理器甚至多机协同执行任务,其处理方式朝着分布式处理的方向发展,但是目前的分区操作系统的多个物理平台如需进行通信,只能应用显式使用网络协议,应用调用处理繁杂,平台移植困难,难以满足未来航空电子系统对功能快速迁移的需求。


技术实现要素:

4.本发明实施例的目的为:本发明实施例提供一种基于arinc653分区的rpc通信方法,以解决现有分区操作系统在多个物理平台间进行通信时,由于只能应用显式使用网络协议,从而导致应用调用处理繁杂,平台移植困难,难以满足未来航空电子系统对功能快速迁移需求的问题。
5.本发明实施例的技术方案为:本发明实施例提供一种基于arinc653分区的rpc通信方法,客户端物理平台和服务器物理平台中均运行653分区操作系统,客户端物理平台和服务器端物理平台中均包括多个653应用分区、核心操作系统(os)中配置有rpc核心支持模块,且服务器端的每个分区提供一种rpc服务;所述rpc调用方法包括:
6.步骤1,rpc服务发现过程,包括:客户端发现rpc服务过程和服务器端注册rpc服务过程;
7.步骤2,客户端分区通过发送rpc服务请求调用服务器端的prc服务,以及服务器端分区对rpc服务请求的响应处理;
8.其中,所述客户端分区调用服务器端的prc服务,包括:rpc同步调用处理或rpc异步调用处理;rpc同步调用处理过程中,一直等待直至接收到服务器端返回的服务结果或者超时时间;rpc异步调用处理的过程中,在调用时注册回调函数,内核层的rpc核心支持模块接收到服务器端返回的服务结果时,通过向客户端分区投递虚中断消息以指示向客户端分区执行回调函数。
9.可选地,如上所述的基于arinc653分区的rpc通信方法中,所述步骤1中的客户端发现rpc服务过程,包括:
10.所述客户端的rpc核心支持模块在初始化时创建并运行两个任务,包括:rpc发送广播包任务和rpc接收广播包任务;
11.其中,rpc发送广播包任务,用于在客户端启动时获取已建立网络连接的各服务器
端的各组rpc服务号和端口号,并将获取的各组rpc服务号和端口号保存在本地服务信息副本中;
12.rpc接收广播包任务,用于客户端运行时,接收已完成端口映射服务的服务器端所广播的rpc服务端口号,并根据本次接收的rpc服务端口号更新本地保存的服务信息副本。
13.可选地,如上所述的基于arinc653分区的rpc通信方法中,所述步骤1中的服务器端注册rpc服务过程,包括:
14.服务器端分区通过调用服务注册接口进入内核层的服务地址映射器,以使得服务地址映射器对rpc服务动态分配相应的端口号,并将该服务器端分区的rpc服务与所分配的端口号对应保存在服务地址映射表中;服务器端的rpc核心支持模块将已完成注册rpc服务的各组rpc服务号和端口号在网络中进行广播。
15.可选地,如上所述的基于arinc653分区的rpc通信方法中,所述步骤1中的服务器端注册rpc服务过程,还包括:
16.根据服务器端新注册的rpc服务和已注册rpc服务的退出,更新服务地址映射表中的内容。
17.可选地,如上所述的基于arinc653分区的rpc通信方法中,所述步骤2中的客户端分区的同步调用处理,包括:
18.客户端分区发送rpc服务同步调用请求,并且发送超时时间,一直等待服务器端返回结果,如果在超时时间到达之前接收到调用返回结果,客户端分区正常处理返回结果;否则进行调用错误处理。
19.可选地,如上所述的基于arinc653分区的rpc通信方法中,所述步骤2中的客户端分区的异步调用处理,包括:
20.客户端分区发送rpc服务异步调用请求,并且注册用于处理返回的服务结果的回调函数,继续其他功能任务处理;
21.客户端的内核层中rpc核心支持模块创建用于接收服务结果的守护进程,由新创建的守护进程等待接收服务器端返回的处理结果,在守护进程接收到返回结果时,向发送请求的客户端分区发送虚中断消息,以指示客户端分区的回调函数对返回结果进行处理。
22.可选地,如上所述的基于arinc653分区的rpc通信方法中,
23.步骤1的服务发现过程中,服务器端分区还调用本分区中的服务端存根,由所调用的服务端存根创建相应rpc服务端句柄;注册rpc服务过程中还在内核层创建并启动该rpc服务的rpc守护任务,并在服务器端分区中创建一个服务守护进程。
24.可选地,如上所述的基于arinc653分区的rpc通信方法中,所述步骤2中服务器端分区对rpc服务请求的响应处理,包括:
25.服务器端的内核层中的rpc守护任务接收到rpc服务请求时,通过rpc服务端句柄将该rpc服务请求以虚中断消息的形式发送给该rpc服务请求所对应的服务器端分区,使得服务器端分区的服务守护进程进行对rpc服务请求进行响应处理,并将处理结果通过内核层的rpc核心支持模块返回给客户端中调用rpc服务相应的客户端分区。
26.本发明实施例的有益效果为:
27.本发明实施例提出一种的基于arinc653分区的rpc通信方法,在采用内核层分区架构的分布式嵌入式操作系统平台上,为应用分区提供远程过程调用的能力;本发明的实
现主要包括以下几方面内容:第一、分析服务使能的时机,利用主动发现结合被动广播两种方式,使客户端感知网络上已经使能的全部服务信息;第二、客户端同步和异步两种方式请求调用,其中异步情况利用虚中断机制实现;第三、服务驻留在分区,服务器接收到请求进行服务处理。
28.采用本发明实施例提供的技术方案,可在分布式嵌入式系统平台上向分区应用提供跨节点的互操作能力,实现全局任务和资源的透明互操作;能够在分布式嵌入式系统中,为应用分区基于网络实现实时、确定的分布式系统内节点间的功能调用机制,支持多节点应用之间透明的互操作;另外,通过支持同步/异步模式,应用可根据需求场景灵活选择调用,容忍网络延迟。
附图说明
29.附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
30.图1为本发明实施例提供的一种基于arinc653分区的rpc通信方法的工作原理的示意图;
31.图2为本发明实施例提供的基于arinc653分区的rpc通信方法中rpc服务发现过程的流程示意图;
32.图3为本发明实施例提供的基于arinc653分区的rpc通信方法中异步调用请求的工作原理示意图;
33.图4为本发明实施例提供的基于arinc653分区的rpc通信方法中客户端请求服务和服务器端分区响应请求的处理流程示意图。
具体实施方式
34.为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互任意组合。
35.上述背景技术中已经说明,采用现有分区操作系统在多个物理平台间进行通信时,只能应用显式使用网络协议,因此,存在应用调用处理繁杂,平台移植困难,难以满足未来航空电子系统对功能快速迁移需求的问题。
36.由于分区操作系统提供时空隔离分区、静态存储管理、故障监控等能力,具备强实时性、可靠性、确定性、安全性。因此,分区操作系统在航电系统中应用广泛。
37.在未来分布式处理的航空电子系统中,一个完整的业务功能可能需要通过多个分布式应用主体的协同来完成,需要向这些应用提供相互间的高质量透明互操作性能力。上述已经说明现有分区操作系统中的同学方式只能应用显式使用网络协议,应用调用处理繁杂,平台移植困难,难以满足未来航空电子系统对功能快速迁移的需求。
38.对于需要通过多个分布式应用主体的协同完成的业务功能,特别对于人机接口/显控区,由服务器和各显控设备构成,在服务器端中将功能封装成服务供各显控设备调用,完成信息的呈现,因此,可以考虑建立面向服务的远程过程调用rpc机制,使客户端进行远程调用时,能够像本地调用一样方便,让调用者感知不到远程调用的逻辑,从而实现支持基
于服务的互操作实现。
39.然而,分区操作系统提供时空隔离分区,不同应用驻留在不同分区,目前的通用rpc机制并没有针对分区操作系统作特殊处理,无法满足客户端分区应用同步/异步调用服务,以及服务器端不同分区应用远程提供服务。
40.为了在分布式嵌入式分区操作系统平台中,使得部署在分区的应用具备远程过程调用和互操作能力,本发明实施例提供一种基于arinc653分区的rpc通信方法,该rpc调用方法通过分析rpc解决方案,提出利用虚中断机制完成将客户端和服务器部署在分区的技术途径,支持同步和异步服务调用,基于网络实现实时、确定的分布式系统内节点间的功能调用机制。
41.本发明提供以下几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
42.图1为本发明实施例提供的一种基于arinc653分区的rpc通信方法的工作原理的示意图。本发明实施例采用客户端和服务器端模式来实现,客户端物理平台和服务器物理平台中均运行653分区操作系统,客户端物理平台和服务器端物理平台中均包括多个653应用分区、核心操作系统(os)中配置有rpc核心支持模块,且服务器端的每个分区提供一种rpc服务。基于如图1所示客户端和服务器端的分区操作系统架构,本发明实施例提供的rpc调用方法包括:
43.步骤1,rpc服务发现过程,包括:客户端发现rpc服务过程和服务器端注册rpc服务过程;
44.步骤2,客户端分区通过发送rpc服务请求调用服务器端的prc服务,以及服务器端分区对rpc服务请求的响应处理。
45.需要说明的是,本发明实施例的步骤2中客户端分区调用服务器端的prc服务的实现方式包括:rpc同步调用处理或rpc异步调用处理;rpc同步调用处理过程中,一直等待直至接收到服务器端返回的服务结果或者超时时间;rpc异步调用处理的过程中,在调用时注册回调函数,内核层的rpc核心支持模块接收到服务器端返回的服务结果时,通过向客户端分区投递虚中断消息以指示向客户端分区执行回调函数。
46.图2为本发明实施例提供的基于arinc653分区的rpc通信方法中rpc服务发现过程的流程示意图。
47.在本发明实施例中,一方面,上述步骤1中的客户端发现rpc服务过程,可以包括:
48.客户端的rpc核心支持模块在初始化时创建并运行两个任务,该两个任务包括:rpc发送广播包任务和rpc接收广播包任务;
49.其中,rpc发送广播包任务,用于在客户端启动时获取已建立网络连接的各服务器端的各组rpc服务号和端口号,并将获取的各组rpc服务号和端口号保存在本地服务信息副本中;
50.rpc接收广播包任务,用于客户端运行时,接收已完成端口映射服务的服务器端所广播的rpc服务端口号,并根据本次接收的rpc服务端口号更新本地保存的服务信息副本。
51.在本发明实施例中,另一方面,上述步骤1中的服务器端注册rpc服务过程,可以包括:
52.服务器端分区通过调用服务注册接口进入内核层的服务地址映射器,以使得服务
地址映射器对rpc服务动态分配相应的端口号,并将该服务器端分区的rpc服务与所分配的端口号对应保存在服务地址映射表中;服务器端的rpc核心支持模块将已完成注册rpc服务的各组rpc服务号和端口号在网络中进行广播。
53.进一步地,本发明实施例的步骤1中,服务器端注册rpc服务过程,还可以包括:
54.根据服务器端新注册的rpc服务和已注册rpc服务的退出,更新服务地址映射表中的内容。
55.在本发明实施例中,上述步骤2中的客户端分区的同步调用处理,可以包括:
56.客户端分区发送rpc服务同步调用请求,并且发送超时时间,一直等待服务器端返回结果,如果在超时时间到达之前接收到调用返回结果,客户端分区正常处理返回结果;否则进行调用错误处理。
57.图3为本发明实施例提供的基于arinc653分区的rpc通信方法中异步调用请求的工作原理示意图。在本发明实施例中,上述步骤2中的客户端分区的异步调用处理,可以包括:
58.客户端分区发送rpc服务异步调用请求,并且注册用于处理返回的服务结果的回调函数,继续其他功能任务处理;
59.客户端的内核层中rpc核心支持模块创建用于接收服务结果的守护进程,由新创建的守护进程等待接收服务器端返回的处理结果,在守护进程接收到返回结果时,向发送请求的客户端分区发送虚中断消息,以指示客户端分区的回调函数对返回结果进行处理。
60.在本发明实施例的一种实现方式中,上述步骤1的服务发现过程中,服务器端分区还调用本分区中的服务端存根,由所调用的服务端存根创建相应rpc服务端句柄;注册rpc服务过程中还在内核层创建并启动该rpc服务的rpc守护任务,并在服务器端分区中创建一个服务守护进程。
61.在本发明实施例的一种实现方式中,上述步骤2中服务器端分区对rpc服务请求的响应处理,可以包括:
62.服务器端的内核层中的rpc守护任务接收到rpc服务请求时,通过rpc服务端句柄将该rpc服务请求以虚中断消息的形式发送给该rpc服务请求所对应的服务器端分区,使得服务器端分区的服务守护进程进行对rpc服务请求进行响应处理,并将处理结果通过内核层的rpc核心支持模块返回给客户端中调用rpc服务相应的客户端分区。
63.本发明实施例提供一种基于arinc653分区的rpc通信方法,在采用内核层分区架构的分布式嵌入式操作系统平台上,为应用分区提供远程过程调用的能力;本发明的实现主要包括以下几方面内容:第一、分析服务使能的时机,利用主动发现结合被动广播两种方式,使客户端感知网络上已经使能的全部服务信息;第二、客户端同步和异步两种方式请求调用,其中异步情况利用虚中断机制实现;第三、服务驻留在分区,服务器接收到请求进行服务处理。
64.采用本发明实施例提供的技术方案,可在分布式嵌入式系统平台上向分区应用提供跨节点的互操作能力,实现全局任务和资源的透明互操作;能够在分布式嵌入式系统中,为应用分区基于网络实现实时、确定的分布式系统内节点间的功能调用机制,支持多节点应用之间透明的互操作;另外,通过支持同步/异步模式,应用可根据需求场景灵活选择调用,容忍网络延迟。
65.以下通过一些具体实施示例对本发明实施例提供的基于arinc653分区的rpc通信方法的具体实施方式进行示意性说明。
66.本发明具体实施例提供一种基于arinc653分区的rpc通信方法,使用客户/服务器模式来实现,在激活远程过程调用(rpc)服务框架的客户端节点和服务器端节点提供同步和异步模式的远端服务调用。
67.本发明实施例提供的一种基于arinc653分区的rpc通信方法的技术方案,主要包括如下几个过程:
68.过程1,rpc服务发现过程,该过程主要包括:客户端发现rpc服务过程和服务器端注册rpc服务过程。
69.需要说明的是,rpc服务使能的时机要么是客户端启动之前,要么是客户端启动之后。如图2所示,为本发明实施例提供的基于arinc653分区的rpc通信方法中rpc服务发现过程的流程示意图
70.为了使客户端感知发现网络域内注册的所有服务,客户端的rpc支撑模块在初始化时创建并运行两个任务:(1)rpc发送广播包任务,以请求获取已建立网络连接的各服务器端的各组rpc服务号和端口号,并将获取的各rpc服务端口号保存在本地服务信息副本中;(2)rpc接收广播包任务,作为客户端接收服务器端广播包的守护任务,该任务接收到的rpc广播包中包含已完成端口映射服务的各组rpc服务号和端口号,客户端的rpc广播接收任务接收到消息后,解析消息获取已经注册的各组rpc服务号和端口号,更新本地保存的服务信息副本。
71.服务器端的每个服务器端分区提供一种具体的rpc服务,服务器端分区调用本分区中的服务端存根,由所调用的服务端存根创建相应rpc服务端句柄;服务器分区还通过调用服务注册接口进入内核层的服务地址映射器,对rpc服务动态分配相应的端口号,将该服务器分区的rpc服务与所分配的端口号对应保存在服务地址映射表中;服务器端的rpc核心支持模块的服务注册功能负责一旦完成某rpc服务的注册,就将对应prc服务号和端口号等信息在网络中进行广播。进一步地,根据rpc服务的注册和退出更新服务地址映射表中的内容。
72.过程2,客户端分区的同步或异步调用处理
73.客户端分区的同步和异步请求调用通过系统调用机制完成,prc同步调用一直等待直至接收到服务消息或者超时时间到。prc异步调用在请求发送成功后返回到用户态继续执行其他任务。
74.如图3所示,为本发明实施例提供的基于arinc653分区的rpc通信方法中异步调用请求的工作原理示意图;
75.在异步调用处理过程中,客户端的应用进行rpc服务调用,用户需注册接收到服务结果后的回调函数,为了支持多个回调函数处理,以消息id为关键字进行区分。在进行rpc异步调用时,给每个rpc调用创建一个用于接收服务结果的守护进程,发出rpc调用请求的任务发送成功直接返回。由新创建的接收服务结果的守护进程等待接收服务器端处理传回的处理结果。守护进程一旦接收到消息,找到发起请求的分区应用,向该分区发送虚中断。支持异步模式下的回调处理,在守护进程收到服务器端传回的消息后,进入虚中断处理程序,进行反序列化提取出请求id以及结果,以请求id为索引查找rpc回调全局表,找与请求
id相对应的回调函数,通过消息队列将服务器端传回的rpc处理结果传递给回调处理任务,并进行回调处理。
76.过程3,服务器端分区的响应请求处理
77.如图4所示,为本发明实施例提供的基于arinc653分区的rpc通信方法中客户端请求服务和服务器端分区响应请求的处理流程示意图。服务器端有内核层守护任务接收rpc调用请求,在接收到请求包后,
78.通过虚中断通知提供该服务的分区,虚中断处理程序唤醒用户分区的服务端存根,通过反序列化操作解析请求参数,进行实际服务处理后,将结果进行序列化后通过系统调用传入内核的rpc服务进行封装并发送。
79.具体服务存在于应用分区中,分区服务器端存根主动调用接口注册提供的该服务,注册成功后服务以守护进程的形式存在于分区。一旦接收到请求,该分区的虚中断处理程序负责唤醒具体服务进程。接收请求并处理,具体过程如下:
80.(1)服务器端在异步io中接收到来自客户端的网络数据包;
81.(2)解析数据包,对字节流进行反序列化,得到程序服务号,找到该服务所在的分区,并向该分区投递虚中断,进入服务分区的虚中断处理例程,唤醒具体服务;
82.(3)服务不同所需的服务参数不同,服务分区进程根据服务的具体过程号,调用相应的反序列化接口解析请求数据包,获取该服务处理时所需的请求参数,找到过程入口进行具体处理,服务处理结束得到返回结果;
83.(4)用户分区通过系统调用将调用结果序列化为网络字节流,由服务器将结果返回给客户端。
84.参照图1到图4所示,该具体实施例提供的基于arinc653分区的rpc通信方法的具体实施方式如下:
85.1)客户端的应用进行rpc调用,激活了客户端存根,客户端存根创建此次rpc调用的客户端句柄,并在创建句柄时通过rpc调用程序名、过程名、版本号检索本地rpc服务端口映射表获取服务器地址(网络地址 端口号)。
86.2)调用序列化库提供的服务对调用参数进行序列化处理,并将处理过的参数地址传给rpc服务调用接口,该接口陷入特权态调用rpc支持库中的功能进行rpc封装,并将封装好的消息经过socket标准接口经网络传输给服务器端。
87.3)若为同步rpc调用则等待到服务器端传回服务调用结果,并将服务器端传回的数据包进行反序列化操作,最终将结果传回给应用。
88.4)若为异步rpc调用,用户需注册接收到服务结果后的回调函数,执行rpc调用请求,请求发送之后直接返回用户态继续执行用户代码,核心rpc守护进程一直等待请求服务返回的网络消息。
89.5)一旦该守护进程接收到服务器端返回的包,通过虚中断将消息id和服务结果返回给相应分区,分区根据返回包的消息id在分区中保存的回调映射表中检索到与消息id相对应的回调函数地址,进行用户注册的结果处理。
90.6)服务器端每个分区提供一种rpc服务,用户调用服务注册接口进入内核态的服务地址映射器,将端口映射信息保存在服务地址映射表中。一旦完成某rpc服务的注册,就将服务号、版本号、端口号等信息在网络中进行广播。
91.7)服务器端有内核守护任务接收rpc调用请求,在接收到请求包后,通过虚中断通知提供该服务的分区,虚中断处理程序唤醒用户分区的服务端存根,通过反序列化操作解析请求参数。
92.8)进行实际服务处理后,将结果进行序列化后通过系统调用传入内核的rpc服务进行封装并发送。
93.虽然本发明所揭露的实施方式如上,但的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献