AI-MAS 3.12.2004 - PowerPoint PPT Presentation

About This Presentation
Title:

AI-MAS 3.12.2004

Description:

ai-mas 3.12.2004 – PowerPoint PPT presentation

Number of Views:90
Avg rating:3.0/5.0
Slides: 36
Provided by: Rent166
Category:
Tags: mas | file | j2me

less

Transcript and Presenter's Notes

Title: AI-MAS 3.12.2004


1
AI-MAS3.12.2004
2
JADE
  • An agent platform that implements the basic
    services and infrastructure of a distributed
    multi-agent application
  • agent life-cycle and agent mobility
  • white yellow-page services
  • peer-to-peer message transport parsing also
    multi-party communication
  • agent security
  • scheduling of multiple agent tasks
  • set of graphical tools to support monitoring,
    logging, and debugging
  • encourages the development of pro-active
    applications
  • Some relevant features
  • is extremely light-weight, ported to
    J2ME-CLDC-MIDP 1.0 mobile terminals
  • enables interoperability through FIPA compliance
  • is an open source project originated by TILAB and
    currently governed by an International Board
  • is used by several RD projects

3
The architectural model
  • A JADE-based application is composed of a
    collection of active components called Agents
  • Each agent has a unique name
  • Each agent is a peer since he can communicate in
    a bidirectional way with all other agents
  • Each agent lives in a container (that provides
    its run time) and can migrate within the platform
  • One container plays the role of main (where AMS,
    DF live)
  • The main-container can be replicated via
    replication service

4
Agent class and names
  • A type of agent is created by extending the
    jade.core.Agent class and redefining the setup()
    method.
  • Each Agent instance is identified by an AID
    (jade.core.AID), composed of a unique name plus
    some addresses the getAID() method of the Agent
    class
  • Agent names are of the form ltlocal-namegt_at_ltplatform
    -namegt
  • The complete name of an agent must be globally
    unique.
  • The default platform name is ltmain-hostgtltmain-por
    tgt/JADE
  • The platform name can be set using the name
    option
  • Within a single JADE platform agents are referred
    through their names only.
  • Given the name of an agent its AID can be created
    as
  • AID id new AID(localname, AID.ISLOCALNAME)
  • AID id new AID(name, AID.ISGUID)
  • It is possible to pass arguments to an agent the
    getArguments() method
  • An agent terminates when its doDelete() method is
    called.
  • On termination the agents takeDown() method is
    invoked (intended to include clean-up operations).

5

6
The Behaviour class
  • The actual job that an agent does is typically
    carried out within behaviours
  • Behaviours are created by extending the
    jade.core.behaviours.Behaviour class
  • To make an agent execute a task it is sufficient
    to create an instance of the corresponding
    Behaviour subclass and call the addBehaviour()
    method of the Agent class.
  • Each Behaviour subclass must implement
  • public void action() what the behaviour actually
    does
  • public boolean done() Whether the behaviour is
    finished
  • An agent can execute several behaviours in
    parallel, however, behaviour scheduling is not
    preemptive, but cooperative and everything occurs
    within a single Java Thread
  • Behaviour switch occurs only when the action()
    method of the currently scheduled behaviour
    returns.

7
Behaviour types
  • One shot behaviours.
  • Cyclic behaviours.
  • Complex behaviours.
  • WakerBehaviour
  • The action() and done() method are already
    implemented so that the onWake() method (to be
    implemented by subclasses) is executed after a
    given timeout
  • After that execution the behaviour completes.
  • TickerBehaviour
  • The action() and done() method are already
    implemented so that the onTick() (to be
    implemented by subclasses) method is executed
    periodically with a given period
  • The behaviour runs forever unless its stop()
    method is executed

8
More about behaviours
  • The onStart() method of the Behaviour class is
    invoked only once before the first execution of
    the action() method.
  • The onEnd() method of the Behaviour class is
    invoked only once after the done() method returns
    true.
  • Each behaviour has a pointer to the agent
    executing it the protected member variable
    myAgent
  • The removeBehaviour() method of the Agent class
    can be used to remove a behaviour from the agent
    pool of behaviours. The onEnd() method is not
    called.
  • When the pool of active behaviours of an agent is
    empty the agent enters the IDLE state and its
    thread goes to sleep

9
ACLMessage
  • Based on asynchronous message passing
  • Message format defined by the ACL language (FIPA)
  • Messages exchanged by agents are instances of the
    jade.lang.acl.ACLMessage
  • Sending a message creating an ACLMessage object
    and calling the send() method of the Agent class
  • Reading messages from the private message queue
    is accomplished through the receive() method
  • Provide accessor methods to get and set all the
    fields defined by the ACL language
    get/setPerformative(), get/setSender(),
    add/getAllReceiver(), get/setLanguage(),
    get/setOntology(), get/setContent()

