Remote calling interface generation

By introducing IDL file conversion and cloud desktop transmission protocol SDK, the problem of low development efficiency of remote communication interfaces in cloud desktop application development is solved, and efficient remote communication interface generation and customized protocol adaptation is achieved.

WO2025177074A1PCT designated stage Publication Date: 2025-08-28CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/IB2025/050637
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-20
Filing Date
2025-01-22
Publication Date
2025-08-28

AI Technical Summary

Technical Problem

In the process of cloud desktop application development, developing a remote communication interface requires a lot of time and effort to understand the data structure and serialization operations of the cloud desktop transmission protocol, resulting in low development efficiency.

Method used

Introducing the interface description language IDL, by converting the IDL file into a programming interface file in the target language, and using the SDK of the cloud desktop transmission protocol as a technical base, the development of the remote communication interface is realized. Developers only need to write IDL files to avoid paying attention to internal implementation details.

Benefits of technology

It greatly reduces the workload of developers, improves the development efficiency of remote communication interfaces, and allows the communication protocol between end clouds to be customized on demand to adapt to the needs of different scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IB2025050637_28082025_PF_FP_ABST
    Figure IB2025050637_28082025_PF_FP_ABST
Patent Text Reader

Abstract

The embodiments of the present disclosure provide a remote calling interface generation method, a device, a storage medium, and a program product. In an implementation of a remote communication interface between end-cloud applications, an interface description language (IDL) is introduced. By converting an IDL file describing the remote communication interface into a programming interface file of a target language, and then using an SDK package of a cloud desktop transmission protocol as a technical foundation, a remote calling method within the programming interface file of the target language is implemented, thereby obtaining a remote communication interface between end-cloud applications. This makes it necessary only to write an IDL file, eliminating the need to focus on internal implementation details, thereby reducing workloads and improving efficiency in the development of remote communication interfaces. The conversion of IDL files and the use of SDK packages as a technical foundation allow end-cloud communication protocols to be customized as needed.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Remote call interface generation technology field

[0002]

[0001] The present disclosure relates to the field of cloud computing technology, and in particular to remote call interface generation.

[0003] With the rapid development of cloud desktop technology, the application scenarios of cloud desktops have rapidly expanded to various industries, thus deriving various forms of scenario-based applications based on cloud desktop technology. Among them, some scenario-based applications will localize some latency-sensitive operations and organically integrate inter-end-cloud communication with cloud content to provide a better experience for application users.

[0004]

[0003] In the process of scenario-based application development, it is necessary to develop a remote communication interface based on the remote communication capabilities provided by the cloud desktop to achieve communication between the end and the cloud. This requires developers to be familiar with the cloud desktop transmission protocol and spend a lot of time and energy to complete the following tasks: data structure definition and serialization operations based on the cloud desktop transmission protocol, data interaction process, etc. The development workload is large, and the efficiency of remote communication interface code development is low.

[0005]

[0004] Various aspects of the present disclosure provide a remote call interface generation method, device, storage medium, and program product to improve the development efficiency of remote communication interfaces.

[0006]

[0005] An embodiment of the present disclosure provides a remote communication interface generation method, comprising: generating an IDL text for describing a customized remote communication interface used for end-cloud communication based on semantic specification information of an interface description language (IDL); converting the IDL file into a programming interface file in a target language, wherein the target language is a programming language for developing applications for end-cloud communication based on the customized remote communication interface; and implementing remote call-related methods in the programming interface file using a software development kit (SDK) based on a cloud desktop transmission protocol to obtain a target code for the customized remote communication interface.

[0007]

[0006] The embodiment of the present disclosure also provides a remote communication interface generation system, including: a customization layer, an interface conversion layer, an interface implementation layer and a cloud desktop protocol layer; the customization layer is used to generate an IDL text for describing a customized remote communication interface used for end-cloud communication based on the interface description language IDL semantic specification information provided by the interface conversion layer; the interface conversion layer is used to convert the IDL file into a programming interface file in a target language, and the target language is a programming language for developing applications that perform end-cloud communication based on the customized remote communication interface; the interface implementation layer is used to implement remote call-related methods in the programming interface file based on a software development kit SDK of a cloud desktop transmission protocol to obtain the target code of the customized remote communication interface; the cloud desktop protocol layer is used to provide the SDK of the cloud desktop protocol and the data transmission capability provided by the SDK to the interface implementation layer.

[0008]

[0007] An embodiment of the present disclosure further provides an electronic device, comprising: a memory and a processor; the memory is used to store a computer program, and the processor is coupled to the memory and is used to execute the computer program to implement the steps in the remote communication interface generation method.

[0009]

[0008] The embodiment of the present disclosure also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, enables the processor to implement the steps in the remote communication interface generation method.

[0010]

[0009] The embodiment of the present disclosure further provides a computer program product, comprising a computer program / instruction, which, when executed by a processor, enables the processor to implement the steps in the remote communication interface generation method.

[0011]

[0010] The technical solution provided by the embodiment of the present disclosure introduces an interface description language IDL into the remote communication interface implementation solution between the end-cloud applications. By converting the IDL file describing the remote communication interface into a programming interface file in the target language, and then using the SDK package of the cloud desktop transmission protocol as the technical base, the remote call method in the programming interface file of the target language is implemented to obtain the remote communication interface between the end-cloud applications. Introducing IDL into the remote communication interface implementation allows developers to only write IDL files without having to pay attention to internal implementation details, which can greatly reduce the workload of developers and improve the development efficiency of the remote communication interface. In addition, based on the conversion of IDL files and the SDK package of the cloud desktop transmission protocol as the technical base, the communication protocol between the end-cloud can be customized on demand, which can adapt to the communication needs of different scenarios. Description of the accompanying drawings

[0012]

[0011] The drawings described herein are intended to provide a further understanding of the present disclosure and constitute a part of the present disclosure. The illustrative embodiments of the present disclosure and their descriptions are intended to explain the present disclosure and do not constitute an improper limitation of the present disclosure. In the drawings:

[0013]

[0012] FIG1 is a system structure diagram of a remote communication interface generation system provided in an embodiment of the present disclosure;

[0014] FIG. 2 is a schematic diagram of an exemplary protocol conversion according to an embodiment of the present disclosure;

[0015] FIG3 is a diagram illustrating an exemplary data transmission process according to an embodiment of the present disclosure;

[0016]

[0015] FIG4 is a flow chart of a method for generating a remote communication interface provided in an embodiment of the present disclosure;

[0017]

[0016] FIG5 is a schematic structural diagram of a remote communication interface generating device provided in an embodiment of the present disclosure;

[0018]

[0017] FIG6 is a schematic diagram of the structure of an electronic device provided in an embodiment of the present disclosure.

[0019] To make the objectives, technical solutions, and advantages of the present disclosure more clearly apparent, the technical solutions of the present disclosure will be described clearly and completely below in conjunction with specific embodiments of the present disclosure and corresponding drawings. Obviously, the described embodiments are only some of the embodiments of the present disclosure, and are not intended to be exhaustive. All other embodiments derived by persons of ordinary skill in the art based on the embodiments of the present disclosure without inventive effort are intended to fall within the scope of protection of the present disclosure.

[0020]

[0019] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, storage, and display) involved in this disclosure are all information and data authorized by the user or fully authorized by all parties. The collection, use, and processing of relevant data must comply with relevant laws, regulations, and standards of relevant countries and regions, and corresponding operation portals are provided for users to choose to authorize or reject. In addition, the various models involved in this disclosure (including but not limited to language models or large models) comply with relevant laws and standards.

[0021] With the rapid development of cloud desktop technology, the application scenarios of cloud desktops have rapidly expanded to various industries, thus deriving various forms of scenario-based applications based on cloud desktop technology. Among them, some scenario-based applications will localize some latency-sensitive operations, while organically combining inter-end-cloud communication with cloud content to provide a better experience for application users.

[0022]

[0021] During the development of scenario-based applications, it is necessary to develop a remote communication interface based on the remote communication capabilities provided by the cloud desktop to enable communication between the end and the cloud. This requires developers to be familiar with the cloud desktop transmission protocol and requires a lot of time and effort to complete the following tasks: data structure definition and serialization operations based on the cloud desktop transmission protocol, data interaction processes, etc. The development workload is large, and the efficiency of remote communication interface code development is low.

[0023]

[0022] The embodiments of the present disclosure provide a remote call interface generation method, device, storage medium, and program product. The technical solution provided by the embodiments of the present disclosure introduces an interface description language (IDL) into the remote communication interface implementation between end-cloud applications. The IDL file describing the remote communication interface is converted into a programming interface file in a target language. The SDK package of the cloud desktop transmission protocol is then used as a technical foundation to implement the remote call method in the programming interface file in the target language, thereby obtaining a remote communication interface between the end-cloud applications. Introducing IDL into the remote communication interface implementation allows developers to simply write the IDL file without having to worry about internal implementation details, which greatly reduces the developer workload and improves the efficiency of remote communication interface development. In addition, based on the conversion of the IDL file and the SDK package of the cloud desktop transmission protocol as a technical foundation, the communication protocol between the end-cloud can be customized on demand, which can adapt to the communication needs of different scenarios.

[0024]

[0023] The following describes in detail the technical solutions provided by various embodiments of the present disclosure in conjunction with the accompanying drawings.

[0024] FIG1 is a system structure diagram of a remote communication interface generation system provided by an embodiment of the present disclosure. Referring to FIG1 , the remote communication interface generation system may include: a customization layer 10, an interface conversion layer 20, an interface implementation layer 30, and a cloud desktop protocol layer 40.

[0025]

[0025] In this embodiment, the customization layer 10 is used to generate an IDL text for describing a customized remote communication interface used in end-cloud communication based on the interface description language IDL semantic specification information provided by the interface conversion layer 20.

[0026] Specifically, the customization layer 10 supports developers in writing custom protocol text using IDL (Interface Description Language) semantic specification information, thereby improving development efficiency. The IDL semantic specification information defines the format and syntax rules that developers must meet when writing custom protocol text, and provides basic data interface and call procedure definitions, etc., but is not limited to these. Optionally, the IDL semantic specification information includes, but is not limited to, syntax rules, data object definition rules, and method call definition rules. Data objects include, but are not limited to, basic data types, classes, structures, and methods. Data object definition rules include, but are not limited to, basic data type definition rules, class definition rules, structure definition rules, and method definition rules.

[0027]

[0027] Optionally, the basic data type definition rule describes the basic data types that can be used by the custom protocol text. The basic data types include, but are not limited to: int32 (32-bit integer type), int64 (64-bit integer type), float (floating point type), double (double-precision floating point type), etc.

[0028]

[0028] Optionally, the class definition rules constrain the methods of defining classes in the custom protocol text.

[0029]

[0029] Optionally, the structure definition rules constrain the method of defining a class in the custom protocol text.

[0030]

[0030] Optionally, the method definition rules constrain the form of defining methods in the custom protocol text, including multiple method call types. Method call types include, but are not limited to: single call, print call, and value call.

[0031]

[0031] Optionally, the IDL semantic specification information may further include return value declaration definition rules, which constrain return value declarations in the custom protocol text. Return value declarations include, but are not limited to, synchronous call declarations and asynchronous call declarations.

[0032]

[0032] In this embodiment, the customization layer 10 writes a custom protocol text in response to a writing operation initiated by a developer based on IDL semantic specification information. Here, the custom protocol text to be written can be an IDL text for describing a customized remote communication interface used for end-cloud communication. Optionally, when the customization layer 10 generates an IDL text for describing a customized remote communication interface used for end-cloud communication based on the IDL semantic specification information, it is specifically used to: generate data object information required for the customized remote communication interface based on the grammatical rules and data object definition rules in the IDL semantic specification information; generate description information of remote call-related methods required by the customized remote communication interface based on the method call definition rules in the IDL semantic specification information; and generate an IDL file for describing the customized remote communication interface based on the data structure information and the description information of the remote call-related methods. The IDL file includes interface description, data object information, and description information of remote call-related methods. Among them, data object information includes but is not limited to: data objects of basic data types (such as character constants, numeric constants, logical constants, internal system variables or custom variables, arrays, pointers, strings, etc.), and also includes data objects of non-basic data types such as classes and methods, and further includes the type of data object, the name of the data object, etc.

[0033]

[0033] In this embodiment, the interface conversion layer 20 can interact with the customization layer 10. On the one hand, it is used to provide IDL semantic specification information to the customization layer 10. On the other hand, it is used to convert the IDL file generated by the customization layer 10 into a programming interface file in a target language. The target language is a programming language for developing applications based on the customized remote communication interface for end-cloud communication.

[0034] Specifically, in addition to providing IDL semantic specification information to the customization layer 10, the interface conversion layer 20 also provides a protocol conversion tool for converting custom protocol text into an Application Programming Interface (API) file. During the conversion process, the protocol conversion tool can perform the following tasks: code generation, type binding, lexical analysis, syntax checking, etc.

[0035]

[0035] In this embodiment, applications for end-cloud communication include, but are not limited to: cloud desktop application client and corresponding cloud desktop application system, cloud editing application client and corresponding cloud editing application system, cloud game application client and corresponding cloud game system, cloud live application client and corresponding cloud live system, etc. In the disclosed embodiment, there is no limitation on the target language used for developing applications for end-cloud communication. For example, it can be Java, C, or C++, etc., depending on the specific application development requirements.

[0036]

[0036] Optionally, when the interface conversion layer 20 converts the IDL file into a programming interface file in the target language, an intermediate code may be generated based on the IDL file. The intermediate code includes: initial code of the customized remote communication interface implemented in the target language, glue code, and interface call code for the software development kit (SDK) of the cloud desktop transmission protocol; according to the code bonding logic described in the glue code, the initial code and the interface call code are bonded to obtain the programming interface file of the customized remote communication interface.

