software agents and aglets n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Software Agents and Aglets PowerPoint Presentation
Download Presentation
Software Agents and Aglets

Loading in 2 Seconds...

play fullscreen
1 / 94

Software Agents and Aglets - PowerPoint PPT Presentation


  • 125 Views
  • Uploaded on

Software Agents and Aglets. Kimble Cheron, Professor Steven A. Demurjian, and Mitch Saba Computer Science & Engineering Department The University of Connecticut 191 Auditorium Road, Box U-155 Storrs, CT 06269-3155. steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Software Agents and Aglets' - lilac


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
software agents and aglets
Software Agents and Aglets

Kimble Cheron,

Professor Steven A. Demurjian,

and Mitch Saba

Computer Science & Engineering Department

The University of Connecticut

191 Auditorium Road, Box U-155

Storrs, CT 06269-3155

steve@engr.uconn.edu

http://www.engr.uconn.edu/~steve

(860) 486 - 4818

overview of presentation
Overview of Presentation
  • Introduction
    • Reasons for Agent Creation
    • Defining Agents
    • Researchers Involved in Agent Development
  • Technical Overview
    • Basic Agent Anatomy
    • Agent Implementation (Aglets)
    • Aglet Environment
    • Aglet Methods
  • Distributed Computing
    • Role of Agents in Distributed Computing
    • Future Evolution of Intelligent Agent Entities
  • Conclusions and Future Research
introduction
Introduction
  • Age of Technology
    • Personal PC as Common as Television
    • Personal Tasks Performed Using Computers
      • Postal Operations (Electronic Mail)
      • Banking and Financial Operations (Electronic Banking)
      • Shopping
      • News Retrieval
      • Stock Information Updates
      • Communication
      • Others
reasons for agent creation
Reasons for Agent Creation
  • Majority of Above Tasks Executed Based on Direct Manipulation
    • Nothing Occurs Unless Mouse, Keypad, Touchpad is Used
    • Event-Oriented Interactions with End-Users
  • End-Users
    • Majority are Computer Illiterate
    • Depend on Software to Perform Tasks
    • Not Limited to Personal Computers, Embedded Systems Require Operators
  • The Software Agent is the Key to Providing a Delegated Approach to Direct Manipulation
reasons for agent creation1
Reasons for Agent Creation
  • Potential Reduction of Network Load
    • Movement of Code to Remote Location
    • Voluminous Data Remains Locally Resident
  • Addressing Network Latency Issues
    • Communication of Decision “Instantaneous” and “Simultaneously”
    • Real-Time Notification Issue: Eliminate Delays
  • Encapsulate Protocols
    • Change Protocol, Change Agent
    • Reactive to Evolution
  • Asynchronous, Autonomous, and Heterogeneous
    • Nature of Today’s Computing Platforms
    • Dynamically Reactive to Change
    • Potential for Fault-Tolerance and Robustness
defining agents
Defining Agents
  • Agent Implementation
    • Personal Assistance
    • Networks
    • Databases
    • Operating Systems
    • Other Equipment (Medical Equipment)
  • Agent Functions
    • Find and Filter Information
    • Customize Views of Information
    • Automate Work
    • Delegate Work Back to Computer
perspectives for definition
Perspectives for Definition
  • Two Perspectives for Defining Agent
    • User
    • System
  • User Perspective of an Agent
    • A Software Agent is the Broker for the User
    • Program that Allow User’s to Delegate Work to Them
    • Perform Work for User as Directed
  • System Perspective of an Agent
    • An Agent is a Software Object that is Situated Within a Working Environment and Possesses the Mandatory Agent Properties
agent properties
Agent Properties
  • Mandatory Properties (Can Be Classifications)
    • Reactive:
      • Senses Changes in the Environment and Acts According to Those Changes
    • Autonomous:
      • Autonomously Control Own State/Behavior
      • Has Control Over its Own Actions
    • Goal-driven:
      • Proactive to Specific User Goals
    • Temporarily Continuous:
      • Constantly Executing in Runtime Environment
agent classification
Agent Classification
  • Communicative:
    • Communicate with Other Agents, Systems, and People
  • Learning:
    • An Agent Learns Based on Prior Experience or Behavior
  • Mobile:
    • Able to Transport Itself from One System to Another
  • Flexible:
    • Actions Occur on the Fly, Not Scripted
  • Character:
    • An Agent Has Personality and an Emotional State
stationary vs mobile agents
Stationary vs. Mobile Agents
  • Stationary Agent: Limited to Single Node
  • Definition of Mobile Agent
    • An Application Capable of Migrating Across Network to Accomplish Required Tasks
  • Mobile Agents are Being Used for Diverse Technologies Mentioned in Introduction Slide
    • Agents are Able to Interact with Objects in a Different System
      • Retrieving Stock Quotes From the Internet on a Real Time Basis
      • Implementing Push and Pull Paradigms
      • Electronic Marketplace and Commerce
      • Etc...
