mico architecture & applications

Post on 21-Mar-2016

48 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

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