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

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

Info

Publication number
WO2015078214A1
WO2015078214A1 PCT/CN2014/085922 CN2014085922W WO2015078214A1 WO 2015078214 A1 WO2015078214 A1 WO 2015078214A1 CN 2014085922 W CN2014085922 W CN 2014085922W WO 2015078214 A1 WO2015078214 A1 WO 2015078214A1
Authority
WO
WIPO (PCT)
Prior art keywords
component
model tree
component model
components
host
Prior art date
Application number
PCT/CN2014/085922
Other languages
English (en)
French (fr)
Inventor
高小宏
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2015078214A1 publication Critical patent/WO2015078214A1/zh

Links

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

Definitions

  • the present application relates to the field of communications, and more particularly to methods and apparatus for implementing remote virtual desktops and applications. Background technique
  • Traditional remote virtual desktops and applications refer to the delivery of personal desktop and application interfaces integrated on the server side to various terminals through remote desktop protocols, such as: tablets and smartphones, etc.
  • Output devices such as keyboards, mice, universal serial bus peripherals, serial-parallel peripherals, headsets and microphones, etc. are mapped to the server, allowing users to access the server from any location, anywhere, anytime via the network. It is a personal desktop system that increases the flexibility of desktop and application usage.
  • remote virtual desktops and applications are simple to implement, “snapshot” the desktops and applications on the server to get images, and map them to the terminal for display.
  • the terminal only the user's operation on the mouse or the operation of the keyboard is required, and then the mouse operation or the keyboard operation is sent to the server, and the server then uses the software to simulate the operation of the mouse or the operation of the keyboard to control the desktop and the application, and then The "screenshot" of the control results is taken to obtain a picture and mapped to the terminal, so as to achieve the same effect as controlling the desktop and the application by operating the mouse and keyboard on the server side.
  • each user operation must undergo two network transmissions, the terminal feeds back the user's operation to the server, and the server responds according to the user's operation. The device then returns the result of the response to the terminal for display.
  • the present application provides methods and apparatus for implementing remote virtual desktops and applications that can increase the speed of response.
  • a first aspect of the present application provides a method for implementing a remote virtual desktop and an application, comprising the steps of: receiving, by a host, a first component model tree sent by a host, wherein the first component model tree is extracted The component of the host's desktop and/or the component of the running application is generated; converting the first component model tree into a second component model tree according to the component mapping table, wherein all of the second component model tree a component that is localized; receives a local operation, and invokes a component of the second component model tree corresponding to the local operation to respond to the local operation.
  • the receiving a local operation, and calling a component corresponding to the local operation in the second component model tree to respond to the local operation The steps include: if the local operation is a display class operation, only calling a component of the second component model tree corresponding to the local operation to respond to the local operation.
  • the receiving a local operation, and calling the corresponding part in the second component model tree includes: if the local operation is an input class operation, invoking a component of the second component model tree corresponding to the local operation to respond to the local operation, And sending the first redirect message to the host after the first time period, wherein the first redirect message includes the input data and a number of a component in the second component model tree that performs the input data.
  • the method includes: determining whether the local operation is to the second component An operation performed by a component in the model tree, if not an operation performed on a component in the second component model tree, sending a second redirect message to the host, wherein the second redirect message includes The events and coordinates of the mouse during local operation, and/or the characters entered by the keyboard.
  • a second aspect of the present application also provides a method for implementing a remote virtual desktop and an application, the hoster extracting components of its own desktop and/or components of the application to generate a first component model tree according to the component; The first component model tree is sent to the hosted party.
  • the method further includes: receiving a first redirect message returned by the managed party, and refreshing according to the first redirect message a first component model tree to redirect the operation of the managed party to the host, wherein the first redirect message includes data input by the host and a second component model for inputting data a number of components in the tree, all components of the second component model tree are localized components obtained by the managed party mapping the components of the first component model tree according to the component mapping table; according to the second component The number of components in the model tree finds corresponding components in the first component model tree, and calls corresponding components in the first component model tree to respond to the input data.
  • the method further includes: receiving a second redirect message sent by the managed party, where the second redirect message includes The event and coordinates of the mouse when operated by the custodian, and/or the characters entered by the keyboard; the components of the mouse and keyboard application are called to respond to mouse events and coordinates, and/or characters entered by the keyboard.
  • the third aspect of the present application provides a terminal, where the terminal includes: a receiving module, a mapping module, and a response module, where the receiving module is configured to receive a first component model tree sent by a host, where the first a component model tree is generated by extracting components of the host's desktop and/or components of a running application, the receiving module transmitting the first component model tree to the mapping module; Receiving the first component model tree, converting the first component model tree into a second component model tree according to the component mapping table, wherein all the second component model trees are localized components, and the mapping module The second component model tree is sent to the response module; the response module is configured to receive the second component The model tree receives the local operation and invokes a component of the second component model tree corresponding to the local operation to respond to the local operation.
  • the response module is further configured to: when the local operation is a display class operation, only call a corresponding one of the second component model trees The component of the local operation responds to the local operation.
  • the response module is further configured to: when the local operation is an input class operation, Responding to the local operation in the second component model tree to respond to the local operation, and sending a first redirect message to the host after the first time period, where the first The redirect message includes the entered data and the number of components in the second component model tree that made the input data.
  • the terminal further includes a determining module and a sending module, where the determining module is configured to determine whether the local operation is to the second component An operation performed by a component in the model tree, the determining module sending the determination result to the sending module; the sending module is configured to receive the determining result, and in the determining result, the local operation is not And sending, by the component in the second component model tree, a second redirect message to the host, where the second redirect message includes an event and coordinates of the mouse when the local operation is performed, and / or the characters entered on the keyboard.
  • a fourth aspect of the present application provides a server, including a generating module and a sending module, where the generating module is configured to extract components of a desktop and/or components of the application, to generate a first component model tree according to the component.
  • the generating module sends the first component model tree to the sending module; the sending module is configured to receive the first component model tree, and send the first component model tree to the hosted party.
  • the server further includes a receiving module and a response module, where the receiving module is configured to receive the first redirect message returned by the managed party And refreshing the first component model tree according to the first redirect message, to redirect the operation of the managed party to the host, wherein the first redirect message is included in the hosted party Data and the second input data a number of components in the component model tree, all components of the second component model tree are localized components obtained by the managed party mapping the components of the first component model tree according to the component mapping table, and the receiving module Transmitting the input data and a number of a component in a second component model tree of the input data to the response module; the response module is configured to receive the input data and perform a second component of the input data a number of a component in the model tree, searching for a corresponding component in the first component model tree according to a number of the component in the second component model tree, and calling a corresponding component pair in the first component model tree The input data is responded to.
  • the receiving module is configured to receive the first redirect message returned by the managed party And refreshing
  • the server further includes a receiving module and a response module, where the receiving module is configured to receive the second redirect message sent by the managed party.
  • the second redirect message includes an event and coordinates of the mouse when the host is operated, and/or a character input by the keyboard, and the receiving module sets the event and coordinates of the mouse, and/or the keyboard
  • the input character is sent to the response module;
  • the response module is configured to receive the event and coordinates of the mouse, and/or characters input by the keyboard, call the component of the mouse and keyboard application to the mouse event and coordinates, and / Or the character entered by the keyboard responds.
  • a fifth aspect of the present application provides a terminal, where the terminal includes: a receiver and a processor, where the receiver is configured to receive a first component model tree sent by a host, where the first component model tree is Extracting components of the host's desktop and/or components of a running application; the processor is configured to receive the first component model tree, and convert the first component model tree to the second according to the component mapping table a component model tree, wherein all components in the second component model tree are localized, receive a local operation, and invoke a component of the second component model tree corresponding to the local operation to respond to the local operation.
  • the processor is further configured to: when the local operation is a display class operation, only call a corresponding one of the second component model trees The component of the local operation responds to the local operation.
  • the terminal further includes a transmitter, where the processor is further configured to When the local operation is an input class operation, the second component model tree is called Responding to the local operation by the component of the local operation, and invoking the sender to send a first redirect message to the host after the first time period, wherein the first redirect message includes The number of data entered and the components in the second component model tree that make the input data.
  • the terminal further includes a transmitter, where the processor is further configured to determine whether the local operation is a model tree of the second component The operation performed by the component in the server; the sender is configured to send a second redirect message to the host, wherein the second redirect message includes an event and coordinates of the mouse when the local operation is performed, and/or a keyboard The character entered.
  • a sixth aspect of the present application provides a server, including a processor and a transmitter, the processor is configured to extract components of a desktop thereof and/or components of an application, to generate a first component model tree according to the component;
  • the sender is configured to receive the first component model tree, and send the first component model tree to the hosted party.
  • the server further includes a receiver, where the receiver is configured to receive a first redirect message returned by the managed party, and according to the The first redirect message refreshes the first component model tree to redirect the operation of the hosted party to the host party, wherein the first redirect message includes data entered by the hosted party and performed Entering the number of components in the second component model tree of the data, all components of the second component model tree are localized components obtained by the managed party mapping the components of the first component model tree according to the component mapping table
  • the processor is configured to search for a corresponding component in the first component model tree according to a number of components in the second component model tree, and invoke a corresponding component pair in the first component model tree to input the The data is responding.
  • the server further includes a receiver, where the receiver is configured to receive a second redirect message sent by the managed party, where The second redirect message includes an event and coordinates of the mouse when the host is operating, and/or a character input by the keyboard; the processor is configured to invoke a component of the mouse and keyboard application to the mouse event and coordinates, and/or The characters entered by the keyboard respond.
  • a seventh aspect of the present application provides a method for implementing a remote virtual desktop and an application
  • the system includes a terminal and a server, and the terminal and the server are capable of communicating through a network, and the terminal is a terminal according to any one of the above.
  • the server is the server of any one of the foregoing.
  • the above solution receives the first component model tree sent by the host, and converts the first component model tree into the second component model tree through the component mapping table, and then calls the component corresponding to the local operation in the second component model tree to perform the local operation.
  • Respond Since the components in the second component model tree are set on the managed party, when the user operates on the hosted party, the response of the component in the local second component model tree is much faster than the response through the network. The response of the transmission is fast.
  • the second component model tree and the first component model tree are in one-to-one correspondence, so that the changes of the second component model tree are also easily copied to the first component model tree, so that it is easy to implement the escrow party and the escrow party. Synchronization.
  • mapping the first component model tree to the localized second component model tree can improve the convenience of the operation.
  • FIG. 1 is a schematic structural diagram of an embodiment of a system for implementing a remote virtual desktop and an application according to the present invention
  • FIG. 2 is a flow chart of an embodiment of a method for implementing a remote virtual desktop and an application according to the present invention
  • FIG. 3 is a flow chart of another embodiment of a method for implementing a remote virtual desktop and application of the present invention.
  • FIG. 4 is a schematic structural diagram of an embodiment of a terminal according to the present invention.
  • FIG. 5 is a schematic structural diagram of an embodiment of a server according to the present invention.
  • FIG. 6 is a schematic structural view of another embodiment of a terminal according to the present invention.
  • FIG. 7 is a block diagram showing another embodiment of a server of the present invention. detailed description
  • FIG. 1 is a schematic structural diagram of an embodiment of a system for implementing a remote virtual desktop and an application according to the present invention.
  • the system for implementing remote virtual desktops and applications of the present embodiment includes: a server 110, a network 120, and a terminal 130.
  • Server 110 establishes a connection with terminal 130 over network 120.
  • the server 110 can be a data center having a large number of computing and storage resources, wherein the data center virtualizes the virtual computer through virtualization technology or directly uses the physical machine to form a flexible scheduling computer resource pool for calculation.
  • Server 110 can also be a general personal computer, tablet, and the like. Server 110 can choose to install one or more operating systems based on the computing and storage resources it has, and install the applications as needed.
  • Network 120 can be a wired network or a wireless network.
  • Terminal 130 can be a personal computer, or a portable computing device or the like.
  • the portable computing device includes a tablet computer, a smart phone, and the like.
  • the server 110 acts as a host and the terminal 130 acts as a host.
  • the server 110 runs an operating system
  • the system will run the desktop, and extract the components of the desktop to generate a first component model tree; and, each time an application is run, the system will extract the components of the application accordingly. And generate a first component model tree.
  • the server 110 can directly respond to the corresponding first component model tree.
  • the components in the first component model tree are components that adapt to the working environment of the server 110. For example, suppose the server 110 is a computer with a large screen and a mouse and keyboard, and the running operating system is a windows system, and the components in the first component model tree generated by the browser include menus, buttons, and slides. Articles and so on. These components are ideal for working in the above-mentioned work environment. For example, when you need to adjust the browsing progress, just drag the slider with the mouse to scroll the page.
  • the server 110 "screens" its own desktop and applications to obtain a picture and sends it to the terminal 130, and will be based on the components and/or applications of the desktop in the server 110.
  • the first component model tree generated by the component is sent to the terminal 130 via the remote desktop protocol. Since the working system of the server 110 and the working system of the terminal 130 are different, the "like" components in the two systems are also different.
  • the check box is a ticked box, and In the system used by the terminal 130, the check box is a switch, and each system can only run the components provided by itself, so the component mapping table can be created according to the system used by the server 110 and the system used by the terminal 130.
  • the programmer pre-collects the components of each system and creates a component mapping table between each two systems and solidifies them in the program. Then, which component mapping table is used is determined according to the system used by the server 110 and the system used by the terminal 130.
  • the screen sizes of the server 110 and the terminal 130 may not be the same.
  • the server 110 is a computer with a large screen and a mouse and keyboard
  • the terminal 130 is a smart phone.
  • the mapping relationship of the components the convenience of the user can be considered, thereby selecting a component which the system of the terminal 130 has and which is convenient to use.
  • the scroll bar selection in the first component model tree is mapped to a page up and down button suitable for finger operation, and the like.
  • the terminal 130 converts the first component model tree into a second component model tree according to the component mapping table.
  • the second component model tree is all localized components.
  • the localized component is overlaid on the image in the same component of the first component model tree in the image.
  • the terminal 130 When the user performs a local operation at the terminal 130, the terminal 130 receives the local operation and invokes the component corresponding to the local operation in the second component model tree to respond to the operation. Since the components in the second component model tree are all local, when the local operation is received, the response can be immediately performed, and the keyboard and/or mouse operation must be sent to the server 110 to respond in response to the prior art, thereby greatly improving the response. speed.
  • the local operation is a display class operation, for example, zooming in and out, etc.
  • these operations do not generate data interactions, so only the components of the corresponding component of the second component model tree are called to respond to the local operation without sending a message to the server 110. . This can further reduce the amount of data transfer.
  • the local operation is an input class operation
  • the input data must be sent to the server 110, so, in addition to calling the corresponding component of the second component model tree, the local operation
  • the first redirect message is sent to the server 110 after the first time period.
  • the first redirect message includes the input data and a number of a component in the second component model tree that performs the input data. Since the components of the first component model tree and the components of the second component model tree have a one-to-one correspondence, it is only necessary to send the number of the component in the second component model tree of the input data and the input data to the server. 110.
  • the system of the server 110 can call the corresponding component in the first component model tree to input data according to the number to implement synchronization between the server 110 and the terminal 130, thereby implementing a remote virtual desktop and an application.
  • all components of the first component model tree can be mapped according to the component mapping table to obtain a localized component.
  • a part of the components of the first component model tree can be mapped according to the component mapping table.
  • the localization component is obtained, and another component of the first component model tree cannot or does not need to be mapped to the localization component.
  • the terminal 130 only displays the image in the form of a picture, so it is also required to be to the host.
  • the second redirect message includes an event and coordinates of the mouse when the local operation is performed, and/or a character input by the keyboard, so that the hoster according to the event and coordinates of the mouse, and/or
  • the characters entered by the keyboard invoke the components of the mouse and keyboard application (the components of the mouse and keyboard application are independent, not belonging to the first component model tree), and are thus compatible with the traditional implementation of remote virtual desktops as described in the background art. / or application method.
  • the character can be a single character or a combination of multiple characters.
  • a single character can be "C” and a combination of multiple characters can be "Ctrl+C".
  • the above solution converts the first component model tree into the second component model tree through the component mapping table by receiving the first component model tree sent by the server 110, and then calls the corresponding local operation component in the second component model tree to the local component.
  • the operation responds. Since the components in the second component model tree are disposed in the terminal 130, when the user operates the terminal 130, the host responds to the operation by using the component in the local second component model tree. The response of the network transmission is fast. Moreover, the components of the second component model tree are in one-to-one correspondence with the components of the first component model tree, so that the changes of the second component model tree are also easily copied to the first component model tree, so that the terminal is easily implemented. 130 is synchronized with the server 110. In addition, when the difference between the applicable components of the terminal 130 and the server 110 is relatively large, mapping the first component model tree to the localized second component model tree can improve the convenience of the operation.
  • Figure 2 is a flow diagram of an embodiment of a method for implementing a remote virtual desktop and application in accordance with the present invention. The present embodiment is described from the perspective of a host, and the method for implementing a remote virtual desktop and an application in this embodiment includes:
  • the host receives the first component model tree sent by the host.
  • the first component model tree is generated by extracting components of the host's desktop and/or components of the running application.
  • the system runs the desktop, and extracts the components of the desktop to generate a first component model tree. Moreover, each time an application is run, the system extracts the components of the application and generates a first component. Model tree.
  • the hoster "screens" the desktop and application on the host to obtain a picture and sends it to the hosted party, and the host sends the first component model tree to the hosted party. The host receives the image sent by the host and the first component model tree.
  • S202 The managed party converts the first component model tree into a second component model tree according to the component mapping table. Among them, the second component model tree is all localized components.
  • the check box is a tick box.
  • the checkbox is a switch, and each system can only run its own components, so component mapping can be created based on the system used by the host and the system used by the host. table.
  • the programmer pre-collects the components of each system and creates a component mapping table between each two systems and solidifies them in the program. Then, determine which component mapping table to use based on the system used by the host and the system used by the host.
  • the screen sizes of the host and the host may not be the same.
  • the host is a computer with a mouse and keyboard, with a large screen, and the host is a smartphone.
  • the convenience of the user can be considered, thereby selecting a component that is owned by the host system and is convenient to use.
  • the scroll bar selection in a component model tree corresponds to a page up and down button suitable for finger operation, and the like.
  • the hosted party converts the first component model tree into a localized second component model tree based on the component mapping table.
  • the localized component is overlaid on the image in the image where the corresponding component of the first component model tree is located.
  • S203 The hostee receives the local operation and invokes a component corresponding to the local operation in the second component model tree to respond to the operation.
  • the host When the user is operating on the managed party, the host receives the local operation and invokes the component of the second component model tree that corresponds to the local operation to respond to the local operation. Since the components in the second component model tree are all local, after receiving the local operation, the response can be immediately responded, and the keyboard and/or mouse operation must be sent to the host to respond in response to the prior art, thereby greatly improving the response. speed.
  • the local operation is a display class operation, for example, zooming in and out, etc.
  • these operations do not generate data interactions, so only the components of the corresponding component of the second component model tree are called to respond to the local operation without sending a message to the host. . This will further reduce the amount of data transfer.
  • the input data must be sent to the hoster, so in addition to calling the corresponding local operation component in the second component model tree to respond to the local operation, the first weight will be after the first time period.
  • Directed messages are sent to the host.
  • the first redirect message includes the input data and the number of components in the second component model tree that performs the input data. Since the components of the first component model tree and the components of the second component model tree have a one-to-one correspondence, it is only necessary to send the number of the component in the second component model tree of the input data and the input data to the host.
  • the host system can call the corresponding component in the first component model tree to input data according to the number to implement synchronization between the host and the host to implement the remote virtual desktop and/or application.
  • all components of the first component model tree can be mapped according to the component mapping table to obtain a localized component.
  • a part of the components of the first component model tree can be mapped according to the component mapping table. The localization component is obtained, and another component of the first component model tree cannot or does not need to be mapped to a localization component.
  • the hosted party For a component that is not localized, the hosted party only displays the image as a picture, so The host redirecting party sends a second redirect message, where the second redirect message includes an event and coordinates of the mouse when the local operation is performed, and/or a character input by the keyboard, so that the hoster according to the mouse event and coordinates And/or the character input by the keyboard invokes a component of the mouse application to respond, thereby being compatible with conventional methods of implementing remote virtual desktops and/or applications as described in the background.
  • the character can be a single character or a combination of multiple characters.
  • a single character can be "C” and a combination of multiple characters can be "Ctrl+C".
  • the above solution receives the first component model tree sent by the host, and converts the first component model tree into the second component model tree through the component mapping table, and then calls the component corresponding to the local operation in the second component model tree to perform the local operation.
  • the components of the second component model tree are in one-to-one correspondence with the components of the first component model tree, so that the changes of the second component model tree are also easily copied to the first component model tree, so that it is easy to implement the hosting party. Synchronize with the hosted party.
  • mapping the first component model tree to the localized second component model tree can improve the convenience of the operation.
  • Figure 3 is a flow diagram of another embodiment of a method for implementing a remote virtual desktop and application of the present invention.
  • the present embodiment is described from the perspective of a host.
  • the method for implementing a remote virtual desktop and an application in this embodiment includes:
  • S301 The hoster extracts components of its own desktop and/or components of the application to generate a first component model tree according to the components.
  • the system runs the desktop, and extracts the components of the desktop to generate a first component model tree. Moreover, each time an application is run, the system extracts the components of the application and generates a first component. Model tree.
  • S302 The host sends the first component model tree to the hosted party.
  • the hoster "screens" its own desktop and application to get the image, sends it to the hosted party, and sends the first component model tree to the hosted via Remote Desktop Protocol Party.
  • the check box is a tick box.
  • the checkbox is a switch, and each system can only run its own components, so component mapping can be created based on the system used by the host and the system used by the host. table.
  • the programmer pre-collects the components of each system and creates a component mapping table between each two systems and solidifies them in the program. Then, determine which component mapping table to use based on the system used by the host and the system used by the host.
  • the screen sizes of the host and the host may not be the same.
  • the host is a computer with a large keyboard with a mouse and keyboard, and the host is a smart phone.
  • the mapping relationship of components the convenience of the user can be considered, thereby selecting a component that is owned by the hosted system and is convenient to use.
  • the scroll bar selection in the first component model tree is mapped to a page up and down button suitable for finger operation, and the like.
  • the hosted party converts the first component model tree into a localized second component model tree based on the component mapping table.
  • the localized component is overlaid on the image in the same component as the corresponding component of the first component model tree.
  • the host When the user operates on the managed party, the host receives the operation and invokes the component of the corresponding component in the second component model tree to respond to the operation. Since the components in the second component model tree are all on the managed side, when the operation is received, the response can be immediately responded, and the operation must be sent to the hoster in response to the prior art to respond, which greatly improves the response speed.
  • the operation is to display class operations, such as zooming in and out, etc.
  • these operations do not produce data interactions, so only the components of the corresponding component in the second component model tree are called to respond to the operation without sending a message to the host. This can further reduce the amount of data transmission.
  • the escrow party receives the first redirect message returned by the escrow party, and refreshes the first component model tree according to the first redirect message to redirect the managed party's operation to the escrow party.
  • the first redirect message includes the data input by the host and the number of components in the second component model tree of the input data, and all components of the second component model tree are the first component model of the host The local component of the tree is mapped according to the component mapping table. Components.
  • the input data must be sent to the host, so in addition to calling the corresponding component in the second component model tree to respond to the operation, the first redirect message is also sent after the first time period. Send to the host. Since the components of the first component model tree and the components of the second component model tree have a one-to-one correspondence, it is only necessary to encapsulate the number of the components in the second component model tree of the input data and the input data. A redirect message is sent to the host.
  • S304 The host finds the corresponding component in the first component model tree according to the number of the component in the second component model tree, and calls the corresponding component in the first component model tree to respond to the input data.
  • the hoster's system After the host receives the first redirect message returned by the host, the hoster's system calls the corresponding component in the first component model tree to input data according to the number, so as to implement synchronization between the host and the host, thereby realizing Remote virtual desktops and applications.
  • all components of the first component model tree can be mapped according to the component mapping table to obtain a localized component.
  • a part of the components of the first component model tree can be mapped according to the component mapping table.
  • the localization component is obtained, and the other component of the first component model tree cannot or does not need to be mapped to the localization component.
  • the hosted party For the component that is not localized, the hosted party only displays the image as a picture, so it needs to be managed.
  • the direction escrow party sends a second redirect message, where the second redirect message includes an event and coordinates of the mouse when the host is operating, and/or a character input by the keyboard.
  • the hoster receives the second redirect message sent by the host, and responds to the component of the mouse and keyboard application according to the event and coordinates of the mouse, and/or the character input by the keyboard, thereby being compatible with the background art.
  • the character can be a single character or a combination of multiple characters.
  • a single character can be "C” and a combination of multiple characters can be "Ctrl+C”.
  • the above solution receives the first component model tree sent by the host, and converts the first component model tree into a second component model tree through the component mapping table, and then calls the corresponding local operation component in the second component model tree to the local
  • the operation responds. Since the components in the second component model tree are set on the managed party, they are hosted when the user operates on the managed party. The component responds to the operation with the components in the local second component model tree, and the response speed is much faster than the response through the network transmission. Moreover, the components of the second component model tree are in one-to-one correspondence with the components of the first component model tree, so that the changes of the second component model tree are also easily copied to the first component model tree, so that it is easy to implement the hosting party. Synchronize with the hosted party.
  • mapping the first component model tree to the localized second component model tree can improve the convenience of the operation.
  • FIG. 4 is a schematic structural diagram of an embodiment of a terminal according to the present invention.
  • the terminal of the embodiment as a managed party includes: a receiving module 410, a mapping module 420, and a response module 430.
  • the receiving module 410 is configured to receive a first component model tree sent by the host, wherein the first component model tree is generated by extracting components of the host's desktop and/or components of the running application. For example, after the host system starts the system, the system runs the desktop, and extracts the components of the desktop to generate a first component model tree. Moreover, each time an application is run, the system extracts the components of the application and generates a first A component model tree. The hoster "screens" the desktop and applications on the host to obtain a picture and sends it to the trusted party, and the host sends the first component model tree to the hosted party. The receiving module 410 correspondingly receives the picture sent by the host and the first component model tree. The receiving module 410 sends the first component model tree to the mapping module 420.
  • the mapping module 420 is configured to receive the first component model tree, and convert the first component model tree into the second component model tree according to the component mapping table.
  • the second component model tree is all localized components.
  • the check box is a check box.
  • the check box is a switch, and each system can only run the components provided by itself, so it can be created according to the system used by the host and the system used by the host.
  • Component mapping table For example, the programmer pre-collects the components of each system and creates a component mapping table between each two systems and solidifies them in the program.
  • the host is a computer with a mouse and keyboard, with a large screen, and the host is a smartphone.
  • the mapping relationship of components the convenience of the user can be considered, thereby selecting a component that is owned by the host system and is convenient to use.
  • the scroll bar selection in the first component model tree is mapped to a page up and down button suitable for finger operation, and the like.
  • the mapping module 420 converts the first component model tree into a localized second component model tree according to the component mapping table. The localized component is overlaid on the image in the image where the corresponding component of the first component model tree is located.
  • the mapping module 420 sends the second component model tree to the response module 430.
  • the response module 430 is configured to receive the second component model tree, receive the local operation, and invoke the component corresponding to the local operation in the second component model tree to respond to the operation. For example, when the user is operating on the managed party, the response module 430 receives the local operation and invokes the component corresponding to the local operation in the second component model tree to respond to the local operation. Since the components in the second component model tree are all local, when the local operation is received, the response can be immediately performed, and the keyboard and/or mouse operation must be sent to the host to respond in response to the prior art, thereby greatly improving the response. speed.
  • the response module 430 only calls the corresponding local operation component in the second component model tree to respond to the local operation without having to host The party sends a message. This can further reduce the amount of data transmission. If the local operation is an input class operation, the input data must be sent to the host. Therefore, the response module 430 responds to the local operation by calling the component corresponding to the local operation in the second component model tree, and will still be after the first time period.
  • the first redirect message is sent to the host.
  • the first redirect message includes the input data and a number of a component in the second component model tree that performs the input data.
  • the host system can call the corresponding component in the first component model tree to input data according to the number to implement synchronization between the host and the host to implement the remote virtual desktop and/or application.
  • all components of the first component model tree can be mapped according to the component mapping table to obtain a localized component.
  • the first component model tree Some components can be mapped according to the component mapping table to obtain localized components, and other components of the first component model tree cannot or do not need to be mapped to localized components. For components that are not localized, the managed party is only in the form of pictures.
  • the display module is further required to determine whether the local operation is an operation on a component in the second component model tree, and then send the determination result to the sending module, and the sending module receives the determining As a result, and when the determining result is that the local operation is not an operation on a component in the second component model tree, sending a second redirect message to the host, where the second redirect message includes The events and coordinates of the mouse during local operation, and/or the characters entered by the keyboard.
  • the hoster receives the second redirect message sent by the host, and responds to the component of the key mouse application according to the event and coordinates of the mouse, and/or the combination of characters and characters input by the keyboard, thereby being compatible with the background.
  • the character can be a single character or a combination of multiple characters.
  • a single character can be "C” and a combination of multiple characters can be "Ctrl+C”.
  • the above solution receives the first component model tree sent by the host, and converts the first component model tree into the second component model tree through the component mapping table, and then calls the component corresponding to the local operation in the second component model tree to perform the local operation.
  • the components of the second component model tree are in one-to-one correspondence with the components of the first component model tree, so that the changes of the second component model tree are also easily copied to the first component model tree, so that it is easy to implement the hosting party. Synchronize with the hosted party.
  • mapping the first component model tree to the localized second component model tree can improve the convenience of the operation.
  • FIG. 5 is a schematic structural diagram of an embodiment of a server according to the present invention.
  • the server of the present embodiment as a host, includes: a generating module 510, a sending module 520, a receiving module 530, and a response module 540.
  • the generating module 510 is configured to extract components of its own desktop and/or components of the application, to The first component model tree is generated from the components. For example, after the host system starts the system, the system runs the desktop, and the generating module 510 extracts the components of the desktop to generate a first component model tree. Moreover, each time an application is run, the generating module 510 extracts the components of the application accordingly. Generate a first component model tree. The hoster makes its own desktop and applications
  • the generation module 510 sends the first component model tree to the sending module 520.
  • the sending module 520 is configured to send the first component model tree to the hosted party. For example, the sending module 520 sends the first component model tree to the hosted party. The host receives the first component model tree sent by the host.
  • the "like" components are also different.
  • the check box in the system used by the host, the check box is a tick box, and in the system used by the host, the check box is a switch, and each system You can only run the components provided by yourself, so you can create a component mapping table based on the system used by the host and the system used by the host.
  • the programmer pre-collects the components of each system and creates a component mapping table between each two systems and solidifies them in the program. Then, determine which component mapping table to use based on the system used by the host and the system used by the host.
  • the screen sizes of the host and the host may not be the same.
  • the host is a computer with a mouse and keyboard, with a large screen, and the host is a smartphone.
  • the mapping relationship of components the convenience of the user can be considered, thereby selecting a component that is owned by the host system and is convenient to use.
  • the scroll bar selection in the first component model tree is mapped to a page up and down button suitable for finger operation, and the like.
  • the hosted party converts the first component model tree into a localized second component model tree based on the component mapping table.
  • the localized component is overlaid on the image in the image where the corresponding component of the first component model tree is located.
  • the host When the user is operating on the managed party, the host receives the local operation and invokes the component of the second component model tree corresponding to the local operation to respond to the local operation. Since the components in the second component model tree are all local, when the local operation is received, the response can be immediately responded, and the keyboard and/or mouse operations must be sent to the host to respond in response to the prior art, thereby greatly improving the response. speed. If the local operation is a display class operation, For example, zooming in and out, etc., these operations do not generate data interactions, so only the components of the corresponding component of the second component model tree are called to respond to the local operation without sending a message to the host. This can further reduce the amount of data transmission.
  • the local operation is a display class operation, For example, zooming in and out, etc.
  • the receiving module 530 is configured to receive the first redirect message returned by the host, and refresh the first component model tree according to the first redirect message, to redirect the operation of the host to the host, where the first redirect
  • the message includes the data entered by the host and the number of components in the second component model tree of the input data. All components of the second component model tree are managed by the host to map the components of the first component model tree according to the component. The table is mapped to the localized component. For example, if the local operation is an input class operation, the input data must be sent to the host, so in addition to calling the component in the second component model tree to respond to the operation, the first redirect message will be sent after the first time period. Send to the host.
  • the first redirected message includes the entered data and a number of components in the second component model tree that performs the input data. Since the components of the first component model tree and the components of the second component model tree have a one-to-one correspondence, it is only necessary to encapsulate the number of the components in the second component model tree of the input data and the input data.
  • a redirect message is sent to the host.
  • the receiving module 530 transmits the input data and the number of the component in the second component model tree of the input data to the response module 540.
  • the response module 540 is configured to receive the input data and perform the number of the component in the second component model tree of the input data, and find the corresponding component in the first component model tree according to the number of the component in the second component model tree, and The corresponding component in the first component model tree is called to respond to the input data to achieve synchronization between the host and the hosted party, thereby implementing remote virtual desktops and applications.
  • all components of the first component model tree can be mapped according to the component mapping table to obtain a localized component.
  • a part of the components of the first component model tree can be mapped according to the component mapping table.
  • the localization component is obtained, and the other component of the first component model tree cannot or does not need to be mapped to the localization component.
  • the hosted party only displays the image as a picture, so it needs to be managed.
  • the direction escrow party sends a second redirect message, where the second redirect message includes an event and coordinates of the mouse when the host is operating, and/or a character input by the keyboard.
  • Receiving mode Block 530 receives the second redirect message sent by the hosted party.
  • the character can be a single character or a combination of multiple characters.
  • a single character can be "C” and a combination of multiple characters can be "Ctrl+C”.
  • the response module 540 is further configured to invoke a component of the mouse and keyboard application to respond to mouse events and coordinates, and/or characters entered by the keyboard, thereby being compatible with conventional implementations of remote virtual desktops and/or applications as described in the background. The method of the program.
  • the above solution receives the first component model tree sent by the host, and converts the first component model tree into the second component model tree through the component mapping table, and then calls the component corresponding to the local operation in the second component model tree to perform the local operation.
  • Respond Since the components in the second component model tree are set on the managed party, when the user operates the managed party, the host responds to the operation with the components in the local second component model tree. Faster response than responding via network transmission.
  • the components of the second component model tree are in one-to-one correspondence with the components of the first component model tree, so that the changes of the second component model tree are also easily copied to the first component model tree, so that it is easy to implement the hosting party. Synchronize with the hosted party.
  • mapping the first component model tree to the localized second component model tree can improve the convenience of the operation.
  • FIG. 6 is a schematic structural diagram of another embodiment of a terminal according to the present application.
  • the terminal of this embodiment includes: a receiver 610, a processor 620, a transmitter 630, a random access memory 640, a read only memory 650, and a bus 660.
  • Receiver 610 can be any receiver such as a wireless network module and a wired network interface.
  • the processor 620 controls the operation of the terminal, and the processor 620 may also be referred to as a CPU (Central Processing Unit).
  • Processor 620 may be an integrated circuit chip with signal processing capabilities.
  • the processor 620 can also be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), an off-the-shelf programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component.
  • the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
  • Transmitter 630 can be a transmitter such as a wireless network module and a wired network interface.
  • the memory can include read only memory 640 and random access memory 650 and provides instructions and data to processor 620. A portion of the memory may also include non-volatile random access memory (NVRAM).
  • NVRAM non-volatile random access memory
  • bus 660 which may include, in addition to the data bus, a power bus, a control bus, and a status signal bus. However, for clarity of description, various buses are labeled as bus 660 in the figure.
  • the memory stores the following elements, executable modules or data structures, or a subset of them, or their extended set:
  • Operation instructions Includes various operation instructions for implementing various operations.
  • Operating System Includes a variety of system programs for implementing basic services and handling hardware-based tasks.
  • the processor 620 performs the following operations by calling an operation instruction stored in the memory, which can be stored in the operating system:
  • the processor 620 invokes the receiver 610 to receive the first component model tree sent by the host, wherein the first component model tree is generated by extracting components of the host's desktop and/or components of the running application.
  • the processor 620 converts the first component model tree into a second component model tree according to the component mapping table, wherein all of the second component model trees are localized components.
  • the processor 620 receives the local operation and invokes a component of the corresponding component of the second component model tree to respond to the local operation.
  • the processor 620 only calls the component corresponding to the local operation in the second component model tree to respond to the local operation.
  • the processor 620 calls a component corresponding to the local operation in the second component model tree to respond to the local operation, and sends the first redirect message to the host after the first time period.
  • the first redirect message includes the input data and a number of a component in the second component model tree that performs the input data.
  • the processor 620 determines whether the local operation is an operation performed on a component in the second component model tree; and the determining result is that the local operation is not in the second component model tree.
  • the processor 620 calls the transmitter 630 to support
  • the management party sends a second redirect message, where the second redirect message includes an event and coordinates of the mouse when the local operation is performed, and/or a character input by the keyboard, thereby being compatible with the conventional implementation as described in the background art.
  • the input character can be a single character or a combination of multiple characters.
  • the above solution receives the first component model tree sent by the host, and converts the first component model tree into the second component model tree through the component mapping table, and then calls the component corresponding to the local operation in the second component model tree to perform the local operation.
  • the components of the second component model tree are in one-to-one correspondence with the components of the first component model tree, so that the changes of the second component model tree are also easily copied to the first component model tree, so that it is easy to implement the hosting party. Synchronize with the hosted party.
  • mapping the first component model tree to the localized second component model tree can improve the convenience of the operation.
  • FIG. 7 is a schematic structural diagram of another embodiment of a server according to the present application.
  • the server of this embodiment includes: a receiver 710, a processor 720, a transmitter 730, a random access memory 740, a read only memory 750, and a bus 760.
  • Receiver 710 can be any receiver such as a wireless network module and a wired network interface.
  • the processor 720 controls the operation of the server, and the processor 720 may also be referred to as a CPU (Central Processing Unit).
  • Processor 720 may be an integrated circuit chip with signal processing capabilities.
  • the processor 720 can also be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), an off-the-shelf programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component.
  • the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
  • Transmitter 730 can be a transmitter such as a wireless network module and a wired network interface.
  • the memory can include read only memory 740 and random access memory 750 and provide instructions and data to processor 720. A portion of the memory may also include non-volatile random access memory (NVRAM).
  • NVRAM non-volatile random access memory
  • the various components of the terminal are coupled together by a bus 760.
  • the bus 760 may include a power bus, a control bus, a status signal bus, and the like in addition to the data bus. However, for clarity of description, various buses are labeled as bus 760 in the figure.
  • the memory stores the following elements, executable modules or data structures, or a subset of them, or their extended set:
  • Operation instructions Includes various operation instructions for implementing various operations.
  • Operating System Includes a variety of system programs for implementing basic services and handling hardware-based tasks.
  • the processor 720 performs the following operations by calling an operation instruction stored in the memory, which can be stored in the operating system:
  • the processor 720 extracts components of its own desktop and/or components of the application to generate a first component model tree from the components.
  • the processor 720 calls the sender 730 to send the first component model tree to the hosted party.
  • the processor 720 calls the receiver 710 to receive the first redirect message returned by the managed party, and refreshes the first component model tree according to the first redirect message to perform the operation of the managed party.
  • the first redirect message includes data input by the host and a component of a component in a second component model tree that performs input data
  • all components of the second component model tree Both are localized components that are managed by the host to map the components of the first component model tree according to the component mapping table.
  • the processor 720 finds the corresponding component in the first component model tree according to the number of the component in the second component model tree, and calls the corresponding component in the first component model tree to respond to the input data.
  • the processor 720 calls the receiver 710 to receive the second redirect message sent by the managed party, where the second redirect message includes an event and coordinates of the mouse when the host performs the operation, and/or The characters entered by the keyboard.
  • the processor 720 invokes a component of the mouse and keyboard application to respond to mouse events and coordinates, and/or characters entered by the keyboard, thereby being compatible with conventional methods of implementing remote virtual desktops and/or applications as described in the background.
  • the input character can be a single character or a combination of multiple characters.
  • the above solution receives the first component model tree sent by the host, and converts the first component model tree into the second component model tree through the component mapping table, and then invokes the second component model tree.
  • the component corresponding to the local operation responds to the local operation. Since the components in the second component model tree are set on the managed party, when the user operates on the hosted party, the response of the component in the local second component model tree is much faster than the response through the network. The response of the transmission is fast.
  • the second component model tree and the first component model tree are in one-to-one correspondence, so that the changes of the second component model tree are also easily copied to the first component model tree, so that it is easy to implement the escrow party and the escrow party. Synchronization.
  • mapping the first component model tree to the localized second component model tree can improve the convenience of the operation.
  • the disclosed system, apparatus, and method may be implemented in other manners.
  • the device implementations described above are merely illustrative.
  • the division of the modules or units is only a logical function division.
  • there may be another division manner for example, multiple units or components may be used. Combined or can be integrated into another system, or some features can be ignored, or not executed.
  • the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be electrical, mechanical or otherwise.
  • the components displayed as the unit may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the present embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
  • a computer readable storage medium including a number of instructions to make a computer set
  • the device which may be a personal computer, a server, or a network device, etc.
  • a processor performs all or part of the steps of the methods described in various embodiments of the present application.
  • the foregoing storage medium includes: a U disk, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and the like, which can store program codes. .

