Service-oriented Architecture
Definition:
Service-oriented architecture is the term used to describe the policies and framework that allow disparate software applications to make their resources available to each other.
History of SOA
One of the greatest challenges in information technology is in finding methods by which to fully leverage the functionality of business IT services for the purposes of achieving business objectives.
Unfortunately, this task is more difficult than it may seem. Until relatively recently, computer applications were not designed with interconnectivity in mind. Instead, they were developed to perform specific, self-contained tasks without input from other systems.
Modern day computing, however, has become much more
distributed and component-based than in the past. That is, rather than a single
application performing a task, the job is shared between several components (i.e. e-mail architecture, comprised of a desktop client, a DNS service and mail servers).
The primary reason for this move towards component-based computing is practicality. It is no longer practical for an enterprise to use disparate applications to perform each task. While the setup cost of such a system would be far greater than the setup of a network of inter-linked applications, the time it would take to perform even the most basic business process would mean that the enterprise could not compete in the market.
Implementation of SOA
The basis of a service-oriented architecture lies in the development of loosely coupled services – that is, software components that can communicate with other applications without having to know their technical details.
While there are many definitions of a service-oriented architecture, there are four particular components that everyone agrees on:
Service Consumer
The service consumer is an application, component or other software module that requests a service from a separate application. The service consumer finds the service provider in the service registry, sends a service request and executes the service function.
Service Provider
The service provider is a network-accessible application or software component that provides a service to the consumer. The service provider publishes its contract in a service registry to make itself discoverable to service consumers.
Service Contract
The service contract is a specification of the way in which a service consumer can access the functionality of a service provider. The service contract informs the service consumer of the acceptable format of a service request.
The service contract is stored in a service registry, allowing service consumers to discover and utilise the services offered by the provider.
Service Registry
A service registry is a network-accessible registry that accepts and stores service contracts from providers and makes them discoverable to service consumers.
With these components in place, it is possible for service consumers to easily find services that can provide the functionality they require to complete a task. By simply querying the service registry with a specification they will be provided with a list of any service providers that can offer the function they require.
Benefits of SOA
With that in mind, it is clear to see how service-oriented architecture delivers a wide range of benefits to enterprises that implement it.
Increased Return on Investment
Enabling services to share functionality will naturally result in an increased ROI from the software. In addition, the increased flexibility and functionality of services will allow them to be of use to the enterprise long after more rigid applications would become obsolete.
Greater Security
Since services are used by multiple applications they have their own
security mechanisms in place. This ensures that
data passes through multi-level authentication both the service level and the client level, improving information security.
Improved Business Processes
By making services available throughout the enterprise, a range of business processes can take advantage of the functionality offered by software modules that would previously have been inaccessible. By using these modules it becomes possible to further optimise
business processes.
Reduced Integration Costs
Since service-oriented architecture is designed to connect disparate applications it solves the problems that arise from software incompatibility.
Improved Adaptability
Finally, SOA can aid enterprises in improving their reaction times when adapting to changing market conditions. Flexibility of the
IT infrastructure can allow enterprises to quickly change focus and develop new processes, unbound by the constraints of inflexible applications.
For further information,
IBM offers a comprehensive guide to migrating to a service-oriented architecture. Information resources can also be found at
CETIS and
Sheffield University
(pdf).
|