introduction of java agent development environment (jade) 余萍 [email protected]

51
Software Agent Introduction of Java Agent Development Environment (JADE) 余余 [email protected]

Upload: cameron-godfrey-ramsey

Post on 23-Dec-2015

238 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Software AgentIntroduction of Java Agent Development Environment (JADE)

余萍[email protected]

Page 2: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Outline

Introduction Foundation for Intelligent Physical Agents (FIPA) Java Agent Development Environment (JADE)

Running JADE Platform Install JADE Platform Run JADE Platform Run Agent on JADE Platform

2

Page 3: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Foundation for Intelligent Physical Agents (FIPA)

IEEE Computer Society standards organization A body for developing and setting computer

software standards for heterogeneous and interacting agents and agent-based systems.

http://www.fipa.org/ A software agent

A piece of software that acts for a user or other program in a relationship of agency

3

Page 4: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Within the scope of FIPA

Agent Lifecycle Management Message Transport Message Structure Inter-agent Interaction Protocols Ontologies Security

4

Page 5: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

The FIPA Agent Platform

5

Page 6: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent Management

6

Page 7: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent Management

7

Page 8: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Sample DF Description

(df-agent-description:name (agent-identifier :name [email protected]

:addresses (sequence iiop://foo.com/acc))

:protocols fipa-request:ontologies (set fipa-agent-management):languages (set fipa-sl0):lease-time +00000000T600000000T)

8

Page 9: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Message Transport

Agent message transport comprises two levels: (1) The Message Transport Protocol (MTP)

carries out the physical transfer of messages between two ACCs.

(2) The Message Transport Service (MTS) is provided by the AP to which an agent is attached. The MTS supports the transport of FIPA ACL messages between agents on any given AP and between agents on different APs.

9

Page 10: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

FIPA Conceptual model of an Agent Platform

10

Agent Platform

Service

White page service

Life cycle ManagementAgent-Software Integration

Ontology Service

Human Agent Interaction

provides

Yellow page service

Message Transport service

Normative services Optional services

Page 11: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

FIPA Message Structure

11

Page 12: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Java Agent Development Framework

JADE is an enabling technology, a middleware for the development and run-time execution of peer-to-peer applications which are based on the agents paradigm and which can seamless work and interoperate both in wired and wireless environment. distributed system topology with peer-to-peer

networking software component architecture with agent

paradigm12

Page 13: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

JADE Features

FIPA-compliant distributed agent platform which can be split onto several hosts.

Java Application Programmer’s Interface. Library of FIPA interaction protocols,

such as Contract Net, ready to be used. Graphical User Interface to manage

several agents from the same Remote Management Agent.

Available at http://jade.tilab.com Latest version: Jade 4.3 (29/03/2013) JADE is free software and is distributed by Telecom Italia

13

Page 14: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

JADE Application Fields

Mobile Applications Internet Applications Corporate Applications Machine-to-Machine Applications

14

Page 15: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

15

Page 16: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

JADE Platform

16

Network protocol stack

JRE JRE JRE

Jade Main-container

Applic

ati

on A

gent

Applic

ati

on A

gent

Applic

ati

on A

gent

host1.it host2.jp host3.us

Jade Agent Container Jade Agent Container

Jade distributed Agent PlatformA

pplic

ati

on A

gent

Applic

ati

on A

gent

Applic

ati

on A

gent

Applic

ati

on A

gent

Page 17: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

JADE Platform

17

Intra-Container Message Transport

(Java events)

White pageservice

AgentManagement

System

Yellow pageservice

DirectoryFacilitator

Agent Communication Channel

Inter-Containers Message Transport

(Java RMI)

Inter-Platforms Message Transport

(IIOP, HTTP, …)

cache of agent addresses

Page 18: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Directory Facilitator (DF)

18

Page 19: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Directory Facilitator (DF)

Provides a Yellow Pages service by means of which an agent can find other agents providing the services he requires in order to achieve his goals.

19

Page 20: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent Management System (AMS)

20

Page 21: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent Management System (AMS)

Provides the naming service Ensures that each agent in the platform

has a unique name Represents the authority in the

platform To create/kill agents on remote

containers by requesting that to the AMS

21

Page 22: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Remote Monitoring Agent (RMA)

Provide the GUI to control agents’ lifecycle

22

Page 23: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent Life Cycle

23

Page 24: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Message Transport System

Agent Communication Channel (ACC) Agent to Agent Agent Platform to Agent Platform

24

Intra-Container Message Transport

(Java events)

White pageservice

AgentManagement

System

Yellow pageservice

DirectoryFacilitator

Agent Communication Channel

Inter-Containers Message Transport

(Java RMI)

Inter-Platforms Message Transport

(IIOP, HTTP, …)

cache of agent addresses

Page 25: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

JADE - Message Transport Service

controls the agent’s private queue of ACL messages designed as a chameleon

the transport mechanism is selected according to the situation▪ to achieve the lowest cost for message passing▪ the overheads depend on the receiver’s location and the cache

status distributed Agent Communication Channel

the main container is not a bottle-neck, thanks to the distributed caches

Message Transport Protocols (MTP) can be activated/deactivated at run-time on any container via the GUI▪ IIOP based on the ORB implementation of Sun▪ IIOP based on the ORBacus implementation ▪ allows to make persistent the object reference▪ allows a more friendly URL-format

corbaloc:iiop:hostname:port/name▪ HTTP MTP provided by EPFL under LGPL

multiple ACL encodings have been implemented▪ String-based, XML-based (EPFL), bit-efficient (Sonera)

25

Page 26: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent Execution Model agent is autonomous

it completely controls its thread of execution has a private proxy of the life-cycle manager

decides itself when to read messages and which messages to read the transport mechanism fills a private queue but it does not

call the agent code (no automatic callback) agent needs concurrency

can engage multiple simultaneous conversations can execute several concurrent tasks

Java multi-thread or/and JADE behaviours with cooperative scheduling

one thread-per-agent rather than one thread-per-task/conversation. Programming Model

A JADE agent is mapped onto an user defined Java class, that must subclass Agent class in jade.core package.

Agent tasks are mapped onto user defined subclasses of Behaviour class in jade.core.behaviours package.

26

Page 27: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent Communication Model

Agents send/receive Java objects, that represent ACLMessages, within the scope of interaction protocols JADE hides all message coding (encoding/parsing)▪ Envelope level▪ String-based, XML-based

▪ Agent Communication Language level▪ String-based, XML-based, bit-efficient

▪ Content Language level▪ FIPA SL-0 + API to register user-defined content languages▪ support for Base64-encoded direct Java object serialization

▪ Ontology level▪ FIPA-Agent Management; JADE Agent Management▪ API to register user-defined content languages

▪ the framework can be extended by users▪ all levels provide APIs to implement/register new codecs▪ work is in progress to improve CL and ontology level extendibility

JADE provides a library of common interaction protocols▪ users just need to implement the handle methods▪ users can compose agent tasks like super-states of FSM

27

Page 28: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent mobility

JADE supports intra-platform mobility and cloning A platform can be distributed across multiple hosts▪ each host is an agent container

Agents can migrate between containers Agents can clone across containers Self-initiated▪ doMove(Location) / doClone(Location, String)▪ before/afterMove() before/afterClone()

Requested to the platform (via the AMS)▪ Fipa-request interaction protocol▪ jade.domain.MobilityOntology defines all the concepts and

actions needed to support agent mobility and cloning

28

Page 29: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Some graphical tools to support development

RMA (Remote Monitoring Agent) to browse the white-page service to control the agent life-cycle (e.g. remote creation, agent

migration, …) to activate/deactivate MTPs on containers to browse white-page services of remote agent platforms

DF GUI to browse the yellow-page service to make DF federations and browse remote DF’s

DummyAgent send/receive store/save ACLMessages

Sniffer Agent to sniff, debug, save to file, multi-agent conversations

Introspector Agent to debug an agent: queue of sent/received messages, queue of

behaviours, …

29

Page 30: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Scalability in JADE

Configuration of a platform from one MAS on a single host ▪ single-host platform

to one agent on a single host ▪ agent platform on a cluster of hosts

configuration can be changed at run-time▪ hot restarting is possible thanks to the local caches▪ agent is referred by name => no need to get new reference

Is the main-container a bottle-neck? the Agent Communication Channel is distributed the main container is involved only when strictly

necessary

30

Page 31: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

How much of FIPA is hidden by JADE to the programmer?

no need to implement the Agent Platform AMS, DF, and ACC automatically launched at start-up

no need to implement agent-management ontology and functionalities an agent is registered with the AP by the Java constructor itself▪ it is given a name and an address

the Agent class provides a simplified interface to access the services of the DF (registration, searching, …)

no need to implement Message Transport and Parsing automatically (and possibly efficiently) done by the framework

when sending/receiving messages no need to implement Interaction Protocols

they must only be extended via handle methods

31

Page 32: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Example Book Seller & Book Buyer

32

Seller1

Seller2Buyer

Page 33: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent Communication Language

33

Page 34: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent Communication Language

sender of the message list of receivers communicative intention (or “performative”) content content language ontology some fields

34

Page 35: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

Agent Communication Language

Receiving Messages

35

Page 36: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

36

Page 37: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

An Example of Sender

37

Page 38: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

An Example of Receiver

38

Page 39: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

BookSellerAgent

BookSellerAgent extends Agent import jade.core.Agent; Initial process▪ Setup()▪ addBehaviour(new OfferRequestsServer());▪ addBehaviour(new PurchaseOrdersServer());

Agent Behaviour▪ import jade.core.behaviours.*;▪ PurchaseOrdersServer extends CyclicBehaviour▪ OfferRequestsServer extends CyclicBehaviour

39

Page 40: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

BookSellerAgent Setup()

40

Service Registration• Service Name• Service Type

Add Behaviour

Page 41: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

BookSellerAgent Takedown()

41

Service deregistration

Page 42: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

class Behaviour

This abstract class provides an abstract base class for modelling agent tasks, and it sets the basis for behaviour scheduling as it allows for state transitions (i.e. starting, blocking and restarting a Java behaviour object).

42

Page 43: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

43

Page 44: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

class Behaviour (Cont.)

class SimpleBehaviour This abstract class models simple atomic behaviours. Its

reset() method does nothing by default, but it can be overridden by user defined subclasses.

class OneShotBehaviour▪ This abstract class models atomic behaviours that must be executed

only once and cannot be blocked. So, its done() method always returns true.

class CyclicBehaviour▪ This abstract class models atomic behaviours that must be executed

forever. So its done() method always returns false.

44

Page 45: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

BookSellerAgent OneShotBehaviour()

45

Page 46: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

BookSellerAgent CyclicBehaviour()

46

Page 47: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

class Behaviour (Cont.)

class WakerBehaviour This abstract class implements a one-

shot task that must be executed only once just after a given timeout is elapsed.

class TickerBehaviour This abstract class implements a cyclic

task that must be executed periodically.

47

Page 48: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

class Behaviour (Cont.) class CompositeBehaviour

This abstract class models behaviours that are made up by composing a number of other behaviours (children). So the actual operations performed by executing this behaviour are not defined in the behaviour itself, but inside its children while the composite behaviour takes only care of children scheduling according to a given policy.

class SequentialBehaviour▪ This class is a CompositeBehaviour that executes its sub-

behaviours sequentially and terminates when all sub-behaviours are done. Use this class when a complex task can be expressed as a sequence of atomic steps (e.g. do some computation, then receive a message, then do some other computation).

48

Page 49: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

class Behaviour (Cont.)

class ParallelBehaviour▪ This class is a CompositeBehaviour that executes its sub-behaviours

concurrently and terminates when a particular condition on its sub-behaviours is met. Proper constants to be indicated in the constructor of this class are provided to create a ParallelBehaviour that ends when all its sub-behaviours are done, when any one among its sub-behaviour terminates or when a user defined number N of its sub-behaviours have finished. Use this class when a complex task can be expressed as a collection of parallel alternative operations, with some kind of termination condition on the spawned subtasks.

49

Page 50: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

class Behaviour (Cont.)

class FSMBehaviour▪ This class is a CompositeBehaviour that executes its children

according to a Finite State Machine defined by the user. More in details each child represents the activity to be performed within a state of the FSM and the user can define the transitions between the states of the FSM. When the child corresponding to state Si completes, its termination value (as returned by the onEnd() method) is used to select the transition to fire and a new state Sj is reached. At next round the child corresponding to Sj will be executed. Some of the children of an FSMBehaviour can be registered as final states. The FSMBehaviour terminates after the completion of one of these children.

50

Page 51: Introduction of Java Agent Development Environment (JADE) 余萍 yuping@nju.edu.cn

实习题

基于Aglets或 Jade开发一个电子集市应用,集市中有三类角色,分别为Manager, Seller,Buyer。其中,Manager负责对集市中的交易进行管理, Seller是电子集市中的交易的提供方, Buyer是电子集市中交易的购买方,可于任意时刻在任何主机上进入市场,以特定的条件购买特定的商品。Manager负责调节双方,协助交易的进行。要求: Buyer通过迁移进行比价,从报价最便宜的Seller处购买商品;

Buyer和Seller通过多次交互完成询价和交易; Manager可以帮助Buyer寻找Seller或帮助Seller寻找

Buyer,同时监管所有交易过程。51