Remote control method and system
By establishing a remote control link between the main control terminal group and the controlled virtual machine VM2 in the first server of the cloud virtualization system, it has realized any of the main control terminal under the same account. The control solves the problem of remote control between two R -ends in the GPU POOL cloud virtualization system.
Patent Information
- Application Number
- CN202010228926.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-03-27
- Publication Date
- 2025-01-21
- Estimated Expiration
- 2040-03-27
AI Technical Summary
In a cloud virtualization system based on GPU POOL, how to achieve remote control between two R terminals, especially the control of any master control terminal under the same account on the controlled terminal under the other account.
By establishing a remote control link between the main control terminal group and the controlled virtual machine VM2 in the first server, any main control terminal can control at least one controlled terminal through the link. Specific steps include: the first server obtains the storage location of the controlled terminal group picture in the second server, and sends it to the main control terminal through the remote control link; the main control terminal obtains the encoded data of the controlled terminal group based on the storage location, and decodes it. Then the operation screen is displayed; the main control terminal sends the operation message to VM2 through the remote control link, VM2 generates rendering instructions and sends them to the second server, and the second server generates the rendering screen and saves it to the specified location; the controlled terminal obtains the save location and Display the rendering screen.
It enables any master terminal under the same account to control the controlled terminal under another account, meeting the need to realize remote control between two R terminals in the cloud virtualization system.
Smart Images

