12.07.2015 Views

JADE: A software framework for developing multi-agent applications ...

JADE: A software framework for developing multi-agent applications ...

JADE: A software framework for developing multi-agent applications ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Available online at www.sciencedirect.comIn<strong>for</strong>mation and Software Technology 50 (2008) 10–21www.elsevier.com/locate/infsof<strong>JADE</strong>: A <strong>software</strong> <strong>framework</strong> <strong>for</strong> <strong>developing</strong> <strong>multi</strong>-<strong>agent</strong><strong>applications</strong>. Lessons learnedFabio Bellifemine a, *, Giovanni Caire a , Agostino Poggi b , Giovanni Rimassa ca Telecom Italia, Via G. Reiss Romoli, 274, I-10148, Torino, Italyb Dipartimento di Ingegneria dell’In<strong>for</strong>mazione, University of Parma, Parco Area delle Scienze, 181A, I-43100, Parma, Italyc Whitestein Technologies (<strong>for</strong>merly he was at University of Parma), Pestalozzistrasse 24, CH-8032, Zürich, SwitzerlandAvailable online 22 October 2007AbstractSince a number of years <strong>agent</strong> technology is considered one of the most innovative technologies <strong>for</strong> the development of distributed<strong>software</strong> systems. While not yet a mainstream approach in <strong>software</strong> engineering at large, a lot of work on <strong>agent</strong> technology has beendone, many research results and <strong>applications</strong> have been presented, and some <strong>software</strong> products exists which have moved from theresearch community to the industrial community. One of these is <strong>JADE</strong>, a <strong>software</strong> <strong>framework</strong> that facilitates development of interoperableintelligent <strong>multi</strong>-<strong>agent</strong> systems and that is distributed under an Open Source License. <strong>JADE</strong> is a very mature product, used by aheterogeneous community of users both in research activities and in industrial <strong>applications</strong>. This paper presents <strong>JADE</strong> and its technologicalcomponents together with a discussion of the possible reasons <strong>for</strong> its success and lessons learned from the somewhat detachedperspective possible nine years after its inception.Ó 2007 Elsevier B.V. All rights reserved.Keywords: Agent technology; Open source <strong>software</strong>; Distributed systems1. IntroductionSince a number of years, researchers have promised that<strong>agent</strong> technology will give an important contribution todistributed <strong>software</strong> systems by simplifying their developmentand by allowing smarter, more flexible and efficient<strong>applications</strong>. While not yet a mainstream approach in <strong>software</strong>engineering at large, a lot of work on <strong>agent</strong> technologieshas been done, a lot of research and applicationresults have been presented and some <strong>software</strong> productshave moved from the research community to the industrialcommunity. One of these products is <strong>JADE</strong> ([1,2,18]), a<strong>software</strong> <strong>framework</strong> to facilitate the development of interoperableintelligent <strong>multi</strong>-<strong>agent</strong> systems that is used by a* Corresponding author. Tel.: +390112286175; fax: +390112286190.E-mail addresses: fabioluigi.bellifemine@telecomitalia.it (F. Bellifemine),giovanni.caire@telecomitalia.it (G. Caire), poggi@ce.unipr.it(A. Poggi), gri@whitestein.com (G. Rimassa).heterogeneous community of users as a tool <strong>for</strong> both supportingresearch activities and building real <strong>applications</strong>.The initial <strong>software</strong> developments, that eventually createdthe <strong>JADE</strong> plat<strong>for</strong>m, were started by Telecom Italia(<strong>for</strong>merly CSELT) together with the University of Parmain July’98, motivated by the need to validate FIPA specifications[14] through a concrete compliant implementation.The project also aimed at realizing a middleware <strong>for</strong>application development that, as one of the main challenges,put great emphasis on usability and simplicityof its API’s such as it was usable not just by its programmer’steam but also by other programmers withoutextensive experience in the FIPA specifications and<strong>multi</strong>-<strong>agent</strong> systems theory. In order to increase its diffusionin the communities of FIPA and of <strong>agent</strong> systemsdevelopers, and in order to facilitate its usage also incommercial products, in 2000 <strong>JADE</strong> went Open Sourcedistributed by Telecom Italia under the LGPL (GNULesser General Public License) license [20]. After that,<strong>JADE</strong> grew both in usage and in offered functionalities0950-5849/$ - see front matter Ó 2007 Elsevier B.V. All rights reserved.doi:10.1016/j.infsof.2007.10.008


