Table of Contents

Preface

1. Introduction

1.1 Motivation

1.2 Scope of this Thesis

1.3 Methodology of the Study

1.4 Road Map

2. The World Wide Web, Concurrency and Scalability

2.1 The World Wide Web

2.2 Web Applications

2.3 Concurrency

2.4 Scalability

2.5 Summary

3. The Quest for Scalable Web Architectures

3.1 Traditional Web Architectures

3.2 Cloud Architectures

3.3 An Architectural Model for Scalabale Web Infrastructures

3.4 Scaling Web Applications

3.5 Summary

4. Web Server Architectures for High Concurrency

4.1 Overview

4.2 Server Architectures

4.3 The Case of Threads vs. Events

4.4 Summary

5. Concurrency Concepts for Applications and Business Logic

5.1 Overview

5.2 Concurrency Based on Threads, Locks and Shared State

5.3 Concurrency via Software Transactional Memory

5.4 Actor-based Concurrency

5.5 Event-driven Concurrency

5.6 Other Approaches and Concurrency Primitives

5.7 Summary

6. Concurrent and Scalable Storage Backends

6.1 The Challenge of Distributed Database Systems

6.2 Internals of Distributed Database Systems

6.3 Types of Distributed Database Systems

6.4 Summary

7. Recommendations

7.1 Selecting a Web Server Architecture

7.2 Picking the Right Concurrency Concepts for Application Logic

7.3 Choosing a Storage Backend

7.4 Summary

8. Discussion

9. Outlook

9.1 Emerging Web Architecture Trends

9.2 Trends in Programming Languages

9.3 Summary

10. Conclusion

Appendix

Bibliography

License

Authors and Contributors