• There is always a gap between system specification
and implementation.
In this paper, we apply the coordination language
Reo to address above problems. Reo has a formal
semantics and is dynamically reconfigurable. To
implement an organization using Reo language, we
propose a formal model to specify the organization of
multi-agent systems. Then we use Reo to implement
the specification of the organization. Applying the
formal specification makes the implementation process
by Reo language systematically. We can use the formal
semantics of Reo to evaluate the properties of the
organization and overall system performance, security,
flow of information, etc.
Structure of the paper: The organization metaphor is
described in Section 2. In Section 3 we explain the Reo
concepts and in Section 4, we explain our formal model
for an organization. In Section 5, we explain how to
implement an organization by Reo language. In Section,
6,we specify and implement an example system using
our formal approach. Finally in Section 7, we explain our
concluding remarks and future works.
2 ORGANIZATION
In the traditional design of concurrent and distributed
systems, the architecture is derived from the
decomposition of functionalities and the data required by
system to achieve its goals as well as the definition of
their inter-dependencies. However, using organizational
concepts to design such systems, leads to a number of
agents, each with specific roles in the system. In this
model, agents interact to accomplish their tasks and,
agents embed most of the functionalities they need, so
the interactions of agents are reduced which makes the
design less complex and easier to manage. Most MASs
are intended to support or control some real-world
organizations. In such cases, an organizational-based
MAS design reduces the conceptual distance between
the software system and the real world system it has to
support.
An organizational structure defines the specific class
(among the many possibilities) of organization and
control regime to which the agents/roles have to conform
in order for the whole MAS to work efficiently and
according to its specified requirements (Zambonelli et
al., 2000). These organizational structures are usually
described in terms of a variety of social and
organizational concepts such as norm, trust, power,
delegation of task, responsibilities, permission, access to
resources and communication (Dastani et al., 2005). The
organization structure defines admissible actions of agent
interactions. For instance when there is delegation
relation between two agents, one agent can delegate task
to another agent. So, the delegating agent has a
delegation action in its interaction protocol.
Organizational rules express general, global (supra-
role) requirement for the proper instantiation and
execution of a MAS (Zambonelli et al., 2000; DeLoach,
2002). These rules indicate some constraints between
two communicating agents or an agent and organization.
3 REO CONCEPTS
Reo is a channel-based exogenous coordination
language based on the calculus of channels (Arbab,
2004; Arbab and Rutten, 2003; Arbab, 2003). Reo
consists of components that are connected via complex
coordinators, called connectors or networks, which
coordinate their activities. Connectors are
compositionally built out of simpler ones. The simplest
connectors in Reo are a set of channels with well-
defined behaviour supplied by the users (Arbab, 2004).
Agents communicate with each other by means of I/O
operations they perform through the I/O interfaces of
the connectors. The connector imposes a specific
coordination pattern on agent actions without any
knowledge about their internal communications. A
channel has precisely two channel ends. There are two
types of channel ends: sink and source. A sink channel
end dispenses data out of its channel and a source
channel end accepts data into its channel.
A connector is a set of channels and channel
ends organized in a graph of nodes and edges.
Channels are joined together in a node, so, a node is
a construct which consists of a set of channel ends.
Reo provide two types of operations: topological
–ones that allow manipulation of connector topology
and IO – ones that allow input/output of data. Reo
enables components to connect and perform I/O on
the connector, namely read, take and write.
Topological operations are join and split, because of
space limitation we do not explain them here.
As we mentioned earlier, Reo has operational
semantics (Arbab, 2003). The semantics of a Reo
connector is defined by the composition of the semantics
of its channels and nodes. Users define the semantics of
channels and Reo defines the semantics of nodes.
Arbab has defined a set of complete channel
types (Arbab, 2004), namely Sync, Filter,
SyncDrain, LossySync, and FIFO-1. Figure 1 shows
the visual notation for these channels.
Figure 1: Visual notation for basic channels.
WEBIST 2006 - WEB INTERFACES AND APPLICATIONS
448