SOA is old medicine(OOP) in new box ??

I think most of ideas like encapsulation and abstraction obviously derived from same principles as object orientation. Object-oriented analysis and design was responsible for building stream lined applications comprised of reusable, flexible software. OO design aspire to fulfill the business reqmt throughout the lifespan of an application including post-deployment upgrades and extensions. While Service oriented design establishes a flexible design framework  that allows for the agile accommodation of  ever changing business requirement.

One of the reason why I believe they closely resemble one another is because fundamental concepts governing looks somewhat similar. Lets look at couple of them. Classes and Objects: In OO a runtime instance of class is an object and in SOA runtime a service can create run time instance of itself.  Class can be comparable to a technical service contract in service orientation.But the big difference is that class can define a combination of public/private access while service expresses only public information. Due to this a service contract can be seen as close resemblance to a interface implemented by a class. Methods and Attributes: OO design describes classes with methods and atributes which can be eiher private or public. But in service orientation if a method is defined as private then it can be used by external entitities, or  consumers. For this reason a web service contract cannot define private operations(methods). Due to emphasis on statelessness service contracts are discouraged from defining attributes. Now lets look at what they have in common, Service re-usability:Much of OO si geared toward creation of re-usable classes and OO promotes such reusability like SOA.
service abstraction: Both OO and SOA closely resembles one another while using abstraction principles. In OO abstraction requires that a class provide an interface to the external world and in soa only service contract is available up front and most of implementation and underlaying details are hidden. There is also lot of similarities between, loose coupling, service autonomy etc discussed in the which differs from the object oriented approach.

I think it is obvious from the above discussion that Object oriented Design influenced SOA during its initial stages, and much of principles are derived from OOP concepts. But there are some principles like inheritance which is completely unknown in the SOA world. Also it is worth noting that some service orientation principles such as loose coupling and autonomy, are not directly promoted by object orientation.

I think object orientation and service orientation are complementary design paradigms. It is important for us know the subtle differences between these two, so that one is not confused with another. For example Object oriented design is poor choice when dealing with distributed applications on the other hand SOA provides developers  and architects an easy way to integrate systems.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Printed from: http://kiranputtur.org/2009/05/10/soa-is-old-medicineoop-in-new-box/ .
© Kiran Puttur 2010.
blog comments powered by Disqus
  • Tweets

    Follow kiranputtur on Twitter
  • Posts

    May 2009
    M T W T F S S
    « Mar   Jan »
     123
    45678910
    11121314151617
    18192021222324
    252627282930  
  • Facebook Friends


  • About

    Here I blog about all kind of stuff from Advaita philosopy monoism to software programming, Design Oriented Approach, reviews about latest hardware storage equipments as well as my rantings about open source projects. more..

  • Following Projects