[go: up one dir, main page]

0% found this document useful (0 votes)
34 views12 pages

Mobile Agent Technology: Current Trends and Perspectives: G. Cabri, L. Leonardi, F. Zambonelli

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 12

Mobile Agent Technology: Current Trends and Perspectives

MOBILE AGENT TECHNOLOGY: CURRENT TRENDS AND PERSPECTIVES


G. Cabri, L. Leonardi, F. Zambonelli1

New technologies are required to face new scenarios due to the fast spread of the Internet. The paper surveys the current trends of the emerging mobile agent technology. In a high-connected world, agents are the active entities, which roam across network nodes on behalf of their senders. We show some applications that can take advantages from the mobile agent approach. The paper presents the relevant aspects of coordination and security, which are currently discussed in the mobile agent community, pointing out open research directions.

1.

INTRODUCTION

The wide spread of networks, and, in particular, of networks connected to each other, as the Internet, has imposed new needs that require new paradigms and new technologies. In this scenario, mobile agents have been proposed as a model to cope with the requirements of wide distributed applications [15, 14]. To make the mobile agents widely accepted there are still several open research issues to be faced: appropriate programming languages and coordination models, security, efficiency and standardisation [9]. Our work focuses on two aspects, coordination and security, which we consider to be faced at the level of model, while the other aspects regard the implementation level. The paper is organised as follows. Section 2 introduces the reader to mobile agents terminology, specifying what the terms agent and mobility mean. Section 3 describes some applications that can be implemented by using mobile agents; these applications point out the advantages derived by a mobile agent approach. Section 4 illustrates some existing systems that implement mobile agents. In section 5 we discuss the coordination issue in mobile agent applications and we propose a taxonomy of different models. Section 6 presents some security issue related to mobile agents systems. Finally, in section 7 we present our conclusions and the directions of future research.

Dipartimento di Scienze dellIngegneria Universit di Modena

Mobile Agent Technology: Current Trends and Perspectives

2.

AGENT MOBILITY

In this section we present the mobile agent technology, starting from the two terms agent and mobility. Even if there is no wide agreement on such terms, we adopt the most spread ideas about this technology.

2.1

Agents

An agent is a software entity that shows several degrees of autonomy, since it has to take decisions and to carry out jobs without the direct participation of the user. Often an agent is an active object, i.e., an object with autonomous computational capability; in this case, the programmers can exploit the characteristics of the object-oriented programming paradigm. There are currently two main areas that use the term agent in the computer science research. The former one regards distributed systems, and uses mobile agent to mean an autonomous software entity with the capability of roaming among nodes in a network-aware fashion. As described in the following paragraph, a mobile agent can move from host to host to find the needed resources. The latter area relates to artificial intelligence, where intelligent agent means a software entity that can take even complex decisions on behalf of the user. Obviously, the two terms are not exclusive, since they define two orthogonal characteristics, which can be considered in order to build agents that are both mobile and intelligent. In the following of the paper we focus on the first characteristic, the mobility of agents.

2.2

Mobility

Since computers were connected by links, there was the idea to exploit these connections not only to exchange messages, but also to move entities. Starting from simple data, the mobility has had an evolution that has led to move the execution control, the code and the execution environment. In the first step of such evolution we find the mobility of files, for example with the FTP protocol. The next step was the remote procedure call (RPC) [2]: in this case the execution flow is involved in movement. Even if the idea is quite simple and it extends local procedure call, this new model had a great impact in computer science. Then there was the idea to move code. A piece of program is sent to another machine and is executed there. Depending of the side where we are, we talk about remote evaluation (RE) if we send code [20], or code on demand (COD) if we receive code. A comparison of the different kinds of mobility is shown in table I; it shows on which host the resources involved in mobility are, and points out which is the moved resource (in italic) from the local host to the remote one or viceversa.

Mobile Agent Technology: Current Trends and Perspectives

Mobility RPC Remote evaluation Code on demand

Local host control code processor, resources

Remote host processor, code processor, resources code

