CN102739552A - 一种实现多主控远程过程调用的方法及系统 - Google Patents
一种实现多主控远程过程调用的方法及系统 Download PDFInfo
- Publication number
- CN102739552A CN102739552A CN2012102505425A CN201210250542A CN102739552A CN 102739552 A CN102739552 A CN 102739552A CN 2012102505425 A CN2012102505425 A CN 2012102505425A CN 201210250542 A CN201210250542 A CN 201210250542A CN 102739552 A CN102739552 A CN 102739552A
- Authority
- CN
- China
- Prior art keywords
- mpu
- sequence number
- rpc
- numbering
- encapsulated
- 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.)
- Granted
Links
Images
Landscapes
- Telephonic Communication Services (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及网络通信领域中的路由交换控制技术,其公开了一种实现多主控远程过程调用的方法,解决传统技术中为了区分控制指令的来源而需要作大量的工作,导致开发效率低下和系统不稳定的问题。该方法通过给每个堆叠成员设备的MPU进行编号,将MPU编号封装在RPC序列号中,LPU根据序列号中的MPU编号确定指令来自那个MPU,很容易扩展RPC支持堆叠系统,提升开发效率,提高系统稳定性。此外,本发明还公开了一种实现多主控远程过程调用的系统,适用于堆叠系统。
Description
技术领域
本发明涉及网络通信领域中的路由交换控制技术,特别涉及一种实现多主控远程过程调用(Remote Procedure Call,简称RPC)的方法及系统。
背景技术
目前主流路由交换设备的系统架构一般分为数据平面、控制平面和监控平面三个子系统。其中,控制平面包括主控卡MPU控制平面和业务线卡LPU控制平面,MPU控制平面负责协议计算和整个设备的管理,LPU控制平面负责硬件芯片的设置和管理,MPU通过RPC下发指令到LPU来实现对硬件芯片的操作,如图1所示,MPU通过RPC下发指令到各LPU;图2中示意了MPU到LPU的RPC实现过程:MPU作为RPC客户端(client)将函数参数及key值封装为一个报文,发送至相应LPU,LPU接收报文后,作为RPC服务器端(Server)从报文中将函数参数及key值解析出来,通过key值匹配相应实体函数并执行。
在堆叠系统中,多个机架设备作为堆叠成员设备构成一个整体,虚拟为一台交换设备,存在多个主控卡对同一张线卡进行操作的情况,因LPU无法区分具体调用函数来自哪个MPU,容易出现混乱,例如:在图3中,堆叠成员设备1和堆叠成员设备2的MPU都有RPC指令下发到堆叠成员设备2的LPU2;LPU2无法区分收到的RPC指令到底是来自哪一个MPU;
现有技术中有一种实现方法是通过key值区分控制指令的来源,即不同的MPU到同一个LPU执行不同的操作函数,靠不同的函数名来区分MPU,因此,即使是同样的操作,也必须写多个函数,而MPU到LPU的操作很多,RPC函数有几百个,这就需要进行大量的复制;随着系统的构成日益复杂,MPU数目的不断增加,重复的函数数量很大,传统技术的处理方式会导致开发效率低下和系统不稳定。
发明内容
本发明所要解决的技术问题是:提出一种能够支持堆叠系统且处理简单的实现多主控远程过程调用的方法及系统,解决传统技术中为了区分控制指令的来源而需要作大量的工作,导致开发效率低下和系统不稳定的问题。
本发明解决上述技术问题所采用的方案是:一种实现多主控远程过程调用的系统,所述系统包括至少两个堆叠成员设备,其中每个堆叠成员设备包括:
调用管理模块,用于为所在堆叠成员设备的MPU设置MPU编号,并为MPU分配RPC序列号计数器;
MPU编号封装模块,用于在MPU每次下发RPC控制指令时,将MPU编号封装到RPC序列号中;
报文封装发送模块,用于将包含MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,并发送至目标LPU;
MPU编号解析模块,用于目标LPU接收到MPU下发的以太报文后,从RPC序列号中提取MPU编号和真实的序列号,并提取出函数key值,进而找到对应的实体函数执行,将函数执行结果与所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。
进一步,所述RPC序列号计数器用于为其所在MPU每次下发RPC控制指令时,自动分配RPC序列号。
进一步,所述RPC序列号具有32位。
进一步,所述将MPU编号封装到RPC序列号中的方法是:
将32位RPC序列号中的高4位分配给MPU编号使用,将剩余的28位分配给真实的序列号使用。
一种实现多主控远程过程调用的方法,包括以下步骤:
a.为每个堆叠成员设备的MPU设置MPU编号并分配RPC序列号计数器;
b.在任一MPU每次下发RPC控制指令时,根据RPC序列号计数器计算真实的序列号,并将自身的MPU编号和真实的序列号封装到RPC序列号中;
c.所述任一MPU将已封装了MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,发送至目标LPU;
d.所述目标LPU对所述以太报文进行解析,从RPC序列号中提取MPU编号和真实的序列号,通过key值查找匹配的实体函数;
e.所述目标LPU执行该实体函数进行相应配置,将函数执行结果和所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。
进一步,所述RPC序列号具有32位。
进一步,步骤b中,所述将该MPU编号和真实的序列号封装到RPC序列号的方法是:
将32位RPC序列号中的高4位分配给MPU编号使用,将剩余的28位分配给真实的序列号使用。
本发明的有益效果是:为每个MPU进行编号,并通过对RPC序列号进行扩展,将MPU编号封装至RPC序列号中,目标LPU根据RPC序列号中的MPU编号来确定本次控制指令来自哪个MPU,无需复制大量的RPC函数,从而降低了系统工作量,大大提升了开发效率和系统稳定性,特别适用于堆叠系统。
附图说明
图1为MPU通过RPC下发指令到各LPU的示意图;
图2为MPU到LPU的RPC实现过程示意图;
图3为多主控下发控制指令的示意图;
图4为实施例中的RPC序列号构成图;
图5为实施例中的实现多主控远程过程调用的系统结构框图;
图6为实施例中的实现多主控远程过程调用的方法流程图。
具体实施方式
针对传统技术中为了区分控制指令的来源而需要作大量的工作,导致开发效率低下和系统不稳定的问题,本发明提供了一种实现多主控远程过程调用的系统和方法,其基本思想为:给每个堆叠成员设备的MPU进行编号,将MPU编号封装在RPC序列号中,LPU根据序列号中的MPU编号确定指令来自那个MPU,很容易扩展RPC支持堆叠系统,提升开发效率,提高系统稳定性。
参见图5,本例中的实现多主控远程过程调用的系统,包括:
调用管理模块,用于为所在堆叠成员设备的主控卡设置MPU编号,并为MPU分配RPC序列号计数器;
MPU编号封装模块,用于在MPU每次下发RPC控制指令时,将MPU编号封装到RPC序列号中;
报文封装发送模块,用于将包含MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,并发送至目标业务线卡LPU;
MPU编号解析模块,用于目标LPU接收到MPU下发的以太报文后,从RPC序列号中提取MPU编号和真实的序列号,并提取出函数key值,进而找到对应的实体函数执行,将函数执行结果与所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。
所述RPC序列号计数器用于为其所在MPU每次下发RPC控制指令时,自动分配RPC序列号。序列计数器原用于跟踪每一次RPC操作,即MPU下发指令到LPU,LPU执行实际函数动作后,将结果值返回给MPU,这个过程是异步的,MPU就是依靠这个序列号计数器确定返回值对应那一次RPC;现扩展序列计数器的作用,包含MPU编号,LPU可得知RPC来自哪个MPU。
所述RPC序列号具有32位,参见图4,其高4位(28-31)分配给MPU编号使用,其剩余28位(0-27)作为递增的实际的序列号使用,从0开始递增,到最大值再翻转为0。
下面以一个实施例说明实现多主控远过程调用的方法,如图6所示,其包括以下步骤:
步骤S601,为每个堆叠成员设备的MPU设置MPU编号并分配RPC序列号计数器。
在本步骤中,定义32位的整数型RPC序列号,且为递增的:MPU每执行一次RPC,序列号值每次加一,加到最大值,翻转为零。将MPU编号封装到RPC序列号中,即将MPU编号定义在RPC序列号的高4位部分,真实的序列号填写在低28位部分。
步骤S602,在任一MPU每次下发RPC控制指令时,根据RPC序列号计数器计算真实的序列号,并将自身的MPU编号和真实的序列号封装到RPC序列号中。
本步骤中,每个堆叠成员设备的MPU每次下发RPC控制指令到某一LPU时,需要设置RPC序列号的高4位为自身的MPU编号,低28位为RPC计数器分配的真实的序列号。
步骤S603,所述任一MPU将已封装了MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,发送至目标LPU。
本步骤中,需要发送RPC控制指令的MPU,将RPC序列号、函数key值、函数参数封装为一个以太格式的报文,即将RPC序列号、函数key值、函数参数,按照网络字节序方式,以字节流的方式填写到缓冲区,然后将缓冲内容通过以太网络接口发到目标LPU。
步骤S604,所述目标LPU对所述以太报文进行解析,从RPC序列号中提取MPU编号和真实的序列号,通过key值查找匹配的实体函数。
本步骤中,目标LPU将接收到的以太报文存在缓冲区,按照网络字节序方式,从缓冲区中将RPC序列号、函数key值、函数参数提取出来;并将RPC序列号的高4位分解出来,得到MPU编号;通过函数key值查找匹配的实体函数:LPU上大量函数指针以数组方式存储,遍历数组,对比key值,找到相应的函数指针。
步骤S605,所述目标LPU执行该实体函数进行相应配置,将函数执行结果和所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。
本步骤中,目标LPU执行实体函数进行相应配置:即跳转到函数指针指向的函数实体执行,完成执行后,将函数执行结果和所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种实现多主控远程过程调用的系统,包括至少两个堆叠成员设备,其特征在于,每个堆叠成员设备包括:
调用管理模块,用于为所在堆叠成员设备的主控卡设置MPU编号,并为MPU分配RPC序列号计数器;
MPU编号封装模块,用于在MPU每次下发RPC控制指令时,将MPU编号封装到RPC序列号中;
报文封装发送模块,用于将包含MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,并发送至目标业务线卡LPU;
MPU编号解析模块,用于目标LPU接收到MPU下发的以太报文后,从RPC序列号中提取MPU编号和真实的序列号,并提取出函数key值,进而找到对应的实体函数执行,将函数执行结果与所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。
2.如权利要求1所述的一种实现多主控远程过程调用的系统,其特征在于,所述RPC序列号计数器用于为其所在MPU每次下发RPC控制指令时,自动分配RPC序列号。
3.如权利要求1或2所述的一种实现多主控远程过程调用的系统,其特征在于,所述RPC序列号具有32位。
4.如权利要求3所述的一种实现多主控远程过程调用的系统,其特征在于,所述将MPU编号封装到RPC序列号中的方法是:
将32位RPC序列号中的高4位分配给MPU编号使用,将剩余的28位作为真实的序列号使用。
5.一种实现多主控远程过程调用的方法,其特征在于,包括以下步骤:
a.为每个堆叠成员设备的MPU设置MPU编号并分配RPC序列号计数器;
b.在任一MPU每次下发RPC控制指令时,根据RPC序列号计数器计算真实的序列号,将自身的MPU编号和真实的序列号封装到RPC序列号中;
c.所述任一MPU将已封装了MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,发送至目标LPU;
d.所述目标LPU对所述以太报文进行解析,从RPC序列号中提取MPU编号和真实的序列号,通过key值查找匹配的实体函数;
e.所述目标LPU执行该实体函数进行相应配置,将函数执行结果和所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。
6.如权利要求5所述的一种实现多主控远程过程调用的方法,其特征在于,所述RPC序列号具有32位。
7.如权利要求6所述的一种实现多主控远程过程调用的方法,其特征在于,步骤b中,所述将MPU编号和真实的序列号封装到RPC序列号中的方法是:
将32位RPC序列号的高4位分配给MPU编号使用,将剩余的28位分配给真实的序列号使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210250542.5A CN102739552B (zh) | 2012-07-19 | 2012-07-19 | 一种实现多主控远程过程调用的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210250542.5A CN102739552B (zh) | 2012-07-19 | 2012-07-19 | 一种实现多主控远程过程调用的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102739552A true CN102739552A (zh) | 2012-10-17 |
CN102739552B CN102739552B (zh) | 2015-09-23 |
Family
ID=46994364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210250542.5A Active CN102739552B (zh) | 2012-07-19 | 2012-07-19 | 一种实现多主控远程过程调用的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102739552B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021223710A1 (zh) * | 2020-05-06 | 2021-11-11 | 华为技术有限公司 | 报文传输的方法和框式通信设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184032A (zh) * | 2007-10-31 | 2008-05-21 | 中兴通讯股份有限公司 | 一种堆叠系统设备通讯的方法 |
CN101262501A (zh) * | 2008-04-23 | 2008-09-10 | 杭州华三通信技术有限公司 | 一种多核系统中的核间通信方法和一种多核系统 |
CN101795206A (zh) * | 2009-11-26 | 2010-08-04 | 福建星网锐捷网络有限公司 | 一种在分布式构成设备上实现snmp代理的方法和装置 |
CN102006315A (zh) * | 2009-08-28 | 2011-04-06 | 迈普通信技术股份有限公司 | 分布式系统远程过程调用通信方法 |
-
2012
- 2012-07-19 CN CN201210250542.5A patent/CN102739552B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184032A (zh) * | 2007-10-31 | 2008-05-21 | 中兴通讯股份有限公司 | 一种堆叠系统设备通讯的方法 |
CN101262501A (zh) * | 2008-04-23 | 2008-09-10 | 杭州华三通信技术有限公司 | 一种多核系统中的核间通信方法和一种多核系统 |
CN102006315A (zh) * | 2009-08-28 | 2011-04-06 | 迈普通信技术股份有限公司 | 分布式系统远程过程调用通信方法 |
CN101795206A (zh) * | 2009-11-26 | 2010-08-04 | 福建星网锐捷网络有限公司 | 一种在分布式构成设备上实现snmp代理的方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021223710A1 (zh) * | 2020-05-06 | 2021-11-11 | 华为技术有限公司 | 报文传输的方法和框式通信设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102739552B (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102769667B (zh) | 一种id生成方法、装置和系统 | |
CN105045856B (zh) | 一种基于Hadoop的大数据遥感卫星数据处理系统 | |
CN103078907B (zh) | 上传、云备份、查找、恢复数据的方法及装置 | |
CN102541501A (zh) | 多屏并行海量信息展示系统 | |
CN105426482A (zh) | 一种图库一体的铁路10kV配电网海量监控信息HBase转存方法 | |
CN104506496A (zh) | 基于Oracle Streams技术的准实时数据增量分发中间件及方法 | |
CN103345435A (zh) | 数据备份、恢复的方法以及用于备份的目的服务器系统 | |
CN103856483A (zh) | 一种飞行模拟器通讯方法 | |
EP2913964A1 (en) | Software-defined networking event distribution method, control device, and processor | |
CN104219298A (zh) | 集群系统及其数据备份的方法 | |
CN105373834B (zh) | 基于分布式计算的配电网短路电流计算方法及系统 | |
CN101901163A (zh) | 分配消息的方法和装置 | |
CN103728957B (zh) | 一种基于实时数据库的hart现场设备管理方法及系统 | |
CN102739552A (zh) | 一种实现多主控远程过程调用的方法及系统 | |
CN106713024A (zh) | 一种批量集群节点管理方法、系统及计算机集群管理节点 | |
CN205050133U (zh) | 嵌入式系统中的时统系统 | |
CN102857552B (zh) | 云技术在电网电力信息控制中的应用 | |
US20170075923A1 (en) | Distribution management system | |
CN106817291A (zh) | Vxlan实现装置及其工作方法 | |
CN106487880A (zh) | 一种基于北斗短报文通信的灾害发生区域传输系统 | |
Matsumoto et al. | Next-Generation MADOCA for the SPring-8 Control Framework | |
CN104699649A (zh) | 一种多分支串行总线接口及数据交换方法 | |
CN102523164B (zh) | 一种在网卡中实现复杂同源同宿分流的系统 | |
CN107968722B (zh) | 一种接口控制文件到afdx网络设备配置文件的转换方法 | |
CN103731421A (zh) | 基于以太网的arinc429总线数字仿真通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |