Technical Spotlight on SOA (Service Oriented Architecture)

Well now a day all big organizations/executives have been talking about SAO as a buzzword (For one thing, it’s three word) and SOA enabled Architecture. Here I am sharing my learning and experience from SOA…

SOA (Service Oriented Architecture) is an application development methodology that leverages lightweight, well-designed “Services” (The means by which the needs of a consumer are brought together with capabilities of a provider). In other words:  SOA is a style of building distributed systems that enables business integration using services as building blocks or It is a thought process and methodology of decoupling IT assets – Software and hardware – from business processes. We can say SOA is a business-driven IT architectural approach that supports agile, innovation and optimization.

Building blocks of SOA:

·         Business level Services

·         Infrastructure level services

·         Services Management

·         Security

·         Services Directory

Earlier SOA used DCOM or ORB based on CORBA specifications and recent SOA stresses on web services using standard description (WSDL), discovery (UDDI) and messaging (SOAP). Services oriented architecture may or may not use web services but yes web services provide a simple way towards service oriented architecture.

                                   Service-oriented architecture

Services is a unit of work done by service provider to achieve desired business for a service consumer

Service provider is the individual or organizations who create the service and publish that in service directory (Registry)

Service Directory is a well-known directory of available services. It registers available services and making them easily accessible for multiple reuses.

Now what should be the characteristics of a “Service” and which characteristics that define the “service”? Service should have Syntax, Semantics, QoS and Business Traceability. Below are the lists of characteristics of a “Service”:

·         Well defined interface

·         Modular

·         Stateless

·         Connectionless

·         Coarse grained

·         Location transparent

Here is the list of design principles that drive SOA:

1.      Modularity

2.      Encapsulation

3.      Loose coupling

4.      Separation of Concerns

5.      Compos ability

6.      Single Implementation

Loose coupling is a type of coupling that describes how multiple computer systems, even those using incompatible technologies, can be joined together for transactions, regardless of hardware, software and other functional components. Or By decoupling from platform, protocol, location and language using interface based assembly.

SOA resolves four important dependencies that are:

·         Platform Dependence

·         Location Dependence

·         Implementation Dependence

·         Information Format Dependence

Benefits of SOA:

Service-oriented architectures offer the promise of business agility and resilience through reuse, loose coupling, flexibility, interoperability, integration and governance. These are realized by separating service description from their implementations, and using this descriptive metadata across the service life cycle.

·         Increased business responsibilities and agility

·         Ability to transcend organizational boundaries

·         Reduces product development cycle times

·         Exposes commodities in business processes

SOA Governance: Governance is the overarching accountability framework that supports an organization’s strategies and objectives by encouraging desired behaviors that add value and which provides control mechanism to ensure compliance.

”Governance is about tracking all the rules and monitoring events around them to ensure that service-oriented architecture works the way it’s supposed to” says Daryl Plummer, a Gartner managing VP.

We should address following technical issues while designing SOA:

1.      Interoperability

2.      Loose Coupling

3.      Location transparency

4.      Modular issues

5.      Reuse focus

6.      Integration issues

7.      Granularity

8.      Application assembly to model business process

9.      Intra company solutions using existing components

10.  External integration solutions using web-services

Service Modeling Techniques:

·         Top down approach

·         Bottoms up approach

·         Middle-out approach

I will keep writing about SOA and other learning and experience. You can write you valuable comment over it.

Thanks,

~Kumar

Leave a comment

Your comment