Data interaction method, system and device, electronic equipment and storage medium

By setting up a mapping relationship between interfaces and functional modules between the client and the cloud rendering end, and using proxy objects to create a session channel, a simplified information interaction process is achieved, which solves the problem of complex information interaction in the existing technology and improves the interaction efficiency.

CN120658891APending Publication Date: 2025-09-16TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410291274.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-03-13
Publication Date
2025-09-16

AI Technical Summary

Technical Problem

In the existing technology, information interaction between the client and the cloud rendering end is relatively difficult, requiring developers to manually write JSON interaction information, resulting in high complexity.

Method used

By pre-setting the mapping relationship between the interface identifier and the functional module identifier, the client call instruction is received, the functional module in the target interface is called, rendering information is generated, and a session channel is created through the proxy object to realize information interaction between the client and the cloud rendering end.

Benefits of technology

It reduces the difficulty of information interaction between the client and the cloud rendering end, simplifies the development process, and improves the efficiency of information interaction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120658891A_ABST
    Figure CN120658891A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data interaction method and device, electronic equipment and a storage medium, and relates to the technical field of Internet. The embodiment of the invention can be applied to the map field. The method comprises the following steps: receiving a calling instruction which is input by a client and aims at a functional module in at least one application interface; determining a target interface identifier corresponding to the calling instruction based on a mapping relationship between the interface identifier and a function module identifier, and calling a function module in a corresponding target interface; receiving rendering related parameters input by the client, creating a corresponding function module instance based on the rendering related parameters and the function code information, and generating to-be-rendered information; creating a proxy object for realizing information interaction between the client and the cloud rendering end through the functional module instance; and creating a session channel based on the proxy object, and sending the to-be-rendered message to the cloud rendering end through the session channel. The information interaction difficulty between the client and cloud rendering can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of Internet technology. Specifically, the present application relates to a data interaction method, system, device, electronic device and storage medium. Background Art

[0002] Cloud rendering is a form of cloud computing technology and an important development direction of 3D (three dimensional) visualization in recent years. Cloud rendering refers to the loading and rendering of 3D data on a GPU (graphics processing unit) server in the cloud, and then the client obtains the 3D rendering results in the cloud by accessing the video stream. The advantage of cloud rendering technology is that since the cloud rendering end has stronger rendering capabilities than the client, it can complete massive, high-quality 3D rendering that the client cannot complete, and the 3D model data does not need to be sent to the client, making the model storage more secure. Due to the many advantages of cloud rendering, the development and application of cloud rendering technology in recent years have been very rapid, and it is widely used in various fields.

[0003] Currently, when the client interacts with the cloud rendering end, developers need to directly write JSON (a lightweight data exchange format) interaction information themselves, and interact with the cloud rendering end through JSON interaction information, which makes information interaction more difficult. Summary of the Invention

[0004] The purpose of the embodiments of the present application is to provide a data interaction method, device, and electronic device. The technical solutions provided by the present disclosure are as follows:

[0005] In one aspect, an embodiment of the present application provides a method for data interaction, the method comprising:

[0006] Receiving a call instruction input by a client for a functional module in at least one application interface; the call instruction carries at least one functional module identifier;

[0007] Based on the mapping relationship between the interface identifier and the function module identifier, the target interface identifier corresponding to the call instruction is determined, and the function module in the corresponding target interface is called; the function code information in the function module is used to render the corresponding object to be rendered; the function code information includes a code information template and rendering-related parameters to be supplemented;

[0008] Receive rendering-related parameters input by the client, create corresponding function module instances based on the rendering-related parameters and function code information, and generate information to be rendered;

[0009] Create a proxy object for information exchange between the client and the cloud rendering end through the function module instance; create a session channel based on the proxy object, and send the rendering message to the cloud rendering end through the session channel;

[0010] Receive the response message returned by the cloud rendering end through the session channel and return the response message to the client.

[0011] In some possible implementations, creating a session channel based on the proxy object and sending the to-be-rendered message to the cloud rendering end through the session channel includes:

[0012] Create a session manager object through the proxy object and add the proxy object to the preset proxy manager object;

[0013] Establish a session channel between the client and the cloud rendering end through the session manager object;

[0014] The proxy manager object sends the information to be rendered from the session channel to the cloud rendering end.

[0015] In some possible implementations, establishing a session channel between the client and the cloud rendering end through a session manager object includes:

[0016] Establish a video session channel and a non-video session channel with the cloud rendering end through the session manager object;

[0017] The proxy manager object sends the rendering information from the session channel to the cloud rendering end, including:

[0018] Sending the information to be rendered to the message processor through the proxy manager object, and generating the first screen data and the first non-screen message based on the information to be rendered through the message processor;

[0019] The first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel.

[0020] In some possible implementations, transmitting the first non-screen message to the cloud rendering end through the non-screen session channel includes:

[0021] determining a total data volume of the first non-picture message;

[0022] Determine the data transfer capacity that can be transferred in a single time through the non-screen conversation channel;

[0023] If the total data volume is greater than the data transmission capacity, the first non-picture message is packetized based on the total data volume and the data transmission capacity to obtain at least two message data packets;

[0024] At least two message data packets are transmitted to the cloud rendering end through the non-screen session channel.

[0025] In some possible implementations, the first non-picture message is packetized based on the total data volume and the data transmission capacity to obtain at least two message data packets, including:

[0026] Determining the maximum data volume of a single message data packet based on the data transmission capacity and the first data volume; the first data volume is the data volume of the data packet header to be added to each message data packet;

[0027] The first non-picture message is divided into packets based on the total data volume and the maximum data volume of a single message data packet to obtain at least two message data packets.

[0028] In some possible implementations, transmitting the first non-screen message to the cloud rendering end through the non-screen session channel further includes:

[0029] For each message data packet, a corresponding data packet header is added; the data volume of the data packet header is the first data volume; the data packet header of each data packet is used to indicate the splicing order between each message data packet.

[0030] In some possible implementations, the message processor includes a message encapsulator and a message sender;

[0031] Sending the information to be rendered to the message processor through the proxy manager object, and generating the first screen data and the first non-screen message based on the information to be rendered through the message processor, including:

[0032] The proxy manager object sends the information to be rendered to the message encapsulator, which converts the information to be rendered into a message format corresponding to the cloud rendering end.

[0033] The converted information to be rendered is divided into first screen data and first non-screen message through a message sender.

[0034] In some possible implementations, the message processor further includes a message receiver;

[0035] Receive the response message returned by the cloud rendering end through the session channel and return the response message to the client, including:

[0036] Receive, through the message receiver, a response message returned by the cloud rendering end through the session channel, and divide the response message into the second screen data and the second non-screen message;

[0037] Transmitting the second screen data to the message processor through the screen session channel, and transmitting the second non-screen message to the message processor through the non-screen session channel;

[0038] Converting the second screen data and the second non-screen message into an event form corresponding to the client through the message processor, and sending the second screen data and the second non-screen message in the event form to the event storage;

[0039] If an event receiving instruction is received from the client, the second screen data and the second non-screen message in the event format are sent to the client via the event storage.

[0040] In some possible implementations, the non-screen conversation channel includes an output channel and a receiving channel;

[0041] Transmitting the first non-screen message to the cloud rendering end through the non-screen session channel includes:

[0042] Transmitting the first non-image message to the cloud rendering end through the output channel;

[0043] Transmitting the second non-screen message to the message processor through the non-screen session channel includes:

[0044] The second non-screen message is transmitted to the message processor through the receiving channel.

[0045] In some possible implementations, the calling instruction further includes an object identifier and information to be verified; and before creating a session channel based on the proxy object, the following steps are further included:

[0046] Querying the standard verification information corresponding to the object identifier, and verifying the information to be verified based on the standard verification information;

[0047] Create a session channel based on the proxy object, including:

[0048] If the verification information passes, a session channel is created based on the proxy object.

[0049] On the other hand, an embodiment of the present application provides a data interaction system, which includes an application interface layer, a logic interface layer, and a communication layer; wherein,

[0050] The application interface layer is used to receive a call instruction input by a client for a functional module in at least one application interface; the call instruction carries at least one functional module identifier; based on the mapping relationship between the interface identifier and the functional module identifier, the target interface identifier corresponding to the call instruction is determined, and the functional module in the corresponding target interface is called; the function code information in the functional module is used to render the corresponding object to be rendered; the function code information includes a code information template and rendering-related parameters to be supplemented; receiving the rendering-related parameters input by the client, creating a corresponding functional module instance based on the rendering-related parameters and the function code information, and generating information to be rendered; creating a proxy object in the logical interface layer for realizing information interaction between the client and the cloud rendering end through the function module instance;

[0051] The logical interface layer is used to create session channels based on proxy objects;

[0052] The communication layer is used to send rendering messages to the cloud rendering end through the session channel; receive response messages returned by the cloud rendering end through the session channel, and return the response messages to the client.

[0053] In some possible implementations, the system further includes a control management layer;

[0054] The logic interface layer is also used to create a session manager object in the control management layer through the proxy object, and add the proxy object to the proxy manager object preset in the control management layer;

[0055] The control management layer is used to establish a session channel between the client and the cloud rendering end through the session manager object; and send the information to be rendered to the communication layer through the proxy manager object, so that the communication layer sends the information to be rendered to the cloud rendering end through the session channel.

[0056] In some possible implementations, the control management layer is used to establish a session channel between the client and the cloud rendering end through a session manager object, specifically to:

[0057] Use the session manager object to establish a picture session channel and a non-picture session channel with the cloud rendering end.

[0058] The control management layer is used to send the information to be rendered from the session channel to the cloud rendering end through the proxy manager object. Specifically, it is used to:

[0059] Sending the information to be rendered to the message processor through the proxy manager object, and generating the first screen data and the first non-screen message based on the information to be rendered through the message processor;

[0060] The first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel.

[0061] In some possible implementations, the communication layer further includes a large data packetization module. The process of the large data packetization module packetizing the first non-screen message includes:

