Transcript Slide 1
RTCCM Meeting Agenda & Overview of RTCCM Nanbor Wang Department of Computer Science Washington University in St. Louis [email protected] http://www.cs.wustl.edu/~nanbor/presentations/RTCCM-meeting.ppt August 20, 2002 Meeting Schedule Agendas Time 9:00 ~ 10:00 Overview of CCM and CIAO 10:15 ~ 12:00 RT policies/resources provisioning strategies Synergy of Qosket and CIAO 12:00 ~ 13:00 Lunch Break @ Blueberry Hill 13:00 ~ 14:30 RTCCM use cases – how to show that RTCCM is up to the task? 14:45 ~ 17:30 Extending CIAO capability http://www.cs.wustl.edu/~nanbor/projects/CIAO/project-kickoff.html Nanbor Wang Extending CIAO Session Schedule • • • • Kokyu - Chris Gill SCTP - Gautam Thaker and Patrick Lardieri IntServ/DiffServe - Irfan Pyarali FT-CORBA - Chris Gill, Balachandran Natarajan, and Joe Cross • RT-Notification Service - Irfan Pyarali • MIC/MDA - Aniruddha Gokhale, Ted Bapty, Sandeep Neema, and Jeff Gray • QuO/QoSket - Craig Rodrigues Nanbor Wang Presentation Overview 1. 10-minute CCM Overview MDA/MIC 2. Research problems and proposed approaches (RTCCM-CIAO, QoS EJB Containers) Dynamic QoS Provisioning (QuO Qosket, dynamicTAO) Sophistication (Increase Capability) Middleware QoS-Enabled Component Middleware CCM RT CORBA DOC, CORBA Aspect-Oriented Languages Programming Languages Abstraction 3. Project Timeline CIAO QoS-CCM RPC (AspectJ, AspectC++) 1985 Static QoS Provisioning Dynamic QoS Provisioning Abstractions Nanbor Wang 1990 1998 2003 2002 2005 Time Evolution of DOC Middleware Limitation with the CORBA 2.x Object Model Interface Repository Client IDL Compiler Implementation Repository Object (Servant) in args operation() out args + return OBJ REF IDL SKEL DII IDL STUBS ORB INTERFACE ORB CORE • Application developers and system integrators are forced to play multiple roles DSI Object Adapter GIOP/IIOP/ESIOPS – Application functional component developers • tightly coupled application modules – Computational resource provisioners • ensuring the availability of common object services • ad-hoc management – System configurators • Resulting in tight couplings • boiler plate code – Brittle, non-standard implementation • manual application – Hard to adapt and maintain deployment – Increase time-to-market Nanbor Wang Promising Solution: Component Models Application Assembler & Configurator Container Container OS Adaptation Layer OS •J2EE (EJB), COM+ & CORBA Component Model (CCM) Nanbor Wang • Separation of concerns: – Run-time environment configuration – Connections between objects & runtime – Composition of objects • Support run-time object composition – Component: a reusable entity – Container: a standardized environment for components to interact with run-time & vice versa – Component Server: a generic server process (also called application server) – Packaging and Assembling tools: collection of tools to package and compose components into deployable assemblies – Deployment mechanism: for deploying component assemblies to component servers The CORBA Component Model (CCM) Flight Scheduling Chicago Data Center Field Radar Control System Central Data Store Real-Time Component Repository Real-Time Flight Status Bulletin Board Client Middleware Bus Compose Deploy Airport Approach Control WWW Component Assembly System Development Deployment & Configuration Metadata Deployment & Configuration Mechanism Flight Scheduling Processing Container Web Gateway Component Container Middleware Framework Component Server Nanbor Wang • Enhances CORBA Object Model • Provides common run-time environment – component servers – containers • Uses metadata to describe application composition, resource allocation, and infrastructure configurations – component dependencies – component connections – component configuration – component run-time services, e.g., transactional, persistence state The CCM Big Picture implementer designers IDL/CIDL File User's Code Home Properties Component Properties Programming Language Tools Component Interconnection Definitions IDL/CIDL Default Properties Compiler CORBA Component Stubs, Skeletons Implementation assembler Package Packaging Tool CORBA Component Assembly Tool Package Component Descriptor User written file Compiler packager softpkg Descriptor Component Assembly Package Assembly Descriptor CORBA Component Package Deployment Tool deployer Generated files Source: OMG CCM Tutorial by Phillipe Merle Nanbor Wang Current CCM Fails to Address Advanced QoS Requirements Container Component Home Callback CORBA Interfaces Component External Interfaces External Interfaces QoS-enabled CCM ≠ CCM + RT CORBA Why doesn't running a RT ORB beneath CCM make it a QoS-enabled CCM implementation? Container Component Home Callback CORBA Interfaces Component Internal Interfaces Internal Interfaces RT POA RT-ORB RT Component Server (?) Nanbor Wang RT POA • Applications requires a wide variety of infrastructure support, e.g., QoS guarantees • Plain CCM has no mechanisms to specify and enforce real-time QoS policies • QoS policies need to be assured end-to-end for components & connections • Ensuring QoS policies in component implementations leads to: – QoS mechanisms that are hard to utilize and go beyond component implementations • Component connections – private connections – bandwidth reservation • Component collaborations – Thread pools – Thread borrowing – Tight couplings among component implementations – Difficulty in reusing existing components (without QoS knowledge) QoS-Enabled Component Middleware Extend component middleware to support more advanced infrastructure and resource management Deployment & Configuration Mechanism Client Configuration Aggregate Client • Separate the concerns for QoS managements Separate the roles – Application component developers – QoS assurance mechanism developers – QoS provisioning managers – ORB configurators Component Assembly Component Server in args • • Operation () Compose QoS assurance mechanisms – ORB – OS out args + return value Trading Component QoS Adaptation Containers QoS Mechanism Plug ins Nanbor Wang ORB QoS Adaptation Logging Component Containers QoS Mechanism Plug ins – Application-specific Adaptive • Specify metadata for QoS requirements of – components – component connections Specifying QoS Policies in CCM Applications • • Require highest priority Reserve 30% processor cycles Run at client priority Reserve bandwidth Do not share the connection Deployment & Configuration Metadata Deployment & Configuration Mechanism • Trading Component Containers Logging Component Containers Component Server Nanbor Wang • Context: – Delay specifying QoS policies till application composition time Problems: – CCM specification doesn’t consider QoS policies – QoS policies usually managed via ad-hoc interfaces, e.g., RT policies – QoS Policies can bind to either • Components • Connections Solution Approach: – Extend composition metadata to incorporate QoS policies Expected Results: – Implement a CCM deployment framework that realizes extended metadata. – Categorize bindings of QoS policies Supporting QoS Assurance Mechanisms • Container Component Home Component Assembly CORBA Component QoS Policies QoS Property Adaptor Real-time POA ORB QoS Interfaces Scheduling RSVP Nanbor Wang Replicate Service Reflect • ORB-specific QoS Assurance Mechanisms • • Context: – Modern applications need to leverage various QoS assurance mechanisms Problems: – No standard way to support these QoS mechanisms – knowledge of ORB internals required a priori – Unforeseen QoS assurance mechanisms Solution Approach: – Configure the middleware dynamically Expected Result: – Extend and implement CCM deployment mechanisms to describe and deploy ORB modules QoS Assurances Require End-to-end Enforcement • CCM Container Object (Servant) Client in args Operation () Client Request Interceptor Smart Proxy Client-side meta-object (Stub) out args + return value ORB Interfaces Server Request Interceptor Server-side meta-object (Skeleton, DSI) Servant Manager Impl • DII QoS Control Interfaces QoS Enforce Mechanisms Instantiates Nanbor Wang Object store meta-object ORB Core • POA QoS Enforce Mechanisms Interacts • Context: Many QoS properties – need to be enforced end-to-end – require some degree of adaptation Problem: – Lack of standard interaction model with QoS mechanisms Solution Approach: – Apply meta-programming techniques Expected Result: – Extend and Implement CCM metadata to configure and compose interceptors/smart proxies Configuring Component Adaptation Container Component Home CORBA Component • QoS Policies QoS Property Adaptor • Client Real-time POA ORB QoS Interfaces (Scheduling, Timeliness, Priority,...) • • Nanbor Wang Context: – Many QoS properties need to be enforced end-to-end – We need to apply metaprogramming techniques to insert adaptive behaviors Problem: – Components need to adapt as a whole, not as multiple individual interfaces Solution Approach: – Apply reflective middleware technologies to containers Expected Result: – Develop QoS-enabled containers in CCM Configuring Client-side Adaptation • www.krones.com • Context: – We are applying meta-programming techniques to insert adaptive behaviors for QoS requirements – Objects with same interface may require different adaptive behaviors Problem: – Coarse-grained existing metaprogramming support • • • • Still Image Camera ImageRecognizer:ImageConsumer QALogger:ImageConsumer On Board Controller Nanbor Wang Smart proxies – all references Interceptors – all invocations Solution Approach: – Control effective meta-mechanisms through CORBA policies – Utilizing extension interface pattern Expected Result: – Develop mechanisms to associate interceptors and smart proxies with object references via CORBA policies Client-side Policy Aggregates • Best Effort NPA Low B/W Adapt NPA Fast Response NPA Logging NPA ORB QoS Interfaces Scheduling RSVP Client Policy Assembly Replicate Service Client-side ORB NPA: Named Policy Aggregate Nanbor Wang • • ORB-specific QoS Assurance Mechanisms • Context: – Modern systems often require multiple QoS assurance mechanisms – Objects often require multiple adaptive behaviors Problem: – Ad-hoc configuration interfaces • Brittle client-side implementation • Difficult to update matching client/server policies requiring end-to-end assurance Solution Approach: – Configure ORB dynamically – Define policy aggregates dynamically using metadata (using Extension Interface pattern) Expected Results: – Develop a CCM assembly-like client side configuration mechanisms • Define policy aggregates with XML-based descriptors • Package required ORB mechanisms and adaptive strategies • Enable Client to associate objects with named policy aggregates Component-Integrated ACE ORB (CIAO) Client Configuration Aggregate Component Assembly Component & Home Impls QoS Adaptation Component Connection Specifications QoS Mechanism Plug ins QoS Policies Deployment & Configuration Mechanism Client Component Home Operation () out args + return value CORBA Component Named Policy Aggregate Nanbor Wang • • • • Container QoS Adaptation QoS Policies QoS Property Adaptor QoS Adaptation QoS Mechanism Plug ins QoS Adaptation Component Server in args Object Reference QoS Mechanism Plug ins Reflect Named Policy Aggregate • Real-time POA RT-ORB QoS Mechanism Plug ins • Extension to component assembly descriptors – Component and connection QoS specifications – ORB modules – Adaptation modules QoS-enabled containers Policy-based adaptation insertion Client-side policy aggregates Integrating RT-CORBA & ACE QoS API (AQoSA) Benchmark and document test applications using various combinations of QoS aggregates Project Timeline CIAO 0.1 alpha release - (TAO 1.3, Oct. 2002) • Extension to CORBA Core • Default implementation of – CCMObject • Navigations • Receptacles • Events • • • • • • • – CCMHome – KeylessCCMHome Partial support for basic container/callback interfaces: – CCMContext, SessionContext – EnterpriseComponent, SessionComponent HomeExecutorBase interface Support (hand crafted) monolithic executor implementation Extension to IDL compiler and Typecode factory. IDL compiler: shall recognize all CCM keyword extensions but not necessarily generate code for these added keywords. Adaptive configuration of Notification Service/Event Channels Partial implementation of Deployment module Nanbor Wang Project Timeline • • • • • • • • • • CIAO 0.2 beta release - (TAO 1.3.x, Apr. 2003) Support for various RT and QoS Policies Support for policy-based adaptation mechanism HomeFinder interface HomeRegistration interface Configuration interfaces – Configurator – StandardConfigurator – HomeConfiguration Other basic container programming interfaces – EntityContext – EntityComponent Extension to Interface Repository IDL should generate correct client/server side mapping for component extension CIDL implementation that generates skeleton implementation for – Navigations, Receptacles, and Events interfaces of a components – component executor and home_executor templates for monolithic component implementation Complete Deployment implementation, assuming the revised deployment specification will be available Nanbor Wang Project Timeline CIAO 1.0 release - (TAO 1.4, Oct. 2003) • • • • • Transaction module? CCM2Context, Session2Context, Entity2Context and PSS functionality? Support for ExecutorLocator based component implementation ProxyHomeRegistration interface Nanbor Wang Bryan Hall Coke machine Men’s room Coffee & tea We are here! Nanbor Wang