Agents Mobiles

Professeur : J-P.Sansonnet

Etudiant : QIAN.Zhiyu

DEA I3 - Université Paris-Sud

Février 25, 2002

 

1.Introduction

2.Framework of Mobile Agents System 

3.Requirements for Mobile Agents System

4.Agent Structure

5.Applications with Agents Mobiles

6.Related Works

7.Conclusions

8.References

 1.Introduction

 « Mobile Agents » are programs that can move from host to host to fulfill a task on behalf a user. To overcome the problem of heterogeneity, mobile agents are mostly programmed in an interpreted language (typically written in a script language) for which an interpreter is available for a wide range of computer systems.

 Application areas for mobile agent technology include tasks as information retrieval, but are also used in mobile computing, telecommunication applications, electronic commerce, and other traditional areas of computer science. At present, one special application area is the World Wide Web, which is still growing at an exponential rate, and buzzwords like "Web centric computing" or "Internet" promote traditional Internet technology everywhere. There we have a widespread, well-accepted architecture, to which more and more existing traditional data and data processing application (e.g., database, newspaper, financial portfolio application) are adapted and integrated.

In this paper, we will mainly introduce the theory of mobile agents and their applications in the fields -Internet and hardware components.

2.Framework of Mobile Agents System

2.1 Evolution of Mobile Agents System

We have known that Mobile agents are processes (i.e., executing programs) that can migrate from one machine of a system to another machine (usually in the same system) in order to satisfy requests made by their clients. They implement a computational metaphor that is analogous to how most people conduct business in their daily lives: visit a place, use a service, and then move on.

In fact, the development of mobile agents is in the incremental evolution of mobile abstraction such as mobile code, mobile objects, mobile processes.

*Mobile Agent -- transfer code + data + thread + authority of its owner

 

 
* Mobile Code -- transfer code

*Mobile Object -- transfer code + data

*Mobile Process -- transfer code + data + thread state

SERVER

 
2.2 Functions of Mobile agents

Ellipse: Mobile Agent

CLIENT

 
Ellipse: Mobile AgentExplosion 2: network

SERVER

 

CLIENT

 
Explosion 2: network       

 

 

 

 

 

 


Figure.1 Work of RPC                                Figure.2 Work of Mobile Agents               

 

From the point of view of classical client-server computing, which nowadays is the prevalent architectural model for distributed systems, mobile agents can be seen as an extension or generalization of the well-known remote procedure call (RPC) principal. But whereas in the RPC case merely data is moved from the client to a procedure that already resides on the server (and the client usually remains idle while the remote procedure is executed), in an agent-based framework the client dispatches an agent which travels to the server and performs its task there by interacting locally with the server’s resources.) are able to emulate remote procedure calls, but more importantly, they also allow for much more flexible and dynamic structures than traditional systems based on the client-server paradigm. Compared to lower level mechanisms such as RPC or simple message passing, the use of mobile agents for distributed applications has several potential benefits:

 

Asynchronous task execution: While the agent acts on behalf of the client on a remote site, the client may perform other tasks.

More dynamics: It is not necessary to install a specific procedure at a server beforehand and to anticipate specific service request types; a client or a service provider may send different types of agents (e.g., realizing new service handlers) to a server without the need to reconfigure the server.

Reduced communication bandwidth: If vast amounts of server data have to be processed (e.g., weather data) and if only a few relevant pieces of information have to be filtered out, it is more economical to transfer the computation (i.e., the agent) to the

data than to ship the data to the computation.

Improved real time abilities: Agents acting locally on a remote site may react faster to remote events than if these events and reactions to them have to be communicated between the remote machine and a central entity.

Higher degree of robustness: A dispatched agent may be instructed how to deal with potential problems such as unavailable servers (e.g., go to alternate sources or retry at some later time). Although mobility introduces new failure cases, in general fault tolerance is promoted because a mobile agent has the potential to react dynamically to adverse situations.

Improved support of nomadic computing and intermittently connected devices: Instead of being online for a longer period, a mobile user may develop an agent request while being disconnected, launch the agent during a brief connection session, and receive back the agent with the result at some later time.

 

3.Requirements for Mobile Agents System

Mobile agents provide a fresh, compelling way to organize the use of distributed resources on the Internet. However, in practice they have seldom been used. Because there are many technical challenges to implementing mobile agent systems. Most of these problems are in the structure of the computational medium, the environment the agents operate in. Servers must be designed; implemented, and deployed that not only allow mobile agents to run, but allow them to run safely.

