Provider: IBM

The presenters define Service Oriented Architecture (SOA) as “an integrated software infrastructure and design approach, leveraging Web computing standards, for delivering business functions as shared and reusable services More

A service-oriented architecture is essentially a collection of services. These services communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity. Some means of connecting services to each other is needed. More

Service-oriented Architecture (SOA) is an evolution of distributed computing and modular programming. SOAs build applications out of software services. Services are relatively large, intrinsically unassociated units of functionality, which have no calls to each other embedded in them. SOA

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.

Service Oriented ArchitectureUnfortunately, 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).