Check out the new USENIX Web site. next up previous
Next: A SIMPLE EXAMPLE Up: A Collaboration Specification Language Previous: INTRODUCTION

GENERAL MODEL

  A collaboration is a group activity (e.g. a course, a meeting, a game, etc.) which involves a group of participants. A participant is usually a human being but can also be a set of software agents. In a collaboration there are usually multiple participants each playing one or more roles. The concept of role refers to the set of participants governed by the same set of coordination policies. In a collaboration, one participant may be playing multiple roles and one role could be enacted by multiple participants at the same time. For example, in a project meeting, one participant plays the project manager role and the others are in a normal member role. The manager is able to see and modify the drawings of the normal members, while the latter can see but are not allowed to modify the drawings of other participants.


 
Figure 1:   Internal structure of the cocavm
\begin{figure}
\centerline{
\psfig {figure=fig_model.eps}
 }
\centering \end{figure}

In our model, a cocavm runs at each participant site to enforce the coordination policies by controlling the interactions between this participant and other collaborators. As shown in Figure 1, a cocavm consists of an inferencing engine and an internal database. The inferencing engine monitors messages communicated in the collaboration, firing the active rules unified with the message, and performing actions according to the policy specification. The internal database maintains state information regarding the ongoing collaboration.

Participants in a collaboration use collaboration tools, such as web browsers[18], whiteboard tool[17], floor control tool[16], and the audio/video tools, to collaborate with each other. At each site, the collaboration tools and a cocavm are connected by a conference bus. All the cocavms in the same collaboration are connected by a collaboration bus. Those buses contain channels which communicate messages between connected entities. A channel can be both unicast(one to one) and multicast(one to many).

csdr, the collaborative session directory tool, is the simple runtime user interface of COCA. The user can use it to create sessions out of a given collaboration specification, browse existing sessions, and join a session by taking roles from it. In particular, the session creator must provide, among other information, actual IP addresses and port numbers for the channels declared in the collaboration bus. Individual participants must provide this information for the conference bus channels. Such bindings were termed relocation of role and collaboration respectively[16].


next up previous
Next: A SIMPLE EXAMPLE Up: A Collaboration Specification Language Previous: INTRODUCTION
Du Li
8/25/1999