F. Bellifemine et al. / In<strong>for</strong>mation and Software Technology 50 (2008) 10–21 11and per<strong>for</strong>mances, thanks also to the contributions (e.g.bug reporting and fixing, code extensions, etc.) of thelarge community of users that, as depicted in Fig. 1,counts today more than 120,000 downloads from the officialweb site [18]. Fig. 1 shows how the number of downloadsfrom the official <strong>JADE</strong> web site progressed aftereach release (the version number is reported close to eachplotted point). The latest version of <strong>JADE</strong> is 3.5, releasedon 25 June 2007. As <strong>for</strong> most open source projects, it isvery difficult to estimate the real number of users but itcan be said that, even after 7 years of activity, the user<strong>for</strong>um is still very active with an average of 4exchanged e-mails/days.As a matter of fact, an important topic in <strong>multi</strong>-<strong>agent</strong>systems research is the development of programming languagesand tools <strong>for</strong> the realization of such systems; inthe last decade, more than a hundred of such tools havebeen realized. However, most of them were created asshort-term research activity and their development andmaintenance ended after only two or three years. [7] is arecent survey on <strong>multi</strong>-<strong>agent</strong> languages and plat<strong>for</strong>ms,while a short list of tools that are still active projects andthat, in our opinion, represent related work of <strong>JADE</strong>, arethe followings: Cougaar [16], JACK [24], 3APL [12], andAgent Factory [22].Cougaar [16] is an <strong>agent</strong> architecture developed undertwo DARPA programs in the domain of military logisticsplanning and execution. It is a Java-based <strong>framework</strong> <strong>for</strong>large-scale and flexible distributed <strong>agent</strong>-based <strong>applications</strong>.It uses a flexible component model to dynamicallyload components by inserting component ‘‘binder’’ proxiesto mediate interactions with system services. It also uses a<strong>multi</strong>-tiered interaction model: within <strong>agent</strong>s, componentsinteract via a local publish-subscribe mechanism, whileinter-<strong>agent</strong> communication happens via message passing.Moreover, Cougaar enables both dynamic negotiation of<strong>agent</strong> relationships via a hierarchical service discoverymechanism and the organization of <strong>agent</strong>s intocommunities.JACK [24] is a commercial <strong>software</strong> development <strong>framework</strong><strong>for</strong> the realization of BDI <strong>agent</strong>-based systems [21].Rather than using a logic-based language, it extends theJava language through a set of syntactic constructs to dealwith <strong>agent</strong> plans and <strong>agent</strong> beliefs. JACK offers a gooddegree of modularization through the composition of <strong>agent</strong>plans and the concept of <strong>agent</strong> teams. It provides also a setof development tools allowing, <strong>for</strong> example, the editing of<strong>agent</strong> code through a dedicated editor and a graphical planeditor that allows the construction of a plan via visual componentssimilar to state charts.3APL [12] is a programming language <strong>for</strong> implementing<strong>agent</strong>-based systems via programming constructs to dealwith <strong>agent</strong>s’ beliefs, goals, basic capabilities (such as beliefupdates, external actions, or communication actions) andvia a set of practical reasoning rules through which <strong>agent</strong>s’goals can be updated or revised. 3APL is integrated withinan IDE that helps a programmer to write the programsthat implement the individual <strong>agent</strong>s, to execute such programsin either a step-by-step or continuous mode, and tomonitor their execution by accessing <strong>agent</strong> internal stateand tracing the messages exchanged by the <strong>agent</strong>s. It is alsowell integrated with Prolog and Java programminglanguages.Agent Factory [22] is also based upon BDI concepts andit also includes an interpreter embedded within a distributedFIPA-compliant Run-Time Environment that allowsthe deployment of <strong>agent</strong>s on desktops and servers, personaldigital assistants, and mobile phones. Agent Factory providesa set of tools to help programmers in the developmenttasks; in particular, a tool <strong>for</strong> the construction of <strong>agent</strong>sfrom a set of UML sequence diagrams and a suite of toolsthat facilitate the testing and debugging of <strong>applications</strong>.In our opinion, three are the main identifying features of<strong>JADE</strong> in comparison with the rest of the state of the art:Fig. 1. Cumulative number of downloads after each <strong>software</strong> release. (the version number is reported close to each plotted point).


