Thursday, September 3, 2009
Developing multi-agent systems with JADE
Agent-Oriented Programming (AOP) is a relatively new software paradigm that brings concepts from the theories of artificial intelligence into the mainstream realm of distributed systems. AOP essentially models an application as a collection of components called agents that are characterized by, among other things, autonomy, proactivity and an ability to communicate. Being autonomous they can independently carry out complex, and often long-term, tasks. Being proactive they can take the initiative to perform a given task even without an explicit stimulus from a user. Being communicative they can interact with other entities to assist with achieving their own and others’ goals. The architectural model of an agent-oriented application is intrinsically peer to peer, as any agent is able to initiate communication with any other agent or be the subject of an incoming communication at any time.
Agent technology has been the subject of extensive discussion and investigation within the scientific community for several years, but it is perhaps only recently that it has seen any significant degree of exploitation in commercial applications. Multi-agent systems are being used in an increasingly wide variety of applications, ranging from comparatively small systems for personal assistance to open, complex, mission-critical systems for industrial applications. Examples of industrial domains where multi-agent systems have been fruitfully employed include process control, system diagnostics, manufacturing, transportation logistics and network management.
When adopting an agent-oriented approach to solving a problem, there are a number of domainindependent issues that must always be solved, such as how to allow agents to communicate. Rather than expecting developers to develop this core infrastructure themselves, it is convenient to build multi-agent systems on top of an agent-oriented middleware that provides the domain-independent infrastructure, allowing the developers to focus on the production of the key business logic.
This book describes JADE (Java Agent DEvelopment framework), probably the most widespread agent-oriented middleware in use today. JADE is a completely distributed middleware system with a flexible infrastructure allowing easy extension with add-on modules. The framework facilitates the development of complete agent-based applications by means of a run-time environment implementing the life-cycle support features required by agents, the core logic of agents themselves, and a rich suite of graphical tools. As JADE is written completely in Java, it benefits from the huge set of language features and third-party libraries on offer, and thus offers a rich set of programming
abstractions allowing developers to construct JADE multi-agent systems with relatively minimal expertise in agent theory. JADE was initially developed by the Research & Development department of Telecom Italia s.p.a., but is now a community project and distributed as open source under the LGPL licence.
The book’s intended audience is primarily application developers with goals to both provide a comprehensive explanation of the features provided by JADE and also to serve as a handbook for programmers. Many of the features discussed are supported with exemplary code, either ad hoc or positioned with the context of a pervasive ‘book trading’ example. All code snippets and application examples provided in the book relate to version 3.4.1 of JADE released on November 2006; although we expect this material will remain consistent with future versions and is, in the most part, backward compatible with previous versions of JADE.
The book is structured as follows: Chapter 2 presents an overview of agent technology discussing the most relevant agent-related concepts, architectures and tools. Moreover, it provides a summary of the FIPA specifications that represent the most important standardization activity conducted in the field of agent technology. Chapter 3 presents the core architecture of JADE, its components and supported features. It also shows how to start the platform, launch agents and use the graphical administration tools. Chapters 4, 5 and 6 focus on the main Application Programming Interfaces (APIs) that JADE provides to access its features. Chapter 4 describes the basic features, Chapter 5 the advanced features and Chapter 6 is dedicated to agent mobility. Chapter 7 presents the internal architecture of the JADE kernel and explains how to modify and extend its behaviour. Chapter 8 addresses the development and deployment of JADE-based applications in the mobile and wireless environment. Chapters 9, 10 and 11 present additional configurations and tools that can be used to solve issues that must typically be taken into account when deploying real-world applications.
Chapter 12 then discusses the JADE Semantic Framework, an important and recently released module that exploits the formal semantics of messages exchanged by agents. Finally, Chapter 13 gives an overview of other relevant tools that can be used with JADE.
Wednesday, September 2, 2009
A Time for Blended eLearning
At the turn of the millennium, eLearning was touted as the next killer application, a technology-based business solution heralded by John Chambers of Cisco and others that would be the key driver of corporate profits and a knowledge-based global economy. At the same time, eLearning was shown to have the inherent capability of delivering training programs—anytime, anywhere—to desktops or laptops in all reaches of the world that had Internet access. That eLearning might, almost as a byproduct, significantly reduce travel and other indirect costs associated with training seemed mere icing on the cake. Thus, the real value-add of eLearning programs at large companies was that they could train and thereby enhance the competency of large numbers of employees who could, in turn, improve products, services, and overall productivity. So, have eLearning systems reached anywhere near this kind of potential?
The short answer is no, but things are moving in the right direction. At the present time, eLearning systems consist of several different software packages with components that were designed and produced by many smaller companies. These components typically include a learning management system, a learning content management system, collaboration software, virtual classroom software, a mobile learning solution, and testing or assessment software. Consequently, organizations that are purchasing these components have necessarily been heavily involved in the integration and customization of these disparate eLearning technologies.
In fact, putting together an eLearning system today is comparable to purchasing an automobile part-by-part for assembly at some later date. So it’s not surprising to hear about the horror stories that companies have encountered with componentized eLearning systems that do not function properly.
These difficulties are a result of interoperability problems and unexpected component limitations in scalability or functionality. And for companies with Human Resources departments that use legacy systems, additional integration and data migration problems have arisen as eLearning systems are being required to incorporate employee training records into company employee files. These difficulties, among others, have raised serious concerns about the functionality of today’s eLearning systems, as well as doubts about whether or not they will live up to their promised business potential.
Nonetheless, strategic eLearning investments are being made in what could be considered “best-in-breed” eLearning system components that can be fully integrated with other enterprise systems to satisfy the complex learning requirements of large organizations. These integrated eLearning systems will, of course, need to be upgraded in the future to include new training and learning technologies that are designed to work within established standards such as AICC and SCORM.
One way to avoid some of the guesswork associated with the initial installation, operation, and maintenance of an eLearning system is to install a hosted or ASP version as a pilot of a more comprehensive eLearning solution under consideration. Here, a hosting organization can provide the eLearning components and the necessary support staff for a specified period of time, typically one year. The company, in turn, pays a per-seat fee for trainees as payment for the pilot system. Then, based on the performance of the pilot, the company can decide on the final system design and the necessary resources to deploy a successful
eLearning solution. In some cases, this type of eLearning hosting model can become a long-term solution for organizations that do not ultimately have the resources, or perhaps the business interest, to build and maintain their own eLearning systems infrastructure.
The primary formats for eLearning today are live, online, or synchronous instruction for many participants in a virtual classroom environment or, alternatively, asynchronous selfxvii paced training for individualized instruction. Such eLearning systems can, of course, be enhanced by conventional training
methodologies that include meetings and seminars, instructorled training that covers specialized topics, and structured onthe- job training. Thus, the term Blended eLearning is broad enough to include complementary methods and technologies used to supplement those included in eLearning systems today.
And more often than not, this Blending will include performance
support and knowledge management technologies as well. With this kind of broad eLearning thinking as a backdrop, it is therefore appropriate that HRD Press is bringing out a new text that is devoted to this more comprehensive view of Blended eLearning. The authors, Drs. David Metcalf and Larry Bielawski, have a wealth of experience in university instructional programs as well as business and government programs associated with the training of personnel using emerging eLearning technologies. In this book, they have succeeded in producing a thorough and incisive description of the state of several technology segments that are currently
download this file