CN104679494B - 用于实现远程虚拟桌面和应用程序的方法以及设备 - Google Patents

用于实现远程虚拟桌面和应用程序的方法以及设备 Download PDF

Info

Publication number
CN104679494B
CN104679494B CN201310631760.8A CN201310631760A CN104679494B CN 104679494 B CN104679494 B CN 104679494B CN 201310631760 A CN201310631760 A CN 201310631760A CN 104679494 B CN104679494 B CN 104679494B
Authority
CN
China
Prior art keywords
model tree
component model
component
components
party
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.)
Active
Application number
CN201310631760.8A
Other languages
English (en)
Other versions
CN104679494A (zh
Inventor
高小宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310631760.8A priority Critical patent/CN104679494B/zh
Priority to PCT/CN2014/085922 priority patent/WO2015078214A1/zh
Publication of CN104679494A publication Critical patent/CN104679494A/zh
Application granted granted Critical
Publication of CN104679494B publication Critical patent/CN104679494B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种用于实现远程虚拟桌面和应用程序的方法以及设备。其中,所述方法包括受托管方接收托管方所发送的第一组件模型树,其中,第一组件模型树是提取托管方的桌面的组件和/或正在运行的应用程序的组件生成的;根据组件映射表将第一组件模型树转换为第二组件模型树,其中,第二组件模型树中全部为本地化的组件;接收本地操作,并调用第二组件模型树中对应本地操作的组件对操作进行响应。

Description

用于实现远程虚拟桌面和应用程序的方法以及设备
技术领域
本申请涉及通信领域,特别是涉及用于实现远程虚拟桌面和应用程序的方法以及设备。
背景技术
传统的远程虚拟桌面和应用程序是指通过远程桌面协议将集成在服务器端的属于个人的桌面和应用程序界面投递给各种终端,例如:平板电脑以及智能手机等等,同时把终端的各种输入输出设备,例如:键盘,鼠标,通用串行总线外设,串并口外设,耳机和麦克风等等映射到服务器端,使得用户可以通过任何设备,在任何地点,任何时间通过网络访问在服务器上属于个人的桌面***,从而提高桌面和应用程序使用的灵活性。
在这种方式下,远程虚拟桌面和应用程序实现起来比较简单,对服务器上的桌面和应用程序进行“截图”以获得图片,并映射给终端进行显示。而在终端,只需要获得用户对鼠标的操作或者键盘的操作,然后将鼠标操作或者键盘操作发送给服务器,服务器再利用软件模拟鼠标的操作或者键盘的操作来对桌面和应用程序进行控制,再将控制后的结果进行“截图”以获得图片,并映射给终端,从而达到和在服务器端操作鼠标和键盘来对桌面和应用程序进行控制一样的效果。
但是,在这种方式下,每次用户操作都必须经过两次网络传输,终端将用户的操作反馈给服务器,服务器根据用户的操作进行响应,服务器再将响应的结果返回给终端进行显示。而现今的网络传输速度特别是移动网络传输速度有限,经过了两次网络传输,将会导致时延非常大,例如,一个字符从输入到显示大概要1秒左右的时间,导致用户无法接受。
发明内容
本申请提供用于实现远程虚拟桌面和应用程序的方法以及设备,能够提高响应的速度。
本申请第一方面提供一种用于实现远程虚拟桌面和应用程序的方法,包括如下步骤:受托管方接收托管方所发送的第一组件模型树,其中,所述第一组件模型树是提取所述托管方的桌面的组件和/或正在运行的应用程序的组件生成的;根据组件映射表将第一组件模型树转换为第二组件模型树,其中,所述第二组件模型树中全部为本地化的组件;接收本地操作,并调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应。
结合第一方面,本申请第一方面的第一种可能的实施方式中,所述接收本地操作,并调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应的步骤包括:如果所述本地操作为显示类操作,只调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应。
结合第一方面或者第一方面的第一种可能的实施方式,本申请第一方面的第二种可能的实施方式中,所述接收本地操作,并调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应的步骤包括:如果所述本地操作为输入类操作,调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应,并在第一时间段后将第一重定向消息向所述托管方发送,其中,所述第一重定向消息包括所输入的数据以及进行输入数据的第二组件模型树中的组件的编号。
结合第一方面,本申请第一方面的第三种可能的实施方式中,所述接收本地操作步骤之后包括:判断所述本地操作是否为对所述第二组件模型树中的组件进行的操作,如果不是对所述第二组件模型树中的组件进行的操作,向所述托管方发送第二重定向消息,其中,所述第二重定向消息包括进行所述本地操作时鼠标的事件以及坐标,和/或键盘所输入的字符。
本申请第二方面还提供一种用于实现远程虚拟桌面和应用程序的方法,托管方提取自身的桌面的组件和/或应用程序的组件,以根据所述组件生成第一组件模型树;将所述第一组件模型树发送给受托管方。
结合第二方面,本申请第二方面的第一种可能的实施方式中,所述方法还包括:接收所述受托管方返回的第一重定向消息,并根据所述第一重定向消息刷新第一组件模型树,以将所述受托管方的操作重定向到所述托管方,其中,所述第一重定向消息包括在受托管方所输入的数据以及进行输入数据的第二组件模型树中的组件的编号,所述第二组件模型树的全部组件都是所述受托管方将第一组件模型树的组件依照组件映射表进行映射得到的本地化组件;根据所述第二组件模型树中的组件的编号查找到所述第一组件模型树中对应的组件,并调用所述第一组件模型树中对应的组件对所述输入的数据进行响应。
结合第二方面,本申请第二方面的第二种可能的实施方式中,所述方法还包括:接收所述受托管方发送的第二重定向消息,其中,所述第二重定向消息包括受托管方进行操作时鼠标的事件以及坐标,和/或键盘所输入的字符;调用键鼠应用程序的组件对鼠标的事件以及坐标,和/或键盘所输入的字符进行响应。
本申请第三方面提供一种终端,所述终端包括:接收模块、映射模块以及响应模块,其中,所述接收模块用于接收托管方所发送的第一组件模型树,其中,所述第一组件模型树是提取所述托管方的桌面的组件和/或正在运行的应用程序的组件生成的,所述接收模块将所述第一组件模型树发送给所述映射模块;所述映射模块用于接收所述第一组件模型树,根据组件映射表将第一组件模型树转换为第二组件模型树,其中,所述第二组件模型树中全部为本地化的组件,所述映射模块将所述第二组件模型树发送给所述响应模块;所述响应模块用于接收所述第二组件模型树,接收本地操作,并调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应。
结合第三方面,本申请第三方面的第一种可能的实施方式中,所述响应模块还用于在所述本地操作为显示类操作时,只调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应。
结合第三方面或者第三方面的第一种可能的实施方式,本申请第三方面的第二种可能的实施方式中,所述响应模块还用于在所述本地操作为输入类操作时,调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应,并在第一时间段后将第一重定向消息向所述托管方发送,其中,所述第一重定向消息包括所输入的数据以及进行输入数据的第二组件模型树中的组件的编号。
结合第三方面,本申请第三方面的第三种可能的实施方式中,所述终端还包括判断模块以及发送模块,所述判断模块用于判断所述本地操作是否为对所述第二组件模型树中的组件进行的操作,所述判断模块将所述判断结果发送给所述发送模块;所述发送模块用于接收所述判断结果,并在所述判断结果为所述本地操作不是对所述第二组件模型树中的组件进行的操作时,向所述托管方发送第二重定向消息,其中,所述第二重定向消息包括进行所述本地操作时鼠标的事件以及坐标,和/或键盘所输入的字符。
本申请第四方面提供一种服务器,包括生成模块以及发送模块,所述生成模块用于提取自身的桌面的组件和/或应用程序的组件,以根据所述组件生成第一组件模型树,所述生成模块将所述第一组件模型树发送给所述发送模块;所述发送模块用于接收所述第一组件模型树,将所述第一组件模型树发送给受托管方。
结合第四方面,本申请第四方面的第一种可能的实施方式中,所述服务器还包括接收模块以及响应模块,所述接收模块用于接收所述受托管方返回的第一重定向消息,并根据所述第一重定向消息刷新第一组件模型树,以将所述受托管方的操作重定向到所述托管方,其中,所述第一重定向消息包括在受托管方所输入的数据以及进行输入数据的第二组件模型树中的组件的编号,所述第二组件模型树的全部组件都是所述受托管方将第一组件模型树的组件依照组件映射表进行映射得到的本地化组件,所述接收模块将所述所输入的数据以及进行输入数据的第二组件模型树中的组件的编号发送给所述响应模块;所述响应模块用于接收所述所输入的数据以及进行输入数据的第二组件模型树中的组件的编号,根据所述第二组件模型树中的组件的编号查找到所述第一组件模型树中对应的组件,并调用所述第一组件模型树中对应的组件对所述输入的数据进行响应。
结合第四方面,本申请第四方面的第二种可能的实施方式中,所述服务器还包括接收模块以及响应模块,所述接收模块用于接收所述受托管方发送的第二重定向消息,其中,所述第二重定向消息包括受托管方进行操作时鼠标的事件以及坐标,和/或键盘所输入的字符,所述接收模块将所述鼠标的事件以及坐标,和/或键盘所输入的字符发送给所述响应模块;所述响应模块用于接收所述鼠标的事件以及坐标,和/或键盘所输入的字符,调用键鼠应用程序的组件对鼠标的事件以及坐标,和/或键盘所输入的字符进行响应。
本申请第五方面提供一种终端,所述终端包括:接收器以及处理器,其中,所述接收器用于接收托管方所发送的第一组件模型树,其中,所述第一组件模型树是提取所述托管方的桌面的组件和/或正在运行的应用程序的组件生成的;所述处理器用于接收所述第一组件模型树,根据组件映射表将第一组件模型树转换为第二组件模型树,其中,所述第二组件模型树中全部为本地化的组件,接收本地操作,并调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应。
结合第五方面,本申请第五方面的第一种可能的实施方式中,所述处理器还用于在所述本地操作为显示类操作时,只调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应。
结合第五方面或者第五方面的第一种可能的实施方式,本申请第五方面的第二种可能的实施方式中,所述终端还包括发送器,所述处理器还用于在所述本地操作为输入类操作时,调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应,并在第一时间段后调用所述发送器将第一重定向消息向所述托管方发送,其中,所述第一重定向消息包括所输入的数据以及进行输入数据的第二组件模型树中的组件的编号。
结合第五方面,本申请第五方面的第三种可能的实施方式中,所述终端还包括发送器,所述处理器还用于判断所述本地操作是否为对所述第二组件模型树中的组件进行的操作;所述发送器用于向所述托管方发送第二重定向消息,其中,所述第二重定向消息包括进行所述本地操作时鼠标的事件以及坐标,和/或键盘所输入的字符。
本申请第六方面提供了一种服务器,包括处理器以及发送器,所述处理器用于提取自身的桌面的组件和/或应用程序的组件,以根据所述组件生成第一组件模型树;所述发送器用于接收所述第一组件模型树,将所述第一组件模型树发送给受托管方。
结合第六方面,本申请第六方面的第一种可能的实施方式中,所述服务器还包括接收器,所述接收器用于接收所述受托管方返回的第一重定向消息,并根据所述第一重定向消息刷新第一组件模型树,以将所述受托管方的操作重定向到所述托管方,其中,所述第一重定向消息包括在受托管方所输入的数据以及进行输入数据的第二组件模型树中的组件的编号,所述第二组件模型树的全部组件都是所述受托管方将第一组件模型树的组件依照组件映射表进行映射得到的本地化组件,所述处理器用于根据所述第二组件模型树中的组件的编号查找到所述第一组件模型树中对应的组件,并调用所述第一组件模型树中对应的组件对所述输入的数据进行响应。
结合第六方面,本申请第六方面的第二种可能的实施方式中,所述服务器还包括接收器,所述接收器用于接收所述受托管方发送的第二重定向消息,其中,所述第二重定向消息包括受托管方进行操作时鼠标的事件以及坐标,和/或键盘所输入的字符;所述处理器用于调用键鼠应用程序的组件对鼠标的事件以及坐标,和/或键盘所输入的字符进行响应。
本申请第七方面提供了一种用于实现远程虚拟桌面和应用程序的***,包括终端和服务器,所述终端和所述服务器之间能够通过网络进行通信,所述终端为如上述任一项的终端。
结合第七方面,本申请第七方面的第一种可能的实施方式中,所述服务器为如上述任一项的服务器。
上述方案通过接收托管方所发送的第一组件模型树,并通过组件映射表将第一组件模型树转换为第二组件模型树,再调用第二组件模型树中对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件设置在受托管方,所以,当用户对受托管方进行操作时,利用在本地的第二组件模型树中的组件对操作进行响应的响应速度远比通过网络传输进行响应的响应速度快。而且,第二组件模型树和第一组件模型树是一一对应的,所以,第二组件模型树的变更也很容易复制到第一组件模型树上,故很容易实现托管方与受托管方的同步。
此外,当托管方和受托管方的适用的组件的差异比较大时,将第一组件模型树映射为本地化第二组件模型树,能够提高操作的方便性。
附图说明
图1是本发明一种用于实现远程虚拟桌面和应用程序的***一实施方式的结构示意图;
图2是本发明一种用于实现远程虚拟桌面和应用程序的方法一实施方式的流程图;
图3是本发明一种用于实现远程虚拟桌面和应用程序的方法另一实施方式的流程图;
图4是本发明一种终端的一实施方式的结构示意图;
图5是本发明一种服务器的一实施方式的结构示意图;
图6是本发明一种终端的另一实施方式的结构示意图;
图7是本发明一种服务器的另一实施方式的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
参阅图1,图1是本发明一种用于实现远程虚拟桌面和应用程序的***一实施方式的结构示意图。本实施方式的用于实现远程虚拟桌面和应用程序的***包括:服务器110、网络120以及终端130。服务器110通过网络120与终端130建立连接。
服务器110可以是具有大量计算以及存储资源的数据中心,其中,数据中心通过虚拟化技术虚拟出虚拟计算机或者直接使用物理机组成弹性调度计算机资源池进行计算。服务器110也可以是一般的个人计算机、平板电脑等等。服务器110可以根据所拥有的计算以及存储资源选择安装一个或者多个操作***,并按需要安装应用程序。
网络120可以是有线网络,也可以是无线网络。
终端130可以是个人计算机,或者便于携带的计算设备等等。所述便于携带的计算设备包括平板电脑以及智能手机等等。
当需要将集成在服务器110中的桌面和/或应用程序界面投递给终端130时,服务器110作为托管方,而终端130作为受托管方。
当服务器110运行某个操作***时,该***将会运行桌面,并提取桌面的组件生成一棵第一组件模型树;而且,每运行一个应用程序,则***也会相应提取这个应用程序的组件并生成一棵第一组件模型树。用户对服务器110的桌面或者应用程序操作,服务器110可以直接调用对应的第一组件模型树进行响应。其中,第一组件模型树中的组件是适应服务器110的工作环境的组件。例如,假设服务器110是一个带有鼠标和键盘的,具有大屏幕的计算机,而正在运行的操作***是windows***,则根据浏览器所生成的第一组件模型树中组件包括菜单、按钮以及滑动条等等。这些组件都非常适合在上述的工作环境进行工作,例如,需要调整浏览进度时,只需用鼠标拖动滑动条对页面进行滚动即可。
服务器110对自身的桌面以及应用程序进行“截图”以获得图片,并发送给终端130,并将根据服务器110中的桌面的组件和/或应用程序的组件生成的第一组件模型树通过远程桌面协议发送给终端130。由于服务器110的工作***和终端130的工作***不同,两个***中的“同类”组件也并不相同,例如,服务器110采用的***中,复选框是打勾的方框,而在终端130采用的***中,复选框是开关,而每个***只能运行自身所提供的组件,所以,可根据服务器110采用的***以及终端130采用的***创建组件映射表。例如,程序员预先收集各个***所具有的组件,并为每两个***之间建立一个组件映射表,并固化在程序中。然后,根据服务器110采用的***以及终端130采用的***确定使用哪一个组件映射表。
此外,服务器110和终端130的屏幕尺寸可能并不一样。例如,服务器110是一个带有鼠标和键盘的,具有大屏幕的计算机,而终端130是一台智能手机。在确定组件的映射关系时可以考虑用户使用时的方便性,从而选择终端130的***具有的,而且使用起来很方便的组件。例如,将第一组件模型树中的滚动条选择对应映射为适合手指操作的上下翻页按钮等等。
终端130根据组件映射表将第一组件模型树转换为第二组件模型树。其中,第二组件模型树中全部为本地化的组件。本地化后的组件覆盖在图片中第一组件模型树的对应组件所在位置之上。
当用户在终端130进行本地操作时,终端130接收本地操作,并调用第二组件模型树中对应本地操作的组件对操作进行响应。由于第二组件模型树中的组件都在本地,所以,当接收本地操作后,能够立即进行响应,比现有技术必须将键盘和/或鼠标的操作发送到服务器110才能响应,大大提高了响应的速度。
如果本地操作为显示类操作,例如,放大缩小等等,这些操作不会产生数据交互,故只调用第二组件模型树中对应本地操作的组件对本地操作进行响应,而无需向服务器110发送消息。这样能够进一步减少数据传输的数量。
如果本地操作为输入类操作,这些输入的数据必须发送给服务器110,所以,除了调用第二组件模型树中对应本地操作的组件对本地操作进行响应,还在第一时间段后将第一重定向消息向服务器110发送。其中,第一重定向消息包括所输入的数据以及进行输入数据的第二组件模型树中的组件的编号。由于,第一组件模型树的组件和第二组件模型树的组件是一一对应关系,所以,只需将进行输入数据的第二组件模型树中的组件的编号以及所输入的数据发送给服务器110,则服务器110的***可以根据编号调用第一组件模型树中的相应组件进行输入数据,以实现服务器110与终端130之间的同步,从而实现远程虚拟桌面和应用程序。
在上述实施方式中,第一组件模型树的全部组件都能依照组件映射表进行映射得到本地化组件,在另一种实施方式中,第一组件模型树的一部分组件能够依照组件映射表进行映射得到本地化组件,而第一组件模型树的另一部分组件无法或者不需要映射为本地化组件,对于没有本地化的组件,在终端130只是以图片的形式进行显示,所以,还需要向托管方发送第二重定向消息,其中,第二重定向消息包括进行所述本地操作时鼠标的事件以及坐标,和/或键盘所输入的字符,从而使得托管方根据鼠标的事件以及坐标,和/或键盘所输入的字符调用键鼠应用程序的组件(键鼠应用程序的组件是独立的,不属于第一组件模型树)进行响应,进而兼容了如背景技术所述的传统的实现远程虚拟桌面和/或应用程序的方法。其中,字符可以是单个字符也可以是多个字符的组合。例如:单个字符可以是“C”,多个字符的组合可以是“Ctrl+C”。
上述方案通过接收服务器110所发送的第一组件模型树,并通过组件映射表将第一组件模型树转换为第二组件模型树,再调用第二组件模型树中的对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件设置在终端130,所以,当用户对终端130进行操作时,受托管方利用在本地的第二组件模型树中的组件对操作进行响应的响应速度远比通过网络传输进行响应的响应速度快。而且,第二组件模型树的组件和第一组件模型树的组件是一一对应的,所以,第二组件模型树的变更也很容易复制到第一组件模型树上,故很容易实现终端130与服务器110的同步。
此外,当终端130与服务器110的适用的组件的差异比较大时,将第一组件模型树映射为本地化第二组件模型树,能够提高操作的方便性。
参阅图2,图2是本发明一种用于实现远程虚拟桌面和应用程序的方法一实施方式的流程图。本实施方式从受托管方的角度进行描述,本实施方式的用于实现远程虚拟桌面和应用程序的方法包括:
S201:受托管方接收托管方所发送的第一组件模型树。其中,第一组件模型树是提取托管方的桌面的组件和/或正在运行的应用程序的组件生成的。
托管方启动***后,***运行桌面,并提取桌面的组件生成一棵第一组件模型树;而且,每运行一个应用程序,则***也会相应提取这个应用程序的组件并生成一棵第一组件模型树。托管方对托管方上的桌面以及应用程序进行“截图”以获得图片,并发送给受托管方,并且,托管方将第一组件模型树发送给受托管方。受托管方相应接收托管方所发送的图片以及第一组件模型树。
S202:受托管方根据组件映射表将第一组件模型树转换为第二组件模型树。其中,第二组件模型树中全部为本地化的组件。
由于托管方的工作***和受托管方的工作***不同,两个***中的“同类”组件也并不相同,例如,托管方采用的***中,复选框是打勾的方框,而在受托管方采用的***中,复选框是开关,而每个***只能运行自身所提供的组件,所以,可根据托管方采用的***以及受托管方采用的***创建组件映射表。例如,程序员预先收集各个***所具有的组件,并为每两个***之间建立一个组件映射表,并固化在程序中。然后,根据托管方采用的***以及受托管方采用的***确定使用哪一个组件映射表。
此外,托管方和受托管方的屏幕尺寸可能并不一样。例如,托管方是一个带有鼠标和键盘的,具有大屏幕的计算机,而受托管方是一台智能手机。在确定组件的映射关系时可以考虑用户使用时的方便性,从而选择受托管方的***具有的,而且使用起来很方便的组件。例如,将第一组件模型树中的滚动条选择对应映射为适合手指操作的上下翻页按钮等等。受托管方根据组件映射表将第一组件模型树转换为本地化的第二组件模型树。本地化后的组件覆盖在图片中第一组件模型树的对应组件所在位置之上。
S203:受托管方接收本地操作,并调用第二组件模型树中对应本地操作的组件对操作进行响应。
当用户在受托管方进行操作时,受托管方接收本地操作,并调用第二组件模型树中对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件都在本地,所以,当接收本地操作后,能够立即进行响应,比现有技术必须将键盘和/或鼠标的操作发送到托管方才能响应,大大提高了响应的速度。
如果本地操作为显示类操作,例如,放大缩小等等,这些操作不会产生数据交互,故只调用第二组件模型树中对应本地操作的组件对本地操作进行响应,而无需向托管方发送消息。这样能够进一步减少数据传输的数量。
如果本地操作为输入类操作,这些输入的数据必须发送给托管方,所以,除了调用第二组件模型树中对应本地操作的组件对本地操作进行响应,还在第一时间段后将第一重定向消息向托管方发送。其中,第一重定向消息包括所输入的数据以及进行输入数据的第二组件模型树中的组件的编号。由于,第一组件模型树的组件和第二组件模型树的组件是一一对应关系,所以,只需将进行输入数据的第二组件模型树中的组件的编号以及所输入的数据发送给托管方,则托管方的***可以根据编号调用第一组件模型树中的相应组件进行输入数据,以实现托管方与受托管方之间的同步,从而实现远程虚拟桌面和/或应用程序。
在上述实施方式中,第一组件模型树的全部组件都能依照组件映射表进行映射得到本地化组件,在另一种实施方式中,第一组件模型树的一部分组件能够依照组件映射表进行映射得到本地化组件,而第一组件模型树的另一部分组件无法或者不需要映射为本地化组件,对于没有本地化的组件,在受托管方只是以图片的形式进行显示,所以,还需要受托管方向托管方发送第二重定向消息,其中,第二重定向消息包括进行所述本地操作时鼠标的事件以及坐标,和/或键盘所输入的字符,从而使得托管方根据鼠标的事件以及坐标,和/或键盘所输入的字符调用键鼠标应用程序的组件进行响应,进而兼容了如背景技术所述的传统的实现远程虚拟桌面和/或应用程序的方法。其中,字符可以是单个字符也可以是多个字符的组合。例如:单个字符可以是“C”,多个字符的组合可以是“Ctrl+C”。
上述方案通过接收托管方所发送的第一组件模型树,并通过组件映射表将第一组件模型树转换为第二组件模型树,再调用第二组件模型树中对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件设置在受托管方,所以,当用户对受托管方进行操作时,受托管方利用在本地的第二组件模型树中对应本地操作的组件对本地操作进行响应的响应速度远比通过网络传输进行响应的响应速度快。而且,第二组件模型树的组件和第一组件模型树的组件是一一对应的,所以,第二组件模型树的变更也很容易复制到第一组件模型树上,故很容易实现托管方与受托管方的同步。
此外,当托管方和受托管方的适用的组件的差异比较大时,将第一组件模型树映射为本地化第二组件模型树,能够提高操作的方便性。
参阅图3,图3是本发明一种用于实现远程虚拟桌面和应用程序的方法另一实施方式的流程图。本实施方式从托管方的角度进行描述,本实施方式的用于实现远程虚拟桌面和应用程序的方法包括:
S301:托管方提取自身的桌面的组件和/或应用程序的组件,以根据组件生成第一组件模型树。
托管方启动***后,***运行桌面,并提取桌面的组件生成一棵第一组件模型树;而且,每运行一个应用程序,则***也会相应提取这个应用程序的组件并生成一棵第一组件模型树。
S302:托管方将第一组件模型树发送给受托管方。
托管方对自身的桌面以及应用程序进行“截图”以获得图片,并发送给受托管方,并将第一组件模型树通过远程桌面协议发送给受托管方。
由于托管方的工作***和受托管方的工作***不同,两个***中的“同类”组件也并不相同,例如,托管方采用的***中,复选框是打勾的方框,而在受托管方采用的***中,复选框是开关,而每个***只能运行自身所提供的组件,所以,可根据托管方采用的***以及受托管方采用的***创建组件映射表。例如,程序员预先收集各个***所具有的组件,并为每两个***之间建立一个组件映射表,并固化在程序中。然后,根据托管方采用的***以及受托管方采用的***确定使用哪一个组件映射表。
此外,托管方和受托管方的屏幕尺寸可能并不一样。例如,托管方是一个带有鼠标和键盘的,具有大屏幕的计算机,而受托管方是一台智能手机。在确定组件的映射关系时可以考虑用户使用时的方便性,从而选择受托管方的***具有的,而且使用起来很方便的组件。例如,将第一组件模型树中的滚动条选择对应映射为适合手指操作的上下翻页按钮等等。受托管方根据组件映射表将第一组件模型树转换为本地化的第二组件模型树。本地化后的组件覆盖在图片中第一组件模型树的对应组件所在位置之上。
当用户在受托管方进行操作时,受托管方接收操作,并调用第二组件模型树中对应操作的组件对操作进行响应。由于第二组件模型树中的组件都在受托管方,所以,当接收操作后,能够立即进行响应,比现有技术必须将操作发送到托管方才能响应,大大提高了响应的速度。
如果操作为显示类操作,例如,放大缩小等等,这些操作不会产生数据交互,故只调用第二组件模型树中对应操作的组件对操作进行响应,而无需向托管方发送消息。这样能够进一步减少数据传输的数量。
S303:托管方接收受托管方返回的第一重定向消息,并根据第一重定向消息刷新第一组件模型树,以将受托管方的操作重定向到托管方。其中,第一重定向消息包括在受托管方所输入的数据以及进行输入数据的第二组件模型树中的组件的编号,第二组件模型树的全部组件都是受托管方将第一组件模型树的组件依照组件映射表进行映射得到的本地化组件。
如果本地操作为输入类操作,这些输入的数据必须发送给托管方,所以,除了调用第二组件模型树中对应操作的组件对操作进行响应,还在第一时间段后将第一重定向消息向托管方发送。由于,第一组件模型树的组件和第二组件模型树的组件是一一对应关系,所以,只需将进行输入数据的第二组件模型树中的组件的编号以及所输入的数据封装在第一重定向消息中发送给托管方。
S304:托管方根据第二组件模型树中的组件的编号查找到第一组件模型树中对应的组件,并调用第一组件模型树中对应的组件对输入的数据进行响应。
托管方接收受托管方返回的第一重定向消息后,托管方的***根据编号调用第一组件模型树中的相应组件进行输入数据,以实现托管方与受托管方之间的同步,从而实现远程虚拟桌面和应用程序。
在上述实施方式中,第一组件模型树的全部组件都能依照组件映射表进行映射得到本地化组件,在另一种实施方式中,第一组件模型树的一部分组件能够依照组件映射表进行映射得到本地化组件,而第一组件模型树的另一部分组件无法或者不需要映射为本地化组件,对于没有本地化的组件,在受托管方只是以图片的形式进行显示,所以,还需要受托管方向托管方发送第二重定向消息,其中,第二重定向消息包括受托管方进行操作时鼠标的事件以及坐标,和/或键盘所输入的字符。托管方接收所述受托管方发送第二重定向消息,并根据鼠标的事件以及坐标,和/或键盘所输入的字符,调用键鼠应用程序的组件进行响应,从而兼容了如背景技术所述的传统的实现远程虚拟桌面和/或应用程序的方法。其中,字符可以是单个字符也可以是多个字符的组合。例如:单个字符可以是“C”,多个字符的组合可以是“Ctrl+C”。
上述方案通过接收托管方所发送的第一组件模型树,并通过组件映射表将第一组件模型树转换为第二组件模型树,再调用第二组件模型树中的对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件设置在受托管方,所以,当用户对受托管方进行操作时,受托管方利用在本地的第二组件模型树中的组件对操作进行响应的响应速度远比通过网络传输进行响应的响应速度快。而且,第二组件模型树的组件和第一组件模型树的组件是一一对应的,所以,第二组件模型树的变更也很容易复制到第一组件模型树上,故很容易实现托管方与受托管方的同步。
此外,当托管方和受托管方的适用的组件的差异比较大时,将第一组件模型树映射为本地化第二组件模型树,能够提高操作的方便性。
参阅图4,图4是本发明一种终端的一实施方式的结构示意图。本实施方式的终端作为受托管方,包括:接收模块410、映射模块420以及响应模块430。
接收模块410用于接收托管方所发送的第一组件模型树,其中,第一组件模型树是提取托管方的桌面的组件和/或正在运行的应用程序的组件生成的。比如,托管方启动***后,***运行桌面,并提取桌面的组件生成一棵第一组件模型树;而且,每运行一个应用程序,则***也会相应提取这个应用程序的组件并生成一棵第一组件模型树。托管方对托管方上的桌面以及应用程序进行“截图”以获得图片,并发送给受托管方,并且,托管方将第一组件模型树发送给受托管方。接收模块410相应接收托管方所发送的图片以及第一组件模型树。接收模块410将第一组件模型树发送给映射模块420。
映射模块420用于接收第一组件模型树,根据组件映射表将第一组件模型树转换为第二组件模型树。其中,第二组件模型树中全部为本地化的组件。比如,由于托管方的工作***和受托管方的工作***不同,两个***中的“同类”组件也并不相同,例如,托管方采用的***中,复选框是打勾的方框,而在受托管方采用的***中,复选框是开关,而每个***只能运行自身所提供的组件,所以,可根据托管方采用的***以及受托管方采用的***创建组件映射表。例如,程序员预先收集各个***所具有的组件,并为每两个***之间建立一个组件映射表,并固化在程序中。然后,根据托管方采用的***以及受托管方采用的***确定使用哪一个组件映射表。此外,托管方和受托管方的屏幕尺寸可能并不一样。例如,托管方是一个带有鼠标和键盘的,具有大屏幕的计算机,而受托管方是一台智能手机。在确定组件的映射关系时可以考虑用户使用时的方便性,从而选择受托管方的***具有的,而且使用起来很方便的组件。例如,将第一组件模型树中的滚动条选择对应映射为适合手指操作的上下翻页按钮等等。映射模块420根据组件映射表将第一组件模型树转换为本地化的第二组件模型树。本地化后的组件覆盖在图片中第一组件模型树的对应组件所在位置之上。映射模块420将第二组件模型树发送给响应模块430。
响应模块430用于接收第二组件模型树,接收本地操作,并调用第二组件模型树中对应本地操作的组件对操作进行响应。比如,当用户在受托管方进行操作时,响应模块430接收本地操作,并调用第二组件模型树中对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件都在本地,所以,当接收本地操作后,能够立即进行响应,比现有技术必须将键盘和/或鼠标的操作发送到托管方才能响应,大大提高了响应的速度。如果本地操作为显示类操作,例如,放大缩小等等,这些操作不会产生数据交互,故响应模块430只调用第二组件模型树中对应本地操作的组件对本地操作进行响应,而无需向托管方发送消息。这样能够进一步减少数据传输的数量。如果本地操作为输入类操作,这些输入的数据必须发送给托管方,所以,响应模块430除了调用第二组件模型树中对应本地操作的组件对本地操作进行响应,还在第一时间段后将第一重定向消息向托管方发送。其中,第一重定向消息包括所输入的数据以及进行输入数据的第二组件模型树中的组件的编号。由于,第一组件模型树的组件和第二组件模型树的组件是一一对应关系,所以,只需将进行输入数据的第二组件模型树中的组件的编号以及所输入的数据发送给托管方,则托管方的***可以根据编号调用第一组件模型树中的相应组件进行输入数据,以实现托管方与受托管方之间的同步,从而实现远程虚拟桌面和/或应用程序。
在上述实施方式中,第一组件模型树的全部组件都能依照组件映射表进行映射得到本地化组件,在另一种实施方式中,第一组件模型树的一部分组件能够依照组件映射表进行映射得到本地化组件,而第一组件模型树的另一部分组件无法或者不需要映射为本地化组件,对于没有本地化的组件,在受托管方只是以图片的形式进行显示,所以,还需要判断模块判断所述本地操作是否为对所述第二组件模型树中的组件进行的操作,再将所述判断结果发送给所述发送模块,发送模块接收所述判断结果,并在所述判断结果为所述本地操作不是对所述第二组件模型树中的组件进行的操作时,向托管方发送第二重定向消息,其中,第二重定向消息包括进行所述本地操作时鼠标的事件以及坐标,和/或键盘所输入的字符。托管方接收所述受托管方发送第二重定向消息,并根据鼠标的事件以及坐标,和/或键盘所输入的字符以及字符的组合调用键鼠标应用程序的组件进行响应,从而兼容了如背景技术所述的传统的实现远程虚拟桌面和/或应用程序的方法。其中,字符可以是单个字符也可以是多个字符的组合。例如:单个字符可以是“C”,多个字符的组合可以是“Ctrl+C”。
上述方案通过接收托管方所发送的第一组件模型树,并通过组件映射表将第一组件模型树转换为第二组件模型树,再调用第二组件模型树中对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件设置在受托管方,所以,当用户对受托管方进行操作时,受托管方利用在本地的第二组件模型树中对应本地操作的组件对本地操作进行响应的响应速度远比通过网络传输进行响应的响应速度快。而且,第二组件模型树的组件和第一组件模型树的组件是一一对应的,所以,第二组件模型树的变更也很容易复制到第一组件模型树上,故很容易实现托管方与受托管方的同步。
此外,当托管方和受托管方的适用的组件的差异比较大时,将第一组件模型树映射为本地化第二组件模型树,能够提高操作的方便性。
参阅图5,图5是本发明一种服务器的一实施方式的结构示意图。本实施方式的服务器作为托管方,包括:生成模块510、发送模块520、接收模块530以及响应模块540。
生成模块510用于提取自身的桌面的组件和/或应用程序的组件,以根据组件生成第一组件模型树。比如,托管方启动***后,***运行桌面,生成模块510提取桌面的组件生成一棵第一组件模型树;而且,每运行一个应用程序,则生成模块510也会相应提取这个应用程序的组件并生成一棵第一组件模型树。托管方对自身的桌面以及应用程序进行“截图”以获得图片,并发送给受托管方。生成模块510将第一组件模型树发送给发送模块520。
发送模块520用于将第一组件模型树发送给受托管方。比如,发送模块520将第一组件模型树发送给受托管方。受托管方相应接收托管方所发送的第一组件模型树。
由于托管方的工作***和受托管方的工作***不同,两个***中的“同类”组件也并不相同,例如,托管方采用的***中,复选框是打勾的方框,而在受托管方采用的***中,复选框是开关,而每个***只能运行自身所提供的组件,所以,可根据托管方采用的***以及受托管方采用的***创建组件映射表。例如,程序员预先收集各个***所具有的组件,并为每两个***之间建立一个组件映射表,并固化在程序中。然后,根据托管方采用的***以及受托管方采用的***确定使用哪一个组件映射表。
此外,托管方和受托管方的屏幕尺寸可能并不一样。例如,托管方是一个带有鼠标和键盘的,具有大屏幕的计算机,而受托管方是一台智能手机。在确定组件的映射关系时可以考虑用户使用时的方便性,从而选择受托管方的***具有的,而且使用起来很方便的组件。例如,将第一组件模型树中的滚动条选择对应映射为适合手指操作的上下翻页按钮等等。受托管方根据组件映射表将第一组件模型树转换为本地化的第二组件模型树。本地化后的组件覆盖在图片中第一组件模型树的对应组件所在位置之上。当用户在受托管方进行操作时,受托管方接收本地操作,并调用第二组件模型树中对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件都在本地,所以,当接收本地操作后,能够立即进行响应,比现有技术必须将键盘和/或鼠标的操作发送到托管方才能响应,大大提高了响应的速度。如果本地操作为显示类操作,例如,放大缩小等等,这些操作不会产生数据交互,故只调用第二组件模型树中对应本地操作的组件对本地操作进行响应,而无需向托管方发送消息。这样能够进一步减少数据传输的数量。
接收模块530用于接收受托管方返回的第一重定向消息,并根据第一重定向消息刷新第一组件模型树,以将受托管方的操作重定向到托管方,其中,第一重定向消息包括在受托管方所输入的数据以及进行输入数据的第二组件模型树中的组件的编号,第二组件模型树的全部组件都是受托管方将第一组件模型树的组件依照组件映射表进行映射得到的本地化组件。比如,如果本地操作为输入类操作,这些输入的数据必须发送给托管方,所以,除了调用第二组件模型树中的组件对操作进行响应,还在第一时间段后将第一重定向消息向托管方发送。其中,第一重定向消息包括所输入的数据以及进行输入数据的第二组件模型树中的组件的编号。由于,第一组件模型树的组件和第二组件模型树的组件是一一对应关系,所以,只需将进行输入数据的第二组件模型树中的组件的编号以及所输入的数据封装在第一重定向消息中发送给托管方。接收模块530将所输入的数据以及进行输入数据的第二组件模型树中的组件的编号发送给响应模块540。
响应模块540用于接收所输入的数据以及进行输入数据的第二组件模型树中的组件的编号,根据第二组件模型树中的组件的编号查找到第一组件模型树中对应的组件,并调用第一组件模型树中对应的组件对输入的数据进行响应,以实现托管方与受托管方之间的同步,从而实现远程虚拟桌面和应用程序。
在上述实施方式中,第一组件模型树的全部组件都能依照组件映射表进行映射得到本地化组件,在另一种实施方式中,第一组件模型树的一部分组件能够依照组件映射表进行映射得到本地化组件,而第一组件模型树的另一部分组件无法或者不需要映射为本地化组件,对于没有本地化的组件,在受托管方只是以图片的形式进行显示,所以,还需要受托管方向托管方发送第二重定向消息,其中,第二重定向消息包括受托管方进行操作时鼠标的事件以及坐标,和/或键盘所输入的字符。接收模块530接收受托管方发送第二重定向消息。其中,字符可以是单个字符也可以是多个字符的组合。例如:单个字符可以是“C”,多个字符的组合可以是“Ctrl+C”。
响应模块540还用于调用键鼠应用程序的组件对鼠标的事件以及坐标,和/或键盘所输入的字符进行响应,从而兼容了如背景技术所述的传统的实现远程虚拟桌面和/或应用程序的方法。
上述方案通过接收托管方所发送的第一组件模型树,并通过组件映射表将第一组件模型树转换为第二组件模型树,再调用第二组件模型树中对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件设置在受托管方,所以,当用户对受托管方进行操作时,受托管方利用在本地的第二组件模型树中的组件对操作进行响应的响应速度远比通过网络传输进行响应的响应速度快。而且,第二组件模型树的组件和第一组件模型树的组件是一一对应的,所以,第二组件模型树的变更也很容易复制到第一组件模型树上,故很容易实现托管方与受托管方的同步。
此外,当托管方和受托管方的适用的组件的差异比较大时,将第一组件模型树映射为本地化第二组件模型树,能够提高操作的方便性。
参阅图6,图6是本申请一种终端的另一实施方式的结构示意图。本实施方式的终端包括:接收器610、处理器620、发送器630、随机存取存储器640、只读存储器650以及总线660。
接收器610可以是采用无线网络模块以及有线网络接口等任何接收器。
处理器620控制终端的操作,处理器620还可以称为CPU(Central ProcessingUnit,中央处理单元)。处理器620可能是一种集成电路芯片,具有信号的处理能力。处理器620还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
发送器630可以是采用无线网络模块以及有线网络接口等发送器。
存储器可以包括只读存储器640和随机存取存储器650,并向处理器620提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(NVRAM)。
终端的各个组件通过总线660耦合在一起,其中总线660除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线660。
存储器存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器620通过调用存储器存储的操作指令(该操作指令可存储在操作***中),执行如下操作:
处理器620调用接收器610接收托管方所发送的第一组件模型树,其中,第一组件模型树是提取托管方的桌面的组件和/或正在运行的应用程序的组件生成的。
处理器620根据组件映射表将第一组件模型树转换为第二组件模型树,其中,第二组件模型树中全部为本地化的组件。
处理器620接收本地操作,并调用第二组件模型树中对应本地操作的组件对本地操作进行响应。
可选地,如果本地操作为显示类操作,处理器620只调用第二组件模型树中对应本地操作的组件对本地操作进行响应。
可选地,如果本地操作为输入类操作,处理器620调用第二组件模型树中对应本地操作的组件对本地操作进行响应,并在第一时间段后将第一重定向消息向托管方发送,其中,第一重定向消息包括所输入的数据以及进行输入数据的第二组件模型树中的组件的编号。
可选地,处理器620判断所述本地操作是否为对所述第二组件模型树中的组件进行的操作;在所述判断结果为所述本地操作不是对所述第二组件模型树中的组件进行的操作时,处理器620调用发送器630向托管方发送第二重定向消息,其中,第二重定向消息包括进行所述本地操作时鼠标的事件以及坐标,和/或键盘所输入的字符,从而兼容了如背景技术所述的传统的实现远程虚拟桌面和/或应用程序的方法。其中,输入的字符可以是单个字符,也可以是多个字符的组合。
上述方案通过接收托管方所发送的第一组件模型树,并通过组件映射表将第一组件模型树转换为第二组件模型树,再调用第二组件模型树中对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件设置在受托管方,所以,当用户对受托管方进行操作时,利用在本地的第二组件模型树中的组件对操作进行响应的响应速度远比通过网络传输进行响应的响应速度快。而且,第二组件模型树的组件和第一组件模型树的组件是一一对应的,所以,第二组件模型树的变更也很容易复制到第一组件模型树上,故很容易实现托管方与受托管方的同步。
此外,当托管方和受托管方的适用的组件的差异比较大时,将第一组件模型树映射为本地化第二组件模型树,能够提高操作的方便性。
参阅图7,图7是本申请一种服务器的另一实施方式的结构示意图。本实施方式的服务器包括:接收器710、处理器720、发送器730、随机存取存储器740、只读存储器750以及总线760。
接收器710可以是采用无线网络模块以及有线网络接口等任何接收器。
处理器720控制服务器的操作,处理器720还可以称为CPU(Central ProcessingUnit,中央处理单元)。处理器720可能是一种集成电路芯片,具有信号的处理能力。处理器720还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
发送器730可以是采用无线网络模块以及有线网络接口等发送器。
存储器可以包括只读存储器740和随机存取存储器750,并向处理器720提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(NVRAM)。
终端的各个组件通过总线760耦合在一起,其中总线760除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线760。
存储器存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器720通过调用存储器存储的操作指令(该操作指令可存储在操作***中),执行如下操作:
处理器720提取自身的桌面的组件和/或应用程序的组件,以根据组件生成第一组件模型树。
处理器720调用发送器730将第一组件模型树发送给受托管方。
可选地,处理器720调用接收器710接收所述受托管方返回的第一重定向消息,并根据所述第一重定向消息刷新第一组件模型树,以将所述受托管方的操作重定向到所述托管方,其中,所述第一重定向消息包括在受托管方所输入的数据以及进行输入数据的第二组件模型树中的组件的编号,第二组件模型树的全部组件都是受托管方将第一组件模型树的组件依照组件映射表进行映射得到的本地化组件。处理器720根据第二组件模型树中的组件的编号查找到第一组件模型树中对应的组件,并调用第一组件模型树中对应的组件对输入的数据进行响应。
可选地,处理器720调用接收器710接收所述受托管方发送的第二重定向消息,其中,所述第二重定向消息包括受托管方进行操作时鼠标的事件以及坐标,和/或键盘所输入的字符。处理器720调用键鼠应用程序的组件对鼠标的事件以及坐标,和/或键盘所输入的字符进行响应,从而兼容了如背景技术所述的传统的实现远程虚拟桌面和/或应用程序的方法。其中,输入的字符可以是单个字符,也可以是多个字符的组合。
上述方案通过接收托管方所发送的第一组件模型树,并通过组件映射表将第一组件模型树转换为第二组件模型树,再调用第二组件模型树中对应本地操作的组件对本地操作进行响应。由于第二组件模型树中的组件设置在受托管方,所以,当用户对受托管方进行操作时,利用在本地的第二组件模型树中的组件对操作进行响应的响应速度远比通过网络传输进行响应的响应速度快。而且,第二组件模型树和第一组件模型树是一一对应的,所以,第二组件模型树的变更也很容易复制到第一组件模型树上,故很容易实现托管方与受托管方的同步。
此外,当托管方和受托管方的适用的组件的差异比较大时,将第一组件模型树映射为本地化第二组件模型树,能够提高操作的方便性。
在本申请所提供的几个实施方式中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (9)

1.一种用于实现远程虚拟桌面和应用程序的方法,其特征在于,包括如下步骤:
受托管方接收托管方所发送的第一组件模型树,其中,所述第一组件模型树是提取所述托管方的桌面的组件和/或正在运行的应用程序的组件生成的;
根据组件映射表将第一组件模型树转换为本地化的第二组件模型树,其中,所述第二组件模型树中全部为本地化的组件;
接收本地操作,判断所述本地操作是否为对所述第二组件模型树中的组件进行的操作;如果是,则调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应;如果不是,则对所述第二组件模型树中的组件进行的操作,向所述托管方发送第二重定向消息,其中,所述第二重定向消息包括进行所述本地操作时鼠标的事件以及坐标,和/或键盘所输入的字符。
2.根据权利要求1所述的用于实现远程虚拟桌面和应用程序的方法,其特征在于,所述接收本地操作,并调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应的步骤包括:
如果所述本地操作为显示类操作,只调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应。
3.根据权利要求1或2所述的用于实现远程虚拟桌面和应用程序的方法,其特征在于,所述接收本地操作,并调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应的步骤包括:
如果所述本地操作为输入类操作,调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应,并在第一时间段后将第一重定向消息向所述托管方发送,其中,所述第一重定向消息包括所输入的数据以及进行输入数据的第二组件模型树中的组件的编号。
4.一种终端,其特征在于,所述终端包括:接收模块、映射模块、响应模块、判断模块以及发送模块,其中,
所述接收模块用于接收托管方所发送的第一组件模型树,其中,所述第一组件模型树是提取所述托管方的桌面的组件和/或正在运行的应用程序的组件生成的,所述接收模块将所述第一组件模型树发送给所述映射模块;
所述映射模块用于接收所述第一组件模型树,根据组件映射表将第一组件模型树转换为本地化的第二组件模型树,其中,所述第二组件模型树中全部为本地化的组件,所述映射模块将所述第二组件模型树发送给所述响应模块;
所述响应模块用于接收所述第二组件模型树,接收本地操作,并调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应;
判断模块用于判断所述本地操作是否为对所述第二组件模型树中的组件进行的操作,所述判断模块将判断结果发送给所述发送模块;
所述发送模块用于接收所述判断结果,并在所述判断结果为所述本地操作不是对所述第二组件模型树中的组件进行的操作时,向所述托管方发送第二重定向消息,其中,所述第二重定向消息包括进行所述本地操作时鼠标的事件以及坐标,和/或键盘所输入的字符。
5.根据权利要求4所述的终端,其特征在于,所述响应模块还用于在所述本地操作为显示类操作时,只调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应。
6.根据权利要求4或5所述的终端,其特征在于,所述响应模块还用于在所述本地操作为输入类操作时,调用所述第二组件模型树中对应所述本地操作的组件对所述本地操作进行响应,并在第一时间段后将第一重定向消息向所述托管方发送,其中,所述第一重定向消息包括所输入的数据以及进行输入数据的第二组件模型树中的组件的编号。
7.一种用于实现远程虚拟桌面和应用程序的***,包括终端和服务器,所述终端和所述服务器之间能够通过网络进行通信,其特征在于,所述终端为如权利要求4-6任一权利要求所述的终端。
8.根据权利要求7所述的用于实现远程虚拟桌面和应用程序的***,其特征在于,所述服务器包括生成模块、发送模块、接收模块以及响应模块,
所述生成模块用于提取自身的桌面的组件和/或应用程序的组件,以根据所述组件生成第一组件模型树,所述生成模块将所述第一组件模型树发送给所述发送模块;
所述发送模块用于接收所述第一组件模型树,将所述第一组件模型树发送给受托管方,以使所述受托管方将所述第一组件模型树转换为所述受托管方的本地化的第二组件模型树;
所述接收模块用于接收所述受托管方发送的第二重定向消息,其中,所述第二重定向消息包括受托管方进行操作时鼠标的事件以及坐标,和/或键盘所输入的字符,所述接收模块将所述鼠标的事件以及坐标,和/或键盘所输入的字符发送给所述响应模块;
所述响应模块用于接收所述鼠标的事件以及坐标,和/或键盘所输入的字符,调用键鼠应用程序的组件对鼠标的事件以及坐标,和/或键盘所输入的字符进行响应。
9.根据权利要求8所述的用于实现远程虚拟桌面和应用程序的***,其特征在于,所述服务器还包括接收模块以及响应模块,
所述接收模块用于接收所述受托管方返回的第一重定向消息,并根据所述第一重定向消息刷新第一组件模型树,以将所述受托管方的操作重定向到所述托管方,其中,所述第一重定向消息包括在受托管方所输入的数据以及进行输入数据的第二组件模型树中的组件的编号,所述第二组件模型树的全部组件都是所述受托管方将第一组件模型树的组件依照组件映射表进行映射得到的本地化组件,所述接收模块将所述所输入的数据以及进行输入数据的第二组件模型树中的组件的编号发送给所述响应模块;
所述响应模块用于接收所述所输入的数据以及进行输入数据的第二组件模型树中的组件的编号,根据所述第二组件模型树中的组件的编号查找到所述第一组件模型树中对应的组件,并调用所述第一组件模型树中对应的组件对所述输入的数据进行响应。
CN201310631760.8A 2013-11-29 2013-11-29 用于实现远程虚拟桌面和应用程序的方法以及设备 Active CN104679494B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310631760.8A CN104679494B (zh) 2013-11-29 2013-11-29 用于实现远程虚拟桌面和应用程序的方法以及设备
PCT/CN2014/085922 WO2015078214A1 (zh) 2013-11-29 2014-09-04 用于实现远程虚拟桌面和应用程序的方法以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310631760.8A CN104679494B (zh) 2013-11-29 2013-11-29 用于实现远程虚拟桌面和应用程序的方法以及设备

Publications (2)

Publication Number Publication Date
CN104679494A CN104679494A (zh) 2015-06-03
CN104679494B true CN104679494B (zh) 2020-03-31

Family

ID=53198314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310631760.8A Active CN104679494B (zh) 2013-11-29 2013-11-29 用于实现远程虚拟桌面和应用程序的方法以及设备

Country Status (2)

Country Link
CN (1) CN104679494B (zh)
WO (1) WO2015078214A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105447645B (zh) * 2015-11-30 2020-02-07 南京南瑞继保电气有限公司 基于元模型树的电力调度异构业务***模型通用加载方法
EP3570164B1 (de) * 2018-05-14 2023-04-26 Schneider Electric Industries SAS Verfahren und system zum generieren einer mobilen applikation aus einer desktop-anwendung
CN114327504A (zh) * 2021-12-01 2022-04-12 阿里巴巴(中国)有限公司 通信方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064713A (zh) * 2006-04-26 2007-10-31 深圳Tcl新技术有限公司 通过电视机平台实现远程桌面的控制方法
CN101499010A (zh) * 2008-01-30 2009-08-05 运软网络科技(上海)有限公司 一种在手机上使用桌面应用程序的方法
CN102387118A (zh) * 2010-08-30 2012-03-21 联想(北京)有限公司 一种数据输出方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028579A1 (en) * 2001-08-06 2003-02-06 Kulkarni Vinay Vasant Process for component-based application development
CN101447998B (zh) * 2008-12-25 2012-07-11 广东威创视讯科技股份有限公司 桌面共享方法及***
CN102033726A (zh) * 2009-09-30 2011-04-27 联想(北京)有限公司 一种显示方法和服务器
CN101674110A (zh) * 2009-10-21 2010-03-17 中兴通讯股份有限公司 一种实现移动终端桌面共享和控制的方法及移动终端
CN102487380B (zh) * 2010-12-01 2016-09-07 中兴通讯股份有限公司 桌面虚拟化终端托管方法及***
CN103139294B (zh) * 2013-01-30 2015-12-09 深圳市深信服电子科技有限公司 基于应用虚拟化的本地资源映射方法及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064713A (zh) * 2006-04-26 2007-10-31 深圳Tcl新技术有限公司 通过电视机平台实现远程桌面的控制方法
CN101499010A (zh) * 2008-01-30 2009-08-05 运软网络科技(上海)有限公司 一种在手机上使用桌面应用程序的方法
CN102387118A (zh) * 2010-08-30 2012-03-21 联想(北京)有限公司 一种数据输出方法及装置

Also Published As

Publication number Publication date
CN104679494A (zh) 2015-06-03
WO2015078214A1 (zh) 2015-06-04

Similar Documents

Publication Publication Date Title
CN110515576B (zh) 显示控制方法及装置
US20220353645A1 (en) Messaging system interacting with dynamic extension app
US11451619B2 (en) App remote control method and related devices
EP3531290A1 (en) Data backup method, apparatus, electronic device, storage medium, and system
CN108471376B (zh) 数据处理方法、装置及***
EP3190763B1 (en) Screen sharing method and sharing device
CN109889348B (zh) 一种图像分享方法及装置
US20110066971A1 (en) Method and apparatus for providing application interface portions on peripheral computing devices
WO2018133685A1 (zh) 界面显示方法、装置、终端及存储介质
EP3142304B1 (en) Synchronization method for notification message of electronic device, server and electronic device
US9124551B2 (en) Multi-touch multi-user interactive control system using mobile devices
KR20160013054A (ko) 애플리케이션 인터페이스를 디스플레이하는 방법 및 장치, 그리고 전자 장치
KR102249197B1 (ko) 사용자 단말 장치, 통신 시스템 및 그 제어 방법
US10863312B2 (en) Moving track sharing method and apparatus, and storage medium
JP2012079084A (ja) リモートデスクトップシステムおよび業務アプリケーション移行システム
CN103677970A (zh) 实现终端本地桌面和远端虚拟桌面合并显示的***和方法
CN107070785A (zh) 一种实现阅读分享的方法及其装置
CN104679494B (zh) 用于实现远程虚拟桌面和应用程序的方法以及设备
CN114281288A (zh) 投屏处理方法、装置及电子设备
CN115617166A (zh) 交互控制方法、装置及电子设备
TW201624252A (zh) 資訊整合系統及方法
CN108255547B (zh) 一种应用程序控制方法及装置
CN104219274A (zh) 使用个人计算机促进访问和与移动设备交互的***和方法
CN109271156B (zh) 游戏平台的底层调用方法及相关产品
EP4351117A1 (en) Information display method and apparatus, and electronic device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220316

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right