Collaborative object architecture
First Claim
1. A collaborative object architecture comprising:
- a server system adapted to execute a pod having a plurality of constituent parts; and
a plurality client systems coupled to the server system, the client systems each adapted to execute at least one applet having a plurality of constituent parts, the pod and the applets together comprising a collaborative object, wherein the pod plurality of constituent parts correspond to the applet plurality of constituent parts such that a change to one of the applet plurality of constituent parts causes a change to a corresponding constituent part in the pod;
wherein the applets receive input, generate one or more messages to the pod in response to the input, and apply the input locally without waiting for a response from the pod, and further wherein the pod is adapted to receive message packets from multiple applets, determine an order in which to process the received message packets and communicate a set of data resulting from processing to the multiple applets such that the multiple applets receive the set of data from messages originating from the pod.
4 Assignments
0 Petitions
Accused Products
Abstract
A collaborative object architecture with one or more of the following technologies: 1) lightweight asynchronous messaging; 2) collaborative objects; 3) optimistic concurrency control; and 4) transparent object serialization. Lightweight asynchronous messaging allows highly responsive interactivity and natural interactions with minimal network loads. Collaborative objects allow ubiquitous sharing and provides each user with the same copy of the shared object. Optimistic concurrency control allows full-duplex group editing and natural interactions. Transparent object serialization provides real world persistence and support for asynchronous changes. Thus, combination of these technologies provides a collaborative object architecture with several advantages over the prior art.
-
Citations
13 Claims
-
1. A collaborative object architecture comprising:
-
a server system adapted to execute a pod having a plurality of constituent parts; and
a plurality client systems coupled to the server system, the client systems each adapted to execute at least one applet having a plurality of constituent parts, the pod and the applets together comprising a collaborative object, wherein the pod plurality of constituent parts correspond to the applet plurality of constituent parts such that a change to one of the applet plurality of constituent parts causes a change to a corresponding constituent part in the pod;
wherein the applets receive input, generate one or more messages to the pod in response to the input, and apply the input locally without waiting for a response from the pod, and further wherein the pod is adapted to receive message packets from multiple applets, determine an order in which to process the received message packets and communicate a set of data resulting from processing to the multiple applets such that the multiple applets receive the set of data from messages originating from the pod. - View Dependent Claims (2, 3, 4)
-
-
5. A method comprising:
-
executing a pod having a first plurality of constituent parts on a server system coupled to a plurality of clients systems;
a first client system adapted to execute a first applet having a second plurality of constituent parts; and
a second client system adapted to execute a second applet having a third plurality of constituent parts;
receiving, at the pod, a first message from one of the second plurality of constituent parts indicating a change to data controlled by the first plurality of constituent parts;
receiving, at the pod, a second message from one of the third plurality of constituent parts indicating a change to data controlled by the first plurality of constituent parts;
processing at the pod, the plurality of messages by;
determining an order in which to process the received messages; and
communicating a set of data resulting from the processing to the second and third plurality of constituent parts, wherein the first and second applets continue execution prior to processing the messages. - View Dependent Claims (6, 7)
-
-
8. A computer readable medium having stored thereon sequences of instructions which when executed cause one or more electronic systems to:
-
execute a pod having a first plurality of constituent parts on a server system coupled to a plurality of clients systems;
a first client system adapted to execute a first applet having a second plurality of constituent parts; and
a second client system adapted to execute a second applet having a third plurality of constituent parts;
receive, at the pod, a first message from at least one of the second plurality of constituent parts indicating a change to data controlled by the first plurality of constituent parts;
receive, at the pod, a second message from at least one of the second plurality of constituent parts indicating a change to data controlled by the first plurality of constituent parts;
process, at the pod, the plurality of messages by;
determining an order in which to process the received messages; and
communicating a set of data resulting from the processing to first and second applets, wherein the first and second applets continue execution prior to processing the messages. - View Dependent Claims (9, 10)
-
-
11. A method comprising:
-
executing one of a plurality of applets having a first plurality of constituent parts;
receiving an input that indicates a change to data controlled by one of the first plurality of constituent parts within the applet;
applying the input to the data controlled by one of the first plurality of constituent parts within the applet;
generating a message indicating a change to the data;
sending the message to a pod having a constituent part corresponding to a constituent part of the first plurality of constituent parts within the applet, wherein the pod determines an order in which to process all the received messages; and
communicates the change to the other applets; and
continuing to execute the applet without waiting for a response from the pod. - View Dependent Claims (12, 13)
receiving an update from the pod indicating changes to the data;
transforming the update, if necessary, based on the state of the pod when the update is generated; and
modifying the data based on the update.
-
Specification