A QoS-aware CORBA Component Model for Distributed Real-time and Embedded System Development

Similar documents
A QoS-aware CCM for DRE System Development

Tutorial on CORBA Component Model (CCM)

Cpt. S 464/564 Lecture Auxiliary Material (not from text) January 29-31, Middleware in Context: 2016 David E. Bakken

Quality Objects (QuO): Adaptive Management and Control Middleware for End-to-End QoS

Using Quality Objects (QuO) Middleware for QoS Control of Video Streams

Static Component Configuration Support for Real-Time Platforms

Middleware in Context: 2016 David E. Bakken. Cpt. S 464/564 Lecture Auxiliary Material (not from text) January 30, 2019

Adaptive Middleware. Self-Healing Systems. Guest Lecture. Prof. Priya Narasimhan. Assistant Professor of ECE and ISRI Carnegie Mellon University

Object Security. Model Driven Security. Ulrich Lang, Rudolf Schreiner. Protection of Resources in Complex Distributed Systems

QUICKER: A Model-driven QoS Mapping Tool for QoS-enabled Component Middleware

Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee

Qu O O & & A P P O O D

XML in the Development of Component Systems. XML and the CORBA Component Model

Software Components and Distributed Systems

Model-Driven QoS Provisioning Techniques for CCM DRE Systems

Implementing Real-time CORBA with Real-time Java

OBJECT ADAPTER ORB CORE I/O SUBSYSTEM. struct RT_Info { wc_exec_time_; period_; importance_; dependencies_; }; 1: CONSTRUCT CALL 6: SUPPLY RUN-TIME

Middleware Support for Aperiodic Tasks in Distributed Real-Time Systems

Tools & Techniques for Deployment & Configuration of QoS- enabled Component Applications

Fine-grained Middleware Composition for the Boeing NEST OEP

Weapon Systems Open Architecture Overview

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

Defining a Fault Tolerant CORBA Component Model

Using Prioritized Network Traffic to Achieve End-to-End Predictability

QoS-enabled Component Middleware for Distributed Real-Time. and Embedded Systems

A Generative Programming Approach to Middleware Development

Real-time & Embedded Systems Workshop July 2007 Building Successful Real-time Distributed Systems in Java

Enhancing Adaptivity via Standard Dynamic Scheduling Middleware

Design and Performance Evaluation of Resource-Management Framework for End-to-End Adaptation of Distributed Real-time Embedded Systems

Techniques for Dynamic Swapping in the Lightweight CORBA Component Model

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

Designing an Efficient & Scalable Server-side Asynchrony Model for CORBA

AQUILA. Project Defense. Sandeep Misra. (IST ) Development of C++ Client for a Java QoS API based on CORBA

Evaluating Policies and Mechanisms to Support Distributed Real-Time Applications with CORBA

Applying Adaptive Middleware to Manage End-to-End QoS for Next-generation Distributed Applications

Towards Composable Distributed Real-time and Embedded Software

Real-Time Platforms. Ø Real-Time OS: Linux Ø Real-Time Middleware: TAO

Agrowing class of real-time systems require

Real-time CORBA in soft-radio

Automated Configuration of Component-based Distributed Real-time and Embedded Systems from Feature Models

Application Servers in E-Commerce Applications

A Survey of Adaptive Middleware

MicroQoSCORBA A QoS-Enabled, Reflective, and Configurable Middleware Framework for Embedded Systems

AXCIOMA Internals. A LwCCM implementation supporting the IDL to C++11 language mapping Johnny Willemsen

An Overview of the Real-time CORBA Specification

Adaptive Fault Tolerant Systems: Reflective Design and Validation

Model-Driven Configuration and Deployment of Component Middleware Publish/Subscribe Services

F6COM: A Case Study in Extending Container Services through Connectors

The Real-Time CORBA Specification tutorial Part-2

Adaptive & Reflective Middleware. Andreas Rasche

