This Article 
 Bibliographic References 
 Add to: 
A Case Study of CES: A Distributed Collaborative Editing System Implemented in Argus
September 1992 (vol. 18 no. 9)
pp. 827-839

Experience implementing CES, a distributed collaborative editing system, is described. CES was written in Argus, a language that was designed to support the construction of reliable distributed programs, and exhibits a number of requirements typical of distributed applications. The authors' experience illustrates numerous areas in which the support provided by Argus for meeting those requirements was quite helpful, but also identifies several areas in which the support provided by Argus was inadequate. Some of the problems arise because of the distinction in Argus (and in other systems) between locally and remotely accessible data and the mechanisms provided for implementing each. Others arise because of limitations of the mechanisms for building user-defined data types. The authors discuss the problems they encountered, including the implications for other systems. They also suggest solutions to the problems, or in some cases further research directed at finding solutions.

[1] J.E. Allchin, "An architecture for reliable decentralized systems," Ph.D. dissertation, Georgia Institute of Technology, Sept. 1983. (Available asTechnical Report GIT-ICS-83/23.)
[2] Black et al., "Distribution and Abstract Types in Emerald,"IEEE Trans. Software Eng., Vol. SE-13, No. 1, 1987, pp. 65-76.
[3] A. Black, "Supporting Distributed Applications: Experience with Eden,"Proc. 10th ACM Symp. Operating Systems Principles, Dec. 1985, pp. 181-193.
[4] O.-J Dahlet al., "The Simula 67 common base language,"Publication No. S-22, Norwegian Computing Center, Oslo, 1970.
[5] M. Day, "Replication and reconfiguration in a distributed mail repository," Masters thesis, Massachusetts Institute of Technology, Dec. 1986.
[6] D. C. Englebart, "Toward high-performance knowledge workers,"Office Automation Conference Digest, AFIPS, pp. 279-290, Apr. 1982.
[7] K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger, "The notions of consistency and predicate locks in a database system,"Commun. ACM, vol. 19, no. 11, pp. 624-633, Nov. 1976.
[8] D. Gifford, "Weighted voting for replicated data," inProc. 7th ACM Symp. Oper. Syst. Principles, Dec. 1979, pp. 150-162.
[9] D.K. Gifford and J. E. Donahue, "Coordinating independent atomic actions." inProc. IEEE CompCon85, pp. 92-94, Feb. 1985.
[10] A. Goldberg and D. Robson,Smalltalk80: The Language and Its Implementation. Reading, MA: Addison-Wesley, May 1983.
[11] I. Greif, "Teleconferencing and the computer-based office workstation," Teleconferencing and Interactive Media '82, Madison, WI, May 1982.
[12] M. Herlihy and B. Liskov, "A value transmission method for abstract data types,"ACM Trans. Programming Languages and Systems, vol. 4, pp. 527-551, Oct. 1982.
[13] C. A. R. Hoare, "Monitors: an operating system structuring concept,"Commun. ACM, vol. 17, no. 10, pp. 549-557, Oct. 1974.
[14] L. Lamport, "Time, clocks, and the ordering of events in a distributed system,"Commun. ACM, vol. 21, no. 7, pp. 558-565, July 1978.
[15] B. W. Lampson and D. D. Redell, "Experiences with processes and monitors in Mesa,"Commun. ACM, vol. 23, no. 2, pp. 105-117, Feb. 1980.
[16] B. Lampson, "Atomic transactions," inDistributed Systems: Architecture and Implementation(Lecture Notes in Computer Science, vol. 105). Berlin: Springer-Verlag, 1981, pp. 246-265.
[17] B. Liskov and R. Scheifler, "Guardians and actions: linguistic support for robust, distributed programs,"ACM Trans. Program. Languages Syst., vol. 5, no. 3, pp. 381-404, July 1983.
[18] B. Liskov and W. Weihl, "Specifications of distributed programs,"Distributed Computing 1, pp. 102-118, 1986.
[19] B. Liskovet al., CLU Reference Manual(Lecture Notes in Computer Sci., vol. 114). Berlin: Springer-Verlag, 1981.
[20] B. Liskovet al., "The implementation of Argus. inProc. Eleventh ACM Symp. Operating Systems Principles, pp. 111-122, Nov. 1987.
[21] B. Okiet al., "Reliable object storage to suport atomic actions," inProc. Tenth ACM Symp. Operating Systems Principles, Dec. 1985.
[22] S. Perl, "Distributed commit protocols for nested actions," Masters thesis, Massachusetts Institute of Technology, Oct. 1987.
[23] B. Randell, "System structure for software fault tolerance,"IEEE Trans. Software Eng., vol. SE-1, pp. 220-232, June 1975.
[24] S. Sarin and I. Greif, "Software for interactive on-line conferences," inProc. Second Conf. Office Information Systems, June 1984, pp. 46-58.
[25] S. Sarin and I. Greif, "Computer-Based Real-Time Conferencing Systems,"Computer, Vol. 18, No. 10, Oct. 1985, pp. 33- 45.
[26] K. Seliger, "The design and implementation of a distributed program for collaborative editing," Masters thesis, Massachusetts Institute of Technology, Sept. 1985.
[27] S. Sluizer and P. Cashman, "XCP: An experimental tool for managing cooperative activity," inProc. ACM Computer Science Conf., ACM, Mar. 1985.
[28] A.Z. Spectoret al., "Support for distributed transactions in the TABS prototype,"Tech. Rep. CMU-CS-84-132, Carnegie-Mellon University, July, 1984.
[29] A.S. Tanenbaum, "Distributed Operating System,"Computing Surveys, Dec. 1985, pp. 419-470.
[30] R.H.A. Trigg, "A network-based approach to text handling," Ph.D. dissertation, Univ. Maryland, Nov. 1983.
[31] W.E. Weihl, "Specification and implementation of atomic data types," Ph.D. dissertation, Massachusetts Institute of Technology, Mar. 1984.
[32] W.E. Weihl, "Distributed version management for read-only actions,"IEEE Trans. Software Eng., vol. SE-13, pp. 55-64, Jan. 1987.
[33] W.E. Weihl, "Local atomicity properties: Modular concurrency control for abstract data types,"ACM Trans. Programming Languages and Systems 11, pp. 249-283, Apr. 1989.
[34] W.E. Weihl, "Linguistic support for atomic data types,"ACM Trans. Programming Languages and Systems, vol. 12, pp. 178-202, Apr. 1990.
[35] W. Weihl and B. Liskov, "Implementation of resilient, atomic data types,"ACM Trans. Programming Languages and Systems 7, Apr. 1985.

Index Terms:
distributed collaborative editing system; Argus; reliable distributed programs; distributed applications; remotely accessible data; user-defined data types; data structures; groupware; parallel languages; text editing
I. Greif, A. Seliger, W. Weihl, "A Case Study of CES: A Distributed Collaborative Editing System Implemented in Argus," IEEE Transactions on Software Engineering, vol. 18, no. 9, pp. 827-839, Sept. 1992, doi:10.1109/32.159831
Usage of this product signifies your acceptance of the Terms of Use.