← Back to Patent Explorer
US6058416A Expired / Lapsed US ⏱️ 0.0 years remaining

Flexible state sharing and consistency mechanism for interactive applications

Assignee: International Business Machines Corp
•
Filing: 1998-05-22
•
Granted: 2000-05-02
•
Expires: 2018-05-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Bodhi Mukherjee
  • 👤 Srinivas Prasad Doddapaneni
  • 👤 Sumeer Kumar Bhola

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 09:54
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/542; G06F9/52

Claims Analysis

Total Claims: 37
Claim 1
Independent Claim 115 words
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.
Claim 2
Independent Claim 115 words
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.
Claim 3
Dependent Claim 23 words
The system of claim 1, further comprising update event means for asynchronously and atomically updating one or more of said related shared objects.
Claim 4
Dependent Claim 32 words
The system of claim 1, further comprising add object means for adding an object to a local set replica of said shared objects and communicating an added object state to collaborating applications.
Claim 5
Dependent Claim 13 words
The system of claim 1, further comprising means for instantiating a collaborative team.
Claim 6
Dependent Claim 36 words
The system of claim 4 wherein the system includes a client-server system, further comprising: an optimistic event execution model; and team descriptor logic means for ordering events through the server and dispatching locally generated events immediately.
Claim 7
Dependent Claim 33 words
The system of claim 1, wherein the system is a client-server system, further comprising: a server coupled to the network, the server comprising means for maintaining a collaborative activity for each active collaboration.
Claim 8
Dependent Claim 33 words
The system of claim 6, the server further comprising: team server means for dynamically creating, updating and destroying a collaborative team, wherein each team has a unique name space in a collaborative activity.
Claim 9
Dependent Claim 19 words
The system of claim 6, the server further comprising team policy means for defining and implementing a team behavior.
Claim 10
Dependent Claim 28 words
The system of claim 1, further comprising context-sensitive state marhalling means for propagating state to one or more new or updated shared objects in the shared object sets.
Claim 11
Dependent Claim 20 words
The system of claim 1, further comprising cloning and reinitialization means for correcting diverging state among the shared object sets.
Claim 12
Dependent Claim 27 words
The system of claim 10, further comprising: context-sensitive state marhalling means for marshaling and unmarshaling clones of one or more shared objects in the shared object sets.
Claim 13
Dependent Claim 79 words
The system of claim 10, wherein said cloning and reinitializing means further comprises: clone subsetting means for making a clone of a subset of objects in the set and preserving pointers from inside the original subsets to objects outside the cloned subset; means for mapping references between objects inside the original subset into the cloned subset; means for exporting the cloned subset to other clients; and means for reinitializing the subset of objects based one of the cloned subsets.
Claim 14
Dependent Claim 29 words
The system of claim 1, wherein the events are the units of communication in the collaborative client, and each event has a name, a type, data, and a source.
Claim 15
Dependent Claim 35 words
The system of claim 13, wherein the collaborative client further comprises: means for instantiating a collaborative team; and team descriptor logic means for ordering of events posted to a team and dispatching of received events.
Claim 16
Dependent Claim 29 words
The system of claim 14, further comprising: an optimistic event execution model; and team descriptor logic means for ordering events through the server and dispatching locally generated events immediately.
Claim 17
Dependent Claim 26 words
The system of claim 15, said conflict detection means further comprising means for detecting an out-of-order event based on an event notification received from the server.
Claim 18
Dependent Claim 36 words
The system of claim 1, wherein the events are the units of communication in the collaborative client, further comprising: Late Event Modification (LEM) means for batching and modifying events after posting them to the shared set.
Claim 19
Dependent Claim 28 words
The system of claim 1, said conflict detection means further comprising means for detecting conflicts due to incorrectly ordered updates to the shared object and informing the application.
Claim 20
Dependent Claim 80 words
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.
Claim 21
Dependent Claim 80 words
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.
Claim 22
Dependent Claim 34 words
The method of claim 19, said detecting step further comprising the steps of: detecting conflicts due to incorrectly ordered updates to the shared object; and informing the application, in response to said detecting step.
Claim 23
Dependent Claim 25 words
The method of claim 19, further comprising the step of: marhalling and unmarshaling clones of one or more shared objects in the shared object sets.
Claim 24
Dependent Claim 77 words
The method of claim 19, wherein said cloning and reinitializing step further comprises the steps of: making a copy of a subset of objects in the set and preserving pointers from inside the original subsets to objects outside the cloned subset; mapping references between objects inside the original subset into the cloned subset; exporting the cloned subset to other clients; and re-initializing the subset of objects based on the cloned subset, in response to said exporting step.
Claim 25
Dependent Claim 29 words
The method of claim 19, further comprising the steps of: marhalling and propagating context-sensitive state to one or more new or updated shared objects in the shared object sets.
Claim 26
Dependent Claim 42 words
The method of claim 19, wherein the system is a client-server system, further comprising the steps of: said receiving step comprising receiving a shared event from the server; and detecting an out-of-order event based on the shared event received from the server.
Claim 27
Dependent Claim 29 words
The method of claim 19, wherein the system is a client-server system, each client further comprises a collaborative client middleware, communicatively coupled to the application and to the network.
Claim 28
Dependent Claim 105 words
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.
Claim 29
Dependent Claim 105 words
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.
Claim 30
Dependent Claim 24 words
The program storage device of claim 26, wherein each client comprises a collaborative client middleware, communicatively coupled to the application and to a network.
Claim 31
Dependent Claim 42 words
The program storage device of claim 26, wherein the system is a client-server system, further comprising the steps of dynamically creating, updating and destroying a collaborative team, wherein each team has a unique name space in a collaborative activity on the server.
Claim 32
Dependent Claim 23 words
The program storage device of claim 28, further comprising the step of defining and implementing a team behavior based on a team policy.
Claim 33
Dependent Claim 41 words
The program storage device of claim 26, further comprising the steps of: said detecting diverging state comprising the step of detecting conflicts due to incorrectly ordered updates to a shared object; and informing the application, in response to said detecting step.
Claim 34
Dependent Claim 31 words
The program storage device of claim 26, further comprising the step of: marhalling and propagating context-sensitive state to one or more new or updated shared objects in the shared object sets.
Claim 35
Dependent Claim 27 words
The program storage device of claim 26, further comprising the step of: marhalling and unmarshaling clones of one or more shared objects in the shared object sets.
Claim 36
Dependent Claim 79 words
The program storage device of claim 26, wherein said cloning and reinitializing step further comprises the steps of: making a copy of a subset of objects in the set and preserving pointers from inside the original subsets to objects outside the cloned subset; mapping references between objects inside the original subset into the cloned subset; exporting the cloned subset to other clients; and re-initializing the subset of objects based on the cloned subset, in response to said exporting step.
Claim 37
Dependent Claim 66 words
The program storage device of claim 26, wherein the events are the units of communication in the collaborative client, the method further comprising the steps of: posting an event to the shared object set; batching and modifying events after posting them to the shared object set; and marhalling and propagating context-sensitive state to one or more new or updated shared objects in the shared object sets.

References Cited (Backward Citations)

US5008853A Cited
US5625809A Cited
US5446842A Cited
US5634129A Cited
US5583993A Cited
US5694544A Cited
US5915098A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-05-02 2003-11-01 2004-05-02 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-05-02 2007-11-01 2008-05-02 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-05-02 2011-11-01 2012-05-02 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag