SOA nonsense?

SOA nonsense?

Old forum URL: forums.lhotka.net/forums/t/2263.aspx


DansDreams posted on Friday, February 02, 2007

Rocky's blogged about SOA several times and I find I agree with his opinion.  Thought you guys might enjoy this from a technologyevaluation.com paper:

"Examples of SOA can be found in our everyday lives.  A common example is a DVD player.  The player offers the service of playing the DVD.  You can play multiple DVDs in the player.  You can even play the same DVD in another player, but the sound quality may not be the same.  SOA, however, should not be confused with object-oriented programming (OOP).  Following our DVD example, in OOP the DVD would come with its own player, not to be separated.  This diminishes one of the primary advantages of SOA, namely reusability."

I think it's interesing how the author twists the analogy to fit his point of view.  It seems to me the player is a UI, and no n-tier/OOP advocate in their right mind would suggest such a thing. 

Now, what might be suggested is that the DVD be responsible for delivering its own playlist and other details about its content, rather than have the player (UI) responsible for retrieving that after the fact.  Now, who else thinks that kind of OOP thinking  would be an improvement to the DVD design?  :)

 

SonOfPirate replied on Friday, February 02, 2007

Let's extend that to consider the DVD itself nothing more than a data store, eh?

 

DansDreams replied on Friday, February 02, 2007

Yeah, there ya go.  The analogy could be twisted in so many ways to make whatever point you wanted, couldn't it?

SonOfPirate replied on Friday, February 02, 2007

Not to blow too much smoke up Rocky's a**, but the biggest reason I became a fan years ago and bought into Csla was how thoroughly he explains his decision-making process and is very up-front that many of his decisions are based on nothing more than his preferences.  That kind of honesty was and continues to be refreshing.

As the article you refer to indicates, there are too many "authors" out there who have their opinions and don't think twice about making what they read and hear support them.  Good developers, which this forum is full of and is the reason why it is so successful and useful, keep an open mind, know that there is always more knowledge out there and are willing to change their opinions based arguments presented by others.  Put this "author" in front of a live audience and see how long he holds his opinions when challenged.  The internet has empowered this type of "reporting" because anyone can get on a soapbox and preach whatever they want with limited risk of being exposed as an idiot.

That wasn't too preachy was it?  Big Smile [:D]

 

jspurlin replied on Friday, February 02, 2007

You know, I really do not understand the polemics here.  It really depends upon what you are trying to accomplish and if there is an approach better tailored to your needs. Now there is even another anacronym going around called SBA (Space Based Architecture). 

There is a "really" significant paradigm shift underway, and in part it is because with the emergence of the web and the growing relevance of information technology in the conduct of daily business, large corporations have found a legitimate need to rethink how the technology is supposed to work.  SOA is not a pedantic discuss among programmers, it is a philosophy on how business needs are met.  I think it is more about discovery of how to meet those business needs.

Check out this MSDN article:  An Overview Of Service Oriented Architecture in Retail

Here is a paragraph from that article:

Service orientation (SO) is the natural evolution of current development models. The, '80s saw object-oriented models; then came the component-based development model in the '90s; and now we have service orientation (SO). Service orientation retains the benefits of component-based development (self-description, encapsulation, dynamic discovery, and loading), but there is a shift in paradigm from remotely invoking methods on objects, to one of passing messages between services. Schemas describe not only the structure of messages, but also behavioral contracts to define acceptable message exchange patterns and policies to define service semantics. This promotes interoperability, and thus provides adaptability benefits, as messages can be sent from one service to another without consideration of how the service handling those messages has been implemented.

Here is the key piece I think causes so much confusion:

Myth:  SOA is a technology.

Fact:  SOA is a design philosophy independent of any product, technology, or industry trend.


DansDreams replied on Friday, February 02, 2007

You made me realize that I started this post with the background context of the blogging Rocky's done on SOA and my own fairly extensive (relative, anyway) research into WF.

I never intended to imply that SOA is stupid or worthless or that only lemmings were adopting it.  My intended point was specifically on the complete twist or lack of logic employed by this particular author to support his basic position that SOA will cure cancer and OOP is archaic idiocy.

And that has been a large part of the discussion here and by Rocky.  This is the second person I've heard say that specifically that OOP limits reusability.  Such a blanket statement is wreckless foolishness in my opinion.  OOP came about because of a need too, just like SOA.  An SOA advocate like this author might smugly say a DVD has no business influencing how it is played, but I imagine the person who wrote and recorded the music might very well disagree.  Hence, we developed a concept of encapsulation.

It seems to me its a balancing act and not nearly as cut and dried as the SOA advocates generally seem to claim.  Rocky's position, with which I complete agree, is that service-type interfaces are indeed incredibly powerful and useful, but have their limits and appropriate places.  The SOA zealots I've heard do not make any such statements.

