l6-sma201011-jade

30
Java Agent DEvelopment Framework (JADE) Laboratory of Multiagent Systems LM Laboratorio di Sistemi Multiagente LM Elena Nardini [email protected] Ingegneria Due Alma Mater Studiorum—Universit` a di Bologna a Cesena Academic Year 2010/2011 Elena Nardini (Universit` a di Bologna) JADE A.Y. 2010/2011 1 / 30

Upload: andreea-ion

Post on 19-Apr-2017

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: L6-SMA201011-JADE

Java Agent DEvelopment Framework (JADE)Laboratory of Multiagent Systems LM

Laboratorio di Sistemi Multiagente LM

Elena [email protected]

Ingegneria DueAlma Mater Studiorum—Universita di Bologna a Cesena

Academic Year 2010/2011

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 1 / 30

Page 2: L6-SMA201011-JADE

Outline

1 JADE Platform

2 Programming with JADE – Basic Features

3 JADE Download

4 ExercisesExercise 1Exercise 2

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 2 / 30

Page 3: L6-SMA201011-JADE

JADE Platform

JADE and the Agent Abstraction

JADE Main Features

Software platform providing basic middleware-layer functionalities for therealisation of distributed application by exploiting the agent abstraction

Full compliant with FIPA specifications

Provides graphical tools to support programmers when debugging andmonitoring

JADE Agents

Identified by a globally unique name: AgentIdentifier or AID

Can join and leave a host platform at any time and can discover otheragents through both white-page and yellow-page services

Can initiate communication with any other agent at any time and canequally be the object of an incoming communication at any time

Can be mobile

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 3 / 30

Page 4: L6-SMA201011-JADE

JADE Platform

JADE Architecture

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 4 / 30

Page 5: L6-SMA201011-JADE

JADE Platform

JADE Architecture

Agents and Containers

A JADE platform is composed of agent containers that can be distributedover the network

Agents live in containers

A container is a Java process providing the JADE run-time and all theservice needed for hosting and executing agents

Main Container

Is a special container representing the bootstrap point of the platform

All the containers must join to a main container by registering with it

By default the Main Container contains two agents:

Agent Management System (AMS) that supervises the entire platformDirectory Facilitator (DF) that implements the yellow pages service

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 5 / 30

Page 6: L6-SMA201011-JADE

JADE Platform

Admin & Debugging Tools

Complexity in Multi-agent Applications

Often distributed across several hosts

Composed of perhaps hundreds of multi-threaded processes

They are dynamic in that agents can appear, disappear and migrate

→ Difficulties in management and especially debugging

→ JADE has an event notification service which forms the basis of

The JADE RMA management consoleA set of graphical tools

→ They are provided to help in the management and debugging phase

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 6 / 30

Page 7: L6-SMA201011-JADE

JADE Platform

Admin & Debugging Tools

JADE RMA (Remote Monitoring Agent)

Implements a graphical platform management console

Provides a visual interface to monitor and administer a distributed JADEplatform composed of one or several hosts and container nodes

It includes a “Tools” menu through which other tools can be launched

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 7 / 30

Page 8: L6-SMA201011-JADE

JADE Platform

Admin & Debugging Tools

Dummy Agent

A simple tool that is useful for sending stimuli, in the form of custom ACLmessages, to test the behaviour of another agent

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 8 / 30

Page 9: L6-SMA201011-JADE

JADE Platform

Admin & Debugging Tools

Sniffer Agent

A tool used for debugging or, simply documenting conversations betweenagents

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 9 / 30

Page 10: L6-SMA201011-JADE

JADE Platform

Admin & Debugging Tools

Introspector Agent

While the Sniffer Agent is a tool useful to sniff, monitor and debugconversation between agents, the Introspector Agent should be used todebug the behaviour of a single agent

In fact, it allows an agent’s life cycle, and its queues of sent and receivedmessages, to be monitored and controlled

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 10 / 30

Page 11: L6-SMA201011-JADE

JADE Platform

Admin & Debugging Tools

Log Manager Agent

Is a tool that simplifies the dynamic and distributed management of thelogging facility by providing a graphical interface that allows the logginglevels of each component of the JADE platform to be changed at run-time

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 11 / 30

Page 12: L6-SMA201011-JADE

Programming with JADE – Basic Features

Agent Cycle

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 12 / 30

Page 13: L6-SMA201011-JADE

Programming with JADE – Basic Features

Agent Example

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 13 / 30

Page 14: L6-SMA201011-JADE

Programming with JADE – Basic Features

Agent Execution

Compile the Agent HelloWorldAgent with the command

javac -cp jade.jar *.java

Run the Main Container with the command

java -cp .:jade.jar jade.Boot -gui

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 14 / 30

