- We design and build extraordinary applications for companies looking to make the next great idea a reality.
- learn more
If SOA and AJAX is the Killer App, Who is it Killing?
Over at SOA Digest, AJAX + SOA is hailed as the new Killer App:
We have business functionality represented in a reusable form - SOA services. We have ubiquitous connectivity - the Web. We have what's turning out to be the new application container - the browser. We have a programming model in the application container/browser - JavaScript. What I really want is a user-based composite application, not a middleware-based composite application.
I'm seeing this more and more, the idea that the browser becomes not just the interface from some middleware powered app that orchestrates the services, but that the browser, by means of Ajax, becomes the orchestrator of services, cutting out the middleman. I see this trend in the stated desire of Tibco to have it's GI product drive the demand for services in the enterprise. It is a trend that worries me.
I think the author of the post misunderstood the original article he was referring to:
What I really want is a user-based composite application, not a middleware-based composite application. To make this happen, I need a development and runtime platform that not only speaks AJAX and SOA, but governs the two as well. Some vendors promote the concept of AJAX applications calling WSDL-based Web services directly from the browser, essentially making SOAP calls. This approach even has a name - "client/SOA." This may be fine for simple non-enterprise or pure consumer applications, but it's a no-go for the enterprise. Why? Because when you call Web services directly from the browser, governance is left to the browser - which is another way of saying, there's no governance.
That article goes on to talk about a "service gateway," a fuzzy notion that sounds a little like a web proxy with some security. Even if workable, that still doesn't solve the drip, drip, drip at the heart of Ajax+SOA: orchestrating and composing services is a form of the dreaded Business Logic Leak. You are leaking both data (from the services) and logic (how you are composing them). This past April I described why it was a bad idea:
There are two kinds of information leak -- what and how. "What" is your customer data, your orders, your accounts receivable, your employee database. The "how" is your secret sauce, the special way of pricing or quoting or doing that gives you a competitive advantage. Reports can leak the "what," and many businesses can survive a leak of quite a bit of "what," but leak the "how," your secret sauce that makes you money, and you're cooked. Javascript can leak the "how" if you let it.
Even Tibco will tell you that it's GI product is intended only for the corporate desktop (where the ability to control access to data and logic is much greater) and not for the great unwashed on the open Web.
For the actual service providers there is a risk too. If you publish an SOA interface of some kind (SOAP, REST, etc.), your competitors can clone that interface and undercut your offering. See the Google Maps clone for down under for evidence that this is already happening. Building in switching costs becomes a difficult task which runs counter to the whole principle of SOA.
Finally, cross domain Ajax is still a problem with either JSONP (essentially JSON with a callback function) or a web proxy being the only viable solutions for orchestrating web services across domains in the browser. Right now, Yahoo! is the only major service provider to offer JSONP.
In my cynical view, Ajax + SOA is just another way of saying "mashup" -- a clever if innocuous pairing of two or more web services. And right now, given the nature of things, that's all it will be until the browser platforms change in some major way.
Topics: Ajax Development, SOA
Leave a comment
About Pathfinder
Recent
- Automated Deployments Rock
- Bandwidth profiling Flex projects and more with Charles
- iPhone SDK: UIViewController Testing & TDD
- Icons are evil; so are menus - unless you do them right
- The Truth About Designing For Security
- GWT, Gadgets and OpenSocial, Part 2
- Has Many has_many: A Refactoring Story
- The Hidden Power of Canvas
- Review of fixture_replacement2 plugin
- Chess Game Viewer in GWT
Archives
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006

