Title: Chapter 2 From ClientServer to Mobile Agents
1Chapter 2From Client-Server to Mobile Agents
22.1 A First Look at Mobile Agents
- The idea of mobile agents from two sides
- Software agents
- As a concept developed in the area of artificial
intelligence in the mid-1970s. - As having some mandatory features, which do not
include mobility. - Mobile agents
- From the viewpoint of software engineering and
distributed systems - To be considered another design paradigm for a
special type of distributed systems - Emphasis on research of the consequences of the
mobility of codes
32.1 A First Look at Mobile Agents
- The Artificial Intelligence Point of View
- The word agent derives from the Latin word for
actor , - Meaning a person who acts on behalf of another
- A software agent
- Software entity that continuously performs tasks
given by a user within a particular restricted
environment. - Certain minimal featrues to qualify as an agent
- Antonomy
- Social behavior
- Reactivity
- Procativity
- Mobility is added to the definitions of software
agents
Mobile software agents are computer programs that
acts as representatives in the global network of
computer systems. The agent knows its owner,
knows his or her preferences, and learns by
communicating with its owner. The user delegate
tasks to the agent, which is able to search the
network efficiently by moving to the service or
information provider. Mobile agents support
nomadic users because the agent can work
asynchronously while the users is
offline. Finally, the agent reports results of
its work to the user through different
communication channels such as electonic mails,
Web sites, pagers, or mobile phones.
42.1 A First Look at Mobile Agents
- The Distributed Systems Point of View
- A definition that draws more attention on the
technical aspects of agent mobility - Mobile agents refer to self-contained and
identifiable computer programs, bundled with
their code, data, and execution state, that can
move within a heterogeneous network of computer
systems. They can suspend their execution on an
arbitrary point and trasnport thenselves to
another computer system. During this migration
the agent is transmitted completely, that is, as
a set of code, data, and execution state. At the
destination computer system, an agents execution
is resumed at exactly the point where it was
suspended before. - Can be considered an additional design paradigm
in the area of distributed programming and a
useful supplement of traditional techniques such
as the client-server archtecture.
52.1 A First Look at Mobile Agents
- The Distributed Systems Point of View
- Characteristics of Mobile Agents
- Mobile agents are typically used in wide-area and
geterogeneous netwokrs in which no assumptions
can be made concerning either the reliability of
the connected computers or the security of the
network connections. - The mobile agents migration is initiated by the
agent(more precisely, its programmer), in
contrast to mobile object systems, in which
object migration is initiated by the underlying
operating system or middleware - Migration of mobile agents is done to access
resources available only at other servers in the
network and not just for load-balancing, as in
mobile object systems. - Mobile agents are able to migrate more that once
this characteristic is sometimes called
multi-hop ability. After a mobile agent has
visited the first server, it might migrate
further to other servers to continue its task,
whereas mobile code is transferred only once in
the remote-evaluation paradigm and the
code-on-demand paradigm.
62.1 A First Look at Mobile Agents
- The Distributed Systems Point of View
- Mobile Agents Need an Environment
- Mobile agents need some kind of environment to
become alive - Agent server or agency is responsible for
- Hosting and executing agents in parallel and
provides them with an environment so that they
can access services, communicate with each other,
and migrate to other agencies - Controlling the execution of agents and protects
the underlying hardware from unauthorized access
by malicious agents.
72.2 A Short History of Mobile Agents
- The mobile agent paradigm relies heavily on the
idea of mobile code - The early approaches of mobile code
82.2 A Short History of Mobile Agents
- Available Mobile Agent Toolkits
- A very concise and inevitably incomplete list of
mobile agent toolkits that have been or still are
very important to the research community and for
industrial projects - One of the mobile agent toolkits developed in the
last few years is Aglets, by IBM. It is the most
famous mobile agent toolkit.
92.3 Similar but Different Concepts
- Internet Agents, Worms, and Spiders
- Internet agents, also called worms, robots,
spiders, or crawlers, are computer programs - used by search engines, such as www.google.com,
to search the Web and catalog Web pages. - Assess whether it is a mobile agent
- Not mobile agents according to the definition.
- Still lack the aspect of mobility
- Work only from the computer system they were
started on - Never migrate to another platform
- Java Applets
- Java Servlets
102.4 Why Are Mobile Agents a Good Idea?
- Delegation of tasks
- Because mobile agents are simply a more specific
type of software agent, a user can emply a mobile
agent as a representative to which the user may
delegate tasks. - Asynchronous processiung
- Once mobile agents have been initialized and set
up for a specific task, they physically leave
their owners computer system and from then on
roam freely through the Internet. Only for this
first migration must a network connection be
established. - This feature makes mobile agents suitable for
nomadic computing, meaning mobile users can start
their agents from mobile devices that offer only
limited bandwiidth and volatile network links.
112.4 Why Are Mobile Agents a Good Idea?
- Adaptabel service inuterfaces
- Mobile agents can offering a chance to design a
client-driven interface that is optimized for the
client(user) but that is adaptable to different
server interfaces. - The key is to use a mobile agent to translate the
more complex and user-driven functions of the
client interface into the fitting primitive
functions offered at the server node. - Code-shipping versus data-shipping
- This is the probably most cited advantage of
mobile agents, and it stands in close
relationship to adaptable service interfaces.
Service interfaces frequently offer only
primitive functions to access databases. - Instead of trasferring data to the client, where
it will be processed, filtered, and probably
cause a new request(data-shippting)., this code
can be transferred to the location of the
data(code-shipping) by means of mobile agents.
122.5 Possible Application Domains of Mobile Agents
- Electronic commerce
- Information retrieval
- Instead of moving large amounts of data to a
single point where it is searched, information
retrieval moves the data-searching code to the
data. - Another typical application for mobile agents in
the domain of information retrieval is multiple
distributed sources. If the relevant information
sources cannot be centralized because of
technical reasons, mobile agents offer the only
chance to develop a flexible solution that
accepts the distributed nature of the given
environment and offers a solution that is as
distribtued and scalable as the problem itself.
13Conclusion
- Serveral concepts
- Agency
- Agent toolkit
- Agent system
- One of the most important advantages of mobile
agents is - Their ability to save network bandwidth as
compared with the client-server paradigm. - The general idea
- To move code close to a large databased instead
of transferring lots of data to a client. - Called code-shipping versus data-shipping