
Research Collection Master Thesis Secure and convenient distributed computing Author(s): Budilivschi, Victor Publication Date: 2011 Permanent Link: https://doi.org/10.3929/ethz-a-006450742 Rights / License: In Copyright - Non-Commercial Use Permitted This page was generated automatically upon download from the ETH Zurich Research Collection. For more information please consult the Terms of use. ETH Library Master Thesis Secure and convenient distributed computing Victor Budilivschi March 10, 2011 Advisors: Prof. Dr. Srdjan Capkun,ˇ Ghassan O. Karame, Dr. Aur´elien Francillon Department of Computer Science, ETH Z¨urich Abstract The recent years have witnessed the increased development of distributed computing platforms that use the idle computing power of the volunteer computers to perform com- putationally expensive tasks on behalf of academic research groups, industry labs or even individual clients. The distributed computing projects try to solve problems in various areas like biology, medicine, earth sciences, mathematics, physics, astronomy etc. Some existing distributed computing platforms, by hosting several projects, offer the possibility for people to join them. The problems of increasing the number of participating volun- teers and ensuring that the gathered results are correct are gaining increasing attention nowadays. For instance, for inexperienced users is not always easy to install or uninstall software needed to participate in a distributed computing project. We propose a solution that offers the possibility to make computations using web-based clients and we study its feasibility. We analyse and test the existing technologies that would allow making the computations in browsers efficiently. We analyse the possibility of interconnecting our platform with existing distributed computing frameworks. In order to make our framework scalable, we design it to have an efficient way of extending it. We use a secure scheme that offers a mechanism for validation of the results with small overhead. We show that making computations in web-based clients is not only possible, but also efficient, without disturbing the browsing experience of users. iii Contents Table of Contents vi List of Figures vii 1. Introduction 1 2. Background and Related Work 3 2.1. Background: Distributed Computing Projects . ........ 3 2.2. Relatedwork .................................. 4 3. System Architecture 6 3.1. Overview .................................... 6 3.2. SecurityConsiderations . ... 9 3.3. Server Architecture (Nest) . 11 3.4. Client Architecture (Pafi) . 12 3.5. ContentProviderLibrary . 14 4. Implementation Setup 15 4.1. Evaluation of different technologies for client-side . ............ 15 4.1.1. JavaScript................................ 15 4.1.2. Google Web Toolkit . 16 4.1.3. JavaApplet............................... 17 4.1.4. Silverlight................................ 17 4.1.5. AdobeFlash .............................. 17 4.1.6. Google Native Client . 18 4.2. Performance comparison of several technologies . .......... 19 4.3. Client-side Implementation . 21 4.3.1. Structure ................................ 21 v Contents 4.3.2. Initialization of Pafi . 22 4.3.3. Communication between Pafi and Pafi Workers . 25 4.3.4. Requestingworkunits . 26 4.3.5. Startingworkers ............................ 26 4.3.6. CPUusagethrottling . 27 4.3.7. Receiving results from workers and sending them to the server . 28 4.3.8. Handling lost connections . 28 4.4. Server-side Implementation . 30 4.4.1. Nest ................................... 30 4.4.2. Rooms.................................. 31 4.5. Integration of Other Projects . 31 4.5.1. Server-Side ............................... 32 4.5.2. Client-Side ............................... 32 5. System Evaluation 34 5.1. PrototypeEvaluation. 36 5.1.1. Prototypeversion1.0 . 36 5.1.2. Prototypeversion2.0 . 37 5.2. LimitationsofthePrototype . 38 5.3. Futurework................................... 39 5.4. Applications................................... 40 6. Concluding Remarks 41 Bibliography 43 A. Source code 47 A.1. RC4 implementation (JavaScript) . ..... 47 A.2. RoomController class (Java) . 48 A.3. ClientWork class (Java) . 49 A.4. PafiThreadclass(Java) . 50 vi List of Figures 3.1. General architecture of the framework . ...... 7 3.2. Overview of the Server Side (Nest) structure . ....... 11 3.3. Overview of the Client Side (Pafi) structure . ....... 13 4.1. Class diagram of Pafi ............................. 21 4.2. Class diagram of Pafi Applet ......................... 22 4.3. Class diagram of Pafi Silverlight ....................... 23 4.4. Package diagram of PafiApplet with RC4Worker .............. 24 4.5. Package diagram of PafiSilverlight with RC4Worker ............ 25 4.6. Package diagram of Nest ............................ 30 4.7. Class diagram of Nest ............................. 33 5.1. Prototype screen shot: First visit on the page . ........ 35 5.2. Prototype screen shot: Viewing and downloading an article ........ 35 5.3. Prototype screen shot: Insufficient credit . ........ 36 vii Chapter 1 Introduction The recent years have witnessed the increased development of distributed computing platforms that use the idle computing power of the volunteer computers to perform computationally expensive tasks on behalf of academic research groups, industry labs or even individual clients [54]. Some of the platforms like BOINC [30] are open source, and anybody can use them to start their own distributed computing project. The distributed computing projects try to solve problems in various areas like bi- ology, medicine, earth sciences, mathematics, physics, astronomy etc. Some existing distributed computing platforms, by hosting several projects, offer the possibility for people to join them. One example, World Community Grid is the largest non-profit computing grid that offers to solve problems that benefit the humanity [43]. The distributed computing platforms provide software for the users who want to partic- ipate. These are applications compiled for different platforms that need to be installed on their machines. When joining a project, a user has to first download the core client and install it on his system. Another option would be to download the source code of the client software and compile it. One of the challenges that the distributed computing projects are facing is the limited exposure they acquire online. More specifically, the number of volunteers who partic- ipate is still modest. Although the results are considerable [44, 5], there is still room for improvement. Most of the projects try to provide clients for as many platforms as possible in order to give the possibility of joining the project to any volunteer. Also, by releasing the source code of the client software, there is a possibility for the community to modify and build the software for a variety of operating systems and hardware. Even when the client software is available, volunteers must install and configure it on their systems. In many cases this is not a straightforward task for an unsophisticated user. Also, if a participant is not willing to contribute anymore, he has to uninstall software 1 CHAPTER 1. INTRODUCTION from his system. On several platforms a user (depending on his access level) might not even have credentials for this kind of operations. Another challenge of the distributed projects is the evaluation of the correctness of the returned results from clients. Given the nature of the distributed computing projects, the participants could return incorrect results intentionally or unintentionally. The pos- sible incorrect results returned by some participants might compromise the results of the whole project. In this thesis, we address these challenges and we explore the possibility of performing remote computations using existing software that is already installed on the machines of the volunteers. This removes the problem of software installation on client systems, thus making easier to increase the number of participants. More precisely, we study the feasi- bility of executing computations in web browsers on client machines. We analyze several technologies to identify the ones suitable for making computations. We build a frame- work that allows making remote computations in web browsers on client machines, using several different technologies like JavaScript, Silverlight or Java applets. The design of our framework allows interconnection with content providers and existing distributed computing projects. The content providers can use the framework to “charge” users for viewing content – by making them execute computations – instead of displaying adver- tising on web pages, as described in [53]. For validation of the computation results, our projects is using precomputed checks or ringers as described in [54] and [51]. We also conduct some user studies to observe the reception of our scheme. The remainder of this thesis is organized as follows. In Chapter 2 we overview the re- lated work on distributed computing projects. The general architecture of our framework and the security considerations are contained in Chapter 3. In Chapter 4 we describe in detail the implementation of the server-side, client-side and the interconnection of the framework with current distributed computing projects and content providers. The eval- uation of our platform and its limitations are presented in Chapter 5. Also in Chapter 5 we discuss about possible applications. 2 Chapter 2 Background and Related Work 2.1. Background: Distributed Computing Projects There
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages61 Page
-
File Size-