Towards a Real-time CORBA Component Model

Slides:



Advertisements
Similar presentations
Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
Advertisements

Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Persistent State Service 1 CORBA Component  Component model  Container programming model  Component implementation framework  Component packaging and.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
14/06/ A Data-Model for Context-Aware Deployment of Component-based Applications onto Distributed Systems Dhouha Ayed, Chantal Taconet, and Guy Bernard.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Chapter 1 An Overview of Database Management. 1-2 Topics in this Chapter What is a Database System? What is a Database? Why Database? Data Independence.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
23 September 2004 Evaluating Adaptive Middleware Load Balancing Strategies for Middleware Systems Department of Electrical Engineering & Computer Science.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
BBN Technologies Craig Rodrigues Gary Duzan QoS Enabled Middleware: Adding QoS Management Capabilities to the CORBA Component Model Real-time CCM Meeting.
August 20, 2002 RTCCM Meeting Agenda & Overview of RTCCM Nanbor Wang Department of Computer Science Washington University in St. Louis
An Introduction to Software Architecture
Christopher Gill and Nanbor Wang Department of Computer Science and Engineering Washington University, St. Louis Monday May.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
第十四章 J2EE 入门 Introduction What is J2EE ?
Review of “The COMQUAD Component Model” Tore Engvig 30 April 2004.
October 8, 2015 Research Sponsored by NASA Applying Reflective Middleware Techniques to Optimize a QoS-enabled CORBA Component Model Implementation Nanbor.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
HPEC’02 Workshop September 24-26, 2002, MIT Lincoln Labs Applying Model-Integrated Computing & DRE Middleware to High- Performance Embedded Computing Applications.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
CoSMIC: Tool-suite for Weaving Deployment & Configuration Crosscutting Concerns of CCM-based DRE Systems Dr. Aniruddha Gokhale (PI) Institute for Software.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
December 16th, 2002 Composable Distributed Real-time Systems Krishnakumar B Department Of Computer Science Washington University, St.Louis,
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
A Quick CCM Example. Tutorial on CCM Introduction A Simple Sender&Receiver Scenario Sender sends out the click-out event to inform the Receiver. Receiver.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
August 20, 2002 Applying RT-Policies in CORBA Component Model Nanbor Wang Department of Computer Science Washington University in St. Louis
OOPSLA 2000 Workshop “The Jini™ Pattern Language” © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000 CORBA Based Jini™ - JinACE Michael.
A Vision for Integration of Embedded System Properties Via a Model-Component-Aspect System Architecture Christopher D. Gill Department.
EJB. Introduction Enterprise Java Beans is a specification for creating server- side scalable, transactional, multi-user secure enterprise-level applications.
Survey 2: RT-CORBA Group A3 Ka Hou Wong Jahanzeb Faizan Jonathan Sippel.
The Role of Reflection in Next Generation Middleware
Essentials of UrbanCode Deploy v6.1 QQ147
Processes and threads.
Current Generation Hypervisor Type 1 Type 2.
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
The Development Process of Web Applications
Systems Analysis and Design With UML 2
Direct Attached Storage and Introduction to SCSI
Distribution and components
Implementing RT-CORBA Spec in TAO
Real-time Software Design
An Approach to Middleware Specialization for Cyber Physical Systems
QoS-Enabled Middleware
Krishnakumar Balasubramanian
Applying Domain-Specific Modeling Languages to Develop DRE Systems
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Applying Domain-Specific Modeling Languages to Develop DRE Systems
Tools for Composing and Deploying Grid Middleware Web Services
Component--based development
Service Oriented Architecture (SOA)
Komponentbasert utvikling Den sanne objektorientering
An Introduction to Software Architecture
Overview of AIGA platform
Component-based Applications
Component Technology Bina Ramamurthy 2/25/2019 B.Ramamurthy.
Quality Assurance for Component-Based Software Development
Towards Integrating Java EE into ProtoCom
Software Architecture
Design Yaodong Bi.
Design.
Software Development Process Using UML Recap
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

Towards a Real-time CORBA Component Model Nanbor Wang, Krishnakumar Balasubramanian, Chris Gill Department of Computer Science Washington University in St. Louis {nanbor,kitty,cdgill}@cs.wustl.edu