Generator. Heads-Up Display

Programmable Data Collection Networks. Gurdip Singh Computing and Information Sciences Kansas State University Manhattan, KS 66506

Administrative Stuff. We are now in week 11 No class on Thursday About one month to go. Spend your time wisely Make any major decisions w/ Client

Analysis of Passive CORBA Fault Tolerance Options for Real-Time Applications Robert A. Kukura, Raytheon IDS Paul V. Werme, NSWCDD

NetQoPE: A Middleware-based Network QoS Provisioning Engine for Distributed Real-time and Embedded Systems

CORBA (Common Object Request Broker Architecture)

Architecture and Design of Distributed Dependable Systems TI-ARDI POSA2: Interceptor Architectural Pattern

CCM Component Definition

Today: Distributed Objects. Distributed Objects

Recommendations for a CORBA Language Mapping for RTSJ

(9A05803) WEB SERVICES (ELECTIVE - III)

Flexible and Adaptive QoS Control for Distributed Real-time and Embedded Middleware

Verteilte Systeme (Distributed Systems)

AIDING THE DEPLOYMENT AND CONFIGURATION OF COMPONENT MIDDLEWARE IN DISTRIBURED, REAL-TIME AND EMBEDDED SYSTEMS. Stoyan G. Paunov.

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Building High-Assurance Systems out of Software Components of Lesser Assurance Using Middleware Security Gateways

Evaluating Meta-Programming Mechanisms for ORB Middleware

The Design and Performance of Configurable Component Middleware for Distributed Real-Time and Embedded Systems

Protecting the Hosted Application Server

Middleware What it is, and How it Enables Adapdivity and Dependability

On the Use of CORBA in High Level Software Applications at the SLS

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

The Design and Performance of a Real-time CORBA ORB Endsystem

Java For Real-Time Enterprise Systems Delivering the Benefits of Java to the world of Real-Time distributed object computing

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

RPC and RMI. 2501ICT Nathan

Priya Narasimhan. Assistant Professor of ECE and CS Carnegie Mellon University Pittsburgh, PA

These are the contents: First, I outline the basics of CORBA, showing its strong and weak points, and what has to be improved. Next, I describe what I

The Design and Performance of a Real-time CORBA Event Service

A control service for QoS-enabled middleware

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

PhD Student E&CE Department University of Waterloo Spring 2005

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

From MDD back to basic: Building DRE systems

Providing Real-Time and Fault Tolerance for CORBA Applications

Design and Performance Evaluation of an Adaptive Resource Management Framework for Distributed Real-time and Embedded Systems

Techniques for Enhancing Real-time CORBA Quality of Service

Model-Driven Optimizations of Component Systems

ISO/IEC INTERNATIONAL STANDARD

Latency Reliability Partitioning Ordering Low-level APIs Poor debugging tools Algorithmic decomposition Components Self-contained, ëpluggable" ADTs Fr

Design and Performance of an Asynchronous Method handling Mechanism for CORBA

Integrating Fragmented Objects into a CORBA Environment

A Grid-Enabled Component Container for CORBA Lightweight Components

1.264 Lecture 16. Legacy Middleware

Presented by: B. Dasarathy OMG Real-Time and Embedded Systems Workshop, Reston, VA, July 2004

Appendix A - Glossary(of OO software term s)

Flexible Fault Tolerance In Configurable Middleware For Embedded Systems

Separating Access Control Policy, Enforcement, and Functionality in Extensible Systems. Robert Grimm University of Washington

~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~

JAYARAM. COLLEGE OF ENGINEERING AND TECHNOLOGY Pagalavadi, Tiruchirappalli (An approved by AICTE and Affiliated to Anna University)

Transcription:

