Chapter 8: XML-RPC


Overview

In this section of the book, we’ll look at uses for XML that are more commonly associated with application-level plumbing. The first two, XML-RPC and Axis, let you invoke functionality across the Internet. This is a powerful ability that will change the way many kinds of applications are constructed. XML security, which we’ll discuss in Chapter 10, is also part of this infrastructure level; it provides a way to embed security constraints into XML documents.

XML-RPC is a remote procedure call (RPC) protocol based on encoding the information needed to make the call as XML. HTTP is used to transport this XML document to a remote server, which parses the document, invokes the procedure, and returns the result of executing the procedure. This return result is also marked up as XML and is returned as the HTTP response.

The XML-RPC protocol was invented early in 1998 by Dave Winer of Userland Software, Don Box of DevelopMentor, and Bob Atkinson and Mohsen Al-Ghosein of Microsoft. At the time, this group was working on a very early version of SOAP. Winer had already published a specification for an RPC scheme using XML, and the group formed when the Microsoft folks invited Winer to collaborate with them. Userland already had customers of its Frontier product who were starting to use an XML-RPC format, so Winer released a version of the group’s spec as XML-RPC. The group continued on to develop SOAP, which is a much richer (and, some would say, more complicated) method of invoking remote functionality using XML.

Because it was very simple, a large number of developers working in many languages implemented XML-RPC protocol stacks. Today you can find XML-RPC implementations in AppleScript, ASP, C, Delphi, Eiffel, Flash, Java, JavaScript, Lisp, Objective-C, Perl, PHP, Python, RealBasic, Rebol, Ruby, Scheme, Squeak, and Tcl. These implementations run on platforms that include the Apache Web server, Java, the .NET framework, Mac OS X, WebObjects, and Zope (we’re stretching the definition of a platform in this case). This means you can find an XML-RPC implementation for just about any software system you might be using. This is very important, because the goal of XML-RPC is to allow applications written in different languages, running on different platforms, to integrate with each other. By using XML and HTTP as the building blocks for XML-RPC, you get a solution that is relatively easy to implement and usable wherever the basic infrastructure of the Internet is available.

The people working on the Helma object publisher developed an XML-RPC stack in Java as part of their development. In early 2002, the Helma XML-RPC stack was donate to the Apache Software Foundation and became a project under the Apache XML project. In early 2003, the Apache Software Foundation decided to create a new top-level project devoted to Web services technologies. This project was seeded with a number of projects from the Apache XML project, including the XML-RPC project.




Professional XML Development with Apache Tools. Xerces, Xalan, FOP, Cocoon, Axis, Xindice
Professional XML Development with Apache Tools: Xerces, Xalan, FOP, Cocoon, Axis, Xindice (Wrox Professional Guides)
ISBN: 0764543555
EAN: 2147483647
Year: 2003
Pages: 95

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net