Limitations of Current Approaches Non-functional aspects are controlled using interfaces at the same level as functional objects ORB configuration POA policies Objects/services configuration and composition Lack of “reuse boundary” hard to specify object dependencies explicitly can only be enforced with “good programming practice” Change the figure? Perhaps I should expand the two major reasons into two slides and give examples? Washington University, St. Louis

Promising Solution: Component Models Forces behind component models: Separation of concerns, e.g.: Run-time environment configuration Connections between objects & run-time Composition of objects Supporting run-time object composition Component: a reusable physical entity Container: a standardized environment for a component to interact with run-time & vice versa Application Server: a generic server process A deployment mechanism to compose components OMG has already addressed some of the problems outlined in the previous slide…. How component-based approach resolve the issues? J2EE (EJB), DCOM & CORBA Component Model Washington University, St. Louis

The CORBA Component Model (CCM) Extends the CORBA Object Model Provides standard run-time environment for components application servers containers Uses metadata to describe application server and container configurations component run-time requirements, e.g., transactional, persistence state component configuration component dependencies component connections Quick introduction to the CCM. What problems, i.e., non-functional aspects does it address. Washington University, St. Louis

Before CCM: Development via Engineering Invoke ORB_init () Initialize RootPOA Initialize motor “modulator” servant, register with POA, acquire its object reference Same for “actuator position sensor” Same for left and right limit switches Instantiate the control_panel servant using the previously acquired object references Register the servant with POA and acquire the object reference Initialize an EventChannel Connect two proximity objects as event suppliers Connect the control_panel object as event consumer Activate POA(s), now we are ready. ? Washington University, St. Louis

After CCM: Development via Composition Application server run-time management service initialization CCM Assembly Archive Assembly descriptor Install components Component implementations Component descriptors Configuration property files Establish connections Washington University, St. Louis

After CCM (cont.) – Component Implementations <!– Associate components with impls --> <componentfiles> <componentfile id="Motor"> <fileinarchive name="AB-motor.csd"/> </componentfile> <componentfile id="Location"> <fileinarchive name="linear-encoder.csd"/> </componentfile> <componentfile id="Proximity"> <fileinarchive name="p-switch.csd"/> </componentfile> <componentfile id="controller"> <fileinarchive name="AB-panel-if.csd"/> </componentfile> </componentfiles> An assembly descriptor specifies what component implementations are needed by referring to their component descriptors A Component descriptor (.csd) records component features and dependencies to other software modules Washington University, St. Louis

After CCM (cont.) – Component Instantiations <!– Instantiating component homes/instances --> <partitioning> <processcollocation> ... <homeplacement id="ProximityHome"> <componentfileref idref="Proximity"/> <componentinstantiation id="left"> <componentproperties> <fileinarchive name="left-switch.cpf"/> </componentproperties> </componentinstantiation> <componentinstantiation id="right"> <componentproperties> <fileinarchive name="right-switch.cpf"/> </componentproperties> </componentinstantiation> </homeplacement> ... </processcollocation> </partitioning> 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 Washington University, St. Louis

After CCM (cont.) – Connecting Components <connections> ... <connectinterface> <usesport> <usesidentifier>modulator</usesidentifier> <componentinstantiationref idref="Motor"/> </usesport> <providesport> <providesidentifier>modulator</providesidentifier> <componentinstantiationref idref="Controller"/> </providesport> </connectinterface> <connectevent> <consumesport> <consumesidentifier>EmStop</consumesidentifier> <componentinstantiationref idref="Controller"/> </consumesport> <publishesport> <publishesidentifier>EmStop</publishesidentifier> <componentinstantiationref idref="left"/> </publichesport> </connectevent> ... </connections> Assembly descriptors also specify how component instances are connected tegether Washington University, St. Louis

RTCCM ≠ CCM + RTCORBA Plain CCM has no mechanisms to specify and enforce RT policies RT policies need to be assured end-to-end for components & connections Trying to ensure RT policies are met in components leads to: Tight couplings among component implementations Difficulty in reusing existing components (without RT knowledge) Failure to utilize many RT mechanisms that go beyond component implementations Component connections private connections pre-connections Component collaborations Thread pools Thread borrowing Why doesn't running a RTORB beneath CCM make it an RTCCM implementation? Washington University, St. Louis

