远程桌面系统及图像数据共享方法与流程

文档序号:14993487发布日期:2018-07-20 23:00阅读:246来源:国知局

本申请涉及计算机技术领域,尤其涉及远程桌面系统和运用在该远程桌面系统中的图像数据共享方法。



背景技术:

远程桌面系统中,用户使用的终端和用户的虚拟机(virtualmachine,vm)之间通过网络连接。运行vm的数据中心内部部署有多台服务器,每台服务器上可以运行一个或多个vm。用户通过终端登录自己的vm,通过终端接收vm传送的图像数据,例如桌面图像。终端接收图像数据后,对图像数据进行解码、渲染,并在与终端相连的显示器上播放。

在一些场景中,用户需要将自己的vm的图像信息同步给其他用户观看,例如虚拟教室内,教师需要共享自己的屏幕给学生观看,或者学生需要共享自己的屏幕给其他学生观看。现有技术一般在运行vm的数据中心内,由共享者的vm将待共享的图像数据发送给被共享者的vm。然后由每个被共享者的vm将待共享的图像数据发送至对应的终端,每个被共享者再通过各自的终端观看待共享的图像。现有的系统中由于每台被共享者的vm均将待共享的图像数据发送至对应的终端,导致终端和vm之间传输的数据量高,对终端和vm之间的通信网络造成较大压力。



技术实现要素:

本申请提供了一种远程桌面系统,降低了共享图像数据对终端和vm间的通信网络造成的压力。

本申请的第一方面提供了一种远程桌面系统,包括主vm,多个从属vm,用于访问所述主vm的主终端和多个用于访问所述多个从属vm的从属终端,一个从属vm对应于一个从属终端。

所述主vm,用于获取第一共享列表,所述第一共享列表中包括多个被共享的从属终端的ip地址;发送所述第一共享列表至所述主终端;发送第一待共享的图像数据至所述主终端。

所述主终端,用于根据所述第一共享列表,将所述第一待共享的图像数据发送至每个被共享的从属终端。

所述每个被共享的从属终端,用于接收所述第一待共享的图像数据。

以上系统在共享图像数据的过程中,vm和终端间传输的数据量较低,降低了网络负担。

在一个可能的设计中,所述第一待共享的图像数据为所述主vm的桌面图像数据。

例如,主vm将自己的桌面共享给各个从属终端的用户观看。

在一个可能的设计中,所述主终端,用于登陆主vm;获取主vm的ip地址;发送所述主vm的ip地址至每个从属终端。

第一从属终端,用于登陆所述第一从属终端对应的第一从属vm;发送所述主vm的ip地址至所述第一从属vm。

所述第一从属vm,用于根据所述主vm的ip地址,获取第一组播ip地址。

所述主vm,用于根据所述主vm的ip地址,获取所述第一组播ip地址。

通过自动获取组播ip地址,主vm和从属vm得以建立组播域,实现了组播域的自动建立。

在一个可能的设计中,所述主vm,用于发送新的主vm的ip地址至所述主终端;根据所述新的主vm的ip地址,获取所述第二组播ip地址。

所述主终端,用于向所述每个从属终端发送所述新的主vm的ip地址。

所述第一从属终端,用于发送所述新的主vm的ip地址至所述第一从属vm;

所述第一从属vm,用于根据所述新的主vm的ip地址,获取所述第二组播ip地址。

以上系统实现了主vm的ip地址更新的情况下,组播ip地址的自动更新,即主vm和从属vm自动建立了新的组播域。

在一个可能的设计中,所述主vm,用于获取第二从属vm的ip地址和第二共享列表,所属第二共享列表包括被共享的从属终端的ip地址;根据所述第二从属vm的ip地址,向所述第二从属vm发送共享请求。

所述第二从属vm,用于根据所述共享请求,发送第二待共享的图像数据至所述主vm,所述第二待共享的数据为所述第二从属vm的桌面图像数据。

所述主vm,用于发送所述第二待共享的图像数据和所述第二共享列表至所述主终端。

所述主终端,用于根据所述第二共享列表,将所述第二待共享的图像数据发送至每个被共享的从属终端。

以上系统实现了从属vm之间的图像数据的共享。

本申请的第二方面提供了运用于第一方面的系统中的图像数据共享方法,包括:

所述主vm获取第一共享列表,所述第一共享列表中包括多个被共享的从属终端的ip地址;

所述主vm发送所述第一共享列表至所述主终端;

所述主vm发送第一待共享的图像数据至所述主终端;

所述主终端根据所述第一共享列表,将所述第一待共享的图像数据发送至每个被共享的从属终端;

