History of XML-RPC – Simplifying Interaction of Varying Internet Software Platforms
Created in 1998 by Microsoft and Dave Winer, of User Plan Software, XML-RPC was designed as an alternative to REST (resource representations) and became the precursor to SOAP (Simple Object Access Protocol). This remote procedure call (RPC) protocol was built on a single method serialization that uses both XML to encode calls and HTTP as its mechanism for transport. With its simple security model, it operates by sending HTTP requests to a single server that implements the protocol.
Developing Web Services
The biggest single advantage of using XML over HTTP as compared to other protocols is its ability to lift the limits on how to develop software projects. Built to be a cohesive joiner of multiple software platforms, XML RPC provides fluidity to a software developer by giving them more choices without restricting the end result. Lifting the restrictions allows the developer the opportunity to create software without being “locked in”.
A Windows-Based Scripting Environment
With its ability to connect multiple platforms, XML RPC uses the power of the Internet as a scripting environment identical to the way Apple Script uses Macintosh OS, and Visual Basic uses Windows. The inclusivity of XML RPC coordinates the cohesiveness unlike anything else that had ever been invented.
Leveling the Playing Field
Since the creation of XML RPC, software programmers and designers no longer need to have a complete understanding of all software languages. By writing and publishing XML over HTTP, any software developer limited in scope of their knowledge and understanding of other platforms can “speak the language” by merely publishing their completed functioning software program. This provides developers such as open source teams, contractors, consultants, developers using Python, TCL, C++, Microsoft, Sun, O’Reilly, Job, Perl and others the ability to publish their work and contribute to the environment while also benefiting from it.
Remote Procedure Call
As the method call interface, or a distributed function call interface, RPC operates Web services by generating a subroutine to execute at a different address without the need of direct programming explicitly using code. As a remote interaction, the subroutine is localized to the executing program, or remote, once it has been initiated by the client. The challenge to using RPC effectively is that at times it can fail to execute properly without letting the client ever know if the remote procedure was actually ever invoked.
Building a Third-Party Application
The genius behind the simplicity of XML RPC is its ability to easily construct a third-party application that can integrate multiple platforms together. A single XML RPC feature can easily be programmed to provide one platform’s functionality to other applications. With multiple XML RPC libraries in a variety of programming languages it can optimize and simplify software programming.
The Beauty of XML
XML, or Extensible Markup Language, is a unique computer software markup language that uses its own specified rules to encode documents in a format that can be read by the machine, along with humans. The design of XML was created around simplicity, usability and the generality involved in using the Internet. A strong textual data format, it uses Unicode for any program language ever developed. Even though XML was originally developed to be focused specifically for documents, it now has a wide range of uses using arbitrary data structures including simple and complex Web services.
Since the origins of XML, many software developers have created application programming interfaces (APIs) to process complex XML data. Additionally, a variety of different XML-based languages have been created including XHTML, SOAP, Atom, and RSS. Along with that, a variety of office productivity tools use XML including Open Office, Microsoft Office in Apple iWork.
XML RPC Architecture
Designed on client/server architecture, the basic protocol of XML RPC provides the web client the ability to perform remote procedure calls. These arguments, or call functions, are performed as a result of the specified call being transported over HTTP. Logically, it is configured on the server side, which automatically post the data and then returns any result directly back to the server. The beauty of its simplicity is that it allows updates and any new functionality without requiring frequent upgrades from the client. Any operation by the client is extremely simple, including any type of action such as opening a menu, printing, saving a form and others. The simple software program will return the results of any action back to the server which in turn sends a new action that can be executed by the client.
A Heterogeneous Operation
With its ability to transfer information transparently, between varieties of platforms, remote procedure calls provide a heterogeneous operation. The simplicity of XML RPC is its effective remote procedure call protocol that includes six simple steps. First, the client will call the client stub, a local procedure call, by using the parameters that will push the call onto the stack in a typical fashion. Next, the client stub automatically packs the parameters (marshaling) into the program message which will automatically make a system call and send the assigned message.
Once the parameters have been packed, and the message sent, the client’s own operating system (local) will send a message from that machine over to a server machine. Following that, the local operating system (of the server machine) passes along all of the incoming packets directly into the service stub. Next, the server machine’s stub will unpack (un-marshaling) all of the message’s parameters. Finally once all of the parameters have been un-marshaled (unpacked), the server stub will then call the server procedure. To generate the reply, all of the steps will operate precisely as it came in, my generating the sequence in the reverse direction.
If a software developer ever requires the process of sharing information between two or more computers running on different platforms, in different languages or using different operating systems, XML RPC is the simplest way to achieve a workable end result. Also, if they ever had a need to publish information on the Internet that would allow other programs, other than a browser, total abilities to interact with it, HML RPC would be the ideal solution.