As the next step in the architectural evolution, service-oriented architecture captures many best practices of the architectures that preceded it. Taking into account the number of existing systems and investments made by the industry in them, any new architecture should leverage and improve upon existing infrastructures and shouldn't discard any part of these infrastructures. This is really the essence of SOA; it aligns the existing technical infrastructure closer to business.
Figure 1 illustrates a logical architecture for a system based on a SOA. The layers in blue are the existing tiers of an N-tier application architecture and the remaining are the SOA-specific layers. The combination of infrastructure service layer, business service layer and the service composition layer is also referred to as the service layer.
As depicted, the SOA-specific layers are additional layers sandwiched between the existing tiers of the current architectures. The layers in the diagram are stacked in standard manner, based on usage. The top layers use the services of the bottom layers to satisfy requirements and the functional expectations from the layers above.
Non-SOA-specific layers: Existing layers
Every business's IT infrastructure has systems built in various architectures and methodologies. The systems can be Web-based, desktop-based, pure backend systems, or any other kind of application. The entire exiting system infrastructure can be broadly classified into three tiers: data tier, business tier and presentation tier.
Enterprise data layer: Data tier
The enterprise data layer is the enterprise's datastore. All data requirements for successful business operations are part of this logical layer. The data includes database information, file systems, hierarchical directories, legacy storage systems and all other storage media. This layer is the data tier of the traditional N-tier architecture.
Enterprise business layer: Business tier
The enterprise business layer consists of the business applications (and logic) that exist in the enterprise. It includes applications (and logic) developed using .Net, Java Enterprise Edition, and various other technologies. The logic in stored procedures is also part of this layer. In short, this layer is the enterprise's existing business backbone and the traditional N-tier architecture's business tier.
Enterprise frontend apps/channels: Presentation tier
All business front-end applications and channels are part of this third layer, including the entire desktop and Web-based front ends that work with the enterprise backbone. The business channels include external business-to-business interface systems like dealer access systems and address verification systems. This layer constitutes the presentation tier of traditional N-tier architectures.
Before delving into the SOA-specific layers, considerable understanding of a business process and its constituents is necessary.
Figure 2 illustrates a simplified block diagram of a business process. A business process is a series of business tasks tied together. Each business task accomplishes a specific business step in the whole process. For example, "validating account number" and "checking account balance" are business tasks in a "bank amount transfer" business process.
A set of business tasks can be grouped together based on the coupling of their usages. Such a group can itself be considered a business task, referred to as a composite business task. For example, the "transfer funds" business task is a composite business task consisting of business tasks "debit source account" and "credit destination account." The composite business task provides a reusable group of business tasks.
All the individual business tasks along with the composite business tasks form the complete business process. For example, "bank amount transfer" is a complete business process with steps like the ones mentioned above.
With this background of business process and business tasks, let's look into the SOA-specific layers.