Chapter 8. Creating Web Applications
Now that we have a firm understanding of what it takes to create a modular design and how we can bring such a design toward the runtime, it is time to start working on some real examples. As the title of this book suggests, we are guiding you toward taking modular concepts to the cloud, as this is the most important area of focus for modern web application development. The aim of this chapter is to take you on a tour across the various options that are out there for creating modern web applications in a modular way.
Modular Web Applications
A valid question to ask is what use it is exactly to start modularizing web applications. Just like with any application, the notion of having an improved logical and physical structure in the form of modules makes for easier maintenance and deployment. Then, the lifecycle management and service dynamics enable you to control what is available and when. Lastly, the concept of services support loose coupling, making it easy to swap implementations without changing a single line of client code. All things considered, a modular web application enjoys the following benefits:
- Encapsulated modules
- Versioning semantics
- Class space isolation
- Declarative dependencies
- Dynamic refreshing and updating (hot class reloading)
The Core OSGi specification doesn’t have any facilities for building web applications, but within the list of OSGi Compendium Services, the HTTP Service provides a way of registering servlets, ...