in the context of competition and co-operationmobile agents in the context of competition and...

62
No Findings of a Public Consultation March 2018

Upload: others

Post on 17-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Mobile AgentsMobile Agentsin the Context of Competition and Co-operation

(MAC3)

http://mobility.lboro.ac.uk/MAC3/

Todd Papaioannou and Nelson Minar

Co-chairs

Program Committee

Fritz Hohl, University of Stuttgart

Reuven Koblick, Mitsubishi

David Kotz, Dartmouth College

Danny Lange, General Magic

Daniela Rus, Dartmouth College

Christian Tschudin, University of Uppsala

Page 2: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

MAC3 Workshop Notes Preface

Autonomous Agents ‘99 i May 1st 1999

PrefacePrefaceMobile Agent research is a rapidly growing field contributing to autonomous software agents anddistributed systems. Mobility is both a useful abstraction and tool for agent-based system design-ers; it allows for increased resource efficiency, capability, and robustness. Also, mobile code isbecoming an accepted technology for building distributed systems; allowing distributed systems tobe more dynamic and flexible.

While the mobile agent field is a promising area of new research, it comes with many challenges.Although mobility greatly expands the potential of agent systems, the issues of increased complex-ity and managability must be addressed. Mobile agents also incur new security and consistencyproblems. Finally, mobility is a relatively new tool for system design; we are still in the early stag-es of exploring what it is best at. The solution to these problems can be attained through diligentresearch and communication.

This workshop is one entry in the continuing dialog about mobile agent systems. We hope it willbe a valuable opportunity for active researchers in the field to meet, present current and forthcom-ing research, share ideas, and discuss and critique each other's work.

These workshop notes contain seven papers grouped into four themes. The Argument for Mobile

Agents contains two papers that discuss in detail why mobile agents are useful; these ideas providecontext for mobile agents research. Tools for managing agent systems are an important facet ofmaking manageable systems; pattern languages are one such useful tool for organizing mobileagent systems. Applications are ultimately what justifies any research; this section contains de-scriptions of two areas for which mobile agents are particularly well suited. Finally, the workshopnotes end with two papers that describe conceptual frameworks for mobile agent systems; this re-search is important so that we may understand the complex software systems we are building.

We wish to thank our program committee for all their help and guidance in organizing the work-shop, and all contributors. We hope it will be a valuable experience for everyone involved.

Nelson Minar and Todd Papaioannou

Co-chairs of MAC3 at Agents '99, Seattle.

Page 3: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

MAC3 Workshop Notes Table of Contents

Autonomous Agents ‘99 ii May 1st 1999

Table of ContentsTable of Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i

Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii

Workshop Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

The Argument for Mobile Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

Mobile Code: The Future of the Internet

David Kotz and Robert Gray, Dartmouth College . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Foreign Event Handlers to Maintain Information Consistency and System Adequacy

Pierre-Antonie Queloz, University of Geneva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Tools for Managing Mobile Agent Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

A Case for Mobile Agent Patterns

Dwight Deugo (Carelton University) and Michael Weiss (Mitel Corp.) . . . . . . . . . . . . . . . . . . . . . 19

Mobile Agent Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

Mobile agents in an electronic auction house

Qianbo Huai and Tuomos Sandholm (Washington University) . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

A Partitioning Model for Applications in Mobile Environments

Alexander Schill (Dresden University), Albert Held (DaimlerChrysler), Thomas Ziegert (DU),

and Thomas Springer (DU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Frameworks for Managing and Understanding Mobile Agent Complexity . . . .42

Economic Markets as a Means of Open Mobile-Agent Systems

Jonathan Bredin, David Kotz, Daneila Rus (Dartmouth College) . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Emergent Behavior and Mobile Agents

Tony White, Bernard Pagurek (Carleton University) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Page 4: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

MAC3 Workshop Notes Schedule

Autonomous Agents ‘99 ii May 1st 1999

Workshop Schedule - 1st MayWorkshop Schedule - 1st May

9:00 - 9:15 Welcome, Introductions

9:15 - 10:00 Keynote

"A Research Agenda for Code Mobility"

Gian Petro Picco, Washington University in St. Louis

10:00 - 10:30 Coffee

10:30 - 11:30 The Argument for Mobile Agents

Mobile Code: The Future of the Internet

David Kotz and Robert Gray, Dartmouth College

Foreign Event Handlers to Maintain Information Consistency and System Adequacy

Pierre-Antonie Queloz, University of Geneva

11:30 - Noon Tools for Managing Mobile Agent Systems

A Case for Mobile Agent Patterns

Dwight Deugo (Carelton University) and Michael Weiss (Mitel Corp.)

Noon - 2:00 Lunch

2:00 - 3:00 Mobile Agent Applications

Mobile agents in an electronic auction house

Qianbo Huai and Tuomos Sandholm (Washington University)

A Partitioning Model for Applications in Mobile Environments

Alexander Schill (Dresden University), Albert Held (DaimlerChrysler), Thomas Ziegert

(DU), and Thomas Springer (DU)

Page 5: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

MAC3 Workshop Notes Schedule

Autonomous Agents ‘99 iii May 1st 1999

3:00 - 3:30 Coffee

3:30 - 4:30 Frameworks for Managing & Understanding Mobile Agent Complexity

Economic Markets as a Means of Open Mobile-Agent Systems

Jonathan Bredin, David Kotz, Daneila Rus (Dartmouth College)

Emergent Behavior and Mobile Agents

Tony White, Bernard Pagurek (Carleton University)

4:30 - 5:30 Discussion - How do we advance mobile agent research?

This program is only a rough guide for the day and is open to change.

Page 6: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

MAC3 Workshop Notes The Argument for Mobile Agents

Autonomous Agents ‘99 5 May 1st 1999

The Argument for The Argument for Mobile AgentsMobile Agents

Page 7: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Mobile code: The Future of the Internet

David Kotz and Robert S. Gray

Department of Computer Science / Thayer School of EngineeringDartmouth College

Hanover, New Hampshire 03755

[email protected], [email protected]

Abstract

Use of the Internet has exploded in recent years with the appearance of the World-Wide Web. Inthis paper, we show how current technological trends necessarily lead to a system based substantially onmobile code, and in many cases, mobile agents. We discuss several technical and non-technical hurdlesalong the path to that eventuality. Finally, we predict that, within five years, nearly all major Internetsites will be capable of hosting and willing to host some form of mobile agents.

1 Introduction

Rapidly evolving network and computer technology, coupled with the exponential growth of the services andinformation available on the Internet, will soon bring us to the point where hundreds of millions of peoplewill have fast, pervasive access to a phenomenal amount of information, through desktop machines at work,school and home, through televisions, phones, pagers, and car dashboards, from anywhere and everywhere.Mobile agents will be an essential tool for allowing such access. Mobile agents are an effective choice formany reasons [LO99], and although not all applications will need mobile agents, many other applicationswill find mobile agents the most effective implementation technique for all or part of their tasks.

Although current trends in Internet technology and usage lead inevitably to the use of mobile agents, severaltechnical and non-technical hurdles must be addressed along the way. Although these hurdles representsignificant challenges, they can be cleared within years, and nearly all major Internet sites will accept mobileagents within five years. The goal of this position paper is to spark discussion about how best to realize thisoptimistic, but reasonable, vision.

2 Trends

There are several trends affecting Internet technology and activity:

Bandwidth. The telecommunications industry is laying down astonishing amounts of fiber. AlthoughInternet traffic is growing exponentially, the bandwidth soon to be available on the Internet backbone, aswell as to many offices and neighborhoods, is immense.

Nonetheless, bandwidth to many end users will remain limited by several technical factors. Many userswill still connect via modem, or at best, ADSL over the old copper loop. Many other users will connectvia low-bandwidth wireless networks. Most users can expect to see no more than 128 Kbps to 1 Mbpsavailable at their desktop or palmtop, although some asymmetric cable modems may reach 10 Mbps (fordownloads) [Gri99, DR99].

Page 8: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Perhaps more importantly, the gap between the low-bandwidth “edge” of the network, and the high-bandwidth “backbone” of the network, will increase dramatically as the backbone benefits from increasedquality and availability of fiber, while the edge remains limited by the fundamentals of wireless and copperconnections. We expect that this trend will continue even as local connections improve past 1 Mbps in thenext few years, since backbone bandwidths are improving much faster than local bandwidths.

Mobile devices. One of the hottest areas of growth in the computer industry is portable computingdevices. Everything from laptops to palmtops to electronic books, from cars to telephones to pagers, willaccess Internet services to accomplish user tasks, even if users have no idea that such access is taking place.Typically, these devices will have unreliable, low-bandwidth, high-latency telephone or wireless networkconnections.

Mobile users. Web-based email services1 make it clear that users value the ability to access their emailfrom any computer. Web terminals will become commonplace in public spaces, such as cafes, airports, andhotels. Eventually, particularly with the growth in bandwidth, users will have full access to all of their filesand applications from any terminal. Despite this, mobile devices will proliferate unchecked, since just aswith public phones, Web terminals will never be available everywhere that a user might find herself.

Intranets. Organizations are increasingly using Internet protocols, particularly HTTP, to build internal“intranets” for their own distributed-information needs. Since all access to an intranet is managed by asingle organization, new technologies can be deployed quickly, since (1) little coordination is needed withoutside organizations, and (2) security (within the intranet) is of less concern.

Information overload. Internet users are already overwhelmed by the sheer volume of available informa-tion, and the problem will get worse as the Internet grows. Search engines, shopbots, portals, collaborativefiltering, and email filtering are existing technologies that allow the user to reduce the torrent to a manageablestream, but these technologies are still quite limited.

Customization. Unlike broadcast media, the Internet makes it possible to customize access for each user.Current technologies allow customization at both the client (browser) and the server. Many Web sites includetheir own site-specific customization features, but the customization is increasingly provided by third-party“proxy” sites.

Proxies. Such proxy sites, which today are most often Web sites such as the various shopbots, interposebetween a user and one or more other Internet services. As a means to both reduce information overloadand customize service access, proxy sites will become more and more important. In particular, as portabledevices become more prevalent, highly specialized proxy sites will be provided to meet the special needs ofmobile users.

3 Mobile agents are inevitable

The trends outlined in the previous section inevitably lead to the conclusion that mobile code, and mobileagents, will be a critical near-term part of the Internet. Why? Not because mobile code makes new appli-cations possible, nor because it leads to dramatically better performance than (combinations of) traditionaltechniques, but rather because it provides a single, general framework in which distributed, information-oriented applications can be implemented efficiently and easily, with the programming burden spread evenlyacross information, middleware, and client providers. In other words, mobile code gives providers the timeand flexibility to provide their users with more useful applications, each with more useful features. Our fullargument roughly follows Figure 1.

Both the amount of information available on the Internet (a), and the number and diversity of its users (b),are growing rapidly. This diverse population of users will not settle for a uniform interface to the information,but will demand personalized presentations and access methods (c). This personalization will range fromdifferent presentation formats to complex techniques for searching, filtering and organizing the vast quantitiesof information (d). Today, such personalization facilities are provided at the information source in a site-

1e.g., http://www.hotmail.com/.

Page 9: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Mobile code to server or proxy(e.g., dynamically selected,previously unknown proxy)

High latency

Multi-hop mobile code (mobile agents)to multiple proxies or servers

"Customization"(e.g., re-formatting,filtering, metasearch)

Informationoverload

Diversifiedpopulation

Increased need for

personalization Bandwidth gap

Mobile codeto client

Disconnectedoperation

Mobile usersand devices

Avoid largetransfers

Server-sidecustomization

Proxy-basedcustomization

Too many unique,widely dispersedclients to handle

Avoid star-shapeditineraryMultiple sites

to visit

(a) (b)

(d)

(e) (f)

(g)

(h)

(i)

(j)

(k)

(m)

(n)

(o)

(p)

(c)

Figure 1: The trends leading to mobile agents

Page 10: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

specific manner (e), at a proxy Web site (f ),2 or (occasionally) as client software.3

Meanwhile, the network technology will lead to an increased gap in the bandwidth of the core Internet versusthe fringes of the Internet (g). Thus, most client hosts will shun large transfers of data (h). That trendencourages the migration of application functionality from clients into proxy sites (f ), which are presumablybetter connected to the core Internet, and need send only the final results over the slower connection to theclient. Furthermore, the dramatic availability of core bandwidth will allow these proxy sites to be aggressivein gathering, prefetching, and caching information on behalf of their clients.

Mobile users (i) will frequently disconnect from the network, and perhaps connect later at another locationwith poor bandwidth (j). This tendency again leads to the use of proxies (f ). It also encourages applicationprogrammers to choose a mobile-code solution to dynamically install the necessary client code (k) onto theWeb terminal or portable device. Moving code (applets) to the client allows a high level of interaction withthe user despite a high-latency, low-bandwidth, or disconnected network.

Ultimately, Web sites and other Internet services will not be able to efficiently provide the full range of cus-tomization desired by their clients, and clients will want to use the same information-filtering and -organizingtools across many sites. Moreover, fixed-location, application-specific proxies will become bottlenecks, andas user needs change, may no longer be at the best network location for accessing the proxied services. Asa result, customization tools will be specified as software, in the form of mobile code that runs either onthe server, or on a dynamically selected proxy site near the server (m). Mobile code is necessary, ratherthan client-side code, since many customization features (such as information monitoring) do not work if theclient is disconnected, has a low-bandwidth connection, or requires frequent communication with the server.Mobile code is beneficial, since servers and proxy sites need provide only a generic execution environment(along with an API that provides programmatic access to their service); the actual customization tools canbe written by the services themselves, by third-party middleware developers, and even by the end users.

Finally, many clients will wish to send mobile code to multiple information sites as part of a single task.Although there will be applications for which the mobile code can be sent in parallel, many tasks require asequence of subtasks, each at a different site. To avoid latency (n), the application programmer will oftenwant to avoid a “star-shaped graph” (o) where mobile code goes out to the first site and sends its resultsback to the client or proxy, the same or different piece of mobile code goes out to the second site, and so on,and the programmer will always want to be able to select the best migration strategy for the task and currentnetwork conditions. In other words, the mobile code must be able to hop sequentially through multiple sites;such multi-hop mobile code is a mobile agent.

4 Technical hurdles

There are several technical hurdles that must be cleared before mobile agents can be widely used.

Performance and scalability. Current mobile-agent systems save network latency and bandwidth atthe expense of higher loads on the service machines, since agents are often written in a (relatively) slowinterpreted language for portability and security reasons, and since the agents must be injected into anappropriate execution environment upon arrival. Thus, in the absence of network disconnections, mobileagents (especially those that need to perform only a few operations against each resource) often take longer toaccomplish a task than more traditional implementations, since the time savings from avoiding intermediatenetwork traffic is currently less than the time penalties from slower execution and the migration overhead.Fortunately, significant progress has been made on just-in-time compilation (most notably for Java), softwarefault isolation, and other techniques [MMBC97], which allow mobile code to execute nearly as fast as nativelycompiled code. In addition, research groups are now actively exploring ways to reduce migration overhead.Together, these efforts should lead to a system in which accepting and executing a mobile agent involves onlyslightly more load than if the service machine had provided the agent’s functionality as a built-in, nativelycompiled procedure.

2e.g., http://www.metacrawler.com/.3e.g., Apple’s “Sherlock” meta-search tool.

Page 11: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Portability and standardization. Nearly all mobile-agent systems allow a program to move freely amongheterogeneous machines, e.g., the code is compiled into some platform-independent representation such asJava bytecodes, and then either compiled into native code upon its arrival at the target machine or executedinside an interpreter. For mobile agents to be widely used, however, the code must be portable acrossmobile-code systems, since it is unreasonable to expect that the computing community will settle on asingle mobile-code system. Making code portable across systems will require a significant standardizationeffort. The OMG MASIF standard is an initial step, but addresses only cross-system communication andadministration [MBB+98], leading to a situation in which an agent can not migrate to the desired machine,but instead only to a nearby machine that is running the “right” agent system. The mobile-agent communitymust take the next step of standardizing on some specific execution environment(s) (such as a particularvirtual machine), as well as on the format in which the code and state of a migrating agent are encoded.

Security. It is possible now to deploy a mobile-agent system that adequately protects a machine againstmalicious agents [Vig98]. Numerous challenges remain, however: (1) protecting the machines without ar-tificially limiting agent access rights;4 (2) protecting an agent from malicious machines; and (3) protectinggroups of machines that are not under single administrative control. An inadequate solution to any of thesethree problems will severely limit the use of mobile agents in a truly open environment such as the Internet.Fortunately, groups are now exploring many new techniques, each of which addresses (or partially addresses)one of the three problems (e.g., agents paying for resource usage with electronic cash, which allows them tolive and propagate only as long as their cash supply holds out). Although many technical advances (anduser-education efforts) must be made before these three problems are solved adequately for all Internetapplications, current work is promising enough that, within five years, mobile-agent systems will be secureenough for many applications.

5 Non-technical hurdles

Once the technical challenges have been met, there remain several non-technical issues that may deter thewidespread adoption of mobile-agent technology. Internet sites must have a strong motivation to overcomeinertia, justify the cost of upgrading their systems, and adopt the technology. While the technological argu-ments above are convincing, they are not sufficient for most site administrators. In the end, the technologywill be installed only if it provides substantial improvements to the end-user’s experience: more useful ap-plications, each with fast access to information, support for disconnected operation, and other importantfeatures.

Lack of a killer application. The most important hurdle is that there is no “killer” application for mobileagents. The “mobile agent” paradigm is in many respects a new and powerful programming paradigm,and its use leads to faster performance in many cases. Nonetheless, most particular applications can beimplemented just as cleanly and efficiently with a traditional technique, although different techniques wouldbe used for different applications. Thus, the advantages of mobile agents are modest when any particularapplication is considered in isolation. Instead, researchers must present a set of applications and argue thatthe entire set can be implemented with much less effort (and with that effort spread across many differentprogramming groups). At a minimum, making such an argument demands that the mobile-agent communityactively support anyone who is writing a high-quality survey of mobile-agent applications, since no one groupwill be able to implement a sufficient number of applications. Once a clear quantitative argument is made,a few major Internet services can be convinced to open their sites to mobile agents, since they will recognizethat agents will lead to more applications based around their services and hence more users. From there,more Internet services will follow.

Getting ahead of the evolutionary path. It is unlikely that any Internet service will be willing to jumpdirectly from existing client-server systems to full mobile-agent systems. Researchers must provide a clearevolutionary path from current systems to mobile-agent systems. In particular, although full mobile-agent

4Many mobile-agent systems reduce an agent’s access rights when it arrives from a machine that is not trusted, even if itwas launched from a trusted user at a trusted site. The concern is that the agent may have been maliciously modified at theuntrusted site.

Page 12: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

systems involve all the same research issues (and more) as more restricted mobile-code systems, researchersmust be careful to demonstrate that the switch to mobile agents can be made incrementally.

For example, “applets”, mobile code that migrates from server to client for better interaction with the user,are in common use, and the associated commercial technology is improving rapidly (e.g., faster Java virtualmachines with just-in-time compilation). From applets, the next step is proxy sites that accept mobile codesent from a mobile client. In all likelihood, such proxies will be first provided by existing Internet serviceproviders (ISPs). Since the sole function of the proxy sites will be to host mobile code, and since the ISPswill receive direct payment for the proxy service (in the form of user subscriptions, although not likely at afixed rate), the ISPs will be willing to accept the perceived security risks of mobile code. Once mobile-codesecurity is further tested on proxy sites, the services themselves will start to accept “servlets”, mobile codesent from the client directly to the server (or from the proxy to the server).5 Once servlets become widelyused, and as researchers address the issue of protecting mobile code from malicious servers, services will startto accept mobile agents.

Another critical evolutionary path is the migration of agent technology from intranets to the Internet.Mobile-code technologies will appear first in the relatively safe intranet environment, particularly intranetsthat are built on high-latency networks such as a WAN or a wireless network for mobile computers. Forexample, a large company, particularly one with a mobile workforce, might find mobile agents the mostconvenient way to provide its employees with a wide range of access to its internal databases. Intranets tendto be early adopters of new (useful) technology, because their administrators have more control over theintranet than over the Internet; that control means that security is less of a concern, and wide deploymentof agent support services can be encouraged. As the technologies mature in intranets, site administratorswill become comfortable with them, and their practicality, safety and potential uses will become clear. Thenthey will find their way into the Internet.

Revenue and image. A final important hurdle is the problem of revenue flow and commercial image.For example, although it is not yet clear whether advertising is a viable economic foundation for Web sites,many Web sites earn money solely from advertisements. If these sites allow mobile agents to easily accessthe content of the site, the number of human visits to the Web pages will presumably decrease, and theadvertisements will not be seen. How, then, will the site earn revenue? Similarly, when users are accessinga service with a front-end backed by mobile agents, the distinction between the service and the front-endagents starts to blur. Since the agents will likely be provided by middleware developers, the Internet servicewill no longer have complete control over its image. A poorly implemented agent may lead to a negativeview of the service, even though the service is blameless. We believe, however, that mobile agents can bedeployed in the near-term in many applications where the existing services do not rely on advertising; in thelong-term, both the Internet and mobile-agent communities will need to explore different revenue models.

6 Conclusion

There is a strong case for the use of mobile agents in many Internet applications. Moreover, there is a clearevolutionary path that will take us from current technology to widespread use of mobile code and agentswithin the next five years. Once several technical challenges have been met, and a few pioneering sites installmobile-agent technology, use of mobile agents will expand rapidly.

7 Acknowledgments

Many thanks to the Office of Naval Research (ONR), the Air Force Office of Scientific Research (AFOSR),the Department of Defense (DoD), and the Defense Advanced Research Projects Agency (DARPA) for theirfinancial support: ONR contract N00014-95-1-1204, AFOSR/DoD contract F49620-97-1-03821, and DARPA

5Like applets, and unlike agents, servlets are mobile code but not mobile processes. The code is moved from client to server,starts execution, and later ends execution on the same machine. It cannot migrate further once it starts executing.

Page 13: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

contract F30602-98-2-0107; to Jon Bredin, Brian Brewington, and Arne Grimstrup for invaluable feedback onearly drafts of this paper; and to the anonymous reviewers for their useful and thought-provoking comments.

References

[DR99] Amitava Dutta-Roy. Bringing home the Internet. IEEE Spectrum, 36(3):32–38, March 1999.

[Gri99] Corey Grice. When will data change the wireless world? CNET NEWS.COM, February 10,1999.

[LO99] Danny B. Lange and Mitsuru Oshima. Seven good reasons for mobile agents. Communicationsof the ACM, 42(3):88–89, March 1999.

[MBB+98] D. Milojicic, M. Breugst, I. Busse, J. Campbell, S. Covaci, B. Friedman, K. Kosaka, D. Lange,K. Ono, M. Oshima, C. Tham, S. Virdhagriswaran, and J. White. MASIF: The OMG MobileAgent System Interoperability Facility. In Proceedings of the Second International Workshopon Mobile Agents, volume 1477 of Lecture Notes in Computer Science, pages 50–67, Stuttgart,Germany, September 1998. Springer-Verlag.

[MMBC97] G. Muller, B. Moura, F. Bellard, and C. Consel. Harissa: A flexible and efficient Java envi-ronment mixing bytecode and compiled code. In Proceedings of Third USENIX Conference onObject-Oriented Technologies and Systems (COOTS ’97), pages 1–20, 1997.

[Vig98] Giovanni Vigna, editor. Mobile Agents and Security, volume 1419 of Lecture Notes in ComputerScience. Springer-Verlag, 1998.

Page 14: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

����������� ������������������������� �!�#" ������$����&%'�)(*����+,�-�.���/�0 �/�1�2����!����3546�����8794����:��+ ;<�1�>=9?@�A3$48B

CED1F�G-HJILK/MONQPRPRNTSU)V�WRXYMOV:NZ\[^]`_a_b]Tcd9egf�h.[iej]YkmlEnj]po hYq'r�sY[^t`uvh.hwf*kyx'h.z

K�F�G-G{F}|@~��������9�!P�MO��WRMb�wV� ]`omoyrAx`nY[�k�n�eY[ tY]Ykyx`�

�9N'V�WRPRN�D)V!M��YN'P��RM�W��wM�PRNE�>���V:�vXYP����`WRMO���!ND)V!M��YN'P��RM�W��Xw��|@NQV!NQ�`�

�2��M�W��QN'PR O�wV!�U1¡!P�MO �¢w£>¢g¤Y¤Y¤