a mobile agent travels computer to computer
A Mobile Agent Travels Computer to Computer

Computer

Computer

Agent

Agent

Network

Agent

Computer

researchers involved in agent development
Researchers Involved in Agent Development
  • Known Groups and People Responsible
    • Government Agencies
      • Rock Island Army Arsenal
    • Academic Institutions
      • Carnegie Melon University
      • Massachusetts Institute of Technology
      • Stanford University
      • University of Maryland Baltimore County
    • Computer Industry Companies
      • IBM
      • Microsoft
technical overview
Technical Overview
  • Basic Agent Anatomy
    • An Agent is an Object Which Has Properties Similar to Object Oriented Classes
    • The Agent’s Attributes are Similar to Instance Variables
      • Assist the Agent in Traveling, Communication, and Recognition
    • Each Agent (Stationary/Mobile) has Five Properties
      • State
      • Implementation
      • Interface
      • Identifier
      • Principals
agent properties1
Agent Properties

Principals

Interface

Implementation

State

Identifier

properties state
Properties: State

State

Implementation

Interface

Identifier

Principals

  • Definition (Analogous to Activation Record)
    • Contains All Contents and Values of the Agent’s Runtime State and Object State
  • Agent Traveling
    • State Contains All the Information Required to Resume Execution After Traveling
  • Language Dependencies
    • Implementation Language Determines If an Agent Only Uses its Instance Variables to Resume Execution
    • Saving the Execution State at Runtime is Not Java Compliant
      • Java Agents Require the Object State to Resume Execution
properties implementation
Properties: Implementation

State

Implementation

Interface

Identifier

Principals

  • Definition
    • The Code Used to Execute an Agent on Any Location (Location Independent)
  • Agent Traveling
    • An Agent Can Travel With its Code
    • Code on Demand
      • An Agent Can Retrieve its Code After Reaching its Destination
  • Language Dependencies
    • A Common Language Must Be Used
      • To Allow Agent to Travel and Execute on a Different Host
      • Usually a Platform Independent Scripting Language is Used for Implementation
properties interface
Properties: Interface

State

Implementation

Interface

Identifier

Principals

  • Definition
    • Entity Used for Agent-to-Agent Communication or Agent-to-System Communication
  • Two Styles of Communication Interfaces
    • Allows Others Access to an Agent’s Methods
    • Messaging Interface
      • Allows Agents to Use a Language for Communication
  • Messaging Interface Language
    • Knowledge Query and Manipulation Language (KQML)
      • Provides Point to Point Messaging Between Agents
properties identifier
Properties: Identifier

State

Implementation

Interface

Identifier

Principals

  • Definition
    • Required Entity Used for Recognition and Locating Traveling Agents
  • Each Agent Has its Own Unique Identifier
    • An Identifier is Globally Unique and Immutable
      • Combination of Principals’ Identities and a Serial Number
  • Identifier Functions
    • Used for Directory Services
    • To Refer to a Specific Agent Instance
properties principals
Properties: Principals

State

Implementation

Interface

Identifier

Principals

  • Definition
    • Entity Used by the System to Authenticate Access to an Agent
  • Two Main Principals
    • Manufacturer (Developer of Agent)
      • The Manufacturer is the Principal Responsible for Creating the Agent
    • Owner (User or Agent)
      • Responsible for the Legal and Moral Way in Which the Agent Will Behave (Behavior)
agent environment
Agent Environment
  • Place
    • Basic Environment in Which an Agent Executes
    • Provides the Operating System for the Agent
    • Cannot Execute Agents
    • Conceptually Similar to Runtime Environment, Virtual Memory Management, Activation Rcds.
  • Construction of a Place: Four Concepts
    • Engine
    • Resources
    • Location
    • Principals
engine
Engine

Engine

Resources

Location

Principals

  • Description
    • Supplies the Energy to the Place and the Agent to Function
    • Provides a Link for Places and Agents to Networks and Other Resources Provided by a Host
  • Hierarchical Structure of the Engine
    • Host, Engines, Places, and Agents
    • A Host May Hold Many Engines
    • Engines Can Hold Many Places
    • Places May House Many Agents
  • Places are Given Names Because an Engine May House Several Places
the agent model pyramid
The Agent Model Pyramid

E

A

E

A

E

A

Host

Engines

Places

P

P

P

Aglets

resources
Resources

Engine

Resources

Location

Principals

  • Description
    • Services Provided by the Host
      • Networks
      • Processors and Memory
      • Disk
      • Databases
      • Other Hardware and Software Services
  • Controlled Access to Resources
    • Provided to the Agent by the Engine and Place
location
Location

Engine

Resources

Location

