Title: Chapter 3 2nd Part Mobile Agent Migration
1Chapter 3 (2nd Part)Mobile Agent Migration
2Contents
- 3.3 Design Issues of Agent Migration
- 3.4 Reasoning about Improved Mobility Models
33.3 Design Issues of Agent Migration
4Mobility Models
- Goal of this section
- To gather information about other migration
techniques in order to - Discuss the design issues and design alternatives
for agent migration, show pros and cons, and
discover dependences between different design
issues - For a designer of a new mobile agent toolkit,
because he or she must decide which migration
technique the new system should provide. - Develop a language to describe the migration
technique of an existing mobile agent toolkit - To describe the migration technique of an
existing mobile agent toolkit in a unified way,
which makes it easy to compare different
approaches.
Mobility model describes almost all the important
features concerning agent migration. A mobility
model defines three views on migration issues
Users view, Agents view, Networks view
5Mobility Models (Users view)
- The 1st view
- Is considered with all aspects of migration that
are related to the agent programmer - Naming and Addressing
- The agent name is very important for successful
migration, because the constraint that no two
agents can have the same name can be best
validated during the migration process. - More important with regard to agent migration is
the structure of the agencys name. Each agency
must have a name so that it can be identified
whenever the agency itself or any of its
resources must be addressed. - Creating Agents
- When an agent is created, it must be decided
where the agent is started first. Usually, the
agent is started at the current agency, that is,
the one on which the agents owner placed the
creation command. In this case the current agency
becomes the agents home agency.
6Mobility Models (Users view)
- The 1st view (continued)
- Agent Code
- The other important issue that must be decided is
the place from which code can be loaded. It is
called a code source. - The code source is used to load classes when the
agent is created at its homeagency as well as
whenever classes are not available at any remote
agency and must be loaded dynamically on demand. - Agent Data
- Next it must be decided what types of data the
mobile agent can access and use. Each type of
data has its own behavior during agent migration.
There are four types of data that are useful for
mobile agents - Proxy, Static, Moving, and Copying
7Mobility Models (Users view)
- The 1st view (continued)
- Migration
- ltMigrationgt ltInitiatorgt ltMobilitygt
ltDestinationAddressgt lt Effectgt ltErrorgt - Migration can be initiated by the agent itself or
by someother instance (e.g., another agent or the
agency) - The type of mobility can be weak or strong, and
in both cases further issues must be decided. - The weakest form of mobility transmits only the
instance variables (object state) and the code of
the mobile agent to the destination platform. - In a stronger form of mobility the mobile agent
toolkit allows the programmer to define the name
of a starting method within the go command. - The target of a migration must be discussed. Each
migration is directed to some target, whose
address must be defined using a migration command
or a ticket. - Effect of an agent migration
- Usally, in a migration, the agent is moved
completely to the remote agency and there is
still only a single instance of this agent. - Error is related to an agencys behavior if there
is a migration error.
8Mobility Models (Agents view)
- Lets look at the way code can be relocated
within the network (data transmission is not an
issue here) - Migration Strategies
- Migration strategy is the type of code relocation
that is used for agent migration. - Push-all-to-next stratey
- The code of the agent (together with the code of
all referenced objects) and the serialized agent
are transmitted simultaneously. - Pull strategy
- It does not transmit any code with the data
transmission - Pull-per-unit
- Dynamically loads code on a per-class policy
- Pull-all-units
- Loads all class files as one package immediately
if even one class file must be loaded. - Push-all-to-all
- As in the push-all-to-next strategy, the complete
code of an agent is transmitted, but it is sent
to all destination platforms the agent is going
to visit, not only to the next destination.
9Mobility Models (Agents view)
- Code Transfer
- Following issues concerning code relocation
- ltAgentgt ltCodeTransfergt (ltCodeCachegt)
(ltUbiquitousClassesgt) - (last section) code relocation strategies can be
divided into push strategies and pull strategies. - When the system offers a push strategy, it must
be decided which classes must be sent to the
agency. - When the system offers a pull technique, it first
must be decided what transmission unit will be
used. - It is important to decide whether class code is
cached by the agency after it was loaded for the
first time. - An important design issue is to decide which
classes are never transmitted, even if they are
members of a class closure, because they are
assumed to exist at every agency already. Those
classes were named ubiquitous.
10Mobility Models (Networks view)
- The last view
- Cosiders all aspects related to data
transmission. - The transmission strategy defines the way an
agent is actually transmitted to the destination
platform.
113.4 Reasoning about Improved Mobility Models
12In this section
- In the previous section
- Information about current implementation
techniques for mobile agent migration - Reasoning about Improved Mobility Models
- Drawbacks against the background of current
implementations and evaluate whether todays
mobility models are able to solve any of these
problems - Examine factors influencing mobile agents
performance and discuss how this performance can
be improved. - Investigate whether the migration strategy has an
effect on the overall performance of mobile
agents - Describe the new mobility model, named Kalong.
13Drawbacks of Simple Migration Techniques, and
Current Implementations
- The inherenct drawbacks of mobile agents are
- An agents code is typically larger than a simple
client-server request and causes a fixed overhead
for each imgration. - It is only practical to send large code to remote
agencies if server results can be decreased
dramatically by data filtering or compression - An agents code is transmitted to a remote
agency, even if it is never used there. - An agents data is transmitte as a single unit,
which means that a mobile agent carries data
items to all servers of the given itinerary, even
if they are never used before reaching the home
agency again. - In the other case, the agent carries data items
to several agencies, although they are never used
at the first agencies. .This was the reason for
poor performance in the case of a high number of
agencies.
14Improving the Performance of Mobile Agents
- Overview of Mobile Agents Performance Aspects
- The performance of mobile agents is influenced by
several factors, and within the life cycle of a
typical mobile agent, - Several areas where performance can be improved
(e.g., its task given by the user, the route or
itinerary, its code size, the size of collected
data, network parameters like bandwidth and
latency) is found. - To structure the discussion
- There were the following classification schema
runtime aspects and transmission aspects
15Improving the Performance of Mobile Agents
- Runtime Aspects techniques by which an agents
execution time can be improved. - Code Format
- Influences code size, and therefore, code
execution time, and , to a lesser extent,
transmission time. - Machine code
- Is specific to a processor architecture family
and cannot be executed on processors that do not
belong to this family. - Intermediate code
- Is the result of a compilation process that is
performed at the agents home agency. It is a
low-level representation, which consists of
commands for a virtual machine. - Code Execution
- Another aspect that influences execution
performance is the underlying hardware
architecture. A second aspect is the agency
software and its optimizations on the level of
Java code.
16Improving the Performance of Mobile Agents
- Transmission Aspects all techniques that
influence network load and transmission time
during gent migration are summarezed. - Programmers View
- The most influential factor is what level of
mobility is supported. - Another concern from the programmers point of
view is the itinerary an agent has to execute. - Agents View
- A mobile agents performance is influenced by
code and data relocation techniques we call this
the micro level of optimization. - Networks View
- We see therr factors that influence mobile
agents performance network bandwidth, network
latency, and the overall architecture of the
network in which the agent operates.
17Performance and Migration Strategies
- Evaluations on the relationship between the
performance of mobile agents and the migration
strategies used. - How the migration strategy influences the
migration performance of mobile agents - What is learned from this evaluation is
- That no migration strategy produces the shortest
transmission time in every situation. - In homogeneous networks ,
- Pull-per-unit is a good strategy, because code
downloading is cheap, - whereas in a heterogeneous network,
- code dwonloading from a faraway agency is
expensive and should be avoided.
18The Kalong Mobility Model
- This section introduce the new mobility model,
named Kalong, which - Is the synthesis of most ideas for improved
mobility models - The main feature of Kalong is its flexible and
finegrained migration technique, - Which allows an agent or its programmer to define
new migration strategies for each individual
migration. - Three main aspects
- Kalong defines a new agent representation and new
transmission units - Kalong defines two new agency types in addition
to the already-known home and remote agencies
used in current mobility models - Kalong defines a new class cache mechanism that
prevents not only class downloading in the case
of pull strategies but also code transmission in
the case of push strategies.
19Kalongs Advantages
- Using the new Kalong mobility model
- The agent has the opportunity to select classes
that should be transmitted to the next
destination agency, - While other classes can be downloaded from the
agents home agency later. - The second advantage
- Is its ability to dynamically define code server
and mirror agencies. Mirror agency is an
extension of a code server agency. - The third advantage
- Is a comprehensive technique for code caching.
Before any class is transmitted to a destination
agency, it is determined whether this class is
alredy available there.
20Summary
- Design Issues of Agent Migration
- Reasoning about Improved Mobility Models
- Proposed the new mobility model, named Kalong
- The main differences of Kalong
- Adaptive transmission of code and data
- Code server and mirror agencies
- Code caching