CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

30
CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications

Transcript of CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

Page 1: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

CORBA Controls Workshop

Kay RömerETH ZürichSwitzerland

MICOArchitecture & Applications

Page 2: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & 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

Page 3: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

14

ORB Request Processing

1. Invocation adapter interface2. Active invocation table3. Object adapter registry4. Object adapter interface

Req

uest

Pro

cessin

g

Page 15: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

15

Colocated Client & Server

DII: initiates method invocation POA: executes method on object

implementation

Req

uest

Pro

cessin

g

Page 16: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

17

Server Activation

Mediator: looks up or runs appropriate server and forwards method invocation

Req

uest

Pro

cessin

g

Page 18: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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: CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.

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