CN114356465A - Desktop cloud system and related methods, devices, equipment and media - Google Patents

Desktop cloud system and related methods, devices, equipment and media Download PDF

Info

Publication number
CN114356465A
CN114356465A CN202011268930.7A CN202011268930A CN114356465A CN 114356465 A CN114356465 A CN 114356465A CN 202011268930 A CN202011268930 A CN 202011268930A CN 114356465 A CN114356465 A CN 114356465A
Authority
CN
China
Prior art keywords
desktop
terminal
cloud server
event
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011268930.7A
Other languages
Chinese (zh)
Inventor
李秀桥
孙宏伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to EP21873938.1A priority Critical patent/EP4206916A4/en
Priority to PCT/CN2021/101742 priority patent/WO2022068276A1/en
Publication of CN114356465A publication Critical patent/CN114356465A/en
Priority to US18/191,385 priority patent/US20230236856A1/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

The application provides a desktop cloud system, includes: desktop cloud server and terminal. The desktop cloud server deploys the virtual desktop instance. The desktop cloud server is used for acquiring coded data output by the virtual desktop instance and sending the coded data to a terminal corresponding to the virtual desktop, and the terminal is used for decoding source data from the coded data and presenting the virtual desktop according to the source data. Because secondary transcoding is not needed, extra computing overhead is avoided, the desktop cloud server can serve more terminals, and the hardware cost of the desktop cloud system is reduced.

Description

