A Framework for Distributed Computing using Mobile ... - Florin Leon

4 downloads 41161 Views 117KB Size Report
general framework for intelligent mobile agents is then presented, containing agent-dedicated servers, mobile working agents and static knowledge base agents. ... code, it may find a different host (the server) in the network that has the .... Harrison C. G., Chess D. M., Kershenbaum A.: Mobile Agents: Are they a good idea?
Mihai Horia Zaharia, Florin Leon, Dan Galea (2003) A Framework for Distributed Computing using Mobile Intelligent Agents in M. Craus, D. Galea, A. Valachi (eds.) - New Trends in Computer Science and Engineering, Anniversary Volume, Department of Computer Engineering, Faculty of Automatic Control and Computer Engineering, Technical University Gh. Asachi, Polirom Press, Iasi, pp. 219-223, ISBN 973-9476-40-6

A Framework for Distributed Computing using Mobile Intelligent Agents Mihai Horia Zaharia1, Florin Leon2, Dan Gâlea3 1

Dept. Comp. Eng., HPC Laboratory, D. Mangeron 53A, Iaşi, 6600, Romania [email protected] 2 Dept. Comp. Eng., AI Laboratory, D. Mangeron 53A, Iaşi, 6600, Romania [email protected] 3 Dept. Comp. Eng., AI Laboratory, D. Mangeron 53A, Iaşi, 6600, Romania [email protected]

Abstract: In this paper, we discuss the evolution of distributed computing paradigms, emphasizing the advantages the mobile agents provide if used in a distributed application. A general framework for intelligent mobile agents is then presented, containing agent-dedicated servers, mobile working agents and static knowledge base agents. We then discuss the differences between state-based and event-driven behavior of the agents.

1. Introduction A very important problem of distributed computing is to increase the asynchronicity of communication in order to decrease communication costs. Following that direction of thinking, in the last decade the agent paradigm was developed, although the asynchronous approach increased the rate of use for any single or multiple known resource. The basic idea of agent-based systems was to achieve better performance of data search in distributed databases due to its inherent asynchronous work model. Distributed artificial intelligence is at the intersection between artificial intelligence and distributed computing. It is considered to be “the study and design of systems formed of many interacting entities, distributed logically and often spatially, that can be considered in a certain sense autonomous and intelligent” [7]. Most of the classical artificial intelligence systems are static, and their architecture is predefined, while agent-based systems are dynamically modified in time. The use of agents is motivated because they are a solution for complex systems management. Because of their autonomy, they can act on behalf of the user, without having only the role of a simple interface. The agent becomes the man’s assistant, and its performances increase as it learns the user’s preferences. Also, the recent development of technology and especially the Internet requires the possibility that different applications communicate and interact. In general, for heterogeneous information environments, that are geographically distributed and complex in size, a centralized approach is practically impossible.

2. Evolution of Distributed Computing Paradigms A classical paradigm in distributed computing is the client-server method. The server

manages a number of services related to different resources. The client simply uses the services it needs. It is important to note that the services are executed on the server, which must have the appropriate code and processing power in order to satisfy the clients’ demands. Many technologies support this paradigm: RPC (Remote Procedure Calling), CORBA (Common Object Request Broker Architecture), RMI (Remote Method Invocation) [4]. Another approach is code-on-demand paradigm [3]. In this case, if a host (the client) doesn’t have the know how to execute a task, i.e. it lacks the necessary code, it may find a different host (the server) in the network that has the needed code. The server sends the client only the code to be executed, and all computation is performed on the client. Java applets are examples of this paradigm: they are downloaded form the web and executed locally, which means that the client doesn’t need a permanent connection to the server, because all it needs is to transfer the necessary code. A recent paradigm is the one based on mobile agents. Mobile agents are defined as programs that may be dispatched from a computer to another for execution and interaction with other agents [1]. They are not bound to the system where they begin execution, but they can transport themselves to different hosts in the network. Thus, the hosts become very flexible, because the computation can be performed on any host by means of the agents, which can move form one host to another in order to get the resources and computing power they need to complete their tasks. Some authors [2] indicate seven reasons for using mobile agents in a distributed application: • they reduce the network load by reducing raw data flow over network; • they overcome network latency in real-time systems; • they encapsulate protocols, i.e. establish channels for communication; • asynchronous and autonomous execution; • dynamic adaptation (they sense their environment and are able to adapt to changes); • heterogeneity (they depend only on their execution environments); • they are robust and fault tolerant.

3. Intelligent Mobile Agents for Distributed Computing As seen, mobile agents can be an efficient approach for distributed computation or data search, because in this way the expensive transfer of large amounts of data across the network is avoided. However, mobility introduces additional complexity to an intelligent agent, because security and cost must be taken into account [5]. If the agent is supposed to act on the user’s behalf, it must be given some kind of delegation in order to correctly identify on the target hosts. Therefore, security systems must be implemented to prevent abuse. At present, only few systems have been proposed that deal with difficult problems such as canceling a delegation or restricting it in some manner [6]. Even more, if the agent must be authenticated, the following problem raises: when does the authentication take place? Because the agent is an active object, by the time the receiver become aware of the agent’s presence, it is

already running and therefore it has the potential to damage its host. Conversely, if the agent carries important information, how should it know to trust its host? Another issue to be considered is the failure model for the agent. In a LAN, we can guarantee the functionality of the hosts. In other kinds of networks (especially the Internet), this is impossible. So, the designer should set the waiting period between the time a user sent an agent and the time it should send another because the first agent has not returned yet. A solution to this problem is to endow the agents with some degree of intelligence that will enhance their flexibility and adaptation capabilities to a dynamic environment.