3.1 Portability

Mobile agent code itself must be portable; when an agent arrives at a server the server needs to be able to execute that agent. Commonly used computer languages such as C and C++ are not very portable. Compiled C code only works on the machine it was compiled for and the source form is notoriously unportable. Portability can be achieved by running computer programs inside virtual machines interpreters, but overhead has limited the use of interpreted languages. Most mobile agent systems under development now rely at least in part on virtual machines to standardize the execution environment.

3.2 Ubiquity

In order for mobile agents to be successful they need access to many different computer resources. Servers for agents must be commonplace; there needs to be a widely accepted framework for executing mobile agents deployed on many machines across the Internet. In practice the requirement of ubiquity means that the execution environment needs to have market acceptability, be freely available, and be unencumbered by restrictive intellectual property requirements.

3.3 Network Communication

Mobile agents that live in the network need to be written in a language that makes network access simple. It must be easy to transfer objects across the network and to invoke methods of remote objects. Traditional computer languages treat networking structures as an afterthought, usually providing only a minimal socket library. Languages better support network access that have typically not been widely used. This situation is improving with the current development of language-neutral distributed object frameworks such as CORBA and OLE.

3.4 Server Security

A major concern specific to mobile agents is the protection of the servers running the agents. Running arbitrary programs on a machine is dangerous: a hostile program could destroy the hard drive, steal data, or do all sorts of other undesirable things. This risk must be thoroughly addressed if mobile agent environments are to succeed. Two types of security are possible to protect servers from malfunctioning and hostile agents: physical and social.

Physical security refers to building servers for agents in such a way that the agents cannot harm the server. The ``laws of physics'' of the server execution environment can be designed to make dangerous operations difficult or impossible. Common approaches involve creating a ``sandbox'' for visiting agents, restricting access to resources (preventing disk writes, for instance) and ensuring the agent cannot escape those restrictions. This approach to security is attractive; when it works, it is entirely effective. But the viability of physical security in the face of design complexity and server implementation bugs is unclear. In addition, physical security is typically focused on protecting some underlying aspect of the server from the sandbox the agent is trapped in. But if multiple agents are put in the same sandbox how can the server guarantee that one agent cannot harm another? As we put more trust in the computations that take place inside sandboxes, the security of those sandboxes themselves becomes important.

A second approach to server security is using social enforcement mechanisms to punish the creators of harmful agents. If a server administrator can find out who is responsible for a malicious agent, then that person can be held accountable via social mechanisms (such as lawsuits). Digital signature technology makes identifying the authors of agents possible. But there are limitations to a purely social approach to security. It may not be clear which agent is responsible for damage, nor will it be easy to determine ahead of time which agent authors are trustable. In practice some combination of social and physical enforcement of server security will be useful.

3.5 Agent Security

The complement of server security is agent security: whether the agent can trust the server on which it is executing. A mobile agent might contain secret information such as proprietary data and algorithms. Worse, servers might have an incentive to subvert the computation of a visiting agent. In the Internet-based DES cracking effort currently under design a major concern is protecting the computation from sites that pretend to do pieces of the problem but return false answers. Physical security answers to this problem are difficult. Secure, trusted hardware on the server could guarantee agent safety but is unlikely to be widely deployed. Agent programmers can protect their agents by obfuscating their code and verifying the results of the remotely performed computation but the general applicability of these techniques are unknown. Social solutions may be possible in the form of reputation systems for servers. This area of security has largely been unexamined.

3.6 Resource Accounting

If economic control and incentive are going to be factors in net-wide resource use some mechanism to account for the resources that an agent uses and a way for receiving payment for those resources is necessary. In theory these requirements are not difficult to meet. Servers can keep track of the resource usage of agents, explicitly accounting CPU, memory, bandwidth and disk usage. Digital cash systems can be used to pay for services. In practice, these technologies are not widely deployed and the overhead they impose presents an engineering challenge.

So, Mobile agents are a viable paradigm for thinking about access to computational resources but in order for mobile agents to succeed many technologies need to be put into place. The shape of most of these pieces is fairly clear; however, the engineering and social barriers to their deployment are formidable. With the growth of the Internet there has been much interest in developing the necessary pieces.

4. Agent Structure

From the requirements of systems, we can know the system is very complex. Then as the best important role in the system—Agent, how can we define its structure?  Here, an important design consideration is the use of a generic agent structure that provides the

User Information

