Effects and Opportunities of Native Code Extensions For
Total Page:16
File Type:pdf, Size:1020Kb
Effects and Opportunities of Native Code Extensions for Computationally Demanding Web Applications DISSERTATION zur Erlangung des akademischen Grades Dr. Phil. im Fach Bibliotheks- und Informationswissenschaft eingereicht an der Philosophischen Fakultät I Humboldt-Universität zu Berlin von Dipl. Inform. Dennis Jarosch Präsident der Humboldt-Universität zu Berlin: Prof. Dr. Jan-Hendrik Olbertz Dekan der Philosophischen Fakultät I: Prof. Michael Seadle, Ph.D. Gutachter: 1. Prof. Dr. Robert Funk 2. Prof. Michael Seadle, Ph.D. eingereicht am: 28.10.2011 Tag der mündlichen Prüfung: 16.12.2011 Abstract The World Wide Web is amidst a transition from interactive websites to web applications. An increasing number of users perform their daily computing tasks entirely within the web browser — turning the Web into an important platform for application development. The Web as a platform, however, lacks the computational performance of native applications. This problem has motivated the inception of Microsoft Xax and Google Native Client (NaCl), two independent projects that fa- cilitate the development of native web applications. Native web applications allow the extension of conventional web applications with compiled native code, while maintaining operating system portability. This dissertation determines the bene- fits and drawbacks of native web applications. It also addresses the question how the performance of JavaScript web applications compares to that of native appli- cations and native web applications. Four application benchmarks are introduced that focus on different performance aspects: number crunching (serial and parallel), 3D graphics performance, and data processing. A performance analysis is under- taken in order to determine and compare the performance characteristics of native C applications, JavaScript web applications, and NaCl native web applications. The results confirm that NaCl’s performance in computational tasks and 3D graphics is impeccable. On the other hand, it shows substantial limitations in data process- ing. These are evaluated and possible solutions are discussed. The results of the performance analysis are complemented with an evaluation on the basis of technical and non-technical criteria and a discussion of the technical, political, and strategic drivers for NaCl. Native Client has the potential to empower a new generation of browser-based applications, but it faces significant challenges due to its limitations in data processing, closed project governance, and the lack of support by other browser vendors that could hinder its adoption. ii Zusammenfassung Das World Wide Web befindet sich inmitten eines Übergangs von interaktiven Webseiten zu Web- Applikationen. Eine wachsende Zahl von Anwendern führt täg- liche Arbeiten ausschließlich im Web-Browser durch. Dadurch wird das Web zu einer wichtigen Plattform für Anwendungsentwicklung. Dieser Platform fehlt je- doch die Rechenleistung nativer Applikationen. Microsoft Xax und Google Native Client (NaCl) sind zwei unabhängigen Technologien zur Entwicklung nativer Web- Applikationen. Native Web-Applikationen ermöglichen die Erweiterung herkömmli- cher Web-Applikationen durch kompilierten nativen und dennoch betriebssystemun- abhängigen Programmcode. Diese Dissertation untersucht die Vor- und Nachteile na- tiver Web-Applikationen. Sie stellt außerdem die Frage nach dem tatsächlichen Leis- tungsvermögen konventioneller Web-Applikationen. Dazu wird eine experimentelle Leistungsanalyse von nativen Applikationen in C, JavaScript Web-Applikationen und NaCl nativen Web-Applikationen anhand vier unterschiedlicher Vergleichstests durchgeführt. Dabei werden verschiedene Leistungsaspekte betrachtet: mathema- tische Operationen (seriell und parallel), 3D-Grafikoperationen und Datenverarbei- tung. NaCls Stärken in mathematischen und 3D-Grafikoperationen stehen erhebliche Schwächen bei der Datenverarbeitung gegenüber. Die Auswertung dieser Schwächen bildet die Grundlage für die Erarbeitung möglicher Lösungensansätze. Eine Bewer- tung auf Grundlage technischer und nicht-technischer Kriterien komplementiert die Ergebnisse der Leistungsanalyse. Darüberhinaus werden die technischen, politischen und strategischen Treiber für NaCls Marktdurchdringung diskutiert. Native Client hat das Potential eine neue Generation browser-basierter Anwendungen zu ermög- lichen. Die Technologie steht aber vor großen Herausforderungen aufgrund Ihrer Beschränkungen bei der Datenverarbeitung, der Steuerungsform des NaCl-Projekts und der fehlenden Unterstützung durch andere Browser-Hersteller. iii Contents List of Figures ix List of Tables xi 1. Introduction1 2. Problem Statement and Approach3 3. Background5 3.1. Browser Plugins................................5 3.1.1. Netscape Plugin API..........................6 3.1.2. ActiveX.................................8 3.2. Web 2.0..................................... 10 3.2.1. Participation and User Generated Content.............. 10 3.2.2. Technological Advancements..................... 11 3.2.3. AJAX.................................. 13 3.2.4. JavaScript................................ 14 3.3. Web Applications................................ 18 3.3.1. Native Applications vs. Web Applications.............. 19 3.3.2. Towards the HTML5 Standard.................... 21 4. The Web as a Platform 25 4.1. Beyond the Microsoft Windows Platform.................. 26 4.2. Platform Classification............................. 27 4.2.1. Level 1: Access API.......................... 28 4.2.2. Level 2: Plugin API.......................... 28 4.2.3. Level 3: Runtime Environment.................... 29 4.2.4. Criticism and Implications....................... 30 4.3. Components of the Web as a Platform.................... 30 4.3.1. Runtime................................. 31 4.3.2. Application Framework........................ 33 4.3.3. Tools.................................. 35 4.3.4. Cloud Services............................. 36 4.3.5. Monetization.............................. 37 4.4. Cloud Computing: Powering the Platform.................. 38 4.4.1. Cloud Computing Service Models................... 41 v Contents 4.4.2. Cloud Computing Deployment Models................ 44 4.4.3. Cloud Applications and Services................... 46 4.5. Challenges for the Web as Platform...................... 49 5. Native Web Applications 53 5.1. Goals of Native Web Applications...................... 53 5.2. Xax....................................... 55 5.2.1. Architecture.............................. 56 5.2.2. Implementation............................. 59 5.2.3. Capabilities............................... 61 5.3. Native Client.................................. 62 5.3.1. Architecture.............................. 63 5.3.2. Implementation............................. 65 5.3.3. Portable Native Client......................... 69 5.3.4. Capabilities............................... 69 5.4. Comparison of NaCl and Xax......................... 71 6. Performance Analysis 75 6.1. Experimental Environment.......................... 76 6.2. Pi Benchmark.................................. 77 6.2.1. Problem and Objective........................ 77 6.2.2. Theoretical Background........................ 78 6.2.3. Implementation Details........................ 78 6.2.4. Experimental Setup.......................... 80 6.2.5. Execution................................ 81 6.2.6. Results................................. 82 6.3. Pi-MT Benchmark............................... 87 6.3.1. Problem and Objective........................ 87 6.3.2. Theoretical Background........................ 88 6.3.3. Implementation Details........................ 88 6.3.4. Experimental Setup.......................... 90 6.3.5. Execution................................ 90 6.3.6. Results................................. 91 6.4. Gears Benchmark................................ 96 6.4.1. Problem and Objective........................ 96 6.4.2. Theoretical Background........................ 96 6.4.3. Implementation Details........................ 100 6.4.4. Experimental Setup.......................... 101 6.4.5. Execution................................ 102 6.4.6. Results................................. 104 6.5. Spectral Benchmark.............................. 108 6.5.1. Problem and Objective........................ 109 6.5.2. Theoretical Background........................ 109 6.5.3. Implementation Details........................ 116 vi Contents 6.5.4. Experimental Setup.......................... 120 6.5.5. Execution................................ 121 6.5.6. Results................................. 122 6.6. Discussion.................................... 126 6.7. Further Investigations and Potential Solutions................ 128 7. Evaluation, Effects, and Opportunities 131 7.1. Comparison Criteria.............................. 131 7.2. Evaluation.................................... 132 7.2.1. 3D Graphics Performance....................... 132 7.2.2. Browser Neutrality........................... 133 7.2.3. Computational Performance...................... 134 7.2.4. Data Processing............................ 135 7.2.5. Maturity................................ 136 7.2.6. Openness................................ 137 7.2.7. OS-Independence............................ 138 7.2.8. Portability............................... 139 7.2.9. Porting and Code Reuse........................ 140 7.2.10. Security................................. 142 7.2.11. Conclusion............................... 143 7.3. Drivers for NaCl’s Adoption.........................