In his obit for service-oriented architecture (SOA), Sean McGrath draws lessons from the demise of WS-*. Here are what Sean considers the key characteristics of something that might actually work:
- The noun/verb inversion in REST
- Temporal decoupling
- A “lets get real” approach to transactions
- Purpose-agnostic data representation
- An awareness that Object-oriented integration does not work in the large even though it works great in the small.
Read his post for links and more information.
I find the last point especially interesting. OO works well for developing many types of interactive applications, but maybe that’s just a fluke, and its principles are not applicable to the world at large. I’ve already mentioned that I find OO a poor fit for database-driven webapps, even though I consider myself primarily an OO developer. The real world doesn’t fit nicely into class hierarchies (yes, I know about aspect-oriented programming; in fact, I remember something similar for LISP called “facets” from late 1970’s or early 1980’s AI literature).
Here’s my answer to the web services, WS-*, SOA litany of trials: http://wanderingbarque.com/ws-reloaded. I think it addresses most of the points of the above. Make that “will address.” This is early stage, embryonic, vestigal thinking, and slow moving too.
I’d be very happy to see the SOA acronym be publicly executed and buried in a deep hole, so I hope the *term* is DOA. I like the idea of salvaging the useful bits that emerged from the SOA hype, but I suspect there are radically divergent opinions on what they are — every time this permathread cluster re-emerges, we agree to disagree on overarching principles but agree that most of these ideas have applicability in specific domains – even the much-scorned RPC in 3-tier architectures.
Sean says “The industry only has itself to blame….Now the market thinks the tech. companies are pulling a stunt and they are largely right.” I for one blame the analysts, not tech companies. The analysts make their living inventing over-arching concepts and then going around to explain what they really mean, and how EII is really very different from the old-fashioned idea of EAI, and how an ESB is quite different from a MOM, ad nauseum. I see the tech companies (at least the smaller ones) jumping thru the analysts’ hoops on this stuff, trying hard not to be stuck in the “lower-left quadrant” by failing to ride the buzzword bandwagon.
I very much agree that ” Trying to convince customers that all the temporally coupled, three tiered architectures they had where, in reality,special cases of a beautiful new over-arching theory called SOA, has backfired. The dangerous bit here is the attempt to erect an over-arching theory over heterogenous reality. REST is another over-arching theory and needs to be treated with just as much skepticism. so that we don’t jump from the SOA frying pan into the REST fire.
Question for those who remember the gool ol’ days better than I do: Didn’t we go thru much the same hype / confusion cycle with OO in the early ’90s? Wasn’t OO declared DOA at some point early on when the “software ICs” vision didn’t materialize and the religious disputes of the sort “should a square be a subclass of rectangle” starting breaking out? Wasn’t C++ just as much of a hideous mass of misbegotten complexity as WS-* (and just as hated by the Smalltalk / Eiffel purists)?
There is little doubt that the “services revolution” (if it happens) will be seen in retrospect as underwhelming as the “OO revolution” does today … but that’s quite a ways from saying that it is DOA.