2K Architecture

2K Motivation

After thirty years of rapid growth in computing and networking technology, significant advances in distributed system performance occur yearly creating a problem of managing change. The current computer infrastructure is complex and provides each user with a distributed environment involving multiple heterogeneous machines built with components ranging from mobile PDAs to supercomputers. The infrastructure is constructed from rapidly aging technologies and software, networks bandwidths that vary by many orders of magnitude, and partial and permanently connected hosts. New technologies like streaming digital video that will be pervasive on the Next Generation Internet perform poorly on existing systems. Our approach aims to manage change and seamlessly integrate new and old technologies.

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:

  1. A CORBA-like communication substrate including a Reflective Object Request Broker to structure system services, facilitate system adaptation, and provide a level of indirection to flexibly bind naming schemes, resource managers, and services;
  2. A framework for architecturally-aware system and user components to provide system components information about their environment and allow them to evaluate and exploit the physical and logical architecture of the system;
  3. QoS-aware resource management that allows the specification and provision of service to applications. The system will be able to adapt itself - optimizing its performance and reliability under different environments;
  4. A dynamic security system that supports changing security policies in a distributed system as well as accommodates rapid system change. The system must support delegation for mobile computing and revocation for change; and
  5. Mobile agents to support automatic software updates, remote administration, optimizations involving push-pull transformations, and automatic reconfiguration.
Benefiting from our experience with customizable Object Request Brokers (ORBs), we plan to base our system upon an ORB architecture in which the object model is  reflective. In other words, one can modify the way that remote (and/or local) method invocation and the object life cycle is implemented in a way that is transparent to the applications.

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.


Back to the 2K Home Page.

Fabio Kon
Last modified: Tue Feb 22 14:35:00 CST 2000