Token Finding Using Mobile Agents Delbert Hart 1 , Mihail E. Tudoreanu 2 , and Eileen Kraemer 3 1 University of Alabama in Huntsville Huntsville, AL 35899 USA dhart@cs.uah.edu 2 Washington University in St. Louis St. Louis, MO, 63130 USA renu@cs.wustl.edu 3 University of Georgia Athens, GA, 30606 USA eileen@cs.uga.edu Abstract. One of the greatest challenges facing the software commu- nity today is the increasing complexity of software. Complexity limits understanding, making it difficult to evaluate the correctness, reliability, and performance of a system. Coupled with visualization, monitoring can provide users with insight into an application’s behavior. Monitoring can also be used in conjunction with automated tools to adaptively tune per- formance. This paper presents a detailed look at how mobile agents that are embedded in a monitoring system can be used to find a token within a distributed system. Several strategies by which agents may accomplish this task are qualitatively compared. We then describe tests that were performed to evaluate trade-offs among the strategies considered, and discuss the results of those tests. 1 Introduction Software systems are some of the most complex constructs created by man. This degree of complexity makes it difficult to evaluate their correctness and performance a priori. Monitoring provides a practical way of learning about distributed computations. To be effective, online monitoring must adapt to the changing needs of the user while minimizing the effect monitoring has on the application. In the case of distributed applications, lag, non-determinism and the lack of a global clock further complicate the monitoring task. This paper explores the use of mobile agents to address the challenges of monitoring distributed computations. The use of mobile agents has a number of benefits: 1) Responsiveness - agents are able to react locally to conditions at the application processes. 2) Transience - the ability to deploy agents on demand helps to minimize the overall cost of monitoring. 3) Customization - agents may be encoded at run-time; and thus can make use of application- specific information, permitting efficient solutions. 4) Mobility - the ability to migrate between processes makes agents well suited to distributed applications in which properties are not necessarily bound to one process. V.N. Alexandrov et al. (Eds.): ICCS 2001, LNCS 2074, pp. 791–800, 2001. c Springer-Verlag Berlin Heidelberg 2001