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.