WO2019100819A1 - 一种实现远程过程调用的方法及装置 - Google Patents

一种实现远程过程调用的方法及装置 Download PDF

Info

Publication number
WO2019100819A1
WO2019100819A1 PCT/CN2018/105323 CN2018105323W WO2019100819A1 WO 2019100819 A1 WO2019100819 A1 WO 2019100819A1 CN 2018105323 W CN2018105323 W CN 2018105323W WO 2019100819 A1 WO2019100819 A1 WO 2019100819A1
Authority
WO
WIPO (PCT)
Prior art keywords
sdn controller
client
rpc
input parameter
remote procedure
Prior art date
Application number
PCT/CN2018/105323
Other languages
English (en)
French (fr)
Inventor
吴少勇
王延松
田�健
柯志勇
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Priority to EP18881368.7A priority Critical patent/EP3706382A4/en
Priority to KR1020207016018A priority patent/KR102419370B1/ko
Publication of WO2019100819A1 publication Critical patent/WO2019100819A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Definitions

  • This application relates to, but is not limited to, Software Defined Network (SDN) technology.
  • SDN Software Defined Network
  • the SDN is a new network architecture with control and forwarding separation and software programming.
  • the SDN architecture includes a centralized control plane and a distributed data plane.
  • the SDN controller is a representation of the control plane, which can sense all the information on the network, handle the logic of the overall network, and implement various network protocols.
  • the centralized control mode in the SDN architecture simplifies the traditional control and complex protocols distributed on various devices, providing excellent management and evolution capabilities for network control and network evolution.
  • the SDN controller is an important bridge between network applications and network infrastructure in the SDN architecture. Because the SDN controller can be software programmed, it provides flexible control of the network and application innovation capability, enabling the network to be quickly opened and the network to be flexibly adjusted.
  • FIG. 1 is a schematic diagram of the composition of the SDN control in the related art.
  • the SDN controller can be generally divided into a north-oriented abstraction layer and a distributed core, in addition to a south-oriented abstraction layer, adaptation, and driving. Protocol layer, etc. among them,
  • the northbound abstraction layer also known as the northbound interface abstraction layer, isolates applications from network details and isolates application and network events (such as connection disruptions). Accordingly, the SDN controller is isolated from the application, and the SDN controller can manage requests from multiple competing applications. From a business perspective, the northbound abstraction layer setting increases application development speed and allows network changes without downtime.
  • the distributed core provides communication between components, state management, leader election services, and more. Therefore, multiple components behave as one logical component.
  • the distributed core layer shields the network from differences.
  • the application can learn the fault codes of the components and data platforms. These greatly simplify application development and troubleshooting.
  • SDN controllers are usually developed using a programming language such as JAVA. If the development of the APP uses other programming languages such as PYTHON, then it is not possible to directly implement the cross-programming interaction between the APP and the SDN controller; and, if APP and SDN controllers are distributed on different hosts and cannot be remotely interacted across nodes.
  • a programming language such as JAVA.
  • an embodiment of the present disclosure provides a method and apparatus for implementing a remote procedure call.
  • An embodiment of the present disclosure provides an apparatus for implementing a remote procedure call, including: a proxy module, a first conversion module, and a first transceiver module;
  • the proxy module is configured to invoke a service interface of the SDN controller, and the input parameters and output parameters of the proxy module are the same as the actual service interface parameters on the SDN controller;
  • the first conversion module is configured to convert the first input parameter of the service interface provided by the client, which is in accordance with the APP client programming language format, into a second input parameter of the preset protocol format;
  • the first transceiver module is configured to convert the second input parameter into request information conforming to a Remote Procedure Call Protocol (RPC) and send the request information to the SDN controller.
  • RPC Remote Procedure Call Protocol
  • the embodiment of the present application further provides an apparatus for implementing a remote procedure call, including: a second transceiver module and a second conversion module; wherein
  • a second transceiver module configured to receive RPC-compliant request information from the client, and convert the request information into a second input parameter of a preset protocol format
  • the second conversion module is configured to convert the second input parameter into a third input parameter conforming to the SDN controller programming language format of the service interface provided by the SDN controller.
  • the embodiment of the present application further provides a method for implementing a remote procedure call, including:
  • the client invokes a service interface of the SDN controller, and converts the first input parameter of the service interface into a second input parameter of a preset protocol format;
  • the client converts the second input parameter into RPC-compliant request information and sends it to the SDN controller.
  • the embodiment of the present application further provides a computer readable storage medium storing computer executable instructions for executing the foregoing method for implementing a remote procedure call.
  • the embodiment of the present application further provides an apparatus for implementing a remote procedure call, including a processor and a memory; wherein the memory stores a computer program executable by the processor; and the processor is configured to run the computer program Execute the above method on the client side to implement remote procedure calls.
  • the embodiment of the present application further provides a method for implementing a remote procedure call, including:
  • the SDN controller converts the RPC-compliant request information from the client into a second input parameter of a preset protocol format
  • the SDN controller converts the second input parameter to a third input parameter of its own service interface.
  • the embodiment of the present application further provides a computer readable storage medium storing computer executable instructions for executing the foregoing method for implementing a remote procedure call.
  • the embodiment of the present application further provides an apparatus for implementing a remote procedure call, including a processor and a memory; wherein the memory stores a computer program executable by the processor; and the processor is configured to run the computer program Executing the method of implementing remote procedure call on the SDN controller side mentioned above.
  • the technical solution of the embodiment of the present application at least includes: the APP client invokes a service interface of the SDN controller, and converts the input parameter of the service interface into an input parameter of a preset protocol format; the APP client converts into a preset protocol format.
  • the input parameters are converted into RPC-compliant request information and sent to the SDN controller.
  • the interaction between the APP and the SDN controller for cross-programming language is realized by the embodiment of the present application.
  • 1 is a schematic diagram of the composition of an SDN control in the related art
  • FIG. 2 is a schematic structural diagram of a first embodiment of an apparatus for implementing a remote procedure call according to the present application
  • FIG. 3 is a schematic structural diagram of a second embodiment of an apparatus for implementing a remote procedure call according to the present application
  • FIG. 4 is a flowchart of a first embodiment of a method for implementing a remote procedure call according to the present application
  • FIG. 5 is a flowchart of a second embodiment of a method for implementing a remote procedure call according to the present application.
  • the device is configured to be a client configured to install an APP client.
  • the method includes at least: a proxy module. a first conversion module, a first transceiver module; wherein
  • the proxy module is configured to invoke the service interface of the SDN controller, and the input parameters and output parameters of the proxy module are the same as the actual service interface parameters on the SDN controller.
  • the embodiment of the present application passes The proxy module conveniently implements a call to the service interface of the SDN controller.
  • the first conversion module is configured to convert the first input parameter of the service interface provided by the client itself into a second input parameter of a preset protocol format.
  • the input parameters of the service interface provided by the client are input parameters conforming to the APP client programming language format.
  • the preset protocol format may include, for example, a protocol cache (protobuf) format, an interface definition language (IDL, Interface Definition Language) format, and a JS object identifier (JSON, JavaScript Object Notation) format.
  • Pre-set protocol formats recognize parameters such as strings, integers, floats, bytes, booleans, etc., or a combination of several of them, but do not include pointer types.
  • the first transceiver module is configured to convert the second input parameter into the RPC-compliant request information and send the request information to the SDN controller.
  • the client and the SDN controller may be set on the same physical device or on different physical devices. If the client and the SDN controller are not on the same physical device, such as on different hosts, the request information includes: an address of the SDN controller and an agreed port, where the agreed port is a preset port or dynamic negotiation. Port.
  • the device provided in FIG. 2 is configured to replace the information conforming to the APP programming programming language format into a pre-set protocol format by the first conversion module in combination with the function of the first transceiver module, so as to interact with the SDN controller, effectively The problem of cross-programming language interaction between the APP client and the SDN controller on the client is solved.
  • the first transceiver module is further configured to: receive RPC-compliant reply information from the SDN controller, and convert the RPC-compliant reply information into a second output parameter of a preset protocol format.
  • the first transceiver module is further configured to: receive RPC-compliant reply information from the SDN controller, and convert the RPC-compliant reply information into a second output parameter of a preset protocol format.
  • the first conversion module is further configured to: further convert the second output parameter into a first output parameter conforming to the APP client programming language format, and output the same to the proxy module.
  • the proxy module will take the first output parameter obtained as the return value of the proxy module.
  • FIG. 3 is a schematic structural diagram of a second embodiment of an apparatus for implementing a remote procedure call according to the present application.
  • the apparatus is disposed on an SDN controller, as shown in FIG. 3, and includes at least: a second transceiver module, and a second conversion. Module; among them,
  • the second transceiver module is configured to receive the RPC-compliant request information from the APP client, and convert the request information into a second input parameter of a preset protocol format.
  • the preset protocol format may include formats such as protobuf, IDL, JSON, and the like.
  • Pre-set protocol formats recognize parameters as primitive types, such as strings, integers, floats, bytes, booleans, etc., or a combination of several, but not the pointer type.
  • the second conversion module is configured to convert the second input parameter into a third input parameter of a service interface provided by the SDN controller where the SDN controller is located.
  • the third input parameter of the service interface provided by the SDN controller is an input parameter conforming to the SDN controller programming language format.
  • the second conversion module is further configured to: convert the third output parameter that the SDN controller in itself responds to the request information into a second output parameter of the preset protocol format; correspondingly,
  • the second transceiver module is further configured to: convert the second output parameter into the RPC compliant reply information and send the response information to the client.
  • the apparatus shown in FIG. 3 further includes a registration module configured to register the RPC service in the SDN controller where the UE is located, and start the RPC service when the RPC service needs to be used.
  • a registration module configured to register the RPC service in the SDN controller where the UE is located, and start the RPC service when the RPC service needs to be used.
  • the apparatus shown in FIG. 3 further includes a listening module configured to listen to a port agreed with the client, and notify the second transceiver module to receive information from the client when the information stream is monitored on the port.
  • a listening module configured to listen to a port agreed with the client, and notify the second transceiver module to receive information from the client when the information stream is monitored on the port.
  • the embodiment of the present application realizes the interaction between the APP and the SDN controller in a cross-programming language by using the device shown in FIG. 2 in cooperation with the device shown in FIG. 3. Moreover, the APP client does not need to understand the underlying network protocol and encoding resolution, and automatically generates the client code, so that the network request processed by the SDN controller is as simple as calling the local method.
  • FIG. 4 is a flowchart of a first embodiment of a method for implementing a remote procedure call according to the present application. As shown in FIG. 4, the method includes:
  • Step 400 The client invokes a service interface of the SDN controller, and converts the first input parameter of the service interface into a second input parameter of a preset protocol format.
  • the first input parameter of the service interface provided by the client is an input parameter conforming to the APP client programming language format.
  • the preset protocol format may include formats such as protobuf, IDL, JSON, and the like.
  • Pre-set protocol formats recognize parameters as primitive types, such as strings, integers, floats, bytes, booleans, etc., or a combination of several, but not the pointer type.
  • Step 401 The client converts the second input parameter into the RPC-compliant request information and sends the request information to the SDN controller.
  • the request information further includes: an address of the SDN controller and an agreed port.
  • the information conforming to the APP programming programming language format is replaced by a pre-set protocol format to interact with the SDN controller, effectively solving the cross programming between the client and the SDN controller.
  • the problem of language interaction is replaced by a pre-set protocol format to interact with the SDN controller, effectively solving the cross programming between the client and the SDN controller.
  • the method shown in FIG. 4 further includes:
  • the client receives the RPC-compliant reply information from the SDN controller, and converts the RPC-compliant reply information into a second output parameter of the preset protocol format;
  • the client further converts the second output parameter into a first output parameter that conforms to the APP client programming language format as a return value.
  • the embodiment of the present disclosure further provides a computer readable storage medium storing computer executable instructions for executing a method for implementing a remote procedure call as shown in any of the embodiments of the present disclosure.
  • Embodiments of the present disclosure also provide an apparatus for implementing a remote procedure call, including a processor, a memory, and a computer program stored on the memory and operable on the processor: calling a service interface of the SDN controller, and first The input parameter is converted into a second input parameter of a preset protocol format; the second input parameter is converted into RPC-compliant request information and sent to the SDN controller.
  • the processor is configured to execute any of the methods on the client side that implement remote procedure calls when the computer program is run.
  • FIG. 5 is a flowchart of a second embodiment of a method for implementing a remote procedure call according to the present application. As shown in FIG. 5, the method includes:
  • Step 500 The SDN controller converts the RPC-compliant request information from the client into a second input parameter of a preset protocol format.
  • the preset protocol format may include formats such as protobuf, IDL, JSON, and the like.
  • Pre-set protocol formats recognize parameters as primitive types, such as strings, integers, floats, bytes, booleans, etc., or a combination of several, but not the pointer type.
  • Step 501 The SDN controller converts the second input parameter into a third input parameter of the service interface of the self.
  • the third input parameter of the service interface provided by the SDN controller is an input parameter conforming to the SDN controller programming language format.
  • the embodiment shown in FIG. 5 further includes:
  • the SDN controller converts the third output parameter that responds to the request information into a second output parameter of a preset protocol format
  • the second output parameter is converted into an RPC compliant reply message and sent to the client.
  • the method of the embodiment shown in FIG. 5 further includes:
  • the SDN controller registers the RPC service and starts the RPC service when it needs to use the RPC service.
  • the method of the embodiment shown in FIG. 5 further includes:
  • the SDN controller listens to the port agreed with the client and receives information from the client when it listens to the information flow on the port.
  • the embodiment of the present application uses the method shown in FIG. 4 in conjunction with the method shown in FIG. 5 to implement a cross-programming language interaction between the client and the SDN controller.
  • the embodiment of the present disclosure further provides a computer readable storage medium storing computer executable instructions for executing a method for implementing a remote procedure call as shown in any of the embodiments of the present disclosure.
  • Embodiments of the present disclosure also provide an apparatus for implementing a remote procedure call, including a processor, a memory, and a computer program stored on the memory and executable on the processor: converting RPC-compliant request information from the APP client to a preset a second input parameter of the protocol format; converting the second input parameter to a third input parameter of the service interface of the own.
  • the processor is configured to execute any of the methods of implementing remote procedure calls on the SDN controller side when the computer program is executed.
  • the SDN controller In the first embodiment, in the SDN controller, it is assumed that the APP client set on the client uses the PYTHON programming language (other programming languages can also be used for development), and the SDN controller uses the JAVA programming language (other programming languages can also be used) ) Develop and assume that the client and SDN controller are running on the same host.
  • PYTHON programming language other programming languages can also be used for development
  • JAVA programming language other programming languages can also be used
  • the APP client needs to invoke an interface of the SDN controller to query whether there is a reachable path between the two network nodes.
  • the input parameter of the APP client is the ID number of the two network nodes, for example, 32-bit integer type
  • the expected return value of the SDN controller is the path reachable value, such as Boolean type: yes or no.
  • the specific includes:
  • the SDN controller Register the RPC service in the SDN controller. If the SDN controller follows the Open Service Gateway Initiative (OSGI) framework, start the RPC service with the path reachable query in the bundle; listen in the SDN controller.
  • OSGI Open Service Gateway Initiative
  • the port agreed with the APP client receives the RPC information on the port. In the first embodiment, the port number is assumed to be 5001.
  • the input parameters in the first embodiment are ID numbers of two network nodes, and the type is a 32-bit integer; the output parameter is a path reachable value, and the type is a Boolean type, which are basic types that can be directly recognized by a preset protocol format.
  • the SDN controller For the received RPC request information, that is, the input parameters of the two network node ID numbers, the SDN controller converts the input parameters of the two network node ID numbers of the SDN controller programming language format, such as JAVA, according to a preset protocol format;
  • the RPC reply information to be sent is sent, and the output parameter of the service interface provided by the SDN controller, that is, the path reachable value of the Boolean type in the JAVA format, is converted into the RPC reply information according to the preset protocol format.
  • the input parameter is the ID number of the two network nodes, and the type is 32 bits.
  • the output parameter is the path reachable value, and the type is Boolean type, which are basic types that can be directly recognized by the preset protocol format.
  • the input parameters of the service interface provided by the APP client are converted into RPC request information according to a preset protocol format; for the received RPC reply information, according to the preset
  • the protocol format is converted to a path-reachable value of the boolean type of the APP client programming language format such as PYTHON.
  • the APP client calls the interface of the SDN controller to query whether the path between the two network nodes is reachable as follows:
  • the SDN controller starts the registration module, and initiates the RPC service with the path reachable query in the bundle through the OSGI framework; the SDN controller starts the listening module, listens to the port agreed by the SDN controller and the APP client, and receives the RPC information in the first implementation.
  • the port number is agreed to be 5001;
  • the APP client uses, for example, PYTHON to develop, and calls the proxy module on the APP client to reach the query.
  • the input parameter is the ID number of the two network nodes; the APP client calls the first conversion module to input the input parameters of the above request. That is, the ID numbers of the two network nodes are converted into input parameters of a preset protocol format; the client of the APP invokes the first transceiver module to convert the input parameters of the protocol format set in advance into the request information of the RPC, and to the designated The address and port of the SDN controller, such as 5001, send RPC request information;
  • the monitoring module of the SDN controller detects the RPC information on the port 5001, and submits the received RPC information to the second transceiver module of the SDN controller; the second transceiver module of the SDN controller parses the request of the pre-set protocol format of the RPC. Information; the second conversion module of the SDN controller converts the request information of the preset protocol format into an input parameter of two network node ID numbers corresponding to the SDN controller programming language, such as JAVA;
  • the SDN controller invokes the corresponding path reachable query interface to operate, and converts the return value of the corresponding input parameter, that is, the Boolean type path reachable value, into a preset protocol output format parameter through the second conversion module,
  • the second transceiver module converts the output parameters of the preset protocol format into the RPC-compliant reply information and sends the response information to the APP client;
  • the first transceiver module of the APP client receives the RPC information, parses the reply information of the RPC, converts the reply information conforming to the RPC into the output parameter of the preset protocol format, and submits the first conversion module to the APP client;
  • the APP client a conversion module converts an output parameter of a preset protocol format into an output parameter of a Boolean type path reachable value corresponding to an APP programming language such as PYTHON, and transmits the output parameter to the proxy module as a return value of the proxy module;
  • the APP client obtains the return value of whether the path between the two network nodes is reachable.
  • the APP client set on the client is developed using the PYTHON programming language
  • the SDN controller is developed using the JAVA programming language, and it is assumed that the client and the SDN controller are running on the same host. on.
  • the APP client needs to invoke the interface of the SDN controller to query the path between the two network nodes.
  • the input parameter of the APP client is the ID number of the two network nodes, for example, a 32-bit integer.
  • the expected return value of the SDN controller is a path reachable value and a path pointer.
  • the path reachable value is a Boolean type, which represents whether the path between the two nodes is reachable. If the path is reachable, the path pointer specifically points to a set of link IDs such as a 32-bit integer type.
  • the return value of the first embodiment is a Boolean type, which is a basic type, which can be directly converted according to a preset protocol format; and the return of the second embodiment
  • the value is a combination of a basic type (boolean type) and a pointer.
  • the pointer type the conversion cannot be directly performed according to a protocol format set in advance, and therefore, for the second embodiment,
  • the specific implementation of the protocol conversion includes:
  • the input parameters of the two network node ID numbers are converted; for the RPC to be sent.
  • protocol conversion On the APP client, the specific implementation of protocol conversion includes:
  • RPC information to be sent input parameters of the service interface provided by the client, that is, two input parameters of the network node ID number programmed by PYTHON, are converted into RPC request information according to a preset protocol format; for the received RPC Reply information, the data type is the type set on the SDN controller: First, convert the combined data type into two types of values programmed by PYTHON according to the preset protocol format; then, read the path reachable value of the Boolean type in JAVA format ; read the path combination specifically points to a series of link ID values, and construct a pointer to the path combination; combine the boolean path reachable value and the pointer type path into the return value type of the proxy module on the APP client Just fine.
  • the APP client set on the client is developed using the PYTHON programming language
  • the SDN controller is developed using the JAVA programming language
  • the client and the SDN controller are assumed to be running on different hosts. on.
  • the APP client needs to invoke the interface of the SDN controller to query the path between the two network nodes.
  • the input parameter of the APP client is the ID number of the two network nodes, for example, a 32-bit integer type, and an expected SDN.
  • the return value of the controller is a path reachable value and a path pointer.
  • the path reachable value is a Boolean type, which represents whether the path between the two nodes is reachable. If the path is reachable, the path pointer points to a series of chains.
  • a road ID is a collection of 32-bit integer types.
  • the main difference between the third embodiment and the second embodiment is that the APP client and the SDN controller in the second embodiment are on the same host, and the APP client and the SDN controller in the third embodiment are not on the same host. Therefore, for the third embodiment,
  • the APP client specifies the address and port of the SDN controller as the IP address and the agreed port of the corresponding SDN controller in the request information.
  • the APP client set on the client is developed using the PYTHON programming language
  • the SDN controller is developed using the JAVA programming language, and it is assumed that the client and the SDN controller are running on the same host. on.
  • the APP client needs to invoke an interface of the SDN controller to query whether there are reachable paths between the pairs of multiple network nodes.
  • the input parameter of the APP client is the ID number of multiple network node pairs.
  • each network node pair is two 32-bit integer types.
  • the return value of the SDN controller is multiple path reachable values.
  • the reachable value of each path is a Boolean type: yes or no.
  • the main difference between the fourth embodiment and the first embodiment is that the input parameter of the APP client in the first embodiment is the ID number of the two network nodes, and the input parameter of the APP client in the fourth embodiment is a network with an uncertain number.
  • the interaction between the APP client and the SDN controller is a full-duplex data bidirectional flow. Therefore, for the fourth embodiment,
  • the sending mode needs to be set to the streaming mode, and when the sending is completed, the end flag is set;
  • the SDN controller Since the return value sent by the SDN controller to the APP client is a data stream, the SDN controller needs to set the transmission mode to the streaming mode and the return value in the streaming mode. When the transmission is completed, the end flag is set.
  • the embodiment of the present application improves the efficiency of a large number of bidirectional stream communication.

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控制器的服务接口,将服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数(400);客户端将第二输入参数转化为符合RPC的请求信息并发送给SDN控制器(401)。