所述每个被共享的从属终端接收所述第一待共享的图像数据。

在一个可能的设计中,所述第一待共享的图像数据为所述主vm的桌面图像数据。

在一个可能的设计中,所述主终端登陆主vm,获取主vm的ip地址;

所述主终端发送所述主vm的ip地址至每个从属终端;

第一从属终端登陆所述第一从属终端对应的第一从属vm,发送所述主vm的ip地址至所述第一从属vm;

所述第一从属vm根据所述主vm的ip地址,获取第一组播ip地址;

所述主vm根据所述主vm的ip地址,获取所述第一组播ip地址。

在一个可能的设计中,所述主vm发送新的主vm的ip地址至所述主终端;根据所述新的主vm的ip地址,获取所述第二组播ip地址;

所述主终端向所述每个从属终端发送所述新的主vm的ip地址;

所述第一从属终端发送所述新的主vm的ip地址至所述第一从属vm;

所述第一从属vm根据所述新的主vm的ip地址,获取所述第二组播ip地址。

在一个可能的设计中,所述主vm获取第二从属vm的ip地址和第二共享列表,所属第二共享列表包括被共享的从属终端的ip地址;

所述主vm根据所述第二从属vm的ip地址,向所述第二从属vm发送共享请求;

所述第二从属vm根据所述共享请求,发送第二待共享的图像数据至所述主vm,所述第二待共享的数据为所述第二从属vm的桌面图像数据;

所述主vm发送所述第二待共享的图像数据和所述第二共享列表至所述主终端;

所述主终端根据所述第二共享列表,将所述第二待共享的图像数据发送至每个被共享的从属终端。

本申请的第三方面提供了一种主终端,包括处理器和存储器,该处理器和该存储器建立通信;该处理器,用于执行第二方面或第二方面中任一种可能的设计提供的方法中主终端侧执行的方法。

本申请的第四方面提供了一种从属终端,包括处理器和存储器,该处理器和该存储器建立通信;该处理器,用于执行第二方面或第二方面中任一种可能的设计提供的方法中从属终端侧执行的方法。

本申请的第五方面提供了一种服务器,包括处理器和存储器,该处理器和该存储器建立通信;该处理器,用于执行第二方面或第二方面中任一种可能的设计提供的方法中主vm侧执行的方法。

本申请的第六方面提供了一种服务器,包括处理器和存储器,该处理器和该存储器建立通信;该处理器,用于执行第二方面或第二方面中任一种可能的设计提供的方法中从属vm侧执行的方法。

本申请的第七方面提供了一种主终端,包括用于执行第二方面或第二方面中任一种可能的设计提供的方法中主终端侧执行的方法的至少一个模块。

本申请的第八方面提供了一种从属终端,包括用于执行第二方面或第二方面中任一种可能的设计提供的方法中从属终端侧执行的方法的至少一个模块。

本申请的第九方面提供了一种存储介质,该存储介质中存储了程序代码,该程序代码被服务器运行时,该服务器执行前述第二方面或第二方面的任一种可能的设计中主vm执行的步骤。该存储介质可以为非易失性存储介质,包括但不限于快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:hdd)或固态硬盘(英文:solidstatedrive,缩写:ssd)。

本申请的第十方面提供了一种存储介质,该存储介质中存储了程序代码,该程序代码被服务器运行时,该服务器执行前述第二方面或第二方面的任一种可能的设计中从属vm执行的步骤。

本申请的第九方面提供了一种存储介质,该存储介质中存储了程序代码,该程序代码被主终端运行时,该服务器执行前述第二方面或第二方面的任一种可能的设计中主终端执行的步骤。

本申请的第九方面提供了一种存储介质,该存储介质中存储了程序代码,该程序代码被从属终端运行时,该服务器执行前述第二方面或第二方面的任一种可能的设计中从属终端执行的步骤。

附图说明

图1为本申请实施例提供的远程桌面系统的示意图;

图2为本申请实施例提供的组建组播域的方法的流程示意图;

图3为本申请实施例提供的更新主vm的ip地址的方法的流程示意图;;

图4为本申请实施例提供的图像数据共享的方法的流程示意图;

图5为本申请实施例提供的图像数据共享的方法的流程示意图;

图6为本申请实施例提供的运行vm的服务器的结构示意图;

图7为本申请实施例提供的终端的结构示意图;

图8为本申请实施例提供的终端的另一结构示意图。

具体实施方式

下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

本申请中采用术语第一、第二等来区分各个对象,例如第一交换机、第二交换机等,但各个“第一”、“第二”之间不具有逻辑或时序上的依赖关系。

