=Paper=
{{Paper
|id=None
|storemode=property
|title=Towards a Flexible Development Framework for Multi-Agent Systems
|pdfUrl=https://ceur-ws.org/Vol-621/paper08.pdf
|volume=Vol-621
|dblpUrl=https://dblp.org/rec/conf/woa/Poggi10
}}
==Towards a Flexible Development Framework for Multi-Agent Systems==
Towards a Flexible Development Framework
for Multi-Agent Systems
Agostino Poggi
Dipartimento di Ingegneria dell'Informazione
University of Parma
Parma, Italy
agostino.poggi@unipr.it
Abstract—In this paper, we present a software framework, called Therefore, it is possible to state that the MAS
HDS (Heterogeneous Distributed System), that tries to simplify community has yet to demonstrate the significant benefits of
the realization of distributed applications and, in particular, of using agent-oriented approaches to solve complex problems,
multi-agent systems, by: i) abstracting the use of different but also that some efforts should be done for facilitating the use
technologies for the realization of distributed applications on and the integration of MAS technologies and solutions in
networks of heterogeneous devices connected through a set of mainstream software development technologies and solutions.
different communication transport protocols, ii) merging the
client-server and the peer-to-peer paradigms, and iii) In particular, MAS developers should avoid to consider
implementing all the interactions among the processes of a MAS solutions a “panacea” for all the kinds of system.
system through the exchange of typed messages that allow the Therefore, a MAS should be realized only when the
implementation of a large set of communication protocols and components of a system must express the typical features (i.e.,
languages. proactiveness, sociality and goal) that distinguish a software
agent from another software component.
Keywords - software framework; layered framework; typed
message, composition filter. The case when a new MAS is realized and must be
embedded and integrated with an existing software
I. INTRODUCTION environment, where other software systems are running and
interact with each other, deserves particular attention. In this
In the early 1990s, Multi-Agent Systems (MAS) were put case, MAS developers usually try to propose, as most effective
forward as a promising paradigm for the realization of complex integration solution, the “agentification” of the other software
distributed systems. Over the years, MAS researchers have systems even if this kind of integration, besides requiring the
developed a wide body of models, techniques and burden of encapsulating the interface of a non-agent based
methodologies for developing complex distributed systems, system with a code that generates and processes messages of
have realized several effective software development tools, and the agent communication language (ACL) used by the MAS,
have contributed to the realization of several successful often might not guarantee the level of performance, security
applications. However, even if today’s software systems are and transactionality required in such a software environment. It
more and more characterized by a distributed and multi-actor is because the majority of the MAS community has still the
nature, that lends itself to be modeled and realized taking belief that agents are the best means for supporting software
advantage of MAS techniques and technologies, very few interoperability. This belief comes from the first important
space in software development is given to the use of such works on MAS [6][7] and was partially supported by the
techniques and technologies. specifications for agent interoperability defined by FIPA [8];
It is due to several reasons [1][2][3][4][5]. One of the however, in the last ten years the advent and the success of
most important reasons is that the large part of software Web services and service-oriented architecture have shown that
developers have few knowledge about MAS technologies and what software customers and developers want is a solution that
solutions: it is mainly because of the lack of references to the simply renew the traditional ways of integrating systems,
results of MAS research outside the MAS community. avoiding any solution that might be considered too complex or
Moreover, even when there is a good knowledge about MAS, that might reduce the quality of the system.
software developers do not evaluate the possibility of their use In this paper, we present a software framework, called
because: i) they believe that multi-agent approaches are not HDS (Heterogeneous Distributed System), whose goal is to
technically superior to traditional approaches (i.e., there are not simplify the realization of distributed applications taking
problems where a MAS approach cannot be replaced by a non- advantage of multi-agent model and techniques and providing
agent approach), and ii) they consider MAS approaches too an easy way for the integration between MAS and non-agent
sophisticated and hard to understand and to be used outside the based systems. The next section describes the main features of
research community. the HDS software framework. Section three discusses about the
experimentation of such a framework for the realization of both
MAS and non-agent based systems. Finally section four other processes of the application. In particular, a process can:
concludes the paper sketching some future research directions. i) check if an identifier is bound to a process of the application,
ii) get the identifiers of the other processes of its runtime node,
II. HDS and iii) get the identifiers of the processes of the application
whose description satisfies some constraints. The last
HDS (Heterogeneous Distributed System), is a software capability is possible, because, a process can create a special
framework that has the goal of simplifying the realization of type of object, called selector, that define some constraints on
distributed applications by merging the client-server and the the information maintained by the process descriptions (e.g.,
peer-to-peer paradigms and by implementing all the the process must be of a specific type, the process identifier
interactions among the processes of a system through the must have a specific prefix or suffix), then the process sends
exchange of typed messages. In particular, HDS provides both such a selector to the registry service provided by the runtime
proactive and reactive processes (respectively called actors and layer, and the registry service applies the constraints defined by
servers) and an application can be distributed on a the selector on the information of the registered process
(heterogeneous) network of computational nodes (from now on descriptions and sends to the processes the identifiers of the
called runtime nodes). processes that satisfy the constraints defined by the selector.
The HDS software framework model is based on two layers As we wrote above, processes interact with each other
called, respectively; concurrency and runtime layers. While the through the exchange of messages. A message contains the
first layer defines the elements that an application developer typical information used for exchanging data on the net, i.e.,
must directly use for realizing applications, the second layers, some fields representing the header information, and a special
besides providing the services that enable the creation of the object, called content, that contains the data to be exchanged.
elements of the concurrency layer and their interaction, In particular, the content object is used for defining the
abstracts the use of different technologies for realizing semantics of messages (e.g., if the content is an instance of
distributed applications on nets of heterogeneous devices the Ping class, then the message represents a ping request and
connected through a set of different communication transport if the content is an instance of the Result class, then the
protocols. message contains the result of a previous request). In
particular, the message model defined by the concurrency layer
A. Concurrency Layer allows the implementation of a large set of communication
The concurrency layer is based on six main elements: protocols and languages. In fact, the traditional client-server
process, description, selector, message, content and filter. protocol can be realizing associating the request and response
data to the message content element and the most known agent
A process is a computational unit able to performs one communion language, i.e., KQML and FIPA ACL [9], can be
or more tasks taking, if necessary, advantage of the tasks realized by using the content element for the representation of
provided by other processes. To facilitate the cooperation ACL messages.
among processes, a process can advertize itself making
available to the other processes its description. Usually a Normally, a process can interact with all the other
description contains the process identifier, the process type and processes of the application and the sending of messages does
the data that have been used for its initialization; however, a not involve any operation that is not related to the delivery of
process may introduce some additional information in its messages to the destination; however, the presence of message
description. filters can modify the normal delivery of messages. A message
filter is a composition filter [10] whose primary scope is to
A process can be either an actor or a server. An actor is a define the constraints on the reception/sending of messages;
process that can have a proactive behavior and so can start the however, it can also be used for manipulating messages (e.g.,
execution of some tasks without the request of other processes. their encryption and decryption) and for the implementation of
A server is a reactive process that is only able to perform tasks replication and logging services.
in response of the request of other processes.
The runtime layer associates two lists of message filters
A process can interact with the other processes through with each process: the ones of the first list, called input
the exchange of messages based on one of the following three message filters, are applied to the input messages and the
types of communication: i) synchronous communication, the others, called output message filters, are applied to the output
process sends a message to another process and waits for its messages. When a new message arrives or must be sent, the
answer; ii) asynchronous communication, the process sends a relative message filters are applied to it in sequence until a
message to another process, performs some actions and then message filter fails; therefore, such a message is stored in the
waits for its answer and iii) one-way communication, the input queue or is sent only if all the message filters have
process sends a message to another process, but it does not wait success.
for an answer. In particular, while an actor can start all the
three previous types of communication with all the other
B. Runtime Layer
processes, a server can either respond to the requests of the
other processes or can delegate the execution of such requests The main goal of the runtime layer is to allow the use of
to some other processes. different technologies for realizing distributed applications on
nets of heterogeneous devices connected through a set of
Taking advantage of the registry service provided by the different communication transport protocols, but abstracting
runtime layer, a process has also the ability of discovering the
such technologies through a tiny API towards the concurrency III. EXPERIMENTATION
layer. In particular, the runtime layer defines a set of services A first experimentation of the HDS software framework
that can be used by the concurrency layer and a set of has been and is still now done and is oriented to demonstrate
interfaces that must be implemented for integrating a new that i) such a software framework is suitable to realize complex
technology and using it for providing the services provided by applications and MAS, and ii) makes easy the reuse of the
the runtime layer. typical models and techniques, that are exhibited in MAS (i.e.,
The main element of the runtime layer is the reference. A the interaction protocols), in other kinds of software systems.
reference is a proxy of the process that makes transparent the The experimentation of the software framework as
communication respect to the location of the process and the means for realizing complex system consists in the
technologies connecting the reference with its process. The development of an environment for the provision of
duty of a reference is to allow the insertion of messages in the collaborative services for social networks and, in particular, for
queue of its process. Therefore, when a process wants to send a supporting the sharing of information among users. The current
message to another process, it must obtain the reference to such release of such an environment allows the interaction among
a process and then use it for putting the message in the input users that are connected through heterogeneous networks (e.g.,
queue of the other process. traditional wired and wireless computer networks and GSM
The access to the reference of a process is possible through and UMTS phone networks), devices (e.g., personal computers
the use of the registry service. This service is provided by the and smart phones), software (e.g., users can interact either
runtime layer to the processes of an application and allows: the through a Web portal or through specialized application, and
binding and unbinding of the processes with their identifiers, users can have at their disposal applications that are able to
description, and references, the retrieval of a reference on the either visualize and modify or only visualize documents) and
basis of the process identifier and the listing of sets of rights (e.g., some users have not the right of performing a
identifiers of the processes of an application by using, if subset of the actions that are possible in the environment). The
necessary, some selectors.. experimentation is still in the first phase, but has been already
sufficient to realize that the integration between actors, servers
The runtime layer has also the duty of creating processes and message filters is a profitable solution for the realization of
and their related references. In fact, it provides a factory adaptive and pervasive applications.
service that allows a process of an application to create other
processes by proving to the runtime layer the qualified name of The experimentation of the use of multi-agent typical
the class implementing the process and its initialization list. models and techniques and of the use of such a software
framework for realizing MAS started with the development of
Finally, the runtime layer provides a filtering service that an abstract implementation of the BDI agent architecture [13],
allow the management of the list of message filters associated and then continued on the parallel development of two
with the processes of an application. In fact a process cannot prototypes of a market place application: both the prototypes
modify any list of message filters. Therefore, taking advantage are based on the HDS implementation of FIPA interaction
of the filterer service, a process can modify the lists of its protocols, but only the first realize the prototype as a MAS by
message filters, but can also drive the behavior of some other taking advantage of realized BDI agent abstract architecture.
processes by modifying their message filter lists. The abstract BDI agent architecture was realized in few time
by simply extending the abstract actor class with: i) a working
C. Implementation memory, where maintaining the beliefs, desires and intentions
The HDS software framework has been realized taking of the agent, ii) a plan library, where maintaining the set of
advantage of the Java programming language. While the predefined plans and iii) an interpreter able to select the plan
runtime layer has been implemented for providing the remote that must be used to achieve the current goal, and then able to
delivery of messages through both Java RMI [11] and JMS execute it. Therefore, starting from this abstract
[12] communication technologies, the concurrency layer implementation, a concrete BDI agent can be obtained by
provides: i) a message implementation, ii) four abstract classes providing the code for initializing and updating the working
that implement the application independent parts of actors, memory and for filling the plan library.
servers, selectors and filters, and iii) a set of abstract and After the realization of such abstract agent architecture,
concrete content classes useful for realizing the typical we start the parallel development of the prototypes of a market
communication protocols used in distributed applications. In place where agents can buy and sell goods through the use of
particular, HDS provides a client-server implementation of all English and Dutch auctions.
the protocols used by processes for accessing to the services of
the runtime layer and a complete implementation of the FIPA This experimentation was done by two groups of master
ACL coupled with an abstract implementation of the "roles" students: the students of the first group had a good knowledge
involved in the FIPA interaction protocols. Moreover, for about artificial intelligence and agent-based systems, because
simplified the deployment of application, current HDS they followed two courses on those topics, and the students of
implementation provides a software tool that allows the the second group had few knowledge about such topics,
deployment of applications through the use of a set of because they did not follow any related course. In few words,
configuration files. the results of the experimentation were that: all the students
had not difficulties to obtain a good implementation of the
version of the application without the use of the BDI agents
that, however, take advantages of the typical multi-agent Current and future research activities are dedicated,
interaction protocols, but while the students without any besides to continue the experimentation and validation of the
knowledge about artificial intelligence and agent-based system HDS software framework in the realization of collaborative
had great difficulties for realizing the version of the application services for social network, to the improvement of the HDS
based on the use of BDI agents and realized some prototypes software framework. In particular, current activities are
that do not completely exploit the characteristic of BDI agents, dedicated to: i) the implementation of more sophisticated
the other students did it obtaining more flexible prototypes than adaptation services based on message filters taking advantages
the ones without BDI agents, but spending a lot of time in their of the solutions presented by PICO [17] and by PCOM [18], ii)
implementation. the automatic creation of the Java classes representing the
typed messages from OWL ontologies taking advantage of the
IV. CONCLUSIONS O3L software library [19], and iii) the extension of the software
framework with a high-performance software library to support
This paper presented a software framework, called HDS, the communication between remote processes, i.e., MINA [20].
that has the goal of simplifying the realization of distributed
applications by merging the client-server and the peer-to-peer
paradigms and by implementing the interactions among all the REFERENCES
processes of a system through the exchange of typed messages. [1] V. Maříka and J. Lažanský. Industrial applications of agent technologies.
Control Engineering Practice, 15(11):1364-1380, 2007.
HDS is implemented by using the Java language and its [2] L. Braubach, A. Pokahr and W. Lamersdorf. A Universal Criteria
use simplify the realization of systems in heterogeneous Catalog for Evaluation of Heterogeneous Agent Development Artifacts.
environments where computers, mobile and sensor devices In Proc. of the Sixth Int.Workshop "From Agent Theory to Agent Im-
must cooperate for the execution of tasks. Moreover, the plementation" (AT2AI-6), pp. 19-28, Estoril, Portugal, 2008.
possibility of using different communication protocols for the [3] J. McKean, H. Shortery, M. Luckz, P. McBurneyx and S. Willmott.
Technology diffusion: analysing the diffusion of agent technologies,
exchange of messages between the processes of different Autonomous Agents and Multi-Agent Systems, 17(2):372-396, 2008.
computational nodes of an application opens the way for a [4] S. A. DeLoach. Moving multi-agent systems from research to practice.
multi-language implementation of the HDS framework Agent-Oriented Software Engineering, 3(4):378-382, 2009.
allowing the integration of hardware and software platforms [5] D. Weyns, A. Helleboogh and T. Holvoet. How to get multi-agent
that do not provide a Java support. systems accepted in industry? Agent-Oriented Software Engineering,
3(4):383-390, 2009.
HDS can be considered a software framework for the [6] M. R. Genesereth and S. P. Ketchpel. Software Agenta,
realization of any kind of distributed system. Some of its Communications of ACM, 37(7):48-63, 1994.
functionalities derive from the one offered by JADE [7] J. M. Bradshaw. An introduction to software agents. in, Jeffrey M.
[14][15][16], a software framework that can be considered one Bradshaw, Ed, Software Agents, pp. 3-46, MIT Press, Cambridge, MA,
of the most known and used software framework for the 1997.
developing of MAS. This derivation does not depend only on [8] FIPA Specifications. Available from http://www.fipa.org.
the fact that some of the people involved in the development of [9] Y. Labrou, T. Finin, and Y. Peng. Agent Communication Languages:
the HDS software framework were involved in the The Current Landscape. IEEE Intelligent Systems, 14(2):45-52. 1999.
development of JADE too, but because HDS tries to propose a [10] L. Bergmans and M. Aksit. Composing crosscutting concerns using
new view of MAS where the respect of the FIPA specifications composition filters. Communications of ACM, 44(10):51-57, 2001.
are not considered mandatory and ACL messages can be [11] E. Pitt and K. McNiff. Java.rmi: the Remote Method Invocation Guide.
expressed in a way that is more usable by software developers Addison-Wesley, 2001.
outside the MAS community. This work may be important not [12] R. Monson-Haefel and D. Chappell. Java Message Service. O'Reilly &
Associates, 2000.
only for enriching other theories and technologies with some
[13] A. S. Rao and M. P. Georgeff: BDI Agents: From Theory to Practice. In
aspects of MAS theories and technologies, but also for Proc. of the First International Conference on Multiagent Systems, pp.
providing new opportunities for the diffusion of both the 312-319, San Francisco, CA, 1995.
knowledge and use of MAS theory and technologies. [14] F. Bellifemine, A. Poggi and G. Rimassa. Developing multi agent
systems with a FIPA-compliant agent framework. Software Practice &
HDS is a suitable software framework for the realization Experience, 31:103-128, 2001.
of pervasive applications. Some of its features introduced [15] F. Bellifemine, G. Caire, A. Poggi and G. Rimassa. JADE: a Software
above (i.e., the Java implementation, the possibility of using Framework for Developing Multi-Agent Applications. Lessons Learned.
different communication protocols and the possibility a multi- Information and Software Technology Journal, 50:10-21, 2008.
language implementation) are fit for such kinds of application. [16] JADE. Available from http://jade.tilab.com.
However, the combination of multi-agent and aspect-oriented [17] M. Kumar, B. A. Shirazi, S. L. Das, B. Y. Sung, D. Levine, and M.
techniques might be one of the best solutions for providing an Singhal. PICO: A Middleware Framework for Pervasive Computing.
appropriate adaptation level in a pervasive application. In fact, IEEE Pervasive Computing, 2(3):72-79, 2003.
this solution allows to couple the power of multi-agent based [18] C. Becker, M. Hante, G. Schiele and K. Rotheemel. PCOM - a
solutions with the simplicity of compositional filters solutions component system for pervasive computing. In Proc. of the 2nd IEEE
Conf. on Pervasive Computing and Communications (PerCom 2004),
guaranteeing both a good adaptation to the evolution of the Orlando, FL, 67-76, 2004.
environment and a limited overhead to the performances of the [19] A. Poggi. Developing Ontology Based Applications with O3L. WSEAS
applications. Trans. on Computers 8(8):1286-1295, 2009.
[20] MINA. Available from: http://mina.apache.org.