[0037]

[0037] In this embodiment, the initial code includes, for example but not limited to: data structure serialization processing logic, class / structure definition, remote call method, method for monitoring the remote call of the other end, and method for handling exceptions during the remote call process.

[0038]

[0038] The serialization processing logic of the data structure is used to perform serialization operations on user-defined data structures, and the serialization operation process involves binary compression / decompression operations. The serialization processing logic of the data structure ensures the basic format of data transmission.

[0039]

[0039] Among them, the remote calling method, the method for monitoring the remote calling of the other end, the method for handling the exception in the remote calling process, and the like are methods included in the remote calling interface code implemented based on the target language.

[0040]

[0040] In this embodiment, among the methods included in the remote call interface code implemented based on the target language, some basic capabilities may need to reference methods defined in the SDK of the cloud desktop transmission protocol. Based on this calling relationship, an interface call code can be obtained. The interface call code is used to describe which methods in the SDK need to be called in the initial code.

[0041] In this embodiment, glue code, also referred to as bonding code, is used to describe the bonding relationship between different codes. Here, the initial code and the interface call code are bonded together using the glue code to obtain a programming interface file for a customized remote communication interface. The programming interface file may include a cloud-side programming interface file deployed on the cloud side and a device-side programming interface file deployed on the device side.

[0042]

[0042] In some optional embodiments, when the interface conversion layer 20 generates the intermediate code based on the IDL file, it can perform lexical analysis on the IDL file according to the data object definition rules and method call definition rules in the IDL semantic specification information to obtain a lexical tree; and re-express the data object information and grammatical structure information expressed in the lexical tree according to the semantic specification information of the target language to obtain the intermediate code.

[0043] Specifically, data object information includes, but is not limited to, data of basic data types, classes, and methods. Syntactic structure information expresses the relationships between data objects, including, but not limited to, calling, pointing to, including, and referencing. A class may contain multiple methods, a method may contain variables of various data types, and a method may need to call another API interface.

[0044]

[0044] In some optional embodiments, before performing lexical analysis on the IDL file, the interface conversion layer 20 may further perform syntax detection on the IDL file according to the syntax rules in the IDL semantic specification information; if there is a syntax error in the IDL file, a syntax error prompt message is output to allow relevant personnel to correct the IDL file.

[0045]

[0045] For a better understanding, a specific conversion process of the protocol conversion tool is introduced below in conjunction with FIG2 , which is as follows.

[0046]

[0046] The first step is to check whether the custom protocol text has any grammatical problems according to the rules defined by the IDL semantic specification information. If so, the second step is executed; if not, the third step is executed.

[0047] Specifically, developers write custom protocol text based on IDL semantic specification information. IDL semantic specification information includes, but is not limited to, syntax rules, data object definition rules, and method call definition rules. Data object definition rules include, but are not limited to, basic data type definition rules, class definition rules, structure definition rules, and method definition rules.

[0048] During the conversion process, protocol conversion tools can perform the following tasks: code generation, type binding, lexical analysis, syntax checking, and more. For example, the protocol conversion tool uses syntax rules to check for grammatical issues in the custom protocol text. If so, it proceeds to step 2; otherwise, it proceeds to step 3.

[0048]

[0049] Step 2: Prompt the user (usually the developer) about the syntax error and end the conversion.

[0049]

[0050] Step 3: Perform lexical analysis according to the rules defined by the IDL semantic specification information to generate a lexical tree.

[0050]

[0051] Step 4: Generate intermediate code based on the lexical tree information.

[0051]

[0052] The intermediate code includes, but is not limited to, initial code, glue code, and interface call code of the SDK of the cloud desktop transmission protocol. The glue code describes the code bonding logic used to bond the initial code with the interface call code.

[0052]

[0053] Step 5: Use glue code to glue the initial code and the interface call code to obtain the programming interface file of the customized remote communication interface.

[0053]

[0054] In this embodiment, the interface implementation layer 30 is used to implement the remote call related methods in the programming interface file based on the SDK of the cloud desktop transmission protocol to obtain the target code of the customized remote communication interface.

[0054]

[0055] In actual applications, applications that perform end-to-end communication can complete the following tasks based on the programming interface file of the interface implementation layer 30: (1) Complete the instantiation of the data structure according to the relevant data structure definition in the programming interface file. (2) Initiate remote method calls according to the remote call method in the programming interface file and process the return value. (3) Listen to the peer method call request and complete the response according to the method of listening to the peer remote call in the programming interface file. (4) Complete the detection of abnormal status in the remote call process and perform exception handling according to the "method for handling exceptions in the remote call process" in the programming interface file.

[0055]

[0056] Optionally, in addition to implementing the remote call-related methods in the programming interface file, you may also implement methods for monitoring peer remote calls or handling exceptions during remote calls. In this way, the target code for the customized remote communication interface includes code fragments for implementing methods such as remote call-related methods, monitoring peer remote calls, or handling exceptions during remote calls.

[0056]

[0057] Optionally, when the interface implementation layer 30 implements the remote call-related methods in the programming interface file based on the SDK of the cloud desktop transmission protocol to obtain the target code of the customized remote communication interface, the interface implementation layer 30 can parse the remote call methods implemented in the initial code that have an interface call relationship with the SDK based on the interface call code; and implement the remote call methods using the multi-channel data transmission capability provided by the SDK to obtain the target code.

[0057]

[0058] Optionally, the interface implementation layer 30 uses the multi-channel data transmission capability provided by the SDK to implement the remote call method to obtain the target code in the following manner: using the end-cloud connection main channel establishment capability provided by the SDK to implement the end-cloud connection sub-method in the remote call method to achieve end-cloud connection; using the channel virtualization capability provided by the SDK to implement the data channel creation sub-method in the remote call method to achieve customized data channels; using the data encapsulation, transmission, and transparency capabilities provided by the SDK to implement the data transmission sub-method in the remote call method to achieve data transmission based on customized data channels.

[0058]

[0059] In this embodiment, the cloud desktop protocol layer 40 is used to provide the interface implementation layer 30 with a cloud desktop protocol SDK and the data transmission capabilities provided by the SDK. This allows the interface implementation layer 30 to implement the remote call-related methods in the programming interface file based on the cloud desktop transmission protocol SDK, thereby obtaining the target code for the customized remote communication interface.

[0059]

[0060] Specifically, referring to Figure 1 , the cloud desktop protocol layer 40 can provide multi-channel data transmission capabilities to the upper layer (i.e., the interface implementation layer 30) based on the cloud desktop / cloud application protocol, providing infrastructure support for the interface implementation layer 30 to complete remote method calls. In this way, the cloud-side cloud desktop protocol SDK receives structured data sent by the cloud-side cloud desktop system or cloud application system based on the data structure defined in the cloud instance programming interface file. The cloud-side cloud desktop protocol SDK then sends the structured data to the end-side cloud desktop protocol SDK via a transmission channel. The end-side cloud desktop protocol SDK then sends the structured data to the end-side client. The end-side cloud desktop protocol SDK receives the structured data sent by the end-side client based on the data structure defined in the end-side programming interface file. The end-side cloud desktop protocol SDK then sends the structured data to the cloud-side cloud desktop protocol SDK via a transmission channel. The cloud desktop protocol SDK then sends the structured data to the cloud-side cloud desktop system or cloud application system.

