Download - CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications
CORBA Controls Workshop
Kay RömerETH ZürichSwitzerland
MICOArchitecture & Applications
2
Talk Overview Past, present, and future
– Development and use– Book projects, Workshops– CORBA Branding
Architecture– Micro-kernel based approach
Application– Zero-Copy CORBA for high bandwidth
applications in clusters of PCs
Overv
iew
3
MICO Overview MICO = Mini CORBA (inspired by Minix) MICO = MICO Is CORBA (inspired by GNU) Open Source CORBA implementation
– 1996: kick off as research/teaching project– 1997: first public version– 1998: binary distribution– 1999: branded by OpenGroup– 2000: text book– 2001: 2nd MICO Workshop
Currently working towards CORBA 3 (e.g., component model), security (MICOSec)
MIC
O P
ast,
Pre
sen
t, F
utu
re
4
MICO Devel & Use Distributed development
– CVS repository, write access by 5 maintainers– Mailing lists with ~1500 subscribers– Major code contributions from 20
programmers world wide Industrial applications
– E.g., The Weather Channel, Lufthansa Systems Teaching
– E.g., Lectures and Courses at ETH Zurich, U Frankfurt, TU Darmstadt, U Stuttgart, San Francisco State University
Research– E.g., Zero-Copy CORBA, QoS support for
CORBAMIC
O P
ast,
Pre
sen
t, F
utu
re
5
MICO Books Foundation for lectures and CORBA
courses 1998: binary distribution @ MKP
– Binaries for Windows and several Unix platforms, tutorial, documentation
2000: text book in German @ dpunkt– Dual (user and system) view on CORBA
middleware 2003: merger of text book and
distribution @ MKP (planned)
MIC
O P
ast,
Pre
sen
t, F
utu
re
6
MICO Workshops Forum for MICO users and developers
– 1 day, invited talks– 50-100 participants
1998: 1st Intl. Workshop @ Darmstadt
2001: 2nd Intl. Workshop @ Stanford 2003: 3rd Intl. Workshop @ San
Francisco (planned)
MIC
O P
ast,
Pre
sen
t, F
utu
re
7
CORBA Branding 1999: MICO branded as CORBA 2.1
compliant by OpenGroup– Test suite developed by ApTest
(Ireland)– Rather buggy, MICO as a test case
MIC
O P
ast,
Pre
sen
t, F
utu
re
Appl Appl
ORB ORB
portability
inte
ropera
bili
ty
8
CORBA Branding cont. Tests
– Local function syntax (interface)– Local function semantics (implementations)– IDL Compiler (c++ language mapping)– Interface Repository– IIOP
Open issues– Test services?– Coverage?– Any better than simple empirical test?
Ongoing (?) work at OMG and GMD Fokus to improve branding and develop Open Source test suite
9
Talk Overview Past, present, and future
– Development and use– Book projects, Workshops– CORBA Branding
Architecture– Micro-kernel based approach
Application– Zero-Copy CORBA for high bandwidth
applications in clusters of PCs
Overv
iew
10
Architecture Initial goal: provide middleware platform
for middleware research and teaching– Similar to Minix (Mini Unix) in the operating
system domain Requirement: easy to understand,
modify, and extend– Clear, modular structure– Simple, well understood interfaces– Keep it simple– Do not rely on complex tools
MIC
O A
rch
itectu
re
11
Architecture cont. Turns out that requirements help
keep up with evolution of CORBA New CORBA application domains
– Embedded systems– Nomadic systems– ...
Evolving CORBA standard– New object adapters (e.g., POA)– New interoperability protocols (e.g.,
SOAP)
MIC
O A
rch
itectu
re
12
Micro Kernel Approach Minimize ORB
functionality Move functionality to
– Servers (separateprocess)
– Runtime libraries(same process)
Extensibility: adding, removing, exchanging servers and libraries without touching ORB
Mic
ro K
ern
el A
pp
roach
13
ORB Functionality Local request processing
– Select appropriate object adapter– Keep track of pending invocations
Task scheduling– Coordinate concurrent ORB tasks
OR
B F
un
cti
on
ality
14
ORB Request Processing
1. Invocation adapter interface2. Active invocation table3. Object adapter registry4. Object adapter interface
Req
uest
Pro
cessin
g
15
Colocated Client & Server
DII: initiates method invocation POA: executes method on object
implementation
Req
uest
Pro
cessin
g
16
Separated Client & Server
IIOP Client: transforms method invocation into network message
IIOP Server: transforms message into method invocation
Req
uest
Pro
cessin
g
17
Server Activation
Mediator: looks up or runs appropriate server and forwards method invocation
Req
uest
Pro
cessin
g
18
ORB Task Scheduling Tasks:
– Application can be caller and callee at the same time (distributed callbacks, nested method invocations)
– Process incoming and outgoing messages on multiple communication channels
Requirements:– Multithreading optional (e.g., Palm OS)
Task S
ch
ed
ulin
g
19
Event Based Scheduler Split task into nonblocking segments
– Blocking operation at start of each segment
– E.g., wait for data from network, timeout, or condition („events“)
Register segmentswith scheduler– Executes segment
when blockingoperation completes
Non-preemptive
Task S
ch
ed
ulin
g
20
Evaluation CORBA suggests a modular design:
– Invocation interfaces– Skeleton interfaces– ORB core– Object adapters
Most implementations melt this modular design into a monolithic implementation– Changes in CORBA spec often require
major ORB changes
Evalu
ati
on
21
Evaluation cont. Often easy to adopt MICO to
changes in the CORBA specification– Due to micro-kernel approach
Advent of the POA– BOA untouched– BOA and POA coexist, even in one
application New interoperability protocols
(SOAP)– Easy to introduce new interop
protocols, even non-GIOP-based onesEvalu
ati
on
22
Talk Overview Past, present, and future
– Development and use– Book projects, Workshops– CORBA Branding
Architecture– Micro-kernel based approach
Application– Zero-Copy CORBA for high bandwidth
applications in clusters of PCs
Overv
iew
23
Zero-Copy CORBA Clusters of Personal Computers (CoPs)
equipped with Gigabit Ethernet– Best performance, lowest price
Many multimedia apps require fast bulk data transfer
Poor memory subsystem limits overall communication bandwidth– Data copies slow things down
Aim: improve end-to-end performance of bulk data transfers
Christian Kurmann´s PhD project at ETH ZurichZ
ero
-Cop
y C
OR
BA
24
Performance Limits Pentium II 400MHz, Intel 440BX
chipset, Gigabit Ethernet Network: 125 Mbyte/s 33 MHz PCI: 126 Mbyte/s Memory copy: 92 Mbyte/s
– Memory bandwidth < network bandwidth
Linux-2.2 measurement: 42 Mbyte/s Therefore: eliminate data copies at
all layersZero
-Cop
y C
OR
BA
25
Data Copies
foo(arg1, arg2)
GIOP
GIOPH
H
H GIOP
foo(arg1, arg2)
Zero
-Cop
y C
OR
BA
NIC
TC
P/I
PO
RB
DMA
GIOPH
H
H
DMA
26
NIC Driver / Network Problem: limited Ethernet packet size
(MTU) of 1500 bytes– Sender fragments data stream into sequence
of small packets– Receiver has to reassemble stream– Requires data copies since MTU
< memory page size (4k) Solution
– Driver pretends MTU of 4k– (De)fragments page (3 packets)
using fast DMA to/from NIC– Uses speculative techniques to defragment
without copies; makes the common case fast
4k (page)
1460 1480 1156
Zero
-Cop
y C
OR
BA
27
TCP/IP NIC driver handles whole memory
pages– Page remapping instead of copying
TCP/IP headers are kept separate from payload– Scatter/gather lists (DMA descriptors)
Header
H
H
Frag 1 Frag 2 Frag 3
4k
Zero
-Cop
y C
OR
BA
28
CORBA ORB In heterogeneous CoPs no need to
marshal data structures– Transmit memory image of large data
structures with zero copies Separate control from data transfer
– References instead of embedded data in GIOP messages
GIOP Data 1 Data 2
Zero
-Cop
y C
OR
BA
29
MPEG Transcoder Maximum bulk transfer rate: 75
Mbyte/s (instead of 42 Mbyte/s) Example app: parallel transcoding
of MPEG streams
Datasource
Distributor ParallelEncoder
Integrator
Zero
-Cop
y C
OR
BA
30
Summary Started off as research/teaching project
– Book projects, Workshops Developed into full-fledged CORBA
implementation– With help from the Open Source
community– Goal: keep pace with CORBA standard
Micro-kernel based architecture Application: high bandwidth
applications in clusters of PCs www.mico.org
Su
mm
ary