Thesis: Concurrent Programming for Scalable Web Architectures
Benjamin Erb (@b_erb) from Ulm University recently published his diploma thesis on "Concurrent Programming for Scalable Web Architectures". The thesis provides a comprehensive survey on different concepts and techniques of concurrency inside web architectures, including web servers, application logic and storage backends. It incorporates research publications, hands-on reports and also regards popular programming languages, frameworks and databases.
Abstract:
Web architectures are an important asset for various large-scale web applications, such as social networks or e-commerce sites. Being able to handle huge numbers of users concurrently is essential, thus scalability is one of the most important features of these architectures. Multi-core processors, highly distributed backend architectures and new web technologies force us to reconsider approaches for concurrent programming in order to implement web applications and fulfil scalability demands. While focusing on different stages of scalable web architectures, we provide a survey of competing concurrency approaches and point to their adequate usages.
Topics include:
- Fundamentals of Concurrency, Scalability and Web Architectures
- Architectural Model for Scalabale Web Infrastructures
- Web Server Architectures (e.g. multithreaded, event-driven and hybrid architectures)
- Concurrency Concepts for Applications and Business Logic (including threads, actors, software transactional memory and event-driven systems)
- Concurrent and Scalable Storage Backends (consistency models, internals, systems)
- Recommendations of appropriate mechanisms, concepts and architectures
- General discussion on the challenges of concurrent and distributed programming
- Outlook on upcoming trends in programming languages and web architectures
Table of Contents:
- 1. Introduction
- 2. The World Wide Web, Concurrency and Scalability
- 3. The Quest for Scalable Web Architectures
- 4. Web Server Architectures for High Concurrency
- 5. Concurrency Concepts for Applications and Business Logic
- 6. Concurrent and Scalable Storage Backends
- 7. Recommendations
- 8. Discussion
- 9. Outlook
- 10. Conclusion