FCVW - towards an Eclipse-based CSCW Framework Ivan Tomek, Elhadi Shakshuki, Anita Peng, Alex Koo, Omkar Prabhu Jodrey School of Computer Science, Acadia University Wolfville, Nova Scotia, Canada ivan.tomek@acadiau.ca, elhadi.shakshuki@acadiau.ca, 061352p@acadiau.ca, 032139k@acadiau.ca, 065766p@acadiau.ca Themes: Possible directions for extending Eclipse with collaborative tools; studying CSCW-related uses of Eclipse. Abstract: The broad purpose of Eclipse is to serve as a general tool repository and its narrower role is to facilitate code development. These goals are supported by a set of base tools embedded in an architecture that allows users to create environments satisfying their particular needs by adding plug-in modules. The use of tools is, in most cases, a group activity and to take full advantage of Eclipse's potential, its architectural features should be used to complement its taskoriented functionality with a general-purpose framework in which to situate collaborative group activities, and then build CSCW and other tools to plug into this framework. We describe our work on FCVW (Federated Collaborative Virtual Workspace) that represents one possible type of such a framework, and propose that extending Eclipse with a framework similar to FCVW would greatly increase to its usefulness and enhance its potential for supporting collaborative work, social interaction, and CSCW research. We recommend that such a project be undertaken by collaborating individuals working in a coordinated fashion and following shared conventions. Introduction The dramatic evolution of information and communication technologies has brought about a number of new developments. Two of the most important ones are the increasingly rapid evolution of software applications and development tools, and a shift from individual use of computers to social and collaborative use. These two trends can only be sustained if development environments are enhanced to facilitate them. IBM's Eclipse architecture can be seen as an attempt to provide such an environment. In regards to the first trend - support for flexible, customizable, and extendible software development environments - Eclipse offers a pluggable architecture and comes equipped with development tools that support code development and management. A growing number of developers provide plug-ins that supply alternative or missing functionalities. One way to deal with the second trend - increasing socialization of software use - is to develop plug-ins supporting CSCW functions such as synchronous and asynchronous communication, shareable tools for geographically dispersed teams, conferencing, and others, and use them to assemble Eclipse-based environments for specific needs. In our view, this is not the optimal approach and we propose that Eclipse should instead be used to build a CSCW framework that supports collaboration and general social interaction and provides extendibility and customization on the basis of similar principles as Eclipse. This framework could then be 'flashed out', extended, and 1 customized by additional plug-ins needed to satisfy specific user needs. As far as we know a general-purpose framework of this kind does not exist and this position paper describes some initial work that we have done towards this goal and makes some general recommendations on the basis of our experience. CVW and FCVW Frameworks are generally based on grand visions, metaphors. When considering the metaphors that could serve as the basis of a general-purpose CSCW framework, the most natural one is the experience of ordinary everyday work that occurs in a spatial and temporal continuum, a persistent space of interconnected meeting places inhabited by people, objects, and tools. This metaphor has been under scrutiny for a long time and many virtual-space-based metaphors were built, starting with text-based MUDs (networked implementations of fantasy games) and proceeding to MOOs (their ObjectOriented implementations) [1] and 3D-based VRs (virtual realities) [2]. Although 3D VRs might appear to be the most attractive direction of exploration because they are a more faithful representation of everyday reality, we consider text-based environments better for many uses, especially those where the artifacts that are at the center of the social activity are text-based as is the case, for example, in code development. Although we don't preclude the possibility of developing a VR-based framework in the future, we are thus currently focusing on developing a text-based VE (Virtual Environment) framework. The idea that a text-based Virtual Environment could be used to support work activities has already been extensively studied (see, for example, [3]) and CVW (Collaborative Virtual Environment) developed in the late 1990s by MITRE Corp. is perhaps the most complete and best-researched of such attempts [4]. CVW has apparently been developed in a search for a framework that could support institutional knowledge management [5]. It uses a client-server architecture in which the server consists of a MOO server and a document server, and the client is a standalone application with custom user interfaces. The largely conventional MOO server contains an interpreter of the underlying LambdaMOO programming language [6] that defines the virtual 'universe', a database of definitions of the components of the universe written in LambdaMOO, and a dynamic persistent image of the current state of the virtual universe. The document server stores documents imported from user machines via the client, making them available even when their owners are not logged in. Client windows allow users to access CVW functionality, including LambdaMOO commands, thus making the environment run-time programmable. Documents from the document server are made accessible by applications residing on the client machine. So, for example, Word documents downloaded from the document server are processed by the Word application on the client machine, and so on. The functionality offered by the GUI interface (Figure 1) is both a subset and an extension of conventional MOOs. It uses the metaphor of a building divided into floors containing rooms whose access is controlled by the room's owner. Users can one arooms, move from room to room, participate in communication with others using technologies such as synchronous text talk, synchronous and asynchronous pop-ups, one-to-one audio, and video and audio conferencing. They can define user groups, typically centered 2 around projects, for example to specify room or document access permissions. Users can move documents between their machine and CVW as well as within CVW, create and use whiteboards for shared real-time work, activate recorders to log communications within a room, create proxies to allow a user to be present and participate in discussions in two different virtual rooms at a time, and more. Figure 1. CVW user interfaces [4]. We decided to use CVW as the basis for our collaborative framework because it is a very complete, well functioning open source product and its Java-based client is quite well documented. In the initial stages of our work, we focused on identification of its shortcomings and after some usability testing we identified the following immediate goals: Learn about client design, improve the user interface (the main complaint of test participants), improve scalability (CVW documents state that 300 is the approximate upper limit on the number of simultaneous users), add on-line help (practically nonexistent), add programming support for LambdaMOO, and create support for software agents, a potential source of major enhancements of collaboration [7]. The following briefly explains two of these tasks - how we enhanced scalability and how we provided support for LambdaMOO code development. Scalability. The problem with CVW is that it is based on a single server and the restrictive metaphor of a single building. To address this limitation, we created a middle layer of repositories that hold a copy of essential universe data, such as user information, map of the server universe, and object information. This information is shared among any number of standard CVW servers. We then modified the client to use these repositories and provide transparent access to all CVW servers in the 3 universe, and give users the illusion of a single transparent multi-building space. Although we have not yet tested the effect of this modification (the 'federated' version of CVW - FCVW) on scalability, we anticipate that spreading users across multiple servers in a suitably defined topology can almost arbitrarily scale the resulting environment. Support for LambdaMOO coding. CVW does not provide any support for coding except through a very minimal one-line command interface. We have created an Interactive Development Environment that allows the user to program new objects and functionalities directly from the client and within CVW. We are also implementing a repository-based environment to support code development in isolation on one server, and to broadcast accepted code across the universe. Simple versioning and rollback mechanisms are also being implemented. Project experience and state of completion Our experience with the use of CVW during the development of FCVW and our, so far limited, experience with FCVW convinced us that the concept of a spatialmetaphor-based CSCW framework is sound. The metaphor is very natural and easy to grasp, the environment is very natural and fun to use, and users agree that the provided features satisfy their needs. CVW programmability is very useful and possibly essential because it allows users to customize and extend the environment and thus addresses the common complaint that groupware does not satisfy application-specific and evolving needs and that changes can only be made by product developers, usually in long cycles with uncertain results. The integration of all functionalities in a single environment is also perceived as a great advantage over ad hoc collections of incompatible specialized tools. Because our focus has, so far, been on CVW and FCVW itself, we have not paid enough attention to its optimal integration with Eclipse. At this point, the whole environment is a single large Eclipse plug-in. We intend to make the design more modular when we complete all the described features, currently scheduled for the end of October. Eclipse and CSCW On the basis of our experience, we contend that Eclipse, complemented by a CSCW framework possibly based on FCVW principles, can play a significant role as a CSCW environment. Thus extended, Eclipse will become a tool repository and code development environment supporting communities rather than single users and provide a basis for growth, evolution, customization, practical use, and research. We observe that much of the extensive work on Eclipse plug-ins to date, whether supporting CSCW or other functions, has suffered from a lack of coordination among developers. This results in duplication, often built deeply into the plug-ins and difficult to correct, and lack of plug-in compatibility. To achieve truly satisfying results, avoid duplication, and allow real extendibility and customization, teams involved in the development of the proposed framework and individual plug-ins should proceed in a 4 coordinated fashion, preferably on the basis of shared conventions. In other words, further development should be a coordinated community effort. About authors Ivan Tomek is a professor and Elhadi Shakshuki an assistant professor at Acadia University. Anita Peng, Alex Koo, and Omkar Prabhu are Masters students working under their supervision. Acknowledgement The work reported in this contribution has been supported, in part, by an IBM Eclipse Innovation Grant, and by the Teaching Innovation Fund from Acadia University. References [1] P. Curtis, D. A. Nichols, MUDs Grow Up: Social Virtual Reality in the Real World, Xerox PARC, 1993, http://www.hayseed.net/MOO/MUDsGrowUp.ps [2] VR 2004 conference, IEEE, http://www.vr2004.org/ [3] Churchill, S. Bly, Virtual environments at work: Ongoing use of MUDs in the workplace, Proceedings of WACC'99, 1999. [4] MITRE: Collaborative Virtual Workspace Overview, http://cvw.sourceforge.net/cvw/info/CVWOverview.php3 [5] M. Maybury, Knowledge on Demand: Knowledge and Expert Discovery, Proceedings of I-KNOW'02, International Conference on Knowledge Management, Graz, Austria, 2002. [6] LambdaMOO Programmer's Manual, http://magrathea.cosmic.com/pub/moo/ProgrammersManual.html [7] Yiming Ye, E. Churchill, Agent Supported Cooperative Work, Kluwer Academic Publishers, 2003. 5