Abstract

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

Description

用于实现远程虚拟桌面和应用程序的方法以及设备
本申请要求于 2013 年 11 月 29 日提交中国专利局、 申请号为 201310631760.8 发明名称为"用于实现远程虚拟桌面和应用程序的方法 以及设备,,的中国专利申请的优先权,在先申请文件的内容通过引用结合 在本申请中。 技术领域
本申请涉及通信领域, 特别是涉及用于实现远程虚拟桌面和应用程 序的方法以及设备。 背景技术
传统的远程虚拟桌面和应用程序是指通过远程桌面协议将集成在 服务器端的属于个人的桌面和应用程序界面投递给各种终端, 例如: 平 板电脑以及智能手机等等, 同时把终端的各种输入输出设备, 例如: 键 盘, 鼠标, 通用串行总线外设, 串并口外设, 耳机和麦克风等等映射到 服务器端, 使得用户可以通过任何设备, 在任何地点, 任何时间通过网 络访问在服务器上属于个人的桌面系统, 从而提高桌面和应用程序使用 的灵活性。
在这种方式下, 远程虚拟桌面和应用程序实现起来比较简单, 对服 务器上的桌面和应用程序进行 "截图" 以获得图片, 并映射给终端进行 显示。 而在终端, 只需要获得用户对鼠标的操作或者键盘的操作, 然后 将鼠标操作或者键盘操作发送给服务器, 服务器再利用软件模拟鼠标的 操作或者键盘的操作来对桌面和应用程序进行控制, 再将控制后的结果 进行 "截图" 以获得图片, 并映射给终端, 从而达到和在服务器端操作 鼠标和键盘来对桌面和应用程序进行控制一样的效果。
但是, 在这种方式下, 每次用户操作都必须经过两次网络传输, 终 端将用户的操作反馈给服务器, 服务器根据用户的操作进行响应, 服务 器再将响应的结果返回给终端进行显示。 而现今的网络传输速度特别是 移动网络传输速度有限, 经过了两次网络传输, 将会导致时延非常大, 例如, 一个字符从输入到显示大概要 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进行操作时, 受 托管方利用在本地的第二组件模型树中的组件对操作进行响应的响应 速度远比通过网络传输进行响应的响应速度快。 而且, 第二组件模型树 的组件和第一组件模型树的组件是一一对应的, 所以, 第二组件模型树 的变更也 4艮容易复制到第一组件模型树上, 故艮容易实现终端 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 Processing Unit, 中央处理单元)。处理器 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 Processing Unit, 中央处理单元)。处理器 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

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

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2015078214A1 true WO2015078214A1 (zh) 2015-06-04

