%% \PARA{Principals, Roles and Participants.}
% A language abstraction (such as ``while'' in imperative languages)
% serves both as a tool for description and as a basis of
% implementation. In other words a good abstraction should capture the
% desired behaviours cleanly and without losing generality; and should
% serve as an effective medium to efficiently realise these desired
% behaviours by mapping them to an available execution mechanism.

\NI This protocol uses a single
interaction (more complex examples will appear later).
A {\em protocol} such as \name{GreetWorld} gives a global
description of interactions among two or more
participants. A {\em session},
or {\em conversation}, is an instantiation of a protocol that
follows the protocol's rules of engagement.
%%
%We conceptually distinguish the notions of {\em principal} and {\em role} in conversations. 
{\em Principals} represent entities, such as corporations
and individuals, who are responsible for
performing communication actions in distributed
applications. When a principal participates in a conversation
(i.e.~becoming its {\em participant}), it
does so by taking up specific role(s) stipulated in 
the underlying protocol.
% To summarise,
% %\begin{quote}
%   a \emph{principal} participates in a conversation -- an
%   instantiation of a protocol -- by taking up \emph{role(s)} of the
%   protocol.
% %\end{quote}


\PARA{Transport Characteristics.}
We assume the following properties of the underlying message
transport. This is an important assumption to understand 
the semantics of {\scribble}. 
  \begin{ITEML}
  \item {\em Asynchrony}: send actions are non-blocking.
  \item {\em Message order preservation}: the order of messages from the
    same participant to another participant in a single conversation
    is preserved.
  \item {\em Reliability}: a message is never lost or tampered with during
    transmission.
  \end{ITEML}

\NI These properties may be realised by a transport layer
possibly combined with runtime systems at endpoints. They are
natural assumptions for many existing transports, be it in Internet,
high-performance LAN or on-chip interconnect.

% From the abstraction concerns, many application domains demand a point
% of focus for capabilities and responsibilities in communication
% actions. These are properties of principals, and by associating such
% properties to each role in a protocol, we can ensure that a participant
% in a conversation following the protocol should always satisfy these
% properties.

% Thus participants/principals/roles offer basic mechanisms to treat
% endpoints when programming conversations. Since a conversation is
% realised by the behaviour of endpoints, the abstraction of endpoints
% plays an essential role for a consistent abstraction framework.


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "main"
%%% End: 
