A framework for facilitating collaborative interaction between users of a
web application is presented. The framework provides persistence and
sharing mechanisms for arbitrary application-defined objects. The sharing
mechanism is coupled with a consistency mechanism that keeps client
states consistent even when users perform conflicting operations. This
framework is application-independent in that the persistence, sharing
between clients and maintaining a consistent state among the clients is
accomplished without the need for specific knowledge of the design of the
web application. Thus, web developers can focus on the logic of the
application and the UI, instead of spending time designing and
implementing collaborative capabilities.