Building FCVW in Eclipse

advertisement
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
Download