[0062] determining a total data volume of the first non-picture message;

[0063] Determine the data transfer capacity that can be transferred in a single time through the non-screen conversation channel;

[0064] If the total data volume is greater than the data transmission capacity, the first non-picture message is packetized based on the total data volume and the data transmission capacity to obtain at least two message data packets;

[0065] At least two message data packets are transmitted to the cloud rendering end through the non-screen session channel.

[0066] In some possible implementations, when the big data subpacketization module subpackets the first non-screen message based on the total data volume and the data transmission capacity to obtain at least two message data packets, it is specifically configured to:

[0067] Determining the maximum data volume of a single message data packet based on the data transmission capacity and the first data volume; the first data volume is the data volume of the data packet header to be added to each message data packet;

[0068] The first non-picture message is divided into packets based on the total data volume and the maximum data volume of a single message data packet to obtain at least two message data packets.

[0069] In some possible implementations, after transmitting the first non-screen message to the cloud rendering end through the non-screen session channel, the big data subpackaging module is further configured to:

[0070] For each message data packet, a corresponding data packet header is added; the data volume of the data packet header is the first data volume; the data packet header of each data packet is used to indicate the splicing order between each message data packet.

[0071] In some possible implementations, the proxy manager object in the control management layer sends the information to be rendered to the message processor, and when the message processor generates the first screen data and the first non-screen message based on the information to be rendered, it is specifically used to:

[0072] The proxy manager object sends the information to be rendered to the message encapsulator, which converts the information to be rendered into a message format corresponding to the cloud rendering end.

[0073] The converted information to be rendered is divided into first screen data and first non-screen message through a message sender.

[0074] In some possible implementations, when the communication layer receives a response message returned by the cloud rendering end through the session channel and returns the response message to the client, it is specifically configured to:

[0075] Receive, through the message receiver, a response message returned by the cloud rendering end through the session channel, and divide the response message into the second screen data and the second non-screen message;

[0076] Transmitting the second screen data to the message processor through the screen session channel, and transmitting the second non-screen message to the message processor through the non-screen session channel;

[0077] Converting the second screen data and the second non-screen message into an event form corresponding to the client through the message processor, and sending the second screen data and the second non-screen message in the event form to the event storage;

[0078] If an event receiving instruction is received from the client, the second screen data and the second non-screen message in the event format are sent to the client via the event storage.

[0079] In some possible implementations, the non-screen conversation channel includes an output channel and a receiving channel;

[0080] Transmitting the first non-screen message to the cloud rendering end through the non-screen session channel includes:

[0081] Transmitting the first non-image message to the cloud rendering end through the output channel;

[0082] Transmitting the second non-screen message to the message processor through the non-screen session channel includes:

[0083] The second non-screen message is transmitted to the message processor through the receiving channel.

[0084] In some possible implementations, the control management layer further includes an authentication module, and the call instruction further includes an object identifier and information to be verified; the authentication module is used to:

[0085] Querying the standard verification information corresponding to the object identifier, and verifying the information to be verified based on the standard verification information;

[0086] Create a session channel based on the proxy object, including:

[0087] If the verification information passes, a session channel is created based on the proxy object.

[0088] The information to be verified may include a user name and password.

[0089] On the other hand, an embodiment of the present application provides a data interaction device, the device comprising:

[0090] A first receiving module is configured to receive a call instruction inputted by a client for a functional module in at least one application interface; the call instruction carries at least one functional module identifier;

[0091] The calling module is used to determine the target interface identifier corresponding to the calling instruction based on the mapping relationship between the interface identifier and the function module identifier, and call the function module in the corresponding target interface; the function code information in the function module is used to render the corresponding object to be rendered; the function code information includes a code information template and rendering-related parameters to be supplemented;

[0092] The second receiving module is used to receive rendering-related parameters input by the client, create a corresponding function module instance based on the rendering-related parameters and function code information, and generate information to be rendered;

[0093] A creation module is used to create a proxy object for implementing information exchange between the client and the cloud rendering end through the function module instance; a session channel is created based on the proxy object, and the message to be rendered is sent to the cloud rendering end through the session channel;

[0094] The third receiving module is used to receive the response message returned by the cloud rendering end through the session channel and return the response message to the client.

[0095] In some possible implementations, when the creation module creates a session channel based on the proxy object and sends the to-be-rendered message to the cloud rendering end through the session channel, it is specifically configured to:

[0096] Create a session manager object through the proxy object and add the proxy object to the preset proxy manager object;

[0097] Establish a session channel between the client and the cloud rendering end through the session manager object;

[0098] The proxy manager object sends the information to be rendered from the session channel to the cloud rendering end.

[0099] In some possible implementations, when establishing a session channel between the client and the cloud rendering end through the session manager object, the creation module is specifically configured to:

[0100] Establish a video session channel and a non-video session channel with the cloud rendering end through the session manager object;

[0101] When creating a module, the proxy manager object is used to send the information to be rendered from the session channel to the cloud rendering end. Specifically, it is used to:

[0102] Sending the information to be rendered to the message processor through the proxy manager object, and generating the first screen data and the first non-screen message based on the information to be rendered through the message processor;

[0103] The first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel.

[0104] In some possible implementations, when the creation module transmits the first non-screen message to the cloud rendering end through the non-screen session channel, it is specifically configured to:

[0105] determining a total data volume of the first non-picture message;

[0106] Determine the data transfer capacity that can be transferred in a single time through the non-screen conversation channel;

[0107] If the total data volume is greater than the data transmission capacity, the first non-picture message is packetized based on the total data volume and the data transmission capacity to obtain at least two message data packets;

[0108] At least two message data packets are transmitted to the cloud rendering end through the non-screen session channel.

[0109] In some possible implementations, when the creation module divides the first non-picture message into packets based on the total data volume and the data transmission capacity to obtain at least two message data packets, the creation module is specifically configured to:

[0110] Determining the maximum data volume of a single message data packet based on the data transmission capacity and the first data volume; the first data volume is the data volume of the data packet header to be added to each message data packet;

[0111] The first non-picture message is divided into packets based on the total data volume and the maximum data volume of a single message data packet to obtain at least two message data packets.

[0112] In some possible implementations, when the creation module transmits the first non-screen message to the cloud rendering end through the non-screen session channel, it is further configured to:

[0113] For each message data packet, a corresponding data packet header is added; the data volume of the data packet header is the first data volume; the data packet header of each data packet is used to indicate the splicing order between each message data packet.

[0114] In some possible implementations, the message processor includes a message encapsulator and a message sender;

[0115] The creation module sends the information to be rendered to the message processor through the proxy manager object, and generates the first screen data and the first non-screen message based on the information to be rendered through the message processor, specifically for:

[0116] The proxy manager object sends the information to be rendered to the message encapsulator, which converts the information to be rendered into a message format corresponding to the cloud rendering end.

[0117] The converted information to be rendered is divided into first screen data and first non-screen message through a message sender.

[0118] In some possible implementations, the message processor further includes a message receiver;

[0119] The third receiving module receives the response message returned by the cloud rendering end through the session channel and returns the response message to the client, specifically for:

[0120] Receive, through the message receiver, a response message returned by the cloud rendering end through the session channel, and divide the response message into the second screen data and the second non-screen message;

[0121] Transmitting the second screen data to the message processor through the screen session channel, and transmitting the second non-screen message to the message processor through the non-screen session channel;

[0122] Converting the second screen data and the second non-screen message into an event form corresponding to the client through the message processor, and sending the second screen data and the second non-screen message in the event form to the event storage;

[0123] If an event receiving instruction is received from the client, the second screen data and the second non-screen message in the event format are sent to the client via the event storage.

[0124] In some possible implementations, the non-screen conversation channel includes an output channel and a receiving channel;

[0125] When the creation module transmits the first non-screen message to the cloud rendering end through the non-screen session channel, it is specifically used to:

[0126] Transmitting the first non-image message to the cloud rendering end through the output channel;

[0127] When the third receiving module transmits the second non-picture message to the message processor through the non-picture conversation channel, the third receiving module is specifically configured to:

[0128] The second non-screen message is transmitted to the message processor through the receiving channel.

[0129] In some possible implementations, the calling instruction further includes an object identifier and information to be verified; and before creating a session channel based on the proxy object, the following steps are further included:

[0130] Querying the standard verification information corresponding to the object identifier, and verifying the information to be verified based on the standard verification information;

[0131] Create a session channel based on the proxy object, including:

[0132] If the verification information passes, a session channel is created based on the proxy object.

[0133] On the other hand, an embodiment of the present application further provides an electronic device, which includes a memory and a processor, wherein a computer program is stored in the memory, and the processor executes the computer program to implement the method provided in any optional embodiment of the present application.

[0134] On the other hand, an embodiment of the present application further provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, it implements the method provided in any optional embodiment of the present application.

[0135] On the other hand, an embodiment of the present application further provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, it implements the method provided in any optional embodiment of the present application.

[0136] The beneficial effects of the technical solution provided by the embodiments of the present application are as follows:

[0137] By presetting a mapping relationship between interface identifiers and function module identifiers, when a call instruction for a function module in at least one application interface is received from a client, the corresponding target interface is called, and the function module in the target interface is called. The corresponding function module instance is created using the rendering-related parameters and function code information entered by the client, and the information to be rendered is generated. A proxy object is created from the function module instance to implement information exchange between the client and the cloud rendering end. A session channel is created based on the proxy object, and the information to be rendered is sent to the cloud rendering end through the session channel. The client only needs to use the application interface to achieve communication and interaction with the cloud rendering end, which can effectively reduce the difficulty of information exchange. BRIEF DESCRIPTION OF THE DRAWINGS

[0138] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for describing the embodiments of the present application.

[0139] Figure 1 A schematic diagram of an application environment for a data interaction method provided in an example;

[0140] Figure 2 A schematic diagram of the structure of a data interaction system provided in an embodiment of the present application;

[0141] Figure 3 A schematic diagram of the structure of a data interaction system provided in an embodiment of the present application;

