mico architecture & applications
DESCRIPTION
MICO Architecture & Applications. 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. Overview. MICO Overview. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/1.jpg)
CORBA Controls Workshop
Kay RömerETH ZürichSwitzerland
MICOArchitecture & Applications
![Page 2: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/2.jpg)
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
![Page 3: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/3.jpg)
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
![Page 4: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/4.jpg)
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
![Page 5: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/5.jpg)
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
![Page 6: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/6.jpg)
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
![Page 7: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/7.jpg)
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
![Page 8: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/8.jpg)
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
![Page 9: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/9.jpg)
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
![Page 10: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/10.jpg)
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
![Page 11: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/11.jpg)
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
![Page 12: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/12.jpg)
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
![Page 13: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/13.jpg)
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
![Page 14: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/14.jpg)
14
ORB Request Processing
1. Invocation adapter interface2. Active invocation table3. Object adapter registry4. Object adapter interface
Req
uest
Pro
cessin
g
![Page 15: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/15.jpg)
15
Colocated Client & Server
DII: initiates method invocation POA: executes method on object
implementation
Req
uest
Pro
cessin
g
![Page 16: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/16.jpg)
16
Separated Client & Server
IIOP Client: transforms method invocation into network message
IIOP Server: transforms message into method invocation
Req
uest
Pro
cessin
g
![Page 17: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/17.jpg)
17
Server Activation
Mediator: looks up or runs appropriate server and forwards method invocation
Req
uest
Pro
cessin
g
![Page 18: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/18.jpg)
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
![Page 19: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/19.jpg)
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
![Page 20: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/20.jpg)
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
![Page 21: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/21.jpg)
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
![Page 22: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/22.jpg)
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
![Page 23: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/23.jpg)
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
![Page 24: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/24.jpg)
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
![Page 25: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/25.jpg)
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
![Page 26: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/26.jpg)
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
![Page 27: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/27.jpg)
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
![Page 28: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/28.jpg)
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
![Page 29: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/29.jpg)
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
![Page 30: MICO Architecture & Applications](https://reader035.vdocument.in/reader035/viewer/2022062321/5681358d550346895d9cf700/html5/thumbnails/30.jpg)
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