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

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

CHAPTER 7 JAVA AGENT DEVELOPMENT ENVIRONMENT

Communication in Distributed Systems

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

FIPA specification and JADE. Tomáš Poch

Processes in Distributed Systems

Fault Tolerance in Distributed Systems: An Introduction

Introduction to Distributed Systems

Software Architectures

Introduction to Distributed Systems

Object-Oriented Middleware for Distributed Systems

Programming Agents with JADE for Multi-Agent Systems

Consistency & Replication in Distributed Systems

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

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

Fault Tolerance in Distributed Systems: An Introduction

Coordination in Situated Systems

Processes in Distributed Systems

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

A Multiagent Platform for Developments of Accounting Intelligent Applications

Introduction to Distributed Systems

Introduction to Distributed Systems

Introduction to Distributed Systems

FIPA Agent Software Integration Specification

Software Architectures

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

Naming in Distributed Systems

1.1 Jadex - Engineering Goal-Oriented Agents


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

Yellow pages and Interaction Protocols

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

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

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

Scalable Middleware Environment for Agent-Based Internet Applications]

Triadic Formal Concept Analysis within Multi Agent Systems

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

Software Architectures

Chapter 5 INTRODUCTION TO MOBILE AGENT

Agent Migration over FIPA ACL Messages

Wireless Distributed Systems with JADE*

FIPA ACL Message Structure Specification

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

AGENT COMMUNICATION AND NEGOTIATION IN A SUPPLY CHAIN

FIPA Agent Management Support for Mobility Specification

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

AgentService: a framework to develop distributed multi-agent systems

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

FAULT TOLERANCE IN GRID COMPUTING USING WADE

FIPA Messaging Interoperability Service Specification

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

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

Agent-Environment for Small Mobile Devices

Personal Travel Assistant A Multi-Agent Approach

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

Lesson 5 Web Service Interface Definition (Part II)

A Mobile Agent Platform for Supporting Ad-hoc Network Environment

Introduction to Distributed Systems

A Language-based Approach to Interoperability of IoT Platforms

Mobile Code Paradigms

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

Health Monitoring Service for Multi-Agent Systems

Sprite (contd) Code and Process Migration

JADE Web Service Integration Gateway (WSIG)

Labelled Variables in Logic Programming: A First Prototype in tuprolog

Introduction to Web Services & SOA

The Ocarina Tool Suite. Thomas Vergnaud

FIPA-OS Tutorial Step 3. Ping Agent

Agent-Oriented Software Engineering

JADE ADMINISTRATOR S GUIDE

Distributed Computing Environment (DCE)

Design of Labour Agency Platform Based on Agent Technology of JADE *

Developing a Multiagent System for Integrating Biological Data Using JADE

The Architecture of the World Wide Web

An Ambient Intelligence Application Integrating Agent and Service-Oriented Technologies

SMART RESOURCE PROTOTYPE ENVIRONMENT V. 2.0 DELIVERABLE 2.3

Context-Awareness and Adaptation in Distributed Event-Based Systems

Mobile Agent. Summer Project Report. Indian Institute of Technology Kanpur Department of Computer Science and Engineering

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

model (ontology) and every DRS and CMS server has a well-known address (IP and port).

Computer-based systems will be increasingly embedded in many of

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

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

The tupinjade package

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.

Topics in Object-Oriented Design Patterns

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

Ingegneria del Software Corso di Laurea in Informatica per il Management

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

FIPA ACL Message Representation in String Specification

FIPA ACL Message Representation in String Specification

Software Agent Computing. Agent Mobility

DS 2009: middleware. David Evans

Introduction to Web Services & SOA

PRECISION AGRICULTURE: MODELING AND SIMULATION

02 - Distributed Systems

02 - Distributed Systems

Transcription:

Jade: Java Agent DEvelopment Framework Overview Stefano Mariani s.mariani@unibo.it Dipartimento di Informatica Scienza e Ingegneria (DISI) Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2015/2016 Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 1 / 37

Outline 1 What is Jade? 2 Jade Architecture 3 Jade Tools Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 2 / 37

Disclaimer Disclaimer All the material presented in these slides is rearranged by the author from a collection of documents kindly made available by the Jade team. Credits for all the stuff (text & images) go to the Jade team, in particular to Giovanni Caire. Credits for all the mistakes go to the author. Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 3 / 37

What is Jade? Outline 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents Jade ACC 3 Jade Tools Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 4 / 37

What is Jade? Jade in Short I Jade stands for Java Agent DEvelopment Framework http://jade.tilab.com/ Jade is a Java-based framework to develop agent-based applications in compliance with the FIPA specifications for interoperable, intelligent, multi-agent systems FIPA stands for Foundation for Intelligent Physical Agents http://www.fipa.org/ FIPA is the IEEE Computer Society standards organisation that promotes agent-based technology and the interoperability of its standards with other technologies Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 5 / 37

What is Jade? Jade in Short II Jade Goals As an agent-oriented middleware, Jade pursues the twofold goal of being a full-fledged FIPA-compliant agent platform. Hence, it takes charge of all those application-independent aspects such as agent lifecycle management, communication, distribution transparency, etc. necessary to develop a MAS a simple yet comprehensive agent development framework. Therefore, it provides Java developers a set of APIs to build their own customisations Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 6 / 37

What is Jade? Jade Main Ingredients Java Being fully implemented in Java, 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 Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 7 / 37

