The design of a scalable Dynamic Distributed Services Architecture, the MonaLISA (Monitoring Agents in A Large Integrated Services Architecture) system, will be presented. The scalability of the system derives from the use of multithreaded engine to host a variety of loosely coupled self-describing dynamic services or agents and the ability of each service to register itself and then to be discovered and used by any other services, or clients that require such information. Global optimization for distributed systems using mobile agents is presented. The MonALISA architecture is inherently distributed, ``loosely coupled'' and provides to the cooperating services the mechanism to access each other seamlessly and to adapt rapidly to a dynamic environment.
This tutorial will also discuss the development of the simulation framework (MONARC) as a design and modelling tool for large scale distributed systems. A process-oriented approach for discrete event simulation is well suited for describing concurrent running programs, as well as all the stochastic arrival patterns that characterize how such systems are used. The simulation engine is based on Threaded Objects, (or Active Objects) which offer great flexibility in simulating the complex behavior of distributed data processing programs. The engine provides an appropriate scheduling mechanism for the Active objects with support for interrupts. This approach offers a natural way of describing complex running programs that are data dependent and which concurrently compete for shared resources as well as large numbers of concurrent data transfers on shared resources.