Principals

  • Description
    • Address of the Executing Agent
  • Construction of Location: Combination of
    • The Name of a Place in Which It Executes
    • The Network Address of the Engine in Which the Place Resides
  • Typical Written Location
    • The Port of the Engine With a Place Name Attribute and an Internet Protocol (IP) Address
principals
Principals

Engine

Resources

Location

Principals

  • Two Main Principals
    • Manufacturer
    • Place Master
  • Manufacturer
    • Author (Provider) of the Place
    • Responsible for the Operation of the Place
  • Place Master
    • Responsible for the Creation of the Place Implementation
place and engine
Place and Engine

Resources

Agents

Place

Engine

Host

agent behavior
Agent Behavior
  • Three Agent Events
    • Creation and Disposal
    • Transfer
    • Communication
  • Creation
    • Occurs in a Place
    • Performed by an Agent Residing in the Same Place
    • Performed by an Agent or Non-agent Outside of the Place
agent creation
Agent Creation
  • Three Steps
    • Instantiation and Identifier Assignment
    • Initialization
    • Autonomous Execution
  • Instantiation and Identifier Assignment Step
    • Creates the Object and Executable
      • Similar to the Constructor of an Object, the Class Specifies the Interface and Implementation of the Agent
    • A Place Will Assign the Agent its Identifier.
  • Initialization
    • Initializes using Arguments Provided by Creator
agent creation1
Agent Creation
    • Completion Guarantees the Agent Has Been Correctly Installed in the Place
  • Autonomous Execution
    • The Agent Starts Execution After Installation
    • Executes Independently of Other Agents in the Place
  • Disposal
    • Performed in a Place
    • Accomplished by an Agent Itself, a System, Another Agent in the Place, or an Agent or Non-agent Outside of the Place
agent disposal
Agent Disposal
  • Reasons for Disposal
    • Lifetime Has Expired
    • Security Rules Have Been Violated
    • Not in Use
    • System is Going Offline (Shutdown)
  • Disposal Steps
    • An Agent is Allowed to Complete All Current Tasks
    • Execution of the Agent is Suspended by the Place
agent travel
Agent Travel
  • Definition
    • Agent is Dispatched From its Origin and Received by the Specified Destination
    • Performed by an Agent Itself, Another Agent in the Same Place, or an Agent or Non-agent System Outside of the Place
    • Origin Place and Destination Manage Travel
  • Travel Management
    • Origin Place Contacts Destination Place
      • Return Failure Indication to Agent If No Contact
    • Destination Place Response
      • Fulfill Travel Request
      • Return Failure Indication to Origin
agent transfer
Agent Transfer

Sender

Receiver

SuspendExecution

Resume Execution

Serialize Agent

Deserialize Agent

Encode Data

Decode Data

Transfer Data

Receive Data

Network

dispatching an agent
Dispatching an Agent
  • Process
    • Destination Must Be Known Prior to Departure
    • Agent Notifies the Destination Agent System It Would Like to Depart
    • An API is Used for Communication for Departure
    • Destination Agent System (Engine) Process Request for Departure
  • Destination Agent System (Engine) Response
    • Suspend the Agent
    • Serialize the Agent’s Data
    • Determine the Transport Protocol for the Agent
    • Transport the Agent
receiving an agent
Receiving an Agent
  • Process
    • Receiving Engine Determines to Accept or Reject and Agent From the Sending Host
    • Sender Must Authenticate Itself to the Receiving Engine
  • Receiving Engine Tasks
    • Receive the Agent
    • Decode its Data Information
    • Deserialize the Agent
      • Sets New Instantiation for the Agent
    • Resume Agent Execution
agent class transfer
Agent Class Transfer
  • Three Methods: Dependent upon the Location of the Class
    • Class at Destination
    • Class at Origin
    • Code-on-Demand
  • Class at Destination
    • Contained in the Engine’s Class Cache or the Local File System
      • No Need to Transfer Class
    • Transferred Agent Must Contain the Full Class Name and Discriminator
      • May Have Information that Describes the Location of the Class Definition
agent class transfer methods
Agent Class Transfer Methods
  • Class at Origin
    • Transported With the Agent’s State to the Destination Engine
    • State May Transferred More Than Once
      • Can Lead to Increased Network Traffic and Wasted Network Bandwidth
  • Code-on-Demand
    • Class is Made Available by a Server
    • Destination Engine Receives Class on a Code-on-Demand Basis
    • Destination Address Must Perform an Additional Network Connection
  • Agent Can Carry Classes on Transfer or by a Per-Request Basis
agent class transfer1
Agent Class Transfer

Server

(c) Class at Server

Class Code

Origin

Destination

Agent

Agent

Class Code

Class Code

(b) Class at Origin

(a) Class at destination

What Other Information Must be Available at Destination?

