Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Mobile Agents with Aglets Wolfgang Schreiner

Similar presentations

Presentation on theme: "Java Mobile Agents with Aglets Wolfgang Schreiner"— Presentation transcript:

1 Java Mobile Agents with Aglets Wolfgang Schreiner

2 Chapter 1 – Introduction to Mobile Agents

3 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

4 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

5 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

6 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

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

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

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

10 Chapter 2 – Elements of a Mobile Agent System

11 Agent...

12 ... and Place

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

14 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

15 Communication

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

17 Chapter 3 – Mobile Agents with Java

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

19 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

20 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

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

22 Chapter 4 – Anatomy of an Aglet

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

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

25 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);

26 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);

27 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);

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

29 Chapter 5 – Aglet Context

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

31 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

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

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

34 Chapter 6 – Aglet Messaging

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

36 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);

37 Getting the Reply

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

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

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

41 Chapter 7 – Aglet Collaboration

42 Aglet Proxy Cloning Disposal Dispatching Deactivation and Activation Aglet Information

43 Controlling an Aglet

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

45 Aglets in Parallel Execution

46 Chapter 8 – Agent Design Patterns

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

48 Chapter 9 – Inside Aglets

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

50 Aglet Object Structure

51 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

52 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

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

54 Chapter 10 – Aglet Security

55 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

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

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

58 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

Download ppt "Java Mobile Agents with Aglets Wolfgang Schreiner"

Similar presentations

Ads by Google