/
Software Agent Introduction of Software Agent Introduction of

Software Agent Introduction of - PowerPoint Presentation

jezebelfox
jezebelfox . @jezebelfox
Follow
343 views
Uploaded On 2020-10-22

Software Agent Introduction of - PPT Presentation

Java Agent Development Environment JADE 余萍 yupingnjueducn Outline Introduction Foundation for Intelligent Physical Agents FIPA Java Agent Development Environment JADE Running JADE Platform ID: 814428

class agent platform jade agent class jade platform message transport fipa service behaviours behaviour java management agents container communication

Share:

Link:

Embed:

Download Presentation from below link

Download The PPT/PDF document "Software Agent Introduction of" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Software Agent

Introduction of Java Agent Development Environment (JADE)

余萍

yuping@nju.edu.cn

Slide2

Outline

IntroductionFoundation 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

Slide3

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

Slide4

Within the scope of FIPA

AgentLifecycle ManagementMessage Transport

Message StructureInter-agent Interaction ProtocolsOntologies

Security

4

Slide5

The FIPA Agent Platform

5

Slide6

Agent Management

6

Slide7

Agent Management

7

Slide8

Sample DF Description

(df-agent-description

:name (agent-identifier :name dummy@foo.com :addresses (sequence iiop://foo.com/acc))

:protocols

fipa

-request:ontologies (set

fipa

-agent-management)

:languages (set fipa-sl0)

:lease-time +00000000T600000000T

)

8

Slide9

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

Slide10

FIPA

Conceptual

model of an Agent Platform

10

Agent Platform

Service

White page service

Life cycle Management

Agent-Software Integration

Ontology Service

Human Agent Interaction

provides

Yellow page service

Message Transport service

Normative services

Optional services

Slide11

FIPA

Message Structure

11

Slide12

J

ava 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 paradigm

12

Slide13

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.comLatest version: Jade

4.

3

(

2

9

/

0

3

/201

3

)

JADE is free software and is distributed by

Telecom Italia

13

Slide14

JADE Application Fields

Mobile ApplicationsInternet ApplicationsCorporate Applications

Machine-to-Machine Applications

14

Slide15

15

Slide16

JADE Platform

16

Network protocol stack

JRE

JRE

JRE

Jade Main-container

Application Agent

Application Agent

Application

Agent

host1.it

host2.jp

host3.us

Jade Agent Container

Jade Agent Container

Jade distributed Agent Platform

Application

Agent

Application Agent

Application Agent

Application Agent

Slide17

JADE Platform

17

Intra-Container

Message Transport

(Java events)

White page

service

Agent

Management

System

Yellow page

service

Directory

Facilitator

Agent Communication Channel

Inter-Containers

Message Transport

(Java RMI)

Inter-Platforms

Message Transport

(IIOP, HTTP, …)

cache of

agent addresses

Slide18

Directory Facilitator (DF)

18

Slide19

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

Slide20

Agent Management System (AMS)

20

Slide21

Agent Management System (AMS)

Provides the naming serviceEnsures that each agent in the platform has a unique name

Represents the authority in the platformTo create/kill agents on remote containers by requesting that to the AMS

21

Slide22

Remote Monitoring Agent (RMA)

Provide the GUI to control agents’ lifecycle

22

Slide23

Agent Life Cycle

23

Slide24

Message Transport System

Agent Communication Channel (ACC)Agent to Agent

Agent Platform to Agent Platform

24

Intra-Container

Message Transport

(Java events)

White page

service

Agent

Management

System

Yellow page

service

Directory

Facilitator

Agent Communication Channel

Inter-Containers

Message Transport

(Java RMI)

Inter-Platforms

Message Transport

(IIOP, HTTP, …)

cache of

agent addresses

Slide25

JADE -

Message Transport Service

controls the agent’s private queue of ACL messagesdesigned 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

Slide26

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

Slide27

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

Slide28

Agent mobility

JADE supports intra-platform mobility and cloningA platform can be distributed across multiple hostseach host is an agent container

Agents can migrate between containersAgents can clone across containersSelf-initiateddoMove(Location) / doClone(Location, String)

before/afterMove() before/afterClone()

Requested to the platform (via the AMS)

Fipa-request interaction protocoljade.domain.MobilityOntology defines all the concepts and actions needed to support agent mobility and cloning

28

Slide29

Some graphical tools to support development

RMA (Remote Monitoring Agent)

to browse the white-page serviceto 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 GUIto browse the yellow-page serviceto 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

Slide30

Scalability in JADE

Configuration of a platform

from one MAS on a single host single-host platformto 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 cachesagent 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

Slide31

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-upno 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

Slide32

Example

Book Seller & Book Buyer

32

Seller1

Seller2

Buyer

Slide33

Agent Communication Language

33

Slide34

Agent Communication Language

sender of the messagelist of receivers

communicative intention (or “performative”)content

content language

ontology

some fields

34

Slide35

Agent Communication Language

Receiving Messages

35

Slide36

36

Slide37

An Example of Sender

37

Slide38

An Example of Receiver

38

Slide39

BookSellerAgent

BookSellerAgent

extends Agentimport 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

Slide40

BookSellerAgent Setup()

40

Service Registration

Service Name

Service Type

Add Behaviour

Slide41

BookSellerAgent Takedown()

41

Service deregistration

Slide42

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

Slide43

43

Slide44

class Behaviour (Cont.)

class SimpleBehaviourThis abstract class models simple atomic behaviours. Its reset() method does nothing by default, but it can be overridden by user defined subclasses.

class OneShotBehaviourThis 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

Slide45

BookSellerAgent OneShotBehaviour()

45

Slide46

BookSellerAgent

CyclicBehaviour()

46

Slide47

class Behaviour (Cont.)

class WakerBehaviourThis 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

Slide48

class Behaviour (Cont.)

class CompositeBehaviourThis 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

Slide49

class Behaviour (Cont.)

class ParallelBehaviourThis 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

Slide50

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

Slide51

实习题

基于Aglets或

Jade开发一个电子集市应用,集市中有三类角色,分别为Manager

Seller

,Buyer。其中,Manager负责对集市中的交易进行管理,

Seller

是电子集市中的交易的提供方

Buyer

电子集市中交易的购买方,可于任意时刻在任何主机上进入市场,以特定的条件购买特定的商品

Manager

负责调节

双方,协助交易的进行

要求:

Buyer

通过迁移进行比价,从报价最便宜的

Seller

处购买商品;

Buyer

Seller

通过多次交互完成询价和交易;

Manager

可以帮助

Buyer

寻找

Seller

或帮助

Seller

寻找

Buyer

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

51