4. Proposed Framework Our proposed framework is composed of three entities: • servers: they are responsible for providing an execution environment for the agents, and for dispatching agents to neighboring servers; • static knowledge base agents: they are agents disposed one on each server, and they are responsible for the management of the local knowledge base; their primary role is to give working agents the information they require; • mobile working agents: they are agents that can store pieces of information in their own knowledge bases, and can move form one server to another to accomplish their tasks. In our framework, servers have, beside their standard role to launch and dispatch agents, two more distinct functions. Since we impose a set of priorities on working agents, it is servers that have the responsibility to control the priority queue of working agents such that only a maximum number of agents can execute at a certain moment. In this way we avoid overloads, because the size of a queue can be established dynamically, by taking into account the performance of the machine where the server is installed. Also, they must verify the working agents security certificates in order to ensure that only registered agents can have access to knowledge bases. Also, in order to insure fault tolerance on the knowledge on the server, the knowledge base agents have the possibility to replicate on other servers. This operation can be only seldom performed, so that the network should not be unnecessarily loaded. However, the knowledge base agent has the possibility to save changes in the knowledge base, therefore the replication should be considered only an emergency solution, when the machine is in danger of being damaged or isolated for a long time. Since working agents are intended to have a BDI (beliefs-desires-intentions) architecture, it is interesting to analyze how they address external events and how they internally represent state. The same behavior can be described both in a statebased or is an event-driven manner. Let us consider a simple working agent behavior. It has a set of desires (which can be initialized by the user) and arrives on a server. The agent asks the local knowledge base agent for the information needed to fulfill its desires. As it receives answers, it updates its beliefs and may generate new desires. When no more answers

are received, it chooses a server to dispatch to and sends a request to the server. When the agent completes all its desires, it returns to its origin and reports to the user. One solution is to design state-based behavior. For the above-described behavior, the agent can have six states: • Idle: The state in which the agent is during dispatch. If it receives a message from the server that it has arrived, it goes into the question-asking state; • Question-asking: The state in which the agent sends a set of messages to the local knowledge base agent, messages that correspond to its desires. After that, it goes into the listening state; • Listen: The state in which the agent listens to the messages received form the local knowledge base agent. As it gets information, it updates its own knowledge base, i.e. its beliefs. After that, if there is no more interesting information on the local server, the agent will dispatch and enters the idle state; if it has fulfilled all its desires, it dispatches to its origin and enters the report state. Otherwise, it goes into the question-asking state again; • Dispatch: The agent sends the server a request to transport to a randomly chosen unvisited server or to its origin if there are no more desires left to accomplish; • Report: The agent communicates its beliefs to the user and enters the suspend state; • Suspend: The agent no longer acts on the environment. It can only be restarted from exterior for a new task, or terminated if its presence is no longer required. Another approach is by using event-driven behavior, which corresponds to the event-condition-action (or when-if-then) paradigm. It must be mentioned that this approach does not exclude the presence of states (it would be almost impossible for an agent to act with intelligence without maintaining states). The events for the same behavior are presented as follows: • Arrival (external event): The agent is informed by the server that it has arrived. If there are more desires left, the agent prepares to ask questions, i.e. updates its belief that the current server may be useful (it does not actually ask any questions at this time, because asking question would be an action triggered by a decision, which is an internal event); • New message (external event): The agent receives a message from the local knowledge base agent in response to its questions. It consequently updates its knowledge base; • Action selection (internal event): If there are no more external events the agent should react to, it can now prove its pro-activeness and take initiative. If it has no more desires left and it is home, it reports to the user and goes into suspended state. If it has no more desires left but it is not home, it dispatches home. If there are desires left but the local knowledge base agent is no longer useful, the agent dispatches to a randomly chosen unvisited server. If the local knowledge base agent still has answers, the agent asks questions corresponding to its desires. It can be noticed that the second method is better structured and closer to the cognitive processes in the human brain, although the functionality of the agent is exactly the same in both cases.

5. Conclusions The main idea that stays behind this frame was to introduce a new way of making information retrieval from large databases using the inherent potential of artificial intelligence. Two different directions were combined in order to do that: first, the newest approach in distributed computing: mobile agents; the second results from the intersection between artificial intelligence and data mining. There are many theoretical results that cannot be fully validated without a specially designed, real framework. As result we propose this frame. The preliminary simulations are very encouraging if we take into account the system load and also the communication load.

6. References 1. Harrison C. G., Chess D. M., Kershenbaum A.: Mobile Agents: Are they a good idea?, IBM Research Report, T.J.Watson Research Center, NY, 1995. 2. Lange D. B., Oshima M.: Seven Good Reasons for Mobile Agents, Communications of the ACM, vol. 42, no. 3, pp. 88-89, March 1999. 3. Lange D. B.: Mobile Objects and Mobile Agents: The Future of Distributed Computing?, General Magic, Inc., California, http://www.ifs.unilinz.ac.at/~ecoop/cd/ papers/1445/14450001.pdf. 4. Orfali R., Harkey D.: Client Server Programming with Java and CORBA, John Wiley & Sons, US, 1998. 5. Seydim A. Y.: Intelligent Agents: A Data Mining Perspective, Department of Computer Science and Engineering, Southern Methodist University, Dallas, http://engr.smu.edu/~yasemin/agentsdm.pdf, 1999. 6. Waldo J.: Mobile Code, Distributed Computing, and Agents, Sun Microsistems, http://www.computer.org/intelligent/ex2001/pdf/x2010.pdf. 7. Weiß G., Sen S. (eds.): Adaptation and Learning in Multiagent Systems, Berlin: Springer Verlag, 1996.

Suggest Documents