[0142] Figure 4 A schematic diagram of the structure of a data interaction system provided in an embodiment of the present application;

[0143] Figure 5 A schematic diagram of the structure of a data interaction system provided in an embodiment of the present application;

[0144] Figure 6 A schematic diagram of the structure of a data interaction system provided in an embodiment of the present application;

[0145] Figure 7A schematic diagram of the structure of a data interaction system provided in an embodiment of the present application;

[0146] Figure 8 A flowchart of a data interaction method provided as an example of this application;

[0147] Figure 9 A flowchart of a data interaction method provided in an embodiment of the present application;

[0148] Figure 10 A schematic diagram of the structure of a data interaction device provided in an embodiment of the present application;

[0149] Figure 11 A schematic structural diagram of an electronic device applicable to an embodiment of the present application. DETAILED DESCRIPTION

[0150] The following describes the embodiments of the present application in conjunction with the accompanying drawings. It should be understood that the embodiments described below in conjunction with the accompanying drawings are exemplary descriptions for explaining the technical solutions of the embodiments of the present application and do not constitute a limitation on the technical solutions of the embodiments of the present application.

[0151] Those skilled in the art will understand that, unless otherwise stated, the singular forms "a", "an", "said", and "the" used herein may also include plural forms. It should be further understood that the terms "including" and "comprising" used in the embodiments of the present application mean that the corresponding features can be implemented as the presented features, information, data, steps, operations, elements, and / or components, but do not exclude implementation as other features, information, data, steps, operations, elements, components, and / or combinations thereof supported by the present technical field. It should be understood that when we say that an element is "connected" or "coupled" to another element, the element can be directly connected or coupled to the other element, or it can refer to the element and the other element establishing a connection relationship through an intermediate element. In addition, the "connection" or "coupling" used here can include wireless connection or wireless coupling. The term "and / or" used here indicates at least one of the items defined by the term, for example, "A and / or B" can be implemented as "A", or as "B", or as "A and B". When describing multiple (two or more) items, if the relationship between the multiple items is not clearly defined, the multiple items may refer to one, multiple or all of the multiple items. For example, the description of "parameter A includes A1, A2, A3" can be implemented as parameter A including A1 or A2 or A3, and can also be implemented as parameter A including at least two of the three items A1, A2, and A3.

[0152] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program that has a predetermined function and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.

[0153] In order to better illustrate and understand the solutions provided by the embodiments of the present application, some relevant technical terms involved in the embodiments of the present application are first introduced:

[0154] Cloud rendering: Cloud rendering is a technology that distributes computationally intensive graphics rendering tasks to cloud servers for processing. Cloud rendering improves rendering speed and quality while reducing the computational burden on the client. Cloud rendering is commonly used in game development, film and television production, architectural design, and other fields.

[0155] WebSocket (a communication protocol): WebSocket is a bidirectional communication protocol based on TCP. It can establish a persistent connection between web applications and servers and enable real-time data transmission. WebSocket can replace the traditional HTTP (Hypertext Transfer Protocol) request-response model, significantly improving the real-time performance and usability of web applications.

[0156] WebRTC (Web Real-Time Communications): WebRTC is a real-time communication protocol based on web technologies. It enables real-time communication features such as audio and video calls, file sharing, and screen sharing within web browsers. WebRTC runs directly within the browser without requiring any plugins or software, offering advantages such as cross-platform support, ease of use, and security.

[0157] Unreal Engine (UE) is a popular game engine used to develop high-quality 3D games, virtual reality, and augmented reality applications. UE features powerful graphics rendering, physics simulation, and animation systems, significantly simplifying the game development process.

[0158] JSON: JSON is a lightweight data exchange format that uses an easy-to-read and write text format for data exchange between different programming languages. The JSON format supports basic data types, arrays, objects, and other data structures. It offers good readability and scalability, making it a commonly used data format in web applications.

[0159] Map object: A Map object is a data structure in JavaScript (a programming language) that can store key-value pairs, where the key can be any type of value. Map objects can be used to add key-value pairs, retrieve the value corresponding to a key, and detect whether a specified key exists. Map objects can be used to store and manipulate complex data structures such as trees and graphs.

[0160] Engines for digital twins usually need to render large scenes and have high hardware requirements. The UE plug-in mode is only applicable to local situations. If the user's local hardware conditions do not allow it, this solution is not available. The messages communicated with cloud rendering are organized in JSON format. This solution requires users to directly write JSON interaction information themselves, which is relatively abstract and difficult to understand and use.

[0161] The UE digital twin engine of this invention serves as an intermediate interaction layer between users and the cloud rendering engine. It aims to expose the UE interface in JavaScript and web form, reducing the complexity of engine applications and improving user development efficiency. Furthermore, this invention separates image and data interaction channels for message maintenance and provides a large data subcontracting protocol, solving the single-time large data transmission problem often encountered in digital twin applications.

[0162] The data interaction method of the present application can be implemented based on cloud technology.

[0163] Cloud technology refers to a hosting technology that unifies hardware, software, network and other resources within a wide area network or local area network to achieve data computing, storage, processing and sharing.

[0164] Cloud technology is a general term for network technologies, information technologies, integration technologies, management platform technologies, and application technologies based on the cloud computing business model. It can form a resource pool that can be used flexibly and conveniently on demand. Cloud computing technology will become a crucial support. Backend services for technical network systems, such as video websites, image websites, and more portals, require extensive computing and storage resources. With the rapid development and application of the internet industry, every item will likely have its own unique identifier, requiring transmission to backend systems for logical processing. Different levels of data will be processed separately, and data from various industries will require a strong system backend, which can only be achieved through cloud computing.

[0165] Cloud computing is a computing model that distributes computing tasks across a resource pool consisting of a large number of computers, enabling various application systems to access computing power, storage space, and information services as needed. The network that provides these resources is called the "cloud." To users, these resources appear infinitely scalable and can be accessed at any time, used on demand, expanded at any time, and paid for on a per-use basis.

[0166] As a provider of cloud computing infrastructure, a cloud computing resource pool (referred to as a cloud platform, generally referred to as an IaaS (Infrastructure as a Service) platform) is established. Various types of virtual resources are deployed in the resource pool for external customers to choose and use. The cloud computing resource pool mainly includes: computing devices (virtualized machines, including operating systems), storage devices, and network devices.

[0167] Based on logical functional divisions, the PaaS (Platform as a Service) layer can be deployed on top of the IaaS (Infrastructure as a Service) layer, and the SaaS (Software as a Service) layer can be deployed on top of the PaaS layer. SaaS can also be deployed directly on top of IaaS. PaaS is a platform for software execution, such as databases and web containers. SaaS is a variety of business software, such as web portals and text messaging tools. Generally speaking, SaaS and PaaS are upper layers relative to IaaS.

[0168] The solutions provided in the embodiments of the present application involve technologies such as data interaction with cloud technology, which are specifically illustrated by the following embodiments.

[0169] The following describes several optional embodiments to illustrate the technical solutions provided by this application and the technical effects produced by the technical solutions of this application. It should be noted that the following embodiments can refer to, draw on, or combine with each other, and the same terms, similar features, and similar implementation steps in different embodiments will not be repeated.

[0170] In the specific implementation of this application, any object-related data, such as the data involved in the call instructions input by the client, rendering-related parameters, etc., when the embodiments of this application are applied to specific products or technologies, requires the permission or consent of the object, and the collection, use and processing of the relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions. In other words, if any of the above-mentioned object-related data is involved in the embodiments of this application, this data must be obtained with the authorization and consent of the object and in compliance with the relevant laws, regulations and standards of the country and region.

[0171] The data interaction method provided in the embodiment of the present application can be executed by any computer device, and optionally, can be executed by a server, wherein the server can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing cloud computing services.

[0172] Figure 1 Schematic diagram of an application environment for a data interaction method provided in an embodiment of the present application. The application environment may include a terminal 101, a cloud rendering server 102, and a data interaction system 103. The data interaction system 103 receives a call instruction input by a client for a function module in at least one application interface; the call instruction carries at least one function module identifier; based on a mapping relationship between the interface identifier and the function module identifier, the target interface identifier corresponding to the call instruction is determined, and the function module in the corresponding target interface is called; the function code information in the function module is used to render the corresponding object to be rendered; the function code information includes a code information template and rendering-related parameters to be supplemented; the rendering-related parameters input by the client are received, and a corresponding function module instance is created based on the rendering-related parameters and the function code information, and information to be rendered is generated; the data interaction system 103 creates a proxy object for implementing information interaction between the client and the cloud rendering end through the function module instance; a session channel is created based on the proxy object, and the message to be rendered is sent to the cloud rendering end through the session channel; the data interaction system 103 receives a response message returned by the cloud rendering end through the session channel, and returns the response message to the client.

[0173] In the above application scenarios, the data interaction system is independent of the terminal and cloud rendering server. In other application scenarios, the data interaction system can be integrated into the terminal.

[0174] Those skilled in the art will appreciate that a server may be an independent physical server, or a server cluster or distributed system consisting of multiple physical servers, or a cloud server or server cluster that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms. The terminal may be a smartphone (such as an Android phone, an iOS phone, etc.), a tablet computer, a laptop computer, a digital broadcast receiver, a MID (Mobile Internet Devices), a PDA (Personal Digital Assistant), a desktop computer, a smart home appliance, a vehicle-mounted terminal (such as a vehicle-mounted navigation terminal, a vehicle-mounted computer, etc.), a smart speaker, a smart watch, etc. The terminal and the server may be directly or indirectly connected via wired or wireless communication, but are not limited thereto. The embodiments of the present invention may be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving, etc. The specific requirements may also be determined based on the actual application scenario and are not limited here.

[0175] The terminal (also referred to as a user terminal or user device) can be a smartphone, tablet computer, laptop computer, desktop computer, intelligent voice interaction device (such as a smart speaker), wearable electronic device (such as a smart watch), vehicle-mounted terminal, smart home appliance (such as a smart TV), AR / VR device, aircraft, etc., but is not limited to these. The embodiments of the present invention can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving, etc.