Page 15: L6-SMA201011-JADE

Programming with JADE – Basic Features

Agent Execution

Run the Agent with the command

java -cp .:jade.jar jade.Boot -container Pet:HelloWorldAgent

Run the Agent with the command

java -cp .:jade.jar jade.Boot -container

"Pet:HelloWorldAgent(arg1,arg2)"

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 15 / 30

Page 16: L6-SMA201011-JADE

Programming with JADE – Basic Features

Agent Behaviour

Three primary behaviour types are available with JADE

One-shot. Designed to complete in one execution phase

Cyclic-shot. Designed to never complete

Generic-shot. Embed a status trigger and execute different operationsdepending on the status value

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 16 / 30

Page 17: L6-SMA201011-JADE

Programming with JADE – Basic Features

Example of Behaviour Implementation (FromBOOK-TRADING Project)

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 17 / 30

Page 18: L6-SMA201011-JADE

Programming with JADE – Basic Features

Example of Behaviour Definition (From BOOK-TRADINGProject)

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 18 / 30

Page 19: L6-SMA201011-JADE

Programming with JADE – Basic Features

Agent Communication

Agent communication is implemented in accordance with the FIPAspecifications

The communication paradigm is based on asynchronous message passing:

A mailbox associated to each agentAn agent is notified whenever a message is posted in the mailbox

Messages

Compliant with FIPA-ACL message structure

The sender of the messageThe list of receiverThe communication act (or performative) indicating what the senderintends to achieve by sending the messageThe content containing the actual information to be exchangedThe content language indicating the syntax used to express the contentThe ontology indicating the semantic used to interpreter the contentSome additional fields. . .

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 19 / 30

Page 20: L6-SMA201011-JADE

Programming with JADE – Basic Features

Example of DF Usage: Registration (FromBOOK-TRADING Project)

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 20 / 30

Page 21: L6-SMA201011-JADE

Programming with JADE – Basic Features

Example of DF Usage: Searching (From BOOK-TRADINGProject)

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 21 / 30

Page 22: L6-SMA201011-JADE

Programming with JADE – Basic Features

Example of Message Sending (From BOOK-TRADINGProject)

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 22 / 30

Page 23: L6-SMA201011-JADE

Programming with JADE – Basic Features

Example of Message Reception and Blocking (FromBOOK-TRADING Project)

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 23 / 30

Page 24: L6-SMA201011-JADE

JADE Download

JADE for Usage

Homepage: http://jade.tilab.com/

Download JADE-all-4.0.1.zip containing

bindocexamplessrc

We need jade.jar in bin, the documentation in doc and examples

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 24 / 30

Page 25: L6-SMA201011-JADE

JADE Download

Jason with JADE

It is possible to use Jade as communication infrastructure for Jason

It is possible to integrate Jade agents with Jason agents

Seehttp://jason.sourceforge.net/mini-tutorial/jason-jade/

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 25 / 30

Page 26: L6-SMA201011-JADE

Exercises Exercise 1

Outline

1 JADE Platform

2 Programming with JADE – Basic Features

3 JADE Download

4 ExercisesExercise 1Exercise 2

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 26 / 30

Page 27: L6-SMA201011-JADE

Exercises Exercise 1

Thermostat Agent with JADE

Requirements

Check the environment temperature T.

Until T is not: > 18 and < 22:

Decrease T of one unit if the temperature is 22Increase T of one unit if the temperature is 18

Constraint

ThermostatAgent interacts with the environment to sense and changethe temperature

The environment can be simulated by an agent

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 27 / 30

Page 28: L6-SMA201011-JADE

Exercises Exercise 2

Outline

1 JADE Platform

2 Programming with JADE – Basic Features

3 JADE Download

4 ExercisesExercise 1Exercise 2

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 28 / 30

Page 29: L6-SMA201011-JADE

Exercises Exercise 2

Thermostat Agent with Agent Interaction

New Constraints

There are three agents:

ThermostatAgent interacts with the environment to sense and changethe temperatureManagerAgent publish the service JADE-themperature-checking in theDFThermostatAgent searches the service JADE-themperature-checking inthe DF and obtain the Agent ID (AID) of ManagerAgentThermostatAgent asks to ManagerAgent the new value of thetemperature

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 29 / 30

Page 30: L6-SMA201011-JADE

Java Agent DEvelopment Framework (JADE)Laboratory of Multiagent Systems LM

Laboratorio di Sistemi Multiagente LM

Elena [email protected]

Ingegneria DueAlma Mater Studiorum—Universita di Bologna a Cesena

Academic Year 2010/2011

Elena Nardini (Universita di Bologna) JADE A.Y. 2010/2011 30 / 30