12 F. Bellifemine et al. / In<strong>for</strong>mation and Software Technology 50 (2008) 10–21– Firstly, <strong>JADE</strong> is completely based upon the FIPA specifications,so much so that, given also its history, it isoften identified with the FIPA specifications itself.– Then, <strong>JADE</strong> provides a proper set of functionalities tosimplify development of <strong>multi</strong>-<strong>agent</strong> systems but it putsvery few restrictions on the user code without, in particular,imposing any specific <strong>agent</strong> architecture. Thatmeans users do no need either to understand or useany BDI architecture, architecture which exists in literaturein hundreds of flavours and that has not yet gainedacceptance in the <strong>software</strong> engineering community.Users must simply use and write Java code without needto learn any new special construct.– Finally, <strong>JADE</strong> can be deployed both on JEE, JSE, andJME devices and its runtime provides a homogeneousset of APIs that is independent of the underlying networkand Java technology.This paper is organized as follows. Section 2 describesthe <strong>JADE</strong> <strong>agent</strong> architecture and its main features. Section3 shows how <strong>JADE</strong> enables <strong>agent</strong>s to adapt to mobile environmentcharacteristics and to devices with limited memoryand processing power. Section 4 discusses theintegration of <strong>agent</strong>s with other technologies, in particularWeb Services and reasoning systems. Section 5 discusses,with an historical perspective, the possible and likely reasons<strong>for</strong> the widespread usage of <strong>JADE</strong>; particular care isdevoted to those non-technical aspects which might representlessons learned of general usefulness to other projects.Section 6 gives an overview of an industrial application inthe field of network management, and it presents some ofthe reasons that led to the selection of <strong>JADE</strong> as development<strong>framework</strong> <strong>for</strong> that system. Finally, Section 7 concludesthe paper and outlines some future work.2. <strong>JADE</strong> <strong>software</strong> architectureThe <strong>JADE</strong> architecture is firmly rooted in peer-to-peerideas and communication patterns [2]. The intelligence,the initiative, the in<strong>for</strong>mation, the resources and the controlcan be fully distributed across a group of heterogeneoushosts, including mobile terminals and PDAs, bothin the wireless and in the wired network. The environmentcan evolve dynamically with peers, i.e. <strong>agent</strong>s, which canappear and disappear in the system according to applicationneeds and requirements. Communication betweenthe peers, regardless of whether they are running in thewireless or wired network, is completely symmetric, eachpeer being able to play both the initiator and the responderrole.The <strong>JADE</strong> component model organizes <strong>applications</strong> asstructured ensembles of <strong>software</strong> components, whichbelong to two categories:– Agents – These are the peers mentioned above, exhibitingautonomy and communicating through asynchronousmessage passing.– Services – These are non-autonomous components,which can run on a single node or cooperatively on <strong>multi</strong>plenodes, and whose operations can be triggered by<strong>agent</strong>s.<strong>JADE</strong> is fully developed in Java and, from a <strong>software</strong>engineering standpoint, values highly, among others, thefollowing driving principles:– Interoperability – <strong>JADE</strong> is compliant with the FIPAspecifications [14]. As a consequence, <strong>JADE</strong> <strong>agent</strong>scan interoperate with other <strong>agent</strong>s, provided that theycomply with the same standard.– Uni<strong>for</strong>mity and portability – <strong>JADE</strong> provides a homogeneousset of APIs that are independent from the underlyingnetwork and Java version. More in details, the<strong>JADE</strong> run-time provides the same APIs both <strong>for</strong> theJEE, JSE and JME environment. In theory, applicationdevelopers could decide at deploy-time which Java runtimeenvironment to use.– Easy to use – The complexity of the middleware is hiddenbehind a simple and intuitive set of APIs.– Pay-as-you-go philosophy – Programmers do not need touse all the features provided by the middleware. Featuresthat are not used do not require programmers toknow anything about them, neither they add any computationaloverhead.<strong>JADE</strong> includes both the libraries (i.e. the Java classes)required to develop application <strong>agent</strong>s, and the run-timeenvironment that provides the basic services and thatmust be active on the device be<strong>for</strong>e <strong>agent</strong>s can be executed.Each instance of the <strong>JADE</strong> run-time is called container(since it ‘‘contains’’ <strong>agent</strong>s). The set of allcontainers is called plat<strong>for</strong>m and provides a homogeneouslayer that hides to <strong>agent</strong>s (and to applicationdevelopers as well) the complexity and the diversity ofthe underlying tiers (hardware, operating system, typeof network, JVM). Fig. 2 draws the architecture of a<strong>JADE</strong> <strong>agent</strong> system deployed on a set of heterogeneouscomputing nodes.The <strong>JADE</strong> design choice (in particular not to committoo strongly to specific <strong>agent</strong> architectures) and its modulararchitecture allowed <strong>JADE</strong> to fit the constraints of environmentswith limited resources. <strong>JADE</strong> has however alsobeen integrated into complex server-side infrastructuressuch as .NET ([18], see FAQ section on the Web Site)and JEE [10] where <strong>JADE</strong> becomes a service to execute<strong>multi</strong>-party proactive <strong>applications</strong>. The limited memoryfootprint allows installing <strong>JADE</strong> on all mobile phones providedthat they are Java-enabled. The <strong>JADE</strong> run-timememory footprint, in a MIDP1.0 environment, is around120 KB, but can be further reduced to 50 KB by usingthe ROMizing technique ([4,5]), i.e. by compiling <strong>JADE</strong>together with the JVM. Analyses and a benchmark of scalabilityand per<strong>for</strong>mance of the <strong>JADE</strong> Message TransportSystem can be found in [9,23].


F. Bellifemine et al. / In<strong>for</strong>mation and Software Technology 50 (2008) 10–21 13Multi-<strong>agent</strong> Application<strong>JADE</strong>ContainerContainerContainerContainerContainerJavaJEEJEEJSEJME CDCJME CLDCFig. 2. The architecture of a <strong>JADE</strong> <strong>agent</strong> system.From the functional point of view, <strong>JADE</strong> provides thebasic services <strong>for</strong> distributed peer-to-peer <strong>applications</strong> inthe wired and mobile environment. <strong>JADE</strong> allows each<strong>agent</strong> to dynamically discover other <strong>agent</strong>s and to communicatevia the peer-to-peer paradigm. From an applicationpoint of view, each <strong>agent</strong> is identified via a unique nameand it provides a set of services. It can register and modifyits services and/or search <strong>for</strong> <strong>agent</strong>s providing a given service;it can also control its life cycle and, in particular, communicatewith all other peers.Agents communicate by asynchronous messageexchange, a communication model almost universallyaccepted <strong>for</strong> distributed and loosely coupled interactions,i.e. between heterogeneous entities. In order to communicate,an <strong>agent</strong> just sends a message to a destination. Agentsare identified by a name, there<strong>for</strong>e the send operation doesnot need the destination object reference and, as a directconsequence, there is no temporal dependency betweencommunicating <strong>agent</strong>s. The sender and the receiver couldbe available at different times. The receiver may not evenexist (or not yet exist) or could not be directly known bythe sender that can specify a property (e.g. ‘‘all <strong>agent</strong>s interestedin football’’) as a destination. Because <strong>agent</strong>s identifyeach other only by name, any change at run-time of theirobject reference is fully transparent to <strong>applications</strong>.Despite this type of communication, security can be preservedvia suitable mechanisms to authenticate and verify‘‘rights’’ assigned to <strong>agent</strong>s. When needed, there<strong>for</strong>e, anapplication can verify the identity of the sender of a messageand prevent actions that a principal is not allowedto per<strong>for</strong>m (<strong>for</strong> instance an <strong>agent</strong> may be allowed to receivemessages from another <strong>agent</strong>, but not to send messages toit). All messages exchanged between <strong>agent</strong>s are carried outwithin an envelope including only the in<strong>for</strong>mation requiredby the transport layer. That allows, among others, toencrypt the content of a message separately from theenvelope.The structure of a message complies with the AgentCommunication Language (ACL) defined by FIPA [14]and includes fields (such as variables indicating the contexta message refers to, and time limits within which an answerhas to be received) aimed at supporting complex interactionsand <strong>multi</strong>ple parallel conversations. In order to supportthe implementation of complex conversations, <strong>JADE</strong>provides a set of skeletons of typical interaction patternsto per<strong>for</strong>m specific tasks, such as negotiations, auctionsand task delegation. By using these skeletons (implementedas Java abstract classes and identified as ‘interaction protocols’),programmers can get rid of the burden of dealingwith synchronization issues, timeouts, error conditionsand, in general, all those aspects not strictly related tothe application logic. In order to facilitate the creationand handling of message content, <strong>JADE</strong> provides support<strong>for</strong> automatically converting back and <strong>for</strong>th between <strong>for</strong>matssuitable <strong>for</strong> content exchange, including XML andRDF, and the <strong>for</strong>mat suitable <strong>for</strong> content manipulation(i.e. Java objects). This support is integrated with someontology creation tools, e.g. Protégé, to enable programmersto graphically create their ontology and validate themessages exchanged by the <strong>agent</strong>s of the system (see chapter13.1 of [1]).In order to increase scalability and also to meet the constraintsof limited resource environments (such as mobilephones), <strong>JADE</strong> adopts a thread-per-<strong>agent</strong> concurrencymodel, where a single Java thread is assigned to an <strong>agent</strong>to execute all its tasks as opposite to a thread-per-conversation(or per-task) model. Each <strong>agent</strong> has an embeddedround-robin scheduler of Behaviour objects where theBehaviour class is the reification of an <strong>agent</strong> task representinga scheduling and execution unit. Scheduling is cooperative,that is a Behaviour is not executed until the previousone yields control back to the scheduler. Structural compositionof <strong>agent</strong> behaviours is implemented by applying theComposite and the Chain of Responsibility patterns [15]to active objects task scheduling: hierarchical trees ofBehaviour objects can be composed where each intermediatenode can freely implement its policy to schedule the elementsbelonging to its sub-tree. In this way, several


