Here, we describe two strategies respectively known as servlet and applet that could enhance the operations of software agents. In the servlet strategy, the flow takes place from the client to the server. The applet strategy performs differently: the flow takes place from the server to the client.
The state of the art in designing and developing complex systems revolves around software agent technologies [1]. Agents have been used in several application domains, ranging from application integration to information retrieval across heterogeneous and distributed systems. Agent approaches to systems gain popularity from several of their observed advantages and characteristics but mainly from autonomy, adaptability, sociability, and mobility. In this column, we focus on mobility. Indeed, embedded with appropriate mobility mechanisms an agent would be able to roam networks, therefore visiting sites, using the resources of these sites locally, and finally, either going back with results to its original site or submitting results remotely. This type of processing avoids keeping networks busy as well as dealing with their reliability. Authors in [2] state there are at least seven good reasons to start using mobile agents because they: reduce the network load, overcome network latency, encapsulate protocols, execute asynchronously and autonomously, adapt dynamically, are mutually heterogeneous, and are robust and fault tolerant.
We assume two types of agents exist: user-agent and service-agent. User-agents are mobile while service-agents are static. In addition, we assume that service-agents offer different types of services. User-agents require services to satisfy their users' needs and also must reward service-agents for their services. Each service has two costsin-site and out-site:
When a user-agent requires a service that is not offered by any service-agents of its site, this user-agent moves to the site that contains this service.1 Then, the user-agent meets with the service-agent of this service. We denote this approach by servlet strategy, as shown in Figure 1; first, a move occurs from the user-agent's site to the service's site, that is, from the client to the server. Then, the in-site cost is applied. In Figure 1, SiteA consists of User-AgentA1 and a set of Service-Agents offering multiple services, ranging from Service1 to Servicei. In Step 1, User-AgentA1 requires ?Servicej. This service is not offered by service-agents of User-AgentA1's site. Consequently, User-AgentA1 must identify the appropriate site of Servicej, for example SiteB. In Step 2, User-AgentA1 moves to SiteB2. As soon as it installed in SiteB, User-AgentA1 requests Servicej from a service-agent, for example Service-AgentB2.
However, it may occur that the out-site cost of a service is more advantageous than the in-site cost for a user-agent. Therefore, instead of moving to a site, the user-agent sends a request to the service-agent of this service [3]. In fact, the request is meant to send a copy of the required service to the user-agent. We denote this approach by applet strategy (see Figure 2); first, a move occurs from the service's site to the user-agent's site, that is, from the server to the client. Then, the out-site cost is applied. In Figure 2, SiteA consists of User-AgentA1 and a set of Service-Agents offering multiple services, ranging from Service1 to Servicei. In Step 1, User-AgentA1 requires ?Servicej. This service is not offered by service-agents of User-AgentA1's site. Hence, User-AgentA1 has to identify the appropriate site of the service it wants, namely SiteB. In Step 2, a request regarding the service asked for is sent from User-AgentA1 to one of SiteB's service-agents, for instance Service-AgentB2. Finally, Service-AgentB2 sends a copy of Servicej to User-AgentA1 (for execution needs, an agent could be transferred along with this copy).
We have illustrated here that both servlet and applet strategies could suit software agents. To this end, agents should be embedded with mechanisms that allow them to make the correct decision: either move or invite.
1. Jennings, N., Sycara, K., and Wooldridge, M. A roadmap of agent research and development. Autonomous Agents and Multi-Agent Systems 1, 1 (Jan. 1998), 738.
2. Lange, D. and Oshima, M. Dispatch your agents; shut off your machine. Commun. ACM 42, 3 (Mar. 1999), 8889.
3. Maamar, Z. and Moulin, B. Migrate or not migrate, that is the question. In Proceedings of the Dartmouth Workshop on Transportable Agents. (Hanover, NH, Sept. 1997).
1 We assume that user-agents are able to look for the services they need. To this end, different facilities for these agents could be provided, such as yellow pages, brokers, and so forth.
2Before entering sites, user-agents are checked for security purposes.
©2003 ACM 0002-0782/03/0700 $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2003 ACM, Inc.
No entries found