CN102006315A - 分布式系统远程过程调用通信方法 - Google Patents
分布式系统远程过程调用通信方法 Download PDFInfo
- Publication number
- CN102006315A CN102006315A CN2009103062422A CN200910306242A CN102006315A CN 102006315 A CN102006315 A CN 102006315A CN 2009103062422 A CN2009103062422 A CN 2009103062422A CN 200910306242 A CN200910306242 A CN 200910306242A CN 102006315 A CN102006315 A CN 102006315A
- Authority
- CN
- China
- Prior art keywords
- remote procedure
- procedure call
- board card
- response message
- circuit board
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明涉及远程过程调用(RPC)的通信方式。本发明针对现有技术的远程过程调用执行时间太长的缺点,公开了一种分布式系统远程过程调用通信方法。本发明的技术方案是,分布式系统远程过程调用通信方法,包括源板卡和目的板卡;包括以下步骤:a、源板卡向各个目的板卡以广播方式发送远程过程调用请求报文;b、各个目的板卡同时收到所述请求报文,进行并行处理;c、各个目的板卡将其处理结果封装到应答报文中,并以单播方式发送给源板卡;d、源板卡收到各个目的板卡发送的应答报文,经过处理后将结果反馈给调用者。本发明的调用时间不会与目的板卡数量线性相关,用在分布式机架系统中,能够大大提高通信性能,充分发挥远程过程调用的优势。
Description
技术领域
本发明涉及分布式系统的通信领域,特别涉及远程过程调用(RPC)的通信方式。
背景技术
分布式机架系统是一种高处理能力、高转发能力和高接入能力的通信设备,对外为一个完整一致的系统,对内需要协调各个板卡协同工作,并保证各个板卡的一致性,因此涉及到众多模块和子系统间的卡间通信。各个板卡间的配置信息、状态信息、同步信息等都需要通过卡间通信来完成,故而对于通信性能要求极高。
在分布式机架系统中,如果需要在主控卡与线卡间通信,并且要求在线卡上进行一些处理并反馈处理结果时,使用远程过程调用可以使通信更加有效。使用此方式可以使各个模块不再关心分布式的通信细节,而关注于各个模块自身功能的设计,简化了系统的设计难度,节约了开发时间,并且可以保证系统一致的容错处理。但在分布式机架系统中如果使用传统的远程过程调用,则会面临通信性能问题。传统的远程过程调用通常是采用点到点的通信方式,这样应用在分布式机架系统中,当主控卡与多个线卡通信时,只好将一对多的通信转化成多个点对点的串行通信,并使目的板卡串行处理,这样一个远程过程调用执行的时间势必会与目的板卡的数量成线性相关,如果目的板卡数量足够大,一个远程过程调用执行时间就会太长,不能满足调用者的要求,不利于系统性能的提高。
发明内容
本发明所要解决的技术问题,就是针对现有技术的远程过程调用执行时间太长,不能满足调用者的要求,不利于提高系统性能的缺点,提供一种分布式系统远程过程调用通信方法。
本发明解决所述技术问题,采用的技术方案是,分布式系统远程过程调用通信方法,包括源板卡和目的板卡;其特征在于,包括以下步骤:
a、源板卡向各个目的板卡以广播方式发送远程过程调用请求报文;
b、各个目的板卡同时收到所述请求报文,进行并行处理;
c、各个目的板卡将其处理结果封装到应答报文中,并以单播方式发送给源板卡;
d、源板卡收到各个目的板卡发送的应答报文,经过处理后将结果反馈给调用者;
进一步的,步骤d中,源板卡收到各个目的板卡发送的应答报文后,需要检查各个应答报文的有效性,并将有效的应答报文中的执行结果汇总后反馈给远程过程调用的调用者;
更进一步的,源板卡执行步骤a后使用带定时器的计数信号量进行阻塞等待应答报文。
本发明的有益效果是,由于采用了广播发送请求报文以及并行处理报文的方式,对于一对多的远程过程调用,其总的调用时间为:一个请求报文的发送时间t1+目的板卡中一个最长的执行时间t2+最耗时的目的板卡应答报文发送时间t3+应答报文处理时间t4。对分布式机架系统,其连接的端口速度很高,故通信时间占用很少,并行处理时,在耗时最长的目的板卡执行处理时,其它板卡的应答报文已陆续收到,并被处理,故总的调用时间不会与目的板卡数量线性相关。在分布式机架系统中,由于很多调用都是针对对硬件和芯片读写的,耗时较长,故此本发明能够大大提高通信性能,充分发挥远程过程调用的优势。
附图说明
图1是本发明的分布式系统中的报文交互过程示意图;
图2是本发明一对多远程过程调用的流程图。
具体实施方式
下面结合附图详细描述本发明的技术方案。
本发明的技术方案,改变了传统的源板卡对目的板卡的点对点通信方式,并采用并行的应答报文处理模式,极大的缩短了远程过程调用的响应周期。
实施例
本实施例以一个分布式机架系统,该系统中的主控卡(MPU卡)为源板卡,四张线卡(LPU卡)作为目的板卡,下面描述其一对多的远程过程调用过程。(此处源板卡以MPU卡为例,但本发明不限于源板卡为MPU卡)。
图1所示为从MPU卡发出的到四个LPU卡的一对多的远程过程调用请求报文交互图。在MPU卡上t1时刻,远程过程调用的request1报文(请求报文1)被广播发送到4个LPU卡,各个LPU卡并行处理,完成后,各个LPU卡各自封装一个带有执行结果和输出参数(该输出参数为可选)的应答报文,以单播方式发送回MPU卡。MPU在t2,t3,t4,t5时刻分别收到reply1(应答报文1,以下类同),reply2,reply4,reply3,解封装应答报文,并检查和汇总结果,返回调用者,完成此次一对多远程过程调用。
如图2所示,MPU卡的一对多远程过程调用实施步骤如下:
在步骤10中封装远程过程调用的报文头及输入参数和参数标志等形成请求报文。
在步骤20中将此请求报文广播发送到各LPU。
在步骤30中计算剩余超时等待时间,此时间等于一个调用的总的超时等待时间减去已用去的时间。为了保证远程过程调用的时效性,每个调用都会设定总的超时等待时间,在收到部分应答报文并处理后,如果没有全部收完,则需要计算剩余超时等待时间。
在步骤40中判断是否剩余时间为0,如果是进入步骤110,否则进入步骤50。
在步骤50中使用步骤30计算所得的定时时间,继续阻塞等待未收到的应答报文。
在步骤60中阻塞被唤醒,是定时到了吗,如果是进入步骤110,如果不是,是因为收到应答报文被唤醒,则进入步骤70。
在步骤70中检查应答报文的有效性,对有效的报文进入步骤80,否则丢弃。在有效性检查中,需要检查应答报文的序号是否正确,源板卡号是否正确。对有效的应答报文,解封装得到其返回值和输出参数。
在步骤80中解封装应答报文,从中得到LPU调用的返回值和输出参数(如果有的话)。
在步骤90中统计收到的应答报文,比较判断是否已收到所有的应答报文了,如果是,进入步骤100,如果不是,则进入步骤30,开始重复步骤30到步骤90的过程。
具体的,在收到各个LPU卡的应答报文后,汇总各个应答报文的返回值时,遵循如下原则:如果全部LPU卡都返回OK,则此MPU卡调用返回给调用者的返回值是OK;如果部分LPU卡返回OK,部分板卡超时或返回ERROR时,则此MPU卡调用返回给调用者的返回值是POK(含义是部分OK);如果LPU卡返回ERROR,或部分LPU卡返回ERROR,部分LPU卡超时,则此MPU卡调用返回给调用者的是ERROR。
在步骤100中汇总各个应答报文,成为此远程过程调用的返回值和输出参数。
在步骤110中超时处理,判断相应的LPU是否已被拔走,根据情况进行不同的出错处理。
Claims (3)
1.分布式系统远程过程调用通信方法,包括源板卡和目的板卡;其特征在于,包括以下步骤:
a、源板卡向各个目的板卡以广播方式发送远程过程调用请求报文;
b、各个目的板卡同时收到所述请求报文,进行并行处理;
c、各个目的板卡将其处理结果封装到应答报文中,并以单播方式发送给源板卡;
d、源板卡收到各个目的板卡发送的应答报文,经过处理后将结果反馈给调用者。
2.根据权利要求1所述的分布式系统远程过程调用通信方法,其特征在于,步骤d中,源板卡收到各个目的板卡发送的应答报文后,需要检查各个应答报文的有效性,并将有效的应答报文中的执行结果汇总后反馈给远程过程调用的调用者。
3.根据权利要求1或2所述的分布式系统远程过程调用通信方法,其特征在于,源板卡执行步骤a后使用带定时器的计数信号量进行阻塞等待应答报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009103062422A CN102006315A (zh) | 2009-08-28 | 2009-08-28 | 分布式系统远程过程调用通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009103062422A CN102006315A (zh) | 2009-08-28 | 2009-08-28 | 分布式系统远程过程调用通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102006315A true CN102006315A (zh) | 2011-04-06 |
Family
ID=43813387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009103062422A Pending CN102006315A (zh) | 2009-08-28 | 2009-08-28 | 分布式系统远程过程调用通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102006315A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739552A (zh) * | 2012-07-19 | 2012-10-17 | 迈普通信技术股份有限公司 | 一种实现多主控远程过程调用的方法及系统 |
CN103246741A (zh) * | 2013-05-20 | 2013-08-14 | 成都市欧冠信息技术有限责任公司 | 分布式数据库系统的远程快速调用方法 |
CN107832144A (zh) * | 2017-10-20 | 2018-03-23 | 南方电网科学研究院有限责任公司 | 分布式并行计算方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101069159A (zh) * | 2005-12-28 | 2007-11-07 | 松下电工株式会社 | 用于发现服务并与该服务对话的系统和方法 |
CN101331714A (zh) * | 2005-12-14 | 2008-12-24 | 微软公司 | 涉及秘密行动节点枚举器的节点发现 |
CN101405998A (zh) * | 2006-03-22 | 2009-04-08 | 阿尔卡特朗讯 | 用于数据通信网络的逻辑群组端点发现 |
-
2009
- 2009-08-28 CN CN2009103062422A patent/CN102006315A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101331714A (zh) * | 2005-12-14 | 2008-12-24 | 微软公司 | 涉及秘密行动节点枚举器的节点发现 |
CN101069159A (zh) * | 2005-12-28 | 2007-11-07 | 松下电工株式会社 | 用于发现服务并与该服务对话的系统和方法 |
CN101405998A (zh) * | 2006-03-22 | 2009-04-08 | 阿尔卡特朗讯 | 用于数据通信网络的逻辑群组端点发现 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739552A (zh) * | 2012-07-19 | 2012-10-17 | 迈普通信技术股份有限公司 | 一种实现多主控远程过程调用的方法及系统 |
CN102739552B (zh) * | 2012-07-19 | 2015-09-23 | 迈普通信技术股份有限公司 | 一种实现多主控远程过程调用的方法及系统 |
CN103246741A (zh) * | 2013-05-20 | 2013-08-14 | 成都市欧冠信息技术有限责任公司 | 分布式数据库系统的远程快速调用方法 |
CN107832144A (zh) * | 2017-10-20 | 2018-03-23 | 南方电网科学研究院有限责任公司 | 分布式并行计算方法和装置 |
CN107832144B (zh) * | 2017-10-20 | 2020-07-28 | 南方电网科学研究院有限责任公司 | 分布式并行计算方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101136828B (zh) | 一种基于rs485多主机有线串行通讯的方法 | |
CN102780613B (zh) | 一种分布式设备板间通信的方法与装置 | |
CN106603367A (zh) | 一种用于时间同步的can总线通信方法 | |
CN101052013A (zh) | 一种网络设备内部管理通道实现的方法及系统 | |
CN102006315A (zh) | 分布式系统远程过程调用通信方法 | |
CN104950829A (zh) | 一种总线系统功耗控制方法及装置 | |
CN103098527A (zh) | 无线通信装置、无线通信系统以及无线通信方法 | |
CN101945031A (zh) | 一种高速现场总线从站相互通信的实现方法 | |
CN104636303B (zh) | 一种总线控制方法、电子设备及总线系统 | |
CN103095435B (zh) | 确定harq模式的方法、上行数据传输方法及设备 | |
CN110708324A (zh) | 一种实现fpga板卡间点对点通信方法及系统 | |
CN101068372B (zh) | 处理无线链接控制重置流程的变量的方法及其装置 | |
CN103186310A (zh) | 一种同频多笔电子白板 | |
CN102221860B (zh) | 一种机箱间背板信号无限级联的方法及其装置 | |
CN100579182C (zh) | 一种字幕叠加的方法及装置 | |
CN101217380B (zh) | 一种atca机框及机框系统 | |
CN102801435B (zh) | 一种适用于小卫星发射场使用的c3i系统 | |
CN102789399B (zh) | 多核分布式系统中的进程间通信方法 | |
CN101365078B (zh) | 电视接收机中遥控命令码转发方法 | |
CN102244761A (zh) | 一种视频会议终端升级软件的系统及方法 | |
CN201298921Y (zh) | 授时装置、基站时钟装置及基站授时系统 | |
CN113064342B (zh) | 一种数字多波束信号处理系统及时间同步方法 | |
CN104734838A (zh) | 一种同步数据的方法、系统及交换矩阵 | |
CN101188595A (zh) | 一种发射机和在该发射机中进行时序控制的方法 | |
CN1156766C (zh) | 串行数据通信方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110406 |