[0176] In order to more clearly explain the data interaction method of the present application, the architecture of the data interaction system is first explained in detail below.

[0177] In some possible implementations, a data interaction system is provided, such as Figure 2 As shown, the system includes an application interface layer, a logic interface layer and a communication layer; wherein,

[0178] The application interface layer is used to receive a call instruction input by a client for a functional module in at least one application interface; the call instruction carries at least one functional module identifier; based on the mapping relationship between the interface identifier and the functional module identifier, the target interface identifier corresponding to the call instruction is determined, and the functional module in the corresponding target interface is called; the function code information in the functional module is used to render the corresponding object to be rendered; the function code information includes a code information template and rendering-related parameters to be supplemented; receiving the rendering-related parameters input by the client, creating a corresponding functional module instance based on the rendering-related parameters and the function code information, and generating information to be rendered; creating a proxy object in the logical interface layer for realizing information interaction between the client and the cloud rendering end through the function module instance;

[0179] The logical interface layer is used to create session channels based on proxy objects;

[0180] The communication layer is used to send rendering messages to the cloud rendering end through the session channel; receive response messages returned by the cloud rendering end through the session channel, and return the response messages to the client.

[0181] Among them, the application interface layer can include multiple application interfaces, namely business interfaces, such as the Track Manager (traffic management) class, the Skyline Analysis (skyline analysis) class, etc. Each application interface encapsulates a corresponding functional module. The functional code information in the functional module can include the class and the methods associated with the class; the functional module identifier in the calling instruction input by the client can include the class name, that is, the user can create their instances and use the corresponding functions through the new method.

[0182] Specifically, the logic interface layer provides the application interface layer with event sending and receiving capabilities and a proxy object proxyObject. The event sending and receiving capabilities will be further elaborated below.

[0183] The communication layer organizes user parameters and actions into a format understandable to the cloud rendering client and transmits them to the cloud through an established session. It also receives rendered images and messages from the cloud, which are then passed to the interface layer and exposed to the user as events.

[0184] In the aforementioned data interaction system, a mapping relationship between interface identifiers and function module identifiers is pre-set in each application interface of the application interface layer. When the application interface layer receives a call instruction from a client for a function module in at least one application interface, it calls the corresponding target interface and the function module in the corresponding target interface. The corresponding function module instance is created using the rendering-related parameters and function code information input by the client, and information to be rendered is generated. A proxy object for information exchange between the client and the cloud rendering end is created in the logical interface layer using the function module instance. A session channel is created in the logical interface layer based on the proxy object. A session channel is created in the communication layer using the proxy object, and the communication layer sends the message to be rendered to the cloud rendering end via the session channel. The client only needs to use the application interface to communicate with the cloud rendering end, effectively reducing the difficulty of information exchange.

[0185] In some possible implementations, such as Figure 3 As shown, the system also includes a control management layer, which includes a proxy manager object (Proxy Manager) and a session manager object (Session Manager).

[0186] In the embodiment of the present application, the proxy manager object may also be referred to as proxy management; the session manager object may also be referred to as session management.

[0187] The logic interface layer is also used to create a session manager object in the control management layer through the proxy object, and add the proxy object to the proxy manager object preset in the control management layer;

[0188] The control management layer is used to establish a session channel between the client and the cloud rendering end through the session manager object; and send the information to be rendered to the communication layer through the proxy manager object, so that the communication layer sends the information to be rendered to the cloud rendering end through the session channel.

[0189] Specifically, the communication layer includes a session and a message processor, and the message processor includes uiMessage (custom message encapsulation).

[0190] In the specific implementation process, you can use mixin (multiple inheritance) to instantiate the proxy object and use the proxy object's methods, including: exec (a method for starting another program execution in a process), link (connection), unlink (disconnection), destroy Proxy (deletion of the proxy object), etc. At the same time as the mixin, the proxy manager's add method will be called to record the interface class as a proxy object, identified by the Class ID.

[0191] During implementation, a class encapsulated in an application interface can have multiple class instances, each of which corresponds to a unique identifier, namely, a Class ID. The Proxy Manager maintains a Map object whose key is the Class ID and whose value is a proxy object, i.e., a specific interface class. When the link method is executed, it retrieves the corresponding proxy object through the Class ID and records the current Link ID on the class. The Session Manager maintains a Map object whose key is the Link ID and whose value is the Session object. The existence of the Session Manager class enables the system to create multiple different types of session instances, providing scalability for subsequent needs.

[0192] In some possible implementations, the control management layer is used to establish a session channel between the client and the cloud rendering end through a session manager object, specifically to:

[0193] Use the session manager object to establish a picture session channel and a non-picture session channel with the cloud rendering end.

[0194] The control management layer is used to send the information to be rendered from the session channel to the cloud rendering end through the proxy manager object. Specifically, it is used to:

[0195] Sending the information to be rendered to the message processor through the proxy manager object, and generating the first screen data and the first non-screen message based on the information to be rendered through the message processor;

[0196] The first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel.

[0197] The picture conversation channel can be used to transmit picture messages of the video stream; the non-picture conversation channel can be used to transmit non-picture messages.

[0198] Specifically, the screen session channel may include a Web RTC Player channel, and the non-screen session channel may include a Web Socket channel.

[0199] like Figure 4As shown, the message processor of the communication layer also includes a message transmitter (emitter) and a message receiver (receiver); after the proxy management sends the message to be rendered to uiMessage, uiMessage generates the first screen data and the first non-screen message based on the information to be rendered; uiMessage sends the first screen data and the first non-screen message to the message transmitter, and the message transmitter sends them to the cloud rendering end through the screen session channel (i.e., Web RTC Player, RTC communication in the figure); the message transmitter sends the first non-screen message to the cloud rendering end through the non-screen session channel (i.e., Web Socket, i.e., two-way communication in the figure).

[0200] In the above embodiment, by transmitting the first screen data and the first non-screen message through different channels, the first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel, which improves the message mixing situation and makes the system easier to troubleshoot and maintain.

[0201] Specifically, uiMessage is responsible for delivering interface messages. Interface classes involve many businesses and often involve big data information interaction in twin application scenarios, such as vehicle marking information in traffic scenarios and heat map data.

[0202] Specifically, the maximum single transmission data of WebSocket is 8k, so this application subpackages large data exceeding 8k.

[0203] In some possible implementations, the communication layer also includes a big data subpackaging module, such as Figure 5 As shown, it also includes the big data subpackaging in the figure.

[0204] Specifically, the big data subpackaging module is used to subpacketize non-picture messages. It can be understood that the non-picture messages here include not only the first non-picture message sent to the cloud rendering end, but also the second non-picture message returned by the cloud rendering end.

[0205] That is to say, the messages transmitted by the non-screen session channel, that is, the Web Socket in the figure, can be sub-packetized before being sent to the non-screen session channel.

[0206] In a specific implementation process, the process of the big data subpackaging module subpackaging the first non-screen message may include:

[0207] (1) determining the total data size of the first non-picture message;

[0208] (2) Determine the data transfer capacity that can be transferred in a single time through the non-screen conversation channel;

[0209] (3) if the total data volume is greater than the data transfer capacity, packetizing the first non-screen message based on the total data volume and the data transfer capacity to obtain at least two message data packets;

[0210] (4) Transmit at least two message data packets to the cloud rendering end through the non-screen session channel.

[0211] The data transmission capacity of the non-screen session channel that can be transmitted at one time is the data transmission capacity of the Web Socket.

[0212] The first non-picture message is divided into packets based on the total data volume and the data transmission capacity to obtain at least two message data packets, and the maximum data volume of each message data packet is less than or equal to the data transmission capacity that can be transmitted in a single time by the non-picture conversation channel.

[0213] Specifically, the first non-screen message is divided into packets based on the total data volume and the data transmission capacity to obtain at least two message data packets, which may include:

[0214] Determining the maximum data volume of a single message data packet based on the data transmission capacity and the first data volume; the first data volume is the data volume of the data packet header to be added to each message data packet;

[0215] The first non-picture message is divided into packets based on the total data volume and the maximum data volume of a single message data packet to obtain at least two message data packets.

[0216] Specifically, the following formula can be used for calculation:

[0217]

[0218] Among them, total is the total number of packets after subpacketization; msg_len represents the total amount of data; max_tracns_data is the data transmission capacity that can be transmitted in a single time on the current channel; slice_head is the amount of data in the packet header to be added; and CEIL is a method of rounding up to an integer.

[0219] In some possible implementations, after transmitting the first non-screen message to the cloud rendering end through the non-screen session channel, the big data subpackaging module is further configured to:

[0220] For each message data packet, a corresponding data packet header is added; the data volume of the data packet header is the first data volume; the data packet header of each data packet is used to indicate the splicing order between each message data packet.

[0221] Specifically, the packet header includes total, uuid (Universally Unique Identifier), and index information. The total indicates the total number of packets; the uuid is a unique identifier generated during packet subdivision; subpackets of the same data have the same uuid; and the index indicates the order of the current subpacket.

[0222] In the specific implementation process, after the big data packet is divided into packets and a header is added to each message data packet, when the cloud rendering end receives each message data packet, the message data packets are spliced ​​together according to the uuid and index in the packet header of each message data packet to obtain the transmitted first non-picture message.

[0223] In the above embodiment, by subpacketizing the non-picture message transmitted by the non-picture conversation channel, the data transmission limitation caused by the data transmission capacity of the non-picture conversation channel can be effectively solved, and the data volume of the transmitted non-picture message can be increased.

[0224] In some possible implementations, the proxy manager object in the control management layer sends the information to be rendered to the message processor, and when the message processor generates the first screen data and the first non-screen message based on the information to be rendered, it is specifically used to:

[0225] The proxy manager object sends the information to be rendered to the message encapsulator, which converts the information to be rendered into a message format corresponding to the cloud rendering end.

[0226] The converted information to be rendered is divided into first screen data and first non-screen message through a message sender.

[0227] That is, uiMessage can convert the information to be rendered into a format that can be understood by the cloud rendering end; then the message sender divides the converted information to be rendered into the first screen data and the first non-screen message.

[0228] It is understandable that when the cloud rendering end returns a message, the returned message can also be converted into a format that the client can understand through uiMessage.

[0229] In some possible implementations, when the communication layer receives a response message returned by the cloud rendering end through the session channel and returns the response message to the client, it is specifically configured to:

[0230] Receive, through the message receiver, a response message returned by the cloud rendering end through the session channel, and divide the response message into the second screen data and the second non-screen message;

[0231] Transmitting the second screen data to the message processor through the screen session channel, and transmitting the second non-screen message to the message processor through the non-screen session channel;

[0232] Converting the second screen data and the second non-screen message into an event form corresponding to the client through the message processor, and sending the second screen data and the second non-screen message in the event form to the event storage;

[0233] If an event receiving instruction is received from the client, the second screen data and the second non-screen message in the event format are sent to the client via the event storage.

[0234] In the specific implementation process, the logic interface layer also provides the application interface layer with event sending and receiving capabilities, such as Figure 5 As shown, the logical interface layer also includes an event memory, that is, the event in the figure. When the client chooses to receive the event, the event message returned by the cloud rendering end is exposed to the client.

[0235] In some possible implementations, such as Figure 6 As shown, the non-picture conversation channel includes an output channel and a receiving channel;

[0236] Transmitting the first non-screen message to the cloud rendering end through the non-screen session channel includes:

[0237] Transmitting the first non-image message to the cloud rendering end through the output channel;

[0238] Transmitting the second non-screen message to the message processor through the non-screen session channel includes:

[0239] The second non-screen message is transmitted to the message processor through the receiving channel.

[0240] That is to say, the first non-picture message sent by the client to the cloud rendering end and the second non-picture message returned by the cloud rendering end to the client are also transmitted through different non-picture channels.

[0241] In the above embodiment, by further transmitting the first non-image message sent by the client to the cloud rendering end and the second non-image message returned by the cloud rendering end to the client through different channels, the message transmission can be further divided, making the system easier to troubleshoot and maintain.

[0242] In some possible implementations, such as Figure 7 As shown, the control management layer also includes an authentication module, namely the authentication shown in the figure; the call instruction also includes an object identifier and information to be verified; the authentication module is used to:

[0243] Querying the standard verification information corresponding to the object identifier, and verifying the information to be verified based on the standard verification information;

[0244] Create a session channel based on the proxy object, including:

[0245] If the verification information passes, a session channel is created based on the proxy object.

[0246] The information to be verified may include a user name and password.

[0247] Specifically, it can verify whether the password corresponding to the username is correct, and further verify whether the password is within the validity period. If the verification is successful, a session channel can be created; if the verification fails, the user will be informed of the reason for the error in the form of an event, such as token (secret key) expiration, incorrect username or password, etc.

[0248] like Figure 8 As shown, in one example, the overall interaction method will be described below in combination with the above-mentioned interaction system structure.

[0249] The application interface layer receives a call instruction input by a client for a functional module in at least one application interface; the application interface layer includes multiple application interfaces, namely the initialization interface (init interface), interface 1, interface 2, interface 3, and destroy interface shown in the figure;

[0250] Receive rendering-related parameters input by the client, create a corresponding function module instance based on the rendering-related parameters and function code information, and generate information to be rendered; use the function module instance to create a proxy object for information exchange between the client and the cloud rendering end; in this example, the application interface layer instantiates the proxy object through mixin and uses the proxy object's methods, including: exec, link, unlink, destroyProxy, etc.; at the same time as the mixin, the proxy manager's add method is called to record the interface class as a proxy object (proxy object), identified by the Class ID; when the application interface is initialized (i.e., the init interface in the figure), the linkTo method is called, whose function is to create a connection, which is identified by the link ID (connection identifier); the unlink method is used to disconnect the connection; the destroyProxy method also removes the proxy object from the proxy manager when disconnecting the connection; exec is the execution method, which passes the current function name (func), parameters (param), and callback (callback) to uiMessage. After receiving the corresponding data, uiMessage retrieves the session corresponding to the link ID through the Session Manager, then calls the senduiMessage method of that session to interact with the cloud through the Web Socket channel (talk). The interaction processing layer monitors keyboard and mouse events, window changes, and mobile touch events. When an event occurs, it first retrieves the session corresponding to the linkID through the Session Manager, then calls the sendControlMessage method of that session to interact with the cloud through the Web RTC Player channel (play).

[0251] A proxy object for implementing information interaction between the client and the cloud rendering end is created through a functional module instance; a session manager object is created through the proxy object, and the proxy object is added to the preset proxy manager object; in this example, the Proxy Manager maintains a Map object whose key is the Class ID and whose value is the proxy Object, that is, a certain interface class. When the link method is executed, the corresponding proxyObject will be obtained through the Class ID, and the Link ID at this time will be recorded on the class. Based on this, the Proxy Manager also provides a get Link Id method, whose parameter is a Class ID, and the return value is the Link ID of the proxy Object corresponding to the Class ID; the Session Manager maintains a Map object, whose key is the link ID and the value is the session object. The existence of the session management class allows the system to create multiple different types of session instances, providing scalability for subsequent needs. The present invention only describes the implementation of a dual-channel socket session type for data and images. The initialization method of the canvas container in the application interface layer executes the add method of the Session Manager, which creates a Session instance, identifies it with a link ID, and records it in the Map object maintained by the Session Manager.

[0252] Query the standard verification information corresponding to the object identifier, and verify the information to be verified based on the standard verification information; if the verification information is passed, create a session channel based on the proxy object. In this example, authentication is performed when the initialization screen container (Canvas) method of the application interface layer is executed. In other words, the user uses the interface parameters to pass in the username and password or token (secret key); the link ID corresponding to the session is obtained through the session manager. If the user passes in the username and password, the get Token (get secret key) method of the session will be called first. This method will request the back-end interface to verify the correctness of the username and password, and return a token (secret key) with a certain validity period, and then call the connect (connect) method of the session to create a session;

[0253] The information to be rendered is sent to the message encapsulator (uiMessage) through the proxy manager object (Proxy Manager), and the message encapsulator converts the information to be rendered into a message format corresponding to the cloud rendering end; the message sender divides the converted information to be rendered into first screen data and first non-screen message; the message receiver receives the response message returned by the cloud rendering end through the session channel, and divides the response message into second screen data and second non-screen message; the second screen data is transmitted to the message processor through the screen session channel, and the second non-screen message is transmitted to the message processor through the non-screen session channel; the message processor converts the second screen data and the second non-screen message into an event form corresponding to the client, and sends the second screen data and the second non-screen message in the event form to the event storage; if an event reception instruction is received from the client, the second screen data and the second non-screen message in the event form are sent to the client through the event storage; in this example, uiMessage is responsible for sending and receiving interface class messages. The ProxyObject provides the contract (creation) and execute methods for sending class construction (creating a new interface class) and execution messages (executing an interface method). Different message types are distinguished by a type field. The message also includes the executed method name (func), the incoming parameters (param), and the callback function. Both the contract and execute methods call a private send method, which uses the caller's Class ID to find the corresponding Link ID in the Proxy Manager. This Link ID then finds the corresponding Session in the Session Manager, and then calls the corresponding session's sendUIMessage method to send the message to the cloud.

[0254] uiMessage also provides a receive method for the session to call when receiving a cloud message. Similarly, cloud messages will also use the type field to distinguish message types, including callback (execution callback function), event (event), etc. The cloud will return the Class ID. Receive uses this Class ID to query the proxy manager, obtain the corresponding proxy class (interface class instance) and execute the onEvent method of the proxy class, thereby executing the user callback function or exposing the event to the user.

[0255] The above-mentioned data interaction system pre-sets a mapping relationship between interface identifiers and function module identifiers in each application interface of the application interface layer. When the application interface layer receives a call instruction from a client for a function module in at least one application interface, it calls the corresponding target interface and the function module in the corresponding target interface. It creates a corresponding function module instance based on the rendering-related parameters and function code information input by the client, generates information to be rendered, and creates a proxy object in the logical interface layer for realizing information exchange between the client and the cloud rendering end through the function module instance. The logical interface layer creates a session channel based on the proxy object. The proxy object creates a session channel in the communication layer, and the communication layer sends the message to be rendered to the cloud rendering end through the session channel. The client only needs to face the application interface to realize communication interaction with the cloud rendering end, which can effectively reduce the difficulty of information interaction.

[0256] Furthermore, by transmitting the first screen data and the first non-screen message through separate channels, the first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel, which improves the message mixing situation and makes the system easier to troubleshoot and maintain.

[0257] Furthermore, by subpacketizing the non-picture messages transmitted by the non-picture conversation channel, the data transmission limitation caused by the data transmission capacity of the non-picture conversation channel can be effectively solved, and the data volume of the transmitted non-picture messages can be increased.

[0258] Furthermore, by further transmitting the first non-image message sent by the client to the cloud rendering end and the second non-image message returned by the cloud rendering end to the client through different channels, the message transmission can be further divided, making the system easier to troubleshoot and maintain.

[0259] In some possible implementations, a data interaction method is provided, which can be executed by any electronic device such as a server or a terminal.

[0260] Figure 9 The following is a flow chart of a data interaction method provided in an embodiment of the present application. Taking the execution subject as a data interaction system as an example, the data interaction method provided in the present application may include the following steps:

[0261] Step S901: receiving a call instruction input by a client for a functional module in at least one application interface.

[0262] The calling instruction carries at least one functional module identifier.

[0263] Specifically, the application interface may encapsulate function code information of the function module, and the function code information may include classes and class-related methods.

[0264] The application interface may be a business interface, for example, a Track Manager class, a Skyline Analysis class, etc. Users may create instances of these classes and use corresponding functions through the new method.