14 F. Bellifemine et al. / In<strong>for</strong>mation and Software Technology 50 (2008) 10–21elementary tasks can be combined at run-time to <strong>for</strong>mcomplex structures of task scheduling, including a set ofconcurrent Finite State Machines.In the JSE and Personal Java environments, <strong>JADE</strong> supportsmobility of code and execution state (see Chapter 6 of[1]). An <strong>agent</strong> can stop running on a host, migrate on a differentremote host (without the need to have the <strong>agent</strong> codealready installed on that host), and restart its executionfrom the point it was interrupted (actually, <strong>JADE</strong> implementsa <strong>for</strong>m of not-so-weak mobility because a standardJVM does not enable saving the stack and the programcounter). This functionality allows, <strong>for</strong> example, distributingcomputational load at runtime by moving <strong>agent</strong>s to lessloaded machines without any impact on the application.The plat<strong>for</strong>m also includes a naming service (ensuringeach <strong>agent</strong> has a unique name) and a yellow pages servicethat can be distributed across <strong>multi</strong>ple hosts. Federationgraphs can be created in order to define structured domainsof <strong>agent</strong> services. Another very important feature consistsin the availability of a rich suite of graphical tools supportingboth debugging and management/monitoring. Bymeans of these tools, it is possible to remotely control<strong>agent</strong>s, even if already deployed and running: <strong>agent</strong> conversationscan be emulated, exchanged messages can besniffed, tasks can be monitored, and <strong>agent</strong> life-cycle canbe controlled.3. Specializing <strong>JADE</strong> <strong>agent</strong>s <strong>for</strong> the mobile environmentAs already mentioned, the <strong>JADE</strong> run-time can be executedon a wide class of devices ranging from servers tocell phones, <strong>for</strong> the latter the only requirement beingthe availability of Java MIDP1.0 (or later versions). Inorder to properly address the memory and processingpower limitations of mobile devices and the characteristicsof wireless networks (GPRS in particular) in terms ofbandwidth, latency, intermittent connectivity and IPaddresses variability, and at the same time in order tobe efficient when executed on wired network hosts, <strong>JADE</strong>can be configured to adapt to the characteristics of thedeployment environment. <strong>JADE</strong> architecture, in fact, iscompletely modular and, by activating certain modulesinstead of others, it is possible to meet different requirementsin terms of connectivity, memory and processingpower.More in details, a module called LEAP allows optimisingall communication mechanisms when dealing withdevices with limited resources and connected through wirelessnetworks. By activating this module, a <strong>JADE</strong> containeris ‘‘split’’, as depicted in Fig. 3, into a front-end running inthe mobile terminal and a back-end running in the wirednetwork. A suitable architectural element, called mediator,is in charge of instantiating and maintaining the back-ends.To better face high workload situations, it is possible todeploy several mediators, each of them managing a set ofback-ends. Each front-end is linked to its correspondingback-end through a permanent bi-directional connection.It is important to note that it makes no difference at all,to application developers, whether an <strong>agent</strong> is deployedon a normal container or on the front-end of a split container,since both the available functionality and the APIsare exactly the same. This approach has a number ofadvantages:– Part of the functionality of a container is delegated tothe back-end and, as a consequence, the front-endbecomes extremely lightweight in terms of requiredmemory and processing power.Fig. 3. <strong>JADE</strong> architecture <strong>for</strong> the mobile environment.


