What is Service Oriented Architecture - SOA
B Sahoo Posted On : 17/02/2012
About Author
Biswaranjan Sahoo have good working and teching experience in Microsoft technology.

Service Oriented Architecture

You all know about Object Oriented programming (Oops). But now a days all are started talking about Service Oriented. What is that? In .net 4.0 Service Oriented newly introduce by Microsoft.

In this article, I am going to tell you what is services, why it came, what is use of Services and where we going use this service in our development.

Are you think, Oops are going to absolute due to interdict of Service Oriented. That is not true. Both are different. Mainly Service oriented widely use Oops only. In this article, I will told all about Service Oriented.

First, we start What is Service. 

Service

Services are logical encapsulation of self contain business logic or functionality. Services are not class or components. It is self contain business functionality and communicate using message with other services. Service is not only self contain but also self describing.

For better understand of Services, I want to start talk regarding programming style since 1980.
See the above picture. In 1980's, we basically  follows the function programming. The developers of new era are not know what is function programming. So, I want to elaborate the function programming.

Functional programming is a programming paradigm that treats computations as the evaluation of mathematical functions and avoids state and mutable data.

The main drawback of function programming is reusability. We have to write same function in every page, when ever we require. Except that, other drawbacks of functional programming are Extensibility, Simplicity and Maintainability.

In 1990's Object oriented programming introduced. You all are know about Oops. But I will tell little more, how Oops over come Function programming drawbacks.

OOP is a design philosophy. It stands for Object Oriented Programming. Object-Oriented Programming (OOP) uses a different set of programming languages than old procedural programming languages (C, Pascal, etc.). Everything in OOP is grouped as self sustainable "objects". Hence, you gain re-usability by means of four main object-oriented programming concepts.

I told you, there are 4 drawbacks in Function Programming.

  1. Reusability
  2. Extensibility
  3. Simplicity
  4. Maintainability

Oops going to overcome all these 4 drawbacks. In oops, due to class, objects, the reusability issue of function programming is solves. Same as Extensibility issue solved due to use of Inheritance in oops and Abstraction, Encapsulation, Polymorphism makes the development simple. Due all these it is easy to maintain.

Main thing is that, due to Oops we are able to fix all drawbacks, which are we are facing in 1980's (function programming style).

Now developer's life feel easy. Ooops, still we are facing come problem for development, such as if we develop one class for one application, we need to use in different project or application, which may be developed in different language. Still we are facing problems. Yes, there is some drawbacks with Oops.

The drawbacks of Oops are

  1. Class can not interact outside of Application.
  2. Classes are not language interoperability. i.e Class made in one language can’t be used in another language. if a class designed using .net, it can’t work in java.

In 2000, Message Programming come to limelight to solve the above drawbacks of Object Oriented programming.

Class / components are communicate using Message in form of XML, CSV. So we have a loosely coupled  system.

  • Message is in standard format & cross platform compatibility.
  • Message should be communicate asynchronously, realibily and in a secure way.
  • Either .net or java do not think about there compiling methodology or dll or classes, they only think about messages.

Every thing is good now. Then IT industry think about Message to make it more stanrdaised and more flexible to use it in any programming language.

Then Service architecture came and started its own revolution. This architectural style know as SOA.

 

Service Oriented Architecture

A service-oriented architecture is created by services communicating with each other.
The SOA architecture allows
 -Different systems and programming languages to talk to each other
 -Describes the service interface clearly
 -Allows search for needed services
It’s made up of - service provider, service broker and service requestor
Web Services implement this architecture

Service Orientation is a complement to Object Orientation. That means Service Orientation will not kick Object Orientation out. Object Orientation in its core part of it. In Service Orientation things are described via services and divide the system into smaller parts which run as services.  These services can communicate with others via messages.  In each service you can apply Object Orientation to accomplish goals of that service.  One important benefit of Service Orientation is use different technologies and platforms to design a service by using Object Orientation then use universal formats to build messages and start communication between different pieces of your system.

Principles of SOA

  • Boundaries are explicit.
  • Services are autonomous.
  • Services share schema and contract, not class.
  • Service compatibility is determined based on policy

The main goal of SOA is to connect disparate systems. In order that these disparate system work they should messages to each other. ESB (Enterprise service bus) acts like a reliable post office which guarantees delivery of messages between systems in a loosely coupled manner. ESB is a special layer which delivers messages between applications. In the figure we have shown a huge plump pipe. It’s not hardware or some wire etc. It’s a group of components/software which helps you to send and receive messages between the disparate applications.

SOA registry is like a reference database of services. It describes what each services do, where are they located and how can they communicate. It’s a central reference of meta-data for services.

SOA workflow allows us to define work flow using the services in SOA registry.

Service broker reads the work flow and takes services from the SOA registry and ties them together. Service brokers are normally middleware like EAI (Enterprise application Integration) products. You can get a list of decent EAI from Sun, Microsoft, and IBM etc.

Process manager is nothing but the collection of SOA registry, SOA workflow and service broker.

SOA supervisor is traffic cop ensuring that services do not have issues. It deals mainly with performance issues of the system so that appropriate service levels are met. If any of the services have performance problems it sends messages to the proper infrastructure to fix the issue.

Use of SOA

Check the below image for better understand of use of SOA in development process.

Summary

In this article, I am trying to give you details of SOA. Why SOA came and the use of SOA  in development process.

Do not forget to give your valuable suggestions.

Post your Suggetion or Comment
Name :
Email Address :
Comment :