¥Q¦�§g¨j©\ª-«�¬w§g­®©�¦¯>°j±-²Q³Q´*µp³T¶�·¸°j¹»º�¼p´*¼`±�½�¹»º$·¸³�¾g±Rºa¿À½a¹iÁw±-Âj³�ÃQ±Àµ`´*¼j¼jµi¹i¿�´�·¸¹m³QÂpº$³*¶2ÄE³*Áj¹iµi±�Å�³g¾g±{·¸±�¿Æ°jÂp³*µi³*²*Ç�È\°j¹»¿Æ°�°p´�Ã*±Âj³T·9´T¼j¼w±�´*½a±R¾ÉÇ*±�·�ÁjÊg·9ºa°j³QÊjµi¾ÉÁw±�¶�±R´*ºa¹mÁpµm±�È\¹m·a°Ë³*Êj½9¿�Êj½¸½a±�Â'·�Ì'Âp³�È\µm±R¾g²*±�³*¶\·a°j±�¾j³*Í�´T¹iÂ�Î@¯>°j±Rº®±Âj±ÀÈÏ´T¼j¼jµi¹»¿À´�·¸¹m³QÂpº�¿À³*Â'·a½Æ´*¾j¹i¿�·�·a°p±�³*¶�·a±ÀÂjÐOÍ�´*¾j±J³*Á`º®±�½aÃ�´�·¸¹m³QÂ�·a°p´T·�Ä@³*Áj¹iµm±ÑÅ�³g¾g±J¹»º�ÒvÊpº®·�´*Âj³T·¸°j±À½·a±R¿Æ°jÂj¹»ÓQÊp±�·¸°p´�·�¾g³Ô±�º9Âj³*·9½¸±�´*µmµiÇÕÁj½¸¹mÂp²JÍ}Ê`¿Æ°ËÍ�³*½¸±)¼w³Qº¸ºa¹mÁj¹iµi¹�·¸¹m±Rº}·¸°p´TÂ�±�Ög¹»ºv·¸¹mÂp²J·¸±�¿Æ°jÂj³Qµm³Q²*¹i±�º�¶�³*½¾g¹»ºv·¸½a¹iÁjÊg·¸±�¾�´T¼j¼pµm¹»¿À´T·a¹i³*Âpº�Îׯ>°j±À½¸±E¹»º�´ØÈ\°j³*µi±@¿�µ»´*º¸º�³T¶�¼j½¸³*Ájµi±ÀÍ�º9·a°`´�·�°p´�ÃQ±1Âp³T·�½¸±�¿�±�¹mÃQ±�¾ÙÍ}Êp¿Æ°´�·a·a±ÀÂ'·¸¹m³QÂ9ÇQ±�·�´*Âp¾�·a°p´T·�´T½¸±�Âp³T·$È�±ÀµiµjÍ�´TÂp´*²*±�¾�ÁÔÇ�¿ÀÊj½a½¸±ÀÂ'·5±ÀÂÔÃÔ¹i½a³QÂjÍ�±ÀÂ'·¸º�Î.¯>°j±Rº®±{´*½a±�·¸°j±{¼j½¸³*Ájµi±ÀÍ�º³T¶�Í�´T¹iÂ'·¸´T¹iÂj¹iÂj²�¿�³QÂpºa¹iº®·a±�Âp¿�Ç�³T¶�¾gÇÔÂp´TÍ�¹»¿>¹mÂj¶�³*½¸Í�´T·a¹i³*Â�´TÂ`¾�Í�´*¹mÂ'·Æ´T¹iÂj¹mÂp²�º®Çgº®·a±ÀÍ�º�¹mÂ�´Q¾g±�Ó'Êp´Q¿�Ç�È\¹m·a°·a°j±/±�Ã*±�½>¿Æ°`´TÂj²Q¹mÂj²�½¸±�Ó'Êj¹i½a±�Í�±ÀÂ'·¸º�³T¶5¿�Ê`ºv·¸³*Í�±À½ÆºÀÎÚ Êj½}Í�³T·¸¹mÃ�´T·a¹i³*ÂÕ¹»º/·a°`´�·�Û5Áw±�ºa¹»¾g±�º�·a°j±1ÓQÊ`´TÂ'·a¹m·¸´T·a¹iÃ*±�¹iÍ�¼j½a³�ÃQ±ÀÍ�±ÀÂ'·ÆºA·a°p´T·�Í�³Qº®·}¼w±À³*¼pµm±)±�Ög¼`±R¿·

¶�½a³QÍÜÊpºa¹iÂj²ÑÄE³*Áp¹mµi±�Å�³g¾g±*Û�·a°p±À½¸±E¹iº�´*µiºa³Õ´ÕÓ'Êp´Tµi¹�·Æ´�·¸¹mÃQ±1Áw±ÀÂp±�Ýj·1È\°j¹i¿Æ°�¹»º�±ÀÃQ±ÀÂ�Í�³*½¸±�¹mÍ�¼w³*½a·¸´TÂ'·ÁjÊg·�Âj³T·�ÊpÂj¹mÃQ±À½Æºa´*µmµiÇ}½¸±�¿À³*²QÂj¹mÞ�±�¾9Âj³�È/ß!ÄE³*Áp¹mµi±AÅ�³g¾g±-´*µmµi³�È{º$¿�³QÍ�Í}ÊjÂj¹»¿À´T·a¹i³*Â�È\¹m·a°@àiáâÆâAãÆä�å`æ�áÀåpçOè�ä�åpâ·a°p´*Â@Í�±�º¸ºa´*²*±�¼`´*º¸º®¹iÂj²�é êÔÛ�ë�ìbÎ/í$½¸³Ô¿À±�º¸º®±Rº\¹iÂQ·¸±À½Æ¿�³QÂjÂj±�¿�·a±R¾EÁÔÇ�Ä@³*Áj¹iµm±�Å�³g¾g±�º®·a¹iµiµ:°`´�Ã*±/·¸³)´T²Q½a±�±�³*°j¹i²*°Jµi±ÀÃQ±Àµ!±ÀÂ`¿�³g¾g¹iÂj²1´*Âp¾JºaÇÔÂp¿Æ°j½¸³*Âj¹iÞ�´T·a¹i³*Â@¼p½a¹iÍ�¹�·¸¹mÃQ±�ºAÁjÊg·�·a°p±�ºa±9´*²*½¸±À±ÀÍ�±�ÂQ·Æº�´*½a±9³*ÂpµmÇ@´�¶�½¸´Q¿·¸¹m³Q³T¶$È\°p´T·�¹»º-Âp±�¿�±Rºaº¸´T½¸Ç)·a³)¿À³*Í�Í}ÊpÂj¹i¿�´�·¸±*Î�ÄJ´TÂÔÇE¿�³*Â'·¸±�ÖÔ·�¾g±�¼`±�Âp¾g±ÀÂ'·/´*ºa¼`±R¿·Æº�¿�´TÂ@Áw±�±�Âp¿À´*¼pºaÊjµi´T·a±R¾¹mÂ`º®¹»¾g±JÄE³QÁj¹iµm±ÕÅ�³Ô¾j±J´TÂp¾�¿Æ°`´TÂj²Q±�¾�È\°j±ÀÂ×·a°j±Ø¿�³*Â'·¸±�ÖÔ·)¿Æ°p´*Âj²*±RºÀÎïî$Â`¿À´T¼`º®Êjµ»´�·¸¹m³QÂ�°p´*º�·a°j±Jº¸´TÍ�±Á`±�Âj±�Ýp·¸º�°j±À½¸±�´*º}¹mÂÕ³*·a°j±�½}º®³*¶�·vÈ�´*½a±�±�Âj²*¹iÂj±�±À½¸¹mÂj²@¾j³*Í�´T¹iÂpº�ß}¹m·�½¸±�¾gÊp¿À±�º�·¸°j±�¾g±�¼`±�Âp¾g±�Âp¿�ÇÉÁw±�·vÈ�±À±À¿�³QÍ9¼w³*Âp±ÀÂ'·¸º�ÛR·a°ÔÊpº�½¸±�¾jÊp¿�¹iÂj²\·¸°j±�ÂÔÊjÍ�Á`±�½2³*¶jÍ9³g¾g¹mÝ`¿�´�·a¹i³*Â`º�·a°`´�·.È�±$Í�Êpºv·:Í�´TÌ*±$·a³-ºa³T¶�·vÈ>´T½¸±5¹mÂ}³*½Æ¾g±À½·a³9´*¾j´*¼g·�¹m·�·¸³}Âj±�È×½¸±�Ó'Êj¹i½a±�Í9±�Â'·¸º�Î:ðp³*½$·¸°j¹»º�½¸±�´Qº®³QÂ�È�±-·a°j¹iÂjÌ�·¸°p´�·�¹�·>¹iº�·a°p±�Áw±�º®·�È>´�Ç�·a³�¿À³*¼w±-È\¹m·a°º®Çgº®·a±�Í�º.·¸°p´�·$´T½¸±/ñ�è»âç�òè�óÀôgçõá¸ñTÛ*°j±�Âp¿�±>Âj³*·5Í�´*Âp´T²Q±�´*Ájµm±�ÁÔÇ�´Aºa¹iÂj²*µi±�¼w±À½Æºa³*Â}³Q½!³*½¸²Q´TÂp¹mÞR´�·a¹i³*Â2ö�·a°p´T·5´*½a±ñ�÷�åYø�ù9è�ã�Û!Áw±�¿À´*Êpºa±�·a°j±�¹mÂg¶�³Q½aÍ�´T·a¹i³*Â�·a°j±�ÇØ¿À³*Â'·¸´*¹mÂÉÍ}Ê`ºv·�¿Æ°`´TÂj²Q±9È\°p±ÀÂÉ·a°p±�È�³Q½aµ»¾�¹�·Æº®±�µ�¶{¿Æ°p´*Âj²*±RºÀö´TÂp¾Ù·¸°p´�·�´*½a±ÑáÀæ�äTàyæ�è�åÔú@ºa¹mÂ`¿�±�·a°p±@Êpºa±À½Æº�¾g¹iº¸¿�³�ÃQ±À½�Âj±�ÈûÈ>´�Çgº}·¸³ÕÊpºa±�·a°j±�Íü´TÂ`¾Ë·¸°j±@¹iÂg¶�³*½¸Í�´�·¸¹m³Q¼j½¸³�Ã'¹»¾g±R¾�ί>°j±-Áp´Qº®¹»¿\¹»¾g±�´�¹iº�·a³�°p³'³QÌ}¶�³Q½a±�¹m²QÂ�ÄE³*Áj¹iµi±�Å�³g¾g±\·¸³�´/½¸ÊjÂjÂj¹iÂj²}´*¼j¼jµi¹i¿�´�·¸¹m³QÂ�È\¹�·¸°j³*Êg·�¹mÂ'·¸±À½a¶�±À½¸¹mÂj²

È\¹�·¸°É¹�·Æº�Áp´*ºa¹i¿�¶�ÊjÂ`¿·a¹i³*Â`´Tµi¹�·vÇJ´*Âp¾J·a³�±�Ög±�¿ÀÊg·a±9·¸°j±�ºa±�ÄE³*Áj¹iµi±9±�Ã*±�ÂQ·/°p´*Âp¾gµi±À½ÆºA·a³�¼w±À½a¶�³*½¸Í�´TÂÔÇ@Âj±�È·¸´Qº®ÌɹiÂÙ¿�³QÂjÂj±R¿·a¹i³*ÂËÈ\¹�·¸°Ñ·a°p±1´*¼j¼jµi¹i¿�´�·a¹i³*Â2Îد>°j±1¹iÂQ·¸±À½¸±�º®·�¹»º�·a°p´T·9È\¹m·a°Ù³*ÂjµiÇÕ´JºaÍ�´*µmµ>ÂÔÊjÍ�Á`±�½�³*¶´*¾j¾j¹�·¸¹m³QÂp´TµY¿�³QÂpºv·¸½¸´*¹mÂ'·Æº5¹mÂ�·a°j±A³*½¸¹i²*¹iÂp´Tµp¾j±�ºa¹m²QÂ�³T¶�·¸°j±AºaÇgºv·¸±ÀÍý¹m·�Áw±�¿À³*Í�±�º�¿�³*Í�¼jµi±�·¸±ÀµiÇ�´*¾j´*¼g·¸´*Ájµi±\·a³¶�Êg·aÊp½a±/Âj±�±�¾jº\´*Âp¾�´TµiµY·a°j±/¹iÂg¶�³Q½aÍ�´�·¸¹m³QÂ)¹m·{Í�´TÂp´*²*±Rº�Áw±�¿À³*Í�±�º\´�Ã�´*¹mµ»´TÁjµi±A¶�³*½\Âj±�Èþ¼jÊp½a¼w³Qºa±�º�Îÿ�������� ����� ���������������������������������������� �������!��� "#��$��%�'&)(����*������+���,�.-/���0��21�����3�-/��45�6�2��� ����� �����!-7�0���6���8�������

9 &;:,�������45��:��<&)(����0��)-7����3=����������� 9?>�@�@�@

Page 15: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

ACBEDGFEH�IKJML�D<NPOQ2R�SUT�V�W�T<X�SZY�[�\^]_Va`Zbdc�b�X�W0eGXdf'`gXih5\^]=]jh!SUTdkMlmS�T+`Z]^SUR�nEo�W0T�\=SjV�S6l�X�\^epW�hqW!er[�b�XiY�W�`�Y�]=W X�Sps6t�u�vxw*v y�sgu2zh5f�`gX#\_bZnUS�\=R�n{X�S|f�`6o�o�W0R}`6T�S�[�R'V~\�X,�r��f�Wr��T�b�X#kj\^R'V�S�l!V�cjR�`6ep\_b�e?hqWaf�`���W�XdS~V�W�`�]ih5\�X�f�\_bMXdf�WV�cjR�`6ep\_�*\^X�c�S�l;X�f�W�h!SUTd]_V�\�X�b�W�]�l��!o'W�S�o�]=W�`6T�W#eaSg�j\=R�n���SUY���W��*X�b�`�TdW��0TdW,`gXdW,V7��W*����f�`�R�n�W,V7��V�W,b�X�TdSgcUW�V7�R�W0h�Y�S�SUk�b+`6T�W!o�[�Y�]^\_bdf�W�V7��W*X��6�i�<S#Y�W�[�bdW*lm[�]�eaS�b�XKbdc�b�X�W0e�bie�[�b�X+X�`�k�WqXdf�W�bdW���f�`6R�nUW�b)\=RUX�S�`����*S�[�RUX`6R�V�TdW0��W��*XrX�f�W0e�\=R�X�f�W�\=R�lmSUTde�`gX�\^SUR�X�f�W0c��0S�R�X�`�\^R�`�R�V�S���W�T����}W���`6R�S�l�XdW�R�`6R�X�\=�0\^o�`6XdW�Xdf�W,b�W��f�`6R�n�W�b�\�lKhqW�Y�[�\=]_V�`�n�SjS�V|epS�V�W0])S6l+X�f�W�hqS�T�]=V|SUR~h5f�\=��f�S�[�TEbdc�b�X�W0e�\_b�Y�`Ub�W,V~`6R�V~\^lKhqW�kjR�Sghf�Sgh�X�S�V�W*X�W���X�W���W�RUX�b5`6R�V�f�`�R�V�]=WMXdf�W�e h5\^Xdf�\=R~S�[�T5V�cjR�`�ep\=��bdc�b�X�W0e|�

