SOA In Buzz-Word Laden Prose
SOA is probably the most overused/abused buzzword. I would say even more so than AJAX - which is scary, really. It's also funny how "SOA experts" can make the subject even blurrier.
irakli: Got a minute?\ dharris: sure\ irakli: Trying to catch a blasphemy in this: http://www.theserverside.com/tt/articles/article.tss?l=ChurchandState
But what if I am building a new application that has little to do with integration? Say I'm building a Business Intelligence (BI) tool for analyzing and reporting on data from a data warehouse and have no requirement to integrate any legacy systems, expose any Web Services, or provide any BPEL processes. Is SOA relevant in the design of such a system? Would I apply any SOA principles in architecting this application? Would it make sense to say that my new system's architecture is SOA-based? The answer to all of these questions is "Yes".
Interpretation: SOA should be used in any application, at least at the module level
The above brings out one of the key principles of SOA-based design that is often not well articulated or recognized - separation of state and behavior. Just as many countries hold dear the principle of separation of church and state, the separation of state and behavior is important to SOA-based design.
Intepretation: State and behaviour should be separated in SOA
dharris: There are too many buzzwords/buzz-acronyms in Quote #1
irakli: End result of Quote1 + Quote2 =\ In any application, state and behaviour should be separated
So, what exactly happened to Encapsulation - the core principle of OO, again?
irakli: He got me lost there. Does it make sense to you, maybe?
dharris: that's what can happen with buzz-word laden prose
irakli: God bless you. So it's not just me?
dharris: SOA seems to me to be a redefinition of some core OO principles... clear interface to encapsulated objects.
irakli: Well, in my humble understanding, SOA is higher in the architecture stack, much higher than OO
dharris: It's just that in a modern SOA application, the "objects" are often separate applications running on separate hardware.\ dharris: exactly\ dharris: The scary thing....
irakli: ... is when people start using it on lower levels\ :)