communication
Communication
  • Properties of Messaging Communication
    • Point-to-Point Messaging
      • One-to-One Type Messaging
    • Broadcast Messaging
      • One-to-Many Type Messaging, Useful in Multi-agent Systems
    • Intra-Place Communication
      • Communication With an Agent in the Same Place
    • Inter-Place and Inter-Engine
      • Communication With an Agent in a Different Place
    • Agents Can Send Messages to Other Agents
    • Agents Can Invoke the Methods of Other Agents If Authorized
interagent communication
Interagent Communication
  • Three Inter-Agent Communication Schemes
    • Now-Type Messaging
    • Future-Type Messaging
    • One-way-Type Messaging
  • Intra-Place, Inter-Place, and Inter-Engine Communication
  • Agent Messaging Paradigms
    • Peer-to-Peer: Dedicated Communication
    • Broadcast: Multi-Agent Environment
now type messaging
Now-Type Messaging

Sender

Receiver

  • Most Popular
  • Most Commonly Used
  • Synchronous
    • Blocks Further Execution Until Receiver Has Handled and Acknowledged the Message
    • Send and Wait Paradigm for Message Passing
    • Classic and Easy to Model Approach
future type messaging
Future-Type Messaging

Sender

Receiver

  • Asynchronous
    • No Blocking of Current Execution
  • Sender Has a Future (Handle)
    • Used for Obtaining Result
  • Flexible
    • Sender does not have to Wait for Receiver’s Response
  • Useful for Multi-Agent Communication
one way type messaging
One-Way-Type Messaging

Sender

Receiver

  • Asynchronous
    • No Blocking of Current Execution
  • Useful for Message Sending Agent that does not Expect Replies from Message Receiving Agent
    • Sender Does Not Retain a Handle
    • Receiver Does Not Acknowledge Message
  • Termed Fire-and-Forget: May be Non-Reliable
agent implementation aglets
Agent Implementation (Aglets)
  • Origins
    • Named for the Combination of the Two Terms of Agent and Applet
  • Definitions
    • Applet: A “Lightweight Application”
    • “Aglet”: A “Lightweight Agent”
  • Differences
    • Aglet
      • Carries It’s State
      • Movement From One Host to the Next
    • Applet
      • Only Carries It’s Class Files Along
      • Movement Based on a Server Client Network
implementation language
Implementation Language
  • Implementation Language
    • Java Was Chosen Due to the Benefits its Provides Towards Agent Construction
    • Movement to Java Worldwide
  • Benefits of Java
    • Platform Independence
    • Secure Execution
    • Dynamic Class Loading
    • Multithread Programming
    • Object Serialization
    • Reflection
agent characteristics of java benefits
Agent Characteristics of Java: Benefits
  • Platform Independent
    • Allows an Agent to Travel and Execute on Any Type of Computer
  • Secure Execution
    • Eliminates the Option of Programs Accessing Private Objects that They Do Not Have Authorization to Use
    • The Environment Makes its Safe to Host an Unknown Agent
  • Dynamic Class Loading
    • Allows Agents to Execute Independently
    • Agents Do Not Have to Be Created During the Main Program Execution
agent characteristics of java benefits1
Agent Characteristics of Java: Benefits
  • Multithread Programming
    • Agents Execute Independently of other Agents
    • Agents can Communicate with Other Agents
  • Object Serialization
    • During Transportation the Agent’s Data (and Code) is Serialized and Then Deserialize
  • Reflection
    • Assists Agents in Finding Out Information About Other Agents and Themselves
    • Types of Object Information
      • Methods, Constructors of Loaded Classes, and Fields
      • Meta-Data on Active Classes that can be Queried
agent characteristics of java drawbacks
Agent Characteristics of Java: Drawbacks
  • Inadequate Support for Resource Control
    • Denial of Service
      • Agent Will Loop and Waste Processor Cycles or Memory Resources
  • No Protection of References
    • Objects are Allowed Access to the Public Methods of a Java Object
    • A Proxy Provides Protection of References and Location Transparency
      • Object Inserted Between Caller and Callee
drawbacks
Drawbacks
  • No Object Ownership of References
    • An Agent’s Execution Thread May Be Deleted
    • An Agent Object Can Not Be Voided
  • No Support for Preservation and Resumption of Execution State
    • Java Does Not Allow Retrieval of the Full Execution State of an Object
    • Agent Relies on Internal Attribute Values and External Events to Direct its Behavior
aglet environment
Aglet Environment
  • IBM Aglets Workbench
    • Assists in Bringing Mobile Agents to Life
    • Implemented in Java
  • IBM Aglets Workbench Operation
    • Based on the Java Programming Language System
    • Aglets Framework
      • Provides the Mobile-agent-specific Components of the Workbench
    • Introduces the Notion of an Aglet
      • A Mobile (Agile) Agent Written in Java and Named After its Framework Base Class
aglet api
Aglet API
  • Four Basic Elements
    • Aglet
    • Proxy
    • Context
    • Identifier
  • Aglet
    • Mobile Agent that Moves Across the Network
    • Responds to Messages
    • Runs on its Own Thread of Execution
  • Proxy
    • Shield that Protects the Aglet From Direct Access to its Methods
    • Can Have Remote Access to the Aglet (Hides Aglet’s Real Location)
aglet api elements
Aglet API: Elements
  • Context
    • Basically the Same As a Place
    • Houses the Engines
      • Engines House the Aglets
    • Addressed in the Same Manner As a Place
  • Identifier
    • Element of the Aglet
    • Each Aglet Has It’s Own Unique Identifier
    • Required Entity Used for Recognition and Locating Traveling Agents
relationship between aglet and proxy
Relationship between Aglet and Proxy

Proxy

Aglet

Interaction

Clients

  • Proxy Represents the Aglet
  • Shields Public Methods for Potential Misuse
  • Can Hide the “Actual” Location of Aglet
  • Proxy and Aglet on Different Computing Nodes
relationship between host server process engine and contexts
Relationship between Host, Server Process(Engine), and Contexts

Host

Context

Context

Context

Server Process (Engine)

Network

aglet operations
Aglet: Operations
  • Six Basic Operations
    • Creation
    • Cloning
    • Dispatching
    • Retraction
    • Activation and Deactivation
    • Disposal
  • Creation
    • Initializes a New Aglet
    • Assigns Aglet an Identifier
basic operations
Basic Operations
  • Cloning
    • Produce an Identical Copy of an Aglet (itself)
    • Differences Between Clone and Original Aglet
      • Identifier
      • Place of Execution
  • Dispatching
    • Aglet is Transported (Pushed) From One Context to Another
  • Retraction
    • Concept that Returns an Aglet Back to its Original Context
    • Original Context Pulls Back the Aglet From the Current Context
basic operations1
Basic Operations
  • Deactivation and Activation
    • Deactivation Must Occur Before Activation
    • Deactivation Halts the Execution of an Aglet
    • Activation Starts Execution of an Aglet
    • Activation Must Occur to Restore the Aglet
  • Disposal
    • Stops Execution of an Aglet
    • Removes an Aglet From its Current Context
  • Classification of Six Basic Aglet Operations
    • Classified as the Life Cycle of an Aglet
  • Observation of Six Basic Aglet Operations
    • Context Functions Just Like a Place
agent life cycle model
Agent Life-Cycle Model

Dispose

Context A

Context B

Clone

Dispatch

Aglet

Aglet

Retract

Create

Deactivate

Activate

Class

File

Disk

Storage

aglet methods
Aglet Methods
  • Aglet Programming Model
    • Similar to the Java Event Model
    • Event Based
    • Listeners Used to Perform Event Actions
  • Three Event Model Listeners
    • Clone Listener
    • Mobility Listener
    • Persistence Listener
  • Actions
    • Listen for the Event They are Named After
    • Listeners Can Be Customized to Perform Specific Actions When the Listener Event Occurs
relationship between aglet and its listeners
Relationship between Aglet and its Listeners

Aglet

Clone Events

CloneListener

Mobility Events

MobilityListener

Persistence Events

PersistenceListener

event model listeners
Event Model Listeners
  • Clone Listener
    • Listens for Cloning Events
    • Actions Can Be Customized to Occur Before, During, or After the Cloning
  • Mobility Listener
    • Listens for Mobility Events
    • Actions Can Be Customized to Occur When an Aglet is About to Be Dispatched, Retracted, or Arrives in a New Context
  • Persistence Listener
    • Listens for Persistence Events
    • Actions Can Be Customized to Occur When an Aglet is About to Be Deactivated or Has Been Activated
aglet api classes and interfaces
Aglet API: Classes and Interfaces
  • Aglet API
    • Simple and Flexible
    • Represents Lightweight Pragmatic Approach to Mobile Agents
  • Java Classes
    • Aglet
    • Message
    • Futurereply
    • Agletid
    • Agletproxy
  • Java Interfaces
    • Agletproxy
    • Agletcontext
aglet api classes
Aglet API: Classes
  • Aglet Class
    • Contains All Methods Needed to Perform the Basic Aglet Operations
    • Basis for Building All Aglets
    • Contains All the Elements of the Aglet
  • Aglet Creation
    • Create a Customized Aglet

import com.ibm.aglet.*;

public class MyFirstAglet extends Aglet{

//Put aglet’s methods here

}

aglet and message class
Aglet and Message Class
  • Aglet Class Example: The Dispatch Method
    • Dispatches an Aglet to a Remote Context
    • The Method Call Contains the URL of the Remote Contextdispatch(new URL(atp://remote.host.com/context”));
  • Message Class
    • Communication of Aglets is Performed by Exchanging Message Objects
    • Agletproxy Class is Responsible for Actually Sending and Receiving the Messages
  • Message Creation
    • Field ‘Type’ Set When Message Created
    • Second Field of Message Constructor is Optional
message class
Message Class
  • Code

Message myName = new Message(“my name”, “Lois”);

or

Message yourName = new Message(“Steve”);

  • Message Class Example: The handleMessage Method
    • Returns True if Message is Handled

public boolean handleMessage(Message msg){

if(msg.sameKind(“hello”)){

doHello(); //respond to ‘hello’ message

return true; //yes I handled message

}

else

return false; //not handled message

}

agletproxy and future reply class
AgletProxy and Future Reply Class
  • Message Objects are Sent Using the Agletproxy Class Methods
    • Object sendMessage(Message msg)
    • FutureReply sendFutureMessage(Message msg)
    • void sendOnewayMessage(Message msg)
  • Code Example

proxy.sendMessage(myName);

String name = (String)proxy.sendMessage(yourName);

  • FutureReply Class
    • Evaluates Wether a Reply will Be Given to a Message
    • An Aglet Can Perform Another Task While Waiting for the Reply
future reply class
Future Reply Class
  • Future Reply Objects are Retrieved Using the Agletproxy Class Method
    • sendFutureMessage(msg)
  • Code Example
    • Sender of Message Can Perform Another Task (doPeriodicWork()) While Waiting for Reply

FutureReply future = proxy.sendFutureMessage(msg);

while (!future.isAvailable()){

doPeriodicWork();

}

Object reply = future.getReply();

agletid class
AgletID Class
  • AgletID Class
    • Represents the Identifier of the Aglet
    • The Identifier is Unique to Each Aglet
    • The Identifier Object Hides the Implementation Specific Representation of the Aglet Identity
  • Code Example
    • Identifier can be Retrieved from the Aglet and its Proxy

AgletID aid = proxy.getAgletID();

    • Query the Context to Retrieve Aglet with Identity aid (must have the Identifieraidand Context)

proxy = context.getAgletProxy(aid);

aglet api interfaces
Aglet API: Interfaces
  • Agletproxy Interface
    • The Handle of the Aglet
    • Provides the Method of Communication Between Aglets
  • Aglet Handle Design Benefits
    • Used by Another Aglet that is Attempting to Communicate With that Aglet
    • Provides the Aglet With Protection From Non-authorized Access
    • Can Provide a Remote Location for the Aglet
agletproxy and agletcontext
AgletProxy and AgletContext
  • Retrieval and Setting Methods of Proxies
    • Aglet Can Get its Own Proxy

Aglet.getProxy();

    • Retrieve an Enumeration of Proxies

AgletContext.getAgletProxies();

    • Get an Aglet Proxy for a Given Identifier

text.getAgletProxy();

    • Place AgletProxy Object into Context Property

AgletContext.setProperty();

  • Aglet Context
    • Execution Environment for Aglets
    • Provides Actual Entity of the Place
    • Houses the Aglet
    • Aglet is Created, Sleeps, & Dies in the Context
agletcontext
AgletContext
  • Agletcontext Interface
    • An Aglet Will Live in the Context
    • Get Information About Environment
    • Send Messages to Environment
    • Maintaining and Managing Running Aglets in an Environment Where Host System is Secure Against Malicious Aglets
  • Agletcontext Interface Methods
    • Aglet Class can Gain Access to Current Context

Context = Getagletcontext();

    • Aglet can Create New Aglets (Must Have Access to Context)

Context.Createaglet(…);

agletcontext1
AgletContext
    • Retract (Pull) Remotely Located Aglets Into Current Context

Context.Retractaglet(remotecontexturl, Agletid);

    • Retrieve a List of Proxies of its Fellow Aglets in the Same Context

Proxies = Context.Getagletproxies();

  • There are Numerous Methods for the Interfaces
    • Listed Above is an Ala Carte Example of What the API Can Perform
agletcontext2
AgletContext
  • Aglet Example: Remote File Update
    • Premise: Large Multiple Remote Files that Must be Updated by Word Replacement
    • One Solution: Move Files to Central Server, Perform Update, and Move Files Back
    • Another Solution: An Aglet that Updates Files by Replacing All Occurrences of One Specified Word in the Files With Another Specified Word
    • Distributes the Load of Updates to Multiple Servers
    • We’re Moving “Code” Rather Than Files
multiple aglets updating files in parallel
Multiple Aglets Updating Files in Parallel

Host

Host

Host

Aglet

Aglet

Aglet

Aglet

Host (Updating)

F

F

F

F

F

F

update file aglet
Update File Aglet

Import com.ibm.aglet.*;

import com.ibm.aglet.event.*;

import java.net.*;

import java.io.*;

public class UpdateFile extends Aglet{

URL destination = null;

File dir = null;

String from = null;

String to = null;

public void onCreation(Object args){

destination = (URL)((Object[])args)[0];

dir = (File)((Object[])args)[1];

from = (String)((Object[])args)[2];

to = (String)((Object[])args)[3];

addMobilityListener(){

new MobilityAdapter(){

update file aglet1
Update File Aglet

Public void onArrival(MobilityEvent e){

replace(args.file,args.from,args.to);

dispose(); }

}

}

try{

dispatch(args.destination);

}catch (Exception e){

System.out.println(“Failed to dispatch.”);

}

}

void replace(File, file, String, from, Sting to){

//Open ‘file’ and replace ‘from’ with ‘to’

}

distributed computing
Distributed Computing
  • Role of Agents in Distributed Computing
    • Range From Smart Matter to Electronic Email
  • Possible Areas in Distributed Computing Where Agents Would Be Useful
    • Advertising
    • Air-Traffic Control
    • Business Process Re-engineering
    • Command and Control
    • Data Mining
    • Digital Libraries
    • Electronic Commerce
    • Entertainment
    • E-mail Filtering
role of agents areas of interest
Role of Agents: Areas of Interest
  • Education
  • Information Retrieval/Management
  • News Retrieval
  • Network Management
  • Personal Digital Assistants (PDAS)
  • Secure Brokering
  • Smart Matter
  • Smart Databases
  • Scheduling/Diary Management
  • Workflow Management
  • Numerous Other Areas that are Being Researched and Developed
role of agents abilities
Role of Agents: Abilities
  • Why Agents?
    • Abilities are Productive for Increasing the Quality of Distributed Computing
  • Agent Abilities
    • Collect Data From Numerous Places
    • Searching and Filtering Information
    • Monitoring
    • Target Information Dissemination
    • Agent-to-Agent Negotiation
    • Perform Parallel Computations
    • Barter
    • Enhance Telecommunication Network Services
    • Controller for Smart Matter
    • Enhance Entertainment
data collection search and monitor
Data Collection, Search, and Monitor
  • Collect Data From Numerous Places
    • An Agent on a Network Could Retrieve Data From Numerous Computer Stations
    • One Application that May Be Useful Would Be a Software Registration Agent
  • Searching and Filtering Information
    • Discards Useless Information
    • Saves an Immense Amount of Time
  • Monitoring
    • Monitor Certain Information Specified by User
    • Retrieve Information Specified by User Requests
real time communication computation and bartering
Real Time, Communication, Computation, and Bartering
  • Target Information Dissemination
    • Real Time Information Being Retrieved
      • News, Stock Quotes, Advertisements, and Software Updates for Venders
    • Information Specified by User
  • Negotiate Between One Another (Agent-to-agent)
    • Agents Communicate With Other Agents
  • Perform Parallel Computations
    • Agents Communicate With One Another
    • Agents Share Information
  • Barter
    • Agents Assume the Place of the User
    • Agent Negotiates the Deal
telecommunications controller and entertainment
Telecommunications, Controller, and Entertainment
  • Enhance Telecommunication Network Services
    • Store Information of Services
    • Provide User With Authorized Services
  • Controller for Smart Matter
    • Monitor Equipment
    • Inform User of State of Equipment
  • Enhance Entertainment
    • Agent-to-Agent Communication Between Players
    • User Programmed Strategic Agent
  • The Information Above is Not Conclusive of All the Different Abilities of Mobile Agents (Endless)
future evolution of intelligent agent entities
Future Evolution of Intelligent Agent Entities
  • Software Registration Agent
  • Search and Filter Engines
  • Monitor/Supply Info. on Real Time Basis
  • Real Time Advertisement
  • User Filter for Unwanted Information
  • Real Time Work Environment Update
  • Pleasure/business Travel Agent
  • Parallel Processing
  • Network Service Administrator
  • Monitor Physical Aspects of Embedded Systems
  • Computer Gaming Pawn
possibilities of intelligent agent entities
Possibilities of Intelligent Agent Entities
  • List of Future Evolution of Intelligent Agent Entities Inconclusive
    • With the Advancement of Technology and a Need for a Faster Result, the Possibilities of Implementations of Mobile Agents are Vast
  • Software Registration Agent
    • Retrieve Registration Numbers for Certain Software Applications
    • Data Would Be Used to Determine If a Computer System Had Unique Software Applications
search filter and monitor
Search, Filter, and Monitor
  • Search and Filter Engines
    • Email Applications:
      • A User Could Filter Mail Based on a Certain Keyword and Not Receive Junk Mail
    • Provide a More Extensive Search for a User
    • Use Numerous Resources
    • Return Specific Items for the User
    • Search or Filter While the User is Performing Another Activity
real time possibilities
Real Time Possibilities
  • Monitor and Supply Information on Real Time Basis
    • Provide News on a Real Time Basis
    • Monitor News Based on Certain Information
    • Retrieve the News that the User Requests
    • Used for Stocks, Shopping (Checking If an Item Goes on Sale), and Even Weather
    • The Amount of Possibilities is Endless
  • Real Time Advertisement
    • Advertisers Find a Way to Capitalize on Every New Software Invention Available
      • Companies May Send Advertisements Along With the Information Being Received Like News
real time possibilities1
Real Time Possibilities
  • User Filter for Unwanted Information
    • User May Want to Filter Out Certain Information Being Received
    • Agent Application Required to Filter Out Unwanted Advertisements
  • Real Time Work Environment Update
    • Schedule a Meeting
      • Each of the Employee’s Agents Would Work Together to Schedule the Meeting for all Employees
    • Update Team Members on New Developments of a Project
      • Each Agent Would Update the Other Agents and Then Return the Information to the Worker
work and travel
Work and Travel
  • Pleasure/Business Travel Agent
    • User’s Own Personal Shopper, Broker, or Travel Agent
    • Electronic Commerce
      • Shop/Haggle for a User on Any Type of Goods
    • Search Criteria Given by a User
      • Where to Go on Vacation and What Price for Airline Tickets
      • What Stocks to Buy or Sell
    • User Tells Agent to Make a Deal or Not
      • Once Agent Retrieves All the Information.
    • Agent Could then Finalize the Deal for the User
      • Vacation Reservations are made, or Merchandise is Purchased
network services and monitoring
Network Services and Monitoring
  • Network Service Administrator
    • Agent Responsible for the User Configuration
    • Agents Supplies the Host With User Privileges to Services
    • Could Be Used for Cable Systems or Network Providers
  • Monitor of Physical Aspects of Embedded Systems
    • Monitor Temperature, Speed, or Other Physical Characteristics
    • Inform User of a Malfunction
    • Assume the Position of Smart Matter
    • Provide a More Efficient Way to Monitor Physical Aspects of Embedded Systems
computer gaming
Computer Gaming
  • Computer Gaming Pawn
    • Perform All the Battling for the User
    • User Could Program the Agent to Function Accordingly
      • Strategic Moves
    • Numerous Network Game Possibilities
      • Gambling, Role Playing, and Strategy Games
    • Agent-to-Agent Communication Used to Provide Enhance Online Gaming Possibilities
conclusion and future
Conclusion and Future
  • Conclusion
    • Agent Concepts Barely Five Years
    • Agents Seem to be the Up and Coming Technology of the Future
    • The Possibilities and Capabilities of Agents are Endless
      • The Mobile Agent Alone Has Not Been Covered in Research Extensively
    • Aglets Have a Chance of Being the Building Blocks of Front Running Technology
      • As Long As Java Proves to Be a Secure Language
    • Standardization Issues Must be Addressed for Different Agent Systems to Interact!
conclusion and future1
Conclusion and Future
  • Future Uses
    • Everyday People are Finding New Uses for Agents
    • Provide Users With Assistance
    • Provide Users With More Free Time
    • Agents Most Likely, Will Become an Everyday Occurrence in Applications
    • Assist Users and Do Work on Their Behalf
  • are Agents the Future of Today’s and Tomorrow’s Applications?
future research
Future Research
  • Another Facet of Agents is the Intelligent Agent
    • Mobile Agents are Used for Intelligent Agents
    • Researchers are Trying to Implement an Agent With Artificial Intelligence
  • Current Developing Applications
    • IBM is Developing a Memory Agent Application
      • Used to Detect Breast Cancer
    • IBM Claims the Agent Learns Based on Previous Input
    • Uses a Learning Algorithm to Predict the Numbers for Detection
ibm research products
IBM Research Products
  • Other IBM Products Using the Memory Agent
    • Memoryagent Knowledge Capture
      • Learns What People Know
      • Builds a Knowledge Base Incrementally
      • Operates While People Do Their Normal Jobs
    • Memoryagent Virtual Consultation
      • Allows People to Consult the Knowledge of Others
      • Eliminates Need for Speaking to Them in Person
references
References

[1]: Danny B. Lange and Mitsuru Oshima, “Programming and Deploying Java Mobile Agents with Aglets”, Addison Wesley Longman, Reading MA, 1998.

[2]: http://www.javaworld.com/javaworld/jw-04-1997/jw-04-agents.html

[3]: http://www.msci.memphis.edu/~franklin/AgentProg.html

[4]: http://www.javaworld.com/javaworld/jw-04-1997/jw-04-hood.html

[5]: http://www.trl.ibm.co.jp/aglets/JAAPI-whitepaper.html

[6]: http://luckyspc.lboro.ac.uk/Docs/Papers/Mesela97.html

[7]: http://www.javaworld.com/javaworld/jw-05-1997/jw-05-hood.html

[8]: http://www.trl.ibm.co.jp/aglets/whitepaper.htm

[9]: http://www.networking.ibm.com/iag/iaghome.html#new