Patent ID: 8799922

Claim:
A method of providing data sharing between applications, the applications running on different computers and communicating via a network, the applications each sharing a distributed object, the method comprising: maintaining, by each application, on the computers on which the applications are respectively running, respective invariant copies of the distributed object and variant copies of the distributed object, where each application performs update operations to the distributed object, where such an update operation issued by a given one of the applications is performed by: attempting execution of the update operation on the variant copy maintained by the given application but not on any invariant copies and only applying the update operation to the invariant copies if and when it is determined that the update operation on the variant copy was successful, wherein the update to the variant copy is performed without the given application waiting for the other applications to perform the update operation and without communication with the computers other than the computer executing the given application, where each invariant copy contains expected outcome state of the distributed object due to the update operations of its corresponding computer when those update operations do not conflict with operations executed by the other computers, and the expected outcome state of each invariant copy will converge to identical state of the distributed object when those update operations do not conflict; and if and when it is determined that the update operation on the variant copy was successful, then communicating the update operation to the other computers, and at each of the applications, including the given application that issued the update operation, executing the update operation on the corresponding invariant copies, respectively, wherein the executing the update operating on the corresponding invariant copies does not guarantee that a result thereof will be the same as a result of executing the update operation on the invariant copy of the given computer.