10
Blocking or selecting
  • The block() method of the Behaviour class removes
    a behaviour from the agent pool and puts it in a
    blocked state (not a blocking call!!). Each time
    a message is received all blocked behaviours are
    inserted back in the agent pool and have a chance
    to read and process the message.
  • To avoid this it is possible to read only
    messages with certain characteristics specifying
    a jade.lang.acl.MessageTemplate parameter in the
    receive() method.
  • The Agent class also provides the
    blockingReceive() method there are overloaded
    versions that accept a MessageTemplate and/or a
    timeout.

11
FIPA Message Structure
12
FIPA ACL Message Elements
  • p e r f o r m a t i v e What action the message
    performs
  • s e n d e r Initiator of the message
  • r e c e i v e r Recipient of the message
  • r e p l y - t o Recipient of the message reply
  • c o n t e n t Content of the message
  • l a n g u a g e Language used to express
    content
  • e n c o d i n g Encoding used for content
  • o n t o l o g y Ontology context for content
  • p r o t o c o l Protocol message belongs to
  • c o n v e r s a t i o n - i d Conversation
    message belongs to
  • r e p l y - w i t h Reply with this expression
  • i n - r e p l y - t o Action to which this is a
    reply
  • r e p l y - b y Time to receive reply by

13
ACL Message Example
  • (request
  • sender (name dominicagent_at_whitestein.com8080)
  • receiver (name rexhotel_at_tcp//hotelrex.com6600)
  • ontology personal-travel-assistant
  • language FIPA-SL
  • protocol fipa-request
  • content
  • (action movenpickhotel_at_tcp//movenpick.com6600
  • (book-hotel (arrival 25/11/2000) (departure
    05/12/2000) ...
  • )))
  • Any language can be used as a Content Language,
    e.g.
  • KIF, Prolog, SQL, Serialized Objects, Binary
    Large Objects
  • FIPA-SL, FIPA-CCL, FIPA-RDF, FIPA-KIF

14
Communicative Act Library
  • accept-proposal accept a previously submitted
    proposal
  • agree agree to perform some action, possibly in
    the future
  • cancel cancel some previously requested action
  • cfp make a cal for proposals to perform a given
    action
  • confirm inform a receiver that a given
    proposition is true
  • disconfirm inform a receiver that a given
    proposition is false
  • failure inform another agent that an action was
    attempted but failed
  • inform inform a receiver that a given
    proposition is true
  • not-understood informs a receiver that sender
    did not understand
  • query-if ask another agent whether a given
    proposition is true
  • request requests a receiver to perform some
    action

15
Communicative Act Library
  • propose submit a proposal to perform a certain
    action
  • query-ref ask another agent for the object
    referred to by a referential expression
  • refuse refuse to perform a given action
  • reject-proposal reject a proposal during a
    negotiation
  • request-when request a receiver to perform some
    action when some given proposition becomes true
  • request-whenever request a receiver to perform
    some action as soon as some proposition is true
    and thereafter each time the proposition becomes
    true again
  • subscribe a persistent intention to notify the
    sender of a value, and to notify again whenever
    the value changes
  • propagate the receiver treats the embedded
    message as sent directly to it, and must identify
    the agents denoted by the given descriptor and
    send the received propagate message to them
  • proxy the receiver must select target agents
    denoted by a given description and to send an
    embedded message to them

16
Interaction protocols
  • Jade automatically handles the flow of messages
    and the timeouts
  • callback methods that should be redefined to take
    the necessary actions
  • jade.proto package contains behaviours for both
    the initiator and responder role (FIPA-Request,
    FIPA-Contract-Net, FIPA-Subscribe)
  • Other FIPA IPs FIPA-Query, FIPA-Request-When,
    FIPA-AIterated-Contract-Net, FIPA-Auction-English,
    FIPA-Auction-Dutch, FIPA-Brokering,
    FIPA-Recruiting, FIPA-Propose
  • Predefined sequences of messages exchanged by
    agents during a conversation

17
Handling content expressions
  • Creating the Ontology (domain specific)
  • Defining the schemas ontology elements
  • Defining the corresponding Java classes
  • Handling content expressions as Java objects
  • Using the ContentManager to fill and parse
    message contents
  • Ontologies can be created with Protégé (with the
    beangenerator plugin)

18
The Content Reference Model
19
DF (Directory Facilitator)
20
Interacting with the DF Agent
  • The DF is an agent, it communicates using ACL
  • The ontology and language that the DF
    understands are specified by FIPA
  • The jade.domain.DFService class provides static
    utility methods that facilitate the interactions
    with the DF
  • register()
  • modify()
  • deregister()
  • search()
  • The JADE DF also supports a subscription mechanism

21
DFDescription format
  • When an agent registers with the DF it must
    provide a description
  • The agent AID
  • A collection of service descriptions (class
    ServiceDescription)
  • The service type (e.g. Weather forecast)
  • The service name (e.g. Meteo-1)
  • The languages, ontologies and interaction
    protocols that must be known to exploit the
    service
  • A collection of service-specific properties in
    the form key-value pair
  • When an agent searches/subscribes to the DF it
    must specify another DFAgentDescription that is
    used as a template

22
Agent Management System
  • The authority in a JADE platform all platform
    management actions (creating/killing agents,
    killing containers...)
  • Other agents can request the AMS to perform these
    actions by using
  • The fipa-request interaction protocol
  • The SL language
  • The JADE-Management ontology and related actions
  • getAMS() gt the AID of the AMS

23
Mobility
  • Hard mobility
  • Status an agent can
  • stop its execution on the local container
  • move to a remote container (likely on a different
    host)
  • restart its execution there from the exact point
    where it was interrupted.
  • Code If the code of the moving agent is not
    available on the destination container it is
    automatically retrieved on demand.
  • An agent must be Serializable in order to be able
    to move
  • Mobility can be
  • self-initiated through doMove() of the Agent
    class
  • forced by the AMS (following a request from
    another agent)
  • Agent cloning is also available - method
    doClone()

24
Security
  • Add-on that prevents the threats (malicious kill
    or shutdown, sniffing or tampering the messages)
    by providing support for
  • Authentication and authorization
  • End-to-end message integrity and confidentiality
  • All security related API are embedded into the
    SecurityHelper
  • Signing, encryption
  • Policy files per user Platform, Container, AMS,
    Agent, Message

ACLMessage msg new ACLMessage(ACLMessage.INFORM)
...... SecurityHelper myHelper
(SecurityHelper) getHelper("jade.core.security.Sec
urity") myHelper.setUseSignature(msg) send(msg)

25
Advanced features
  • Using JADE (i.e. creating a container and
    starting agents) from an external Java program
    (servlets, applets, JSP..)
  • Executing a normal JADE behavior in a dedicated
    thread
  • Saving and reloading agent state on relational DB
    (persistence based on www.hibernate.org) add-on
  • Integration with JESS (Java Expert System Shell)
  • it allows reasoning about messages in JESS
  • it allows a JESS program to control
    sending/receiving messages and/or
    creating/destroying JADE behaviours
  • Distributed security, fault tolerance, support
    for replicated agents and services
  • Protégé, XML, RDF and OWL
  • Application-specific persistent delivery filters
    JADE kernel-level services
  • The LEAP add-on

26
LEAP
  • JADE agents on PDA and mobile phones
  • JADE-LEAP (J2SE, PJava, MIDP) different internal
    implementation, same APIs for agents
  • JADE-LEAP for MIDP is itself a MIDlet the main
    class is jade.MicroBoot
  • A MIDlet must be packaged as a single JAR file gt
    mix library app. Classes
  • MIDP configuration parameters are specified in
    the JAD/manifest of the MIDlet
  • Minimize target (ant) obfuscator 450 k -gt
    30-150 k
  • Logging - uniform way (jade.util.Logger class)
  • J2SE JAVA Logging
  • PJava System.out.println()
  • MIDP RecordStore

27
(No Transcript)
28
The main graphical tools of JADE
  • Management, control, monitoring, and debugging of
    a multi-agent platform
  • RMA (Remote Monitoring Agent)
  • Dummy Agent
  • Sniffer Agent
  • Introspector Agent
  • Log Manager Agent
  • DF (Directory Facilitator) GUI

29
(No Transcript)
30
(No Transcript)
31
(No Transcript)
32
(No Transcript)
33
Advantages
  • No need to implement the Agent Platform
  • AMS, DF executed at start-up
  • No need to implement agent-management ontology
    and functionalities
  • An agent is registered with the Agent Platform
    within its constructor, it is given a name and an
    address
  • The DFService class provides a simplified
    interface to access the services of the DF
    (registration, searching, lease-renewal, )
  • No need to implement Message Transport and
    Parsing
  • Automatically (and possibly efficiently) done by
    the framework when sending/receiving messages
  • Interaction Protocols must only be extended via
    handle methods
  • Standard FIPA !

34
Roadmap
35
Links
  • http//jade.cselt.it
  • http//www.fipa.org
  • http//www.hibernate.org
  • http//herzberg.ca.sandia.gov/jess/
  • http//protege.stanford.edu/
  • www.swi.psy.uva.nl/usr/aart/beangenerator
  • http//jadex.sourceforge.net
Write a Comment
User Comments (0)
About PowerShow.com