CN102209115A - Method for coordinating different users in virtual desktop system - Google Patents
Method for coordinating different users in virtual desktop system Download PDFInfo
- Publication number
- CN102209115A CN102209115A CN2011101391418A CN201110139141A CN102209115A CN 102209115 A CN102209115 A CN 102209115A CN 2011101391418 A CN2011101391418 A CN 2011101391418A CN 201110139141 A CN201110139141 A CN 201110139141A CN 102209115 A CN102209115 A CN 102209115A
- Authority
- CN
- China
- Prior art keywords
- user
- application program
- application
- window
- handle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
The invention aims to provide a method for coordinating different users in a virtual desktop system. The method comprises the following steps: (1) a first user transmits an application program handle needing to the coordinated to a second user; and (2) the second user is connected with an application program window and is coordinated with the first user through the application program window. According to the method, the properties of different operating systems are considered and coordination among different users in a cross-platform virtual desktop system is realized, i.e., coordinating operation among users can be performed with uniform user experience no matter the application of the coordinating operation comes from Windows or Linux. Meanwhile, running state management is performed on an application program, so that the application program window is captured, the coordination granularity is detailed to application instead of a desktop, coordination among different users becomes flexible, and unnecessary data transmission is reduced.
Description
Technical field
The invention belongs to the virtual desktop system application, be specifically related in a kind of virtual desktop system synergizing method between the different user.
Background technology
In virtual field, desktop virtual is the focus of research at present.Simultaneously, desktop virtual also moves towards to use from research just gradually.The typical application scenarios of desktop virtual system is a working environment.In working environment, need sharing application between the different employees, thereby realize collaborative work.In traditional working environment, usually the method that adopts is a collaboration software, as the netmeeting in the Windows system, have the instant communication software of remote assistance function.
In the working environment that has adopted desktop virtual, as above there is a series of problem in method.At first, the just image buffer storage of application window that the user saw in the desktop virtual system, and application itself operates in the virtual machine of far-end.Traditional collaboration software can't capture application window.Secondly, the desktop virtual system is cross-platform often, and also promptly the application of operation may be from various operating systems thereon.Traditional collaboration software is difficult to satisfy this cross-platform requirement.
The core technology of virtual desktop system is the figure host-host protocol.Consider cross-platform requirement, can adopt cross-platform figure host-host protocol usually, as VNC etc.But standard VNC agreement is difficult to satisfy the requirement of application layer desktop virtual.Reason is, standard VNC agreement adopts the method for appointed area to obtain image buffer storage, can only intercept and capture whole desktop, but not the mode of application window, and this makes the user collaborative underaction, and has increased the unnecessary data transmission.
Summary of the invention
The object of the present invention is to provide in a kind of virtual desktop system synergizing method between the different user, the collaborative granularity of this method is to use, and promptly the interoperability between the user is carried out on application window, but not whole desktop.
The invention provides the Synergistic method between the different user in a kind of virtual desktop system, may further comprise the steps:
(1) first user sends to second user and needs collaborative application program handle;
(2) second users connect application window, by this application window and first user collaborative.
Further, described working in coordination with is that remote assistance or application are shared.
Further, second user connects application program by window VNC agreement in the step (2).Described window VNC agreement can be according to application program handle acquiring application window.
Further, first user obtains the application program handle by the following method in the step (1):
(1.1) first users send the startup path of application program to virtual machine;
(1.2) virtual machine activation application program with the application window top set, and sends to first user with the application program handle.
Further, be remote assistance, then also comprise before in step (1) if work in coordination with:
(a) first user sends the remote assistance request of application program to second user;
(b) second user judges whether to accept this remote assistance request, if then send to first user and accept remote assistance message; If not, then send refusal remote assistance message to first user.
Further, if collaborative shared, then also comprise before in step (1) for using:
(i) second user sends the application sharing request of application program to first user;
(ii) first user judges whether to accept this application sharing request, if then send to second user and accept to use shared message; If not, then send refusal and use shared message to second user.
Beneficial effect of the present invention is as follows:
1. method of the present invention is taken into account the characteristic of different operating system, has realized in the cross-platform virtual desktop system collaborative between the different user.Also promptly, no matter crew-served application comes from Windows or Linux between the user, and co-operation can be carried out with unified user experience.
2. method of the present invention by adding the running status management of application programs, has realized the seizure of application programs window, make collaborative granularity refinement to using, rather than desktop, make collaborative between the different user become flexibly, and reduced the unnecessary data transmission.
Description of drawings
Fig. 1 is the flow chart of remote assistance;
Fig. 2 is for using the flow chart of sharing.
Embodiment
Collaboratively between the different user in the virtual desktop system comprise remote assistance and use and share that wherein, remote assistance is meant that the other side of side request offers help, and uses the shared shared application program of using between the different user that is meant.
Synergizing method between the different user in the virtual desktop system of the present invention, by adding the running status management of application programs, realized the seizure of application programs window, made collaborative granularity refine to application, thereby made collaborative between the different user become more flexible from desktop.
The running status management comprises whether application program is moved, and the information such as sign of application window.The present invention adopts one of numerical value unique identification application program started window, and this numerical value is that nybble is long at least.In Windows, represent the window handle of this application program, in Linux, represent the window ID of this application program.For for simplicity, claim that this unique identification is a handle.The present invention is based on handle, application programs is carried out the running status management.The present invention revises the VNC agreement, obtain the information such as position, size of application window according to the application window handle, picture size and position that the VNC agreement is intercepted and captured are set thus, make server end to intercept and capture application window according to window handle, rather than intercept and capture whole desktop, for for simplicity, claim that this amended agreement is a window VNC agreement.
Virtual desktop system connects the process of application program, carries out when restoration scenario and startup scene respectively.When starting scene, client is to the startup path of virtual machine transmission application program, and the virtual machine activation application program sends to client with the application window handle.When restoration scenario, be responsible for coordinating the central server of whole system applied logic, from database, read the relevant information of application program, and be sent to client, wherein comprise corresponding window handle.
The process of a certain application program in the client terminal start-up virtual machine (promptly starting scene) specifically comprises the steps:
(1) sends the startup path of application program to virtual machine;
(2) after virtual machine is received and started the path, start application program, then, window handle and window size are sent to client this window top set;
Concretely, in the Windows system, the overall situation hook employing API HHOOK WINAPI SetWindowsHookEx of system (_ _ in int idHook, _ _ in HOOKPROC lpfn, _ _ inHINSTANCE hMod, _ _ in DWORD dwThreadId) hook is installed, idHook is used to specify the hook type, and lpfn is used to specify call back function.Here idHook is that WH_SHELL promptly hooks message such as application program establishment.Lpfn is HookWMShell, and is self-defined in the apps server, is used to handle the processing function of WH_SHELL message.If be hooked to HSHELL_WINDOWCREATED message in this function, promptly the message created of application program is then utilized the PostThreadMessage system call, this message is sent to handle in the processing function that application program started.If be hooked to HSHELL_WINDOWDESTROYED, and application program destroys message, then utilizes the PostThreadMessage system call, this message sent to handle in the processing function that application program started.
In apps server, a thread ExtraController is arranged specially, be specifically designed to and handle application program establishment and the destruction message that hook is sent.In this thread, use the GetMessage system call, constantly in the message queue of invokes thread, obtain a message and it is put in the structure of appointment.This function can be obtained message of getting in touch with specified window and the Thread Messages of being sent by PostThreadMesssge.If type of message is a window creation, then in this message structure, gets access to the handle of creating application program, and it is left among the runAppList.If this message is window message, then by handle, this application program of deletion in runAppList.
If start the application program success, then operating system can be called the SetWindowsHookEx function that pre-sets automatically, and the HSHELL_WINDOWCREATED message that is hooked to is sent in the ExtraController thread.In the message circulation of ExtraController thread, use the GetMessage system call to detect HSHELL_WINDOWCREATED message.Then, this message is analyzed,,, added among the runAppList as application name, handle etc. with the application related information that newly starts.Then, application server utilizes window handle to obtain the window size of application program, with the window top set, and notifies client application to start successfully, and window size.
In linux system, owing to there is not Hook Mechanism among the Windows, can't obtains window asynchronously and whether start and obtain window handle.Therefore in Linux, adopt and wait for application program launching synchronously, and obtain the strategy of window handle.In Linux, in the X Window system, use the XQueryTree function, can inquire all windows in the screen, and handle.Application server when the virtual machine backstage, receive the path of application program launching after, at first obtain the handle of current window, and be stored in the oldHandleList chained list, start application program according to request path.Then every current window of inquiry in 1 second and handle thereof, and be stored among the curHandleList, relatively whether curHandleList and oldHandleList have new handle to produce to check, if have new handle to produce then show it is the window that started just now, with the application related information that newly starts, as application name, handle etc., add among the runAppList.Then, application server utilizes window handle to obtain the window size of application program, with the window top set, and notifies client application to start successfully, and window size.If do not have new window to produce then continue to wait for, up to the threshold value that reaches start-up time, return the application program launching mistake, the notice client application starts failure, and connects the application program failure by the Client-Prompt user.
(3) client connects application window by window VNC agreement.
Connect the process of application window (restoration scenario) during client known applications window handle, specifically comprise the steps:
(1) client sends the application window handle to virtual machine;
(2) virtual machine judges that whether handle that client sends is application program started window handle, if, then with this window top set, and the notice client application starts success and window size, and client connects application window by window VNC agreement; If not, then notify client window not start, enter the startup scene;
Concretely, in order to manage application program started, and the checking user asks the legitimacy of handle, safeguarded an application program operation tabulation runAppList on the server of virtual machine.When starting an application program, in runAppList, add the corresponding application window information, when finishing an application program, then in runAppList, delete the corresponding application window information.This application program operation tabulation is promptly preserved and maintenance applications window handle chained list.
If the handle that client sends is present in the chained list, then obtain the window size of application program, with the window top set, and notify client application to start successfully, and window size.In the Windows system, the function that obtains the window size of application program is GetWindowRect, with the window top set and be provided with the size function be SetWindowPos.In linux system, the function that obtains the window size of application program is XGetGeometry, with the window top set and be provided with the size function be XMoveResize Window.
If the handle that client sends is not present in the chained list, the message that does not start to the client send window then, client enters the startup scene.
Transmission message between client and the virtual machine, between client and the client with receive message and realize by Transmission Control Protocol.
Synergistic method of the present invention send the application window handle that needs to work in coordination with to second user before, can also send the request that whether accept to work in coordination with to second user earlier, and whether second user can select to accept to work in coordination with as required.
Remote assistance is one of collaborative function between the different user in the virtual desktop system, realize based on the running status management of using, its flow process as shown in Figure 1, concrete steps are as follows:
(1) user A sends the remote assistance request package to user B, wherein comprises the application name that needs remote assistance.
(2) user B receives after the remote assistance request package, judges whether to accept remote assistance; If not, then send the message that refusal is assisted to user A, whole process finishes, and does not carry out remote assistance; If then user B sends the message of accepting assistance to user A.
(3) user A sends the application program handle that needs remote assistance to user B.
(4) user B receives after the application program handle, is connected to this application window by window VNC agreement.
Use sharing is collaborative another one function between the different user in the virtual desktop system, realize based on the running status management of using equally, its flow process as shown in Figure 2, concrete steps are as follows:
(1) user A sends to user B and uses the sharing request bag, wherein comprises the application name that needs are shared.
(2) user B receives and uses after the sharing request bag, judges whether to accept to use sharing request; If do not accept, then send the message that refusal is shared to user A, whole process finishes, and does not carry out remote assistance; If receive, then continue.
(3) user B sends the application program handle of sharing to user A.
(4) user A receives after the application program handle, is connected to this application window by window VNC agreement.
Among the prototype system ClouDesk of the sub-problem four in " virtual basic theory of computing system and method research " 973 planning items " research of virtual computing system generalization running environment ", as above method is by Project Realization, and repeatedly test.
Following table is depicted as the hardware environment of system testing:
Experiment showed, that as above method can realize working in coordination with between the different user in the virtual desktop system, and have cross-platform, the virtualized characteristics of application layer.
The present invention not only is confined to above-mentioned embodiment; persons skilled in the art are according to content disclosed by the invention; can adopt other multiple embodiment to implement the present invention; therefore; every employing project organization of the present invention and thinking; do some simple designs that change or change, all fall into the scope of protection of the invention.
Claims (7)
1. the Synergistic method between the different user in the virtual desktop system may further comprise the steps:
(1) first user sends to second user and needs collaborative application program handle;
(2) second users connect application window, by this application window and first user collaborative.
2. Synergistic method according to claim 1 is characterized in that, described working in coordination with is that remote assistance or application are shared.
3. Synergistic method according to claim 1 is characterized in that, second user connects application program by window VNC agreement in the step (2).
4. Synergistic method according to claim 3 is characterized in that, described window VNC agreement can be according to application program handle acquiring application window.
5. Synergistic method according to claim 1 is characterized in that, first user obtains the application program handle by the following method in the step (1):
(1.1) first users send the startup path of application program to virtual machine;
(1.2) virtual machine activation application program with the application window top set, and sends to first user with the application program handle.
6. Synergistic method according to claim 1 is characterized in that, is remote assistance if work in coordination with, and then also comprises before in step (1):
(a) first user sends the remote assistance request of application program to second user;
(b) second user judges whether to accept this remote assistance request, if then send to first user and accept remote assistance message; If not, then send refusal remote assistance message to first user.
7. Synergistic method according to claim 1 is characterized in that, if collaborative shared for using, then also comprises before in step (1):
(i) second user sends the application sharing request of application program to first user;
(ii) first user judges whether to accept this application sharing request, if then send to second user and accept to use shared message; If not, then send refusal and use shared message to second user.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101391418A CN102209115A (en) | 2011-05-26 | 2011-05-26 | Method for coordinating different users in virtual desktop system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101391418A CN102209115A (en) | 2011-05-26 | 2011-05-26 | Method for coordinating different users in virtual desktop system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102209115A true CN102209115A (en) | 2011-10-05 |
Family
ID=44697774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101391418A Pending CN102209115A (en) | 2011-05-26 | 2011-05-26 | Method for coordinating different users in virtual desktop system |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102209115A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497334A (en) * | 2011-12-18 | 2012-06-13 | 上海量明科技发展有限公司 | Method for triggering remote operation through instant messenger, client and system |
CN102665001A (en) * | 2012-04-18 | 2012-09-12 | 上海量明科技发展有限公司 | Terminal-crossing cursor control method and system through instant messaging tool |
CN103049262A (en) * | 2012-12-12 | 2013-04-17 | 广州尚融网络科技有限公司 | Window restoring method based on remote frame buffering |
CN103793417A (en) * | 2012-10-31 | 2014-05-14 | 鸿富锦精密工业(深圳)有限公司 | App collaboration system and method |
CN107197047A (en) * | 2017-07-21 | 2017-09-22 | 深圳市智网云联科技有限公司 | A kind of system and method that Windows applications are pushed to Android |
CN108933965A (en) * | 2017-05-26 | 2018-12-04 | 腾讯科技(深圳)有限公司 | screen content sharing method, device and storage medium |
CN108989073A (en) * | 2017-06-05 | 2018-12-11 | 中兴通讯股份有限公司 | A kind of pair of cloud desktop carries out the method and device of remote assistance control |
CN111861383A (en) * | 2020-06-29 | 2020-10-30 | 国网河北省电力有限公司景县供电分公司 | On-line home office safety platform |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101484886A (en) * | 2005-12-29 | 2009-07-15 | 网讯公司 | Methods and apparatuses for dynamically sharing a portion of a display for application based screen sampling |
US20100313199A1 (en) * | 2007-08-30 | 2010-12-09 | Ying Chen | Method, Server and System for Converging Desktop Application and Web Application |
CN102075571A (en) * | 2010-12-31 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | Method, equipment and system for executing application program |
-
2011
- 2011-05-26 CN CN2011101391418A patent/CN102209115A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101484886A (en) * | 2005-12-29 | 2009-07-15 | 网讯公司 | Methods and apparatuses for dynamically sharing a portion of a display for application based screen sampling |
US20100313199A1 (en) * | 2007-08-30 | 2010-12-09 | Ying Chen | Method, Server and System for Converging Desktop Application and Web Application |
CN102075571A (en) * | 2010-12-31 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | Method, equipment and system for executing application program |
Non-Patent Citations (1)
Title |
---|
刘昌树: "网格环境下GUI应用程序共享机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 10, 15 October 2006 (2006-10-15) * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497334A (en) * | 2011-12-18 | 2012-06-13 | 上海量明科技发展有限公司 | Method for triggering remote operation through instant messenger, client and system |
CN102497334B (en) * | 2011-12-18 | 2016-08-10 | 上海量明科技发展有限公司 | Remote-operated method, client and system is triggered by JICQ |
CN102665001A (en) * | 2012-04-18 | 2012-09-12 | 上海量明科技发展有限公司 | Terminal-crossing cursor control method and system through instant messaging tool |
CN103793417A (en) * | 2012-10-31 | 2014-05-14 | 鸿富锦精密工业(深圳)有限公司 | App collaboration system and method |
CN103049262A (en) * | 2012-12-12 | 2013-04-17 | 广州尚融网络科技有限公司 | Window restoring method based on remote frame buffering |
CN103049262B (en) * | 2012-12-12 | 2016-02-03 | 广州尚融网络科技有限公司 | Based on the window method of reducing of remote frame buffer memory |
CN108933965A (en) * | 2017-05-26 | 2018-12-04 | 腾讯科技(深圳)有限公司 | screen content sharing method, device and storage medium |
CN108989073A (en) * | 2017-06-05 | 2018-12-11 | 中兴通讯股份有限公司 | A kind of pair of cloud desktop carries out the method and device of remote assistance control |
CN107197047A (en) * | 2017-07-21 | 2017-09-22 | 深圳市智网云联科技有限公司 | A kind of system and method that Windows applications are pushed to Android |
CN111861383A (en) * | 2020-06-29 | 2020-10-30 | 国网河北省电力有限公司景县供电分公司 | On-line home office safety platform |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102209115A (en) | Method for coordinating different users in virtual desktop system | |
CN110166432B (en) | Method for accessing intranet target service and method for providing intranet target service | |
CN109446170B (en) | Configuration file data synchronization method and device | |
US8689243B2 (en) | Web service API for unified contact store | |
CN112350861B (en) | Log acquisition method, device, computer equipment and storage medium | |
WO2019047441A1 (en) | Communication optimization method and system | |
CN103401883A (en) | Single sign-on method and system | |
CN104899274A (en) | High-efficiency remote in-memory database access method | |
CN112291298A (en) | Data transmission method and device for heterogeneous system, computer equipment and storage medium | |
US20200059498A1 (en) | Minimizing productivity loss in a collaborative sharing environment | |
CN102420805A (en) | Method, system and device for communication by virtue of socket connection | |
CN102999317B (en) | Towards the elasticity multi-process service processing method of many tenants | |
WO2009143105A2 (en) | Method and apparatus for providing a synchronous interface for an asynchronous service | |
CN113393213A (en) | Method for creating group, computer equipment and storage medium | |
CN108632354A (en) | Physical machine receives pipe method, apparatus and cloud desktop management platform | |
CN104202357A (en) | Content sharing method and content sharing system | |
CN113641320B (en) | Method and device for sharing screen of Linux compatible with Android | |
CN110661851A (en) | Data exchange method and device | |
CN108255547B (en) | Application program control method and device | |
CN114390239B (en) | Communication method, device, system, electronic device, and storage medium | |
CN113596197B (en) | Address switching method and device, electronic equipment and storage medium | |
US9825876B2 (en) | System and method for virtual parallel resource management | |
CN102571620B (en) | Method and device for carrying out webpage communication, and webpage server | |
CN112306337B (en) | Conference same screen system, method and device, computer equipment and storage medium | |
CN115484316B (en) | File sharing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111005 |