Jade: Java Agent DEvelopment Framework Overview

Similar documents
Jade: Java Agent DEvelopment Framework Overview

Jade: Java Agent DEvelopment Framework Getting Started

Agents & Multi-Agent Systems with Jade

Fault Tolerance in Distributed Systems: An Introduction

Processes in Distributed Systems

Communication in Distributed Systems

From Objects to Agents: The Java Agent Middleware (JAM)

CHAPTER 7 JAVA AGENT DEVELOPMENT ENVIRONMENT

Information Collection and Survey Infrastructure, APIs, and Software Tools for Agent-based Systems (An Overview of JADE)

Consistency & Replication in Distributed Systems

Software Architectures

Fault Tolerance in Distributed Systems: An Introduction

Introduction to Distributed Systems

Object-Oriented Middleware for Distributed Systems

Introduction to Distributed Systems

FIPA specification and JADE. Tomáš Poch

Processes in Distributed Systems

Naming in Distributed Systems

Coordination in Situated Systems

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Multi-Agent Systems

Introduction to Distributed Systems

Programming Agents with JADE for Multi-Agent Systems

Software Architectures

A Multiagent Platform for Developments of Accounting Intelligent Applications

Introduction to Distributed Systems

Introduction to Distributed Systems

Introduction - GAMA. Gis & Agent-based Modeling Architecture. Agent-based, spatially explicit, modeling and simulation platform.

Software Architectures

JADE: the new kernel and last developments. Giovanni Caire JADE Board Technical Leader


Developing multi-agent systems with a FIPA-compliant agent framework

Use and Reuse of Multi-Agent Models and Techniques in a Distributed Systems Development Framework

Yellow pages and Interaction Protocols

The Architecture of the World Wide Web

Introduction to Distributed Systems

1.1 Jadex - Engineering Goal-Oriented Agents

FIPA Agent Software Integration Specification

Autonomic Mul,- Agents Security System for mul,- layered distributed architectures. Chris,an Contreras

Labelled Variables in Logic Programming: A First Prototype in tuprolog

Wireless Distributed Systems with JADE*

IG-JADE-PKSlib. An Agent Based Framework for Advanced Web Service Composition and Provisioning. Erick Martínez & Yves Lespérance

The American University at Cairo. The Computer Science Department. Csci485-Intelligent Agents. Spring 2006 Dr Rafea. JADE Tutorial

Chapter 5 INTRODUCTION TO MOBILE AGENT

Scalable Middleware Environment for Agent-Based Internet Applications]

Outline Multi-agent Platforms. Existing problems. Existing problems (2)

Investigating F# as a development tool for distributed multi-agent systems

AgentService: a framework to develop distributed multi-agent systems

Horizon Project. Horizon - A New Horizon for Internet WP1 - TASK 1.1: State-of-the-art in Context Aware Technologies. Institutions

AGENT COMMUNICATION AND NEGOTIATION IN A SUPPLY CHAIN

FIPA Messaging Interoperability Service Specification

FIPA-OS Feature Overview. Agent Technology Group Nortel Networks February 2000

Prolog Examples. Distributed Systems / Technologies. Sistemi Distribuiti / Tecnologie

Agent Migration over FIPA ACL Messages

Lesson 5 Web Service Interface Definition (Part II)

Triadic Formal Concept Analysis within Multi Agent Systems

FIPA ACL Message Structure Specification

FIPA Agent Management Support for Mobility Specification

FAULT TOLERANCE IN GRID COMPUTING USING WADE

FIPA and FIPA-OS. Stefan Poslad. Multimedia, Intelligent Systems & Applications Group Dept. Electronic Engineering

Boolean network robotics

Personal Travel Assistant A Multi-Agent Approach

Agent-Environment for Small Mobile Devices

Developing a Multiagent System for Integrating Biological Data Using JADE

Health Monitoring Service for Multi-Agent Systems

Computer-based systems will be increasingly embedded in many of

