Download presentation
Presentation is loading. Please wait.
Published byKelley O’Connor’ Modified over 9 years ago
1
December 16th, 2002 Composable Distributed Real-time Systems Krishnakumar B kitty@cs.wustl.edu Department Of Computer Science Washington University, St.Louis, MO Advisor: Dr. Christopher D. Gill Funded by DARPA PCES under Contract to Boeing (F33615-00-C-3048) & Washington University in St.Louis (F33615-00-C-1697)
2
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 2 Outline of Talk Components, Component Models Middleware Composition Challenges Solutions Future work Questions?
3
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 3 Project Synopsis Context –Developing distributed real-time systems using components Problems –Configuration information tied to implementation –Context sensitive QoS specification –No validation of QoS properties –Ad hoc deployment Solution Approach –Specify configuration as meta-data –Decouple QoS specification from context dependencies –Validate configuration –Standardize deployment Packaging & Deployment Component Properties Display Databas e Print File Component Assembly Databas e Display Print File File Properties Database Properties
4
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 4 Overview of Components Component –Encapsulated part of a software system –Implements a specific service or set of services Components vs. Objects –Multiple views per component –Transparent navigation between views –Extensibility without inheritance –Higher-level Execution Environment
5
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 5 Properties of Component Models Component types, properties, inter-connections, interfaces Component run-time infrastructure Component Identity Underlying Object Model FeaturesEnterprise JavaBeans Microsoft.NET CORBA Component Model Basic TypeJavaBean.NET Component CORBA Component TransportRMI/IIOPSOAPIIOP Object ModelJVMCLRCORBA Component IdentificationJNDIGUIDUUID Unit of deploymentJAR Files.NET Assembly SoftPkg
6
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 6 CORBA Component Model Component Model specification from OMG Builds on strengths of CORBA Key elements –Component Facets Receptacles Event Sources Event Sinks –ComponentHome –Container –Component Server –ORB Services
7
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 7 Component Integrated ACE ORB (CIAO) CCM implementation based on TAO QoS-aware Containers Introspection interfaces QoS assurance mechanisms Separate developer roles –Application developer –Component developer –QoS provisioners –ORB configurators Specify QoS as metadata Packaging Tool Assembly Tool Component Assembly Package Home Properties Component Properties Deployment Tool Assembly Descriptor CORBA Component Package softpkg Descriptor CORBA Component Package Component Interconnection Definitions CORBA Component Package
8
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 8 Motivating Application CORBA Event Channel –Typical interactions: I/O arrives Proxies demarshal data Facades process data Problems –Numerous configuration options –Configuration coupled with implementation –No configuration validation Potential run-time failure
9
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 9 Problems & Solutions ProblemSolutionContribution Configuration tied with functionality Specify configuration information as meta- data Configuration decoupled from functionality Implicit dependencies of QoS properties on context Make context explicit as part of packaging Well-defined dependencies Invalid configuration resulting in run-time failure Validate configuration meta-data prior to deployment Static validation of configuration Ad hoc manual deployment Define standard mechanisms for deployment Automated deployment
10
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 10 Configuration of Components Context –Configuration of distributed real-time systems Problem –Overwhelming options –Configuration tangled with functionality Strong Coupling –Ad hoc specification Interoperability problems –Premature finalization Integration problems ECDispatchingECDispatchingThreads ECFiltering ECSupplierFiltering ECTimeout ECScheduling ECProxyPushConsumerCollection ECProxySupplierLock ECConsumerControl ECSupplierControl ECConsumerControlPeriod ECSupplierControlPeriod ECProxyConsumerLock EventChannel
11
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 11 Solution: Configuration as Meta-data Meta-data –Describes systemic properties Describe configuration as meta-data Separate configuration from functionality Use meta-language to describe meta-data –XML provides a basis –Ample scope for Customization Extension –Increased interoperability ECDispatchingECDispatchingThreads ECFiltering ECSupplierFiltering ECTimeoutECScheduling ECProxyPushConsumerCollection ECConsumerControlECSupplierControl ECConsumerControlPeriodECSupplierControlPeriod ECProxySupplierLockECProxyConsumerLock XML ! EventChannel
12
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 12 Solution Applied in CIAO CIAO uses ACEXML library Based on Simple API for XML (SAX) v2.0 –Callback-based API –Low memory footprint Document Type Definition (DTD) Validating Parser Features –DTD Validator –XML Namespaces –Locator –Filters Extensible –Pluggable Content Handlers Content Handler ACEXML Parser Client 2: create Default Handler 1: extend 4: register 3: instantiate 5: read Hello, world! 6: callback XML File
13
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 13 Lessons Learned Specifying configuration as meta-data decouples –Configuration information from functionality –Act of configuration from functionality XML is very useful for describing meta-data –Customizable –Location transparent Allows out-of-band fetching of configuration information Interoperable
14
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 14 Problems & Solutions ProblemSolutionContribution Configuration tied with functionality Specify configuration information as meta- data Configuration decoupled from functionality Implicit dependencies of QoS properties on context Make context explicit as part of packaging Well-defined dependencies Invalid configuration resulting in run-time failure Validate configuration meta-data prior to deployment Static validation of configuration Ad hoc manual deployment Define standard mechanisms for deployment Automated deployment
15
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 15 Context Aware QoS Specification Context –Designing Components Multiple QoS assurance levels Different underlying middleware Problem –Developers exposed to Different QoS features Different implementations –Dependencies implicit Vendor A’s ORB Vendor B’s ORB Thread Pool dispatch Reactive dispatch Component
16
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 16 Solution: Package Dependencies Identify dependencies –External –Internal Make dependencies explicit Describe dependencies extensibly –Scope for standardization –Third-party integration Check dependencies during component installation Component A ORB A Component B ORB B libEvent.so libNotify.so libSecurity.solibPersistence.so >
17
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 17 Solution Applied in CIAO (1/2) CIAO captures dependencies using XML Software Package descriptors Specification at multiple levels of granularity –Individual implementation of same component –Component level –Package Level CORBA Component EventChannel A simple Event Channel test createEventChannel
18
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 18 Solution Applied in CIAO (2/2) META-INF –Well-known descriptor file ACEXML parses META-INF CIAO –Uses Pluggable Handlers features of ACEXML –Implements SoftPkgHandler Dependencies checked during installation SoftPkgHandler ACEXML Parser CIAO 2: create DefaultHandler 1: extend 4: register 5: read 6: callback META-INF ACEXML Validator 3: instantiate
19
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 19 Lessons Learned Dependency checking reduces run-time surprises –Missing files within the package –Local environment files needed Standard format needed for interoperability –Different ORBs may use different methods to specify Dispatching models Thread pools, Reactive Concurrency mechanisms Mutex, Semaphores Different levels of filtering events
20
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 20 Problems & Solutions ProblemSolutionContribution Configuration tied with functionality Specify configuration information as meta- data Configuration decoupled from functionality Implicit dependencies of QoS properties on context Make context explicit as part of packaging Well-defined dependencies Invalid configuration resulting in run-time failure Validate configuration meta-data prior to deployment Static validation of configuration Ad hoc manual deployment Define standard mechanisms for deployment Automated deployment
21
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 21 Component Misconfiguration Context –Integration of application from COTS components Problem –Large number of components Check individually Check overall system –Manual integration Error-prone Doesn’t scale ECConsumerControlECConsumerControlPeriod EventChannel ECDispatchingECDispatchingThreads == 0 == “mt” == “reactive” == 1
22
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 22 Solution: Configuration Validation Validate component configuations –XML allows specification of Document Type Definitions (DTD) –Check configuration to ensure conformance to DTD QoS configuration validation should be done for –Individual components –Groups of components –Application wide in an end-to-end fashion ECConsumerControlECConsumerControlPeriod EventChannel ECDispatchingECDispatchingThreads == “mt” == “reactive” >= 1 >=1000
23
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 23 PropertyFile Solution Applied in CIAO Component Property Files (cpf) –Supports specifying simple types, structs, sequences, valuetypes –Set of valid configurations Validation done at deployment –Minimize run-time failure Minimize run-time exceptions Allow static QoS provisioning Configuration for a Simple Event Channel mt 2 basic reactive 50000 EC_Property ECDispatching ECDispatchingThreads ECConsumerControl ECConsumerControlPeriod ECProxyConsumerLock ACEXML Validator Syntactic Validation Configuration Validation
24
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 24 Lessons Learned How to parse Hedge Automata –Hedge is a sequence of trees –An XML document is a “Hedge” Configuration validation helps reduce “pilot error” Currently ORB configuration is intricately tied to the Service Configurator –Any configurable entity in the ORB is a ACE_Service_Object –Only way to locate entities is from the Service_Repository Properties parsed from XML have to converted back to text to be re-parsed by Service Configurator
25
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 25 Problems & Solutions ProblemSolutionContribution Configuration tied with functionality Specify configuration information as meta- data Configuration decoupled from functionality Implicit dependencies of QoS properties on context Make context explicit as part of packaging Well-defined dependencies Invalid configuration resulting in run-time failure Validate configuration meta-data prior to deployment Static validation of configuration Ad hoc manual deployment Define standard mechanisms for deployment Automated deployment
26
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 26 Deployment Context –Deploying an application built using COTS components Problem –Complex applications Large no. of components –Micro-management of components Difficulty in reasoning complete end-to-end behaviour –Manual deployment inherently error-prone –Ad hoc scripts no better
27
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 27 Solution : Component Packages Packaging –Logical grouping –Software Package Single Component –Component Assembly Multiple components –Groups components with Implementation Meta-data Dependencies Packages are deployed as compressed (.ZIP) files
28
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 28 Package Descriptors (1/2) Package descriptors CORBA Component Descriptor (.ccd) –Describes a single component Interfaces, ports, QoS policies QoS properties described via (.cpf) files CORBA Software Descriptor (.csd) –Describes implementations of a single component –Useful in deploying a single component
29
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 29 Package Descriptors (2/2) CORBA Assembly descriptor (.cad) –Describes a collection of components & their properties –Describes partitioning of the group of components –Describes dependencies among components Example assembly" Example home for A components
30
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 30 Deployment Hierarchy Packages are read by Deployment agent Descriptor of package is read from META-INF Unpacking of packages in safe directory –Avoid trojan implementations Action determined by contents of META-INF Set of Helper classes –ComponentInstallation –AssemblyFactory –Assembly –ServerActivator Used in bootstrapping deployment AssemblyFactory Assembly Deployment Application ServerActivator ComponentInstallation ComponentServer Container CCMHome CCMObject >
31
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 31 Lessons Learned Packaging makes component management easier –Provides logical view of application subsytems –Aggregates groups of components –Provides COTS components in the literal sense Standardizing deployment –Solves problem once –Allows sharing of components –Reduce footprint Lazy component loading using Virtual Component design pattern
32
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 32 Future Work Complete integration of Packaging & Deployment framework with CIAO Decouple ORB configuration from Service Configurator Configuration of ORB from structs and sequences Allow imposing policies in a hierarchical fashion Measure overhead Increase user-friendliness of the Deployment framework
33
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 33 Timeline
34
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 34 Concluding Remarks Summary Of Benefits –Specify configuration as meta-data –Decouple QoS specification from context dependencies –Validate configurations –Standardize deployment Programming effort –ACEXML Common infrastructure - 8K lines Parser Enhancements - 3K lines Validator - 6K lines and growing Available under $ACE_ROOT/ACEXML –Packaging & Deployment 4K lines Available under $ACE_ROOT/ACEXML/compass Availability –cvs co –r Validator ACE_wrappers/ACEXML –cvs co –r CIAO ACE_wrappers First release early 2003
35
Krishnakumar B Composable Distributed Real-Time Systems Washington University in St.Louis 35 Acknowledgements Dr. Chris Gill Dr. Ron Cytron Dr. David Levine Dr. Doug Schmidt All past and present members of the DOC group
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.