What is Jade? Jade Main Features Jade offers (among many) a distributed agent platform, where distributed means that a single (logical) Jade system can be split among different networked hosts transparent, distributed message passing service transparent, distributed naming service white pages & yellow pages discovering facilities intra-platform agent mobility (code & context, to some extent) debugging & monitoring graphical tools... and much more Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 8 / 37

Outline 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents Jade ACC 3 Jade Tools Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 9 / 37

Jade Architecture Overview Figure: Jade system overview Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 10 / 37

Jade & FIPA Outline 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents Jade ACC 3 Jade Tools Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 11 / 37

Jade & FIPA FIPA Architecture I According to FIPA, the agent platform can be split on several hosts given that: Containers each host acts as a container of agents, that is, 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 Hence, Jade promotes a P2P interpretation of a MAS. Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 12 / 37

Jade & FIPA FIPA Architecture II Agent Management System For a given Jade platform, a single Agent Management System (AMS) exists, 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 even exist until registered by the AMS) Hence, the AMS provides the white pages service that is, a location-transparent naming service. Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 13 / 37

Jade & FIPA FIPA Architecture III Directory Facilitator A singleton Directory Facilitator (DF) exists for each Jade platform, that: 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 Hence, provides the default yellow pages service publish/subscribe paradigm. Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 14 / 37

Jade & FIPA FIPA Architecture IV Agent Communication Channel For a given Jade platform, a distributed message passing system exists which is called Agent Communication Channel: it controls exchange of messages within the Jade platform, be them local or remote it implements all the needed facilities to provide asynchronicity of communications it manages all aspects regarding FIPA ACL (Agent Communication Language) message format, such as serialization and deserialization Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 15 / 37

Jade & FIPA FIPA Architecture V Figure: FIPA required services Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 16 / 37

Jade Agents Outline 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents Jade ACC 3 Jade Tools Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 17 / 37

Jade Agents What is an Agent in Jade I An agent is a Java object executed by a Java thread Being an object-based middleware, Jade agents are first of all Java objects: user-defined agents must extend jade.core.agent class, inheriting some ready-to-use methods a Jade agent is executed by a single Java thread (there is an exception, though) Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 18 / 37

Jade Agents What is an Agent in Jade II An agent is more than a Java object Jade agents have a wide range of features enabling their autonomy despite being still Java objects all Jade agents must have a globally unique name (aid), which is (by default) the concatenation by symbol @ of their local name and of the Jade platform name agents business logic must be expressed in terms of behaviours Jade agents can communicate by exchanging FIPA ACL messages Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 19 / 37

Jade Agents FIPA Agents Lifecycle I Agent Life Cycle I According to FIPA, a Jade agent can be in one of several states during its lifetime: Initiated the agent object has been built, but cannot do anything since it is not registered to the AMS yet it has no aid even Active the agent is registered to the AMS and can access all Jade features in particular, it is executing its behaviour(s) Waiting the agent is blocked, waiting for something to happen (and to react to) typically, an ACL message.. Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 20 / 37

Jade Agents FIPA Agents Lifecycle II Agent Life Cycle II.. Suspended the agent is stopped, therefore none of its behaviours are being executed Transit the agent has started a migration process it will stay in this state until migration ends Unknown the agent is dead it has been deregistered to the AMS Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 21 / 37

Jade Agents FIPA Agents Lifecycle III Figure: FIPA Agent Life Cycle Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 22 / 37

Jade Agents Agent Behaviours I Why behaviours? By definition, agents are autonomous entities, therefore they should act independently and in parallel with each other The need for efficiency drives toward the execution of Jade agents as a single Java thread each! However, agents need to perform complex activities, possibly composed by multiple tasks even concurrently How to conciliate this contrasting needs? Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 23 / 37

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 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 events (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) Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 24 / 37

Jade Agents Agent Behaviours III Figure: Jade non-preemptive scheduling policy Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 25 / 37

Jade ACC Outline 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents Jade ACC 3 Jade Tools Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 26 / 37

Jade 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 continuously ask 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 Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 27 / 37

Jade 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 fields... Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 28 / 37

Jade ACC The Agent Communication Channel III Figure: FIPA communication model abstractions Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 29 / 37

Jade ACC The Agent Communication Channel IV Jade communication primitives To interact, Jade agents have a number of ready-to-use methods: send to send a message to a recipient agent receive to asynchronously retrieve the first message in the mailbox (if any) timed receive to perform a timed, synchronous receive on the mailbox timeout causes agent to resume execution selective receive to retrieve a message from the mailbox which matches a given message template message queue order is bypassed All these methods are distribution-transparent, that is they choose the proper address and transport mechanism based upon sender and receiver locations. Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 30 / 37

Jade Tools Outline 1 What is Jade? 2 Jade Architecture Jade & FIPA Jade Agents Jade ACC 3 Jade Tools Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 31 / 37

Jade Tools Jade Management Tools I RMA The Remote Monitoring Agent (RMA) allows to control the life cycle of the agent platform and of all the registered (possibly, remote) agents RMA features RMA allows to: start, stop, kill agents send them messages clone and/or migrate agents add, remove, shutdown (remote) platforms... and much more Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 32 / 37

Jade Tools Jade Management Tools II Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 33 / 37

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 Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 34 / 37

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 Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 35 / 37

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 including executing them step-by-step Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 36 / 37

Jade: Java Agent DEvelopment Framework Overview Stefano Mariani s.mariani@unibo.it Dipartimento di Informatica Scienza e Ingegneria (DISI) Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2015/2016 Stefano Mariani (DISI, Univ. Bologna) L1(1) Jade Overview A.Y. 2015/2016 37 / 37