Service orientation is a means for building distributed systems. A Service-oriented architecture (SOA) maps capabilities and interfaces so that they can be orchestrated into processes.
SOA is about application interoperability, distributed systems, service provision and consumption, supporting business processes that provide better response and performance to their users, represent data and functionality at an appropriate level of granularity and, of course use carefully constructed interfaces that are independent of implementation.
The concept of layered architecture will be familiar to many. The division of an application into three tiers – presentation, business logic and data management – has been a useful strategy for many years since the advent of the client/server application architecture.
The move to service-orientation requires the expansion of this structure to accommodate the offering and consumption of "services". Further the notion of an "application" becomes less meaningful in the sense that we are now interested in working with a collection of services offered by a number of applications rather than working within the confines of a single application.
offering and consumption of business services is a function of the business
tier. Business logic is required to perform the business tasks handled by the
application; apply consistent business rules; request, validate and update the
appropriate data; control the execution of consistent, approved business
processes; and, when the application is service-oriented, make business
functionality and data available to the consumer.
The deployed in the business logic layer are as follows:
Business Components, which perform business tasks, apply business rules, manage business data and expose services for consumption by business process components.
Business Process Components, which are sometimes called Business Workflow components. They have the job of controlling multi-step business processes, invoking the appropriate business functionality at the right time and obtaining and submitting data at the appropriate stage of processing by communicating with the business components providing the required functional and data processing capabilities.
Business Entity Components which manage the movement of data between components. These operate a logical level and maintain the data model "owned" by the business component
…. and, most importantly
Service Interface Components, which expose the functionality of the business component (business logic) and the owned data of the business component (business entity) as a set of related services.
The types of component deployed in the presentation tier are:
User Interface Components, which provide a means of interaction between the user and the application. User Interface components handle the rendering of data for particular end user devices such as PDAs and mobile phones as well as more familiar computing devices such as browsers, rich client devices such as PCs and terminal devices.
User Process Components, which control the interaction of the user with the application and ensure that a flexible, yet predictable, process is followed. For example, this involves making sure that all required input data is gathered and subject to first level validation