贯穿本说明书,主vm对从属vm有管理能力,例如监控从属vm的运行状况,远程操控从属vm等。以虚拟教室的场景为例,主vm可以是教师vm,从属vm可以是学生vm。vm中心可以有多个主vm,不同主vm和对应的从属vm组成不同的组播域,一个组播域即虚拟教室。

贯穿本说明书,终端部署在用户侧。终端一般有编码、解码、渲染等功能中的一样或多样。终端一般与显示器连接或终端内设置有显示器,以便用户通过终端能够观看vm的桌面和对vm进行操作。

本申请实施例所应用的远程桌面系统

如图1所示,远程桌面系统包括vm中心和终端中心。vm中心包括多台服务器,这多台服务器运行有主vm,从属vm1至从属vmn,每台服务器上运行有一个或多个vm。vm中心还包括管理设备,该管理设备可以是一台服务器或者是运行在一个服务器上的管理虚拟机。终端中心包括主终端,用于访问主vm;终端中心还包括从属终端1至从属终端n分别用于访问从属vm1至从属vmn。vm中心和终端中心通过通信网络通信。在虚拟教室的场景下,vm中心是学校的机房,终端中心由学校的教室构成。

以用户1通过主终端访问主vm,用户2至用户n+1分别通过从属终端1至从属终端n访问从属vm1至从属vmn为例。如果用户1希望将主vm的图像数据,例如图像数据的大小有5mb,共享至用户2至用户n+1的显示器,以供用户2至用户n+1观看。现有的系统中,首先主vm将图像数据分别发送至从属vm1至从属vmn,从属vm1至从属vmn分别将获取的图像数据发送至从属终端1至从属终端n。因此,vm中心需要发送5*nmb的数据至终端中心,给vm中心和终端中心间的通信网络造成了很大的压力。

为了解决该问题,本发明提出的远程桌面系统中,首先主vm和从属vm建立组播域。如果组播域内的任一vm想要共享自己的图像数据,共享vm将待共享的图像数据发送至共享vm对应的终端。然后,共享vm对应的终端将待共享的图像数据发送至被共享的终端,并通过被共享的终端向用户播放待共享的图像数据。该过程中,vm中心和终端中心间的通信网络仅传输了一次待共享的图像数据,极大的降低了vm中心和终端中心间的通信网络的压力。同时,降低了通信网络的设计标准,减少了系统的建设成本。

如图2所示,以在主终端、从属终端1、主vm和从属vm1间建立组播域为例,介绍本申请提出的组建组播域的方法。其余从属终端和从属vm建立组播域的方法可以参考该例。

s202,从属终端1向主终端发送第一注册消息。第一注册信息携带从属终端1的ip地址。主终端记录从属终端1的ip地址。

每个从属终端中预先存储有自己的ip地址。如果系统中有其他从属终端加入组播域,其他从属终端也执行s202。因此s202后,主终端记录了组播域中每个从属终端的ip地址。

s204,主终端向从属终端1发送注册成功消息。

s206,主终端登录主vm。

s206前,主终端向管理设备请求获取主vm的ip地址。

s208,主vm返回主vm的ip地址至主终端。

可选的,主vm还可以返回主vm的图像数据至主终端,以供主终端显示主vm的图像数据给主终端的用户观看。

通过s206和s208,主终端成功登陆主vm,主终端获取了主vm的ip地址,并且主vm获取了主终端的ip地址。主vm和主终端间建立了通信连接以供后续数据的传输。

s210,从属终端1登录从属vm1。

因为系统中一般存在多个从属终端和与之对应的从属vm,因此从属终端1登陆从属vm1前需要获取从属vm1的ip地址。从属终端1可以预先存储有从属vm1的ip地址,或者s210前,从属终端1也可以向管理设备请求获取从属vm1的ip地址。登陆过程中,从属vm1获取从属终端1的ip地址。

s212,从属vm1返回从属vm1的图像数据至从属终端1。

通过s210和s212,从属终端1成功登陆从属vm1,从属vm1获取了从属终端1的ip地址,从属vm1和从属终端间建立了通信连接以供后续数据的传输。

s214,从属终端1向主终端请求获得主vm的ip地址。

s216,主终端返回主vm的ip地址至从属终端1。

s218,从属终端1将主vm的ip地址发送至从属vm1。

s220,从属vm1向主vm发送第二注册消息。第二注册消息携带从属终端的ip地址,还可以携带从属vm1的分辨率、从属vm1的连接状态等信息。

s222,主vm根据主vm的ip地址,获取第一组播ip地址。

