Sharing remote sessions of a user interface and/or graphics of a computer
First Claim
Patent Images
1. A method in a computing system for sharing a currently allocated session that is allocated to a first client device, comprising:
- receiving, from a browser operating on a second client device, a hypertext transfer protocol (HTTP) request to remote a graphical user interface (GUI) of an application or a desktop running on a server to the second client device using HTTP requests and responses;
determining connection characteristics for the second client device;
determining whether to share the currently allocated session with the second client device based on the connection characteristics, the currently allocated session being used to remote the GUI of the application or the desktop running on the server to the first client device, wherein the second client device is distinct from the first client device, wherein the GUI is defined in a first frame buffer on the server and is associated with first state information;
associating the second client device with the currently allocated session when a determination is made to share the currently allocated session;
in response to the determination to share the currently allocated session, pausing all clients that share the currently allocated session and transmitting to said all clients a new key frame to align said all clients that share the currently allocated session, wherein transmitting the new key frame includes sending to the second client device over HTTP, the new key frame that contains an entire image of the first frame buffer on the server; and
sending to the second client device over HTTP, a sequence of updates to the GUI of the application or the desktop running on the server contained in the first frame buffer and using the first state information associated with the currently allocated session.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and techniques for sharing a remoted user interface are described. Example embodiments provide a Remote Session Sharing Protocol (“RSSP”) for sharing a remoted user interface and/or graphics of a same computer system operating system or application. Use of the RSSP enables server computing systems to optimize the utilization of frame buffers and state information when multiple clients connect to the same remote session (e.g., connect to the same user interface of an application or operating system) at substantially the same time.
102 Citations
19 Claims
-
1. A method in a computing system for sharing a currently allocated session that is allocated to a first client device, comprising:
-
receiving, from a browser operating on a second client device, a hypertext transfer protocol (HTTP) request to remote a graphical user interface (GUI) of an application or a desktop running on a server to the second client device using HTTP requests and responses; determining connection characteristics for the second client device; determining whether to share the currently allocated session with the second client device based on the connection characteristics, the currently allocated session being used to remote the GUI of the application or the desktop running on the server to the first client device, wherein the second client device is distinct from the first client device, wherein the GUI is defined in a first frame buffer on the server and is associated with first state information; associating the second client device with the currently allocated session when a determination is made to share the currently allocated session; in response to the determination to share the currently allocated session, pausing all clients that share the currently allocated session and transmitting to said all clients a new key frame to align said all clients that share the currently allocated session, wherein transmitting the new key frame includes sending to the second client device over HTTP, the new key frame that contains an entire image of the first frame buffer on the server; and sending to the second client device over HTTP, a sequence of updates to the GUI of the application or the desktop running on the server contained in the first frame buffer and using the first state information associated with the currently allocated session. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable medium having contents that, when executed by one or more processors, enable a computing device to share a currently allocated session that is allocated to a first client device by performing a method comprising:
-
receiving, from a browser operating on a second client device, a hypertext transfer protocol (HTTP) request to remote a graphical user interface (GUI) of an application or a desktop running on a server to the second client device using HTTP requests and responses; determining connection characteristics for the second client device; determining whether to share the currently allocated session with the second client device based on the connection characteristics, the currently allocated session being used to remote the GUI of the application or the desktop running on the server to the first client device, wherein the second client device is distinct from the first client device, wherein the GUI is defined in a first frame buffer on the server and is associated with first state information; associating the second client device with the currently allocated session when a determination is made to share the currently allocated session; in response to the determination to share the currently allocated session, pausing all clients that share the currently allocated session and transmitting to said all clients a new key frame to align said all clients that share the currently allocated session, wherein transmitting the new key frame includes sending to the second client device over HTTP, the new key frame that contains an entire image of the first frame buffer on the server; and sending to the second client device over HTTP, a sequence of updates to the GUI of the application or the desktop running on the server contained in the first frame buffer and using the first state information associated with the currently allocated session. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computing system for sharing a currently allocated session that is allocated to a first client device comprising:
-
a memory; a module stored on the memory that is configured, when executed, to; receive, from a browser operating on a second client device, a hypertext transfer protocol (HTTP) request to remote a graphical user interface (GUI) of an application or a desktop running on a server to the second client device using HTTP requests and responses; determine connection characteristics for the second client device; determine whether to share the currently allocated session with the second client device based on the connection characteristics, the currently allocated session being used to remote the GUI of the application or the desktop running on the server to the first client device, wherein the second client device is distinct from the first client device, wherein the GUI is defined in a first frame buffer on the server and is associated with first state information; associate the second client device with the currently allocated session when a determination is made to share the currently allocated session; in response to the determination to share the currently allocated session, pause all clients that share the currently allocated session and transmit to said all clients a new key frame to align said all clients that share the currently allocated session, wherein transmitting the new key frame includes sending to the second client device over HTTP, the new key frame that contains an entire image of the first frame buffer on the server; and send to the second client device over HTTP, a sequence of updates to the GUI of the application or the desktop running on the server contained in the first frame buffer and using the first state information associated with the currently allocated session. - View Dependent Claims (16, 17, 18, 19)
-
Specification