• Keine Ergebnisse gefunden

CHAPTER 3: VIRTUAL ENTERPRISE INFRASTRUCTURE

3.2 T ECHNOLOGIES AND S TANDARDS FOR V IRTUAL E NTERPRISES

3.2.4 Intelligent Mobile Agents

3.2.4.2 Mobile Agents

Mobile agents, also referred to as transportable agents or itinerant agents, are based on the principle of code mobility. Mobile code enhances the traditional client/server or Remote Procedure Calls (RPC) paradigm6 by performing changes along two orthogonal axes:

6 In the client/server paradigm the server is defined as a computational entity that provides a set of services. The client requests the execution of these services by interacting with the server. After the service is executed the result is delivered back to the client. The server therefore provides the knowledge of how to handle the request, as well as, the necessary resources.

• Where is the know-how of the service located?

• Who provides the computational resources?

Three main paradigms for mobile computations have been identified (Fugetta 98). These are:

Remote Evaluation, Code On Demand, and Mobile agents. These paradigms differ in how the know-how, the processor, and the resources are distributed among the components of a distributed system. The know-how represents the code necessary to accomplish the computation.

The resources are located at the physical node that will execute the specific computation.

In the Remote Evaluation (REV) paradigm (Stamos 70) a component A sends instructions specifying how to perform a service to a component B. The instructions can, for instance, be expressed in Java bytecode. B then executes the request using its resources. Java Servlets are an example of remote evaluation.

In the Code on Demand (CoD) paradigm the same interactions take place as in remote evaluation. However, the difference is that the component A has the resources collocated with itself but lacks the knowledge of how to access and process these resources. It gets this information from the component B. As soon as A has the necessary know-how, it can start performing its operations. Java Applets fall under this paradigm.

The Mobile Agent (MA) paradigm is an extension of the remote evaluation paradigm (White 94 and 97). Whereas the latter focuses primarily on the transfer of code, the mobile agent paradigm involves the mobility of an entire computational entity along with its code, state, and potentially, the resources required to solve a problem to fulfil a goal.

Figure 5: Mobile Agent Approach

By adopting the Mobile agent paradigm, the component A has the know-how capabilities and a processor, but lacks the resources. The computation associated with the interaction takes place on the component B, which has a processor and the required resources. For example, a client owns the code to perform a service, but does not own the resources necessary to provide the service. Therefore, the client delegates the know-how to the server where the know -how will gain access to the required resources and the service will be provided. An entity encompassing the know-how is a mobile agent. It has the ability to migrate autonomously to a different computing node where the required resources are available.

This means that a mobile agent is not bound to the system where it begins execution. It has the unique ability to transport itself from one system in a network to another. The ability to travel permits a mobile agent to move to a destination agent system that contains an object with which the agent wants to interact. Moreover, the agent may utilize the services of the destination agent system. When an agent travels, its state and code are transported with it. In this context, the

Agent System A

Agent System C Agent

System B Code

& State Code

& State

agent state can be either it’s execution state, or the agent attribute values that determine what to do when execution is resumed at the destination agent system. The agent attribute values include the agent system state associated with the agent.

The mobile agent paradigm provides two alternative programming approaches, namely:

• remote execution: an agent is sent to a remote location before its activation. The agent remains in this location during its entire life-cycle

• migration: an agent is able to change its location during its execution. A mobile agent can start its execution in location A then moved into location B invoke a service in this domain and return back to the original location.

The Mobile agent paradigm is important for network-centric systems because it represents an alternate, or at least, a complementary solution to traditional client/server approaches (Chess 95).

Such solutions may contribute to a reduction of the overall communication traffic in network.

Mobile agents are typically developed by means of machine-independent programming languages. The initial pioneering machine-independent languages, such as Save-Tcl and Telescript, are today mostly replaced by Java, due to its inherent portability and platform support. Nevertheless, the native capabilities of Java are not yet sufficient for implementing right away mobile agents. Extra functionality has to be implemented for realising a mobile agent that support agent transport, mobility management, and security. For that reason, mobile agent platforms have been developed in order to provide the required functionality for implementing mobile agents. These platforms provide value added services for migration of agents and thus, enable rapid development of applications with mobile agent features.

The following benefits have been most often cited (Harrison 95, Chess 98):

• asynchronous/autonomous task execution: after the injection of an agent into the network environment the user can perform other tasks,

• reduction of network traffic and client processing power: since massive data exchanges are handled locally at the nodes hosting the data and client computers could concentrate on performing only limited local tasks,

• increased robustness and reduction of dependence of network availability and client/server availability: once the agent arrived at a target system the client may crash or the network may become unavailable without any drawbacks on the task processing,

• automation of distributed task processing: agents have itineraries that determine what tasks they have to perform where without any user interaction,

• decentralised and local task processing: agent cloning enables the automated distribution of formerly centralised programmes,

• flexibility: On-demand software distribution / service provisioning – service software within mobile agents can be instantly downloaded to client and server nodes.

The mobile agent paradigm provides flexibility by re-distributing intelligence inside a distributed network environment, particularly for reducing network load and optimising service performance. Due to the above stated benefits, various problems and inefficiencies of today’s client/server architectures can be handled by means of this new paradigm.

The down side of this technology is in fact the security risks introduced. An agent may be attacked, modified or deleted by a hostile agent platform. Another obvious concern related to mobile agents is the question, if agent migration is always of advantage in contrast to message passing. For example, it is probably better to interact for small information exchanges by message passing in case the agent code is bigger than the expected data volume to be exchanged.

In summary, agent technologies have a lot of appealing advantages compared to traditional technologies for solving specific problems. But they imply the introduction of new agent platforms enabling mobility and/or advanced inter-agent communic ation in the target environment and require the adaptation of existing interfaces to that new agent environment.

Adopting a more general view, legacy technologies, including distributed object technologies, have also advantages in specific environments and more importantly a big installed base. For several applications, Remote Procedure Calls still represent a powerful and efficient solution.

Thus, an integrated approach is desirable, combining the benefits of both client/server and agent technology and on the other hand, minimizing the problems that rise if one of these techniques is used as “stand-alone“ solution (Guilfoyle 94). Therefore, an integration of agent technologies with existing technologies represents the best solution to combine their advantages (Choy 99, Harrison 95, Karmouch 98).