s224,从属vm1根据主vm的ip地址,获取第一组播ip地址。

s222和s224可以并行执行。

s222和s224中,主vm和从属vm1可以通过算法获取第一组播ip的地址。主vm和从属vm1计算第一组播ip地址的算法相同,以保证主vm和从属vm1算出的第一组播ip地址相同。

例如,可以采用主vm的ip地址的一部分来计算组播ip地址。组播ip地址的设计一般有一定要求,例如组播ip地址的第一位根据网络地址的设计确定,组播ip地址的最后一位根据主vm上不同的模块确定,组播ip地址的中间两位可以根据主vm的ip地址确定,例如采用主vm的ip地址的后两位作为组播ip地址的中间两位。因此,采用此算法的情况下,系统中不同主vm的ip地址的后两位不能重复,以免不同组播域的组播ip地址重叠。

s222和s224中,主vm和从属vm1还可以根据主vm的ip地址向管理设备请求获取第一组播ip地址。管理设备预设有vm的ip地址对应的组播ip地址,或管理设备可以根据vm的ip地址计算出组播ip地址,管理设备根据相同的vm的ip地址获取的组播ip地址相同。由于主vm和从属vm1均通过主vm的ip地址向管理设备请求第一组播ip地址,因此管理设备向主vm和从属vm1返回的第一组播ip地址相同。

通过建立组播域,将后续数据共享的范围进行了控制。该场景常见于虚拟教室,例如主vm为教师vm,从属vm为学生vm的情况下,每个虚拟教室中的学生vm和老师vm间可以自动组建自己的组播域。避免了不同虚拟教室之间各种数据(例如操作指令)的广播,降低了网络负担。

如图3所示,介绍了主vm的ip地址变更时,更新主vm的ip地址变更的方法。

s225,主vm发送新的主vm的ip地址至主终端。

s226,由于s202后,主终端记录了组播域中每个从属终端的ip地址,因此主终端可以向组播域中各个从属终端发送新的主vm的ip地址。

s226后,组播域内每个从属终端获取了新的主vm的ip地址,系统重新执行s216至s224。以从属终端1为例,从属终端1发送新的主vm的ip地址至从属vm1。从属vm1向主vm发送第二注册消息。主vm和从属vm1根据新的主vm的ip获取第二组播ip地址,以达到动态更新组播域的功能。

通过以上方法,当主vm的ip地址变更时,可以及时通知组播域中的从属终端,保证系统的正常运行。例如虚拟教室中更换了教师的情况下,新的教师需要通过主终端登录新的教师vm,此时新的教师vm的ip地址需要广播至原来虚拟教师中的学生终端,并与虚拟教室内的学生vm组建新的组播域。

如图4所示,介绍了主vm共享主vm的图像数据给组播域中各个从属终端的方法。

s228,主vm获取第一共享列表,第一共享列表中包括被共享的从属终端的ip地址。例如可以在教师vm上选择共享教师vm的桌面图像数据的学生终端,并生成该第一共享列表。

s230,主vm发送第一共享列表至主终端。

s232,主vm发送主vm的图像数据,即第一待共享的图像数据,例如主vm的桌面图像数据,至主终端。

s234,主终端获取第一共享列表中的被共享的从属终端的ip地址。随后,主终端根据被共享的从属终端的ip地址,将主vm的图像数据发送至被共享的从属终端。

s236,被共享的从属终端接收主vm的图像数据,对图像数据进行解码,渲染等操作,并通过显示器向用户播放。

由于s202后主终端记录了组播域中每个从属终端的ip地址,可选的,主终端可以直接通过用户输入获取第一共享列表,以替代s228和s230。随后,该系统执行s234和s236。

通过以上方法,主vm的图像数据需要被共享到多个从属终端的情况下,vm中心无须将该图像数据复制多份,并将这多份图像数据通过通信网络分别发送至各个从属终端。该方法降低了通信网络的传输压力,提升了数据共享效率,例如需要共享5mb的图像数据给n个从属终端的情况下,主vm仅需要传输5mb图像数据至终端中心。同时,降低了系统的建设成本。

如图5所示,介绍了从属vm1共享图像数据给组播域中各个从属终端的方法。

s238,主vm获取从属vm1的ip地址和第二共享列表。

第二共享列表参考s228中的第一共享列表,包括各个被共享的从属终端的ip地址。

s240,主vm根据从属vm1的ip地址向从属vm1发送共享请求。

s242,从属vm1发送从属vm1的图像数据,即第二待共享的图像数据,至主vm。

s244,主vm发送从属vm1的图像数据和第二共享列表至主终端。

