Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB Fabio Kon, Manuel Roman, Ping Liu, Jina Mao, Tomonori Yamane, Luiz C. Magalhaes, and Roy H. Campbell Department of Computer Science University of Illinois at Urbana-Champaign
IFIP/ACM Middleware’ Introduction Network Operating System: l Facilitate management in modern computing environments l Heterogeneity: embedded sys., PDAs, laptops, workstations l Dynamism: rapid software evolution, mobile users & computers l Users must maintain different accounts in each platform l GOAL: l Facilitate management by building a middleware-level operating system on top of this heterogeneous world
IFIP/ACM Middleware’ Requirements l Run on multiple hardware platforms l Run on top of different OSes l Support different programming languages l Support dynamism, late binding, components l Solution: l OMG IDL l CORBA ORBs l Standard CORBA Services
IFIP/ACM Middleware’ But There’s A Problem! l Conventional ORBs are static: l Fixed threading model l Fixed transport protocol: IIOP (over TCP/IP) l Fixed security strategy (typically no security) l Fixed scheduling l Inadequate for a wide range of applications: l Multimedia l Mobile Computing l Adaptive Applications
IFIP/ACM Middleware’ Proposed Solution: Reflective ORB l Reflective Systems [Smith 84] l Meta-Object Protocol [Kiczales 91] l Reflective ORBs [Singhai and Campbell 97] l The ORB maintains a representation of its own internal structure and allows: l Inspection l Dynamic Reconfiguration
IFIP/ACM Middleware’ dynamicTAO l Built as an extension of the TAO ORB [Schmidt et al] l Written in C++ l Modular design based on object-oriented design patterns l TAO already supported startup configuration, configuration file specifies strategies for l concurrency (threading model) l request demultiplexing l scheduling l connection management
IFIP/ACM Middleware’ Adding Support for Dynamic Configuration dynamicTAO exports an interface called DynamicConfigurator, supporting 1. Transfer of components across the distributed system 2. Loading and unloading components 3. Inspecting and modifying the configuration of the ORB (and of applications running on top it)
IFIP/ACM Middleware’ Reifying the ORB Structure ComponentConfigurator framework l Stores inter-component dependencies l Allows browsing, inspection, and reconfiguration l Can be customized through inheritance
IFIP/ACM Middleware’ dynamicTAO Structure
IFIP/ACM Middleware’ DynamicConfigurator IDL Interface interface DynamicConfigurator { stringList list_categories (); stringList list_implementations (in string categoryName); stringList list_loaded_implementations () stringList list_hooks (in string componentName); string get_hooked_comp (in string componentName, in string hookName); string get_comp_info (in string componentName);.
IFIP/ACM Middleware’ Manage Component Implementations loaded in memory long load_implementation (in string categoryName, in string impName, in string params,...); void hook_implementation (in string loadedImpName, in string componentName, in string hookName); void suspend_implementation (in string loadedImpName); void resume_implementation (in string loadedImpName); void remove_implementation (in string loadedImpName); void configure_implementation (in string loadedImpName, in string message);
IFIP/ACM Middleware’ Manage the ORB Persistent Component Repository void upload_implementation (in string categoryName, in string impName, in implCode binCode); void download_implementation (in string categoryName, inout string impName, out implCode binCode); void delete_implementation (in string categoryName, in string impName); };
IFIP/ACM Middleware’ Example of Dynamic Configuration 1. myRemoteOrb->upload_implementation (“Security”, “superSAFE”, superSAFE_impl); 2. newSecurityStrategy = myRemoteOrb->load_implementation (“Security”, “superSAFE”); 3. oldSecurityStrategy = myRemoteOrb->get_hooked_comp (“dynamicTAO”, “Security_Strategy”); 4. myRemoteOrb->hook_implementation (newSecurityStrategy, “dynamicTAO”, “Security_Strategy”); 5. myRemoteOrb->remove_implementation (oldSecurityStrategy);
IFIP/ACM Middleware’ Consistency l Dynamic reconfiguration may break the consistency of the internal ORB engine. l Consistency must be ensured by the ORB developer and by the component developer. Achieved by creating customized subclasses of the ComponentConfigurator class: l TAOConfigurator l Servant1Configurator l MonitoringStrategyConfigurator l...
IFIP/ACM Middleware’ Example of Consistent Dynamic Reconfiguration l Concurrency strategies 1. Reactive (single-threaded) 2. Thread-per-Connection 3. Thread-Pool l Switching from 1 or 2 to any other: OK l Switching from Thread-Pool: problematic
IFIP/ACM Middleware’ Implementing Reconfigurable ORB Components l Two major things to consider: 1. Transferring the state from the old component to the new component 2. Making sure that no dangling references to the old component remain Must customize TAOConfigurator or strategy configurator ( e.g. ThreadPoolConfigurator )
IFIP/ACM Middleware’ Accessing the ORB Reconfiguration Interface 1. Local or remote code through IDL 2. Telnet 3. Java GUI 4. Reconfiguration Agents
IFIP/ACM Middleware’ DOCTOR D ynamic O RB C onfiguration T ool
IFIP/ACM Middleware’ Reconfiguration with Mobile Agents l Suitable for Large-Scale Systems l Agents may carry l graph l reconfiguration script l state l results
IFIP/ACM Middleware’ Applications of Reflective ORBs l Completed Prototypes: l Flexible Object Monitoring Service l Dynamic Security Service l Ongoing work: l Multimedia applications l CORBA File System
IFIP/ACM Middleware’ Monitoring Distributed Object Interactions l dynamicTAO shows how to adapt l Applications also need to know when to adapt l Monitoring Service: l Can be dynamically loaded and unloaded l No modifications in the applications l Totally transparent to applications l Uses the CORBA request-level interceptor [OMG98a]
IFIP/ACM Middleware’ Monitoring Service Architecture
IFIP/ACM Middleware’ Monitoring Service Overhead l String getHello (); l Overhead: when monitoring getHello : 10.1% with Monitoring Service on, but without monitoring getHello : 2.0% Ultra-2 Ultra-60 ClientServer Fast Ethernet
IFIP/ACM Middleware’ Dynamic Security Service Prototype l Can be dynamically loaded and unloaded l Uses l CORBA request-level interceps. for access control l Cherubim Security Framework [Campbell & Qian 98] l Java Active Capabilities flexible dynamic policies l implemented: DAC, MAC l working on: RBAC, ABAC (?)
IFIP/ACM Middleware’ Related Work l Lancaster University [Blair et al 98] l Python implementation of a Reflective ORB l AspectIX [Hauck et al 98] l Configurable ORB using Aspect-Oriented Programming l COMERA [Wang and Lee 98] l Configurable COM middleware
IFIP/ACM Middleware’ Future and Ongoing Work l LegORB: a component-based reflective ORB l select only the ORB functionality you need l minimal configuration for client: 6KB l Implement a framework to support consistency in dynamic configuration: l state transfer l inter-component dependency management
IFIP/ACM Middleware’ Conclusions dynamicTAO is a powerful mechanism for l implementing non-functional ORB services l security l monitoring l communication mechanisms l clean separation of concerns, transparency l dynamic reconfiguration l adaptive applications
IFIP/ACM Middleware’ How to contact us 2K Web site:
IFIP/ACM Middleware’ The 2K Architecture
IFIP/ACM Middleware’ Security Architecture l Java Active Capabilities l Flexible Security Policies l Caching of Authorization Decisions l Auditing
IFIP/ACM Middleware’ Switching Thread-Pool Thread-per-Connection (Example) l Problem 1: queued incoming connections waiting for a thread to execute them. l Solution: encapsulated the queue in an object and pass as an argument to the new strategy. l Problem2 : strategy code cannot be unloaded because threads return to it. l Solution: ThreadPoolConfigurator that keeps track of the threads handling client connections.
IFIP/ACM Middleware’ Future and Ongoing Work l Improve Security Service l how to provide security for millions of distributed objects efficiently? l Monitoring Service tools: l Specify what should be monitored l Visualize monitored data graphically
IFIP/ACM Middleware’ dynamicTAO Architecture