16 F. Bellifemine et al. / In<strong>for</strong>mation and Software Technology 50 (2008) 10–21AgentServiceDescriptionServiceDescriptionOntologyWSDLOperations:- Action-1……- Action-nAction-1…Action-nFig. 4. Mapping between DF Service-Description and WSDL.BDI [21] is a well-known model <strong>for</strong> cognitive intelligent<strong>agent</strong>s where <strong>agent</strong>s are specified in terms of three explicitmental attitudes: beliefs, desires, and intentions. The <strong>JADE</strong>Semantics add-on (JSA) (see Chapter 12 of [1]), developedby France Telecom, implements on top of <strong>JADE</strong> theBDI-like <strong>agent</strong> abstraction used <strong>for</strong> the <strong>for</strong>mal specificationof the FIPA ACL semantics. Agents can infer deductionsfrom perceived events and they can accordinglymodify <strong>agent</strong>’s beliefs and behaviours; message receivingis just another type of event and message sending is justanother type of action whose respective meaning is internallyrepresented as FIPA-SL logical <strong>for</strong>mulae and automaticallyinterpreted by the JSA add-on according to theFIPA ACL <strong>for</strong>mal semantics. For instance, without anyadditional line of code, a JSA <strong>agent</strong> is able to answer anyquery about a fact it was previously been in<strong>for</strong>med of.With reference to Fig. 5, <strong>agent</strong> programming in JSArequires the following three steps: (i) implementing application-specificinterpretation capabilities which infer deductionsfrom events, (ii) implementing the <strong>applications</strong>pecific<strong>agent</strong> beliefs which are facts to be asserted intothe <strong>agent</strong> belief base, (iii) implementing the know-how ofthe <strong>agent</strong> which is composed of the ontological actions itis able to per<strong>for</strong>m and their post-conditions and feasibilitypre-conditions. The JSA add-on provides to programmersseveral points of extension, specialization, and customizationin order to fit different <strong>software</strong> design requirements,such as specialization of the interpretation algorithm andof the belief handling mechanism.5. Lessons learnedSoftware <strong>agent</strong> technology is still a niche sector of the<strong>software</strong> programming science, however, in this sector,<strong>JADE</strong> can arguably be considered the most popular <strong>software</strong><strong>agent</strong> plat<strong>for</strong>m available today. Several companieshave used and continue to use it in the context of verydifferent application domains, including networkActions TableCommunicativeActionsBeliefsBaseOntologicalActionsRx Message(FIPA ACL)SemanticRepresentationLogical Formulae(FIPA SL)SemanticInterpretationTx Message(FIPA ACL)Semantic InterpretationPrinciplesApplication specificAction featuresBelief transferIntention transferPlanningSubscriptionBelief assertionFig. 5. Schematic dataflow of the JSA interpretation behaviour.


F. Bellifemine et al. / In<strong>for</strong>mation and Software Technology 50 (2008) 10–21 17management, supply chain management, rescue management,fleet management, health care, auctions, tourism,etc. (see, <strong>for</strong> example, [8,17,19,25]). For instance, BritishTelecommunication’s Intelligent Systems Research Centreuses <strong>JADE</strong> as the core plat<strong>for</strong>m of mPower [19], a <strong>multi</strong><strong>agent</strong>system that is used by BT engineers to support cooperationbetween mobile workers and team-based job management,i.e. teams rather than individuals receive jobassignments and team members must cooperatively managethe assigned jobs. Several universities use <strong>JADE</strong>,exploiting its Open Source availability and its technicalexcellence, both to study and teach the strength of the <strong>software</strong><strong>agent</strong> technology and to extend its functionalities withnew add-ons (see, <strong>for</strong> example, Chapters 11 and 13 of [1]).This section discusses, looking back, possible reasons<strong>for</strong> the diffusion of <strong>JADE</strong>, in particular those non-technicalaspects which might represent useful lessons learned ofgeneral applicability, with the possibility to benefit otherfuture projects.5.1. Standard compliance and timing<strong>JADE</strong> complies with the FIPA specifications [14] thatenable end-to-end interoperability between <strong>agent</strong>s of different<strong>agent</strong> plat<strong>for</strong>ms. All <strong>applications</strong> where inter-organizationcommunication is needed can benefit frominteroperability, including e.g. machine-to-machine andholonic manufacturing. As a matter of fact, the <strong>JADE</strong> projectstarted with the goal of validating the FIPA specificationseven if its functionalities soon went much far beyondthe standard, even because of the slower evolution of thelatter. Surely with some degree of happenstance, the projectstarted at the right timing, and <strong>JADE</strong> and FIPA wereable to realize in early 2000 a symbiosis where <strong>JADE</strong> validatedFIPA specifications, provided new requirements, andoften even offered concrete solutions to specification problems;FIPA, on the other hand, provided a sound theoreticalfoundation <strong>for</strong> the <strong>JADE</strong> technology and contributedto the spread of it. A technology becomes a standard aftera consensus process between all participating organizations,often the standard status provides the energy <strong>for</strong>market acceptance of a new technology; as such, standardcompliance represented a risk reduction factor and a facilitatorto create a ‘market of early adopters’ of thetechnology.5.2. Openness and license<strong>JADE</strong> is distributed in Open Source under the LGPLlicense [20]. Looking back, the choice of this license contributedto <strong>JADE</strong> widespread acceptance because itassured all the basic rights and duties [20] to facilitate theusage of the <strong>software</strong>, included usage in commercial products.Unlike the GPL, the LGPL license does not put anyrestriction on <strong>software</strong> that uses <strong>JADE</strong> (as opposite to <strong>software</strong>based upon it), and allows proprietary <strong>software</strong> to bemerged with <strong>JADE</strong>. This was again a risk reduction factor<strong>for</strong> users and contributed to the adoption of <strong>JADE</strong> inR&D projects, as well as in commercial projects, whichhad the chance to start using <strong>JADE</strong> even if the licensingstrategy of the <strong>software</strong> they were going to produce wasnot yet defined. Of course, openness had to be properlymanaged in order to avoid anarchy and avoid appearanceof <strong>multi</strong>ple branches of the same <strong>software</strong> and differentvariations of the same API: a lot of ef<strong>for</strong>t was spent topromptly incorporate user feedbacks and integrate proposedfunctionalities and add-ons.5.3. User support and documentationIt is a common pitfall to distribute <strong>software</strong> in OpenSource without properly considering the need to supportusers and to provide them adequate documentation. Sinceits beginning, great care and relevant ef<strong>for</strong>t was put toanswer to questions and requests of support from users.Furthermore, the code was distributed together with a programmingguide and an administrator guide, a number ofexamples and tutorial, and the complete javadoc of all userAPIs. Looking back, availability of good documentationand prompt user support should be considered since thebeginning of an Open Source Project.5.4. Dissemination strategyOften the decision of a project to go Open Source representsthe dissemination strategy. According to our experience,the decision of licensing open source does notrepresent per se a valid dissemination strategy; possibly,it does not represent at all a dissemination strategy that,instead, must be properly defined to support such a licensingdecision through an adequate analysis of the target userbase. In most cases, open source projects are the output ofresearch projects and, as such, at their beginning, they targeta niche market of early innovators that like to play withcool <strong>software</strong> based on new concepts; <strong>JADE</strong> targeted earlyadopters of the FIPA standard and the main disseminationchannels were the standard organization itself and, underbudget restrictions, scientific events, mainly through papersat conferences. It may look somewhat counterintuitive but,in our opinion, in the early stage of an innovative project,the emerging user community is better seeded with coolnessand novelty rather than comprehensiveness and robustness;these two qualities are however needed to pass tothe second phase of dissemination towards those companiesthat wish to leverage the technology to add value totheir products. Notice that, even if this second phase isthe phase of major concern on getting advantages and revenues,industry adoption of a novel technology is stronglyfacilitated by the presence of competitors that share thesame goal of increasing the level of awareness of the technology.Considered that the main business of Telecom Italiais based on services rather then sale of <strong>software</strong>products, we decided to exploit the free open source natureof <strong>JADE</strong> in order to get contributions to improve and


