
I just finished up a podcast discussion this evening on Web 2.0 and Global SOA with David Linthicum that he was kind enough to host on his popular SOA Expert Podcast show. We were discussing how the software worlds are rapidly converging into each other with mash-ups and Ajax helping drive a seemingly unquenchable demand for open services on the Web. All of this while individual organizations themselves are trying to build almost identical service ecosystems behind the firewall and create their own type of mash-ups, known as composite applications. They are also increasingly integrating them into their very own internal business processes.
And developers everywhere have started accessing the hundreds (and soon thousands) of terrific open Web 2.0 software services available on the Web in order to plug them into their own software. Either just for their own purposes or to put them in their organization's own software. Mash-ups and service reuse are an intriguingly grassroots phenemonon that will only increase dramatically in 2006. Thus it will be a largely Web 2.0-driven story. This convergence of use, which we talk about in the podcast and my recent cover story on the subject, is triggering what David calls a push from outside-in that will eventually cause most everything to integrate together.
An important reason why the Web is now the world's biggest and most important computing platform is that people providing software over the Internet are starting to understand the law of unintended uses. Great web sites no longer limit themselves to just the user interface they provide. They also open up their functionality and data to anyone who wants to use their services as their own. This allows people to reuse, and re-reuse a thousand times over, another service's functionality in their own software for whatever reasons they want, in ways that couldn't be predicted. The future of software is going to be combining the services in the global service landscape into new, innovative uses. Writing software from scratch will continue going away. It's just too easy to wire things together now. Witness the growth of truly amazing mash-ups of which things like Retrievr and Meebo are only two tiny examples.
Service Models: So Many Choices
Figure 1: The wilderness of service models. What to choose?
The world of traditional software integration has long had its favorite tools like SOAP and JMS. But these service types tend to be far too controlling of the other side of the conversation. And they generally require special (and often expensive) tools to use. And the Internet just loves to route around complexity. Folks want the easiest thing that works to get their Ajax client connected or to wire their mash-up together with your services. So favor simple and elegant over complex and hard-to-use. Start looking hard at RSS, REST, maybe even SSE.
And if you want your services to stand the test of time, and you want anyone to use them, you need nice, clean XML formats, or maybe even JSON. Forget XML schemas. You can always use the hard stuff if absolutely nothing else will do the job, but generally you won't need them.
Low barriers to reuse, frictionless integration, widespread reuse. These are the mantras of Web 2.0.
OK, so how do you do it. How do you deliver an API for your services that lasts and anyone can use. There are a few things to worry about
- Scalability: Simpler is more scalable. This is particularly true of REST.
- Ease of Consumption: XML/HTTP is easier than SOAP. JSON is the easiest for Ajax. And Bittorrent, possibly the hardest however definitely the most intrinsically scalable.
- Tool Support: Reinventing the wheel is for losers. Use good libraries and tools. This favors SOAP, but increasingly REST is getting solid tool support. Certainly XML has really good tools. And JSON doesn't really need many.
- Security: Yep, this is going to be huge for Web 2.0, but it's already critical inside most organizations today. SOAP certainly has the goods here but really good encryption toolkits are doing just fine on the rough and tumble Web too (witness Meebo's ballyhooed 1024-bit password encryption.)
In the end, XML over HTTP, and REST, and particularly RSS, will be the lowest common denominator on the Web. Organizations experiencing the outside-in forces David Linthicum talks about are going to have to figure out how to bring in these simpler services and trust them. It's going to be an increasingly important topic as the boundary of IT systems, the Web, and mobile devices starts to blur seriously over the next few years.
And folks are starting to provide real support for true Web 2.0 service styles with examples like the Restlet library for Java, which eWeek says is specifically designed for delivering Web 2.0 services.
Of course, like I discussed in previous articles, scalability is going to be the most difficult issue for successful Web 2.0 software. You'll need to plan for radical decentralization early on if you're going to survive your own growth curve. But Bittorrent solutions for Web services are finally avaiiable including Prodigem's mind-blowing Auto RSS Torrent which takes your RSS feeds and turns them into BitTorrents. This isn't an example of REST or SOAP with BitTorrent behind it to make it infinitely scalable, but it's a start. Expect lots more as the services worlds not only collide but turn upside down as well.
How will Web 2.0 open APIs ever scale without a new generation of Web services to support it?