1 / 30

MICO Architecture & Applications

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.

Download Presentation

MICO Architecture & Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 Overview

  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. 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. 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. 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. 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 interoperability Appl Appl portability ORB ORB

  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 Overview

  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. 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. Micro Kernel Approach • Minimize ORBfunctionality • Move functionality to • Servers (separateprocess) • Runtime libraries(same process) • Extensibility: adding, removing, exchanging servers and libraries without touching ORB Micro Kernel Approach

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

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

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

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

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

  18. ORB Task Scheduling • Tasks: • Application can be caller and callee at the same time (distributedcallbacks, nested method invocations) • Process incoming and outgoing messages on multiple communication channels • Requirements: • Multithreading optional (e.g., Palm OS) Task Scheduling

  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 segmentwhen blockingoperation completes • Non-preemptive Task Scheduling

  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. 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. 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. 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. 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. foo(arg1, arg2) foo(arg1, arg2) GIOP H GIOP H GIOP H H GIOP H H DMA DMA Data Copies ORB Zero-Copy CORBA TCP/IP NIC

  26. 4k (page) 1460 1480 1156 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 Zero-Copy CORBA

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

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

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

  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

More Related