Java Agent Development Environment JADE 余萍 yupingnjueducn Outline Introduction Foundation for Intelligent Physical Agents FIPA Java Agent Development Environment JADE Running JADE Platform ID: 814428
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.
Slide1
Software Agent
Introduction of Java Agent Development Environment (JADE)
余萍
yuping@nju.edu.cn
Slide2Outline
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
Slide3Foundation 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
Slide4Within the scope of FIPA
AgentLifecycle ManagementMessage Transport
Message StructureInter-agent Interaction ProtocolsOntologies
Security
4
Slide5The FIPA Agent Platform
5
Slide6Agent Management
6
Slide7Agent Management
7
Slide8Sample 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
Slide9Message 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
Slide10FIPA
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
Slide11FIPA
Message Structure
11
Slide12J
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
Slide13JADE 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
Slide14JADE Application Fields
Mobile ApplicationsInternet ApplicationsCorporate Applications
Machine-to-Machine Applications
14
Slide1515
Slide16JADE 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
Slide17JADE 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
Slide18Directory Facilitator (DF)
18
Slide19Directory 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
Slide20Agent Management System (AMS)
20
Slide21Agent 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
Slide22Remote Monitoring Agent (RMA)
Provide the GUI to control agents’ lifecycle
22
Slide23Agent Life Cycle
23
Slide24Message 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
Slide25JADE -
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
Slide26Agent 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
Slide27Agent
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
Slide28Agent 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
Slide29Some 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
Slide30Scalability 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
Slide31How 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
Slide32Example
Book Seller & Book Buyer
32
Seller1
Seller2
Buyer
Slide33Agent Communication Language
33
Slide34Agent Communication Language
sender of the messagelist of receivers
communicative intention (or “performative”)content
content language
ontology
some fields
34
Slide35Agent Communication Language
Receiving Messages
35
Slide3636
Slide37An Example of Sender
37
Slide38An Example of Receiver
38
Slide39BookSellerAgent
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
Slide40BookSellerAgent Setup()
40
Service Registration
Service Name
Service Type
Add Behaviour
Slide41BookSellerAgent Takedown()
41
Service deregistration
Slide42class 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
Slide4343
Slide44class 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
Slide45BookSellerAgent OneShotBehaviour()
45
Slide46BookSellerAgent
CyclicBehaviour()
46
Slide47class 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
Slide48class 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
Slide49class 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
Slide50class 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