The collective logic that defines and drives an enterprise is an ever-evolving entity constantly changing in response to external and internal influences. From an IT perspective, this enterprise logic can be divided into two important halves: business logic and application logic (Figure 8.1).
Figure 8.1. The business and application logic domains.
Each exists in a world of its own, and each represents a necessary part of contemporary organization structure. Business logic is a documented implementation of the business requirements that originate from an enterprise's business areas. Business logic is generally structured into processes that express these requirements, along with any associated constraints, dependencies, and outside influences.
Application logic is an automated implementation of business logic organized into various technology solutions. Application logic expresses business process workflows through purchased or custom-developed systems within the confines of an organization's IT infrastructure, security constraints, technical capabilities, and vendor dependencies.
Service-orientation applies to enterprise logic. It introduces new concepts that augment the manner in which this logic is represented, viewed, modeled, and shared. While the principles behind service-orientation exist in a vacuous realm of abstraction and theory, they are a necessary counterpart to the real world environments that require their guidance and structure.
The concepts introduced by service-orientation are realized through the introduction of services. Let's have a look at where services are located within the overall structure of an automated organization. As Figure 8.2 illustrates, services establish a high form of abstraction wedged between traditional business and application layers. When positioned here, services can encapsulate physical application logic as well as business process logic.
Figure 8.2. The service interface layer positioned between enterprise layers that promote application and business logic.
Services modularize the enterprise, forming standalone units of logic that exist within a common connectivity layer. Services can be layered so that parent services can encapsulate child services. This allows for the service layer to consist of multiple layers of abstraction (as explained later in Chapter 9).
In Figure 8.2 we display a fragmented application layer, where individual applications are confined to the boundaries that represent their respective proprietary platform environments. Though we show services as existing in a single, continuous layer, this only illustrates the open connectivity that exists among service interfaces. Freed from proprietary ties, services can communicate via open protocols.
On a physical level, services are developed and deployed in proprietary environments, wherein they are individually responsible for the encapsulation of specific application logic. Figure 8.3 shows how individual services, represented as service interfaces within the service interface layer, represent application logic originating from different platforms.
Figure 8.3. The service interface layer abstracts connectivity from service deployment environments.
SUMMARY OF KEY POINTS