In general, I find that when two people disagree and one concedes the other has some valid points but the second person just keeps saying the first is a moron I value the more reasonable sounding person's opinion and ignore the second person's.  In my experience, spending many many hours listening to presentations and talking one-on-one to experts about WF, the one position is an attempt to achieve "best of both worlds" and the SOA position is generally all-or-nothing abandon everything we've learned and decided over the last 15 years and start all over again.

Just my two cents worth.  To review again, for clarity, I do not mean to deny that SOA has lots of potential and solves some important problems.

jspurlin:
You know, I really do not understand the polemics here.  It really depends upon what you are trying to accomplish and if there is an approach better tailored to your needs. Now there is even another anacronym going around called SBA (Space Based Architecture).  I do adopt a little bit of a "wait and see" attitude about emergent technology or paradigms in software architecting.  I am just now starting on Workflow, which I think has amazing potential.  SOA has been around for awhile, enough to say there is "proof in the pudding".  I am just getting deep about OOP and a paradigm shift for some toward SOA "is" because there are inherent strengths and weaknesses.  I think it is "great" I can use a service with no need to know anything more than the contract or interface. Interoperability and cross-platform messaging is very desirable.  I would rather be discussing the virtues of SOA that preoccupied with criticisms that close the mind to new ideas. 

I am beginning to learn SOA.  There are some scenarios where it fits well with what I plan to do and there are some scenarios where OOP is still the better fit.  I do not think anyone in there right mind would seriously suggest that SOA is a one size fits all solution.  To suggest that traditional OOP isn't either is right on the mark.

There is a "really" significant paradigm shift underway, and in part it is because with the emergence of the web and the growing relevance of information technology in the conduct of daily business, large corporations have found a legitimate need to rethink their technological solutions.  SOA is not a pedantic discuss among programmers, it has emerged because the need is there.

SonOfPirate replied on Friday, February 02, 2007

I agree completely and couldn't have said it better myself.

 

DansDreams replied on Friday, February 02, 2007

And to clarify further, the paragraph you quoted there jspurlin is indeed along the lines of compromise best-of-both-worlds conversation I spoke of.

But the quote I gave is clearly not, and that was specifically what I was referring to.

I think it's that simple.  We really don't disagree probably. 

I'd love to talk to you about WF.  I've invested significant hours and dollars investigating this and I'm just not buying the hype.  If you feel strongly about it a discussion would be worthwhile for both of us I think.  But, if you want to do that, search here and read the threads about it I've made already and see where you have a different perspective that what I've already stated.  Cool?

SonOfPirate replied on Friday, February 02, 2007

btw, fwiw, I agree about WF as well.  If someone can evangelize about the benefits/pros, I'm all ears.

ajj3085 replied on Friday, February 02, 2007

DansDreams:
This is the second person I've heard say that specifically that OOP limits reusability.  Such a blanket statement is wreckless foolishness in my opinion.


Also, blindly accepting that reusablity trumps all else is also foolish.  In many cases, reusability has a negative impact on maintenance costs.  The common wisdom is that reuse = lower maintenance, but I think a case can be made that the opposite many times is true, because components that 'reused' in such a way that a change to the reused component breaks other components.  I think you need to balance reuse with maintence costs.

jspurlin replied on Friday, February 02, 2007

I just began work (my first forray) on WorkFlow with K. Scott Allen's "Programming Windows Workflow Foundation - Practical WF Techniques and Examples using XAML and C#.  It is the best I could find until the next wave of WF books circa March and April.  Also, I visit Ode To Code regularly and I respect his art for teaching.

I am only in the first chapter, but I know from his other books and I expect this to be no different, he really takes the time to walk you through things and not just offer complimentary source code.

One thing I do recommend.  I have purchased two physical books from Packt before (both with K. Scott Allen involved).  He has a real art for explanation. The print edition of Packt books, however, leave something to be desired.  I have good eyes and I have seen better print on a credit card receipt.  The good news is that Packt sells the pdf version for about 15.00 less.  Not the GREAT deal Apress makes for buying the pdf versions of their books.  I can print Apress pdf chapters if I want to go to the coffee store, the copy protection on Packt pdfs is more tight:  no printing, for example.

Since I am only on the first chapter ( I am "really" going to work through this one step by step) I can only recommend it from my past two experiences where K. Scott Allen is a contributing author. How he explains the importance and relevance of Workflow is fantastic: real layman's terms and it really makes sense.

You might give it a try for getting your feet wet with WF.  I have squandered a few dollars on a promise book about new technology before, so I did a lot of looking around before deciding on this one.

ajj3085 replied on Friday, February 02, 2007

Yikes.  I can only think the author either is misinformed about OOP or is purposely distorting the truth for some reason.

Copyright (c) Marimer LLC