Table I. Different kinds of mobility If we consider the mobility of more complex entities, such as active objects, we must take into account that they have also a state, composed of the values of the variables. Furthermore, if the active object is executing, it has also an execution state, composed of a stack and a program counter. Two kinds of mobility have to be distinguished: weak and strong [9]. The former case of mobility permits the migration of the code and of the values of the agent variables. After the migration, the agent is re-started and the values of its variables are restored, but its execution starts from the beginning or from a specific procedure (a method in case of objects). In case of strong mobility, not only code is moved, but also the whole execution state, in order to restart the execution exactly from the point where it was stopped before migration. For example, in Java it is possible to implement a weak mobility by mean of serialising objects and sending them to another Java virtual machine via socket or RMI [19]. Otherwise, to implement a strong mobility of Java Threads, it is necessary to modify the JVM code [13], in order to extract the Java stack and the program counter of the thread to be moved. Further, the mobility can be explicit or implicit. In the former case, an agent asks explicitly to change its execution environment. It occurs via a primitive (typically called go) which can be invoked supplying the destination host as parameter. In case of implicit mobility, the execution environment hosting the agent decides when to move the agent; such decision can be taken on the base of different needs, such as load balancing, resources retrieving or meetings request. For example, when an agent asks to use a printer the system migrates it to the host where the printer is available. In our work we mainly consider strong and explicit mobility, even if most concepts can be applied to all kinds of mobility with no modification.

3.

APPLICATIONS OF MOBILE AGENT TECHNOLOGY

Mobile agents are a quite new technology, but it has already pointed out several advantages taken to distributed applications. The first main advantage is a significant bandwidth save. This is true especially in the applications that require a large amount of remote data, as shown in section 3.2. A second one is that no stable connections are required to grant the execution of applications. In fact, an agent, after being sent, can directly operate on data on the remote server that contains them, and does not require that such server is connected to the user site in

Mobile Agent Technology: Current Trends and Perspectives

a stable way. A stable connection is requested only at the beginning, to send the agent, and at the end of the application, to take the agent back, but it is not requested during the whole application execution. A direct consequence of the previous characteristic is that the mobile agent technology naturally fits the mobile computing. On the one hand, agents can be sent from the PDA (Personal Digital Assistant) to the network to carry out one or more jobs to be eventually rescued (see section 3.1). On the other hand, applications that are executed on the PDA are mobile in the sense that they follow its movements (see section 3.3). In the following of the section we describe some examples of applications that can take advantages by exploiting mobile agent technology.

3.1

WWW Information Retrieval

The Internet and the WWW have given the access to a large amount of information, but due to the wide spread of such information the search for a particular topic can be very hard, implying a waste of time and bandwidth. Search engines, like Altavista or Yahoo have facilitate the retrieving of web pages containing given words, but they present several problems, particularly in maintaining a large amount of data and in specifying query. An agent-based solution provides one or more agents that visit WWW servers searching for interesting pages; this approach saves bandwidth because the only needed communications are those to send and receive the agent. Besides, this solution fits well mobile computing; in fact, in a scenario where a PDA is only occasionally connected to the Internet, an user can send his searching agent, disconnect and reconnect later, when the agent has finished his job and comes back to the user to show the results of the query. The advantages taken by agents are particularly relevant if the user has a slow connection to the main network (for example, a connection to the Internet via modem): in these cases the slow connection is used only two twice, limiting the time cost.

3.2

Data Processing

An example of intensive data processing is a graphic application that has to process images to search for a particular. Let us suppose that all images are stored in a centralised database, which different clients can access to. In Figure 1.a is shown a traditional client-server approach: the client can ask the image server for images, which are retrieved from the server and processed locally to the client host. This causes the need of large bandwidth. In a mobile agent approach, shown in Figure 1.b, a processing agent is sent from the user site to the image server, where it carries out its processing job. This approach needs only two connections, one to send the processing agent, and one to take it back with the results of its job (for example, the reference to the images that

Mobile Agent Technology: Current Trends and Perspectives

contain the searched particular). If a large number of images has to be analysed, this approach permits to save bandwidth in a significant way.
Network messages Network messages Processing agent Move to server

Retrieve documents

Client Image server

Client Image server

a)

b)

Figure 1. Image processing: a) traditional client-server approach; b) mobile agent approach

