160 likes | 239 Views
Automatic Configuration of Component-Based Distributed Systems. Fabio Kon Roy H. Campbell University of Illinois at Urbana-Champaign {f-kon,roy}@cs.uiuc.edu http://choices.cs.uiuc.edu/2K. Why Don’t Component Technologies Work?.
E N D
Automatic Configuration of Component-Based Distributed Systems Fabio Kon Roy H. Campbell University of Illinois at Urbana-Champaign {f-kon,roy}@cs.uiuc.edu http://choices.cs.uiuc.edu/2K
Why Don’t Component Technologies Work? • Well, they do work, but not as smoothly as we would like. They fail because of a variety of reasons: • We can specify the interfaces of a component but we don’t have a way to specify the actual behavior of complex components. • Components are created by different people, in different groups, with different methodologies. When we combine them to build an application, weird things can happen: • a component behaves differently from what others expected • the failure of one component is not properly detected by others • updating one component “confuses” the others • etc, etc.
The Problem • Existing technologies provide little or no support for managing inter-component dependencies. • Component-based systems become less reliable: • Difficult to support fault-tolerance. • Difficult to update components on-the-fly. • Difficult to support dynamic reconfiguration. • In some cases, too many components are added to the system.
The Proposed Solution • The operating system and/or the middleware must manage inter-component dependencies. • It is fundamental to represent these dependencies explicitly. • The 2K distributed operating system manages two kinds of dependencies: • Prerequisites • Dynamic Runtime Dependencies • It uses them to implement its Automatic Configuration Service.
Prerequisites • The Prerequisites for a certain component specifies what the component needs to be properly loaded and executed: • the nature of the hardware resources it uses • the share of these hardware resources • the software services (i.e., other components) it requires • Example of the requirements for a networked Video Client: • PC with MPEG decoding card • 50% of 200MHZ CPU • CORBA Video Service
2K Framework for Prerequisite Management CORBA Prerequisite Parser CORBA Persistent Object Service Prerequisite Parser SPDF Parser Prerequisite Resolver 2K Implementation Repository
Prerequisite Specification • In 2K, dependencies on other components are specified in four different ways: 1. A Pathname in the 2K Implementation Repository. 2.A CompoundName in the CORBA Naming Service. 3. A pair (ServiceTypeName, Constraint)for the CORBA Trading Service. 4.A persistent IOR (i.e., a reference to a CORBA object). Prerequisite Resolution • Caching Pull-based Policy: 1. Locate prerequisite in the local cache 2. If not present, contacts Implementation Repository or Trader to locate remote instance or to fetch the component code. • The cache is a local repository of component implementations and references (IORs) to remote components.
Example of a specification using theSimple Prerequisite Description Format (SPDF) :hardware requirements machine_type SPARC native_os Solaris min_ram 5MB optimal_ram 40MB min_vm 30MB optimal_vm 40MB :software requirements FileSystem IR:/sys/storage/DFS1.0 (optional) TCPNetworking IR:/sys/networking/BSD-sockets WindowManager IR:/sys/WinManagers/simpleWin JVM IR:/interp/Java/jvm1.2 (optional) Used for QoS-aware Resource Management Used for Automatic Configuration
The 2KOperating SystemWhat You Need Is What You Get • System services and applications are built out of CORBA components and benefit from standard CORBA services. • The system configures itself dynamically based on the user and application requirements, implementing a WYNIWYG model(What You Need is What You Get) . • 2K is Network-Centric and provides support for • Dynamic Reconfiguration • Monitoring and Adaptation • QoS-Aware Resource Management • Dynamic Security Services (encryption, role-based access control) • Code Mobility • Initial target applications: • Multimedia • Distributed Computing • Active Spaces (smart rooms, distant learning, smart meetings)
RepresentingDynamic Dependencies • Objects of the type ComponentConfigurator reify inter-component dependencies,i.e., the objects represent the dependencies explicitly. • ComponentConfigurators are created on-the-fly by the Prerequisite Resolver as new components are loaded. • System and application components can inspect and reconfigure the Dependence Graph at any moment during runtime. • Components can subclass from the ComponentConfigurator base class to implement application-specific extensions for fault-tolerance and dynamic configuration.
TheComponentConfiguratorFramework • Each system and application component has a ComponentConfigurator that represents its runtime dependencies on other components. • Together, they form a Dependence Graph that can be navigated and manipulated at runtime.
Dynamic Reconfiguration • In a component-based operating system, all system and application components are managed by a dependency-aware infrastructure. • Fault-tolerance and adaptation mechanisms use the dependence information to carry out dynamic reconfiguration.
Implementation Status and Ongoing Work • Completed: • ComponentConfigurator Framework. • The local C++ version of the framework was used in dynamicTAO, a reflective ORB, to support dynamic reconfiguration. • Prototype of the 2K AutoConfig Service with SPDF. • Ongoing work: • Caching Prerequisite Resolver. • Applying CORBA version to several 2K services and applications including QoS Management, Persistent Object Service, Distributed File System, Multimedia Distribution System, etc. • Measuring performance and space overhead.
Conclusions • Component technologies must pay attention to component dependencies. • Middleware-based dependence management can make systems: • easier to administer • automatically configurable • more reliable • dynamically adaptable • We are looking for an Architectural Description Language (ADL) to enhance our system by supporting the specification of distributed application architectures. Any suggestion?
How to Contact us • E-mail: f-kon@cs.uiuc.edu roy@cs.uiuc.edu • Several research articles, source code, and documentation can be retrieved from the2K Web site: http://choices.cs.uiuc.edu/2K