¡!T�SU`UV�]=c�bdo'W,`6kj\=R�n{epSUb�XMbdc�b�X�W0e�b�X�f�`gXMf�`6R'V�]^WrW0�UW0R�X�bM`6R�V�h!SUTd]_V~V�cjR�`6ep\_�*\^X�c~�*S�o�W�Yjc~`6o�o�]^c�¢\^R�n�X�f�W�o�T�\^R'�*\=o�]^W�S�l y/£�¤*¥�v_¦�§�sgt/¨|¦�£�¤�¦0w0©�vx¤�z*����f�\=b�o�Td\=R��*\=o�]=W�S6lqo�[�Y�]=\=bdf�`6R�V�bd[�Y�b��*T�\^Y�WalmS�T�W���W0R�XR�S6X�\����0`gX�\^SURC\_b�bdS�nUW0R�W�T�`�];X�f�`gX�\^X�hq`Ub#`6]=TdW,`�V�c~\=RC['b�Wp]=S�R�n�Y'W0lmS�T�W��*S�epo�[�XdW0T�b#W*��\_b�X�W�V7�aQ8X�\_bMXdf�WR�`gX�[�T�`6]�h�`�crXdSao�`�b�bK\=R�lmS�T�e�`gX�\^SUR�XdSr\^R�XdW�TdW,b�X�W�V�o'`6TdXd\=W�b `�R�V�X�f�W0T�WE\_b!R�S�hqS�R�V�W0TKX�f�`gX�\^X!\_b!o�TdW,b�W�RUX\^R�bdS{e�`6Rjc�V�\��/W0T�W0R�X#�*S�R�X�W*�jX�b5\=R~X�SjV�`�c�ª b5\=R�lmS�T�e�`gX�\^SUR�b�c�b�XdW0e�b���lmT�S�e«W0]=W��*XdT�S�R�\_�#e�`6\=]^\=R�n{]=\=b�X�b�XdS¬ o�['b�f���f'`6R�R�W�]=b�­�`�R�V�\=R�b�\_V�W!S�Y���W,��X�¢8S�T�\=W0R�XdW,V�`6o�o�]=\_�0`gX�\^SUR�b.[�R�V�W0T�]=c�\=R�nEXdf�W ¬�® Y�bdW0T��g`6Y�]=W*¢ ® Y�bdW0T���W�T�­¯EW,b�\=n�R|°+`gXdXdW�TdR.�

Q8XE\=b�e�[���f�epS�T�W#V�\�±{�*[�]�X�X�S{`6R�Xd\_�*\=o�`6XdW�f�Sgh²[�b�W�T�b5`�TdW#nUS�\=R�naXdS�[�bdW�`�b�[����*W,bdb�lm[�].\=R�lmS�T�e�`gX�\^SURb�c�b�XdW�e��iQ8l;Xdf�W�bdcjb�XdW�e³f�`�bqW�R�S�[�nUf�[�bdW0T�b���\^X5\=b�`�]^epSUb�X5�*W0TdX�`�\^R�Xdf�`6X!X�f�W0c�h5\^]=]7\^Rj�UW0R�X!R�W�h´h�`�c�b S�l[�bd\^R�n�\�X#`6R�V~V�\_b��*Sg��W�T�R�W�hµT�W�¶�[�\=T�W0epW0R�X�b�Xdf�`6XEhqW0T�W��*SUeao�]^W0XdW0]=c�[�R�o�T�W�V�\_��X�`6Y�]=W��Z�<S�b�`gX�\=b�lmc�Xdf�W,b�WR�W0h·R�W�W�V�b��.S�[�T�b�c�b�XdW0e¸e�[�b�X�Y�W{`6Y�]=WaXdS|W0�US�]=��W���¹K�jo�W0T�\=W0R��0Wpbdf�Sgh�bZXdf'`gX�bdcjb�XdW�e�bMXdf�`6X��0`6R�R�S6XW0�US�]=��WZXdW0R'V�X�SpY'W�SUY�b�SU]^W0XdW,V�`�R�V�TdW�o�]=`U�*W,V{Yjc{X�f�W0\=T5epS�T�WMo�SghqW0Tdlm[�].�*SUeao�W*X�\�X�S�T�b0�

Q8X�\=b�V�\=b�`6o�o�S�\=R�Xd\=R�naXdS�bdW0W#Xdf'`gXEbd[���f�`a�g`6]=[�`�Y�]^W#o�T�\=R��*\=o�]=W�`�b�o�[�Y�]^\_b�f~`�R�V�bd[�Y�b��*T�\=Y'W�V�SjW,b�R�S6Xf�W0]=o~e�['��f|XdS�`U�0�*SUepeaS�V�`6XdW�X�f�W�o�S6X�W0R�Xd\_`6];R�W0W,V�b�S�lK[�b�W�T�b��qQ8XZ\_bE`plx`U��X�X�f�`gXM\�liXdf�WrV�W,b�\=n�R�W�T�S6lK`b�c�b�XdW�e«f'`�b�R�S6XZo�TdSg�j\_V�W�V�X�f�WrT�\=n�f�XE\=RUX�W0Tdlx`��0W���\�X#h5\^]=])R�S6XMY'Wao'S�bdbd\=Y�]^W�XdS�`U�0�0W�b�b5Xdf�Wr\=R�lmS�T�e�`gX�\^SURR�W0W,V�W�V.��W0�UW0R�\�li\�XZ\=b�Y�[�Td\=W�V|bdS�epW0h5f�W�TdW#\=R�Xdf�W�bdc�b�X�W0e|�+Q8X�h5\^]=]<`�]=bdSpR�S6X�Y�W�o'S�bdbd\=Y�]^WMX�S�n�W*X5W���W0R�XR�S6X�\����0`gX�\^SUR�b���[�R�]^W,bdb;b�SUeaW+kj\=R�V#S6l�bd[�Y�b��*T�\^o�Xd\=S�R#\=b;`��g`6\=]=`�Y�]^W+\=R#Xdf�WK\^R�X�W0Tdlx`��*WU�;º�S�T7X�f�\=b<o�[�T�o'S�b�WU�,Xdf�WV�W�bd\=n�R�W�T5h5\^]=]<f�`��UWMXdS���f�SjS�b�W#h5f�\_��f|\^R�lmSUTde�`6Xd\=S�R|\=b�S�Y�bdW0T��g`6Y�]=W�`6R�V�h5f�W�R~`6R�V|f�SghµR�S�Xd\^�'�0`6Xd\=S�R�bh5\^]=]jY'W�o�T�S�o'`6nU`6XdW,VMXdSM[�b�W�T�b��<�»\^XdfrXdf�\=b+b���f�W0epWqb�SUeaWqW*�jX�W0R�bd\^SUR�b)`6T�W o�SUb�b�\=Y�]=W��6Y�[�XibdSjS�R�W�T;SUT)]_`gX�W0T]^\=ep\�X�`gX�\^SUR�b5h5\=]^])`6o�o�W�`�T5lmS�T�\=R�b�X�`�R��*W�Y�W���`6[�bdW�\=RUX�W0T�W�b�Xd\=R�n�W0�UW0R�X�b5`�TdW�R�S6XEo�T�S�o'`6nU`6XdW,V�SUT5Y'W,�0`6['b�WXdf�W�o�TdSUo�`6n�`gXd\=S�R�bd��f�W�epWM\_b�V�\^±{�*[�]^X5XdS�['b�WU��S�T5\=R�W*±{�*\=W0R�X,��W*X��6�

¼ S�epW�h5\=V�W�]^c�[�bdW�V�b�c�b�XdW0e�brf�`���W�W0��W�R�Y�W0W0R ¬ �j\_��Xd\=e�b�S�l5Xdf�W�\^TpSgh5R�bd[��0�0W�b�bd­��pY'W,�0`6['b�W�]^S�X�bS6l+[�bdW0T�b5h5\^Xdf��0S�R���\_��X�\^R�n�R�W0W,V�b�hqW0T�W�[�bd\^R�n{Xdf�W�e��'Xdf�W0c|�*S�[�]=V|R�S�XEY�W�lm[�TdXdf�W�TE[�o�nUT�`UV�W�V�h5\^Xdf�SU[�X¬ lmSUTdkj\=R�nU­�\^R�XdSa\=R��*SUeao'`gXd\=Y�]=W#o�TdS�V�['��X�b��+Q8X5\=bqX�f�W�bd`�epWZo�f�W0R�SUeaW�R�S�R�Xdf'`gX5S��0�*[�T�bqh5\^Xdf|b�[����*W,bdb�lm[�]o�T�S6XdS��0S�]_b7]^\=k�W Q�°i��½E�5�5°�S�T<½Z�5¾�¿K��Xdf�W�c�`6T�W+\^R�b�X�`�]^]=W�V�S�R�ep\^]=]=\^SUR�b.S�ljf�SUb�X�b���X�f�W0c#¶�[�\_��k�]=cMn�W0R�W0T�`gXdWR�W0h·R�W�W�V�b#lmSUT�h5f�\_��f�R�W0hPbdS�]=[�Xd\=S�R�b�W*��\=b�X�Y�[�Xa`6T�Wp`�]^epS�b�X�\=epo'S�bdbd\^Y�]^WpX�S�`�V�SUo�X�Y'W,�0`�[�b�W�S�l�Xdf�W�*S�b�X�b�S6l;[�o�n�T�`�V�\=R�npW0�UW0T�c�\^R�X�W0T��*S�R�R�W��*XdW�V�f�S�b�X�`6R'V�X�f�W�T�\=bdkpXdS�\=R�XdT�SjV�[��*W#\=R��*SUeao'`gXd\=Y�\=]^\^Xd\=W�b��

À R�S�Xdf�W�Tq�0S�R��0W0T�R{\=b Xdf�WZV�\^±{�*[�]^X�cplmS�T!o'W�S�o�]=W�X�S�w�Ág¥�¥^sU¤�Ág©ds6u8z�\=R{SUT�V�W�TKX�S�e�`6\=R�X�`6\=R{\=R�lmS�T�e�`gX�\^SURb�c�b�XdW�epb��;¿;`6T�n�WqV�\=b�XdT�\=Y�[�XdW,V�bdc�b�X�W0e�b)Y'W�]^SUR�nEX�SMV�\��/W0T�W0R�XiW0R�Xd\^Xd\=W�b�Âmo�W0SUo�]=W��6SUTdn�`6R�\=Ã�`6Xd\=S�R�b�Ä/Y�W*X�hqW0W0Rh5f�\_��f��*S�]=]_`6Y�S�T�`gXd\=S�R�ep\^nUf�XER�S6XZY'Wro'S�bdbd\^Y�]^WU��lmS�TE\^R�b�X�`�R��*W�Y'W,�0`6['b�W�X�f�W0T�W�`�TdW#X�S�S�ep`�Rjc�[�bdW0T�b0�'S�T[�bdW0T�b�`6T�WrX�SjS|lx`6T,�<S�T�bd[�o�o�S�TdXd\=R�n�Xdf�W�b�W�Td�j\_�*Wp\_b#XdSjS|W*��o�W0R�bd\^�UW�S�T�`�]^] V�W0��W�]^SUo'W�T�b#`�TdWpn�SUR�W����CWR�W0W,V�XdSa��R�V|bdS�]=[�Xd\=S�R�bqX�Spk�W0W�o~b�c�b�XdW0e�b�[�bdW*lm[�].h5\�X�f�S�[�X5Xdf�W�R�W�W�V�lmS�T�X�S�S�er[���f|�*S�]=]_`6Y�S�T�`gXd\=S�R<�

Å I LdÆ5Ç�È�I!É JZÊiO�D<ËÌI É�Í�IKJZÈdL�DÏÎCI5Ë�D�<S�bdS�]=��WqXdf�W5o�TdSUY�]=W0e�b+V�W�b��*T�\=Y'W,V�\=RaXdf�W5o�T�W0�j\=S�[�bibdW��*Xd\=S�R.��Xdf�W5o�SUb�b�\=Y�\=]^\^X�c�S���W�TdW,V�Yjcr¾�S�Y�\=]^WEÐ!S�V�WXdS|W0R'�0`6o'b�[�]_`gX�Wa�0S�Rj��W�R�Xd\=S�R�b#`6R'VC`UV�`6o�X�o�T�S6X�S��*S�]_bEXdS|R�W0h·R�W�W�V�b#\_b#W*�jXdT�W0epW�]^c��g`�]^[�`�Y�]=W�� ¼ S|S�[�Tn�S�`6]<\_bZXdS�[�b�Wp¾~SUY�\^]=W{Ð!SjV�W�XdS�ep\^R�\^ep\=Ã0WrXdf�WaRj[�e�Y�W0T#S6l �0S�Rj��W�R�Xd\=S�R�b�Xdf�`6XMhqS�[�]_V~T�W�¶�[�\=TdWre�[���f`6R�Xd\_�*\=o�`6Xd\=S�R�SUT�e�['��f��*SU]^]_`6Y�S�T�`gX�\^SUR.����f�\_bpb�SU]^[�Xd\=S�R�\_b�R�S6XpTdW�]=`6XdW�V�XdSC`�o�`6TdXd\_�*[�]=`�T�XdW,��f�R�SU]^SUn�cÂx¾~W,bdbdW0R�n�W0T�b���¾~S�Y�\^]=W ® Y���W��*X�b��U¾~SUY�\=]^W À n�W0R�X�b0��b�X�TdSUR�n#S�T+hqW�`6k�eaSUY�\=]^\^X�c���W*X��6�Ä�Y�[�X XdS�X�f�W5n�W�R�W0T�`6]

Page 16: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Ñ~Ò�Ó�Ô^Õ=Öp×!Ò�Ø�Ö�Ù'Ú6Û�Ú�Ø�Ô=Ü�Ý|Þ�ß�ÒgàqÖ0áUÖ0Û,â�Ô^ãZÔ_äEå�Ò6ãZå�Ö�æ*Ö,ädä�Ú6Û�Ô=Õ^ç�ä�ã�Û�Ú�Ô^ÜUèUãdémÒ�Û�àqÚ�Û�Ø�ãdÒ�Ô^ÝpÙ�Õ=Ö0ÝpÖ0å�ã#à5Ô�ã�è�Ú6Õ=Õæ*ê�Û�Û�Ö0å�ã�Ñ~Ò�Ó�Ô=Õ=Ö�×!Ò�Ø�Ö#Ö�å�ájÔ=ÛdÒUå�ÝpÖ0å�ã�ä�Þ

ë2åaÝ�Ú�å�çaæ0ÚUä�Ö,ä;àqÖ�ãdè�Ô^å�ì�ãdè�Ú6ã Ô^ãKÔ=ä+Ù�ÒUä�ädÔ^Ó�Õ=ÖqãdÒ�Ø�Ö,ä�Ô=Ü�åaÔ=å�émÒ�Û�Ý�ÚgãdÔ=Ò�åpädçjä�ãdÖ�Ý�ä+à5Ô�ã�è�Ò�ê�ãKÜ�Ô=á�Ô=å�ÜMãdÒjÒÝ�ê�æ�èpÚgãdãdÖ�åUã�Ô^ÒUåaãdÒ�æ*ÒUÝpÝ�ê�å�Ô_æ0Ú6ãdÔ=Ò�åaÔ=ä�ädê�Ö�äiÔ=å�ÚMí�Û�ä�ã+Ù�è�ÚUä�Ö5Ó�ê�ã+ãdÒ�è�Ú�áUÖqädÒ�ÝpÖ5ìjÔ^å'ØrÒ�é�Ñ~ÒUÓ�Ô=Õ^ÖZ×!Ò�Ø�ÖÖ*î�Ö�æ0ê�ãdÔ=Ò�å�Ö�åjá�Ô=Û�Ò�å�ÝpÖ0å�ã<Ô=å�ãdÖ�Ü�Û�ÚgãdÖ,Ø#à5Ô�ã�è�Ô=å�ãdè�Öqä�ç�ä�ãdÖ�ݵÔ^ã�ädÖ0Õ^é�Þ;ï�è�Ö Ó�ÚUä�Ô_æ+à�Ú�çEã�ÒEæ*ÒUÝaÝrê�å�Ô_æ0Ú6ãdÖKà5Ô^ãdèä�ê'æ�è�ädç�ä�ã�Ö0Ý�ä�Ô=ä5ãdÒ�ä�Ö�å�Ø|Ñ~Ò�Ó�Ô^Õ=Ö�×!ÒjØ�Ö#émÒ�Û5Õ=Òjæ�Ú6Õ7Ô=å�ãdÖ0Û�Ú�æ*ãdÔ=Ò�å�ä�Þ

ï�è�Ö�ädÖ�Ô=åUã�Ö0Û�Ú�æ*ãdÔ=Ò�å�ä�æ�Ú6åðÒ�å�Õ=ç�ã�Ú6ìUÖ~Ù�Õ=ÚUæ*Ö~Ó�Ö*ã�àqÖ0Ö�åðãdè�Û�Ö�ÚUØ�äpãdÛ�Ô=Ü�Ü�Ö�ÛdÖ,Ø�Ójç�Ñ~Ò�Ó�Ô=Õ=Ö}×!Ò�Ø�Ö�Ú6å�ØájÔ=ädÔ^Ó�Õ^Ö�Ù�Ú�Û�ã�ä5Ò6éiã�è�Ö�ädÖ0Û�á�Ô_æ*Ö�ñxÔ�ã�ä�Ô=åUã�Ö0ÛdéxÚ�æ0Ö,ò�Þ�ï�è�Ö�Ô=å�ãdÖ�Û�éxÚUæ*Ö#ã�çjÙ�Ô_æ0Ú6Õ=Õ=ç�à5Ô=Õ^Õ<Ú�Õ^Õ=ÒgàµÖ*îjãdÖ�Ûdå�Ú�Õ<ädÒ6é�ã�à�Ú6Û�ÖÖ0å�ãdÔ^ãdÔ=Ö�äZã�Ò�Û�Ö*ã�ÛdÔ=Ö0áUÖrÚ6å'Ø�ê�Ù/Ø�Ú6ãdÖaÔ^å�émÒUÛdÝ�Ú6ãdÔ=Ò�å�ÒUÛEã�Ò|àqÚ6ã�æ�è�Ö�á�Ö0å�ã�äZÒ�æ�æ*ê�Û�Ô^å�Ü�Ô=å�ã�è�Öaädç�ä�ã�Ö0Ý|Þ�ï�è�Ô_äÑ~Ò�Ó�Ô^Õ=ÖZ×!Ò�Ø�Ö�æ0Ú�åaÓ�Ö5à5Û�Ô�ãdãdÖ0å�Ö�Ô�ã�è�Ö0Û Ó�ç�ãdè�Ö�ädÖ0Û�ájÔ=æ0Ö�Ø�Ö�ädÔ=Ü�å�Ö�Û+Ò�Û+Ójçræ0Ò�å�ädê�ÝpÖ0Û�äiÔ�é/ã�è�Ö0çrè�Ú�á�Ö5ädÙ'Ö,æ*Ô_Ú6Õå�Ö0Ö,Ø�ä5Ú6å'Ø�æ�Ú6å�å�Ò�ã�æ*Ò�Õ=Õ_Ú6Ó�Ò�Û�ÚgãdÖZà5Ô�ã�è�ãdè�Ö�ädÖ0Û�ájÔ=æ0ÖMØ�Ö,ä�Ô=Ü�å�Ö0Û�Ó�ê�ã�è�Ú�áUÖMÚaÜUÒ�Ò�Ø�ê�å�Ø�Ö�Û�ä�ã�Ú�å�Ø�Ô=å�ÜaÒ6é)ãdè�ÖÔ^å�ã�Ö0ÛdéxÚ�æ*ÖUÞ)ó å�æ0Ú�Ù�ädê�Õ=Ú6ãdÔ=å�Ü�Õ=Ògà»Õ=Ö0á�Ö�Õ�æ0Ò�ÝpÝ�ê�å�Ô=æ�Úgã�Ô^ÒUå{Ô^å�Ñ~Ò�Ó�Ô^Õ=Ö�×!Ò�Ø�ÖZÜ�ê�Ú�Û�Ú�å�ãdÖ0Ö,ä+ã�è�Úgãqãdè�Ö#ädçjä�ãdÖ�Ýæ0Ú�å�Û�Ö0Ý�Ú6Ô=å�ãdè�Ö�ä�Ú6ÝpÖ#Ö0áUÖ0å�Ô�é)ãdè�Ö�ê�å�Ø�Ö0Û�Õ=ç�Ô=å�Üpå�Ö0ã�à!ÒUÛdì�Ö�á�Ò�Õ=á�Ö,äqÔ^å|ê�å�Ù�ÛdÖ,Ø�Ô=æ*ã�Ú�Ó�Õ^Ö�à�Ú�ç�ä0Þ

