SOA is not a replacement for OO
SOA is not a replacement for OO, no matter what Yogi says.
No No No!
< ?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
SOA is not about replacing OO. SOA is about one aspect (Yes AOP works
great with SOA) of your application.
Your application still needs to be designed well and that typically means
application of all the OO design principals which you have come to know and love
(or hate).
A principle of SOA is to not expose complex types (#1), yes. But this is best done < ?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />IMO through a facade (not necessarily the
pattern) or aspect which still uses well designed objects underneath. (#2)Using composition much more is not
really a requirement. In fact I
wouldn’t change my approach to OO design because of SOA, but using composition
to expose services is a great approach, often through use of a the facade
pattern.
Separating business logic and process from the business data really has
nothing to do with SOA and everything to do with a good OO design. If you aren’t already doing this, then
it is likely your OO designs could use some improvements. Since many of us are already doing this,
we are just more read for SOA when we choose to implement that
aspect.
I’m a huge fan of
DTRT, do the right thing. So far I have observed that SOA doesn’t change
the right thing, and that 99% of the time the right thing is continuing OO
design.
August 5th, 2006 at 3:30 am
I have a podcast on this topic up on the Dr. Dobb’s Portal, “Does SOA mean the end of OO?” here:
http://www.ddj.com/188500437
November 9th, 2006 at 4:24 pm
[...] I just really liked when he wrote “SOA is really just OO applied to distributed systems”. Yes yes yes! Thank you! Unlike what others read and think about SOA, Nick got it right. I still say that Yogi got it wrong. SOA is not a replacement for OO. [...]
November 9th, 2006 at 4:24 pm
[...] I don’t think I would use the word unrelated, but the are definitely NOT two different ways of thinking. I guess this is a pet peeve of mine. DDD is also not a replacement for Object Oriented Design. Rather, DDD “is a way of thinking and a set of priorities…” according to http://domaindrivendesign.org/. [...]