18 F. Bellifemine et al. / In<strong>for</strong>mation and Software Technology 50 (2008) 10–21strengthen the <strong>software</strong> that we used, and we continue touse, as a middleware to develop Telecom Italia proprietaryvalue added services. In this phase of dissemination we targetedmainly R&D projects, such as those supported by theEuropean Commission; the <strong>JADE</strong> Web site [18] reports apartial list of EU projects that decided to use <strong>JADE</strong> anda list of main contributors.5.5. ExtensibilityThe stereotypical <strong>JADE</strong> user is a <strong>software</strong> programmerwith medium–high skills and strong attitude towards innovation,considered that he/she is using a niche technology.He/she is surely someone who likes to ‘play’ with <strong>software</strong>,likes to look inside the code and likes to have the possibilityof extending it. A nice-to-have feature <strong>for</strong> this kind of userwas surely the presence in <strong>JADE</strong> of well defined mechanisms<strong>for</strong> code extension in <strong>for</strong>m of published APIs, suchas the jade.mtp API which enables programmers to plugnew message transport protocols. These extension points,on one hand made workable <strong>for</strong> <strong>multi</strong>ple contributors toenhance the plat<strong>for</strong>m without creating conflicts, and onthe other hand made the <strong>software</strong> more appealing to skilledprogrammers who could enjoy themselves by integratingand adding to <strong>JADE</strong> the results of their research. If extensibilitywas a strength of <strong>JADE</strong>, it must be said that aweakness of the project was instead the limits of the tools<strong>for</strong> collaborative <strong>software</strong> development: a lack of toolsadministrator and the presence of some company’s policies<strong>for</strong> network restrictions (e.g. firewall) made collaborativedevelopment sometimes difficult as several processes (e.g.account management) had to be done manually insteadof automatically. Considering the above described user stereotype,this was surely perceived as a weakness.5.6. Java languageIf today the use of the Java language can be consideredquite a common choice, in 1998, when <strong>JADE</strong> developmentstarted, that choice required some considerations as an easierchoice would have been the C language. Looking back,the choice of the Java language surely contributed to thespread acceptance of <strong>JADE</strong> as the majority of <strong>multi</strong>-<strong>agent</strong>systems <strong>software</strong> developers embraced and still continuesto use this programming language.5.7. Quick learning curve and perceived valueUsers do not like dedicating too much time to learnusing new <strong>software</strong>; when the <strong>software</strong> is free, they tendto dedicate even fewer time as they do not even have thefinancial motivation of protecting their purchase investment.<strong>JADE</strong> API proved easy enough to learn and use. Itprovides a lot of functionalities and was designed withorthogonality and separation of concerns in mind [2]: eachset of API serves a specific purpose and is independent ofother functionalities, there<strong>for</strong>e, programmers need tounderstand only those parts of the API that implementtheir required functionalities. Programming the ‘‘helloworld’’ <strong>agent</strong> typically requires less than one hour and inthis time the programmer can already experience somevalue from using the <strong>framework</strong>. <strong>JADE</strong> has been designedto simplify the management of communication and messagetransport by making transparent to the developerthe management of the different communication layersused to send a message from an <strong>agent</strong> to another <strong>agent</strong>,and so allowing her/him to concentrate on the logic ofthe application. Of course, the effect of this feature is tosimplify and speed up application development withrespect to the time necessary to develop the same applicationby using only Java standard packages. In particular,when <strong>developing</strong> distributed <strong>applications</strong> <strong>for</strong> mobile terminals,<strong>JADE</strong> API and ready-to-use features allow stronglyreducing the application development time and costs: someestimations have been given that indicate reduction ofdevelopment time up to 30%.5.8. VersatilitySeveral R&D projects, that analysed all available plat<strong>for</strong>msbe<strong>for</strong>e selecting <strong>JADE</strong>, considered versatility andJME availability one of the major strengths of <strong>JADE</strong>. Asa matter of fact, <strong>JADE</strong> provides a homogeneous set ofAPIs that are independent from the underlying networkand Java technology (JEE, JSE or JME). It was appreciatedthat application developers can reuse the same applicationcode both <strong>for</strong> a PC, a PDA or a Java phone, andthey can postpone this choice as late as possible, ideallyuntil deployment time. <strong>JADE</strong> was JME-ready already atthe beginning of year 2003 thanks to the involvement ofsome major mobile manufacturers like Motorola and Siemenswithin the <strong>framework</strong> of the LEAP European Project[4,5].5.9. Backward compatibilityRegarding this aspect, two lessons were learned: fewusers like open source projects with frequent versionreleases, and all users hate introduction of backwardincompatibilities. Seventeen release versions of <strong>JADE</strong> havebeen released in its 7-year-long life: at the beginning quiteoften, then every 6 months, now with a target of 1 newrelease per year. Great care was given to preserve backwardcompatibility, even when significant jumps in functionalitywere granted. Only three times the major version numberhad to be increased (from <strong>JADE</strong> 1.x to <strong>JADE</strong> 3.x) to notifyusers the introduction of backward incompatibilities whichneeded modifications to their <strong>software</strong>. These three timeswere though still remembered by many users even if guidelineswere provided to upgrade user <strong>software</strong>. How backwardcompatibility can be preserved through releaseversions? The only suggestion we can provide is to carefullyidentify, reduce in number and in content, and have greatcare in designing, all public APIs, so that implementations


