1 Louis St. , y Universit ashington W
patterns and onents, comp
E E R R O O T T S S
E E G G A A M M I I ) ) , , , , ( ( R R C C R R M M T T C
rks, o framew re, a Middlew { C
L L A A R R T T N N E E C C
S S E E I I T T I I L L A A D D O O M M
Solutions
E E R R O O T T S S
N N A A L
y complexit L
E E G G A A M M I I M M T T A A
R R E E T T S S U U L L C C
inherent and Accidental {
N N A A M M
M M T T A A
rits Culp
S S N N O O I I T T A A T T S
x ensive exp re mo S
C C I I T T S S O O N N G G A A I I D D
er, w slo rger, la gets re a w Soft { N N A A L L
M M T T A A
ha er cheap faster,
smaller, gets re a rdw Ha {
E E R R O O T T S S
E E G G A A M M I I
X X D D
Symptoms
Crisis re a w Soft Distributed the Motivation:
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas
rint Sp and ZT, Siemens MED, Siemens SCR, Siemens
SAIC, OTI, NSF, rola, Moto Lucent,
odak, Ko A, ARP D CDI, eing, Bo re, Bellco
rs onso Sp
O4.ps.gz A schmidt/T www.cs.wustl.edu/
Louis St. , y Universit ashington W
Schmidt C. Douglas
ers Brok Request Object CORBA Real-time
Using and Developing r fo atterns P Design 3 Louis St. , y Universit ashington W
oponents comp and ARCHITECTURE ARCHITECTURE
) ) ( ( APPLICATION FRAMEWORK FRAMEWORK APPLICATION APPLICATION B B
patterns related of amilies F
DATABASE DATABASE
ADT ADT S Architecture { S
LOOP LOOP
context
LOGIC LOGIC EVENT EVENT
BACKS BACKS
SPECIFIC SPECIFIC
INVOKES INVOKES CALL CALL
APPLICATION a in pairs Problem/solution APPLICATION
INTERFACE INTERFACE
MATH
atterns P { MATH
USER USER NETWORKING NETWORKING
applications
ARCHITECTURE ARCHITECTURE
\semi-complete" Reusable, ) ) ( ( CLASS LIBRARY LIBRARY CLASS CLASS A A
rks o ramew F {
BASE BASE
LOOP LOOP
INTERFACE INTERFACE
DATA ADTs DATA
EVENT EVENT USER USER
\pluggable" Self-contained,
ADT ADT S S
INVOKES INVOKES
MATH MATH LOGIC LOGIC
SPECIFIC oponents Comp { SPECIFIC
APPLICATION APPLICATION
NETWORKING NETWORKING
solutions Proven
y ductivit Pro and y Qualit
re a w Soft roving Imp r fo echniques T
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas
2 Louis St. , y Universit ashington W
ARCHITECTURE ARCHITECTURE APPLICATION APPLICATION DISTRIBUTED DISTRIBUTED (2) (2)
YSTEM S FILE PRINTER
re-invention Continuous { CD ROM CD
eoposition decomp
SERVICE
rithmic Algo {
SERVICE ools to debugging r oo P { NETWORK FI LE FI
APIs w-level Lo {
SERVICE
DISPLAY
SERVICE
y Complexit Accidental SERVICE
SERVICE
CYCLE NAME TIME
Ordering {
ARCHITECTURE ARCHITECTURE APPLICATION APPLICATION STAND-ALONE STAND-ALONE (1) (1)
rtitioning a P {
CD ROM CD
y Reliabilit { SYSTEM FILE
Latency {
COMPUTER COMPUTER
y complexit Inherent PRINTER
Applications Distributed r fo y Complexit of Sources
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas 5 Louis St. , y Universit ashington W
services
rba.html schmidt/co www.cs.wustl.edu/
higher-level r fo
ORB- STANDARD PROTOCOL STANDARD INTERFACE SPECIFIC
foundation Provide {
MAPPING
STANDARD INTERFACE STANDARD LANGUAGE STANDARD INTERFACE STANDARD
handling r Erro
Demultiplexing CORE / IIOP GIOP ORB
rshaling ma
rameter a P
ADAPTER INTERFACE
STUBS
DII ORB OBJECT
activation and IDL
SKELETON
DSI ocation lo Object IDL
automating y b
distribution Simplify { value return + args out
SERVANT CLIENT operation()
CORBA of Goals in args in
CORBA Solution: Candidate
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas
4 Louis St. , y Universit ashington W
PEERS
STATION
GROUND LOCAL AREA NETWORK AREA LOCAL
rizontally ho and ertically V {
integrated be must Solutions GATEWAY
DCE DCOM, CORBA, , e.g. { TRANSFER
COMMANDS
BULK DATA BULK
e ectively QoS rt o supp NETWORK WIDE AREA WIDE
oesn't do re a middlew Existing STATUS INFO STATUS
WWW
avionics, telecom, , e.g. {
PEERS PEERS
rantees gua QoS
STATION STATION SATELLITES SATELLITES
TRACKING TRACKING
require applications Many
re a Middlew Real-time r fo Motivation
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas 7 Louis St. , y Universit ashington W
Mich.
O.html A schmidt/T www.cs.wustl.edu/
U. at A ARMAD {
NETWORK NETWORK
NETWORK ADAPTERS NETWORK ADAPTERS ADAPTERS NETWORK NETWORK BBN at QuO { ADAPTERS NETWORK
- - - - SPEED SPEED HIGH HIGH SPEED SPEED HIGH HIGH
SUBSYSTEM SUBSYSTEM SUBSYSTEM SUBSYSTEM
rk o w Related / / - - / / - - O O I I TIME TIME REAL REAL O O I I TIME TIME REAL REAL
OS KERNEL KERNEL OS OS OS KERNEL KERNEL OS OS
Win32 and POSIX,
CORE CORE ORB ORB
RIOP RTOSs, on Runs RIOP
TIME -TIME REAL REAL-
rk o framew
ADAPTER ADAPTER
CE A the Leverages {
INTERFACE INTERFACE
STUBS STUBS
OBJECT OBJECT
S S Q Q ORB ORB
O O
RIDL RIDL
- - TIME TIME REAL
ocus fo avionics REAL
SKELETON SKELETON
RIDL RIDL
and elecom T
ORB real-time
out args + return value return + args out
rmance, erfo high-p A { value return + args out
SERVANT SERVANT
CLIENT CLIENT
operation() operation()
in args in Overview O A T args in
O A T ORB CE A The
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas
6 Louis St. , y Universit ashington W
endsystem.ps.gz
schmidt/ORB- www.cs.wustl.edu/
ORB- STANDARD PROTOCOL STANDARD INTERFACE SPECIFIC
optimizations
MAPPING
STANDARD INTERFACE STANDARD LANGUAGE STANDARD INTERFACE STANDARD
rmance erfo p of Lack {
features CORE / IIOP GIOP ORB
rogramming p
real-time of Lack {
ADAPTER INTERFACE
STUBS
DII ORB OBJECT
rcement enfo IDL
SKELETON
DSI QoS of Lack { IDL
peci cations sp
QoS of Lack { value return + args out
SERVANT CLIENT operation()
Limitations in args in
Systems Real-time r fo CORBA of Limitations
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas 9 Louis St. , y Universit ashington W
users.html
CE- schmidt/A www.cs.wustl.edu/ {
www.riverace.com {
y communit user rge La
commercially rted o Supp
pSoS
etc. ek, rT Sto
LynxOS, rus, Cho rks, o VxW , e.g. {
Siemens, SAIC,
rola, Moto Lucent,
rms platfo edded emb
odak, Ko Ericsson,
and MVS, Win32, UNIX, to rted o P
oeing, Bo re, Bellco {
rt e o of rs ea erson-y p 10 Over {
companies of
dozens y b used Currently C++ of lines 125,000 > contain CE A
Statistics CE A
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas
8 Louis St. , y Universit ashington W
CE.html schmidt/A www.cs.wustl.edu/
STREAMS SysV {
32 W POSIX SERVICES IN AND GENERAL
x-Kernel {
SUBSYSTEM SUBSYSTEM SUBSYSTEM SUBSYSTEM SUBSYSTEM SUBSYSTEM
/ / VIRTUAL MEMORY MEMORY VIRTUAL VIRTUAL COMMUNICATION COMMUNICATION THREAD THREAD PROCESS PROCESS
rk o w Related
TLI TLI IPC IPC V V
THREADS THREADS PIPES PIPES
IO COMP COMP IO IO PIPES PIPES MAPPING MAPPING LINKING LINKING API S
/ / / / / / SYSTEM SYSTEM SOCKETS SOCKETS STREAM STREAM PROCESSES PROCESSES SELECT SELECT NAMED NAMED MEMORY MEMORY DYNAMIC DYNAMIC C
OS ADAPTATION LAYER ADAPTATION
Win32
_ _ SAP SAP TLI TLI SAP SAP WRAPPERS WRAPPERS MAP MAP SAP SAP WRAPPERS WRAPPERS
/ / _ _ SYSV SYSV SAP SAP SOCK SOCK SPIPE SPIPE
MEM MEM FIFO FIFO SYNCH SYNCH
PROACTOR
and POSIX, PROACTOR
URATOR URATOR
/ /
REACTOR REACTOR
WRAPPERS
- - MSG MSG MALLOC MALLOC CONFIG CONFIG MANAGERS MANAGERS
C++
LOG LOG SHARED SHARED SERVICE SERVICE THREAD RTOSs, on Runs { THREAD
/ / PROCESS PROCESS
(ASX) (ASX)
ADAPTIVE SERVICE EXECUTIVE EXECUTIVE SERVICE ADAPTIVE Java and EXECUTIVE SERVICE ADAPTIVE
HANDLER HANDLER HANDLER HANDLER
FRAMEWORKS
CONNECTOR CONNECTOR ACCEPTOR ACCEPTOR
C++ to rted o P { CORBA CORBA SERVICE SERVICE
rk o framew
SERVER SERVER SERVER SERVER SERVER SERVER
TIME TIME NAME NAME LOGGING LOGGING
rking o w net
SERVER SERVER SERVER SERVER
) ) ( ( TAO TAO
COMPONENTS
GATEWAY GATEWAY TOKEN
OO Concurrent { TOKEN THE ACE ORB ORB ACE ACE THE THE
WEB SERVER SERVER WEB WEB SERVICE
JAWS ADAPTIVE ADAPTIVE JAWS JAWS APPLICATIONS DISTRIBUTED
Overview CE A - MIDDLEWARE CONTAINED SELF
CE A Environment Communication APTIVE AD The
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas 11 Louis St. , y Universit ashington W
perations Op Avionics r fo ds erio P Visualizing
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas
10 Louis St. , y Universit ashington W
DATA
GENERATE
1: SENSORS
BROKER BROKER REQUEST REQUEST OBJECT OBJECT
proxy proxy proxy
Sensor Sensor Sensor
) ( 2: EVENTS PUSH
systems en Op {
infrastructure COTS {
CHANNEL
deadlines real-time EVENT
) ( 3: DEMARSHALED DATA DEMARSHALED deterministic PUSH
rodic erio P {
Frame
Nav
Air HUD
Challenges Domain
Avionics Real-time to ORBs Applying
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas 13 Louis St. , y Universit ashington W
servants also re a clients Most {
deadlines dic erio p and requirements
}; };
CPU , e.g. resource publish Servants { sequence
Importance importance_; importance_; Importance Importance
Period_t period_; period_; Period_t Period_t
roach app Solution Time_t cached_exec_time_; cached_exec_time_; Time_t Time_t
Time_t worstcase_exec_time_; worstcase_exec_time_; Time_t Time_t
{ {
scheduling Static {
struct RT_Info RT_Info struct struct
deadlines Determinisitic {
Operation Operation
RT ocus fo Initial RT
threads/synchronization r o channels
C: C: REQUEST COMPUTATION TIME TIME COMPUTATION COMPUTATION REQUEST REQUEST
P: P: PERIOD PERIOD
communication on than Rather
+ + + + 2 2 P P T P PT T T TT
Objects on up erations Op on cus o F { C C C C
requirements QoS rcing ecifying/enfo Sp {
TIME TIME
P P
PERIODIC SCHEDULING AND DISPATCHING DISPATCHING AND AND SCHEDULING SCHEDULING PERIODIC PERIODIC
Challenges Design
perations Op CORBA to QoS Providing
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas
12 Louis St. , y Universit ashington W
OPTIMIZATIONS
NETWORK NETWORK
ADAPTER
NETWORK NETWORK ADAPTERS ADAPTERS NETWORK NETWORK ADAPTERS ADAPTERS NETWORK NETWORK
OPTIMIZATIONS
OPTIMIZATIONS
/ / / / O SUBSYSTEM SUBSYSTEM O O I I OS OS SUBSYSTEM SUBSYSTEM O O I I OS OS
MANAGEMENT
I/O SUBSYSTEM
CONNECTION
OS KERNEL KERNEL OS OS KERNEL KERNEL OS OS
OPTIMIZATIONS
PROTOCOL
CORE CORE
GIOP GIOP
ORB ORB OPTIMIZATIONS
THREADING
OPTIMIZATIONS
INTERFACE INTERFACE ADAPTER ADAPTER STUBS STUBS
DISPATCHING ORB ORB OBJECT OBJECT IDL IDL
DEMUXING AND DEMUXING
SKELETON SKELETON
REQUEST
IDL IDL
OPTIMIZATIONS
DATA COPYING DATA
OPTIMIZATIONS out args + return value value return return + + args args out out
SERVANT SERVANT CLIENT CLIENT
LAYER
operation() operation()
PRESENTATION
in args args in in
O A T in Optimizations and eatures F Real-time
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas 15 Louis St. , y Universit ashington W
rtance o imp and endencies dep
data on based rities rio p (APIC) CONTROLLER ATM PORT INTERFACE PORT ATM
within rdered o Requests {
R R
S S
SUBSYSTEM
dispatcher SUBSYSTEM
E E
R R
O /O I I/
L L
DEMUXER DEMUXER QUEUE QUEUE SOCKET
OS y b rities rio p thread SOCKET E E
U U
F F
across rdered o Requests {
D D
F F
E E
EDF U U
H H
) HZ HZ) (1 (1 ) HZ HZ) (5 (5 ) HZ HZ) (10 (10 ) HZ HZ) (20 (20
B B
REACTOR REACTOR REACTOR REACTOR REACTOR REACTOR REACTOR and Preemption, Deferred REACTOR C C
S S
Y with RMS RMS, , e.g. Y
CORE CORE ORB ORB P P
E strategies scheduling E
O O
ADAPTER ADAPTER
M M
C
request multiple rt o Supp { C
API API
OBJECT OBJECT
I I
O O
S oS Q Qo
T
endsystem ORB T
R R
DEMUXER DEMUXER SERVANT SERVANT
N N
E
into dispatcher RT Integrate { E
U U
SKELETONS SKELETONS STUBS STUBS Z Z
SERVANTS SERVANTS CLIENTS CLIENTS R R
roach App Solution U
Architecture Endsystem ORB Real-time O's A T
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas
14 Louis St. , y Universit ashington W
ch d TA.p .gz ps AO. /T idt hm sc / www.cs.wustl.edu
ookup lo table I/O SUBSYSTEM I/O
SELECTOR SELECTOR
3 3 MODE MODE MODE
MODE
1 O via dispatcher MODE
Mode Mode
2 2 MODE MODE MODE CURRENT CURRENT
Table Per Per Table Table
1 1 MODE MODE MODE
Subpriority endsystem ORB Subpriority
ORB CORE ORB
0 0
MODE MODE MODE Priority/ Priority/
TO ORB TO to rities rio p Supply ADAPTER OBJECT SCHEDULER SCHEDULER
PRIORITIES
SUBPRIORITIES
- -
TIME TIME RUN RUN
Operation Operation Operation Operation Operation
6:
Online { SUPPLY
ORDERING RT RT RT RT RT DISPATCH QUEUE DISPATCH
rities rio p queue AND PRIORITIES
2: 2: IDENTIFY THREADS THREADS IDENTIFY IDENTIFY
EXECUTES AFTER AFTER EXECUTES EXECUTES
5:
ASSIGN OS THREAD OS ASSIGN
_ _ = = OPERATIONS OPERATIONS CHAINS OF RT RT OF OF CHAINS CHAINS DEPENDS UPON UPON UPON DEPENDS DEPENDS
and thread Assign SCHEDULABILITY
1: 1: CONSTRUCT CALL CALL CONSTRUCT CONSTRUCT
4: ASSESS
y feasibilit
}; };
REPOSITORY REPOSITORY dependencies_; dependencies_;
_ _ INFO INFO RT schedule Assess RT
importance_; importance_;
period_; period_;
Oine { REPOSITORY cached_exec_time_; cached_exec_time_;
_ INFO RT
wc_exec_time_; wc_exec_time_;
SCHEDULER SCHEDULER
3:
POPULATE
{ {
- - LINE LINE OFF OFF
struct RT_Info struct oponents Comp RT_Info struct
Service Scheduling Real-time O's A T
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas 17 Louis St. , y Universit ashington W
Inversion y rit Prio O A T and rus, Cho MT-Orbix, Number of Low Priority Clients Priority Low of Number
latency est w lo has ys a alw
01 02 03 04 50 45 40 35 30 25 20 15 10 5 1 0
client y rit rio p high , i.e.
inversion 2
y rit rio p avoids O A T {
Latency per Twoway Request in Milliseconds 4
14.1msec vs.
7.6msec vs. 2.3msec 6
clients of rge la r fo er w lo 8
much is latency O's A T { 2.0sec 10
vs. 1.4sec vs. 1.2msec
12
TAO Low-Priority TAO
clients of small High-Priority TAO
Sun COOL Low-Priority COOL Sun
Sun COOL High-Priority COOL Sun
14
r fo er w lo is latency rus' Cho {
MT-Orbix Low-Priority MT-Orbix
MT-Orbix High-Priority MT-Orbix 16
results of Synopsis
Results eriment Exp Inversion y rit Prio
ORBs Real-time rmance, erfo High-p Schmidt C. Douglas
16 Louis St. , y Universit ashington W
cmd/Tperf.ps.gz schmidt/RT-p www.cs.wustl.edu/
clients
Ultra 2 Ultra 2 Ultra 2 Ultra
y rit rio p w lo r fo y rit rio p 2