BibTeX for papers by David Kotz; for complete/updated list see https://www.cs.dartmouth.edu/~kotz/research/papers.html @Article{bredin:jgame, author = {Jonathan Bredin and Rajiv T. Maheswaran and {\c{C}}agri Imer and Tamer Ba{\c{s}}ar and David Kotz and Daniela Rus}, title = {{Computational Markets to Regulate Mobile-Agent Systems}}, journal = {Autonomous Agents and Multi-Agent Systems}, year = 2003, month = {May}, volume = 6, number = 3, pages = {235--263}, publisher = {Kluwer Academic Publishers}, copyright = {Kluwer Academic Publishers}, DOI = {10.1023/A:1022923422570}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-jgame/index.html}, abstract = {Mobile-agent systems allow applications to distribute their resource consumption across the network. By prioritizing applications and publishing the cost of actions, it is possible for applications to achieve faster performance than in an environment where resources are evenly shared. We enforce the costs of actions through markets where user applications bid for computation from host machines. \par We represent applications as collections of mobile agents and introduce a distributed mechanism for allocating general computational priority to mobile agents. We derive a bidding strategy for an agent that plans expenditures given a budget and a series of tasks to complete. We also show that a unique Nash equilibrium exists between the agents under our allocation policy. We present simulation results to show that the use of our resource-allocation mechanism and expenditure-planning algorithm results in shorter mean job completion times compared to traditional mobile-agent resource allocation. We also observe that our resource-allocation policy adapts favorably to allocate overloaded resources to higher priority agents, and that agents are able to effectively plan expenditures even when faced with network delay and job-size estimation error.}, } @InCollection{gray:motivation, author = {Robert S. Gray and George Cybenko and David Kotz and Daniela Rus}, title = {{Mobile agents: Motivations and State of the Art}}, booktitle = {{Handbook of Agent Technology}}, editor = {Jeffrey Bradshaw}, year = 2002, chapter = 0, publisher = {AAAI/MIT Press}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/gray-motivation/index.html}, note = {Accepted for publication, but the book never published. Draft available as Technical Report TR2000-365, Department of Computer Science, Dartmouth College}, abstract = {A mobile agent is an executing program that can migrate, at times of its own choosing, from machine to machine in a heterogeneous network. On each machine, the agent interacts with stationary service agents and other resources to accomplish its task. In this chapter, we first make the case for mobile agents, discussing six strengths of mobile agents and the applications that benefit from these strengths. Although none of these strengths are unique to mobile agents, no competing technique shares all six. In other words, a mobile-agent system provides a single general framework in which a wide range of distributed applications can be implemented efficiently and easily. We then present a representative cross-section of current mobile-agent systems.}, } @Article{gray:spe, author = {Robert S. Gray and George Cybenko and David Kotz and Ronald A. Peterson and Daniela Rus}, title = {{D'Agents: Applications and Performance of a Mobile-Agent System}}, journal = {Software--- Practice and Experience}, year = 2002, month = {May}, volume = 32, number = 6, pages = {543--573}, publisher = {John Wiley \& Sons}, copyright = {John Wiley \& Sons}, DOI = {10.1002/spe.449}, URL = {https://www.cs.dartmouth.edu/~kotz/research/gray-spe/index.html}, note = {Invited paper}, abstract = {D'Agents is a mobile-agent system that is used primarily for information-retrieval applications. In this paper, we first examine two such applications, where mobile agents greatly simplify the task of providing efficient but application-specific access to remote information resources. Then we describe the D'Agents system, which supports multiple languages, Tcl, Java and Scheme, and strong mobility for Tcl and Java. After considering the D'Agents implementation, we present some recent performance and scalability experiments that compare D'Agent mobile agents with traditional client/server approaches. The experiments show that mobile agents often outperform client/server solutions, but also demonstrate the deep interaction between environmental and application parameters. The mobile-agent performance space as a whole is complex, and significant additional experiments are needed to characterize it. Finally, after discussing current and future experiments, we explore the differences between D'Agents and other mobile-agent systems.}, } @InProceedings{grimstrup:gmas, author = {Arne Grimstrup and Robert Gray and David Kotz and Maggie Breedy and Marco Carvalho and Thomas Cowin and Daria Chac{\"{o}}n and Joyce Barton and Chris Garrett and Martin Hofmann}, title = {{Toward Dynamic Interoperability of Mobile Agent Systems}}, booktitle = {{Proceedings of the IEEE International Conference on Mobile Agents}}, series = {Lecture Notes in Computer Science}, year = 2002, month = {October}, volume = 2535, pages = {106--120}, publisher = {Springer}, copyright = {Springer-Verlag}, DOI = {10.1007/3-540-36112-X_8}, URL = {https://www.cs.dartmouth.edu/~kotz/research/grimstrup-gmas/index.html}, abstract = {Mobile agents are an increasingly popular paradigm and in recent years there has been a proliferation of mobile-agent systems. These systems are, however, largely incompatible with each other. In particular, agents cannot migrate to a host that runs a different mobile-agent system. Prior approaches to interoperability have tried to force agents to use a common API and so far none have succeeded. This goal led to our efforts to develop mechanisms that support dynamic runtime interoperability of mobile-agent systems. This paper describes the \emph{Grid Mobile-Agent System}, which allows agents to migrate to different mobile-agent systems.}, } @TechReport{kotz:dwta-tr, author = {David Kotz and Robert Gray and Daniela Rus}, title = {{Future Directions for Mobile-Agent Research}}, institution = {Dartmouth Computer Science}, year = 2002, month = {January}, number = {TR2002-415}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-dwta-tr/index.html}, note = {Based on a conversation with Jeff Bradshaw, Colin Harrison, Guenter Karjoth, Amy Murphy, Gian Pietro Picco, M. Ranganathan, Niranjan Suri, and Christian Tschudin.}, abstract = {During a discussion in September 2000 the authors examined the future of research on mobile agents and mobile code. (A mobile agent is a running program that can move from host to host in network at times and to places of its own choosing.) In this paper we summarize and reflect on that discussion. It became clear that the field should shift its emphasis toward mobile code, in all its forms, rather than to continue its narrow focus on mobile agents. Furthermore, we encourage the development of modular components, so that application designers may take advantage of code mobility without needing to rewrite their application to fit in a monolithic mobile-agent system. There are many potential applications that may productively use mobile code, but there is no ``killer application'' for mobile agents. Finally, we note that although security is an important and challenging problem, there are many applications and environments with security requirements well within the capability of existing mobile-code and mobile-agent frameworks.}, } @Article{kotz:dwta, author = {David Kotz and Robert Gray and Daniela Rus}, title = {{Future Directions for Mobile-Agent Research}}, journal = {IEEE Distributed Systems Online}, year = 2002, month = {August}, volume = 3, number = 8, numpages = 6, publisher = {IEEE}, copyright = {IEEE}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-dwta/index.html}, note = {Based on a conversation with Jeff Bradshaw, Colin Harrison, Guenter Karjoth, Amy Murphy, Gian Pietro Picco, M. Ranganathan, Niranjan Suri, and Christian Tschudin.}, abstract = {The field of mobile agents should shift its emphasis toward mobile code, in all its forms, rather than continue focusing on mobile agents. The development of modular components will help application designers take advantage of code mobility without having to rewrite their applications to fit in monolithic, mobile agent systems.}, } @Article{kotz:jmodel, author = {David Kotz and George Cybenko and Robert S. Gray and Guofei Jiang and Ronald A. Peterson and Martin O. Hofmann and Daria A. Chac{\"{o}}n and Kenneth R. Whitebread and James Hendler}, title = {{Performance Analysis of Mobile Agents for Filtering Data Streams on Wireless Networks}}, journal = {Mobile Networks and Applications (MONET)}, year = 2002, month = {April}, volume = 7, number = 2, pages = {163--174}, publisher = {Kluwer Academic Publishers}, copyright = {Kluwer Academic Publishers}, DOI = {10.1023/A:1013778922814}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-jmodel/index.html}, note = {Invited paper}, abstract = {Wireless networks are an ideal environment for mobile agents, since their mobility allows them to move across an unreliable link to reside on a wired host, next to or closer to the resources that they need to use. Furthermore, client-specific data transformations can be moved across the wireless link and run on a wired gateway server, reducing bandwidth demands. In this paper we examine the tradeoffs faced when deciding whether to use mobile agents in a data-filtering application where numerous wireless clients filter information from a large data stream arriving across the wired network. We develop an analytical model and use parameters from filtering experiments conducted during a U.S. Navy Fleet Battle Experiment (FBE) to explore the model's implications.}, } @InProceedings{aslam:position, author = {Jay Aslam and Marco Cremonini and David Kotz and Daniela Rus}, title = {{Using Mobile Agents for Analyzing Intrusion in Computer Networks}}, booktitle = {{Proceedings of the Workshop on Mobile Object Systems at ECOOP}}, year = 2001, month = {July}, numpages = 2, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/aslam-position/index.html}, } @InCollection{bredin:game-book, author = {Jonathan Bredin and David Kotz and Daniela Rus and Rajiv T. Maheswaran and {\c{C}}agri Imer and Tamer Ba{\c{s}}ar}, title = {{A Market-Based Model for Resource Allocation in Agent Systems}}, booktitle = {{Coordination of Internet Agents Models, Technologies, and Applications}}, editor = {Franco Zambonelli}, year = 2001, chapter = 17, pages = {426--441}, publisher = {Springer-Verlag}, copyright = {Springer-Verlag}, ISBN = {3-540-41613-7}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-game-book/index.html}, abstract = {In traditional computational systems, resource owners have no incentive to subject themselves to additional risk and congestion associated with providing service to arbitrary agents, but there are applications that benefit from open environments. We argue for the use of markets to regulate agent systems. With market mechanisms, agents have the abilities to assess the cost of their actions, behave responsibly, and coordinate their resource usage both temporally and spatially. \par We discuss our market structure and mechanisms we have developed to foster secure exchange between agents and hosts. Additionally, we believe that certain agent applications encourage repeated interactions that benefit both agents and hosts, giving further reason for hosts to fairly accommodate agents. We apply our ideas to create a resource-allocation policy for mobile-agent systems, from which we derive an algorithm for a mobile agent to plan its expenditure and travel. With perfect information, the algorithm guarantees the agent's optimal completion time. \par We relax the assumptions underlying our algorithm design and simulate our planning algorithm and allocation policy to show that the policy prioritizes agents by endowment, handles bursty workloads, adapts to situations where network resources are overextended, and that delaying agents' actions does not catastrophically affect agents' performance.}, } @Misc{bredin:info, author = {Jonathan Bredin and David Kotz and Daniela Rus}, title = {{The Role of Information in Computational-Resource Allocation, for the TASK Electronic Commerce REF}}, howpublished = {Invited paper at the DARPA TASK PI meeting}, year = 2001, month = {May}, copyright = {the authors}, location = {Santa Fe, NM}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-info/index.html}, abstract = {We examine the role of information in markets that allocate computation to software agents. The comparison of two types of markets illuminates the importance of information and the incentives for buyers and sellers to share their preferences with each other. In our comparison, the distinguishing feature of the two markets types is the alignment of agents' interests. We define a closed-interest market as one where resources are collectively owned among the agents. An open-interest market makes no assumptions on the interests of agents or resource owners. \par The incentives of agents in the two markets drastically differ. The open-interest model motivates agents to be less trusting and to not share information. This aspect stems from the model's greater applicability to resource allocation, but has a deep impact on system efficiency. In this paper, we summarize some economic theory and allegorical evidence from our models and system implementations that support the claim, and conclude with guidelines for system development. }, } @TechReport{gray:scalability-tr, author = {Robert S. Gray and David Kotz and Ronald A. Peterson and Peter Gerken and Martin Hofmann and Daria Chac{\"{o}}n and Greg Hill and Niranjan Suri}, title = {{Mobile-Agent versus Client/Server Performance: Scalability in an Information-Retrieval Task}}, institution = {Dartmouth Computer Science}, year = 2001, month = {January}, number = {TR2001-386}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/gray-scalability-tr/index.html}, abstract = {Mobile agents are programs that can jump from host to host in the network, at times and to places of their own choosing. Many groups have developed mobile-agent software platforms, and several mobile-agent applications. Experiments show that mobile agents can, among other things, lead to faster applications, reduced bandwidth demands, or less dependence on a reliable network connection. There are few if any studies of the scalability of mobile-agent servers, particularly as the number of clients grows. We present some recent performance and scalability experiments that compare three mobile-agent platforms with each other and with a traditional client/server approach. The experiments show that mobile agents often outperform client/server solutions, but also demonstrate the deep interaction between environmental and application parameters. The three mobile-agent platforms have similar behavior but their absolute performance varies with underlying implementation choices.}, } @TechReport{grimstrup:gmas-tr, author = {Arne Grimstrup and Robert Gray and David Kotz and Thomas Cowin and Greg Hill and Niranjan Suri and Daria Chac{\"{o}}n and Martin Hofmann}, title = {{Write Once, Move Anywhere: Toward Dynamic Interoperability of Mobile Agent Systems}}, institution = {Dartmouth Computer Science}, year = 2001, month = {July}, number = {TR2001-411}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/grimstrup-gmas-tr/index.html}, abstract = {Mobile agents are an increasingly popular paradigm, and in recent years there has been a proliferation of mobile-agent systems. These systems are, however, largely incompatible with each other. In particular, agents cannot migrate to a host that runs a different mobile-agent system. Prior approaches to interoperability have tried to force agents to use a common API, and so far none have succeeded. Our goal, summarized in the catch phrase ``Write Once, Move Anywhere,'' led to our efforts to develop mechanisms that support dynamic runtime interoperability of mobile-agent systems. This paper describes the Grid Mobile-Agent System, which allows agents to migrate to different mobile-agent systems.}, } @PhdThesis{bredin:thesis, author = {Jonathan L. Bredin}, title = {{Market-based Control of Mobile-agent Systems}}, school = {Dartmouth College Computer Science}, year = 2001, month = {June}, copyright = {Jonathan L. Bredin}, address = {Hanover, NH}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-thesis/index.html}, note = {Available as Dartmouth Computer Science Technical Report TR2001-408}, abstract = {Modern distributed systems scatter sensors, storage, and computation throughout the environment. Ideally these devices communicate and share resources, but there is seldom motivation for a device's owner to yield control to another user. We establish markets for computational resources to motivate principals to share resources with arbitrary users, to enforce priority in distributed systems, to provide flexible and rational limitations on the potential of an application, and to provide a lightweight structure to balance the workload over time and between devices. As proof of concept, we implement a structure software agents can use to discover and negotiate access to networked resources. The structure separates discovery, authentication, and consumption enforcement as separate orthogonal issues to give system designers flexibility. \par Mobile agents represent informational and computational flow. We develop mechanisms that distributively allocate computation among mobile agents in two settings. The first models a situation where users collectively own networked computing resources and require priority enforcement. We extend the allocation mechanism to allow resource reservation to mitigate utility volatility. The second, more general model relaxes the ownership assumption. We apply our computational market to an open setting where a principal's chief concern is revenue maximization. \par Our simulations compare the performance of market-based allocation policies to traditional policies and relate the cost of ownership and consumption separation. We observe that our markets effectively prioritize applications' performance, can operate under uncertainty and network delay, provide metrics to balance network load, and allow measurement of market-participation risk versus reservation-based computation. \par In addition to allocation problems, we investigate resource selection to optimize execution time. The problem is NP-complete if the costs and latencies are constant. Both metrics' dependence on the chosen set complicates matters. We study how a greedy approach, a novel heuristic, and a shortest-constrained-path strategy perform in mobile-agent applications. \par Market-based computational-resource allocation fertilizes applications where previously there was a dearth of motive for or means of cooperation. The rationale behind mobile-agent performance optimization is also useful for resource allocation in general distributed systems where an application has a sequence of dependent tasks or when data collection is expensive.}, } @InProceedings{bredin:game, author = {Jonathan Bredin and Rajiv T. Maheswaran and {\c{C}}agri Imer and Tamer Ba{\c{s}}ar and David Kotz and Daniela Rus}, title = {{A Game-Theoretic Formulation of Multi-Agent Resource Allocation}}, booktitle = {{Proceedings of the International Conference on Autonomous Agents}}, year = 2000, month = {June}, pages = {349--356}, publisher = {ACM}, copyright = {ACM}, DOI = {10.1145/336595.337525}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-game/index.html}, abstract = {This paper considers resource allocation in a network with mobile agents competing for computational priority. We formulate this problem as a multi-agent game with the players being agents purchasing service from a common server. We show that there exists a computable Nash equilibrium when agents have perfect information into the future. From our game, we build a market-based CPU allocation policy and a strategy with which an agent may plan its expenditures for a multi-hop itinerary. We simulate a network of hosts and agents using our strategy to show that our resource-allocation mechanism effectively prioritizes agents according to their endowments and that our planning algorithm handles network delay gracefully.}, } @InProceedings{bredin:risk, author = {Jonathan Bredin and David Kotz and Daniela Rus}, title = {{Trading Risk in Mobile-Agent Computational Markets}}, booktitle = {{International Conference on Computing in Economics and Finance}}, year = 2000, month = {July}, numpages = 10, publisher = {Kluwer Academic Publishers}, copyright = {Kluwer}, address = {Barcelona, Spain}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-risk/index.html}, note = {No proceedings available}, abstract = {Mobile-agent systems allow user programs to autonomously relocate from one host site to another. This autonomy provides a powerful, flexible architecture on which to build distributed applications. The asynchronous, decentralized nature of mobile-agent systems makes them flexible, but also hinders their deployment. We argue that a market-based approach where agents buy computational resources from their hosts solves many problems faced by mobile-agent systems. \par In our earlier work, we propose a policy for allocating general computational priority among agents posed as a competitive game for which we derive a unique computable Nash equilibrium. Here we improve on our earlier approach by implementing resource guarantees where mobile-agent hosts issue call options on computational resources. Call options allow an agent to reserve and guarantee the cost and time necessary to complete its itinerary before the agent begins execution. \par We present an algorithm based upon the binomial options-pricing model that estimates future congestion to allow hosts to evaluate call options; methods for agents to measure the risk associated with their performance and compare their expected utility of competing in the computational spot market with utilizing resource options; and test our theory with simulations to show that option trade reduces variance in agent completion times.}, } @TechReport{gray:motivation-tr, author = {Robert S. Gray and George Cybenko and David Kotz and Daniela Rus}, title = {{Mobile agents: Motivations and State of the Art}}, institution = {Dartmouth Computer Science}, year = 2000, month = {April}, number = {TR2000-365}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/gray-motivation-tr/index.html}, abstract = {A mobile agent is an executing program that can migrate, at times of its own choosing, from machine to machine in a heterogeneous network. On each machine, the agent interacts with stationary service agents and other resources to accomplish its task. In this chapter, we first make the case for mobile agents, discussing six strengths of mobile agents and the applications that benefit from these strengths. Although none of these strengths are unique to mobile agents, no competing technique shares all six. In other words, a mobile-agent system provides a single general framework in which a wide range of distributed applications can be implemented efficiently and easily. We then present a representative cross-section of current mobile-agent systems.}, } @TechReport{kotz:model-tr, author = {David Kotz and Guofei Jiang and Robert Gray and George Cybenko and Ronald A. Peterson}, title = {{Performance Analysis of Mobile Agents for Filtering Data Streams on Wireless Networks}}, institution = {Dartmouth Computer Science}, year = 2000, month = {May}, number = {TR2000-366}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-model-tr/index.html}, abstract = {Wireless networks are an ideal environment for mobile agents, because their mobility allows them to move across an unreliable link to reside on a wired host, next to or closer to the resources they need to use. Furthermore, client-specific data transformations can be moved across the wireless link, and run on a wired gateway server, with the goal of reducing bandwidth demands. In this paper we examine the tradeoffs faced when deciding whether to use mobile agents to support a data-filtering application, in which numerous wireless clients filter information from a large data stream arriving across the wired network. We develop an analytical model and use parameters from our own experiments to explore the model's implications.}, } @TechReport{kotz:model-tr2, author = {David Kotz and George Cybenko and Robert S. Gray and Guofei Jiang and Ronald A. Peterson and Martin O. Hofmann and Daria A. Chacon and Kenneth R. Whitebread and James Hendler}, title = {{Performance Analysis of Mobile Agents for Filtering Data Streams on Wireless Networks}}, institution = {Dartmouth Computer Science}, year = 2000, month = {October}, number = {TR2000-377}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-model-tr2/index.html}, abstract = {Wireless networks are an ideal environment for mobile agents, since their mobility allows them to move across an unreliable link to reside on a wired host, next to or closer to the resources that they need to use. Furthermore, client-specific data transformations can be moved across the wireless link and run on a wired gateway server, reducing bandwidth demands. In this paper we examine the tradeoffs faced when deciding whether to use mobile agents in a data-filtering application where numerous wireless clients filter information from a large data stream arriving across the wired network. We develop an analytical model and use parameters from filtering experiments conducted during a U.S. Navy Fleet Battle Experiment (FBE) to explore the model's implications.}, } @InProceedings{kotz:model, author = {David Kotz and Guofei Jiang and Robert Gray and George Cybenko and Ronald A. Peterson}, title = {{Performance Analysis of Mobile Agents for Filtering Data Streams on Wireless Networks}}, booktitle = {{Proceedings of the Workshop on Modeling, Analysis and Simulation of Wireless and Mobile Systems (MSWiM)}}, year = 2000, month = {August}, pages = {85--94}, publisher = {ACM}, copyright = {ACM}, DOI = {10.1145/346855.346868}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-model/index.html}, abstract = {Wireless networks are an ideal environment for mobile agents, because their mobility allows them to move across an unreliable link to reside on a wired host, next to or closer to the resources they need to use. Furthermore, client-specific data transformations can be moved across the wireless link, and run on a wired gateway server, with the goal of reducing bandwidth demands. In this paper we examine the tradeoffs faced when deciding whether to use mobile agents to support a data-filtering application, in which numerous wireless clients filter information from a large data stream arriving across the wired network. We develop an analytical model and use parameters from our own experiments to explore the model's implications.}, } @TechReport{chyi:thesis, author = {Debbie O. Chyi}, title = {{An Infrastructure for a Mobile-Agent System that Provides Personalized Services to Mobile Devices}}, institution = {Dartmouth Computer Science}, year = 2000, month = {May}, number = {TR2000-370}, copyright = {the author}, address = {Hanover, NH}, URL = {https://www.cs.dartmouth.edu/~kotz/research/chyi-thesis/index.html}, note = {Available as Dartmouth Computer Science Technical Report TR2000-370}, abstract = {In this paper, we present the design of a mobile-agent system that provides a mobile user with a personalized information retrieval service and we describe the implementation of the infrastructure for such a system. This "Personal Agent System" gathers information from the Internet and uses context-aware mechanisms to manage the information according to a mobile user's needs and preferences. The user's schedule and location are the context indicators in this system. These indicators are critical in ensuring that users obtain only the information they want, receive information in a form that is most useful for viewing on their mobile device, and is notified of new information in a minimally intrusive manner. The system incorporates a rule-based learning system to enhance the personalization achieved by the system.}, } @TechReport{bredin:game-tr, author = {Jonathan Bredin and Rajiv T. Maheswaran and {\c{C}}agri Imer and Tamer Ba{\c{s}}ar and David Kotz and Daniela Rus}, title = {{A Game-Theoretic Formulation of Multi-Agent Resource Allocation}}, institution = {Dartmouth Computer Science}, year = 1999, month = {October}, number = {PCS-TR99-360}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-game-tr/index.html}, abstract = {This paper considers resource allocation in a network with mobile agents competing for computational priority. We formulate this problem as a multi-agent game with the players being agents purchasing service from a common server. We show that there exists a computable Nash equilibrium when agents have perfect information into the future. We simulate a network of hosts and agents using our strategy to show that our resource-allocation mechanism effectively prioritizes agents according to their endowments.}, } @TechReport{bredin:lottery-tr, author = {Jonathan Bredin and David Kotz and Daniela Rus}, title = {{Mobile-Agent Planning in a Market-Oriented Environment}}, institution = {Dartmouth Computer Science}, year = 1999, month = {May}, number = {PCS-TR99-345}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-lottery-tr/index.html}, note = {Revision 1 of May 20, 1999}, abstract = {We propose a method for increasing incentives for sites to host arbitrary mobile agents in which mobile agents purchase their computing needs from host sites. We present a scalable market-based CPU allocation policy and an on-line algorithm that plans a mobile agent's expenditure over a multihop ordered itinerary. The algorithm chooses a set of sites at which to execute and computational priorities at each site to minimize execution time while preserving a prespecified budget constraint. We present simulation results of our algorithm to show that our allocation policy and planning algorithm scale well as more agents are added to the system.}, } @InProceedings{bredin:position, author = {Jonathan Bredin and David Kotz and Daniela Rus}, title = {{Economic Markets as a Means of Open Mobile-Agent Systems}}, booktitle = {{Proceedings of the Mobile Agents in the Context of Competition and Cooperation (MAC3) Workshop at Autonomous Agents'99}}, year = 1999, month = {May}, pages = {43--49}, publisher = {ACM}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-position/index.html}, abstract = {Mobile-agent systems have gained popularity in use because they ease the application design process by giving software engineers greater flexibility. 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 distributed 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.}, } @InCollection{brewington:IR, author = {Brian Brewington and Robert Gray and Katsuhiro Moizumi and David Kotz and George Cybenko and Daniela Rus}, title = {{Mobile Agents for Distributed Information Retrieval}}, booktitle = {{Intelligent Information Agents}}, editor = {Matthias Klusch}, year = 1999, chapter = 15, pages = {355--395}, publisher = {Springer-Verlag}, copyright = {Springer-Verlag}, ISBN = {3-540-65112-8}, URL = {https://www.cs.dartmouth.edu/~kotz/research/brewington-IR/index.html}, abstract = {A mobile agent is an executing program that can migrate during execution from machine to machine in a heterogeneous network. On each machine, the agent interacts with stationary service agents and other resources to accomplish its task. Mobile agents are particularly attractive in distributed information-retrieval applications. By moving to the location of an information resource, the agent can search the resource locally, eliminating the transfer of intermediate results across the network and reducing end-to-end latency. In this chapter, we first discuss the strengths of mobile agents, and argue that although none of these strengths are unique to mobile agents, no competing technique shares all of them. Next, after surveying several representative mobile-agent systems, we examine one specific information-retrieval application, searching distributed collections of technical reports, and consider how mobile agents can be used to implement this application efficiently and easily. Then we spend the bulk of the chapter describing two planning services that allow mobile agents to deal with dynamic network environments and information resources: (1) planning algorithms that let an agent choose the best migration path through the network, given its current task and the current network conditions, and (2) planning algorithms that tell an agent how to observe a changing set of documents in a way that detects changes as soon as possible while minimizing overhead. Finally, we consider the types of errors that can occur when information from multiple sources is merged and filtered, and argue that the structure of a mobile-agent application determines the extent to which these errors affect the final result.}, } @InCollection{kotz:bmobile, author = {David Kotz and Robert Gray and Saurab Nog and Daniela Rus and Sumit Chawla and George Cybenko}, title = {{Mobile Agents for Mobile Computing}}, booktitle = {{Mobility: Processes, Computers, and Agents}}, editor = {Dejan S. Miloji{\v{c}}i{\'c} and Frederick Douglis and Richard G. Wheeler}, year = 1999, month = {April}, chapter = {14.3}, pages = {513--523}, publisher = {Addison Wesley and ACM Press}, copyright = {IEEE}, ISBN13 = 9780201379280, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-bmobile/index.html}, abstract = {Mobile computers have become increasingly popular as users discover the benefits of having their electronic work available at all times. However, because network conditions vary from connection to connection, using Internet resources from a mobile platform is a major challenge. Mobile agents are one solution. A mobile agent is an autonomous program that can move from machine to machine in a heterogeneous network under its own control. It can suspend its execution at any point, transport itself to a new machine, and resume execution on the new machine from the point at which it left off. On each machine, it interacts with service agents and other resources to accomplish its task, returning to its home site with a final result when that task is finished. \par Agent Tcl is a mobile-agent system whose agents can be written in Tcl, Java, and Scheme. Agent Tcl has extensive navigation and communication services, security mechanisms, and debugging and tracking tools. In this article we focus on Agent Tcl's architecture and security mechanisms, its RPC system, and its docking system, which lets an agent move transparently among mobile computers, regardless of when they are connected to the network.}, } @InProceedings{kotz:future, author = {David Kotz and Robert S. Gray}, title = {{Mobile Code: The Future of the Internet}}, booktitle = {{Proceedings of the Mobile Agents in the Context of Competition and Cooperation (MAC3) Workshop at Autonomous Agents'99}}, year = 1999, month = {May}, pages = {6--12}, publisher = {ACM}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-future/index.html}, abstract = {Use of the Internet has exploded in recent years with the appearance of the World-Wide Web. In this paper, we show how current technological trends necessarily lead to a system based substantially on mobile code, and in many cases, mobile agents. We discuss several technical and non-technical hurdles along the path to that eventuality. Finally, we predict that, within five years, nearly all major Internet sites will be capable of hosting and willing to host some form of mobile agents.}, } @Article{kotz:future2, author = {David Kotz and Robert S. Gray}, title = {{Mobile Agents and the Future of the Internet}}, journal = {ACM Operating Systems Review}, year = 1999, month = {August}, volume = 33, number = 3, pages = {7--13}, publisher = {ACM}, copyright = {the authors}, DOI = {10.1145/311124.311130}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-future2/index.html}, abstract = {Use of the Internet has exploded in recent years with the appearance of the World-Wide Web. In this paper, we show how current technological trends may lead to a system based substantially on mobile code, and in many cases, mobile agents. We discuss several technical and non-technical hurdles along the path to that eventuality. It seems likely that, within a few years, nearly all major Internet sites will be capable of hosting and willing to host some form of mobile code or mobile agents.}, } @TechReport{bredin:demand-tr, author = {Jonathan Bredin and David Kotz and Daniela Rus}, title = {{Utility Driven Mobile-Agent Scheduling}}, institution = {Dartmouth Computer Science}, year = 1998, month = {May}, number = {PCS-TR98-331}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-demand-tr/index.html}, note = {Revised October 3, 1998}, abstract = {Mobile agents are programs capable of migrating from one host machine to another. We propose that mobile agents purchase resource access rights from host machines thereby establishing a market for computational resources and giving agents a metric to evenly distribute themselves throughout the network. Market participation requires quantitative information about resource consumption to define demand and calculate utility. \par We create a formal utility model to derive user-demand functions, allowing agents to efficiently plan expenditure and deal with price fluctuations. By quantifying demand and utility, resource owners can precisely set a value for a good. We simulate our model in a mobile agent scheduling environment and show how mobile agents may use server prices to distribute themselves evenly throughout a network.}, } @InProceedings{bredin:market, author = {Jonathan Bredin and David Kotz and Daniela Rus}, title = {{Market-based Resource Control for Mobile Agents}}, booktitle = {{Proceedings of the International Conference on Autonomous Agents}}, year = 1998, month = {May}, pages = {197--204}, publisher = {ACM}, copyright = {ACM}, DOI = {10.1145/280765.280801}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-market/index.html}, abstract = {Mobile agents are programs that can migrate from machine to machine in a heterogeneous, partially disconnected network. As mobile agents move across a network, they consume resources. We discuss a system for controlling the activities of mobile agents that uses electronic cash, a banking system, and a set of resource managers. We describe protocols for transactions between agents. We present fixed-pricing and dynamic-pricing policies for resources. We focus on and analyze the sealed-bid second-price auction as a mechanism for dynamic pricing.}, } @InCollection{gray:security-book, author = {Robert S. Gray and David Kotz and George Cybenko and Daniela Rus}, title = {{D'Agents: Security in a multiple-language, mobile-agent system}}, booktitle = {{Mobile Agents and Security}}, editor = {Giovanni Vigna}, series = {Lecture Notes in Computer Science}, year = 1998, volume = 1419, chapter = 9, pages = {154--187}, publisher = {Springer-Verlag}, copyright = {Springer-Verlag}, ISBN13 = {978-3-540-68671-2}, DOI = {10.1007/3-540-68671-1}, URL = {https://www.cs.dartmouth.edu/~kotz/research/gray-security-book/index.html}, abstract = {Mobile-agent systems must address three security issues: protecting an individual machine, protecting a group of machines, and protecting an agent. In this chapter, we discuss these three issues in the context of D'Agents, a mobile-agent system whose agents can be written in Tcl, Java and Scheme. (D'Agents was formerly known as Agent Tcl.) First we discuss mechanisms existing in D'Agents for protecting an individual machine: (1) cryptographic authentication of the agent's owner, (2) resource managers that make policy decisions based on the owner's identity, and (3) secure execution environments for each language that enforce the decisions of the resource managers. Then we discuss our planned market-based approach for protecting machine groups. Finally we consider several (partial) solutions for protecting an agent from a malicious machine.}, } @TechReport{bredin:market-tr, author = {Jonathan Bredin and David Kotz and Daniela Rus}, title = {{Market-based Resource Control for Mobile Agents}}, institution = {Dartmouth Computer Science}, year = 1997, month = {December}, number = {PCS-TR97-326}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/bredin-market-tr/index.html}, abstract = {Mobile agents are programs that can migrate from machine to machine in a heterogeneous, partially disconnected network. As mobile agents move across a network, they consume resources. We discuss a system for controlling the activities of mobile agents that uses electronic cash, a banking system, and a set of resource managers. We describe protocols for transactions between agents. We present fixed-pricing and dynamic-pricing policies for resources. We focus on and analyze the sealed-bid second-price auction as a mechanism for dynamic pricing.}, } @InCollection{gray:bookchap, author = {Robert Gray and David Kotz and George Cybenko and Daniela Rus}, title = {{Agent Tcl}}, booktitle = {{Mobile Agents: Explanations and Examples}}, editor = {William Cockayne and Michael Zyda}, year = 1997, month = {March}, chapter = 4, pages = {58--95}, publisher = {Manning Publishing}, copyright = {Manning Publishing}, ISBN13 = 9780138582425, URL = {https://www.cs.dartmouth.edu/~kotz/research/gray-bookchap/index.html}, note = {Imprints by Manning Publishing and Prentice Hall}, } @InProceedings{gray:mobile, author = {Robert Gray and David Kotz and Saurab Nog and Daniela Rus and George Cybenko}, title = {{Mobile Agents: The Next Generation in Distributed Computing}}, booktitle = {{Proceedings of the Aizu International Symposium on Parallel Algorithms and Architectures Synthesis (pAs)}}, year = 1997, month = {March}, pages = {8--24}, publisher = {IEEE}, copyright = {IEEE}, address = {Fukushima, Japan}, DOI = {10.1109/AISPAS.1997.581620}, URL = {https://www.cs.dartmouth.edu/~kotz/research/gray-mobile/index.html}, note = {Invited paper}, abstract = {Mobile agents are programs that can move through a network under their own control, migrating from host to host and interacting with other agents and resources on each. we argue that these mobile, autonomous agents have the potential to provide a convenient, efficient and robust programming paradigm for distributed applications, particularly when partially connected computers are involved. partially connected computers include mobile computers such as laptops and personal digital assistants as well as modem-connected home computers, all of which are often disconnected from the network. in this paper, we describe the design and implementation of our mobile-agent system, agent tcl, and the specific features that support mobile computers and disconnected operation. these features include network-sensing tools and a \emph{docking} system that allows an agent to transparently move between mobile computers, regardless of when the computers connect to the network.}, } @TechReport{hirschl:agdb, author = {Melissa Hirschl and David Kotz}, title = {{AGDB: A Debugger for Agent Tcl}}, institution = {Dartmouth Computer Science}, year = 1997, month = {February}, number = {PCS-TR97-306}, copyright = {the authors}, address = {Hanover, NH}, URL = {https://www.cs.dartmouth.edu/~kotz/research/hirschl-agdb/index.html}, abstract = {The Agent Tcl language is an extension of Tcl/Tk that supports distributed programming in the form of transportable agents. AGDB is a debugger for the Agent Tcl language. AGDB mixes of traditional and distributed debugging facilities. Traditional debugging features include breakpoints (line-specific, conditional, and once-only), watch conditions and variables, and interrupts. Distributed-debugging features address issues inherent in distributed programming such as migration and communication. These capabilities make debugging distributed programs difficult because they add complexities like race conditions to the set of problems a program can encounter. This paper discusses how AGDB uses distributed debugging features to debug agents.}, } @Article{kotz:jmobile, author = {David Kotz and Robert Gray and Saurab Nog and Daniela Rus and Sumit Chawla and George Cybenko}, title = {{Agent Tcl: Targeting the Needs of Mobile Computers}}, journal = {IEEE Internet Computing}, year = 1997, month = {July}, volume = 1, number = 4, pages = {58--67}, publisher = {IEEE}, copyright = {IEEE}, DOI = {10.1109/4236.612217}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-jmobile/index.html}, abstract = {Mobile computers have become increasingly popular as users discover the benefits of having their electronic work available at all times. However, because network conditions vary from connection to connection, using Internet resources from a mobile platform is a major challenge. Mobile agents are one solution. A mobile agent is an autonomous program that can move from machine to machine in a heterogeneous network under its own control. It can suspend its execution at any point, transport itself to a new machine, and resume execution on the new machine from the point at which it left off. On each machine, it interacts with service agents and other resources to accomplish its task, returning to its home site with a final result when that task is finished. \par Agent Tcl is a mobile-agent system whose agents can be written in Tcl, Java, and Scheme. Agent Tcl has extensive navigation and communication services, security mechanisms, and debugging and tracking tools. In this article we focus on Agent Tcl's architecture and security mechanisms, its RPC system, and its docking system, which lets an agent move transparently among mobile computers, regardless of when they are connected to the network.}, } @InProceedings{rus:autonomous2, author = {Daniela Rus and Robert Gray and David Kotz}, title = {{Transportable Information Agents}}, booktitle = {{Proceedings of the International Conference on Autonomous Agents}}, year = 1997, month = {February}, pages = {228--236}, publisher = {ACM}, copyright = {ACM}, DOI = {10.1145/267658.267721}, URL = {https://www.cs.dartmouth.edu/~kotz/research/rus-autonomous2/index.html}, abstract = {Transportable agents are autonomous programs. They can move through a heterogeneous network of computers under their own control, migrating from host to host. They can sense the state of the network, monitor software conditions, and interact with other agents or resources. The network-sensing tools allow our agents to adapt to the network configuration and to navigate under the control of reactive plans. In this paper we describe the design and implementation of the navigation system that gives our agents autonomy. We also discuss the intelligent and adaptive behavior of autonomous agents in distributed information-gathering tasks.}, } @Article{rus:autonomous3, author = {Daniela Rus and Robert Gray and David Kotz}, title = {{Transportable Information Agents}}, journal = {Journal of Intelligent Information Systems}, year = 1997, month = {November}, volume = 9, pages = {215--238}, publisher = {Kluwer Academic Publishers}, copyright = {Kluwer Academic Publishers}, DOI = {10.1023/A:1008622002816}, URL = {https://www.cs.dartmouth.edu/~kotz/research/rus-autonomous3/index.html}, abstract = {Transportable agents are autonomous programs. They can move through a heterogeneous network of computers under their own control, migrating from host to host. They can sense the state of the network, monitor software conditions, and interact with other agents or resources. The network-sensing tools allow our agents to adapt to the network configuration and to navigate under the control of reactive plans. In this paper we describe the design and implementation of the navigation system that gives our agents autonomy. We also discuss the intelligent and adaptive behavior of autonomous agents in distributed information-gathering tasks.}, } @InCollection{rus:autonomous4, author = {Daniela Rus and Robert Gray and David Kotz}, title = {{Transportable Information Agents}}, booktitle = {{Readings in Agents}}, editor = {Michael Huhns and Munindar Singh}, year = 1997, month = {October}, chapter = {3.3}, pages = {283--291}, publisher = {Morgan Kaufmann Publishers}, copyright = {Morgan Kaufmann Publishers}, ISBN13 = {978-1-55860-495-7}, address = {San Francisco}, DOI = {10.5555/284860.284912}, URL = {https://www.cs.dartmouth.edu/~kotz/research/rus-autonomous4/index.html}, abstract = {Transportable agents are autonomous programs. They can move through a heterogeneous network of computers under their own control, migrating from host to host. They can sense the state of the network, monitor software conditions, and interact with other agents or resources. The network-sensing tools allow our agents to adapt to the network configuration and to navigate under the control of reactive plans. In this paper we describe the design and implementation of the navigation system that gives our agents autonomy. We also discuss the intelligent and adaptive behavior of autonomous agents in distributed information-gathering tasks.}, } @TechReport{gray:mobile-tr, author = {Robert Gray and David Kotz and Saurab Nog and Daniela Rus and George Cybenko}, title = {{Mobile agents for mobile computing}}, institution = {Dartmouth Computer Science}, year = 1996, month = {May}, number = {PCS-TR96-285}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/gray-mobile-tr/index.html}, abstract = {Mobile agents are programs that can move through a network under their own control, migrating from host to host and interacting with other agents and resources on each. we argue that these mobile, autonomous agents have the potential to provide a convenient, efficient and robust programming paradigm for distributed applications, particularly when partially connected computers are involved. partially connected computers include mobile computers such as laptops and personal digital assistants as well as modem-connected home computers, all of which are often disconnected from the network. in this paper, we describe the design and implementation of our mobile-agent system, agent tcl, and the specific features that support mobile computers and disconnected operation. these features include network-sensing tools and a \emph{docking} system that allows an agent to transparently move between mobile computers, regardless of when the computers connect to the network.}, } @InProceedings{kotz:agents, author = {David Kotz and Robert Gray and Daniela Rus}, title = {{Transportable Agents Support Worldwide Applications}}, booktitle = {{Proceedings of the ACM SIGOPS European Workshop}}, year = 1996, month = {September}, pages = {41--48}, publisher = {ACM}, copyright = {ACM}, DOI = {10.1145/504450.504458}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotz-agents/index.html}, abstract = {Worldwide applications exist in an environment that is inherently distributed, dynamic, heterogeneous, insecure, unreliable, and unpredictable. In particular, the latency and bandwidth of network connections varies tremendously from place to place and time to time, particularly when considering wireless networks, mobile devices, and satellite connections. Applications in this environment must be able to adapt to different and changing conditions. We believe that transportable autonomous agents provide an excellent mechanism for the construction of such applications. We describe our prototype transportable-agent system and several applications.}, } @TechReport{nog:rpc-tr, author = {Saurab Nog and Sumit Chawla and David Kotz}, title = {{An RPC Mechanism for Transportable Agents}}, institution = {Dartmouth Computer Science}, year = 1996, month = {March}, number = {PCS-TR96-280}, copyright = {the authors}, URL = {https://www.cs.dartmouth.edu/~kotz/research/nog-rpc-tr/index.html}, abstract = {Transportable agents are autonomous programs that migrate from machine to machine, performing complex processing at each step to satisfy client requests. As part of their duties agents often need to communicate with other agents. We propose to use remote procedure call (RPC) along with a flexible interface definition language (IDL), to add structure to inter-agent communication. The real power of our Agent RPC comes from a client-server binding mechanism based on flexible IDL matching and from support for multiple simultaneous bindings. Our agents are programmed in Agent Tcl; we describe how the Tcl implementation made RPC particularly easy to implement. Finally, although our RPC is designed for Agent Tcl programs, the concepts would also work for standard Tcl programs.}, } @InProceedings{rus:autonomous, author = {Daniela Rus and Robert Gray and David Kotz}, title = {{Autonomous and Adaptive Agents that Gather Information}}, booktitle = {{Proceedings of the AAAI International Workshop on Intelligent Adaptive Agents}}, year = 1996, month = {August}, pages = {107--116}, publisher = {AAAI Press}, copyright = {AAAI Press}, URL = {https://www.cs.dartmouth.edu/~kotz/research/rus-autonomous/index.html}, note = {Proceedings available as AAAI Technical Report WS-96-04}, abstract = {We have designed and implemented autonomous software agents. Autonomous software agents navigate independently through a heterogeneous network of computers. They can sense the state of the network, monitor software conditions, and interact with other agents. The network-sensing tools allow our agents to adapt to the network configuration and to navigate under the control of reactive plans. In this paper we illustrate the intelligent and adaptive behavior of autonomous agents in distributed information-gathering tasks.}, } @TechReport{harker:thesis, author = {Kenneth Harker}, title = {{TIAS: A Transportable Intelligent Agent System}}, institution = {Dartmouth Computer Science}, year = 1995, month = {June}, number = {PCS-TR95-258}, copyright = {the author}, address = {Hanover, NH}, URL = {https://www.cs.dartmouth.edu/~kotz/research/harker-thesis/index.html}, note = {Available as Dartmouth Computer Science Technical Report PCS-TR95-258}, abstract = {Abstract: In recent years, there has been an explosive growth in the amount of information available to our society. In particular, the amount of information available on-line through vast networks like the global Internet has been growing at a staggering rate. This growth rate has by far exceeded the rate of growth in network speeds, as has the number of individuals and organizations seeking access to this information. There is thus a motivation to find abstract methods of manipulating this on-line data in ways that both serve the needs of end users efficiently and use network resources intelligently. In lieu of a traditional client-server model of information processing, which is both inflexible and potentially very inefficient, a Transportable Intelligent Agent system has the potential to achieve a more efficient and flexible network system. An intelligent agent is a program that models the information space for a user, and allows the user to specify how the information is to be processed. A transportable agent can suspend its execution, transport itself to a new location on a network, and resume execution at the new location. This is a particularly attractive model for both wireless and dialup networks where a user might not be able to maintain a permanent network connection, as well as for situations where the amount of information to be processed is large relative to the network bandwidth. Preliminary work in the field has shown that such agent systems are possible and deserve further study. This thesis describes a prototype transportable intelligent agent system that extends work already done in the field. Agents are written in a modified version of the Tcl programming language and transported using TCP/IP connections. Several simple examples demonstrate the properties of the system.}, } @InProceedings{kotay:agents, author = {Keith D. Kotay and David Kotz}, title = {{Transportable Agents}}, booktitle = {{Proceedings of the CIKM Workshop on Intelligent Information Agents, Third International Conference on Information and Knowledge Management}}, year = 1994, month = {December}, numpages = 15, publisher = {CIKM}, copyright = {the authors}, address = {Gaithersburg, Maryland}, URL = {https://www.cs.dartmouth.edu/~kotz/research/kotay-agents/index.html}, abstract = {As network information resources grow in size, it is often most efficient to process queries and updates at the site where the data is located. This processing can be accomplished by using a traditional client-server network interface, which constrains the client to the set of queries supported by the server, or requires the server to send all data to the client for processing. The former is inflexible; the latter is inefficient. Transportable agents, which support the movement of the client computation to the location of the remote resource, have the potential to be more flexible and more efficient. Transportable agents are capable of suspending their execution, transporting themselves to another host on a network, and resuming execution from the point at which they were suspended. Transportable agents consume fewer network resources and can support systems that do not have permanent network connections, such as mobile computers and personal digital assistants. We describe a prototype transportable-agent implementation that facilitates research in this area. Agents are written in a script language that supports agent relocation, and the language is processed at each host by an agent interpreter. Electronic mail is the current transport mechanism and we plan to explore others. We present a technical-report searching agent as a demonstration of the capabilities of our prototype implementation.}, }