Collaborative and non-collaborative workspace application container with application persistence
First Claim
1. A computer-implemented method comprising:
- receiving, from a workspace server, at a client system associated with a workspace participant, a workspace definition comprising a plurality of application identifiers, application state information, an identifier for the workspace participant, and a role associated with the workspace participant, wherein the workspace definition is sent from the workspace server to the client system via a communication network;
providing, at the client system, an application container configured to (a) instantiate the workspace definition, (b) provide an application execution environment that includes one or more virtual machines, and (c) provide a graphical user interface;
retrieving, by the application container provided at the client system, from one or more application provider servers that are external to both the client system and the workspace server, a plurality of standalone applications identified by the application identifiers;
executing the standalone applications within the application container such that the standalone applications are concurrently displayed in the graphical user interface, wherein executing the concurrently displayed standalone applications within the application container further comprises executing a particular standalone application using a particular virtual machine that corresponds to a particular programming language in which the particular standalone application is written, and wherein executing the particular standalone application does not require communication with any of the application provider servers;
for each of the standalone applications, enabling a corresponding set of application features based on the role that is included in the workspace definition and that is associated with the workspace participant;
arranging, in the graphical user interface, respective visual representations of the concurrently displayed standalone applications according to the application state information;
providing, to the standalone applications executing within the application container, services for intra-workspace communication between the concurrently displayed standalone applications;
updating the workspace definition based on input received at the client system, wherein said updating results in a modified workspace definition;
determining that the role has authorization to lock the modified workspace definition such that it cannot be further modified by a subset of workspace participants after it has been sent to the workspace server; and
sending the modified workspace definition from the client system to the workspace server via the communication network.
2 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure includes, among other things, systems, methods and program products for collaborative and non-collaborative work spaces, each of which can be defined by a workspace definition that includes a workspace identifier referring to a workspace where an application container having a user interface can instantiate the workspace based on the workspace definition, and a collection of application identifiers each referring to an application provider for an application. Each application can be configured to execute in the application container for the instantiated workspace, and each application can have a visual representation in the user interface. The workspace definition can also include one or more participants, where each participant refers to one or more workspace participants.
73 Citations
19 Claims
-
1. A computer-implemented method comprising:
-
receiving, from a workspace server, at a client system associated with a workspace participant, a workspace definition comprising a plurality of application identifiers, application state information, an identifier for the workspace participant, and a role associated with the workspace participant, wherein the workspace definition is sent from the workspace server to the client system via a communication network; providing, at the client system, an application container configured to (a) instantiate the workspace definition, (b) provide an application execution environment that includes one or more virtual machines, and (c) provide a graphical user interface; retrieving, by the application container provided at the client system, from one or more application provider servers that are external to both the client system and the workspace server, a plurality of standalone applications identified by the application identifiers; executing the standalone applications within the application container such that the standalone applications are concurrently displayed in the graphical user interface, wherein executing the concurrently displayed standalone applications within the application container further comprises executing a particular standalone application using a particular virtual machine that corresponds to a particular programming language in which the particular standalone application is written, and wherein executing the particular standalone application does not require communication with any of the application provider servers; for each of the standalone applications, enabling a corresponding set of application features based on the role that is included in the workspace definition and that is associated with the workspace participant; arranging, in the graphical user interface, respective visual representations of the concurrently displayed standalone applications according to the application state information; providing, to the standalone applications executing within the application container, services for intra-workspace communication between the concurrently displayed standalone applications; updating the workspace definition based on input received at the client system, wherein said updating results in a modified workspace definition; determining that the role has authorization to lock the modified workspace definition such that it cannot be further modified by a subset of workspace participants after it has been sent to the workspace server; and sending the modified workspace definition from the client system to the workspace server via the communication network. - View Dependent Claims (2, 3, 4, 5, 18)
-
-
6. A non-transitory computer readable medium storing program code for causing a data processing apparatus to perform operations comprising:
-
receiving, from a workspace server, at a client system associated with a workspace participant, a workspace definition comprising a plurality of application identifiers, application state information, an identifier for the workspace participant, and a role of the workspace participant, wherein the workspace definition is received via a communication network that connects the workspace server and the client system; providing, at the client system, an application container configured to instantiate the workspace definition, provide an application execution environment that includes one or more virtual machines, and provide a graphical user interface; retrieving, by the application container provided at the client system, from one or more application provider servers that are external to both the client system and the workspace server, a plurality of standalone applications identified by the application identifiers; executing the standalone applications within the application container such that the standalone applications are concurrently displayed in the graphical user interface, wherein executing the concurrently displayed standalone applications within the application container further comprises executing a particular standalone application using a particular virtual machine that corresponds to a particular programming language in which the particular standalone application is written, and wherein executing the particular standalone application does not require communication with any of the application provider servers; for at least one of the standalone applications, enabling a corresponding set of application features based on the role of the workspace participant; arranging, in the graphical user interface, respective visual representations of the concurrently displayed standalone applications according to the application state information; providing, to the standalone applications executing within the application container, services for intra-workspace communication between the concurrently displayed standalone applications; updating the workspace definition based on input received at the client system, wherein said updating results in a modified workspace definition; and sending the modified workspace definition to the workspace server via the communication network. - View Dependent Claims (7, 8, 9, 10, 11, 19)
-
-
12. A client system that is associated with a workspace participant, the client system comprising:
-
a display device; a computer readable medium including a program product; and one or more processors configured to interact with the display device, execute the program product and perform operations comprising; receiving, from a workspace server, at the client system, a workspace definition comprising a plurality of application identifiers, application state information, an identifier for the workspace participant, a workspace public view, a workspace private view, and a role of the workspace participant, wherein the workspace definition is received via a communication network that connects the workspace server and the client system; providing, at the client system, an application container configured to instantiate the workspace definition, provide an application execution environment that includes one or more virtual machines, and display a graphical user interface on the display device; retrieving, by the application container provided at the client system, from one or more application provider servers that are external to both the client system and the workspace server, a plurality of standalone applications identified by the application identifiers; receiving a user selection from the workspace participant that indicates either the workspace public view or the workspace private view as a selected workspace view; executing the standalone applications within the application container such that the standalone applications are concurrently displayed in the graphical user interface according to the selected workspace view, wherein executing the concurrently displayed standalone applications within the application container further comprises executing a particular standalone application using a particular virtual machine that corresponds to a particular programming language in which the particular standalone application is written, and wherein executing the particular standalone application does not require communication with any of the application provider servers; for at least one of the standalone applications, enabling a corresponding set of application features based on the role of the workspace participant; arranging, in the graphical user interface, respective visual representations of the concurrently displayed standalone applications according to the application state information and the selected workspace view; providing, to the standalone applications executing within the application container, services for intra-workspace communication between the concurrently displayed standalone applications; updating the workspace definition based on input received at the client system, wherein said updating results in a modified workspace definition; and sending the modified workspace definition to the workspace server via the communication network with an indication that the modified workspace definition applies to the workspace public view, wherein sending the modified workspace definition to the server with the indication causes the workspace server to propagate the modified workspace definition to one or more collaborating workspace participants via the communication network. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification