"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/