Check out the new USENIX Web site. next up previous
Next: Policy Composition Up: THE SPECIFICATION LANGUAGE Previous: Constructor and Destructor

Collaboration

A collaboration is defined in the following form:
\begin{smalltab}
\= {\bf collaboration} $<$collaboration name$\gt$\space \\  
\\...
 ...ace \} ] \\ \\ gt \\ gt $<$role definitions$\gt$\space \\ \\ gt \}\end{smalltab}

An operator ``::'' is used for identifying the scope of a name. The normal form is S::R::C, where S stands for collaboration or session name, R for role name, and C for channel name or predicate name. The prefixes can be omitted if there is no confusion.

A collaboration may consist of sub-collaborations. For example, in activities such as conferences and classrooms, it is not uncommon that participants with similar interest form subgroups. So the language should provide constructs to facilitate establishing new sessions out of given collaboration types and tearing down existing sessions. The following operators are defined for this purpose.
\begin{smallenum}
\item {\bf create} $Session$, $Collaboration$
\item {\bf destroy} $Session$\end{smallenum}
After a session is created, the user can join it by command ``take Session::Role''.



Du Li
8/25/1999