Family

ID=53198314

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (2)

* 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

Citations (6)

* 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 运软网络科技(上海)有限公司 一种在手机上使用桌面应用程序的方法
WO2010145239A1 (zh) * 2009-10-21 2010-12-23 中兴通讯股份有限公司 一种实现移动终端控制的方法及移动终端
CN102033726A (zh) * 2009-09-30 2011-04-27 联想(北京)有限公司 一种显示方法和服务器
CN102387118A (zh) * 2010-08-30 2012-03-21 联想(北京)有限公司 一种数据输出方法及装置
CN103139294A (zh) * 2013-01-30 2013-06-05 深圳市深信服电子科技有限公司 基于应用虚拟化的本地资源映射方法及系统

Family Cites Families (3)

* 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 广东威创视讯科技股份有限公司 桌面共享方法及系统
CN102487380B (zh) * 2010-12-01 2016-09-07 中兴通讯股份有限公司 桌面虚拟化终端托管方法及系统

Patent Citations (6)

* 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 运软网络科技(上海)有限公司 一种在手机上使用桌面应用程序的方法
CN102033726A (zh) * 2009-09-30 2011-04-27 联想(北京)有限公司 一种显示方法和服务器
WO2010145239A1 (zh) * 2009-10-21 2010-12-23 中兴通讯股份有限公司 一种实现移动终端控制的方法及移动终端
CN102387118A (zh) * 2010-08-30 2012-03-21 联想(北京)有限公司 一种数据输出方法及装置
CN103139294A (zh) * 2013-01-30 2013-06-05 深圳市深信服电子科技有限公司 基于应用虚拟化的本地资源映射方法及系统