Figure CN111414238B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of remote control, and in particular to a remote control method and system. Background Art
[0002] Cloud virtualization technology is currently developing very rapidly. With the further development of public cloud platforms and private cloud platforms, further segmentation requirements have been proposed for virtual desktop cloud platforms. Currently, in the direction of virtual cloud desktops, cloud desktop office users, 2D / 3D design and development users, and 3D game entertainment users are gradually refined according to user usage behavior. In order to meet users' high demand for images, GPU POOL is proposed. GPU POOL can render rendering instructions from the virtual machine and send the rendered images to the R end. The R end can be hard R or soft R. Soft R runs on the terminal device. Hard R is an independent device. R only has decoding and display functions. All user operations on the system are completed by VM. The terminal device can only include a GPU, a simple CPU, and a display screen.
[0003] It can be seen that how to realize remote control between two R terminals in a cloud virtualization system based on GPU POOL is a problem that needs to be solved. Summary of the invention
[0004] The embodiment of the present disclosure provides a remote control method and system, which can realize that any master terminal under the same account controls a controlled terminal under another account. The technical solution is as follows:
[0005] According to a first aspect of an embodiment of the present disclosure, a remote control method is provided, which is applied to a remote control system, the system comprising a first server, a master control terminal group and a controlled terminal group, wherein the master control terminal group comprises at least one master control terminal, the controlled terminal group comprises at least one controlled terminal, each master control terminal corresponds to a first account, and each controlled terminal corresponds to a second account; the first server comprises a controlled virtual machine VM2, VM2 corresponds to the controlled terminal group; the method comprises:
[0006] The first server establishes a remote control link between the master control terminal group and VM2;
[0007] Any master control terminal controls at least one controlled terminal through a remote control link.
[0008] In one embodiment, the system further includes a second server, and any one of the master control terminals controls at least one controlled terminal through a remote control link, including:
[0009] The first server obtains a second storage location storing the screen of the controlled terminal group in the second server, and sends the location to at least one master control terminal via a remote control link;
[0010] Each master control terminal obtains the coded data of the controlled terminal group according to the second storage location, and displays the corresponding operation screen after decoding;
[0011] Any master control terminal sends an operation message based on the operation screen to VM2 of the first server through a remote control link;
[0012] VM2 generates a rendering instruction according to the operation message, and sends the rendering instruction to the second server;
[0013] The second server generates a rendering picture according to the rendering instruction, and saves the rendering picture to a second saving location;
[0014] Each controlled terminal obtains the second saved location, and displays the rendering picture according to the second saved location.
[0015] In one embodiment, before the first server establishes a remote control link between the master control terminal group and VM2, the method further includes: determining that a condition for establishing remote control is met;
[0016] Correspondingly, if the conditions for establishing remote control are met, a remote control link is established between the master control terminal and VM2.
[0017] In one embodiment, determining that the conditions for establishing remote control are met includes:
[0018] Any controlled terminal sends a first control request to the first server, where the first control request carries the second account;
[0019] The first server sends the first control request to the master control terminal group corresponding to the bound first account according to the pre-stored binding relationship;
[0020] After receiving the first control request, any master control terminal obtains the first user input message, and when the first user input message indicates that the control is agreed, sends a first notification message to the first server;
[0021] The first server receives the first notification message and determines that the condition for establishing remote control is met.
[0022] In one embodiment, determining that the conditions for establishing remote control are met includes:
[0023] Any master control terminal sends a second control request to the first server, where the second control request carries the first account;
[0024] The first server sends the second control request to the controlled terminal group corresponding to the bound first account according to the pre-stored binding relationship;
[0025] After receiving the second control request, any controlled terminal obtains a second user input message, and when the second user input message indicates consent to be controlled, sends a second notification message to the first server;
[0026] The first server receives the second notification message and determines that the condition for establishing remote control is met.
[0027] In one embodiment, the first server further includes a master control virtual machine VM1, VM1 corresponds to the master control terminal group, and before the first server establishes a remote control link between the master control terminal and VM2, the method further includes: the first server pre-stores the binding relationship.
[0028] In one embodiment, the first server pre-storing the binding relationship includes:
[0029] Any controlled terminal sends a first binding request to VM2 of the first server, where the first binding request includes a first account of the master terminal group and a second account of the controlled terminal group;
[0030] VM1 of the first server sends a first binding request to the master control terminal group;
[0031] After receiving the first binding request, any master control terminal obtains a third user input message, and when the third user input message indicates consent to the binding, sends a third notification message to the first server;
[0032] The first server receives the third notification message and generates a binding relationship between the first account and the second account.
[0033] In one embodiment, the first server pre-storing the binding relationship includes:
[0034] Any control terminal sends a second binding request to VM1 of the first server, where the second binding request includes the first account of the control terminal and the second account of the controlled terminal;
[0035] VM2 of the first server sends a second binding request to the controlled terminal group;
[0036] After receiving the second binding request, any controlled terminal obtains a fourth user input message, and when the fourth user input message indicates consent to the binding, sends a fourth notification message to the first server;
[0037] The first server receives the fourth notification message, and generates a binding relationship between the first account and the second account.
[0038] In one embodiment, the method further comprises:
[0039] After receiving the control interruption instruction from any master control terminal or any controlled terminal, the first server removes the remote control link and sends the first storage location storing the master control terminal group screen in the second server to the master control terminal group through VM1.
[0040] In one embodiment, before the first server pre-stores the binding relationship, the method further includes:
[0041] The master terminal group logs in to VM1 of the first server through the first account, and the controlled terminal group logs in to VM2 of the first server through the second account.
[0042] In one embodiment, the master control terminal group includes a first master control terminal and a second master control terminal, and the master control terminal group logs in to VM1 of the first server through the first account, including:
[0043] The first master control terminal sends a first operation message to the first server; the first operation message includes a first device identifier of the first master control terminal, a first account, a first operation action based on the first account, and first display information of the first terminal device;
[0044] The first server allocates VM1 corresponding to the first account based on the first device identifier, and determines whether the first account logs in for the first time;
[0045] If it is the first login, the first server generates a first rendering instruction according to the first display information and the first operation action, and sends the first rendering instruction to the second server; and stores the first action state information corresponding to the first operation action;
[0046] The second server performs rendering based on the first rendering instruction to obtain the screen of the master terminal group, extracts the first storage location of the screen of the controlled terminal group, and sends the first storage location to the first server;
[0047] The first server receives the first storage location and sends the first storage location to the first terminal;
[0048] The first master control terminal obtains and displays the master control terminal group screen according to the first storage location.
[0049] In one embodiment, the method further comprises:
[0050] If the second main control terminal has logged in to VM1, the first action state information corresponding to the first operation action is locally queried, and a first rendering instruction is generated according to the first action state information and the first display information, and the first rendering instruction is sent to the second server;
[0051] The second server performs rendering based on the first rendering instruction to obtain a main control terminal group screen, and stores the main control terminal group screen to a first storage location of the main control terminal group screen;
[0052] The first master control terminal and the second master control terminal obtain and display the master control terminal group screen according to the first storage location.
[0053] In one embodiment, the controlled terminal group includes a first controlled terminal and a second controlled terminal, and the controlled terminal group logs in to VM2 of the first server through the second account, including:
[0054] The first controlled terminal sends a second operation message to the first server; the second operation message includes a second device identifier of the first controlled terminal, a second account, a second operation action based on the second account, and second display information of the second controlled terminal;
[0055] The first server allocates VM2 corresponding to the second account based on the second device identifier, and determines whether the second account logs in for the first time;
[0056] If it is the first login, the first server generates a second rendering instruction according to the second display information and the second operation action, and sends the second rendering instruction to the second server; and stores the second action state information corresponding to the second operation action;
[0057] The second server performs rendering based on the second rendering instruction to obtain a screen of the controlled terminal group, extracts a second storage location of the screen of the controlled terminal group, and sends the second storage location to the first server;
[0058] The first server receives the second storage location and sends the first storage location to the first controlled terminal;
[0059] The first controlled terminal obtains and displays the controlled terminal group screen according to the second storage location.
[0060] In one embodiment, the method further comprises:
[0061] If the second controlled terminal has logged in to VM2, the second action state information corresponding to the second operation action is queried locally, and a second rendering instruction is generated according to the second action state information and the second display information, and the second rendering instruction is sent to the second server;
[0062] The second server performs rendering based on the second rendering instruction to obtain a screen of the controlled terminal group, and stores the screen of the controlled terminal group in a second storage location of the screen of the controlled terminal group;
[0063] The first controlled terminal and the second controlled terminal obtain and display the controlled terminal group screen according to the second storage location.
[0064] According to a second aspect of an embodiment of the present disclosure, a remote control system is provided, the system comprising:
[0065] The system includes a first server, a master control terminal group and a controlled terminal group, wherein the master control terminal group includes at least one master control terminal, the controlled terminal group includes at least one controlled terminal, each master control terminal corresponds to a first account, and each controlled terminal corresponds to a second account; the first server includes a controlled virtual machine VM2, and VM2 corresponds to the controlled terminal group;
[0066] The first server establishes a remote control link between the master control terminal group and VM2;
[0067] Any master control terminal can control at least one controlled terminal through a remote control link.
[0068] In one embodiment, the system further includes a second server, and any one of the master control terminals controls at least one controlled terminal through a remote control link, including:
[0069] The first server obtains a second storage location storing the screen of the controlled terminal group in the second server, and sends the location to at least one master control terminal via a remote control link;
[0070] Each master control terminal obtains the coded data of the controlled terminal group according to the second storage location, and displays the corresponding operation screen after decoding;
[0071] Any master control terminal sends an operation message based on the operation screen to VM2 of the first server through a remote control link;
[0072] VM2 generates a rendering instruction according to the operation message, and sends the rendering instruction to the second server;
[0073] The second server generates a rendering picture according to the rendering instruction, and saves the rendering picture to a second saving location;
[0074] Each controlled terminal obtains the second saved location, and displays the rendering picture according to the second saved location.
[0075] In one embodiment, before the first server establishes a remote control link between the master control terminal group and VM2, the method further includes: determining that a condition for establishing remote control is met;
[0076] Correspondingly, if the conditions for establishing remote control are met, a remote control link is established between the master control terminal and VM2.
[0077] In one embodiment, determining that the conditions for establishing remote control are met includes:
[0078] Any controlled terminal sends a first control request to the first server, where the first control request carries the second account;
[0079] The first server sends the first control request to the master control terminal group corresponding to the bound first account according to the pre-stored binding relationship;
[0080] After receiving the first control request, any master control terminal obtains the first user input message, and when the first user input message indicates that the control is agreed, sends a first notification message to the first server;
[0081] The first server receives the first notification message and determines that the condition for establishing remote control is met.
[0082] In one embodiment, determining that the conditions for establishing remote control are met includes:
[0083] Any master control terminal sends a second control request to the first server, where the second control request carries the first account;
[0084] The first server sends the second control request to the controlled terminal group corresponding to the bound first account according to the pre-stored binding relationship;
[0085] After receiving the second control request, any controlled terminal obtains a second user input message, and when the second user input message indicates consent to be controlled, sends a second notification message to the first server;
[0086] The first server receives the second notification message and determines that the condition for establishing remote control is met.
[0087] In one embodiment, the first server further includes a master control virtual machine VM1, VM1 corresponds to the master control terminal group, and before the first server establishes a remote control link between the master control terminal and VM2, the first server pre-stores a binding relationship.
[0088] In one embodiment, the first server pre-storing the binding relationship includes:
[0089] Any controlled terminal sends a first binding request to VM2 of the first server, where the first binding request includes a first account of the control terminal group and a second account of the controlled terminal group;
[0090] VM1 of the first server sends a first binding request to the master control terminal group;
[0091] After receiving the first binding request, any master control terminal obtains a third user input message, and when the third user input message indicates consent to the binding, sends a third notification message to the first server;
[0092] The first server receives the third notification message and generates a binding relationship between the first account and the second account.
[0093] In one embodiment, the first server pre-storing the binding relationship includes:
[0094] Any control terminal sends a second binding request to VM1 of the first server, where the second binding request includes the first account of the control terminal and the second account of the controlled terminal;
[0095] VM2 of the first server sends a second binding request to the controlled terminal group;
[0096] After receiving the second binding request, any controlled terminal obtains a fourth user input message, and when the fourth user input message indicates consent to the binding, sends a fourth notification message to the first server;
[0097] The first server receives the fourth notification message, and generates a binding relationship between the first account and the second account.
[0098] In one embodiment, after receiving a control interruption instruction from any master terminal or any controlled terminal, the first server removes the remote control link and sends the first storage location of the master terminal group screen stored in the second server to the master terminal group through VM1.
[0099] In one embodiment, before the first server pre-stores the binding relationship, the method further includes:
[0100] The master terminal group logs in to VM1 of the first server through the first account, and the controlled terminal group logs in to VM2 of the first server through the second account.
[0101] In one embodiment, the master control terminal group includes a first master control terminal and a second master control terminal, and the master control terminal group logs in to VM1 of the first server through the first account, including:
[0102] The first master control terminal sends a first operation message to the first server; the first operation message includes a first device identifier of the first master control terminal, a first account, a first operation action based on the first account, and first display information of the first terminal device;
[0103] The first server allocates VM1 corresponding to the first account based on the first device identifier, and determines whether the first account logs in for the first time;
[0104] If it is the first login, the first server generates a first rendering instruction according to the first display information and the first operation action, and sends the first rendering instruction to the second server; and stores the first action state information corresponding to the first operation action;
[0105] The second server performs rendering based on the first rendering instruction to obtain the screen of the master terminal group, extracts the first storage location of the screen of the controlled terminal group, and sends the first storage location to the first server;
[0106] The first server receives the first storage location and sends the first storage location to the first terminal;
[0107] The first master control terminal obtains and displays the master control terminal group screen according to the first storage location.
[0108] In one embodiment, the method further comprises:
[0109] If the second main control terminal has logged in to VM1, the first action state information corresponding to the first operation action is locally queried, and a first rendering instruction is generated according to the first action state information and the first display information, and the first rendering instruction is sent to the second server;
[0110] The second server performs rendering based on the first rendering instruction to obtain a main control terminal group screen, and stores the main control terminal group screen to a first storage location of the main control terminal group screen;
[0111] The first master control terminal and the second master control terminal obtain and display the master control terminal group screen according to the first storage location.
[0112] In one embodiment, the controlled terminal group includes a first controlled terminal and a second controlled terminal, and the controlled terminal group logs in to VM2 of the first server through the second account, including:
[0113] The first controlled terminal sends a second operation message to the first server; the second operation message includes a second device identifier of the first controlled terminal, a second account, a second operation action based on the second account, and second display information of the second controlled terminal;
[0114] The first server allocates VM2 corresponding to the second account based on the second device identifier, and determines whether the second account logs in for the first time;
[0115] If it is the first login, the first server generates a second rendering instruction according to the second display information and the second operation action, and sends the second rendering instruction to the second server; and stores the second action state information corresponding to the second operation action;
[0116] The second server performs rendering based on the second rendering instruction to obtain a screen of the controlled terminal group, extracts a second storage location of the screen of the controlled terminal group, and sends the second storage location to the first server;
[0117] The first server receives the second storage location and sends the first storage location to the first controlled terminal;
[0118] The first controlled terminal obtains and displays the controlled terminal group screen according to the second storage location.
[0119] In one embodiment, the method further comprises:
[0120] If the second controlled terminal has logged in to VM2, the second action state information corresponding to the second operation action is queried locally, and a second rendering instruction is generated according to the second action state information and the second display information, and the second rendering instruction is sent to the second server;
[0121] The second server performs rendering based on the second rendering instruction to obtain a screen of the controlled terminal group, and stores the screen of the controlled terminal group in a second storage location of the screen of the controlled terminal group;
[0122] The first controlled terminal and the second controlled terminal obtain and display the controlled terminal group screen according to the second storage location.
[0123] The present disclosure can realize that any master control terminal under the same account controls a controlled terminal under another account.
[0124] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0125] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the present disclosure.
[0126] Figure 1 is a structural diagram of a remote control system provided by an embodiment of the present disclosure;
[0127] Figure 2 is a flow chart of a remote control method provided by an embodiment of the present disclosure;
[0128] Figure 3 is a flow chart of establishing a binding relationship provided by an embodiment of the present disclosure;
[0129] Figure 4 is a flow chart of establishing a binding relationship provided by an embodiment of the present disclosure;
[0130] Figure 5 is a flow chart of determining whether a condition for establishing remote control is met, provided by an embodiment of the present disclosure;
[0131] Figure 6 is a flow chart of determining whether a condition for establishing remote control is met, provided by an embodiment of the present disclosure;
[0132] Figure 7 is a structural diagram of a remote control system provided by an embodiment of the present disclosure;
[0133] Figure 8 It is a flow chart of a remote control method provided by an embodiment of the present disclosure. DETAILED DESCRIPTION
[0134] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, the same numbers in different drawings represent the same or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present disclosure. Instead, they are merely examples of devices and methods consistent with some aspects of the present disclosure as detailed in the appended claims.
[0135] Part of the following description explicitly or implicitly involves algorithms and functional or symbolic representations of operations on data in computer memory. These algorithmic descriptions and functional or symbolic representations are methods used by those skilled in the art of data processing to more effectively express the essence of their work to other technicians in the field. Algorithms are generally conceived here as a series of methodical steps that generate a desired result. These steps are steps that require physical manipulation of physical quantities such as electrical, magnetic or optical signals that can be stored, transmitted, combined, compared and manipulated by other means.
[0136] Unless otherwise specified, as will be apparent below, it should be understood that discussions of terms such as "receiving", "establishing", "rendering", "sending", "obtaining", "generating", etc. used throughout this specification refer to the actions and processing of computer systems or similar electronic devices, which manipulate and convert data represented as physical quantities within the computer system into other data also represented as physical quantities within the computer system or other information storage, transmission or display devices.
[0137] The specification also discloses a device for performing the method operation. Such a device is specially constructed for the desired purpose, or may include a general-purpose computer or other computer program stored in the computer selectively activated or reconfigured other device. The algorithms and displays introduced herein are not inherently related to any specific computer or other device. Various general-purpose machines can be used together according to the programs taught herein. Alternatively, a more specific device configuration for performing the required method steps is applicable. The structure of a conventional general-purpose computer will be introduced in the following description.
[0138] In addition, since it is obvious to those skilled in the art that each step of the method described herein can be implemented by computer code, this specification also implicitly discloses a computer program. This computer program is not intended to be limited to any specific programming language and its execution. It should be understood that a variety of programming languages and their codes can be used to perform the disclosed teachings contained in this article. In addition, this computer program is not intended to be limited to any specific control flow. Without departing from the spirit or scope of the disclosed embodiments, there are many other types of computer programs that can use different control flows.
[0139] Moreover, one or more steps of the computer program can be performed in parallel rather than sequentially. Such a computer program can be stored on any computer readable medium. The storage device that the computer readable medium can include is such as a disk or optical disk, a memory chip or other storage devices suitable for interfacing with a general-purpose computer. The computer readable medium can also include hard-wired media such as in an Internet system, or wireless media. When the computer program is loaded and executed on such a general-purpose computer, the computer program effectively generates a device for implementing the steps of the preferred method.
[0140] The disclosed embodiments may also be implemented as hardware modules. More specifically, in the hardware sense, a module is a functional hardware unit designed to be used with other components or modules. For example, a module may be implemented using discrete electronic components, or it may form part of an entire electronic circuit such as an application-specific integrated circuit (ASIC). There are many other possibilities. It will be appreciated by those skilled in the art that the system may also be implemented as a combination of hardware and software modules.
[0141] Figure 1 is a structural diagram of a remote control system provided by an embodiment of the present disclosure, such as Figure 1 The remote control system shown includes a cloud virtualization system (first server), a GPU POOL system (second server), a first terminal group and a second terminal group, wherein the first terminal group can be a master terminal group and the second terminal group can be a controlled terminal group. User account A logs in to the first terminal group, which includes at least one master terminal. User account B logs in to the second terminal group, which includes at least one controlled terminal. User account A can remotely control at least one controlled terminal of the second terminal group through any master terminal, such as the first terminal Ra. The second terminal Rb is any controlled terminal in the second terminal group. Among them, the cloud virtualization system includes virtual machines VM1 and VM2, and an S1 module. The GPU POOL system includes a GPU POOL module and an S2 module. Figure 1 In a system, one usage scenario is: user account A logs in to any Ra terminal, which corresponds to VM1, and user account B uses any Rb terminal, which corresponds to VM2. User account A remotely controls the Rb terminal of user account B through the Ra terminal.
[0142] like Figure 1 In the remote control system shown, the process of one account logging into multiple terminals is as follows: the cloud virtualization system includes at least one virtual machine VM, a VM includes multiple virtual R-end applications, and a virtual R-end application module includes multiple services.
[0143] The VM is used to receive operation information from the user using the same user account on the R side, execute the operation information, generate rendering instructions corresponding to the operation information, and send the rendering instructions to the GPU POOL; it is also used to synchronously update the information of each virtual R-side application managed by the VM.
[0144] The virtual R-end application is used to execute the user's operation information on an R. One R corresponds to a virtual R-end application module, and the virtual R-end application module is bound to the identifier of R. Specifically, a service is established for each operation action of the user on the R.
[0145] The business module is used to execute user operations on R, such as watching video A, browsing shopping website B, etc.; and generate rendering instructions based on the operation actions, and send the rendering instructions to GPU POOL for rendering.
[0146] For example, the operation action is to watch video A, then the rendering instruction is to generate the playback screen of video A.
[0147] It should be noted that business modules are distinguished by different business types, and the business status of the same type of business can be synchronized between different virtual R-end applications, that is, between different Rs.
[0148] The S2 module is used to forward messages from the R end to the cloud virtualization system.
[0149] Specifically, one user account corresponds to one VM; one R-end corresponds to one virtual R-end application, one virtual R-end application is bound to one R-end identifier, one user action corresponds to one service, and one service is bound to one action.
[0150] The GPU POOL module is used to receive and execute rendering instructions sent by the business module, generate rendering images, and send the rendering images to the S2 module.
[0151] The S2 module is used to encode and save the rendered image. The storage location of the encoded data consists of an IP address + port number.
[0152] The S1 module is used to manage VM accounts; specifically, it includes: saving the user's action status (for example, user name, password, operation status, name of the operation object, and other information related to the page corresponding to the user's operation action), saving the corresponding relationship between the storage location of the encoded data required by each R and the identifier of each R, etc.
[0153] For example, if a user uses user account A to watch a video on R1, then the S1 module in the VM corresponding to user account A can record the user's action status, which may include: the address and name of the video being played, the mode, letters and volume of the playback, the progress of the playback, and other states related to the user's behavior. When the user plays the same video played on R1 on other Rs, the S1 module will send the action status to the virtual R-side applications corresponding to the other Rs. The virtual R-side applications corresponding to the other Rs can generate rendering instructions based on the action status, and the video screen generated by GPU POOL based on the rendering instructions is the same as the video screen being played on R1.
[0154] In addition, since the S1 module stores the correspondence between the storage location of the encoded data required by each R and the identifier of each R, when R sends a request to the S1 module to obtain encoded data, the acquisition request carries R's own identifier. S1 can find the storage location of the encoded data required by R based on R's identifier and the correspondence, and return it to the R end, so that the R end can obtain the required encoded data from the storage location of the encoded data.
[0155] The technical solution is described in detail below with reference to several specific embodiments.
[0156] Embodiment 1
[0157] The usage scenario corresponding to this embodiment is that a user account logs in to an R terminal.
[0158] User A uses user account A to log in to the Ra side, and user B uses user account B to log in to the Rb side. User account A corresponds to VM1, and user account B corresponds to VM2. User A is on the Ra side logged in by user account A. User A remotely controls user account B through user account A, and thus remotely controls the Rb side logged in by user account B.
[0159] It should be noted that the remote control APP needs to be installed on the Ra and Rb ends in advance.
[0160] Figure 2 is a flow chart of a remote control method provided by an embodiment of the present disclosure, such as Figure 2 The remote control method shown is used to Figure 1 The system specifically performs the following steps:
[0161] Step 201: Ra and Rb establish a binding relationship.
[0162] Specifically, this step includes at least two solutions.
[0163] Solution 1:
[0164] In one embodiment, if Figure 3As shown, establishing a binding relationship between the Ra terminal and the Rb terminal includes the following steps:
[0165] Step 2011: User B sends a binding request between user account A and user account B to VM2 in the remote control APP on the Rb end logged in by user account B.
[0166] In this step, user account B sends a binding request between user account A and user account B through the Rb terminal, wherein the binding request carries user account B and user account A.
[0167] In a specific implementation, user B can open the binding page in the remote control APP on the Rb side, enter the target user account to be bound as user account A, and click the request binding button so that the Rb side sends a binding request for user account A and user account B.
[0168] Step 2012: VM2 forwards the binding request to the S1 module, and the S1 module sends the binding request to VM1 corresponding to user account A.
[0169] In this step, the S1 module is used to manage each VM. The S1 module receives a binding request from VM2, and determines that the target user account to be bound is user account A based on the user account carried in the binding request. Then, the binding request is forwarded to user account A, that is, the binding request is forwarded to VM1 corresponding to user account A.
[0170] Step 2013, VM1 receives the binding request and displays the display interface of the binding request in the remote control APP on the Ra end; user A accepts the binding request in the remote control APP on the Ra end, and sends a confirmation message of accepting the binding request to S1 via VM1.
[0171] In this step, after receiving the binding request from Rb, VM1 displays the display interface of the binding request to user A through the Ra end. The display interface of the binding request includes a confirmation button for accepting the binding request and a rejection button for rejecting the binding request. If user A clicks the confirmation button, the Ra end sends a confirmation message of accepting the binding request, which is forwarded to the S1 module via VM1.
[0172] Solution 2
[0173] In one embodiment, user A initiates a binding request through user account A, such as Figure 4 As shown, establishing a binding relationship between the Ra terminal and the Rb terminal includes the following steps:
[0174] Step 2011': User A sends a binding request between user account A and user account B to VM1 through the remote control APP on the Ra side using user account A.
[0175] The binding request carries user account B and user account A.
[0176] Step 2012', VM1 forwards the binding request to the S1 module, and the S1 module sends the binding request to VM2 corresponding to user account B;
[0177] Step 2013', VM2 receives the binding request and displays the display interface of the binding request in the remote control APP on Rb; user B accepts the binding request in the remote control APP on Rb, and sends a confirmation message of accepting the binding request to S1 via VM2.
[0178] Then S1 saves the binding relationship between user account A and user account B.
[0179] At this point, the binding relationship between user account A and user account B is established.
[0180] Step 202: determine whether the conditions for establishing remote control are met;
[0181] If not, the process ends; if satisfied, execute step 203.
[0182] In an optional embodiment, determining that the conditions for establishing remote control are met includes: both the Ra end and the Rb end agree to establish remote control.
[0183] Specifically, this step includes at least two solutions.
[0184] Solution 1
[0185] In one embodiment, if Figure 5 As shown, determining whether the conditions for establishing remote control are met includes the following steps:
[0186] Step 2021: User B initiates a control request for user account A to VM2 in the remote control APP on the Rb side.
[0187] In this step, user B can open the control request page in the remote control APP on the Rb side. The control request page may include two input options. One input option is used to enter the user account to be controlled, that is, user account B requires other user accounts to control itself, and one input option is used to enter the controlling user account, that is, user account B requires control of other user accounts.
[0188] For example, user B inputs the user account to be controlled. After inputting, he clicks the request binding button so that the Rb end sends a control request for user account A to VM2.
[0189] Step 2022: VM2 sends a control request to S1, and S1 forwards the control request to VM1 corresponding to user account A according to the binding relationship saved in advance.
[0190] Step 2023, VM1 receives the control request and displays the display interface of the control request in the remote control APP on the Ra side; user A accepts the control request in the remote control APP on the Ra side, and sends a confirmation message of accepting the control request to S1 via VM1.
[0191] In this step, after receiving the control request from Rb, VM1 displays the display interface of the control request to user A through the Ra end. The display interface of the control request includes a confirmation button for accepting the control request and a rejection button for rejecting the control request. If user A clicks the confirmation button, the Ra end sends a confirmation message for accepting the control request, which is forwarded to the S1 module via VM1.
[0192] Solution 2
[0193] In one embodiment, if the condition for establishing remote control is determined to be satisfied by user A, such as Figure 5 As shown, determining whether the conditions for establishing remote control are met includes the following steps:
[0194] Step 2021': User A initiates a control request for user account B in the remote control APP on the Ra side.
[0195] Step 2022', VM1 sends the control request to S1, and S1 forwards the control request to VM2 corresponding to user account B according to the binding relationship saved in advance.
[0196] Step 2023', VM2 receives the control request and displays the display interface of the control request in the remote control APP on the Rb side; user B accepts the control request in the remote control APP on the Rb side, and sends a confirmation message of accepting the control request to S1 via VM1.
[0197] Step 203, S1 establishes a dedicated link between the master control terminal group corresponding to user account A and VM2 corresponding to user account B;
[0198] Then, the storage location in GPU POOL for storing the coded data cb generated by VM2 is sent to the Ra terminal logged in by the user account A.
[0199] Among them, the dedicated link between the main control terminal group and VM2 means that the user operation information from the Ra end is no longer sent to VM1 for processing, but is directly transmitted to VM2.
[0200] In a specific implementation, the S1 module directly forwards the user operation information received from the Ra end to VM2, and VM2 processes the user operation information.
[0201] In this step, the first terminal group corresponding to the first account is bound to VM2, that is, the user can control VM2 through the Ra end logged in by user account A, and the screen displayed on the Ra end is also the screen generated after VM2 executes the user operation, that is, the screen displayed on the Ra end is the same as the screen displayed on the Rb end.
[0202] At this time, VM1 is still running normally, but is temporarily unable to receive user operation information from the Ra end.
[0203] Step 204: After receiving the storage location of the coded data cb, the Ra end starts to obtain the coded data cb.
[0204] In this way, both Ra and Rb terminals display the operation screen of VM2.
[0205] Step 205: User A performs an operation on the Ra end, and the user operation information of user A is sent from the Ra end to VM2 via a dedicated link. VM2 processes the user operation information to achieve remote control of VM2.
[0206] In this step, user A can perform various operations on the operating system, application software, etc. on VM2 at the Ra end.
[0207] It should be noted that the remote management permissions can be controlled through the remote management APP, that is, the user account A's operation permissions for VM2 can be managed by setting the permissions of the remote management APP, that is, VM2 can filter the user operation information sent by the Ra end and only execute user operation information that meets the permission requirements.
[0208] Step 206 : VM2 sends the rendering instruction generated by the user operation of user A to GPU POOL for rendering to generate a rendering picture.
[0209] Then, the rendered image is sent to the S2 module for encoding and saved as encoded data cb. The saved location of the encoded data cb in the GPUPOOL system is the IP address + port.
[0210] Since the S1 module has sent the storage location of the encoded data cb in GPU POOL for storing Rb to the Ra end, the rendering image generated by the operation information of user A can be seen by user A on the Ra end and by user B on the Rb end. That is, user B can see the image that has changed due to the operation of user A on Rb.
[0211] Step 207: User A or user B initiates an interrupt control request at the Ra end or the Rb end, which is forwarded to S1 by VM1 or VM2.
[0212] Step 208 , S1 receives the request for interrupt control, removes the dedicated link between the first terminal group and VM2 , and sends the storage location in GPU POOL for storing the coded data Ca of the Ra end to the Ra end.
[0213] In step 207 and step 208, both user A and user B can interrupt the control action at any time. After interrupting the control action, user account B can immediately restore the control authority over VM2, and the user operation information of user account A can be sent to VM1. In addition, since S1 sends the storage location of Ra's encoded data Ca back to the Ra end, the screen displayed on the Ra end changes back to the screen of VM1.
[0214] It should be noted that the binding relationship between user account A and user account B does not need to be deleted and remains valid. After the binding relationship is confirmed, the next request and requested control can initiate the establishment of a direct dedicated link. The dedicated link can be established when requested and deleted after interruption, but the binding relationship can be maintained.
[0215] Embodiment 2
[0216] The usage scenario corresponding to this embodiment can be that one user account logs in to multiple R terminals, that is, user A uses user account A to log in to Ra1, Ra2 and Ra3, and user B uses user account B to log in to Rb1, Rb2 and Rb3. User account A corresponds to VM1, and user account B corresponds to VM2. User A can remotely control all Rb terminals logged in by user account B through any Ra terminal logged in by user account A.
[0217] It should be noted that the remote control APP needs to be installed on all R terminals in advance.
[0218] The steps of this usage scenario are basically the same as those of the first embodiment, but the details are different. For example, user B uses user account B to log in to Rb1, and user A uses user account A to log in to Ra1. The remote control method in this scenario includes the following steps:
[0219] Step 701: Ra and Rb establish a binding relationship.
[0220] Specifically, this step includes at least two solutions.
[0221] In the first embodiment, establishing a binding relationship between the Ra terminal and the Rb terminal includes the following steps:
[0222] Step 7011, user B sends a binding request between user account A and user account B to VM2 in the remote control APP on any Rb end logged in by user account B.
[0223] The binding request carries user account B and user account A.
[0224] In this step, user account B sends a binding request between user account A and user account B through Rb1.
[0225] In the specific implementation, user B can open the binding page in the remote control APP on any Rb end logged in by user account B, enter the user account A to be bound, and click the request binding button so that the Rb1 end sends a binding request for user account A and user account B.
[0226] Step 7012, VM2 forwards the binding request to the S1 module, and the S1 module sends the binding request to VM1 corresponding to user account A.
[0227] In this step, the S1 module is used to manage each VM. The S1 module receives a binding request from VM2, and determines that the target user account to be bound is user account A based on the user account carried in the binding request. Then, the binding request is forwarded to user account A, that is, the binding request is forwarded to VM1 corresponding to user account A.
[0228] Step 7013, VM1 receives the binding request and displays the display interface of the binding request in the remote control APP on all Ra ends logged in by user account A; user A accepts the binding request in the remote control APP on any Ra end, and sends a confirmation message of accepting the binding request to S1 via VM1.
[0229] In this step, after receiving the binding request from Rb1, VM1 displays the display interface of the binding request to user A through all Ra ends. The display interface of the binding request includes a confirmation button for accepting the binding request and a rejection button for rejecting the binding request. If user A clicks the confirmation button in any Ra end, the Ra end sends a confirmation message of accepting the binding request, which is forwarded to the S1 module via VM1.
[0230] In the second embodiment, user A may also initiate a binding request through user account A, and the Ra terminal and the Rb terminal establish a binding relationship including the following steps:
[0231] Step 7011', user A sends a binding request between user account A and user account B to VM1 through the remote control APP on any Ra end logged in by user account A.
[0232] In this step, user account A sends a binding request between user account A and user account B through any Ra terminal logged in by user account A.
[0233] In the specific implementation, user A can open the binding page in the remote control APP of any Ra end logged in by user account A, enter the source user account to be bound as user account B, and click the request binding button so that the Rb end will send a binding request for user account A and user account B, and the binding request will carry user account B and user account A.
[0234] Step 7012', VM1 forwards the binding request to S1 module, and S1 module sends the binding request to VM2 corresponding to user account B.
[0235] Step 7013', VM2 receives the binding request and displays the display interface of the binding request in the remote control APP on Rb; user B accepts the binding request in the remote control APP on Rb, and sends a confirmation message of accepting the binding request to S1 via VM2.
[0236] S1 stores the binding relationship between user account A and user account B.
[0237] At this point, the binding relationship between user account A and user account B is established.
[0238] Step 702: determine whether the conditions for establishing remote control are met;
[0239] If not, the process ends; if satisfied, execute step 203.
[0240] In an optional embodiment, determining that the conditions for establishing remote control are met includes: both the Ra end and the Rb end agree to establish remote control.
[0241] Specifically, this step includes at least two solutions.
[0242] In the first implementation, determining whether the conditions for establishing remote control are met includes the following steps:
[0243] Step 7021: User B initiates a control request for user account A to VM2 in the remote control APP of any Rb end logged in by user account B.
[0244] In this step, user B can open the control request page in the remote control APP on any Rb end logged in by user account B. The control request page may include two input options, one input option is used to enter the user account of the active controller, that is, user account B requires other user accounts to control itself, and one input option is used to enter the user account of the controlled party, that is, user account B requires control of other user accounts.
[0245] In this embodiment, user account B is the controlled party, so user B enters user account A as the active control and clicks the request binding button so that Rb sends a control request to VM2 for user account A. The control request carries user account A and user account B.
[0246] Step 7022: VM2 sends a control request to S1, and S1 forwards the control request to VM1 corresponding to user account A according to the binding relationship saved in advance.
[0247] Step 7023, VM1 receives the control request and displays the display interface of the control request in the remote control APP of all Ra ends logged in by user account A; user A accepts the control request in the remote control APP of the Ra end corresponding to the R end identifier of the active controller carried by any Ra end or the above control request, and sends the confirmation message of accepting the control request to S1 via VM1.
[0248] In this step, after receiving the control request from Rb, VM1 displays the display interface of the control request to user A through the Ra end. The display interface of the control request includes a confirmation button for accepting the control request and a rejection button for rejecting the control request. If user A clicks the confirmation button, the Ra end sends a confirmation message for accepting the control request, which is forwarded to the S1 module via VM1.
[0249] In the second implementation, the determination that the conditions for establishing remote control are met may be initiated by user A, and the specific steps are as follows:
[0250] Step 7021': User A initiates a control request for user account B in the remote control APP at any Ra end.
[0251] In this step, user A can open the control request page in the remote control APP on any Ra end. The control request page may include two input options. One input option is used to enter the user account of the active controller, that is, user account A requires other user accounts to control itself, and one input option is used to enter the user account of the controlled party, that is, user account A requires control of other user accounts.
[0252] In this embodiment, user account B is the controlled party, so user A enters user account B as the controlled party and clicks the request binding button so that Ra sends a control request to VM1 for user account B. The control request carries user account A and user account B.
[0253] Step 7022', VM1 sends the control request to S1, and S1 forwards the control request to VM2 corresponding to user account B according to the binding relationship saved in advance.
[0254] Step 7023', VM2 receives the controlled request, and displays the display interface of the controlled request in the remote control APP of all Rb ends logged in by user account B; user B accepts the controlled request in the remote control APP of any Rb end or the Rb end corresponding to the R end identifier of the controlled party carried by the above-mentioned controlled request, and sends the confirmation message of accepting the controlled request to S1 via VM2.
[0255] In this step, after receiving the control request from user account A, VM2 displays the display interface of the control request to user B through the Rb end. The display interface of the control request includes a confirmation button for accepting the control request and a rejection button for rejecting the control request. If user B clicks the confirmation button, the Rb end sends a confirmation message of accepting the control request, which is forwarded to the S1 module via VM2.
[0256] Step 703 , S1 establishes a dedicated link between VM1 corresponding to user account A and VM2 corresponding to user account B according to the previously saved binding relationship, and sends the storage location in GPU POOL for storing the coded data cb generated by VM2 to all Ra terminals logged in by user account A.
[0257] In a specific implementation, the S1 module directly forwards the user operation information received from any Ra end to VM2, and VM2 processes the user operation information.
[0258] At this time, VM1 is still running normally, but is temporarily unable to receive user operation information from the Ra end.
[0259] Step 704: After receiving the storage location of the coded data cb, all Ra terminals logged in by the user account A start to obtain the coded data cb.
[0260] In this way, all Ra terminals logged in by user account A and all Rb terminals logged in by user account B display the operation screen of VM2.
[0261] Step 705: User A performs an operation at any Ra end, and the user operation information of user A is sent from the Ra end to VM2 via a dedicated link. VM2 processes the user operation information to achieve remote control of VM2.
[0262] In this step, user A can perform various operations on the operating system, application software, etc. on VM2 at any Ra end logged in by user account A.
[0263] It should be noted that the remote management permissions can be controlled through the remote management APP, that is, the user account A's operation permissions for VM2 can be managed by setting the permissions of the remote management APP, that is, VM2 can filter the user operation information sent by the Ra end and only execute user operation information that meets the permission requirements.
[0264] Step 706, VM2 sends the rendering instruction generated by the user operation of user A to GPU POOL for rendering, generates a rendering picture, and then sends the rendering picture to the S2 module for encoding and saving as encoded data cb. The storage location of the encoded data cb in the GPU POOL system is IP address + port.
[0265] Since the S1 module has sent the storage location of the encoded data cb for storing Rb in the GPU POOL to all Ra ends, the rendering image generated by the operation information of user A can be seen by user A at any Ra end and by user B at any Rb end. That is, user B can see the image changed due to the operation of user A at any Rb end.
[0266] Step 707: User A or user B may initiate an interrupt control request at any Ra end or any Rb end, which is forwarded to S1 by VM1 or VM2.
[0267] Step 708: After receiving the request for interrupt control, S1 removes the dedicated link between the first terminal group and VM2, and sends the storage location in GPU POOL for storing the coded data Ca of the Ra end to all Ra ends.
[0268] In step 707 and step 708, both user A and user B can interrupt the control action at any time. After interrupting the control action, user account B can immediately restore the control authority over VM2, and the user operation information of user account A can be sent to VM1. In addition, since S1 sends the storage location of Ra's encoded data Ca back to all Ra ends, the screen displayed on all Ra ends logged in by user account A will be changed back to the screen of VM1.
[0269] In the present invention, when user A needs to use user account A to remotely control user account B, a dedicated link between the main control terminal group corresponding to user account A and VM2 corresponding to user account B can be established through the S1 module. Specifically, the user operation of the main control terminal group is not handed over to VM1 for processing, but is directly transmitted to VM2 to realize the binding of user account A and user account B. In addition, S1 sends the storage location of the coded data cb generated by VM2 in the GPU POOL to the R end logged in by the user account A, so that the R end logged in by the user account A can obtain the coded data cb.
[0270] It can be seen that the operation information of user A on user account A can be sent to VM2 so as to remotely control VM2; and the R end logged in by user account A can obtain the encoded data cb of Rb, that is, the display screen of the R end logged in by user account A is the same as the display screen of the R end logged in by user account B. In this way, remote control between two user accounts can be realized in the cloud virtualization system based on GPU POOL.
[0271] Optionally, before the first server pre-stores the binding relationship, the above embodiment further includes:
[0272] The master terminal group logs in to VM1 of the first server through the first account, and the controlled terminal group logs in to VM2 of the first server through the second account.
[0273] In one embodiment, the master control terminal group includes a first master control terminal and a second master control terminal, and the master control terminal group logs in to VM1 of the first server through the first account, including:
[0274] The first master control terminal sends a first operation message to the first server; the first operation message includes a first device identifier of the first master control terminal, a first account, a first operation action based on the first account, and first display information of the first terminal device;
[0275] The first server allocates VM1 corresponding to the first account based on the first device identifier, and determines whether the first account logs in for the first time;
[0276] If it is the first login, the first server generates a first rendering instruction according to the first display information and the first operation action, and sends the first rendering instruction to the second server; and stores the first action state information corresponding to the first operation action;
[0277] The second server performs rendering based on the first rendering instruction to obtain the screen of the master terminal group, extracts the first storage location of the screen of the controlled terminal group, and sends the first storage location to the first server;
[0278] The first server receives the first storage location and sends the first storage location to the first terminal;
[0279] The first master control terminal obtains and displays the master control terminal group screen according to the first storage location.
[0280] If the second main control terminal has logged in to VM1, the first action state information corresponding to the first operation action is locally queried, and a first rendering instruction is generated according to the first action state information and the first display information, and the first rendering instruction is sent to the second server;
[0281] The second server performs rendering based on the first rendering instruction to obtain a main control terminal group screen, and stores the main control terminal group screen to a first storage location of the main control terminal group screen;
[0282] The first master control terminal and the second master control terminal obtain and display the master control terminal group screen according to the first storage location.
[0283] In one embodiment, the controlled terminal group includes a first controlled terminal and a second controlled terminal, and the controlled terminal group logs in to VM2 of the first server through the second account, including:
[0284] The first controlled terminal sends a second operation message to the first server; the second operation message includes a second device identifier of the first controlled terminal, a second account, a second operation action based on the second account, and second display information of the second controlled terminal;
[0285] The first server allocates VM2 corresponding to the second account based on the second device identifier, and determines whether the second account logs in for the first time;
[0286] If it is the first login, the first server generates a second rendering instruction according to the second display information and the second operation action, and sends the second rendering instruction to the second server; and stores the second action state information corresponding to the second operation action;
[0287] The second server performs rendering based on the second rendering instruction to obtain a screen of the controlled terminal group, extracts a second storage location of the screen of the controlled terminal group, and sends the second storage location to the first server;
[0288] The first server receives the second storage location and sends the first storage location to the first controlled terminal;
[0289] The first controlled terminal obtains and displays the controlled terminal group screen according to the second storage location.
[0290] If the second controlled terminal has logged in to VM2, the second action state information corresponding to the second operation action is queried locally, and a second rendering instruction is generated according to the second action state information and the second display information, and the second rendering instruction is sent to the second server;
[0291] The second server performs rendering based on the second rendering instruction to obtain a screen of the controlled terminal group, and stores the screen of the controlled terminal group in a second storage location of the screen of the controlled terminal group;
[0292] The first controlled terminal and the second controlled terminal obtain and display the controlled terminal group screen according to the second storage location.
[0293] The following is a specific usage scenario. The master terminal logs in to VM1 through account A, and multiple controlled terminals log in to VM2 through account V. Specifically, R1 and R2 have already logged in to VM1 through account A, and now they want to log in to R3 through account A. The specific steps include the following:
[0294] Step S01: A user uses user account A to log in to R3.
[0295] It should be noted that the user has successfully logged in to R1 and R2 using user account A.
[0296] In this step, R3 sends user operation information (account information) to the cloud virtualization system, wherein the user operation information (account information) carries the identification code of the R3 end, the user account A, the operation action and the display information of R3, and the display information includes the display resolution and the display format, and the display format includes a detailed version and a simplified version.
[0297] For example, QQ can be displayed in a detailed version on a computer and in a simplified version on a mobile phone. When a new message is received, the detailed version can pop up a complete chat interface and the simplified version can pop up a chat message.
[0298] For another example, the identification code of the R end may be a hardware identification code so that the cloud virtualization system can distinguish different Rs.
[0299] Step S02, determine VM1 corresponding to user account A; the S1 module allocates the corresponding virtual R-end application 3 to R3, and the virtual R-end application 3 allocates service 3 to the user's operation action (account information).
[0300] First, after receiving the user operation information from the user account A, the S1 module in VM1 parses the user account, the identification code of the R terminal, the display information and the operation action from the user operation information;
[0301] Second, the S1 module determines whether a virtual R-end application module 3 corresponding to R3 already exists in VM1 according to the identification code of the R-end. If not, a new virtual R-end application module 3 is created and the display information and operation actions are sent to the virtual R-end application module 3;
[0302] Third, the virtual R-side application module 3 determines whether there is a service corresponding to the operation action (account information) according to the operation action. If not, a new service 3 is established and the display information is sent to service 3. In addition, the virtual R-side application 3 is bound to the hardware identification code of R3;
[0303] Step S03, service 3 obtains the action status (user name, password) corresponding to the operation action (account information) from module S1, executes the operation action according to the action status, and generates a rendering instruction based on the display information.
[0304] Among them, the rendering instruction is used to generate a page after the user successfully logs in; service 3 is bound to the user login action.
[0305] For example, the operation action is user login, and service 3 determines the rendering instructions for generating a login success screen according to the display information (resolution and display format) of R3.
[0306] Step S04, service 3 sends the rendering instruction to the GPU POOL module in the GPU POOL system; the GPU POOL module completes the rendering task according to the rendering instruction, generates a rendering picture, and sends the rendering picture to the S2 module for encoding and saving the encoded data.
[0307] The location where the encoded data is saved in the GPU POOL system is the IP address + port.
[0308] Step S05: R3 periodically sends a request to the S1 module to obtain the coded data, and the S1 module returns the storage location of the coded data to R3.
[0309] Since the S1 module has previously saved the correspondence between the storage location of the coded data required by each R and the identifier of each R, when R sends a request to the S1 module to obtain coded data, the request carries R's own identifier. S1 can find the storage location of the coded data required by R based on R's identifier and the correspondence, and return it to the R end, so that the R end can obtain the required coded data from the storage location of the coded data.
[0310] It should be noted that after R3 obtains the encoded data from the GPU POOL system for the first time, a transmission link is established between R3 and the storage location in GPUPOOL for storing R3's encoded data; after the storage location in GPU POOL for storing R3's encoded data receives new encoded data, GPU POOL sends the new encoded data directly to R3 through the transmission link without R3's further request.
[0311] After R1 R2 R3 successfully logs in, R1 R2 R3 establishes a transmission link with GPU POOL.
[0312] In this way, one VM controls multiple Rs based on the same account. The controlling terminal group logs in to VM1 through the first account, and the controlled terminal group logs in to the second VM through the second account. The processing method is the same and will not be repeated here.
[0313] Embodiment 3
[0314] Figure 7 A remote control system provided by an embodiment of the present disclosure is Figure 7 The remote control system 70 shown includes a first server 701, a master control terminal group 702 and a controlled terminal group 703, wherein the master control terminal group includes at least one master control terminal, the controlled terminal group includes at least one controlled terminal, each master control terminal corresponds to a first account, and each controlled terminal corresponds to a second account; the first server includes a controlled virtual machine VM2, and VM2 corresponds to the controlled terminal group.
[0315] Optional, such as Figure 7 The remote control system 70 shown also includes a second server 704 .
[0316] Embodiment 4 Figure 8 A remote control method provided by the embodiment of the present disclosure is applied to Figure 7 The remote control system shown in the figure comprises the following steps:
[0317] Step 802: The first server establishes a remote control link between the master control terminal group and VM2;
[0318] Step 804: Any master control terminal controls at least one controlled terminal through a remote control link.
[0319] Optionally, the system further includes a second server, and step 804 specifically includes the following steps:
[0320] Step 8041: The first server obtains a second storage location storing the screen of the controlled terminal group in the second server, and sends the location to at least one master control terminal through a remote control link;
[0321] Step 8042: Each master control terminal obtains the coded data of the controlled terminal group according to the second storage location, and displays the corresponding operation screen after decoding;
[0322] Step 8043: any master control terminal sends an operation message based on the operation screen to VM2 of the first server through the remote control link;
[0323] Step 8044: VM2 generates a rendering instruction according to the operation message, and sends the rendering instruction to the second server;
[0324] Step 8045: The second server generates a rendering picture according to the rendering instruction, and saves the rendering picture to a second saving location;
[0325] Step 8046: Each controlled terminal obtains the second saved location, and displays the rendering picture according to the second saved location.
[0326] In one embodiment, before step 802, the method further includes:
[0327] Step 801: Determine whether the conditions for establishing remote control are met;
[0328] Correspondingly, if the conditions for establishing remote control are met, a remote control link is established between the master control terminal group and VM2.
[0329] In one embodiment, step 801 includes the following steps:
[0330] Step 8011: Any controlled terminal sends a first control request to the first server;
[0331] The first control request carries the second account.
[0332] Step 8012: The first server sends the first control request to the master control terminal group corresponding to the bound first account according to the pre-stored binding relationship;
[0333] Step 8013: After receiving the first control request, any master control terminal obtains a first user input message, and when the first user input message indicates that the control is agreed, sends a first notification message to the first server;
[0334] Step 8014: The first server receives the first notification message and determines that the conditions for establishing remote control are met.
[0335] In one embodiment, step 801 specifically includes the following steps:
[0336] Step 801a: any master control terminal sends a second control request to the first server;
[0337] The second control request carries the first account.
[0338] Step 801b: The first server sends the second control request to the controlled terminal group corresponding to the bound first account according to the pre-stored binding relationship;
[0339] Step 801c: After receiving the first control request, any controlled terminal obtains a second user input message, and when the second user input message indicates consent to be controlled, sends a second notification message to the first server;
[0340] Step 801d: The first server receives the second notification message and determines that the conditions for establishing remote control are met.
[0341] In one embodiment, the first server further includes a master control virtual machine VM1, and VM1 corresponds to the master control terminal group. Before step 801, the method further includes:
[0342] Step 800: The first server pre-stores the binding relationship.
[0343] In one embodiment, step 800 specifically includes the following steps:
[0344] Step 8001: any controlled terminal sends a first binding request to VM2 of the first server, where the first binding request includes a first account of the controlling terminal group and a second account of the controlled terminal group;
[0345] Step 8002: VM1 of the first server sends a first binding request to the master control terminal group;
[0346] Step 8003: After receiving the first binding request, any master control terminal obtains a third user input message, and when the third user input message indicates consent to the binding, sends a third notification message to the first server;
[0347] Step 8004: The first server receives the third notification message and generates a binding relationship based on the first account and the second account.
[0348] In one embodiment, step 800 includes the following steps:
[0349] Step 800a: any master control terminal sends a second binding request to VM1 of the first server, where the second binding request includes a first account of the master control terminal group and a second account of the controlled terminal group;
[0350] Step 800b: VM2 of the first server sends a second binding request to the controlled terminal group;
[0351] Step 800c: After receiving the second binding request, any controlled terminal obtains a fourth user input message, and when the fourth user input message indicates consent to the binding, sends a fourth notification message to the first server;
[0352] Step 800d: The first server receives the fourth notification message and generates a binding relationship between the first account and the second account.
[0353] In one embodiment, the method further comprises:
[0354] Step 806: After receiving the control interruption instruction from any master control terminal or any controlled terminal, the first server removes the remote control link and sends the first storage location storing the master control terminal group screen in the second server to the master control terminal through VM1.
[0355] In some scenarios, user A uses the Ra end to remotely control the Rb end used by user B. For example, user B is an elderly person and user A is a child who does not live together. User A can perform software installation and other operations on the Rb end used by the elderly person by remotely controlling the Rb end. For another example, user A uses the Ra end to remotely operate the Rb end and remotely control the electronic device connected to the Rb end. The electronic device may be a drone, smart appliance, etc.
[0356] In the embodiment of the present disclosure, when user A needs to remotely control the Rb end through the Ra end, a dedicated link between the Ra end and VM2 corresponding to the Rb end can be established through the S1 module in the cloud virtualization system, and the storage location for storing the Rb encoded data cb in the GPU POOL can be sent to the Ra end, so that the Ra end can obtain the Rb encoded data cb.
[0357] It can be seen that the operation information of user A on the Ra side can be sent to VM2 to remotely control VM2, and the Ra side can obtain the encoded data cb of Rb, that is, the display screen of the Ra side is the same as the display screen of the Rb side. In this way, remote control between the two R sides can be realized in the cloud virtualization system based on GPU POOL.
[0358] Based on the above Figure 8 Corresponding to the remote control method described in the embodiment, the embodiment of the present disclosure also provides a computer-readable storage medium, for example, a non-temporary computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. The storage medium stores computer instructions for executing the above Figure 8 The remote control method described in the corresponding embodiment will not be described in detail here.
[0359] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the disclosure disclosed herein. This application is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The description and examples are intended to be exemplary only, and the true scope and spirit of the present disclosure are indicated by the following claims.
Claims
1. A remote control method, applied to a remote control system, characterized in that: The system includes a first server, a master control terminal group and a controlled terminal group, wherein the master control terminal group includes at least one master control terminal, the controlled terminal group includes at least one controlled terminal, each master control terminal corresponds to a first account, each controlled terminal corresponds to a second account, the master control terminal group logs in to VM1 of the first server through the first account, and the controlled terminal group logs in to VM2 of the first server through the second account; the first server includes a controlled virtual machine VM2, and VM2 corresponds to the controlled terminal group; the method includes: The first server establishes a remote control link between the master control terminal group and the VM2; Any master control terminal controls at least one controlled terminal through the remote control link; The system further includes a second server, wherein any one of the master control terminals controls at least one controlled terminal through the remote control link, including: The first server obtains a second storage location storing the screen of the controlled terminal group in the second server, and sends the location to at least one master control terminal through the remote control link; Each master control terminal obtains the coded data of the controlled terminal group according to the second storage location, and displays the corresponding operation screen after decoding; Any master control terminal sends an operation message based on the operation screen to VM2 of the first server through the remote control link; VM2 generates a rendering instruction according to the operation message, and sends the rendering instruction to the second server; The second server generates a rendering picture according to the rendering instruction, and saves the rendering picture to the second saving location; Each controlled terminal obtains the second storage location, and displays the rendering picture according to the second storage location.
2. The method according to claim 1, characterized in that Before the first server establishes a remote control link between the master control terminal group and the VM2, the method further includes: determining that a condition for establishing remote control is met; Correspondingly, if the conditions for establishing remote control are met, a remote control link is established between the master control terminal group and the VM2.
3. The method according to claim 1, characterized in that The determining that the conditions for establishing remote control are met includes: Any controlled terminal sends a first control request to the first server, wherein the first control request carries the second account; The first server sends the first control request to the master control terminal group corresponding to the bound first account according to the pre-stored binding relationship; After receiving the first control request, any master control terminal obtains the first user input message, and when the first user input message indicates that the control is agreed, sends a first notification message to the first server; The first server receives the first notification message and determines that the condition for establishing remote control is met.
4. The method according to claim 2, characterized in that: The determining that the conditions for establishing remote control are met includes: Any master control terminal sends a second control request to the first server, wherein the second control request carries the first account; The first server sends the second control request to the controlled terminal group corresponding to the bound second account according to the pre-stored binding relationship; After receiving the second control request, any controlled terminal obtains a second user input message, and when the second user input message indicates consent to be controlled, sends a second notification message to the first server; The first server receives the second notification message and determines that the condition for establishing remote control is met.
5. The method according to claim 3 or 4, characterized in that: Before the first server establishes the remote control link between the master control terminal group and the VM2, the method further includes: the first server pre-storing the binding relationship.
6. The method according to claim 5, characterized in that The first server also includes a master control virtual machine VM1, VM1 corresponds to the master control terminal group, and the first server pre-stores the binding relationship including: Any controlled terminal sends a first binding request to VM2 of the first server, wherein the first binding request includes a first account of the master terminal group and a second account of the controlled terminal group; VM1 of the first server sends the first binding request to the master control terminal group; After receiving the first binding request, any master control terminal obtains a third user input message, and when the third user input message indicates consent to the binding, sends a third notification message to the first server; The first server receives the third notification message, and generates the binding relationship according to the first account and the second account.
7. The method according to claim 5, characterized in that The first server pre-storing the binding relationship includes: Any master control terminal sends a second binding request to VM1 of the first server, where the second binding request includes a first account of the master control terminal group and a second account of the controlled terminal group; VM2 of the first server sends the second binding request to the controlled terminal group; After receiving the second binding request, any controlled terminal obtains a fourth user input message, and when the fourth user input message indicates consent to the binding, sends a fourth notification message to the first server; The first server receives the fourth notification message, and generates the binding relationship according to the first account and the second account.
8. The method according to claim 6 or 7, characterized in that: The method further comprises: After receiving the control interruption instruction from any master control terminal or any controlled terminal, the first server removes the remote control link and sends the first storage location storing the master control terminal group screen in the second server to the master control terminal through VM1.
9. The method according to claim 8, characterized in that The master control terminal group includes a first master control terminal and a second master control terminal, and the master control terminal group logs in to VM1 of the first server through the first account and includes: The first master control terminal sends a first operation message to the first server; the first operation message includes a first device identifier of the first master control terminal, a first account, a first operation action based on the first account, and first display information of the first terminal device; The first server allocates VM1 corresponding to the first account based on the first device identifier, and determines whether the first account logs in for the first time; If it is the first login, the first server generates a first rendering instruction according to the first display information and the first operation action, and sends the first rendering instruction to the second server; and stores first action state information corresponding to the first operation action; The second server performs rendering based on the first rendering instruction to obtain a screen of the master terminal group, extracts a first storage location of the screen of the controlled terminal group, and sends the first storage location to the first server; The first server receives the first storage location and sends the first storage location to the first terminal; The first master control terminal obtains and displays the master control terminal group screen according to the first storage location.
10. The method according to claim 9, characterized in that: The method further comprises: If the second main control terminal has logged in to the VM1, first action state information corresponding to the first operation action is locally queried, and a first rendering instruction is generated according to the first action state information and the first display information, and the first rendering instruction is sent to the second server; The second server performs rendering based on the first rendering instruction to obtain a main control terminal group screen, and stores the main control terminal group screen in a first storage location of the main control terminal group screen; The first master control terminal and the second master control terminal obtain and display the master control terminal group screen according to the first storage location.
11. The method according to claim 10, characterized in that The controlled terminal group includes a first controlled terminal and a second controlled terminal, and the controlled terminal group logs in to VM2 of the first server through the second account and includes: The first controlled terminal sends a second operation message to the first server; the second operation message includes a second device identifier of the first controlled terminal, a second account, a second operation action based on the second account, and second display information of the second controlled terminal; The first server allocates VM2 corresponding to the second account based on the second device identifier, and determines whether the second account logs in for the first time; If it is the first login, the first server generates a second rendering instruction according to the second display information and the second operation action, and sends the second rendering instruction to the second server; and stores the second action state information corresponding to the second operation action; The second server performs rendering based on the second rendering instruction to obtain a screen of the controlled terminal group, extracts a second storage location of the screen of the controlled terminal group, and sends the second storage location to the first server; The first server receives the second storage location, and sends the first storage location to the first controlled terminal; The first controlled terminal obtains and displays the controlled terminal group screen according to the second storage location.
12. The method according to claim 11, characterized in that: The method further comprises: If the second controlled terminal has logged in to the VM2, query the second action state information corresponding to the second operation action locally, generate a second rendering instruction according to the second action state information and the second display information, and send the second rendering instruction to the second server; The second server performs rendering based on the second rendering instruction to obtain a screen of the controlled terminal group, and stores the screen of the controlled terminal group in a second storage location of the screen of the controlled terminal group; The first controlled terminal and the second controlled terminal obtain and display the controlled terminal group screen according to the second storage location.
13. A remote control system, characterized in that: The system includes a first server, a master control terminal group and a controlled terminal group, wherein the master control terminal group includes at least one master control terminal, the controlled terminal group includes at least one controlled terminal, each master control terminal corresponds to a first account, each controlled terminal corresponds to a second account, the master control terminal group logs in to VM1 of the first server through the first account, and the controlled terminal group logs in to VM2 of the first server through the second account; the first server includes a controlled virtual machine VM2, and VM2 corresponds to the controlled terminal group; The first server establishes a remote control link between the master control terminal group and the VM2; Any master control terminal controls at least one controlled terminal through the remote control link; The system further includes a second server, wherein any one of the master control terminals controls at least one controlled terminal through the remote control link, including: The first server obtains a second storage location storing the screen of the controlled terminal group in the second server, and sends the location to at least one master control terminal through the remote control link; Each master control terminal obtains the coded data of the controlled terminal group according to the second storage location, and displays the corresponding operation screen after decoding; Any master control terminal sends an operation message based on the operation screen to VM2 of the first server through the remote control link; VM2 generates a rendering instruction according to the operation message, and sends the rendering instruction to the second server; The second server generates a rendering picture according to the rendering instruction, and saves the rendering picture to the second saving location; Each controlled terminal obtains the second storage location, and displays the rendering picture according to the second storage location.
Citation Information
Patent Citations
Remote access to hosted virtual machines by enterprise users
CN102420846A
Method and system for remotely controlling login
CN102780787A