Patent ID: 7661101

Claim:
A computerized method for synchronization of a plurality of heterogeneous user applications running on respective clients collaborating over a network via a session manager to manipulate a design manipulated by a plurality of users representing electrical or mechanical assemblies, said method comprising the steps of: connecting a session client process to a session manager over the network to participate in a collaborative session; sharing session control messages with other session client processes connected to said session manager; loading design data representing said design into a local application running on said client; creating at least one application state file representing at least one application state of said local application based on at least one manipulation of said design using said local application; communicating said at least one application state file from said session client process to said other session client processes via said session manager; receiving a first application state file created by another user on another local application and communicated from one of said other session clients via said session manager; presenting the first application state file created by another user on another local application to a user of the session client process to allow the user to refuse or delay loading of the first application state file; and if the user applies to delay loading of the first application state file: buffering the first application state file at the application layer to allow the user to incorporate the buffered first application state file into the design data at a later user-determined time; and loading the first application state file created by the other users on the other local applications at a time determined by the user of the session client process; wherein the buffering of incoming application state files enables the user of the client process to selectively apply other users' changes to the design, thereby allowing the user of the session client process to manipulate a first aspect of the design before loading changes made to a second aspect of the design by the other users within the other users' respective local applications.