[0265] Step S902: Based on the mapping relationship between the interface identifier and the functional module identifier, determine the target interface identifier corresponding to the calling instruction, and call the functional module in the corresponding target interface.

[0266] The function code information in the function module is used to render the corresponding object to be rendered; the function code information includes a code information template and rendering-related parameters to be supplemented.

[0267] In the specific implementation process, the mapping relationship between the interface identifier of each application interface and the functional module identifier of the encapsulated functional module is preset, that is, it is known in advance what classes and methods are encapsulated in each application interface.

[0268] Step S903: receiving rendering related parameters input by the client, creating a corresponding function module instance based on the rendering related parameters and function code information, and generating information to be rendered.

[0269] Specifically, the function code information includes a class, which receives rendering-related parameters input by the client, combines the user's newly created class, creates an instance of the class, and generates information to be rendered.

[0270] The information to be rendered includes information about the called class and method, and rendering-related parameters.

[0271] For example, when a user writes "new Map", it is equivalent to calling the Map constructor through the data interaction system. After proxy / message management, this action becomes {class: 'Map', id: 'xxx', function: 'new', param: {....}}, which includes which classes are called, the identifier of the class instantiation, and the rendering-related parameters entered by the user.

[0272] Step S904: Create a proxy object for implementing information interaction between the client and the cloud rendering end through the function module instance; create a session channel based on the proxy object, and send the to-be-rendered message to the cloud rendering end through the session channel.

[0273] Specifically, a proxy object is created through a class instance, and a session manager object is created through the proxy object, which can also be called session management. The proxy object is then added to the proxy manager object, which can also be called proxy management. A session channel is created through the session manager object, and then the proxy manager object sends the message to be rendered to the communication layer. The communication layer sends the message to be rendered to the cloud rendering end through the session channel. The specific process of creating a session channel and sending the message to be rendered will be further explained in detail below.

[0274] Step S905: Receive a response message returned by the cloud rendering end through the session channel, and return the response message to the client.

[0275] Specifically, the cloud rendering end returns a response message through the session channel, and the communication layer processes the response message into an event format. If the client chooses to receive events, the response message in the event format can be sent to the client.

[0276] In the above embodiment, by presetting a mapping relationship between interface identifiers and function module identifiers, when a call instruction for a function module in at least one application interface is received from a client, the corresponding target interface is called, and the function module in the corresponding target interface is called. The corresponding function module instance is created using the rendering-related parameters and function code information input by the client, and the information to be rendered is generated. A proxy object is created through the function module instance to implement information exchange between the client and the cloud rendering end. A session channel is created based on the proxy object, and the information to be rendered is sent to the cloud rendering end through the session channel. The client only needs to face the application interface to achieve communication and interaction with the cloud rendering end, which can effectively reduce the difficulty of information exchange.

[0277] In some possible implementations, step S204 creates a session channel based on the proxy object and sends the to-be-rendered message to the cloud rendering end through the session channel, which may include:

[0278] (1) Create a session manager object through the proxy object and add the proxy object to the preset proxy manager object;

[0279] (2) Establish a session channel between the client and the cloud rendering end through the session manager object;

[0280] (3) The information to be rendered is sent to the cloud rendering end through the session channel through the proxy manager object.

[0281] Specifically, you can instantiate proxy objects through mixin (multiple inheritance) and use proxy object methods, including: exec (a method for starting another program execution in a process), link (connection), unlink (disconnection), destroyProxy (destroy proxy object), etc. At the same time as the mixin, the proxy manager's add method will be called to record the interface class as a proxy object, identified by the Class ID.

[0282] During implementation, a class encapsulated in an application interface can have multiple class instances, each of which corresponds to a unique identifier, namely, a Class ID. The Proxy Manager maintains a Map object whose key is the Class ID and whose value is a proxy object, i.e., a specific interface class. When the link method is executed, it retrieves the corresponding proxy object through the Class ID and records the current Link ID on the class. The Session Manager maintains a Map object whose key is the Link ID and whose value is the Session object. The existence of the Session Manager class enables the system to create multiple different types of session instances, providing scalability for subsequent needs.

[0283] In some possible implementations, establishing a session channel between the client and the cloud rendering end through a session manager object may include:

[0284] Use the session manager object to establish a picture session channel and a non-picture session channel with the cloud rendering end.

[0285] The picture conversation channel can be used to transmit picture messages of the video stream; the non-picture conversation channel can be used to transmit non-picture messages.

[0286] The proxy manager object sends the rendering information from the session channel to the cloud rendering end, including:

[0287] Sending the information to be rendered to the message processor through the proxy manager object, and generating the first screen data and the first non-screen message based on the information to be rendered through the message processor;

[0288] The first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel.

[0289] Specifically, the screen session channel may include a Web RTC Player channel, and the non-screen session channel may include a Web Socket channel.

[0290] Specifically, after the proxy management sends the message to be rendered to uiMessage, uiMessage generates the first screen data and the first non-screen message based on the information to be rendered; uiMessage sends the first screen data and the first non-screen message to the message sender, and the message sender sends them to the cloud rendering end through the screen session channel; the message sender sends the first non-screen message to the cloud rendering end through the non-screen session channel.

[0291] In the above embodiment, by transmitting the first screen data and the first non-screen message through different channels, the first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel, which improves the message mixing situation and makes the system easier to troubleshoot and maintain.

[0292] In some possible implementations, transmitting the first non-screen message to the cloud rendering end through the non-screen session channel includes:

[0293] (1) determining the total data size of the first non-picture message;

[0294] (2) Determine the data transfer capacity that can be transferred in a single time through the non-screen conversation channel;

[0295] (3) if the total data volume is greater than the data transfer capacity, packetizing the first non-screen message based on the total data volume and the data transfer capacity to obtain at least two message data packets;

[0296] (4) Transmit at least two message data packets to the cloud rendering end through the non-screen session channel.

[0297] The first non-picture message is divided into packets based on the total data volume and the data transmission capacity to obtain at least two message data packets, and the maximum data volume of each message data packet is less than or equal to the data transmission capacity that can be transmitted in a single time by the non-picture conversation channel.

[0298] Specifically, the first non-screen message is packetized based on the total data volume and the data transmission capacity to obtain at least two message data packets, including:

[0299] Determining the maximum data volume of a single message data packet based on the data transmission capacity and the first data volume; the first data volume is the data volume of the data packet header to be added to each message data packet;

[0300] The first non-picture message is divided into packets based on the total data volume and the maximum data volume of a single message data packet to obtain at least two message data packets.

[0301] The specific subcontracting method can be performed according to the above formula (1), which will not be described in detail here.

[0302] In some possible implementations, transmitting the first non-screen message to the cloud rendering end through the non-screen session channel further includes:

[0303] For each message data packet, a corresponding data packet header is added; the data volume of the data packet header is the first data volume; the data packet header of each data packet is used to indicate the splicing order between each message data packet.

[0304] Specifically, the packet header includes total, uuid (Universally Unique Identifier), and index information. The total indicates the total number of packets; the uuid is a unique identifier generated during packet subdivision; subpackets of the same data have the same uuid; and the index indicates the order of the current subpacket.

[0305] In the specific implementation process, after the big data packet is divided into packets and a header is added to each message data packet, when the cloud rendering end receives each message data packet, the message data packets are spliced ​​together according to the uuid and index in the packet header of each message data packet to obtain the transmitted first non-picture message.

[0306] In the above embodiment, by subpacketizing the non-picture message transmitted by the non-picture conversation channel, the data transmission limitation caused by the data transmission capacity of the non-picture conversation channel can be effectively solved, and the data volume of the transmitted non-picture message can be increased.

[0307] In some possible implementations, the message processor includes a message encapsulator and a message sender;

[0308] Sending the information to be rendered to the message processor through the proxy manager object, and generating the first screen data and the first non-screen message based on the information to be rendered through the message processor, including:

[0309] The proxy manager object sends the information to be rendered to the message encapsulator, which converts the information to be rendered into a message format corresponding to the cloud rendering end.

[0310] The converted information to be rendered is divided into first screen data and first non-screen message through a message sender.

[0311] That is, uiMessage can convert the information to be rendered into a format that can be understood by the cloud rendering end; then the message sender divides the converted information to be rendered into the first screen data and the first non-screen message.

[0312] It is understandable that when the cloud rendering end returns a message, the returned message can also be converted into a format that the client can understand through uiMessage.

[0313] In some possible implementations, the message processor further includes a message receiver;

[0314] Receive the response message returned by the cloud rendering end through the session channel and return the response message to the client, including:

[0315] Receive, through the message receiver, a response message returned by the cloud rendering end through the session channel, and divide the response message into the second screen data and the second non-screen message;

[0316] Transmitting the second screen data to the message processor through the screen session channel, and transmitting the second non-screen message to the message processor through the non-screen session channel;

[0317] Converting the second screen data and the second non-screen message into an event form corresponding to the client through the message processor, and sending the second screen data and the second non-screen message in the event form to the event storage;

[0318] If an event receiving instruction is received from the client, the second screen data and the second non-screen message in the event format are sent to the client via the event storage.

[0319] Specifically, when the client chooses to receive an event, the event message returned by the cloud rendering end is exposed to the client.

[0320] In some possible implementations, the non-screen conversation channel includes an output channel and a receiving channel;

[0321] Transmitting the first non-screen message to the cloud rendering end through the non-screen session channel includes:

[0322] Transmitting the first non-image message to the cloud rendering end through the output channel;

[0323] Transmitting the second non-screen message to the message processor through the non-screen session channel includes:

[0324] The second non-screen message is transmitted to the message processor through the receiving channel.

[0325] That is to say, the first non-picture message sent by the client to the cloud rendering end and the second non-picture message returned by the cloud rendering end to the client are also transmitted through different non-picture channels.

[0326] In the above embodiment, by further transmitting the first non-image message sent by the client to the cloud rendering end and the second non-image message returned by the cloud rendering end to the client through different channels, the message transmission can be further divided, making the system easier to troubleshoot and maintain.