3.3

Mobile computing system

The wide spread of notebook computers and PDAs points out the need of new paradigms for their applications. Mobile agents can be used to model applications that reside on a PDA and use resources spread over the network. In fact, even if such applications do not move through networks links, they are physically moved because the PDAs where they execute are mobile, and can be connected to different hosts of the network which become the execution environments of the applications (see Figure 2).
PDA PDA

a)

b)

Figure 2. Mobile computing: a) the PDA is connected to the host B; b) the PDA changes its connection to the host C

4.

MOBILE AGENT SYSTEMS

Different systems have been proposed to implement mobile agents. There is an effort to reach a standard which permits interoperability among agents of different systems [16], but, currently, most of the proposed systems are not compliant each

Mobile Agent Technology: Current Trends and Perspectives

other. An interesting case of system that can support different languages is the ARA project [18].

4.1

Agent-Tcl

Agent-Tcl [11] is an extension of the standard Tool Command Language [17], which provides a shell-like scripting language to program Unix environments. Since a principle property of Tcl is its extensibility, it was exploited to add commands to permit a program to migrate during its execution. There is the idea of agent, a software entity that can travel trough network and do something useful. The most important command is agent_jump, which let an agent migrate to a machine different from the current one in which the agent is executing. Agent-Tcl is not object-oriented, so what really migrates is procedure. The script is directly interpreted and this makes it very slow, comparing to languages that compiles the source in an intermediate format. Low-level communication mechanisms are provided; they are flexible to implement higher-level mechanisms and agent coordination.

4.2

Sumatra

Sumatra [1] is one of the experimental extensions to Java. Thanks to Java library extensibility, it can be added new programming abstractions for mobility, without altering the basic language. The only significant modification is made to the interpreter, because it has to trace the execution stack and the program counter in order to implement strong mobility by transferring the execution state to the new node of execution. This does not imply a change to the Java Virtual Machine interface, so the modified interpreter can execute every program written in standard Java.

4.3

Telescript and Odyssey

Telescript [21] is a mobile language developed at the General Magic. It is object oriented and it supports the mobility of objects. It was born as a commercial, selfcontained, language. Odyssey [10] is a project being currently developed at the General Magic. Unlike Telescript, Odyssey is an extension of an existing language, Java. It takes concepts from Telescript, and implements them adding classes to the base Java library, in particular it adds the class Agent, which implements the idea of mobile agent. An interesting feature is that, unlike Sumatra, it does not require any modification to the Java interpreter; this of course implies that Odyssey implements only a weak mobility.

Mobile Agent Technology: Current Trends and Perspectives

4.4

Java-to-go

Java-to-go [12] is an infrastructure developed at the University of California at Berkeley. It permits the rapid prototyping of Java-written systems that support the weak mobility for Java agents. It is quite similar to Odyssey, but it furnishes a lower level of abstraction. On the one hand, this implies more flexibility and an open infrastructure that the programmer can easily adapt to his requirements, thanks also to the included documentation; on the other hand, it requires more programming work to implement a system that satisfies high-level requirements.

5.

COORDINATION IN MOBILE AGENT APPLICATIONS

During their nomadic life, mobile agents need to interact with other entities in order to carry out their jobs. In particular, they have to interact with the local environment of each site they arrive on, and with other agents, belonging both to the same application and to other applications. In this sense, we introduce the agent-local environment coordination and inter-agents coordination. In the next paragraph, we present four models of agent coordination; each of them can be applied both to agent-local environment and inter-agents coordination. A system can use different models for the two kinds of coordination. In our opinion, however, an uniform model of interaction can simplify both the application design and the system implementation.

5.1

Coordination models

In [3] we present a taxonomy, which classifies the models of mobile agent coordination on the base of temporal and spatial coupling (see Figure 3). A model presents a spatial coupling if the entities involved in coordination must share a common name space in order to communicate; the communication initiator has to know the partner name. In the temporal coupled models communications are synchronous, i.e., the sender and the receiver must both exist at the time of communication.

Temporal
Coupled Coupled Direct Java Agents, Agent-TCL Meeting-Oriented Ara, MOLE Uncoupled Blackboard-Based Ambit, ffMain Linda-like Jada, MARS

