In the previous chapters, we discussed the basics of modularity and OSGi. In this chapter, we will discuss how these concepts and techniques are applied to building sophisticated cloud applications.
What exactly do we mean by cloud applications? This is the term that is nowadays used to describe modern (web) applications using concepts such as RESTful Web Services and NoSQL and that require an elastic form of scalability. Technically speaking, this doesn’t have to do anything with the cloud per se, but these are concepts from the cloud era that we live in. Another term that is frequently used for these kinds of applications is SaaS, or Software as a Service offered over the Internet.
The architectural aspects we discuss should be seen as a blueprint extracted from real projects we have worked on in the past few years, and the advice set forward in this chapter could be looked at as battle-hardened best practices.
The approach we will discuss fits deployment in the cloud very well and has a lot of benefits in this area, but the architecture is just as usable for a traditional on-premise deployment.
At a high level, we can look at a typical cloud application and define it as technologies stacked on top of one another, as depicted in Figure 6-1.
When aiming to build modern web applications, the approach ...