Experiences in the use of Mobile Agents for developing distributed ...

9 downloads 3485 Views 113KB Size Report
developing distributed applications. Eleonora Di Pietro1, Orazio ... success of distributed systems, and has stimulated the research for a new gen- eration of ...
Experiences in the use of Mobile Agents for developing distributed applications Eleonora Di Pietro1, Orazio Tomarchio1, Giancarlo Iannizzotto2, Massimo Villari2 1

Istituto di Informatica e Telecomunicazioni, Universita di Catania Viale A. Doria 6, 95025 Catania - Italy E-mail: fdipietro, [email protected] 2 Dipartimento di Matematica, Universita di Messina C.da Papardo - Salita Sperone, 98166 Messina - Italy E-mail: fianni, [email protected]

1 Introduction The recent development of telecommunication networks has contributed to the success of distributed systems, and has stimulated the research for a new generation of applications, such as the access to remote databases, the Web, and e-commerce. Traditional programming in distributed systems has been based on the well-known client/server paradigm. An alternative to such traditional mechanisms has recently been spreading, and is based on the use of environments that give a sort of "code mobility" [2]. By this term we mean the possibility to change dynamically at run-time the binding between the software components of an application and their physical location within a network of computers. Code mobility is the main feature on which mobile agent systems are based: a mobile agent can be deemed as a software module able to autonomously perform the task assigned by the user, by moving (if necessary) from a node of the network to the other, in order to collect the information it needs [6, 9]. The rst agent systems developed were based on languages not widely used, and anyway they were almost produced in the environment of academic research. The use of Java favoured the design and the creation of several platforms for agents. Some of the mobile agent systems developed in Java are Aglets by IBM, Odyssey by General Magic, Voyager by ObjectSpace, and other systems produced by university research such as Mole and JavaToGo. In this work we present MAP (Mobile Agents Platform) [8], a platform for the development and the management of mobile agents, which has been primarily used for the management of distributed systems and in mobile computing applications.

2 The MAP agent system The MAP platform was completely developed by using Java. It gives the user all the basic tools needed for the creation of applications based on the use of agents.

It enables us to create, run, suspend, resume, deactivate, reactivate local agents, to stop their execution, to make them communicate with each other (both in synchronous and in asynchronous way), and migrate. The platform is equipped with a simple graphic interface, which facilitates the access to the management functions mentioned above. The use of Java (thanks to its independence from hw and sw architectures) enabled us to develop a platform able to operate in heterogeneous environments. Besides, Java is equipped with mechanisms that facilitate the dynamic execution of parts of code that can be downloaded through the network from remote nodes. Thanks to such mechanisms, the paradigms of code on demand and remote execution have been integrated within of our platform. The MAP basically consists of agents that can move to the various nodes of a network, and of servers that constitute the environment in which the agents will run. A node belonging to the platform MAP consists of an object called Server that contains all the entities needed for the operation of the platform itself. The main elements that form a MAP Server are the Context, the Network Class Loader, and the Code Server. The Context is the execution environment for local agents; it knows all agents present in the server, and provides the functionalities needed for their management, communication and migration. Conversely, the Network Class Loader and the Code Server are the modules that deal with the dynamic loading of classes, in order to allow agents to be run even on MAP servers where the corresponding class is not available. Two types of agents can be implemented in the MAP: static and mobile agents. The former are agents running on the MAP server where they were created during the whole period of their execution; they are generally agents providing for speci c functionalities, and that are constantly waiting to receive requests of execution of the service they provide. Conversely, mobile agents are entities that (while they perform the task they have been assigned) may migrate through the network, in order to search for the resources they need and communicate with remote agents or MAP servers. In order to protect the running entities in the platform from any attack from outside, appropriate security mechanisms have been implemented in the MAP. In particular, the security model created in the MAP xes some rules (called security policies), that specify the conditions that allow agents to access the resources, and the way agents are authenticated and authorized to run speci c operations. Besides, security mechanisms are present, for verifying the integrity of classes during the transfer of agents from a MAP server to another. As well as the MAP, during the last few years, several mobile agent platforms have been created, both in universities and in industries. But their architecture and implementation are very di erent, and prevent them to interact and to be used on a wide scale. In order to favour the interaction among di erent agent platforms, the OMG (Object Management Group) has recently proposed a standard called MASIF (Mobile Agent System Interoperability Facility) [1], whose purpose is to overcome the di erences of platforms, by specifying a set of functions and interfaces which all agent platforms need to comply with, so to

communicate and interact. In order to allow the interaction among the di erent platforms, MASIF standardizes the operations concerning the creation, the management, the migration and the communication of agents. This way, it allows each agent system to control agents coming from di erent platforms, and allows each agent to move through the network, and to visit (if necessary) heterogeneous platforms. Besides, MASIF provides for the agent systems to be grouped into regions (i.e., into logical entities including all of the agent systems operating for the same person or organization), and standardizes a set of functions for the registration, the identi cation and the location of agents, agent systems and places within their region. This way, they can always be accessed by any entity belonging to the region, transparently with regard to their current location. In order to allow the interaction with other agent platforms, the MAP has been made complying with the MASIF standard. Each MAP server implements therefore all of the control and management functions of agents provided by such standard. This way, our system can accept agents coming from other platforms (complying with MASIF) and make them run, thus enabling them to access the functions needed for their management. In fact, such functions can be used in the management of any type of agent (not only MAP), independently from the implementation of the agent system from which the agent is coming. The same way, a MAP agent is allowed to migrate to and run in other platforms that can support it. Besides (according to MASIF), MAP servers are grouped into regions, each of which is associated with a Registrator object, which deals with the registration/deregistration of MAP servers and agents, as well as their identi cation and location in the region. In order to allow MAP entities to access in accordance with the MASIF standard, all of the MAP servers and the agents running in them (once they have been created), must be registered in the region with the name they have been assigned, before they can run. This way, by exploiting the functionalities provided by the Registrator, we can identify and locate all agents and agent systems anywhere within their region, independently from their current location.