The User Information component contains information pertaining to the user (e.g. name, e-mail address, organizational affiliation, etc.).

 

 
flexibility to a diverse range of client(applications). To facilitate agent portability between different client(applications), a generic agent structure was developed based on Abstract Syntax Notation One (ASN.1) principles. Refer to Figure 3 for an overview of the generic mobile agent structure.

Agent Information

The Agent Information component contains information that relates specifically to the software agent, such as the agent’s original departure time (from the user's site) and the agent's home. address on the network.

 

 

Document Library

The Document Library contains a collection of documents accumulated as the agent travels from

site to site.

 

 

Function Library

The Function Library component contains a collection of individual functions that are referenced by the agent's scripts and may not be supported at the network site.

 

 

Site Journal

The Site Journal component provides a structure for capturing general information pertaining to the agent's execution status at each site.

 

 

Script

The Script component contains the executable script that expresses the agent's tasks.

 

 

 

5.Applications with Mobile Agents

Compared to traditional distributed computing schemes, mobile agents promise (at least in many cases) to cope more efficiently and elegantly with a dynamic, heterogeneous, and open environment which is characteristic for today’s Internet. Hence, mobile agents can

be useful in many applications.

Certainly, electronic commerce is one of the most attractive areas in that respect: a mobile agent may act (on behalf of a user or owner) as a seller, buyer, or trader of goods, services, and information. Accordingly, mobile agents may go on a shopping tour in the Internet: they may locate the best or cheapest offerings on WWW servers, and when equipped with a negotiation strategy, they may even do business transactions on behalf of their owners.

Another general application domain is searching for information in the Internet or information retrieval in large remote databases when queries cannot be anticipated: Agents may incorporate an implementation of a specific search query (i.e., a retrieval procedure)

and thus allow for semantic information compression by remote filtering of data. In particular, collecting information spread across many sites and performing some kind of transactions when appropriate information is encountered, is a useful application for mobile

agents.

Monitoring is also a typical application domain: Agents can be sent out to wait for certain events or certain kinds of information to become available and then react appropriately (e.g., by buying shares on a stock market host). Similarly, mobile agents may also be used for the automation of many tasks in network configuration and management (e.g., for remote diagnosis). Agents may install software on remote machines, or they may personalize remote devices and services.

Other uses of agent technology include workflow management systems and groupware applications: Active documents that contain semantic routines to process their content may be realized by agents which travel to appropriate places in an organization. One last example of a potential application area is entertainment: Mobile agents may enable distributed multi-user games, they may locate persons with a similar interest, and they may represent a player on a game host.

But, do not forget the domain of Robot. With the technology of mobile agent, we can ameliorate the capacity of sense and reaction of “Machine”. Here, w can marry the software agent to the hardware agent. This is the application in Autonomous Machine. AgentWare uses neural networks to learn your choices and then intelligently seek out other Web sites similar to ones that a user has already visited. The agents that seek out these sites can be either created by users with AgentWare or customized by the service provider to "push" content onto the user's desktop. If you want to know more detail, please go to http://www.dlib.com/events/conferences/agents97/aa97.html.

In general, mobile agents seem to be a promising technology for the emerging open Internet-based service market. They are well-suited for the personalization of services, and dynamic code installation by agents is an elegant means to extend the functionality of existing devices and systems. Agent technology therefore enables the rapid deployment of new and value-added services.

However, in order to become a widely accepted technology in practice, some problems remain to be resolved. The most important aspects are probably security concerns (protecting hosts from malicious agents, but more crucially also protecting agents and

agent-based applications from malicious hosts) ; but interoperability with other systems, coordination and communication aspects, and the management of large societies of mobile agents also pose interesting challenges.

6.Related Works

Here, we will take a look at several academic research projects explore the mobile agent paradigm, and several commercial systems  have been introduced recently. Most of these systems are based on Java for the programming of agents, but they largely differ in their migration and security models and most importantly in the support and services they provide for the agents.

 

6.1 In France

There are several projects concerning the mobile agents in INRIA. In the project SIRAC (Systèmes Informatiques Répartis pour Applications Coopératives). The object of Sirac is providing the services and the tools for the development and execution of distribute applications. The researchers L.Ismail and D.Hagimont working on this project want to use mobile agents to specialize the server in the network. It is on JAVA. There is also another important project: Construction de services distribués : une approche à base d'agents mobiles.  : It realizes an engineering approach for building distributed systems, restricted to client-service applications. We propose a model for the specification of complex distributed services which addresses remote procedure call, remote evaluation and mobile agent interactions. This formalism permits to analyze performance, security and dependability properties. These analyses provide guidelines for using mobile agent technology in the considered application domain. At same time, they are very interesting in creating a mobile agent system on JAVA RMI.

It is worth saying that the company ALCATEL has a business product for Internet Agent Construction -- LiveAgent. It is based on JAVA.

6.2 In the world

Today, there many projects for research and business products in the world. IBM Alget, Telescript/Odyssey (General Magic Inc.), Concordia(Mitsubishi), Voyager(Object Space), MOA(OSF/OPENGROUP), AgentTcl (Dartmouth College), Ara(University de Kaiserslautern) , Tacoma( University of Tromson and Cornell) , Mole(University of Stuttgart)….etc. In this section, we will survey several famous agent systems. If you want to know more projects or products… Go!

* IBM Alget:

It is a toolkit for develop the mobile agent system on JAVA and developed by IBM Tokyo Research Laboratory. In fact, it is an applet-like programming model for mobile agents ( Aglet=Agent+Applet).Aglets are Java objects that can move from one host on the Internet to another. That is, an aglet that executes on one host can suddenly halt execution, dispatch to a remote host, and resume execution there. When the aglet moves, it brings along its program code as well as its state (data). A build-in security mechanism makes it safe to host untrusted aglets. I think that is the best toolkit on JAVA. But his problems are in the weak portability and the common issues in JAVA :  (1) inadequate support for resource control (2) no protected references-need for a proxy object to shield access to public methods (3) No support for preservation and resumption of execution.

*Telescript/Odyssey (General Magic Inc.)

One language (Java is another language) designed and implemented specifically for agent programming is General Magic’s Telescript. Telescript contains many language constructs for creating, transmitting, and manipulating agents. An executing agent can choose to

move itself to a new location with the go primitive, and once there can access local resources. In turn, the recipient of an agent can call procedures inside the agent. Telescriptis strongly object oriented, and the entry points into an agent are its public methods. To provide security, Telescript uses capabilities (called permits) and authentication. Telescript code is executed within a virtual machine that checks for illegal instructions and other violations. Within agents themselves, exception handling allows recovery from various errors. Telescript also provides persistent storage for agents, protecting them against loss in the event of a machine crash. Telescript appears to fulfill all of the agent language requirements as well as the desirable properties (however, we should note that remote resource access in Telescript is not statically typed). Unfortunately, the language is proprietary and no free implementations exist. These restrictions have severely limited its use.

 

* Concordia(Mitsubishi)

 

Concordia is a full-featured framework developed at Mitsubishi Electric Information Technology Center America's (MEITCA) Horizon Systems Laboratory. It provides for the development and management of network-efficient mobile agent applications for accessing information anytime, anywhere, and on both wire-based and wireless device supporting Java. At the highest level, a Concordia system consists of a Java Virtual Machine (JVM), a Concordia Server running on a machine in a network, and a mobile agent running in the system. A unique feature of Concordia's mobility mechanism is that it also provides for the transmission of state information detailing where the agent has been and what is has accomplished as well as where it is going and what it still has to do. Agent communication is either through asynchronous distributed events or collaboration. Concordia's security model provides support for two types of protection: protection of agents from being tampered  with, and protection of server resources from unauthorized access. The problems are: (1)lacks synchronous communication and execution constraints (2) Only support JAVA (3) does not support strong migration (4)coding is not easy.

 

*Mole(University of Stuttgart)

 

Mole is the first Mobile Agent System that has been developed in the Java language. The first version has been finished in 1995, and since then Mole has been constantly improved. Mole provides a stable environment for the development and usage of mobile agents in the area of distributed applications. In Mole system, agent model based on Agents and places. Each Agent's identifier is created at the creating of each agent, which uniquely identifies that agent globally. There are several different types of communication among agents of Mole. There is service to agent interaction, which is very much like a RPC type client/server communication. Second, mole has mobile agent communication among them, which use a concept called session. Mole supports asynchronous communication by an even driven model. Mole uses a `Sendbox' security model. In this model, service agents are agents with access to system re-source, providing controlled, secure abstractions of these resources inside the agent system. So Mole has a good security and allows good communication among agents with the concept sessions. But its shortcomings are similar like Concordia.

 

*AgentTcl (Dartmouth College)

 

Agent TCL (later renamed to D'Agents) is a mobile agent system created at Dartmouth College to address the weaknesses of existing mobile agent systems, such as insufficient security mechanisms, support for only specific and complex languages, difficult or nonexistent communication between agents, and inadequate migration facilities.  The architecture of Agent TCL is based on the server model of Telescript and supports a modified version of the Tool Command Language (TCL) as its high-level scripting language implementation (support for Java and Scheme is being added in D'Agents ). Worthy of saying that security in Agent TCL is provided in various capacities. To protect migrating agents and to provide authentication, Agent TCL uses Pretty Good Privacy (PGP) for its digital signatures and encryption . To protect resources, a resource manager assigns each agent a set of access permissions. So, when an agent tries to access a resource, the request is sent to the resource manager that checks the agent's access permissions with the resource. If the agent does not have the proper permission, it is denied access to the resource. To prevent agents from performing malicious acts, each interpreter is extended to include a security module that prevents such acts. Agent TCL has been used in both information-management and information retrieval applications. The problems of TCL are: (1) lacks execution constraints (2) TCL is inefficient 10000x slower than optimized C, not object-oriented, provides no code modularization so difficult to write and debug large scripts, no facilities for capturing the internal state of an executing script.

 

 

*Ara(University de Kaiserslautern)

 

Ara is a platform for the portable and secures execution of mobile agents in heterogeneous networks. Mobile agents in this sense are programs with the ability to change their host machine during execution while preserving their internal  state. This enables them to handle interactions locally which otherwise had to be performed remotely. Ara's specific aim in comparison to similar platforms is to provide full mobile agent functionality while retaining as much as possible of established programming models and languages. ARA can run agents concurrently using a fast thread package. It can clone themselves, duplicating their internal state. Its migration can be routed over a wireless link .The core offers "service points" for agent interaction. Agents can checkpoint their internal state to disk for later restoration. The problems are: (1)Lacks sufficient security mechanisms (e.g. authentication, access permissions) (2) Need better error handling for agents failing remotely (3) Only "CPU time" and "memory" resources covered by allowances (4) Mobile agents transmitted using TCP only. 

7.Conclusions

 Above all, we know that creating an effective mobile agent system is not easy. The requirements of system are very strict and miscellaneous. The systems concerned in this paper are far away the perfect level. Almost all the systems in this paper focused mainly on  the environment provided by the system for agents, the mechanisms for agent mobility, agent communication, and language support. The use of mobile agents appears to offer certain advantages for client-server computing but as we've noted in the above systems, it also raises some difficult issues with respect to efficiency, flexibility and security. These issues have an effect on an agent's ability of mobility.

 Many important issues such as how agents determine the available resources/services on a machine it transferred to (i.e., resource discovery), mobile agent system-to-OS interaction, the use of persistent storage (if any), and support for failure (i.e., fault-tolerance) were either briefly discussed or missing completely. Mobile agents need more applications that take advantage of the characteristics of mobile agents since there is no single alternative to all of the functionality supported by a mobile agent framework. A potential application for mobile agents would involve the use of the Internet and the many uses of the Internet. Solutions to the security and virus

problems in mobile agents could also result in new and successful methods of client-server interaction in network

services.

The mobile agent approach continues to intrigue and definitely shows signs of offering important qualitative advantages for network services, but if there is some "killer application" that only mobile agents can provide then maybe they would be more ubiquitous and more readily used.

 

8.References

 

[1] Davide Chess, Colin Harrison, Aaron Kershenbaum “Mobil Agents: Are they a good idea ” IBM Research Report 1995

[2] L.Ismail, D.Hagimont “Spécialisation de serveurs par des agents mobiles” Project SIRAC

[3] D.Hagimont  « Systèmes à agents mobiles » 1999

[4] B. Ford, A. Karmouch  An Architectural Model For Mobile Agent-Based Multi-Media Applications” 1997

[5] Syed Adnan, John Datuin, Pavana Yalamanchili  A Survey of Mobile Agent Systems”  2000

[6] Ichiro Satoch  « A Mobile Agent-Based framework for Active networks »  1999 

[7] Stefan Funfrocken  « How to Integrate Mobile Agents into Web Servrs »   1998

[8] Marcelo G.Rubinstein, Otto Carlos M.B.Duarte “Evaluating Tradeoffs of Mobile Agents in Network Management” 1999

[9] Frederick Knabe “An Overview of Mobile Agent Programming”

[10] Stefan F¨unfrocken, FriedemannMattern “Mobile Agents as an Architectural Concept for Internet-based Distributed Applications”

 

[11]  http://www.multiagent.com/

[12]  http://agents.umbc.edu/

[13] http://www.cis.upenn.edu/~bcpierce/courses/629/papers.html#TOC