Desktop cloud system and related methods, devices, equipment and media
The present application claims priority from the chinese patent application entitled "method, apparatus, server, and storage medium for providing virtual desktop" filed by the chinese intellectual property office at 29/09/29/2020, application No. 202011052754.3, the entire contents of which are incorporated herein by reference.
Technical Field
The present application relates to the field of cloud computing technologies, and in particular, to a desktop cloud system, a method, an apparatus, a device, and a computer-readable storage medium for providing a virtual desktop.
Background
In order to meet the demand of working anytime and anywhere, the industry proposes a Virtual Desktop Infrastructure (VDI). The system implemented based on this architecture is called a desktop cloud system. The desktop cloud system comprises personal equipment such as a terminal and a desktop cloud server. A user may access a desktop virtual machine environment deployed on a desktop cloud server through a desktop cloud client installed on a personal device.
The core technology of the desktop cloud system is a desktop access protocol. The desktop access protocol defines an interaction protocol and a communication channel for transmitting data such as desktop images, videos and peripheral events between the desktop cloud client and the desktop cloud server (for example, a virtual machine on the desktop cloud server).
However, different desktop cloud products each define a proprietary protocol specification. In order to interface different protocol specifications, an open source HTML5 client project such as Apache Guacamole deploys an extensible protocol conversion component architecture on the Web server, interfaces different protocol specifications by adding an independent component (for example, guacd + remote desktop protocol component), and converts the protocol data to conform to the Guacamole protocol specification. The Web client side and the service end component of the front end are in butt joint through the open Guacamole protocol specification.
This architecture increases flexibility, protocol scalability, but introduces greater performance issues. Specifically, the protocol conversion component needs to consume a large amount of computing power to decrypt and decode the server-side protocol data such as the video stream, and re-compress the decoded data according to the algorithm of the Guacamole protocol for video, image, audio, and other data. Therefore, a large amount of extra computing overhead is generated, the number of Web clients served by a single Web server is limited, and the hardware cost of the desktop cloud system is increased.
Disclosure of Invention
The application provides a desktop cloud system, this desktop cloud system includes desktop cloud server and terminal, and desktop cloud server obtains the coded data of virtual desktop instance output, sends this coded data to the terminal, directly decodes at the distolateral by the terminal to present virtual desktop according to the source data that decode out, need not to carry out secondary transcoding, avoided extra calculation expense, desktop cloud server can serve more terminal, has reduced desktop cloud system's hardware cost. The application also provides a method for providing a virtual desktop based on the desktop cloud system, and a corresponding device, equipment, a computer readable storage medium and a computer program product.
In a first aspect, the present application provides a desktop cloud system. The desktop cloud system comprises a desktop cloud server and a terminal. The desktop cloud server is deployed with a virtual desktop instance. The virtual desktop instance is specifically a process or a thread for providing a virtual desktop, and the process or the thread may run directly in a physical machine such as a desktop cloud server, or may run in a virtual machine or a container on the physical machine. The virtual desktop instance may be a desktop cloud server executing code block generation with functionality to provide a virtual desktop.
Specifically, the desktop cloud server is used for acquiring encoded data output by the virtual desktop instance, sending the encoded data to the corresponding terminal, decoding source data from the encoded data at the end side by the terminal, and presenting the virtual desktop according to the source data. Because secondary transcoding is not needed, extra computing overhead caused by secondary transcoding is avoided, the number of terminals which can be served by the desktop cloud server is increased, and the hardware cost of the desktop cloud system is reduced.
In some possible implementation manners, the desktop cloud server does not encode and decode the encoded data output by the virtual desktop instance, thereby solving the problems that a large amount of computing power is required to be consumed to decrypt and decode the server-side protocol data such as video stream, and the decoded data is subjected to data compression such as video, image, audio and the like again according to the algorithm of the unified protocol in the related art, reducing the computing overhead, and reducing the hardware cost of the desktop cloud system.
In some possible implementations, the terminal is specifically configured to decode the source data from the encoded data using a bytecode specification, for example, compiling an algorithm provided by a proprietary desktop access protocol into bytecode, so as to directly execute the bytecode in the following. The bytecode specification includes, but is not limited to, a web assembly (wasm) bytecode specification and a Java bytecode specification.
On one hand, after the source code of the algorithm provided by the private desktop access protocol is compiled into the byte code, the source code is invisible at the terminal, so that the problem of leakage of the private desktop access protocol is solved. On the other hand, the algorithm provided by the private desktop access protocol is compiled into a bytecode, for example, the algorithm is compiled into a webAssembly bytecode, so that the volume is greatly reduced, an interpreter is not required to interpret the bytecode, the bytecode can be loaded and instantiated quickly, the waiting time before running is reduced, calculation-intensive tasks such as encoding and decoding and the like can be executed with the performance close to that of a binary executable program, the encoding and decoding are accelerated, the number of terminals which can be served by the desktop cloud server is further increased, and the hardware cost is reduced.
In some possible implementation manners, the terminal is further configured to receive an event, encode the event to obtain an encoded event, and then send the encoded event to the desktop cloud server, and correspondingly, the desktop cloud server is specifically configured to operate the virtual desktop instance according to the encoded event to obtain encoded data output by the virtual desktop instance.
Therefore, the virtual desktop can be remotely operated, the effect similar to that of the local operation desktop is obtained, convenience is provided for users, and user experience is improved.
In some possible implementations, the terminal may process any combination of the following steps in parallel:
coding the event to obtain a coded event;
sending the encoded event to the desktop cloud server;
receiving the encoded data;
decoding the source data from the encoded data.
Specifically, the terminal may create multiple concurrent threads, for example, multiple concurrent peripheral processing threads, audio processing threads, transmission threads, video processing threads, image processing threads, and the like, and the multiple concurrent threads may be executed in parallel, so that desktop protocol operations may be decoupled, and synchronization dependency between the desktop protocol operations is prevented from affecting real-time performance of the desktop operations.
In some possible implementation manners, a memory can be shared among multiple concurrent threads created by the terminal, and thus, data can be exchanged among the threads through the shared memory, so that data copying is reduced, on one hand, resource occupation can be reduced, and on the other hand, time delay caused by data copying is saved.
In some possible implementations, the event specifically includes at least one of a mouse input event, a keyboard input event, and an audio input event. Therefore, different interaction modes such as keyboard-mouse interaction, voice interaction and the like can be provided, and the personalized requirements of the user are met.
In some possible implementations, the source data includes any one or more of image data, audio data, and video data. Based on the desktop cloud system, the virtual desktop can be provided for the user, and audio or video can be played remotely, so that the personalized requirements of the user are met.
In some possible implementations, the terminal deploys a browser client for accessing the virtual desktop instance. Due to the fact that the browser client side has good compatibility, the desktop cloud system based on the browser client side has high usability. Moreover, special clients of corresponding versions do not need to be developed for different personal devices, and the cost of the desktop cloud system is further reduced.
In some possible implementations, an application-layer long connection, for example, a WebSocket long connection, may be established between the terminal and the desktop cloud server. Therefore, the terminal and the desktop cloud server can directly transmit the coded data through the long connection of the application layer without secondary transcoding, so that the calculation overhead is reduced, and the hardware cost of the desktop cloud system is reduced.
In a second aspect, the present application provides a method of providing a virtual desktop. The method may be performed by a desktop cloud system. Specifically, the desktop cloud system includes a desktop cloud server and a terminal, the desktop cloud server deploys a virtual desktop instance, and the method includes:
the desktop cloud server acquires encoded data output by the virtual desktop instance and sends the encoded data to the terminal corresponding to the virtual desktop instance;
and the terminal decodes source data from the coded data and presents a virtual desktop according to the source data.
In some possible implementations, the method further includes:
the desktop cloud server does not encode and decode the encoded data output by the virtual desktop instance.
In some possible implementations, the decoding, by the terminal, source data from the encoded data includes:
and the terminal decodes the source data from the coded data by using a byte code specification.
In some possible implementations, the method further includes:
the terminal receives an event, codes the event to obtain a coded event, and then sends the coded event to the desktop cloud server;
the desktop cloud server obtains the encoded data output by the virtual desktop instance, and the method comprises the following steps:
and the desktop cloud server operates the virtual desktop instance according to the coding event to obtain the coding data output by the virtual desktop instance.
In some possible implementations, the terminal processes any combination of the following steps in parallel:
coding the event to obtain a coded event;
sending the encoded event to the desktop cloud server;
receiving the encoded data;
decoding the source data from the encoded data.
In some possible implementations, the event includes at least one of a mouse input event, a keyboard input event, and an audio input event.
In some possible implementations, the source data includes any one or more of image data, audio data, and video data.
In some possible implementations, the terminal deploys a browser client for accessing the virtual desktop instance.
In a third aspect, the present application provides an apparatus for providing a virtual desktop. The apparatus includes means for performing the method steps performed by the desktop cloud server in any of the second aspect or implementations of the second aspect.
In a fourth aspect, the present application provides an apparatus for providing a virtual desktop. The apparatus comprises means for performing the method steps performed by the terminal in the second aspect or any implementation manner of the second aspect.
In a fifth aspect, the present application provides a desktop cloud server. The desktop cloud server is configured to implement the functions of the desktop cloud server in the desktop cloud system according to the first aspect or any implementation manner of the first aspect.
In a sixth aspect, the present application provides a terminal. The terminal is configured to implement the functions of the terminal in the desktop cloud system according to the first aspect or any implementation manner of the first aspect.
In a seventh aspect, the present application provides a virtual desktop instance. The virtual desktop instance is configured to implement the functions of the virtual desktop instance in the desktop cloud system according to the first aspect or any implementation manner of the first aspect.
In an eighth aspect, the present application provides a desktop cloud server. The desktop cloud server includes a processor and a memory. The processor and the memory are in communication with each other. The processor is configured to execute the instructions stored in the memory to cause the device to perform the method as in the second aspect or any implementation manner of the second aspect.
In a ninth aspect, the present application provides a terminal. The terminal includes a processor and a memory. The processor and the memory are in communication with each other. The processor is configured to execute the instructions stored in the memory to cause the terminal to perform the method as in the second aspect or any implementation manner of the second aspect.
In a tenth aspect, the present application provides a computer-readable storage medium having instructions stored therein, where the instructions instruct a desktop cloud server to perform the method according to the second aspect or any implementation manner of the second aspect.
In an eleventh aspect, the present application provides a computer-readable storage medium having instructions stored therein, the instructions instructing a terminal to execute the method according to any one of the implementation manners of the second aspect or the second aspect.
In a twelfth aspect, the present application provides a computer program product comprising instructions. When running on a desktop cloud server, the method of any implementation manner of the second aspect or the second aspect is executed by the desktop cloud server.
In a thirteenth aspect, the present application provides a computer program product containing instructions. When running on a desktop cloud server, the terminal is caused to perform the method of the second aspect or any implementation manner of the second aspect.
The present application can further combine to provide more implementations on the basis of the implementations provided by the above aspects.
Drawings
In order to more clearly illustrate the technical method of the embodiments of the present application, the drawings used in the embodiments will be briefly described below.
Fig. 1 is a system architecture diagram of a desktop cloud system according to an embodiment of the present disclosure;
FIG. 2 is a flowchart of a method for providing a virtual desktop according to an embodiment of the present application;
fig. 3 is a schematic flowchart of an end-side protocol module transmitting data according to an embodiment of the present disclosure;
fig. 4 is a schematic flowchart of browser client interaction data according to an embodiment of the present application;
FIG. 5 is a flowchart of a method for providing a virtual desktop according to an embodiment of the present application;
fig. 6 is a schematic structural diagram of a desktop cloud server according to an embodiment of the present application;
fig. 7 is a schematic structural diagram of a terminal according to an embodiment of the present application.
Detailed Description
The terms "first" and "second" in the embodiments of the present application are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature.
Some technical terms referred to in the embodiments of the present application will be first described.
A Virtual Desktop Infrastructure (VDI) is a system architecture that provides a virtual desktop for a user. The principle of the VDI architecture-based virtual desktop solution is to prepare a dedicated virtual machine for each user on the server side and deploy the operating system and various applications required by the user in the virtual machine, and then deliver the complete virtual machine desktop (i.e., virtual desktop) to the remote user for use through a desktop access protocol.
Systems based on the VDI architecture are also referred to as desktop cloud systems. The desktop cloud system comprises a desktop cloud server and a terminal. The desktop access protocol defines an interaction protocol and a communication channel for transmitting data such as desktop images, videos and peripheral events between a terminal (for example, a desktop cloud client deployed on the terminal) and a desktop cloud server (for example, a virtual machine deployed on the desktop cloud server).
Different types of desktop cloud systems each define a proprietary desktop access protocol. To interface with different protocol specifications, open source client projects deploy an extensible protocol translation component architecture on a network (web) server. The extensible protocol conversion component architecture is used for interfacing different protocol specifications by adding independent components and converting the protocol data which conforms to the specified protocol specification such as the Guacamole protocol specification. The terminal and the desktop cloud server are in butt joint through the Guacamole protocol specification, so that the flexibility and the protocol expansibility of the desktop cloud system can be improved.
However, the protocol conversion component needs to consume a large amount of computing power to decrypt and decode the server-side protocol data such as the video stream, and re-compress the decoded data according to the algorithm of the Guacamole protocol. This creates a large amount of additional computing overhead, limits the number of web clients served by the web server, and increases the hardware cost of the desktop cloud system.
In view of this, embodiments of the present application provide a desktop cloud system and a method for providing a virtual desktop based on the desktop cloud system. The desktop cloud system comprises a desktop cloud server and a terminal. The desktop cloud server is deployed with a virtual desktop instance. The desktop cloud server is used for acquiring coded data output by the virtual desktop instance, sending the coded data to the corresponding terminal, decoding source data from the coded data at the end side by the terminal, and presenting the virtual desktop according to the source data. Because secondary transcoding is not needed, extra computing overhead caused by secondary transcoding is avoided, the number of terminals which can be served by the desktop cloud server is increased, and the hardware cost of the desktop cloud system is reduced.
The terminal can pre-compile an algorithm provided by the private desktop access protocol into a bytecode by using a bytecode specification, for example, a web assembly (wasm) bytecode specification, and directly execute the bytecode for coding and decoding, and a source code of the algorithm provided by the private desktop access protocol is invisible at the terminal, so that the problem of leakage of the private desktop access protocol is solved.
Moreover, the algorithm provided by the private desktop access protocol is compiled into a bytecode, for example, a webassemb bytecode, so that the volume is greatly reduced, an interpreter is not required for interpretation, the algorithm can be loaded and instantiated quickly, the waiting time before operation is reduced, calculation-intensive tasks such as encoding and decoding and the like can be executed with the performance close to that of a binary executable program, the encoding and decoding are accelerated, the number of terminals which can be served by the desktop cloud server is further increased, and the hardware cost is further reduced.
In order to make the technical solution of the present application clearer and easier to understand, a desktop cloud system provided in the embodiments of the present application is described below with reference to the accompanying drawings.
Referring to the architecture diagram of the desktop cloud system shown in fig. 1, the desktop cloud system 10 includes a terminal 12 and a desktop cloud server 14. Desktop cloud server 14 deploys virtual desktop instances 142. The virtual desktop instance 142 is specifically a process or thread for providing a virtual desktop, and the process or thread may run directly in a physical machine such as the desktop cloud server 14, or in a virtual machine or container running on the physical machine. Terminal 12 may deploy a client for accessing virtual desktop instance 142, such as browser client 122 for accessing the virtual desktop instance. In some embodiments, the browser clients 122 (or terminals 12) have a one-to-one correspondence with the virtual desktop instances 142.
Specifically, the desktop cloud server 14 is configured to obtain encoded data output by the virtual desktop instance 142, where the encoded data refers to source data encoded, for example, data encoded according to an algorithm in a private desktop access protocol. The source data may include any one or more of image data, audio data, and video data. The desktop cloud server 14 then sends the encoded data to the terminal 12 corresponding to the virtual desktop instance 142. The terminal 12 is configured to decode source data from the encoded data and present a virtual desktop according to the source data. The decoding of the source data and the rendering of the virtual desktop by the terminal 12 may be implemented by the browser client 122.
In some possible implementations, referring to fig. 1, the browser client 122 includes an end-side protocol module 1222 and a portal module 1224. The end-side protocol module 1222 decodes the source data from the encoded data, and the portal module 1224 renders the virtual desktop according to the source data.
It should be noted that the end-side protocol module 1222 in the browser client 122 may be obtained in real time when the virtual desktop is needed. In particular, desktop cloud system 10 also includes an access control subsystem that includes network server 16. The portal module 1224 may present a desktop user login page through which login information entered by the user, such as a username, password, authentication code, etc., may be captured and then sent to the web services module 162 in the web server 16. The web service module 162 may perform login verification according to the login information, for example, by comparing the login information with the related information in the account database, thereby performing login verification. When the login verification passes, the browser client 122 may download the code of the end-side protocol module 1222 from the web server 16, such as the web service module 162, and then deploy the end-side protocol module 1222 at the browser client 122 according to the code.
Further, a rights control module 164 may also be included in the web server 16. The authorization control module 164 is used to authenticate the logged-in user, for example, to access the virtual desktop instance 142. When authenticated, the logged-in user is allowed access to virtual desktop instance 142, for which reason browser client 122 may download the code of end-side protocol module 1222 from web server 16, otherwise, the logged-in user is denied access to virtual desktop instance 142 and browser client 122 fails to download the code of end-side protocol module 1222.
The web service module 162 and the authority control module 164 may be software modules or hardware modules having corresponding functions. When the software modules are software modules, the software modules can be integrated in the same software or distributed in different software. In addition, fig. 1 illustrates that the network service module 162 and the authorization control module 164 are deployed in the network server 16, in some embodiments, the network service module 162 and the authorization control module 164 may also be deployed in different servers, for example, the network service module 162 is deployed in the network server 16, and the authorization control module 164 is deployed in the authentication server.
In some possible implementations, the browser client 122 is configured to receive an event, for example, any one or more of a keyboard input event, a mouse input event, or an audio input event, encode the event to obtain an encoded event, and send the encoded event to the desktop cloud server 14. Correspondingly, the desktop cloud server 14 is configured to operate the virtual desktop instance 142 according to the encoding event to obtain the encoded data output by the virtual desktop instance 142.
Where the browser client 122 receives events through the portal module 1224. The portal module 1224 includes a peripheral capture thread for capturing peripheral input events, such as keyboard input events, mouse input events, and the like, an audio capture and playback thread for capturing audio input events, and an image rendering thread.
The end-side protocol module 1222 may obtain the above events from the portal module 1224, then encode the events into encoded events, and then send the encoded events to the desktop cloud server 14. In particular, the end-side protocol module 1222 includes a transmission thread, a peripheral processing thread, and an audio processing thread. The transport thread may be used to retrieve events from the portal module 1224, the peripheral processing thread may be used to encode the events to obtain encoded events, and the transport thread is also used to send the encoded events to the desktop cloud server 14.
The end-side protocol module 1222 may also include any one or more of image processing threads and video processing threads. The transmission thread is further configured to obtain encoded data output by the virtual desktop instance 142, where the encoded data may be encoded image data, encoded audio data, or encoded video data. The image processing thread is used for decoding the encoded image data, the audio processing thread is also used for decoding the encoded audio data, and the video processing thread is used for decoding the encoded video data.
The portal module 1224 may obtain image data from the end-side protocol module 1222 and perform image rendering via an image rendering thread to render the virtual desktop on the desktop display main page. The portal module 1224 may also retrieve audio data from the end-side protocol module 1222 and play the audio through an audio capture and play thread. Similarly, the portal module 1224 can also obtain video data from the end-side protocol module 1222 and then play the video on the desktop display home page.
In some possible implementations, the end-side protocol module 1222 may be implemented by a bytecode specification paradigm, such as the WebAssembly bytecode specification. The end-side protocol module 1222 runs in a WebAssembly runtime environment, and can natively support multithreading. Thus, the browser client 122 can create concurrent threads, such as concurrent video processing threads, image processing threads, audio processing threads, peripheral processing threads, and transmission threads, via the end-side protocol module 1222 to concurrently perform any combination of the following steps:
coding the event to obtain a coded event;
sending the encoded event to the desktop cloud server 14;
receiving encoded data;
source data is decoded from the encoded data.
The desktop protocol operations can be decoupled through the multiple parallel threads, and the influence of synchronous dependency among the desktop protocol operations on the real-time performance of the desktop operations is avoided.
Furthermore, the threads can share the memory, so that the threads can directly exchange data through the shared memory when exchanging data, thereby reducing the data copying times, reducing the resource occupation and improving the resource utilization rate. For example, the peripheral processing thread and the transmission thread may share a memory, and after the peripheral processing thread encodes a peripheral input event to obtain an encoded event, the transmission thread directly obtains the encoded event through the shared memory and transmits the encoded event to the desktop cloud server 14.
Similarly, memory may be shared between the portal module 1224 and the end-side protocol module 1222. Thus, the number of data copies between the portal module 1224 and the end-side protocol module 1222 can be reduced, resource occupation can be reduced, resource utilization can be improved, and time delay caused by data copies can be reduced.
Moreover, the end-side protocol module 1222 implemented based on the bytecode specification of WebAssembly, etc. can perform computationally intensive tasks such as protocol encoding and decoding, etc. in the browser client 122 with performance close to that of a binary executable program, thereby achieving encoding and decoding acceleration. Compared with an end-side program based on interpretation languages such as asm.js or javascript, the performance can be improved by several times or even more than 10 times. This further increases the number of browser clients 122 that can be served by the desktop cloud server 14, and reduces hardware costs.
In addition, the desktop cloud system 10 may compress the event or source data using efficient coding and compression algorithms provided by the proprietary protocol specification to obtain data with a high compression ratio. Only less bandwidth resources are needed to transmit between the terminal 12 (for example, the browser client 122) and the desktop cloud server 14, so that the use efficiency of the bandwidth resources is improved, the real-time performance of the keyboard-mouse interaction can be ensured, and the problems of video image jitter, smear and the like can be solved.
In view of the fact that desktop cloud server 14 deploys multiple virtual desktop instances to serve multiple browser clients 122, desktop cloud system 10 may also include desktop gateway 18. The desktop gateway 18 is specifically configured to route encoded events of different browser clients 122 and route encoded data of different virtual desktop instances 142.
An application layer length connection can be established between the browser client 122 and the desktop cloud server 14, the application layer length connection is used for transmitting coding events or coding data, the desktop cloud server 14 does not encode or decode the coding data output by the virtual desktop instance 142, that is, secondary transcoding is not required, the number of the browser clients 122 which can be served by the desktop cloud server 14 is increased, and hardware cost is reduced. The application layer long connection refers to a long connection established in an application layer, and the application layer long connection may be a network socket (WebSocket) long connection.
As shown in fig. 1, when the desktop gateway 18 is further included in the desktop cloud system 10, the application-layer long connection established between the browser client 122 and the desktop cloud server 14 may be the application-layer long connection established between the end-side protocol module 1222 and the desktop gateway 18. As such, the end-side protocol module 1222 may send the coded event to the desktop gateway 18 through an application layer long connection between the end-side protocol module 1222 and the desktop gateway 18, and then the desktop gateway 18 may transmit the coded event to the corresponding virtual desktop instance 142 through a connection with the corresponding virtual desktop instance 142, such as a User Datagram Protocol (UDP) connection or a Transmission Control Protocol (TCP) connection. Similarly, the virtual desktop instance 142 may perform an operation according to the encoding event to obtain corresponding source data, and then encode the source data to output encoded data. The desktop cloud server 14 obtains the encoded data output by the virtual desktop instance, and transmits the encoded data to the desktop gateway 18 through a connection with the desktop gateway 18, such as a TCP or UDP connection, and then the desktop gateway 18 transmits the encoded data to the end-side protocol module 1222 through an application layer long connection with the end-side protocol module 1222.
It should be noted that fig. 1 shows only one terminal 12. In some possible implementations, the desktop cloud system 10 may include a plurality of terminals 12, and the desktop cloud server 14 may provide services for the plurality of terminals 12, which is not limited in this embodiment.
Fig. 1 illustrates the architecture of a desktop cloud system 10 in detail. In order to make the technical solution of the present application clearer and easier to understand, the following describes the method provided by the embodiment of the present application in detail from the perspective of the desktop cloud system 10.
Referring to fig. 2, a flow chart of a method for providing a virtual desktop is shown, the method comprising:
s202: the terminal 12 receives the event.
The event may be a peripheral input event or an audio input event. The peripheral input event includes a keyboard input event, a mouse input event, a touch input event, a stylus input event, and the like, which are not listed herein.
In particular implementations, terminal 12 deploys a client, such as browser client 122, for accessing virtual desktop instance 142. The browser client 122 may capture peripheral input events through a peripheral capture thread in the portal module 1224 and audio input events through an audio capture and play thread. Are not listed here.
S204: the terminal 12 encodes the event to obtain an encoded event.
The end-side protocol module 1222 in the browser client 122 deployed by the terminal 12 may be implemented based on a byte code specification such as WebAssembly. The terminal 12 can directly encode the event on the end side by using a proprietary desktop access protocol, specifically, an algorithm provided by the desktop access protocol, through the end-side protocol module 1222 implemented based on the bytecode specification, so as to obtain the encoded event. The encoding event may specifically be a high compression rate encoding event, which may reduce bandwidth resource consumption. Moreover, the end-side protocol module 1222 implemented based on the bytecode specification does not need an interpreter for interpretation, and can encode the event with performance close to that of the binary executable program, thereby greatly improving the encoding efficiency.
It should be noted that the peer-side protocol module 1222 and the portal module 1224 may share a memory, and based on this, the peer-side protocol module 1222 may directly obtain an event through the shared memory, so as to reduce the number of copy operations and further reduce unnecessary overhead.
S206: the terminal 12 sends the encoded event to the desktop cloud server 14.
Specifically, the terminal 12 may send the coding event to the desktop gateway 18 through an application layer long connection, such as a WebSocket long connection, between the end-side protocol module 1222 and the desktop gateway 18, and then the desktop gateway 18 sends the coding event to the desktop cloud server 14 through a connection, such as a TCP or UDP connection, between the desktop cloud server 14 and the desktop gateway 18. Among other things, the desktop gateway 18 may route the encoded event to a virtual desktop instance 142 corresponding to the terminal 12 deployed by the desktop cloud server 14.
S208: the desktop cloud server 14 operates the virtual desktop instance 142 according to the encoding event to obtain encoded data output by the virtual desktop instance 142.
Specifically, desktop cloud server 14 provides the encoded events to the corresponding virtual desktop instances 142, and virtual desktop instances 142 may decode input events, such as peripheral input events, audio input events, from the encoded events. The virtual desktop instance 142 may perform corresponding operations to obtain source data, such as obtaining image data, audio data, or video data, according to the input event. The virtual desktop instance 142 may encode the source data to obtain encoded data and output the encoded data. The desktop cloud server 14 obtains the encoded data output by the virtual desktop instance.
It should be noted that, the method for providing the virtual desktop according to the embodiment of the present application may not be executed, or the above S202 to S208 may not be executed, for example, the desktop cloud server 14 may also directly obtain the encoded data output by the virtual desktop instance 142, which is not limited in the embodiment of the present application.
S210: the desktop cloud server 14 transmits the encoded data to the terminal 12.
In particular, the desktop cloud server 14 may send the encoded data to the terminal 12, for example, to the end-side protocol module 1222 in the browser client 122 deployed by the terminal 12, through an application-layer long connection, such as a WebSocket long connection, of the desktop gateway 18 and the end-side protocol module 1222.
S212: the terminal 12 decodes the source data from the encoded data.
The end-side protocol module 1222 in the browser client 122 deployed by the terminal 12 may be implemented based on a byte code specification such as WebAssembly. The terminal 12 can directly decode the encoded data at the end side by using a proprietary desktop access protocol, specifically, an algorithm provided by the desktop access protocol, through the end-side protocol module 1222 implemented based on the bytecode specification, so as to obtain the source data. Moreover, the end-side protocol module 1222 implemented based on the bytecode specification does not need an interpreter for interpretation, and can decode the encoded data with performance close to that of a binary executable program, thereby greatly improving decoding efficiency.
S214: the terminal 12 renders the virtual desktop according to the source data.
When the source data comprises image data, the terminal can render images according to the image data, so that the virtual desktop is presented. Specifically, the portal module 1224 in the browser client 122 deployed by the terminal 12 may obtain the image data from the end-side protocol module 1222, perform image rendering through an image rendering thread, and display the rendered image on the desktop display main page, thereby presenting the virtual desktop.
When the output data includes video data, the terminal 12 may also perform video rendering according to the video data, thereby presenting a video picture. When the output data includes audio data, the terminal 12 may also play audio based on the audio data.
In the embodiment shown in fig. 2, the end-side protocol module 1222 may perform bi-directional data transmission. In particular, the end-side protocol module 1222 may implement bi-directional data transfer through a transfer thread. Referring to the flow diagram of data transmission shown in fig. 3, the transmission thread may include an uplink data transmission queue, a downlink data transmission queue, and a WebSocket client.
Specifically, the uplink data transmission queue acquires, by way of a shared memory, a coded event to be transmitted to the desktop cloud server 14 from an input processing thread, such as a peripheral processing thread or an audio processing thread, where the coded event includes a coded keyboard input event, a coded mouse input event (mouse button, click), or coded microphone audio input data.
The WebSocket client converts a bottom TCP/UDP communication request corresponding to the uplink data (specifically, the encoding event) generated by the end-side protocol module 1222 into a WebSocket request, interacts with a WebSocket monitoring port of the desktop gateway 18, and buffers encoded data obtained from the desktop cloud server 14 into a downlink data transmission queue.
The downstream data transmission queue buffers encoded data, including encoded image data, encoded video data, encoded audio data, and the like, acquired from the desktop cloud server 144, and then forwards the encoded data to an output processing thread, such as an image processing thread, an audio processing thread, and a video processing thread, in a shared memory manner, and the output processing thread decodes the encoded data to obtain source data, such as any one or more of the image data, the audio data, and the video data. The thread interacts with the portal module 1224, and the portal module 1224 renders the virtual desktop on the desktop display main page according to the source data.
The content of the desktop display main page display originates from the end-side protocol module 1222. The desktop display main page of the portal module 1224 and the end-side protocol module 1222 interact data by way of shared memory. Referring to fig. 4, a flow chart of data interaction between the desktop display main page and the peer-side protocol module 1222, as shown in fig. 4, the desktop display main page utilizes asynchronous interaction between the shared memory and the peer-side protocol module 1222, specifically, the portal module 1224 and the peer-side protocol module 1222 determine a time interval according to the set frame rate, and periodically check the flag bit to determine whether there is a data refresh. If the uplink data exists, the end-side protocol module 1222 sends the uplink data to the desktop cloud server 14 through the WebSocket client; if the downlink data exists, the desktop display main page carries out corresponding operations such as rendering or playing.
Further, different types of data may have different latency sensitive characteristics, e.g., mouse input events, etc., are more sensitive to latency, while video data is less sensitive to latency. Based on this, when asynchronous interaction is performed between the desktop display main page and the end-side protocol module 1222 based on the shared memory, the desktop display main page may update the display according to the delay sensitive characteristics of various types of data at different time intervals, so as to avoid blocking the main thread of the browser client 122 and affecting the overall performance of the desktop cloud system 10.
The above embodiments have described the method for providing virtual desktop provided by the embodiments of the present application from the perspective of the desktop cloud system 10. Next, the method provided by the embodiment of the present application will be described in detail from the perspective of the terminal 12.
Referring to FIG. 5, a flow diagram of a method for providing a virtual desktop is shown, the method comprising:
s502: the terminal 12 receives the event, codes the event to obtain a coded event, and sends the coded event to the desktop cloud server 14.
Terminal 12 is deployed with a client, such as browser client 122, for accessing virtual desktop instance 142. The terminal 12 may receive the event through the portal module 1224 of the browser client 122. Specifically, the terminal 12 may capture peripheral input events, such as keyboard input events, mouse input events, through a peripheral capture thread in the portal module 1224, and the terminal 12 may also capture audio input events through an audio capture thread in the portal module 1224.
The terminal 12 may encode events, such as keyboard input events, mouse input events, audio input events, etc., via the end-side protocol module 1222 of the browser client 122, resulting in encoded events.
In some possible implementations, an application layer long connection, such as a WebSocket long connection, is established between the terminal 12 and the desktop cloud server 14. When the desktop cloud system 10 includes the desktop gateway 18, an application-layer long connection, such as a WebSocket long connection, may be established between the terminal 12 (specifically the end-side protocol module 1222) and the desktop gateway 18. In this way, the end-side protocol module 1222 in the terminal 12 may send the encoded event through the WebSocket long connection with the desktop gateway 18, and then send the encoded event to the desktop cloud server 14 through the desktop gateway 18.
S504: the terminal 12 receives the encoded data returned by the desktop cloud server 14.
The encoded data is obtained by the desktop cloud server 14 operating the virtual desktop instance 142 corresponding to the terminal 12 (specifically, the browser client 122 deployed by the terminal 12) according to the encoded event. The encoded data may specifically be encoded image data, audio data, and video data.
In some possible implementations, the encoded data is sent by the desktop cloud server 14 to the desktop gateway 18, and the terminal 12 may receive the encoded data through a WebSocket long connection with the desktop gateway 18.
S506: the terminal 12 decodes the source data from the encoded data and renders the virtual desktop according to the source data.
In some possible implementations, the terminal 12 may create a plurality of parallel threads through the end-side protocol module 1222, and then process any combination of the following steps in parallel through the parallel threads:
coding the event to obtain a coded event;
sending the encoded event to the desktop cloud server;
receiving the encoded data;
decoding the source data from the encoded data.
The memory can be shared among a plurality of parallel threads. Therefore, data copying can be reduced, and the data processing efficiency is improved. Further, the portal module 1224 in the browser client 122 may share memory with the end-side protocol module 1222. Correspondingly, the portal module 1224 may interact with the peer-to-peer protocol module 1222 through a shared memory, and after obtaining the source data, perform image rendering according to the source data, such as image data, so as to present a virtual desktop.
In this embodiment of the application, the browser client 122 based on the WebAssembly may run in a sandbox environment controlled by the browser client 122, and cannot directly access the device file, so that hardware acceleration may be supported by hardware acceleration provided by the browser client 122 itself, for example, two-dimensional (2D) or 3D image rendering by a Graphics Processing Unit (GPU) of WebGL.
In some possible implementations, an acceleration service may also be provided at an operating system level, and the acceleration service provides acceleration capability to a WebAssembly program (e.g., the end-side protocol module 1222) in the browser client 122 by using a shared memory or a WebSocket service, so that operations of a large amount of data can be accelerated at one time, and additional overhead caused by interaction with the service is reduced.
The desktop cloud system and the method for providing a virtual desktop based on the desktop cloud system provided by the embodiment of the present application are described in detail above with reference to fig. 1 to 5, and the apparatus and the device provided by the embodiment of the present application are described below.
The present embodiment provides an apparatus for providing a virtual desktop, which includes modules for executing the method steps executed by the terminal 12 in the embodiment shown in fig. 2 or fig. 5. The present embodiment also provides another apparatus for providing a virtual desktop, which includes modules for executing the method steps executed by the desktop cloud server 14 in the embodiment shown in fig. 2.
The apparatus for providing a virtual desktop according to the embodiment of the present application may correspond to performing the method described in the embodiment of the present application, and the above and other operations and/or functions of each module/unit of the apparatus for providing a virtual desktop are respectively for implementing corresponding flows of each method in the embodiments shown in fig. 2 or fig. 5, and are not described herein again for brevity.
The embodiment of the present application further provides a desktop cloud server 14, where the desktop cloud server 14 is specifically configured to implement the function of the desktop cloud server 14 in the desktop cloud system 10 shown in fig. 1. Next, the desktop cloud server 14 will be described in detail from the perspective of hardware instantiation.
Fig. 6 provides a schematic structural diagram of the desktop cloud server 14, and as shown in fig. 6, the desktop cloud server 14 includes a bus 601, a processor 602, a communication interface 603, and a memory 604. The processor 602, memory 604, and communication interface 603 communicate over a bus 601.
The bus 601 may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is shown in FIG. 6, but this is not intended to represent only one bus or type of bus.
The processor 602 may be any one or more of a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a Micro Processor (MP), a Digital Signal Processor (DSP), and the like.
Communication interface 603 is an input/output (I/O) device. The communication interface 603 is used for external communication. Specifically, the communication interface 603 may receive the encoded event sent by the terminal 12, or send the encoded data output by the virtual desktop instance 142 to the terminal 12 corresponding to the virtual desktop instance 142, and so on.
The memory 604 may include a volatile memory (volatile memory), such as a Random Access Memory (RAM). The memory 604 may also include a non-volatile memory (non-volatile memory), such as a read-only memory (ROM), a flash memory, a Hard Disk Drive (HDD), or a Solid State Drive (SSD).
The memory 604 stores executable program code that is executed by the processor 602 to perform the method for providing a virtual desktop as described above.
The embodiment of the present application further provides a terminal 12, where the terminal 12 is specifically configured to implement the functions of the terminal 12 in the desktop cloud system 10 shown in fig. 1. Next, the terminal 12 will be described in detail from the viewpoint of hardware implementation.
Fig. 7 provides a schematic diagram of the structure of the terminal 12, and as shown in fig. 7, the terminal 12 includes a bus 701, a processor 702, a communication interface 703 and a memory 704. The processor 702, memory 704, and communication interface 703 communicate over a bus 701.
The bus 701 may be a peripheral component interconnect standard PCI bus or an extended industry standard architecture EISA bus or the like. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is shown in FIG. 7, but this is not intended to represent only one bus or type of bus.
The processor 702 may be any one or more of a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a Microprocessor (MP), or a Digital Signal Processor (DSP).
The communication interface 703 is an input-output device. The communication interface 703 is used for external communication. Specifically, the communication interface 703 may transmit the encoded event to the desktop cloud server 14, or receive the encoded data transmitted by the desktop cloud server 14, or the like. Further, the communication interface 703 may also include a display. Displays may be classified into a Liquid Crystal Display (LCD), an Organic Light Emitting Diode (OLED) display, and the like, according to manufacturing materials. The communication interface 903 may also include a microphone. Where the display may present a virtual desktop and the microphone may receive audio input.
The memory 704 may include volatile memory, such as random access memory RAM. The memory 704 may also include non-volatile memory, such as read only memory ROM, flash memory, a mechanical hard disk HDD, or a solid state disk SSD.
The memory 704 stores executable program code that the processor 702 executes to perform the method for providing a virtual desktop as described above.
The embodiment of the present application further provides a virtual desktop instance 142, where the virtual desktop instance 142 is used to implement the function of the virtual desktop instance 142 in the desktop cloud system 10 shown in fig. 1.
The embodiment of the present application further provides a computer-readable storage medium, where the computer-readable storage medium includes instructions that instruct the desktop cloud server 14 to execute the above method for providing a virtual desktop.
An embodiment of the present application further provides a computer-readable storage medium, where the computer-readable storage medium includes instructions that instruct the terminal 12 to execute the method for providing a virtual desktop.
Embodiments of the present application further provide a computer program product, and when the computer program product is executed by a computer, the computer executes any one of the methods for providing a virtual desktop. The computer program product may be a software installation package that can be downloaded and executed on a computer in the event that any of the aforementioned methods of providing a virtual desktop are desired.