The Architecture of the World Wide Web

J A D E Te s t S u i t e

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Visual Construction of Multi-Agent-Systems according to the AgentComponent Approach and the Run-Design-Time Concept

A Language-based Approach to Interoperability of IoT Platforms

Context-Awareness and Adaptation in Distributed Event-Based Systems

Sprite (contd) Code and Process Migration

JADE Web Service Integration Gateway (WSIG)

Agent-Oriented Software Engineering. Franco Zambonelli April 2010

Introduction to Web Services & SOA

Distributed Computing Environment (DCE)

MODELS OF DISTRIBUTED SYSTEMS

JADE ADMINISTRATOR S GUIDE

MaSMT: A Multi-agent System Development Framework for English-Sinhala Machine Translation

Direct Mobile data synchronization between servers

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

DS 2009: middleware. David Evans

Mobile Code Paradigms

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer

Lightweight Communication Platform for Heterogeneous Multi-context Systems: A Preliminary Report

Workshop on Mechatronic Multiagent Systems

SMART RESOURCE PROTOTYPE ENVIRONMENT V. 2.0 DELIVERABLE 2.3

An Ambient Intelligence Application Integrating Agent and Service-Oriented Technologies

SicAri A security architecture and its tools for ubiquitous Internet usage. Deliverable MW1

Decentralized and Fault-tolerant FIPA-compliant Agent Framework Based on.net

A Mobile Agent Platform for Supporting Ad-hoc Network Environment

Multiagent Systems for Service-Oriented Computing

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

FIPA-OS Tutorial Step 3. Ping Agent

Introduction to Multi-Agent Programming

Ingegneria del Software Corso di Laurea in Informatica per il Management

The Ocarina Tool Suite. Thomas Vergnaud

ORACLE MESSAGEQ ORACLE DATA SHEET KEY FEATURES AND BENEFITS

Lupin: from Web Services to Web-based Problem Solving Environments

Software Agent Computing. Agent Mobility

Transcription:

Jade: Java Agent DEvelopment Framework Overview Multiagent Systems LM Sistemi Multiagente LM Stefano Mariani revised by Andrea Omicini s.mariani@unibo.it, andrea.omicini@unibo.it Dipartimento di Informatica: Scienza e Ingegneria (DISI) Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2012/2013 Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 1 / 36

Outline 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents FIPA ACC 3 Jade Tools Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 2 / 36

Disclaimer Outline All the material presented in these slides is rearranged by the author from a collection of documents kindly made available by the Jade team. Then, credits for all the stuff (text & images) goes to the Jade team, in particular to Giovanni Caire. Credits for all the mistakes goes to the author. Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 3 / 36

Outline What is Jade? 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents FIPA ACC 3 Jade Tools Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 4 / 36

What is Jade? Jade in Short I Jade Definition Jade (Java Agent DEvelopment Framework) a is a Java-based framework to develop agent-based applications in compliance with the FIPA b specifications for interoperable, intelligent, multi-agent systems. a http://jade.tilab.com/ b http://www.fipa.org/ Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 5 / 36

What is Jade? Jade in Short II Jade Goals As an agent-oriented middleware, Jade pursues the twofold goal of providing programmers & developers with a full-fledged FIPA-compliant agent platform hence, it takes care of all those application-independent aspects such as agent lifecycle management, communications, distribution transparency, etc. needed to implement a MAS a simple-yet-comprehensive agent development framework therefore, it provides Java developers with a set of APIs to customise their MAS Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 6 / 36

Jade Main Ingredients What is Jade? Java Being fully Java-based, Jade is a notable example of a distributed object-based agent-oriented infrastructure hence, an interesting example about how to face a design/programming paradigm shift FIPA Being compliant to FIPA standards, Jade is a complete and coherent agent platform providing all the necessary facilities to deploy MAS Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 7 / 36

What is Jade? Jade Main Features Jade offers a distributed agent platform, where distributed means that a single (logical) Jade system can be split among different networked hosts transparent, distributed message passing interface & service transparent, distributed naming service white pages & yellow pages discovering facilities intra-platform agent mobility code & context, to some extent debugging & monitoring graphical tools... much more (we will find out later)... Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 8 / 36

Outline Jade Architecture 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents FIPA ACC 3 Jade Tools Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 9 / 36

Jade Architecture Jade Architecture Overview Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 10 / 36

Outline Jade Architecture Jade & FIPA 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents FIPA ACC 3 Jade Tools Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 11 / 36

Jade Architecture Jade & FIPA FIPA Architecture I According to the FIPA specification, the agent platform can be split on several hosts given that: Containers each host acts as a container of agents, that is, it provides a complete runtime environment for Jade agents execution lifecycle management, message passing facilities, etc. (at least) one of these containers is the main container (actually, the first started), responsible to maintain a registry of all other containers in the same Jade platform through which agents can discover each other this promotes a peer-to-peer interpretation of a MAS Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 12 / 36

Jade Architecture Jade & FIPA FIPA Architecture II Agent Management System (AMS) A Jade platform contains one Agent Management System (AMS), which keeps track of all other agents in the same Jade platform even those living in remote containers should be contacted by Jade agents prior to any other action they do not exist until they are registered by the AMS provides the white pages service that is, a location-transparent naming service Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 13 / 36

Jade Architecture Jade & FIPA FIPA Architecture III Directory Facilitator (DF) A Jade platform contains one Directory Facilitator (DF) exists, which keeps track of all advertised services provided by all the agents in the same Jade platform should be contacted by Jade agents who wish to publish their capabilities provides the default yellow pages service publish/subscribe paradigm Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 14 / 36

Jade Architecture Jade & FIPA FIPA Architecture IV Agent Communication Channel (ACC) A Jade platform contains a distributed message passing system called Agent Communication Channel (ACC), which controls every message exchange within the Jade platform, be them local or remote implements the facilities required for asynchronous communication manages all aspects concerning FIPA ACL (Agent Communication Language) message format, such as serialisation and deserialisation Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 15 / 36

FIPA Required Services Jade Architecture Jade & FIPA Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 16 / 36

Outline Jade Architecture Jade Agents 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents FIPA ACC 3 Jade Tools Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 17 / 36

Jade Architecture Jade Agents What is an Agent in Jade I An agent is first of all a Java object Being an object-based middleware, Jade agents are first of all Java objects: user-defined agents must extend jade.core.agent class, thus inheriting some ready-to-use method a Jade agent is executed by a single Java thread with an exception, though Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 18 / 36

Jade Architecture Jade Agents What is an Agent in Jade II An agent is not just a Java object & thread Despite their objectness, and beyond their threadness, Jade agents have features gearing towards autonomy all Jade agents have a globally unique name (aid), which is (by default) the concatenation via symbol @ of their local name and of the Jade platform name agents business logic is expressed in terms of behaviours Jade agents communicate by exchanging FIPA ACL messages Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 19 / 36

Jade Architecture Jade Agents FIPA Agents Lifecycle I Agent platform life cycle According to FIPA, a Jade agent can be in one of the following states during its lifetime: Initiated agent object built, yet not registered to the AMS Active agent registered to the AMS (got aid) it can access all Jade features, such as behaviour execution Waiting agent blocked, waiting for something to happen (and to react to) typically, an ACL message Suspended agent stopped none of its behaviours executing Transit agent started a migration process in this state until migration ends Unknown agent dead deregistered from the AMS Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 20 / 36

FIPA Agents Lifecycle II Jade Architecture Jade Agents Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 21 / 36

Jade Architecture Jade Agents Agent Behaviours I Why behaviours? By definition, agents are autonomous entities, therefore they should act independently and concurrently The need for efficiency gears toward executing each Jade agent as a single Java thread! However, agents need to perform complex activities, possibly composed by multiple tasks even concurrently How to get the two things together? Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 22 / 36

