Service Oriented Architecture is one of the most popular
architectural paradigms today, but without any standardized reference model. It
is an architecture that provides seamless Enterprise Information Integration
between loosely coupled distributed applications or services over the network.
SOA does not necessarily mean Web Services, J2EE, or CORBA. In fact, these are
the implementations of SOA.
SOA is based on the following:
·
A service provider who provides the service
·
A service consumer who uses the service
·
A service registry
·
A service contract
·
Service publication and dynamic service lookup
The three basic functions of this architecture are:
·
Register
·
Find
·
Bind
What is a Service?
A service
is an implementation of a well-defined, self-contained, independent business
functionality that accepts one or more requests and returns one or more
responses through a well-defined, standard interface.
The following are the basic properties of a service:
·
The interface contract to the service is platform-independent.
·
A service can be dynamically located and invoked.
·
A service is self-contained.
·
There should be loose coupling between the service consumer and
its provider.
·
A service should focus on business functions and not the
technology.
SOA Concepts
In order to have
a proper understanding of this technology, the following key concepts need to
be understood.
Service Provider
The service provider is the network-addressable entity that
accepts and executes requests from consumers. The service provider publishes
its contract in a service registry for dynamic access by the service consumers.
Service Consumer
The service consumer is an application that requires a
service. It is the entity that initiates the locating of the service in the
registry, binding to the service over a transport, and executing the service
function.
Service Contract
A contract is a specification of the way a consumer of a
service will interact with the provider of the service. It specifies the format
of the request and response from the service.
Service Proxy
The service provider provides a service proxy to the service
consumer. The service consumer executes the request by calling an API function
on the proxy. The service proxy finds a contract and a reference to the service
provider in the registry. It then formats the request message and executes the
request on behalf of the service consumer.
Service Lease
The registry grants the service consumer a service lease
that specifies the duration for which the service is valid. When the lease
expires, the service consumer must request a fresh lease from the registry. It
reduces the coupling between the service consumer and the service provider.
Message
Messages are the means of communication between service
producers and consumers. These are typically constructed using XML documents
that conform to XML schema.
Service Description
This consists of the parameters, constraints, and the
policies that define how to invoke the service in a standardized format.
Advertising and Discovery
Advertising refers to the ability of a service to
communicate its description to the service consumers. This can be of the
following types:
·
Pull
·
Push
In the pull methodology, the service consumers request the
providers to send them the service description. In the push methodology,
however, the service provider sends the service description to the service
consumer.
Service Registry
The relationship between a service provider and its consumer
is dynamic and is established at runtime by a binding mechanism in a network
based repository known as the service registry. The service provider registers
a service with the service registry that contains all the available services
that are published by the service provider.
The benefits of the service registry include:
·
Scalability
·
Decoupling
·
Hot updates
·
Dynamic service lookup
Benefits of SOA
The benefits of the SOA approach are:
·
Platform independence
·
Simplified Integration
·
Reduced Risk
·
Decoupling between service providers and service consumers
·
Incremental development, deployment, and maintenance
·
Location transparency
·
Simplified application maintenance and lower maintenance costs
Conclusion
Service Oriented Architecture (SOA) is the best scalable
solution to reduce complexities in the software industry today, but it has yet
to have a standardized business model. The industry experts feel that once this
is achieved, it promises to be a solution for many businesses for the years to
come.
For Further Reading
Please refer to the following links for more information on Service
Oriented Architecture.
http://www.ondotnet.com/pub/a/dotnet/2003/08/18/soa_explained.html
http://www.developer.com/services/article.php/1010451
http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-soa.html
http://www.webopedia.com/TERM/S/Service_Oriented_Architecture.html
http://objectsharp.com/blogs/bruce/articles/235.aspx
http://www.15seconds.com/issue/031215.htm
http://msdn.microsoft.com/architecture/soa/default.aspx?pull=/library/en-us/dnmaj/html/aj1soa.asp