US 11,700,137 B2
Collaborative access to virtual desktops
Adam Gregory Gross, Dexter, MI (US); Sean Samenfeld-Specht, Palo Alto, CA (US); Timotius Tjahjadi, Palo Alto, CA (US); Sandro Moiron, Palo Alto, CA (US); Ming Zhang, Palo Alto, CA (US); and Haiou Jiang, Palo Alto, CA (US)
Assigned to VMware, Inc., Palo Alto, CA (US)
Filed by VMware, Inc., Palo Alto, CA (US)
Filed on Jan. 19, 2018, as Appl. No. 15/875,855.
Claims priority of provisional application 62/550,575, filed on Aug. 26, 2017.
Prior Publication US 2019/0068390 A1, Feb. 28, 2019
Int. Cl. H04L 12/18 (2006.01); G06F 9/451 (2018.01); H04L 65/4038 (2022.01); H04L 65/80 (2022.01); H04L 65/70 (2022.01)
CPC H04L 12/1827 (2013.01) [G06F 9/452 (2018.02); H04L 12/1818 (2013.01); H04L 12/1822 (2013.01); H04L 65/4038 (2013.01); H04L 65/70 (2022.05); H04L 65/80 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for collaboratively accessing a virtual desktop produced by a virtual machine hosted on a server by two or more users, comprising:
establishing a remote desktop session for an owner of the virtual desktop by executing the virtual desktop on the server and connecting a virtual desktop client of the owner executing on a first remote client device to a virtual desktop agent executing in the virtual desktop, the virtual desktop client of the owner being configured to, using a remote desktop protocol, receive and display a GUI streamed to the virtual desktop client from the virtual desktop agent and to transmit user inputs produced on the virtual desktop client of the owner to the virtual desktop agent using the remote desktop protocol for being injected into and effectuated in the virtual desktop;
receiving a request to initiate a collaborative session on the virtual desktop with at least one specified collaborator;
conveying an invitation message to join the remote desktop session to the at least one collaborator, the invitation message including a link to the virtual desktop, the link being configured to route a virtual desktop client of the at least one collaborator that is executed on a client device of the at least one collaborator to the virtual desktop for connecting the virtual desktop client of the at least one collaborator to the virtual desktop;
in response to the invitation message, receiving a request from the virtual desktop client of the at least one collaborator to join the virtual desktop, the virtual desktop client of the at least one collaborator being configured to, using the remote desktop protocol, receive and display the GUI streamed to the virtual desktop client from the virtual desktop agent and to transmit user inputs produced on the virtual desktop client of the at least one collaborator to the virtual desktop agent using the remote desktop protocol for being injected into and effectuated in the virtual desktop;
joining the at least one collaborator to the remote desktop session by connecting the virtual desktop client of the at least one collaborator to the virtual desktop agent;
wherein, during the remote desktop session:
the virtual desktop agent streams the GUI of the virtual desktop to the virtual desktop client of the owner and to the virtual desktop client of the at least one collaborator;
one of the virtual desktop clients of the owner or the at least one collaborator is designated as having input control; and
the virtual desktop agent receives inputs via the remote desktop protocol from each virtual desktop client connected to the virtual desktop of the owner and the at least one collaborator and determines which virtual desktop client's received inputs to permit into the virtual desktop based on which virtual desktop client has been designated as having input control while ignoring received inputs from remaining virtual desktop clients connected to the agent.