jade java agent development frameworkjade.tilab.com/papers/jadeleapagentcities020208.pdf · java...
TRANSCRIPT
Slide: 1
Java Agent Development Frameworkand beyond
http://jade.cselt.it/
Fabio Bellifemine
Telecom Italia Lab - Torino (Italy)8th February 2002
Slide: 2
Overview
Standard compliance
JADEmain features, architectural choices, sub-systemshow it tries to meet the requirements of agents, MAS, swdevelopers
JADEpL (JADE powered by LEAP)
JADE - what it is next
Conclusions
Slide: 3
Open StandardsNo standards, No agents
emphasis on semantics and interaction: protocols, negotiation, dynamic discovery, inter-organization, inter-platform
Open standardthe spec is openly knownthe evolution is controlled by an independent (not for profit) body
Proprietary standardthe spec is normally not known until a late stagethe evolution is controlled by a (for profit) company or group of
“one of the ways that Microsoft leveraged its OS was to keep critical APIs evolving internally until fairly late in the cycle, giving its developers an automatic window of opportunity of several months to develop into a new niche before a competitor could.”
FIPA is an Open Standard and JADE decided to comply with FIPA specifications
Slide: 4
FIPAConceptual model of an Agent Platform
Agent Platform
Agent-Software Integration
Ontology Service
Human Agent Interaction
Optional services
White page service
Life cycle Management
Yellow page service
Message Transport service
Normative services
provides
Service
Slide: 5
FIPAconceptual model of agent communicationEnvelopeEncodingScheme
ACLEncodingScheme
CLEncodingScheme
TransportProtocol
InteractionProtocol
Envelope
1 11 isTransmittedOver
Ontology
Message
1
ACL
1
isExpressedIn1..*
1
1..*
1
contains
ContentLanguage
Symbol
11..* 11..*
belongsTo
Content
1
1
1
1
contains
11 11
isExpressedIn
0..*
1
0..*
1
contains
1
Slide: 6
JADE is a middleware
target users: agent programmers for MASincludes
a library of classes to create agentsa distributed runtime environment (i.e. an agent platform) that provides agent services
life-cycle, white-page, yellow-page, message transport, message encodinga set of tools to support the debugging phase
designed to support scalability from debugging to deploymentfrom small scale to large scale to micro scale
claims to comply with the FIPA specifications
fully implemented in Java
distributed in Open Source under LPGL
some evolutions towards SDK just started
MIDDLEWARE
SDK
Applications
Slide: 7
MAS are distributed systems
Network protocol stack
JRE 1.2 JRE 1.2 JRE 1.2
JADE Main-container
App
licat
ion
Age
nt
App
licat
ion
Age
nt
App
licat
ion
Age
nt
host1.it host2.jp host3.us
JADE Agent Container JADE Agent Container
JADE distributed Agent PlatformA
pplic
atio
n A
gent
App
licat
ion
Age
nt
App
licat
ion
Age
nt
App
licat
ion
Age
nt
App
licat
ion
Age
nt
App
licat
ion
Age
nt
Slide: 8
Communication is central to MASAgents 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-basedAgent Communication Language level
String-based, XML-based, bit-efficientContent Language level
FIPA SL + API to register user-defined content languagessupport for Base64-encoded direct Java object serialization
Ontology levelFIPA-Agent Management; JADE Agent ManagementAPI to register user-defined ontologies
the framework can be extended by usersall levels provide APIs to implement/register new codecsintegration with Protégé
JADE provides a library of common interaction protocolsusers just need to implement the handle methodsusers can compose agent tasks like states of FSM
Slide: 9
JADE - Message Transport Service
controls the agent’s private queue of ACL messages
designed as a chameleonthe transport mechanism is selected according to the situation
to achieve the lowest cost for message passingthe overheads depend on the receiver’s location and the cache status
distributed Agent Communication Channelthe main container is not a bottle-neck, thanks to the distributed cachesMessage Transport Protocols (MTP) can be activated/deactivated at run-time on any container via the GUI
IIOP based on the ORB implementation of SunIIOP based on the ORBacus implementation
allows to make persistent the object referenceallows a more friendly URL-format corbaloc::hostname:port/name
HTTP MTP provided by EPFL under LGPLmultiple ACL encodings have been implemented
String-based, XML-based (EPFL), bit-efficient (Sonera)
Slide: 10
JADE Message Transport Service
Local agents
ACC Platform (Proxy)
cache
JADE container
Internal Transport Mechanism
Agent1 Agent2
MTP
Local agents
Platform (Impl)
Global agents
JADE Main container
Internal Transport Mechanism
AMS DF
ACC
MTPIIOP
HTTP
RMI
MTP can be act/deact-ivated even at run-time, even remotly
Slide: 11
Agents are autonomous
private inbox ofACL messages
patte
rn m
atch
ing
timeo
ut-b
ased
bloc
king
-bas
ed
polli
ng-b
ased
acce
ss m
ode
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)
other agents have no way to get the object reference
asynchronous message based communication
Slide: 12
Agents engage multiple tasksdifferent containers on the same platform
not necessarily 1 JVM per container
different agents on the same containerrun in a preemptive multi-threaded environment scheduled by the JAVA Virtual Machine
different behaviours on the same agentJava multi-thread or/andJADE behaviours with cooperative scheduling
one thread-per-agent rather than one thread-per-task/conversation. scheduled cooperativelyevery behaviour must release the control to allow the other behaviours to be executedno stack to be saved, more effort to the programmerJADE scheduler carries out a round-robin non-preemptivepolicy among all behaviours in the ready queue
Behaviours can be composed into a treeevery Behaviour is a Finite State Machine
one state per execution time slot
Slide: 13
Int. architect. of a generic JADE agent
scheduler ofbehaviours
life-cyclemanager
private inbox ofACL messages
patte
rn m
atch
ing
timeo
ut-b
ased
bloc
king
-bas
ed
polli
ng-b
ased
acce
ss m
ode
applicationdependent
agent resources
beliefs
capabi-lities
beha
viou
r 1
beha
viou
r 2
beha
viou
r n
…active
agent behaviours(i.e. agent intentions
or agent tasks)
JADE library ofinteraction protocolsand of generic agent behaviours
The JADE framework includes a library of interaction protocolsand generic agent behaviours, that must be customized for the specificapplication needs in order to create the agent capabilities
Slide: 14
Sometimes Agents are Mobile
JADE supports intra-platform mobility and cloningA platform can be distributed across multiple hosts
each host is an agent containerAgents can migrate between containersAgents can clone across containersSelf-initiated
doMove(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
JADE might also have provided inter-platform mobility, but …
the support of a standard is a MUST or is just JADE2JADE mobility
Slide: 15
MAS are complex to debugRMA (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 containersto browse white-page services of remote agent platforms
DF GUIto browse the yellow-page serviceto make DF federations and browse remote DF’s
DummyAgentsend/receive store/save ACLMessages
Sniffer Agentto sniff, debug, save to file, multi-agent conversations
Introspector Agentto debug an agent: queue of sent/received messages, queue of behaviours, …
Slide: 16
MAS must scales up and downConfiguration 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-timehot 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 distributedthe main container is involved only when strictly necessary
JADE can scale down to a CLDC-device through the LEAP libraries
homogeneous API, no change needed to the sources
Slide: 17
Lightweight Extensible Agent PlatformLightweight Extensible Agent PlatformL E A PL E A P
http://leap.crmhttp://leap.crm--paris.com/paris.com/
MotorolaADAC
BroadcomBritish Telecommunications
Telecom Italia LabUniversity of Parma
Siemens
LEAPEU RTD IST
Project number IST-1999-10211
LEAP Project number IST-1999-10211
Slide: 18
JADE and LEAP
Runtime
Library
RMI-IMTP
Admin Tools
LEAP-IMTP
Util j2se
Util j2me
Micro
Build tool
JADE LEAP
RuntimeLibrary
Util j2me
LEAP-IMTP
JADEpL j2seJADEpL j2me
Slide: 19
JADE and LEAP
Administration tools
Runtime Environment
Library
RMI-IMTP
Util j2se
JADE
LEAP-IMTP
Util j2me
LEAP Library
LEAP Built tool
Administration tools
Runtime Environment
Library
Util j2se
JADE_LEAP for J2SE
LEAP-IMTP
Runtime Environment
Library
JADE_LEAP for PJava
LEAP-IMTP
Util j2me
Runtime Environment
Library
JADE_LEAP for MIDP
LEAP-IMTP
Util j2me
Slide: 20
JADEpL - Some figures
Memory footprint: ~100 Kbyte
Successfully tested overMotorola Accompli008 (CLDC MIDP, GSM/GPRS)Siemens SX45 Emulator (CLDC MIDP)PalmVx (CLDC, Serial)Compaq iPaq (PersonalJava, GSM/WirelessLAN/Serial)Psion5MX (PersonalJava, GSM/Serial)
Provision for disconnected devices
Already tested over GPRS network
Slide: 21
JADEpL – Ubiquitous deploymentMachines talking to machines
Main Container Container Light Container
JADEpL – JADE powered by LEAP
Container
Distributed agent application
HOMOGENEOUS LAYER
Should not be the scope of FIPA?
J2SE PersonalJava CLDCJ2SE
Internet Wireless environment
Slide: 22
The JADE license
open source does not just mean access to the source code (O’Reilly)
JADE is OSS since Feb. 2000 (version 1.3) under LGPLkeep all contributors to the same level relative to each otherAssure right to
make and distribute copies of JADE have access to the software’s source codemake improvements to the programincorporate JADE into a proprietary programcontinue the JADE experience even if we stopped it !!
which will not happen, because we will not stop JADE so easilyMandate duty to
not keep modifications privatenot change the license of JADE and its modifications
Slide: 23
How much of FIPA is hidden by JADE to the programmer?
no need to implement the Agent PlatformAMS, 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 itselfit 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 Parsingautomatically (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
Slide: 24
JADE – what is nextJADE 2.5 released on 5th Feb.
Protégé plug-in for creating JADE ontologies (Chris Van Aart)support for full SL, corbaloc and corbaname, …
in-progress activitiessecurity and multi-users support
integrate a user-centric model with the code-centric security model of Java
authority and certificates to authenticate users and agentspermissions, policies, and delegations of permissionssecure channels
improving integration with Web technologiesimproving support for persistence, restartability, and fault-toleranceadding plans, i.e. JADE behaviours as production rule systems
SDKBlueJADE and Smart Agent - HP LabsProtégé bean generator – Chris Van Aartintegration with Jess and Protégé – Oliver Hoffman
Slide: 25
Conclusions JADE simplifies the development of MAS http://jade.cselt.it/
pay-as-you-go philosophyJADEpL (JADE Powered By LEAP) http://leap.crm-paris.com/
LGPL license respect and protect both the users and the authorsencourages to act as a community, possibly not an anarchy
OPEN Standards and Software tools, Agents?FIPA still misses some specs: security, mobility, internal APIs, …
is FIPA still for platform developers? Are agent developers well represented in FIPA?
standard and sw tools are enabling components butthe technology needs a scope (agents to do what?)identification of a killer application of mainstream technologies methodology
pragmatic view of the theory (see OO theory vs. OO usage)
AgentCities: from multi-agent platforms to multi-agent applications