A -aware CORBA Model for Distributed Real-time and Embedded System Development Nanbor Wang and Chris Gill {nanbor,cdgill}@cse.wustl.edu Department of Computer Science and Engineering Washington University in St. Louis This research is sponsored by DARPA PCES program under Contract to Boeing (F33615-00-C-3048) & Washington University in St.Louis (F33615-00-C-1697), partially in collaboration with BBN Technology. July 7, 2003

Characteristics of DRE Applications Representative hard real-time applications Avionic mission/control systems Theater missile defense Command and control resources which must be managed Computation resources Communication resources Power resources

Management Techniques Applications Interceptor Middleware Domain-Specific Services Common Services Distribution Middleware Descriptions Sys Condition Sys Condition Sys Condition Systemic Path Mechanism & Properties Manager Descriptions Sys Condition } { Applications Interceptor Middleware Domain-Specific Services Common Services Distribution Middleware Infrastructure Middleware Operating System Local Resource Management Endsystem Functional Path Infrastructure Middleware Operating System Local Resource Management Endsystem Static management Done at system design time Resources are provisioned before system runs Dynamic management Done at system runtime Adapts to changing environmental conditions

Stepping Motor A Motivating Real-Time Application An one-axis robot arm controller application 3 separate processes connected via ethernet Motor Modulator :Modulator Positioning Module :Position-Encoder Motor Modulator Advances stepping motor fixed angle for every Fwd/Rev command Activate mechanical brake when stop Fwd()/Rev() :Em-Stop Stop () Stop () :Em-Stop Position () :Controller Controller Controller Updates current location Accelerates and decelerates motor Stops the motor Positioning Module Sends differential positioning information Programming proximity limits

CLIENT_PROPAGATED Stepping Motor Motor Modulator Lane :Modulator Prio = 100 Fwd()/Rev() stop() :Em-Stop prio 100 Stop () Types of Real-time Resources SERVER_DECLARED prio=200 Thread Pool w/ Lane prio 200 OBJ REF stop() Lane Prio = 200 position() ORB CORE ` position() Positioning Module CLIENT_PROPAGATED Position () :Position-Encoder :Controller Stop () :Em-Stop Controller SERVER_DECLARED prio=200 Ensure timely response of important tasks Define unified view of importance Portable Priority Mapping Handle important tasks first 255 32767 Preemptive task scheduling 0 Priority Model Reserve CPU resources Thread Pooling Separate traffic of 0 different importance 0 Priority-Banded 31 Connection Private Connection Native Priority Native Priority ORB ENDSYSTEM A ORB ENDSYSTEM B RTCORBA::Priority

2 Client ORB CORE 1 OBJ REF OBJ REF OBJ REF Review - RT Policies/Resources 3 3 3 in args operation() out args + return Priority Mappings Custom Protocols Protocol Properties Object (Servant) 3 Object (Servant) 3 Object 3 (Servant) Thread Pool w/ Lanes Lane Prio = 100 Object Adapter GIOP Real-time CORBA leverages the CORBA Messaging Policy framework 1 Lane Prio = 200 POA B 2 POA A 2 RT policies can associate with objects of various granularities Client-side 1. ORB level 2. Thread level (RTCurrent) 3. Object level Server-side 1. ORB level 2. POA level 3. Object level Shared RT resources Shared by several POAs, objects (Thread Pooling) ORB: certain protocol policies Priority-mapping Requires end-to-end enforcement Results tightly coupled code

Insertion Points for RT Systemic Properties into CCM Interface Design Interface IDL Definitions Design IDL Definitions Stubs & Skeletons CIDL Definitions Implementation Object Implementations Language Tools 1. implementation dependent policies/ resources DLLs Packaging XML & Home Properties 3. Add/override component policies IDL Compiler System Deployment Running Applications CIDL Compiler Configurations 4. Target platform specific resource allocations Deployment Tools Target Platform Properties Servants, Executors, Contexts XML Descriptors (.ccd) Assembly Packages (Zipped archives *.aar) XML Assembly Descriptors (.cad) 3.1. Association between component policies and resources Packaging Tools XML Softpkg Descriptors (.csd) Assembling Tools XML & Home Properties Packages (Zipped archives *.car) 2. Shared logical resources Application Assembly

Application Development Revisited Positioning Unit RateGen GPS Pulse Refresh Ready Rate MyLocation 20Hz RateGen Collision Pulse Rate 5Hz Refresh Detection MyLocation Ready Instrument Cluster GUIDisplay Refresh GPSLocation LEDDisplay Refresh GetLocation Two parallel applications GPS display runs at higher rates Collision detection runs at lower rates Collision detection requires immediate attention Can we now program this with CIAO?

CIAO Examples Positioning Unit Unit CLIENT_PROPAGATED Instrument Cluster RateGen RateGen Pulse Pulse GPS GPS Refresh Ready Refresh Ready Rate MyLocation Rate MyLocation 20Hz 20Hz SERVER_DECLARED-5 SERVER_DECLARED-5 GUIDisplay GUIDisplay RefreshGPS Refresh GPSLocation RefreshCollision GPSLocation GPSLocation CollosionDir RateGen RateGen Rate Rate 5Hz 5Hz Pulse Pulse SERVER_DECLARED-10 Collision Collision Refresh Refresh Ready Detection Detection MyLocation MyLocation Ready SERVER_DECLARED-10 LEDDisplay LEDDisplay Refresh Refresh GetLocation GetLocation SERVER_DECLARED-5 CLIENT_PROPAGATED With prio: Thread_Pool 5, prio-banded Priority-banded (5,10) SERVER_DECLARED-10 SERVER_DECLARED-5 SERVER_DECLARED-10 prio: 10, prio-banded (5,10) SERVER_DECLARED-5 SERVER_DECLARED-10

CIAO Example - BoldStroke Configuration Config Phase Packaging Assembly Deployment (400MHz CPU) Deployment (200MHz CPU) Available Rates (in Hz) RateGenerator: {1,5,10,20,40} HiResGPS: {x x < 40} cockpitdisplay: {y y 5} RateGenerator HiResGPS cockpitdisplay: {10,20} RateGenerator HiResGPS cockpitdisplay: 20 (not feasible on 200MHz CPU) RateGenerator HiResGPS cockpitdisplay: 10 (not optimal on 400MHz CPU) WCET (in msec) RateGenerator:1@400MHz HiResGPS: 40@400MHz cockpitdisplay: 5@400MHz RateGenerator:1@400MHz HiResGPS: 40@400MHz cockpitdisplay: 5@400MHz RateGenerator:1@400MHz HiResGPS: 40@400MHz cockpitdisplay: 5@400MHz RateGenerator:2@200MHz HiResGPS: 80@200MHz cockpitdisplay: 10@200MHz

Summary of Meta-data for RT Policies 1. dependent Require RT ORB Priority model/default priority level 2. Logical resources Thread pooling Priority-banded Custom protocol policy 3. Application assembly Container policy (<homeplacement>) Priority model/priority level Association with (2) policy: Override priority (SERVER_DECLARED) Priority-banded Connection policy: Priority-banded Request _validate_connection () 4. Application deployment Priority mapping Server protocol policy Client protocol policy

Static Provisioning in -Integrated ACE ORB (CIAO) Client Configuration Aggregate Adaptation Mechanism Plug ins Named Policy Aggregate Target Platform Resource Specification Deployment & Configuration Mechanism Assembly & Home Impls Connection Specifications Mechanism Plug ins Policies Adaptation Extension to CCM descriptors and connection specifications ORB modules Adaptation modules Client Object Reference Named Policy Aggregate Adaptation in args Operation () out args + return value Server Home CORBA Real-time POA Container Adaptation Policies Property Adaptor Reflect -enabled containers Policy-based adaptation insertion Client-side policy aggregates Integrating RT-CORBA Mechanism Plug ins RT-ORB Mechanism Plug ins

What is Dynamic Management? Utility Broken Current Utility Curve Works Resources Utility Desired Utility Curve Working Range Resources Measure (sensors) system resource properties and environmental conditions Evaluate performance based on specified requirements for the system Adapt application behavior to meet requirements Uses actuators to control behavior

BBN s QuO Add Management to CORBA Middleware QUO/CORBA DOC MODEL CLIENT Delegate IDL STUBS IDL STUBS OBJ REF Contract SysCond in args operation() out args + return value Network Contract OBJECT (SERVANT) Control IDLDelegate SKELETON SysCond Specialized ORBs or Services IDL ORB IIOP MECHANISM/PROPERTY IIOP ORB MANAGER Network SysCond SysCond SKELETON ORB IIOP IIOP ORB Simple Value QuO Kernel CORBA Object Measured Value (Sensor) Composed Value Control Value Value RSVP Controller Status Value Device OBJECT Status Service ADAPTER OBJECT ADAPTER Application Developer Developer Mechanism Developer Application Application Developer Developer QuO Developer Mechanism Developer Mechanism Developer Plain CORBA addresses only application s functional aspects QuO injects management Measurement In-band: via Instrumentation Out-of-band: provided by syscond objects Adaptation In-band: via delegates and gateways Out-of-band: triggered by transitions in contract regions

Packaging Management into s C1 In-band In-band C2 A Prototypical Approach qosket1 out-of-band qosket2 In-band components components are inserted between two application components, e.g. C1 and C2 components expose delegate interfaces which intercept method invocations for C1 and C2 and adds adaptation behaviors for C1 and C2 Out-of-band component components contain system condition (syscond) objects which measure system and application performance, and callbacks (actuators) which trigger adaptive behaviors

RSS Proxy out-of-band Container Boundary Example of a ized Qosket Syscond Syscond In-band qosket comp Delegate QuO Contract Proxy Resource Control Syscond QuO Kernel A qosket component encapsulates Delegate interception interfaces Contract objects Syscond objects A qosket component interacts internally with Other qosket components for out-of-band control proxies for accessing resource control mechanisms Open questions Integration with event delivery mechanisms Installation/connecting of resource control mechanisms

Composing Dynamic Provisioning into CCM Mechanism Plug-ins QuO Mechanism/ property Manager QuO Helper Methods Qosket Implementation Assembly & Home Impls Comp. Impl. QuO Callback Objects Adaptation (Smart Proxies/ Interceptors) QuO Delegate QuO QuO Delegate Delegate SysCond SysCond Contract Contract Policies Connection Specifications Container aspect hooks provide fine grained control for inserting QuO s delegates ORB configuration mechanism can install Qosket specific mechanisms and implementations Extend CIAO to insert Qosket modules into applications transparently Customized CCM components can implement QuO s contracts, SysConds, and callbacks objects

Abstraction Middleware Programming Languages CIAO s Contributions: Total Provisioning and Enforcement -Enabled Middleware (RTCCM-CIAO, EJB Containers) Aspect-Oriented Languages (AspectJ, AspectC++) Dynamic Provisioning (QuO Qosket, dynamictao) Statically provision resources end-to-end Monitor and manage of the end-to-end functional application interaction Enable the adaptive and reflective decisionmaking for dynamic provisioning Integration with MDA tools such as CoSMIC and Cadena Static Provisioning Integrating CIAO and Qosket covers the provisioning at the middleware level Separation of functional and systemic paths Dynamic Applications Interceptor Middleware Domain-Specific Services Common Services Distribution Middleware Infrastructure Middleware Operating System Local Resource Management Endsystem Descriptions Sys Condition Sys Condition Sys Condition Systemic Path Mechanism & Properties Manager Descriptions Sys Condition } { Functional Path Applications Interceptor Middleware Domain-Specific Services Common Services Distribution Middleware Infrastructure Middleware Operating System Local Resource Management Endsystem