=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== https://ceur-ws.org/Vol-621/paper08.pdf
           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.