Sie sind auf Seite 1von 2

An Agent Platform for Reliable Asynchronous Distributed Programming

L. Bellissard , N. De Palma, A.Freyssinet , M. Herrmann, S. Lacourte


Sirac Project and AAA-Dyade, INRIA Rhône-Alpes
655, Avenue de l’Europe, F-38330 Montbonnot - FRANCE
Luc.Bellissard@inrialpes.fr

Abstract only to messages but not necessarily to software


Production of reliable and flexible distributed applications components themselves.
is a growing area of interest and research. Various In this paper, we introduce a Message Oriented
middleware technologies are often used as the Middleware which combines the previously stated
communication infrastructure and as a practical ease to communication properties as well as a programming model
the network programming problem. Among them, of distributed, persistent software entities called agents into
Message-Oriented Middleware (MOM) are known to a single homogeneous platform. The platform handles not
provide reliable and flexible communication through only reliable communication but also recovery of software
asynchronous message passing. This kind of middleware is failures, while the programming model of the software
of particular interest when coordinating components that entities remains simple and flexible.
are not designed for simultaneous execution. Usually,
MOM focus on the communication layer with a 2. Agent Model
programming interface, charge to the external components
2.1. Agent paradigm
to adapt to the MOM communication model. In this paper,
The agent paradigm is close to the reactive object
we introduce a distributed programming model based on
paradigm[1] in an asynchronous world. Agents are active
autonomous software entities called agents. Agents act as
objects which can run concurrently and have their own
the glue software components and they offer reliable and
state. They behave according to an event/reaction model.
flexible properties like atomic execution or migration from
An event is a typed data structure used for exchanging
node to node. The combination of both a MOM and agents
information with other agents. Information means in this
has been implemented in the AAA platform presented in
particular case any data structure that can be passed by
the second part of the paper.
value or agent references. Once an agent receives an event,
it reacts accordingly thus changing its state and/or
1. Introduction communicating with other agents. This event/reaction
Reliable and flexible distributed applications is a model is based on a message-passing middleware which
growing area of interest. Various middleware technologies ensures asynchronous and anonymous communication
like CORBA, DCOM[2], RMI[7] are providing solutions properties.
but some application domains are not fully covered by
those technologies. For example, “24 by 7” Anonymous communication means that agents never
environments[5] request hardware or software failure know events targets. To receive an event, agent must
recovery, guaranteed transmission, flexible cooperation subscribe to a specific event source which is the agent
between software components and scalability. Message producer of this event.
Oriented Middleware (MOM) are the alternative to
classical middleware. MOM are based on asynchronous Asynchronous communication property decouples
messages as the single structure for communication, producers of information from consumers. They do not
coordination and synchronization, thus allowing need to be both ready for execution at the same time.
desynchronized execution of components. Reliable
communication is guaranteed by message queueing 2.2. Infrastructure Properties
techniques (e.g. MQSeries [3]) or specific communication Services provisioning in a highly distributed environment
protocols (e.g. iBus[4]) that can be added independently requires a flexible, scalable and reliable infrastructure.
from the programming of software components. However, In order to cope with application unavailability due to
current solutions only provide to programmers a failures, the agent infrastructure provides transactional
communication interface (e.g. JMS[8]). Recovery applies facilities and a reliable communication mechanism.
• Agent properties Agent server Agent server

Agents are persistent. This means that the agent lifetime is A1 A2 A4 A5


not bounded to the duration of the execution. However, A3 A6

persistency is not sufficient for retrieving a consistent state


after failure. Also, agent reactions are atomic. This channel engine channel engine

property ensures that a reaction is either fully executed or


not executed at all. Message queues Messages queues

Agents are true distributed objects; each of them has a


global unique reference, they can be remotely installed and
created, and can be migrated from node to node. Figure 1 Agent platform architecture

• Communication properties 3.3. Discussion about the Infrastructure


The communication infrastructure provides asynchronous Agents of a same server do not really run concurrently,
message passing between agents. What characterizes since an engine is in charge of activating them once at a
MOM is the guaranteed delivery of messages, through time. This implementation choice has several advantages: a
persistence of senders’ events in queues while it is not lightweight implementation of atomic reactions and the
delivered to the receivers. A transaction ensures the scalability of the number of agents.
delivery. In addition the infrastructure provides causal Nevertheless, real parallelism can always be achieved with
ordering[6] for events delivery. several agent servers on a same machine.

3. Architecture 4. Conclusion
Current Middleware technology such as CORBA or
3.1. Agent Platform Architecture Overview DCOM do not fit well to classes of application where
The runtime architecture provides the communication desynchronize execution of components and reliable
infrastructure. Intuitively, message queuing is a technique communication are essential.
for sending messages from one program to another by We have described an agent infrastructure based on a
directing messages to a queue as an intermediate storage software bus which embed built-in mechanisms for
point. The basic behavior is that an agent sends events reliable events sending. Experiments have been undertaken
using the sendTo method. Events are encapsulated in in cooperation with Business Units of Bull S.A. in the
messages. The bus forward messages over the network and fields of Network security and system supervision. Up to
stores them in a queue. When a listening agent is ready to 1000’s of agents are used for the analysis and audit of
run, the bus gets the first message in the queue and calls the network traffic incoming through firewalls deployed on a
agent reaction which handles the event. system with up to a hundred nodes. Agents properties
seems to be well suited to such a large-scale distributed
3.2. Inside the agent infrastructure system where information delivery and service
The architecture of the MOM can be divided into three
provisioning must be guaranteed at all time.
entities parts:

Agent Server : it is a single process that manages a set of 5. References


[1] G. Agha, P. Wegner, A. Yonezawa, eds (1993), “Research
agents. All agent server can communicate with each other,
Directions in Concurrent Object-Oriented Systems”, the MIT
thus implementing a part of the software bus. Each server Press, Cambridge, MA, 1993
has an engine, which is in charge of enacting agents [2] D. Rogerson, “Inside DCOM”, Microsoft Press, Redmond,
according to the events received. Atomicity of agents’ WA, 1997
reaction is achieved by the engine. [3] B. Blakeley, H. Harris, J.R.T. Lewis, “Messaging and
Agents : it is the unit of execution. An agent is a passive Queueing Using the MQI: Concepts and Analysis, Design and
Java object whose reaction is enacted by the server engine Development” 1995:McGraw-Hill. ISBN 0-07-005730-3
component whenever an event is delivered. [4] S. Maffeis, “iBus – The Java Intranet Software Bus”, TR,
Channel (Message queue): it is the communication Softwired A.G., February 1997
[5] B. Oki, M. Pflueg, A. Siegel, D. Skeen, “The Information Bus
infrastructure. A channel is made of representative
– An Architecture for Extensible Distributed Systems”, Operating
contained in each agent server. Each of those are Systems review, 27(5), PP.58-68, Dec. 1993
implemented in their own thread of execution, thus [6] Raynal M., Singhal M., “Logical Time : Capturing Causality
handling communication, reliability and the causality in Distributed Systems”, IEEE Computer , Feb 1996, pp.49-56
properties. [7] Sun Microsystems, “RMI: Remote Method Invokation “, July
1997
[8] Sun Microsystems, “Java Message Service”, v. 1.0.1, October
1998.

Das könnte Ihnen auch gefallen