Spatial
Uncoupled

Figure 3. Mobile agent coordination models

Mobile Agent Technology: Current Trends and Perspectives

The first model is based on direct coordination. In this model, an agent sends a message directly to another agent. This model implies a spatial coupling, because the sender agent must know the name of the receiver. Besides, the need that the receiver exists at the communication time introduces a temporal coupling. While this model fits well to traditional applications all existing client-server based systems are an example it presents some difficulties to be adapted to mobile entities. First, since the agents move, the sender agent does not know where the receiver is at the time of communication. To let the message reach the receiver, there must be complex routing schemes, which keep track of the movements of every agent. Second, since the agents can be created dynamically, it is difficult to know which agents exist at any time. There are many examples of systems that rely on direct coordination. The systems based on object-oriented languages permit two agents to coordinate by the invocation of methods, which are the main communication mechanism among objects. In particular, Java-based agent systems can exploit the RMI (Remote Method Invocation) mechanism [19] to transparently invoke a method of a remote objects. Agent-Tcl [11] is an example of a not object-oriented system that provides a direct communication between agents. This can be achieved by asynchronous message-passing: an agent sends a message to a given partner agent, using the agent_send command and the receiver retrieves this message when it executes an agent_recv command. In meeting-oriented model, an agent does not have to know explicitly the name of its partner. Instead, the agent joins a known meeting point, where it can interact, communicate and synchronise with other agents. This implies a spatial uncoupling, in fact the interaction occurs by common interest, not by explicitly naming the partner. Such model leads to great flexibility and dynamicity, since the agents do not have to worry about the name of potential partners, but they can concentrate on their jobs, and choose the meeting point on the base of them. However, the meeting-oriented model presents a temporal coupling, because agents must synchronise and be present at the same time at the meeting-point to interact. Meeting-oriented coordination is implemented in ARA [18]: one agent can assume the role of meeting server announcing a meeting point at one hosting environment; incoming agents can enter the meeting to coordinate each other. The concept of event-based communication and synchronization defined by the OMG group and integrated in the MOLE mobile agent system [23] can be considered as a sophisticate form of meeting-oriented coordination. This model associates meetings to events, i.e., accesses to synchronization objects of a specific type, which agents must share the reference to, as if it were the name of the meeting. The Blackboard-based model achieves a temporal uncoupling, by introducing a repository, called blackboard, where to store and retrieve messages. In fact, the

Mobile Agent Technology: Current Trends and Perspectives

sender simply leaves the message in the blackboard and the receiver can read the message by retrieving it from the blackboard in a subsequent time, even if the sender has been terminated. So there is no need that the sender and the receiver exist at the same time. However, spatial uncoupling is not achieved because messages are retrieved by supplying an unique key that agents must know. This model suits well a highly dynamic environment, such as the Internet, where it is very difficult to know the presence and the location of a given agent. Several recent systems propose and implement blackboard-based coordination models for mobile agent applications. In Ambit [6], a formal model for mobile computations, agents can attach and read messages on the blackboard local to each site. The ffMAIN agent system [8] defines mobile agents that interact via an information space accessed through the HTTP protocol, where data can be stored, read and extracted. Finally, the Linda-like model is fully uncoupled. As in the previous model, a space is used to store and retrieve messages, called tuples, but, while in blackboard-based system a message is addressed to a specific agent, and the sender has to know the name of the receiver, in the Linda-like model tuples can be retrieved in an associative way [5]. This is achieved by a pattern matching mechanism, which permits to retrieve a message by specifying only few parts of the message itself. Also in this model, coordination among agents can be achieved by writing and reading messages, but in this case no mutual knowledge is needed in order to coordinate. Recently some systems have appeared, which use this model. The concept of associative blackboard has been implemented, atop of Java, in the Jada system [7]: the so-called ObjectSpace abstraction can be used by mobile agents to store and associatively retrieve object references; furthermore, agents can create private ObjectSpaces to privately interact without affecting hosting execution environments. Another example of implementation of the Linda-like model is the MARS system [4], a Java-based tuple space that can be associated to existing mobile agent systems; the MARS system adds the reactivity to the mere Linda model.

