Software re-use is a frequently cited perceived SOA benefit. David Chappell provides his perspective on the reality of re-use in SOA in the latest edition of his Opinari newsletter . For those interested in the subject, it is a quick and illuminating read. On the whole, I agree with David’s arguments, which are in part based on an analogy to a similar, and largely unrealized promise, associated with OO a decade and a half ago.
I am inclined to see a positive analogy. I like to think that the key contribution of OO is its new approach to modularizing software. Although some may debate the following, direct support for the concepts of encapsulation, polymorphism , inheritance and abstraction in OO programming languages, coupled with the growing body of practical experience captured in design patterns and coding idioms, improved our ability to build maintainable software of large scale and complexity. Perhaps, after the hype runs its course we will realize that the main value of service orientation is in providing a way to modularize heterogeneous software systems at the level of abstraction higher than traditional objects and components. To that end, service orientation embraces the most valuable OO concepts of encapsulation and polymorphism, and adds a few concepts or tenets of its own, summarizing industry knowledge about building large scale distributed heterogeneous software systems.