A Middleware Approach to Building Content-Centric Applications
Total Page:16
File Type:pdf, Size:1020Kb
A Middleware Approach to Building Content-Centric Applications Gareth Tyson B.Sc. (Hons) M.Sc. A Thesis Submitted for the Degree of Doctor of Philosophy Department of Computer Science Lancaster University UK May, 2010 Acknowledgements I would like to thank everybody who has helped me during the compilation of this thesis. First and foremost I would like to thank Andreas Mauthe for his invaluable contributions to my research. I could not have asked for a more insightful and dedicated supervisor, who always found time to help regardless of his own workload. I realise this is a rare characteristic and I consider myself very lucky to have worked with him. In addition, I would also like to thank a number of other people who have made a range of immeasurable contributions to my work over the years: Sebastian Kaune, Yehia El-khatib, Paul Grace, Thomas Plagemann, Gordon Blair, Magnus Skjegstad, Rub´enCuevas Rum´ın,as well as everybody from the CONTENT and INTERSECTION projects. It was a privilege to work with you all. Alongside these people, I would also like to acknowledge David Hutchison, Edmundo Mon- teiro and Michael Luck for making a number of helpful suggestions regarding the final version of this thesis. I would also like to thank everybody at Infolab21 and Lancaster University who made my time here so enjoyable, including Ali, Andi, Andreas, Andy, Colin, Eddie, Frodo, Jamie, Jason, Jayne, Kirsty, Matt, Mu, Rach, Rick, Sean, Sue and Yehia. In particular, I'd like to thank Zo¨efor keeping me sane (and smiling) whilst writing up! Last of all, I'd like to thank my parents for supporting me during every stage of my education and always being there to lend a helping hand. iii Abstract Recent years have seen a huge proliferation in the use of content in distributed ap- plications. This observation has been exploited by researchers to construct a new paradigm called content-centric networking. Within this paradigm, applications interact with the network using a simple content request/reply abstraction. The network is then responsible for routing this request towards the `nearest' provider that can offer the content. This process therefore exploits the observation that applications rarely have a vested interest in where their content is obtained from. However, it currently ignores the fact that many applications similarly have no interest in how their content is obtained, as long as it falls within certain require- ment bounds (e.g. performance, security etc.). Consequently, existing content- centric interfaces offer no support for stipulating such abstract requirements. This thesis therefore proposes an extension of the content-centric abstraction to include the concept of delivery-centricity. A delivery-centric abstraction is one that allows applications to associate (high-level) delivery requirements with con- tent requests. The purpose of this is to offer access to content in a specialised and adaptable way by exploiting an application's ambivalence towards the un- derlying means by which it is acquired. Through this, applications can simply issue abstract requirements that are satisfied by the underlying system. These requirements can range from performance needs to more diverse aspects such as overheads, anonymity, monetary cost and the ethical policies of providers. Using the above principles, this thesis proposes the design of a new system that can offer a delivery-centric abstraction. This process is guided by key design goals, which dictate a solution should be interoperable with existing sources, highly deployable and extensible. Specifically, a middleware approach is taken, which results in the development of the Juno middleware. Juno operates by using configurable protocol plug-ins that can interact with various third party providers to discover and access content. Using these plug-ins, Juno can dynamically (re- )configure itself to deliver content from the sources that are most conducive with the application's requirements. The thesis is evaluated using a number of techniques; first, a detailed study of v real-world delivery protocols is performed to motivate and quantify the benefits of using delivery-centricity. Alongside this, Juno's functional aspects (discovery and delivery) are also evaluated using both simulations and a prototype deployment to understand the performance, overheads and feasibility of using a delivery-centric abstraction. Throughout the thesis, performance is focussed on as the primary delivery requirement. It is shown that utilising a delivery-centric abstraction can dramatically increase the ability to satisfy this requirement, and that Juno's approach fully supports such improvements. It is then concluded that placing delivery-centricity in the middleware-layer is a highly effective approach, and that it can be performed in a feasible manner to ensure that delivery requirements are met. The key contributions of this thesis are therefore, (i) the introduction of a new delivery-centric abstraction, (ii) the design and implementation of a middleware solution to realise this abstraction, and (iii) the development of novel technologies to enable content-centric interoperation with existing (and future) content providers. Declaration I declare that the work presented in this thesis is, to the best of my knowledge and belief, original and my own work. The material has not been submitted, either in whole or in part, for a degree at this, or any other university. The prototype implementation of the proposed system was written entirely by myself, although the OpenCOM component model used to develop it was im- plemented by Paul Grace, who also kindly provided some performance measure- ments. The BitTorrent measurement study detailed in this thesis was performed in conjunction with Sebastian Kaune and Rub´enCuevas Rum´ın. Gareth Tyson. vii Publications During the compilation of this thesis, the following related articles∗ have been published by the author. • Sebastian Kaune, Gareth Tyson, Konstantin Pussep, Andreas Mauthe, Aleksandra Kovacevic and Ralf Steinmetz. The Seeder Promotion Prob- lem: Measurements, Analysis and Solution Space. In Proc. 19th IEEE Intl. Conference on Computer Communication Networks (ICCCN), Zurich, Switzerland (2010). • Sebastian Kaune, Ruben Cuevas Rumin, Gareth Tyson, Andreas Mau- the, Carmen Guerrero and Ralf Steinmetz. Unraveling BitTorrent's File Unavailability: Measurements and Analysis. In Proc. 10th IEEE Intl. Conference on Peer-to-Peer (P2P), Delft, Netherlands (2010). • Gareth Tyson, Paul Grace, Andreas Mauthe, Gordon Blair and Sebastian Kaune. A Reflective Middleware to Support Peer-to-Peer Overlay Adapta- tion. In Proc. 9th Intl. IFIP Conference on Distributed Applications and Interoperable Systems (DAIS), Lisbon, Portugal (2009). • Gareth Tyson, Andreas Mauthe, Sebastian Kaune, Mu Mu and Thomas Plagemann. Corelli: A Dynamic Replication Service for Supporting Latency- Dependent Content in Community Networks. In Proc. 16th ACM/SPIE Multimedia Computing and Networking Conference (MMCN), San Jose, CA (2009). • Gareth Tyson, Paul Grace, Andreas Mauthe and Sebastian Kaune. The Survival of the Fittest: An Evolutionary Approach to Deploying Adap- tive Functionality in Peer-to-Peer Systems. In Proc. ACM/IFIP/USENIX Middleware: Workshop on Adaptive and Reflective Middleware (ARM), Leuven, Belgium (2008). ∗A comprehensive list is available at http://eprints.comp.lancs.ac.uk ix • Gareth Tyson, Andreas Mauthe, Thomas Plagemann and Yehia El-khatib. Juno: Reconfigurable Middleware for Heterogeneous Content Networking. In Proc. 5th Intl. Workshop on Next Generation Networking Middleware (NGNM), Samos Islands, Greece (2008). Contents Contentsi 1 Introduction1 1.1 Overview ................................ 1 1.2 Content-Centric Networking...................... 2 1.2.1 Overview ............................ 2 1.2.2 The Case for Content-Centric Networking.......... 2 1.2.3 Critique of Existing Approaches ............... 3 1.3 Research Goals............................. 6 1.4 Thesis Overview ............................ 6 2 Background and Related Work9 2.1 Introduction............................... 9 2.2 Defining Content-Centricity...................... 9 2.3 Principles of Content Distribution .................. 12 2.3.1 Overview ............................ 12 2.3.2 Content Discovery ....................... 13 2.3.3 Content Delivery........................ 18 2.3.4 Summary............................ 23 2.4 Principles of Networked System Interoperation ........... 24 2.4.1 Overview ............................ 24 2.4.2 Protocol Standardisation and Uptake ............ 25 2.4.3 Protocol Bridging ....................... 26 2.4.4 Interoperability Middleware.................. 29 2.4.5 Summary............................ 30 2.5 Related Work.............................. 31 2.5.1 Overview ............................ 31 2.5.2 Data-Oriented Networking Architecture (DONA) . 32 2.5.3 Assurable Global Networking (AGN)............. 38 2.5.4 Akamai ............................. 44 i ii CONTENTS 2.5.5 Summary............................ 50 2.6 Conclusions............................... 51 3 Analysis and Modelling of Delivery Protocol Dynamics 53 3.1 Introduction............................... 53 3.2 HTTP.................................. 54 3.2.1 Overview of HTTP....................... 54 3.2.2 Methodology .......................... 56 3.2.3 Resources............................ 56 3.2.4 Protocol............................. 59 3.2.5 Modelling............................ 62 3.2.6 Summary...........................