An XML protocol for remote method inocation. Compared to RMI is language independant and can't transmit object references (all goes by value). Compared to traditional RPC is more flexible (supports NULLs and members can be added to structures without breaking the protocol) and doesn't support unions (anyway: eew!). And compared to both this protocols, is a lot more verbose: many more bytes per transaction.

The XML description of the method call is sent by the client as an HTTP POST request.The response is also xml encoded and sent to the client as the body of the reply.

Another related protocol is SOAP. SOAP is much more flexible, and much more complex. For simple applications, xml-rpc is still better (and its specificaion is more stable).

The protocol is defined in http://www.xmlrpc.com/spec .