Claims (23)

1. The desktop cloud system is characterized by comprising a desktop cloud server and a terminal, wherein the desktop cloud server deploys a virtual desktop instance;
the desktop cloud server is used for acquiring coded data output by the virtual desktop instance and sending the coded data to the terminal corresponding to the virtual desktop instance;
and the terminal is used for decoding source data from the coded data and presenting a virtual desktop according to the source data.
2. The system of claim 1, wherein the desktop cloud server does not encode the encoded data output by the virtual desktop instance.
3. The system according to claim 1 or 2, wherein the terminal is specifically configured to decode the source data from the encoded data using a bytecode specification.
4. The system according to any one of claims 1 to 3, wherein the terminal is further configured to receive an event, encode the event to obtain an encoded event, and send the encoded event to the desktop cloud server;
the desktop cloud server is specifically configured to operate the virtual desktop instance according to the coding event to obtain the coding data output by the virtual desktop instance.
5. The system according to claim 4, wherein the terminal processes any combination of the following steps in parallel:
coding the event to obtain a coded event;
sending the encoded event to the desktop cloud server;
receiving the encoded data;
decoding the source data from the encoded data.
6. The system of claim 4 or 5, wherein the event comprises at least one of a mouse input event, a keyboard input event, and an audio input event.
7. The system according to any one of claims 1 to 6, wherein the source data includes any one or more of image data, audio data, and video data.
8. The system of any of claims 1 to 7, wherein the terminal deploys a browser client for accessing the virtual desktop instance.
9. A method for providing a virtual desktop is applied to a desktop cloud system, the desktop cloud system comprises a desktop cloud server and a terminal, the desktop cloud server deploys a virtual desktop instance, and the method comprises the following steps:
the desktop cloud server acquires encoded data output by the virtual desktop instance and sends the encoded data to the terminal corresponding to the virtual desktop instance;
and the terminal decodes source data from the coded data and presents a virtual desktop according to the source data.
10. The method of claim 9, further comprising:
the desktop cloud server does not encode and decode the encoded data output by the virtual desktop instance.
11. The method according to claim 9 or 10, wherein the terminal decodes source data from the encoded data, comprising:
and the terminal decodes the source data from the coded data by using a byte code specification.
12. The method according to any one of claims 9 to 11, further comprising:
the terminal receives an event, codes the event to obtain a coded event, and sends the coded event to the desktop cloud server;
the desktop cloud server obtains the encoded data output by the virtual desktop instance, and the method comprises the following steps:
and the desktop cloud server operates the virtual desktop instance according to the coding event to obtain the coding data output by the virtual desktop instance.
13. The method according to claim 12, wherein the terminal processes any combination of the following steps in parallel:
coding the event to obtain a coded event;
sending the encoded event to the desktop cloud server;
receiving the encoded data;
decoding the source data from the encoded data.
14. The method of claim 12 or 13, wherein the event comprises at least one of a mouse input event, a keyboard input event, and an audio input event.
15. The method according to any one of claims 9 to 14, wherein the source data includes any one or more of image data, audio data and video data.
16. The method of any of claims 9 to 15, wherein the terminal deploys a browser client for accessing the virtual desktop instance.
17. A desktop cloud server, wherein the desktop cloud server is configured to implement the functions of the desktop cloud server in the desktop cloud system according to any one of claims 1 to 8.
18. A terminal, characterized in that the terminal is used to implement the functions of the terminal in the desktop cloud system of any of claims 1 to 8.
19. A virtual desktop instance, wherein the virtual desktop instance is configured to implement the functionality of the virtual desktop instance in the desktop cloud system as claimed in any one of claims 1 to 8.
20. A desktop cloud server, comprising a processor and a memory;
the processor is to execute instructions stored in the memory to cause the desktop cloud server to perform the method of any of claims 9-16.
21. A terminal, characterized in that the terminal comprises a processor and a memory;
the processor is configured to execute instructions stored in the memory to cause the terminal to perform the method of any of claims 9 to 16.
22. A computer-readable storage medium comprising instructions that instruct a computer to perform the method of any of claims 9 to 16.
23. A computer program product, characterized in that it causes a computer to carry out the method according to any one of claims 9 to 16 when said computer program product is run on the computer.
CN202011268930.7A 2020-09-29 2020-11-13 Desktop cloud system and related methods, devices, equipment and media Pending CN114356465A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP21873938.1A EP4206916A4 (en) 2020-09-29 2021-06-23 Desktop cloud system and related method, apparatus, device, and medium
PCT/CN2021/101742 WO2022068276A1 (en) 2020-09-29 2021-06-23 Desktop cloud system and related method, apparatus, device, and medium
US18/191,385 US20230236856A1 (en) 2020-09-29 2023-03-28 Desktop Cloud System and Related Method, Apparatus, Device, and Medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011052754 2020-09-29
CN2020110527543 2020-09-29

