IP Library Granted Patent US 11,108,868
Granted Patent B2
US 11,108,868 · App. 16/246,525 · Granted Aug 31, 2021

Live switching of collaborative virtual desktop sessions

Inventors: Yunfei San (Beijing, CN); Yunxia Cheng (Beijing, CN); Haiou Jiang (Fremont, CA); Jian Song (Beijing, CN); Dong Wang (Beijing, CN)
Assignee: VMware, Inc.
H04L67/141H04L65/403H04L67/143H04L67/38H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,108,868
App. No.
16/246,525
Granted
Aug 31, 2021
Kind
B2
Abstract

A system is provided for switching a VDI collaborative session where multiple clients are collaboratively accessing a first virtual desktop to a second virtual desktop belonging to one of the collaborators. The owner of the second virtual desktop requests the system to switch the collaboration session to the second virtual desktop. The connection server disconnects the requesting user from the first virtual desktop, connects the user to the second virtual desktop, and invites the other collaborators to join the session on the second virtual desktop. After accepting the invitation, the collaborators are joined to the second virtual desktop and collaboration resumes on the second virtual desktop.

Claims (58)

1. A method, comprising:

establishing a first collaborative virtual desktop session for a plurality of client devices on a first virtual desktop executing on a server by, for each client device in the plurality of client devices:

connecting via a connection server a virtual desktop client executing on the client device to a first virtual desktop agent of the first virtual desktop and establishing a first remote desktop protocol session between the virtual desktop client and the first virtual desktop, wherein the graphical user interface (GUI) of the first virtual desktop is streamed to the virtual desktop client via the first remote desktop protocol session, and wherein user inputs into the first virtual desktop produced on the virtual desktop client are conveyed by the virtual desktop client to the first virtual desktop agent via the first remote desktop protocol session;

receiving a request at the connection server to switch the collaborative session from the first virtual desktop to a second virtual desktop, the second virtual desktop belonging to a user of a particular client device in the plurality of client devices;

in response to the request, establishing a second collaborative virtual desktop session on the second virtual desktop and switching the plurality of client devices from the first collaborative virtual desktop session to the second collaborative virtual desktop session by:

logging the user into the second virtual desktop; and

for each client device in the plurality of client devices, connecting via the connection server the virtual desktop client executing on the client device to a second virtual desktop agent of the second virtual desktop and establishing a second remote desktop protocol session between the virtual desktop client and the second virtual desktop, wherein the graphical user interface (GUI) of the second virtual desktop is streamed to the virtual desktop client via the second remote desktop protocol session, and wherein user inputs into the second virtual desktop produced on the virtual desktop client are conveyed by the virtual desktop client to the second virtual desktop agent via the second remote desktop protocol session.

2. The method of claim 1 , further comprising:

receiving a request at the first virtual desktop agent from the particular client device to switch the collaborative session to the second virtual desktop; and

conveying, by the first virtual desktop agent to the connection server, the request to switch the collaborative session to the second virtual desktop.

3. The method of claim 1 , further comprising:

requesting from the connection server a list of virtual desktops to which the user of the particular client device is entitled; and

receiving, from the particular client device, an election of the second virtual desktop from the list of entitled virtual desktops.

4. The method of claim 1 , wherein:

mouse and keyboard inputs into the first virtual desktop are permitted from a virtual desktop client selectably designated by an owner of the first virtual desktop as a controlling virtual desktop client and not from other virtual desktop clients; and

a request to switch the first virtual desktop to another desktop is only permitted from a controlling virtual desktop client.

5. The method of claim 1 , wherein the connection server stores a mapping of the first collaborative session on the first virtual desktop, the mapping comprising usernames of users of the virtual desktop clients on the plurality of client devices.

6. The method of claim 5 , wherein the connecting via the connection server the virtual desktop client executing on the client device to the second virtual desktop agent of the second virtual desktop for each client device in the plurality of client devices is performed by the connection server based on the mapping.

7. The method of claim 1 , wherein user authentication is required to connect each of the plurality of client devices to the first virtual desktop, and user authentication is not required to connect each of the plurality of client devices to the second virtual desktop.

8. A computing device, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the computing device to perform the steps of:

establishing a first collaborative virtual desktop session for a plurality of client devices on a first virtual desktop executing on a server by, for each client device in the plurality of client devices:

connecting via a connection server a virtual desktop client executing on the client device to a first virtual desktop agent of the first virtual desktop and establishing a first remote desktop protocol session between the virtual desktop client and the first virtual desktop, wherein the graphical user interface (GUI) of the first virtual desktop is streamed to the virtual desktop client via the first remote desktop protocol session, and wherein user inputs into the first virtual desktop produced on the virtual desktop client are conveyed by the virtual desktop client to the first virtual desktop agent via the first remote desktop protocol session;

receiving a request at the connection server to switch the collaborative session from the first virtual desktop to a second virtual desktop, the second virtual desktop belonging to a user of a particular client device in the plurality of client devices;

in response to the request, establishing a second collaborative virtual desktop session on the second virtual desktop and switching the plurality of client devices from the first collaborative virtual desktop session to the second collaborative virtual desktop session by:

