Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications."— Presentation transcript:

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

2 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 Overview

3 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) MICO Past, Present, Future

4 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 MICO Past, Present, Future

5 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) MICO Past, Present, Future

6 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) MICO Past, Present, Future

7 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 MICO Past, Present, Future Appl ORB portability interoperability

8 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 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 Overview

10 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 MICO Architecture

11 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) MICO Architecture

12 12 Micro Kernel Approach Minimize ORB functionality Move functionality to –Servers (separate process) –Runtime libraries (same process) Extensibility: adding, removing, exchanging servers and libraries without touching ORB Micro Kernel Approach

13 13 ORB Functionality Local request processing –Select appropriate object adapter –Keep track of pending invocations Task scheduling –Coordinate concurrent ORB tasks ORB Functionality

14 14 ORB Request Processing 1. Invocation adapter interface 2. Active invocation table 3. Object adapter registry 4. Object adapter interface Request Processing

15 15 Colocated Client & Server DII: initiates method invocation POA: executes method on object implementation Request Processing

16 16 Separated Client & Server IIOP Client: transforms method invocation into network message IIOP Server: transforms message into method invocation Request Processing

17 17 Server Activation Mediator: looks up or runs appropriate server and forwards method invocation Request Processing

18 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 Scheduling

19 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 segments with scheduler –Executes segment when blocking operation completes Non-preemptive Task Scheduling

20 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 Evaluation

21 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 Evaluation

22 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 Overview

23 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 Zurich Zero-Copy CORBA

24 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-Copy CORBA

25 25 Data Copies foo(arg1, arg2) GIOP H H H foo(arg1, arg2) Zero-Copy CORBA NIC TCP/IP ORB DMA GIOPH H H DMA

26 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) 146014801156 Zero-Copy CORBA

27 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 1Frag 2Frag 3 4k Zero-Copy CORBA

28 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 GIOPData 1Data 2 Zero-Copy CORBA

29 29 MPEG Transcoder Maximum bulk transfer rate: 75 Mbyte/s (instead of 42 Mbyte/s) Example app: parallel transcoding of MPEG streams Data source Distributor Parallel Encoder Integrator Zero-Copy CORBA

30 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 Summary


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

Similar presentations


Ads by Google