Flexible state sharing and consistency mechanism for interactive applications
First Claim
1. A system for updating replicated state in a distributed collaborative application, comprising:
- a plurality of clients, each client comprising;
the distributed collaborative application comprising one or more distributable components, wherein each component may be executed independently and communicate with other components;
each component including one or more sets of related shared objects which are replicated at collaborating applications; and
a collaborative client middleware, communicatively coupled to the application and to the network, adapted to communicate to and receive updates over the network to the state of a shared object;
conflict detection means for detecting conflicting updates to the shared object; and
conflict resolution means for resolving said conflicts, detachably coupled to the conflict detection means.
1 Assignment
0 Petitions
Accused Products
Abstract
A system, method and computer program storage device providing event and/or state sharing support e.g., for building object-oriented interactive groupware in wide-area distributed environments (such as the Internet). For collaborative applications programmed using events, mechanisms are provided for sharing application-specific events. For example: an event based programming model allows applications to post an event and triggers corresponding ERUs (Event Reaction Unit) in reaction to a received event; preconditions for control activation of ERUs; and event consistency policy objects implement application specified event consistency model. Some policy examples are: a policy in which event order is not guaranteed, but all events are guaranteed to be sent to the ERUs eventually; and a policy that first triggers local ERUs and then posts the event to the server. An out-of-order event is detected using the event notification from the server; and an automatic detection of out-of-order events seen by ERUs in the local workstation in this optimistic event execution model. For applications requiring support for state sharing, an asynchronous model for updating replicated state, which supports atomicity of updates across multiple shared objects is described. Coupled with a flexible marshaling framework, this allows existing application data-structure classes to be easily extended and made shareable. To solve the problem of replica consistency, a novel combination of three mechanisms is used: global locks; detection of incorrect update ordering; and cloning a subset of the shared objects for state re-initialization. To reduce network load due to fine-grained user interaction, a framework for application specified event batching, called Late Event Modification (LEM), enhances the event interface to allow applications to modify the event objects after posting them to the set.
-
Citations
34 Claims
-
1. A system for updating replicated state in a distributed collaborative application, comprising:
-
a plurality of clients, each client comprising; the distributed collaborative application comprising one or more distributable components, wherein each component may be executed independently and communicate with other components;
each component including one or more sets of related shared objects which are replicated at collaborating applications; anda collaborative client middleware, communicatively coupled to the application and to the network, adapted to communicate to and receive updates over the network to the state of a shared object; conflict detection means for detecting conflicting updates to the shared object; and conflict resolution means for resolving said conflicts, detachably coupled to the conflict detection means. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. In a distributed collaborative application wherein one or more distributable components may be executed independently and communicate with other components, each component including one or more sets of replicated shared objects, a method for updating replicated state, comprising the steps of:
-
a client communicating updates to and receiving updates to the state of a shared object; detecting diverging state among the shared object sets; and cloning and reinitializing the state among the shared object sets, in response to said detecting. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for a method for updating replicated state in a distributed collaborative application wherein one or more distributable components may be executed independently and communicate with other components, each component including one or more sets of replicated shared objects, said method comprising the steps of:
-
a client communicating updates to and receiving updates to the state of a shared object; detecting diverging state among the shared object sets; and cloning and reinitializing the state among the shared object sets, in response to said detecting. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34)
-
Specification