logging the user into the second virtual desktop; and

for each client device in the plurality of client devices, connecting via the connection server the virtual desktop client executing on the client device to a second virtual desktop agent of the second virtual desktop and establishing a second remote desktop protocol session between the virtual desktop client and the second virtual desktop, wherein the graphical user interface (GUI) of the second virtual desktop is streamed to the virtual desktop client via the second remote desktop protocol session, and wherein user inputs into the second virtual desktop produced on the virtual desktop client are conveyed by the virtual desktop client to the second virtual desktop agent via the second remote desktop protocol session.

9. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

receiving a request at the first virtual desktop agent from the particular client device to switch the collaborative session to the second virtual desktop; and

conveying, by the first virtual desktop agent to the connection server, the request to switch the collaborative session to the second virtual desktop.

10. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

requesting from the connection server a list of virtual desktops to which the user of the particular client device is entitled; and

receiving, from the particular client device, an election of the second virtual desktop from the list of entitled virtual desktops.

11. The computing device of claim 8 , wherein:

mouse and keyboard inputs into the first virtual desktop are permitted from a virtual desktop client selectably designated by an owner of the first virtual desktop as a controlling virtual desktop client not from other virtual desktop clients; and

a request to switch the first virtual desktop to another desktop is only permitted from a controlling virtual desktop client.

12. The computing device of claim 8 , wherein the connection server stores a mapping of the first collaborative session on the first virtual desktop, the mapping comprising usernames of users of the virtual desktop clients on the plurality of client devices.

13. The computing device of claim 12 , wherein the connecting via the connection server the virtual desktop client executing on the client device to the second virtual desktop agent of the second virtual desktop for each client device in the plurality of client devices is performed by the connection server based on the mapping.

14. The computing device of claim 8 , wherein user authentication is required to connect each of the plurality of client devices to the first virtual desktop, and user authentication is not required to connect each of the plurality of client devices to the second virtual desktop.

15. A non-transitory computer readable storage medium comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:

establishing a first collaborative virtual desktop session for a plurality of client devices on a first virtual desktop executing on a server by, for each client device in the plurality of client devices:

connecting via a connection server a virtual desktop client executing on the client device to a first virtual desktop agent of the first virtual desktop and establishing a first remote desktop protocol session between the virtual desktop client and the first virtual desktop, wherein the graphical user interface (GUI) of the first virtual desktop is streamed to the virtual desktop client via the first remote desktop protocol session, and wherein user inputs into the first virtual desktop produced on the virtual desktop client are conveyed by the virtual desktop client to the first virtual desktop agent via the first remote desktop protocol session;

receiving a request at the connection server to switch the collaborative session from the first virtual desktop to a second virtual desktop, the second virtual desktop belonging to a user of a particular client device in the plurality of client devices;

in response to the request, establishing a second collaborative virtual desktop session on the second virtual desktop and switching the plurality of client devices from the first collaborative virtual desktop session to the second collaborative virtual desktop session by:

logging the user into the second virtual desktop; and

for each client device in the plurality of client devices, connecting via the connection server the virtual desktop client executing on the client device to a second virtual desktop agent of the second virtual desktop and establishing a second remote desktop protocol session between the virtual desktop client and the second virtual desktop, wherein the graphical user interface (GUI) of the second virtual desktop is streamed to the virtual desktop client via the second remote desktop protocol session, and wherein user inputs into the second virtual desktop produced on the virtual desktop client are conveyed by the virtual desktop client to the second virtual desktop agent via the second remote desktop protocol session.

16. The non-transitory computer readable storage medium of claim 15 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

receiving a request at the first virtual desktop agent from the particular client device to switch the collaborative session to the second virtual desktop; and

conveying, by the first virtual desktop agent to the connection server, the request to switch the collaborative session to the second virtual desktop.

17. The non-transitory computer readable storage medium of claim 15 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

requesting from the connection server a list of virtual desktops to which the user of the particular client device is entitled; and

receiving, from the particular client device, an election of the second virtual desktop from the list of entitled virtual desktops.

18. The non-transitory computer readable storage medium of claim 15 , wherein:

mouse and keyboard inputs into the first virtual desktop are permitted from a virtual desktop client selectably designated by an owner of the first virtual desktop as a controlling virtual desktop client and not from other virtual desktop clients; and

a request to switch the first virtual desktop to another desktop is only permitted from a controlling virtual desktop client.

19. The non-transitory computer readable storage medium of claim 15 , wherein the connection server stores a mapping of the first collaborative session on the first virtual desktop, the mapping comprising usernames of users of the virtual desktop clients on the plurality of client devices.

20. The non-transitory computer readable storage medium of claim 19 , wherein the connecting via the connection server the virtual desktop client executing on the client device to the second virtual desktop agent of the second virtual desktop for each client device in the plurality of client devices is performed by the connection server based on the mapping.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2019
From: JIANG, HAIOU; SAN, YUNFEI; CHENG, YUNXIA; WANG, DONG; SONG, JIAN
To: VMWARE, INC.
Reel/Frame 047979/0589 →
Cited By (2)
US 12,289,308 US 12,495,462