API design recommendations for facilitating conversion of single-user applications into collaborative applications

Recent advancements in collaboration technology have shown that it is possible to convert existing single-user applications into real-time collaborative applications without modifying the source codes of the single-user applications. Such conversion relies on the API (Application Programming Interface) provided by the single-user applications. Poorly designed APIs make such conversion difficult, inefficient, or even impossible. Until now, it is not well understood what features APIs should provide to facilitate conversion of single-user applications into collaborative applications. This paper presents recommendations of the features single-user application APIs should provide to facilitate conversion. The results are based on what we have learnt from converting Microsoft Visio, into real-time collaborative Visio (CoVisio), and our previous experience in building CoWord and CoPowerPoint.

[1]  Atul Prakash,et al.  DistEdit: a distributed toolkit for supporting multiple group editors , 1990, CSCW '90.

[2]  Wentong Cai,et al.  Transparent adaptation of single-user applications for multi-user real-time collaboration , 2006, TCHI.

[3]  Kai Lin,et al.  Multi-way Dataflow Constraint Propagation in Real-time Collaborative Systems , 2006, 2006 International Conference on Collaborative Computing: Networking, Applications and Worksharing.

[4]  Jiajun Lu,et al.  A lightweight approach to transparent sharing of familiar single-user editors , 2006, CSCW '06.

[5]  Kai Lin,et al.  Maintaining multi-way dataflow constraints in collaborative systems , 2005, 2005 International Conference on Collaborative Computing: Networking, Applications and Worksharing.

[6]  Kai Lin,et al.  Maintaining Constraints in Collaborative Graphic Systems: the CoGSE Approach , 2005, ECSCW.

[7]  Rui Li,et al.  Transparent sharing and interoperation of heterogeneous single-user applications , 2002, CSCW '02.

[8]  Saul Greenberg,et al.  Real time groupware as a distributed system: concurrency control and its effect on the interface , 1994, CSCW '94.

[9]  Paul Dourish,et al.  Consistency guarantees: exploiting application semantics for consistency management in a collaboration toolkit , 1996, CSCW '96.

[10]  Paul Dourish,et al.  Developing a reflective model of collaborative systems , 1995, TCHI.

[11]  Brad A. Myers Graphical techniques in a spreadsheet for specifying user interfaces , 1991, CHI '91.

[12]  Jeffrey D. Campbell Coordination for multi-person visual program development , 2006, J. Vis. Lang. Comput..

[13]  Jeffrey D. Campbell Multi-user collaborative visual program development , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[14]  Clarence A. Ellis,et al.  Groupware: some issues and experiences , 1991, CACM.

[15]  Clayton Lewis,et al.  Spreadsheet-based interactive graphics: from prototype to tool , 1990, CHI '90.

[16]  Du Li,et al.  Demonstrational customization of a shared whiteboard to support user-defined semantic relationships among objects , 2001, GROUP.

[17]  Thomas P. Moran,et al.  User-tailorable systems: pressing the issues with buttons , 1990, CHI '90.

[18]  Jeffrey D. Campbell Interaction in collaborative computer supported diagram development , 2004, Comput. Hum. Behav..

[19]  Saul Greenberg,et al.  Building real-time groupware with GroupKit, a groupware toolkit , 1996, TCHI.

[20]  Carlos Castro,et al.  Basic components for constraint solver cooperations , 2003, SAC '03.

[21]  Clarence A. Ellis,et al.  Concurrency control in groupware systems , 1989, SIGMOD '89.

[22]  James Begole,et al.  Flexible collaboration transparency: supporting worker independence in replicated application-sharing systems , 1999, TCHI.

[23]  Sunil K. Sarin,et al.  Computer-Based Real-Time Conferencing Systems , 1985, Computer.

[24]  Chengzheng Sun,et al.  Consistency maintenance in real-time collaborative graphics editing systems , 2002, TCHI.

[25]  David Sun,et al.  Leveraging single-user applications for multi-user collaboration: the coword approach , 2004, CSCW.

[26]  Gordon V. Cormack,et al.  Operation transforms for a distributed shared spreadsheet , 1998, CSCW '98.

[27]  Yanchun Zhang,et al.  Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems , 1998, TCHI.

[28]  Clifford A. Shaffer,et al.  Resource sharing for replicated synchronous groupware , 2001, TNET.

[29]  Dan R. Olsen,et al.  Smart telepointers: maintaining telepointer consistency in the presence of user interface customization , 1994, TOGS.

[30]  Chengzheng Sun,et al.  Operational transformation for collaborative word processing , 2004, CSCW.

[31]  Rui Li,et al.  Preserving operation effects relation in group editors , 2004, CSCW.