Description

一种实现远程过程调用的方法及装置
相关申请的交叉引用
本申请基于申请号为201711190700.1、申请日为2017年11月24日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
技术领域
本申请涉及但不限于软件定义网络(SDN,Software Defined Network)技术。
背景技术
SDN是一种控制与转发分离、软件可编程的新型网络体系架构。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控制器分布在不同的主机上,也是无法进行跨节点的远程交互的。
发明内容
为了解决上述技术问题,本公开实施例提供一种实现远程过程调用的方法及装置。
本公开实施例提供了一种实现远程过程调用的装置,包括:代理模块、第一转换模块、第一收发模块;其中,
代理模块,配置为调用SDN控制器的服务接口,代理模块的输入参数和输出参数和SDN控制器上实际的服务接口参数相同;
第一转换模块,配置为将自身所在客户端提供的服务接口的符合APP客户端编程语言格式的第一输入参数,转化为预先设置的协议格式的第二输入参数;
第一收发模块,配置为将第二输入参数转化为符合远程过程调用协议(RPC,Remote Procedure Call Protocol)的请求信息并发送给SDN控制器。
本申请实施例还提供了一种实现远程过程调用的装置,包括:第二收发模块、第二转换模块;其中,
第二收发模块,配置为接收来自客户端的符合RPC的请求信息,并将 该请求信息转换为预先设置的协议格式的第二输入参数;
第二转换模块,配置为将第二输入参数转换为自身所在SDN控制器提供的服务接口的符合SDN控制器编程语言格式的第三输入参数。
本申请实施例又提供了一种实现远程过程调用的方法,包括:
客户端调用SDN控制器的服务接口,将服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数;
客户端将第二输入参数转化为符合RPC的请求信息并发送给SDN控制器。
本申请实施例再提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述的实现远程过程调用的方法。
本申请实施例还提供了一种实现远程过程调用的装置,包括处理器、存储器;其中,存储器上存储有可被处理器上运行的计算机程序;所述处理器配置为运行所述计算机程序时,执行上述客户端侧的实现远程过程调用的方法。
本申请实施例又提供了一种实现远程过程调用的方法,包括:
SDN控制器将来自客户端的符合RPC的请求信息转换为预先设置的协议格式的第二输入参数;
SDN控制器将第二输入参数转换为自身所的服务接口的第三输入参数。
本申请实施例再提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述的实现远程过程调用的方法。
本申请实施例还提供了一种实现远程过程调用的装置,包括处理器、存储器;其中,存储器上存储有可被处理器上运行的计算机程序;所述处理器配置为运行所述计算机程序时,执行上述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 Object Notation)格式。预先设置的协议格式可识别的参数为基本类型如字符串、整数、浮点数、字节、布尔类型等,或者其中几种的组合,但是不包括指针类型。
第一收发模块,配置为将第二输入参数转化为符合RPC的请求信息并发送给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控制器侧任一的实现远程过程调用的方法。
下面结合具体实施例对本公开实现方案进行详细描述。
第一实施例,在SDN控制器中,假设设置在客户端上的APP客户端使用PYTHON编程语言(也可以使用其他编程语言)进行开发,SDN控制器使用JAVA编程语言(也可以使用其他编程语言)进行开发,并假设客户端和SDN控制器运行在同一台主机上。
第一实施例中,假设APP客户端需要调用SDN控制器的接口,查询两个网络节点之间是否有可达路径,此时,APP客户端的输入参数是两个网络节点的ID号,比如为32位整数类型,预期SDN控制器的返回值是路径可达值,比如为布尔类型:是或否。
根据本申请实施例中提供的实现的远程过程调用的方法如下:
在SDN控制器上,具体包括:
在SDN控制器中注册RPC服务,如果SDN控制器遵循开放服务网关倡议(OSGI,Open Service 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 (16)

  1. 一种实现远程过程调用的装置,包括:代理模块、第一转换模块、第一收发模块;其中,
    代理模块,配置为调用SDN控制器的服务接口,代理模块的输入参数和输出参数和SDN控制器上实际的服务接口参数相同;
    第一转换模块,配置为将自身所在客户端提供的服务接口的符合APP客户端编程语言格式的第一输入参数,转化为预先设置的协议格式的第二输入参数;
    第一收发模块,配置为将第二输入参数转化为符合远程过程调用协议RPC的请求信息并发送给SDN控制器。
  2. 根据权利要求1所述的装置,其中,所述第一收发模块还配置为:接收来自SDN控制器的符合RPC的答复信息,将符合RPC的答复信息转化为预先设置的协议格式的第二输出参数;
    所述第一转换模块还配置为:将第二输出参数转化为符合APP客户端编程语言格式的第一输出参数,并输出给所述代理模块。
  3. 根据权利要求1所述的装置,其中,所述装置所在客户端与SDN控制器设置在同一物理设备上,或者设置在不同物理设备上;
    当所述装置所在客户端与SDN控制器不在同一物理设备上,在所述请求信息中还包括:所属SDN控制器的地址和约定端口,其中,约定端口为预先设置的端口或动态协商的端口。
  4. 一种实现远程过程调用的装置,包括:第二收发模块、第二转换模块;其中,
    第二收发模块,配置为接收来自客户端的符合RPC的请求信息,并将该请求信息转换为预先设置的协议格式的第二输入参数;
    第二转换模块,配置为将第二输入参数转换为自身所在SDN控制器提供的服务接口的符合SDN控制器编程语言格式的第三输入参数。
  5. 根据权利要求4所述的装置,其中,所述装置还包括监听模块,配 置为监听与客户端约定的端口,并在监听到端口上有信息流时,通知所述第二收发模块接收来自客户端的信息。
  6. 根据权利要求4所述的装置,其中,所述第二转化模块还配置为:将自身所在SDN控制器对请求信息做出答复的第三输出参数,转化为预先设置的协议格式的第二输出参数;
    所述第二收发模块还配置为:将第二输出参数转化为符合RPC的答复信息并发送给所述客户端。
  7. 一种实现远程过程调用的方法,包括:
    客户端调用SDN控制器的服务接口,将服务接口的第一输入参数转化为预先设置的协议格式的第二输入参数;
    客户端将第二输入参数转化为符合RPC的请求信息并发送给SDN控制器。
  8. 根据权利要求7所述的方法,其中,所述方法还包括:
    所述客户端接收来自SDN控制器的符合RPC的答复信息,将符合RPC的答复信息转化为预先设置的协议格式的第二输出参数;
    所述客户端将第二输出参数转化为符合APP客户端编程语言格式的第一输出参数作为返回值。
  9. 根据权利要求7所述的方法,其中,所述客户端与SDN控制器设置在同一物理设备上,或者设置在不同物理设备上;
    当所述APP客户端与SDN控制器不在同一物理设备上,在所述请求信息中还包括:SDN控制器的地址和约定端口,其中,约定端口为预先设置的端口或动态协商的端口。
  10. 一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求7至9任一项所述的实现远程过程调用的方法。
  11. 一种实现远程过程调用的装置,包括处理器、存储器以及存储在存储器上可在处理器上运行的计算机程序;其中,所述处理器配置为运行所述计算机程序时,执行权利要求7至9任一项所述的实现远程过程调用 的方法。
  12. 一种实现远程过程调用的方法,包括:
    SDN控制器将来自客户端的符合RPC的请求信息转换为预先设置的协议格式的第二输入参数;
    SDN控制器将第二输入参数转换为自身所的服务接口的第三输入参数。
  13. 根据权利要求12所述的方法,其中,所述方法之前还包括:
    所述SDN控制器监听与客户端约定的端口,并在监听到端口上有信息流时,接收来自所属客户端的信息。
  14. 根据权利要求12所述的方法,其中,所述方法还包括:
    所述SDN控制器将对请求信息做出答复的第三输出参数转化为预先设置的协议格式的第二输出参数;
    将第二输出参数转化为符合RPC的答复信息并发送给客户端。
  15. 一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求12至14任一项所述的实现远程过程调用的方法。
  16. 一种实现远程过程调用的装置,包括处理器、存储器以及存储在存储器上可在处理器上运行的计算机程序;其中,所述处理器配置为运行所述计算机程序时,执行权利要求12至14任一项所述的实现远程过程调用的方法。
PCT/CN2018/105323 2017-11-24 2018-09-12 一种实现远程过程调用的方法及装置 WO2019100819A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP18881368.7A EP3706382A4 (en) 2017-11-24 2018-09-12 PROCEDURE AND DEVICE FOR IMPLEMENTING A REMOTE PROCEDURE CALL
KR1020207016018A KR102419370B1 (ko) 2017-11-24 2018-09-12 원격 프로시저 호출을 구현하는 방법 및 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201711190700.1 2017-11-24
CN201711190700.1A CN109840155B (zh) 2017-11-24 2017-11-24 一种实现远程过程调用的方法及装置

Publications (1)

Publication Number Publication Date
WO2019100819A1 true WO2019100819A1 (zh) 2019-05-31

Family

ID=66631799

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/105323 WO2019100819A1 (zh) 2017-11-24 2018-09-12 一种实现远程过程调用的方法及装置

Country Status (4)

Country Link
EP (1) EP3706382A4 (zh)
KR (1) KR102419370B1 (zh)
CN (1) CN109840155B (zh)
WO (1) WO2019100819A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111010438A (zh) * 2019-12-13 2020-04-14 北京达佳互联信息技术有限公司 远程过程调用方法、装置、服务器及存储介质
CN112100255A (zh) * 2020-08-03 2020-12-18 中冶南方工程技术有限公司 一种钢铁全流程质量数据平台的对外数据通讯方法和系统
CN112788003A (zh) * 2020-12-28 2021-05-11 浪潮通用软件有限公司 一种基于微服务架构的rpc通信方法及设备
CN113364890A (zh) * 2021-06-30 2021-09-07 北京奇艺世纪科技有限公司 数据处理方法、装置、网络设备及介质
CN114221995A (zh) * 2021-11-11 2022-03-22 中国建设银行股份有限公司 服务调用方法、装置及电子设备
CN116760912A (zh) * 2023-08-18 2023-09-15 杭州星锐网讯科技有限公司 一种基于协议转换的交易实现方法和系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138811A (zh) * 2021-04-23 2021-07-20 上海中通吉网络技术有限公司 基于JsonPath的统一服务调用方法
CN113645303B (zh) * 2021-08-11 2024-04-23 曙光信息产业(北京)有限公司 数据传输方法、装置、计算机设备及存储介质
CN117555528B (zh) * 2024-01-12 2024-03-26 成都索贝视频云计算有限公司 一种服务化代码框架生成方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102098296A (zh) * 2010-12-29 2011-06-15 北京新媒传信科技有限公司 一种实现远程调用的方法和系统
CN102262560A (zh) * 2010-05-27 2011-11-30 阿里巴巴集团控股有限公司 一种远程服务的调用方法、装置及系统
WO2014149767A1 (en) * 2013-03-15 2014-09-25 Cisco Technology, Inc. Extending routing rules from external services
CN105357244A (zh) * 2014-08-22 2016-02-24 中兴通讯股份有限公司 实现对网络逻辑实体的操作方法、客户端及代理端
CN105471726A (zh) * 2014-09-05 2016-04-06 华为技术有限公司 转发参数传递的方法及设备
CN106357713A (zh) * 2015-07-16 2017-01-25 北京京东尚科信息技术有限公司 实现远程过程调用的方法和客户端装置以及服务器装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165340A (ja) * 2006-12-27 2008-07-17 Fujitsu Ltd 遠隔手続呼出方式
US10009264B2 (en) * 2013-09-20 2018-06-26 Nokia Solutions And Networks Gmbh & Co. Kg Handling of signaling messages on the data plane in a software-defined architecture
US9660877B1 (en) * 2014-03-21 2017-05-23 Cisco Technology, Inc. Transaction management in multi-protocol SDN controller

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262560A (zh) * 2010-05-27 2011-11-30 阿里巴巴集团控股有限公司 一种远程服务的调用方法、装置及系统
CN102098296A (zh) * 2010-12-29 2011-06-15 北京新媒传信科技有限公司 一种实现远程调用的方法和系统
WO2014149767A1 (en) * 2013-03-15 2014-09-25 Cisco Technology, Inc. Extending routing rules from external services
CN105357244A (zh) * 2014-08-22 2016-02-24 中兴通讯股份有限公司 实现对网络逻辑实体的操作方法、客户端及代理端
CN105471726A (zh) * 2014-09-05 2016-04-06 华为技术有限公司 转发参数传递的方法及设备
CN106357713A (zh) * 2015-07-16 2017-01-25 北京京东尚科信息技术有限公司 实现远程过程调用的方法和客户端装置以及服务器装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3706382A4 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111010438A (zh) * 2019-12-13 2020-04-14 北京达佳互联信息技术有限公司 远程过程调用方法、装置、服务器及存储介质
CN111010438B (zh) * 2019-12-13 2022-11-11 北京达佳互联信息技术有限公司 远程过程调用方法、装置、服务器及存储介质
CN112100255A (zh) * 2020-08-03 2020-12-18 中冶南方工程技术有限公司 一种钢铁全流程质量数据平台的对外数据通讯方法和系统
CN112788003A (zh) * 2020-12-28 2021-05-11 浪潮通用软件有限公司 一种基于微服务架构的rpc通信方法及设备
CN113364890A (zh) * 2021-06-30 2021-09-07 北京奇艺世纪科技有限公司 数据处理方法、装置、网络设备及介质
CN113364890B (zh) * 2021-06-30 2022-10-28 北京奇艺世纪科技有限公司 数据处理方法、装置、网络设备及介质
CN114221995A (zh) * 2021-11-11 2022-03-22 中国建设银行股份有限公司 服务调用方法、装置及电子设备
CN114221995B (zh) * 2021-11-11 2024-04-09 中国建设银行股份有限公司 服务调用方法、装置及电子设备
CN116760912A (zh) * 2023-08-18 2023-09-15 杭州星锐网讯科技有限公司 一种基于协议转换的交易实现方法和系统

Also Published As

Publication number Publication date
EP3706382A4 (en) 2021-08-04
KR102419370B1 (ko) 2022-07-08
KR20200084881A (ko) 2020-07-13
CN109840155B (zh) 2023-04-07
EP3706382A1 (en) 2020-09-09
CN109840155A (zh) 2019-06-04

Similar Documents

Publication Publication Date Title
WO2019100819A1 (zh) 一种实现远程过程调用的方法及装置
KR100984810B1 (ko) UPnP 디바이스가 PLC 디바이스를 컨트롤할 수있도록 브릿징하는 장치 및 방법
JP4851595B2 (ja) 目標ipネットワークの論理的配備、配備解除、及び監視のための方法
WO2022262465A1 (zh) 基于opc ua的时间敏感网络集中用户配置方法及系统
CN105763619B (zh) 客户端与服务端进行通讯的方法及装置
CN112838940B (zh) 一种网络控制器框架和数据处理方法
CN110324165A (zh) 网络设备的管理方法、装置及系统
JP2006236354A (ja) ホームネットワークのサービスフレームワーク及びその制御方法
Huang et al. Automatical end to end topology discovery and flow viewer on SDN
WO2015117415A1 (zh) 实现对网络逻辑实体的操作方法、客户端及代理端
KR102486236B1 (ko) 무선 통신 시스템에서 네트워크 기능 가상화를 위한 장치 및 방법
WO2011147314A1 (zh) 设备网络联通的检测方法、网管系统及网络系统
KR102094041B1 (ko) IoT 단말 간 실시간으로 자율적인 상호작용을 위한 RDF 그래프 기반의 Semantic 엔진을 구비한 시스템
WO2018153355A1 (zh) 控制信息传递方法、服务器和系统
Moritz et al. Devices profile for web services in wireless sensor networks: Adaptations and enhancements
CN105162616B (zh) 一种兼容snmp协议和corba协议的综合网络管理方法
CN117176633A (zh) 一种总线跨设备通信方法、装置、设备及存储介质
US20200162410A1 (en) Management of messaging in heterogeneous iot / iiot messaging environments
Lin et al. Gigabit Modbus user datagram protocol fieldbus network integrated with industrial vision communication
Grace et al. Overstar: An open approach to end-to-end middleware services in systems of systems
US8352592B2 (en) Controlling emission of events from managed systems to external management systems
WO2014063543A1 (zh) 虚拟南向接口的实现方法、装置及物联网管理平台
JP5700295B2 (ja) ネットワークシステム
KR20120081405A (ko) 확장 가능형 망 관리 시스템 및 방법
JP7468566B2 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18881368

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20207016018

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2018881368

Country of ref document: EP

Effective date: 20200601