A Generative Programming Approach to Middleware Development - PowerPoint PPT Presentation

1 / 12
About This Presentation
Title:

A Generative Programming Approach to Middleware Development

Description:

OMG Workshop on Distributed Object Computing. Real-Time And Embedded Systems, July 14-17,2003 ... OMG RT and Embedded Workshop, July 2003. Scope of Component Models ... – PowerPoint PPT presentation

Number of Views:95
Avg rating:3.0/5.0
Slides: 13
Provided by: venkat6
Category:

less

Transcript and Presenter's Notes

Title: A Generative Programming Approach to Middleware Development


1
A Generative Programming Approach to Middleware
Development
Venkita Subramonian and Christopher
Gill Washington University, St.
Louis venkita,cdgill_at_cse.wustl.edu
  • OMG Workshop on Distributed Object Computing
  • Real-Time And Embedded Systems, July 14-17,2003

2
Scope of Component Models
  • Component Models for configuring and assembling
    application level components
  • Weaving of components done based on application
    characteristics
  • Component configuration isolated from component
    development
  • Some level of automation
  • Serves reusability of components

3
Need for Finer-level Configuration
  • Component configurations
  • Inter-Component configuration
  • Intra-component configuration
  • Component Implementation infrastructure
  • Mapping of
  • High level component configurations to
  • Low level infrastructure elements
  • Configuration of low-level infrastructure
    elements involve
  • Selection of various strategies based on high
    level configurations
  • Validating appropriate combinations of
    configurations

4
Static vs. Dynamic Configuration
  • Static configuration chosen at system startup
  • compile-time decisions to improve performance
  • compile-time checks based on system properties
    known a priori
  • Inference of strategies based on high level
    configurations
  • Reconfiguration during system mode changes
  • Expensive, but more flexible and dynamic
  • E.g. Factory based configurations
  • Hybrid strategies
  • as a balance between the two

10Hz
10Hz
5Hz
5Hz
critical
20Hz
10Hz
5Hz
non-critical
RMSMLF
5Hz
10Hz
10Hz
5Hz
critical
20Hz
10Hz
5Hz
non-critical
MUF
5
Generative Approach as a Solution
  • Generative Programming
  • Focus on families of software systems
  • Concrete system generated based on configuration
    knowledge
  • Extend Generative programming approach to
    low-level infrastructure configuration
  • Generate low level configurations from high level
    configurations automatically
  • Configuration generators
  • For mapping high level to low level
    configurations
  • For assembling and weaving the right
    infrastructure elements

Configuration Knowledge
Generator
Concrete Implementation
6
C Template Meta-Programming
  • Mechanism to embed generators in C
  • Completely within the purview of C language
  • Metainformation represented using
  • Member traits, Traits classes, Traits templates
  • Compile-time control-flow constructs
  • Template metafunctions E.g. IF, THEN, ELSE, CASE
  • Conditional compilation based on evaluation of
    type-expressions
  • Issues
  • Advanced usage of C templates
  • Compiler support an issue

7
Example RT Dispatching
Suppliers
Consumers
static
Correlation
static
Proxy
Filtering
laxity
Proxy
Dispatcher
Event Channel
  • Threads are all from dispatcher
  • Timers trigger suppliers
  • Suppliers push to EC
  • Events land in queues
  • Worker threads pull from queues and push to
    consumers

8
RT Dispatching Configuration
  • QoS attributes based on scheduling policy
  • Bundle together all QoS attributes in one
    descriptor
  • Can we generate the appropriate QoS descriptor?
  • Use a configurator to generate the attributes
  • Scheduling policy as input to generator

Scheduling policy
QoS Descriptor Generator
QoS Descriptor
9
Generator for QoS Descriptor
  • enum Disp_Rule_t
  • RMS, EDF, MLF, MUF, other
  • templateltDisp_Rule_tgt
  • struct QoSDesc
  • //template specializations
  • templateltgt
  • struct QoSDescltRMSgt
  • long period
  • //fields specific to RMS
  • templateltgt
  • struct QoSDescltEDFgt
  • long deadline
  • //fields specific to EDF

template ltDisp_Rule_t disp_rulegt struct
QoSDescriptorGenerator typedef typename
CASEltEDF,QoSDescltEDFgt, CASEltRMS,QoSDescltRMS
gt, CASEltMLF,QoSDescltMLFgt gt gt gt
disp_rule_case_list typedef typename
SWITCHltdisp_rule, disp_rule_case_listgt
RET QoSDescriptor_ typedef QoSDescriptor_
RET
typedef QoSDescriptorGeneratorltEDFgtRET
QoSDescriptor
10
Other Use-Cases
Nested Upcall scenario
  • ORB Infrastructure configuration
  • Strategies based on inference from system
    properties
  • E.g. Strategy used to wait for replies
  • Wait on connection
  • No interleaved processing of incoming requests
  • No blocking factor
  • Wait on reactive mechanism
  • Interleaved processing of incoming requests
  • Blocking factor needs to be considered
  • Configurator to choose strategy based on system
    characteristics

11
Related Work
  • RMA using template meta programming
  • RMA schedulability analysis at compile-time
    within the C type system
  • Compile error when utilization bound exceeds the
    RM utilization bound
  • Rate-Monotonic Analysis in the C Typesystem,
    Deters, Gill and Cytron, presented at RTAS 2003
    Workshop on Model-Driven Embedded Systems
  • Task-Scheduler Logic
  • Work by John Regehr and Alastair Reid
  • Reasoning about Concurrency in Component-Based
    Systems Software
  • First order logic for representing system
    knowledge

12
Conclusions
  • Component models deal with higher level
    application components
  • Need to map high level specifications to
    configuration of finer-grained components
  • Extend generative programming to configuration of
    fine-grained infrastructure
  • Algebraic specification of system behavior
  • Inference of infrastructure configuration
    strategies by reasoning of system behavior
Write a Comment
User Comments (0)
About PowerShow.com