Real-Time CORBAlu/cse520s/slides/event.pdfCORBA Common Object Request Broker Architecture ØCORBA...

Post on 10-Jul-2020

5 views 0 download

Transcript of Real-Time CORBAlu/cse520s/slides/event.pdfCORBA Common Object Request Broker Architecture ØCORBA...

Real-Time CORBA

Chenyang LuCSE 520S

CORBACommon Object Request Broker Architecture

Ø CORBA specificationsq OMG is the standards body

q Over 800 companiesq CORBA defines interfaces, not implementations

Ø Object Request Brokers (ORB) allow clients to invoke operations on distributed objects transparently ofq object location

q programming language

q operating system

q communication protocols and interconnectq 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)

4

Source: D.C. Schmidt, http://www.dre.vanderbilt.edu/~schmidt/TAO.html

• Open-source Real-Time CORBA

• >> 1M SLOC

• 100+ person years of effort

• Pioneered R&D on DRE middleware design & optimization

Application Example: Avionics

5

• 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

• Apply COTS & open systems to mission-critical real-time avionics

Application Example: Hot Rolling Mills

6

• 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

• Windows NT/2000• Real-time CORBA

•www.siroll.de

Application Example: Image Processing

7

• 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

•www.krones.com

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

Limitations of CORBA

Ø Lacks QoS specification interfaces to applicationsq Applications cannot specify rate, deadline or importance

Ø Lacks QoS enforcementq Does not map task QoS specification to priorities of threadsq Contains significant priority inversion

Ø Lacks performance optimizationq Poor worst-case and average latency

9

Latencies and Priority Inversions

10

The ACE ORB (TAO)

11

• Open-source Real-Time CORBA

• >> 1M SLOC

• 100+ person years of effort

• Pioneered R&D on DRE middleware design & optimization

TAO Overview

12

• Based on ACE wrapper facades & frameworks

• Available on Unix, Win32, MVS, QNX, VxWorks, LynxOS, VMS...

• Thousands of users around the world

Commercially supportedhttp://www.dre.vanderbilt.edu/~schmidt/commercial-support.html

Container

ClientOBJREF

in argsoperation()out args +

return

DII IDLSTUBS

ORBINTERFACE

IDLSKEL

Object Adapter

ORB CORE GIOP/IIOP/ESIOPS

Component(Servant)

Services

Objective: Simplify the development of distributed real-time & embedded (DRE) systems

Approach: Use standard techology, patterns, & frameworks

I/O Subsystem: Priority Inversions

Ø Messages are processed in FIFO order regardless of priorities

Ø Kernel has lower priority than real-time prioritiesq 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: SolutionsØ 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 CorePriority-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: SolutionsØ Perfect hashing

q Generate a hash function offlineq Computational complexity O(1)

Ø De-layered active demultiplexingq 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 ApplicationsBoeing Bold Stroke Middleware Infrastructure Platform•Operations well defined

•Event-mediated middleware solution

Domain CompanyAvionics mission computing Boeing, RaytheonMass storage devices SUTMYN, StorTekMedical Information Systems Siemens, GESatellite Control LMCO COMSATTelecommunications Motorola, Lucent, Nortel,

Cisco, SiemensMissile & Radar Systems LMCO Sanders, RaytheonSteel Manufacturing Siemens ATDBeverage Bottling Automation Krones AG

CORBA Event Service

Ø Asynchronous event delivery

Ø Decouples suppliers and consumersØ Support group communication

23

one to many

many to one

one to one

many to many

Event Delivery Models

24

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

CORBA Event Service Limitations

Ø Broadcasts any supplied event to all consumers

Ø No filtering or correlation

Ø No real-time event dispatching/scheduling

Ø No periodic event

25

X

X X

TAO Real-Time Event Service

Ø Suppliers specify types of events generated.

Ø Consumers subscribe to interested event types, to events from specific suppliers, or both.

26

event A:S1event B:S2

event C:S3

event B:S4

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 setsq 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 correlationq Conjunctive (“AND”)

q Disjunctive (“OR”)

30

Conjunctive correlation

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

32

Kokyu Dispatching Queue

DispatchingThread

Kokyu Dispatching Queue

Kokyu Dispatching Queue

DispatchingThread

DispatchingThread

High Priority

Low Priority

CritiquesØ Full compatibility with CORBA

q Too complex and heavy-weight for embedded systems?

Ø Centralized event channelq 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.

Application Processor 1

Application Processor 2

Application Processor 3

T12 T13T11

ECEC EC

GatewayGateway

SourceØ Slides partially based on Douglas Schmidt’s TAO tutorial and Joe Hoffert’s

class presentation.

35