M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade
Introduction to MAS (Multi-Agent Systems)
advanced comms References
P. Laroque
March 2007
M.A.S.
P. Laroque
1 Introduction
Introduction Terminology
internet agents
Denition
Introduction
Multi-Agent Systems
to Jade
A Simple Agent Classication
advanced comms
2
References
Communicative (Internet) Agents Introduction to CORBA Introduction to FIPA
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
P. Laroque
1 Introduction
Terminology
Terminology Denition Multi-Agent Systems classication
Denition Multi-Agent Systems
internet
A Simple Agent Classication
agents Introduction
2
to Jade
Communicative (Internet) Agents Introduction to CORBA
advanced
Introduction to FIPA
comms References
Introduction
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
Everyday Language
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication internet
Dictionary denitions: 1
one that acts or exerts power
2
something that produces or is capable of producing an
agents Introduction to Jade
eect : an active or ecient cause
advanced comms References
3
a chemically, physically, or biologically active principle
4
one who is authorized to act for or in the place of another as 1
a representative, emissary, or ocial of a government
2
one engaged in undercover activities (as espionage)
3
a business representative (as of an athlete or entertainer)
M.A.S.
Agent Main Properties
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication internet agents Introduction to Jade
Autonomous Intelligent, rational, learning...
advanced comms References
Mobile Communicating Acting (on other agents and on the environment)
M.A.S.
P. Laroque
1 Introduction
Terminology
Terminology Denition Multi-Agent Systems classication
Denition Multi-Agent Systems
internet
A Simple Agent Classication
agents Introduction
2
to Jade
Communicative (Internet) Agents Introduction to CORBA
advanced
Introduction to FIPA
comms References
Introduction
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
More Formal Denition I
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication internet
(J. Ferber [9, 10]) An agent is a 1
2
agents Introduction
3
to Jade advanced
or
virtual
entity
acting in an environment. which can communicate directly with other agents. which is driven by a set of tendencies (in the form of individual objectives or of a satisfaction/survival function which is capable of
which it tries to optimize).
comms References
physical
resources of its own. capable of perceiving its environment
4
which possesses
5
which is
(but to a
limited extent). 6
which has only a
partial representation
of its environment
(and perhaps none at all).
skills
7
which possesses
8
which may be able to
and can oer
reproduce
services.
itself.
M.A.S.
More Formal Denition II
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication internet
9
whose behaviour tends towards satisfying its objectives,
agents
taking account of the resources and skills available to it
Introduction
and depending on its perception, its representation and the
to Jade advanced
communications it receives.
comms References
Autonomy is central Agent are partially independent and can make decisions. Tendency = individual goal / function optimization
M.A.S.
P. Laroque
1 Introduction
Terminology
Terminology Denition Multi-Agent Systems classication
Denition Multi-Agent Systems
internet
A Simple Agent Classication
agents Introduction
2
to Jade
Communicative (Internet) Agents Introduction to CORBA
advanced
Introduction to FIPA
comms References
Introduction
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
Denition of a MAS
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication
1
An environment E, that is, a space which generally has volume.
2
A set of objects, O. These objects are situated, that is to say, it is possible at a given moment to associate any
internet agents
object with a position in E.
Introduction to Jade
3
comms References
An assembly of agents, A, which are specic objects (a subset of O), represent the active entities in the system.
advanced
4
An assembly of relations, R, which link objects (and therefore, agents) to one another.
5
An assembly of operations, Op, making it possible for the agents of A to perceive, produce, transform, and manipulate objects in O.
6
Operators with the task of representing the application of these operations and the reaction of the world to this attempt at modication, which we shall call the laws of the universe.
M.A.S.
Purely Situated Agents
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication internet agents Introduction
Such an agent: 1
is situated in an environment,
2
is driven by a survival/satisfaction function,
3
possesses resources of its own in terms of power and tools,
4
is capable of perceiving its environment (but to a limited
to Jade advanced comms
extent),
References 5
has practically no representation of its environment,
6
possesses skills,
7
can perhaps reproduce,
8
has behaviour tending to fulll its survivor/satisfaction function, taking into account the resources, perceptions and skills available to it.
M.A.S.
Example
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication internet agents Introduction
For instance, robots:
to Jade advanced comms References
E = the physical space A = the robots O = other robots + objects (obstacles,...)
M.A.S.
Purely Communicating Agents
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication
Such an agent: 1
agents Introduction
is in an open computing system (assembly of applications, networks, and heterogeneous systems),
internet
2
can communicate with other agents,
3
is driven by a set of its own objectives,
4
possesses resources of its own,
5
has only a partial representation of other agents,
6
possesses skills (services) which it can oer to other agents,
7
has behaviour tending towards attaining its objectives,
to Jade advanced comms References
taking into account the resources and skills available to it and depending on its representations and the communications it receives.
M.A.S.
Example
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication internet
For instance, most software agents:
agents Introduction to Jade advanced comms
A = O and E = empty agents are in a communication network and exchange messages
References
no perception of other agents
In this course, we focus on this kind of agents
M.A.S.
P. Laroque
1 Introduction
Terminology
Terminology Denition Multi-Agent Systems classication
Denition Multi-Agent Systems
internet
A Simple Agent Classication
agents Introduction
2
to Jade
Communicative (Internet) Agents Introduction to CORBA
advanced
Introduction to FIPA
comms References
Introduction
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
Rationality
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication internet agents Introduction to Jade advanced comms References
Right decision taken by examining the environment At least, maximizes chances of success Measure: we need 1
A function to evaluate success
2
Access to the agent history
3
What the agent knows about the environment
4
The available actions
M.A.S.
Perceptions and Actions
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication internet agents Introduction to Jade advanced comms References
Major role of the agent's brain: map perceptions to actions Ideally,
each
perception is mapped to a given action
In the real world, mapping is done thanks to analytical functions (quality) production rules neural nets fuzzy sets ...
M.A.S.
Reex Agents
P. Laroque
Introduction
Terminology Denition Multi-Agent Systems classication internet agents Introduction to Jade advanced comms References
Stimulus-response behaviour (Nilsson [7]) No memory In a MAS, can achieve rather complex tasks
M.A.S.
P. Laroque
Stateful Reex Agents
Introduction
Terminology Denition Multi-Agent Systems classication internet agents Introduction to Jade advanced comms References
State memory to remember past experiences. More sophisticated response to the environment
M.A.S.
P. Laroque
Goal-based Agents
Introduction
Terminology Denition Multi-Agent Systems classication internet agents Introduction to Jade advanced comms References
Can plan before actual move Planning is frequently based on search in state space (chess) and evaluation function
M.A.S.
P. Laroque
Utility-based Agents
Introduction
Terminology Denition Multi-Agent Systems classication internet agents Introduction to Jade advanced comms References
Utility: microeconomics term related to happiness Beyond present AI capabilities
M.A.S.
Minimal Structure
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Low-level support for networked communications (messages)
→
CORBA, RMI, .NET, ...
Services (life-cycle, white pages, yellow pages, ...) CORBA, RMI, .NET, ... Common (
standardized)
languages
communication language (message structure) content language (message contents) ontologies (symbols' semantics)
→
FIPA
→
JADE
→
M.A.S.
P. Laroque
1 Introduction
Terminology
internet
Denition
agents
CORBA FIPA
Multi-Agent Systems A Simple Agent Classication
Introduction to Jade advanced
Introduction
2
Communicative (Internet) Agents
comms
Introduction to CORBA
References
Introduction to FIPA
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
CORBA Principles1
P. Laroque
Introduction internet agents
Common Object Request Broker Architecture [3]
CORBA FIPA
Specied by OMG (Object Management Group [4])
Introduction to Jade
OMA (Object Management Architecture)
advanced
Common services (naming, trading, transactions, persistence, security...) Domain- (business-) oriented interfaces (Air-trac control, Gene expression, Software radio, Workow management...)
comms References
MDA (Model-Driven Architecture)
Model-driven engineering technologies (UML - Unied Modeling Language, MOF - Meta-Object Facility, XMI XML Metadata Interchange...)
1
Thanks to Arnaud Revel ;-)
M.A.S.
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Simplied Principle
M.A.S.
CORBA Objectives
P. Laroque
Introduction internet agents
CORBA FIPA Introduction
OPEN: editor- (and implementation-) independent
to Jade
HETEROGENEOUS: multi-languages, multi-OS,
advanced
multi-protocols, thanks to IDL (Interface Denition
comms
Language)
References
PORTABLE: Application code independent of CORBA implementation, standardized projections form IDL to most programming languages (C/C++, Java, ...) INTER-OPERABLE: network protocol common to all CORBA implementations (GIOP - General Inter-ORB Protocol, IIOP - Internet Inter-ORB Protocol)
M.A.S.
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
CORBA Architecture
M.A.S.
Components
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced
Stub = client part (automatically generated)
comms References
Skeleton = server part (
idem)
Object adapter = object registration ORB = message passing
M.A.S.
The Stub
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
used by client code interface between client object and ORB translates requests on server object ( return value (
unmarshalling)
marshalling)
and their
M.A.S.
The Skeleton
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
used by server code interface between object implementation and ORB translates client requests to object implementation (
unmarshalling)
and their return value (
marshalling)
M.A.S.
The ORB
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Carries messages between objects Links stubs and related skeletons Object bus
M.A.S.
The Object Adapter
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Object Adapter (BOA - Basic Object Adapter, POA Portable Object Adapter) Registers and handles object implementations: (de-)activate server objects method invokations access control / authentication
M.A.S.
IDL
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade
Interface Denition Language (
advanced
language!)
comms References
NOT
a programming
ISO 14750 standard Describes object interfaces (services) Proxy language between applications Generates program skeletons in programming languages
M.A.S.
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
IDL in CORBA architecture
M.A.S.
IDL Features I
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced
Data Types Elementary (bytes, booleans, integers, oats, characters, strings) Structured (typedef, enumerations, structures, unions, sequences, arrays)
comms
Polymorphic (Any, TypeCode)
References
Pass-by-value
Exceptions (id. structures) Interfaces methods + attributes multiple inheritance pass-by-reference
Value types interface + structure simple inheritance
M.A.S.
IDL Features II
P. Laroque
Introduction internet agents
CORBA FIPA Introduction
pass-by-value
to Jade advanced
Independent of
comms References
the implementation language the client platform the server platform
Many similarities with C++
M.A.S.
P. Laroque
Introduction
Projections to Programming Languages
internet agents
CORBA FIPA Introduction to Jade advanced comms References
Set of rewriting rules Standardized for ADA, C, C++, COBOL, CORBA Scripting Language (IDLscript), Java, Lisp, PL/1, Python, SmallTalk, XML DTD/Schema (→ Value types) Existing (not standardized) for Eiel, TCL, ...
M.A.S.
IDL / Java / C++
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
IDL
Java
C++
module
package
namespace
interface
interface
abstract class
operation
method
member function
attribute
accessors
accessors
exception
exception
exception
M.A.S.
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Component, from Design to Conditioning
M.A.S.
CORBA Application Creation Steps
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade
1
Dene IDL interface
2
Compile IDL interface
3
Create interface implemenation
4
Create server (publish CORBA object)
5
Create client (use CORBA object services)
advanced comms References
M.A.S.
Example
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
module example { interface myExample { void method1(); long method2(); void method3(in long param, out long result); }; package, namespace parameters: in, out, inout inheritance: interface D : B1, B2 {...} module :
no overloading, no method redenition
M.A.S.
Implementation
P. Laroque
Introduction internet
In MyObject.IDL: interface MyObject {...};
agents
CORBA FIPA
In MyObject.java:
Introduction
public class MyObject extends MyObjectPOA { ... }
to Jade advanced comms References
Object creation (client or server):
java -ORBInitialPort \ -ORBInitialHost note
MyObjectPOA
is generated by the IDL compiler
M.A.S.
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Bus Components
M.A.S.
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
CORBA Containers and Services
M.A.S.
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
OMA Global Architecture
M.A.S.
Common Services
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced
Naming (nd object by name, white pages) Trader (nd object by properties, yellow pages)
comms
Asynchronous communications (events, notication,
References
messaging) Reliability (security, transactions, concurrency) Object life (life cycle, property, relationship, externalization, persistent Object, query, collection, versioning, time, licencing)
M.A.S.
P. Laroque
Several CORBA Implementations
Introduction internet agents
CORBA FIPA Introduction
Proprietary IONA Orbacus & ORBIX (C++ & Java)
to Jade
Borland VisiBroker (C++ & Java)
advanced
SUN JDK
comms References
BEA Weblogic Enterprise IBM WebSphere
Open source Red Hat Orbit (C) MICO (C++) AT&T moniORB (C++) TAO (C++), OpenORB (Java), JacORB (Java), Jonathan (Java)...
M.A.S.
CORBA 2.x Drawbacks
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced
Non-trivial to put it to work No software architecture concern (CORBA objects linking hidden in code, no way to design composition...)
comms
No separation between functional and non-functional
References
(POA, life-cycle,...) aspects
→
increased complexity for
domain experts
ad hoc)
No standard for conditioning / deployment (
Note: CORBA 3.0 (2002) enables tighter integration with Java, making its use easier
M.A.S.
CORBA vs RMI
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
RMI > CORBA RMI is a standard
implementation
RMI is free RMI is object-oriented, CORBA is object-based RMI is simple to use No IDL Advanced security features (RMISecurityManager, ACL,...) CORBA > RMI CORBA is a norm, RMI is proprietary SUN RMI is less ambitious (no inter-operability with other languages) RMI is far slower than most CORBA implementations
M.A.S.
P. Laroque
1 Introduction
Terminology
internet
Denition
agents
CORBA FIPA
Multi-Agent Systems A Simple Agent Classication
Introduction to Jade advanced
Introduction
2
Communicative (Internet) Agents
comms
Introduction to CORBA
References
Introduction to FIPA
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
History and Goals
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Foundation for Intelligent Physical Agents [1] Created in end 1996 Standardized in 2002 Purpose: design standards for heterogeneous agents interacting inside MASes (
specications)
Strong links to OMG and other organizations
www.fipa.org
M.A.S.
Scope of FIPA
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Agent Lifecycle Management Message Transport (→
asynchronous, 6=
Message Structure Inter-agent Interaction Protocols Ontologies Security
NOT the agent!
RPC)
M.A.S.
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
The FIPA Platform
M.A.S.
The AMS
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Agent Management System Responsible for agents' life-cycle Maintains a list of all agents living in current platform (white pages) Controls access to and usage of ACC (Agent Communication Channel)
M.A.S.
The DF
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Directory Facilitator Register agent descriptions, together with their available
services Agents can ask DF for services (yellow pages)
M.A.S.
The ACC
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Agent Communication Channel Handles agent communications inside a container (for instance, java events) between containers inside a platform (for instance RMI) between platforms (for instance IIOP CORBA)
Messages in ACL (Agent Communication Language)
M.A.S.
The ACL
P. Laroque
Introduction internet agents
CORBA FIPA Introduction
Most important features of an ACL message:
to Jade advanced comms References
performative: the message type (query, proposal, reject,...) sender (6= message in the traditional, object-oriented meaning) receiver, reply-to content conversation-id (useful for dialogs)
M.A.S.
Message Content
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
In simple cases, string otherwise we need a content language a corresponding ontology a protocol.
Ex: the default language used by JADE is SL (Semantic Language).
M.A.S.
Ontologies
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade
Structured representation of knowledge
advanced comms
Concepts (abstract objects representation)
References
Predicates (binary conditions on concepts) Actions (operations proposed by agents on concepts)
Goal: share knowledge by narrowing the universe of discourse
M.A.S.
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
A Simple Example
M.A.S.
Ongoing Work
P. Laroque
Introduction internet agents
CORBA FIPA Introduction to Jade advanced comms References
Agent Modelling Agent Methodology [8] Semantic Framework Service Framework Security
M.A.S.
What is JADE?
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
JADE (Java Agent DEvelopment framework [2]) JAVA implementation of FIPA 2002 Several tools (dummy agent, snier, introspector...) Based on J2se 1.4 and above Free software (LGPL) LEAP library to use JADE in mobile Java environments down to J2ME-CLDC MIDP 1.0
M.A.S.
JADE Agents
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Compliant with FIPA 2002 Can have several
behaviours
that dene its actions
Communicate with other agents using asynchronous
messages Publish services
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Agent Life Cycle
M.A.S.
P. Laroque
1 Introduction
Introduction Terminology
internet agents
Denition
Introduction
Multi-Agent Systems
to Jade
structure Agent creation behaviours messages YP service
A Simple Agent Classication
2
Introduction to CORBA Introduction to FIPA
advanced comms References
Communicative (Internet) Agents
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
JADE Components
P. Laroque
Introduction internet agents
Agents: use JADE to oer/use services and communicate
Introduction
with each others
to Jade
structure Agent creation behaviours messages YP service advanced
exactly one (mobility)
Containers: an agent must live in can move to another container
container; it
Platform: set of containers whose agents can communicate
comms
with each others. Exactly
References
container
one
container is the
main
A main container embed at least 3 agents: 1
The AMS agent (Agent Messaging Service)
2
The DF agent (Directory Facility)
3
The RMA (Remote Monitoring Agent: platform and agents' life cycle)
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
JADE Network Structure
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Typical JADE Communications
M.A.S.
P. Laroque
Jade GUI
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Control agents (create, kill, suspend...) Start other tools
M.A.S.
Jade DF
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Yellow pages services
M.A.S.
P. Laroque
Dummy Agent
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Test tool Used to send and receive ACL messages
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Snier Agent
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Introspector Agent
M.A.S.
P. Laroque
1 Introduction
Introduction Terminology
internet agents
Denition
Introduction
Multi-Agent Systems
to Jade
structure Agent creation behaviours messages YP service
A Simple Agent Classication
2
Introduction to CORBA Introduction to FIPA
advanced comms References
Communicative (Internet) Agents
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
Using the Agent Class
P. Laroque
Introduction
AID
internet
getName ( ) : String
agents
non-preemptive scheduling aID 1
Introduction
jade.core doDelete() calls takeDown()
to Jade
structure Agent creation behaviours messages YP service advanced comms References
getAid agent 1
Agent
Behaviour behaviours
action ( ) : Void block ( ) : Void done ( ) : Boolean
behaviours
0..*
myAgent 1
ACLMessage addReceiver ( a: AID ) : Void createReply ( ) : ACLMessage getSender ( ) : AID setContent ( c: String ) : Void setLanguage ( l: String ) : Void setOntology ( o: String ) : Void setPerformative ( type : Integer ) : Void
getters available
addBehaviour ( b : Behaviour ) : Void blockingReceive ( ) : ACLMessage doDelete ( ) : Void receive ( ) : ACLMessage receive ( mt : MessageTemplate ) : ACLMessage removeBehaviour ( b : Behaviour ) : Void send ( m : ACLMessage ) : Void setup ( ) : Void takeDown ( ) : Void
MyAgent
M.A.S.
Agent Setup
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Invoked when agent starts running Initialize instance variables whose value depends on command-line parameters(no
main()): getArguments()
Register agent in the DF In more complex cases, register languages and ontologies Attach one or more behaviours to the agents Attached behaviours are automatically started
M.A.S.
Passing Arguments
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Object[] getArguments(); returns
null
if no argument
command-line arguments are listed after the agent, between '()' ex:
3)'
java jade.Boot a:myPackage.MyAgent'(toto
M.A.S.
Agent Termination
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced
doDelete() takeDown()
is called to destroy the agent is then automatically run to do the cleanup
comms References
Otherwise the agent is still running, though idle
M.A.S.
P. Laroque
1 Introduction
Introduction Terminology
internet agents
Denition
Introduction
Multi-Agent Systems
to Jade
structure Agent creation behaviours messages YP service
A Simple Agent Classication
2
Introduction to CORBA Introduction to FIPA
advanced comms References
Communicative (Internet) Agents
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
What is a Behaviour?
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Kind-of control thread for the agent Actually one single thread common to all the agent behaviours: non-preemptive scheduling
action()
is similar to
Thread.run()
New behaviours can be added at any time during agent life
M.A.S.
P. Laroque
Behaviour Scheduling
Introduction internet agents
cooperative
Introduction
scheduling: once
to Jade
structure Agent creation behaviours messages YP service advanced comms References
started, a behaviour runs until
action()
returns consequence: no
while(true) {...} inside a behaviour!
M.A.S.
Threads and Behaviours
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Threads > Behaviours additional eorts to the behaviour programmer Behaviours > Threads far less resource consuming (→ portable devices) no synchronization issue between concurrent behaviours competing for a resource simpler to snapshot the agent's state (→ mobility)
M.A.S.
Most Common Behaviours
P. Laroque
Introduction internet agents Introduction
Behaviour
jade.core.behaviours non-preemptive scheduling
action ( ) : Void block ( ) : Void block ( dt : Integer ) : Void done ( ) : Boolean
to Jade
structure Agent creation behaviours messages YP service
most frequently used in simple cases
advanced comms
CyclicBehaviour References
done ( ) : Boolean
TickerBehaviour onTick ( ) : Void
OneShotBehaviour
SequentialBehaviour
done ( ) : Boolean
WakerBehaviour handleElapsedTimeout
ReceiverBehaviour ( ) : Void
ParallelBehaviour
SimpleBehaviour
M.A.S.
Scheduling Behaviours in the Future
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
action() only runs handleElapsedTime() after given timeout,
WakerBehaviour:
then
completes
protected void setup() { System.out.println(Adding waker behaviour); addBehaviour(new WakerBehaviour(this, 10000) { protected void handleElapsedTimeout() { // perform operation X } } ); } TickerBehaviour: ms
repetitively runs
onTick()
every
N
M.A.S.
P. Laroque
Sample Generic Stateful Behaviour
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
public class MyThreeStepBehaviour extends Behaviour private int step = 0; public void action() { switch (step) { case 0: // perform operation X step++; break; case 1: // perform operation Y step++; break; case 2: // perform operation Z step++; break; } } public boolean done() { return step == 3; } }
M.A.S.
P. Laroque
1 Introduction
Introduction Terminology
internet agents
Denition
Introduction
Multi-Agent Systems
to Jade
structure Agent creation behaviours messages YP service
A Simple Agent Classication
2
Introduction to CORBA Introduction to FIPA
advanced comms References
Communicative (Internet) Agents
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
P. Laroque
Jade Message Passing Principle
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Message queue is not strictly FIFO: existing selection mechanism
M.A.S.
ACL Brief Overview
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced
Agent Communication Language (see [1]) Agents can
send()
and
receive()
messages
Message important elds: the sender the list of receivers the performative (message category: REQUEST,
comms
INFORM etc.)
References
the content the content language (used to encode and parse content: syntactic level) the ontology (vocabulary and its meaning - ex.
kill:
semantic level)
Most elds can be used to lter messages from th message box (MessageTemplate)
M.A.S.
P. Laroque
Sending a Message
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
ACLMessage msg = new ACLMessage(ACLMessage.INFORM); msg.addReceiver(new AID(Peter, AID.ISLOCALNAME)); msg.setLanguage(English); msg.setOntology(application programming); msg.setContent(Paul has been killed); send(msg);
M.A.S.
Receiving a Message
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
public void action() { ... ACLMessage msg = receive(); if (msg != null) { // Process the message } else block() // schedules next execution } Note:
ACLMessage receive(MessageTemplate mt); Allows to select only messages matching mt
M.A.S.
Blocking Receive
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service
By default,
receive()
is a non-blocking method (return
null if no message) A
blockingReceive()
method exists
advanced comms References
the thread is then blocked:
always use receive() inside action() use blockingReceive() only in setup()
/
takeDown()
M.A.S.
Message-related classes
P. Laroque
Introduction internet agents
MessageTemplate
Introduction to Jade
structure Agent creation behaviours messages YP service
MatchConversationId ( cid : String ) : MessageTemplate MatchPerformative ( p : LongInteger ) : MessageTemplate MatchSender ( id : AID ) : MessageTemplate and ( mt1 : MessageTemplate , mt2 : MessageTemplate ) : MessageTemplate match ( msg : ACLMessage ) : Boolean not ( mt : MessageTemplate ) : MessageTemplate or ( mt1 : MessageTemplate , mt2 : MessageTemplate ) : MessageTemplate
advanced comms References
jade.lang.acl getters available
jade.lang.acl used to filter messages in the message box ACLMessage addReceiver ( a: AID ) : Void createReply ( ) : ACLMessage getSender ( ) : AID setContent ( c: String ) : Void setLanguage ( l: String ) : Void setOntology ( o: String ) : Void setPerformative ( type : Integer ) : Void
M.A.S.
P. Laroque
1 Introduction
Introduction Terminology
internet agents
Denition
Introduction
Multi-Agent Systems
to Jade
structure Agent creation behaviours messages YP service
A Simple Agent Classication
2
Introduction to CORBA Introduction to FIPA
advanced comms References
Communicative (Internet) Agents
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
Need for a DF
P. Laroque
Introduction internet agents Introduction
New agents can appear, existing agents can die
to Jade
structure Agent creation behaviours messages YP service advanced
Agents can acquire new capabilities (propose dierent services)
−→
need for a mechanism for agents
comms References
1
to register as providing services
2
to discover which agents can provide required service
Each platform as a local DF, whose name is
df
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Jade YP Service
M.A.S.
Publishing a Service
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service
The agent registers to the DF by providing a description containing The agent ID
advanced comms References
The list of proposed services The list of languages / ontologies needed to use the services, if any
M.A.S.
Searching for a Service
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced
The agent searches the DF by providing a template description (search() method)
subscribe
comms
Agents can also
References
needed service is available
to the DF to be notied when a
M.A.S.
DF-related Classes
P. Laroque
Introduction internet agents
jade.domain.FIPAAgentManagement
DFAgentDescription
Introduction
addServices ( sd : ServiceDescription ) : Void
to Jade
structure Agent creation behaviours messages YP service
ServiceDescription setType ( t : String ) : Void
SearchConstraints setMaxResults ( n: LongInteger ) : Void
advanced comms References
DFService createSubscriptionMessage ( a: Agent , id : AID, templ : DFAgentDescription , sc: SearchConstraints ) : ACLMessage deregister ( a: Agent ) : Void register ( a: Agent , dfd : DFAgentDescription ) : DFAgentDescription search ( a: Agent , dfd : DFAgentDescription ) : DFAgentDescription searchUntilFound ( a: Agent , dfName : AID, dfd : DFAgentDescription , tmout : LongInteger ) : DFAgentDescription
jade.domain.FIPAService search and searchUntilFound return an array of DFD several register / deregister methods
M.A.S.
Registration in Practice
P. Laroque
Introduction internet agents
Usually in
setup():
Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
DFAgentDescription dfd = new DFAgentDescription(); dfd.setName(getAID()); ServiceDescription sd = new ServiceDescription(); sd.setType(car-rental); sd.setName(Citroen-2CV); dfd.addServices(sd); try { DFService.register(this, dfd); } catch (FIPAException fe) { fe.printStackTrace(); }
M.A.S.
De-registration in Practice
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Usually in
takeDown():
// Deregister from the yellow pages try { DFService.deregister(this); } catch (FIPAException fe) { fe.printStackTrace(); }
M.A.S.
Searching in Practice
P. Laroque
Introduction internet agents Introduction to Jade
structure Agent creation behaviours messages YP service advanced comms References
Usually in
setup()
or
action():
DFAgentDescription template = new DFAgentDescription() ServiceDescription sd = new ServiceDescription(); sd.setType(car-rental); template.addServices(sd); try { DFAgentDescription[] result = DFService.search(myAge agents = new AID[result.length]; for (int i = 0; i < result.length; ++i) { agents[i] = result[i].getName(); } } catch (FIPAException fe) { fe.printStackTrace(); }
M.A.S.
Message types
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Content type strings objects ontologies
getting content
setting content
getContent() getContentObject() extractContent()
setContent() setContentObject() fillContent()
M.A.S.
P. Laroque
1 Introduction
Introduction Terminology
internet agents
Denition
Introduction
Multi-Agent Systems
to Jade
A Simple Agent Classication
advanced comms
Using objects Using ontologies
2
Communicative (Internet) Agents Introduction to CORBA Introduction to FIPA
References
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
Exchanging objects in messages
P. Laroque
Introduction internet agents Introduction to Jade
Exchanging strings is seldom ecient and suitable: objects may
advanced
be more convenient.
comms
Using objects Using ontologies
In modeling the interaction between various agents: 1
identify the pertinent concepts and actions
2
dene these as classes.
References
Remember to make them implement
java.io.Serializable
M.A.S.
Bank Example
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Customer want to create accounts, perform operations and query information Relevant concepts: Account: concept of a bank savings account Operation: concept of a bank operation MakeOperation: action of making an operation such as deposit or withdrawal OperationList: concept of the list of last operations CreateAccount: action of creating an account Information: concept of querying information about an account such as the balance and the list of last operations Problem: result of an action that fails
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Client / Server dialog
M.A.S.
P. Laroque
Tool class example
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
class MakeOperation implements java.io.Serializable private String accountId; private int type; private float amount; public String getAccountId() { return accountId; public int getType() { return type; } public float getAmount() { return amount; } public void setAccountId(String accountId) { this public void setType(int type) { this.type = type; public void setAmount(float amount) { this.amount }
M.A.S.
P. Laroque
Sending an object
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
MakeOperation mo = new MakeOperation(); mo.setAccountId(acc.getId()); mo.setType(command); mo.setAmount(amount); ACLMessage msg = new ACLMessage(ACLMessage.REQUEST) msg.addReceiver(server); try { msg.setContentObject(mo); } catch (Exception ex) { ex.printStackTrace(); } send(msg);
M.A.S.
P. Laroque
Receiving an object I
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
class ReceiveMessages extends CyclicBehaviour { public ReceiveMessages(Agent a) { super(a); } public void action() { ACLMessage msg = receive(); if (msg == null) { block(); return; } try { Object content = msg.getContentObject(); switch (msg.getPerformative()) { case (ACLMessage.REQUEST): if (action instanceof CreateAccount) else if (content instanceof MakeOperation addBehaviour (new HandleOperation(myAgent, msg)); ... }}
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Receiving an object II
class HandleOperation extends OneShotBehaviour { ACLMessage request; public HandleOperation(Agent a, ACLMessage reques super(a); this.request = request; } public void action() { try { Operation op = (Operation)request.getContentO // Process the operation ACLMessage reply = request.createReply(); Object result = processOperation(op); ... } catch (Exception ex) { ex.printStackTrace(); } }
M.A.S.
P. Laroque
1 Introduction
Introduction Terminology
internet agents
Denition
Introduction
Multi-Agent Systems
to Jade
A Simple Agent Classication
advanced comms
Using objects Using ontologies
2
Communicative (Internet) Agents Introduction to CORBA Introduction to FIPA
References
3
Introduction to Jade Jade Structure and Components Agent creation Agent Tasks: Behaviours Agent Communications: Messages Yellow Pages Service
4
More advanced Communication with Jade Sending / Receiving objects Using ontologies
Outline
M.A.S.
Using ontologies
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Semantic
validation of message content (the content
manager takes care of
syntactic
correctness)
Allow conversion between objects and byte sequences Provide a way to classify every element in the domain of discourse
M.A.S.
What ontologies are
P. Laroque
Introduction internet agents Introduction
Describe elements used in messages
to Jade advanced comms
Using objects Using ontologies References
Two parts:
Vocabulary (terms used for concepts involved) Relationships between those concepts a
Technically, a subclass of
java.content.onto.BasicOntology (or ACLOntology) linked with several schemas dening the structure of all the elements of the ontology Advantage: more clearly dened concepts, terms and dialog steps.
M.A.S.
Content Model I
P. Laroque
Introduction internet
Predicates: can be true or false
agents Introduction to Jade advanced comms
Using objects Using ontologies
related to INFORM or QUERY-IF, typically not to REQUEST messages
example: (Works-for (Person :name John) (Company :name TILAB)) Concepts: complex entities described using slots
References
usually referenced inside predicates or other concepts
(Book :title The Lord of the rings :author (Person :name J.R.R. Tolkien)) example:
Agent actions: special concepts precising what can be done by agents
(Sell (Book :title The Lord of the rings) (Person :name John)) example:
Primitives: atomic entities (Strings, etc.)
M.A.S.
Content Model II
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Aggregates: sequences Several other (less important) components
M.A.S.
How-to
P. Laroque
Introduction internet agents
1
to Jade
the addressed domain.
advanced comms
Using objects Using ontologies References
Dene an ontology including the schemas for the types of predicate, agent action and concept that are pertinent to
Introduction
2
Develop Java classes for all types of predicate, agent action and concept in the ontology.
3
Select a suitable content language among those directly supported by JADE.
4
Register the dened ontology and the selected content language to the agent.
5
Create and handle content expressions as Java objects (instances of the classes developed in step 2)
Example: a CD/ Book shop from the Jade tutorial
M.A.S.
The shop case-study
P. Laroque
Introduction internet agents Introduction to Jade advanced
On-line shop that sells CDs and books Each item has a serial number
comms
Using objects Using ontologies References
Each CD has a name, a number of tracks Each track has a title and a duration Each book has a title Seller agents can sell items to buyer agents if they own them Buyer agents can ask for a server agent that owns a given item
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Ontology API: basic ontologies
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Ontology API: schemas
M.A.S.
Dening vocabulary
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Each concept is identied by a unique name in the implementation code:
public class ShopOntology extends Ontology { // The name identifying this ontology public static final String ONTOLOGY_NAME = Shop-ont // VOCABULARY public static final String ITEM = Item; public static final String ITEM_SERIAL = serial-num ...
M.A.S.
P. Laroque
Subclassing BasicOntology
Introduction internet agents Introduction to Jade
ShopOntology is actually a subclass of Ontology. BasicOntology as a parameter to super() in the
Give a
constructor make it inherit basic ontology behaviour:
advanced comms
Using objects Using ontologies References
private static Ontology theInstance = new ShopOntology /** This is the method to access the singleton shop on public static Ontology getInstance() { return theInstance; } /** Private constructor. Instance can only be obtained * getInstance method */ private ShopOntology() { // The shop ontology extends the basic ontology super(ONTOLOGY_NAME, BasicOntology.getInstance()); ...
M.A.S.
Associating schemas
P. Laroque
Introduction internet
Each schema added to the ontology is associated to a Java
e.g.
agents
class,
Introduction
the CD.java class.
to Jade advanced comms
Using objects Using ontologies References
the schema for the CD concept is associated to
While using the dened ontology, expressions indicating CDs will be instances of the CD class. These Java classes must have a proper structure (java beans)
add(new ConceptSchema(CD), CD.class); // Structure of the schema for the CD concept // The tracks slot has cardinality > 1 cs = (ConceptSchema) getSchema(CD); cs.addSuperSchema((ConceptSchema) getSchema(ITEM)); cs.add(CD_NAME, (PrimitiveSchema) getSchema(BasicOntol cs.add(CD_TRACKS, (ConceptSchema) getSchema(TRACK), 1, ObjectSchema.UNLIMITED);
M.A.S.
Concept implementation
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
The class must implement the correct interface (e.g.
Predicate
for
Owns)
If S1 is a super-schema of S2 then the class C2 associated to schema S2 must extend the class C1 associated to schema S1. Implementing class must dene get/set couple for each schema slot (id. javaBeans) If cardinality is >1, this couple of methods must use
jade.util.leap.List J2ME edition)
(sequences that work with the
M.A.S.
P. Laroque
CD example
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
// Class associated to the CD schema package shopOntology; import jade.util.leap.List; public class CD extends Item { // Note that the Item class (omitted here) // implements Concept private String name; private List tracks; public String getName() { return name; } public void setName(String n) { name = n; } public List getTracks() { return tracks; } public void setTracks(List l) { tracks = l; } }
M.A.S.
CODECs
P. Laroque
Introduction internet agents
Java Objects able to encode / decode content expressions
Introduction
in a given language
to Jade advanced comms
Using objects Using ontologies
Two predened CODECs, for SL and LEAP. Generally no need to dene anything new. SL (Semantic Language):
References
human-readable, string-encoded most widely used in agent community many predened operators
LEAP: Lightweight Extensible Agent Platform - dened
hoc
for Jade in the Leap project lighter CODEC support for byte sequences
ad
M.A.S.
P. Laroque
Registration
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Ontology and CODEC must be registred to the content manager of the agent before it can use them Registration usually takes place during agent setup:
public class SellerAgent extends Agent { private Codec codec = new SLCodec(); private Ontology ontology = ShopOntology.getInstance ... protected void setup() { ... getContentManager().registerLanguage(codec); getContentManager().registerOntology(ontology) ... } ... }
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Sending messages I The code below shows how the
Buyer
agent asks the
Seller
agent if he owns Babylon by Bus:
// Prepare the Query-IF message ACLMessage msg = new ACLMessage(ACLMessage.QUERY_IF); // sellerAID is the AID of the Seller agent msg.addReceiver(sellerAID) msg.setLanguage(codec.getName()); msg.setOntology(ontology.getName()); // Prepare the content. Optional fields are not set CD cd = new CD(); cd.setName(Babylon by Bus); List tracks = new ArrayList(); Track t = new Track(); t.setTitle(Positive Vibration); tracks.add(t); t = new Track(); t.setTitle(Punky reggae party);
M.A.S.
P. Laroque
Sending messages II
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
tracks.add(t); ... cd.setTracks(tracks); Owns owns = new Owns(); owns.setOwner(sellerAID); owns.setItem(cd); try { // Let JADE convert from Java objects to string getContentManager().fillContent(msg, owns); send(msg); } catch (CodecException ce) { ce.printStackTrace(); } catch (OntologyException oe) { oe.printStackTrace(); }
M.A.S.
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
Receiving messages I
// Receive the message MessageTemplate mt = MessageTemplate.and( MessageTemplate.MatchLanguage(codec.getName()), MessageTemplate.MatchOntology(ontology.getName()) ); ACLMessage msg = receive(mt); try { ContentElement ce = null; if (msg.getPerformative() == ACLMessage.QUERY_IF) { // Let JADE convert from String to Java objects ce = getContentManager().extractContent(msg); if (ce instanceof Owns) { Owns owns = (Owns) ce; Item it = owns.getItem(); // Check if I have this item // and answer accordingly ... } ...
M.A.S.
Receiving messages II
P. Laroque
Introduction internet agents Introduction to Jade advanced
}
comms
Using objects Using ontologies References
}
...
catch (CodecException ce) { ce.printStackTrace(); } catch (OntologyException oe) { oe.printStackTrace(); }
M.A.S.
Conclusion
P. Laroque
Introduction internet agents Introduction to Jade advanced comms
Using objects Using ontologies References
FIPA compatible Large (and growing) community Distributed execution Agent concurrency Transparent message-based communications Service-oriented
Relatively
easy-to-use
M.A.S.
References I
P. Laroque
FIPA website: JADE website:
http://www.fipa.org http://jade.cselt.it
CORBA website: OMG website:
http://www.corba.org/
http://www.omg.org
http://java.sun.com/javase/ technologies/core/basic/rmi/index.jsp Java RMI website:
An interesting website on agents:
http://www.agentlink.org/ http://www.robotics. stanford.edu/users/nilsson/trweb/tr.html Nilsson's web page on agents:
M.A.S.
P. Laroque
References II M. Nikraz, G. Caire, P. A. Bahri, A Methodology for the Analysis and Design of MAS using JADE,
http://jade.cselt.it/doc/JADE_methodology_ website_version.pdf Multi-Agent System: An Introduction to Distributed Articial Intelligence, Jacques Ferber, Harlow: Addison Wesley Longman, 1999 Paper: ISBN 0-201-36048-9 Integrating Tools and Infrastructures for Generic Multi-Agent Systems, Olivier Gutknecht, Jacques Ferber, Fabien Michel, Proceedings of the Fifth International Conference on Autonomous Agents, 2001
M.A.S.
References III
P. Laroque
Arnaud Revel, From Robots to Web-Agents: Building Cognitive Software Agents for Web-Information Retrieval by Taking Inspiration from Experience in Robotics, Web Intelligence 2005: 434-437