|
5.2. Layers on the Enterprise LevelIn this chapter, we have already discussed different service types. Now we take a first look at the overall structure of an application landscape and how the services relate to each other. Traditionally, software layers provide important levels of abstraction. You can assume that layers are sequentially ordered, where layer N is above layer N+1. Code segments within one layer N can use other code segments with the same layer in addition to code segments of the layers N+1. In a distributed environment, the concept of tiers exists, where a tier is a set of contiguous layers that can be deployed separately. Although layers and tiers are extremely useful abstractions for the construction of single applications (or services), neither is suited as an abstraction at the enterprise level. Service-Oriented Architectures provide application frontends and services that are much more suited to this purpose. SOA layers, which you must not confuse with these traditional software layers, and tiers provide a conceptual structure at the enterprise level that organizes the application frontends and services (see Figure 5-9). Each layer contains distinct types of services and application frontends:
Figure 5-9. No 1:1 relationship exists between traditional tiers and SOA layers. These concepts actually are largely independent.As we will see in Chapter 6, "The Architectural Roadmap," many problems can be solved with two or three SOA layers. In these cases, there is no benefit to artificially introducing additional layers simply to have a "complete" SOA. Recall that an SOA is about simplification. As long as a problem can be solved with simple measures, it is best to do so. Although we will not discuss this matter in great detail, we must briefly consider the deployment of SOAs and the resulting system architecture in order to prevent a common misunderstanding: SOA layers do not correspond to physical tiers. It is not necessary for services, which originate from different SOA layers, to be deployed at different tiers. Nor must all services of one SOA layer be deployed at the same location. The system architecture is driven by matters such as available hardware and system software, system management requirements, and compatibility. These issues are largely independent of requirements such as maintainability or simplicity that drive the design of the services. Actually, the design of the SOA and the system architecture are largely independent aspects of the application landscape, which is the remarkable strength of the SOA paradigm.
Figure 5-10 shows an example of how a system architecture and SOA layers can relate. It depicts three tiers at the system architecture levelthe Web server, application server, and host. You can see that the SOA layers do not map directly to these tiers. Figure 5-10. The deployment of an SOA is largely independent of the SOA layers. |
|