Performance management of mobile agent systems

A framework for developing 'mobile agent' systems is described based on Petri net models of design patterns in the Aglets workbench. The models can be automatically configured from Java source programs, and can account for stochastic parameters such as port contention at hosts, agent registration, background workloads and scalability issues, such as bounds on total number of agents that may be supported at a host. Our approach is application centered, with particular emphasis on agent based e-commerce. The models are verified by comparing the performance of an application in Aglets with Petri net simulations on the GreatSPN simulator. Subsequently, guidelines are provided for designers of distributed systems using mobile agent design patterns, for building applications. The concepts discussed have a much wider applicability than Aglets, although the latter is used to demonstrate the Petri net based framework. The proposed techniques can also be used in developing real-time applications, where service guarantees are required. 1 I N T R O D U C T I O N Mobile agent 'Design Pat terns ' [11] capture recurring themes in applications employing migratable code, and provide an efficient means to develop and debug distributed applications that make use of this paradigm. Design patterns fill the gap between high level, agent-specific programming languages such as RADL [21] and LALO [6] and system level programming languages such as C and Java. Design patterns may be combined in a modular way, either graphically, or via a scripting language, and can be used for code genPermission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servet,'s or to redistribute to lists, requires prior specific permission and/or a fee. Agents 2000 Barcelona Spain Copyright ACM 2000 1-58113-230-1/00/6. $5.00 eration or rapid prototyping. Lange and Aridor [2] provide design patterns for use with the Java based Aglets mobile agent libraries from IBM, and divide these into various categories, such as Travelling patterns, Task patterns and Interaction patterns. Travelling patterns enable mobility management, and deal with various aspects of migrating and forwarding a mobile agent. Task patterns deal with allocation and assignment of tasks to general-purpose agents. Interaction patterns deal with the coordination and support for collaborative working between agents. A Petri net (PN) based framework for task and interaction patterns is presented, for analysing the effects of performance and design parameters on scalability within a mobile agent system. The PN models are analysed to study conditions for possible deadlock, liveness and synchronisation failures in Aglets based systems. The provided analysis is however more general, and will also hold for other mobile agent libraries, such as Voyager from ObjectSpace. A brief overview of previous work in mobile agents is provided in section 2, where existing mobile agent libraries and techniques for modelling mobile agent systems are outlined. In section 3 task and interaction design patterns are described, and in section 4 the framework and PN models axe presented, which combine a Master-Slave and a Meeting design pattern. Analysis of models and experimental results with Aglets are discussed in section 5. We conclude in section 6 with future work and extensions to the present scheme. 2 P R E V I O U S W O R K A N D N O T A T I O N Various programming libraries are currently available which support mobile agent development, such as Odyssey from General Magic, Voyager from ObjectSpace, Aglets from IBM Research, Mole from IPVR at Stut tgart University and Beegent from Toshiba, all of which provide Java class libraries, although each handles mobility in different ways. D'Agents from Dartmouth College provides support for multiple programming languages (Tel, Java and Scheme), and also implements security mechanisms such as encryption, digital signatures and security modules which interact with resource managers to decide which agents are allowed to access what system resources. A survey can be found in [15]. Some researchers have debated whether mobile agents should really