Service Oriented Architecture
page 1 of 1
Published: 17 Mar 2006
Unedited - Community Contributed
Abstract
In this article, Joydip examines the concept of Service Oriented Architecture (SOA) and its benefits.
by Joydip Kanjilal
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 15621/ 34

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

 



User Comments

Title: good   
Name: Ravina
Date: 2006-09-07 2:59:11 PM
Comment:
It is good but no implementation example!
Title: Excellent Article on SOA   
Name: G.Ram Mohan
Date: 2006-08-12 4:56:48 AM
Comment:
Hi Joydip,

Thanks for a very good Article on SOA. It gives the developers a basic understanding and the importance of the SOA.The article in explained in plain,understandable english with rich context. Thanks you.
Title: good article   
Name: websurferdude
Date: 2006-03-24 5:51:36 PM
Comment:
I like the article.

As a side note: why do most people make posts with atrocious grammar? (eg. "more better", and the other posts use "should" when "could" may have been a better choice )
Title: good one   
Name: siva prasad chavara
Date: 2006-03-20 4:45:28 AM
Comment:
Nice article .An excellant introduction to SOA.Thanks
Title: Excellant   
Name: Anasmita Roy
Date: 2006-03-18 3:26:23 AM
Comment:
An excellant introduction to SOA. Great work. Code examples should have made this article more better.
Title: Good Summary   
Name: jimatjude
Date: 2006-03-17 10:11:52 AM
Comment:
a nice, concise summary of SOA with understandable explanations. For those who want more, they can refer to your list of other articles, but for those simply seeking a good operational definition of SOA, without the need for coding details, this is a wonderful description. Thanks
Title: Nice   
Name: Ravi
Date: 2006-03-17 3:44:29 AM
Comment:
Nice article again but providing source code should have been better.

Product Spotlight
Product Spotlight 





Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2017 ASPAlliance.com  |  Page Processed at 2017-05-25 1:01:28 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search