ô ê�Û�Ú6ã�ãdÖ�ÝpÙ�ã�ã�Ò�Ø�Ö,ä�Ô=Ü�å�Ô=å�ãdÖ�Û�éxÚUæ*Ö�ä�émÒ�Û|Ø�Ô=ä�ãdÛ�Ô=Ó�ê�ãdÖ,Ø�ädÖ0Û�á�Ô_æ*Ö,ä{Ú6å'ØðãdÒ�Ø�Ö�ä�æ*Û�Ô^Ó�Ö�ã�è�Ö0Ýõà5Ô^ãdè´Úæ*ÒUÝaÙ�Õ^Ö0îCÔ=åUã�Ö0ÛdéxÚ�æ0Ö{Ø�Ö*í�å�Ô�ã�Ô^ÒUå�Õ=Ú�å�Ü�ê�Ú�Ü�Ö~ö ÷,ø!è�ÚUä�Û�Ö0á�Ö�Õ^Ö,Ú�Ø�ãdè�Ú6ã�Ô^ã�Ô=ä�Ú|Ù�ê�ù0ù�Õ^Ô=å�Ü�Ú�å�Ø�Ø�Ö�æ0Ò�ê�Û�Ú6ÜUÔ^å�Üã�ÚUä�ì/ú7Ý�Ú6Ô=å�Õ=ç~Ó'Ö,æ0Ú6ê'ä�Öaà!Öaè�Ú�áUÖ�ãdÒ�Ü�ê�Ö�ä�äEà5è�Ô_æ�è�Ö�á�Ö�åUã�äMà5Ô^Õ=ÕiÓ'ÖpÔ=åUã�Ö0Û�Ö�ä�ãdÔ=å�Ü{émÒUÛ�ä�Ö�ÛdájÔ_æ*Ö�ê'ä�Ö�Û�äMÚ6å�Øà5è�Úgã�à5Ô=Õ^Õ Ó'Öpã�è�Ö�ÝpÒUä�ã�æ0Ò�åjá�Ö�å�Ô=Ö0å�ã�àqÚ�ç|ã�Ò|ÚUæ0æ0Ö�ä�ä#Ô^å�émÒUÛdÝ�Ú6ãdÔ=Ò�å.Þ�û�ÒUÛ#ãdè�Ô_ä�Û�Ö�ÚUä�ÒUå�à!Öpã�è�Ô=å�ì�ã�è�ÚgãÔ^å'ä�ã�Ö�Ú�Ø�Ò�éMÓ�Ö0Ô=å�Ü�è�Ô_Ø�Ø�Ö�å»Ó'Ö�è�Ô^å'ØðÔ^å�ãdÖ�Û�éxÚUæ*Ö,ä0â�ä�ç�ä�ãdÖ�Ýpä�ä�è�ÒUê�Õ_Ø�Û�Ö0Ý�Ú�Ô^åðÒ�Ù�Ö0å�émÒUÛ{Ô^å'ä�Ù�Ö�æ*ãdÔ=Ò�å»Ú6å�ØÚ6Õ=Õ^Ògà²Úgã�ã�Ú�æ�è�ÝpÖ�åUã5Ò�éiÑ~ÒUÓ�Ô=Õ^Ö�×!Ò�Ø�Ö�Þ+ë8éiàqÖMÛ�Ö0ÝpÒgáUÖEã�è�Ö#Ò�ê�ã�Ö0Û�ädè�Ö0Õ=Õ.Ó�Ö*ã�àqÖ0Ö0å|Úpä�ç�ä�ãdÖ�ÝüÚ6å'Ø{émÒUÛdÖ�Ô^ÜUåãdè�Û�Ö�ÚUØ�ä�â�ã�è�Ö0ç�à5Ô=Õ^Õ/Ó�ÖMÚ�Ó�Õ=ÖEã�ÒrÚ�æ�æ*Ö,ädä!Ô^å�émÒ�Û�ÝpÚ6ãdÔ=Ò�å{ÝpÒUÛdÖMØ�Ô^Û�Ö�æ*ãdÕ=ç�Þië2å�émÒUÛdÝ�Úgã�Ô^ÒUå{Ô^ã�ädÖ0Õ^é;ä�ã�Ô^Õ=Õ/å�Ö0Ö,Ø�ä!ãdÒÓ'Ö�Ö�å�æ0Ú�Ù�ädê�Õ=Ú6ãdÖ,Ø�Ú6ã5ãdè�Ö�ÒUÓ�ý�Ö�æ*ã�Õ^Ö�á�Ö0Õ7Ó�ê�ã�ãdè�Ö�Ü�Û�Ú6åjê�Õ_Ú6Û�Ô�ã�çpÔ_ä�ä�Ý�Ú�Õ^Õ=Ö0Û,ÞKï�è�Ö�æ*ÒUå�ädÖ�þ�ê�Ö0å'æ*Ö#Ô=äqã�è�Úgã�Ô^ãÓ'Ö,æ*ÒUÝaÖ,ä�Ù'Ò�ädädÔ=Ó�Õ^ÖMã�Ò�à!ÒUÛdì�à5Ô^ãdè~ÚaÝ�ê�æ�è|Õ_Ú6Û�Ü�Ö�ÛqädÖ*ã�Ò�éiÚUæ�ãdÔ=Ò�å'äqÚ�å�Ø�Ö0áUÖ0å�ã�ä�Þ

Ñ~Ò�Ó�Ô=Õ=ÖC×!ÒjØ�Ö�Úgã�ã�Ú�æ�è�Ö,Ø�ã�Ò�ãdè�Ô_ä�ìjÔ=å�Ø�Ò6é�ä�ç�ä�ãdÖ0Ýÿä�è�ÒUê�Õ_Ø�å�Ò6ã{Ø�Ô_ä�ã�ê�ÛdÓðÔ^ã�äpémê�å�æ�ã�Ô^ÒUå�Ú6Õ=Ô�ã�çUâqãdèjê�äÛdÖ,ä�ã�ÛdÔ_æ�ã�Ô^ÒUå�äiÚ6Û�Ö�å�Ö�æ0Ö�ä�ädÚ�ÛdçUÞ ô å�ÖqémÖ�ÚUä�Ô=Ó�Õ=ÖqÙ�Ò�Õ=Ô_æ*ç�Ô_ä)ãdÒ�Õ=Ö*ãiémÒUÛdÖ�Ô^ÜUårè�Ú�å�Ø�Õ=Ö0Û�äiÔ^å'ä�Ù�Ö�æ*ãKÒ�Ó�ý�Ö,æ�ã�ä)ã�è�Û�Ò�ê�ÜUèãdè�Ö�Ô^Û�Ô=å�ãdÖ0ÛdéxÚ�æ0Ö�âjÚ6å�Ø�Ô^å'ä�ã�Ú6Õ=Õ��dè�ÒjÒ�ì�ä���ãdè�Ú6ãqà5Ô=Õ^Õ/Ó�ÖEã�ÛdÔ=Ü�ÜUÖ0Û�Ö�Øpà5è�Ö�å�ÚrÜ�Ô=á�Ö�å{Ò�Ó�ý�Ö,æ�ãqÛdÖ,æ*Ö0Ô=á�Ö,ä ÚrÜ�Ô=á�Ö�åÝpÖ�ä�ädÚ�Ü�ÖZñxÒ�å�ÖqÒ6é'Ô�ã�äiÝaÖ0ãdè�Ò�Ø�ä)Ô_ä+æ0Ú�Õ^Õ=Ö�Ø�ò*Þ ô ã�è�Ö0ÛiÛ�Ö�ädÖ�Ú6Û�æ�è�Ö�Û�äKö �6ø�è�Ú�áUÖ!Û�Ö�ÚUæ�è�Ö�Ø�ãdè�Ö�ädÚ�ÝpÖqæ0Ò�å�æ0Õ^ê�ädÔ=Ò�å�äÚ6å�Ø|Ô_Ø�Ö�åUã�Ô�í'Ö�Ø�ãdè�Ö�å�Ö0Ö,Ø�ãdÒ{àqÒ�Û�ì�Ú6ã�ãdè�Ö�Ò�Ó�ý�Ö,æ�ãEÜUÛ�Ú�å�ê�Õ=Ú�ÛdÔ^ã�ç�Ú6å'Ø�ã�Ò�ãdÛ�Ô=Ü�Ü�Ö�Û5Ö0áUÖ0å�ãEè�Ú�å�Ø�Õ=Ö0Û�ä5à5è�Ö0åÒ�Ó�ý�Ö,æ�ã�ä5Ú6Û�ÖMÛ�Ö�æ0Ö0Ô=ájÔ^å�ÜaÝpÖ�ä�ädÚ�Ü�Ö,ä0Þ

����� �������������������������������! ��ô å�Ö�áUÖ0Û�ç�ã�ç�Ù�Ô=æ�Ú6Õ)Ö*î�Ú6ÝpÙ�Õ=ÖrÒ�é Õ_Ú�æ�ì|Ò6éKÔ=å�émÒ�Û�Ý�Úgã�Ô^ÒUå�Ý�Ú6å�Ú�Ü�Ö�ÝaÖ�å�ãZÚ6å�Ø�Ó�Ú�Ø�Ö0áUÖ0å�ãZè�Ú�å�Ø�Õ=Ô^å�Ü�Ô_äZãdè�ÖÙ�Û�Ò�Ó�Õ=Ö0Ý�Ò�éEÓ�Û�Ò�ì�Ö�å�Õ=Ô^å�ìjäaÔ=å�ã�è�Ö#"CÒUÛdÕ_Ø$"»Ô_Ø�Ö#"}Ö0Ó.Þðï�è�Ô_ärÙ�è�Ö0å�ÒUÝpÖ0å�ÒUå�è�Ú�Ù�Ù�Ö0å�äpÚ6Õ=Õqãdè�Ö�ã�Ô^ÝpÖÓ'Ö,æ0Ú�ê�ä�ÖZÙ'Ö�Ò�Ù�Õ=Ö#Ú6Û�Ö�ÛdÖ0émÖ0Û�Ö0å�æ0Ô^å�Ü�Ò�ÛqÓ�Ò�ÒUìjÝpÚ�ÛdìjÔ=å�Ü�Ô=å�ãdÖ0Û�Ö�ä�ãdÔ=å�ÜrÙ�Ú6ÜUÖ�ä+ã�è�Úgã5Ø�Òrå�Ò6ã�è�Ú�á�ÖMÚ�Ø�Ö0í�å�Ô^ãdÔ=á�ÖÕ^Ò�æ�ÚgãdÔ=Ò�årÓ�ê�ãKæ0Ú�årÝpÒgáUÖ Ò�ÛiÓ�Ö5Ø�Ö�ä�ãdÛ�Ògç�Ö,Ø�à5è�Ö�årädÔ�ã�ÖqÝ�Ú�å�Ú6ÜUÖ0Û�ä<Û�Ö0ÒUÛdÜ�Ú6å�Ô=ù0Ö+ã�è�Ö0Ô=ÛKØ�Ò�æ*ê�ÝaÖ�å�ã�ä�Þ)Ñ~ÒUÓ�Ô=Õ^Ö×!Ò�Ø�Ö�àqÒ�ê�Õ_Ø~Ó�ÖaÚ�å�Ö0Õ=Ö0Ü�Ú6å�ãEà�Ú�ç�ãdÒ�ädÒ�Õ=á�Ö�ãdè�Ô_ä#Ø�Ô&%{æ0ê�Õ�ã#Ù�Û�Ò�Ó�Õ=Ö0Ý#'5à5è�Ö�åCÚ�ê�ä�Ö�ÛEÔ_äMÔ^å�ãdÖ�ÛdÖ,ä�ã�Ö�Ø~Ô=å�ÚÙ�Ú6ÜUÖ�â�è�Ö#à5Û�Ô�ã�Ö�ä�Ú�å�Ú�Ü�Ö�åUã�Ú�å�Ø�ädÖ0å'Ø�ä5Ô^ã5ãdÒaãdè�Ö�ädÖ0Û�á�Ö�Û�Þ("»è�Ö�å|Ù�ÛdÒUÙ'Ö�ÛdÕ=ç�è�ÒjÒ�ìUÖ�Ø�ãdÒpã�è�Ö�ä�Ö�ÛdáUÖ0Û,â�ãdè�ÖÚ6ÜUÖ0å�ã5Ô=ä5Û�Ö�ÚUØ�ç�ã�Ò�Ó'Ö�Ö0îjÖ,æ*ê�ã�Ö�Ø�à5è�Ö�å�ã�è�Ö�Ù�Ú�Ü�Ö#Ô_ä5ÝpÒgá�Ö�Ø�Ò�Û�Ø�Ö0Õ=Ö*ãdÖ,Ø|Ú6å�Ø|æ0Ú�å~Ø�Ò�à5è�Úgã�Ö0áUÖ0Û5ä�Ö�Ö0Ý�äÚ6Ù�Ù�ÛdÒUÙ�ÛdÔ_Úgã�ÖEã�Òaãdè�Ö�ê�ädÖ0Û,âjémÒ�Û5Ô=å�ä�ã�Ú�å�æ*Ö�ädÖ0å�Ø�Ú6å�Ö*)8Ý�Ú6Ô=Õ.Ò�Ûqí�î�èjç�Ù�Ö0Û�Õ=Ô^å�ì�ä�ÒUå�ã�è�Ö�æ*Õ=Ô^Ö�å�ãEä�Ô_Ø�Ö�Þ

ï�è�Ö}ädç�ä�ã�Ö0Ý�ä�Ù'Ö�Û�émÒUÛdÝpÔ=å�Ü�Ø�Ô=ä�ãdÛ�Ô^Ó�ê�ãdÖ,Ø´ä�æ�è�Ö�Ø�ê�Õ^Ô=å�ÜðÚ6å�زØ�Ô=ä�ãdÛ�Ô=Ó�ê�ãdÖ,Ø�Û�Ö�ädÒ�ê�Û�æ*ÖCÚ6Õ=Õ^Ò�æ0Ú6ãdÔ=Ò�å´Ú�ÛdÖÚ6Õ_ä�Ò�Ô^å�ãdÖ�ÛdÖ,ä�ã�Ô^å�Ü�æ0Ú�å�Ø�Ô_Ø�Úgã�Ö�ä�Ó'Ö,æ0Ú6ê'ä�Ö~ã�è�Ö0Û�ÖCÚ�ÛdÖCÒ6é�ã�Ö0å�Ý�Ú6åjçðØ�Ö0Ù�Ö0å'Ø�Ö0å�æ0Ô^Ö,ä�Ó'Ö0ã�à!Ö�Ö0å�Û�Ö�ädÒ�ê�Û�æ*Ö,ä0Þï�è�Ö�ädÖpØ�Ö0Ù�Ö0å�Ø�Ö0å�æ0Ô^Ö,ä#Ô^ÝpÙ�Õ=ç~émÛ�Ö�þ�ê�Ö0å�ã�æ*ÒUå�ä�ãdÛ�Ú6Ô=åUã#æ�è�Ö�æ�ìjÔ=å�Ü|Ú6å�ØCæ*Ò�ÝpÙ�Õ=Ö*î�Ö�á�Ö�åUã#è�Ú�å�Ø�Õ=Ô^å�Ü�ã�Ò�ìUÖ0Ö0ÙÔ^å�émÒ�Û�ÝpÚ6ãdÔ=Ò�å»ê�Ù�ãdÒ�Ø�ÚgãdÖUÞ Ñ~ÒUÛdÖ�Ògá�Ö�Û�Ô�ã|Ô=ä�á�Ö�Ûdç�Ø�Ô+%�æ0ê�Õ^ã�ã�Ò�émÒ�Û�Ö�ädÖ0Ö�à5è�Ô=æ�è²æ*Ò�å'ä�ã�Û�Ú�Ô^å�ã�ä{à5Ô^Õ=Õ#Ó'ÖÔ^ÝpÙ�ÒUädÖ�Ø~Ójç|ê�ädÖ0Û�äEÚ�å�Ø�Ó�ê'ä�Ô=å�Ö�ä�äZÙ�ÛdÒ�æ0Ö�ä�ä�Ö,ä5Ò�å�Ö,Ú�æ�è�Û�Ö�ädÒ�ê�Û�æ0Ö�Þ-,qê�ãMÔ�ã#Ô=äMæ*Ö�Û�ã�Ú6Ô=å~ãdè'ÚgãMæ0Ò�å�ä�ãdÛ�Ú6Ô=å�ã�äÚ6å�Ø}Ø�Ö�Ù'Ö�å�Ø�Ö0å'æ*Ô=Ö�ä�Ø�Ò|Ö0áUÒ�Õ=á�Örà5è�Ö0å}Ù'Ö�Ò�Ù�Õ=Ö�Ú6å�Ø�ãdè�Ô^å�Ü�ä#ÝpÒgá�ÖpÚ6å�Ø}æ�è�Ú6å�Ü�Ö�Þ."»Ô�ã�è�Ù'Ö�Ò�Ù�Õ=Öpè�Ú�ájÔ^å�ÜÙ'Ö�Û�ädÒ�å'Ú6ÕjÖ0Õ=Ö�æ*ãdÛ�Ò�å�Ô_æ ÒUÛdÜ�Ú6å�Ô=ù0Ö�Û�ä)Ú6å'Ø�Û�Ö�ädÒ�ê�Û�æ*Ö,ä;ädê�æ�èpÚ�äiÙ�Õ_Ú�æ0Ö�ä)Ò�Û+áUÖ0è�Ô_æ*Õ=Ö�ä)è�Ú�ájÔ=å�ÜZãdè�Ö�Ô^ÛKÒgà5åaÚ6ÜUÖ0å�Ø�ÚÔ�ã#Ô_äZÖ,Ú�ädç�ãdÒ�Ô^Ý�Ú6ÜUÔ^å�Ö�è�Ògà æ0Ò�ÝpÙ�Õ=Ö*î~ãdè�ÖrÔ=å�ãdÖ0Û�Û�Ö0Õ_ÚgãdÔ=Ò�å'äZæ�Ú6å�Ó�ÖaÚ�å�Ø�è�Ògà Ô^å�ãdÖ�ÛdÖ,ä�ã�Ô^å�Ü�Ô^ãMàqÒ�ê�Õ=Ø�Ó'ÖãdÒaÙ�Û�Ò�Ü�Û�Ú6ÝPÚ6ÜUÖ0å�ã�ä ãdÒpæ�è�Ö,æ�ì{æ*Ò�å'ä�ã�Û�Ú�Ô^å�ã�äqÚ6å'Ø�Ø�Ö0ãdÖ�æ*ã5Ô^å�æ0Ò�å�ädÔ_ä�ã�Ö0å�æ0Ô^Ö,ä0Þiû�ÒUÛqÔ=å�ä�ã�Ú�å�æ*Ö���Ýrçaà5Ô^émÖ�Ú6å�Øëqæ�Ú6å�å�Ò6ãEÚ�æ�æ*Ö�Ù�ã5ã�à!Ò�Ô=åjájÔ�ã�ÚgãdÔ=Ò�å'ä�émÒ�Û5ã�è�Ö�ä�Ú6ÝpÖ�Ø�Ú�ç/�aÒ�Û0��ãdè�Ö�ÛdÖ�Ýrê�ä�ãEÚ�Õ^à�Ú�ç�ä�Ó'Ö�Ò�å�Ö#émÛ�Ö0Ö�ädÖ0ÝpÔ=å�Ú6Û

Page 17: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

1�232546287#9:287<;�=?>/@�ACBDFEHG =?I E0JKELE 7$I E 1�>M@�NC1�O�1QPR@ E ;MS�2T@ ELE0G 2VU E =8@�P+WX>Y=Z73>8257 E U G 2 G =5@[U\281Q] E ;TU^P+S G`_ 254aOCN/S E 1Q@

J N/S G =8@�7�2.7�2ZSQP+25702Zbc4d2 J P+WXP&S�>dU^PXW+WKeC7<;01 E =ZWXPR@�SQP _^ELf =Z4dO�W E @�2ZbgS G PX@\]3P+7<;gh3P+7�@�N _iG ;�P+I E 1i@ E ;/284j=ZPX7C@[email protected]�W&SQP+4 E ;/PX=j;�PX@�S�1QP J N/S�PX287chK@�>/@�S E 4k=8;/4dPX7�PR@�SQ1Q=ZS�PX287chC@�28NC1 _LEl_ 23; E 4d=87C=Zm E 4 E 7nSoh E W Ep_ SQ1�257�P _q_ 284ar4 E 1 _*E h(@ _ P E 7nS�P+e _0_ 28WXWX= J 251Q=ZS�PX287ch E S _ B�s tVuvB:w�281[S G PR@x1 E =5@�257YU E =81 E0y N�P+S E�_*E 1�SQ=8P+7MS G =VSxS G�E 1 E PR@[=WX=81�m El_ WX=5@�@28b�@�N _iG P+4dOK281�SQ=Z7nSzO�1Q2 J W E 4d@^=87C;H7�2ZS�{�NC@�S-=.b E U|PX@�28WR=VS E ; _ =5@ E @LB

}a~��C���-�������a���3�3�z~��DFE @ G 28NCWX; J<E = J W E SQ2He<7C;Y@�=ZS�PR@�b�= _ S�251�>:@�28WXN/S�PX287<@lb�281lS G�E @ E OC1�2 J W E 4j=VS�P _ =ZO�O�WXP _ =VSQP+257C@lU^P&S G 28N�1=ZO�OC1�2n= _iG 2Zbc9:2 J P+W E�� 2/; E =8@�b�251 E P+m57 E I E 7nS G =87C;/W E 1i@LB(� G PR@!7 E U�=ZO�OC1�2n= _iG PX@ _*E 1�Si=ZPX7�W+>a7�28S!b�1 ELE 28bO�1i= _ SQP _ =ZW/O�P+S�b�=8W+WR@ J N�S!1 Eo_*E 75S�1 E @ E =81 _iG 287j9:2 J P+W E�� 2/; E^G =5@�=ZWX1 E =8;/>qOC1�25O<2n@ E ;xb�=8P+1QW+>.m8232/;d=Z7C@�U E 1Q@b�281^4d25@�S^2Zb�S G�E 4#�

���o� 9 E 4d281Q>�N<@�=8m E �\��2jWXPX4aP+S-S G�E[_ 287C@�N�4dO/S�PX287:28b(@ E 1QI E 1z4 E 4d281Q> J > _ NC@�S�254 E 1Q@p� E I E 7nS G =87/r;/W E 1i@xU E�_ =87$=ZO�O�WX>YO�1QP+7 _ P+OCW E @x2Zb-= _L_ 28N�7nS�PX7�m<h�7C=84 E WX>M@ E WXW\@ E 1QI E 1x4 E 4d281Q>FS�2:S G�EH_ NC@�SQ284 E 1[S�2P+7 _ P+S E @�OC=Z1QP+7Cm.P+SpB

���8�d� E 1�b�251�4j=87 _*E ����2Y] ELE O�S G�E 4j=8P+7�@�>/@�S E 4�1�NC7�7�PX7�mCh�P&Sj4[N<@�S07�28S J<E 2VI E 1�WX25=5; E ; J >$S G�EE IV=ZWXNC=ZS�PX287$28b E I E 7nS G =87C;/W E 1i@LB DME:_ =Z7�;/2FP+SdU^P&S G O�1QPX281QP&S�>M4 Ep_iG =87�PX@�4j@Lh!U^P&S G ;/PR@�SQ1�P J N/SQP+257�28bS G�E WX25=5;:S�2�4d281 E S G =Z7M287 E @ E 1QI E 1l=87C; J >:] EpE O�PX7�mHS G�Ej_ 287C;/P+S�PX287<@l@�PX4aOCW E � E IV=ZWXNC=VSQP+7�m _ 254dO�W ELf_ 257C;/P+S�PX287C@\b�251z=.WX2ZSz28b E I E 75S�r G =Z7C;/W E 1i@!S�20; Eo_ PR; E P&b�S GCE > G =?I E S�2 JKE @�Si=Z1�S E ; _ =87 y N�P _ ]3W+> J<Eo_ 284 EE*f S�1 E 4 E W+> GCE =?I3> � B

� t ��� Ep_ N�1QP&S�>�� � 254 E!E 73I3P+1Q287�4 E 75Si@gWXP+] E!� =?IV=O�1Q2VI3PX; E =ZN/S G�E 7nS�P _ =ZS�PX287x=87C;�I E 1�P+e _ =ZS�PX287�2Zb3b�251 E P+m57_ 2/; E B-�zN/S G�E 7nSQP _ =VS�PX287FPX@-NC@�NC=ZWXW+> J =5@ E ;#287 E 7 _ 1Q>3O/S�PX287�=87C;�; E S E 1�4dPX7 E @�U G�E S G�E 1-S G�Ed_ 2/; E 281QP+m5P&r7C=VS E @�b�1Q2846=[S�1QNC@�S E ;�@�25N�1 _*E =87C;0I E 1QP&e _ =VSQP+2570PR@^=[1QN�7nS�PX4 E 4 Ep_iG =Z7�PR@�4�SQ2 E 7C@�N�1 E S G =VS^N�7nS�1QNC@�S E ;_ 2/; E ;/2 E @z7�2ZS^O E 1�b�281Q46P+WXW E m5=8Wg28O E 1i=VSQP+257C@LB

� G�E 1 E =81 E =ZWR@�2`@�254 E O�1Q2 J W E 4j@HS G =ZS#@ ELE 4�4a251 E b�N�7C;�=84 E 7nSQ=8W�=87C; _iG =ZWXW E 7�m8PX7�m$U^P+S G S G PR@=ZO�OC1�2n= _iG �

�� n�j¡ 7C@�O Ep_ S�PX287�=87C;`P+7C@�SQ=8W+WR=VSQP+257¢2Zb E I E 7nS�r G =Z7<;/W E 1Q@j@�284 E U G =VS _ 287nS�1i=8;/P _ SjS G�E O�1QPX7 _ PXO�W E @j28bE 7 _ =ZOC@�N�WR=VSQP+257TS G =VSxU E 7 ELE ;M@�2#4[N _iG PX7YWX=81�m E @�>/@�S E 4j@Lh�S G�E > _ 25N�WR;FPX7 _ 1 E =8@ E S G�E ; E O E 7C; E 7 _ P E @J<E S�U EpE 7#@�N J rv@�>/@�S E 4j@^=Z7<;H4j=8] E S G�E 4£4d281 E ;/P&¤ _ N�W&S-S�2d4j=Z7C=8m E B

��¥8� DME 7 EpE ;�1 Eo_ PXO�1Q2 _ =ZW�4 Ep_iG =87�PR@�4j@�S�2 E 7C@�NC1 E S G =VS E I E 7nS G =Z7<;/W E 1Q@^;�2a7C2ZS J<Eo_ 254 E 2 J @�28W E S EJ >jS G�E = _ SQP+257C@2Zb(NC@ E 1i@�PX7�S G�E P+1-2VU^7 E 7nI3PX1�257�4 E 7nSQ@pB

��¦5�q¡ 7Y= _ 284dO�W E*f @�>/@�S E 4§U^P&S G 4d=873>�P+7nS E 1Q1 E WX=ZS E ;MPX7/b�281Q4j=VSQP+257C@q=Z7C;MWX2ZSi@q2Zb E I E 7nS�r G =Z7<;/W E 1Q@S G�E 1 E\_ 25N�WX; J<E_ PX1 _ N�WR=Z1�; E O E 7C; E 7 _ P E @�W E =5;/P+7CmzS�2l=z7 E UYS�>3O E 2Zb�PX7/eC7�P+S E WX2n25OC@pB(¨�7 E 2Zb�S G�E�_ WX=5@�@�P _ =ZW@�25W+N�S�PX287C@PR@\S�2jPX4dO<2n@ E =Z7�281i; E 1^281 G P E 1i=Z1 _iG >j257 E W E 4 E 7nSQ@SQ2j=?I828PR;�@�N _iG WX2n25OC@pB

�ª©Z� �-7H25O E 7�@�>/@�S E 46U^P+S G PX7C@�O Eo_ S�PX287Hb�= _ P+WXP+S�P E @U^PXW+WcOC1�2 J = J WX>j1 Epy N�PX1 E W+28SQ@28b E*« 281�SQ@\P+b(@ Ep_ 1 E SQ@G =?I E S�2 JKE�G PR;�; E 7�h J N/S-U Eq_ =87HPX4j=Zm8PX7 E S G =VSS G�E @�>/@�S E 4¬; E @�P+m57 E 1 G PR; E @z@�254 El_ WX=5@�@ E @ph E 7 _ =ZOC@�N/rWX=ZS E @O�1 Eo_ PX28NC@PX7/b�251�4j=VSQP+257HPX7�2 J { Eo_ SQ@251^NC@ E @ _ 1Q>3O/S�25m81i=ZO G P _ S Eo_iG 7�P y N E @\S�2 G PX; E @ E 7<@�P+S�PXI E ;�=ZSQ=�B

��­5� 9:2n@�S E*f PX@�S�PX7�m[@�>/@�S E 4j@ E*f O<2n@ E I E 1�>aW+P+S�SQW E 2ZbgS G�E PX1\P+7nS E 1�7<=ZWCPX7/b�251�4j=VSQP+257�=Z7<; E I E 7nSQ@�S�2.S G�E28N/Si@�PR; E =Z7<;�=81 E ;/P+¤ _ N�W+SzS�2dPX7nS E m51Q=ZS E U^P+S G S G�E 7 E U®=8O�O�1Q25= _iG B

¯ ~�����°/~�±£²M³!´�µ¡ 7#28N�1z1 Ep_LE 7nS E*« 281�SQ@SQ2 J N�PXWX;:;�PX@�S�1QP J N/S E ; E I825W+IV= J W E ;/>37C=84dP _ PX7/b�281Q4j=VSQP+257#@�>/@�S E 4j@U EqG =?I E b�28W+rW+2VU E ;[S�U\2x;/P+1 Ep_ S�PX287C@� ���?�(¶ @�P+7CmqS G�E^·C¸ O�1�25m81i=Z4d4dP+7Cm�WR=Z7�m5NC=Zm E =87C;j9:2 J P+W E�� 2/; E^E 73I3PX1�257�4 E 7nSphU EdG =?I EdJ N�PXW&S[=#@�>3@�S E 4¹SQ2�4j=87C=Zm E =�WXP J 1Q=81�>:28b ·C¸ @�28NC1 _LEd_ 2/; E S G =ZS[=ZWXW+2VUz@lNC@�SQ2 E ;/P+Sph(@�SQ281 E h;/PR@�@ E 4dPX7C=VS E =Z7C;j= _ SQP+IV=VS E eCI E ;/P «�E 1 E 7nS!]3PX7C;�@!2Zbc@�25N�1 _*Ez_ 2/; E eCW E @LB � 1 E InPX28N<@�WX>qS GCE >aU E 1 E ;/P+¤ _ N�W+SS�2d4j=Z7C=8m E�JKEp_ =8NC@ E S G�E >HU E 1 E =ZWXWc@�S�281 E ;HPX7�PX7C;/PR@�S�PX7 _ S^S E*f S^eCW E @S G =VS-;/PR;�7�2ZSz=8W+WX2VU�SQ2a1 E OC1 E @ E 75SS G�E P+1�OC=Z1�S�P _ NCWX=81�P+S�P E @�=Z7C;#PX7nS E 1i; E O E 7C; E 7 _ P E @pB ���8� 9�=ZPX7nSQ=8P+7�PX7�mjS G�E[_ 287C@�PX@�S E 7 _ >�2Zb!;�2 _ N�4 E 7nSQ@�=VS

Page 18: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

º8»�¼�½\¾L¿<À�Á+Â�¾zÃ8ÄCÅxÂQ¼�Æ3ÁXÄ�ÇlÂ�ºqÈjÃZÉ5¾Á&Â�Ã5ÊLÊL¾pÀQÀ�ÁX¿�ËX¾!ÂQº�Ì�º8¼Q¾LÁXÇ8Äa¾LÍ8¾pÄnÂ(Î<ÃZÄCÅ/ËX¾L¼iÀpÏ�ÐÎ�ÁRÀ�½\º8¼QÉqÁXÀ!ÃVÂ�ÃZÄd¾pÃ8¼�ËXÆÀ�ÂiÃZÇ5¾xÃZÄCÅ#ÎCÃ5À^¿K¾L¾LÄFÀ�ËXºV½�¾oÅ#Å/ºV½^Ä#¿nÆHÂ�ÎC¾[Å/Á+ÑjÊL»�Ë+Â�ÆHÂQº0ÁXÄ5ÂQ¾LÇ5¼QÃZÂ�¾lÂ�Î�¾.¾*Ò/ÁRÀ�ÂQÁ+Ä�ÇHÀ�¾p¼�Í5¾L¼zÃZÄ<Å:Ó-Ð^Ô�Õ¾pÅ/Á+Â�º5¼QÀ»<À�¾oÅHÃZÂ^Â�Î�¾qÁXÄCÀ�Â�Á+Â�»/ÂQ¾8Ï

ÐÎ�¾L¼Q¾jÃZ¼Q¾aÀ�¾LÍ5¾L¼iÃZË�ºZÂ�ÎC¾L¼qÇ8¼Qº8»CÖCÀl½�º5¼�É3ÁXÄ�Ç�º5ÄTÂQ¾pÊiÎ�Ä�ÁR×n»�¾pÀlÌ�º5¼qËXÃ8¼�Ç5¾.ÀQÊLÃ8Ë+¾d¾LÍ5¾LÄnÂ�ÎCÃZÄCÅ�Ë+ÁXÄ�Ç:ÃZÄCÅÈjÃZÁXÄ5ÂiÃZÁXÄ�ÁXÄ�ÇTÁXÄ/Ì�º8¼QÈjÃVÂQÁ+º5Ä�Ê*º5Î�¾L¼Q¾LÄ<Ê*¾TØ ÙZÚ^¿�»/ÂdÂQÎ�¾L¼Q¾HÁRÀ.º8Ä�ËXÆ�º8Ä�¾#À�Æ3À�Â�¾pÈÛºZÌ-½^Î�ÁRÊiÎ�½\¾#ÃZ¼Q¾HÃ?½ÃZ¼Q¾Â�ÎCÃZÂ.Ê*ËXº5À�¾LËXÆFÃ8Ö�Ö�¼Qº5Ã5ÊiÎ�¾pÀlº8»C¼xÇ8ºnÃZËRÀqºZÌ»CÀ�Á+Ä�ÇFÔ:º8¿�ÁXËX¾HÜ�º3Å�¾0Á+Ä$Å�ÁXÀ�Â�¼QÁ+¿C»/Â�¾oÅYÁ+Ä/Ì�º5¼�ÈjÃZÂ�ÁXº8Ä�À�Æ/À�Â�¾pÈdÀpÝÂ�Î�¾xÞnÂQº8¼QÈjÊLÃ8À�½�¾oÃVÂ�ÎC¾L¼Á+Ä�Ì�º8¼QÈdÃZÂ�ÁXº8Ä�ÃZÄCÅ�Ì�º8¼Q¾pÊpÃ8À�ÂÀ�Æ/À�ÂQ¾LȹØ+ß*ÚvÏ�ÐÎ�¾qÅ/¾pÀ�Á+Ç5Ä�¾L¼iÀ�ºZÌ�ÂQÎ�¾qÀ�¾p¼�Í3ÁRÊ*¾lÎCÃ?Í8¾Ö�¼Qº8Ç8¼iÃZÈdÈd¾pÅqÃlÀ�¾*Â(ºZÌ<Ã8Ç8¾LÄnÂiÀcÌ�º5¼�ÂQÎ�¾LÁX¼�Ê*»CÀ�Â�º5Èa¾p¼QÀ�½^Î�º�ÊLÃ8Ä[ÊiÎ�º3º5À�¾!ÖCÃ8¼QÃ8Èd¾*Â�¾p¼QÀ�ÃZÄCÅ.Ã8Ê*Â�ÁXÍ?ÃZÂ�¾ÃZÇ5¾LÄnÂQÀÂ�ºaÈdº8Ä�Á+Â�º5¼�ÂQÎ�¾qÊ*»�¼Q¼Q¾LÄnÂ\½\¾pÃZÂ�Î�¾p¼\À�Á+Â�»CÃZÂ�ÁXº8Ä#ÃZÄCÅHÀ�¾pÄCÅ�Èd¾oÀ�ÀQÃZÇ5¾pÀ\Ã8ÊLÊLº8¼iÅ/ÁXÄ�ÇqÂ�ºaÂQÎ�¾LÁX¼^À�ÖK¾pÊLÁ&à<ÊlÄ�¾p¾pÅ�ÀpÏÐÎ�ÁRÀ.À�Æ/À�ÂQ¾LÈÛÁXÀ.ÁXÄ5ÂQ¾L¼Q¾pÀ�Â�ÁXÄ�ÇT¿K¾pÊpÃZ»CÀ�¾�Á+ÂaÀ�Î�ºV½zÀ[Â�Î�¾�Ì�¾pÃ5À�ÁX¿�ÁXË+Á+Â�ÆYºZÌzÎCÃ?Í3ÁXÄ�ÇTËXºZÂiÀ[º8Ìz»CÀ�¾p¼QÀ[¾*Ò/¾pÊL»/Â�ÁXÄ�ÇÂ�Î�¾pÁ+¼zÃ8Ç8¾pÄ5ÂiÀº8ÄHÂ�Î�¾xÀ�¾L¼QÍ8¾p¼pÏ

áFâ!ã�ägå�æ-ç3è�â!ãé ¾aÎ�º5Ö<¾[Â�ÎCÃZÂ�ÂQÎ�ÁXÀlÖCÃ8Ö<¾p¼�Î<Ã8ÀlÊ*º8Ä3Í3ÁXÄCÊ*¾oÅ#Â�Î�¾a¼Q¾pÃ8Å�¾L¼zÂQÎCÃVÂjê�ß?ë-Ô�º8¿�ÁXË+¾jÜ�º/Å/¾[¿�¼QÁXÄ�Ç5À-ìC¾*Ò/ÁX¿�ÁXË+Á+Â�Æ:Á+ÄÅ/ÁRÀ�ÂQ¼�ÁX¿�»/ÂQ¾pÅ�À�Æ3À�Â�¾pÈjÀq¿<¾oÊLÃ8»CÀ�¾�Á&Â[Î<Ã8À�ÂQÎ�¾�ÃZ¿CÁ+ËXÁ&Â�ÆFÂ�ºT¾LÄCÊpÃZÖCÀ�»�ËRÃVÂ�¾0ÊLº8Ä3Í8¾pÄnÂ�ÁXº8ÄCÀqÃ8ÄCÅFÌ�¼�¾p¾pÀx»<À�Ì�¼�º5ÈÂ�Î�¾:ÄC¾L¾pÅ�ÂQº�Ö�¼�¾LíªÁXÄCÀ�ÂQÃ8Ë+ËÂQÎ�¾TÀ�ºZÌîÂ�½ÃZ¼Q¾�ÂQÎCÃVÂ0¿K¾LÎCÃ?Í5¾pÀjÃ5ÊLÊ*º5¼QÅ�Á+Ä�ÇMÂQºYÂ�Î�¾oÀ�¾�ÊLº8Ä3Í8¾pÄ5ÂQÁ+º5ÄCÀ#ê�ï5ë.Â�Î�¾p¼�¾ÁXÀ.ÃZÄY»�¼QÇ8¾pÄ5ÂxÄC¾L¾pÅYº8ÌìC¾*Ò/ÁX¿�Á+ËXÁ+Â�ÆFÁXÄYÂ�º/Å�Ã?Æ�ð ÀxÊ*º5ÈaÈ.»�Ä�ÁRÊLÃZÂ�ÁXº8ÄYÖ�¼QºZÂ�º/ÊLº8ËRÀqÃZÄCÅ�Å/ÁRÀ�Â�¼QÁ+¿�»�Â�¾pÅ�À�Æ/À�ÂQ¾LÈjÀ¿<¾oÊLÃ8»CÀ�¾qÁ+Â�ÁRÀzÁXÈdÖ<ºnÀ�À�ÁX¿�Ë+¾xÂ�º0ÃZÄnÂQÁXÊLÁ+ÖCÃZÂ�¾xÎCºV½|Ã0À�»CÊpÊ*¾pÀQÀ�Ì�»�Ë�À�Æ3À�Â�¾pÈ£½^ÁXËXË�¾LÍ5º8ËXÍ8¾0ê�ñ5ë¿3Æ�Ë+¾LÂ�Â�ÁXÄ�Ç0»<À�¾p¼QÀÃ8Å�ÅaÂQÎ�¾LÁX¼!ºV½^Äj¾pÍ8¾pÄ5Â�íªÎ<ÃZÄCÅ/ËX¾L¼iÀ�ÃZÄ<ÅdÁ+ÄnÂ�¾p¼QÃ5ÊòÂQÁ+º5ÄjÖ�¼�º8Â�º/Ê*º5ËXÀ�ÂQºx¼Q»�Ä�Ä�ÁXÄ�Ç[À�Æ/À�ÂQ¾LÈjÀ�»CÀ�ÁXÄ�Ç[Ô:º5¿�Á+ËX¾lÜ�º/Å/¾Â�¾oÊiÎ�Ä�º8ËXº8Ç5Æ8óZÁ+Â�ÊLº8»�ËRÅd¿<¾-Ö<ºnÀ�À�Á+¿CË+¾zÃ8ÄCÅd»CÀ�¾*Ì�»�ËCÂ�ºxÈdÁXÄ�Á+ÈdÁXôL¾^ÂQÎ�¾zÄ�¾p¾pÅ�À�Ì�º8¼!ÊLº8ËXËXÃ8¿<º5¼QÃZÂ�ÁXº8Äa¿<¾LÂ�½�¾p¾LÄjÁXÄ/íÌ�º8¼QÈjÃVÂ�ÁXº8ÄaÖ�¼QºVÍ3ÁXÅ/¾p¼QÀ�ÃZÄ<ÅaÊLº8ÄCÀ�»�Èd¾L¼iÀê�Ù3ë�Â�Î�¾p¼�¾^ÃZ¼Q¾^À�¾pÍ8¾p¼QÃ8ËnÁXÄnÂ�¾p¼�¾oÀ�ÂQÁ+Ä�Ç�Ö�¼Qº8¿CË+¾pÈdÀ�Ì�º5¼�½^Î�ÁRÊiÎaÔ:º5¿�ÁXË+¾Ü�º/Å/¾d½^Á+ËXË�Ö�¼Qº8¿CÃ8¿�ËXÆ�¿<¾dÂQÎ�¾j¿K¾pÀ�Â.À�º5Ë+»�Â�ÁXº8ÄM¿<¾oÊLÃZ»<À�¾aÂ�ÎC¾LÆTº/ÊpÊ*»�¼qÁXÄ�À�Æ/À�Â�¾LÈjÀ�ÂQÎCÃVÂ[Ã8¼�¾dÅ/ÁRÀ�ÂQ¼�ÁX¿�»/ÂQ¾pÅÂ�Î3»CÀaÄ�º8ÂdÈjÃ8ÄCÃZÇ5¾pÃZ¿CË+¾H¿nÆ$ÃMÀ�Á+Ä�Ç5Ë+¾�ÖK¾L¼iÀ�º5Ä�º8¼aº8¼QÇ5Ã8Ä�ÁXôpÃVÂQÁ+º5Äcó�Å/Æ3ÄCÃZÈdÁRÊ�¿<¾oÊLÃZ»<À�¾HÂ�Î�¾#ÁXÄ/Ì�º8¼QÈjÃVÂQÁ+º5ÄÂ�Î�¾pÆaÊLº8ÄnÂQÃ8Á+ÄjÈ.»CÀ�Â�ÊiÎCÃZÄCÇ8¾^½^Î�¾pÄdÂ�Î�¾z½\º8¼QËRÅ.Á+ÂQÀ�¾LË+Ì�ÊiÎCÃ8Ä�Ç8¾oÀ�ÃZÄCÅd¾pÍ8º5Ë+Í3ÁXÄ�Ç�½^Î�¾LÄ0»<À�¾p¼QÀ�Å�ÁXÀQÊ*ºVÍ5¾L¼�Ä�¾p½½\Ã?Æ/À�Â�ºd»CÀ�¾�Â�ÎC¾qÁ+Ä/Ì�º5¼�ÈjÃZÂ�ÁXº8Ä�Ö�¼�ºVÍ3ÁRÅ/¾pÅcÏ

õ÷özøZözù�ö�ú#û^özü

ýÿþ������������� �������������������! �"�#� �$&%'")(�(*� ��+-,.����� �/%�01�32�4�56�879�8 :58;< �=��?>�@BADC9E�F?G'� H��.�8���8=:�JIBAK2LCKM�E�F�GN� H��;O�8P)QR=S UT3V.F�4WCKX?YZ;<��[ \.]WY_^�AK`�a?F?F�G�2!4BV.X?��P)F�AKb�2�4.ý F�CKa.� �cY��W^BAK2�4&V3F�A��Zþ�\.\3]��W='F?a�CK@�AKF)4&`1CKF?X_2�4�a?`.d�^B@BCKF�AXDa?2�F?4Ba?F.egf.`.b��<þ�h�i3iW�*Qj�BP)lk1mRn1h.o1mqp3h.\�n3\Jmsrt�ZEvþ?\.\.].H

ý u��v;xw��w�y�w8�B���_;����)z��/{K%�|-�c��}W%q D~�{� �|����c+- �{��/$�,O�v �{K{� �$W#� �|< �$&���/|j�3$&�� �$&%q�<%��& x+K,3{� x�j��~3�/{K%�|-�c��}W%q D~{j�B,3|D K~3�s�� ����3|-03�'�:��� ���&79�&F�XD2!X?�&w�4B2!f.F�AKXD2LCR��`3��y�F�4&F?f3T��Cþ�\3\�iW�

ý kJ�v��w8 �=_���_�3�_� mq���!�'�_(B �$�z���|K D+�%��c�3$B{N�?�3|��U�������! 8����~� ���@B4&^&@B�&b�2�XD�&F�G�XDb�2!GBF?XZ��2LCK��^�AKF?XDF?4�C-T1CK2�`.4t4&`1CKF?X?�þ�\3\.]W�NT�f.T12!b!T1�&b�F�T1C6��CDCK^�Y �.�Ja?@&2�� @&4B2!V3F.� a��g�W�?�W@BF?b�`.MJ�J^gT1^*F�AKX-�1`3^*F?4gG�2�A�� ^BX?� V3M.�

ý h1��56���B :8P)=�w�;��1��� �*�!�1���8=SI)�3��� =����W"�zt �{K�!#3$��'|j,3�v ����3|D���?�3|��-$&%q �|-$N �%c�c *+K,.�! ¢¡9�3 �$&%9����{� �|-�1,3%��c�3$,3$g~v£��1%�� ¤)+K,3%��c�1$&���:AK`�a�F?F�GB2�4BV.X8`1��CK�BFt��2L¥WCK�¦ �@�AK`.^*F�T14§�W`3�¨CR�¢TJAKF� :4&V32�4&F?F�AK2�4BV<©)`34B�/F�AKF?4&a?F��3�6©¢;��Qjy��&�8IZ7�I_2��¨CK�<����d�^*`.XD2�@&dª`.4�CK�BF6��`.@&4&G&TJCK2!`34&X9`1�:�W`3��Cq�¢TJAKF8 :4&V.2�4BF?F�AK2�4&V��g�*@BAK2�a-���B����2�CKM�F�AKb!T34gGN�þ�\3\�i��

ý n���7��&©)�w��8Qqt�B©� I)�����)$<%��& 8{-%�|-}B+�%�}W|��/$�#«�j��+K�3�(g}W%q �|�+K�3���t}�$B�c+K,3%��c�3$B{K�g�:��� ����79�BF?XD2�X?�&w4&2�f�F�AKXD2LCR�`3��y�F�4&F?f3T��Cþ�\3\.k��

Page 19: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

MAC3 Workshop Notes Tools for Managing Mobile Agent Systems

Autonomous Agents ‘99 18 May 1st 1999

Tools for Managing Tools for Managing Mobile Agent SystemsMobile Agent Systems

Page 20: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

A Case for Mobile Agent PatternsDwight Deugo Michael WeissSchool of Computer Science, Business Communications SystemsCarleton University Mitel Corporation1125 Colonel By Drive, 350 Legget DriveOttawa, Ontario, Canada, K1S 5B6 Ottawa, Ontario, Canada, K1K [email protected] [email protected]://www.scs.carleon.ca/~deugo

Abstract: In this position paper, we make a case for the development of mobile agent patterns. Patterns haveproven extremely useful to the object-oriented programming community. However, of the large amount ofpattern research, little effort has been devoted to developing mobile agent patterns. We wish to correct thissituation. We believe that the ongoing success of mobile agent systems depends on the development ofsoftware engineering principles for them. Patterns are a recognized means to this end, and one that we wishto promote.

IntroductionIn most areas of research there comes a time when the researchers begin to understand the principles, facts,

fundamental concepts, techniques, architectures, and other research elements in their fields of study. Research intoagents, specifically mobile agents, is reaching that time. As evidence of this fact, one need not look any further thanthe calls for papers to upcoming conferences and workshops on mobile agents. Take for example, the call for papersfor the workshop on Mobile Agents in the Context of Competition and Cooperation [MAC3 99]. We find commentssuch as, “… gaining more widespread acceptance and recognition as a useful abstraction and technology” and, “weare uninterested in papers that describe yet another mobile agent system.” The question to answer now is what isimportant for us to do next as a research community.

To answer that question we must first consider why we do not want to hear about another mobile agent system.We will not answer for the various workshop and program committees, but we can propose one that we hear oftenfrom others. Since there are many mobile agent systems and frameworks in existence doing many of the same things,there is no use discussing another one because it too will do the same things and in similar ways. In other words, anew system does not often provide any new insights that are useful to the research community. However, we claimthat these ‘new’ systems do validate, refine and show the reuse of many of the previously proposed and discussedresearch elements. Moreover, they bring with them additional thoughts, understanding and clarifications of theresearch elements. The problem is that when reporting on these ‘new’ systems, these insights get lost in the discussionof the system as a whole, or they are just not reported at all. For example, we have lost track of how many times wehave read a paper that indicated it used KQML for the communication between agents and not been able to understandwhy it was used? There may have been an obvious advantage, or maybe it just did not matter. What we wanted tounderstand was which forces and context lead to this decision, because if we need to make a similar decision in thefuture we need this information.

We propose that, since as a research community we have reached a stage where some research elements in mobileagents are well understood and that there are several examples of each, it is time to begin the effort of documentingthese elements as software patterns. This is not a matter of documenting the solution and problem surrounding eachresearch element; this material is already evident in most agent papers. We need to go further and deeper in order tounderstand the forces and context of the problems that give rise to the proposed solutions. These are theundocumented and often misunderstood features of the research elements, which need to be elaborated before agentsystems can enter the mainstream of software engineering and business applications.

Since many are not familiar with software patterns, and those that are think of them as only problem and solutionpairs, we introduce patterns and pattern languages in order to help with their understanding. Next, we enhance ourargument as to why agent patterns are important for agent research. We then compare and contrast agent patterns withtheir object-oriented counterparts. Finally, we present the current layout of the agent pattern landscape, identifyingwhat some have started to do and what else we feel needs to be done.

What are Patterns and Pattern Languages?Software patterns have their roots in Christopher Alexander’s work [Alexander 79] in the field of building

architecture. After reading his work, it was clear to software engineers that, like building designs, there are many

Page 21: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

recurring problems and solutions used in the design of software systems. Unfortunately, they noted that many of thesecombinations were hard to find except for in the minds of the most experienced developers, for if they were, projectswould have been built on time, within budget and without bugs! Moreover, knowing the problem and solution werenot enough. Software engineers needed to know when the solutions were appropriate for the given problems.

Alexander’s proposed the following definition for a pattern:

• A three-part rule which expresses a relation between a certain context, a problem, and a solution.• As an element in the world, each pattern is a relationship between a certain context, a certain system

of forces which occurs repeatedly in that context, and a certain spatial configuration which allowsthese forces to resolve themselves.

• As an element of language, a pattern is an instruction, which shows how the spatial configurationcan be used, repeatedly, to resolve the given system of forces, wherever the context makes itrelevant.

• The pattern is, in short, at the same time a thing, which happens in the world, and the rule whichtells us how to create that thing, and when we must created it. It is both a process and a thing; both adescription of a thing which is alive, and a description of the process which will generate the thing

Although there are different pattern formats, the minimal format contains the following headings or ones dealingwith similar subject matters.

• Name: As the saying goes in the object-oriented community, a good variable name is worth a thousandwords and a good pattern name, although just a short phrase, should contain more information than justthe number of words would initially suggest. Would the word agent be a good pattern name? The answeris no. Although it means a lot more than the single word suggests, it has too many meanings! One shouldstrive for a short phrase that still says it all.

• Problem: A precise statement of the problem to be solved. Think of the perspective of a softwareengineer asking himself, How do I … .? A good problem for a pattern is one that software engineers willask themselves often.

• Context: A description of a situation when the pattern might apply. However, in itself the context doesnot provide the only determining factor as to situations in which the pattern should be applied. Everypattern will have a number of forces that need to be balanced before applying the pattern. The contexthelps one determine the impact of the forces.

• Forces: A description of an item that influences the decision as to when to apply the pattern in a context.Forces can be thought of as items that push or pull the problem towards different solutions or thatindicate trade-offs that might be made [Coplien 96].

• Solution: A description of the solution in the context that balances the forces.

Other sections such as resulting context, rationale, known uses, related patterns and implementation with samplecode are usually included to help with the pattern’s description.

A good pattern provides more than just the details of these sections; it should also be generative. Patterns are notsolutions; rather patterns generate solutions. You take your 'design problem' and look for a pattern to apply in order tocreate the solution. The greater the potential for application of a pattern, the more generative it is. Although veryspecific patterns are of use, a truly great pattern has many applications. For this to happen, pattern writers spendconsiderable time and effort attempting to understand all aspects of their patterns and the relationships between thoseaspects. This generative quality is so difficult to describe that Alexander calls it "the quality without a name", but youwill know a pattern that has it once you read it. It is often a matter of simplicity in the face of complexity.

Although useful at solving specific design problems, we can enhance the generative quality of patterns byassembling related ones, positioning them among one another, to form a pattern language, enabling us to use them tobuild systems. For example, individual patterns might help you design a specific aspect of your mobile agent, such ashow it models beliefs, but a pattern language might be able to help you build all types of mobile reactive agents.

Agent pattern languages are very important for agent patterns to be successful. Forcing each pattern to identify itsposition within the space of existing patterns is not only good practice, it is also good research. In other words, allagent patterns should be part of an agent pattern language. It is not only helpful to you, but to all those other softwareengineers who will use the patterns to develop their systems in the future.

Page 22: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Why is Research into Patterns Important for Agent Research?For any software system to be successful and run safely, it must be constructed using sound software engineering

principles, and not constructed in an add-hoc fashion. Unfortunately, much of agent development to date has beendone ad hoc [Bradshaw, et al., 1997], creating many problems – the first three noted by [Kendall et, al, 1998]:

1. Lack of agreed definition of an agent2. Duplicated effort3. Inability to satisfy industrial strength requirements4. Difficulty identifying and specifying common abstractions above the level of single agents5. Lack of common vocabulary6. Complexity7. Only goals and solutions presented

These problems limit the extent to which “industrial applications” can be built using agent technology, as thebuilding blocks have yet to be exposed. Objects and their associated patterns have provided an important shift in theway we develop applications today, since the level of abstraction that we develop at is greater than doing functionaland imperative programming. Since we believe that agents are the next major software abstraction, we find it essentialto begin an effort to document that abstraction so that others can share in the vision. Patterns provide a good means ofdocumenting these building blocks in a format already accepted by the software engineering community. Patterns alsohave the added benefit that no unusual skills, language features, or other tricks are needed to benefit from them [Langeand Oshima, 1998].

Are Agent Patterns different from their Object-Oriented DesignPatterns?

Since many mobile agent frameworks, such as Grasshopper, AgentSpaces, Voyager, and Aglets, are implementedusing Java, an object-oriented language, we argue that there must have been a few object-oriented design patterns usedby the developers constructing them. Some patterns such as Mediator, Adapter, Broker, Strategy, and Composite, havebeen explicitly identified as being useful for the development of agent systems. [Kendall et al., 97]. However, sinceagents and agent systems are more dynamic and able to adapt to their environments than object-oriented systems,there must obviously be other patterns that are applicable only to them. We have already seen some of these patternsdocumented [Lange and Oshima, 98, Silva and Delgado 99], but we are positive there are a great many more.

In general, we find the format and structure of Agent Patterns similar to Object-Oriented Design Patterns. Wealso find that since many mobile agent frameworks are implemented using object-oriented technology, most object-oriented design patterns are applicable to them. However, differences in the way agents communicate, their level ofautonomy and intelligence, and the fact that they are often highly mobile, has created a void not filled by existingpatterns: agent, object, or otherwise.

One criticism of the previous breed of pattern writers is that they have not done a good job of relating theirpatterns to others – a pattern language. This is starting to change now as pattern languages become more frequent, buthistorically patterns have typically only linked themselves to others without identifying exactly what the relationshipis. This is a problem that agent patterns writers must consider immediately. Describe how your patterns relate toothers and how they can be used together or separately. Create a pattern language that can be used to build things:mobile agents and mobile agent systems. Do not create patterns that will only frustrate their readers, forcing them todiscover how to apply the patterns together.

The Agent Pattern LandscapeThe application of design patterns has shown us that it is very important and useful to start formalizing the

experiences of developers and relating these formalizations with one another. There are a small number of agentpatterns compared to the number object-oriented design patterns. As a consequence little work has been devoted toclassifying them and, as mentioned in the last section, to defining pattern languages for them. The few classificationsalready proposed include the following:

• Agent Patterns: deal with the architectures of agents and agent-based applications [Kendall et al. 98, 97;Silva and Delgado 98; Aridor and Lange, 98].

• Communication Patterns: deal with the way agents communicate with one another [Deugo and Weiss, 99].

Page 23: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

• Travelling Patterns: deal with various aspects of managing the movement of agents such as routing andquality of service Lange and Oshima 98].

• Task Patterns: deal with the breakdown of tasks and how these tasks are delegated to one or more agentsLange and Oshima 98].

• Interaction Patterns: deal with the way agents locate one another and facilitate their interactions [Lange andOshima 98].

• Coordination Patterns: deal with managing dependencies between agent activities. [Tolksdorf 98]

As a general comment, patterns cover many different levels of abstraction. For example, some of them are usedto describe the structure of an mobile agent system. Other patterns support the structure of agents and theirrelationships with different agents. While other patterns can be used to specify the design aspects of individual agents.The important feature here is not in developing the definitive classification. Rather it is more important for the mobileagent community to identify, specify and agree on the abstractions so that we can provide a common vocabulary fordiscussing and enhancing them, and, more importantly, building industrial strength mobile agent applications based onwell-grounded software engineering principles.

ConclusionWhat is in the future of mobile agent pattern research? Our prioritized list is as follows:

• Identify an initial set of agent pattern classifications: These classifications are to help focus pattern writerson targets that are of the greatest importance to those developing ‘real’ mobile agent systems.

• Identify pattern languages within each classification: These pattern languages are for pattern writers todevelop and extend and will permit writers to position their new patterns within a know space of existingpatterns.

• Write the patterns.

It is at MAC3 that we wish to debate and discuss these foundations with the participants in order to fill in thedetails of how to proceed and why bother at all. We feel it necessary to remind those involved with mobile agentresearch to not only write about solutions. Think, discuss, and write about the problems their solutions are intended toaddress and what context and forces led them to that particular solution. In short, we believe that following thisapproach, we will not have to read about “yet another mobile agent framework” anymore. Rather, we will be able toread and understand what problems a mobile agent system solves, and when we should consider using the approach!

ReferencesAridor, Y., Lange, D., “Agent Design Patterns: Elements of Agent Application Design”, Proceedings of the Second

International Conference on Autonomous Agents (Agents 98), ACM Press, 1998, 10-115.Bradshaw, J.M., S. Dutfield, P. Benoit, J.D. Woolley, “KaoS: Towards and Industrial-Strength Open Distributed

Agent Architecture”, J.M. Bradshaw (Ed.), Software Agents, AAAI/MIT Press, 1997.Coplien, J.O., “Software Patterns”, SIGS Management Briefings Series, SIGS Books & Multimedia, 1996.Deugo, D.L, “Communication as a Means to Differentiate Objects, Components and Agents”, submitted to TOOLS

USA 99, 1999.Kendall E. A., P.V. Murali Krishna, Chirag V. Pathak, C.B. Suresh, “Patterns of Intelligent and Mobile Agents”,

Autonomous Agents '98 (Agents '98), 1998Kendall E. A., M.T. Malkoun and C.H. Jiang , “Multiagent System Design Based on Object Oriented Patterns”, The

Report on Object Oriented Analysis and Design in conjunction with The Journal of Object OrientedProgramming, June 1997

Lange, D.B., M. Oshima, “Programming and Deploying Java Mobile Agents with Aglets”, Addison Wesley, 1998.MAC3, “Mobile Agents in the Context of Competition and Cooperation”, Autonomous Agents ’99,

http://mobility.lboro.ac.uk/MAC3, 1999.Silva A. and J Delgado, “The Agent Patterns: A Perspective from the Mobile Agent System Point of View”,

EuroPLoP ’98, 1998.Tolksdorf, R., “Coordination Patterns of Mobile Information Agents”, Proceedings of Cooperative Information

Agents II, Second International Workshop, CIA’98, Springer, 1998, 246-261.

Page 24: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

MAC3 Workshop Notes Mobile Agent Applications

Autonomous Agents ‘99 23 May 1st 1999

Mobile Agent Mobile Agent ApplicationsApplications

Page 25: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Mobile agents in an electronic auction house�

Qianbo Huai and Tuomas Sandholm

fqh2, [email protected] of Computer Science

Washington UniversitySt. Louis, MO 63130-4899

Abstract

This paper presents Nomad, a mobile agent system for electronicauctions. It has been integrated with eAuctionHouse, our next gener-ation Internet auction server. To our knowledge, eAuctionHouse is the�rst Internet auction site that supports combinatorial auctions, biddingvia graphically drawn price-quantity graphs, and participation of mobileagents. It supports mobile agents so that a user can have her agent ac-tively participating in the auction(s) while she is disconnected. Mobileagents that execute on the agent dock which is on (or near) the hostmachine of the auction server also reduce the network latency|a keyadvantage in time-critical bidding. Our auction server uses the Concor-dia agent dock to provide mobile agents a safe execution platform fromwhere they can monitor the auctions, bid, set up auctions, move to otherhosts, etc. The user has the full exibility of Java programming at herdisposal when designing her agent. We also provide an HTML inter-face for non-programmers where the user can specify what she wants heragent to do, and the system automatically generates the Java code for thecorresponding mobile agent, and launches it. Some of these predesignedagents are alerting tools, others bid optimally on the user's behalf basedon game theoretic analyses. This helps put novice bidders on an equalfooting with experts. Finally, we discuss automated coalition formationamong bidder agents.

1 Introduction

As the Internet gradually moves into mainstream culture, electronic commerceis becoming an important mechanism for conducting business. It helps mer-chants and consumers reduce business costs and enables customized deliveryof goods and services. Electronic auctions are emerging as one of the mostsuccessful ecommerce technologies.

Several successful commercial Internet auction sites exist - such as eBay1

and Onsale2 - and academic auction houses have recently appeared on the In-ternet [4, 9]. Our motivation in developing an auction server, eAuctionHouse,

�This material is based upon work supported by the National Science Foundation underCAREER Award IRI-9703122, Grant IRI-9610122, and Grant IIS-9800994.

1http://www.ebay.com2http://www.onsale.com

Page 26: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

is to prototype novel next generation features, and test their feasibility, bothcomputationally and in terms of consumer ease of use. To our knowledge,eAuctionHouse is the �rst, and currently only, Internet auction site that sup-ports combinatorial auctions [3, 6, 7, 5], bidding via graphically drawn price-quantity graphs [8], and mobile agents. This paper focuses on the mobile agentcomponent.

2 eAuctionHouse, a next generation electronic auc-

tion house

eAuctionHouse is a free-to-use Internet auction prototype. It allows usersacross the Internet to buy and sell goods as well as to set up markets. Itacts as a third party site, so both buyers and sellers can trust that it executesthe auction protocols as stated. It o�ers a wide range of auction types eachof which is determined by specifying a combination of auction parameters.Both auctions and bids are speci�ed by a set of parameters. In a single-sidedauction, there is only one seller (buyer) selling (buying). In a double auction,both buyers and sellers can submit bids (o�ers to buy) and asks for (o�ers tosell) goods. An auction setting is determined by whether it is a single or doubleauction, whether there is one or multiple items, and whether there is one ormultiple units of each item. Auction settings in our server further di�er basedon whether or not bids in multi-unit auctions can be partially �lled or whethercomplete matches are required. For di�erent types of auctions, di�erent typesof bids can be accepted, bidders may use di�erent bidding strategies, anddi�erent types of pricing schemes may be applied to determine the winningprice(s). Due to space limitation, combinatorial auctions and quantity-pricegraph bidding are not discussed here. The reader can �nd in [8] a more detaileddiscussion regarding all the auction settings supported by eAuctionHouse andthe relationships among auction settings, bid types, and pricing schemes.

To create auctions or to submit bids, a user can visit the world-wide-web page of eAuctionHouse, send a formatted text string directly through aTCP/IP network connection, or use mobile agents.

3 Why mobile agents?

There are two classes of advantages of mobile agents in electronic auctions:those stemming from the use of agents, and those from mobility.

The bene�ts of using agents include the following.

� An agent can monitor the auction events that the user has deemed rele-vant. When such events occur, the agent can alert the user. This avoids

Page 27: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

the need for the user to keep polling the auction repeatedly.

� Compared with parameter speci�ed bidding, bidding agents provide theuser with more exibility when customizing her own bidding strategy.

� An agent can make decisions based on all available information that thebidder considers relevant.

� Prototypical bidding agents can be analyzed game theoretically o�-lineso that they will bid optimally on the user's behalf in given auctionsettings. This puts expert bidders and laymen on a more equal footingfor ecommerce.

� Agents can be built to track bids in multiple auction houses, lookingfor the best deal and/or coordinating the user's multiple bids, e.g. sub-mitting bids to multiple sites for buying the same good but at anytimeallowing at most one bid in the winning position.

The bene�ts from mobility include the following.

� Mobile agents are not very sensitive to the quality of network communi-cation.

� A user's computer only needs to be connected to the network occasion-ally. A user can connect, launch an agent, and disconnect. This avoidsthe need of being connected all the time.

� If the information transferred between the agent and the auction exceedsthe code size of the agent, mobility reduces bandwidth usage becausethe agent communicates locally at its destination rather than having tosend data back and forth. This reduces network tra�c and latency byreducing the amount of data transferred around the network.

� Mobile agents can potentially take advantage of the available servicesdistributed across the network, e.g. travel to and execute on powerfulservers with excess CPU time and disk space. This can be pertinentfor bidder agents for example if their bidding strategies include complexcomputations such as statistical analysis, projection, etc.

� Mobile agents potentially allow users to extend the functionalities o�eredby servers, i.e. they execute as an integral part of the server.

In the context of an electronic auction, the use of mobile agents frees theuser from having to monitor the auction constantly. It also can reduce networklatency, a feature which is of key importance in time-critical bidding, such asmaking decisions just before an auction will close. A mobile agent traveling

Page 28: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

to a server not only has the advantages of executing the user's own biddingalgorithm but also does not have to transfer over the network the auctioninformation that the agent uses for determining its bidding actions.

Here we give an example of a mobile bidding agent. Let us imagine that auser with access to the eAuctionHouse is at some remote location. She �ndsan auction of a new notebook computer with an ascending open-cry �rst-priceauction protocol. Say that in this particular auction setting, the highest bid isshown when placed. Bids are accepted by the auction until no user is willingto increase the price anymore. At that time the notebook is sold to the bidderwho o�ered the highest price and the winner is charged the price of her bid.Say that the auction is at a remote location, so the communication links areproblematic. The auction may be open for hours but the user is not able tomonitor and adjust the bidding price constantly. A mobile agent can help inthis situation. The user can give it a reservation price and launch it. Theagent moves to the server site and stays there monitoring the current highestprice. It bids a small increment more than the current highest price, and stopsif its reservation price is reached. When the auction closes, the agent reportsthe result to the user.

Both Onsale and the Michigan Internet AuctionBot [9] have solutions otherthan mobile agents to help the user in the above scenario. Onsale has BidMaker which allows the user to enter the maximum price she is willing to pay.eBay has a similar proxy bidder \agent". As long as the auction is open andthe maximum price has not been reached, Bid Maker bids at the minimumprice necessary to make the user a winner. Bid Maker limits the user's choicesof her bidding strategies. For example, when a user's valuation of the gooddepends on others' bids, such a simple agent is no longer optimal, but theagent should update its valuation dynamically based on the others' bids so far(taking into account the e�ect of the winner's curse [1]). Bid Maker is alsounable to support bid coordinating across multiple auction houses.

The Michigan Internet AuctionBot might be viewed as supporting agentsin the sense that it provides a TCP/IP level message protocol by which agentscan participate in the auction. Mobile agents are not supported. Withoutmobility, this solution is sensitive to the quality of network communication andincreases the network tra�c by frequently transferring auction information.

4 Nomad, a mobile agent system

Nomad is the mobile agent system integrated with eAuctionHouse. It allowsmobile agents to travel to the site where the eAuctionHouse resides. Mobileagents actively participate in the auctions on the user's behalf even whenthe user is disconnected from the network. Network tra�c and latency are

Page 29: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

reduced, and the agents have shorter response time to changes in the auctionthan users might. The amount of time for computing bidding strategies mayalso be lowered when agents execute on a powerful server. Mobile agents neednot necessarily be bidding agents. They may be information collection or pricedistribution learning agents as well as agents for setting up auctions. Whenmultiple distributed eAuctionHouses are installed across the network, multipleNomads help to form a virtual electronic auction site network, which allowsmobile agents to travel through the network to �nd deals. Also implementedin Nomad is a mobile agent control scheme. After registering itself to theserver, a mobile agent can be seen and managed in its creator's user portfolio.For example, the user can kill the agent when she no longer wants the agentto execute.

The high-level architecture of a Nomad system consists of three main com-ponents: an agent dock, an agent manager, and a database for keeping infor-mation of the mobile agents. The agent dock is the place where mobile agentsreside and execute. As the basis of our agent dock we use the Concordia3 sys-tem from Mitsubishi Electric Information Technology Center America. Con-cordia is a full-featured framework for the development and management ofnetwork-e�cient mobile agent applications. Concordia itself is a Java appli-cation and supports mobile agents written in Java. Application interfacesare provided in Concordia for sending agents around the network. Concordiaagents process data at the data source. Network transport is hidden from ap-plications, developers and users. Typically, a Concordia agent has an itinerarywhich can be seen as a list of network addresses where the agent desires to go.Associated with each address is an action, a Java class method, which is to beexecuted when the agent travels to the associated site. The itinerary may bealtered dynamically during the agent's trip. Agents can also collaborate withthe help of an event distribution mechanism and other services.

The agent manager helps users control their own mobile agents througheAuctionHouse. Agents can be deleted from eAuctionHouse by their owners.An event distribution framework is used by the agent manager to notify agentswhen the auction information they are interested in is altered.

After traveling to the site of Nomad and being docked on the Concordiasystem, an agent connects to the agent manager and reports its informationwhich is logged into a database. Later on, the agent's information can beretrieved using the application interface. Actions requested by the user, suchas deleting a particular agent, are forwarded from the eAuctionHouse to theagent manager which then distributes an agent kill event to all the dockingagents. After receiving an event addressed to itself, the agent performs theappropriate actions.

3http://www.meitca.com/HSL/Projects/Concordia/

Page 30: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

5 Automatic generation of mobile agents

Users are provided with the option of programming their own mobile agentsin Java. This allows maximum exibility in what agents can do. However, inorder to speed up agent generation and to enable non-programmers to createagents, there is also a system for automatic generation of agents based on�lling out HTML forms. The di�erence between Nomad and Onsale's BidMaker is that our agents are mobile and HTML forms are not the only meansto create them. The following types of parameterizable mobile agents arecurrently available for automatic generation.

1. The information agent monitors an auction and sends email to the userwhen speci�ed events occur. Using this agent, the user does not have topoll the auction, but gets noti�cation of important events immediately.

2. The incrementor agent implements the dominant strategy on the user'sbehalf in single-item single-unit ascending open-cry �rst-price privatevalue auctions. It bids a small increment more than the current highestprice, and stops if the user's reservation price is reached. With this agent,the user does not have to follow the auction, and her dominant strategyin these settings is to report her valuation truthfully to the agent.

3. The N-agent underbids optimally on the user's behalf in single-itemsingle-unit sealed-bid �rst-price auctions where the number of bidders,N, is known, and the bidders' private valuations are independently drawnfrom a uniform distribution. Speci�cally, the symmetric Nash equilib-rium strategy is to bid the user's valuation times N�1

N[2]. The user is

then motivated to reveal her true valuation to the agent.

4. The control agent goes to an auction and submits very low noncompeti-tive bids. It is a speculator's tool to arti�cially increase the number, N,of bidders in an auction to mislead others, e.g. the N-agent. For exam-ple, it is in the seller's interest to submit control agents so that N-agents

would bid higher.

5. The discover agent computes the expected gain from bidding a smallamount more than the current highest price according to the agent'scurrent distribution of the user's valuation. This is intended for settingswhere the user does not know her exact valuation for the item, insteadhas a probability distribution over it. In the future, the probabilitydistribution could be updated by new events, or by what others havebid in non-private value auctions.

Figure 1 shows the �rst step of creating a mobile agent without program-ming. In this example, a user, Alice, is going to create an agent to bid in an

Page 31: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

auction. For the given auction type, the system recommends three of the �veagent types. Therefore, the radio buttons of the other two agent choices arenot clickable for this particular auction type. Alice is interested in creating anN-agent.

Figure 1: Step 1 of agent creation: choosing an agent type from a set of

prototype agents.

Figure 2 shows the second step for creating an N-agent. Alice speci�esthe parameters: user identi�cation number, password, email address used bythe mobile agent for reporting, agent name for agent management, and Alice'svaluation (reservation price) of the good being auctioned. When Alice clicksthe create button, the automatically generated mobile Java agent takes theseparameters, travels to the agent dock, ecommerce.cs.wustl.edu, docks there,and bids at the eAuctionHouse.

Page 32: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Figure 2: Step 2 of agent creation: setting the parameters for the agent.

6 Support for automated coalition formation among

bidder agents

In this section we present some thoughts on potentially using mobile agentsfor automated coalition formation. This is part of our future research.

Economic e�ciency can sometimes be improved if bidders form coalitions.Consider an auction in which a seller is selling one good. One buyer wantspart of the good and another one requires the remaining part. The sum of theprice that they are willing to pay exceeds the highest price o�ered for the wholegood from other bidders. By forming a coalition, both the two buyers and theseller are better o�. However it is di�cult for users across the Internet to formcoalitions while bidding online. There are two main barriers. First, �ndingpartners can be time consuming. Second, bidders do not necessarily trust eachother without a binding contract. Issues arising in coalition formation include

Page 33: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

who is in charge of bidding, what happens if some bidders refuse to pay afterthe coalition's bid wins, how much each participant has to pay if the coalitionwins, etc.

To support automated coalition formation, we propose the possible use ofmobile agents. Finding potential coalition partners may not be that di�cult.With an appropriate communication mechanism, it is easier for an agent tolocate potential partners than a person sitting at a computer. The agent maysearch in a public place where bidders or agents put partial bids for the hopeof being combined by others, for example. Agents usually search orders ofmagnitude faster than humans. Furthermore, agents' time is not as costly.

To solve the trust problem, a third party site might be necessary to helpmobile agents form coalitions. At the third party site agents could sign bindingcontracts, and check the agents' owners' credit history and reputation.

Collusion can improve the economic e�ciency as discussed above. How-ever, it involves speculation costs and sometimes causes revenue loss for theauctioneer. For example, bidders in an auction can coordinate to keep theirbids arti�cially low so as to get the item at a lower price than they otherwisewould. Considering the user numbers and diversity in most Internet auctions,it is highly unlikely that bidders across the Internet can establish a singlecoalition for an auction so that bids stay arti�cially low. Therefore it may bethe case that automated coalition formation contributes to the positive sidemore than to the negative side in the Internet auction setting.

7 Conclusions

This paper presented Nomad, a mobile agent system for electronic auctions.It has been integrated with eAuctionHouse, our next generation Internetauction server. The reader is invited to visit the site and test the agents(http://ecommerce.cs.wustl.edu).

Our auction house supports mobile agents so that a user can have heragent actively participating in the auction(s) while she is disconnected. Mobileagents that execute on the agent dock which is on (or near) the host machineof the auction server also reduce the network latency|a key advantage intime-critical bidding. Our auction server uses the Concordia agent dock toprovide mobile agents a safe execution platform from where they can monitorthe auctions, bid, set up auctions, move to other hosts, etc. The user hasthe full exibility of Java programming at her disposal when designing heragent. We also provide an HTML interface for non-programmers where theuser can specify what she wants her agent to do, and the system automaticallygenerates the Java code for the corresponding mobile agent, and launches it.Some of these predesigned agents are alerting tools, others bid optimally on

Page 34: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

the user's behalf based on game theoretic analyses. This helps put novicebidders on an equal footing with experts.

Future research includes developing additional prototype agents based onnew game theoretic analyses. Also, automated coalition formation by bidderagents brings new challenging problems which will be further studied in thecontinuing development of eAuctionHouse and Nomad.

References

[1] P. Milgrom. Auctions and bidding: A primer. Journal of Economic Perspectives,3(3):3{22, 1989.

[2] E. Rasmusen. Games and Information. Basil Blackwell, 1989.

[3] S. J. Rassenti, V. L. Smith, and R. L. Bul�n. A combinatorial auction mechanismfor airport time slot allocation. Bell J. of Economics, 13:402{417, 1982.

[4] J. A. Rodriguez-Aguilar, P. Noriega, C. Sierra, and J. Padget. FM96.5: A Java-based electronic auction house. In In Proceedings of the Second InternationalConference on the Practical Application of Intelligent Agents and Multi-AgentTechnology (PAAM'97), 1997.

[5] M. H. Rothkopf, A. Peke�c, and R. M. Harstad. Computationally manageablecombinatorial auctions. Management Science, 44(8):1131{1147, 1998.

[6] T. W. Sandholm. An implementation of the contract net protocol based onmarginal cost calculations. In Proceedings of the National Conference on Arti-�cial Intelligence (AAAI), pages 256{262, Washington, D.C., July 1993.

[7] T. W. Sandholm. An algorithm for optimal winner determination in combina-torial auctions. In Proceedings of the Sixteenth International Joint Conferenceon Arti�cial Intelligence (IJCAI), Stockholm, Sweden, 1999. Extended version:Washington University, Department of Computer Science technical report WUCS-99-01.

[8] T. W. Sandholm. eMediator: A next generation electronic commerce server. Tech-nical Report WUCS-99-02, Washington University, Department of Computer Sci-ence, 1999.

[9] P. R.Wurman, M. P. Wellman, and W. E. Walsh. The Michigan Internet Auction-Bot: A con�gurable auction server for human and software agents. In Proceedingsof the Second International Conference on Autonomous Agents (AGENTS), pages301{308, Minneapolis/St. Paul, MN, May 1998.

Page 35: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

A Partitioning Model for Applications in Mobile Environments

Alexander Schill1, Albert Held2, Thomas Ziegert1 and Thomas Springer1

1 Dresden University of Technology, Department of Computer Science, Institute of OperationSystems, Data Bases and Computer Networks, Mommsenstr. 13, D-01062 Dresden, Germany

{schill, ziegert, springet}@ibdr.inf.tu-dresden.de2 DaimlerChrysler, Research and Technology 3, Wilhelm-Runge-Str. 11, D89081 Ulm,

Germany [email protected]

Abstract: Today mobile devices are an integral part of the execution environment of many distributedapplications. The new application domain of mobile computing brought up by this fact introducesproblems special to this area. Most of the currently available applications can’t handle mobility andfrequently changing network media. In this paper a partitioning model is introduced which combinesvarious techniques used to solve the special problems of mobile computing and to facilitate theadaptation of application behavior according to the execution environment. Main points are the proxyapproach and the use of mobile agents as application components. The model focuses on a pair ofgeneric proxy agents which are placed at both sides of a wireless connection to control the data transferbetween a mobile host and the wired network.

1 Introduction and MotivationToday mobile devices are an integrated part of the execution environment of many distributedapplications. This fact has brought up a new application domain called mobile computing whichoffers the information access anywhere and anytime but also introduces new problems special tothis application area (e.g. frequent disconnections and low bandwidth). Most of the currentlyavailable applications can’t handle mobility and frequently changing network media. Theyassume a static environment and often high bandwidth connections typical in LANs. Because ofthe increasing use of mobile devices and the variety of their hardware resources, it is desirablethat applications react and adapt to the frequently changing execution environment. For instancethe transfer and the visualization of web pages should be adapted to the available bandwidth tothe receiving host and the hardware resources on the mobile device.

Several Solutions have been published introducing environment aware, adaptable applications.Disconnected operations [1,2] are used to handle frequent disconnections. In combination withprefetching and caching strategies, work can be continued without a network connection. Otherapproaches use data reduction techniques to reduce the data volume, which has to be transferredover wireless links. Examples are the filtration and compression of data according to its type [3].To implement such techniques an intermediate component called proxy is used. This approachoffers the possibility to improve even legacy software, especially client/server applications,without or with very little changes of the existing components.

The paradigm of mobile agents offers new solutions for the problems named above. An agentcan be sent to the wired network and during the execution of the agent no connection to mobilehost is required. The mobile agent acts autonomously and sends results back when a newconnection to its originating host is established.

In this paper a partitioning model is introduced which combines various techniques used tosolve the special problems of mobile computing and to facilitate the adaptation of applicationbehavior according to the execution environment. Main points are the proxy approach and the useof mobile agents as application components. The model focuses on a pair of generic proxy agentswhich are placed at both sides of a wireless connection to control the data transfer. Some majorideas of the model can be found in [10].

Page 36: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Section 2 contains some fundamental considerations and work related to our approach. In section3 the generic partitioning model is described. In section 4 we present some performance resultsmeasured using a sample application. A conclusion is drawn in section 5.

2 Foundations and Related WorkFrequent disconnections are one problem of wireless communication media. There are two waysto handle this issue. First there are disconnected operations enabling the user of a mobile deviceto continue his work even when the connection to the network is lost. The file system CODA [2]realizes this technique by caching files locally in the connected state and accessing only localdata if no connection to the network is available. The second possibility is offered by mobileagents. They can be sent to hosts placed on the wired network side and are able to continue theirwork even if the connection to the mobile host is closed. Results of such an autonomousoperation1 can be delivered after a new connection to the mobile device is established.

Caching can reduce the network load by keeping frequently used data locally. By applying aprefetching strategy high delay times can be kept hidden to the user. To work efficiently thisstrategy needs to observe user actions to decide what data has to be prefetched. In the case ofwrong decisions bandwidth is wasted but this technique can be used to exploit unused bandwidth.Further improvement can be reached using lazy write-back. Data is only written back to a serverin the wired network after a modification in the cache and after the access is ended (e.g. the closeoperation for a file has been called). These techniques need additional resources on the mobiledevice. Restoring the consistency between cache and source data in the network when switchingfrom disconnected to connected state needs also additional effort (see [1]).

The frequently changing bandwidth and the low available bandwidth in general can beaddressed by data reduction prior to the transfer. The deployment of compression algorithms (e.g.lzh) reduces the volume of all kinds of data. Lossy compression (e.g. JPEG and MPEG) orconversion according to the type of data can be used to reduce the volume of multimedia data.For example, the size or the color depth of a picture could be changed.

Some techniques can decrease the network load by dropping data less important for the overallinformation of structured data. Therefore additional information at the application level is neededto assess the importance of the parts within a data structure. Hierarchical data (like HTML pages)is well suited to apply filtering methods. The importance of data is included in the hierarchy. Thehigher the position in the hierarchy the more important is the data for the overall information ofthe structured data. Dropping of data depends on the available bandwidth. The lower thebandwidth the fewer levels of the hierarchy are transferred. Data outlines can be created fromstructured data which decreases the amount of data to transfer. For instance a HTML page couldbe reduced to headlines and links with placeholders for the other data. The full information onlyhas to be transferred when a section or a placeholder is selected for viewing by the user. Lazyevaluation can also reduce the network load. Only actually used data is transferred (the part of aHTML page which is currently visible) (see also [11]).

Disconnections can be handled generally by applying queuing. When a connection breaksenqueued data can be transferred via a new established connection. In the same manner the datatransfer can be delayed if the bandwidth of the currently available connection is not sufficient.Queuing will not reduce the network load but it enhances the behavior of applications duringdisconnections.

1 In the literature the phrase disconnected operation is sometimes used for both of the described operations. We use the expressions

“disconnected” and “autonomous” to distinguish between both types.

Page 37: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

A general approach to support mobile environments is the partitioning of applications anddistribution of the components between the mobile device and hosts in the wired network. Theaim is the dynamic adaptation of applications in reaction to changes within their executionenvironment (e.g. quality of connection to the mobile device and availability of resources).

An often used method is the introduction of an intermediate component placed between clientand server components. This so called proxy senses its execution environment and adapts thecommunication over the link to the mobile device according to the available communicationmedia.

An adaptation of the data stream can be done in the network infrastructure [6]. In thisapproach the amount of data is reduced using data type specific lossy compression andconversion. This functionality is separated from the client and server components and is part ofan intermediate proxy within the network infrastructure.

In [5] the main task of the intermediary is filtering the data stream to the mobile device.Therefore the following methods are applicable: optimized protocols, selective dropping ofstructured data, compression or a deferred data transfer. By using a proxy component, client andserver components can remain unchanged or can be used with very little changes.

The approach of partitioning an application is also used in [3]. Data and functionality of anapplication is partitioned into hyperobjects which are linked hierarchical objects managed by thesystem. These hyperobjects contain base types such as text, graphics, untyped data and functions.Based on this structure caching, prefetching and data reduction are used to exploit the wirelesslinks efficiently. Data reduction is done by selecting a subset of structured data for the transferaccording to the available network resources, application specified data priority and filters.

All the techniques described above can be used to adapt application behavior to the parameters ofthe available network connection and execution environment. Filtering, compression andconversion of data, outlines and lazy evaluation reduce the amount of data which has to betransferred. These techniques can be implemented as an application component placed at astationary host. Code for caching, prefetching and lazy write-back has to be placed on the mobiledevice. Beside these restrictions not all techniques can be combined. While lazy evaluation onlytransfers data really needed, prefetching transfers data that will possibly never be needed. Apartitioning model which combines some of the described techniques is introduced in the nextsection.

3 The Partitioning Model

3.1 A First ApproachIn [4] a traffic telematics application was presented which was based on mobile agents asapplication components. The application has been partitioned into several parts which weredistributed between a mobile device and hosts in the wired network. An agent acts as proxy forthe mobile device within the wired network. Information is processed and filtered before it istransferred to the mobile device. The proxy agent is assigned only to this application. A genericpartitioning model was also introduced, where a single proxy agent acts for several applicationsat the mobile host.

The application partitioning model we introduce in this paper is a refinement of this generalapproach. It is based on the experiences obtained from the traffic telematics application. Ingeneral each application needs a component at the mobile device. This component contains theuser interface, functions to interact with the user and the components in the network (e.g.configuration, communication and control) and functions independent from the network.

Page 38: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Additional components can be placed at the wired part of the network. These components containfunctions related to resources on the wired network side and adapt the data stream according tothe communication link to the mobile device. The component in the wired network can bedivided to additional subcomponents to facilitate parallel execution of tasks and localcommunication by migrating these subcomponents to the host of the communication partner.

By implementing this first model in a straightforward way (like the telematics application), itprovides disconnected operations by using caching and prefetching and autonomous operationsdue to the use of mobile components, reduces the network load by filtering and handlesdisconnections by queuing. But the intermediate component per application which facilitatesfunctions that are generic, could be used by more than one application. Therefore we have furtherrefined our model to separate generic and application related functions of the proxy.

3.2 A Generic ModelThe application partitioning model is based on two pairs of components which contain genericand application related functions of the proxy. The generic component placed within the wirednetwork acts as a permanent representation of the mobile device. All communication attempts ofthe application involving the wireless link are mediated by the generic components.

There are some restrictions with respect to the placement of code which implements thetechniques described in section 2. Caching, prefetching and lazy write-back are realized by theapplication related component on the mobile device because these techniques need informationonly available at application level to work effectively. Caching and lazy write-back can also beapplied in a more generic fashion and therefore be realized by the generic component.Compression and conversion depend on the data type which is generic. Queuing improves thedisconnection handling of all applications in common. Data can be filtered using applicationrelated information. Therefore filtering is done by the application related component within thewired network. Packets can also be filtered using their routing information (e.g. source and targetand priority) which is common for all applications. Lazy evaluation and outlines depend oninformation available at application level.

In consideration of the above described restrictions the partitioning model was designed asshown in figure 1. It focuses on a pair of generic components which are placed at both sides ofthe link to the mobile device. Furthermore there are components placed on the mobile device andwithin the wired part of the network.

Our partitioning model was designed according to the following principles: Informationshould be used where it is available. Low bandwidth, high latency communication media requirean adaptation (volume reduction, adaptation of the send and receive behavior), which can be donein an generic and application specific way, so the system should incorporate both possibilities.Application components should be, as much as possible, dispersed within the wired networkinfrastructure. For instance, the application can be partitioned according to the structure of theused servers.

Furthermore our model decouples application components from the movement of the mobiledevice.

3.2.1 The Local Application

This component may be for instance a client of an existing client/server application. In newlydeveloped applications, only one component on the mobile device will exist (see next section).

Page 39: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

3.2.2 The Application Related Component on the Mobile Device

This component contains the user interface, functions to process local data (e.g. test of theconsistency of user data, configuration, and control of the other components) and applicationrelated functions of the proxy as described above. In this component user actions can be observedand application related information can be used to effectively implement caching and prefetchingstrategies.

3.2.3 The Application Related Component within the Wired Network

This component accesses data located on hosts within the wired network and contains functionsto reduce the volume of data transferred to the mobile device. In this component applicationspecific information can be used.

In many cases a further decomposition of this component will be useful. For instance asupervising component may create various subcomponents which perform subtasks. Thesesubcomponents migrate independently to servers to communicate locally. The supervisingcomponent collects the results of all subcomponents, processes these results and sends only asummary to the mobile device after filtering. In general the decomposition of this componentdepends on the task of the application and the distribution of accessed servers and informationresources.

clientapplication

applicationrelated

component

genericcomponent

genericcomponent

applicationrelated

component

subcomponent

applicationrelated

component

server 1

server 2

server n

subcomponent

subcomponent

applicationrelated

component

mobile device wired network

direct communication indirect communication

Figure 1: A generic partitioning model

3.2.4 The Generic Components (Generic Proxy)

The pair of generic components mediates the communication between the other components.While the other components exist per application, these two only exist per mobile device, Thusthey are used by all applications of a mobile device.

In our concept the application related components are intended to be independent from thegeneric proxy. That means that all application components are also able to communicate withoutthe generic proxy. This is useful if a high bandwidth connection to the mobile device is available.

Page 40: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

It should be possible to dynamically bind and unbind application components to the genericproxy according to changes in the execution environment.

In a generic component incoming messages are inserted into a queue for further processing.All messages are encapsulated in an uniform data container which contains a description of theincluded data. The description contains routing information, data type, two id’s to identify datastreams and packets within a stream and information how the packet should be handled by thegeneric proxy. This allows each application to configure the handling of its data in the genericproxy. For instance an application can determine if a packet should be compressed and whichminimal quality is tolerable for the compression. Packets are exchanged as single messages.Therefore each agent contains one method to receive messages (which is similar for all agents)with a data object as argument.

The queuing mechanism is not determined in the model. Currently we use a priority queue inour prototype application. Therefore the user can specify a priority for each application accordingto time constraints concerning the delivery of there messages. Each message is assigned with anpriority belonging to its application before it is enqueued. Other queuing mechanisms areapplicable. The priority could also be determined by the application itself according to theposition of data in a data structure. Also multiple queues (one for each priority) could be used(see [9],[12]).

The messages remain in the queue until the transfer is possible. Selected messages are adaptedto the available bandwidth by compressing and converting these according to the data type. Aprotocol adapted to the communication media can be used to optimize the transfer [5]. Forinstance multiple parallel send threads can be used for communication media with high delaytimes to better exploit the available bandwidth [9]. If a generic component receives a messagefrom its twin component the message is mediated according to the included target information.

4 A Sample ApplicationAn email application has been implemented to validate our model. It is partitioned using thedescribed model. The Netscape Navigator Mail represents the client of the existing client/serverapplication (the client component in figure 1). The application related component on the mobiledevice provides a user interface to configure and control all application components (agents) andto input filter data and the information required to access the email account. New messages aredelivered to the mail server. The application specific component in the wired network is calledemail agent. It migrates to the mail server host or a host close to the server. Once there it will askfor new messages using the information for the email account. New messages are filtered in twoways using the header information (e.g. sender, receiver or subject) and information in the body(e.g. body text or attachment data type and size). The filtered messages are sent to the componentat the mobile device. Therefore the generic proxy is used.

The implementation is based on the ObjectSpace Voyager core technology API [7] and theJDK 1.2 [8]. The communication between agents is based on the RMI mechanism of Java. Forfurther details see [4].

Table 1 shows the transfer times of messages with and without the indirection over the proxyagent. We conducted our measurements for 100VGAnyLAN on two 200MHz Pentium Pro,64MB RAM workstations running WindowsNT and for Ethernet and the wireless LAN on aThinkPad 760D (Pentium 166MHz, 64MB RAM) running Windows95 and one of theworkstations mentioned. The values are average times over 500 runs. We transferred an emailcontaining a JPEG picture with a size of 12204 bytes in high and 4439 bytes low quality. Thedecoding and encoding needs an average of 135,6 ms altogether.

Page 41: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

The values for 100VGAnyLAN and Ethernet are highly influenced by theserialization/deserialization times. The use of the proxy components only is advantageous fordisconnection handling. Using the wireless LAN, the transfer time of the compressed data issignificantly lower than the times for transferring uncompressed data. The indirection over thegeneric proxy takes also some time but the benefit for disconnection handling and adaptationjustifies this effort.

100VGAnyLAN

3Com Ethernet Xircom Netwave wirelessLAN

low quality 180 179,2 444,7with genericproxy high quality 190,8 189,1 809,6

low quality 55,5 57,3 378,3withoutgeneric proxy high quality 58,8 72,1 774,4

Table 1: Message transfer times in ms

5 ConclusionThe partitioning model described in this paper enables the dynamic adaptation of applications todynamic changes of their execution environment. It introduces two component pairs. Thesecomponents contain application related and generic functions to handle disconnections andvariations in connection quality. Generic and application specific techniques are placed incomponents where they can access required information to work effectively. While otherapproaches focus one special problems like filtering of information [5] or data reduction [6] ourmodel integrates most of the these techniques. Another advantage is the possibility to share thegeneric functionality between applications. The generic proxy provides a robust softwarecomponent to adapt data transfer which can be used by all applications of a mobile device andindependently of underlying network protocols. The handling of the data remains independentlyconfigurable for each application. Because of the defined and limited functionality of the genericproxy, this component is small compared to the application related components. This reduces theeffort necessary after the movement of the mobile device. Only the generic proxy has to bemoved. This decouples the application related parts from the movement of the mobile device soown migration strategies can be applied, which includes the migration to a server near the mostprobable next location of a mobile user.

An important fact is the use of mobile agents as application components which facilitates adynamic placement of application parts and the dynamic placement of the proxy during runtime.The capability of migration is performed by the agent system. The agent system also providesother services (e.g. naming and locating, security) which can be used by all applications. Mobileagents also facilitate the execution of autonomous operations as described before. To enable theadaptation to the execution environment, the environment has to be sensed by the components.Therefore the agent system must provide additional services for instance to observe the quality ofnetwork connections. By using an agent system based on Java the proxy can be used on anyplatform which provides a Java virtual machine. Only the availability of the agent system and theclass files are special requirements in our approach.

References1. Marc E. Fiuczynski and David Grove: A Programming Methodology for Disconnected

Operation; Technical Report, University of Washington, March 1994

Page 42: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

2. James J. Kistler and M. Satyanarayanan: Disconnected Operation in the Coda File System;ACM Transactions on Computer Systems, 10(1), pp. 3-25, February 1992

3. Terri Watson: Effective Wireless Communication through Application Partitioning; In Proc.of the Fifth Workshop on Hot Topics in Operation Systems (HotOS-V), May 1995

4. Alexander Schill, Albert Held, Wito Böhmak, Thomas Springer, Thomas Ziegert: An AgentBased Application for Personalized Vehicular Traffic Management; Lecture Notes inComputer Science 1477 Mobile Agents, Springer, ISBN 3-540-64959-X, pp. 99-111, 1998

5. Bruce Zenel, Dan Duchamp: A General Purpose Proxy Filtering Mechanism Applied to theMobile Environment; The Third Annual ACM/IEEE International Conference on MobileComputing and Networking, 1997 pp. 248-259

6. Armando Fox and Steven D. Gribble and Eric A. Brewer and Elan Amir: Adapting toNetwork and Client Variability via On-Demand Dynamic Distillation; Proceedings of theSeventh International Conference on Architectural Support for Programming Languages andOperating Systems, pp. 160-170, October 1-5, 1996

7. ObjectSpace: Voyager Core Technology User Guide, Version 2.0, 19988. Sun Microsystems: The Java Developers Kit, Version 1.2;

http://java.sun.com/products/jdk1.2/index.html, 19989. Alexander Schill, Sascha Kümmel, Thomas Springer and Thomas Ziegert: Experiences with

an Adaptive Multimedia Transfer Service for Mobile Environments; Workshop InteractiveApplications of Mobile Computing, Rostock, Germany, November 24-25, 1998

10. Thomas Springer: Masters Thesis (Diplomarbeit): Verteilung von Applikationen in Systemenmit mobilen Endgeräten; Dresden University of Technology, Department of ComputerScience, Institute of Operating Systems, Data Bases and Computer Networks, 1998

11. Terri Watson: Application Design for Wireless Computing; In Proc. of the 1994 MobileComputing Systems and Applications Workshop, December 1994

12. Dirk Gollnick, Sascha Kümmel, Alexander Schill and Thomas Ziegert: Off-Line Verteilungmultimedialer Daten in mobilen Systemen; in GI/ITG-Fachtagung Kommunikation inVerteilte Systemen, Springer Verlag, pp. 357-371, February 1997

Page 43: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

MAC3 Workshop Notes Frameworks for Managing & Understanding

Autonomous Agents ‘99 42 May 1st 1999

Frameworks for Frameworks for Managing and Managing and

Understanding Mobile Understanding Mobile Agent ComplexityAgent Complexity

Page 44: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Economic Markets as a Means of Open Mobile-Agent

Systems

Jonathan Bredin, David Kotz, and Daniela Rus

Department of Computer Science

Dartmouth College

Hanover, NH 03755

fjonathan, dfk, [email protected]

May 1, 1999

Abstract

Mobile-agent systems have gained popularity in use because they ease the applica-

tion design process by giving software engineers greater exibility. Although the value

of any network is dependent on both the number of users and the number of sites

participating in the network, there is little motivation for systems to donate resources

to arbitrary agents. We propose to remedy the problem by imposing an economic

market on mobile-agent systems where agents purchase resources from host sites and

sell services to users and other agents. Host sites accumulate revenues, which are dis-

tributed to users to be used to launch more agents. We argue for the use of markets to

regulate mobile-agent systems and discuss open issues in implementing market-based

mobile-agent systems.

1 Introduction

One of the more recent items in a network programmer's tool box is code mobility. The tech-nique is becoming more common in applications programming, network management [BPW98],video conferencing [BPR98], software distribution and installation, unreliable networkedweather forecasting [Joh98], and client-server networking alternatives [Mul98].

Mobility allows the programmer to easily distribute resource usage throughout the net-work over time. Resource contention can be mitigated by relocating execution to less utilizedmachines on the network. Additionally, since mobile agents are autonomous, they may sched-ule their own computation at a later time at a remote host, avoiding times of congestion.

We examine some restrictions typically present in mobile-agent systems. Speci�cally, fewmobile-agent applications implement communication with agents from other applications orsubmitted by competing users. This shortfall might be surprising considering that agenttechnology is often advertised as a unifying design paradigm nurturing both cooperationand competition.

Page 45: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Many of the restrictions faced by usable mobile-agent systems stem from the distributednature of mobility: because decisions are made throughout the network, coordination be-comes more diÆcult. Human societies have implemented economic markets as a solution fordistributed control. We believe that the same solution can be applied to create societies ofmobile agents.

We propose that mobile agents buy computational resources from their hosts using ascarce veri�able currency. The agents' priority would be governed by limited endowments.The danger of denial-of-service attacks is bounded by agents' expenditure. Systems can buyoutside computational resources to exibly expand their computing base. Conversely, idleresources may be sold to users from other sites. Finally, a fair price system provides valuableinformation that allows agents to autonomously and eÆciently balance network load.

We conclude by establishing goals necessary to implement computational markets inthe context of mobile-agent systems: a low-overhead veri�able currency system, eÆcientincentive-compatible pricing mechanisms, a set of standards conveying the rules and basesof such pricing mechanisms to allow rational planning by agents, and both demand-basedand reservation-based consumption.

2 Motivation

As mobility becomes more commonly used in network programming, we observe that, sofar, applications operate in a closed environment. The range of sites to which an agent canjump is severely restricted and it is common for all agents in the system to only representthe interest of a single user or cooperating group of users. Additionally, typically agents onlycommunicate with other agents of the same application.

The number of sites to which an agent can jump is limited. Why should a host allow anyagents to visit at all? If we ask the analog question in web browsing, in a large number ofsituations there is a clear advantage for web servers to supply their resource (information) toarbitrary clients. This information dissemination is generally done to boost the reputationof the host site's owners, clients, or products.

Computational resources exported by mobile-agent hosts are much more diÆcult to con-trol. The host site generally has no assurance that an arbitrary agent's actions will haveany bene�cial e�ects. There is little incentive for a host system to provide resources to anarbitrary agent. Not only is there the additional congestion incurred through normal mobileagent use, but there are additional risks from denial-of-service attacks and other irresponsibleuses of resources.

A mobile-agent system's value is not only dependent on the number of participatinghost sites, but also on the the number of participating users and agents. Most non-researchmobile-agent applications assume that agents are all issued by cooperating owners. Typically,only one entity issues mobile agents for a task. This entity may be represented by manyusers working for a university or company, but the interests of the agents are generallycomplementary and it is in agents' best interest to cooperate. Essentially, agents in suchsituations can be viewed as having a common owner.

Even if all agents share a common goal, their use distributes decision-making processesthroughout the network. To perform eÆciently, agents must be able to coordinate and assess

Page 46: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

the impact of their actions. Ideally, the medium for this information exchange should be fastand incur minimal overhead.

We see few real-world examples of agents coordinating with agents involved in otherapplications. In stark contrast, consider the World Wide Web. A user's browser sendsrequests to thousands of host sites to retrieve information. Much of the information retrievalis more than simply examining an HTML �le. Often browsers exchange cookies with servers,negotiate security protocols, retrieve dynamically produced web pages, download applets,and forward retrieved information to other applications to be processed. A typical webbrowsing-session can involve the use of several dozen application programs. We have thesame goal for mobile-agent systems.

3 Markets

To overcome the limitations currently experienced by mobile agents, we propose to establishan economic market for computational resources and services. Mobile agents arriving ata host site will purchase the resources necessary to complete their task. These resourcescould include access to the CPU, network and disk interface, data storage, and databases.Presumably, agents are providing valuable services to their users. It is possible that otheragents would also bene�t from the service, so agents could sell their services to users andagents. Eventually, currency will accumulate at host sites. Revenues are then distributed tolocal users who in turn disperse their income to their agents completing the cycle.

The currency used in computational markets does not necessarily have to be tied tolegal tender currency. If the currency is exchangeable for real dollars, however, systemadministrators can essentially export and import their computational resources. Accessto underutilized resources may be sold to mobile agents (resource export). If local resourcecontention is high, then users may launch agents to carry on computation elsewhere (resourceimport).

Because currency is scarce, budgets are �nite, and all resource consumption is tied toexpenditure, agents' lifetimes are limited. The extent of a denial-of-service attack, wantonconsumption done with the intention of excluding other users from the resource, is limited.Given that resource pricing is fair, hosts will be happy to entertain a denial-of-service at-tack to maximize revenues. An eÆcient pricing policy will ensure that demand and priceare positively correlated and make denial-of-service attacks extremely expensive operations,deterring o�enders.

Price, the same mechanism that discourages wasteful consumption, serves as a simplemetric of resource contention and site congestion. Price advertisement provides a simplemeans of agent coordination as follows. Revenue maximizing hosts will charge what themarket will bear. High prices due to congestion give agents incentive to distribute themselvesevenly throughout the network or defer execution to a less congested time. Thus a pricingsystem e�ectively implements both temporal and spatial load balancing.

The idea of selling computational resources to mobile programs is not new. We discussa few recent implementations next. POPCORN [RN98] is a system that uses markets todistribute \computelets" through the network to take advantage of idle CPUs. The approachis intended for parallel programs where interaction among threads is limited.

Page 47: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

The Geneva Messengers project [Tsc97] applies market ideas to allocate CPU usage andmemory to visitingmessengers, lightweight mobile programs implemented in a Postscript-likelanguage. Host sites heuristically set prices by examining the amount of resources requestedby the present messengers.

In Telescript [Whi96] agents carry permits to access speci�c host-site resources. As apermit is used, hosts trust each other to diminish the permit's power. The result is thatagents' lifetimes are limited. This use of permits can be viewed as a limited form of amarket. Host sites distribute permits for each resource to be controlled, though a permit forone resource is not easily convertible to another. A more general form of this mechanismwould be to have a universal permit, currency, that could be exchanged for other permits.

An extreme point of view is taken in MarketNet [YDFH98] where currency-resourceexchange is the exclusive form of security. Di�erent levels of security access are sold tousers. Sites may discount access to certain populations by setting a lower price in a separatecurrency. Presumably this new currency is unusable by users outside the group.

4 The Challenge

There are many hurdles to cross on the way to implementing an e�ective market system.Most obviously, there must be some means of exchange such as a secure currency system.The market should be structured in such a way to reward honest behavior, to facilitateplanning. Finally, this structure should be well known to all entities participating in themarket.

4.1 Accounting

All markets rely on a secure means of exchange. Without this, there is no incentive forparticipants to cooperate. Currency should be scarce to reinforce its value. A prerequisiteto this is that currency may only be spent once, i.e. a buyer may not use the same note formore than one purchase. Ensuring this is the crux of any monetary system and can carrywith it signi�cant overhead. Electronic currency in the context of mobile-agent systems hasone particular caveat: an agent's money is essentially just data, data to which the hostpotentially has access.

There are several micro-currencies designed to minimize the cost of transaction [GMA+96,PHS98]. If the cost of currency exchange is still too large, there are other options to take.Hosts can establish a local account for each agent or its owner. Deposits into the accountare periodically made with some secure payment method. Agents then withdraw from thelocal accounts as they compute, trusting the host site to correctly decrement the accountbalance. If the deposits are small or the account is known to be used over a long period oftime, then there is less incentive for hosts to overdraw the local account since the payo� forcheating once is lower than conducting further honest business.

The other option is to scale the level of resource accounting. Ideally, agents wouldbe charged for every action they take including a precise count of the instructions exe-cuted or even the number of processor cycles used; bits sent through the network interfaces;words/milliseconds of storage; etc. Such monitoring is most likely impractical, however, due

Page 48: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

to the cost of precise measurement. At the other extreme, agents may pay a �xed fee toexecute any set of instructions. Obviously, this is also ineÆcient in that agents will rarelyuse the exact level of service for which they pay.

A happy medium between the two extremes must be found. Possibly, pro�ling existingapplications using mobile-agent technology will give some intuition on the appropriate level ofcontrol. It is quite possible that the sorts of applications that can take advantage of mobilityhave similar resource requirements and one can tailor an allocation policy accommodatingthe majority of applications.

Extending this strategy could allow hosts to o�er one of several resource packages andan appropriate billing plan to agents. Each package-accounting pair would have advantagesto di�erent groups of applications depending on preferences and resource demands.

4.2 Policy Design

There are two dynamics that drive the construction of economic policy. One is the partici-pants' goal to maximize utility, while the other is the system's engineers need to enforce anequitable allocation. These two ideals often con ict under poorly designed policies. A simpleexample is when the market is allowed to create monopoly. Here a monopolist will act tomaximize revenue at the expense of customers. The lesson learned is that either monopoliesshould be regulated or that conditions allowing the existence of monopolies should not exist.

It is the responsibility of the designer of the economic system to provide an environmentin which both buyers and sellers are willing to participate. Frequently, this is facilitatedby constructing mechanisms where the parties choose those actions that express their trueintentions, i.e, incentive compatible mechanisms. This open honesty mitigates the cost ofplanning and decision making.

A well used example of an incentive-compatible policy is the sealed-bid second-priceauction [Vic61] where potential buyers simultaneously submit a single bid for a good. Theauctioneer chooses the winner to be the participant who submitted the highest bid, but thewinner pays the highest losing bid. Generally, the optimal strategy is for a buyer to submita bid equal to the buyer's valuation of the good.

A second issue in policy design: to enforce load balancing, a resource management policyshould provide a strong correlation between the contention for a resource and its price.Possibly, this might be accomplished through setting a price that increases as the quantityconsumed rises. Alternatively, an auction could be held for the resource and the resourceowner could let the buyers compete to set the price.

Negotiation of price is not suÆcient for market-based resource allocation. The resourcemanagement policy must also take into account resource consumption scheduling. The sys-tem designer must decide whether to entertain reservations, consumption on demand, orsome combination of the two. Users and agents would likely be willing to pay more forservice guaranteed by reservations, but hosts might be able to sell larger quantities of re-sources on a demand based scheduler. This is an interesting and valuable issue to study as ite�ects planning on both the host and client sides and will likely deal with computationallycomplex issues. There is the additional dimension that users will be willing to pay amountsproportional to the quality of service.

Page 49: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

4.3 Standardization

Finally, any e�ective policy will require that all participants are aware of the guidelinesregulating the system. Sites will have to �nd some way of publishing their resource pricingand allocation policies for their potential users. For agents to be aware of rules either requiresa single standard or some protocol for expressing market parameters.

Again, with this issue, there should be moderation. The point of an \agent" is to shieldthe user from all the intricacies of computation by providing an abstraction. The user shouldbe aware of the service quality they receive as well as a general level of congestion of therequests to their agents, but it is the agents' responsibility to eÆciently perform the task.

5 Conclusion

We believe that markets are the proper tools to provide an open mobile-agent system. Theyenforce an additional level of security and give incentive for agents to autonomously balancethe computational load across the network. Allowing the currency used to buy computationalresources to be exchanged for legal tender allows system administrators to temporarily ex-pand their domain by importing resources as well as capitalize on idle resources by exportingthem.

Implementation of a mobile-agent computational market will require further research inelectronic currency exchange to minimize the overhead of currency validation. Furthermore,careful decisions must be made on the part of market designers and host-site owners toequitably distribute resources among mobile agents and local users while attempting tomaximize revenue. Finally, regardless of the resource-allocation policy, for agents (or theirprogrammers) to plan appropriately, they must be able to detect which policy is being used.Policy discovery will likely require either a single standard or a language to describe marketprotocols.

Establishing markets will achieve distributed decision making in mobile-agent systems.We feel that markets are natural solutions to mobile-agent coordination and resource controland will eventually allow mobile agents to be used in an open multi-application environment,though much work remains to be done to implement a working system.

Acknowledgments

This work is supported in part by the Navy and Air Force under contracts ONR N00014-95-1-1204 and MURI F49620-97-1-0382, Rome Labs under contract F30602-98-C-0006, andDARPA under contract F30602-98-2-0107.

Page 50: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

References

[BPR98] Mario Baldi, Gian Peitro Picco, and Fulvio Risso. Designing a videoconferencesystem for active networks. In In Proceedings of the Second International Work-

shop, Mobile Agents '98, pages 273{284, Stuttgart, Germany, September 1998.

[BPW98] Andrzej Bieszczad, Bernard Pagurek, and Tony White. Mobile agents for networkmanagement. IEEE Communications Surveys, September 1998.

[GMA+96] Steve Glassman, Mark Manasse, Mart�in Abadi, Paul Gauthier, and PatrickSobalvarro. The Millicent protocol for inexpensive electronic commerce. World

Wide Web Journal, 1(1), Winter 1996. Also in Fourth International World WideWeb Conference, December 1995.

[Joh98] Dag Johansen. Mobile agent applicability. In In Proceedings of the Second Inter-

national Workshop, Mobile Agents '98, pages 80{98, Stuttgart, Germany, 1998.

[Mul98] Tomasz Muldner. Mobile computing at acadia university. Dart-mouth College Computer Science Colloquia, 1998. slides athttp://evilqueen.acadiau.ca/presentations/mobileagents.ppt.

[PHS98] Tomi Poutanene, Heather Hinton, and Michael Stumm. NetCents: A lightweightprotocol for secure micropayments. In USENIX Workshop on Electronic Com-

merce, pages 25{36. USENIX Association, September 1998.

[RN98] Ori Regev and Noam Nisan. The POPCORN market| an online market forcomputational resources. In Proceedings of the First International Conference

on Information and Computation Economies, pages 148{157, Charleston, SC,October 1998. ACM Press.

[Tsc97] Christian F. Tschudin. Open resource allocation for mobile code. In In Proceed-

ings of The First Workshop on Mobile Agents, Berlin, April 1997.

[Vic61] William Vickrey. Counterspeculation, auctions, and competitive sealed tenders.Journal of Finance, 16:8{37, 1961.

[Whi96] James E. White. Telescript technology: Mobile agents. General Magic WhitePaper, 1996.

[YDFH98] Y. Yemini, A. Dailianas, D. Florissi, and G. Huberman. MarketNet: Market-based protection of information systems. In Proceedings of the First Interna-

tional Conference on Information and Computation Economies, pages 181{190,Charleston, SC, October 1998. ACM Press.

Page 51: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

Emergent Behavior and Mobile Agents

Tony WhiteBernard Pagurek

({tony,bernie}@sce.carleton.ca)http://www.sce.carleton.ca/researchers/tony/index.html

Systems and Computer Engineering, Carleton University1125 Colonel By Drive, Ottawa, Ontario, Canada K1S 5B6

Abstract

Naturally occurring multi-agent systems exhibit remarkable problem solving capabilitieseven in the absence of centralized planning. These systems exhibit complex, emergentbehavior that is robust with respect to the failure of individual agents. Such systems areusually characterized by the interaction of a large number of simple agents that sense andchange their environment locally. In this paper, we discuss mobile agents and how theyrepresent a novel problem solving paradigm that can exploit naturally occurring multi agentsystem (biological) metaphors. We introduce the principle of synthetic ecologies ofchemically inspired agents in order to model problem solving behavior in networks. Wedemonstrate the utility of the architectural principles by describing example applications forproblem solving in the communications domain.

Keywords: mobile agents, agent coordination, agent collaboration, swarm intelligence

1. IntroductionThe advantages of mobile agents have largely been discussed in terms of technology [Chess et al.,

97] and the value of individual agent autonomy (see, for example, [Bieszczad et al, 98]). It is possibleto view them as an approach to problem solving where mobility and interactions with the networklocally are stressed. Similarly, coordination mechanisms for mobile agents have been discussed interms of blackboard-style algorithms, with the agents tending to be rational, having a knowledge ofself and a goal to be achieved (see, for example, [O’Hare and Jennings, 96]). In fact, severalimplementations of such systems are being investigated by the mobile agent community [Picco et al.,99]. Symbolic systems of this type are often brittle, unable to cope with the failure of a single agentand may depend upon planning by a central agency in order to achieve coordination. Such systemsoften have to cope with the latency problems inherent in centralized systems. We believe that theselimitations undermine the value and power of mobile agent systems.

It is difficult to argue against the effectiveness of naturally occurring multi agent systems and, inparticular, systems exhibiting mobility. Societies of simple agents are capable of complex problemsolving while possessing limited individual abilities [Franks, 89; Hölldobler and Wilson, 94]. Theyoften possess no central coordination of activity; problem solving is distributed. Societies of suchmobile agents are found at all levels of evolutionary complexity, from bacteria to ants and beyond. Itis common in such societies to observe social coherence although when behavior of the individual isobserved, a large stochastic component is present. Stated another way, such societies exhibit emergentbehavior.

Problem solving by societies of simple agents has a number of common characteristics. Inter-agent communication is local; no single agent has a global view of the world. Communication is alsoachieved using simple signals and these signals are time dependent; e.g. they usually decay with time.Signal levels provide the driving force for migration patterns. Individual agents sense and contributesignal energy to the environment. In this description of the problem solving process, there are twodistinct and important agent characteristics. First, there is the role of the agent within the problemsolving process; i.e. how the work of problem solving is distributed to a diverse set of agents. Secondthe degree to which the actions of one agent reinforce the actions of other agents in the society ofproblem solvers.

Page 52: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

The appeal of swarms of biologically inspired agents for industrial problem solving has recentlybeen appreciated [Parunak, 98]. Research into the problems and potential of multiple, interactingswarms of mobile agents is just beginning [White and Pagurek, 98].

In the remainder of this paper, we briefly describe the principles of Swarm Intelligence andStigmergy. We then use these principles as motivation for the Synthetic Ecology of Chemical Agents(SynthECA) and provide arguments as to the value of the abstraction. SynthECA is then used toindicate how several interacting swarms of agents would be capable of problem solving in networks.The paper then concludes with a review of its important messages.

2. Swarm Intelligence and StigmergySwarm Intelligence [Beni and Wang, 89] is a property of systems of unintelligent agents of limited

individual capabilities collectively exhibiting intelligent behavior. An agent in this definition represents anentity capable of sensing its environment and undertaking simple processing of environmental observationsin order to perform an action chosen from those available to it. These actions include modification of theenvironment in which the agent operates. Intelligent behavior frequently arises through indirectcommunication between the agents, this being the principle of stigmergy [Grassè, 59]. It should be stressed,however, that the individual agents have no explicit problem solving knowledge and intelligent behaviorarises (or emerges) because of the actions of societies of such agents.

Individual ants are behaviorally simple insects with limited memory and exhibiting activity that has astochastic component. However, collectively ants manage to perform several complicated tasks with a highdegree of consistency (see, [Franks, 89; Hölldobler and Wilson, 94] for examples).

Two forms of stigmergy have been observed. Sematectonic stigmergy involves a change in the physicalcharacteristics of the environment. Ant nest building is an example of this form of communication in thatan ant observes a structure developing and adds its ball of mud to the top of it. The second form ofstigmergy is sign-based. Here something is deposited in the environment that makes no direct contributionto the task being undertaken but is used to influence the subsequent behavior that is task related.

Sign-based stigmergy is highly developed in ants. Ants use highly volatile chemicals called pheromones(a hormone) to provide a sophisticated signaling system. Ants foraging for food lay down quantities ofpheromone marking the path that it follows with a trail of the substance. An isolated ant moves essentiallyat random but an ant encountering a previously laid trail will detect it and decide to follow it with a highprobability and thereby reinforce it with a further quantity of pheromone. Equally importantly, pheromonesevaporate. The collective behavior which emerges is a form of autocatalytic behavior where the more theants follow the trail the more likely they are to do so. The process is characterized by a positive feedbackloop, where the probability that an ant chooses any given path increases with the number of ants choosingthe path at previous times.

3. SynthECAThe Synthetic Ecology of Chemical Agents (SynthECA) exploits ant-inspired agents to solve problems

by moving over the nodes and links in a network and interacting with "chemical messages" deposited inthat network. Chemical messages have two attributes, a label and a concentration. These messages arepersistent and are the principal medium of communication used between both swarms and individualswarm agents. Chemical messages are used for communication rather than raw operational measurementsfrom the network in order to provide a clean separation of measurement from reasoning. In addition,chemical messages drive the migration patterns of agents, the messages intended to lead agents to areas ofthe network which may require attention. Chemical labels are digitally encoded, having an associatedpattern that uses the alphabet {1, 0, #}. This encoding has been inspired by those used in GeneticAlgorithms and Classifier Systems [Goldberg, 89] (for example). The hash symbol in the alphabet allowsfor matching of both one and zero and is, therefore, the "don't care" symbol.

Agents in the SynthECA system can be described by the tuple, #='�4�%�/&(�O�. This definition isdescribed at length in [White and Pagurek, 98] and will only be briefly described here. SynthECA agentscan be thought of as an implementation of the engineering principles for multi agent systems described in[Parunak, 98]. Agents in the SynthECA system can be described using five components:

• emitters ('),

Page 53: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

• receptors (4),• chemistry (%),• a migration decision function (/&(),• memory (O)

An agent’s emitters and receptors are the means by which the local chemical message environment ischanged and sensed respectively. Both emitters and receptors have rules associated with them in order thatthe agent may reason with information sensed from the environment and the local state stored in memory.The chemistry associated with an agent defines a set of chemical reactions. These reactions represent theway in which sensed messages can be converted to other messages that can, in turn, be sensed by otheragents within the network. The migration decision function is intended to drive mobile agent migration andit is in this function that the foraging ant metaphor, as introduced in [Dorigo et al, 91], is exploited.Migration decision functions have the following forms:

pijk (t) = F(i,j,k,t) / 1k(i,j,t), R < R*

= S(i,j,t) otherwise

(1)

�1k(i,j,t) = Σj in A(i) F(i,j,k,t) (2)

F(i,j,k,t) = Πp[Tijkp(t) ]-αkp[C(i,j)]-β (3)

F(i,j,k,t) = maxj Πp [Tijkp(t) ]-αkp[C(i,j)]-β, when j = jmax

= 0 otherwise

(4)

where:pij

k (t) is the probability that the kth agent at node i will choose to migrate to node j at time t,αkp,

β are control parameters for the kth agent and pth chemicals,1k(i,j,t) is a normalization term,A(i) is the set of available outgoing links for node i,C(i,j) is the cost of the link between nodes i and j,Tijkp(t) is the concentration of the pth chemical on the link between nodes i and j for which the kth agenthas receptors at time t,R is a random number drawn from a uniform distribution (0,1],R* is a number in the range (0,1],S(i,j,t) is a function that returns 1 for a single value of j, j*, and 0 for all others at some time t, where j*is sampled randomly from a uniform distribution drawn from A(i),F(i,j,k,t) is the migration function for the kth agent at time t at node i for migration to node j,jmax is the link with the highest value of: Πp [Tijkp(t) ]

-αkp[C(i,j)]-β.

The intention of the migration decision function is to allow an agent to hill climb in the direction ofincreasing concentrations of the chemicals that a particular agent can sense, either probabilistically(equation (3) for F(i,j,k,t)) or deterministically (equation (4) for F(i,j,k,t)1). However, from time to time, arandom migration is allowed, this being the purpose of the function S(i,j,t). This is necessary, as thenetwork is likely to consist of regions of high concentrations of particular chemical messages connected byregions of low or even zero, concentrations of the same chemicals. The addition of this random elementassists an agent in escaping from local minima.

1. Note that pijk (t) = 1 for j=jmax, and 0 otherwise.

Page 54: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

2A

F

C

D

E

1

1

1

1

1

1

1

1 1

B

Finally, memory is associated with each agent in order that state can be used in the decision-makingprocesses employed by the agent.

Why is the chemical abstraction important?First, the SynthECA chemical abstraction forces us to design agent systems assuming nothing about

concurrency and, as such, draws for its inspiration on the Chemical Abstract Machine (CHAM) [Berry andBoudol, 92]. CHAM provides a framework for developing specifications that does not bias the describedsystems towards any particular computational model. This abstraction is particularly important for mobileagents as it not possible to make assumptions with regard to action-event sequences in networks. Second,SynthECA provides for a single messaging abstraction that allows a broadcast capability throughgeneralized receptors and facilitates signal reinforcement through concentration of a chemical. Third, agentchemistry allows energy and entropy flow through the processes of individual chemical reactions; e.g.evaporation. Reinforcement and energy flows are characteristics considered fundamental to systems thatare to exhibit emergent behavior. Finally, analytical techniques based upon reaction kinetics and statisticalthermodynamics [Millonas, 95] provide powerful tools for analysis.

4. Modeling with SynthECAOne of the goals in proposing SynthECA was that it should be capable of supporting subsumption

architectures [Brooks, 91]. It was our intent to allow the addition of new layers to operational agent systemswithout modification of the encoded behavior of agent classes in existing layers. SynthECA achieves thisgoal by providing chemical signals that are passed between layers. Signals may excite or inhibit migratorybehavior within layers depending upon the sensitivity to the particular chemical. For example, thereliability chemical deposited by a fault location agent provides an inhibitory signal that affects themigration of routing agents.

We have applied SynthECA to the problems of routing, fault location and planning in networks. Theseare briefly described in the following three subsections. A mechanism for implementing agent faulttolerance is described in a fourth subsection.

4.1 Routing

The foraging behavior of ants and their use of pheromones for route reinforcement map easily andnaturally to the problem of route finding in networks. SynthECA routing agents use distinct chemicals forparticular point-to-point, point-to-multipoint and shortest Hamiltonian cycle routing tasks. Each routingagent senses a routing chemical (r-chemical), a reliability chemical (R-chemical) and a quality of servicechemical (qos-chemical). Routing agents are sent out from source to destination(s), dropping a quantity ofr-chemical on the return path to the source node having discovered the destination. Path emergence isconsidered to have occurred when the majority of the returning routing agents follow the same path (see[White, Pagurek and Oppacher, 98] for more details and results). Once a route has emerged, an allocatoragent traverses the path and assigns resources to the connection. A quality of service sensing agent (qos-agent) then monitors the end-to-end quality of the allocated connection. Several examples of theexploitation of the foraging behavior of ants for routing have also been reported [Schoonderwoerd et al.,97], [Bonabeau et al., 98], [Di Caro and Dorigo, 97].

4.2 Fault Location

Whenever the connection quality sensed by theqos-agent changes significantly, another agent traversesthe nodes and links involved in the connection droppinga quantity of qos-chemical proportional to the change insensed quality of service. Given that many connectionsshare network resources, more qos-chemical will bedropped on common elements than others, in manycases making possible the identification of thecomponent responsible for the quality of servicechange. This is shown in Figure 1 opposite where twoconnections, AB and CD, are present. The numericFigure 1: Fault Location Example

Page 55: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

labels on the nodes and edges represent the quantity of qos-chemical deposited for a hypothetical quality ofservice change. A qos-location-agent senses qos-chemical concentrations, constantly migrating towardshigher concentrations of qos-chemical. When it reaches the peak of qos-chemical concentration, it initiatesdiagnostic activity on the component in order to determine the problem. In the figure on the previous page,diagnostic activity would be initiated on node E. Once the problem has been corrected, a quantity of R-chemical is dropped in proportion to the time taken to diagnose/repair the problem. The R-chemical is usedby the planning and routing agents. A reliability agent (R-agent) circulates constantly within the network,hill-climbing in the space of the R-chemical. When the R-agent reaches a device for which the reliabilitythreshold has been compromised, the device is scheduled for replacement or maintenance activity. Furtherdetails on the fault location scenario may be found in [White, Bieszczad and Pagurek, 98].

4.3 Planning

The R-chemical in the previous section may be used to drive the planning process along with achemical resulting from network congestion (c-chemical). Arguably, the R-agent is an example of aplanning agent as it reacts to the synthesis of events (quality of service changes) over an extended period.Congestion sensing agents (c-agents) circulate in the network, choosing to visit the least recently visitedadjacent neighbor as a migration strategy. They interact with (non-SynthECA) agents that measure theutilization of resources on that device2 and drop a quantity of c-chemical in proportion to the utilization ofthe device. Given that routing agents sense the r-chemical, and choose to avoid resources that areunreliable, they are likely to cause increasing congestion because of unbalanced network usage. A planningagent (p-agent) needs to identify regions of the network that are either high congestion or high unreliabilityareas. They do so by sensing R-chemical and c-chemical concentrations and initiating the re-planning of aregion of the network for which a function of the two concentrations exceeds some threshold value.

4.4 Fault tolerance

Devices in networks are unreliable and agent loss must be tolerated if multi agent systems are to bemade to function reliably. As this paper has demonstrated, SynthECA agents can be made to sense anumber of chemicals. The fault location and planning agents of the previous two sections require that smallnumbers of such agents circulate constantly in the network. Hence, given unreliable transport and devices,we can expect agents to be lost.

We propose that two classes of agent #�='��4��%��/&(��O��, #�='��4��%��/&(��O��, share chemicalsin their emitters and receptors; i.e. '�� �4���Ø and '�� �4���Ø. One of the emitters of #��is used to generatea chemical that indicates when the agent was last at a given location. This same chemical is a member ofthe receptor set of #�. #� uses the concentration of this chemical to decide whether a member of the #�

class has visited a device "sufficiently frequently." Reactions on each device cause these chemicals toevaporate at a given rate. If #� reasons that the visit rate is too low, it spawns a new instance of class #��thatthen migrates autonomously. Similarly, when an instance of class #�� visits a device, it senses its "visitfrequency" chemical. If after performing whatever activity it is designed for it reasons that the visitfrequency is too high, it dies. Obviously, the above algorithm can be repeated with indices reversed therebyleading to symbiotic fault tolerance for the two agent classes.

Simple extensions to multiple classes are possible.

5. ConclusionsWe have proposed the exploitation of a number of ideas and principles from naturally occurring multi-

agent systems in this paper in order to provide support for mobile agents as a problem solving technique.The essential characteristics of SynthECA agents are that they possess simple behaviors, reinforce andmodify each others’ actions through interaction with their environment by chemical messaging. Essentially,chemical messages are symbols with state. Problem solving is emergent in that routing agents are notexplicitly told how to find a route and fault location agents are not instructed on network fault finding.

2 Presumably, they use a measurement agent such as a Simple Network Management Protocol (SNMP) agent.

Page 56: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

The scenarios presented are simple, but compelling, and we believe that considerable insight can begained by experimental and analytical study of systems constructed using SynthECA agents.

AcknowledgementsWe would like to acknowledge the support of the Communications Information Technology Ontario

(CITO) and the National Science and Engineering Research Council (NSERC) for their financial support ofthis work.

Bibliography[1] G. Beni and J. Wang, Swarm Intelligence in Cellular Robotic Systems, Proceedings of the NATO

Advanced Workshop on Robots and Biological Systems, Il Ciocco, Tuscany, Italy, 1989.[2] G. Berry and G. Boudol, The Chemical Abstract Machine, Theoretical Computer Science, 96(1), pp.

217-248, 1992.[3] E. Bonabeau, F. Henaux, S. Guérin, D. Snyers, P. Kuntz and G. Théraulaz, Routing in

Telecommunication Networks with Smart Ant-Like Agents. In Proceedings of the SecondInternational Workshop on Agents in Telecommunications Applications (IATA ’98), Lectures Notes inAI vol 1437, Springer Verlag, 1998.

[4] A. Bieszczad, T. White, and B. Pagurek, Mobile Agents for Network Management. In IEEECommunications Surveys, September, 1998.

[5] R. A. Brooks, Intelligence Without Representation, Artificial Intelligence, Vol. 47, pp. 139-159, 1991.[6] Chess. D, Harrison C., and Kershenbaum A., Mobile agents: Are they a good idea? In Mobile Object

Systems: Towards the Programmable Internet, pages 46-48. Springer-Verlag, April 1997. LectureNotes in Computer Science No. 1222.

[7] G. Di Caro and M. Dorigo, AntNet: A Mobile Agents Approach to Adaptive Routing. Tech. Rep.IRIDIA/97-12, Université Libre de Bruxelles, Belgium, 1997.

[8] M. Dorigo, V. Maniezzo and A. Colorni, The Ant System: An Autocatalytic Optimizing Process.Technical Report No. 91-016, Politecnico di Milano, Italy, 1991.

[9] N.R. Franks, Army Ants: A Collective Intelligence, Scientific American, Vol. 77, 1989.[10] D. Goldberg, Genetic Algorithms in Search, Optimization, and Machine Learning. Reading, MA:

Addison-Wesley, 1989.[11] P. P. Grassè, La reconstruction du nid et les coordinations inter-individuelles chez Bellicoitermes

natalenis et Cubitermes sp. La theorie de la stigmergie: Essai d'interpretation des termitesconstructeurs. In Insect Societies, Vol. 6, pp. 41-83, 1959.

[12] B. Hölldobler and E. O. Wilson, Journey to the Ants. Bellknap Press/Harvard University Press, 1994.[13] M. M. Millonas, Swarms, Phase Transitions and Collective Intelligence, In Artificial Life III (ed. C. G.

Langton). Santa Fe Institute Studies in the Sciences of Complexity, Proc. Vol XVII. Reading,Massachussetts: Addison-Wesley, 1994.

[14] G. M. P. O'Hare and N. R. Jennings (eds.), Foundations of Distributed Artificial Intelligence, ISBN 0-471-00675-0, John Wiley & Sons, 1996.

[15] H. Van Dyke Parunak, Go to the Ant: Engineering Principles from Naturally Multi-Agent Systems, toappear in Annals of Operations Research. Available as Center for Electronic Commerce report CEC-03, 1998.

[16] G. P. Picco, A. L. Murphy and G-R. Roman, Lime: Linda Meets Mobility, Accepted for publication inProceedings of the 21th International Conference on Software Engineering (ICSE'99), Los Angeles(USA), May 1999. Also available as Technical Report WUCS-98-21, July 1998, WashingtonUniversity in St. Louis, MO, USA.

[17] R. Schoonderwoerd, O. Holland and J. Bruten. Ant-like Agents for Load Balancing inTelecommunications Networks. In Proceedings of Autonomous Agents ’97, Marina del Rey, CA, ACMPress pp. 209-216, 1997.

[18] T. White and B. Pagurek, Towards Multi-Swarm Problem Solving in Networks. In Proceedings of theThird International Conference on Multi-Agent Systems (ICMAS ’98), pp. 333-340, July, 1998.

Page 57: in the Context of Competition and Co-operationMobile Agents in the Context of Competition and Co-operation (MAC3) ... will have fast, pervasive access to a phenomenal amount of information,

[19] T. White, A. Bieszczad and B. Pagurek, Distributed Fault Location in Networks Using Mobile Agents.In Proceedings of the Second International Workshop on Agents in Telecommunications Applications(IATA ’98), pp. 130-141, July 4th-7th, 1998.

[20] T. White, B. Pagurek and F. Oppacher, Connection Management using Adaptive Agents. InProceedings International Conference on Parallel and Distributed Processing Techniques andApplications (PDPTA’98), pp. 802-809, 12th-16th July, 1998.