XML-RPC - Introduction

RPC stands for Remote Procedure Call. As its name indicates, it is a mechanism to call a procedure or a function available on a remote computer. RPC is a much older technology than the Web. Effectively, RPC gives developers a mechanism for defining interfaces that can be called over a network. These interfaces can be as simple as a single function call or as complex as a large API.

What is XML-RPC ?

XML-RPC is among the simplest and most foolproof web service approaches that makes it easy for computers to call procedures on other computers.

  • XML-RPC permits programs to make function or procedure calls across a network.

  • XML-RPC uses the HTTP protocol to pass information from a client computer to a server computer.

  • XML-RPC uses a small XML vocabulary to describe the nature of requests and responses.

  • XML-RPC client specifies a procedure name and parameters in the XML request, and the server returns either a fault or a response in the XML response.

  • XML-RPC parameters are a simple list of types and content - structs and arrays are the most complex types available.

  • XML-RPC has no notion of objects and no mechanism for including information that uses other XML vocabulary.

  • With XML-RPC and web services, however, the Web becomes a collection of procedural connections where computers exchange information along tightly bound paths.

  • XML-RPC emerged in early 1998; it was published by UserLand Software and initially implemented in their Frontier product.


If you need to integrate multiple computing environments, but don't need to share complex data structures directly, you will find that XML-RPC lets you establish communications quickly and easily.

Even if you work within a single environment, you may find that the RPC approach makes it easy to connect programs that have different data models or processing expectations and that it can provide easy access to reusable logic.

  • XML-RPC is an excellent tool for establishing a wide variety of connections between computers.

  • XML-RPC offers integrators an opportunity to use a standard vocabulary and approach for exchanging information.

  • XML-RPC's most obvious field of application is connecting different kinds of environments, allowing Java to talk with Perl, Python, ASP, and so on.

XML-RPC Technical Overview

XML-RPC consists of three relatively small parts:

  • XML-RPC data model : A set of types for use in passing parameters, return values, and faults (error messages).

  • XML-RPC request structures : An HTTP POST request containing method and parameter information.

  • XML-RPC response structures : An HTTP response that contains return values or fault information.

We will study all these three components in the next three chapters.