Publications (1)

Publication Number Publication Date
CN114356465A true CN114356465A (en) 2022-04-15

Family

ID=81089966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011268930.7A Pending CN114356465A (en) 2020-09-29 2020-11-13 Desktop cloud system and related methods, devices, equipment and media

Country Status (1)

Country Link
CN (1) CN114356465A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115562794A (en) * 2022-12-07 2023-01-03 天津卓朗昆仑云软件技术有限公司 Virtual desktop system and virtual desktop implementation method
CN118132292A (en) * 2024-04-28 2024-06-04 龙芯中科(合肥)技术有限公司 Message processing method, device, electronic equipment and readable storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002028085A2 (en) * 2000-09-29 2002-04-04 Sun Microsystems, Inc. Reusing decoded multimedia data for multiple users
CN103873568A (en) * 2014-03-04 2014-06-18 赛特斯信息科技股份有限公司 System and method for realizing remote virtual desktop display based on cloud computing
CN105072190A (en) * 2015-08-21 2015-11-18 刘昌平 Method and system for realizing real-time desktop cloud
WO2015196590A1 (en) * 2014-06-23 2015-12-30 中兴通讯股份有限公司 Method and apparatus for playing desktop cloud video
CN105577819A (en) * 2016-01-26 2016-05-11 杭州碧创科技有限公司 Sharing system, sharing method and sharing device for virtual desktop
CN106331733A (en) * 2016-09-28 2017-01-11 广东科学技术职业学院 Desktop cloud terminal's audio and video data real-time processing method and system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002028085A2 (en) * 2000-09-29 2002-04-04 Sun Microsystems, Inc. Reusing decoded multimedia data for multiple users
CN103873568A (en) * 2014-03-04 2014-06-18 赛特斯信息科技股份有限公司 System and method for realizing remote virtual desktop display based on cloud computing
WO2015196590A1 (en) * 2014-06-23 2015-12-30 中兴通讯股份有限公司 Method and apparatus for playing desktop cloud video
CN105072190A (en) * 2015-08-21 2015-11-18 刘昌平 Method and system for realizing real-time desktop cloud
CN105577819A (en) * 2016-01-26 2016-05-11 杭州碧创科技有限公司 Sharing system, sharing method and sharing device for virtual desktop
CN106331733A (en) * 2016-09-28 2017-01-11 广东科学技术职业学院 Desktop cloud terminal's audio and video data real-time processing method and system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115562794A (en) * 2022-12-07 2023-01-03 天津卓朗昆仑云软件技术有限公司 Virtual desktop system and virtual desktop implementation method
CN115562794B (en) * 2022-12-07 2023-03-10 天津卓朗昆仑云软件技术有限公司 Virtual desktop system and implementation method of virtual desktop
CN118132292A (en) * 2024-04-28 2024-06-04 龙芯中科(合肥)技术有限公司 Message processing method, device, electronic equipment and readable storage medium
CN118132292B (en) * 2024-04-28 2024-07-30 龙芯中科(合肥)技术有限公司 Message processing method, device, electronic equipment and readable storage medium