[0060]

[0061] Cloud desktop / cloud application protocols include cloud desktop protocols or cloud application protocols. Examples of cloud desktop protocols include the Adaptive Streaming Protocol (ASP), a device-cloud collaboration protocol. The cloud desktop protocol primarily transmits keyboard and mouse commands from the local terminal (i.e., client) to the cloud desktop application in the cloud. The cloud desktop application responds to these commands and pushes any changes to the cloud desktop screen to the local terminal for display, making the local terminal more lightweight. The cloud desktop protocol can provide multiple data transmission channels, with different channels transmitting different data. As shown in Figure 1 , the cloud desktop protocol SDK provided by the cloud desktop protocol layer 40 includes a cloud-side cloud desktop protocol SDK and a device-side cloud desktop protocol SDK. The cloud desktop protocol layer 40 also provides a transmission channel between the cloud-side cloud desktop protocol SDK and the device-side cloud desktop protocol SDK, through which the two SDKs send and receive data. The cloud desktop protocol layer 40 also provides basic cloud desktop / application protocols, which define data structures and data transmission process specifications. It also provides a virtual multi-channel implementation that can run in cloud desktop / application and client-side system environments, providing mechanisms to guarantee physical transmission and data processing logic for data interaction based on the basic cloud desktop / application protocols. The cloud desktop protocol layer 40 also provides a transmission channel dedicated to customized data content transmission, which can be implemented based on the basic virtual multi-channel capabilities.

[0061]

[0062] In this embodiment, the main responsibilities of the cloud desktop protocol layer 40 include, but are not limited to: responding to calls to the customized remote communication interface, establishing the primary channel for the end-cloud connection, completing data transmission and channel virtualization based on the cloud desktop / application protocol, designing customized data channels based on virtual channels, and completing data input and output of the customized data channels based on the cloud-side cloud desktop protocol SDK and the end-side cloud desktop protocol SDK.

[0062]

[0063] The technical solution provided by the embodiments of the present disclosure introduces the interface description language (IDL) into the implementation of the remote communication interface between end-cloud applications. This solution converts the IDL file describing the remote communication interface into a programming interface file in the target language. Using the SDK package for the cloud desktop transmission protocol as the technical foundation, the remote call methods in the target language programming interface file are implemented to create the remote communication interface between the end-cloud applications. Introducing IDL into the remote communication interface implementation allows developers to simply write the IDL file without having to worry about internal implementation details, significantly reducing developer workload and improving remote communication interface development efficiency. Furthermore, based on IDL file conversion and the SDK package for the cloud desktop transmission protocol as the technical foundation, the communication protocol between the end-cloud and the cloud can be customized on demand to meet the communication requirements of different scenarios.

[0063]

[0064] In some optional embodiments, the remote communication interface generation system is further configured to: jointly compile the target code of the customized remote communication interface with the SDK for the cloud desktop transmission protocol to obtain compiled code for the customized remote communication interface; and add the compiled code of the customized remote communication interface to a link library as a library function, so that an application can call the library function of the customized remote communication interface to perform end-to-cloud communication based on the cloud desktop transmission protocol. The link library can be either a static link library or a dynamic link library, without limitation.

[0064]

[0065] Specifically, the customized remote communication interface includes a customized remote communication interface deployed on the device side and a customized remote communication interface deployed on the cloud side. The link library includes library functions for the customized remote communication interface on the device side and the customized remote communication interface on the cloud side. Thus, when a client on the device side sends data to a cloud desktop system or cloud application system on the cloud side, the client on the device side calls the customized remote communication interface on the device side to send data to the cloud desktop system or cloud application system on the cloud side, thereby achieving device-cloud communication. When the cloud desktop system or cloud application system on the cloud side sends data to a client on the device side, the cloud desktop system or cloud application system on YunjiaJ calls the customized remote communication interface on YunjiaJ to send data to the client on the device side, thereby achieving device-cloud communication.

[0065]

[0066] In some optional embodiments, the remote communication interface generation system is further used to: respond to an application's call to a customized remote communication interface, use the SDK to perform end-to-end cloud communication based on the cloud desktop transmission protocol; wherein the downlink communication process in the end-to-end cloud communication includes: data packet splitting processing, encapsulation for data packet merging, channel selection, protocol encapsulation, and data packet sending; the uplink communication process in the end-to-end cloud communication includes: data packet reception, protocol decapsulation, channel determination, decapsulation for data packet merging, and data packet merging processing.

[0066]

[67] Specifically, the application's call to the customized remote communication interface can be a call from the client on the end side to the customized remote communication interface, or it can be a call from the cloud desktop system or cloud application system on the cloud side to the customized remote communication interface, and there is no restriction on this.

[0067]

[68] Optionally, the downlink communication process includes: in response to the application calling the customized remote communication interface, sending a first data packet to be transmitted to the SDK; the SDK splits the first data packet into multiple second data packets, and the second data packets are smaller than the first data packet; the SDK adds header information to each second data packet to obtain a third data packet, and the header information includes information required to assist the other end in merging the first data packet; the SDK selects a data channel from multiple virtual channels according to the data type of the first data packet, and performs protocol encapsulation on the third data packet based on the communication protocol supported by the data channel to obtain a fourth data packet; the SDK serializes the fourth data packet to obtain a serialized file, and sends the serialized file through the physical transmission channel.

[0068]

[69] Specifically, taking Figure 3 as an example, there are two SDKs in Figure 3, one is the cloud-side cloud desktop protocol SDK, and the other is the end-side cloud desktop protocol SDK. Here, the end-side cloud desktop protocol SDK receives a large data packet (i.e., the first data packet) to be transmitted from the client as an example to illustrate the downlink communication process.

[0069]

[70] In the downlink direction, the client-side cloud desktop protocol SDK receives the large data packet to be pollinated from the client and splits it into a sequence of small data packets, which includes multiple small data packets (i.e., multiple second data packets). It can be understood that the large data packet is divided into a sequence of smaller data packets to facilitate data transmission on the network. The client-side cloud desktop protocol SDK then packages the small data packet sequence and adds information to the packet header to facilitate the assembly work when the other end receives the data. For example, the data structure of the packaged small data packet (i.e., the third data packet) is as follows:

[0070]

[71] Among them, the Magic field is used to mark the starting position of a packet with an integer generated by special rules; the Magic field can also be called the starting position mark field.

[0071]

[72] Session ID (identification) field: A session ID is generated each time a data channel is established. This field is used to record which session ID the current packet belongs to, to prevent confusion in the packet processing logic when an abnormality occurs in the link.

[0072]

[73] Original Packet ID Field: Each time an original data packet is input using the upper-layer logic of the protocol SDK, an ID information is recorded. This field is used to record which original packet the current packet belongs to, to prevent confusion in the packet processing logic when a link anomaly occurs. The original packet refers to the large data packet mentioned above.

[0073]

[74] Packet ID field: The ID of the current packet, a self-increasing integer sequence starting from 0, to prevent packet processing logic from being disrupted when a link anomaly occurs. The current packet here refers to the small data packet in the sequence of segmented data packets.

[0075] Packet Length field: Used to mark the length information of the current packet, which refers to the length information of the small data packet. Packet Data field: The original raw data of the current packet, which refers to the original raw data of the small data packet. The original raw data refers to the data segmented from the large data packet without any encapsulation information added.

[0074] In this embodiment, the Magic field, the session ID field, the original packet ID field, the packet ID field, the packet length field, etc. constitute the packet header information. For ease of description and distinction, the packet header information here is referred to as packet header information A. The third data packet is a data packet with packet header information A.

[0075]

[0077] In this embodiment, the client-side cloud desktop protocol SDK splits the original large data packet into a sequence of small data packets, adds the above-mentioned header information A to each small data packet in the sequence, and sends the small data packets (i.e., the third data packets) with the above-mentioned header information A to the data channel one by one to begin data transmission. When selecting a data channel from the virtual multi-channel, the client-side cloud desktop protocol SDK selects it based on the packet type of the large data packet. If the large data packet is image data, the channel in the virtual multi-channel used to transmit image data can be used as the data transmission channel; if the large data packet is audio data, the channel in the virtual multi-channel used to transmit audio data can be used as the data transmission channel; if the large data packet is text data, the channel in the virtual multi-channel used to transmit text data can be used as the data transmission channel, and so on.

[0076]

[0078] In this embodiment, after the data channel receives the small data packet, it packages the small data packet based on the cloud desktop / application protocol. After the protocol data packaging, the small data packet carries new header information and becomes a new data packet (i.e., the fourth data packet). Multiple fourth data packets form a fourth data packet sequence (i.e., the protocol data packet sequence in Figure 3).

[0077]

[0079] Exemplarily, the data structure of the fourth data packet is as follows:

[0078]

[0080] The Magic field is used to mark the starting position of a packet using an integer generated by a special rule. The Magic field can also be called a starting position marker field. The Packet Type field marks the type of the current packet, informing the peer end which virtual channel to use for processing after receiving the data. In this solution, this field needs to be marked as the data channel type. The Packet Length field marks the length of the current packet. The Packet Data field contains the raw data of the current packet. The current packet refers to the small data packet encapsulated with the packet header information A. The Magic field, Packet Type, and Packet Length fields constitute the packet header information. For ease of distinction, the packet header information here is referred to as packet header information B. The fourth data packet is a data packet with packet header information B.

[0079]

[0081] In this embodiment, the data channel serializes the fourth data packet to obtain a serialized file, and sends the serialized data in the serialized file to the network 10 (Input / Output) module. The network 10 module sends the serialized data to the network, which transmits it to the peer end via the network, thereby completing the downlink data transmission operation.

[0082] Optionally, the uplink communication process includes: in response to the application calling the customized remote communication interface, calling the SDK to receive the serialized file via the physical transmission channel, deserializing the serialized file to obtain a sequence of fourth data packets; performing protocol decapsulation on each fourth data packet based on the communication protocol supported by the data channel to obtain a third data packet; decapsulating the third data packet using the header information A of the third data packet to obtain a second data packet; and merging multiple second data packets into a first data packet. It will be understood that the uplink communication process is primarily a decapsulation process, while the downlink communication process is primarily an encapsulation process. The processing of data packets in the uplink communication process is opposite to that in the downlink communication process.

[0080]

[0083] Continuing with Figure 3 as an example, in the uplink direction of the opposite end: after the network 10 module on the cloud side receives the serialized file sent by the network 10 module on the client side, it deserializes the serialized data in the serialized file to obtain a fourth data packet sequence (that is, the protocol data packet sequence in Figure 3); according to the packet type in the fourth data packet, the data channel is selected, and the fourth data packet sequence is sent to the data channel; the data channel converts the fourth data packet sequence into a small data packet sequence, and the cloud-side cloud desktop protocol SDK assembles the small data packet sequence into a large data packet, and sends the large data packet to the upper-level cloud-side cloud desktop system or cloud application system, thereby ending the uplink data processing action.

[0081] In this embodiment, when the data channel converts the fourth data packet sequence into the small data packet sequence, it parses the header information B of the fourth data packet and obtains the packet data therefrom as the small data packet with the header information A; then, the small data packet with the header information A is decapsulated to obtain the original small data packet (i.e., the second data packet) and the header information A; finally, the small data packet is assembled according to the Magic field, the session ID field, the original packet ID field, the packet ID field, etc. in the header information A to obtain the large data packet.

[0082]

[0085] In this embodiment, when the cloud-side cloud desktop protocol SDK converts a sequence of small data packets into a large data packet, it decapsulates the small data packet according to the data structure of the small data packet, and assembles the individual data packets into a large data packet according to the packet ID of the decapsulated small data packet.

[0083]

[0086] FIG4 is a flow chart of a method for generating a remote communication interface according to an embodiment of the present disclosure. Referring to FIG4, the method may include steps 101 to 103.

[0084]

[0087] 101. Based on the interface description language IDL semantic specification information, generate an IDL text for describing the customized remote communication interface used for end-cloud communication.

[0085]

[0088] 102. Convert the IDL file into a programming interface file in a target language, where the target language is a programming language for developing applications for end-cloud communication based on a customized remote communication interface.

[0086]

[0089] 103. Based on the software development kit (SDK) of the cloud desktop transmission protocol, implement the remote call-related methods in the programming interface file to obtain the target code of the customized remote communication interface.

[0090] Optionally, the above method further includes: co-compiling the target code of the customized remote communication interface with the SDK of the cloud desktop transmission protocol to obtain compiled code of the customized remote communication interface; and adding the compiled code of the customized remote communication interface as a library function to a link library, so that the application calls the library function of the customized remote communication interface to perform end-to-cloud communication based on the cloud desktop transmission protocol.

[0087]

[0091] Optionally, based on the interface description language IDL semantic specification information, an IDL text for describing the customized remote communication interface used for end-cloud communication is generated, including: based on the grammatical rules and data object definition rules in the IDL semantic specification information, generating data object information required by the customized remote communication interface; based on the method call definition rules in the IDL semantic specification information, generating description information of remote call related methods required by the customized remote communication interface; and generating an IDL file for describing the customized remote communication interface based on the data object information and the description information of the remote call related methods.

[0088]

[0092] Optionally, converting the IDL file into a programming interface file in a target language includes: generating an intermediate code based on the IDL file, the intermediate code including: an initial code of a customized remote communication interface implemented in the target language, a glue code, and an interface call code for an SDK of a cloud desktop transmission protocol; and gluing the initial code and the interface call code according to a code gluing logic described in the glue code to obtain a programming interface file of the customized remote communication interface.

