mico architecture & applications
Post on 21-Mar-2016
48 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
Ove
rvie
w
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
sent
, Fut
ure
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 CORBA
MIC
O P
ast,
Pre
sent
, Fut
ure
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
sent
, Fut
ure
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
sent
, Fut
ure
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
sent
, Fut
ure
Appl Appl
ORB ORB
portability
inte
rope
rabi
lity
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
Ove
rvie
w
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
rchi
tect
ure
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
rchi
tect
ure
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
erne
l App
roac
h
13
ORB Functionality Local request processing
– Select appropriate object adapter– Keep track of pending invocations
Task scheduling– Coordinate concurrent ORB tasks
ORB
Fun
ctio
nalit
y
14
ORB Request Processing
1. Invocation adapter interface2. Active invocation table3. Object adapter registry4. Object adapter interface
Requ
est
Proc
essi
ng
15
Colocated Client & Server
DII: initiates method invocation POA: executes method on object
implementation
Requ
est
Proc
essi
ng
16
Separated Client & Server
IIOP Client: transforms method invocation into network message
IIOP Server: transforms message into method invocation
Requ
est
Proc
essi
ng
17
Server Activation
Mediator: looks up or runs appropriate server and forwards method invocation
Requ
est
Proc
essi
ng
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
Sch
edul
ing
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
Sch
edul
ing
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
Eval
uati
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 ones
Eval
uati
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
Ove
rvie
w
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 ZurichZe
ro-C
opy
CORB
A
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
layers
Zero
-Cop
y CO
RBA
25
Data Copies
foo(arg1, arg2)
GIOP
GIOPH
H
H GIOP
foo(arg1, arg2)
Zero
-Cop
y CO
RBA
NIC
TCP/
IPOR
B
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 CO
RBA
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 CO
RBA
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 CO
RBA
29
MPEG Transcoder Maximum bulk transfer rate: 75
Mbyte/s (instead of 42 Mbyte/s) Example app: parallel transcoding
of MPEG streams
Datasource Distributor Parallel
Encoder Integrator
Zero
-Cop
y CO
RBA
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
Sum
mar
y
top related