180 likes | 263 Views
iOverlay : A Lightweight Middleware Infrastructure for Overlay Application Implementations. Baochun Li, Jiang Guo, Mea Wang The Fifth ACM/IFIP/USENIX International Middleware Conference (Middleware 2004). Presented by Zhinan Zhou. Contents. Introduction. iOverlay Design.
E N D
iOverlay: A Lightweight Middleware Infrastructure for Overlay Application Implementations Baochun Li, Jiang Guo, Mea Wang The Fifth ACM/IFIP/USENIX International Middleware Conference (Middleware 2004) Presented by Zhinan Zhou
Contents Introduction iOverlay Design iOverlay Performance Case Study Related Work
Why iOverlay? Rapid Implementation Reusable Most of the existing work focuses on algorithm and protocol evaluation. They can share a large amount of supporting elements (deployment, debug, monitoring, etc.) Simple iOverlay provides a simple interface and an efficient underlying infrastructure to minimize the programming burden of overlay application developers.
2 As generic as possible 4 Blackbox design 1 5 Clean interface Design Objectives 1 1 Careful selection of features 3 Simplifying implementation
message switch engine algorithm application iOverlay Architecture
Highlights Simplified interface iOverlay architectural design Virtualized nodes Maximized performance and portability
Message-based Design • message and message switching engine: • 24-byte header • application data and protocol-specific messages • multi-threaded architecture
Message-based Design (cont.) • message process and switch: • select() • Engine::process() vs. Algorithm::process() • Engine::send()
Message-based Design (cont.) • Algorithm as message handler: • send() function • message types • destruction of messages
Message-based Design (cont.) Zero copying of messages Persistent connection Performance Small footprint
Performance • Raw message switching: • main overhead: context switching • end-to-end throughput and total bandwidth • nodes on a single platform
Service Federation • Service overlay network: • control messages: sAware, sFederate
1 2 3 PLUTO: focuses on lower level connectivity Macedon: focuses on algorithm design Service Cloud: focuses on communication support Related Work