Mobile Agents in Autonomous Decentralized Systems Manuel de Jesus Mendes PUCCAMP/UNICAMP, Brazil mendes@dca.fee.unicamp.br Flávio M. de Assis Silva Techn. Univ. Berlin/GMD FOKUS, Germany flavio@fokus.gmd.de 1. Introduction In the last years mobile agents have gained much at- tention in the industry and academic community. Many prototype systems and some products providing mobile agent capability have been developed and mobile agents have been proposed for being used in a set of application areas, such as electronic commerce, workflow systems, network management, among others. In the last years we experienced also an enormous de- velopment in the direction of network centric computing. Complex distributed environments emerge that enable and support the integration of systems and that allow new forms of automated cooperation. For an effective integra- tion to take place, the autonomy of participants in the environment must be taken into consideration. Such envi- ronments represent then examples of autonomous decen- tralized systems (ADSs). In this position paper the authors present their view on the convenience of applying mobile agents to ADSs. Firstly, some benefits of mobile agents that can be ex- plored in applications are presented (section 2). After- wards, a discussion of some issues that shall enable more effective use of mobile agents in real applications and that have impact on the definition of the scope of appli- cability of mobile agents to ADSs is presented (section 3). The last section (section 4) concludes the paper. 2. Some benefits of mobile agents in autonomous decentralized systems Mobile agents (or simply, agents) represent a form of code mobility, such as also remote evaluation and code on demand. These forms of code mobility should be consid- ered complimentary paradigms in the design of distributed applications [1]. Mobile agents can be used to explore the following benefits, among others: (a) Decentralization of processing. Mobile agents enable a decentralized form of controlling the execution of dis- tributed computations. This may be fundamental when designing systems that should be highly scalable or that should run on environments with highly autonomous components. Using mobile agents is convenient when there is a large independence in respect to the original system from where a computation is started. If a certain computation involves only accessing resources at remote sites, there is no need for the execution to be dependent in any way on the original system (for example, to have to return to the original system to determine further execution steps). Mobile agents enable an activity to be more dependent only on the sites where the activity really has to be exe- cuted. (b) Support for designing applications that interact with human users in a distributed environment. In these applications the response time during the interac- tion is important. If the interaction is triggered by the human user, code on demand is very convenient, as evi- denced by the common use of applets in existing brows- ers. Mobile agents can be used by an application to trig- ger an interaction with a human user during the execution of a distributed application. An example of types of ap- plications that involve interactions with human users are Workflows (WFs), which implement complex business processes (e.g. in Supply Chain Management). It may also be of great convenience to include agent behavior as developed by the Artificial Intelligence community to enhance the form of interaction with human users. (c) Better use of communication resources. An agent can move to an agency to access resources at that agency with an optimized quality of service, circumventing the effects caused by lower quality connections through the network during remote interactions. An example of this kind of applicability is the use of mobile agents to per- form local monitoring of components in network man- agement scenarios. Additionally, mobile agents are also useful for sup- porting execution of activities involving mobile devices, which can operate disconnected from the network. After launching a mobile agent to execute a distributed task in the fixed network, the mobile device can be discon- nected. In the opposite direction, mobile agents can be