[0089]

[0093] Optionally, generating the intermediate code according to the IDL file includes: performing lexical analysis on the IDL file according to the data object definition rules and method call definition rules in the IDL semantic specification information to obtain a lexical tree; and re-expressing the data object information and grammatical structure information expressed in the lexical tree according to the semantic specification information of the target language to obtain the intermediate code.

[0090]

[0094] Optionally, before performing lexical analysis on the IDL file, the method further includes: performing syntax detection on the IDL file according to the syntax rules in the IDL semantic specification information; and outputting syntax error prompt information when there is a syntax error in the IDL file, so that relevant personnel can correct the IDL file.

[0091]

[0095] Optionally, based on the software development kit SDK of the cloud desktop transmission protocol, the remote call related methods in the programming interface file are implemented to obtain the target code of the customized remote communication interface, including: based on the interface call code, parsing the remote call method implemented in the initial code that has an interface call relationship with the SDK; using the multi-channel data pollination capability provided by the SDK to implement the remote call method to obtain the target code.

[0092]

[0096] Optionally, the multi-channel data transmission capability provided by the SDK is used to implement the remote call method to obtain the target code, including: utilizing the end-cloud connection main channel establishment capability provided by the SDK to implement the end-cloud connection sub-method in the remote call method to achieve end-cloud connection; utilizing the channel virtualization capability provided by the SDK to implement the data channel creation sub-method in the remote call method to achieve customized data channels; utilizing the data encapsulation, transmission and transparency capabilities provided by the SDK to implement the data transmission sub-method in the remote call method to achieve data transmission based on customized data channels.

[0093]

[0097] Optionally, the above method also includes: in response to the application calling the customized remote communication interface, using the SDK to perform end-cloud communication based on the cloud desktop transmission protocol; wherein the downlink communication process in the end-cloud communication includes: data packet splitting processing, encapsulation for data packet merging, channel selection, protocol encapsulation and data packet sending; the uplink communication process in the end-cloud communication includes: data packet reception, protocol decapsulation, channel determination, decapsulation for data packet merging and data packet merging processing.

[0094]

[0098] Optionally, the remote call related methods implemented in the initial code also include: a method for monitoring the remote call request initiated by the other end and completing the response, and a method for detecting and handling abnormal conditions during the remote call process.

[0095]

[0099] For the implementation of each step in the method embodiment, please refer to the relevant description of the above embodiment, which will not be repeated here.

[0096]

[0100] The technical solution provided by the embodiments of the present disclosure introduces an interface description language (IDL) into the implementation of the remote communication interface between the end-cloud applications. By converting the IDL file describing the remote communication interface into a programming interface file in the target language, and then using the SDK package of the cloud desktop transmission protocol as the technical foundation, the remote call method in the programming interface file in the target language is implemented to obtain the remote communication interface between the end-cloud applications. Introducing IDL into the remote communication interface implementation allows developers to only write IDL files without having to pay attention to internal implementation details, which can greatly reduce the workload of developers and improve the development efficiency of the remote communication interface. In addition, based on the conversion of IDL files and the SDK package of the cloud desktop transmission protocol as the technical foundation, the communication protocol between the end-cloud can be customized on demand, which can adapt to the communication needs of different scenarios.

[0097]

[0101] FIG5 is a schematic diagram of the structure of a remote communication interface generation device provided in an embodiment of the present disclosure. Referring to FIG5, the device may include a generation module 51, a conversion module 52, and an interface implementation module 53.

[0098]

[0102] The generation module 51 is used to generate an IDL text for describing a customized remote communication interface used for end-cloud communication based on the interface description language IDL semantic specification information.

[0099]

[0103] The conversion module 52 is used to convert the IDL file into a programming interface file in a target language, where the target language is a programming language for developing applications for end-cloud communication based on a customized remote communication interface.

[0100]

[0104] The interface implementation module 53 is used for the software development kit SDK based on the cloud desktop transmission protocol to implement the remote call related methods in the programming interface file to obtain the target code of the customized remote communication interface.

[0101]

[0105] Optionally, the remote communication interface generating device is further used to: jointly compile the target code of the customized remote communication interface with the SDK of the cloud desktop transmission protocol to obtain the compiled code of the customized remote communication interface; add the compiled code of the customized remote communication interface as a library function to the link library, so that the application calls the library function of the customized remote communication interface to perform end-cloud communication based on the cloud desktop transmission protocol.

[0102]

[0106] Optionally, the generation module 51 is specifically used to: generate data object information required for the customized remote communication interface based on the syntax rules and data object definition rules in the IDL semantic specification information; generate description information of remote call related methods required by the customized remote communication interface based on the method call definition rules in the IDL semantic specification information; and generate an IDL file for describing the customized remote communication interface based on the data object information and the description information of the remote call related methods.

[0103]

[0107] Optionally, the conversion module 52 is specifically used to: generate intermediate code based on the IDL file, the intermediate code including: initial code of the customized remote communication interface implemented based on the target language, glue code, and interface call code for the SDK of the cloud desktop transmission protocol; according to the code bonding logic described by the glue code, the initial code and the interface call code are bonded to obtain a programming interface file of the customized remote communication interface.

[0104]

[0108] Optionally, when the conversion module 52 generates the intermediate code based on the IDL file, it is specifically configured to: perform lexical analysis on the IDL file according to the data object definition rules and method call definition rules in the IDL semantic specification information to obtain a lexical tree; and re-express the data object information and grammatical structure information expressed in the lexical tree according to the semantic specification information of the target language to obtain the intermediate code.

[0105]

[0109] Optionally, before performing lexical analysis on the IDL file, the conversion module 52 is further configured to: perform syntax detection on the IDL file according to the syntax rules in the IDL semantic specification information; and output syntax error prompt information when there is a syntax error in the IDL file, so that relevant personnel can correct the IDL file.

[0106]

[0110] Optionally, the interface implementation module 53 is specifically used to: parse out the remote call method implemented in the initial code that has an interface call relationship with the SDK based on the interface call code; and implement the remote call method using the multi-channel data transmission capability provided by the SDK to obtain the target code.

[0107]

[0111] Optionally, the interface implementation module 53 utilizes the multi-channel data transmission capability provided by the SDK to implement the remote call method to obtain the target code, which is specifically used to: utilize the end-cloud connection main channel establishment capability provided by the SDK to implement the end-cloud connection sub-method in the remote call method to achieve end-cloud connection; utilize the channel virtualization capability provided by the SDK to implement the data channel creation sub-method in the remote call method to achieve customized data channel; utilize the data encapsulation, transmission and transparency capabilities provided by the SDK to implement the data transmission sub-method in the remote call method to achieve data transmission based on customized data channel.

[0108]

