Building Collaborative Problem-Solving Environments
as Shared Places
Lukasz Beca
CollabWorx
Abstract
Shared Place technology allows construction of virtual places on
the Web by merging collaborative tools with Web page content. It offers
significant benefits to the Collaborative Problem-Solving Environments'
developers and users. By its support for synchronous and asynchronous
collaboration it facilitates the exchange of ideas among remote users.
Extensive customization is possible; different Places can be generated
from the same set of components depending on user preferences, tasks
to be performed and available resources. Moreover, it enables integration
of problem-specific tools with virtual place content. The paper explains
how these features are achieved in Shared Place using Internet technologies
and standards. Also, the process of development of a collaborative
component is presented with focus on the use of the Shared Place services.
Finally, the construction process of a virtual place is described
with emphasis on the customization of tools' behavior and on the integration
of the collaborative components with Web resources.
1. Introduction
The problem-solving environments (PSE) field is developing rapidly.
Many diverse products are available, for example, Extensible Computational
Chemistry Environment [15] provides support in the domain of computational
chemistry and AutoCAD [3] offers tools for the industry design.
This trend is driven by steady progress in many branches of computer
industry. Advanced distributed data storage and retrieval systems
are available for archiving results of experiments or domain specific
information necessary to solve complex problems. Computing facilities
such as specialized hardware, mainframes or computers organized
into clusters are used to provide significant computational power.
Large suites of advanced, domain-oriented software modules are available.
They encapsulate the algorithms relevant for a specific class of
problems (for example, PELLPACK [11] offers comprehensive support
for solving partial differential equations). Finally, visualization
tools such as AVS [1] [17] are used to analyze and present complex
data. All those developments enhance problem-solving capabilities
of current software systems.
As far as collaborative PSEs are concerned, the research
is still in progress. Such environments should provide the functionality
of a PSE and, in addition, allow system users to work as a team
in a manner independent of their location and the time they access
the PSE resources. However, the problem is still far from being
solved. The main reason for such a situation is the difficulty of
building efficient collaboration environments in general, and merging
them with problem-solving environments in particular. A collaborative
application always has a form of a distributed system, which is
not trivial to build. Also, in spite of significant research progress,
social issues that arise in virtual groups are not addressed properly
by the currently available collaborative environments. As a result,
most of the on-line collaboration systems are difficult to use and
offer limited functionality. Therefore, it is understandable that
the designers of most PSEs concentrate on the problem-solving functionality,
postponing implementation of the collaboration functionality till
the mentioned difficulties are resolved.
Many of enumerated problems could be solved by applying available
Web technologies and resources. Several systems such as Collaborative
Research Environment (CORE) [18] and TANGO Interactive [5] make
steps in this direction. As the Web infrastructure becomes more
mature, as the browser platforms become more sophisticated, and
as new Internet standards such as XML [20] emerge, new collaboration
solutions become possible. XML offers standardized approach to data
description, ability to create compact documents, and wide availability
of software tools for creating and processing documents. Component
technologies such as JavaBeans [19] and ActiveX [8] allow easy creation
of Web-based collaboration tools, fast transfer over networks, and
interoperability. Web browser platforms provide ability of dynamic
generation and modification of Web page content, and execution of
components fetched over the network. We propose a framework that
is based on these technologies and enables construction of customized
Web-based collaboration environments integrated with Internet resources.
Our solution, Shared Place, is composed of two parts. Shared Place
framework provides necessary services for building variety of the
collaboration components that allow synchronous and asynchronous
teamwork on the Web. Shared Place Definition Language (SPDL), an
XML-based language, describes properties of a virtual place: Place
appearance, behavior of collaboration components present in the
Place, and access to the Place resources. By combining these two
parts we want to create a platform for building virtual places on
the Web, which are conceptually similar to the shippable places
introduced in [14]. In our work we apply experience gained during
construction of Web-based collaboration frameworks (TANGO Interactive),
and from building environments for distance learning and the virtual
meetings.
A part of the material presented in this paper was introduced
in [4]. It is included here to provide self-contained presentation
and it is discussed in the context of building CPSEs.
2. Requirements for Collaboration Layer of CPSE
A collaboration framework must satisfy certain set of requirements
in order to become an efficient collaboration layer of a CPSE. Under
the notion of a collaboration framework we understand software architecture
that (1) implements collaboration services and (2) allows for development
of collaboration-enabled tools that use those services.
2.1. General Requirements
The following list of features must be supported by every Web-based
collaboration framework:
Communication services. Communication services enable distribution
of changes in the collaborative application state among instances
operated by different users. Also, they enable interaction among
tools operated by the same user.
Synchronization mechanisms. Execution of many tasks in
a distributed environment requires ability to synchronize actions
performed by users of the system. Such mechanisms are used for controlling
access to system resources and enforcing consistency of distributed
state.
Persistence. The collaboration framework must provide mechanisms
that enable storage and retrieval of the results of the collaborative
work. Such functionality can be implemented as archiving the state
of a collaboration tool or recording of the entire process that
led to the final result.
Access to awareness information. Awareness information
includes the state of resources used in collaboration, availability
of the users, and information about activities performed by the
users. This information can be employed by collaborative tools to
help a user of the system to relate his/her actions to the actions
executed by other users.
Session management mechanisms. Collaborative session groups
users who employ tools and other shared resources to solve a specific
problem together. The session management mechanisms are used for
setup and termination of collaborative sessions.
Support for various collaboration policies. Different applications
need different collaboration policies. For example, two scenarios
are possible during scientific collaboration. The scientists first
set up parameters for computations and later they deliver presentation
of the results to a larger group of spectators. In the former case
the scientists can work in peer-to-peer fashion. They can freely
discuss the parameters of the computing process and gradually they
arrive to the most optimal solution. In the latter case, one scientist
should be distinguished as a master user and have exclusive control
over the presentation tools in order to deliver the presentation
of the results in the most efficient manner without unsolicited
interruptions. The collaboration framework should be sufficiently
flexible to adapt to the required policy.
Integration with the Web infrastructure. World Wide Web
became a standard way of providing access to resources and services.
It enables easy publication of documents and data, and straightforward
implementation of interfaces to computing services. Therefore, extensible
collaboration framework must provide mechanisms for accessing the
Web infrastructure. Integration with the Web infrastructure can
be supported on many levels. For example, Web repositories can be
used as a source of data for the collaboration tools. The collaboration
framework may also support building collaboration tools as Web services.
Application Programming Interfaces (API). APIs must be
defined to provide access to all described above services. Also,
the guidelines for the application development such as design patterns
must be offered to collaboration environment developers.
2.2. CPSE-specific Requirements
CPSEs impose a number of requirements on the collaboration framework
that are determined by the needs of problem-solving applications:
Integration of synchronous and asynchronous collaboration.
Collaborative problem-solving activities, especially those that
are carried out over extended periods of time, involve utilization
of synchronous (communication, synchronization, awareness) and asynchronous
(persistence) collaboration services. The synchronous services are
used to support virtual meetings, presentations, or shared access
to the resources. The asynchronous services maintain the state of
the collaborative work over multiple synchronous sessions and enable
access to the data repositories.
Support for multiple platforms. The scientific and problem-solving
environments are built for various platforms, therefore, the collaboration
framework for a CPSE should operate on as many platforms as possible.
Customizability. The collaboration layer of a CPSE should
be configurable for wide array of problems, so that it can adapt
to needs of various tasks supported by a CPSE and various models
of group work. It should be also reusable, so that it can form a
base for multiple CPSEs.
Conformance to standards. Conformance to standards ensures
that the environments constructed using collaboration framework
will be able to reuse solutions developed by others.
Support for communities. A group of the users working on
the same problem in natural manner forms tightly integrated community.
Since the collaboration layer of a CPSE is supposed to directly
support group activities, it should provide means for mapping this
social concept onto virtual domain.
Security. The collaboration layer of a CPSE should provide
mechanisms for authentication, authorization, and secure communication
in the boundaries of the community. These services should be implemented
in such a way that unnecessary overhead to the CPSE users is not
introduced.
Interfaces to the legacy resources. Many applications that
have already been used for some time can also be useful in new settings;
therefore the collaboration layer should be flexible and accommodate
such resources.
Integration with other layers of a CPSE. The collaboration
layer of a CPSE must present a consistent interface to other layers
that directly support problem solving functionality, communicate
with data repositories, or with scientific instruments.
In the next sections, we will show how the Shared Place technology
addresses the requirements enumerated above.
3. Shared Place Concepts
This section introduces concepts essential for understanding of
the Shared Place technology. As the name indicates, the main purpose
of this technology is to provide a platform for creation of Places
on the Web—virtual spaces where people can meet and interact. Shared
Place model distinguishes concepts of Place, Visitor, Tool, Gate,
Agent, and Artifact.
A Place corresponds to a physical place in the real world.
It provides boundaries within which the intended interactions occur.
A Place can contain Artifacts, Visitors, Agents, Tools, and Gates.
Visitors present at the Place can interact directly with Agents,
Tools, and Gates gathered here. Visitors interact indirectly (by
using Tools) with Artifacts and other Visitors. The Place is persistent;
its content is preserved when all Visitors leave. The Place can
also provide Gates to other Places, so that groups of interconnected
Places can be defined.
A Place has a number of customizable properties. It is possible
to specify names of Visitors that are allowed to enter the Place
and assign them to the Visitor groups. Another element of the place
description is a set of behavior rules that form a place policy.
Policies impose various restrictions on the model entities depending
on the desired Place functionality. For example, a description of
a Place may specify allowed and disallowed types of Artifacts and
Tools.
A Visitor represents a user in a Place and is similar
in some aspects to the concept of an avatar in Multi-User Virtual
Environments (MUVE) [12]. All actions that a user executes on the
content of a Place are performed by the Visitor. Visitors can enter
and leave the Place using Gates. A Visitor can interact with the
Place Artifacts using Tools and carry his/her own Personal Artifacts.
Visitors can interact with Agents. They can also communicate with
each other using Tools. One user can be represented by several Visitors
remaining in different Places at the same time. Usually, a Visitor
has some role assigned in the Place. A role is used to determine
how other Shared Place entities react to the Visitor's actions.
A Visitor cannot assume several roles in the same Place.
A Tool provides means of interaction between Artifacts
and Visitors, as well as among the Visitors themselves. Tools can
be used to perform various tasks such as providing awareness information,
Artifact management, communication, collaborative work, or modification
of Artifacts. Tools may behave in different way depending on the
type and mode of the Artifact they operate on, and the role of the
Visitor that uses them. Their behavior is defined by the Place policy
rules. Tools can be associated with a given Place or brought to
a Place by a Visitor.
A Gate is an entity that enables Visitors to move
from one Place to another. It is similar to an HTML hypertext link
but a Gate can also perform more complicated tasks such as authentication
or providing information about the Place that the Visitor is about
to enter.
An Artifact represents content of an arbitrary
type that can be created and accessed by a Visitor using Tools.
It is essentially a data container such as a Web page, a document,
an image, a stream of data, an entry point to information stored
in a database, or a set of links to other Artifacts. Artifacts can
be moved from one Place to another by Visitors. However, some Places
may put limitations on types of imported and exported Artifacts.
An Artifact can exist in one of two modes—as a Personal or as a
Public Artifact. A Personal Artifact belongs to a Visitor. A Visitor
can possess an arbitrary number of Personal Artifacts. Personal
Artifacts are Place independent and can be carried from one Place
to another. Public Artifacts are a part of the Place content. They
are visible to the user accessing the Place if a Tool appropriate
for displaying Artifacts is provided. Artifacts have a number of
properties such as a type, an expiration date, information about
author, a date of modification, and a pointer to a Tool that can
be used to access the content. The Shared Place framework activates
the Tool indicated by information associated with an Artifact when
the Place does not have a specific Tool assigned to this type of
Artifact.
An Agent may perform actions on Public Artifacts
on behalf of a Visitor while he or she is not present in the Place.
Those might be administrative tasks—removal of expired Artifacts
or update of time-sensitive content of the Artifact. Agents can
also act without any authorization from a specific Visitor. Moreover,
Agents may have social tasks to perform such as greeting Visitors,
or offering instructions on how to use certain Tools.
Tools, Gates and Agents are software components (referred to as
collaboration components in the following sections of this paper)
that can be implemented by the developers who have access to the
Shared Place API. The functionality of these components depends
on the tasks to be solved. A Tool might be a chat, whiteboard, data
visualization application etc. A Gate must provide the basic functionality
of transfer to the next Place but can offer additional features
such as authentication of a user. Agents do not have any default
tasks assigned. They have access to the state of a Place, but they
do not have to offer any collaboration functionality. We are still
working on the API for Agents. Current design assumes that an Agent
is composed of two components, one is present at the Shared Place
server and can execute tasks even when the Place is not being accessed
by any user. Another component is responsible for presenting a graphical
interface to the Place users and is activated whenever a Visitor
representing a user enters the Place. The part present at the Shared
Place server can be downloaded and executed by the server. This
approach is similar to the solution adopted by the JINI technology
[2] developed by Sun. We also envision the possibility of an Agent
being an active party in the communication with the Shared Place
server. In that case the Agent can contact the Shared Place server
and, if allowed to enter, it can download its server-side component
and start execution. In this way the Agent can move from one Shared
Place server to another.
More detailed discussion of the Shared Place model and its applications
in designing virtual places is included in [4].
4. Shared Place Framework
4.1. Architecture