s246,参考s234,主终端根据第二共享列表将从属vm1的图像数据发送至被共享的从属终端。

s248,被共享的从属终端接收从属vm1的图像数据,对图像数据进行解码,渲染等操作,并通过显示器向用户播放。

可选的,s240中主vm向从属vm1发送的共享请求还可以携带第二共享列表。此情况下,s240后,从属vm1可以发送从属vm1的图像数据和第二共享列表至从属终端1,由从属终端1将从属vm1的图像数据发送至第二共享列表中的各个被共享的从属终端。

可选的,从属终端1可以直接通过用户输入获取第二共享列表,并将从属vm1的图像数据发送至第二共享列表中的各个被共享的从属终端,该情况下无须执行s238-s244。

通过以上方法,从属vm1的图像数据需要被共享到多个从属终端的情况下,vm中心无须将该图像数据复制多份,并将这多份图像数据通过通信网络发送至各个从属终端,降低了通信网络的压力,提升了数据共享效率。同时,降低了系统的建设成本。

图6提供了一种服务器400,服务器400可以运用于上述系统中。服务器上运行有主vm或从属vm。

服务器400包括总线402、处理器404、存储器408和通信接口406。处理器404、存储器408和通信接口406之间通过总线402通信。

其中,处理器404可以为中央处理器(英文:centralprocessingunit,缩写:cpu)。存储器408可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:randomaccessmemory,缩写:ram)。存储器408还可以包括非易失性存储器(英文:non-volatilememory),例如只读存储器(英文:read-onlymemory,缩写:rom),快闪存储器,hdd或ssd。服务器400通过通信接口406和vm中心内的其他服务器以及系统中的各个终端通信。

该服务器400运行了主vm的情况下,存储器408中存储有程序,处理器404执行该程序以执行上述方法中主vm侧执行的动作。具体包括以下步骤及其可选的方案:s208,s222,s225,s228,s230,s232,s238,s240和s244。

该服务器400运行了从属vm的情况下,存储器408中存储有程序,处理器404执行该程序以执行上述方法中从属vm侧执行的动作。具体包括以下步骤及其可选的方案:s212,s220,s224和s242。

采用了服务器400的系统中,待共享的数据无须被复制多份并发送至各个被共享的终端,降低了通信网络的压力,提升了数据共享效率。

图7提供了一种终端600,终端600可以运用于上述系统中。终端600可以为主终端或从属终端。

终端600包括总线602、处理器604、存储器608和通信接口606。处理器604、存储器608和通信接口606之间通过总线602通信。

其中,处理器604可以为cpu。存储器608可以包括易失性存储器,例如ram。存储器608还可以包括非易失性存储器,例如rom,快闪存储器,hdd或ssd。终端600通过通信接口606和终端中心内的其他终端以及系统内的各个vm通信。

该终端600为主终端的情况下,存储器608中存储有程序,处理器604执行该程序以执行上述方法中主终端侧执行的动作。具体包括以下步骤及其可选的方案:s204,s206,s216,s226,s234和s246。

该终端600为从属终端的情况下,存储器608中存储有程序,处理器604执行该程序以执行上述方法中从属终端侧执行的动作。具体包括以下步骤及其可选的方案:s202,s210,s214,s218,s236和s248。

采用了终端600的系统中,待共享的数据无须被复制多份并发送至各个被共享的终端,降低了通信网络的压力。

图8提供了一种终端800,包括:通信模块802和处理模块804。其中,通信模块802和终端中心内的其他终端以及系统内的各个vm通信。

终端800可以通过专用集成电路(英文:application-specificintegratedcircuit,缩写:asic)实现,或可编程逻辑器件(英文:programmablelogicdevice,缩写:pld)实现。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:cpld),现场可编程门阵列(英文:field-programmablegatearray,缩写:fpga),通用阵列逻辑(英文:genericarraylogic,缩写:gal)或以上器件的任意组合。该终端800用于实现前述方法中终端侧的动作。该终端可以为主终端或从属终端。

采用了终端800的系统中,待共享的数据无须被复制多份并发送至各个被共享的终端,降低了通信网络的压力。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

结合本申请公开内容所描述的方法可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于ram、快闪存储器、只读存储器(英文:readonlymemory,缩写:rom)、可擦除可编程只读存储器(英文:erasableprogrammablereadonlymemory,缩写:eprom)、电可擦可编程只读存储器(英文:electricallyerasableprogrammablereadonlymemory,缩写:eeprom)、硬盘、光盘或者本领域熟知的任何其它形式的存储介质中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件或软件来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上该的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上该仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、改进等,均应包括在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1