3 Using MAP in real worl applications Thanks to their features, mobile agents can be used in a wide number of distributed applications [9]. Even if each application can be created by means of other existing technologies, the use of mobile agents allows a decentralization of services, by assigning speci c subtasks to agents distributed in the network and communicating with each other. In this area, the MAP platform has been successfully used in typical Network Management [7] and QoS [4, 5] applications. In the rst case our purpose is exploiting new technologies based on mobile code, in order to extend network management architectures by moving a portion of the "intelligence" to the nodes where data are resident. In this scenario, management agents are placed in each node: they monitor the state of the node, and can perform simple management functions on the local node. If agents nd irreg-

ular operation conditions, a communication mechanism is triggered among the di erent agents, which activate the appropriate recovery strategies. For example, such strategies consist of system recon gurations, of new routing strategies, etc. Many of the management decisions may be taken locally, thus avoiding to transfer large amounts of data from the remote nodes to a central station. Only high-level information will be transferred to the central station where the network manager operates. Besides, in the developed infrastructure, agents are not statically resident in the remote devices. They can move from a node to another, can be replaced if necessary, can be equipped with functionalities that had not been envisaged at the time of installation. All of the management procedures do not need to be maintained in each agent; some of these procedures would migrate from a central node to the one where they will be executed, but only when they become really necessary. Such functionalities make the system obtained very exible. Besides, the management application itself has been organized as a mobile agent; in this way the manager of the network no longer needs a xed position. Conversely, in the second case, the concept of agent technologies is applied for a cooperative QoS management scheme. This scheme exploits several agents' characteristics, including matching of con icting interests and complex negotiations between service providers' agents and service users' agents, thereby taking multidimensional parameter spaces into account. Furthermore, negotiation and coordination take place between service providers' agents in order to ful ll their commitments concerning given QoS guarantees on the one hand and the need of ecient usage of scarce resources on the other hand. Agents adapt to the particular requirements of certain applications as well as to temporary changes in the environmental conditions of system operation. Monitoring and measurements are incorporated in order to control user agents as well as system agents with respect to their mutual and individual commitments. Furthermore, system agents may have di erent roles in the collaborative provisioning of the committed service and its quality. The interactions between agents include exchanges of noti cations, recommendations, and commands. The major focus is placed on cooperative recommendations as a basis for coordination. To achieve a reasonable cooperation, the agents are provided with information about the intentions of other agents. The MAP platform has been successfully used in the area of mobile computing [3]. Infact, mobile agents can be very e ective in this area, because they include as a basic feature the support for asynchronous and standalone mode operations. The user may develop his/her agent, send it in execution during a connection period, and then disconnect, waiting for the agent to come back and return the results of the requested service. We have created (as a speci c application) an agent system that allows the user to make a hotel reservation. The user can indicate (by means of an appropriate interface) his/her requests. Such requests are then communicated to an agent that has been created for this purpose, and whose task is making the reservation for the user, so to meet his/her speci cations. The user, after triggering his request, leaves the initial worksta-

tion and then connects again in another moment either to the same workstation or to a di erent one (that must anyway be known to the agent). Alternatively, the user may have the reply noti ed by means of an SMS on his/her cellular phone, once the execution of the agent has ended.

References 1. Crystaliz, General Magic, GMD Fokus, and IBM. Mobile Agent System Interoperability Facility. Available through ftp://ftp.omg.org/pub/docs/orbos/97-10-05.pdf, November 1997. 2. A. Fuggetta, G.P. Picco, and G. Vigna. Understanding Code Mobility. IEEE Transaction on Software Engineering, 24, 1998. 3. A. La Corte, A. Pulia to, and O. Tomarchio. An Agent-based framework for Mobile Users. 3rd European Research Seminar On Advances In Distributed Systems (ERSADS'99), Madeira (Portugal), April 1999. 4. H. de Meer, A. Pulia to, J.P. Richter, and O. Tomarchio. Tunnel Agents for Enhanced Internet QoS. IEEE Concurrency, 6(2):30{39, April-June 1998. 5. H. de Meer, A. Pulia to, and O. Tomarchio. Management of QoS with Software Agents. Cybernetics and Systems: An International Journal, 27(5), 1998. 6. V. A. Phan and A. Karmouch. Mobile Software Agents: An Overview. IEEE Communication Magazine, 31(7):26{37, July 1998. 7. A. Pulia to and O. Tomarchio. Advanced Network Management Functionalities through the use of Mobile Software Agents. In 3rd International Workshop on Intelligent Agents for Telecommunication Applications (IATA'99), Stockholm (Sweden), August 1999. 8. A. Pulia to, O. Tomarchio, and L. Vita. MAP: Design and Implementation of a Mobile Agent Platform. Journal of System Architecture. to be published. 9. K. Rothermel and R.Popescu-Zeletin Eds.,. Mobile Agents. Lecture Notes in Comp. Science, LNCS1219, 1997.

This article was processed using the LATEX macro package with LLNCS style

Suggest Documents