Sunteți pe pagina 1din 16

Mobile agents

EEL 5937 Multi Agent Systems


Lotzi Bölöni

EEL 5937
Mobile agents
• Mobile agents are autonomous programs which move
though a network and maintain their identity
through this move.
• This is a stronger concept than “code mobility”
such as Java applets, or client-side Javascript.
• Many agent systems were implemented with support
for mobility.
– And for many researchers, agents == mobile agents

EEL 5937
Motivation for mobility
(cont’d)
• Mobile agents can provide better support for
mobile clients.
– Reduction of network traffic
– Asynchronous interaction (good in case of intermittent
connection)
– Remote searching and filtering
• Mobile agents facilitate semantic information
retrieval.
– Move one step above simple keyword based search.
• Mobile agents facilitate real-time interaction with
a server
– Eg. space probes, real time control of a machine tool
• Mobile agent based transactions avoid the need to
preserve process state in clients and servers
– Instead, the process state is carried in an agent

EEL 5937
Motivations for mobility
(cont’d)
• Agent based transactions scale better than RPC-
based transactions
• Secure agent-based transactions have lower
overhead than secure RPC.
• Mobile agents allow users to personalize server
behaviour.
• Agents enable semantic routing.

• Not all these arguments are valid.

EEL 5937
Counter arguments and
answers
• Most counter arguments are based on the fact
that
– What can be done with mobile agents can be done with RPC or
– What can be done on the server, you can do it on the client.
• The “software engineering counterargument”:
whereas each individual case can be addressed in
some (ad-hoc) manner without mobile agents, a
mobile agent framework addresses them all of
them at once.

EEL 5937
Mobile code
• != mobile agents
– But, the majority of mobile agent systems imply mobile code
• Transferring code between (heterogeneous)
machines.
• Implies machine independent code.
– Usually, it is implemented with some kind of virtual machine
– But it can be also implemented with adaptation, recompilation
etc.
• Types of mobile code:
– Partially Turing machine complete languages (e.g. SQL, SVG)
– Interpreted programming languages (Perl, Python, Javascript)
– Virtual machine based compiled languages (Java, Telescript)

EEL 5937
Mobile code - applications
• Client-server queries (SQL)
• Client side browser applets:
– Java applets
– Javascript
– ActiveX controls
• Remote code updates:
– Software updates
– Plugins
• Active E-mail
– Confirmations
– Javascript, Visual Basic for Applications
– E-mail viruses and worms
• Mobile agents

EEL 5937
Mobile agents without code
mobility
• Seeing control handoff as mobility
– No code mobility involved.
– Multithreading involves problems.
• Distributed systems as mobile agent systems
• In this approach, mobility is an analysis approach,
not a design principle.

EEL 5937
Strong mobility

EEL 5937
Strong mobility
• Strong mobility assumes that agents can move at
any point during their execution
• They are usually relying on:
– Specially designed programming languages (eg. Telescript).
– Modified virtual machines (eg. NOMADS / AromaVM)

EEL 5937
Custom language: Telescript
• Proprietary language, created by General Magic
around 1994-95
– Highly influential, without being highly successful
• Interpreted language, which runs on a Telescript
engine.
– The company implemented engines running on PDA’s, PC’s etc
• “High Telescript”:
– Object oriented language, inspired by Smalltalk
– Compiled to Low Telescript
• “Low Telescript”
– Postfix syntax for stack based implementation

EEL 5937
Telescript (cont’d)
• The basic network configuration is to run a
Telescript Engine on each node of the network.
• A network of Telescript Engines provides a
homogenous environment on which to build
distributed systems.
• Basic class: Process. Telescript supports
preemptive, prioritized multi-tasking of Process
objects. A Process instance can be thought of as
an object with a life of its own.
• A Place object represents a virtual space in which
other objects can interwork (through local
communication). Each Telescript Engine can support
a number of places.

EEL 5937
Telescript (cont’d)
• An Agent object is a Process object which can migrate
between Places. An agent may move between Places on the
same Engine, or between Places which exist on different
Engines.
– The Telescript notion of a distributed system is a number of distinctly
located places and a number of Agents which move between these Places.
• Places provide meeting locations for Agents. At a Place,
Agents can exchange information and perform computation.
Places also route travelling Agents.
• Persistent Objects --- Telescript Engines implicitly save and
recover object state information.
• The Telescript world is divided into "regions". Each Engine
uses a "regions" database to route migrating Agents. Places
and Agents are identified using "Telenames":
– Telename(Locally-Unique-Name, Region-Name)

EEL 5937
Telescript security
• Agents have "attributes" such as "identify" and
"owning authority" which uniquely identify the
Agent and the entity responsible for it. These
attributes may be used for authentication.
Telescript objects also have a "permit" attribute
which may be used to limit the amount of resources
which they may consume (e.g. a Place may ask an
Agent to pay it 30 "Teleclicks" before granting it
access to some resource).
• A secure "permits" feature is crucial to stop
Agents from creating a crash-limited number of
clones of themselves, exhausting resources, or
other such anti-social behaviour.
– Apparently you can't define a legal Telescript Place which holds
visiting Agents to ransom unless you can circumvent security
features and hack the Interpreter code!)

EEL 5937
Specialized JVM:
NOMADS/Aroma
• NOMADS/Aroma is a Java based agent system
with strong mobility support, developed at Boeing
and University of West Florida.
• The standard Java JVM does not allow explicit
execution state capture, thus we can not implement
hard mobility.
• There are several solutions:
– Modify (patch) the Sun JVM
» Difficulty because of the native thread usage.
– Implement a new JVM
– Use preprocessors and a standard JVM.

EEL 5937
NOMADS
• Is composed of two parts: the agent execution
environment (called Oasis) and the AromaVM. This
provides two key enhancements:
• Strong mobility: the ability to capture and transfer
the full execution state.
• Safe execution: the ability to control the
resources consumed by the agents thereby
facilitating guarantees of quality of service and
protecting against denial of service attacks.
• These features, however come with a performance
penalty.

EEL 5937

S-ar putea să vă placă și