No Source Is an Island
By Dale Dougherty
Web publishing is a vanilla Web application, one of those basic flavors of Web development that might not get anyone too excited. There are, however, new developments that may turn your attention to Web publishing. I recently organized a Developers' Day track titled "Publishing Tools and Techniques" at WWW9 in Amsterdam. Given that publishing was in the title, and the fact that there were five other tracks available for the 500-plus developers, I wasn't expecting much interest. So I was really surprised to see that our room was packed, even overflowing at times.
I wasn't quite sure why until the end of the day. Certainly, we had good speakers and talks that covered content management systems of the Open Source variety as well as database publishing systems from Microsoft. One speaker's hand-drawn diagrams (scanned and then posted to the Web) were laughably crude but loveable, especially because his publishing system was already implementing XLink and XPointer in very innovative ways. Our last speaker was David Galbreath, who is the technical lead for Moreover.com, a site that provides a search engine for news that it aggregates from over 1000 sources. He mentioned that the developers of Web publishing systems and services were among the early adopters of distributed computing techniques on the Web. Dave Winer of Userland, who had talked about his Manila publishing system in this track and organized a track on "Distributed Computing," agreed. Winer has had a hand in the development of two important distributed computing specifications, XML-RPC and SOAP, both of which are lightweight message-passing protocols that allow Web applications running on different servers to communicate with each other. It sounds like heavy-duty programming, but actually they're meant as alternatives to heavyweight distributed computing application platforms like Microsoft DCOM and Object Management Group IIOP and CORBA. Both XML-RPC and SOAP can use HTTP to implement a request-response message exchange in which the contents of the message are encoded in XML.
XML-RPC gets its name from remote procedure call, a program's ability to execute a procedure running on a remote system. XML-RPC is simpler than SOAP, which stands for Simple Object Access Protocol. In fact, one might consider XML-RPC to be a beta version of SOAP. Dave Winer published the XML-RPC specification (xml-rpc.com) so that developers could begin getting practical experience writing distributed Web applications. SOAP has the backing of Microsoft, and with version 1.1, IBM has jumped on board. The key difference between XML-RPC and SOAP is that the latter uses namespaces and schemas, which are arguably not yet standardized or fully understood. (SOAP 1.1 has introduced new differences as well.)
Dave Winer joined SOAP coauthors Noah Mendelsohn of Lotus/IBM and Henrik Frystyk Nielsen of Microsoft on an "XML Protocols" panel earlier in the week at WWW9. The panel was chaired by Dan Connolly of the W3C, who is interested in determining what role the W3C should take in standardizing SOAP; the 1.1 specification has been submitted to the W3C for consideration. There's potential for controversy here, and a standards committee could become too ambitious in tackling everything at once, creating what SOAP-skeptic Henry Thompson called an "insurmountable opportunity." Winer would like to see people focused on practical Web applications, avoiding academic debates that try to understand and satisfy all future needs. For example, he'd like to see his Pike Web editing application interface in a standard way with third-party spelling-checkers available elsewhere on the Web. A Web application should be able to integrate services or components from a number of different sources in a fairly transparent way. Generally speaking, this is exactly what a Web publishing application does. It makes use of information (or information services) from a number of sources as well as distributing the information it produces to many sources.
We're seeing this in Blogger and Manila Express, both of which provide a Web application for updating your Web page. If you see something on a Web page that interests you, you can call up either application in your browser to create an annotated link to that page, and send the item you just created to your own home page. Blogger uses FTP to post information on your home page. Manila Express uses XML-RPC to send a message to your own Manila site. In effect, you use a Web application to create content that ends up on a remote site.
Clearly, publishers understand something about distributing information to different places. It's often called syndication. A Web site can syndicate its content freely using RSS or a protocol like ICE if there's a business transaction behind it. One sitethe source of the informationagrees to provide this service to others.
Sharing information is an obvious example of how we can take advantage of the others' work on the Web, whether to create our own new applications or new businesses. With SOAP, sites can expose new services that provide alternative interfaces to information. These services belong to the Web's next generation and, like the first generation, they'll need to be open, if not necessarily free.
Dale is the publisher of the O'Reilly Network at www.oreillynet.com. You can reach him at dale@oreilly.com.