CN111414238A - 远程控制方法及系统 - Google Patents
远程控制方法及系统 Download PDFInfo
- Publication number
- CN111414238A CN111414238A CN202010228926.1A CN202010228926A CN111414238A CN 111414238 A CN111414238 A CN 111414238A CN 202010228926 A CN202010228926 A CN 202010228926A CN 111414238 A CN111414238 A CN 111414238A
- Authority
- CN
- China
- Prior art keywords
- server
- account
- terminal
- terminal group
- controlled
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开提供一种远程控制方法及系统,涉及远程控制领域,该系统包括第一服务器、主控终端组和被控终端组,其中,所述主控终端组包括至少一个主控终端,所述被控终端组包括至少一个被控终端,每个主控终端和第一账号对应,每个被控终端和第二账号对应;所述第一服务器包括受控虚拟机VM2,VM2和被控终端组对应;第一服务器建立所述主控终端组和所述VM2之间的远程控制链路;任意一主控终端通过所述远程控制链路实现对至少一个受控终端的控制。本公开能够实现同一账号下的任意一主控终端对另一账号下的受控终端的控制。
Description
技术领域
本公开涉及远程控制领域,尤其涉及远程控制方法及系统。
背景技术
云端虚拟化技术当前发展非常迅速。随着公有云平台和私有云平台的进一步发展,对于虚拟桌面云平台提出了进一步的细分需求。当前在虚拟云桌面方向,根据用户的使用行为,逐步细化出云桌面办公用户、2D/3D设计开发用户、3D游戏娱乐用户。为了满足用户对图像的高需求,提出了GPU POOL。GPU POOL能够对来自虚拟机Virtual machine的渲染指令进行渲染,并将渲染生成的图像发送给R端,R端可以是硬R或软R,软R运行在终端设备上,硬R为独立设备,R仅具有解码和显示功能,用户针对系统的所有操作都由VM完成。终端设备可以仅包括GPU、简单CPU和显示屏。
可见,如何在基于GPU POOL的云端虚拟化系统中实现两个R端之间的远程控制,是尚待解决的问题。
发明内容
本公开实施例提供一种远程控制方法及系统,本公开能够实现同一账号下的任意一主控终端对另一账号下的受控终端的控制。所述技术方案如下:
根据本公开实施例的第一方面,提供一种远程控制方法,应用于远程控制系统,该系统包括第一服务器、主控终端组和被控终端组,其中,主控终端组包括至少一个主控终端,被控终端组包括至少一个被控终端,每个主控终端和第一账号对应,每个被控终端和第二账号对应;第一服务器包括受控虚拟机VM2,VM2和被控终端组对应;该方法包括:
第一服务器建立主控终端组和VM2之间的远程控制链路;
任意一主控终端通过远程控制链路实现对至少一个受控终端的控制。
在一个实施例中,该系统还包括第二服务器,任意一主控终端通过远程控制链路实现对至少一个受控终端的控制包括:
第一服务器获取第二服务器中存储受控终端组画面的第二保存位置,并通过远程控制链路发送给至少一个主控终端;
每个主控终端根据第二保存位置获取所受控终端组的编码数据,并在解码后显示对应的操作画面;
任意一主控终端通过远程控制链路将基于操作画面的操作消息发送到第一服务器的VM2;
VM2根据操作消息生成渲染指令,并将渲染指令发送给第二服务器;
第二服务器根据渲染指令生成渲染画面,并将渲染画面保存到第二保存位置;
每个受控终端获取第二保存位置,并根据第二保存位置显示渲染画面。
在一个实施例中,第一服务器建立主控终端组和VM2之间的远程控制链路之前,该方法还包括:确定满足建立远程控制的条件;
相应的,若满足建立远程控制的条件,则建立主控终端和VM2之间的远程控制链路。
在一个实施例中,确定满足建立远程控制的条件包括:
任意一受控终端向第一服务器发送第一控制请求,第一控制请求中携带有第二账号;
第一服务器根据预存的绑定关系,将第一控制请求发送给绑定的第一账号对应的主控终端组;
任意一主控终端接收到第一控制请求后,获取第一用户输入消息,当第一用户输入消息指示同意控制时,向第一服务器发送第一通知消息;
第一服务器接收第一通知消息,确定满足建立远程控制的条件。
在一个实施例中,确定满足建立远程控制的条件包括:
任意一主控终端向第一服务器发送第二控制请求,第二控制请求中携带有第一账号;
第一服务器根据预存的绑定关系,将第二控制请求发送给绑定的第一账号对应的被控终端组;
任意一被控终端接收到第二控制请求后,获取第二用户输入消息,当第二用户输入消息指示同意被控制时,向第一服务器发送第二通知消息;
第一服务器接收第二通知消息,确定满足建立远程控制的条件。
在一个实施例中,第一服务器还包括主控虚拟机VM1,VM1和主控终端组对应,第一服务器建立主控终端和VM2之间的远程控制链路之前,该方法还包括:第一服务器预先存储绑定关系。
在一个实施例中,第一服务器预先存储绑定关系包括:
任意一受控终端向第一服务器的VM2发送第一绑定请求,第一绑定请求包括主控终端组的第一账号和受控终端组的第二账号;
第一服务器的VM1向主控终端组发送第一绑定请求;
任意一主控终端接收到第一绑定请求后,获取第三用户输入消息,当第三用于输入消息指示同意绑定时,向第一服务器发送第三通知消息;
第一服务器接收到第三通知消息,根据第一账号和第二账号生成绑定关系。
在一个实施例中,第一服务器预先存储绑定关系包括:
任意一主控终端向第一服务器的VM1发送第二绑定请求,第二绑定请求包括主控终端的第一账号和受控终端的第二账号;
第一服务器的VM2向被控终端组发送第二绑定请求;
任意一被控终端接收到第二绑定请求后,获取第四用户输入消息,当第四用于输入消息指示同意绑定时,向第一服务器发送第四通知消息;
第一服务器接收到第四通知消息,根据第一账号和第二账号生成绑定关系。
在一个实施例中,该方法还包括:
第一服务器接收到任意一主控终端或任意一受控终端的控制中断指令后,拆除远程控制链路,并将第二服务器中存储主控终端组画面的第一保存位置,通过VM1发送给主控终端组。
在一个实施例中,第一服务器预先存储绑定关系之前,该方法还包括:
主控终端组通过第一账号登录第一服务器的VM1,被控终端组通过第二账号登录第一服务器的VM2。
在一个实施例中,主控终端组包括第一主控终端和第二主控终端,主控终端组通过第一账号登录第一服务器的VM1包括:
第一主控终端向第一服务器发送第一操作消息;第一操作消息中包括第一主控终端的第一设备标识、第一账号、基于第一账号的第一操作动作和第一终端设备的第一显示信息;
第一服务器基于第一设备标识分配与第一账号对应的VM1,并判断第一账号是否首次登陆;
如果是首次登陆,则第一服务器根据第一显示信息和第一操作动作生成第一渲染指令,将第一渲染指令发送给第二服务器;并存储与第一操作动作对应的第一动作状态信息;
第二服务器基于第一渲染指令进行渲染,得到主控终端组画面,并提取受控终端组画面的第一保存位置,将第一保存位置发送给第一服务器;
第一服务器接收第一保存位置,并将第一保存位置发送给第一终端;
第一主控终端根据第一保存位置获取主控终端组画面并显示。
在一个实施例中,该方法还包括:
如果是第二主控终端已经登录到VM1,则在本地查询与第一操作动作对应的第一动作状态信息,并根据第一动作状态信息和第一显示信息生成第一渲染指令,将第一渲染指令发送给第二服务器;
第二服务器基于第一渲染指令进行渲染,得到主控终端组画面,并将主控终端组画面存储到主控终端组画面的第一保存位置;
第一主控终端和第二主控终端根据第一保存位置,获取主控终端组画面并显示。
在一个实施例中,被控终端组包括第一被控终端和第二被控终端,被控终端组通过第二账号登录第一服务器的VM2包括:
第一被控终端向第一服务器发送第二操作消息;第二操作消息中包括第一被控终端的第二设备标识、第二账号、基于第二账号的第二操作动作和第二被控终端的第二显示信息;
第一服务器基于第二设备标识分配与第二账号对应的VM2,并判断第二账号是否首次登陆;
如果是首次登陆,则第一服务器根据第二显示信息和第二操作动作生成第二渲染指令,将第二渲染指令发送给第二服务器;并存储与第二操作动作对应的第二动作状态信息;
第二服务器基于第二渲染指令进行渲染,得到被控终端组画面,并提取受控终端组画面的第二保存位置,将第二保存位置发送给第一服务器;
第一服务器接收第二保存位置,并将第一保存位置发送给第一受控终端;
第一受控终端根据第二保存位置获取被控终端组画面并显示。
在一个实施例中,该方法还包括:
如果是第二被控终端已经登录到VM2,则在本地查询与第二操作动作对应的第二动作状态信息,并根据第二动作状态信息和第二显示信息生成第二渲染指令,将第二渲染指令发送给第二服务器;
第二服务器基于第二渲染指令进行渲染,得到被主控终端组画面,并将被控终端组画面存储到受控终端组画面的第二保存位置;
第一被控终端和第二被控终端根据第二保存位置,获取被控终端组画面并显示。
根据本公开实施例的第二方面,提供一种远程控制系统,该系统包括
该系统包括第一服务器、主控终端组和被控终端组,其中,主控终端组包括至少一个主控终端,被控终端组包括至少一个被控终端,每个主控终端和第一账号对应,每个被控终端和第二账号对应;第一服务器包括受控虚拟机VM2,VM2和被控终端组对应;
第一服务器建立主控终端组和VM2之间的远程控制链路;
任意一主控终端通过远程控制链路实现对至少一个受控的控制。
在一个实施例中,该系统还包括第二服务器,任意一主控终端通过远程控制链路实现对至少一个受控终端的控制包括:
第一服务器获取第二服务器中存储受控终端组画面的第二保存位置,并通过远程控制链路发送给至少一个主控终端;
每个主控终端根据第二保存位置获取所受控终端组的编码数据,并在解码后显示对应的操作画面;
任意一主控终端通过远程控制链路将基于操作画面的操作消息发送到第一服务器的VM2;
VM2根据操作消息生成渲染指令,并将渲染指令发送给第二服务器;
第二服务器根据渲染指令生成渲染画面,并将渲染画面保存到第二保存位置;
每个受控终端获取第二保存位置,并根据第二保存位置显示渲染画面。
在一个实施例中,第一服务器建立主控终端组和VM2之间的远程控制链路之前,该方法还包括:确定满足建立远程控制的条件;
相应的,若满足建立远程控制的条件,则建立主控终端和VM2之间的远程控制链路。
在一个实施例中,确定满足建立远程控制的条件包括:
任意一受控终端向第一服务器发送第一控制请求,第一控制请求中携带有第二账号;
第一服务器根据预存的绑定关系,将第一控制请求发送给绑定的第一账号对应的主控终端组;
任意一主控终端接收到第一控制请求后,获取第一用户输入消息,当第一用户输入消息指示同意控制时,向第一服务器发送第一通知消息;
第一服务器接收第一通知消息,确定满足建立远程控制的条件。
在一个实施例中,确定满足建立远程控制的条件包括:
任意一主控终端向第一服务器发送第二控制请求,第二控制请求中携带有第一账号;
第一服务器根据预存的绑定关系,将第二控制请求发送给绑定的第一账号对应的被控终端组;
任意一被控终端接收到第二控制请求后,获取第二用户输入消息,当第二用户输入消息指示同意被控制时,向第一服务器发送第二通知消息;
第一服务器接收第二通知消息,确定满足建立远程控制的条件。
在一个实施例中,第一服务器还包括主控虚拟机VM1,VM1和主控终端组对应,第一服务器建立主控终端和VM2之间的远程控制链路之前,第一服务器预先存储绑定关系。
在一个实施例中,第一服务器预先存储绑定关系包括:
任意一受控终端向第一服务器的VM2发送第一绑定请求,第一绑定请求包括主控终端组的第一账号和受控终端组的第二账号;
第一服务器的VM1向主控终端组发送第一绑定请求;
任意一主控终端接收到第一绑定请求后,获取第三用户输入消息,当第三用于输入消息指示同意绑定时,向第一服务器发送第三通知消息;
第一服务器接收到第三通知消息,根据第一账号和第二账号生成绑定关系。
在一个实施例中,第一服务器预先存储绑定关系包括:
任意一主控终端向第一服务器的VM1发送第二绑定请求,第二绑定请求包括主控终端的第一账号和受控终端的第二账号;
第一服务器的VM2向被控终端组发送第二绑定请求;
任意一被控终端接收到第二绑定请求后,获取第四用户输入消息,当第四用于输入消息指示同意绑定时,向第一服务器发送第四通知消息;
第一服务器接收到第四通知消息,根据第一账号和第二账号生成绑定关系。
在一个实施例中,第一服务器接收到任意一主控终端或任意一受控终端的控制中断指令后,拆除远程控制链路,并将第二服务器中存储主控终端组画面的第一保存位置,通过VM1发送给主控终端组。
在一个实施例中,第一服务器预先存储绑定关系之前,该方法还包括:
主控终端组通过第一账号登录第一服务器的VM1,被控终端组通过第二账号登录第一服务器的VM2。
在一个实施例中,主控终端组包括第一主控终端和第二主控终端,主控终端组通过第一账号登录第一服务器的VM1包括:
第一主控终端向第一服务器发送第一操作消息;第一操作消息中包括第一主控终端的第一设备标识、第一账号、基于第一账号的第一操作动作和第一终端设备的第一显示信息;
第一服务器基于第一设备标识分配与第一账号对应的VM1,并判断第一账号是否首次登陆;
如果是首次登陆,则第一服务器根据第一显示信息和第一操作动作生成第一渲染指令,将第一渲染指令发送给第二服务器;并存储与第一操作动作对应的第一动作状态信息;
第二服务器基于第一渲染指令进行渲染,得到主控终端组画面,并提取受控终端组画面的第一保存位置,将第一保存位置发送给第一服务器;
第一服务器接收第一保存位置,并将第一保存位置发送给第一终端;
第一主控终端根据第一保存位置获取主控终端组画面并显示。
在一个实施例中,该方法还包括:
如果是第二主控终端已经登录到VM1,则在本地查询与第一操作动作对应的第一动作状态信息,并根据第一动作状态信息和第一显示信息生成第一渲染指令,将第一渲染指令发送给第二服务器;
第二服务器基于第一渲染指令进行渲染,得到主控终端组画面,并将主控终端组画面存储到主控终端组画面的第一保存位置;
第一主控终端和第二主控终端根据第一保存位置,获取主控终端组画面并显示。
在一个实施例中,被控终端组包括第一被控终端和第二被控终端,被控终端组通过第二账号登录第一服务器的VM2包括:
第一被控终端向第一服务器发送第二操作消息;第二操作消息中包括第一被控终端的第二设备标识、第二账号、基于第二账号的第二操作动作和第二被控终端的第二显示信息;
第一服务器基于第二设备标识分配与第二账号对应的VM2,并判断第二账号是否首次登陆;
如果是首次登陆,则第一服务器根据第二显示信息和第二操作动作生成第二渲染指令,将第二渲染指令发送给第二服务器;并存储与第二操作动作对应的第二动作状态信息;
第二服务器基于第二渲染指令进行渲染,得到被控终端组画面,并提取受控终端组画面的第二保存位置,将第二保存位置发送给第一服务器;
第一服务器接收第二保存位置,并将第一保存位置发送给第一受控终端;
第一受控终端根据第二保存位置获取被控终端组画面并显示。
在一个实施例中,该方法还包括:
如果是第二被控终端已经登录到VM2,则在本地查询与第二操作动作对应的第二动作状态信息,并根据第二动作状态信息和第二显示信息生成第二渲染指令,将第二渲染指令发送给第二服务器;
第二服务器基于第二渲染指令进行渲染,得到被主控终端组画面,并将被控终端组画面存储到受控终端组画面的第二保存位置;
第一被控终端和第二被控终端根据第二保存位置,获取被控终端组画面并显示。
本公开能够实现同一账号下的任意一主控终端对另一账号下的受控终端的控制。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开实施例提供的一种远程控制系统结构图;
图2是本公开实施例提供的一种远程控制方法流程图;
图3是本公开实施例提供的一种建立绑定关系流程图;
图4是本公开实施例提供的一种建立绑定关系流程图;
图5是本公开实施例提供的一种判断满足建立远程控制的条件流程图;
图6是本公开实施例提供的一种判断满足建立远程控制的条件流程图;
图7是本公开实施例提供的一种远程控制系统结构图;
图8是本公开实施例提供的一种远程控制方法流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
以下描述的一部分明确地或者暗含地涉及算法和对计算机存储器内数据的操作的功能或者符号表示。这些算法的描述和功能或者符号表示是数据处理领域内技术人员用于更有效地向本领域内其它技术人员表达他们工作实质的方法。此处通常将算法设想为生成期望结果的一系列有条理的步骤。这些步骤是需要对诸如能够存储、传送、组合、对比以及通过其它方式操控的电、磁或者光信号的物理量进行物理操控的步骤。
除非特别说明,否则如以下可显而易见地,应该理解本说明书通篇使用的诸如“接收”、“建立”、“渲染”、“发送”、“获取”、“生成”等术语的讨论,涉及计算机系统或者类似电子设备的动作和处理,上述的电子设备将表示为计算机系统内物理量的数据操控和转换成同样表示为计算机系统或者其它信息存储、传输或者显示设备内物理量的其它数据。
说明书还公开了用于执行方法操作的设备。这种设备为所需的目的而特别构成,或者可以包括通用计算机或者其它存储在计算机中的计算机程序选择性启动或者重新配置的其它设备。本文介绍的算法和显示不是固有地与任何具体计算机或者其它设备相关。各种通用机器可以根据本文教导的程序一起使用。可替换地,用于执行所要求的方法步骤的更特殊的设备构造是可以适用的。常规的通用计算机的结构将在以下描述中介绍。
此外,由于可以由计算机代码实施本文描述方法的各步骤对本领域技术人员是显而易见的,因此本说明书还暗含地公开计算机程序。该计算机程序不试图限制于任何具体的编程语言及其执行。应该理解,可以使用多种编程语言及其代码以执行本文包含的公开的教导。此外,该计算机程序不试图限制于任何具体的控制流。在不脱离本公开实施例精神或者范围的情况下,存在许多其它种类的、可以使用不同控制流的计算机程序。
而且,可以并行地而不是顺序地执行计算机程序的一个或者多个步骤。这种计算机程序可以存储在任何计算机可读介质上。计算机可读介质可以包括的存储设备诸如为磁盘或者光盘、存储器芯片或者适于与通用计算机接口的其它存储设备等。计算机可读介质还可以包括诸如在因特网系统中的硬接线介质,或者无线介质。当在这种通用计算机上加载和执行计算机程序时,计算机程序有效地产生实施优选方法的步骤的设备。
本公开实施例还可被实施为硬件模块。更具体地,在硬件意义下,模块是被设计为与其它部件或模块一起使用的功能性硬件单元。例如,模块可使用分立电子部件实施,或者其可以形成整个电子电路诸如特定用途集成电路(ASIC)的一部分。还存在许多其它可能。本领域技术人员应理解,该系统还可被实施为硬件和软件模块的组合。
图1是本公开实施例提供的一种远程控制系统结构图,如图1所示的远程控制系统包括云端虚拟化系统(第一服务器)、GPU POOL系统(第二服务器)、第一终端组和第二终端组,其中第一终端组可以是主控终端组,第二终端组可以是被控终端组。用户账号A登录第一终端组,第一终端组包括至少一个主控终端,用户账号B登录第二终端组,第二终端组包括至少一个被控终端,用户账号A可以通过任意一主控终端,比如第一终端Ra远程控制第二终端组的至少一个被控终端。第二终端Rb为第二终端组中任意一被控终端。其中,云端虚拟化系统包括虚拟机VM1和虚拟机VM2,以及S1模块,GPU POOL系统包括GPU POOL模块和S2模块,针对图1的系统,其中一种使用场景是:用户账号A登录任意一Ra端,Ra端对应VM1,用户账号B使用任意一Rb端,RB端对应VM2。用户账号A通过Ra端,对用户账号B的Rb端进行远程控制。
如图1所示的远程控制系统,一个账号登录多个终端的过程具体如下,云端虚拟化系统包括至少一个虚拟机VM,一个VM包括多个虚拟R端应用,一个虚拟R端应用模块包括多个业务。
VM用于接收用户使用同一用户账号在R端的操作信息,执行操作信息,并生成操作信息对应的渲染指令,将渲染指令发送给GPU POOL;还用于同步更新VM所管理的各虚拟R端应用的信息。
虚拟R端应用,用于执行用户在一个R上的操作信息,一个R对应一个虚拟R端应用模块,虚拟R端应用模块与R的标识符绑定;具体的,为用户在该R上的每个操作动作建立一个业务。
业务模块,用于执行用户在R上的操作动作,比如观看视频A,浏览购物网站B等;并根据操作动作生成渲染指令,将渲染指令发送给GPU POOL进行渲染。
比如,操作动作为观看视频A,那么,渲染指令则为生成该视频A的播放画面。
需要说明的是,业务模块之间通过不同的业务类型来区分,相同类型的业务在不同虚拟R端应用之间,也就是不同R之间,可以同步业务状态。
S2模块,用于将来自R端的消息转发至云端虚拟化系统。
具体的,一个用户账号对应一个VM;一个R端对应一个虚拟R端应用,一个虚拟R端应用与一个R端的标识符绑定,一个用户动作对应一个业务,一个业务与一个动作绑定。
GPU POOL模块,用于接收并执行业务模块发送的渲染指令,生成渲染画面,将渲染画面发送到S2模块。
S2模块,用于对渲染后的画面进行编码和保存,编码数据的保存位置由IP地址+端口号组成。
S1模块,用于对VM账号的管理;具体包括:保存用户的动作状态(比如,用户名、密码、操作状态、操作对象的名称等等与用户的操作动作对应的页面有关的信息),保存各R所需的编码数据的保存位置与各R的标识符之间的对应关系等。
比如,用户使用用户账号A在R1观看视频,那么,用户账号A对应的VM中的S1模块可以记录用户的动作状态,动作状态可以包括:播放的视频地址和名称,播放的模式、字母和音量、播放的进度等与用户行为相关的状态。当用户在其他R上播放与R1上播放的同样的视频时,S1模块会将动作状态发送给其他R对应的虚拟R端应用,其他R对应的虚拟R端应用可以根据动作状态生成渲染指令,GPU POOL根据渲染指令生成的视频画面,与R1上正在播放的视频画面相同。
此外,由于S1模块中保存了各R所需的编码数据的保存位置与各R的标识符之间的对应关系,因此,当R向S1模块发送获取编码数据的请求时,获取请求携带R自身的标识符,S1能够根据R的标识符和对应关系,查找对R所需的编码数据的保存位置,并返回R端,以使R端能够从编码数据的保存位置中获取所需的编码数据。
下面以几个具体实施例详细介绍该技术方案。
实施例一
该实施例对应的使用场景是一个用户账号登录一个R端。
用户A使用用户账号A登录Ra端,用户B使用用户账号B登录Rb端。用户账号A对应VM1,用户账号B对应VM2。用户A在用户账号A登录的Ra端,用户A通过用户账号A,远程控制用户账号B,实现对用户账号B登录的Rb端进行远程控制。
需要说明的是,事先需要在Ra端和Rb端安装远程控制APP。
图2是本公开实施例提供的一种远程控制方法流程图,如图2所示的远程控制方法用于图1的系统,具体执行以下步骤:
步骤201、Ra端和Rb端建立绑定关系。
具体的,该步骤至少包括两种方案。
方案一:
一个实施例中,如图3所示,Ra端和Rb终端建立绑定关系包括以下步骤:
步骤2011、用户B在用户账号B登录的Rb端上的远程控制APP中,将用户账号A与用户账号B的绑定请求发送给VM2。
在本步骤中,用户账号B通过Rb端,发出用户账号A与用户账号B的绑定请求,其中,绑定请求中携带用户账号B和用户账号A。
在具体实施中,用户B可以在Rb端上的远程控制APP中,打开绑定页面,输入待绑定的目标用户账号为用户账号A,点击请求绑定按钮,以便Rb端发出用户账号A与用户账号B的绑定请求。
步骤2012、VM2将绑定请求转发给S1模块,由S1模块将绑定请求发送至用户账号A对应的VM1。
在本步骤中,S1模块用于对各VM的管理,S1模块接收到来自VM2的绑定请求,根据绑定请求中携带的用户账号,确定待绑定的目标用户账号为用户账号A,则将绑定请求转发给用户账号A,也即将绑定请求转发给用户账号A对应的VM1。
步骤2013、VM1接收到绑定请求,并将绑定请求的显示界面显示在Ra端上的远程控制APP中;用户A在Ra端的远程控制APP中接受绑定请求,并将接受绑定要求的确认消息经VM1发送给S1。
在本步骤中,VM1在接收到来自Rb的绑定请求之后,通过Ra端向用户A显示绑定请求的显示界面,绑定请求的显示界面包括接受绑定请求的确定按钮,以及拒绝绑定请求的拒绝按钮;若用户A点击确认按钮,则Ra端发出接受绑定请求的确认消息,经VM1转发至S1模块。
方案二
一个实施例中,由用户A通过用户账号A发起绑定请求,如图4所示,Ra端和Rb终端建立绑定关系包括以下步骤:
步骤2011’、用户A通过用户账号A在Ra端上的远程控制APP中,将用户账号A与用户账号B的绑定请求发送给VM1。
其中,绑定请求中携带用户账号B和用户账号A。
步骤2012’、VM1将绑定请求转发给S1模块,由S1模块将绑定请求发送至用户账号B应的VM2;
步骤2013’、VM2收到绑定请求,并将绑定请求的显示界面显示在Rb上的远程控制APP中;用户B在Rb端的远程控制APP中接受绑定请求,并将接受绑定要求的确认消息经VM2发送给S1。
随后S1保存用户账号A与用户账号B的绑定关系。
至此,用户账号A与用户账号B的绑定关系建立完成。
步骤202、判断满足建立远程控制的条件;
若不满足,流程结束;若满足执行步骤203。
在可选的一个实施例中,判断满足建立远程控制的条件包括:Ra端和Rb端均同意建立远程控制。
具体的,该步骤至少包括两种方案。
方案一
一个实施例中,如图5所示,判断满足建立远程控制的条件包括以下步骤:
步骤2021、用户B在Rb端上的远程控制APP中,向VM2发起针对用户账号A的控制请求。
在本步骤中,用户B可以在Rb端上的远程控制APP中,打开控制请求页面,控制请求页面可以包括两个输入选项,一个输入选项用于输入被控制的用户账号,也即用户账号B要求其他用户账号对自身进行控制,一个输入选项用于输入控制的用户账号,也即用户账号B要求对其他用户账号进行控制。
以用户B输入被控制的用户账号为例,输入后点击请求绑定按钮,以便Rb端向VM2发出对用户账号A的控制请求。
步骤2022、VM2将控制请求发送给S1,S1根据事先保存的绑定关系,将控制请求转发给用户账号A对应的VM1。
步骤2023、VM1接收到控制请求,并将控制请求的显示界面显示在Ra端的远程控制APP中;用户A在Ra端的远程控制APP中接受控制请求,并将接受控制请求的确认消息经VM1发送给S1。
在本步骤中,VM1在接收到来自Rb的控制请求之后,通过Ra端向用户A显示控制请求的显示界面,控制请求的显示界面包括接受控制请求的确定按钮,以及拒绝控制请求的拒绝按钮;若用户A点击确认按钮,则Ra端发出接受控制请求的确认消息,经VM1转发至S1模块。
方案二
如果一个实施例中,判断满足建立远程控制的条件是用户A发起的,如图5所示,判断满足建立远程控制的条件包括以下步骤:
步骤2021’、用户A在Ra端的远程控制APP中,发起针对用户账号B的被控制请求。
步骤2022’、VM1将被控制请求发送给S1,S1根据事先保存的绑定关系,将被控制请求转发给用户账号B对应的VM2。
步骤2023’、VM2接收到被控制请求,并将被控制请求的显示界面显示在Rb端的远程控制APP中;用户B在Rb端的远程控制APP中接受被控制请求,并将接受被控制请求的确认消息经VM1发送给S1。
步骤203、S1建立用户账号A对应的主控终端组与用户账号B对应的VM2的专用链路;
然后将GPU POOL中用于保存VM2产生的编码数据cb的保存位置发送给用户账号A登录的Ra端。
其中,主控终端组与VM2的专用链路是指来自Ra端的用户操作信息不再发给VM1处理,直接透传至VM2。
具体实现中,S1模块将接收到的来自Ra端的用户操作信息直接转发至VM2,由VM2对用户操作信息进行处理。
在本步骤中,第一账号对应的第一终端组与VM2绑定,也即用户可以通过用户账号A登录的Ra端来控制VM2,并且Ra端显示的画面也为VM2执行用户操作后生成的画面,也即Ra端显示的画面与Rb端显示的画面相同。
此时,VM1仍正常运行,只是暂时无法接收到来自Ra端的用户操作信息。
步骤204、Ra端在接收到编码数据cb的保存位置后,开始获取编码数据cb。
这样,Ra端和Rb端均显示的是VM2的操作画面。
步骤205、用户A在Ra端进行操作,用户A的用户操作信息由Ra端经专用链路发送到VM2,由VM2对用户操作信息进行处理,实现对VM2的远程控制。
在本步骤中,用户A可以在Ra端,对VM2上的操作系统、应用软件等进行各种操作。
需要说明的是,可以通过远程管理APP来控制远程管理的权限,也就是通过设置远程管理APP的权限来管理用户账号A对VM2的操作权限,也即VM2可以对接收到的Ra端发送的用户操作信息做一个筛选,只执行符合权限要求的用户操作信息。
步骤206、VM2将由用户A的用户操作生成的渲染指令,发送至GPU POOL进行渲染,生成渲染画面。
进而将渲染画面发送给S2模块进行编码并保存为编码数据cb,编码数据cb在GPUPOOL系统中的保存位置为IP地址+端口。
由于S1模块已经将GPU POOL中用于保存Rb的编码数据cb的保存位置发送给Ra端,因此,用户A的操作信息所生成的渲染画面,用户A在Ra端能够看到,用户B在Rb端也能看到,也即用户B在Rb上能够看到由于用户A的操作而发生变化的画面。
步骤207、用户A或用户B在Ra端或Rb端发起中断控制的请求,由VM1或VM2转发至S1。
步骤208、S1接收到中断控制的请求,拆除第一终端组与VM2之间的专用链路,将GPU POOL中用于保存Ra端的编码数据Ca的保存位置发送给Ra端。
在步骤207和步骤208中,用户A和用户B均能够随时中断控制动作,在中断控制动作后,用户账号B能够立即恢复对VM2的控制权限,用户账号A的用户操作信息可以发送到VM1,此外,由于S1将Ra的编码数据Ca的保存位置发回到Ra端,因此,Ra端显示的画面变回到VM1的画面。
需要说明的是,用户账号A与用户账号B的绑定关系可以不用删除,一直维持有效,确认好绑定关系后,下次请求与被请求控制,可以发起直接专用链路的建立,专用链路可以在请求时建立,中断后删除,但是绑定关系可以一直维持。
实施例二
该实施例对应的使用场景可以是一个用户账号登录多个R端,即用户A使用用户账号A登录Ra1端、Ra2端和Ra3端,用户B使用用户账号B登录Rb1端、Rb2端和Rb3端。用户账号A对应VM1,用户账号B对应VM2。用户A可以通过用户账号A登录的任一个Ra端,对用户账号B登录的所有Rb端进行远程控制。
需要说明的是,事先需要在所有的R端安装远程控制APP。
该使用场景的步骤和实施例一基本一致,细节上有所不同,以用户B使用用户账号B登录Rb1端,用户A使用用户账号A登录Ra1为例进行说明,该场景下的远程控制方法包括以下步骤:
步骤701、Ra端和Rb端建立绑定关系。
具体的,该步骤至少包括两种方案。
第一种实施例中,Ra端和Rb终端建立绑定关系包括以下步骤:
步骤7011,用户B在用户账号B登录的任一Rb端上的远程控制APP中,将用户账号A与用户账号B的绑定请求发送给VM2。
其中,绑定请求中携带用户账号B和用户账号A。
在本步骤中,用户账号B通过Rb1端,发出用户账号A与用户账号B的绑定请求。
在具体实施中,用户B可以在用户账号B登录的任一Rb端上的远程控制APP中,打开绑定页面,输入待绑定的用户账号A,点击请求绑定按钮,以便Rb1端发出用户账号A与用户账号B的绑定请求。
步骤7012,VM2将绑定请求转发给S1模块,由S1模块将绑定请求发送至用户账号A对应的VM1。
在本步骤中,S1模块用于对各VM的管理,S1模块接收到来自VM2的绑定请求,根据绑定请求中携带的用户账号,确定待绑定的目标用户账号为用户账号A,则将绑定请求转发给用户账号A,也即将绑定请求转发给用户账号A对应的VM1。
步骤7013,VM1接收到绑定请求,并将绑定请求的显示界面显示在用户账号A登录的所有Ra端上的远程控制APP中;用户A在任一Ra端的远程控制APP中接受绑定请求,并将接受绑定要求的确认消息经VM1发送给S1。
在本步骤中,VM1在接收到来自Rb1的绑定请求之后,通过所有的Ra端向用户A显示绑定请求的显示界面,绑定请求的显示界面包括接受绑定请求的确定按钮,以及拒绝绑定请求的拒绝按钮;若用户A在任一Ra端中点击确认按钮,则该Ra端发出接受绑定请求的确认消息,经VM1转发至S1模块。
第二种实施例中,也可以由用户A通过用户账号A发起绑定请求,Ra端和Rb终端建立绑定关系包括以下步骤:
步骤7011’,用户A通过用户账号A登录的任一Ra端上的远程控制APP中,将用户账号A与用户账号B的绑定请求发送给VM1。
在本步骤中,用户账号A通过用户账号A登录的任一Ra端,发出用户账号A与用户账号B的绑定请求。
在具体实施中,用户A可以在用户账号A登录的任一Ra端的远程控制APP中,打开绑定页面,输入待绑定的源用户账号为用户账号B,点击请求绑定按钮,以便Rb端发出用户账号A与用户账号B的绑定请求,绑定请求中携带用户账号B和用户账号A。
步骤7012’,VM1将绑定请求转发给S1模块,由S1模块将绑定请求发送至用户账号B应的VM2
步骤7013’,VM2收到绑定请求,并将绑定请求的显示界面显示在Rb上的远程控制APP中;用户B在Rb端的远程控制APP中接受绑定请求,并将接受绑定要求的确认消息经VM2发送给S1。
S1保存用户账号A与用户账号B的绑定关系。
至此,用户账号A与用户账号B的绑定关系建立完成。
步骤702、判断满足建立远程控制的条件;
若不满足,流程结束;若满足执行步骤203。
在可选的一个实施例中,判断满足建立远程控制的条件包括:Ra端和Rb端均同意建立远程控制。
具体的,该步骤至少包括两种方案。
在在第一种实现方式中,判断满足建立远程控制的条件包括以下步骤:
步骤7021、用户B在用户账号B登录的任一Rb端的远程控制APP中,向VM2发起针对用户账号A的控制请求。
在本步骤中,用户B可以在用户账号B登录的任一Rb端的远程控制APP中,打开控制请求页面,控制请求页面可以包括两个输入选项,一个输入选项用于输入主动控制方的用户账号,也即用户账号B要求其他用户账号对自身进行控制,一个输入选项用于输入控制的被控制方的用户账号,也即用户账号B要求对其他用户账号进行控制。
在本实施例中,用户账号B为被控制方,因此,用户B输入用户账号A作为主动控制,点击请求绑定按钮,以便Rb端向VM2发出对用户账号A的控制请求。其中,控制请求携带用户账号A和用户账号B。
步骤7022、VM2将控制请求发送给S1,S1根据事先保存的绑定关系,将控制请求转发给用户账号A对应的VM1。
步骤7023、VM1接收到控制请求,并将控制请求的显示界面显示在用户账号A登录的所有Ra端的远程控制APP中;用户A在任一Ra端或上述控制请求携带的主动控制方的R端标识符对应的Ra端的远程控制APP中接受控制请求,并将接受控制请求的确认消息经VM1发送给S1。
在本步骤中,VM1在接收到来自Rb的控制请求之后,通过Ra端向用户A显示控制请求的显示界面,控制请求的显示界面包括接受控制请求的确定按钮,以及拒绝控制请求的拒绝按钮;若用户A点击确认按钮,则Ra端发出接受控制请求的确认消息,经VM1转发至S1模块。
在第二种实现方式中,判断满足建立远程控制的条件可以为用户A发起的,具体步骤如下:
步骤7021’、用户A在任一Ra端的远程控制APP中,发起针对用户账号B的被控制请求。
在本步骤中,用户A可以在任一Ra端上的远程控制APP中,打开控制请求页面,控制请求页面可以包括两个输入选项,一个输入选项用于输入主动控制方的用户账号,也即用户账号A要求其他用户账号对自身进行控制,一个输入选项用于输入控制的被控制方的用户账号,也即用户账号A要求对其他用户账号进行控制。
在本实施例中,用户账号B为被控制方,因此,用户A输入用户账号B作为被控制方,点击请求绑定按钮,以便Ra端向VM1发出对用户账号B的控制请求。其中,控制请求携带用户账号A和用户账号B。
步骤7022’、VM1将被控制请求发送给S1,S1根据事先保存的绑定关系,将被控制请求转发给用户账号B对应的VM2。
步骤7023’、VM2接收到被控制请求,并将被控制请求的显示界面显示在用户账号B登录的所有Rb端的远程控制APP中;用户B在任一Rb端或上述被控制请求携带的被控制方的R端标识符对应的Rb端的远程控制APP中接受被控制请求,并将接受被控制请求的确认消息经VM2发送给S1。
在本步骤中,VM2在接收到来自用户账号A的被控制请求之后,通过Rb端向用户B显示控制请求的显示界面,控制请求的显示界面包括接受控制请求的确定按钮,以及拒绝控制请求的拒绝按钮;若用户B点击确认按钮,则Rb端发出接受控制请求的确认消息,经VM2转发至S1模块。
步骤703、S1根据之前保存的绑定关系,建立用户账号A对应的VM1与用户账号B对应的VM2的专用链路,并将GPU POOL中用于保存VM2产生的编码数据cb的保存位置发送给用户账号A登录的所有Ra端。
具体实现中,S1模块将接收到的来自任一Ra端的用户操作信息直接转发至VM2,由VM2对用户操作信息进行处理。
此时,VM1仍正常运行,只是暂时无法接收到来自Ra端的用户操作信息。
步骤704、用户账号A登录的所有Ra端在接收到编码数据cb的保存位置后,开始获取编码数据cb。
这样,用户账号A登录的所有Ra端和用户账号B登录的所有Rb端均显示的是VM2的操作画面。
步骤705、用户A在任一Ra端进行操作,用户A的用户操作信息由Ra端经专用链路发送到VM2,由VM2对用户操作信息进行处理,实现对VM2的远程控制。
在本步骤中,用户A可以在用户账号A登录的任一Ra端,对VM2上的操作系统、应用软件等进行各种操作。
需要说明的是,可以通过远程管理APP来控制远程管理的权限,也就是通过设置远程管理APP的权限来管理用户账号A对VM2的操作权限,也即VM2可以对接收到的Ra端发送的用户操作信息做一个筛选,只执行符合权限要求的用户操作信息。
步骤706、VM2将由用户A的用户操作生成的渲染指令,发送至GPU POOL进行渲染,生成渲染画面,进而将渲染画面发送给S2模块进行编码并保存为编码数据cb,编码数据cb在GPU POOL系统中的保存位置为IP地址+端口。
由于S1模块已经将GPU POOL中用于保存Rb的编码数据cb的保存位置发送给所有的Ra端,因此,用户A的操作信息所生成的渲染画面,用户A在任一Ra端能够看到,用户B在任一Rb端也能看到,也即用户B在任一Rb端上能够看到由于用户A的操作而发生变化的画面。
步骤707、用户A或用户B可以在任一Ra端或任一Rb端发起中断控制的请求,由VM1或VM2转发至S1。
步骤708、S1接收到中断控制的请求之后,拆除第一终端组与VM2之间的专用链路,将GPU POOL中用于保存Ra端的编码数据Ca的保存位置发送给所有的Ra端。
在步骤707和步骤708中,用户A和用户B均能够随时中断控制动作,在中断控制动作后,用户账号B能够立即恢复对VM2的控制权限,用户账号A的用户操作信息可以发送到VM1,此外,由于S1将Ra的编码数据Ca的保存位置发回到所有的Ra端,因此,用户账号A登录的所有Ra端显示的画面均变回到VM1的画面。
在本发明中,当用户A需要使用用户账号A对用户账号B进行远程控制时,可以通过S1模块建立用户账号A对应的主控终端组与用户账号B对应的VM2的专用链路,具体的,主控终端组的用户操作不交个VM1做处理,直接透传至VM2,实现用户账号A与用户账号B的绑定,此外,S1将GPU POOL中用于保存VM2生成的编码数据cb的保存位置发送给用户账号A登录的R端,使得用户账号A登录的R端能够获取编码数据cb。
可见,用户A在用户账号A上的操作信息可以发送到VM2,以便对VM2进行远程控制;以及,用户账号A登录的R端可以获取到Rb的编码数据cb,也即用户账号A登录的R端的显示画面与用户账号B登录的R端的显示画面相同,这样,能够实现基于GPU POOL的云端虚拟化系统中实现两个用户账号之间的远程控制。
可选的,第一服务器预先存储绑定关系之前,上述实施例还包括:
主控终端组通过第一账号登录第一服务器的VM1,被控终端组通过第二账号登录第一服务器的VM2。
在一个实施例中,主控终端组包括第一主控终端和第二主控终端,主控终端组通过第一账号登录第一服务器的VM1包括:
第一主控终端向第一服务器发送第一操作消息;第一操作消息中包括第一主控终端的第一设备标识、第一账号、基于第一账号的第一操作动作和第一终端设备的第一显示信息;
第一服务器基于第一设备标识分配与第一账号对应的VM1,并判断第一账号是否首次登陆;
如果是首次登陆,则第一服务器根据第一显示信息和第一操作动作生成第一渲染指令,将第一渲染指令发送给第二服务器;并存储与第一操作动作对应的第一动作状态信息;
第二服务器基于第一渲染指令进行渲染,得到主控终端组画面,并提取受控终端组画面的第一保存位置,将第一保存位置发送给第一服务器;
第一服务器接收第一保存位置,并将第一保存位置发送给第一终端;
第一主控终端根据第一保存位置获取主控终端组画面并显示。
如果是第二主控终端已经登录到VM1,则在本地查询与第一操作动作对应的第一动作状态信息,并根据第一动作状态信息和第一显示信息生成第一渲染指令,将第一渲染指令发送给第二服务器;
第二服务器基于第一渲染指令进行渲染,得到主控终端组画面,并将主控终端组画面存储到主控终端组画面的第一保存位置;
第一主控终端和第二主控终端根据第一保存位置,获取主控终端组画面并显示。
在一个实施例中,被控终端组包括第一被控终端和第二被控终端,被控终端组通过第二账号登录第一服务器的VM2包括:
第一被控终端向第一服务器发送第二操作消息;第二操作消息中包括第一被控终端的第二设备标识、第二账号、基于第二账号的第二操作动作和第二被控终端的第二显示信息;
第一服务器基于第二设备标识分配与第二账号对应的VM2,并判断第二账号是否首次登陆;
如果是首次登陆,则第一服务器根据第二显示信息和第二操作动作生成第二渲染指令,将第二渲染指令发送给第二服务器;并存储与第二操作动作对应的第二动作状态信息;
第二服务器基于第二渲染指令进行渲染,得到被控终端组画面,并提取受控终端组画面的第二保存位置,将第二保存位置发送给第一服务器;
第一服务器接收第二保存位置,并将第一保存位置发送给第一受控终端;
第一受控终端根据第二保存位置获取被控终端组画面并显示。
如果是第二被控终端已经登录到VM2,则在本地查询与第二操作动作对应的第二动作状态信息,并根据第二动作状态信息和第二显示信息生成第二渲染指令,将第二渲染指令发送给第二服务器;
第二服务器基于第二渲染指令进行渲染,得到被主控终端组画面,并将被控终端组画面存储到受控终端组画面的第二保存位置;
第一被控终端和第二被控终端根据第二保存位置,获取被控终端组画面并显示。
下面以一个具体是使用场景,主控终端通过账号A登录VM1,多个受控终端通过账号V登录VM2,具体以R1和R2已经使用账号A登录VM1,现在要通过账号A登录R3为例进行说明,具体包括以下几个步骤:
步骤S01、用户使用用户账号A,操作登陆R3。
需要说明的是,用户已使用用户账号A,成功登录R1和R2。
在本步骤中,R3向云端虚拟化系统发送用户操作信息(账号信息),其中,用户操作信息(账号信息)中携带R3端的标识码、用户账号A、操作动作和R3的显示信息,显示信息包括显示分辨率和显示形式,显示形式包括详细版和简约版。
比如,QQ在电脑上的显示形式可以为详细版,在手机上的显示形式可以为简约版,当接收到新消息时,详细版可以为弹出完整的聊天界面,简约版可以为弹出一条聊天信息。
又比如,R端的标识码可以为硬件标识码,以便云端虚拟化系统能够区分不同的R。
步骤S02、确定用户账号A对应的VM1;将由S1模块为R3分配对应的虚拟R端应用3,由虚拟R端应用3为用户的操作动作(账号信息)分配业务3。
第一、VM1中的S1模块在接收到来自用户账号A的用户操作信息之后,从用户操作信息中解析出用户账号、R端的标识码、显示信息和操作动作;
第二、S1模块根据R端的标识码,判断VM1中是否已存在R3对应的虚拟R端应用模块3,若没有,则新建一个虚拟R端应用模块3,并将显示信息和操作动作发送给虚拟R端应用模块3;
第三、虚拟R端应用模块3根据操作动作,判断是否存在该操作动作(账号信息)对应的业务,若没有,则建立一个新的业务3,并将显示信息发送给业务3,此外,虚拟R端应用3与R3的硬件标识码绑定;
步骤S03、业务3从S1模块处获取该操作动作(账号信息)对应的动作状态(用户名、密码),根据动作状态,执行该操作动作,并基于显示信息,生成渲染指令。
其中,渲染指令用于生成用户登录成功后的页面;业务3与用户登录的动作绑定。
比如,操作动作是用户登录,业务3根据R3的显示信息(分辨率和显示形式),确定用于生成登录成功画面的渲染指令。
步骤S04、业务3将渲染指令发送给GPU POOL系统中的GPU POOL模块;GPU POOL模块根据渲染指令完成渲染任务,生成渲染画面,并将渲染画面发送给S2模块进行编码并保存编码数据。
编码数据在GPU POOL系统中的保存位置为IP地址+端口。
步骤S05、R3周期性向S1模块发送获取编码数据的请求,S1模块向R3返回编码数据的保存位置。
由于S1模块中事先保存了各R所需的编码数据的保存位置与各R的标识符之间的对应关系,因此,当R向S1模块发送获取编码数据的请求时,获取请求携带R自身的标识符,S1能够根据R的标识符和对应关系,查找对R所需的编码数据的保存位置,并返回R端,以使R端能够从编码数据的保存位置中获取所需的编码数据。
需要说明的是,在R3第一次从GPU POOL系统中获取编码数据后,建立R3与GPUPOOL中用于保存R3编码数据的保存位置的传输链路;在GPU POOL中用于保存R3编码数据的保存位置接收到新的编码数据之后,GPU POOL将新的编码数据通过传输链路直接发送给R3,无需R3再请求。
在R1 R2 R3均登录成功后,R1 R2 R3均建立与GPU POOL的传输链路。
这样,由一个VM基于同一个账户控制多个R。主控终端组通过第一账号登录VM1,被控终端组通过第二账号登录第二VM,处理方式是相同的,在此不重复描述。
实施例三
图7是本公开实施例提供的一种远程控制系统,如图7所示的远程控制系统70包括第一服务器701、主控终端组702和被控终端组703,其中,主控终端组包括至少一个主控终端,被控终端组包括至少一个被控终端,每个主控终端和第一账号对应,每个被控终端和第二账号对应;第一服务器包括受控虚拟机VM2,VM2和被控终端组对应。
可选的,如图7所示的远程控制系统70还包括第二服务器704。
实施例四图8是本公开实施例提供的一种远程控制方法,应用于图7所示的远程控制系统,该方法包括以下步骤:
步骤802、第一服务器建立主控终端组和VM2之间的远程控制链路;
步骤804、任意一主控终端通过远程控制链路实现对至少一个受控终端的控制。
可选的,该系统还包括第二服务器,步骤804具体包括以下步骤:
步骤8041、第一服务器获取第二服务器中存储受控终端组画面的第二保存位置,并通过远程控制链路发送给至少一个主控终端;
步骤8042、每个主控终端根据第二保存位置获取所受控终端组的编码数据,并在解码后显示对应的操作画面;
步骤8043、任意一主控终端通过远程控制链路将基于操作画面的操作消息发送到第一服务器的VM2;
步骤8044、VM2根据操作消息生成渲染指令,并将渲染指令发送给第二服务器;
步骤8045、第二服务器根据渲染指令生成渲染画面,并将渲染画面保存到第二保存位置;
步骤8046、每个受控终端获取第二保存位置,并根据第二保存位置显示渲染画面。
在一个实施例中,步骤802之前,该方法还包括:
步骤801、确定满足建立远程控制的条件;
相应的,若满足建立远程控制的条件,则建立主控终端组和VM2之间的远程控制链路。
在一个实施例中,步骤801包括以下步骤:
步骤8011、任意一受控终端向第一服务器发送第一控制请求;
第一控制请求中携带有第二账号。
步骤8012、第一服务器根据预存的绑定关系,将第一控制请求发送给绑定的第一账号对应的主控终端组;
步骤8013、任意一主控终端接收到第一控制请求后,获取第一用户输入消息,当第一用户输入消息指示同意控制时,向第一服务器发送第一通知消息;
步骤8014、第一服务器接收第一通知消息,确定满足建立远程控制的条件。
在一个实施例中,步骤801具体包括以下步骤:
步骤801a、任意一主控终端向第一服务器发送第二控制请求;
第二控制请求中携带有第一账号。
步骤801b、第一服务器根据预存的绑定关系,将第二控制请求发送给绑定的第一账号对应的被控终端组;
步骤801c、任意一被控终端接收到第一控制请求后,获取第二用户输入消息,当第二用户输入消息指示同意被控制时,向第一服务器发送第二通知消息;
步骤801d、第一服务器接收第二通知消息,确定满足建立远程控制的条件。
在一个实施例中,第一服务器还包括主控虚拟机VM1,VM1和主控终端组对应,步骤801之前,该方法还包括:
步骤800、第一服务器预先存储绑定关系。
在一个实施例中,步骤800具体包括以下步骤:
步骤8001、任意一受控终端向第一服务器的VM2发送第一绑定请求,第一绑定请求包括主控终端组的第一账号和受控终端组的第二账号;
步骤8002、第一服务器的VM1向主控终端组发送第一绑定请求;
步骤8003、任意一主控终端接收到第一绑定请求后,获取第三用户输入消息,当第三用于输入消息指示同意绑定时,向第一服务器发送第三通知消息;
步骤8004、第一服务器接收到第三通知消息,根据第一账号和第二账号生成绑定关系。
在一个实施例中,步骤800包括以下步骤:
步骤800a、任意一主控终端向第一服务器的VM1发送第二绑定请求,第二绑定请求包括主控终端组的第一账号和受控终端组的第二账号;
步骤800b、第一服务器的VM2向被控终端组发送第二绑定请求;
步骤800c、任意一被控终端接收到第二绑定请求后,获取第四用户输入消息,当第四用于输入消息指示同意绑定时,向第一服务器发送第四通知消息;
步骤800d、第一服务器接收到第四通知消息,根据第一账号和第二账号生成绑定关系。
在一个实施例中,该方法还包括:
步骤806、第一服务器接收到任意一主控终端或任意一受控终端的控制中断指令后,拆除远程控制链路,并将第二服务器中存储主控终端组画面的第一保存位置,通过VM1发送给主控终端。
在某些场景下,用户A使用Ra端,对用户B使用的Rb端进行远程控制,比如,用户B为老年人,用户A为不住在一起的子女,通过远程控制为老年人使用的Rb端进行软件安装等操作;又比如,用户A通过Ra端,远程操作Rb端,对Rb端所连接的电子设备进行远程控制,电子设备可以为无人机、智能电器等。
在本公开实施例中,当用户A需要通过Ra端对Rb端进行远程控制时,可以通过云端虚拟化系统中的S1模块,建立Ra端与Rb端对应的VM2的专用链路,以及将GPU POOL中用于保存Rb编码数据cb的保存位置发送给Ra端,使得Ra端能够从获取Rb的编码数据cb。
可见,用户A在Ra端的操作信息可以发送到VM2,对VM2进行远程控制,以及Ra端可以获取到Rb的编码数据cb,也即Ra端的显示画面与Rb端的显示画面相同,这样,能够实现基于GPU POOL的云端虚拟化系统中实现两个R端之间的远程控制。
基于上述图8对应的实施例中所描述的远程控制方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图8对应的实施例中所描述的远程控制方法,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
Claims (15)
1.一种远程控制方法,应用于远程控制系统,其特征在于,所述系统包括第一服务器、主控终端组和被控终端组,其中,所述主控终端组包括至少一个主控终端,所述被控终端组包括至少一个被控终端,每个主控终端和第一账号对应,每个被控终端和第二账号对应;所述第一服务器包括受控虚拟机VM2,VM2和被控终端组对应;所述方法包括:
第一服务器建立所述主控终端组和所述VM2之间的远程控制链路;
任意一主控终端通过所述远程控制链路实现对至少一个受控终端的控制。
2.根据权利要求2所述的方法,其特征在于,所述系统还包括第二服务器,所述任意一主控终端通过所述远程控制链路实现对至少一个受控终端的控制包括:
第一服务器获取第二服务器中存储受控终端组画面的第二保存位置,并通过所述远程控制链路发送给至少一个主控终端;
每个主控终端根据所述第二保存位置获取所受控终端组的编码数据,并在解码后显示对应的操作画面;
任意一主控终端通过所述远程控制链路将基于所述操作画面的操作消息发送到第一服务器的VM2;
VM2根据所述操作消息生成渲染指令,并将所述渲染指令发送给第二服务器;
第二服务器根据所述渲染指令生成渲染画面,并将所述渲染画面保存到所述第二保存位置;
每个受控终端获取所述第二保存位置,并根据所述第二保存位置显示所述渲染画面。
3.根据权利要求2所述的方法,其特征在于,所述第一服务器建立所述主控终端组和所述VM2之间的远程控制链路之前,所述方法还包括:确定满足建立远程控制的条件;
相应的,若满足建立远程控制的条件,则建立所述主控终端组和所述VM2之间的远程控制链路。
4.根据权利要求2所述的方法,其特征在于,所述确定满足建立远程控制的条件包括:
任意一受控终端向第一服务器发送第一控制请求,所述第一控制请求中携带有第二账号;
第一服务器根据预存的绑定关系,将所述第一控制请求发送给绑定的第一账号对应的主控终端组;
任意一主控终端接收到第一控制请求后,获取第一用户输入消息,当第一用户输入消息指示同意控制时,向第一服务器发送第一通知消息;
第一服务器接收第一通知消息,确定满足建立远程控制的条件。
5.根据权利要求3所述的方法,其特征在于,所述确定满足建立远程控制的条件包括:
任意一主控终端向第一服务器发送第二控制请求,所述第二控制请求中携带有第一账号;
第一服务器根据预存的绑定关系,将所述第二控制请求发送给绑定的第二账号对应的被控终端组;
任意一被控终端接收到第二控制请求后,获取第二用户输入消息,当第二用户输入消息指示同意被控制时,向第一服务器发送第二通知消息;
第一服务器接收第二通知消息,确定满足建立远程控制的条件。
6.根据权利要求4或5所述的方法,其特征在于,第一服务器建立所述主控终端组和所述VM2之间的远程控制链路之前,所述方法还包括:第一服务器预先存储所述绑定关系。
7.根据权利要求6所述的方法,其特征在于,第一服务器还包括主控虚拟机VM1,VM1和主控终端组对应,第一服务器预先存储所述绑定关系包括:
任意一受控终端向第一服务器的VM2发送第一绑定请求,所述第一绑定请求包括主控终端组的第一账号和受控终端组的第二账号;
第一服务器的VM1向主控终端组发送所述第一绑定请求;
任意一主控终端接收到所述第一绑定请求后,获取第三用户输入消息,当第三用于输入消息指示同意绑定时,向第一服务器发送第三通知消息;
第一服务器接收到第三通知消息,根据所述第一账号和第二账号生成所述绑定关系。
8.根据权利要求6所述的方法,其特征在于,第一服务器预先存储所述绑定关系包括:
任意一主控终端向第一服务器的VM1发送第二绑定请求,所述第二绑定请求包括主控终端组的第一账号和受控终端组的第二账号;
第一服务器的VM2向被控终端组发送所述第二绑定请求;
任意一被控终端接收到所述第二绑定请求后,获取第四用户输入消息,当第四用于输入消息指示同意绑定时,向第一服务器发送第四通知消息;
第一服务器接收到第四通知消息,根据所述第一账号和第二账号生成所述绑定关系。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
第一服务器接收到任意一主控终端或任意一受控终端的控制中断指令后,拆除所述远程控制链路,并将第二服务器中存储主控终端组画面的第一保存位置,通过VM1发送给主控终端。
10.根据权利要求9所述的方法,其特征在于,第一服务器预先存储所述绑定关系之前,所述方法还包括:
所述主控终端组通过第一账号登录第一服务器的VM1,所述被控终端组通过第二账号登录第一服务器的VM2。
11.根据权利要求10所述的方法,其特征在于,所述主控终端组包括第一主控终端和第二主控终端,所述主控终端组通过第一账号登录第一服务器的VM1包括:
第一主控终端向第一服务器发送第一操作消息;所述第一操作消息中包括第一主控终端的第一设备标识、第一账号、基于所述第一账号的第一操作动作和第一终端设备的第一显示信息;
第一服务器基于所述第一设备标识分配与所述第一账号对应的VM1,并判断所述第一账号是否首次登陆;
如果是首次登陆,则第一服务器根据所述第一显示信息和第一操作动作生成第一渲染指令,将所述第一渲染指令发送给第二服务器;并存储与所述第一操作动作对应的第一动作状态信息;
第二服务器基于所述第一渲染指令进行渲染,得到主控终端组画面,并提取受控终端组画面的第一保存位置,将所述第一保存位置发送给第一服务器;
第一服务器接收所述第一保存位置,并将所述第一保存位置发送给所述第一终端;
第一主控终端根据所述第一保存位置获取所述主控终端组画面并显示。
12.根据权利要求11所述的方法,其特征在于是,所述方法还包括:
如果是第二主控终端已经登录到所述VM1,则在本地查询与所述第一操作动作对应的第一动作状态信息,并根据所述第一动作状态信息和第一显示信息生成第一渲染指令,将所述第一渲染指令发送给第二服务器;
第二服务器基于所述第一渲染指令进行渲染,得到主控终端组画面,并将所述主控终端组画面存储到主控终端组画面的第一保存位置;
第一主控终端和第二主控终端根据所述第一保存位置,获取所述主控终端组画面并显示。
13.根据权利要求12所述的方法,其特征在于,所述被控终端组包括第一被控终端和第二被控终端,所述被控终端组通过第二账号登录第一服务器的VM2包括:
第一被控终端向第一服务器发送第二操作消息;所述第二操作消息中包括第一被控终端的第二设备标识、第二账号、基于所述第二账号的第二操作动作和第二被控终端的第二显示信息;
第一服务器基于所述第二设备标识分配与所述第二账号对应的VM2,并判断所述第二账号是否首次登陆;
如果是首次登陆,则第一服务器根据所述第二显示信息和第二操作动作生成第二渲染指令,将所述第二渲染指令发送给第二服务器;并存储与所述第二操作动作对应的第二动作状态信息;
第二服务器基于所述第二渲染指令进行渲染,得到被控终端组画面,并提取受控终端组画面的第二保存位置,将所述第二保存位置发送给第一服务器;
第一服务器接收所述第二保存位置,并将所述第一保存位置发送给所述第一受控终端;
第一受控终端根据所述第二保存位置获取所述被控终端组画面并显示。
14.根据权利要求13所述的方法,其特征在于是,所述方法还包括:
如果是第二被控终端已经登录到所述VM2,则在本地查询与所述第二操作动作对应的第二动作状态信息,并根据所述第二动作状态信息和第二显示信息生成第二渲染指令,将所述第二渲染指令发送给第二服务器;
第二服务器基于所述第二渲染指令进行渲染,得到被主控终端组画面,并将所述被控终端组画面存储到受控终端组画面的第二保存位置;
第一被控终端和第二被控终端根据所述第二保存位置,获取所述被控终端组画面并显示。
15.一种远程控制系统,其特征在于,所述系统包括第一服务器、主控终端组和被控终端组,其中,所述主控终端组包括至少一个主控终端,所述被控终端组包括至少一个被控终端,每个主控终端和第一账号对应,每个被控终端和第二账号对应;所述第一服务器包括受控虚拟机VM2,VM2和被控终端组对应;
第一服务器建立所述主控终端组和所述VM2之间的远程控制链路;
任意一主控终端通过所述远程控制链路实现对至少一个受控终端的控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010228926.1A CN111414238A (zh) | 2020-03-27 | 2020-03-27 | 远程控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010228926.1A CN111414238A (zh) | 2020-03-27 | 2020-03-27 | 远程控制方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111414238A true CN111414238A (zh) | 2020-07-14 |
Family
ID=71494764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010228926.1A Pending CN111414238A (zh) | 2020-03-27 | 2020-03-27 | 远程控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414238A (zh) |
-
2020
- 2020-03-27 CN CN202010228926.1A patent/CN111414238A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10065119B2 (en) | Game accessing method and processing method, server, terminal, and system | |
US10009303B2 (en) | Message push method and apparatus | |
US10623500B2 (en) | Remote desktop sharing and collaboration via image scanning | |
CN103001992A (zh) | 虚拟桌面实现系统及其使用方法 | |
CN110099461B (zh) | 终端之间的通信方法、系统、电子设备及存储介质 | |
CN111625810B (zh) | 设备登录方法、设备及系统 | |
CN106027631B (zh) | 一种数据传输方法及装置 | |
CN104635543A (zh) | 进行管理操作的方法和装置 | |
CN112486620A (zh) | 跨进程离屏渲染方法、装置、电子设备及存储介质 | |
CN112288404A (zh) | 一种会议管理方法、装置、电子设备及存储介质 | |
US20170149755A1 (en) | Management system, communication control method, and communication system | |
CN113434105A (zh) | 投屏控制方法、装置、存储介质及电子设备 | |
CN114489891A (zh) | 云应用程序的控制方法、系统、装置、可读介质和设备 | |
CA2936055A1 (en) | Access control device, communication system, program, and method for controlling access | |
CN115550498B (zh) | 投屏方法、装置、设备和存储介质 | |
CN112751681A (zh) | 图像处理方法、装置、设备以及计算机可读存储介质 | |
EP4376379A1 (en) | Data processing method and apparatus, device, computer readable storage medium, and computer program product | |
CN111414238A (zh) | 远程控制方法及系统 | |
CN114726664B (zh) | 家居设备的绑定方法及设备 | |
CN115484346A (zh) | 云手机管理方法、系统及电子设备 | |
CN111803926B (zh) | 云应用中控制对象的匹配方法、装置及电子设备 | |
CN111491210A (zh) | 数据处理方法、装置及系统 | |
CN114040240A (zh) | 按钮配置方法、装置、服务器及存储介质 | |
CN111414237A (zh) | 远程控制方法及系统 | |
CN113332710A (zh) | 一种游戏账号登录方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |