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

Similar documents
Jade: Java Agent DEvelopment Framework Overview

Jade: Java Agent DEvelopment Framework Overview

Processes in Distributed Systems

Processes in Distributed Systems

Object-Oriented Middleware for Distributed Systems

Communication in Distributed Systems

Software Architectures

Software Architectures

Fault Tolerance in Distributed Systems: An Introduction

Naming in Distributed Systems

Fault Tolerance in Distributed Systems: An Introduction

Jade: Java Agent DEvelopment Framework Getting Started

Introduction to Distributed Systems

Consistency & Replication in Distributed Systems

Introduction to Distributed Systems

Challenges for Mobile Agents. Munindar P. Singh

Coordination in Situated Systems

Scalable Middleware Environment for Agent-Based Internet Applications]

Appendix A - Glossary(of OO software term s)

Topics on Web Services COMP6017

Remote Invocation. 1. Introduction 2. Remote Method Invocation (RMI) 3. RMI Invocation Semantics

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

OWL-S for Describing Artifacts

Agent-Oriented Software Engineering. Franco Zambonelli April 2010

Boolean network robotics

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

1.1 Jadex - Engineering Goal-Oriented Agents

SISTEMI CONCORRENTI E DI RETE LS II Facoltà di Ingegneria - Università di Bologna - Cesena - a.a / 2009 COURSE PRESENTATION

CHAPTER 5 GENERAL OOP CONCEPTS

Chapter 4 Remote Procedure Calls and Distributed Transactions

Agent-Oriented Software Engineering. Franco Zambonelli February 2005

CAS 703 Software Design

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Layers of an information system. Design strategies.

FIPA specification and JADE. Tomáš Poch

Communication and Distributed Processing

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Introduction to Web Services & SOA

Agent-Oriented Software Engineering

Chapter 2 Distributed Information Systems Architecture

Unifying Agent and Component Concepts - Jadex Active Components

Towards an organic mobile terminal by utilising agent-based monitoring in a reconfigurable protocol stack

COURSE PRESENTATION. PROGRAMMAZIONE AVANZATA E PARADIGMI Ingegneria e Scienze Informatiche Università di Bologna - Cesena - a.a.

Software Architectures

Multimedia Data Management M

Multimedia Data Management M

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

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

The Architecture of the World Wide Web

Chapter 16. Layering a computing infrastructure

DS 2009: middleware. David Evans

SEMANTIC COORDINATION THROUGH PROGRAMMABLE TUPLE SPACES

An Introduction to Complex Systems Science

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Element: Relations: Topology: no constraints.

The Architecture of the World Wide Web

Agent-Oriented Programming for Developing Modern Software Systems

Introduction to Distributed Systems

From Agents to Artifacts Back and Forth Operational and Doxastic Use of Artifacts in MAS

Introduction to Distributed Systems

Application Servers in E-Commerce Applications

Distribution and Integration Technologies

A Tutorial on The Jini Technology

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

Migration to Service Oriented Architecture Using Web Services Whitepaper

Lesson 3 SOAP message structure

Lesson 19 Software engineering aspects

An Agent-Oriented Information System: A Model Driven Approach

Outline. Chapter 4 Remote Procedure Calls and Distributed Transactions. Remote Procedure Call. Distributed Transaction Processing.

Communication and Distributed Processing

simpa-ws: A Simple Agent-Oriented Programming Model & Technology for Developing SOA & Web Services

Introduction to Web Services & SOA

On the impact of small-world on local search


TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

Introduction to Distributed Systems

Threads SPL/2010 SPL/20 1

Designing a Development Environment for Logic and Multi-Paradigm Programming

Agent-based Models, Technologies and Methodologies for the Engineering of Software Systems in the Context of Open Scenarios

Verteilte Systeme (Distributed Systems)

Computer and Automation Research Institute Hungarian Academy of Sciences. Jini and the Grid. P. Kacsuk

Information Quality & Service Oriented Architecture

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

The ALPHA Programming Language Language Guide

A Framework For Designing, Modeling and Analyzing Agent Based Software Systems

Middleware and Interprocess Communication

Artificial Intelligence Agent Oriented Software Engineering

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation

Chapter 4 Defining Classes I

Cost-effective development of flexible self-* applications

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

Service-Oriented Programming

Programmazione. Prof. Marco Bertini

Architectures in Context

Data Modelling and Multimedia Databases M

Diffusing Your Mobile Apps: Extending In-Network Function Virtualisation to Mobile Function Offloading

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

UML 2.0 UML 2.0. Scott Uk-Jin Lee. Division of Computer Science, College of Computing Hanyang University ERICA Campus

Distributed simulation of situated multi-agent systems

Class object initialization block destructor Class object

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Transcription:

From Objects to Agents: The Java Agent Middleware (JAM) Laboratory of Multiagent Systems LM Laboratorio di Sistemi Multiagente LM Elena Nardini elena.nardini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2010/2011 Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 1 / 20

Outline 1 Defining Agents 2 Objects vs. Agents [Odell, 2002] 3 An Agent Middleware 4 Exercise 5 Bibliography Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 2 / 20