[0112] Optionally, the remote communication interface generating device is further used to: respond to the application's call to the customized remote communication interface, and use the SDK to perform end-to-end cloud communication based on the cloud desktop transmission protocol; wherein, the downlink communication process in the end-to-end cloud communication includes: data packet splitting processing, encapsulation for data packet merging, channel selection, protocol encapsulation and data packet sending; the uplink communication process in the end-to-end cloud communication includes: data packet reception, protocol decapsulation, channel determination, decapsulation for data packet merging and data packet merging processing.

[0109]

[0113] Optionally, the remote call related methods implemented in the initial code also include: a method for monitoring the remote call request initiated by the other end and completing the response, and a method for detecting and handling abnormal conditions during the remote call process.

[0110]

[0114] For the implementation of each step in the device embodiment, please refer to the relevant description of the above embodiment, which will not be repeated here.

[0111]

[0115] The technical solution provided by the embodiments of the present disclosure introduces an interface description language (IDL) into the implementation of the remote communication interface between the end-cloud applications. By converting the IDL file describing the remote communication interface into a programming interface file in a target language, and then using the SDK package of the cloud desktop transmission protocol as a technical foundation, the remote call method in the programming interface file in the target language is implemented to obtain the remote communication interface between the end-cloud applications. Introducing IDL into the remote communication interface implementation allows developers to only write IDL files without having to pay attention to internal implementation details, which can greatly reduce the workload of developers and improve the development efficiency of the remote communication interface. In addition, based on the conversion of IDL files and the SDK package of the cloud desktop transmission protocol as a technical foundation, the communication protocol between the end-cloud can be customized on demand, which can adapt to the communication needs of different scenarios.

[0112] It should be noted that the execution entity of each step of the method provided in the above embodiment may be the same device, or the method may be executed by different devices. For example, the execution entity of steps 101 to 103 may be device A; for another example, the execution entity of steps 101 and 102 may be device A, and the execution entity of step 103 may be device B; and so on.

[0113]

[0117] In addition, some of the processes described in the above embodiments and accompanying drawings include multiple operations that appear in a specific order. However, it should be understood that these operations may not be executed in the order in which they appear herein or may be executed in parallel. Operation sequence numbers such as 101, 102, etc. are merely used to distinguish between different operations, and the sequence numbers themselves do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed in sequence or in parallel. It should be noted that the terms "first" and "second" herein are used to distinguish different messages, devices, modules, etc., and do not represent a sequential order, nor do they limit "first" and "second" to different types.

[0114]

[0118] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this disclosure are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and corresponding operation portals are provided for users to choose to authorize or refuse.

[0115]

[0119] FIG6 is a schematic diagram of the structure of an electronic device provided in an embodiment of the present disclosure. As shown in FIG6, the electronic device includes: a memory 61 and a processor 62.

[0116]

[0120] The memory 61 is used to store computer programs and can be configured to store various other data to support operations on the computing platform. Examples of such data include instructions for any application or method operating on the computing platform, contact data, phone book data, messages, pictures, videos, etc.

[0117]

[0121] The memory 61 can be implemented by any type of volatile or non-volatile memory device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read only memory (EEPROM), erasable programmable read only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.

[0118]

[0122] The processor 62 is coupled to the memory 61 and is used to execute the computer program in the memory 61 to perform the steps in the remote communication interface generation method.

[0119]

[0123] Optionally, as shown in FIG6 , the electronic device further includes other components such as a communication component 63, a display 64, a power supply component 65, and an audio component 66. FIG6 only schematically illustrates some components, which does not mean that the electronic device only includes the components shown in FIG6 . In addition, the components within the dashed box in FIG6 are optional components, not mandatory components, and the specific components depend on the product form of the electronic device. The electronic device of this embodiment can be implemented as a terminal device such as a desktop computer, a laptop computer, a smartphone, or an IoT (Internet of Things) device, or as a server-side device such as a conventional server, a cloud server, or a server array. If the electronic device of this embodiment is implemented as a terminal device such as a desktop computer, a laptop computer, or a smartphone, it may include the components within the dashed box in FIG6 ; if the electronic device of this embodiment is implemented as a server-side device such as a conventional server, a cloud server, or a server array, it may not include the components within the dashed box in FIG6 .

[0120]

[0124] For the detailed implementation process of the processor executing each action, please refer to the relevant description in the aforementioned method embodiment or device embodiment, which will not be repeated here.

[0121]

[0125] Accordingly, an embodiment of the present disclosure further provides a computer-readable storage medium storing a computer program, which, when executed, can implement the steps that can be performed by the electronic device in the above method embodiment.

[0122]

[0126] Accordingly, an embodiment of the present disclosure further provides a computer program product, including a computer program / instruction. When the computer program / instruction is executed by a processor, the processor is enabled to implement the steps in the above method embodiment that can be performed by an electronic device.

[0123]

[0127] The communication component is configured to facilitate wired or wireless communication between the device where the communication component is located and other devices. The device where the communication component is located can access a wireless network based on a communication standard, such as WiFi (Wireless Fidelity), 2G (2nd Generation), 3G (3rd Generation), 4G (4th Generation) / LTE (Long Term Evolution), 5G (5th Generation), and other mobile communication networks, or a combination thereof. In an exemplary embodiment, the communication component receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component further includes a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module may be based on Radio Frequency Identification (RFID) technology, Infrared Data Association (IrDA) technology, Ultra Wide Band (UWB) technology, Bluetooth

[0124] (Bluetooth, BT) technology and other technologies to achieve.

[0125]

[0128] The display includes a screen, which may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive input signals from a user. The touch panel includes one or more touch sensors to sense touch, slide, and gestures on the touch panel. The touch sensor may not only sense the boundary of a touch or slide action, but also detect the duration and pressure associated with the touch or slide action.

[0126]

[0129] The power supply assembly provides power to various components of the device in which the power supply assembly is located. The power supply assembly may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device in which the power supply assembly is located.

[0127]

[0130] The above-mentioned audio component can be configured to output and / or input audio signals. For example, the audio component includes a microphone (MIC), and when the device where the audio component is located is in an operating mode, such as a call mode, a recording mode, and a voice recognition mode, the microphone is configured to receive an external audio signal. The received audio signal can be further stored in a memory or sent via a communication component. In some embodiments, the audio component also includes a speaker for outputting the audio signal.

[0128]

[0131] Those skilled in the art will appreciate that the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present disclosure may take the form of a computer program product implemented on one or more computer-readable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0132] The present disclosure is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present disclosure. It should be understood that each process and / or block in the flowcharts and / or block diagrams, as well as combinations of processes and / or blocks in the flowcharts and / or block diagrams, may be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device produce a device for implementing the functions specified in one or more processes in the flowchart and / or one or more blocks in the block diagram.

[0129]

[0133] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device that implements the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.

[0130]

[0134] These computer program instructions may also be loaded onto a computer or other programmable data processing device so that a series of operating steps are performed on the computer or other programmable device to produce computer-implemented processing, whereby the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.

[0131]

[0135] In a typical configuration, a computing device includes one or more processors (Central Processing Unit, CPU), input / output interface, network interface and memory.

[0132]