Also Published As

Publication number Publication date
CN104679494B (zh) 2020-03-31
CN104679494A (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
CN110515576B (zh) 显示控制方法及装置
US11451619B2 (en) App remote control method and related devices
US8060560B2 (en) System and method for pervasive computing
US20190306277A1 (en) Interaction between devices displaying application status information
US10891793B2 (en) Reality to virtual reality portal for dual presence of devices
WO2020181906A1 (zh) 与智能电视交互的方法及装置
WO2021143182A1 (zh) 游戏的处理方法、装置、电子设备及计算机可读存储介质
WO2016086058A1 (en) Point-to-point ad hoc voice communication
EP2250558A1 (en) Buffers for display acceleration
WO2019214072A1 (zh) 一种显示输入法虚拟键盘的方法及终端
WO2015143900A1 (zh) 网络会议中进行数据共享的方法、装置及系统
WO2015176352A1 (zh) 一种基于安卓系统的应用间信息交互方法及装置
WO2023124141A1 (zh) 一种输入法调用方法及相关设备
CN113778583A (zh) 一种云桌面的本地应用的发布方法、装置、设备和介质
US11249771B2 (en) Terminal input invocation
WO2014067258A1 (zh) 一种云业务触发的方法、云服务器和瘦客户机
WO2024061308A1 (zh) 通知处理方法、终端设备、服务端及计算机存储介质
CN104219274A (zh) 使用个人计算机促进访问和与移动设备交互的系统和方法
WO2015078214A1 (zh) 用于实现远程虚拟桌面和应用程序的方法以及设备
JP2023520839A (ja) メッセージ送信方法、メッセージ受信方法、装置、コンピュータデバイス及びコンピュータプログラム
WO2016095449A1 (zh) 一种虚拟桌面的显示方法、终端和存储介质
CN109922100A (zh) 一种信息处理方法、终端及服务器
KR101407939B1 (ko) 터치이벤트 기반의 드로잉 회의 방법, 그리고 터치이벤트 기반의 드로잉 회의 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
CN108632380A (zh) 一种改进的多用户桌面虚拟化和远程桌面连接方法
JP6027235B2 (ja) モバイルデバイスのコミュニケーション方法、装置及びシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14866004

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14866004

Country of ref document: EP

Kind code of ref document: A1