Omnix: an Open Peer-To-Peer Middleware Framework
Total Page:16
File Type:pdf, Size:1020Kb
Omnix: An Open Peer-to-Peer Middleware Framework Engineering Topology- and Device-Independent Peer-to-Peer Systems Ph.D. Thesis Roman Kurmanowytsch DISSERTATION Omnix: An Open Peer-to-Peer Middleware Framework Engineering Topology- and Device-Independent Peer-to-Peer Systems ausgefuhrt¨ zum Zwecke der Erlangung des akademischen Grades eines Doktors der technischen Wissenschaften unter der Leitung von o.Univ.-Prof. Dipl.-Ing. Dr.techn. Mehdi Jazayeri Institut fur¨ Informationssysteme Abteilung fur¨ Verteilte Systeme (E184-1) eingereicht an der Technischen Universitat¨ Wien Fakultat¨ fur¨ Informatik von Univ.-Ass. Dipl.-Ing. Roman Kurmanowytsch [email protected] Matrikelnummer: 9327324 Brunnerstr. 28/12 A-1230 Wien, Osterreich¨ Wien, im Februar 2004 Omnix: An Open Peer-to-Peer Middleware Framework Engineering Topology- and Device-Independent Peer-to-Peer Systems Ph.D. Thesis at Vienna University of Technology submitted by Dipl.-Ing. Roman Kurmanowytsch Distributed Systems Group, Information Systems Institute, Technical University of Vienna Argentinierstr. 8/184-1 A-1040 Vienna, Austria 1st February 2004 c Copyright 2004 by Roman Kurmanowytsch Advisor: o. Univ.-Prof. Dr. Mehdi Jazayeri Second Advisor: a.o. Univ.-Prof. Dr. Gabriele Kotsis Abstract In this thesis, we present Omnix, a Peer-to-Peer (P2P) middleware framework. P2P mid- dleware provides an abstraction between the application and the underlying network by pro- viding higher-level functionality such as distributed P2P searches and direct communication among peers. P2P networks build an overlay network, a network on the network. The central idea of this dissertation is to apply the well-established ISO OSI layered model on P2P middleware systems. A layered P2P architecture helps to identify separate parts of a complex system, allows changes to the system without affecting other layers and makes maintenance easier due to modularization. The main advantages of having such a layered P2P middleware are: independence from the underlying network and the P2P topology. This dissertation proposes a P2P middleware architecture consisting of three layers: the Transport Layer, the Processing Layer and the P2P Network Layer. The Transport Layer (which can be compared to the Physical Layer of the OSI model) is responsible for providing an abstraction to the network primitives provided by operating systems or libraries. This makes Omnix independent from the underlying network protocols and the devices and allows Omnix to run on heterogeneous devices. The Processing Layer (an analogy to the Data Link layer) provides an error free connection to remote peers and allows additional services to be plugged in. The P2P Network Layer comprises the routing algorithm, thus describes the topology (or structure) of the P2P network. Omnix has a pluggable architecture that allows different components to be plugged in based on the requirements of an application, the capabilities of the device the application is running on, the number of peers involved, etc. Custom-tailored P2P middleware systems can be constructed, thus, increasing the flexibility of communication architectures that are built upon it. Applications that use Omnix are provided an API that is not affected whenever the underlying topology has to be changed or adapted. Since testing P2P networks is hard to accomplish due to the large amount of peers re- quired to get significant results, Omnix provides a way of testing P2P applications using this middleware framework. By replacing the communication layer by a virtual network, it is possible to simulate a network of virtual peers on a single computer without the necessity of changing the application on top of it. Along with Omnix, several plugins are provided to demonstrate the versatility of the framework. They provide the functionality to run Omnix on normal PCs, on handheld com- puters (e.g., Compaq iPAQ) and on Java-enabled mobile phones. Kurzfassung Diese Dissertation stellt Omnix vor, eine Peer-to-Peer (P2P) Middleware. P2P Middle- ware Systeme bieten eine Schnittstelle zwischen der P2P Kommunikation-Infrastruktur und der daruber¨ liegenden Applikation an. Dienste wie zum Beispiel das Suchen in einem P2P Netzwerk oder die direkte Kommunikation zwischen Peers werden dabei angeboten. P2P Netzwerke bilden ein virtuelles Netzwerk auf einem existierenden Netzwerk. In dieser Dissertation wird das anerkannte OSI (Open Systems Interconnection) Netzwerk- Schichtenmodell der Internationalen Organisation fur¨ Standards (ISO) auf P2P Netzwerke angewendet. Das Schichtenmodell hat den Vorteil, dass komplexe Systeme in kleinere Teile aufgeteilt werden konnen,¨ dass Schichten verandert¨ werden konnen,¨ ohne einen Einfluß auf die Schichten darunter zu haben und dass die Wartbarkeit und Erweiterbarkeit solcher Sy- stem erhoht¨ wird. In einem P2P Netzwerk bedeutet das hauptsachlich¨ eine Unabhangigk¨ eit von der zugrundeliegenden Netzwerk–Technologie und der Struktur des P2P Netzwerkes selbst. In dieser Dissertation werden drei Schichte vorgeschlagen: die Transport-Schicht, die Processing-Schicht und die P2P Netzwerk-Schicht. Die Transport-Schicht kann mit der phy- sikalischen Schicht des ISO Modells verglichen werden. Sie ist dafur¨ zustandig,¨ den Zugang zum Netzwerk transparent, und daher auch unabhangig¨ vom eingesetzten Netzwerkproto- koll, zu machen. Die Processing-Schicht (welche an die OSI Sicherungsschicht angelehnt ist) erzeugt einen fehlerfreien Verbindungskanal und bietet daruberhinaus¨ noch weitere, wichtige Dienste an. Die P2P-Netzwerk-Schicht beinhaltet die Routing-Algorithmen und beschreibt daher die Struktur des P2P Netzwerkes. Omnix verwendet eine komponenten-orientierte Architektur die es erlaubt, das System den Erfordernissen anzupassen. Die dadurch gewonnene Flexibilitat¨ erlaubt es, Omnix fur¨ viele verschiedene Zwecke auf unterschiedlichsten Geraten¨ einzusetzen, ohne jedoch dabei die Schnittstelle zur Applikation zu verandern.¨ Fur¨ das Testen von Applikation, die auf Omnix aufbauen, kann die Netzwerkkommuni- kation durch ein virtuelles Netzwerk ersetzt werden, dass es erlaubt, mehrere Tausend Peers auf einem einzelnen Computer zu simulieren. Dabei ist es nicht notwenig, die Applikation selbst zu andern.¨ Um die breite Einsetzbarkeit von Omnix zu demonstrieren, werden verschiedene Module angeboten, die es erlauben, Omnix auf einem PC, einem Handheld (z.B. Compaq iPAQ) oder einem Mobiltelefon mit Java. Acknowledgments Many people directly or indirectly contributed to this dissertation. I am greatly indebted to my wife Hemma for her patience and mental support during the stressful time of writing this dissertation. She was always willing to let me work until late in the evening while she was taking care of our one year old daughter. Her enduring support and understanding made this dissertation possible. I am also grateful to my parents for their continuous support over the long years of my education. I would also like to thank my advisor Prof. Dr. Mehdi Jazayeri who introduced me to research and provided an environment where I was able to look into many research areas and work with interesting people. His feedback has been invaluable in structuring and writing this dissertation. I further offer my sincerest gratitude to Prof. Dr. Gabriele Kotsis, who displayed a great deal of flexibility and kindness. Doing research at the Distributed Systems Group of the Information Systems Institute at the Vienna University of Technology was an incredible experience. I would like to acknowl- edge the work and dedication of the people working there. Special thanks go to my colleague and friend Clemens Kerer, who was always willing to listen to my ideas and point me to new directions. I would like to express my appreciation for all the efforts he made in numerous joint projects which has provided me with a great deal of enjoyment over many years. Thanks must also be given to Engin Kirda, who made working at the Distributed Systems Group at any time a lot of fun. He always provided encouraging words when they were most needed. I thank Michael Loibl, Johannes Schmidt and Reinhard Steiner for their input into this thesis by working on various sub-projects in the course of their master theses. This dissertation is dedicated to my children Lea and Noah. Roman Kurmanowytsch Vienna, Austria, February 2004 i Contents 1 Introduction 1 1.1 Problem description in a nutshell . 2 1.2 Omnix . 3 1.3 The Program Committee Scenario . 3 1.3.1 The Setting . 3 1.3.2 Computer Support for the Review Process . 4 1.3.3 Using Omnix in the Meeting . 4 1.3.4 A Second Meeting . 5 1.3.5 Alternatives . 6 1.4 Contributions . 6 1.5 Stakeholders . 7 1.6 Structure of this Thesis . 7 2 Concepts & Technologies 9 2.1 Various definitions of “Peer-to-Peer” . 9 2.2 Peer-to-Peer: An old new idea . 10 2.2.1 Evolution of computing . 10 2.2.2 Some application domains of P2P applications . 11 2.2.3 Historical P2P systems . 13 2.2.4 The context has changed . 14 2.3 Topologies . 15 2.3.1 Pure P2P . 15 2.3.2 Server-based P2P . 17 2.3.3 Hybrid P2P . 18 2.4 Myths about P2P . 18 3 Peer-to-Peer Topologies 21 3.1 Evaluation . 22 3.2 Summary . 36 ii 4 Design of Omnix 38 4.1 Requirements . 38 4.2 Architecture . 40 4.2.1 Overview . 40 4.2.2 The “Physical Layer” . 43 4.2.2.1 Transport . 43 4.2.2.2 Core . 46 4.2.3 Common Services . 46 4.2.3.1 Pipelines . 47 4.2.3.2 Processing modules . 48 4.2.4 The P2P Network Layer . 50 4.2.4.1 Context Switcher . 50 4.2.4.2 Topology modules / Omnix API . 51 4.3 Streaming . 54 5 Omnix Protocol 61 5.1 Requirements for a P2P protocol . 61 5.2 Overview . 63 5.3 Message types and structure . 64 5.3.1 Request / Response . 65 5.3.2 Header fields . 66 5.3.3 Body . 67 5.4 Security . 68 5.5 Protocol Alternatives . 69 6 Programming Aspects of Omnix 72 6.1 Changing the lower layers of Omnix: Transport and Processing . 72 6.1.1 Transport . 73 6.1.2 Message processing .