Jade Architecture Jade Agents Agent Behaviours II With behaviours! What are behaviours? A behaviour can be seen as an activity to perform with the goal of completing a task Jade is task-oriented A behavior can represent both a proactive activity started by the agent on its own as well as a reactive activity performed in response to some event (timeouts, messages, etc.)! Jade implements behaviours as Java objects, which are executed concurrently (still by a single Java thread) using a non-preemptive, round-robin scheduler (internal to the agent class but hidden to the programmer) Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 23 / 36

Jade Architecture Jade Agents Jade Multi-tasking, Non-preemptive Scheduling Policy Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 24 / 36

Outline Jade Architecture FIPA ACC 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents FIPA ACC 3 Jade Tools Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 25 / 36

Jade Architecture FIPA ACC The Agent Communication Channel I Jade messaging runtime According to the FIPA specification, Jade agents communicate via asynchronous message passing: each agent has a message queue (a sort of mailbox) where the Jade ACC delivers ACL messages sent by other agents whenever a new entry is added to the mailbox, the receiving agent is notified it does not need to block nor to poll either! if and when the agent actually processes a message is up to the agent itself (or the programmer) for the sake of agents autonomy Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 26 / 36

Jade Architecture FIPA ACC The Agent Communication Channel II ACL-compliant messages To understand each other, it is crucial that agents agree on the format and semantics of the messages they exchange Hence, an ACL message contains: :sender who sends the message automatically set :receiver who the message targets may be many performative the name of the communication act the agents want to carry out constrained by a FIPA ontology :content the actual information conveyed by the message :language the syntax used to encode the :content :ontology the semantics upon which the :content relies.. others field (we will see them maybe) Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 27 / 36

Jade Architecture FIPA ACC The Agent Communication Channel III FIPA communication model abstractions Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 28 / 36

Jade Architecture FIPA ACC The Agent Communication Channel IV Jade communication primitives To exchange messages, Jade agents have some ready-to-use methods: send to send a message to a (implicitly specified) recipient agent receive to asynchronously retrieve the first message in the mailbox (if any) timed receive to perform a timed, synchronous reception on the mailbox timeout causes agent to wake up selective receive to retrieve a message from the mailbox which matches a given message template message queue order is bypassed All the above methods are distribution-transparent, that is, they select the proper address and transport mechanism based upon sender and receiver locations Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 29 / 36

Outline Jade Tools 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents FIPA ACC 3 Jade Tools Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 30 / 36

Jade Tools Jade Management Tools I Remote Monitoring Agent (RMA) The Remote Monitoring Agent (RMA) makes it possible to control the life cycle of the agent platform and of all the registered (even remote) agents RMA features RMA makes it possible to start, stop, kill agents send them messages clone and/or migrate agents add, remove, shutdown (remote) platforms... and much more Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 31 / 36

Jade Tools Jade Management Tools II Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 32 / 36

Jade Tools Jade Management Tools III Dummy Agent The Dummy Agent allows a human user to interact with Jade agents by sending, inspecting, recording custom ACL messages Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 33 / 36

Jade Tools Jade Management Tools IV Sniffer Agent The Sniffer Agent allows a user to sniff an agent or a group of agents, which means that every message directed to/from that agent / agent group is tracked and displayed. Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 34 / 36

Jade Tools Jade Management Tools V Introspector Agent The Introspector Agent allows to monitor and control both the queue of sent and received messages as well as the queue of behaviours also allowing for step-by-step execution Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 35 / 36

Jade: Java Agent DEvelopment Framework Overview Multiagent Systems LM Sistemi Multiagente LM Stefano Mariani revised by Andrea Omicini s.mariani@unibo.it, andrea.omicini@unibo.it Dipartimento di Informatica: Scienza e Ingegneria (DISI) Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2012/2013 Mariani & Omicini (DISI, Univ. Bologna) L1 Jade Overview A.Y. 2012/2013 36 / 36