views:

274

answers:

4

I want to know the differences between SOA and OO, and why SOA is going to popular?

+2  A: 

SOA is getting popular, because it introduces several benefits:

  • Makes your system more extensible
  • Easier for use by third-party code, for example you client's clients and their systems
  • It conserves your business logic and gives the ability to add additional presentation layers easier. This can be achieved in other methods, too.

These are the main benefits of SOA, I think. But you cannot compare OOP and SOA .. they're different things and they are not interchangeable. SOA is software architecture in general, on the other hand OOP is programming paradigm.

anthares
+2  A: 

You can't really compare those two.

OOP is a programming language paradigm. Others are "functional programming" or "procedural programming".

You can use a OO language to use or create a service, but you could also use a functional language to do that.

In a nutshell SOA and OOP are two different things and you can't play them off against each other.

DR
+1, but I'm going to quibble a bit... OO isn't really much a programming model in and of itself. OO tends to come in two flavors, one of which seems to be primarily a subset of procedural programming, and one which is primarily a version of the Actor model (which I'd argue is a third, 1st class programming paradigm along with procedural and functional programming).
kyoryu
A: 

To put things in perspective:

  • OO is a methodology for building applications in a single address space. The public contract is the API

  • SOA is the architecture pattern for building applications that spans multiple address spaces (distributed applications). The public contract is the persistent data (ie. wire format) itself.

Before SOA, there was effort to extend OO to building distributed applications, the effort, called CORBA, utterly failed. One thing people learned is that building distributed application, you have to explict expose the wire format (the data), which OO attempts to hide... don't think services as RPC but instead as message producer and generators.

vtd-xml-author
@Jimmy: still spamming, I see.
John Saunders
I felt that you are not technical enough to make that call... I better giving up arguing with you (what is the point of beating a dead horse)
vtd-xml-author
A: 

apples to oranges... both should co-exist.

krefftc