[0327] In some possible implementations, the calling instruction further includes an object identifier and information to be verified; and before creating a session channel based on the proxy object, the following steps are further included:

[0328] Querying the standard verification information corresponding to the object identifier, and verifying the information to be verified based on the standard verification information;

[0329] Create a session channel based on the proxy object, including:

[0330] If the verification information passes, a session channel is created based on the proxy object.

[0331] Specifically, it can verify whether the password corresponding to the username is correct, and further verify whether the password is within the validity period. If the verification is successful, a session channel can be created; if the verification fails, the user will be informed of the reason for the error in the form of an event, such as key expiration, incorrect username or password, etc.

[0332] The above-mentioned data interaction method pre-sets a mapping relationship between interface identifiers and function module identifiers. When a call instruction for a function module in at least one application interface is received from a client, the corresponding target interface is called, and the function module in the target interface is called. The corresponding function module instance is created based on the rendering-related parameters and function code information entered by the client, and the information to be rendered is generated. A proxy object is created from the function module instance to facilitate information exchange between the client and the cloud rendering server. A session channel is created based on the proxy object, and the information to be rendered is sent to the cloud rendering server via the session channel. The client only needs to interact with the application interface to achieve communication and interaction with the cloud rendering server, which can effectively reduce the difficulty of information exchange.

[0333] Furthermore, by transmitting the first screen data and the first non-screen message through separate channels, the first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel, which improves the message mixing situation and makes the system easier to troubleshoot and maintain.

[0334] Furthermore, by subpacketizing the non-picture messages transmitted by the non-picture conversation channel, the data transmission limitation caused by the data transmission capacity of the non-picture conversation channel can be effectively solved, and the data volume of the transmitted non-picture messages can be increased.

[0335] Furthermore, by further transmitting the first non-image message sent by the client to the cloud rendering end and the second non-image message returned by the cloud rendering end to the client through different channels, the message transmission can be further divided, making the system easier to troubleshoot and maintain.

[0336] like Figure 10As shown, in some possible implementations, a data interaction device is provided, including:

[0337] The first receiving module 1001 is configured to receive a call instruction inputted by a client for a functional module in at least one application interface; the call instruction carries at least one functional module identifier;

[0338] The calling module 1002 is used to determine the target interface identifier corresponding to the calling instruction based on the mapping relationship between the interface identifier and the function module identifier, and call the function module in the corresponding target interface; the function code information in the function module is used to render the corresponding object to be rendered; the function code information includes a code information template and rendering-related parameters to be supplemented;

[0339] The second receiving module 1003 is used to receive rendering related parameters input by the client, create a corresponding function module instance based on the rendering related parameters and function code information, and generate information to be rendered;

[0340] A creation module 1004 is configured to create a proxy object for implementing information exchange between the client and the cloud rendering end through a function module instance; create a session channel based on the proxy object, and send the message to be rendered to the cloud rendering end through the session channel;

[0341] The third receiving module 1005 is configured to receive a response message returned by the cloud rendering end through the session channel, and return the response message to the client.

[0342] In some possible implementations, when the creation module creates a session channel based on the proxy object and sends the to-be-rendered message to the cloud rendering end through the session channel, it is specifically configured to:

[0343] Create a session manager object through the proxy object and add the proxy object to the preset proxy manager object;

[0344] Establish a session channel between the client and the cloud rendering end through the session manager object;

[0345] The proxy manager object sends the information to be rendered from the session channel to the cloud rendering end.

[0346] In some possible implementations, when establishing a session channel between the client and the cloud rendering end through the session manager object, the creation module is specifically configured to:

[0347] Establish a video session channel and a non-video session channel with the cloud rendering end through the session manager object;

[0348] When creating a module, the proxy manager object is used to send the information to be rendered from the session channel to the cloud rendering end. Specifically, it is used to:

[0349] Sending the information to be rendered to the message processor through the proxy manager object, and generating the first screen data and the first non-screen message based on the information to be rendered through the message processor;

[0350] The first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel.

[0351] In some possible implementations, when the creation module transmits the first non-screen message to the cloud rendering end through the non-screen session channel, it is specifically configured to:

[0352] determining a total data volume of the first non-picture message;

[0353] Determine the data transfer capacity that can be transferred in a single time through the non-screen conversation channel;

[0354] If the total data volume is greater than the data transmission capacity, the first non-picture message is packetized based on the total data volume and the data transmission capacity to obtain at least two message data packets;

[0355] At least two message data packets are transmitted to the cloud rendering end through the non-screen session channel.

[0356] In some possible implementations, when the creation module divides the first non-picture message into packets based on the total data volume and the data transmission capacity to obtain at least two message data packets, the creation module is specifically configured to:

[0357] Determining the maximum data volume of a single message data packet based on the data transmission capacity and the first data volume; the first data volume is the data volume of the data packet header to be added to each message data packet;

[0358] The first non-picture message is divided into packets based on the total data volume and the maximum data volume of a single message data packet to obtain at least two message data packets.

[0359] In some possible implementations, when the creation module transmits the first non-screen message to the cloud rendering end through the non-screen session channel, it is further configured to:

[0360] For each message data packet, a corresponding data packet header is added; the data volume of the data packet header is the first data volume; the data packet header of each data packet is used to indicate the splicing order between each message data packet.

[0361] In some possible implementations, the message processor includes a message encapsulator and a message sender;

[0362] The creation module sends the information to be rendered to the message processor through the proxy manager object, and generates the first screen data and the first non-screen message based on the information to be rendered through the message processor, specifically for:

[0363] The proxy manager object sends the information to be rendered to the message encapsulator, which converts the information to be rendered into a message format corresponding to the cloud rendering end.

[0364] The converted information to be rendered is divided into first screen data and first non-screen message through a message sender.

[0365] In some possible implementations, the message processor further includes a message receiver;

[0366] The third receiving module receives the response message returned by the cloud rendering end through the session channel and returns the response message to the client, specifically for:

[0367] Receive, through the message receiver, a response message returned by the cloud rendering end through the session channel, and divide the response message into the second screen data and the second non-screen message;

[0368] Transmitting the second screen data to the message processor through the screen session channel, and transmitting the second non-screen message to the message processor through the non-screen session channel;

[0369] Converting the second screen data and the second non-screen message into an event form corresponding to the client through the message processor, and sending the second screen data and the second non-screen message in the event form to the event storage;

[0370] If an event receiving instruction is received from the client, the second screen data and the second non-screen message in the event format are sent to the client via the event storage.

[0371] In some possible implementations, the non-screen conversation channel includes an output channel and a receiving channel;

[0372] When the creation module transmits the first non-screen message to the cloud rendering end through the non-screen session channel, it is specifically used to:

[0373] Transmitting the first non-image message to the cloud rendering end through the output channel;

[0374] When the third receiving module transmits the second non-picture message to the message processor through the non-picture conversation channel, the third receiving module is specifically configured to:

[0375] The second non-screen message is transmitted to the message processor through the receiving channel.

[0376] In some possible implementations, the calling instruction further includes an object identifier and information to be verified; and before creating a session channel based on the proxy object, the following steps are further included:

[0377] Querying the standard verification information corresponding to the object identifier, and verifying the information to be verified based on the standard verification information;

[0378] Create a session channel based on the proxy object, including:

[0379] If the verification information passes, a session channel is created based on the proxy object.

[0380] The aforementioned data interaction device pre-sets a mapping relationship between interface identifiers and function module identifiers. Upon receiving a call instruction from a client for a function module in at least one application interface, the device calls the corresponding target interface and the function module in the target interface. Using the rendering-related parameters and function code information input by the client, the device creates a corresponding function module instance, generates information to be rendered, and then creates a proxy object from the function module instance to facilitate information exchange between the client and the cloud rendering server. A session channel is then created based on the proxy object, and the message to be rendered is sent to the cloud rendering server via the session channel. The client only needs to interact with the application interface to communicate with the cloud rendering server, effectively reducing the complexity of information exchange.

[0381] Furthermore, by transmitting the first screen data and the first non-screen message through separate channels, the first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel, which improves the message mixing situation and makes the system easier to troubleshoot and maintain.

[0382] Furthermore, by subpacketizing the non-picture messages transmitted by the non-picture conversation channel, the data transmission limitation caused by the data transmission capacity of the non-picture conversation channel can be effectively solved, and the data volume of the transmitted non-picture messages can be increased.

[0383] Furthermore, by further transmitting the first non-image message sent by the client to the cloud rendering end and the second non-image message returned by the cloud rendering end to the client through different channels, the message transmission can be further divided, making the system easier to troubleshoot and maintain.

[0384] The device of the embodiment of the present application can execute the method provided by the embodiment of the present application, and its implementation principle is similar. The actions performed by each module in the device of each embodiment of the present application correspond to the steps in the method of each embodiment of the present application. For the detailed functional description of each module of the device, please refer to the description in the corresponding method shown in the previous text, and will not be repeated here.

[0385] In an embodiment of the present application, an electronic device is provided, including a memory, a processor, and a computer program stored in the memory. When the processor executes the computer program stored in the memory, the method of any optional embodiment of the present application can be implemented. Compared with the prior art, the client only needs to use the application interface to communicate with the cloud rendering, which can effectively reduce the difficulty of information exchange.

[0386] In an alternative embodiment, an electronic device is provided, such as Figure 11 As shown, Figure 11 The electronic device 4000 shown includes: a processor 4001 and a memory 4003. The processor 4001 and the memory 4003 are connected, for example, via a bus 4002. Optionally, the electronic device 4000 may further include a transceiver 4004, which may be used for data exchange between the electronic device and other electronic devices, such as data transmission and / or data reception. It should be noted that in actual applications, the number of transceivers 4004 is not limited to one, and the structure of the electronic device 4000 does not constitute a limitation on the embodiments of the present disclosure.

