CN102209115A - Method for coordinating different users in virtual desktop system - Google Patents

Method for coordinating different users in virtual desktop system Download PDF

Info

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
Application number
CN2011101391418A
Other languages
Chinese (zh)
Inventor
金海�
廖小飞
卢林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN2011101391418A priority Critical patent/CN102209115A/en
Publication of CN102209115A publication Critical patent/CN102209115A/en
Pending legal-status Critical Current

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

Synergistic method in a kind of virtual desktop system between the different user
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:
Figure BDA0000064102030000071
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.
CN2011101391418A 2011-05-26 2011-05-26 Method for coordinating different users in virtual desktop system Pending CN102209115A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
刘昌树: "网格环境下GUI应用程序共享机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 10, 15 October 2006 (2006-10-15) *

Cited By (10)

* Cited by examiner, † Cited by third party
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