[0136] Memory may include non-permanent memory in a computer-readable medium, in the form of random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.

[0133] Computer readable media include permanent and non-permanent, removable and non-removable media can be implemented by any method or technology to store information. Information can be a computer readable instruction, a data structure, a module or other data of a program. The example of the storage medium of a computer includes, but is not limited to phase change memory (Phase Change RAM, PRAM), static random access memory (Static Random- Access Memory, SRAM), dynamic random access memory (Dynamic Random Access Memory, DRAM), other types of random access memory (Random Access Memory, RAM), read-only memory (Read Only Memory, ROM), electrically erasable programmable read-only memory (Electrically-Erasable Programmable Read-Only Memory, EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (Digital versatile disc, DVD) or other optical storage, magnetic cassette, magnetic tape disk storage or other magnetic storage device or any other non-transmission medium, can be used for storing information that can be accessed by a computing device. As defined herein, computer-readable media does not include transitory media such as modulated data signals and carrier waves.

[0134]

[0138] It should also be noted that the terms "comprise," "include," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, commodity, or device comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, commodity, or device. In the absence of further limitations, an element defined by the phrase "comprising a" does not exclude the presence of other identical elements in the process, method, commodity, or device comprising the element.

[0135] The above description is merely an embodiment of the present disclosure and is not intended to limit the present disclosure. It will be apparent to those skilled in the art that various modifications and variations may be made to the present disclosure. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present disclosure shall be included within the scope of the claims of the present disclosure.

Claims

Claims 1. A method for generating a remote communication interface, comprising: Generate IDL text for describing the customized remote communication interface used for end-cloud communication based on the semantic specification information of the interface description language IDL; Converting the IDL file into a programming interface file in a target language, where the target language is a programming language for developing applications that perform end-to-cloud communication based on the customized remote communication interface; A software development kit SDK based on the cloud desktop transmission protocol implements the remote call related methods in the programming interface file to obtain the target code of the customized remote communication interface.

2. The method according to claim 1, further comprising: Jointly compiling the target code of the customized remote communication interface with the SDK of the cloud desktop transmission protocol to obtain compiled code of the customized remote communication interface; The compiled code of the customized remote communication interface is added to a link library as a library function, so that an application calls the library function of the customized remote communication interface to perform end-cloud communication based on the cloud desktop transmission protocol.

3. The method according to claim 1, wherein: Based on the interface description language IDL semantic specification information, an IDL text is generated for describing the customized remote communication interface used for end-cloud communication, including: based on the grammatical rules and data object definition rules in the IDL semantic specification information, generating data object information required by the customized remote communication interface; based on the method call definition rules in the IDL semantic specification information, generating description information of the remote call-related methods required by the customized remote communication interface; based on the data object information and the description information of the remote call-related methods, generating an IDL file for describing the customized remote communication interface.

4. The method according to any one of claims 1 to 3, wherein: Converting the IDL file into a programming interface file in a target language includes: generating intermediate code based on the IDL file, the intermediate code including: initial code of the customized remote communication interface implemented in the target language, glue code, and interface call code for the SDK of the cloud desktop transmission protocol; gluing the initial code and the interface call code according to the code gluing logic described by the glue code to obtain the programming interface file of the customized remote communication interface.

5. The method according to claim 4, wherein: Generating intermediate code according to the IDL file includes: according to the data object definition rules and method call definition rules in the IDL semantic specification information, Perform lexical analysis on the IDL file to obtain a lexical tree; According to the semantic specification information of the target language, the data object information and grammatical structure information expressed by the lexical tree are re-expressed to obtain the intermediate code.

6. The method according to claim 5, wherein: Before performing lexical analysis on the IDL file, the method further includes: performing syntax checking on the IDL file according to the syntax rules in the IDL semantic specification information; and outputting syntax error prompt information when there is a syntax error in the IDL file, so that relevant personnel can correct the IDL file.

7. The method according to claim 4, wherein: A software development kit (SDK) based on the cloud desktop transmission protocol implements remote call-related methods in the programming interface file to obtain target code for the customized remote communication interface, including: parsing, based on the interface call code, remote call methods implemented in the initial code that have an interface call relationship with the SDK; and implementing the remote call methods using the multi-channel data transmission capability provided by the SDK to obtain the target code.

8. The method according to claim 7, wherein: The remote call method is implemented using the multi-channel data pollination capability provided by the SDK to obtain the target code, including: utilizing the end-cloud connection main channel establishment capability provided by the SDK to implement the end-cloud connection sub-method in the remote call method to achieve end-cloud connection; utilizing the channel virtualization capability provided by the SDK to implement the data channel creation sub-method in the remote call method to achieve customized data channels; and utilizing the data encapsulation, transmission, and transparency capabilities provided by the SDK to implement the data transmission sub-method in the remote call method to achieve data transmission based on the customized data channel.

9. The method according to claim 8, further comprising: In response to an application calling the customized remote communication interface, the SDK is used to perform end-to-end cloud communication based on the cloud desktop transmission protocol; wherein the downlink communication process in the end-to-end cloud communication includes: data packet splitting processing, encapsulation for data packet merging, channel selection, protocol encapsulation, and data packet sending; and the uplink communication process in the end-to-end cloud communication includes: data packet reception, protocol decapsulation, channel determination, decapsulation for data packet merging, and data packet merging processing.

10. The method according to claim 7, wherein: The remote call related methods implemented in the initial code also include: a method for monitoring the remote call request initiated by the other end and completing the response, and a method for A method for detecting and handling abnormal conditions in a process.

11. A remote communication interface generation system, wherein: include: Customization layer, interface conversion layer, interface implementation layer and cloud desktop protocol layer; The customization layer is used to generate an IDL text for describing the customized remote communication interface used for end-cloud communication based on the interface description language IDL semantic specification information provided by the interface conversion layer; the interface conversion layer is used to convert the IDL file into a programming interface file in a target language, where the target language is a programming language for developing applications that perform end-cloud communication based on the customized remote communication interface; the interface implementation layer is used to implement the remote call-related methods in the programming interface file based on the software development kit SDK of the cloud desktop transmission protocol to obtain the target code of the customized remote communication interface; the cloud desktop protocol layer is used to provide the SDK of the cloud desktop protocol and the data transmission capabilities provided by the SDK to the interface implementation layer.

12. An electronic device, comprising: A memory and a processor; wherein the memory is used to store a computer program, and the processor is coupled to the memory and is used to execute the computer program to implement the steps in the method according to any one of claims 1 to 10.

13. A computer-readable storage medium storing a computer program, wherein: When the computer program is executed by a processor, the processor is enabled to implement the steps of the method according to any one of claims 1 to 10.

14. A computer program product comprising a computer program / instructions, wherein: When the computer program / instructions are executed by a processor, the processor is enabled to implement the steps of the method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Method and System to develop operating system agnostic software applications for mobile devices using a virtual machine

    US20140143763A1

  • Runtime generation of application programming interfaces for remote procedure call services

    US20170302729A1