F. Bellifemine et al. / In<strong>for</strong>mation and Software Technology 50 (2008) 10–21 19as well as subsequent possible extensions do not impact theAPI itself. Remind that ‘‘Public APIs are <strong>for</strong>ever and youhave just one chance to get it right’’ [6]!6. A sample application: the network neutral elementmanagerTelecom Italia adopted <strong>JADE</strong> as the reference <strong>framework</strong><strong>for</strong> an important project in the field of networkmanagement [11]. The project involves about 30 people<strong>for</strong> 3 years with the goal of creating a mediation layer,identified as Network Neutral Element Manager(NNEM), to decouple Operations Support Systems(OSS) from the network equipments and functionalities,as depicted in Fig. 6. For telecom operators with ahighly variegated <strong>multi</strong>-vendor network, as Telecom Italiais, this approach brings some important advantages.First of all, the provision of a uni<strong>for</strong>m view over adiversity of technologies (IP, ATM...), network equipments(DSLAM, Router...), management protocols(SNMP, TL1...), vendors and <strong>software</strong> versions, sensiblyreduces the cost of adaptation of OSS chains to changesin the network. For instance, when an equipment of anew vendor is introduced, the logic of interactions withits equipments does no longer need to be replicated inall OSS systems, but it is shared within the mediationlayer. As a direct consequence, it is possible to acceleratethe rollout of new technologies and services, whichis a key success factor in a highly competitive marketsuch as that of telecommunications. Furthermore, havinga single system actually interacting with the networkmakes it possible to keep control over the accesses tonetwork equipments thus avoiding managementoverload.The NNEM deployment in Telecom Italia today coversthe IP broadband access domain and serves the activationand troubleshooting processes. The plan is to progressivelyextend it to other domains and processes starting from thenew generation network <strong>for</strong> ultra broadband access thatsupports rates up to 50 Mb/s. In order to achieve suchrates, this new network is based on the Fiber-to-the-buildingarchitecture. Fiber cables are extended up to user buildingswhere proper network elements, called ONU andtypically located in the building cellars, act as <strong>multi</strong>plexerbetween copper twisted pairs connecting flats and the opticalfiber.Today NNEM manages about 10,000 devices, with theintroduction of the new generation network it will haveto deal with about 100,000 devices and even more (oneper building). As a consequence, scalability is a key requirement<strong>for</strong> the NNEM. Thanks to its distributed nature,<strong>JADE</strong> is particularly suited to create <strong>applications</strong> thatrun on distributed low cost architectures, such as blade,and there<strong>for</strong>e it perfectly meets the scalability requirement.Scalability was certainly the main reason that led to theusage of <strong>JADE</strong> as the basis <strong>for</strong> the NNEM, but other reasonswere identified and had an impact on the final choice,such as:– capability to serve well both reactive processes, such asactivation and troubleshooting, and proactive processes,such as alarm handling;– capability of executing long and fairly complex taskssuch as network element configurations upload (consideringresponse times and network latency this processcan take up to one hour);– capability of automatically exposing <strong>agent</strong> capabilitiesas Web Services by means of the WSIG add-ondescribed in Section 4 and there<strong>for</strong>e simple integrationwith the above OSS systems.After two years of intensive developments and testing inthe scope of the NNEM project, the following considerationscan be drawn.ActivationPer<strong>for</strong>mancemonitoringTroubleshootingFaultManagementUni<strong>for</strong>m viewNNEM (<strong>JADE</strong>-based Mediation Layer)Mobile NetworkATM-FRNASIData NetworkINAUDBSGUSoftSwitchSGTVoice NetworkDSLAMSDHPDHWDMTransport and AccessNetworkFig. 6. The network neutral element manager.