6.

SECURITY

An agent is a foreign entity that exploits resources local to a site. On the one hand, this imposes the adoption of security care to defend the visited sites from malicious or bad-programmed agents. On the other hand, programmers have to protect their agents from unknown sites. Although the concepts shown in this section are not new [22], programmers have to take care in embedding security mechanisms and policies into an agent mobile scenario.

Mobile Agent Technology: Current Trends and Perspectives

6.1

Site Security

The basic mechanism to support security in mobile agent systems is identification. Every agent must be identified as coming from a user. The authentication follows the identification, to grant that a given identity is true. Note that the identification and the authentication do not avoid system damages, but permit to identify the responsible of such damages. For example, a security policy could isolate incoming agents and to prevent them from doing everything but exploiting only few resources. This security model, called sendbox, is adopted by Java language to isolate applet while executing inside a WWW browser. In a more flexible model, an ACL (Access Control List) can be used to decide who can do what on which resource. With regard to networks, a mechanism that can furnish a good balance between security and efficiency is the partition into domains. Such mechanism reflects real life; in fact, people have often to be identified at the main door of a building, but, after having the authorisation, they can freely roam into. In the same way, the network can be divided into domains, each of them containing hosts that trust each other; an agent can freely go to another host of the same domain, but it must be identified and authenticated if it wants to enter to a different domain. For example, Odyssey [10] divides the network in regions, each of them having its own name and address server; even if this division is made to naming reason, it could be well exploited to implement security polices. Furthermore, a domain can be composed by nested clusters with a different degree of security, starting from free zones, which are accessible by everyone, to private zones where no agents are allowed.

6.2

Agent Security

Unlike traditional programs, mobile agents have to come back to the sender and carry information or decisions after they have visited one ore more hosts. This leads to a further point of view about security. In fact, beside the traditional defence of hosts from pirate agents, also agents must defend themselves from unknown hosts. For example, if an agent that act as a virtual customer is in charge of visiting different virtual shops and then choose the cheapest one, a malicious site can alter the information about other sites to result the cheapest, even if it is not true. This security problem rises because the agent relies on resources, such memory, network connections and CPU, which are completely handled by the hosting site. So internal variables of the agent could be changed, results of its computation (exploiting local CPU) could be altered, agents themselves could be modified or evenly substituted. A possible solution is to use cryptography to grant no modification to the agents is performed. As mentioned above, this old mechanism is to be adapted to the new scenario imposed by mobility. For example, it is not secure that an agent carries its

Mobile Agent Technology: Current Trends and Perspectives

private key with it to encrypt the information it finds on the network; moreover, if we stress the autonomy of agents, they should not rely on external secure site, because this would introduce a centralised point.

7.

CONCLUSIONS AND FUTURE WORK

The paper has focused on the mobile agents as a new emerging technology to cope with the new scenarios established by the fast diffusion of such wide distributed systems as the Internet. We claim that mobile agents can have a positive impact on the design of distributed applications; although this technology is not mature yet, it has nevertheless proved to be useful to several distributed applications, especially the ones requiring data which are spread over a large distributed system, such as the WWW. The availability of portable code and the increased computational power can deal with the requirements of mobile agents satisfactorily and consequently encourage the spreading of this new technology. There are several open issues, which are to be faced to grant the diffusion of applications based on mobile agents. The first important issue is coordination. Traditional approaches, such as direct coordination, do not suit properly to the new requirements imposed by the mobility of the agents. Other approaches, such as the Linda-like model, instead, improve the design of mobile agent applications. A further issue is security. Mobile agents are going to remain inside the field of academic research and cannot be integrated in actual applications, unless an adequate degree of security is provided to defend both network sites from pirate agents and positive agents from malicious sites. Other issues are standardisation and efficiency. Even if these ones are important issues for the wide acceptance of this new technology, we state that they are to be solved at implementation level, and do not affect the mobile agent model.

8.

ACKNOWLEDGEMENTS

This work has been supported by the Italian Ministero dell'Universit e della Ricerca Scientifica e Tecnologica (MURST) in the framework of the Project "Design Methodologies and Tools of High Performance Systems for Distributed Applications".

