Abstract:
Since a number of years agent technology is considered one of the most innovative technologies for the development of distributed software systems. While not yet a mainstream approach in software engineering at large, a lot of work on agent technology has been done, many research results and applications have been presented, and some software products exists which have moved from the research community to the industrial community.
One of these is JADE, a software framework that facilitates development of interoperable intelligent multi-agent systems and that is distributed under an Open Source License. JADE is a very mature product, used by a heterogeneous community of users both in research activities and in industrial applications. This paper presents JADE and its technological components together with a discussion of the possible reasons for its success and lessons learned from the somewhat detached perspective possible nine years after its inception.
Introduction:
Since a number of years, researchers have promised that agent technology will give an important contribution to distributed software systems by simplifying their development and by allowing smarter, more flexible and efficient applications. While not yet a mainstream approach in software engineering at large, a lot of work on agent technologies has been done, a lot of research and application results have been presented and some software products have moved from the research community to the industrial community. One of these products is JADE ([1,2,18]), a software framework to facilitate the development of interoperable intelligent multi-agent systems that is used by a heterogeneous community of users as a tool for both supporting research activities and building real applications.
The initial software developments, that eventually created the JADE platform, were started by Telecom Italia (formerly CSELT) together with the University of Parma in July’98, motivated by the need to validate FIPA specifications [14] through a concrete compliant implementation. The project also aimed at realizing a middleware for application development that, as one of the main challenges, put great emphasis on usability and simplicity of its API’s such as it was usable not just by its programmer’s team but also by other programmers without extensive experience in the FIPA specifications and multi-agent systems theory. In order to increase its diffusion in the communities of FIPA and of agent systems developers, and in order to facilitate its usage also in commercial products, in 2000 JADE went Open Source distributed by Telecom Italia under the LGPL (GNU Lesser General Public License) license [20]. After that, JADE grew both in usage and in offered functionalities and performances, thanks also to the contributions (e.g. bug reporting and fixing, code extensions, etc.) of the large community of users that, as depicted in Fig. 1, counts today more than 120,000 downloads from the official web site [18]. Fig. 1 shows how the number of downloads from the official JADE web site progressed after each release (the version number is reported close to each plotted point). The latest version of JADE is 3.5, released on 25 June 2007. As for most open source projects, it is very difficult to estimate the real number of users but it can be said that, even after 7 years of activity, the user forum is still very active with an average of .4 exchanged e-mails/days.
As a matter of fact, an important topic in multi-agent systems research is the development of programming languages and tools for the realization of such systems; in the last decade, more than a hundred of such tools have been realized. However, most of them were created as short-term research activity and their development and maintenance ended after only two or three years. [7] is a recent survey on multi-agent languages and platforms, while a short list of tools that are still active projects and that, in our opinion, represent related work of JADE, are the followings: Cougaar [16], JACK [24], 3APL [12], and Agent Factory [22]. Cougaar [16] is an agent architecture developed under two DARPA programs in the domain of military logistics planning and execution. It is a Java-based framework for large-scale and flexible distributed agent-based applications. It uses a flexible component model to dynamically load components by inserting component ‘‘binder’’ proxies to mediate interactions with system services. It also uses a multi-tiered interaction model: within agents, components interact via a local publish-subscribe mechanism, while inter-agent communication happens via message passing. Moreover,
Cougaar enables both dynamic negotiation of agent relationships via a hierarchical service discovery mechanism and the organization of agents into communities. JACK [24] is a commercial software development framework for the realization of BDI agent-based systems [21]. Rather than using a logic-based language, it extends the Java language through a set of syntactic constructs to deal with agent plans and agent beliefs. JACK offers a good degree of modularization through the composition of agent plans and the concept of agent teams. It provides also a set of development tools allowing, for example, the editing of agent code through a dedicated editor and a graphical plan editor that allows the construction of a plan via visual components similar to state charts. 3APL [12] is a programming language for implementing agent-based systems via programming constructs to deal with agents’ beliefs, goals, basic capabilities (such as belief updates, external actions, or communication actions) and via a set of practical reasoning rules through which agents’ goals can be updated or revised. 3APL is integrated within an IDE that helps a programmer to write the programs that implement the individual agents, to execute such programs in either a step-by-step or continuous mode, and to monitor their execution by accessing agent internal state and tracing the messages exchanged by the agents. It is also well integrated with Prolog and Java programming languages.
Agent Factory [22] is also based upon BDI concepts and it also includes an interpreter embedded within a distributed FIPA-compliant Run-Time Environment that allows the deployment of agents on desktops and servers, personal digital assistants, and mobile phones. Agent Factory provides a set of tools to help programmers in the development tasks; in particular, a tool for the construction of agents from a set of UML sequence diagrams and a suite of tools that facilitate the testing and debugging of applications.
In our opinion, three are the main identifying features of JADE in comparison with the rest of the state of the art: Fig. 1.
This paper is organized as follows. Section 2 describes the JADE agent architecture and its main features. Section 3 shows how JADE enables agents to adapt to mobile environment characteristics and to devices with limited memory and processing power. Section 4 discusses the integration of agents with other technologies, in particular Web Services and reasoning systems. Section 5 discusses, with an historical perspective, the possible and likely reasons for the widespread usage of JADE; particular care is devoted to those non-technical aspects which might represent lessons learned of general usefulness to other projects. Section 6 gives an overview of an industrial application in the field of network management, and it presents some of the reasons that led to the selection of JADE as development framework for that system. Finally, Section 7 concludes the paper and outlines some future work.
The Architecture of a JADE Agent System:
JADE Architecture for the Mobile Environment:
Lessons Learned:
Conclusions:
The paper presented JADE – a software framework to facilitate the development of agent applications – and described its software architecture and its provided functionalities as well as its integration with some technologies, in particular Web Service and reasoning tools and architectures. The paper discussed, looking back, possible reasons for the spread of JADE, in particular those non-technical aspects which might represent lessons learned of general usefulness also to other future projects. JADE is a mature software development tool, a lot of people are working on its continuous maintenance, improvement and extension, and several commercial and industrial applications built on top of JADE exist in different application domains.
The paper gave an overview of the Network Neutral Element Manager, a mission-critical system developed and deployed by Telecom Italia to decouple OSS systems from the network. Today NNEM manages about 10,000 devices, with the introduction of the new generation network it will have to deal with about 100,000 devices and even more (one per building). The latest version of JADE is 3.5 and was released on June 2007. Future work is focusing on a platform configuration and control module, as mentioned in Section 6 of the paper, as well as on the development of a workflow-based distributed processing engine. This new engine will enable agents to execute application logics described via workflows, and to dynamically delegate to other agents pieces of workflows (i.e. sub-flows) according to criteria that are evaluated at runtime. Such criteria can be based for instance on the current agent workload (similar to a GRID computing environment) or to specific characteristics of the delegated agents. This processing engine, together with an integrated Service Creation Environment that supports the definition of processes in a user friendly graphical form, will form the core added value of the new version of JADE which is planned to be released at the beginning of 2008.
The reader might argue: if JADE is such a great platform, why haven’t it made agent-oriented programming a standard technique within industry? JADE is a middleware that enables fast and reliable implementation of multiagent distributed systems and which can be integrated with Artificial Intelligence (AI) tools; however, the conviction of the benefits of AI and agents is more consolidated in the scientific community than in the industrial one. The reasons for that are outside the scope of this paper and have been plentifully treated in several other fora. While not yet a mainstream approach in software engineering at large, JADE can arguably be considered the most popular software agent platform available today.