Services Oriented Services (SOS!)

Aug 02, 2005

Where are all the Web Services we were promised a few years ago with the blossoming of so many new protocols in support of Service Oriented Architecture (SOA)? Maybe they are out there powering business-to-business (B2B) intranets, but I wonder when Web Services the average content manager might find useful, if not downright valuable, to syndicate and consume, will surface.

Far and away the most syndicated content on the planet comes from the Web's ten million or so Weblogs, the main consumers of which are individuals with personal aggregators of blog content. There are a few community aggregators: In the content management space, for example, CMS News aggregates daily news feeds onto a simple Web page from more than two dozen commentators on CM technology and practices.

Shake on It
But the paradigmatic Web Service involves a multi-step handshake between service provider and service consumer. Right now, the would-be consumer has to learn about the service, from a friend who sends the address or from the great yellow pages of SOA, searchable registries of valuable services enabled by the Universal Discovery, Description, and Integration (UDDI) protocol. Once you find a candidate Web Service, you ask it to tell you (or your program) what it can do, what methods or programs it can execute, what you have to send to it as input data, etc. This is handled by the Web Services Description Language (WSDL).

WSDL gives you or your toolset the information to prepare a SOAP or XML-RPC request for the service. The Simple Object Access Protocol and XML-Remote Procedure Call protocols, both the work of blogging wunderkind Dave Winer, can zoom through most firewalls using the common HTTP protocol. While this gives rise to massive security concerns for many business applications, retrieving interesting content with modest digital rights management (DRM) license requirements, seems like a no-brainer. But where are the content publishing examples?

Even in business there is a great deal of content with no security concerns. Take the need for shipping information faced by every Web-based business. What are my options for getting a 23-pound box from Cambridge, MA to Charlotte, NC by FedEx, UPS, or the USPS? Of course as an individual, I can browse each of these Web sites, manually enter my data, and read off the possibilities but an XML-based service-oriented service should offer us so much more.

Can my content management system send a simple SOAP or XML-RPC request to each of these shipping giants and get back nicely constructed XML that I can transform (with an XSD Schema and XSLT of course) into dynamic content for a custom presentation of my shipping options to a Web site visitor?

Probably not. The reason is that many programmers still write screen-scraping software that pretends to be a human being entering the source, destination, and weight into the shipper's site, then parses the Web page for the essential information. This is because despite years of hype, XML as a content transport protocol (rather than a simple markup language) has still got a long way to go to offer practical and useful Web Services for the rest of us.

Web Services for the Masses
One kind of advanced Web Service we are all benefiting from today is the automatic upgrading of software over the Web. Our virus software, Windows Update, and iTunes all transparently send out requests that return all the code changes needed and install them in our machines while we are doing something else. My own skyBuilders timeLines tools are upgraded by sending XML requests to an upgrade server, which returns all the required code and database changes wrapped in XML. The requesting server can upgrade itself without ever going off line.

Knowledge management in a community of practice is another area for Web Services. Say a content management professional wants to offer a sophisticated technical glossary on her site. Before Web Services, she would write the glossary herself and be lucky if it contained a couple of dozen terms. Today she can go to the content management community Wiki and see if it defines all the terms needed for her consultancy. If important terms are not there, she can register and add them herself. As of this writing, the glossary defines 270 CM terms, with another 350 candidates waiting for technical writers.

Next she goes to CMS Review to get a snippet of code, which can be customized to match the fonts, styles, and colors of her Web site. The whole glossary of terms is licensed under Creative Commons, so there is no rights management hassle. Now that's a service-oriented Web Service, let's see some more.