System and method for using state replication between application instances to provide a collaborative desktop environment
First Claim
1. A system for enabling a collaborative remote desktop environment, comprising:
- a computing device having a processor;
a first application instance executing on the processor, operating as a host by a first user, that has an application state associated therewith, the application state having application state data adequate to enable a another computing device or application instance to reach a substantially similar application state, and the first application instance converting the application state into a visual output to be displayed on a first information display to the first user;
the first application instance is associated withan application input handler,an application logic component,an application output handler, anda current state component that collects one or more application data or data files that determine the application state associated with the first application instance;
a remote input handler, associated with the computing device and the first application instance, thatreceives an interaction request from a second user working on a remote desktop client, andcommunicates the interaction request to the current state component, which communicates the application data or data files that determine the application state associated with the first application instance to the remote input handler;
in response to the interaction request, a remote output handler associated with the computing device and the first application instance renders the same first information display displayed to the first user on the computing device to the second user on the remote desktop client;
in response to an input to interact with the first information display by the second user at the remote desktop client that is inconsistent with the state data of the first application instance, locally launching a second application instance at the remote desktop client for the second user, wherein the input by the second user that is inconsistent with the state data of the first application instance comprises user interaction with a graphical UI element in the first information display;
wherein the second application instance operating as the remote desktop client on a different computing device that has a second application state associated therewith, wherein the second application instance isassociated with an application launcher thatreceives the application data or data files that determine the application state associated with the first application instance,instantiates the second application instance and adjusts the second application stateso that the second application state is substantially identical to that of the first application state, andprocesses the interaction request locally against the second application state;
the second application instance converting the second application state into a visual output to be displayed on a second information display to the second user; and
wherein the second application instance can be operated by the second user independently from the first application instance operated by the first user, including one or more subsequent interaction requests are processed locally against the second application state.
5 Assignments
0 Petitions
Accused Products
Abstract
Described herein are systems and methods for enabling a collaborative remote desktop environment. The system includes a computing device and a first application instance that has an application state associated therewith. The first application instance includes, or is associated with, a current state component and application data/data files. The system further includes an application launcher that is used to instantiate a second application instance operating either on the same or on a different computing device. The second application instance similarly has an application state associated therewith and is associated with the application launcher. Upon receiving a request from the second user to interact with the first application instance, the application state and the application data/data files are communicated to the application launcher, and the application launcher instantiates the second application instance so that its state is substantially identical to that of the first application instance.
-
Citations
28 Claims
-
1. A system for enabling a collaborative remote desktop environment, comprising:
-
a computing device having a processor; a first application instance executing on the processor, operating as a host by a first user, that has an application state associated therewith, the application state having application state data adequate to enable a another computing device or application instance to reach a substantially similar application state, and the first application instance converting the application state into a visual output to be displayed on a first information display to the first user; the first application instance is associated with an application input handler, an application logic component, an application output handler, and a current state component that collects one or more application data or data files that determine the application state associated with the first application instance; a remote input handler, associated with the computing device and the first application instance, that receives an interaction request from a second user working on a remote desktop client, and communicates the interaction request to the current state component, which communicates the application data or data files that determine the application state associated with the first application instance to the remote input handler; in response to the interaction request, a remote output handler associated with the computing device and the first application instance renders the same first information display displayed to the first user on the computing device to the second user on the remote desktop client; in response to an input to interact with the first information display by the second user at the remote desktop client that is inconsistent with the state data of the first application instance, locally launching a second application instance at the remote desktop client for the second user, wherein the input by the second user that is inconsistent with the state data of the first application instance comprises user interaction with a graphical UI element in the first information display; wherein the second application instance operating as the remote desktop client on a different computing device that has a second application state associated therewith, wherein the second application instance is associated with an application launcher that receives the application data or data files that determine the application state associated with the first application instance, instantiates the second application instance and adjusts the second application state so that the second application state is substantially identical to that of the first application state, and processes the interaction request locally against the second application state; the second application instance converting the second application state into a visual output to be displayed on a second information display to the second user; and wherein the second application instance can be operated by the second user independently from the first application instance operated by the first user, including one or more subsequent interaction requests are processed locally against the second application state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 21, 22, 23)
-
-
11. A method for enabling a collaborative remote desktop environment, comprising the steps of:
-
providing a computing device having a first application instance, operating as a host by a first user, that has an application state associated therewith, the application state having application state data adequate to enable a another computing device or application instance to reach a substantially similar application state, and the first application instance converting the application state into a visual output to be displayed on a first information display to the first user; the first application instance is associated with an application input handler, an application logic component, an application output handler, and a current state component that collects one or more application data or data files that determine the application state associated with the first application instance; receiving an interaction request, from a second user working on a remote desktop client, at a remote input handler associated with the computing device and the first application instance; communicating, by the remote input handler, the interaction request to the current state component, which communicates the application data or data files that determine the application state associated with the first application instance to the remote input handler; in response to the interaction request, a remote output handler associated with the computing device and the first application instance renders the same first information display displayed to the first user on the computing device to the second user on the remote desktop client; in response to an input to interact with the first information display by the second user at the remote desktop client that is inconsistent with the state data of the first application instance, locally launching a second application instance at the remote desktop client for the second user, wherein the input by the second user that is inconsistent with the state data of the first application instance comprises user interaction with a graphical UI element in the first information display; wherein the second application instance has a second application state associated therewith, operating as the remote desktop client on a different computing device, wherein the second application instance is associated with an application launcher; receiving, at the application launcher, the application data or data files that determine the application state associated with the first application instance; and instantiating, the second application instance and adjusting its application state so that the second application state is substantially identical to that of the first application instance, and processing the interaction request locally against the second application state; the second application instance converting the second application state into a visual output to be displayed on a second information display to the second user; and wherein the second application instance can be operated by the second user independently from the first application instance operated by the first user, including one or more subsequent interaction requests are processed locally against the second application state. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 24, 25, 26)
-
-
20. A non-transitory computer readable storage medium storing one or more sequences of instructions for enabling a collaborative remote desktop environment, wherein said instructions, when executed by one or more processors, cause the one or more processors to execute the steps of:
-
providing a computing device having a first application instance, operating as a host by a first user, that has an application state associated therewith, the application state having application state data adequate to enable a another computing device or application instance to reach a substantially similar application state, and the first application instance converting the application state into a visual output to be displayed on a first information display to the first user; the first application instance is associated with an application input handler, an application logic component, an application output handler, and a current state component that collects one or more application data or data files that determine the application state associated with the first application instance; receiving an interaction request, from a second user working on a remote desktop client, at a remote input handler associated with the computing device and the first application instance; communicating, by the remote input handler, the interaction request to the current state component, which communicates the application data or data files that determine the application state associated with the first application instance to the remote input handler; in response to the interaction request, a remote output handler associated with the computing device and the first application instance renders the same first information display displayed to the first user on the computing device to the second user on the remote desktop client; in response to an input to interact with the first information display by the second user at the remote desktop client that is inconsistent with the state data of the first application instance, locally launching a second application instance at the remote desktop client for the second user, wherein the input by the second user that is inconsistent with the state data of the first application instance comprises user interaction with a graphical UI element in the first information display; wherein the second application instance has a second application state associated therewith, operating as the remote desktop client on a different computing device, wherein the second application instance is associated with an application launcher; receiving, at the application launcher, the application data or data files that determine the application state associated with the first application instance; and instantiating the second application instance and adjusting its application state so that the second instance, and processing the interaction request locally against the second application state; the second application instance converting the second application state into a visual output to be displayed on a second information display to the second user; and wherein the second application instance can be operated independently by the second user from the first application instance operated by the first user, including one or more subsequent interaction requests are processed locally against the second application state.
-
-
27. A system for enabling a collaborative remote desktop environment, comprising:
-
a computing device having a processor; a first application instance, operating as a host by a first user, that has an application state associated therewith, the application state having application state data adequate to enable a another computing device or application instance to reach a substantially similar application state, and the first application instance converting the application state into a visual output to be displayed on a first information display to the first user; the first application instance is associated with an application input handler, an application logic component, an application output handler, and a current state component that collects one or more application data or data files that determine the application state associated with the first application instance; a remote input handler, associated with the computing device and the first application instance, that receives an interaction request from a second user working on a remote desktop client, and communicates the interaction request to the current state component, which communicates the application data or data files that determine the application state associated with the first application instance to the remote input handler; in response to the interaction request, a remote output handler associated with the computing device and the first application instance renders the same first information display displayed to the first user on the computing device to the second user on the remote desktop client; in response to an input to interact with the first information display by the second user at the remote desktop client that is inconsistent with the state data of the first application instance, locally launching a second application instance at the remote desktop client for the second user, wherein the input by the second user that is inconsistent with the state data of the first application instance comprises user interaction with a graphical UI element in the first information display; wherein the second application instance has a second application state associated therewith, operating as the remote desktop client on a different computing device, wherein the second application instance is associated with a second application state that is substantially identical to that of the first application state based on the application data or data files that determine the application state associated with the first application instance; the second application instance converting the second application state into a visual output to be displayed on a second information display to the second user; and wherein the second application instance can be operated independently by the second user from the first application instance operated by the first user, including one or more subsequent interaction requests are processed locally against the second application state, and occasionally synchronized with the first application instance, whereupon the synchronization the application state of the first or second application instance is replicated to that of the other application instance.
-
-
28. A system for enabling a collaborative shared desktop environment, comprising:
-
a computing device having a processor; a first application instance executing on the processor, operating as a host by a first user, that has an application state associated therewith, the application state having application state data adequate to enable a another computing device or application instance to reach a substantially similar application state, and the first application instance converting the application state into a visual output to be displayed on a first information display to the first user; the first application instance is associated with an application input handler, an application logic component, an application output handler, and a current state component that collects one or more application data or data files that determine the application state associated with the first application instance; a remote input handler, associated with the computing device and the first application instance, that receives an interaction request from a second user working on a shared desktop client, and communicates the interaction request to the current state component, which communicates the application data or data files that determine the application state associated with the first application instance to the remote input handler; in response to the interaction request, a remote output handler associated with the computing device and the first application instance renders the same first information display displayed to the first user on the computing device to the second user on the shared desktop client; in response to an input to interact with the first information display by the second user at the shared desktop client that is inconsistent with the state data of the first application instance, locally launching a second application instance at the shared desktop client for the second user, wherein the input by the second user that is inconsistent with the state data of the first application instance comprises user interaction with a graphical UI element in the first information display; wherein the second application instance operating as the shared desktop client on the computing device that has a second application state associated therewith, wherein the second application instance is associated with an application launcher that receives the application data or data files that determine the application state associated with the first application instance, instantiates the second application instance and adjusts the second application state so that the second application state is substantially identical to that of the first application state, and processes the interaction request locally against the second application state; the second application instance converting the second application state into a visual output to be displayed on a second information display to the second user; and wherein the second application instance can be operated by the second user independently from the first application instance operated by the first user, including one or more subsequent interaction requests are processed locally against the second application state.
-
Specification