"It's a spec and a set of implementations that allow software running on disparate operating systems, running in different environments to make procedure calls over the Internet." [1]

"It's remote procedure calling using HTTP as the transport and XML as the encoding. XML-RPC is designed to be as simple as possible, while allowing complex data structures to be transmitted, processed and returned." [1]

It supports server introspection. Making it easy for a client application to interrogate and discover the available methods and their paramaters.

XML-RPC also supports "box-carring" of requests, i.e. sending a series of RPC calls at one time. Uses the system.multicall method.

It does not support message passing/redirection, or complex data type definitions. But it does support mappings to simple and structured data types to/from many languages.

[1] from http://www.xmlrpc.org/