Overview of Real-time CCM (RTCCM) Solution: Configure RT-policies/mechanisms using CCM’s metadata Abstracting RT CORBA related systemic (QoS) aspects Specify RT policies of a component instance Specify RT policies of a connection between components Allocating & computation and communication resources for components Specify sharing & collaboration of resources among components Configuring ORB with custom communication mechanisms and options component component container container ORB Plugins RT-ORB custom transport OS Application Server Washington University, St. Louis

Component-Integrated ACE ORB (CIAO) We are extending CIAO’s meta-model to make RT policies an integral part of CCM Component default priority model Override component priority model Priority level of a component instance Defining thread pools Associate thread pools with components Specify queuing policies Specify pre-connections Specify private connections Configure ORB components Custom protocols Priority mappings Washington University, St. Louis

RTCCM Descriptor Examples <corbacomponent> ... <ciao:prioritymodelpolicy name=“priority_model_policy" value=“SERVER_DECLARED” priority=“20”/> ... </corbacomponent> Component default priority model <partitioning> <processcollocation> ... <homeplacement id="ProximityHome"> <componentfileref idref="Proximity"/> <componentinstantiation id="left"> <componentproperties> <fileinarchive name="left-switch.cpf"/> <ciao:rtprioritylevel value="60"/> <ciao:rtprioritymodel value="CLIENT_PROPAGATED"/> </componentproperties> </componentinstantiation> <componentinstantiation id="right"> <componentproperties> <fileinarchive name="right-switch.cpf"/> <ciao:rtprioritylevel value="60"/> <ciao:rtprioritymodel value="CLIENT_PROPAGATED"/> </componentproperties> </componentinstantiation> </homeplacement> ... </processcollocation> </partitioning> Override component priority model Specify the priority level of a component instance Associate component instances with customized protocol Washington University, St. Louis

RTCCM Descriptor Examples (cont.) <componentassembly> ... <partitioning> <ciao:createthreadpool id="tp_a" priority="30" number="10"/> <ciao:createthreadpoolwithlane id="tp_l"> <ciao:prioritylevel lane="30" number="3"/> <ciao:prioritylevel lane="60" number="3"/> <ciao:prioritylevel lane="80" number="10"/> </ciao:createthreadpool> Define thread pools Define QoS aggregates <homeplacement id="ProximityHome"> <componentfileref idref="Proximity"/> <componentinstantiation id="left"> <componentproperties> <fileinarchive name="left-switch.cpf"/> <ciao:usethreadpool idref="tp_a"/> </componentproperties> </componentinstantiation> <componentinstantiation id="right"> <componentproperties> <fileinarchive name="right-switch.cpf"/> <ciao:usethreadpoolwithlane idref="tp_l" lane="60"/> </componentproperties> </componentinstantiation> </homeplacement> Associate thread pools with components Associate QoS aggregates with connections Washington University, St. Louis

Current Status of CIAO CIAO : A CCM implementation based on the ACE ORB (TAO) Extending (component and assembly) descriptors for configuring RT policies Applying reflective middleware techniques to support other non-functional aspects with CCM metadata Bandwidth reservation Memory management Transport selection Washington University, St. Louis

Future Work RT-CCM can only enforce RT policies and provide the supporting mechanisms Correct combinations of these policies are beyond the scope of RT-CCM Support other QoS assurance mechanisms Integration with Vanderbilt University’s Model-Integrating Computing Tools Configuring and deploying an application services end-to-end Composing components into application server components Configuring application component containers Synthesizing application component implementations Synthesizing middleware-specific configurations Synthesizing middleware implementations Washington University, St. Louis

Concluding Remarks Component Model promotes reuse by separating non-functional concerns RTCCM ≠ CCM + RTCORBA Components descriptors and assembly descriptors can be used to specify RT policies & mechanisms CCM can be extended to support other non-functional properties, such as QoS properties CCM only enforces the specified policies, it does not ensure they are correctly composed Integrating with MIC tools to ensure correct deployment of non-functional policies Washington University, St. Louis