![]() |
Abstract for Bernard Pagurek
|
Abstract --------
The overall goal of the Perpetuum Mobile Procura Project is to research the use of mobile code for managing networks. The three words that constitute the name of the project are taken from Latin. Perpetuum stands for continuous, Mobile for
mobile and Procura for management. Our flagship goal is a plug-and-play network;
i.e., a network that is self-configuring and immune to faults through self-recovery. To make a clear distinction between the types of mobile code, we use a terminology that follows the Java conventions originated with the term applet. Therefore, in our jargon, we have applets, servlets (server extensions),
extlets (functionality extensions), deglets (delegation agents) and netlets (autonomous network agents). We point to a piglet as a type of mobile code that constitutes a security risk to the network. We deliberately avoid the term "agent" in our taxonomy. In our work, this term is used to refer to a general concept of code autonomy.
Our approach to managing networks addresses the issues in traditional client/server, or in this context manager/agent, network management systems like
the amount of data that needs to be transmitted, problems inherent to heterogeneous environment, like interoperability issues, problems with maintainability of the software, etc. With the techniques based on mobile code, we can harness many interoperability issues and work toward plug-and-play networks by applying mobile agents that can take care of many aspects of configuring and maintaining networks in an autonomous way.
We have selected Java as our implementation platform of an infrastructure for managing networks with mobile code. The term Java encompasses not only a modern object-oriented programming language, but also a number of programming concepts that constitute Java technology. Java technology is important in the context of mobile code, because its Java Virtual Machine (JVM) provides a ubiquitous portable platform, which is necessary for unconstrained mobility of code. In this context, the JVM that interprets Java programs is a sophisticated counterpart of a universal protocol handler. Java has a strong support for code mobility and networking. In contrast to many earlier languages that supported mobility and portability, for example Telescript, Java is a fully blown programming language with plenty of surrounding class libraries. Using Java, software agents can implement arbitrary complex algorithms that can execute on visited nodes.
We have implemented a number of necessary elements that constitute an underlying management infrastructure. The critical centerpiece of that infrastructure is the mechanism for code migration. The Mobile Code Daemon (MCD) runs as a daemon (thread) inside a Java Virtual Machine. It is our assumption that every Network Component (NC) is Java-enabled; that is, it runs its own JVM or has a proxy that runs a JVM. The Migration Facility (MF) is the part of the MCD responsible for actual shipment of the code. Each NC has a number of potential targets and the MF implements a default selection of the target. Alternatively, the agent that is being migrated can provide a selection algorithm.
There are other parts of the infrastructure that are not directly involved in transferring code. The Virtual Managed Component (VMC) provides an interface to Managed Resources (MR) on an NC. The Communication Facility (CF) allows for communication between agents. The Security Facility (SF) ensures the security and integrity of both: the migrating code and the network.