Java Mobile Agents with Aglets Wolfgang Schreiner

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

Institut für Softwarewissenschaft - Universität WienP.Brezany 1 Multi-Agent Systems A Modern Approach to Distributed Artificial Intelligence Peter Brezany.
Software Agents and Aglets
Agents & Mobile Agents.
Comparison Study of Three Mobile Agent Systems Aglets, Grasshopper and Voyager Qunhua Zhao, Hua Wang and Yi Zhang Department of Computer Science and Engineering.
Understanding Code Mobility
Mobile Agents Mouse House Creative Technologies Mike OBrien.
M. Muztaba Fuad Masters in Computer Science Department of Computer Science Adelaide University Supervised By Dr. Michael J. Oudshoorn Associate Professor.
The Mobile Code Paradigm and Its Security Issues Anthony Chan and Michael Lyu September 27, 1999.
移动 A GENT 系统 ——Aglets. 提纲 Aglets 简介 Aglets 模型 Aglets API Aglets 样例 2.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
1 Mobile Agent Instructor: Dr. AGGARWAL Presenter: Liu Lun.
Context-based Information Sharing and Authorization in Mobile Ad Hoc Networks Incorporating QoS Constraints Sanjay Madria, Missouri University of Science.
Mobile Agents in High Performance Computing System Presentation by : MADHAN MOHAN NARLAPURAM User Id: mmnarlap.
Outline : Motivation & background Mobile agents and enterprise computing Algebra of itineraries Implementation and applications Demo Scripting Mobile Agents.
Design, Implementation, and Experimentation on Mobile Agent Security for Electronic Commerce Applications Anthony H. W. Chan, Caris K. M. Wong, T. Y. Wong,
Mobile Agent Systems. Mobility Mobile Agents A Mobile Agent is a software agent that exists in a software Environment and can migrate from machine to.
Scenario Based Interaction Model for a Mobile Agent System
The Mobile Code Paradigm and Its Security Issues Anthony Chan September 13, 1999.
AgentOS: The Agent-based Distributed Operating System for Mobile Networks Salimol Thomas Department of Computer Science Illinois Institute of Technology,
Tcl Agent : A flexible and secure mobile-agent system Paper by Robert S. Gray Dartmouth College Presented by Vipul Sawhney University of Pennsylvania.
The Open Grid Service Architecture (OGSA) Standard for Grid Computing Prepared by: Haoliang Robin Yu.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
© DSRG 2001www.cs.agh.edu.pl Cross Grid Workshop - Kraków Krzysztof Zieliński, Sławomir Zieliński University of Mining and Metallurgy {kz,
DISTRIBUTED PROCESS IMPLEMENTAION BHAVIN KANSARA.
MADE Mobile Agents based system for Distance Evaluation Vikram Jamwal KReSIT, IIT Bombay Guide : Prof. Sridhar Iyer.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Analysis, Design, and Implementation of an Agent Based Management Information System Management Information System Supervisor: Dr. Razzazi Supervisor:
Mobile Agent Technology for the Management of Distributed Systems - a Case Study Claudia Raibulet& Claudio Demartini Politecnico di Torino, Dipartimento.
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
1 22 August 2001 The Security Architecture of the M&M Mobile Agent Framework P. Marques, N. Santos, L. Silva, J. Silva CISUC, University of Coimbra, Portugal.
OV Copyright © 2011 Element K Content LLC. All rights reserved. Network Security  Network Perimeter Security  Intrusion Detection and Prevention.
Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts & Design (5 th Ed.). Essex: Addison-Wesley.
Architectures of distributed systems Fundamental Models
The OMG Mobile Agent System Interoperability Facility.
Course code: ABI 204 Introduction to E-Commerce Chapter 5: Security Threats to Electronic Commerce AMA University 1.
MOBILE AGENTS What is a software agent ? Definition of an Agent (End-User point of view): An agent is a program that assists people and acts on their behalf.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Understanding Code Mobility A Fuggetta, G P Picco and G Vigna Presenter Samip Bararia.
Transparent Mobility of Distributed Objects using.NET Cristóbal Costa, Nour Ali, Carlos Millan, Jose A. Carsí 4th International Conference in Central Europe.
Mobile Agents Babak Esfandiari. Types of Applications Dynamic load balancing. Dynamic service deployment. Intermittently connected systems.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
ECI – electronic Commerce Infrastructure “ An application to the Shares Market ” Demetris Zeinalipour ( Melinos Kyriacou
Agent Based Transaction System CS790: Dr. Bruce Land Sanish Mondkar Sandeep Chakravarty.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Aglets Based on Mobile Agents with Java: The Aglet API by Danny B. Lange and Mitsuru Oshima.
Mobile Agents M. L. Liu. Distributed Computing, M. L. Liu2 Introduction Mobile agent is a distributed computing paradigm. It has become viable, with recent.
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
Institute for Visualization and Perception Research 1 © Copyright 1999 Haim Levkowitz Java-based mobile agents.
.NET Mobile Application Development XML Web Services.
Java Mobile Agents with Aglets End of studies report Responsible : M. Logothetis ERASMUS Exchange.
Rights Management for Shared Collections Storage Resource Broker Reagan W. Moore
EEL 5937 Mobile agents (2) EEL 5937 Multi Agent Systems Lotzi Bölöni.
Third International Workshop on Networked Appliance 2001 SONA: Applying Mobile Agent to Networked Appliance Control S.Aoki, S.Makino, T.Okoshi J.Nakazawa.
Building Distributed Educational Applications using P2P
The Open Grid Service Architecture (OGSA) Standard for Grid Computing
#01 Client/Server Computing
Mobile Agents Technology - Programming with Aglet
Mobile Agents.
Mobile Agents M. L. Liu.
Architectures of distributed systems Fundamental Models
Unit V Mobile Middleware.
Presented by: Francisco Martin-Recuerda
In Distributed Systems
#01 Client/Server Computing
Presentation transcript:

Java Mobile Agents with Aglets Wolfgang Schreiner

Chapter 1 – Introduction to Mobile Agents

What is a Software Agent? End-User Perspective – An agent is a program that assists people and acts on their behalf – Agents function by allowing people delegate work to them System Perspective – An agent is a software object that is situated within an execution environment – possesses mandatory and orthogonal properties

What is a Mobile Agent? Stationary Agent – executes only on the system where it begins execution – interacts with an agent using communication mechanisms Mobile Agent – not bound to the system where it begins execution – has the ability to transport itself from one system in a network to another

Reasons for Mobile Agents Reduce network load Reduce network latency Encapsulate protocols Execute asynchronously and autonomously Adapt dynamically Are naturally heterogeneous Are robust and fault-tolerant

Network Computing Client-Server Paradigm – A server locally hosts services that provide access to resources and code that implements these services. Code-on-Demand Paradigm – no preinstalled code on the client side Mobile Agent Paradigm – hosts are allowed a high degree of flexibility

Mobile Agent Applications Electronic Commerce Personal assistance Distributed information retrieval Telecommunication network services Workflow applications and groupware Monitoring and notification Parallel processing

Mobile Agent Systems Java – Aglets – Odyssey – Concordia – Voyager Others – Agent Tcl – Ara – TACOMA

Mobile Agent Standardization MASIF Agent management Agent transfer Agent and agent system names Agent system type and location syntax

Chapter 2 – Elements of a Mobile Agent System

Agent...

... and Place

Agent Behaviour (1) Creation – Instantiation and identifier assignment – Initialization – Autonomous execution Disposal – Preparing for disposal – Suspension of execution

Agent Behaviour (2) Dispatching – Suspend, serialize, encode, transfer Receiving – Receive, decode, de-serialize, resume execution Agent Class Transfer – Class at destination – Class at origin – Code-on-demand

Communication

MASIF MAFAgentSystem Interface – agent management tasks MAFFinder Interface – agent naming service

Chapter 3 – Mobile Agents with Java

Java Agents - Benefits Platform Independence Secure Execution Dynamic Class Loading Multithread Programming Object Serialization Reflection

Java Agents - Drawbacks Inadequate Support for Resource Control No Protection of References No Object Ownership of References No Support for Preservation and Resumption of the Execution State

The Aglet Model Basic Elements – aglet, proxy, context, identifier – creation, cloning, dispatching, retraction, disposal, activation/deactivation Aglet Event Model – clone, mobility and persistence listener Aglet Communication Model – Message, FutureReply, ReplySet

Aglet Package class Aglet interface AgletProxy interface AgletContext class Message class FutureReply class AgletID

Chapter 4 – Anatomy of an Aglet

Aglet Disposal public final void Aglet.dispose(); public void Aglet.onDisposing(); Example: public class DisposalExample extends Aglet { public void onDisposing() {... } public void run() { dispose(); }

Delegation-Based Event Model CloneEvent, MobilityEvent, PersistencyEvent CloneListener, MobilityListener, PersistencyListener CloneAdapter, MobilityAdapter, PersistencyAdapter

Cloning public final Object Aglet.onClone(); public final void Aglet.addCloneListener(CloneListener); public final void Aglet.removeCloneListener(CloneListener); public void CloneAdapter.onCloning(CloneEvent); public void CloneAdapter.onClone(CloneEvent); public void CloneAdapter.onCloned(CloneEvent);

Aglet Mobility public final void Aglet.dispatch(URL); public final void Aglet.addMobilityListener(MobilityListener); public final void Aglet.removeMobilityListener(MobilityListener); public void MobilityAdapter.onDispatching(MobilityEvent); public void MobilityAdapter.onArrival(MobilityEvent); public void MobilityAdapter.onReverting(MobilityEvent);

Persistence public final void deactivate(long); public final void Aglet.addPersistencyListener (PersistencyListener); public final void Aglet.removePersistencyListener (PersistencyListener); public void PersistencyAdapter.onDeactivating (PersistencyEvent); public void PersistencyAdapter.onActivation (PersistencyEvent);

Events CloneEvent MobilityEvent – public URL MobilityEvent.getLocation(); PersistencyEvent – public long PersistencyAdapter.getDuration();

Chapter 5 – Aglet Context

Aglet Creation Code and Code Base Code Base and Class Mobility Initialization Argument

Proxy Retrieval Proxy Iterator – public abstract Enumeration AgletContext.getAgletProxies(); Getting a Local Proxy – public abstract AgletProxy AgletContext.getAgletProxy(AgletID); Getting a Remote Proxy – URL as additional parameter

Aglet Retraction public abstract AgletProxy AgletContext.retractAglet(URL,AgletID); Example: AgletID aid=proxy.getAgletID(); Proxy.dispatch(dest); getAgletContext().retractAglet(dest,aid);

Context Properties public abstract Object AgletContext.getProperty(String); public abstract Object AgletContext.getProperty(String,Object); public abstract void AgletContext.setProperty(String,Object);

Chapter 6 – Aglet Messaging

Simple Messaging public Object AgletProxy.sendMessage(Message); public boolean Aglet.handleMessage(Message);

The Message Class Message Creation – public Message(String [,…] ); Receiving Messages – getArg, setArg, getKind, sameKind Replying to Messages – public void Message.sendReply(); – public void Message.sendException(Exception);

Getting the Reply

Message Management Serialized Message Handling Message Priorities Parallel Message Handling Synchronized Message Handling

Multicasting public final void Aglet.subscribeMessage(String); public final void Aglet.unsubscribeMessage(String); public final void Aglet.unsubscribeAllMessages(); public ReplySet AgletContext.multicastMessage(Message);

Receiving Multiple Replies public boolean ReplySet.hasMoreReplies(); public FutureReply ReplySet.getNextFutureReply(); public boolean ReplySet.addFutureReply(FutureReply);

Chapter 7 – Aglet Collaboration

Aglet Proxy Cloning Disposal Dispatching Deactivation and Activation Aglet Information

Controlling an Aglet

Finding an Aglet Search Logging Registration AgletFinder – Lookup: NAME – Register: NAME & PROXY – Unregister: NAME

Aglets in Parallel Execution

Chapter 8 – Agent Design Patterns

Design Pattern Classification Traveling Patterns – Itinerary, Forward, Ticket Task Patterns – Master-Slave Interaction Patterns – Meeting, Locker, Messenger, Finder, Organized Group

Chapter 9 – Inside Aglets

Architectural Overview Core Framework – Initialization and (de-)serialization – Class loading and transfer – Aglet references and garbage collection Management Components – PersistencyManager – CacheManager – SecurityManager Communication Layer

Aglet Object Structure

Initialization and Serialization Initialization of Aglets – Locate aglet class, load class data, define class – Instantiate new object – Create reference AgletRef, establish connection – Start execution Serialization and Object Mobility

Class Loading and Transfer Class Loading Class Transfer – Archived classes – Code base classes – System classes – Others Class Resumption and Evolution Other Considerations of Class Mobility

Communication Layer Communication API – MASIF Agent Transfer Protocol – Dispatch – Retract – Fetch – Message

Chapter 10 – Aglet Security

What Can Go Wrong? Agent Protection – Remote host threatens agent – Agent threatens another agent – Unauthorized third parties threaten agent Host Protection – Incoming agent threatens host – Unauthorized third parties threaten host Network protection – Incoming agent threatens the network

Taxonomy of Attacks Passive Attacks – Eavesdropping – Traffic Analysis Active Attacks – Illegal Access– Replay – Masquerade– Resource Exhaustion – Trojan Horse– Repudiation – Alteration

Security Services Authentication – user, host, code, agent Integrity Confidentiality Authorization Nonrepudiation Auditing

Security Model Principals – Aglet, Context and Server, Network Domain Permissions – File, Network, Window, Context, Aglet Protections Policy and Authority – Aglet owner, Context owner, Network owner