Our project integrates research results from adaptable, distributed software systems, mobile agents and agile networks to produce an open systems software architecture for accommodating change. The architecture is realized in 2K, an adaptable, distributed, network-centric operating system. A network-centric operating system manages and allocates distributed resources to support a user in a distributed environment. The basis for the architecture is an innovative, application- and user-oriented service model in which the distributed system customizes itself in order to better fulfill the user and application requirements. In this model, a ``user'' is no longer an entity that is local to one specific machine - each user is a machine-independent entity that exists in the network and can transparently carry its profile across different hardware and software platforms. The network-centric operating system dynamically loads distributed components to support the needs of an application, infrequently used modules are not loaded with the basic system installation. The architecture encompasses a framework for architectural-awareness; that is, the architectural features and behavior of a technology are reified and encapsulated within software. Adaptive system software, aware of the architectural and behavioral aspects of a technology, specialize the use of these technologies to support applications forming the basis for adaptable and dynamic QoS, security, optimization, and self-configuration.
Adaptation within the architecture is facilitated using dynamicTAO, a reflective object request broker that extends the OMG CORBA model and interoperates with existing distributed object models. The reflective ORB provides a mechanism to modify dynamically operations on distributed objects, and to select different mechanisms with or without the knowledge of the application. Code distribution and maintenance for the reflective ORBs is managed through mobile agents. Reflective object invocation attributes include naming, location, and synchronization.
The primary goal of constructing 2K is provide a paradigm for managing dynamism. It will demonstrate an experimental network-centric adaptable system architecture based on the following design ideas:
The use of a reflective ORB will provide a natural way to implement a number of desirable features, including support for real-time and multimedia applications, security, mobility, load balancing, and fault tolerance. We also believe that by building an architecturally-aware OS that will adapt itself to changing environments, we will obtain even more significant results in these areas.
We intend to perform our first experiments with an adaptable distributed file system and with a large-scale (millions of clients) live video distribution system.
The 2K operating system will run on top of the Off++ microkernel which is an object-oriented redesign of the old Off microkernel including new features for architectural-awareness and QoS-awareness.