Download presentation
Presentation is loading. Please wait.
Published byAugustus Merritt Modified over 9 years ago
1
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis QoS-Enabled CCM Meeting Overview Motivations of CORBA Component Model (CCM) Major CCM features –Component programming model –Container Programming Model –Component Implementation Framework and CIDLC –Packaging and deployment The state of the CIAO Conclusions 8:15 | 9:45 CCM Overview and The State of the CIAO (WU, VU) 9:45 | 12:00 QoS Supporting Strategies/ Mechanisms (BBN, LMCO, WU, URI) Lunch Break 13:30 | 15:00 Integration with Model Driven Arch. (VU, KSU, UAB) 15:00 | 16:00 Discussion & Conclusion Presentation Outlines
2
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Overview of CORBA CORBA shields applications from heterogeneous platform dependencies e.g., languages, operating systems, networking protocols, hardware It simplifies development of distributed applications by automating/encapsulating – Object location – Connection & memory mgmt. – Parameter (de)marshaling – Event & request demultiplexing – Error handling & fault tolerance – Object/server activation – Concurrency – Security CORBA defines interfaces, not implementations
3
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Boiler Plate X Boiler Plate YBoiler Plate X Caveat: Limitations of CORBA 2.x Specification Requirements of non-trivial applications: –Collaboration of multiple objects and services –Wide-spread deployment on diverse platforms Limitations – Lack of standards –Server configuration –Object/service configuration –Application configuration –Object/service deployment Consequences – tight couplings –Brittle, non-scalable implementation –Hard to adapt and maintain –Increase time-to-market Server ORB/POA Obj Impl Server ORB/POA Obj Impl COS Svc Server ORB/POA Obj Impl COS Svc Client CORBA BUS invoke Config CConfig C Config BConfig B Config AConfig A
4
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis The CORBA Component Model (CCM) Separating configuration concerns into aspects: –Server configuration –Object/service configuration –Application configuration –Object/service deployment Supporting mechanisms –Component: a reusable entity –Container: a standardized environment for components to interact with run-time & vice versa –Component Server: a generic server process –Component Implemenation Framework: Supports for many component features –Packaging and Assembling tools: for collecting implementations and configurations information into deployable assemblies –Deployment mechanism: for deploying component assemblies to component servers
5
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Why a New Component Metatype Goal: Develop via composition Limitations of CORBA objects –Objects are merely interfaces –No concept of implementation unit –Difficult to extend – via inheritance –No standard way to navigate related interfaces –No standard interaction models between implementations –Ad-hoc object lifetime management CCM solution: components –New meta-type that extends CORBA objects –Easy to extend – via inheritance or aggregation –Viewed as a unit of implementation –Standard navigation and introspection operations –Standard interaction model using ports –Standard life cycle management interface Servant Implementation class Multi_Servant_Impl { Multi_Servant_Impl (const GPS_ptr gps, const Collision_Radar_ptr radar); … }; POA_Cockpit_Display_tie Cockpit_Display_Servant; POA_HUDisplay_tie HUD_Servant; POA_NavInfo_Projector_tie NavInfo_Projector_Servant; HUDisplay Cockpit _Display NavInfo _Projector
6
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Development via Composition RateGenerator –periodic “Pulse” to subscribers HiResGPS, when pulsed –refreshes cached GPS coordinates from “MyLocation” facet –propagates “Pulse” to “Ready” subscribers cockpitDisplay, when pulsed –Reads GPS coordinates from its GetLocation receptacle –Updates display Component Server RateGenerator HiResGPS cockpitDisplay A Representative Boldstroke Use Case
7
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis A CORBA Component Goals –Define a unit of reuse and implementation –Encapsulate an interaction and configuration model A component is a new CORBA meta-type –Extension of Object –Has an interface, and an object reference Binds component features to ports Ports make up a component capability Could inherit from a single component type Could supports multiple interfaces Each component instance is created and managed by a unique component home interface rate_control { void start (); void stop (); }; component RateGen supports rate_control { }; interface RateGen : Components::CCMObject, rate_control { };
8
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Facets Goals –Easy extension –Different views to different client roles –Easy composition Component facets: –Named interfaces that provide the component’s application functionality to clients –A facet represents the component itself, not a separate thing contained by the component –Facets have independent object references interface position { long get_pos (); }; component GPS { provides position MyLocation; … }; interface GPS : Components::CCMObject { position provide_MyLocation (); … };
9
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Receptacles Goals: –Allow easy collaboration with other components/services –Specify required services Distinct named connection points for potential connectivity –Ability to specialize by delegation, compose functions Store a single reference or multiple references Configuration –Statically during initialization stage or assembly stage –Dynamically managed at runtime to offer interactions with clients or other components (e.g. callback) component navDisplay { … uses position GetLocation; … }; interface navDisplay : Components::CCMObject { … void connect_GetLocation (in position c); position disconnect_GetLocation(); position get_connection_GetLocation (); … };
10
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Events Goal –Provide asynchronous message passing Simple publish / subscribe event model –“push” mode only –Sources and sinks Events are value types – Defined with the new eventtype meta-type eventtype eventtypeConsumer interface eventtype tick { public rateHz rate; }; valuetype tick : Components::EventBase { public rateHz rate; }; interface tickConsumer : Components::EventConsumerBase { void push_tick (in tick the_tick); };
11
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Event Sources Goal –Specify intention to generate typed events Event sources: –Named connection points for event production Push a specified eventtype –Two kinds: Publisher & Emitter publishes = multiple clients emits = only one client Event delivery –Client subscribes/connects directly –Container mediates access to CosNotification channels scalability, quality of service, transactional, etc. component RateGen { publishes tick Pulse; … }; interface RateGen : Components::CCMObject { Components::Cookie subscribe_Pulse (in tickConsumer c); tickConsumer unsubscribe_Pulse (in Components::Cookie ck); … };
12
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Event Sinks Goal –Express interest on receiving typed events Named connection specifies which events may be pushed Subscription to event sources –Potentially multiple (n to 1) No distinction between emitter and publisher –Both push in event sinks component navDisplay { … consumes tick Refresh; }; interface navDisplay : Components::CCMObject { … tickConsumer get_consumer_Refresh (); … };
13
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Attributes Goals –Define a standard mechanisms to configure components –Make component implementations more adaptable Named configurable properties –Intended for component configuration e.g., optional behaviors, modality, resource hints, etc. –Could raise exceptions –Exposed through accessors and mutators Can be configured –By visual property sheet mechanisms in assembly or deployment environments –By homes or during implementation initialization –Potentially readonly thereafter typedef unsigned long rateHz; component RateGen supports rate_control { attribute rateHz Rate; }; interface RateGen : Components::CCMObject, rate_control { attribute rateHz Rate; };
14
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis A CORBA Component Home Goals: –Provides standard component lifecycle management interfaces –Strategize lifecycle management “home” is a new CORBA meta-type –Home definition is distinct from component one –Has an interface, and an object reference Manages a unique component type –More than one home type can manage the same component type –But a component instance is managed by one home instance Standard factory and finder business logic operations Extensible with arbitrary user-defined business logic operations home RateGenHome manages RateGen { factory create_pulser (in rateHz r); }; interface RateGenHomeExplicit : Components::CCMHome { RateGen create_pulser (in rateHz r); }; interface RateGenHomeImplicit : Components::KeylessCCMHome { RateGen create (); }; interface RateGenHome : RateGenHomeExplicit, RateGenHomeImplicit {};
15
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Navigation and Introspection Goals: –Provide introspection interface to discover component capability –Provide generic port operations to compose/configure components Navigation from any facet to component base reference with CORBA::Object::get_component () –Returns nil if target isn’t a component facet –Returns component reference otherwise Navigation and introspection capabilities provided by CCMObject –Via the Navigation interface for facets –Via the Receptacles interface for receptacles –Via the Events interface for event ports Generic ports operations for provides, uses, subscribes, emits, and consumes. interface Navigation { Object provide_facet (in FeatureName name); FacetDescriptions get_all_facets(); FacetDescriptions get_named_facets (in NameList names); boolean same_component (in Object object_ref); }; interface CCMObject : Navigation, Receptacles, Events { CORBA::IRObject get_component_def ( ); CCMHome get_ccm_home( ); PrimaryKeyBase get_primary_key( ); void configuration_complete( ); void remove(); ComponentPortDescription get_all_ports (); }; Applies the Extension Interface Pattern
16
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Client-View of CCM Components IDL3 definition of a component from a “client-view” –What the component life cycle operations are (i.e., home) –What a component offers to other components –What a component requires from other components –What collaboration modes are used between components Synchronous via operation invocation Asynchronous via event notification –Which component properties are configurable Maps to “Equivalent IDL2 Interfaces”
17
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis The State of the CIAO – Client View Only involved IDL modification TAO_IDL already supports IDL3 syntax –Thanks to Jeff Parsons, Vanderbilt Most of the mappings have been tested –We will continue to scrutinize the IDL3 related generated code Known issues –Eventtype’s are basically valuetype’s. Event sources/event sinks/event channels may be collocated. TAO currently does not support the pass- by-value semantics for collocated valuetypes
18
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Server CCM Server-side Features CCM is all about component – server - application configuration CORBA 2.x specifications lack higher level abstractions of servant usage models Require programmatic configuration (more often with boiler plate-like code) Apply meta-programming techniques –Reusable run-time environment –Drop in and run Client
19
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis The Container Model A framework in component servers Built on the Portable Object Adaptor –Automatic activation / deactivation –Resource usage optimization Provides simplified interfaces for CORBA Services –Security, transactions, persistence, and events Uses callbacks for instance management –session states, activation, deactivation, etc.
20
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Categories Unclassified
21
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Container Managed Policies Goal: decouple runtime configuration from the component implementation Specified by the deployer using XML-based metadata Implemented by the container, not the component Policy declarations defined for: –Servant Lifetime –Transaction –Security –Events –Persistence
22
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Implementation Framework Component implementations need to support introspection, navigation and manage connections. Different implementation may assume different run-time requirements Different run-time requirements use different container interfaces CIF defines rules and tools for developing component implementations –How components should be implemented Bridge between component implementation and container Facilitates component implementation –“only” business logic should be implemented manually Not activation, identify, port management and introspection –Local server-side OMG CIDL mapping Interactions between implementations and containers import RateGenHome; composition session HouseBrew { home executor RateGenHomeExec { implement RateGenHome; manages RateGenExec; }; };
23
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Executors and Home Executors Programming artifacts implementing a component’s or component home’s behavior –Local CORBA objects with interfaces defined by the server-side OMG IDL mapping Component executors could be monolithic –All component attributes, supported interfaces, facet operations, and event sinks implemented by one class Component executors could also be segmented –Component features split into several classes –Implements ExecutorLocator interface Home executors are always monolithic
24
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Executors Are Hosted by Container Container intercepts invocations on executors for managing activation, security, transactions, persistency, and so Component executors must implement a local callback lifecycle interface used by the container –SessionComponent for transient components –EntityComponent for persistent components Component executors could interact with their containers and connected components through a local context interface
25
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis CIDL Compiler Jeff Parsons, Vanderbilt University
26
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis The State of the CIAO – Container & CIF Supports a Session Container implementation –Less the transactional behavior –So, only support Session component category Require handcrafted –Servant glue code –Component-specific context –Executor mappings Support monolithic executors Next step: –CIDL compiler implementation –Enhance configurable options RT-POA policies POA policies –Support Unclassified containers –Event channel setup/configuration Events Synchronous calls Future work: –Containers are like server side smart proxies Explore the applications of reflection
27
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Packaging Artifacts
28
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Packages Goals –Configure components, containers, servers –Extract these aspects into metadata That’s a lot of stuff to be bundled together and moved around “Classic” CORBA: No standard means of –Configuration –Distribution –Deployment Packaging of components –Components are packaged into a self-descriptive package XML descriptors provide metadata that describe –The content of a package –The capability of components –The dependencies to other software artifacts Packaging Tool Implementation Component Descriptor Default Properties Home Properties softpkg Descriptor CORBA Package CORBA Component Package packager
29
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Assembly Artifacts
30
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Component Assembling and Deployment Goals –Configure components, containers, servers, and applications –Extract these aspects into metadata –Provide higher level of modeling “Classic” CORBA: No standard means of –Configuration –Distribution –Deployment Packaging of component assemblies –Components are packaged into a self- descriptive package –Packages can be assembled –Assemblies can be deployed Properties DeploymentT ool Assembly Archive.aar (ZIP) Assembly/ Packaging Tool Component Package Component Package Component Package Port Connections Instance Creation
31
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis The CCM Big Picture IDL/CIDL Compiler IDL/CIDL File Stubs, Skeletons Packaging Tool Implementation Programming Language Tools User's Code Component Descriptor Default Properties Assembly Tool Component Assembly Package Home PropertiesComponent Properties Deployment Tool Assembly Descriptor CORBA Component Package softpkg Descriptor User written file Compiler/Tool Generated files CORBA Component Package CORBA Component Package designers implementer packager assembler deployer Component Interconnection Definitions
32
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis XML Descriptors Overview Software Package Descriptor (.csd) –Describes contents of a component software package –Lists one or more implementation(s) CORBA Component Descriptor (.ccd) –Technical information mainly generated from CIDL –Some container managed policies filled by user/tools Component Assembly Descriptor (.cad) –Describes initial virtual configuration Implementations used homes, component instances, and connections Component Property File Descriptor (.cpf) –name/value pairs to configure attributes CORBA Component Descriptor Component Property File Descriptor Software Package Descriptor Component Assembly Descriptor ** * Goals Goals Provides standards for specifying aspects and configurations at various levels of an application
33
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Example Assembly Descriptors RateGenerator HiResGPS cockpitDisplay
34
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Example Assembly Descriptors (2)...... An assembly descriptor specifies how homes and components should be instantiated A component property file (.cpf) can be associated with a home or a component instantiation to override default component properties
35
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Example Assembly Descriptors (3)... GetPosition MyLocation Refresh Pulse... Assembly descriptors also specify how component instances are connected together RateGenerator HiResGPS cockpitDisplay
36
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis The Component Deployment Process AssemblyFactoryAssembly ServerActivator ComponentServer Container CCMHome CCMObject ComponentInstallation «instantiates» Deployment Tool Goal: Provides mechanisms to realize applications as specified
37
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis The State of the CIAO – Packaging & Deployment CIAO has very limited support of packaging –There’s no tool to help packaging or create zip archive –Simply store all the files (descriptors and implementations) in filesystems CIAO has partial support for deployment –Daemon process ComponentInstallation : Only maps UUIDs to pathnames ServerActivator : Can only pass configuration options thru command line flags –ComponentServer : Does not take advantage of ConfigValues –Container : Can only instantiate one type of container. Only interpret limited ConfigValues Install_home : Create a new home, without configuraton info –AssemblyFactory and Assembly : Prototype to install a component from a CORBA Component Softpkg Descriptor –Descriptor handlers only extract “important” information, such as: DLL names, entry points, UUIDs and container type Next step: (Targeting Boeing OEP example demos) –AssemblyFactory and Assembly implementation: Improve XML handling capability to interpret component assembly descriptor Add application composition code –Extend component descriptors and assembly descriptors to include RT info –Add more configurable options to create_component_server, create_container, and install_home Future –Capability to apply property files at various level
38
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis CIAO Status Summary Full support of IDL 3 (client-view mappings) One container type and one component usage model Require handcrafted servant glue code, component-specific context, and executor mapping Component server implementation Per-host daemon implementation –ComponentInstallation : Implementation management –ServerActivator : ComponentServer factory Daemon controller: Allow managing of daemon using some scripting languages (perl) Limited deployment capability: Only single component Only extract “important information” from XML descriptors
39
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Project Outlook Immediate Tasks: –Add application composition mechanism to Assembly –Add RT Containers – implementation and configuration parameters –CIDL compiler –Extend component and assembly descriptors for RT-spec. –Extend number of recognizable configuration options Objectives –Collaboration with KSU people - Boeing OEP examples, extension to various XML descriptors, RT-Event channel configuration –Collaboration with VU CoSMIC people – ORB configurations mechanisms –Collaboration with BBN people – A Qosket example, CCM general application, ORB configuration Future work: –Applying Property files – dynamic CORBA –More streamlined component implementation tools –Smarter ComponentInstallation Implementation
40
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Availability Timeline CCM related extension and standardization efforts: –OMG Lightweight CCM RFP –OMG QoS for CCM RFP draft –OMG Stream for CCM RFP draft –OMG UML Profile for CCM RFP –OMG UML Profile for QoS and FT RFP submissions
41
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Examples of RT Policies in CIAO 1.Component default priority model 2.Override component priority model 3.Priority level of a component instance 4.Defining thread pools 5.Associate thread pools with containers 6.Specify queuing policies 7.Specify pre-connections and private connections, banded-connections 8.Configure ORB components Custom protocols Priority mappings We are extending CIAO’s meta-model to make RT policies an integral part of CCM
42
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis CIAO’s Contributions: MDA Integration Integration with MDA Tools such as Cadena and CoSMIC 1.Configuring and deploying an application services end-to-end 2.Composing components into application server components 3.Configuring application component containers 4.Synthesizing application component implementations 5.Synthesizing dynamic QoS provisioning and adaptation logic 6.Synthesizing middleware-specific configurations 7.Synthesizing middleware implementations
43
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis CIAO’s Contributions: Total QoS Provisioning and Enforcement Statically provision QoS resources end-to- end Monitor and manage QoS of the end-to-end functional application interaction Enable the adaptive and reflective decision- making for dynamic QoS provisioning Integrating CIAO and Qosket covers the QoS provisioning at the middleware level Separation of functional and systemic paths
44
Nanbor WangQoS-Enabled CCM Overview and CIAO Status Washington University, St. Louis Toward Portability Across HW Configurations A PrimaryKey –Uniquely identifies a component instance within a home –Assigned at creation time, or in pre-existing database –Must be a value type derived from Components::PrimaryKeyBase (empty, abstract) Association between a primary key and a component is defined and maintained by its home –Different home types may define different key types (or no key) for the same component type –Primary key is not necessarily a part of the component’s state Idea: alternative use of PrimaryKey –Map to hardware configuration
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.