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].