Real-Time CORBA Chenyang Lu CSE 520S
CORBA Common Object Request Broker Architecture Ø CORBA specifications q OMG is the standards body q Over 800 companies q CORBA defines interfaces, not implementations Ø Object Request Brokers (ORB) allow clients to invoke operations on distributed objects transparently of q object location q programming language q operating system q communication protocols and interconnect q hardware 2
CORBA Architecture Ø CORBA: Common Object Request Broker Architecture Ø Remote Procedure Call (RPC): Client invokes operations on objects. Ø An Object = q An interface specified by an Interface Definition Language (IDL) q Servant(s) that implements the IDL interface 3
The ACE ORB (TAO) Open-source Real-Time CORBA >> 1M SLOC 100+ person years of effort Pioneered R&D on DRE middleware design & optimization Source: D.C. Schmidt, http://www.cs.wustl.edu/~schmidt/tutorials-corba.html 4
Applica=on Example: Avionics Apply COTS & open systems to mission-critical real-time avionics Deterministic & statistical deadlines ~20 Hz Low latency & jitter ~250 us Periodic & aperiodic processing Complex dependencies Continuous platform upgrades Test flown at China Lake NAWS by Boeing OSAT II '98 www.cs.wustl.edu/~schmidt/tao-boeing.html Also used on SOFIA project by Raytheon sofia.arc.nasa.gov First use of Real-time CORBA in avionics Drove Real-time CORBA standardization 5
Applica=on Example: Hot Rolling Mills Goals: Control the processing of molten steel moving through a hot rolling mill in real-time System Characteristics Hard real-time process automation requirements i.e., 250 ms real-time cycles System acquires values representing plant s current state, tracks material flow, calculates new settings for the rolls & devices, & submits new settings back to plant Key Software Solution Characteristics Affordable, flexible, & COTS Product-line architecture Design guided by patterns & frameworks www.siroll.de Windows NT/2000 Real-time CORBA 6
Applica=on Example: Image Processing www.krones.com Goals: Examine glass bottles for defects in real-time System Characteristics Process 20 bottles/sec ~50 ms per bottle Networked configuration ~10 cameras Key Software Solution Characteristics Affordable, flexible, & COTS Embedded Linux Compact PCI bus + Celeron processors Remote booted by DHCP/TFTP Real-time CORBA 7
RPC in CORBA Ø CORBA: Common Object Request Broker Architecture Ø Remote Procedure Call (RPC): Client invokes operations on objects. Ø An Object = q An interface specified by an Interface Definition Language (IDL) q Servant(s) that implements the IDL interface 8
Limita=ons of CORBA Ø Lacks QoS specification interfaces to applications q Applications cannot specify rate, deadline or importance Ø Lacks QoS enforcement q Does not map task QoS specification to priorities of threads q Contains significant priority inversion Ø Lacks performance optimization q Poor worst-case and average latency 9
Latencies and Priority Inversions 10
The ACE ORB (TAO) Open-source Real-Time CORBA >> 1M SLOC 100+ person years of effort Pioneered R&D on DRE middleware design & optimization Source: D.C. Schmidt, http://www.cs.wustl.edu/~schmidt/tutorials-corba.html 11
TAO Overview DII Client IDL STUBS OBJ REF in args operation() out args + return ORB INTERFACE Component (Servant) IDL SKEL Container Object Adapter Services Based on ACE wrapper facades & frameworks Available on Unix, Win32, MVS, QNX, VxWorks, LynxOS, VMS... Thousands of users around the world ORB CORE GIOP/IIOP/ESIOPS Objective: Simplify the development of distributed real-time & embedded (DRE) systems Approach: Use standard techology, patterns, & frameworks Commercially supported OCI (www.theaceorb.com) PrismTech (www.prismtechnologies.com) www.cs.wustl.edu/~schmidt/commercialsupport.html 12
I/O Subsystem: Priority Inversions Ø Messages are processed in FIFO order regardless of priorities Ø Kernel has lower priority than real-time priorities q Processing of a high priority message in the kernel can be blocked by a lower priority task at the application level 13
I/O Subsystem: Solu=ons Ø Early demultiplexing Ø Prioritized kernel processing Ø Map task priority to kernel thread Ø Note: This needs kernel support 14
ORB Core: Priority Inversions Ø Communication of different tasks shares a same socket connection. Ø Incoming requests are demultiplexed to threads in FIFO order. 15
ORB Core Priority-based Concurrency Architecture Ø Server sets model: Each priority is processed by a separate thread. Ø A separate connection is maintained for each priority in the server ORB. q Use buffered connections to reduce run-time overhead. Ø Suitable for fixed priority scheduling. 16
Object Adapter: Problems Ø Layered demultiplexing is inefficient in term of q average latency q worst-case latency 17
Object Adapter: Solu=ons Ø Perfect hashing q Generate a hash function offline q Computational complexity O(1) Ø De-layered active demultiplexing q Clients obtain index to (servant, operation) ahead of time 18
Reduce Priority Inversion Conventional ORB TAO 19
Real-Time Event Service 20
Limitations of RPC Ø Tight coupling between clients and server Ø Lacks asynchronous message delivery Ø Lacks support for group communication 21
Motivating Applications Boeing Bold Stroke Middleware Infrastructure Platform Operations well defined Event-mediated middleware solution Domain Avionics mission compu=ng Mass storage devices Medical Informa=on Systems Satellite Control Telecommunica=ons Missile & Radar Systems Steel Manufacturing Beverage BoUling Automa=on Company Boeing, Raytheon SUTMYN, StorTek Siemens, GE LMCO COMSAT Motorola, Lucent, Nortel, Cisco, Siemens LMCO Sanders, Raytheon Siemens ATD Krones AG
CORBA Event Service Ø Asynchronous event delivery Ø Decouples suppliers and consumers Ø Support group communication one to one many to one many to many one to many 23
Event Delivery Models Suppliers push to Event Channel, Event Channel pushes to Consumers Event Channel pulls from Suppliers, Consumers pull from Event Channel Suppliers push to Event Channel, Consumers pull from Event Channel Event Channel pulls from Suppliers, Event Channel pushes to Consumers 24
CORBA Event Service Limitations Ø Broadcasts any supplied event to all consumers Ø No filtering or correlation Ø No real-time event dispatching/scheduling Ø No periodic event X X X 25
TAO Real-Time Event Service Ø Suppliers specify types of events generated. Ø Consumers subscribe to interested event types, to events from specific suppliers, or both. event B:S2 event C:S3 26
Event Channel Architecture Ø Push-push model for real-time delivery Ø Modularity: features are implemented in pluggable modules 27
Suspend and Resume Ø Light-weight operations to suspend/resume event delivery Ø Useful for frequent changes in consumer sets q Mode change 28
Periodic Events Ø Consumers can register for timeout events provided by Event Service Ø Timeout events dispatched according to priority of consumer 29
Event Correlation Ø Provides event correlation q Conjunctive ( AND ) q Disjunctive ( OR ) Conjunctive correlation 30
Scheduling Service Ø Separates dispatching mechanism from scheduling policy Ø Dispatcher consults run-time scheduler for priorities Ø Flexibility for different scheduling policies (e.g., RMS, EDF, MUF) 31
Real-Time Event Dispatching High Priority Kokyu Dispatching Queue Dispatching Thread Kokyu Dispatching Queue Dispatching Thread Dispatching Thread Low Priority Kokyu Dispatching Queue 32
Critiques Ø Full compatibility with CORBA q Too complex and heavy-weight for embedded systems? Ø Centralized event channel q Scalability for distributed systems à federated event channel q Single point of failure à fault tolerant event channel Ø Overhead of redirection Ø Support for multicore and multiprocessor platforms. 33
Federated Event Channel Ø Gateway forwards events to remote processors. EC EC EC Gateway Gateway T 11 T 12 T 13 Application Processor 1 Application Processor 2 Application Processor 3
Source Ø Slides partially based on Douglas Schmidt s TAO tutorial and Joe Hoffert s class presentation. 35