[0387] Processor 4001 may be a CPU (Central Processing Unit), a general-purpose processor, a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the present disclosure. Processor 4001 may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.

[0388] Bus 4002 may include a path for transmitting information between the above components. Bus 4002 may be a PCI (Peripheral Component Interconnect) bus or an EISA (Extended Industry Standard Architecture) bus. Bus 4002 may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 11 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.

[0389] The memory 4003 can be a ROM (Read Only Memory) or other types of static storage devices that can store static information and instructions, a RAM (Random Access Memory) or other types of dynamic storage devices that can store information and instructions, or an EEPROM (Electrically Erasable Programmable Read Only Memory), a CD-ROM (Compact Disc Read Only Memory) or other optical disk storage, optical disk storage (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media, other magnetic storage devices, or any other medium that can be used to carry or store computer programs and can be read by a computer, without limitation here.

[0390] The memory 4003 is used to store the computer program for executing the embodiments of the present disclosure, and the execution is controlled by the processor 4001. The processor 4001 is used to execute the computer program stored in the memory 4003 to implement the steps shown in the above method embodiments.

[0391] Based on the same principle as the method provided in the embodiment of the present application, the embodiment of the present application provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the corresponding content of the aforementioned method embodiment can be implemented.

[0392] An embodiment of the present application further provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the corresponding content of the aforementioned method embodiment can be implemented.

[0393] It should be noted that the terms "first," "second," "third," "fourth," "1," "2," etc. (if any) in the specification and claims of this application and the accompanying drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that the terms used in this manner are interchangeable where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than that shown or described in the drawings.

[0394] It should be understood that, although each operation step is indicated by arrows in the flowchart of the embodiment of the present application, the order of implementation of these steps is not limited to the order indicated by the arrows. Unless otherwise clearly stated herein, in some implementation scenarios of the embodiment of the present application, the implementation steps in each flowchart can be performed in other orders according to demand. In addition, some or all of the steps in each flowchart can include multiple sub-steps or multiple stages based on actual implementation scenarios. Some or all of these sub-steps or stages can be executed at the same time, and each sub-step or stage in these sub-steps or stages can also be executed at different times respectively. Under different scenarios at the execution time, the execution order of these sub-steps or stages can be flexibly configured according to demand, and the embodiment of the present application does not limit this.

[0395] The above description is only an optional implementation method for some implementation scenarios of this application. It should be pointed out that for ordinary technicians in this technical field, without departing from the technical concept of the solution of this application, the use of other similar implementation methods based on the technical ideas of this application also falls within the protection scope of the embodiments of this application.

Claims

1. A data interaction method, characterized in that: The method comprises: Receiving a call instruction input by a client for a functional module in at least one application interface; the call instruction carries at least one functional module identifier; Based on the mapping relationship between the interface identifier and the function module identifier, determine the target interface identifier corresponding to the call instruction, and call the function module in the corresponding target interface; the function code information in the function module is used to render the corresponding object to be rendered; the function code information includes a code information template and rendering-related parameters to be supplemented; Receive rendering-related parameters input by the client, create a corresponding function module instance based on the rendering-related parameters and the function code information, and generate information to be rendered; Creating a proxy object for implementing information interaction between the client and the cloud rendering end through the functional module instance; creating a session channel based on the proxy object, and sending the to-be-rendered message to the cloud rendering end through the session channel; Receive a response message returned by the cloud rendering end through the session channel, and return the response message to the client.

2. The method according to claim 1, characterized in that The step of creating a session channel based on the proxy object and sending the message to be rendered to the cloud rendering end through the session channel includes: Creating a session manager object through the proxy object, and adding the proxy object to a preset proxy manager object; Establishing a session channel between the client and the cloud rendering end through the session manager object; The to-be-rendered information is sent to the cloud rendering end through the session channel via the proxy manager object.

3. The method according to claim 2, characterized in that The establishing of a session channel between the client and the cloud rendering end through the session manager object includes: Establishing a picture session channel and a non-picture session channel with the cloud rendering end through the session manager object; The sending of the to-be-rendered information via the session channel to the cloud rendering end through the proxy manager object includes: Sending the information to be rendered to a message processor through the proxy manager object, and generating first screen data and a first non-screen message based on the information to be rendered through the message processor; The first screen data is transmitted to the cloud rendering end through the screen session channel, and the first non-screen message is transmitted to the cloud rendering end through the non-screen session channel.

4. The method according to claim 3, characterized in that The transmitting the first non-screen message to the cloud rendering end through the non-screen session channel includes: determining a total data volume of the first non-picture message; Determining a data transmission capacity that can be transmitted in a single time through the non-picture conversation channel; If the total data volume is greater than the data transfer capacity, packetizing the first non-picture message based on the total data volume and the data transfer capacity to obtain at least two message data packets; The at least two message data packets are transmitted to the cloud rendering end through the non-screen session channel.

5. The method according to claim 4, characterized in that The first non-picture message is packetized based on the total data volume and the data transmission capacity to obtain at least two message data packets, including: Determining the maximum data volume of a single message data packet based on the data transfer capacity and a first data volume; the first data volume is the data volume of a data packet header to be added to each message data packet; The first non-picture message is divided into packets based on the total data volume and the maximum data volume of a single message data packet to obtain at least two message data packets.

6. The method according to claim 5, characterized in that The transmitting the first non-screen message to the cloud rendering end through the non-screen session channel further includes: For each message data packet, a corresponding data packet header is added; the data volume of the data packet header is the first data volume; the data packet header of each data packet is used to indicate the splicing order between each message data packet.

7. The method according to claim 3, characterized in that The message processor includes a message encapsulator and a message sender; The sending the information to be rendered to a message processor through the proxy manager object, and generating first screen data and a first non-screen message based on the information to be rendered through the message processor, includes: Sending the information to be rendered to a message encapsulator through the proxy manager object, and converting the information to be rendered into a message format corresponding to the cloud rendering end through the message encapsulator; The converted information to be rendered is divided into the first screen data and the first non-screen message by the message sender.

8. The method according to claim 7, characterized in that The message processor also includes a message receiver; The receiving a response message returned by the cloud rendering end through the session channel, and returning the response message to the client, includes: receiving, by the message receiver, a response message returned by the cloud rendering end through the session channel, and dividing the response message into second screen data and a second non-screen message; transmitting the second screen data to the message processor through the screen session channel, and transmitting the second non-screen message to the message processor through the non-screen session channel; converting the second screen data and the second non-screen message into an event format corresponding to the client by the message processor, and sending the second screen data and the second non-screen message in the event format to the event storage; If an event receiving instruction is received from the client, the second screen data and the second non-screen message in the event format are sent to the client via the event storage.

9. The method according to claim 8, characterized in that The non-picture conversation channel includes an output channel and a receiving channel; The transmitting the first non-screen message to the cloud rendering end through the non-screen session channel includes: Transmitting the first non-screen message to the cloud rendering end through the output channel; The transmitting the second non-screen message to the message processor through the non-screen conversation channel includes: The second non-screen message is transmitted to the message processor through the receiving channel.

10. The method according to claim 1, characterized in that The calling instruction also includes an object identifier and information to be verified; and before creating a session channel based on the proxy object, the method further includes: querying standard verification information corresponding to the object identifier, and verifying the information to be verified based on the standard verification information; The creating a session channel based on the proxy object includes: If the information to be verified passes verification, a session channel is created based on the proxy object.

11. A data interaction system, characterized in that: The system includes an application interface layer, a logic interface layer and a communication layer; wherein, The application interface layer is used to receive a call instruction input by a client for a functional module in at least one application interface; the call instruction carries at least one functional module identifier; based on a mapping relationship between the interface identifier and the functional module identifier, determine the target interface identifier corresponding to the call instruction, and call the functional module in the corresponding target interface; the function code information in the functional module is used to render the corresponding object to be rendered; the function code information includes a code information template and rendering-related parameters to be supplemented; receive the rendering-related parameters input by the client, create a corresponding functional module instance based on the rendering-related parameters and the function code information, and generate information to be rendered; The logic interface layer is used to create a proxy object for realizing information interaction between the client and the cloud rendering end through the function module instance; and create a session channel based on the proxy object; The communication layer is used to send the to-be-rendered message to the cloud rendering end through the session channel; receive a response message returned by the cloud rendering end through the session channel, and return the response message to the client.

12. The method according to claim 11, characterized in that The system also includes a control management layer; The logic interface layer is further configured to create a session manager object in the control management layer through the proxy object, and add the proxy object to a preset proxy manager object in the control management layer; The control management layer is used to establish a session channel between the client and the cloud rendering end through the session manager object; The information to be rendered is sent to the communication layer through the proxy manager object, so that the communication layer sends the information to be rendered to the cloud rendering end through the session channel.

13. A data interaction device, characterized in that: The device comprises: A first receiving module is configured to receive a call instruction inputted by a client for a functional module in at least one application interface; the call instruction carries at least one functional module identifier; A calling module is configured to determine a target interface identifier corresponding to the calling instruction based on a mapping relationship between an interface identifier and a function module identifier, and to call a function module in the corresponding target interface; the function code information in the function module is used to render the corresponding object to be rendered; the function code information includes a code information template and rendering-related parameters to be supplemented; A second receiving module is configured to receive rendering-related parameters input by a client, create a corresponding function module instance based on the rendering-related parameters and the function code information, and generate information to be rendered; A creation module is used to create a proxy object for implementing information interaction between the client and the cloud rendering end through the function module instance; create a session channel based on the proxy object, and send the to-be-rendered message to the cloud rendering end through the session channel; The third receiving module is configured to receive a response message returned by the cloud rendering end through the session channel, and return the response message to the client.

14. An electronic device, characterized in that: The electronic device includes a memory and a processor, wherein a computer program is stored in the memory, and the processor executes the computer program to implement the method according to any one of claims 1 to 10.

15. A computer-readable storage medium, characterized in that The storage medium stores a computer program, which implements the method according to any one of claims 1 to 10 when executed by a processor.

16. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 10 are implemented.