Enhancing Agent Mobility Through Resource Access Policies and Mobility Policies Alejandro Zunino 1 , Cristian Mateos 1 , Marcelo Campo 1 1 CONICET - ISISTAN Research Institute Fac. de Ciencias Exactas, Dpto. Computación y Sistemas Universidad Nacional del Centro Campus Univ. Paraje Arroyo Seco - Tandil - (B7001BBO) Buenos Aires, Argentina azunino@exa.unicen.edu.ar Abstract. MoviLog is a novel programming language that aims at reducing the effort of programming mobile agents. MoviLog is based on the concept of Re- active Mobility by Failure (RMF), a mechanism that migrates a mobile agent when it tries to access a resource that is not located at the current site. This paper presents an extension of RMF that allows the programmer to adapt the mechanisms used by RMF for deciding when and where to move an agent. Ex- perimental results showing gains in network usage and performance with re- spect to client/server and traditional mobility mechanisms are also reported. 1. Introduction Mobile agents, autonomous software capable of migrating their execution between net- work hosts in order to achieve their users’ goals, have been proposed as an alternative to solve some of the problems of large distributed systems (Gray et al., 2001). Mobile agents are different from non-mobile or stationary software in one very important aspect: mobile agents are location aware, this is, mobile agents know the network topology and its re- sources, and in order to take advantage of them, mobile agents move their execution from host to host. As a consequence, mobile agents are able to choose, for example, whether to remotely access to a non-local resource or migrate to the place where the resource is located, depending on the cost of remotely interacting with the resource and the cost of migrating to its location. In recent years, mobile agents have shown advantages with respect to traditional paradigms such as client/server. This motivated the development of many tools for pro- gramming mobile agents (Nelson, 1999; Silva et al., 2001; Fuggetta et al., 1998; Thorn, 1997). Despite the advantages of mobile agents and the wide availability of tools, their usage is still limited to small applications and academic prototypes (Kotz et al., 2002; Fradet et al., 2000; Picco et al., 1997). In part, this is caused by the complexity of mobile agent development with respect to non-mobile systems. Indeed, developers have to pro- vide mobile agents with mechanisms to decide when and where to migrate. Therefore, though agents location awareness may be very beneficial if properly used, it also adds further complexity to their development (Picco et al., 1997; Silva et al., 2001). MoviLog (Zunino et al., 2003; Amandi et al., 2005) is a programming language whose goal is to reduce the effort of developing intelligent mobile agents. MoviLog is based on the concept of Reactive Mobility by Failure (RMF). The idea behind RMF is to assist mobile agents on making decisions on when and where to migrate. In order to retain V ENIA 851