When I first read about the SOA Manifesto, I thought it was pretty beige. I still do. After all, it was written by committee, and, with the exception of the Declaration of Independence, that seems to be the formula for creating a very proper, but unremarkable, work.
And I pretty much said as much in my post on it, "Much Ado About the SOA Manifesto." But recent discussion about the manifesto has brought to light a more intriguing takeaway, which I think I can sum up in two words - three if you count the "and": HTTP and REST.
Two people who participated in creating the manifesto recently wrote posts elaborating on its meaning. Of course, what caught my attention was them expounding on the Manifesto's assertion that companies should pursue "intrinsic interoperability over custom integration."
Regular readers will recall that Dr. Jim Webber, global head of architecture for ThoughtWorks, took umbrage at this statement in particular, denouncing it as "another disingenuous point" and saying it's like "telling you to buy kit for 'intrinsic' interoperability rather than doing it yourself with anarchic(!) technology like the Web."
When I first shared Webber's comments, IT veteran and blogger Mark Griffin pointed out that Webber was wrong about this. Based on tweets and a blog post by SOA Manifesto participant Stefan Tilkov, Griffin concluded the Manifesto was not promoting ESBs.
I checked out Tilkov's post, and sure enough, here's what he had to say about that particular phrase:
"Instead of integrating systems after the fact, using integration products, data transfer tools, and duct tape, SOA focuses on building services that are designed for interoperability from the very start. Integration is not an exception, it's the rule-or phrased differently, intrinsic interoperability means integration (with the meaning of 'getting separate systems to interoperate') is not a necessity anymore. You won't be surprised to find out that I personally see REST and HTTP as the best possible means to achieve this but for some reason, I did not feel I stood much of a chance to get the group to agree :-)
Did you catch how he slipped in the assertion that REST and HTTP are the best ways to achieve intrinsic interoperability? Clever.
But it wasn't until I saw it again in Anne Thomas Manes' defense of the Manifesto, which appeared this week, that I tuned into how significant REST can be to this goal of intrinsic integration, (I know, you just can't slip anything past me). Manes was a bit more restrained than Tilkov, but she's definitely hinting that REST might be the way to go:
To some degree, I'm surprised that we were able to get the ESB vendors to agree to this value statement. If you build services that support intrinsic interoperability, you really don't need an ESB. Of course you might use an ESB as a service container (not just as a mediator), in which case you can use the ESB to expose an intrinsically interoperable service. I'll just point out, though, that RESTful services are more intrinsically interoperable than other types of services.
Manes also pointed out that sometimes you can't get around custom integration, a point also made by Jordan Braunstein, the business integration and architecture partner responsible for managing the SOA Center of Excellence, in his critique of the Manifesto.
But as Manes points out, it's not an either/or proposition. Rather, the key point is to assert "that systems should be designed with interoperability in mind," which means using open, standard interfaces when possible. She also adds this caveat:
Keep in mind that interoperability is not simply a function of using standard protocols. I'm sure you've seen countless SOAP interoperability horror stories. Intrinsic interoperability is a function of semantic compatibility more than anything else. If you have to stick a transformation function into a communication path, you don't have intrinsic interoperability.
Frankly, I think her explanation of the SOA Manifesto is better reading than the Manifesto itself.
Despite the criticisms of the SOA Manifesto, I noticed that as of Tuesday, there were more than 500 people who've added their signatures online to the SOA Manifesto. So, by that one metric, it's actually doing better than the Declaration of Independence.