Rendering method, device and system, cloud product rendering method, computing equipment, storage medium and computer program product
By decoupling the computing and rendering processes of virtual terminals between the computing server and the rendering server, and using the target rendering container for remote rendering, the problem of GPU hardware limitations of the computing server is solved, and the number of virtual terminals is increased and rendering resources are efficiently utilized.
Patent Information
- Application Number
- CN202410309178.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-18
- Publication Date
- 2025-09-19
AI Technical Summary
In the prior art, computing servers cannot effectively support the rendering of images of a large number of virtual terminals due to GPU hardware limitations, resulting in a limited number of virtual terminals.
By decoupling the computing and rendering processes of the virtual terminal between the computing server and the rendering server, and using the target rendering container for remote rendering, the virtual terminal's screen rendering is realized, using CPU or GPU resources for rendering, and allocating the appropriate rendering container to the client through resource allocation rules.
The number of virtual terminals that the computing server can provide has been increased, ensuring the accuracy of screen rendering, optimizing the utilization of rendering resources, and reducing the restrictions on the number of virtual terminals caused by hardware limitations.
Smart Images

Figure CN120670061A_ABST
Abstract
Description
Technical Field
[0001] This specification relates to the field of computer technology, and more particularly to three rendering methods. One or more embodiments of this specification also relate to a rendering apparatus, a rendering system, a cloud product rendering method, a computing device, a computer-readable storage medium, and a computer program product. Background Art
[0002] Currently, virtual terminals such as cloud phones and cloud computer desktops all have the need for image rendering.
[0003] The existing rendering technology solution is to use the GPU on the computing server running the virtual terminal to render the screen. However, due to GPU hardware limitations, a GPU can only support the rendering of a limited number of virtual terminals, resulting in a limited number of virtual terminals that can be provided by the computing server. Therefore, a technical solution is urgently needed to solve this technical problem. Summary of the Invention
[0004] In view of this, the embodiments of this specification provide three rendering methods. One or more embodiments of this specification also involve two rendering devices, a rendering system, a cloud product rendering method, a computing device, a computer-readable storage medium, and a computer program product to address technical deficiencies in the prior art.
[0005] According to a first aspect of an embodiment of this specification, a rendering method is provided, which is applied to a computing server, and the method includes:
[0006] receiving a rendering request for a virtual terminal sent by a client, wherein the virtual terminal is created by the computing server in response to the virtual terminal creation request sent by the client, and the rendering request carries data to be rendered for the virtual terminal;
[0007] Sending the rendering request to a rendering server, so that the rendering server renders the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule;
[0008] Receive the rendering result returned by the rendering server, and return the rendering result to the client.
[0009] According to a second aspect of an embodiment of this specification, a rendering method is provided, which is applied to a rendering server, and the method includes:
[0010] Receive a rendering request sent by a computing server, wherein the rendering request is a rendering request sent by a client to a virtual terminal and received by the computing server, and the rendering request carries data to be rendered of the virtual terminal;
[0011] Rendering the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule;
[0012] The rendering result is returned to the computing server, so that the computing server returns the rendering result to the client.
[0013] According to a third aspect of an embodiment of this specification, a rendering system is provided, the rendering system including a client, a computing server, and a rendering server, wherein:
[0014] The client is configured to send a virtual terminal creation request to the computing server;
[0015] The computing server is configured to create a virtual terminal in response to the creation request;
[0016] The client is configured to send a rendering request for the virtual terminal to the computing server, wherein the rendering request carries data to be rendered of the virtual terminal;
[0017] The computing server is configured to receive the rendering request and send the rendering request to the rendering server;
[0018] The rendering server is configured to render the data to be rendered using a target rendering container, obtain a rendering result, and return the rendering result to the computing server;
[0019] The computing server is configured to receive the rendering result and return the rendering result to the client.
[0020] According to a fourth aspect of an embodiment of this specification, a rendering device is provided, which is applied to a computing server, and the device includes:
[0021] a first rendering request receiving module configured to receive a rendering request for a virtual terminal sent by a client, wherein the virtual terminal is created by the computing server in response to the virtual terminal creation request sent by the client, and the rendering request carries data to be rendered for the virtual terminal;
[0022] a rendering result obtaining module configured to send the rendering request to a rendering server, so that the rendering server renders the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule;
[0023] The first rendering result returning module is configured to receive the rendering result returned by the rendering server and return the rendering result to the client.
[0024] According to a fifth aspect of the embodiments of this specification, a rendering device is provided, which is applied to a rendering server, and the device includes:
[0025] a second rendering request receiving module configured to receive a rendering request sent by a computing server, wherein the rendering request is a rendering request sent by a client to a virtual terminal and received by the computing server, and the rendering request carries data to be rendered by the virtual terminal;
[0026] a rendering module configured to render the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule;
[0027] The second rendering result returning module is configured to return the rendering result to the computing server, so that the computing server returns the rendering result to the client.
[0028] According to a sixth aspect of the embodiments of this specification, a cloud product rendering method is provided, which is applied to a computing server, and the method includes:
[0029] receiving a rendering request for the cloud product sent by a client, wherein the cloud product is created by the computing server in response to the cloud product creation request sent by the client, and the rendering request carries data to be rendered for the cloud product;
[0030] Sending the rendering request to a rendering server, so that the rendering server renders the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule;
[0031] Receive the rendering result returned by the rendering server, and return the rendering result to the client, wherein the cloud product includes a cloud phone or a cloud desktop.
[0032] According to a seventh aspect of the embodiments of this specification, a computing device is provided, including:
[0033] memory and processor;
[0034] The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions. When the computer programs / instructions are executed by the processor, the steps of the above-mentioned rendering method or cloud product rendering method are implemented.
[0035] According to a seventh aspect of the embodiments of this specification, a computer-readable storage medium is provided, which stores a computer program / instruction, which, when executed by a processor, implements the steps of the above-mentioned rendering method or cloud product rendering method.
[0036] According to an eighth aspect of the embodiments of this specification, a computer program product is provided, including a computer program / instruction, which, when executed by a processor, implements the steps of the above-mentioned rendering method or cloud product rendering method.
[0037] One embodiment of the present specification provides a rendering method, applied to a computing server, comprising: receiving a rendering request sent by a client for a virtual terminal, wherein the virtual terminal is created by the computing server in response to a virtual terminal creation request sent by the client, and the rendering request carries data to be rendered for the virtual terminal; sending the rendering request to a rendering server, so that the rendering server renders the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule; receiving the rendering result returned by the rendering server, and returning the rendering result to the client.
[0038] Specifically, the above method sends the client's rendering request for the virtual terminal to the rendering server, so that the rendering server uses the target rendering container to render the virtual terminal, thereby decoupling the computing and rendering of the virtual terminal, reducing the limitation on the number of virtual terminals caused by the hardware limitations of the computing server, and greatly increasing the number of virtual terminals that the computing server can provide; further, the target rendering container is pre-allocated to the client according to the rendering resource allocation rule, ensuring the adaptability between the target rendering container and the client, that is, the client with lower demand is allocated a rendering container with lower capacity, and the client with higher demand is allocated a rendering container with higher capacity, which not only ensures the accuracy of the image rendering, but also improves the container resource utilization of the rendering server. BRIEF DESCRIPTION OF THE DRAWINGS
[0039] Figure 1 This is a specific application scenario diagram of a rendering method provided according to an embodiment of this specification;
[0040] Figure 2 is a flowchart of a rendering method provided according to one embodiment of this specification;
[0041] Figure 3 is a flowchart of another rendering method provided according to an embodiment of this specification;
[0042] Figure 4 This is a schematic framework diagram of an example production of a rendering method provided according to one embodiment of this specification;
[0043] Figure 5 This is a schematic framework diagram of remote rendering of a rendering method provided according to one embodiment of this specification;
[0044] Figure 6 is a schematic structural diagram of a rendering system provided according to one embodiment of this specification;
[0045] Figure 7 is a structural diagram of a rendering device provided according to an embodiment of this specification;
[0046] Figure 8 is a schematic structural diagram of another rendering device provided according to an embodiment of this specification;
[0047] Figure 9 This is a product diagram of a cloud product rendering method provided according to one embodiment of this specification;
[0048] Figure 10 This is a structural block diagram of a computing device provided according to one embodiment of the present specification. DETAILED DESCRIPTION
[0049] The following description sets forth many specific details to facilitate a thorough understanding of this specification. However, this specification can be implemented in many other ways than those described herein, and those skilled in the art can make similar generalizations without violating the scope of this specification. Therefore, this specification is not limited to the specific implementations disclosed below.
[0050] The terms used in one or more embodiments of this specification are for the purpose of describing specific embodiments only and are not intended to limit one or more embodiments of this specification. The singular forms "a," "the," and "the" used in one or more embodiments of this specification and the appended claims are also intended to include plural forms unless the context clearly indicates otherwise. It should also be understood that the term "and / or" used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more associated listed items.
[0051] It should be understood that although the terms first, second, etc. may be used to describe various information in one or more embodiments of this specification, such information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of one or more embodiments of this specification, the first may also be referred to as the second, and similarly, the second may also be referred to as the first. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".
[0052] In addition, it should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in one or more embodiments of this specification are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.
[0053] First, the terms involved in one or more embodiments of this specification are explained.
[0054] Elastic Cloud Phone: A virtual mobile phone device based on cloud computing technology that can achieve remote control and data storage.
[0055] ECI (Elastic Container Instance): Elastic Container Instance, a container service that can be used to deploy and manage containerized applications.
[0056] GPU: A high-performance graphics processor suitable for applications requiring massively parallel computing capabilities, such as AI training, scientific computing, and 3D rendering.
[0057] VPC (Virtual Private Cloud): A virtual private cloud is an isolated network environment in which cloud phone developers can configure independent virtual network resources, such as subnets, routing tables, network security groups, etc., to ensure secure communication between cloud phones and with external networks.
[0058] RemoteIP: The remote server IP address. Through the remote server IP address, you can access the remote rendering service of the remote server.
[0059] Client: The client is an application or device connected to the cloud phone service. It can be the user's local terminal or virtual terminal, etc. The user remotely accesses and controls the virtual phone in the cloud through the network.
[0060] IP+Port: The IP address (Internet Protocol Address) plus the port number (Port Number) together constitute the unique addressing information in network communications; each service or application in the server is assigned a unique IP address and port number to facilitate identification and data transmission between networks.
[0061] GPU (Graphics Processing Unit): Graphics processor. The GPU is responsible for accelerating graphics rendering and compute-intensive visual processing, such as 3D rendering and video decoding in game screens, image editing, and other applications, providing a smooth and high-quality visual experience.
[0062] CPU (Central Processing Unit): Central Processing Unit.
[0063] OS (Operating System): An operating system is a key software layer that manages hardware resources and provides an environment for running applications. A common example is the Android system, which provides cloud phones with functions such as user interfaces, application programming interfaces (APIs), and security policies.
[0064] Android: Android is an operating system primarily used on mobile devices, such as smartphones and tablets.
[0065] A cloud phone is a virtual phone running on a cloud server. Leveraging public cloud and ARM virtualization technology, it provides an Android mobile application platform in the cloud. The cloud server allows users to remotely control the cloud phone in real time, enabling them to run applications such as games and office software in the cloud.
[0066] Typically, cloud phones require screen rendering. The current solution is to use a GPU heterogeneous architecture for screen rendering, that is, to carry a GPU card and use the GPU card's underlying hardware for screen rendering. However, due to limitations such as physical device interfaces, the number of GPU cards mounted on a physical machine is limited, and the number of virtualized shards that a GPU can be split into is also limited. Therefore, the number of cloud phones that can be created on a physical machine is limited. Moreover, due to restrictions on GPU sales and other reasons, the number of heterogeneous physical machines carrying GPU cards is also limited, and cloud phones face the risk of being sold out in the future.
[0067] Therefore, the embodiment of this specification proposes a remote rendering solution, which is forwarded to a remote server through the Android system OS layer rendering agent. After receiving the rendering request, the remote server renders the data to be rendered carried in the rendering request and returns the calculated rendering data. Specifically, there are three ways to implement rendering. One is through CPU rendering, which returns the calculated rendering data; another is through GPU rendering, which returns the calculated rendering data; and another is to combine the resources of CPU and GPU to realize the rendering of the data to be rendered. Through this remote rendering solution, the computing end (computing server) and the rendering end (rendering server) of the cloud phone can be decoupled. The inventory of the cloud phone is no longer limited to specific GPU heterogeneous specifications by reusing existing ARM computing specifications; and the rendering resources of the rendering end can be managed in a shared pool and oversold in time-sharing to achieve optimized rendering resource management.
[0068] In light of this, this specification provides three rendering methods. One or more embodiments of this specification also involve two rendering devices, a rendering system, a cloud product rendering method, a computing device, a computer-readable storage medium, and a computer program product, each of which is described in detail in the following embodiments.
[0069] The following combined Figure 1 , taking a rendering method provided in an embodiment of this specification to render a virtual terminal as an example, the rendering method is described in detail. Figure 1 , Figure 1 This is a specific application scenario diagram of a rendering method provided according to an embodiment of this specification, which is applied to a rendering system.
[0070] like Figure 1 As shown, Figure 1 The rendering system includes a rendering method for implementing the embodiments of the present specification, and the rendering system includes a client 102, a computing server 104, and a rendering server 106. The client 102 includes but is not limited to a mobile phone, a tablet computer, a desktop computer, etc., and the computing server 104 and the rendering server 106 include but are not limited to a physical server, a cloud server, etc.
[0071] It should be noted that virtual terminals include but are not limited to cloud phones, cloud tablets, cloud desktop computers, etc. For the sake of convenience, the following description uses cloud phones as an example. The specific implementation methods of other virtual terminals can be found in the embodiments of this specification.
[0072] During specific implementation, the client 102 first sends a cloud phone creation request to the computing server 104 . After receiving the cloud phone creation request, the computing server 104 creates a cloud phone instance (hereinafter referred to as the cloud phone) and sends the cloud phone instance to the client 102 .
[0073] The client 102 uses the cloud phone provided by the computing server 104 , and when there is a need for rendering the screen of the cloud phone, sends a rendering request for the cloud phone to the computing server 104 , and the rendering request carries the data to be rendered of the cloud phone.
[0074] After receiving the rendering request, the computing server 104 sends the rendering request to the rendering server 106. After receiving the rendering request, the rendering server 106 uses the target rendering container pre-allocated to the client according to the rendering resource allocation rules to render the data to be rendered carried in the rendering request, obtains the rendering result, and returns the rendering result to the computing server 104. After receiving the rendering result, the computing server 104 returns the rendering result to the client 102, thereby realizing the rendering of the screen of the cloud phone used by the client 102.
[0075] The rendering method provided in the embodiments of this specification provides computing services for cloud phones through a computing server and provides rendering services for cloud phones through a rendering server, thereby decoupling the computing and rendering of cloud phones, reducing the limitation on the number of cloud phones caused by the hardware limitations of the computing server, and increasing the number of cloud phones that the computing server can provide; further, the rendering server uses the target rendering container pre-allocated to the client according to the rendering resource allocation rules to render the data to be rendered carried in the rendering request, which not only ensures the accuracy of the image rendering of the cloud phone, but also improves the container resource utilization of the rendering server.
[0076] See also Figure 2 , Figure 2 This is a flowchart of a rendering method provided according to an embodiment of the present specification, which is applied to a computing server and specifically includes the following steps.
[0077] Step 202: Receive a rendering request for the virtual terminal sent by the client.
[0078] The virtual terminal is created by the computing server in response to a virtual terminal creation request sent by the client, and the rendering request carries the data to be rendered by the virtual terminal.
[0079] Specifically, the client can be understood as the above-mentioned client, and the virtual terminal includes but is not limited to a virtual mobile phone terminal, a virtual tablet computer terminal, a virtual desktop computer terminal, etc.
[0080] A rendering request can be understood as a request for rendering a virtual terminal. The rendering request includes the data to be rendered of the virtual terminal to be rendered. The data to be rendered includes but is not limited to the virtual terminal system interface data to be rendered, one or more application interface data in the virtual terminal, etc.
[0081] During specific implementation, the client needs to use the virtual terminal provided by the computing server. During the process of the client using the virtual terminal, the client generates a demand for screen rendering of the virtual terminal and sends a rendering request for the screen rendering to the computing server. The computing server receives the rendering request for the screen rendering of the virtual terminal sent by the client to realize the screen rendering of the virtual terminal used by the client.
[0082] In actual applications, in order to improve the rendering effect of the virtual terminal, the computing server can first create a virtual terminal. The specific implementation method is as follows:
[0083] Before sending the rendering request to the rendering server, the method further includes:
[0084] In response to a virtual terminal creation request sent by the client, the virtual terminal is created and returned to the client according to the configuration data of the virtual terminal carried in the creation request.
[0085] The configuration data of the virtual terminal may be understood as data used to configure the virtual terminal, including but not limited to the number of CPU cores, memory capacity, storage space capacity, operating system type, network type, firewall settings, and the like.
[0086] Specifically, different users may have different requirements for virtual terminal configuration. For example, if a user needs to use a virtual terminal to develop a game through a client, a higher virtual terminal configuration (such as a higher number of CPU cores, higher memory allocation, higher storage space, etc.) is required. The client then sets the virtual terminal configuration data based on actual application requirements and sends the virtual terminal configuration data to the computing server.
[0087] Then, after receiving the configuration data of the virtual terminal, the computing server can create a virtual terminal corresponding to the configuration data of the virtual terminal according to the configuration data of the virtual terminal to meet the usage requirements of the user.
[0088] The rendering method provided in the embodiments of this specification creates a corresponding virtual terminal based on the configuration data of the virtual terminal sent by the client and returns it to the client. Since the virtual terminal is created by the computing server, subsequent data processing of the virtual terminal is more accurate.
[0089] Step 204: Send the rendering request to the rendering server, so that the rendering server uses the target rendering container to render the data to be rendered and obtain a rendering result.
[0090] The target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule.
[0091] Specifically, the rendering resource allocation rules can be understood as the reference rules used by the rendering server to allocate target rendering containers to the client. For example, the rules include comparing the client's rendering requirements for the virtual terminal with the rendering capabilities provided by each rendering container, and comparing the load required for the client's rendering for the virtual terminal with the load supported by each rendering container.
[0092] The rendering container can be understood as a container running in the rendering server and capable of implementing rendering functions, and the target rendering container can be understood as a rendering container for the above-mentioned client.
[0093] In specific implementation, after receiving the rendering request for the virtual terminal sent by the client, the computing server sends the rendering request to the rendering server. The rendering server receives the rendering request and uses the target rendering container pre-allocated to the client to render the data to be rendered contained in the rendering request, obtains the rendering result, and returns the rendering result to the computing server.
[0094] In actual applications, the rendering server can pre-allocate a target rendering container for the client and establish a communication channel between the compute server and the target rendering container. The specific implementation is as follows:
[0095] Before sending the rendering request to the rendering server, the method further includes:
[0096] Sending a rendering resource allocation request for the client to the rendering server, wherein the rendering resource allocation request carries the configuration data of the virtual terminal;
[0097] Determining the target rendering container allocated by the rendering server to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal;
[0098] A communication channel is established with the target rendering container according to the address information of the rendering server and the port information of the target rendering container.
[0099] The target rendering container runs on the rendering server.
[0100] Specifically, the Internet Protocol address can be understood as the above-mentioned IP (Internet Protocol) address; the port identifier can be understood as the above-mentioned port number (port: Port).
[0101] In a specific implementation, before the computing server requests the rendering server to render the virtual terminal, the computing server first sends a rendering resource allocation request for the client to the rendering server, and carries the configuration data of the virtual terminal to be rendered, so that the rendering server can allocate a suitable target rendering container based on the configuration data of the virtual terminal.
[0102] After receiving the rendering resource allocation request, the rendering server allocates a target rendering container to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal.
[0103] The rendering method provided in the embodiments of this specification improves rendering resource utilization on the rendering server and ensures rendering accuracy by pre-allocating an appropriate target rendering container based on the configuration data of the client and the virtual terminal. Furthermore, a communication channel is established between the computing server and the target rendering container, enabling rapid communication and improving real-time rendering.
[0104] In practical applications, the rendering resource allocation rule can be understood as the rule by which the client allocates rendering containers, including the CPU of the rendering server running multiple rendering containers and / or the GPU of the rendering server running multiple rendering containers. The specific implementation method of allocating the target rendering container to the client based on the rendering resource allocation rule and the configuration data of the virtual terminal is as follows:
[0105] Allocating the target rendering container to the client from a plurality of rendering containers running on the central processing unit according to the rendering resource allocation rule and the configuration data of the virtual terminal; or
[0106] Allocating the target rendering container to the client from a plurality of rendering containers running on the graphics processor according to the rendering resource allocation rule and the configuration data of the virtual terminal; or
[0107] According to the rendering resource allocation rule and the configuration data of the virtual terminal, the target rendering container is allocated to the client from the multiple rendering containers running on the central processing unit and the multiple rendering containers running on the graphics processing unit.
[0108] Among them, the central processing unit can be understood as the above-mentioned CPU, the graphics processing unit can be understood as the above-mentioned GPU, the graphics processing unit can be one or multiple, and can be set according to specific needs in actual applications. The embodiments of this specification do not limit this.
[0109] The rendering method provided in the embodiments of this specification improves the rationality of rendering resource scheduling by allocating a suitable target rendering container to the client from rendering containers running on different hardware, thereby reducing the waste of rendering resources while meeting the client's needs. Furthermore, by adopting different allocation strategies to determine the target rendering container from different rendering containers running on the CPU and / or GPU, the compatibility between the rendering container and the client is further improved.
[0110] In a specific implementation, according to the rendering resource allocation rule and the configuration data of the virtual terminal, a target rendering container can be allocated to the client from multiple rendering containers under the three strategies.
[0111] In actual applications, the specific implementation method of allocating a target rendering container to a client according to the rendering resource allocation rule and the configuration data of the virtual terminal is as follows:
[0112] Allocating the target rendering container to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal includes:
[0113] Determining rendering resources to be used by the client according to the configuration data of the virtual terminal;
[0114] Determining a target rendering container level according to the rendering resources to be used;
[0115] Determine a to-be-used rendering container corresponding to the target rendering container level from among multiple rendering containers running on the central processing unit and / or multiple rendering containers running on the graphics processing unit;
[0116] The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
[0117] Specifically, the rendering resource allocation rule can be understood as the allocation rule based on which rendering containers are allocated to the client. To improve the rationality of the allocation, the rendering resources required by the client can be compared with the rendering resources available from the rendering server to select an appropriate target rendering container. The following examples illustrate three specific implementation methods for allocating target rendering containers based on the rendering resource allocation rule and the configuration data of the virtual terminal. In actual applications, this is not limited to this. Rendering resource allocation rules can be designed according to actual needs, and target rendering containers can be allocated according to the rendering resource allocation rules. This specification does not limit this.
[0118] In some embodiments, allocating the target rendering container to the client from a plurality of rendering containers running on the central processing unit according to the rendering resource allocation rule and the configuration data of the virtual terminal includes:
[0119] Determining rendering resources to be used by the client according to the configuration data of the virtual terminal;
[0120] Determining a target rendering container level according to the rendering resources to be used;
[0121] Determining a to-be-used rendering container corresponding to the target rendering container level from a plurality of rendering containers running on the central processing unit;
[0122] The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
[0123] Among them, the rendering resources to be used can be understood as the rendering resources required by the virtual terminal for the client. For example, the rendering resources required by the virtual terminal of a client used for mobile game development are higher rendering resources, and the rendering resources required by the virtual terminal of a client used for simple cloud mobile office work are lower rendering resources; the resource usage information can be understood as the rendering resource usage information of the rendering container, such as the utilization rate of the rendering container, the available space capacity of the rendering container, etc. The container configuration information can be understood as the configuration attribute information of the rendering container, such as the rendering capabilities that the rendering container can provide, the load of the rendering container, etc.
[0124] The target rendering container level can be understood as grouping rendering containers according to their capabilities, load, and other information, such as low-profile, medium-profile, and high-profile levels. Alternatively, the rendering containers can be divided into first, second, and third levels according to their capabilities, load, and other information.
[0125] When allocating a target rendering container to a client, the rendering server can first determine the required rendering resources based on the virtual terminal's configuration data. Based on the size of the required rendering resources, the server can then determine the level of the target rendering container to allocate to the client, thereby allocating a target rendering container that matches the client.
[0126] After the target rendering container is determined, the rendering container corresponding to the target rendering container level among the multiple rendering containers running on the CPU can be determined as the rendering container to be used. Based on the resource usage information and container configuration information of the rendering container to be used, an available target rendering container that meets the client's usage requirements is determined and allocated to the client.
[0127] The rendering method provided in the embodiments of this specification reduces GPU resource usage and improves GPU availability by determining a target rendering container from multiple rendering containers running on the CPU, targeting situations where the client does not need to use the GPU to render the image.
[0128] In some embodiments, allocating the target rendering container to the client from a plurality of rendering containers running on the graphics processor according to the rendering resource allocation rule and the configuration data of the virtual terminal includes:
[0129] Determining rendering resources to be used by the client according to the configuration data of the virtual terminal;
[0130] Determining a target rendering container level according to the rendering resources to be used;
[0131] Determine, from a plurality of rendering containers running on the graphics processor, a to-be-used rendering container corresponding to the target rendering container level;
[0132] The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
[0133] Specifically, the specific implementation of determining the target rendering container level can be found in the above-mentioned embodiments, which will not be described in detail here.
[0134] After the target rendering container level is determined, the rendering container corresponding to the target rendering container level among the multiple rendering containers running on the graphics processor can be determined as the rendering container to be used. Based on the resource usage information and container configuration information of the rendering container to be used, an available target rendering container that meets the client's usage requirements is determined and allocated to the client.
[0135] The rendering method provided in the embodiments of this specification improves GPU utilization while ensuring the accuracy of rendering to the virtual terminal by determining a target rendering container from multiple rendering containers running on the GPU, targeting the case where the client needs to use the GPU to render the image.
[0136] In some embodiments, allocating the target rendering container to the client from multiple rendering containers running on the central processing unit and multiple rendering containers running on the graphics processing unit according to the rendering resource allocation rule and the configuration data of the virtual terminal includes:
[0137] Determining rendering resources to be used by the client according to the configuration data of the virtual terminal;
[0138] Determining a target rendering container level according to the rendering resources to be used;
[0139] Determining a to-be-used rendering container corresponding to the target rendering container level from a plurality of rendering containers running on the graphics processor and a plurality of rendering containers running on the graphics processor;
[0140] The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
[0141] Specifically, the specific implementation of determining the target rendering container level can be found in the above-mentioned embodiments, which will not be described in detail here.
[0142] After the target rendering container level is determined, the rendering container corresponding to the target rendering container level among the multiple rendering containers running on the CPU and the multiple rendering containers running on the GPU can be determined as the rendering container to be used. Based on the resource usage information and container configuration information of the rendering container to be used, an available target rendering container that meets the client's usage requirements is determined and allocated to the client.
[0143] The rendering method provided in the embodiments of this specification improves GPU utilization while ensuring the accuracy of rendering to the virtual terminal by determining a target rendering container from multiple rendering containers running on the GPU, targeting the case where the client needs to use the CPU or GPU to render the image.
[0144] The rendering method provided in the embodiments of this specification improves the rationality of rendering resource scheduling by allocating a suitable target rendering container to the client from rendering containers running on different hardware, thereby reducing the waste of rendering resources while meeting the client's needs. Specifically, during the rendering container allocation process, a more suitable target rendering container is determined by considering the client's needs and the capabilities and idleness of different rendering containers running on the CPU and / or GPU of the rendering server, further improving the compatibility between the rendering container and the client and further improving the utilization of rendering resources.
[0145] In actual applications, in order to improve communication efficiency, the above communication channel can also be a long connection communication channel, and the specific implementation method is as follows:
[0146] The establishing a communication channel with the target rendering container according to the address information of the rendering server and the port information of the target rendering container includes:
[0147] A persistent communication channel is established with the target rendering container according to the address information of the rendering server and the port information of the target rendering container.
[0148] The long connection communication channel can be understood as a TCP long connection communication channel.
[0149] The rendering method provided in the embodiments of this specification establishes a persistent communication channel between the computing server and the target rendering container, enabling rapid communication. This reduces the number of handshakes required to establish or disconnect the communication link during each communication and during the communication disconnection process, further reducing communication latency and improving rendering real-time performance.
[0150] In actual applications, after the communication channel is established as described above, the computing server and the rendering server can communicate through the communication channel. The specific implementation method is as follows:
[0151] The sending of the rendering request to the rendering server includes:
[0152] Sending the rendering request to the target rendering container of the rendering server through the communication channel;
[0153] The receiving the rendering result returned by the rendering server includes:
[0154] Receive the rendering result returned by the rendering server through the communication channel.
[0155] The rendering method provided in the embodiments of this specification forwards rendering requests and returns rendering results through a communication channel between a computing server and a target rendering container, thereby eliminating the time-consuming disconnection of multiple communication links, reducing rendering latency, and improving rendering effects.
[0156] In actual applications, in order to support more clients to use virtual terminals, the computing server can promptly delete virtual terminals that have been used by the clients. The specific implementation method is as follows:
[0157] The rendering method further includes:
[0158] In response to a usage completion instruction for the virtual terminal sent by the client, the virtual terminal is deleted.
[0159] The usage completion instruction can be understood as an instruction sent by the client to the computing server when the client has finished using the virtual terminal, so as to remind the computing server to process the virtual terminal in a timely manner.
[0160] To ensure that the computing server accurately deletes the virtual terminal and prevents accidental deletion, the above-mentioned usage completion instruction may include client information, virtual terminal identification, etc.
[0161] In a specific implementation, when the client finishes using the virtual terminal, it sends a use completion instruction for the virtual terminal to the computing server. The computing server receives and responds to the use completion instruction and deletes the virtual terminal.
[0162] In the rendering method provided in the embodiments of this specification, the computing server deletes virtual terminals in a timely manner, thereby reducing the meaningless consumption of software and hardware performance by useless virtual terminals and improving the software and hardware utilization of the computing server.
[0163] In actual applications, after deleting the virtual terminal, you can also release the rendering resources of the rendering server to improve the rendering resource utilization. The specific implementation method is as follows:
[0164] After establishing a communication channel with the target rendering container according to the address information of the rendering server and the port information of the target rendering container, the method further includes:
[0165] In response to a usage completion instruction for the virtual terminal sent by the client and when the virtual terminal is deleted, a rendering resource release request for the client is sent to the rendering server, so that the rendering server disconnects the communication channel between the compute server and the target rendering container and releases the rendering resources of the target rendering container.
[0166] The rendering resources of the target rendering container can be understood as rendering resources in the target rendering container used to render the data to be rendered, such as 3D models, textures, lighting, special effects, motion capture data, etc.
[0167] The rendering method provided in the embodiments of this specification enables a computing server to promptly release rendering resources from a target rendering container, allowing the idle rendering container to be reused by other clients' virtual terminals for rendering. This improves rendering resource utilization and, by reducing rendering resource usage, reduces the performance pressure on the rendering server's software and hardware.
[0168] Step 206: Receive the rendering result returned by the rendering server, and return the rendering result to the client.
[0169] Specifically, after the rendering server completes rendering of the data to be rendered of the virtual terminal and returns the rendering result, the computing server receives the rendering result and returns the rendering result to the client to complete the rendering of the virtual terminal of the client.
[0170] One embodiment of the present disclosure provides a rendering method, applied to a computing server. This method sends a rendering request from a client for a virtual terminal to the rendering server, causing the rendering server to render the virtual terminal using a target rendering container. This decouples computing and rendering for the virtual terminal, reduces the number of virtual terminals limited by the computing server's hardware limitations, and significantly increases the number of virtual terminals that the computing server can provide. Furthermore, the target rendering container is pre-allocated to the client based on rendering resource allocation rules, ensuring compatibility between the target rendering container and the client. Specifically, a rendering container with lower capabilities is allocated to a client with lower requirements, while a rendering container with higher capabilities is allocated to a client with higher requirements. This ensures both image rendering accuracy and improved container resource utilization on the rendering server.
[0171] See also Figure 3 , Figure 3 A flowchart of another rendering method provided according to an embodiment of the present specification is shown, which is applied to a rendering server and specifically includes the following steps.
[0172] Step 302: Receive a rendering request sent by the computing server.
[0173] The rendering request is a rendering request for a virtual terminal received by the computing server and sent by the client, and the rendering request carries data to be rendered of the virtual terminal.
[0174] Optionally, before receiving the rendering request sent by the computing server, the method further includes:
[0175] receiving a rendering resource allocation request for the client sent by the computing server, wherein the rendering resource allocation request carries configuration data of the virtual terminal;
[0176] Allocating the target rendering container to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal;
[0177] Sending the Internet Protocol address and the port identifier of the target rendering container to the computing server to establish a communication channel between the computing server and the target rendering container,
[0178] The target rendering container runs on the rendering server.
[0179] The rendering method provided in the embodiments of this specification improves rendering resource utilization on the rendering server and ensures rendering accuracy by pre-allocating an appropriate target rendering container based on the configuration data of the client and the virtual terminal. Furthermore, a communication channel is established between the computing server and the target rendering container, enabling rapid communication and improving real-time rendering.
[0180] Optionally, the central processing unit of the rendering server runs multiple rendering containers, and / or the graphics processing unit of the rendering server runs multiple rendering containers;
[0181] Allocating the target rendering container to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal includes:
[0182] Allocating the target rendering container to the client from a plurality of rendering containers running on the central processing unit according to the rendering resource allocation rule and the configuration data of the virtual terminal; or
[0183] Allocating the target rendering container to the client from a plurality of rendering containers running on the graphics processor according to the rendering resource allocation rule and the configuration data of the virtual terminal; or
[0184] According to the rendering resource allocation rule and the configuration data of the virtual terminal, the target rendering container is allocated to the client from the multiple rendering containers running on the central processing unit and the multiple rendering containers running on the graphics processing unit.
[0185] The rendering method provided in the embodiments of this specification improves the rationality of rendering resource scheduling by allocating a suitable target rendering container to the client from rendering containers running on different hardware, thereby reducing the waste of rendering resources while meeting the client's needs. Furthermore, by adopting different allocation strategies to determine the target rendering container from different rendering containers running on the CPU and / or GPU, the compatibility between the rendering container and the client is further improved.
[0186] Optionally, allocating the target rendering container to the client from a plurality of rendering containers running on the central processing unit according to the rendering resource allocation rule and the configuration data of the virtual terminal includes:
[0187] Determining rendering resources to be used by the client according to the configuration data of the virtual terminal;
[0188] Determining a target rendering container level according to the rendering resources to be used;
[0189] Determining a to-be-used rendering container corresponding to the target rendering container level from a plurality of rendering containers running on the central processing unit;
[0190] The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
[0191] The rendering method provided in the embodiments of this specification reduces GPU resource usage and improves GPU availability by determining a target rendering container from multiple rendering containers running on the CPU, targeting situations where the client does not need to use the GPU to render the image.
[0192] Optionally, allocating the target rendering container to the client from a plurality of rendering containers running on the graphics processor according to the rendering resource allocation rule and the configuration data of the virtual terminal includes:
[0193] Determining rendering resources to be used by the client according to the configuration data of the virtual terminal;
[0194] Determining a target rendering container level according to the rendering resources to be used;
[0195] Determine, from a plurality of rendering containers running on the graphics processor, a to-be-used rendering container corresponding to the target rendering container level;
[0196] The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
[0197] The rendering method provided in the embodiments of this specification improves GPU utilization while ensuring the accuracy of rendering to the virtual terminal by determining a target rendering container from multiple rendering containers running on the GPU, targeting the case where the client needs to use the GPU to render the image.
[0198] Optionally, allocating the target rendering container to the client from a plurality of rendering containers running on the central processing unit and a plurality of rendering containers running on the graphics processing unit according to the rendering resource allocation rule and the configuration data of the virtual terminal includes:
[0199] Determining rendering resources to be used by the client according to the configuration data of the virtual terminal;
[0200] Determining a target rendering container level according to the rendering resources to be used;
[0201] Determining a to-be-used rendering container corresponding to the target rendering container level from a plurality of rendering containers running on the graphics processor and a plurality of rendering containers running on the graphics processor;
[0202] The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
[0203] The rendering method provided in the embodiments of this specification improves GPU utilization while ensuring the accuracy of rendering to the virtual terminal by determining a target rendering container from multiple rendering containers running on the GPU, targeting the case where the client needs to use the CPU or GPU to render the image.
[0204] Step 304: Utilize the target rendering container corresponding to the client to render the data to be rendered, and obtain a rendering result.
[0205] Step 306: Return the rendering result to the computing server.
[0206] Specifically, the specific implementation method of the rendering server in the embodiments of this specification can refer to the specific implementation method of the rendering server in the embodiments of the above specification, which will not be repeated here.
[0207] In the rendering method provided in the embodiments of this specification, upon receiving a rendering request sent by a computing server, a rendering server uses a target rendering container pre-allocated to a client to render the to-be-rendered data contained in the rendering request. This method not only ensures the accuracy and real-time rendering of the image of the to-be-rendered data rendered on the client through the adaptation of the target rendering container to the client, but also reduces the waste of rendering resources and improves the rendering resource utilization of the rendering server.
[0208] The following combined Figure 4 , taking the application of the rendering method provided in this specification in the process of creating, using, and destroying a cloud phone instance as an example, the rendering method is further explained. Figure 4 A schematic diagram of an example production framework of a rendering method according to an embodiment of this specification is shown, specifically involving a cloud computing server (such as Figure 4 Cloud phone management and control in the cloud phone, used to provide cloud phone computing services), clients (such as Figure 4 Cloud phone client in the remote rendering end (such as Figure 4 Remote rendering scheduling control and rendering container in Figure 4 The remote rendering scheduling control unit and rendering container in the remote rendering end constitute the remote rendering end, which is the above-mentioned rendering server end, used to provide cloud phone rendering services).
[0209] (1) Cloud phone instance production.
[0210] Step 402: Request rendering resources.
[0211] Specifically, the cloud phone control creates a cloud phone instance based on the cloud phone client's usage requirements for the cloud phone, and requests rendering resources for the cloud phone instance from the remote rendering scheduling control of the remote rendering end;
[0212] Remote rendering scheduling and control schedules and selects a suitable rendering container based on the cloud phone usage requirements carried in the rendering resource request, and determines the rendering attribute data including the IP address of the remote rendering end and the port identifier of the rendering container based on the port identifier of the rendering container.
[0213] In actual applications, since the rendering container service is stateless and can reuse idle rendering resources arbitrarily, the rendering container can be scheduled in the following ways:
[0214] (1) Create rendering containers on different GPUs / hardware or CPUs so that different rendering containers can provide different rendering capabilities. When selecting a rendering container, determine the appropriate rendering container based on the usage scenario of the cloud phone instance.
[0215] (2) Rendering container pooling management, that is, deploying rendering containers with different load capacities in the same virtual machine, and determining the appropriate rendering container from the rendering container pool based on the rendering pressure required by the cloud phone instance.
[0216] (3) Perform unified resource monitoring on the rendering containers in the rendering container pool and automatically scale the rendering containers in and out.
[0217] Step 404: Return rendering resources.
[0218] Specifically, after determining the rendering attribute data, the remote rendering scheduling control of the remote rendering end returns the rendering resources corresponding to the rendering attribute data to the cloud phone control.
[0219] Step 406: Produce a cloud phone and send the remote rendering end IP + port.
[0220] Specifically, after receiving the rendering resources, the cloud phone control generates a cloud phone instance and sends the remote rendering end IP+port corresponding to the rendering resources to the OS in the cloud phone instance.
[0221] (2) Use of cloud phone.
[0222] Step 408: The OS starts forwarding the rendering request.
[0223] Specifically, the cloud phone client uses the cloud phone instance produced above and starts the cloud phone OS. When there is a need for screen rendering, it sends a rendering request to the cloud computing server.
[0224] The cloud computing server receives the rendering request and forwards it to the rendering server through a pre-established link channel with the rendering container of the rendering server. The rendering container of the rendering server renders the screen for the cloud phone according to the rendering request.
[0225] Optionally, the above-mentioned link channel can be implemented using a long connection channel.
[0226] See also Figure 5 , Figure 5 A schematic diagram of a remote rendering framework of a rendering method provided according to an embodiment of this specification is shown. Figure 5 As shown, cloud phone rendering involves cloud phone management and remote rendering. The remote rendering includes Figure 5 For example, the remote rendering control and container (i.e., rendering container) in the cloud phone control creates two cloud phone instances. The remote rendering control can schedule the container resource pool through the ECI instance. The container resource pool includes containers 1-6. It should be noted that the embodiments of this specification do not limit the number of cloud phone instances, the number of ECI instances, and the number of containers contained in each ECI instance.
[0227] In specific implementation, before rendering the cloud phone instance, you can first bind the cloud phone instance to the rendering container in the remote rendering container resource pool, that is, establish a link channel between the cloud phone instance and the rendering container in the rendering container pool. Specifically, the link channel between the cloud computing server and the rendering container can be a one-to-one link channel between the Android rendering layer of the cloud phone instance created by the cloud computing server and the rendering container, and the unique correspondence is achieved through the above-mentioned port identifier.
[0228] Then, the cloud computing server receives the rendering request and forwards it to the rendering server through a pre-established link channel with the rendering container of the rendering server. The rendering container of the rendering server renders the image on the cloud phone based on the rendering request through the link channel.
[0229] For example, the cloud computing server establishes a link channel of RemoteIP:Port1 with container 1 through port 1, and establishes a link channel of RemoteIP:Port2 with container 3 through port 2.
[0230] (3) Destruction of cloud phones.
[0231] Step 410: Release the cloud phone.
[0232] Specifically, after the cloud phone client finishes using the cloud phone, it sends a cloud phone use completion indication message to the cloud phone control. Upon receiving the cloud phone use completion indication message, the cloud phone control deletes the cloud phone instance.
[0233] Step 412: The OS disconnects the long rendering connection.
[0234] After the cloud phone management deletes the cloud phone instance, it disconnects the link channel between the cloud phone instance and the rendering container of the rendering server and sends a rendering resource release request to the remote rendering end.
[0235] Step 414: Release rendering resources.
[0236] The remote rendering end receives the rendering resource release request and releases the rendering resources.
[0237] The rendering method provided in the embodiments of this specification increases the number of cloud phones that can be supported by the cloud computing server by decoupling the computing and rendering of the cloud phone. In addition, due to the decoupling of computing and rendering, rendering no longer occupies a relatively high hardware resource of the cloud computing server, thereby improving the rendering effect. For example, the rendering quality can be switched from low quality to high quality in seconds, meeting the user's real-time adjustment of the cloud phone image quality demand; further, since remote rendering is no longer limited to specific GPU heterogeneous specifications, but can perform CPU specification rendering and / or GPU heterogeneous specification rendering, the resource utilization of rendering resources is significantly improved; further, the rendering resources are managed in a common pool, which improves the scheduling capability of the rendering resources as a whole and further improves the resource utilization of the rendering resources.
[0238] The above is a schematic scheme of a rendering device of this embodiment. It should be noted that the technical scheme of the rendering device and the technical scheme of the rendering method described above are of the same concept. For details not described in detail in the technical scheme of the rendering device, please refer to the description of the technical scheme of the rendering method described above.
[0239] Corresponding to the above method embodiment, this specification also provides a rendering system embodiment, Figure 6 FIG. 1 shows a schematic diagram of a rendering system according to an embodiment of the present invention. Figure 6 As shown, the system includes a client 102, a computing server 104, and a rendering server 106, wherein:
[0240] The client 102 is configured to send a virtual terminal creation request to the computing server 104;
[0241] The computing server 104 is configured to create a virtual terminal in response to the creation request;
[0242] The client 102 is configured to send a rendering request for the virtual terminal to the computing server 104, wherein the rendering request carries the data to be rendered of the virtual terminal;
[0243] The computing server 104 is configured to receive the rendering request and send the rendering request to the rendering server 106;
[0244] The rendering server 106 is configured to render the data to be rendered using a target rendering container, obtain a rendering result, and return the rendering result to the computing server 104;
[0245] The computing server 104 is configured to receive the rendering result and return the rendering result to the client 102 .
[0246] The above is a schematic scheme of a rendering system of this embodiment. It should be noted that the technical scheme of the rendering system and the technical scheme of the rendering method described above are of the same concept. For details not described in detail in the technical scheme of the rendering system, please refer to the description of the technical scheme of the corresponding end of the rendering method described above.
[0247] Corresponding to the above method embodiment, this specification also provides a rendering device embodiment, Figure 7 A schematic diagram of the structure of a rendering device according to an embodiment of the present invention is shown, which is applied to a computing server. Figure 7 As shown, the device includes:
[0248] a first rendering request receiving module 702 configured to receive a rendering request for a virtual terminal sent by a client, wherein the virtual terminal is created by the computing server in response to the virtual terminal creation request sent by the client, and the rendering request carries data to be rendered for the virtual terminal;
[0249] The rendering result obtaining module 704 is configured to send the rendering request to the rendering server, so that the rendering server renders the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule;
[0250] The first rendering result returning module 706 is configured to receive the rendering result returned by the rendering server and return the rendering result to the client.
[0251] Optionally, the device further includes a long connection channel establishment module configured to:
[0252] Sending a rendering resource allocation request for the client to the rendering server, wherein the rendering resource allocation request carries the configuration data of the virtual terminal;
[0253] Determining the target rendering container allocated by the rendering server to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal;
[0254] Establish a communication channel with the target rendering container based on the address information of the rendering server and the port information of the target rendering container.
[0255] The target rendering container runs on the rendering server.
[0256] Optionally, the long connection channel establishing module is further configured to:
[0257] A persistent communication channel is established with the target rendering container according to the address information of the rendering server and the port information of the target rendering container.
[0258] Optionally, the long connection channel establishing module is further configured to:
[0259] Sending the rendering request to the target rendering container of the rendering server through the communication channel;
[0260] The receiving the rendering result returned by the rendering server includes:
[0261] Receive the rendering result returned by the rendering server through the communication channel.
[0262] Optionally, the device further includes a virtual terminal creation module configured to:
[0263] In response to a virtual terminal creation request sent by the client, the virtual terminal is created and returned to the client according to the configuration data of the virtual terminal carried in the creation request.
[0264] Optionally, the device further includes a virtual terminal deletion module configured to:
[0265] In response to a usage completion instruction for the virtual terminal sent by the client, the virtual terminal is deleted.
[0266] Optionally, the device further includes a rendering resource releasing module configured to:
[0267] In response to a usage completion instruction for the virtual terminal sent by the client and when the virtual terminal is deleted, a rendering resource release request for the client is sent to the rendering server, so that the rendering server disconnects the communication channel between the compute server and the target rendering container and releases the rendering resources of the target rendering container.
[0268] Corresponding to the above method embodiment, this specification also provides another rendering device embodiment, Figure 8 A schematic diagram of the structure of another rendering device provided by an embodiment of this specification is shown, which is applied to a rendering server, such as Figure 8 As shown, the device includes:
[0269] A second rendering request receiving module 802 is configured to receive a rendering request sent by a computing server, wherein the rendering request is a rendering request sent by a client to a virtual terminal and received by the computing server, and the rendering request carries data to be rendered by the virtual terminal;
[0270] The rendering module 804 is configured to render the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule;
[0271] The second rendering result returning module 806 is configured to return the rendering result to the computing server, so that the computing server returns the rendering result to the client.
[0272] Optionally, the device further includes a long connection channel establishment submodule configured to:
[0273] receiving a rendering resource allocation request for the client sent by the computing server, wherein the rendering resource allocation request carries configuration data of the virtual terminal;
[0274] Allocating the target rendering container to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal;
[0275] Sending the Internet Protocol address and the port identifier of the target rendering container to the computing server, so that the computing server establishes a communication channel with the target rendering container,
[0276] The target rendering container runs on the rendering server.
[0277] Optionally, the central processing unit of the rendering server runs multiple rendering containers, and / or the graphics processing unit of the rendering server runs multiple rendering containers;
[0278] The long connection channel establishment submodule is further configured to:
[0279] Allocating the target rendering container to the client from a plurality of rendering containers running on the central processing unit according to the rendering resource allocation rule and the configuration data of the virtual terminal; or
[0280] Allocating the target rendering container to the client from a plurality of rendering containers running on the graphics processor according to the rendering resource allocation rule and the configuration data of the virtual terminal; or
[0281] According to the rendering resource allocation rule and the configuration data of the virtual terminal, the target rendering container is allocated to the client from the multiple rendering containers running on the central processing unit and the multiple rendering containers running on the graphics processing unit.
[0282] Optionally, the long connection channel establishment submodule is further configured to:
[0283] Determining rendering resources to be used by the client according to the configuration data of the virtual terminal;
[0284] Determining a target rendering container level according to the rendering resources to be used;
[0285] Determining a to-be-used rendering container corresponding to the target rendering container level from a plurality of rendering containers running on the central processing unit;
[0286] The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
[0287] Optionally, the long connection channel establishment submodule is further configured to:
[0288] Determining rendering resources to be used by the client according to the configuration data of the virtual terminal;
[0289] Determining a target rendering container level according to the rendering resources to be used;
[0290] Determine, from a plurality of rendering containers running on the graphics processor, a to-be-used rendering container corresponding to the target rendering container level;
[0291] The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
[0292] Optionally, the long connection channel establishment submodule is further configured to:
[0293] Determining rendering resources to be used by the client according to the configuration data of the virtual terminal;
[0294] Determining a target rendering container level according to the rendering resources to be used;
[0295] Determining a to-be-used rendering container corresponding to the target rendering container level from a plurality of rendering containers running on the graphics processor and a plurality of rendering containers running on the graphics processor;
[0296] The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
[0297] The present invention also provides a cloud product rendering method, which is applied to a computing server. The method includes:
[0298] receiving a rendering request for the cloud product sent by a client, wherein the cloud product is created by the computing server in response to the cloud product creation request sent by the client, and the rendering request carries data to be rendered for the cloud product;
[0299] Sending the rendering request to a rendering server, so that the rendering server renders the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule;
[0300] Receive the rendering result returned by the rendering server, and return the rendering result to the client, wherein the cloud product includes a cloud phone or a cloud desktop.
[0301] Specifically, participate Figure 9 , Figure 9 This is a product diagram of a cloud product rendering method provided according to an embodiment of this specification.
[0302] like Figure 9 As shown, Figure 9 The user passes the client (ie Figure 9 The cloud phone provided by the computing server is used as an example for illustration, but the client is not limited to mobile phones and can also be a tablet computer, a laptop computer, etc. The cloud product is not limited to cloud phones and can also be a cloud desktop, a cloud smart display, etc.
[0303] During the specific implementation, the user clicks on the cloud phone he wants to use through the client. For example, the user can use cloud phone 1, cloud phone 2, cloud phone 3, cloud phone 4, and cloud phone 5. The user selects cloud phone 1 to use. The user clicks on cloud phone 1. In order to display the picture, cloud phone 1 generates a rendering request for picture rendering and sends a rendering request for cloud phone 1 to the computing server.
[0304] Furthermore, after receiving the rendering request, the computing server sends the rendering request to the rendering server. After receiving the rendering request, the rendering server uses the target rendering container pre-allocated to the client according to the rendering resource allocation rules to render the data to be rendered carried in the rendering request, obtain the rendering result, and return the rendering result to the computing server. After receiving the rendering result, the computing server returns the rendering result to the client, thereby realizing the rendering of the screen of the above-mentioned cloud phone 1 in the client.
[0305] The rendering method provided in the embodiments of this specification forwards the rendering request of the user using the cloud phone through the client to the rendering server through the computing server, so as to utilize the rendering resources of the rendering server to realize the rendering of the cloud phone, thereby improving the rendering quality of the cloud phone. In addition, due to the decoupling between the computing and rendering of the cloud phone, the limitation on the number of cloud phones caused by the hardware limitation of the computing server is reduced, thereby greatly increasing the number of cloud phones that the computing server can provide.
[0306] See also Figure 10 , Figure 10 1000 according to an embodiment of the present disclosure. Components of the computing device 1000 include, but are not limited to, a memory 1010 and a processor 1020. The processor 1020 is connected to the memory 1010 via a bus 1030, and a database 1050 is used to store data.
[0307] The computing device 1000 also includes an access device 1040 that enables the computing device 1000 to communicate via one or more networks 1060. Examples of such networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or a combination of communication networks such as the Internet. The access device 1040 may include one or more of any type of network interface (e.g., a network interface card (NIC)) whether wired or wireless, such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a Worldwide Interoperability for Microwave Access (Wi-MAX) interface, an Ethernet interface, a universal serial bus (USB) interface, a cellular network interface, a Bluetooth interface, a near field communication (NFC) interface, and the like.
[0308] In one embodiment of the present specification, the above components of the computing device 1000 and Figure 10 Other components not shown in the figure may also be connected to each other, for example, via a bus. Figure 10 The computing device structure block diagram shown is for illustrative purposes only and is not intended to limit the scope of this specification. Those skilled in the art may add or replace other components as needed.
[0309] Computing device 1000 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a tablet computer, personal digital assistant, laptop computer, notebook computer, netbook computer, etc.), a mobile phone (e.g., a smartphone), a wearable computing device (e.g., a smartwatch, smart glasses, etc.), or other types of mobile devices, or a stationary computing device such as a desktop computer or personal computer (PC). Computing device 1000 may also be a mobile or stationary server.
[0310] Among them, the processor 1020 is used to execute the following computer program / instruction, which implements the steps of the above-mentioned rendering method or cloud phone rendering method when executed by the processor.
[0311] Each embodiment in this specification is described in a progressive manner. Similar parts between the various embodiments can be referred to in conjunction with each other. Each embodiment focuses on the differences from other embodiments. In particular, for the computing device embodiment, since it is basically similar to the rendering method embodiment or the cloud phone rendering method embodiment, the description is relatively simple. For relevant parts, refer to the rendering method embodiment or the cloud phone rendering method embodiment.
[0312] An embodiment of the present specification also provides a computer-readable storage medium storing a computer program / instruction, which implements the steps of the above-mentioned rendering method or cloud phone rendering method when executed by a processor.
[0313] Each embodiment in this specification is described in a progressive manner. Similar parts between the various embodiments can be referred to in conjunction with each other. Each embodiment focuses on the differences from other embodiments. In particular, for the computer-readable storage medium embodiment, since it is basically similar to the rendering method embodiment or the cloud phone rendering method embodiment, the description is relatively simple. For relevant parts, refer to the rendering method embodiment or the cloud phone rendering method embodiment.
[0314] An embodiment of the present specification also provides a computer program product, including a computer program / instruction, which, when executed by a processor, implements the steps of the above-mentioned rendering method or cloud phone rendering method.
[0315] The above is a schematic diagram of a computer program product according to this embodiment. It should be noted that the technical solution of this computer program product is based on the same concept as the technical solution of the aforementioned rendering method or cloud phone rendering method. For details not described in detail in the technical solution of the computer program product, please refer to the description of the technical solution of the aforementioned rendering method or cloud phone rendering method.
[0316] The foregoing description of this specification describes specific embodiments. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims can be performed in an order different from that described in the embodiments and still achieve the desired results. Furthermore, the processes depicted in the accompanying drawings do not necessarily require the specific order shown or the sequential order to achieve the desired results. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0317] The computer instructions include computer program code, which may be in source code form, object code form, executable file, or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal, and software distribution medium. It should be noted that the content contained in the computer-readable medium may be appropriately increased or decreased according to the requirements of patent practice. For example, in some regions, according to patent practice, computer-readable media does not include electric carrier signals and telecommunication signals.
[0318] It should be noted that for the aforementioned method embodiments, for the sake of simplicity of description, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the embodiments of this specification are not limited by the order of the actions described, because according to the embodiments of this specification, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in this specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the embodiments of this specification.
[0319] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0320] The preferred embodiments disclosed above are intended only to help illustrate this specification. The optional embodiments do not exhaustively describe all details, nor do they limit the invention to the specific embodiments described. Obviously, many modifications and variations can be made based on the content of the embodiments of this specification. This specification selects and specifically describes these embodiments in order to better explain the principles and practical applications of the embodiments of this specification, so that those skilled in the art can better understand and utilize this specification. This specification is limited only by the claims and their full scope and equivalents.
Claims
1. A rendering method, applied to a computing server, comprising: receiving a rendering request for a virtual terminal sent by a client, wherein the virtual terminal is created by the computing server in response to the virtual terminal creation request sent by the client, and the rendering request carries data to be rendered for the virtual terminal; Sending the rendering request to a rendering server, so that the rendering server renders the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule; Receive the rendering result returned by the rendering server, and return the rendering result to the client.
2. The rendering method according to claim 1, before sending the rendering request to the rendering server, further comprising: Sending a rendering resource allocation request for the client to the rendering server, wherein the rendering resource allocation request carries the configuration data of the virtual terminal; Determining the target rendering container allocated by the rendering server to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal; Establish a communication channel with the target rendering container based on the address information of the rendering server and the port information of the target rendering container. The target rendering container runs on the rendering server.
3. The rendering method according to claim 2, wherein establishing a communication channel with the target rendering container based on the address information of the rendering server and the port information of the target rendering container comprises: A persistent communication channel is established with the target rendering container according to the address information of the rendering server and the port information of the target rendering container.
4. The rendering method according to claim 2 or 3, wherein sending the rendering request to the rendering server comprises: Sending the rendering request to the target rendering container of the rendering server through the communication channel; The receiving the rendering result returned by the rendering server includes: Receive the rendering result returned by the rendering server through the communication channel.
5. The rendering method according to claim 1, before sending the rendering request to the rendering server, further comprising: In response to a virtual terminal creation request sent by the client, the virtual terminal is created and returned to the client according to the configuration data of the virtual terminal carried in the creation request.
6. The rendering method according to claim 1 or 5, further comprising: In response to a usage completion instruction for the virtual terminal sent by the client, the virtual terminal is deleted.
7. The rendering method according to claim 2, further comprising: after establishing a communication channel with the target rendering container based on the address information of the rendering server and the port information of the target rendering container: In response to a usage completion instruction for the virtual terminal sent by the client and when the virtual terminal is deleted, a rendering resource release request for the client is sent to the rendering server, so that the rendering server disconnects the communication channel between the compute server and the target rendering container and releases the rendering resources of the target rendering container.
8. A rendering method, applied to a rendering server, comprising: Receive a rendering request sent by a computing server, wherein the rendering request is a rendering request sent by a client to a virtual terminal and received by the computing server, and the rendering request carries data to be rendered of the virtual terminal; Rendering the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule; The rendering result is returned to the computing server, so that the computing server returns the rendering result to the client.
9. The rendering method according to claim 8, before receiving the rendering request sent by the computing server, further comprising: receiving a rendering resource allocation request for the client sent by the computing server, wherein the rendering resource allocation request carries configuration data of the virtual terminal; Allocating the target rendering container to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal; Sending the Internet Protocol address and the port identifier of the target rendering container to the computing server, so that the computing server establishes a communication channel with the target rendering container, The target rendering container runs on the rendering server.
10. The rendering method according to claim 9, wherein the central processing unit of the rendering server runs multiple rendering containers, and / or the graphics processing unit of the rendering server runs multiple rendering containers; Allocating the target rendering container to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal includes: Allocating the target rendering container to the client from a plurality of rendering containers running on the central processing unit according to the rendering resource allocation rule and the configuration data of the virtual terminal; or Allocating the target rendering container to the client from a plurality of rendering containers running on the graphics processor according to the rendering resource allocation rule and the configuration data of the virtual terminal; or According to the rendering resource allocation rule and the configuration data of the virtual terminal, the target rendering container is allocated to the client from the multiple rendering containers running on the central processing unit and the multiple rendering containers running on the graphics processing unit.
11. The rendering method according to claim 10, wherein allocating the target rendering container to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal comprises: Determining rendering resources to be used by the client according to the configuration data of the virtual terminal; Determining a target rendering container level according to the rendering resources to be used; Determine a to-be-used rendering container corresponding to the target rendering container level from among multiple rendering containers running on the central processing unit and / or multiple rendering containers running on the graphics processing unit; The target rendering container is allocated to the client from the rendering containers to be used according to the resource usage information and container configuration information of the rendering container to be used.
12. A cloud product rendering method, applied to a computing server, comprising: receiving a rendering request for the cloud product sent by a client, wherein the cloud product is created by the computing server in response to the cloud product creation request sent by the client, and the rendering request carries data to be rendered for the cloud product; Sending the rendering request to a rendering server, so that the rendering server renders the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule; Receive the rendering result returned by the rendering server, and return the rendering result to the client, wherein the cloud product includes a cloud phone or a cloud desktop.
13. A rendering system, comprising a client, a computing server, and a rendering server, wherein: The client is configured to send a virtual terminal creation request to the computing server; The computing server is configured to create a virtual terminal in response to the creation request; The client is configured to send a rendering request for the virtual terminal to the computing server, wherein the rendering request carries data to be rendered of the virtual terminal; The computing server is configured to receive the rendering request and send the rendering request to the rendering server; The rendering server is configured to render the data to be rendered using a target rendering container, obtain a rendering result, and return the rendering result to the computing server; The computing server is configured to receive the rendering result and return the rendering result to the client.
14. The rendering system according to claim 13, wherein the computing server is further configured to: Sending a rendering resource allocation request to the client to the rendering server, wherein: The rendering resource allocation request carries the configuration data of the virtual terminal; Determining the target rendering container allocated by the rendering server to the client according to the rendering resource allocation rule and the configuration data of the virtual terminal; Establish a communication channel with the target rendering container based on the address information of the rendering server and the port information of the target rendering container. The target rendering container runs on the rendering server.
15. The rendering system according to claim 13, wherein the central processing unit of the rendering server runs multiple rendering containers, and / or the graphics processing unit of the rendering server runs multiple rendering containers; The rendering server is also configured as follows: Allocating the target rendering container to the client from a plurality of rendering containers running on the central processing unit according to the rendering resource allocation rule and the configuration data of the virtual terminal; or Allocating the target rendering container to the client from a plurality of rendering containers running on the graphics processor according to the rendering resource allocation rule and the configuration data of the virtual terminal; or According to the rendering resource allocation rule and the configuration data of the virtual terminal, the target rendering container is allocated to the client from the multiple rendering containers running on the central processing unit and the multiple rendering containers running on the graphics processing unit.
16. A rendering device, applied to a computing server, comprising: a first rendering request receiving module configured to receive a rendering request for a virtual terminal sent by a client, wherein the virtual terminal is created by the computing server in response to the virtual terminal creation request sent by the client, and the rendering request carries data to be rendered for the virtual terminal; a rendering result obtaining module configured to send the rendering request to a rendering server, so that the rendering server renders the data to be rendered using a target rendering container to obtain a rendering result, wherein the target rendering container is pre-allocated by the rendering server to the client according to a rendering resource allocation rule; The first rendering result returning module is configured to receive the rendering result returned by the rendering server and return the rendering result to the client.
17. A computing device comprising: memory and processor; The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions. When the computer program / instructions are executed by the processor, the steps of the rendering method according to any one of claims 1 to 11 or the cloud product rendering method according to claim 12 are implemented.
18. A computer-readable storage medium storing a computer program / instruction, which, when executed by a processor, implements the steps of the rendering method according to any one of claims 1 to 11 or the cloud product rendering method according to claim 12.
19. A computer program product, comprising a computer program / instruction, which, when executed by a processor, implements the steps of the rendering method according to any one of claims 1 to 11 or the cloud product rendering method according to claim 12.