20 F. Bellifemine et al. / In<strong>for</strong>mation and Software Technology 50 (2008) 10–216.1. RobustnessIn general <strong>JADE</strong> is a robust <strong>software</strong> plat<strong>for</strong>m thatenables the development of commercial-grade <strong>applications</strong>.In almost one year of deployment in the fields, <strong>JADE</strong> neverstalled the NNEM system.6.2. Distinguishing featuresThanks to its <strong>agent</strong>-based nature, <strong>JADE</strong> is particularlysuited <strong>for</strong> <strong>applications</strong> that:1. require the execution of possibly long and fairly complextasks that can be triggered at any point in time and notjust in response to user inputs;2. involve several interactions between internal components,and especially one-to-many and many-to-manyinteractions;3. require components to dynamically appear anddisappear in the system and find each other atruntime.These are certainly important criteria that should betaken into account when deciding whether or not tochoose <strong>JADE</strong> as the basis <strong>for</strong> the development of a <strong>software</strong>application. Instead, when dealing with systems thatmainly retrieve/store data from/to a data repository followinguser requests/inputs (as <strong>for</strong> instance all classicalWeb <strong>applications</strong>), usage of state of the art middlewaretechnologies such as JEE application servers is certainlymore indicated.6.3. Component isolationThe <strong>agent</strong> oriented approach intrinsically facilitates theisolation of functional modules (i.e. <strong>agent</strong>s) that can beimplemented separately thus leading to clean design andeasier organization of development teams.6.4. DistributionBeing natively designed with distribution in mind,<strong>JADE</strong> allows seamlessly spreading components (i.e.<strong>agent</strong>s) across different hosts thus guaranteeing a highdegree of scalability. As the NNEM experience highlighted,however, distributed <strong>applications</strong> are more complexto run and manage. A further level of support isthere<strong>for</strong>e required to hide as much as possible the complexityof the distribution to administrators. For this reason,an additional Plat<strong>for</strong>m Configuration and Controlmodule was developed to support configuration, activation,monitoring and problem investigation from a singleadministration console. Though implemented within thescope of the NNEM project, this module was designedto be generic and domain independent to facilitate itsfuture distribution in Open Source.7. ConclusionsThe paper presented <strong>JADE</strong> – a <strong>software</strong> <strong>framework</strong> tofacilitate the development of <strong>agent</strong> <strong>applications</strong> – anddescribed its <strong>software</strong> architecture and its provided functionalitiesas well as its integration with some technologies,in particular Web Service and reasoning tools and architectures.The paper discussed, looking back, possible reasons<strong>for</strong> the spread of <strong>JADE</strong>, in particular those non-technicalaspects which might represent lessons learned of generalusefulness also to other future projects.<strong>JADE</strong> is a mature <strong>software</strong> development tool, a lot ofpeople are working on its continuous maintenance,improvement and extension, and several commercial andindustrial <strong>applications</strong> built on top of <strong>JADE</strong> exist in differentapplication domains. The paper gave an overview ofthe Network Neutral Element Manager, a mission-criticalsystem developed and deployed by Telecom Italia todecouple OSS systems from the network. Today NNEMmanages about 10,000 devices, with the introduction ofthe new generation network it will have to deal with about100,000 devices and even more (one per building).The latest version of <strong>JADE</strong> is 3.5 and was released onJune 2007. Future work is focusing on a plat<strong>for</strong>m configurationand control module, as mentioned in Section 6 of thepaper, as well as on the development of a workflow-baseddistributed processing engine. This new engine will enable<strong>agent</strong>s to execute application logics described via workflows,and to dynamically delegate to other <strong>agent</strong>s piecesof workflows (i.e. sub-flows) according to criteria that areevaluated at runtime. Such criteria can be based <strong>for</strong>instance on the current <strong>agent</strong> workload (similar to a GRIDcomputing environment) or to specific characteristics of thedelegated <strong>agent</strong>s. This processing engine, together with anintegrated Service Creation Environment that supportsthe definition of processes in a user friendly graphical <strong>for</strong>m,will <strong>for</strong>m the core added value of the new version of <strong>JADE</strong>which is planned to be released at the beginning of 2008.The reader might argue: if <strong>JADE</strong> is such a great plat<strong>for</strong>m,why haven’t it made <strong>agent</strong>-oriented programming astandard technique within industry? <strong>JADE</strong> is a middlewarethat enables fast and reliable implementation of <strong>multi</strong><strong>agent</strong>distributed systems and which can be integrated withArtificial Intelligence (AI) tools; however, the conviction ofthe benefits of AI and <strong>agent</strong>s is more consolidated in thescientific community than in the industrial one. The reasons<strong>for</strong> that are outside the scope of this paper and havebeen plentifully treated in several other <strong>for</strong>a. While notyet a mainstream approach in <strong>software</strong> engineering atlarge, <strong>JADE</strong> can arguably be considered the most popular<strong>software</strong> <strong>agent</strong> plat<strong>for</strong>m available today.References[1] F. Bellifemine, G. Caire, D. Greenwood, Developing <strong>multi</strong>-<strong>agent</strong>systems with <strong>JADE</strong>, Wiley Series in Agent Technology. ISBN 978-0-470-05747-6, February 2007.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!