Development of a Collaborative Application in CSDL zy QP Flavio DePaoli zyxwvuts DCBA Dipartimento di Elettronica e Informazione Politecnico di Milano Piazza Leonard0 zyxwvuts A da Vinci, 32 20133 Milano zyxwvuts BA - Italy depaoli@ ipmel2.elet.polimi.it Abstract zyxwvut EDCBA CSDL is a specification and design language fi)r cooperative systems. The language constructs support modular design by separation of concerns. zyxwvu FEDCBA A typical system is composed zyxwvutsr A of a shared workspace, and collaboration control modules That define cooperation rules, control the underlying conznzunication system, and provide multiuser inteij4ace.t This paper presents the development of u colluborutive system based on a stand-alone XI 1 upplication. The key- study detnonstrates the simplicity and the .flexibility of the proposed approach .for managing all aspects of a cooperative system design. 1 . Introduction The wide availability of networked workstations and of high-level, high-performance communication services makes computer supported cooperative works a challenging and promisingresearchtopic [2 11. Cooperation is currently supported by tools that are at different evolution stages. For example, electronic mailing systems are sound and widespread products, while teleconferencing or electronic meeting rooms are still prototype or earlier releases. Most such systems are tightly associated with specific media, technologies 'and application areas. There is still a lack of general models and of open technological platforms supporting the design of cooperative systems and of "collaboration-aware" applications [15]. An environment supporting the design of cooperative systems should provide the designer with abstractions to model the logical coordination anong activities, and to control multiple information flows by hiding system- and media- dependent issues. It must also emphasize modularization to enforce integration and open-endness. Therefore information hiding and separation of conceins [9] are basic issues. This work has been pattially supported by CNR - Progetto Finalizzato "Sistemi Informatici e Calcolo Parallelo", and CRAI - Olivetti - Progetto MADE. Francesco Tisato Dipartimento di Scienze dell'Informazione Universid di Milano Via Comelico, 39 20135 Milano - Italy tisatoe hermes.mc.dsi.unimi.it Cooperative systems programming deals with four topics: multiuser interfaces, coordination, shared workspace, and networking control. The goal of CSDL (Cooperative Systems Design Language) is to cover all these aspects. The basic idea is that existing software, hardware or design techniques should be integrated to generate new systems. Integration is the crucial issue in the design of real cooperative systems, since they often rely on a network of heterogeneous workstations [7]. Moreover, the capability of integration of existing software permitsto use the same tools (editors, spreadsheets, and so on) in stand-alone situations, as well as in cooperation [ 1 11. Coordination Shared Workspace zyx GFE Figure 1. Cooperative systems' architecture. In a cooperative system can be decomposed in three levels, as sketched in Figure 1. Users interact through a shared woi-kspnce [ 121 which can be formed of stand-alone applications or ad hoc applications. The coordination layer is the core of the system, since it supports the definition of cooperation rules and their implementation in terms of access control to the shared workspace. CSDL zyx HG [6] defines the coordination layer through constructs for cooperation policy definition. This paper presents the development of a system in CSDI,. The system allows a group of physical distributed users to edit a document concurrently. It permits to share the single-user editor xedit by multiplexing the application's outputs to each participant, while inputs come from one user at a time. A simple floor control policy allows participants to designate who has that right. The paper provides a detailed presentation of the coordination layer, and a discussion of system architecture. Examples of multiuser editors can be found in [13] [8] [16], and [17]. The DistEdit system [14] is related to our work since it provide a toolkit for building and supporting multiple group editors. CSDL is more general since it is not limited to collaborative editors and is open to 210 0-8186-3770-6193 $3.00 0 1993 IEEE