Defining Agents Autonomy as the Foundation of the Definition of Agent We will use autonomy as the only fundamental and definitely feature of agents Computational Autonomy Agents are autonomous as they encapsulate (the thread of) control Control does not pass through agent boundaries only data (knowledge, information) crosses agent boundaries Agents have no interface, cannot be controlled, nor they can be invoked Looking at agents, MAS can be conceived as an aggregation of multi distinct loci of control interacting with each other by exchanging information Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 3 / 20

Defining Agents Weak Notion of Agent Four key qualities [Wooldridge and Jennings, 1995] Autonomy Pro-activity Reactivity (to change) Sociality Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 4 / 20

Objects vs. Agents [Odell, 2002] Object-Oriented Programming The basic unit of software are objects & classes Structured units of code could actually be reused under a variety of situations Objects have local control over variables manipulated by their own methods variable state is persistent through subsequent invocations object s state is encapsulated Objects are passive methods are invoked by external entities modularity does not apply to unit invocation object s control is not encapsulated Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 5 / 20

Objects vs. Agents [Odell, 2002] Agent-Oriented Programming The basic unit of software are agents encapsulating everything, in principle by simply following the pattern of the evolution whatever an agent is we do not need to define them now, just to understand their desired features Agents could in principle be reused under a variety of situations Agents have control over their own state Agents are active they cannot be invoked agent s control is encapsulated Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 6 / 20

An Agent Middleware Toward an Agent Middleware Middleware for the paradigm shift How are we going to implement the paradigm shift, under the heavy weight of legacy? A middleware allows agents to be used in conjunction with sub-systems adopting different component models Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 7 / 20

An Agent Middleware JAM: Java Agent Middleware Developed by Prof. Matteo Baldoni for the course of Programmazione in Rete at the Politecnico di Torino JAM Architecture Supports the agent creation and interaction by exploiting the Java technology that is based on the object paradigm Is based on Java RMI and the Agent Directory Service Layer (ADSL) Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 8 / 20

An Agent Middleware JAM Agents On the one hand, an agent is an object, instance of the JAMAgent class, describing their internal state and providing the communicative functionality On the other hand, unlike objects, agents are autonomous The object abstraction needs to be coupled with the process abstraction in order to model the agent abstraction Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 9 / 20

An Agent Middleware JAM Agents are Autonomous Computational autonomy The behaviour of an agent is defined by a set of objects of kind JAMBehaviour Each behaviour is executed by a single Java thread Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 10 / 20

An Agent Middleware JAM Agents are Pro-active Pro-activity JAMBehaviour implements the method action accessing the agent state and the communicative functionality, and representing the actions defining the agent behaviour The method action is executed once if the class implementing the method is JAMSimpleBehaviour ( task-oriented) The method action is executed in a cyclic way until the value of the boolean variable done is not equals to true, if the class implementing the method is JAMWhileBehaviour ( goal-oriented, where the goal is: done = true) Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 11 / 20

An Agent Middleware JAM Agents are Situated and Reactive Situatedness The agent environment is represented by the JVM and the Runtime Agent Middleware (RAM) RAM is built upon the Java RMI infrastructure and ADSL and it allows to host, find and execute agents, and exchange messages among agents JAM does not provide any first class abstraction to model the agent environment The agent environment is not explicitly modelled Reactivity (to change) Agents can wait for something to happen A message received from another agent An event from the JVM Example: exceptions Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 12 / 20

An Agent Middleware JAM Agents are Social Sociality As MAS subsystems, agents can interact with one another JAM supports direct agent interaction through the runtime environment RAM Agent interaction through RAM Agents can be distributed over the network Agents can interact by writing messages in message boxes by exploiting Java RMI Each agent has a message box associated A message and a message box are respectively represented by the objects Message and MessageBox Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 13 / 20

An Agent Middleware Messages and Message Boxes in JAM Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 14 / 20

An Agent Middleware Agent Directory Service Layer I Discovery agents to interact with RAM provides ADSL that is exploited to collect information about the agents of the MAS in order to interact with one another ADSL is like white pages and it is remotely accessible Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 15 / 20

An Agent Middleware Agent Directory Service Layer II Exploiting the ADSL service ADSL lookup by each agent Each agent has to register the remote object MessageBox in the ADSL In order to send a message first, an agent search the remote message box of the agent which is the intended receiver of the message then, the sender agent sends the message writing it in the remote message box Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 16 / 20

Exercise Exercise Che ora è? ADSL Download the library JAM.jar Download the JAM documentation JAMLibrary.pdf Implement the exercise Che ora è? provided in section 2.3 Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 17 / 20

Exercise Open Points Questions Which differences with an implementation exploiting the object paradigm? Environment not explicitly modelled from the middleware: which are the drawbacks? Direct communication among agents: which are the drawbacks? Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 18 / 20

Bibliography Bibliography Odell, J. (2002). Objects and agents compared. Journal of Object Technologies, 1(1):41 53. Wooldridge, M. and Jennings, N. R. (1995). Intelligent agents: Theory and practice. Knowledge Engineering Review, 10(2):115 152. Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 19 / 20

Bibliography From Objects to Agents: The Java Agent Middleware (JAM) Laboratory of Multiagent Systems LM Laboratorio di Sistemi Multiagente LM Elena Nardini elena.nardini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2010/2011 Elena Nardini (Università di Bologna) JAM A.Y. 2010/2011 20 / 20