Similar Documents

Publication Publication Date Title
US10567809B2 (en) Selective media playing method and apparatus according to live streaming and recorded streaming
CN107277612B (en) Method and apparatus for playing media stream on web browser
US12034987B2 (en) Systems and methods of orchestrated networked application services
CN108449633B (en) Set top box cloud system based on NFV and service implementation method
CN109068153B (en) Video playing method and device and computer readable storage medium
US9866656B2 (en) System and method for single KVM client accommodating multiple different video compression technologies
CN102460407A (en) Virtual desktop services
CN114356465A (en) Desktop cloud system and related methods, devices, equipment and media
US20140243083A1 (en) Apparatus and method of providing cloud service using game platform based on streaming
US20160044079A1 (en) Distribution control system, distribution control method, and computer-readable storage medium
CN113422839A (en) Cloud mobile phone system based on cloud computing, control method, medium and electronic device
Kim et al. Cloud‐based gaming service platform supporting multiple devices
CN112261421B (en) Virtual reality display method and device, electronic equipment and storage medium
CN113489805A (en) Docking method, device, equipment and storage medium of cloud desktop system
CN108809924B (en) Method and apparatus for performing network real-time communication
US20230236856A1 (en) Desktop Cloud System and Related Method, Apparatus, Device, and Medium
CN108337248B (en) Media playback apparatus and media service apparatus
US11784887B1 (en) Bandwidth throttling
CN112997220A (en) System and method for visualization and interaction of 3D models via remotely rendered video streams
CN115022725A (en) Video playing method and device
EP2323338A1 (en) Method and system for providing secure handling of information for complete internet anywhere
Tamm et al. Plugin free remote visualization in the browser
CN106210867A (en) A kind of method and apparatus of data sharing
KR102359367B1 (en) Method and apparatus for game streaming
KR20130109904A (en) Method and apparatus for servicing multi-dimension game based on multi-screen service

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination