870 likes | 977 Views
Mobile Software Agents. April 18, 2001. Introduction: History. research on agents was originated by J. McCarthy in the mid-1970’s the term agent was coined by O.G. Selfridge. Introduction: According to some. Agent
E N D
Mobile Software Agents April 18, 2001
Introduction: History • research on agents was originated by J. McCarthy in the mid-1970’s • the term agent was coined by O.G. Selfridge
Introduction: According to some... Agent is an intelligent robot, or “humanoid”, that has emotions, feelings and perceptions, and therefore is concerned with cognitive science, speech acts, etc.
Introduction: contents of this talk • What are they? What can they do? • Main characteristics • Basic definitions • Agents and DOOP • Mobile agent languages • Reasoning and learning techniques
Agents - what are they? a tool (program) to perform client-server computing by transmitting running programs between clients and servers; (White 1994) server
Client-Server vs. Mobile Agents Client Client Client Client Agent Agent Agent Server Server Server Server Traditional Mobile Agent-Based
Agents - what can they do? • find and filter information • customize views of information (e.g. email) • automate work (respond to events, such as a new version)
Agents - what can they do? • make recommendations and perform corporate tasks; e.g. scheduling of meetings • execute diagnostics, e.g. in networks • rapid (re)deployment of applications • active network load balancing
Agents - where are they used? • distributed OO • adaptive learning systems • AI, expert systems, genetic algorithms • electronic commerce • collaborative environment • mobile (nomadic) computing
Agents - main characteristics • autonomous execution (life); have control over their own actions and may operate without the direct intervention of humans • intelligent (perform domain oriented reasoning)
Agents - main characteristics • perceive their environment • adaptive (they learn) • mobile (they move) • persistent (they have their own idea as to how to accomplish a task)
Agents - main characteristics • goal oriented (they realize a set of goals) • reactive (or reflexive); they perceive environment and timely and accurately respond to changes that occur in it • active, or proactive: act to accomplish goals (take initiative not only respond to the environment)
Intelligent Agents • An intelligent agent has some artificial intelligence; for example based on a set of facts and inference rules (ES) • learning agents are adaptive; they can learn themselves about a subject in question by statistically matching subjects of interest with particular people
Basic Definitions • An agent system can create, interpret, execute, transfer and terminate agents • A host can contain several agent systems; each is uniquely identified by its name and address.
Basic Definitions • Both, an agent and an agent system have an authority; a person or organization for whom they act • An agent executes in a context, called the place; there may be one or more places within an agent system
Basic Definitions • agents have locations (names of their current places) • agents have names (the agent’s authority and identity; a unique value)
Basic Definitions There are two kinds of agents: • stationary agent is permanently attached to a place; often resource managers, server programs or search engines • mobile agent can move from one place to another
Agents and DOOP: DOOP • distribute applications use a number of network nodes, rather than a single node • communicate; for example by • messaging (asynchronous) MPI (Message Passing Interface) • remote procedure call (RPC), Remote Method Invocation (RMI) (synchronous)
Agents and DOOP: Efficiency Which one is better, • to send data to the program • to send a program to the source of data (move the code closer to data)
Client-Server vs. Mobile Agents Client Client Client Client Agent Agent Agent Server Server Server Server Traditional Mobile Agent-Based
Agents and DOOP: Robustness Agents are better in their ability to recover from server breakdowns or unavailability (disconnected operations)
Agents and DOOP: Flexibility • Mobile agents are particularly useful for rapid deployment of applications and dynamic updates of software; a code server can provide required code (this is also called code on demand). • Agents can be used for dynamic extensions of server services.
Agents and DOOP: Design Designing a client/server architecture requires making all decisions about the communication between the server(s) and the client(s). These decisions are tightly coupled with the underlying problem of specific design and are very difficult or even impossible to change.
Mobile Agent Languages: Definitions • An executing unit, EU is a single process (or thread) image of execution. • EU is always considered in the context of a place, which contains components; either EUs, or resources, such as files. • A MAL is a language designed for distributed systems, which supports EUs migrating between various places.
Mobile Agent Languages: Definitions • An EU consists of • a static code segment • a program state: • data space containing accessible resources • execution statecontaining system information such as program counter and return address. • The EU has a distributed state if its data space exists in more than one place.
Mobile Agent Languages: Definitions • For an agent to be moved, first it has to be suspended. An entry point is a point where execution of a suspended agent is resumed • Two kinds of resumption: • standard resumption (after “go”) • itinerary; one or more entry points may be explicitly specified.
Mobile Agent Languages: Definitions • Strong mobility means that the entire code and execution state of EUs can be moved • Strong mobility combined with standard resumption == strong MAL (implies that it must be possible to save the state of the execution, and later, to restore this state)
Mobile Agent Languages: Definitions • Strong MALs: • Java with a modified JVM • Weak MALs: • Aglets
Mobile Agent Languages: Dynamic Linking • Name resolution must be able to bind names to both local and remote entities • remote code dynamic linking: the code downloaded from a remote site and linked with an EU • local resource dynamic linking:arriving EU links with resources available in this place; e.g. link with libraries.
Mobile Agent Languages: Dynamic Linking in Java • the standard class loader provides local resource linking and the user defined class loader can support remote code linking • The programmer has a choice of • fully resolving the class, i.e. load the code closure • partially resolving the class, i.e. postpone resolving dependent classes until later time.
Mobile Agent Languages: Dynamic Linking in MALs • library site provides precompiled code that can be picked up by an agent to use at other sites • we consider three kinds of dynamic linking: • Local only dynamic linking: All the bindings are voided when a program moves.
Mobile Agent Languages: Dynamic Linking in MALs three kinds of dynamic linking: • Code with a reference (sticky): A binding is retained as long as there is at least one reference; otherwise it is garbage-collected. • User-specified dynamic links: Gives the programmer complete control over linking.
Mobile Agent Languages: Types ofCommunication • agent to server (host); this is typically a client/ server type of interaction (e.g. based on RPC) • agent to agent; this a peer-to-peer type of interaction and could be supported by messaging • agent to group; this is a group communication (broadcasting) • user to agent interaction; this a standard human-computer interaction, HCI.
Agent Languages: • Java • Knowledge Query and Manipulation Language (KQML): • is designed to support interaction among intelligent software agents. • agent’s messages, composed in a language of its own choice, wrapped inside a KQML message.
Agent Languages:(cont.) • Agent Process Interaction Language (April): is used for building agent applications that supports: • multitasking, • network transparent message passing, • symbolic processing, and • interface to other programming languages such as "C". April is an object based language.
Agent Languages:(cont.) • Mobile Agent System Interoperability Facility (MASIF) Object Management Group (OMG) • a milestone on the road toward enabling location transparent interactions between static and mobile objects/agents. • to achieve interoperability between different mobile agent platforms without enforcing radical platform modifications.
Agent Languages:(cont.) • Langage d'Agents Logiciel Objet (LALO): • is used for developing intelligent multi-agent systems using Agent Oriented Programming (AOP). • communities of agents interact by exchanging information • sending specific requests, offering services, accepting or refusing tasks, competing with each other for a task to be accomplished or co-operating with each other.
Reasoning and Learning Techniques: • Rule-Based Reasoning • Knowledge-Based Reasoning • Simple Statistical Analysis • Fuzzy Agents • Neural Networks • Evolutionary Computing
Security:Protection In general, we need to: • protect agent hosts from agents • agents from agent hosts • one agent from another • one agent host from another • a group of hosts • the communication between agent hosts.
Criticism Sheinderman: • “There is a growing danger that agents will be a deception and an empty promise.” • “… machines are not people, nor can they ever become so ...” • “… For me, computers have no more intelligence that a wooden pencil ...”
Questions? THANK YOU!