Friday February 09, 2001
In today's work environment we are faced with the increasing need to perform tasks and tackle problems cooperatively, in a team. This need is driven, e.g., by the trend towards growing distribution of teams, such as in the context of virtual organizations or extended enterprises, task-specific groups of companies or divisions, working together in a shared project, on the completion of a common product. The goal of CSCW (Computer-Supported Cooperative Work) research is the design and development of systems (often referred to as groupware systems) that support communication, coordination and cooperation between the team members involved in a group process. Groupware systems enable a distributed group of users to collaboratively work on shared objects (documents, etc.). Many of the cooperative work processes which are conducted in these teams are evolving over time and require the support technology to exhibit a high degree of exibility and tailorability. As work processes evolve, the supporting groupware needs to be adapted to the changing needs and requirements. In this context, we are faced with the need for groupware applications that are not closed and monolithic, but which can be dynamically extended, also by the end-users, in order to adapt the tools to the changing requirements. This thesis aims to provide support for such exible groupware. One way of developing exible, modular systems is component-based software development, where systems are constructed from reusable software components, which can be adapted and combined as required. The development of such components is often based on an underlying component framework, which governs the way in which components are created and later combined with each other. The goal of this thesis is to aid the use and development of extensible component- based groupware systems. This requires the design and development of a component framework, which provides support for the exible coupling of the components and for dynamic distribution of the components. End-users need to be supported in locating and retrieving the components that they require for their current task. Additionally, the framework needs to support end-users as well as groupware developers in adapting the collaboration support environment to the changing demands. The thesis introduces Groupware Components as the basis for the development of flexible, adaptable groupware systems. Groupware Components are visually interactive components which allow groups of users to collaboratively view and modify shared data objects. Groupware Components can be coupled and assembled into comprehensive collaboration support environments. The resulting collaboration support environments are dynamically extensible: New components can be added to the running system and can immediately be used collaboratively on all connected machines. The coupling of Groupware Components is based on a common shared domain object model, which is dynamically replicated in the distributed system. One problem which needs to be tackled when building exible component-based collaboration support systems is how to support end-users and developers in finding and retrieving the components required for a specific task. When introducing new components into the system, the previously available components need to be able to access and invoke these new components, without the need to modify the older components. In order to support this, the thesis introduces a programming model termed task-based development. In this model, components publish tasks which can be performed on instances of a shared object model. This task information can be queried by the component server and can be used to determine the required component for a certain activity to be performed on a specific shared object. The tasks can be invoked either interactively by the end-users or by component implementations, leading to an invocation of the related components. In this way, exible (loose) bindings between components are possible, which allow the collaboration support system to by dynamically extended and reconfigured. The task-based programming model and the separation between component and domain model implementation also allow the coupling of different components (e.g., for different tasks or roles in the collaborative process) on the same shared data objects. End-user tailorability of the collaboration support environment is supported by an interactive composition tool, which allows the combination of components into so-called configurations. These configurations can be deployed via the server and can be used collaboratively right away. This creation of configurations is also based on the task- based programming model, which serves as the central unifying abstraction underlying the components in the DyCE framework. When developing component-based environments, developers need to communicate their design ideas with each other. In order to support the design of component-based groupware, the thesis introduces a number of extensions to the Unified Modeling Language (UML), which allow developers to create design diagrams which specify issues relevant to component-based groupware, such as component distribution, task bindings, sessions, etc. The development of Groupware Components is supported by the development framework DyCE (Dynamic Collaboration Environment), which has been implemented in Java. The DyCE framework has been used in a number of research projects for developing a wide range of Groupware Components. A number of this components are presented, along with the experiences gathered in the course of their development.
Link to online publication