Introduction to MAS

PORTABLE: Application code independent of CORBA ... Generates program skeletons in programming languages .... IONA Orbacus & ORBIX (C++ & Java).
3MB taille 7 téléchargements 447 vues
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