Figure 1. Shared Place architecture
Shared Place employs currently available technologies
such as Web infrastructure, Web browser platforms, and component
architectures (see Figure 1). Shared Place Definition Documents
are stored on Web servers and can be downloaded as any other Web
resource. The collaboration components (Tools, Gates, and Agents)
are stored on a Web server together with the SPDL documents that
describe their configurable properties. Artifact repository functionality
is provided by an HTTP or FTP server. The repository server must
be configured in such a way that makes the updates of Artifacts
possible. An Artifact may also provide an interface to more complex
forms of storage such as database repositories, media streams, or
scientific instrument input and output. In addition, Personal Artifacts
may be stored on a local machine to allow off-line access. The collaboration
services are provided by the Shared Place server, which is implemented
as a Java application.
Generation of a Place for a specific user has several steps and
requires interaction among a number of entities of the Shared Place
architecture (see Figure 2). When the user decides to move from
one Place to another, he or she must provide a name and a password
to the Place component that implements Gate functionality. When
authentication data is submitted, the Gate retrieves the SPDL file
that defines the target Place associated with the Gate (step 1 in
Figure 3).

Figure 2. Steps in virtual place generation
Using information from the SPDL document, the Gate
connects to the Shared Place server that supports the target Place
(step 2). Subsequently, the Gate submits the user name and the password
to the Shared Place server, which confirms or rejects user's right
to enter the Place. If the server does not have the SPDL document
describing the Place, the collaboration functionality description
part of the document is sent to the server by the Gate component.
Next, the Gate component dynamically generates an HTML page from
the SPDL document taking into account user's identity and his o
her role in the new Place (step 3). The references to the collaboration
components in the layout part of the document are replaced by valid
HTML tags.
After the generation is completed, the page is interpreted by
the browser, which renders the content and downloads the collaboration
and framework components from indicated locations (step 4). The
collaboration components are visible to the user, whereas the framework
components, which implement the collaboration services, remain hidden.
Next, the components embedded in the page are initialized and the
framework component contacts the Shared Place server (step 5). The
framework component retrieves the collaboration functionality description
of the Place from the server and parses it. Finally, the collaboration
components access relevant behavior properties and initialize accordingly.
They also access the collaboration services provided by the framework
component. When this step is completed, the Place is ready for interaction
with the user.
The Place generation process, although complex, is entirely handled
by the Shared Place framework and is transparent to the Place users
and the Place developers. It offers significant benefits in the
form of easy setup and simplified configuration of the architecture
components. With the current approach it is enough to publish SPDL
documents on an HTTP server, and start the Shared Place server and
the Artifact repository (FTP or HTTP) servers to obtain fully functional
Shared Place infrastructure. As the Shared Place technology is based
to a large degree on Web architecture, it offers scalable service
as far as the access to SPDL documents, collaboration components,
and Artifacts is concerned. Performance of the collaboration services
is dependent on the computing resources available to the Shared
Place server.
4.2. Services
The Shared Place framework offers services that can be used by
the developers of collaboration components to construct configurable
applications with desired collaboration and problem-solving functionality.
4.2.1. Collaboration Services. The Shared Place framework
provides complete set of collaboration services. The design is influenced
by the solutions adopted in Java Shared Data Toolkit (JSDT) [7]—a
framework offering a set of generic mechanisms that can be used
to build collaboration tools. Shared Place offers similar mechanisms
in the Web settings and combines them with other services, not implemented
by JSDT. For the communication between collaboration components
operated by different users or between different collaboration components
operated by the same user communication channels can be employed.
A communication channel is a transmission medium for events and
data. In order to transmit an event, the collaboration component
must send it to the channel. In order to receive an event, the tool
must subscribe to a channel notification service. The tool is notified
whenever new events or data are available in the channel. Channels
can be created and destroyed dynamically by the collaboration components.
Information about channels is maintained by the Shared Place server,
which also takes care of event distribution.
Another service implemented by the Shared Place framework is synchronization.
The collaboration components can create tokens and access
them in shared or exclusive modes. The collaboration components
can also subscribe to the notifications about changes of the token
state. Tokens provide straightforward and sufficient mechanisms
for implementation of various collaboration models such as mentor/student
or peer-to-peer. The state of tokens is maintained and controlled
by the Shared Place server.
The Shared Place framework also offers access to properties.
A property is a shared variable that is stored by a Shared Place
server. It can be of arbitrary type and can be dynamically created
and destroyed by collaboration components. After being created,
the property can be accessed by any collaboration component that
knows the name of the property. It is also possible to subscribe
to a notification service that informs about changes of the property
value. The Shared Place framework maintains a number of special
properties that hold information about the state of a Place. The
state data include such information as the name of the Place, the
names of Visitors, Tools, Artifacts, Agents, and Gates present at
the Place. The collaboration components, by accessing the state
data, gain awareness information, which they can display in arbitrary
manner. For example, Visitors present at a Place can be represented
by a set of icons with associated names.
4.2.2. Access to the Place Description Data. In addition
to the collaboration services, the Shared Place framework offers
access to the configuration data extracted from the SPDL document
that describes a Place. This information is divided into two parts:
the Place specific data and the user specific data. The Place specific
data is inherently related to the description of the Place and is
the same for all users. Such information includes data about Artifacts
or Visitors allowed at the Place. The user specific data is related
to the behavior of Tools, Agents, Artifacts, and Gates when the
user accesses them. Access to the configuration data is provided
by the property mechanism described in the previous section.
4.2.3. Storage Services. The storage service enables implementation
of asynchronous collaboration. It offers ability to create and access
Artifacts that are managed by the Shared Place framework.
Artifacts can contain any type of data. The Shared Place framework
does not interpret Artifact content. However, it maintains metadata
about the Artifact content in a form of the Artifact Descriptor
that accompanies the Artifact. The Shared Place framework offers
mechanisms for creating and accessing both types of Artifacts: Public
and Personal. In a CPSE, Artifacts can be used to store results
of collaborative work, data obtained from instruments, or results
of computations.
4.2.4. Authentication. Since the Shared Place technology
supports Place appearance and behavior customization based on user's
identity, authentication is one of the most important services.
Authentication is implemented jointly by Gate components and the
Shared Place server. Gate components provide interface that allows
a user to enter the authentication data that are verified by the
Shared Place server.
4.3. Security
Security is an essential part of any system that operates in the
Internet environment. We work on the implementation of the secure
Shared Place services. There is a number of issues that must be
addressed in order to create a secure collaborative environment.
Documents that describe the virtual places can be protected from
malicious modifications by adding digital signatures to their content.
The communication channels can be protected from eavesdropping by
implementing communication over Secure Socket Layer (SSL). Authentication
procedure prevents unauthorized entries. Collaboration components
are signed before deploying in virtual place and must present developer's
signature before executing potentially dangerous operations.
4.4. Application of Shared Place Services
The Shared Place services are available as an Application Programming
Interface (API), currently implemented as a set of Java classes
and interfaces. The next step will involve turning the Shared Place
API into a component version using JavaBeans component architecture.
In this process we will apply experience gained in the creation
of the component based API for TANGO Interactive [6]. The Shared
Place API can be used to develop a collaboration component that
can be fetched over the network and executed by the browser.
Having introduced Shared Place services, we will describe how
they can be used to create a simple tool for collaborative data
visualization. We will start with the description of the tool functionality.
A data viewer should have ability to present supplied data in a
form of 3D or 2D graphs. Moreover, it should allow viewing data
in various modes to help discover significant patterns and dependencies.
As a collaboration tool, such a viewer must provide ability to communicate
with viewers started by other users. It must maintain consistent
state among distributed instances—the same view of the data should
be presented to all users at all times. Another useful feature would
be ability to draw on the presented graph, as well as saving and
loading archived graphs. Finally, the tool should support various
collaboration policies such as peer-to-peer work when all users
have similar rights or presentation mode when one user entirely
controls the tool and shows the results to on-line spectators.
To implement described collaboration functionality, various services
are needed. Communication channels can be used to transmit changes
in the data view and the drawings. Synchronization tokens can be
used to impose constraints on the interaction with the tool to assure
consistency of the data viewer distributed state. For example, only
the user who holds the token should be allowed to change the parameters
of the data view or draw on the graph. Artifacts can be used to
provide access to the experiment data and to allow archiving of
generated graphs. Other tools can complement viewer’s functionality,
for example, they can access and display the information about Artifacts
and Visitors present at the Place. Finally, the collaboration policy
required at a specific Place can be defined in SPDL document that
provides the configuration data for all Place tools.
After the development stage is finished, the component is turned
into a distribution package and must be digitally signed. The tools
for this purpose are available from vendors of the software development
tools. The next stage is preparation of the component descriptor
document in SPDL format. Such a descriptor provides information
about features that the component exposes for customization. In
this case it can be a standard view of data presented by the Tool
just after initialization, accepted collaboration policies, or the
amount of control that the user has over the Tool. Finally, the
distribution package and the component descriptor must be deployed
on the Web server. Whenever the Tool is requested in the process
of dynamic Place construction, the Tool is downloaded, embedded
in the Place and initialized with information from the Place Description
Document.
5. Elements of Shared Place Definition Language (SPDL)
SPDL is a part of the Shared Place technology that enables description
of the customized problem-specific collaboration environments. Its
syntax is based on XML. The following sections present all types
of SPDL documents and their elements. To make the concepts easier
to understand we gradually develop the description of a virtual
place using language constructs as they are introduced. As an example
we use a Place that can be accessed by scientists for discussion
of experiment results.
5.1. Place Definition Document
The first type of an SPDL document is a Place Definition Document.
It is composed of two parts. The first part, collaboration functionality
description, defines collaboration functionality of the Place.
This part is expressed entirely in SPDL. The second part, layout
description, defines the appearance of the Place—how the Place
is displayed to the user. The template of a simplified Place Definition
Document is presented below.
<SPDL>
<PLACE>Collaboration functionality</PLACE>
<HTML ROLE="role1">
Definition of layout for role1</HTML>
<HTML ROLE="role2">
Definition of layout for role2
</HTML>
</SPDL>
The definition of collaboration functionality of the Place is
contained in the PLACE element. Two types of layout, for role1 and
for role2 are described by separate HTML elements. The user will
see different layout depending on the role assigned in the Place.
5.1.1. Collaboration Functionality Description. The collaboration
functionality description is composed of several parts that express
various aspects of Place customization. It is contained in the PLACE
element of the Place description.
General Place Information. This part of the SPDL document
contains general information about the Place such as the Place name
and description of its functionality. It also provides the data
used to establish contact with the Shared Place server and the repository
with Public Artifacts. The following fragment of SPDL specification
contains general information about the example Place:
<PLACENAME>Experiment Results</PLACENAME>
<DESCRIPTION>
This place is dedicated to the analysis of the
experiment results obtained by team alpha
</DESCRIPTION>
<MAIN>
sp://lab.syr.edu:8001
</MAIN>
<REPOSITORY>
ftp://archive.syr.edu
</REPOSITORY>
Successive elements contain data about the Place name, Place description,
URL of the Shared Place server and URL of the Artifact repository
server. As the example shows, the Shared Place server and the repository
server can run on different machines.
Users. The users who can access the Place are organized
into groups. Each group can contain arbitrary number of members.
The following fragment of SPDL specification defines three groups:
<GROUP_DEF NAME="alpha">
<USER>john</USER>
<USER>susan</USER>
</GROUP_DEF>
<GROUP_DEF NAME="beta">
<USER>steve</USER>
<USER>mary</USER>
</GROUP_DEF>
<GROUP_DEF NAME="gamma">
<USER>helen</USER>
<USER>mike</USER>
<USER>sam</USER>
</GROUP_DEF>
We assume that the users working on the research project belong
to groups alpha, beta, and gamma. The defined groups are used in
further sections of the SPDL document to specify various properties
of the virtual place.
Roles. It is possible to assign a specific role to an arbitrary
Visitor or to a group of Visitors in the Place. A role is a key
construct in the collaboration functionality and layout specification.
The behavior of Place collaboration components (Tools, Gates, and
Agents) and the Place appearance are determined by the role of the
Visitor. Currently, Shared Place supports only static roles; the
Visitors cannot switch from one role to another when they are present
in the Place. The following fragment of SPDL specification presents
an example of the role definition:
<ROLE_DEF NAME="author">
<GROUP>alpha</GROUP>
</ROLE_DEF>
<ROLE_DEF NAME="guest">
<GROUP>beta</GROUP>
<GROUP>gamma</GROUP>
</ROLE_DEF>
In this case, two roles are defined. Researchers from alpha group
prepared the experiment, therefore the author
role is assigned to the members of this group. The members of two
other groups have the guest role.
Behavior. The behavior description part of the Place Definition
Document allows definition of templates of behaviors for various
Place components. The behavior of a component is defined by a set
of properties that have a form of a name/value pair. Some properties
have preprogrammed meaning and must be understood by all collaboration
components of certain type. For example, all Tools must understand
synchronization, floor control, and Artifact access properties.
Other properties are component specific. The fragment of SPDL specification
presented below describes two types of behavior: full control
and limited
control:
<BEHAVIOR_DEF NAME="full control">
<PROPERTY NAME="synchronization" VALUE="instant"/>
<PROPERTY NAME="control" VALUE="full"/>
<PROPERTY NAME="floor control" VALUE="assign
on demand, ask on release"/>
<PROPERTY NAME="artifact access" VALUE="read,
write"/>
<PROPERTY NAME="user interface" VALUE="full"/>
</BEHAVIOR_DEF>
<BEHAVIOR_DEF NAME="limited control">
<PROPERTY NAME="synchronization" VALUE="instant"/>
<PROPERTY NAME="control" VALUE="limited"/>
<PROPERTY NAME="floor control" VALUE="assign
on demand, unconditional release"/>
<PROPERTY NAME="artifact access" VALUE="read"/>
<PROPERTY NAME="user interface" VALUE="floor
control, artifacts read, view modes"/>
</BEHAVIOR_DEF>
The full control behavior allows a user to access full functionality
of a Tool. The floor control is assigned to the user on demand,
and the tool asks for the permission before floor release. Reading
from and writing to Artifacts is allowed. Moreover, a Tool displays
full user interface. The limited control behavior imposes restrictions
on Tool access. The floor control is assigned on demand but it can
be taken back without request for approval. Artifacts can be accessed
only for reading and the functionality of a user interface is limited.
Tools. Tools are described by the document elements that
define unique name of a Tool, associate Visitor roles with Tool
behavior rules, and provide information about the location of the
Tool Descriptor. Also, additional properties, which are independent
of the Visitor role, can be defined. The fragment of the SPDL document
below presents example Tool definition element for data viewer:
<TOOL_DEF NAME="data viewer">
<POLICY ROLE="author" BEHAVIOR="full control"/>
<POLICY ROLE="guest" BEHAVIOR="limited control"/>
<IMPLEMENTATION>
http://components.syr.edu/dev/viewer.spdl
</IMPLEMENTATION>
<PROPERTY NAME="style" VALUE="compact"/></TOOL_DEF>
The definition assigns full control over the Tool to the Visitors
who assume role of an author and limited control over the Tool to
guest Visitors. Moreover, the location of the Tool Descriptor, viewer.spdl, is provided as well as the style property, which defines overall look
and feel of the data viewer.
The Shared Place framework does not implement any mechanisms for
enforcing the behavior rules defined for the collaboration components
(the Shared Place framework enforces only certain properties, which
apply to the entire Place, for example user access). The values
of all properties are available to the collaboration component and
depend on the Visitor role. It is up to the collaboration component
to interpret the behavior properties in meaningful manner. Such
approach was taken on purpose. Even though it would be possible
to define complete language for description of collaboration functionality,
the creation of documents in such language would be time consuming
and would lead to complex and difficult to understand specifications.
Therefore we require the Tool to understand only limited number
of generic properties and allow definition of arbitrary number of
Tool-specific properties.
Gates. Gates are defined in similar manner as Tools. However,
there is one important additional element in the Gate description:
DESTINATION.
The destination property points to the SPDL document, which
describes the Place the gate leads to. The fragment of SPDL specification
included below shows an example Gate description:
<GATE_DEF NAME="experiment setup gate">
<DESTINATION>
http://nextlab.syr.edu/placedefinitions/setup.spdl
</DESTINATION>
<IMPLEMENTATION>
http://components.syr.edu/dev/gate.spdl
</IMPLEMENTATION>
</GATE_DEF>
Presented Gate offers the same functionality to all users (no
POLICY tag) and leads to the Place that enables
setup of the experiment.
Artifacts. A Place Definition Document may contain information
about embedded permanent Artifacts. Those artifacts cannot be deleted
by Tools or Agents. In addition, the Place Definition Document must
contain a section that associates Tools with specific types of Artifacts
and a section that defines Place-wide access rights to the Public
Artifacts.
Agents. A part of the document that describes an Agent
follows the same pattern as the description of a Tool. It contains
the description of the user interface component and, in addition,
the information about the allowed actions of the server side component
of the Agent. Also, the Place Definition Document must contain appropriate
declaration that enumerates the types of Agents, which are allowed
to enter the Place.
5.1.2. Layout Description. The layout can be described
in an arbitrary markup language that conforms to the XML specification.
In particular, it can be HTML. That gives Place developers the ability
to reuse all the resources that are available for building Web pages
in construction of virtual places. The layout description contains
embedded fragments of the SPDL that refer to the entities defined
in the collaboration functionality description. The Place Definition
Document may contain specifications of several layouts, appropriate
for various user roles. The fragment of SPDL specification included
below provides greatly simplified layout description:
<HTML ROLE="author">
<HEAD>
<TITLE>
Place with the experiment results - author interface </TITLE>
</HEAD>
<BODY>
Hello, member of alpha group!
<TOOL NAME="data viewer" WIDTH="300" HEIGHT="250"/>
<TOOL NAME="chat" WIDTH="300" HEIGHT="250"/>
<GATE NAME="experiment setup gate" WIDTH="120"
HEIGHT="60"/>
</BODY>
</HTML>
<HTML ROLE="guest">
<HEAD>
<TITLE>Place with the experiment results - guest interface </TITLE>
</HEAD>
<BODY>
We would like to welcome our guests from other research groups at
our place dedicated to discussion of the latest results of the experiments.
Please use provided tools for communication with experiment authors
to get more information.
<TOOL NAME="data viewer" WIDTH="300" HEIGHT="250"/>
<TOOL NAME="chat" WIDTH="300" HEIGHT="250"/>
</BODY>
</HTML>
Two layouts: for users with the author role and for users with
the guest role are defined. Each contains two Tools: a chat and
a data viewer defined in the collaboration functionality description
part of the document. In addition, the layout specification for
authors contains a Gate to the experiment setup Place.
5.2. Shared Place Descriptors
Apart from the Place Definition Document, Shared Place uses other
documents: collaboration component descriptors (Tool Descriptor,
Agent Descriptor, and Gate Descriptor), Artifact Descriptors, and
Visitor Descriptors.
Component descriptors are used to specify properties of Tools,
Agents, and Gates. They characterize customizable properties recognized
by the collaboration components. Each property is described by a
unique name, a type and a set of allowed values. The descriptors
of collaboration components contain information about the location
of the component implementation.
An Artifact Descriptor is another type of SPDL document. It contains
metadata about an Artifact: a location of the content, a content
type, a name of the author, a date of the creation. The Artifact
Descriptor can also provide information about special mechanisms
that are required to access the content of the Artifact. The Artifact
Descriptor contains a pointer to the descriptor of the default Tool
that can be used to access content of the Artifact.
The last type of document used by Shared Place, Visitor Descriptor,
provides identity information about a user represented by a Visitor.
It corresponds to a business card presented whenever the user accesses
a specific Place. It contains such data as the user name, the e-mail
address, the home Web page or Place, and the public key used for
data encryption.
6. Related Work
There are many other environments and systems that employ place
metaphor: Multi User Dungeons (MUD and MOO) [9], Collaborative Virtual
Workspace [13] or TeamRooms [16], but they are not integrated with
Web environment and usually they do not allow for dynamic component
customization. Artefact [10] is a Web-based framework for building
collaborative applications that supports a room metaphor. Artefact
rooms are built from a set of HTML frames that contain information
about applications, objects and users. The system provides Artefact
Definition Language (ADL) that allows building simple collaboration
tools by composing HTML and Tcl constructs. Although the approach
is similar, Shared Place differs in several aspects. Virtual environments
built using Shared Place are not restricted to one type of layout;
HTML documents with arbitrary structure can be used to define appearance
of the Place. Moreover, Shared Place allows arbitrary collaboration
components to be embedded in the document as interactive content
to create integrated environment. In addition to collaboration tools,
Shared Place supports construction of other specialized components
such as Gates and Agents. Finally, Shared Place employs SPDL to
describe the functionality of the individual collaboration components
as well as the behavior and the appearance of the entire Place.
7. Implementation Status
The Shared Place technology is still a work in progress, however
we believe that the main concepts are mature enough to be presented.
The prototype versions of the Shared Place server, the framework
components, and the SPDL processor are already implemented. Right
now we experiment with various descriptions of virtual places to
refine the design of the SPDL.
8. Conclusions
Shared Place offers generic platform for building synchronous
and asynchronous collaboration environments. It provides services
that enable creation of the sophisticated collaboration tools suitable
for multiple tasks. It allows the developer to concentrate on problem-oriented
functionality of the application.
The Shared Place technology is tightly integrated with the Web
infrastructure. There are several benefits of this approach. As
Web technologies develop, Shared Place also gains new features.
In addition, collaboration components based on the Shared Place
platform have access to the vast Web infrastructure of data and
document storage. Also, by using only browser as the environment
for component execution we gain platform independence. Finally,
SPDL documents conform to the standard markup syntax, therefore
they can be generated dynamically by Web server modules—servlets,
JavaServer Pages, or CGI scripts using information about user preferences
and tasks to be executed.
Virtual places created using Shared Place can be extensively customized
because each Place is generated from a SPDL specification. However,
this feature creates another challenge: how to make the application
of Shared Place technology, in spite of the overall complexity of
the collaboration environment building process, simple enough to
allow users without programming experience to build their own Web
Places. This issue is addressed by using intuitive, place-oriented
model of collaboration, reuse of already existing Web resources,
employment of a XML based markup language to describe properties
of collaboration components, and byseparation of tool and Place
development process. The last feature is very important because
if allows users to create collaborative environments from available
components according to their needs.
We demonstrated that Shared Place technology is a feasible platform
for development of Collaborative Problem-Solving Environments. Some
aspects of the system still require development effort (support
for Agents, platform specific tools, synchronized recording of collaboration
sessions), but most of the requirements for the collaboration layer
of a CPSE identified by us are already satisfied. Also, an extensive
library of problem-solving tools must be developed. It is important
to understand that not only Shared Place does support design and
implementation of specific collaboration tools, but enables building
complete environments, which can operate in integrated fashion as
well. Shared Place technology tries to realize this goal by merging
synchronous and asynchronous collaboration services, component technology,
customizability, support for the place metaphor, and reuse of Web
resources.
10. References
[1] Advanced Visual Systems
(AVS), http://www.avs.com
[2] Arnold, K., O'Sullivan,
B., Scheifler, R. W., Waldo, J., and Wollrath, A., The Jini™ Specification,
Addison-Wesley, 1999.
[3] Autodesk, AutoCAD,
http://www.autodesk.com
[4] Beca, L., "Applications of XML and Customizable Components
in Building Virtual Places on the Web", Proceedings of the
Ninth IEEE International Workshops on Enabling Technologies: Infrastructure
for Collaborative Enterprises, June 2000, pp. 242-247
[5] Beca, L., Cheng, G., Fox,
G. C., Jurga, T., Olszewski, K., Podgorny, M., Sokolowski, P., and
Walczak, K., Java enabling collaborative education, health care,
and computing, Concurrency: Practice and Experience, Vol.
9(6), June 1997, pp. 521-533.
[6] Beca, L., Fox, G. C.,
Podgorny, M., Component Architecture for Building Web-Based Synchronous
Collaboration Systems, Proceedings of WETICE'99, June 1999,
pp.108-113.
[7] Burridge, R., Java Shared
Data Toolkit User Guide, Sun Microsystems, Inc.,
http://java.sun.com/products/java-media/jsdt/index.html
[8] Chappell D., Understanding
ActiveX and OLE: A Guide for Developers & Managers, Microsoft
Press, 1996.
[9] Curtis, P., Nichols, D.A.,
MUDs grow up: Social Virtual Reality in the Real World, Proceedings
of the 1994 IEEE Computer Conference, 1994.
[10] Dobridge, T., Lin, J.,
Rajan, D., Roscoe, T., Brandenburg, J., Byerly, B., Artefact: A
Framework for Low-Overhead Web-Based Collaborative Systems, Proceedings
of the ACM CSCW'98, November 1998, Page 189 - 196.
[11] Houstis, E. N., Rice,
J. R., Weerawarana, S., Catlin, A. C., Papachiou, P., Wang, K.-Y.,
Gaitatzes, M., PELLPACK: a problem-solving environment for PDE-based
applications on multicomputer platforms; ACM Transactions on
Mathematical Software, Vol. 24(1), March 1998, pp. 30-73.
[12] Kauppinen, K., Kivimäki,
A., Era, T., Robinson, M., Producing identity in collaborative virtual
environments, Proceedings of the ACM Symposium on Virtual reality
software and technology, November 1998, pp. 35 - 42.
[13] Mosier, J. N., Deus,
L. M., Carlson, J. A., Spellman, P. J., Collaborative Virtual Workspace;
Proceedings of the International ACM SIGGROUP Conference on Supporting
Group Work, November1997, pp. 197 - 203.
[14] Orfali, R., Harkey, D.,
Edwards, J., The Essential Client/Server Survival Guide, Second
Edition, John Wiley and Sons. 1996.
[15] Pacific Northwest National
Laboratory, Extensible Computational Chemistry Environment (Ecce),
http://www.emsl.pnl.gov:2080/docs/ecce
[16] Roseman, M., Greenberg,
S., TeamRooms: Network Places for Collaboration, Proceedings
of the ACM CSCW'96, November 1996, pp. 325 - 333.
[17] Sanner,M. F., Duncan,
B. S., Carrillo, C. J., and Olson, A. J., Integrating Computation
and Visualization for Biomolecular Analysis: An example using Python
and AVS, Proceedings of Pacific Symposium in Biocomputing
`99. pp 401-412.
[18] Schur, A., Keating, K.
A., Payne, D. A., Valdez, T., Yates, K. R., Myers, J. D., Collaborative
suites for experiment-oriented scientific research, interactions,
Vol. 5(3), May 1998, pp.40 - 47.
[19] Sun Microsystems, The
JavaBeans 1.01 Specification, http://java.sun.com/beans.
[20] World Wide Web Consortium,
Extensible Markup Language (XML) 1.0, W3C Recommendation
http://www.w3.org/TR/REC-xml, February 98.
|