9.
1.

REFERENCES
A. Acharya, M. Ranganathan, J. Saltz, Sumatra: a Language for Resource Aware Mobile Programs, Mobile Object Systems, Lecture Notes in Computer Science, No. 1222, Springer Verlag (D), pp. 111-130, February 1997. A. D. Birrell e B. J. Nelson, "Implementing Remote Procedure Calls", ACM Trans. on Computer Systems, vol. 2, pp. 39-59, February 1984. G. Cabri, L. Leonardi, F. Zambonelli, How to Coordinate Internet Applications based on Mobile Agents, IEEE Seventh International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), IEEE CS Press, Stanford (USA), June 1998.

2. 3.

Mobile Agent Technology: Current Trends and Perspectives

4.

5. 6.

7.

8.

9. 10. 11.

12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.

G. Cabri, L. Leonardi, F. Zambonelli, Reactive Tuple Spaces for Mobile Agent Coordination, Proceedings of the 2nd International Workshop on Mobile Agents, Stuttgart (D), Lecture Notes in Computer Science, No. 1477, pp. 237-248, Sept. 1998. N. Carriero, D. Gelernter, Linda in Context, Communication of the ACM, Vol. 32, No. 4, pp. 444-458, 1989. L. Cardelli, D. Gordon, Mobile Ambients, Foundations of Software Science and Computational Structures, M. Nivat Ed., LNCS, No. 1378, Springer-Verlag (D), 1998, pp. 140-155. P. Ciancarini, D. Rossi, Jada - Coordination and Communication for Java Agents, Lecture Notes in Computer Science, Springer-Verlag (D), No. 1222, 1997, pp. 213226. P. Domel, A. Lingnau, O. Drobnik, Mobile Agent Interaction in Heterogeneous Environment, Proceedings of the International Workshop on Mobile Agents, Lecture Notes in Computer Science, Springer-Verlag (D), No. 1219, April 1997, pp. 136-148. A. Fuggetta, G. Picco, G. Vigna, Understanding Code Mobility, IEEE Transactions on Software Engineering, Vol. 24, No. 5, pp. 352-361, May 1998. General Magic Odissey Page, http://www.genmagic.com/agents/odyssey.html R. Gray, Agent-Tcl: A flexible and secure mobile-agent system, in Mark Diekhans Mark Roseman editor, Proceedings of the fourth Annual Tcl/Tk Workshop (TCL 96), Monterey, California, July 1996. W. Li, D. G. Messerschmitt, Itinerative Computing Using Java, http://ptolemy.eecs.berkeley.edu/dgm/javatools/java-to-go. The Java Virtual Machine, Sun Microsystems White Paper, Sun Microsystems, 1996. Proceedings of the 2nd International Workshop on Mobile Agents, Stuttgart (D), Lecture Notes in Computer Science, No. 1477, Springer-Verlag (D), September 1998. Mobile Object Systems, Lecture Notes in Computer Science, No. 1222, Springer Verlag (D), February 1997. Mobile Agent System Interoperability Facilities Specification, OMG, http://www.omg.org, February 1998. J. K. Ousterhout, Tcl and the Tk Toolkit, Addison-Wesley, 1994. H. Peine, Ara - Agents for Remote Action, in William R. Cockayne and Michael Zyda: Mobile Agents: Explanations and Examples, Manning/Prentice Hall, 1997. Remote Method Invocation, Sun Microsystems White Paper, Sun Microsystems, 1997. J. W. Stamos, D. K. Gifford, Implementing Remote Evaluation, IEEE Transactions on Software Engineering, Vol. 16, No. 7, pp. 710-722, July 1990. J. E. White, Telescript Technology: the foundation for the electronic marketplace, White Paper, General Magic, Inc, 1994. W. R. Cheswick, S. M. Bellovin, Firewalls and Internet Security, Addison-Wesley, USA, 1995. J. Baumann, F. Hohl, K. Rothermel, M. Straer, Mole - Concepts of a Mobile Agent System, WWW Journal, Special issue on Applications and Techniques of Web Agents, 1998, to appear.

You might also like