CN109840155B - 一种实现远程过程调用的方法及装置 - Google Patents
一种实现远程过程调用的方法及装置 Download PDFInfo
- Publication number
- CN109840155B CN109840155B CN201711190700.1A CN201711190700A CN109840155B CN 109840155 B CN109840155 B CN 109840155B CN 201711190700 A CN201711190700 A CN 201711190700A CN 109840155 B CN109840155 B CN 109840155B
- Authority
- CN
- China
- Prior art keywords
- sdn controller
- client
- rpc
- port
- request information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000006243 chemical reaction Methods 0.000 claims description 32
- 238000012544 monitoring process Methods 0.000 claims description 13
- 239000000126 substance Substances 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003993 interaction Effects 0.000 abstract description 10
- 239000010410 layer Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000007667 floating Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种实现远程过程调用的方法及装置,包括:客户端调用SDN控制器的服务接口,将服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数;客户端将第二输入参数转化为符合RPC的请求信息并发送给SDN控制器。通过本申请实施例实现了APP直接和SDN控制器进行跨编程语言的交互。
Description
技术领域
本申请涉及但不限于软件定义网络技术,尤指一种实现远程过程调用的方法及装置。
背景技术
软件定义网络(SDN,Software Defined Network)是一种控制与转发分离、软件可编程的新型网络体系架构。SDN架构包括集中式的控制平面和分布式的数据平面。SDN控制器是控制平面的具象化,可感知网络上的所有信息,处理整体网络的逻辑,实现各种网络协议。SDN架构中的集中控制方式简化了传统的分布在各个设备上的控制和复杂的协议,为网络控制和网络演进提供了非常好的管理和进化能力。SDN控制器是SDN架构中网络应用和网络基础设施之间的重要桥梁。由于SDN控制器可软件编程,提供了对网络的灵活控制、应用创新能力,使得网络可快速开通以及网络灵活调整。
图1为相关技术中SDN控制的组成示意图,如图1所示,根据功能层次,SDN控制器通常可分为北向抽象层、分布式核心,此外还有南向抽象层、适配、驱动、协议层等。其中,
北向抽象层也称北向接口抽象层,将应用与网络细节隔离,并能隔离应用和网络事件(如连接中断)。相应地,将SDN控制器与应用隔离,SDN控制器可以管理来自多个竞争应用的请求。从业务角度看,北向抽象层的设置提高了应用开发速度,并允许在应用不停机的状态下进行网络更改。
分布式核心提供组件间的通信、状态管理、领导者选举服务等。因此,多个组件表现为一个逻辑组件。对应用而言,分布式核心层屏蔽了网络的差异性。另外,应用可以获悉组件和数据平台的故障代码。这些都大大简化了应用开发和故障处理过程。
相关技术中提供了基于SDN控制器开发各种网络应用(APP,Application)。在开发一个APP时,会有大量的数据需要在APP和SDN控制器之间高效交互,如调用北向抽象层提供的各种网络服务,查询网络拓扑和状态等,以实施相应的网络操作指令,实现网络软件可编程。
SDN控制器通常是使用某种编程语言如JAVA开发的,如果APP的开发使用其他编程语言如PYTHON,那么,是不能直接实现APP和SDN控制器进行跨编程语言的交互的;而且,如果APP和SDN控制器分布在不同的主机上,也是无法进行跨节点的远程交互的。
发明内容
为了解决上述技术问题,本发明提供一种实现远程过程调用的方法及装置,能够实现APP直接和SDN控制器进行跨编程语言的交互。
为了达到本发明目的,本发明提供了一种实现远程过程调用的装置,包括:代理模块、第一转换模块、第一收发模块;其中,
代理模块,用于调用SDN控制器的服务接口,代理模块的输入参数和输出参数和SDN控制器上实际的服务接口参数相同;
第一转换模块,用于将自身所在客户端提供的服务接口的符合APP客户端编程语言格式的第一输入参数,转化为预先设置的协议格式的第二输入参数;
第一收发模块,用于将第二输入参数转化为符合远程过程调用协议RPC的请求信息并发送给SDN控制器。
可选地,所述第一收发模块还用于:接收来自SDN控制器的符合RPC的答复信息,将符合RPC的答复信息转化为预先设置的协议格式的第二输出参数;
所述第一转换模块还用于:将第二输出参数转化为符合APP客户端编程语言格式的第一输出参数,并输出给所述代理模块。
可选地,所述装置所在客户端与SDN控制器设置在同一物理设备上,或者设置在不同物理设备上;
当所述装置所在客户端与SDN控制器不在同一物理设备上,在所述请求信息中还包括:所述SDN控制器的地址和约定端口,其中,约定端口为预先设置的端口或动态协商的端口。
本申请还提供了一种实现远程过程调用的装置,包括:第二收发模块、第二转换模块;其中,
第二收发模块,用于接收来自客户端的符合RPC的请求信息,并将该请求信息转换为预先设置的协议格式的第二输入参数;
第二转换模块,用于将第二输入参数转换为自身所在SDN控制器提供的服务接口的符合SDN控制器编程语言格式的第三输入参数。
可选地,所述装置还包括监听模块,用于监听与客户端约定的端口,并在监听到端口上有信息流时,通知所述第二收发模块接收来自客户端的信息。
可选地,所述第二转换模块还用于:将自身所在SDN控制器对请求信息做出答复的第三输出参数,转化为预先设置的协议格式的第二输出参数;
所述第二收发模块还用于:将第二输出参数转化为符合RPC的答复信息并发送给所述客户端。
本申请又提供了一种实现远程过程调用的方法,包括:
客户端调用SDN控制器的服务接口,将服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数;
客户端将第二输入参数转化为符合RPC的请求信息并发送给SDN控制器。
可选地,所述方法还包括:
所述客户端接收来自SDN控制器的符合RPC的答复信息,将符合RPC的答复信息转化为预先设置的协议格式的第二输出参数;
所述客户端将第二输出参数转化为符合APP客户端编程语言格式的第一输出参数作为返回值。
可选地,所述客户端与SDN控制器设置在同一物理设备上,或者设置在不同物理设备上;
当APP客户端与SDN控制器不在同一物理设备上,在所述请求信息中还包括:SDN控制器的地址和约定端口,其中,约定端口为预先设置的端口或动态协商的端口。
本申请再提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的实现远程过程调用的方法。
本申请还提供了一种实现远程过程调用的装置,包括处理器、存储器;其中,存储器上存储有可被处理器上运行的计算机程序:调用SDN控制器的服务接口,将服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数;客户端将第二输入参数转化为符合RPC的请求信息并发送给SDN控制器。
本申请又提供了一种实现远程过程调用的方法,包括:
SDN控制器将来自客户端的符合RPC的请求信息转换为预先设置的协议格式的第二输入参数;
SDN控制器将第二输入参数转换为自身所的服务接口的第三输入参数。
可选地,所述方法之前还包括:
所述SDN控制器监听与客户端约定的端口,并在监听到端口上有信息流时,接收来自所述客户端的信息。
可选地,所述方法还包括:
所述SDN控制器将对请求信息做出答复的第三输出参数转化为预先设置的协议格式的第二输出参数;
将第二输出参数转化为符合RPC的答复信息并发送给客户端。
本申请再提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的实现远程过程调用的方法。
本申请还提供了一种实现远程过程调用的装置,包括处理器、存储器;其中,存储器上存储有可被处理器上运行的计算机程序:将来自客户端的符合RPC的请求信息转换为预先设置的协议格式的第二输入参数;SDN控制器将第二输入参数转换为自身所的服务接口的第三输入参数。
本申请技术方案至少包括:APP客户端调用SDN控制器的服务接口,将服务接口的输入参数转化为预先设置的协议格式的输入参数;APP客户端将转化为预先设置的协议格式的输入参数转化为符合RPC的请求信息并发送给SDN控制器。通过本申请实施例实现了APP直接和SDN控制器进行跨编程语言的交互。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为相关技术中SDN控制的组成示意图;
图2为本申请实现远程过程调用的装置第一实施例的组成结构示意图;
图3为本申请实现远程过程调用的装置第二实施例的组成结构示意图;
图4为本申请实现远程过程调用的方法第一实施例的流程图;
图5为本申请实现远程过程调用的方法第二实施例的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图2为本申请实现远程过程调用的装置第一实施例的组成结构示意图,第一实施例中,装置设置在用于安装APP客户端的客户端,如图2所示,至少包括:代理模块、第一转换模块、第一收发模块;其中,
代理模块,用于调用SDN控制器的服务接口,代理模块的输入参数和输出参数在内容上和SDN控制器上实际的服务接口参数相同。
由于客户端上的APP客户端上没有实际的SDN控制器服务接口,而代理模块屏蔽了APP客户端使用非控制器编程语言与SDN控制器之间的交互差异,因此本申请中,通过代理模块方便地实现了对SDN控制器的服务接口的调用。
第一转换模块,用于将自身所在客户端提供的服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数。
这里,客户端提供的服务接口的输入参数是符合APP客户端编程语言格式的输入参数。
可选地,预先设置的协议格式可以包括如协议缓存(protobuf)格式、接口定义语言(IDL,Interface Definition Language)格式、JS对象标记(JSON,JavaScript ObjectNotation)格式。预先设置的协议格式可识别的参数为基本类型如字符串、整数、浮点数、字节、布尔类型等,或者其中几种的组合,但是不包括指针类型。
第一收发模块,用于将第二输入参数转化为符合远程过程调用协议(RPC,RemoteProcedure Call Protocol)的请求信息并发送给SDN控制器。
可选地,客户端与SDN控制器可以设置在同一物理设备上,也可设置在不同物理设备上。如果客户端与SDN控制器不在同一物理设备上,如在不同的主机上,那么,在请求信息中还包括:SDN控制器的地址和约定端口,其中,约定端口为预先设置的端口或动态协商的端口。
本申请图2提供的装置,通过第一转换模块并结合第一收发模块的作用,将符合APP编程语言格式的信息转换成了预先设置的协议格式,以便与SDN控制器交互,有效地解决了客户端上的APP客户端和SDN控制器之间的跨编程语言交互的问题。
可选地,图2所示的装置中,第一收发模块还用于:接收来自SDN控制器的符合RPC的答复信息,将符合RPC的答复信息转化为预先设置的协议格式的第二输出参数。相应地,
第一转化模块还用于:将第二输出参数进一步转化为符合APP客户端编程语言格式的第一输出参数,并输出给代理模块。
这样,代理模块会将得到的第一输出参数作为该代理模块的返回值。
图3为本申请实现远程过程调用的装置第二实施例的组成结构示意图,第二实施例中,装置设置在SDN控制器,如图3所示,至少包括:第二收发模块、第二转换模块;其中,
第二收发模块,用于接收来自APP客户端的符合RPC的请求信息,并将该请求信息转换为预先设置的协议格式的第二输入参数。
可选地,预先设置的协议格式可以包括如protobuf、IDL、JSON等格式。预先设置的协议格式可识别的参数为基本类型,如字符串、整数、浮点数、字节、布尔类型等,或者其中几种的组合,但是不包括指针类型。
第二转换模块,用于将第二输入参数转换为自身所在SDN控制器提供的服务接口的第三输入参数。
这里,SDN控制器提供的服务接口的第三输入参数是符合SDN控制器编程语言格式的输入参数。
可选地,图3所示的装置中,
第二转换模块还用于:将自身所在SDN控制器对请求信息做出答复的第三输出参数,转化为预先设置的协议格式的第二输出参数;相应地,
第二收发模块还用于:将第二输出参数转化为符合RPC的答复信息并发送给客户端。
可选地,图3所示的装置还包括注册模块,用于在自身所在的SDN控制器中注册RPC服务,并在需要使用RPC服务时启动该RPC服务。
可选地,图3所示的装置还包括监听模块,用于监听与客户端约定的端口,并在监听到端口上有信息流时,通知第二收发模块接收来自客户端的信息。
本申请实施例通过图2所示装置与图3所示装置的配合使用,实现了APP直接和SDN控制器进行跨编程语言的交互。而且,APP客户端不需要了解底层网络协议和编码解析,便自动生成了客户端代码,使得SDN控制器处理的网络请求跟调用本地方法一样简单。
图4为本申请实现远程过程调用的方法第一实施例的流程图,如图4所示,包括:
步骤400:客户端调用SDN控制器的服务接口,将服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数。
这里,客户端提供的服务接口的第一输入参数是符合APP客户端编程语言格式的输入参数。
可选地,预先设置的协议格式可以包括如protobuf、IDL、JSON等格式。预先设置的协议格式可识别的参数为基本类型,如字符串、整数、浮点数、字节、布尔类型等,或者其中几种的组合,但是不包括指针类型。
步骤401:客户端将第二输入参数转化为符合RPC的请求信息并发送给SDN控制器。
可选地,如果客户端与SDN控制器不在同一物理设备上,如在不同的主机上,那么,在请求信息中还包括:SDN控制器的地址和约定端口。
通过图4所示的实施例,将符合APP编程语言格式的信息转换成了预先设置的协议格式,以便与SDN控制器交互,有效地解决了客户端和SDN控制器之间的跨编程语言交互的问题。
可选地,图4所示的方法还包括:
客户端接收来自SDN控制器的符合RPC的答复信息,将符合RPC的答复信息转化为预先设置的协议格式的第二输出参数;
客户端将第二输出参数进一步转化为符合APP客户端编程语言格式的第一输出参数作为返回值。
本发明还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本发明图4所示的任一项实现远程过程调用的方法。
本发明还提供了一种实现远程过程调用的装置,包括处理器、存储器以及存储在存储器上可在处理器上运行的计算机程序:调用SDN控制器的服务接口,将服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数;将第二输入参数转化为符合RPC的请求信息并发送给SDN控制器。
图5为本申请实现远程过程调用的方法第二实施例的流程图,如图5所示,包括:
步骤500:SDN控制器将来自客户端的符合RPC的请求信息转换为预先设置的协议格式的第二输入参数。
可选地,预先设置的协议格式可以包括如protobuf、IDL、JSON等格式。预先设置的协议格式可识别的参数为基本类型,如字符串、整数、浮点数、字节、布尔类型等,或者其中几种的组合,但是不包括指针类型。
步骤501:SDN控制器将第二输入参数转换为自身所的服务接口的第三输入参数。
这里,SDN控制器提供的服务接口的第三输入参数是符合SDN控制器编程语言格式的输入参数。
可选地,图5所示的实施例还包括:
SDN控制器将对请求信息做出答复的第三输出参数转化为预先设置的协议格式的第二输出参数;
将第二输出参数转化为符合RPC的答复信息并发送给客户端。
可选地,图5所示的实施例方法之前还包括:
SDN控制器注册RPC服务,并在需要使用RPC服务时启动该RPC服务。
可选地,图5所示的实施例方法之前还包括:
SDN控制器监听与客户端约定的端口,并在监听到端口上有信息流时,接收来自客户端的信息。
本申请实施例通过图4所示方法与图5所示方法的配合使用,实现了客户端直接和SDN控制器进行跨编程语言的交互。
本发明还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本发明图5所示的任一项实现远程过程调用的方法。
本发明还提供了一种实现远程过程调用的装置,包括处理器、存储器以及存储在存储器上可在处理器上运行的计算机程序:将来自APP客户端的符合RPC的请求信息转换为预先设置的协议格式的第二输入参数;将第二输入参数转换为自身所的服务接口的第三输入参数。
下面结合具体实施例对本发明实现方案进行详细描述。
第一实施例,在SDN控制器中,假设设置在客户端上的APP客户端使用PYTHON编程语言(也可以使用其他编程语言)进行开发,SDN控制器使用JAVA编程语言(也可以使用其他编程语言)进行开发,并假设客户端和SDN控制器运行在同一台主机上。
第一实施例中,假设APP客户端需要调用SDN控制器的接口,查询两个网络节点之间是否有可达路径,此时,APP客户端的输入参数是两个网络节点的ID号,比如为32位整数类型,预期SDN控制器的返回值是路径可达值,比如为布尔类型:是或否。
根据本申请实施例中提供的实现的远程过程调用的方法如下:
在SDN控制器上,具体包括:
在SDN控制器中注册RPC服务,如果SDN控制器遵循开放服务网关倡议(OSGI,OpenService Gateway Initiative)框架,则在组件(bundle)中启动路径可达查询的RPC服务;在SDN控制器中监听与APP客户端约定的端口,在该端口接收RPC信息,第一实施例中,假设端口号约定为5001。
第一实施例中的输入参数为两个网络节点的ID号,类型为32位整数;输出参数为路径可达值,类型为布尔类型,均为预先设置的协议格式可直接识别的基本类型。
对于收到的RPC请求信息,即两个网络节点ID号的输入参数,SDN控制器根据预先设置的协议格式转化为SDN控制器编程语言格式如JAVA的两个网络节点ID号的输入参数;对于准备发送的RPC回复信息,将SDN控制器提供的服务接口的输出参数,即JAVA格式的布尔类型的路径可达值,根据预先设置的协议格式转化为RPC回复信息。
在APP客户端上,具体包括:
在APP客户端上设置输入参数和输出参数在内容上与SDN控制器实际的服务接口相同的路径可达查询接口第一实施例中,输入参数为两个网络节点的ID号,类型为32位整数,输出参数为路径可达值,类型为布尔类型,均为预先设置的协议格式可直接识别的基本类型。
对于准备发送的RPC信息,将APP客户端提供的服务接口的输入参数即两个网络节点ID号,根据预先设置的协议格式转化为RPC请求信息;对于收到的RPC回复信息,根据预先设置的协议格式转化为APP客户端编程语言格式如PYTHON的布尔类型的路径可达值。
APP客户端调用SDN控制器的接口,查询两个网络节点之间路径是否可达的具体如下:
SDN控制器启动注册模块,通过OSGI框架,在bundle中启动路径可达查询的RPC服务;SDN控制器启动监听模块,监听SDN控制器与APP客户端约定的端口,接收RPC信息,在第一实施例中,端口号约定为5001;
APP客户端使用如PYTHON进行开发,调用在APP客户端上的路径可达查询的代理模块,输入参数是两个网络节点的ID号;APP客户端调用第一转换模块,将上述请求的输入参数即两个网络节点的ID号,转化为预先设置的协议格式的输入参数;APP的客户端调用第一收发模块,将预先设置的协议格式的输入参数转换为RPC的请求信息,并向指定的SDN控制器的地址和端口如5001发送RPC的请求信息;
SDN控制器的监听模块在端口5001监测到RPC信息,将接收到的RPC信息提交给SDN控制器的第二收发模块;SDN控制器的第二收发模块解析出RPC的预先设置的协议格式的请求信息;SDN控制器的第二转换模块将预先设置的协议格式的请求信息,转化成SDN控制器编程语言如JAVA对应的两个网络节点ID号的输入参数;
SDN控制器调用相应的路径可达查询接口进行操作,并通过第二转换模块将对应获得的输入参数的返回值即布尔类型的路径可达值转化为预先设置的协议格式的输出参数,通过第二收发模块将预先设置的协议格式的输出参数转化为符合RPC的答复信息并发送给APP客户端;
APP客户端的第一收发模块接收到RPC信息,解析出RPC的回复信息,将符合RPC的答复信息转化为预先设置的协议格式的输出参数后提交给APP客户端的第一转换模块;APP客户端的第一转换模块将预先设置的协议格式的输出参数转化成APP编程语言如PYTHON对应的布尔类型的路径可达值的输出参数,并将该输出参数传给代理模块,作为该代理模块的返回值;
这样,APP客户端获得了两个网络节点之间路径是否可达的返回值。
第二实施例,在SDN控制器中,假设客户端上设置的APP客户端使用PYTHON编程语言进行开发,SDN控制器使用JAVA编程语言进行开发,并假设客户端和SDN控制器运行在同一台主机上。
第二实施例中,假设APP客户端需要调用SDN控制器的接口,查询两个网络节点之间的路径,此时,APP客户端的输入参数是两个网络节点的ID号,比如为32位整数类型,预期SDN控制器的返回值是一个路径可达值和路径指针。其中,路径可达值是一个布尔类型,代表两个节点之间路径是否可达,如果路径可达,则路径指针具体指向一系列链路ID如32位整数类型的集合。
第二实施例二与第一实施例的主要区别在于:第一实施例的返回值是布尔类型,这是一个基本类型,可以根据预先设置的协议格式直接进行转换;而第二实施例的返回值是一个基本类型(布尔类型)和指针的组合,对于指针类型,不能根据预先设置的协议格式直接进行转换,因此,对于第二实施例,
在SDN控制器上,协议转换的具体实现包括:
对于收到的RPC请求信息,即两个网络节点ID号的输入参数,根据预先设置的协议格式转化为服务端编程语言格式如JAVA的两个网络节点ID号的输入参数;对于准备发送的RPC回复信息,对于服务端提供的服务接口的输出参数即JAVA格式的布尔类型的路径可达值和指针类型路径的组合:读取JAVA格式的布尔类型的路径可达值;对JAVA格式的指针类型的路径,读取其中具体指向一系列链路ID的值;将上面两类值组合成为一个新的数据类型,该新的数据类型是预先设置的协议格式可识别的基本类型的组合,再将该数据类型转化为预先设置的协议格式的参数即可。
在APP上,协议转换的具体实现包括:
对于准备发送的RPC信息,将客户端提供的服务接口的输入参数,即两个如PYTHON编程的网络节点ID号的输入参数,根据预先设置的协议格式转化为RPC请求信息;对于收到的RPC回复信息,其数据类型为SDN控制器上设置的类型:首先,根据预先设置的协议格式转化成PYTHON编程的两类值的组合数据类型;然后,读取JAVA格式的布尔类型的路径可达值;读取路径组合中具体指向一系列链路ID的值,并构造一个指针指向该路径组合;将布尔类型的路径可达值和指针类型路径,组合为APP客户端上代理模块的返回值类型即可。
其他具体实现过程与第一实施例一致,这里不再赘述。
第三实施例,在SDN控制器中,假设客户端上设置得到的APP客户端使用PYTHON编程语言进行开发,SDN控制器使用JAVA编程语言进行开发,并假设客户端和SDN控制器运行在不同主机上。
第三实施例中,APP客户端需要调用SDN控制器的接口,查询两个网络节点之间的路径,APP客户端的输入参数是两个网络节点的ID号,比如为32位整数类型,预期SDN控制器的返回值是一个路径可达值和路径指针,其中,路径可达值是一个布尔类型,代表两个节点之间路径是否可达,如果路径可达,则路径指针具体指向一系列链路ID如32位整数类型的集合。
第三实施例与第二实施例的主要区别在于:第二实施例中的APP客户端和SDN控制器在同一主机上,而第三实施例中的APP客户端和SDN控制器不在同一主机上,因此,对于第三实施例,
APP客户端在调用SDN控制器的服务接口查询两个网络节点之间路径的过程中,在请求信息中会指定SDN控制器的地址和端口为对应SDN控制器的IP地址和约定端口。
其他具体实现过程与第二实施例一致,这里不再赘述。
第四实施例,在SDN控制器中,假设客户端上设置的APP客户端使用PYTHON编程语言进行开发,SDN控制器使用JAVA编程语言进行开发,并假设客户端和SDN控制器运行在同一台主机上。
第四实施例中,假设APP客户端需要调用SDN控制器的接口,查询多个网络节点对之间是否有可达路径,此时,APP客户端的输入参数是多个网络节点对的ID号,比如每个网络节点对为两个32位整数类型,预期SDN控制器的返回值是多个路径可达值,比如每个路径可达值为布尔类型:是或者否。
第四实施例与第一实施例的主要区别在于:第一实施例中APP客户端的输入参数为两个网络节点的ID号,而第四实施例中APP客户端的输入参数是数目不确定的网络节点对的ID号;另外,第一实施例的返回值为一个路径可达值,而第四实施例的返回值为对应于输入参数数目的路径可达值,即在第四实施例中,APP客户端和SDN控制器之间的交互是全双工的数据双向流。因此,对于第四实施例,
APP客户端在发起请求信息之前,需要设置发送模式为流模式,当发送完成时,设置结束标志;
由于SDN控制器发送给APP客户端返回值为数据流,因此SDN控制器需要设置发送模式为流模式,在流模式下发送返回值。在发送完成时,设置结束标志。
其他具体实现过程与第一实施例一致,这里不再赘述。
本申请实施例提高了大量双向流通讯的效率。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种实现远程过程调用的装置,其特征在于,包括:代理模块、第一转换模块、第一收发模块;其中,
代理模块,用于调用SDN控制器的服务接口,代理模块的输入参数和输出参数和SDN控制器上实际的服务接口参数相同;
第一转换模块,用于将自身所在客户端提供的服务接口的符合APP客户端编程语言格式的第一输入参数,转化为预先设置的协议格式的第二输入参数;
第一收发模块,用于将第二输入参数转化为符合远程过程调用协议RPC的请求信息并发送给SDN控制器;
所述第一收发模块还用于:接收来自SDN控制器的符合RPC的答复信息,将符合RPC的答复信息转化为预先设置的协议格式的第二输出参数;
所述第一转换模块还用于:将第二输出参数转化为符合APP客户端编程语言格式的第一输出参数,并输出给所述代理模块;
所述装置所在客户端与SDN控制器设置在同一物理设备上,或者设置在不同物理设备上;
当所述装置所在客户端与SDN控制器不在同一物理设备上,在所述请求信息中还包括:所述SDN控制器的地址和约定端口,其中,约定端口为预先设置的端口或动态协商的端口。
2.一种实现远程过程调用的装置,其特征在于,包括:第二收发模块、第二转换模块和监听模块;其中,
第二收发模块,用于接收来自客户端的符合RPC的请求信息,并将该请求信息转换为预先设置的协议格式的第二输入参数;
第二转换模块,用于将第二输入参数转换为自身所在SDN控制器提供的服务接口的符合SDN控制器编程语言格式的第三输入参数;
监听模块,用于监听与客户端约定的端口,并在监听到端口上有信息流时,通知所述第二收发模块接收来自客户端的信息;
所述第二转换模块还用于:将自身所在SDN控制器对请求信息做出答复的第三输出参数,转化为预先设置的协议格式的第二输出参数;
所述第二收发模块还用于:将第二输出参数转化为符合RPC的答复信息并发送给所述客户端。
3.一种实现远程过程调用的方法,其特征在于,包括:
客户端调用SDN控制器的服务接口,将服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数;
客户端将第二输入参数转化为符合RPC的请求信息并发送给SDN控制器;
所述方法还包括:
所述客户端接收来自SDN控制器的符合RPC的答复信息,将符合RPC的答复信息转化为预先设置的协议格式的第二输出参数;
所述客户端将第二输出参数转化为符合APP客户端编程语言格式的第一输出参数作为返回值;
所述客户端与SDN控制器设置在同一物理设备上,或者设置在不同物理设备上;
当APP客户端与SDN控制器不在同一物理设备上,在所述请求信息中还包括:SDN控制器的地址和约定端口,其中,约定端口为预先设置的端口或动态协商的端口。
4.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求3所述的实现远程过程调用的方法。
5.一种实现远程过程调用的装置,包括处理器、存储器以及存储在存储器上可在处理器上运行的计算机程序:调用SDN控制器的服务接口,将服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数;客户端将第二输入参数转化为符合RPC的请求信息并发送给SDN控制器;所述客户端接收来自SDN控制器的符合RPC的答复信息,将符合RPC的答复信息转化为预先设置的协议格式的第二输出参数;所述客户端将第二输出参数转化为符合APP客户端编程语言格式的第一输出参数作为返回值;所述客户端与SDN控制器设置在同一物理设备上,或者设置在不同物理设备上;当APP客户端与SDN控制器不在同一物理设备上,在所述请求信息中还包括:SDN控制器的地址和约定端口,其中,约定端口为预先设置的端口或动态协商的端口。
6.一种实现远程过程调用的方法,其特征在于,包括:
SDN控制器监听与客户端约定的端口,并在监听到端口上有信息流时,接收来自所述客户端的信息;
SDN控制器将来自客户端的符合RPC的请求信息转换为预先设置的协议格式的第二输入参数;
SDN控制器将第二输入参数转换为自身所的服务接口的第三输入参数;
所述SDN控制器将对请求信息做出答复的第三输出参数转化为预先设置的协议格式的第二输出参数;
将第二输出参数转化为符合RPC的答复信息并发送给客户端。
7.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求6所述的实现远程过程调用的方法。
8.一种实现远程过程调用的装置,包括处理器、存储器以及存储在存储器上可在处理器上运行的计算机程序:SDN控制器监听与客户端约定的端口,并在监听到端口上有信息流时,接收来自所述客户端的信息;将来自客户端的符合RPC的请求信息转换为预先设置的协议格式的第二输入参数;SDN控制器将第二输入参数转换为自身所的服务接口的第三输入参数;所述SDN控制器将对请求信息做出答复的第三输出参数转化为预先设置的协议格式的第二输出参数;将第二输出参数转化为符合RPC的答复信息并发送给客户端。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711190700.1A CN109840155B (zh) | 2017-11-24 | 2017-11-24 | 一种实现远程过程调用的方法及装置 |
KR1020207016018A KR102419370B1 (ko) | 2017-11-24 | 2018-09-12 | 원격 프로시저 호출을 구현하는 방법 및 장치 |
EP18881368.7A EP3706382A4 (en) | 2017-11-24 | 2018-09-12 | PROCEDURE AND DEVICE FOR IMPLEMENTING A REMOTE PROCEDURE CALL |
PCT/CN2018/105323 WO2019100819A1 (zh) | 2017-11-24 | 2018-09-12 | 一种实现远程过程调用的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711190700.1A CN109840155B (zh) | 2017-11-24 | 2017-11-24 | 一种实现远程过程调用的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840155A CN109840155A (zh) | 2019-06-04 |
CN109840155B true CN109840155B (zh) | 2023-04-07 |
Family
ID=66631799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711190700.1A Active CN109840155B (zh) | 2017-11-24 | 2017-11-24 | 一种实现远程过程调用的方法及装置 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3706382A4 (zh) |
KR (1) | KR102419370B1 (zh) |
CN (1) | CN109840155B (zh) |
WO (1) | WO2019100819A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111010438B (zh) * | 2019-12-13 | 2022-11-11 | 北京达佳互联信息技术有限公司 | 远程过程调用方法、装置、服务器及存储介质 |
CN112100255B (zh) * | 2020-08-03 | 2024-07-02 | 中冶南方工程技术有限公司 | 一种钢铁全流程质量数据平台的对外数据通讯方法和系统 |
CN112788003A (zh) * | 2020-12-28 | 2021-05-11 | 浪潮通用软件有限公司 | 一种基于微服务架构的rpc通信方法及设备 |
CN113138811A (zh) * | 2021-04-23 | 2021-07-20 | 上海中通吉网络技术有限公司 | 基于JsonPath的统一服务调用方法 |
CN113364890B (zh) * | 2021-06-30 | 2022-10-28 | 北京奇艺世纪科技有限公司 | 数据处理方法、装置、网络设备及介质 |
CN113645303B (zh) * | 2021-08-11 | 2024-04-23 | 曙光信息产业(北京)有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN114221995B (zh) * | 2021-11-11 | 2024-04-09 | 中国建设银行股份有限公司 | 服务调用方法、装置及电子设备 |
CN116760912A (zh) * | 2023-08-18 | 2023-09-15 | 杭州星锐网讯科技有限公司 | 一种基于协议转换的交易实现方法和系统 |
CN117555528B (zh) * | 2024-01-12 | 2024-03-26 | 成都索贝视频云计算有限公司 | 一种服务化代码框架生成方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262560A (zh) * | 2010-05-27 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种远程服务的调用方法、装置及系统 |
CN105357244A (zh) * | 2014-08-22 | 2016-02-24 | 中兴通讯股份有限公司 | 实现对网络逻辑实体的操作方法、客户端及代理端 |
US9660877B1 (en) * | 2014-03-21 | 2017-05-23 | Cisco Technology, Inc. | Transaction management in multi-protocol SDN controller |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008165340A (ja) * | 2006-12-27 | 2008-07-17 | Fujitsu Ltd | 遠隔手続呼出方式 |
CN102098296B (zh) * | 2010-12-29 | 2014-08-06 | 北京新媒传信科技有限公司 | 一种实现远程调用的方法和系统 |
US9509549B2 (en) * | 2013-03-15 | 2016-11-29 | Cisco Technology, Inc. | Extending routing rules from external services |
PL3047621T3 (pl) * | 2013-09-20 | 2017-12-29 | Nokia Solutions And Networks Management International Gmbh | Obsługiwanie komunikatów sygnalizacyjnych w płaszczyźnie danych w architekturze definiowanej przez oprogramowanie |
CN105471726B (zh) * | 2014-09-05 | 2019-08-27 | 华为技术有限公司 | 转发参数传递的方法及设备 |
CN106357713B (zh) * | 2015-07-16 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 实现远程过程调用的方法和客户端装置以及服务器装置 |
-
2017
- 2017-11-24 CN CN201711190700.1A patent/CN109840155B/zh active Active
-
2018
- 2018-09-12 KR KR1020207016018A patent/KR102419370B1/ko active IP Right Grant
- 2018-09-12 WO PCT/CN2018/105323 patent/WO2019100819A1/zh unknown
- 2018-09-12 EP EP18881368.7A patent/EP3706382A4/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262560A (zh) * | 2010-05-27 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种远程服务的调用方法、装置及系统 |
US9660877B1 (en) * | 2014-03-21 | 2017-05-23 | Cisco Technology, Inc. | Transaction management in multi-protocol SDN controller |
CN105357244A (zh) * | 2014-08-22 | 2016-02-24 | 中兴通讯股份有限公司 | 实现对网络逻辑实体的操作方法、客户端及代理端 |
Also Published As
Publication number | Publication date |
---|---|
EP3706382A1 (en) | 2020-09-09 |
EP3706382A4 (en) | 2021-08-04 |
CN109840155A (zh) | 2019-06-04 |
KR102419370B1 (ko) | 2022-07-08 |
WO2019100819A1 (zh) | 2019-05-31 |
KR20200084881A (ko) | 2020-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840155B (zh) | 一种实现远程过程调用的方法及装置 | |
KR101703088B1 (ko) | Sdn 기반의 통합 라우팅 방법 및 그 시스템 | |
WO2018219343A1 (zh) | 服务发现的方法、注册中心和设备 | |
EP2765756A1 (en) | Service configuration method and device | |
CN107621987B (zh) | 一种基于消息的无人机通用地面站软件架构系统 | |
JP2006236354A (ja) | ホームネットワークのサービスフレームワーク及びその制御方法 | |
KR102486236B1 (ko) | 무선 통신 시스템에서 네트워크 기능 가상화를 위한 장치 및 방법 | |
WO2022222901A1 (zh) | 一种基于autosar实现dds通信的系统架构、通信方法及设备 | |
WO2017101815A1 (zh) | 一种消息处理方法、装置和系统 | |
US10965609B2 (en) | Mapping of service requirements for a virtualized network on a packet flow | |
Nguyen et al. | Toward a programmable software-defined IoT architecture for sensor service provision on demand | |
US11349729B2 (en) | Network service requests | |
CN108989157B (zh) | 用于智能设备控制的方法、装置 | |
CN107231275B (zh) | 用于用户设备与家居设备连接配置的方法 | |
WO2008052389A1 (fr) | Procédé et système de réalisation d'interfaces universelles dans le système de gestion de réseau | |
CN117176633A (zh) | 一种总线跨设备通信方法、装置、设备及存储介质 | |
CN105162616B (zh) | 一种兼容snmp协议和corba协议的综合网络管理方法 | |
KR20180058592A (ko) | Sdn 제어기 | |
US20200162410A1 (en) | Management of messaging in heterogeneous iot / iiot messaging environments | |
CN109495331A (zh) | 网管系统的系统监控方法及装置 | |
Nurgaliyev et al. | AN ANALYSIS OF THE HETEROGENEOUS IOT DEVICE NETWORK INTERACTION IN A CYBER-PHYSICAL SYSTEM | |
KR20010055482A (ko) | 통합망 환경에서 서비스관리시스템의 관리명령을 교환기명령어로 변환하는 방법 | |
KR20040001291A (ko) | 망 요소 관리 시스템에서 장치 연동 서버 및 방법 | |
CN107896234B (zh) | 在Modbus通信网络中传输报文的方法、Modbus通信网络系统和设备 | |
CN114584505A (zh) | 一种基于发布订阅的边边通讯消息路由方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |