mico architecture & applications

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

Upload: loan

Post on 21-Mar-2016

48 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: MICO Architecture & Applications

CORBA Controls Workshop

Kay RömerETH ZürichSwitzerland

MICOArchitecture & Applications

Page 2: 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

Ove

rvie

w

Page 3: 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

sent

, Fut

ure

Page 4: 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 CORBA

MIC

O P

ast,

Pre

sent

, Fut

ure

Page 5: 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

sent

, Fut

ure

Page 6: 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

sent

, Fut

ure

Page 7: 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

sent

, Fut

ure

Appl Appl

ORB ORB

portability

inte

rope

rabi

lity

Page 8: 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: 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

Ove

rvie

w

Page 10: 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

rchi

tect

ure

Page 11: 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

rchi

tect

ure

Page 12: 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

erne

l App

roac

h

Page 13: MICO Architecture & Applications

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

Page 14: MICO Architecture & Applications

14

ORB Request Processing

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

Requ

est

Proc

essi

ng

Page 15: MICO Architecture & Applications

15

Colocated Client & Server

DII: initiates method invocation POA: executes method on object

implementation

Requ

est

Proc

essi

ng

Page 16: MICO Architecture & Applications

16

Separated Client & Server

IIOP Client: transforms method invocation into network message

IIOP Server: transforms message into method invocation

Requ

est

Proc

essi

ng

Page 17: MICO Architecture & Applications

17

Server Activation

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

Requ

est

Proc

essi

ng

Page 18: 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

Sch

edul

ing

Page 19: 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

Sch

edul

ing

Page 20: 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

Eval

uati

on

Page 21: 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 ones

Eval

uati

on

Page 22: 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

Ove

rvie

w

Page 23: 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 ZurichZe

ro-C

opy

CORB

A

Page 24: 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

layers

Zero

-Cop

y CO

RBA

Page 25: MICO Architecture & Applications

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

Page 26: 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 CO

RBA

Page 27: 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 CO

RBA

Page 28: 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 CO

RBA

Page 29: 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 Parallel

Encoder Integrator

Zero

-Cop

y CO

RBA

Page 30: 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

Sum

mar

y