Marco Dorantes' WebLog

"Computer science is no more about computers than astronomy is about telescopes" -Edsger W. Dijkstra

Does SOA imply that OO is dead?

Does SOA imply that OO is dead?

  • Comments 9

Is object-orientation dead in the presence of service-oriented architecture?


I just talked with a respected practitioner and author in our industry about future directions and advanced topics; he thinks that we as industry still need to understand objects in the first place.


I agree; the level of detail were objects have a significant impact usually is dismissed for practitioners, and for non-practitioners it falls out of their attention.


In the context of this post, a practitioner is someone directly responsible for the design decisions of a software system, from its inception to the deployment and further evolution.


Nevertheless, OO should be dead in the context of distributed objects, as stated in Martin Fowler's First Law of Distributed Object Design: don’t distribute your objects.


Errant Architectures

Software Development Magazine April 2003


Object-oriented design delivers value at a particular granularity level which is different than .NET Remoting or Web Services across the wire. .NET Remoting is closer to that granularity level when used across AppDomains in the same machine.


Some observed properties of different design approaches for take in account at designing are:


Structured design

Object design

Component-based design



Very fine:


Method level



Abstract data type level



Interface level




Application façade level







Very loose

Communication scope



Inter-local application

Inter-remote application




The June 10, 2003 Connecticut Object Oriented Users Group meeting about Service Oriented Architecture held a related discussion


In fact, service-orientation is an old object-oriented design concept, as stated by Timothy Budd since first edition of "An introduction to object-oriented programming", section 2.3.5: A service-centered view. This is one thing many people miss about object-orientation: Abstract data type design, where the behavioral interface is not just a mere set of function calls but a collaboration protocol based on 'sending messages' instead of just functions calls.


SOA is the same concept at another level of abstraction, an architecture style useful if and only if, we don't mix abstraction levels when designing services. Andy Hunt and Dave Thomas wrote about some signs of mixing abstraction levels in their IEEE Software May 2004 article: "OO in One Sentence: Keep It DRY, Shy, and Tell the Other Guy".




Page 1 of 1 (9 items)
Leave a Comment
  • Please add 3 and 6 and type the answer here:
  • Post