XML-RPC is not the only way to make remote procedure calls. Other
popular protocols include CORBA, DCOM and SOAP. Each of these protocols
has advantages and disadvantages.
The opinions in the section are obviously biased; please take
them with a grain of salt.
CORBA is a popular
protocol for writing distributed, object-oriented applications. It's
typically used in multi-tier enterprise applications. Recently, it's
also been adopted by the Gnome project for
interapplication communication.
CORBA is well-supported by many vendors and several free
software projects. CORBA works well with Java and C++, and is
available for many other languages. CORBA also provides an excellent
interface definition language (IDL), allowing
you to define readable, object-oriented APIs.
Unfortunately, CORBA is very complex. It has a steep
learning curve, requires significant effort to implement, and
requires fairly sophisticated clients. It's better-suited to
enterprise and desktop applications than it is to distributed web
applications.
DCOM is
Microsoft's answer to CORBA. It's great if you're already using COM
components, and you don't need to talk to non-Microsoft
systems. Otherwise, it won't help you very much.
SOAP is very
similar to XML-RPC. It, too, works by marshaling procedure calls
over HTTP as XML documents. Unfortunately, SOAP appears to be
suffering from specification creep.
SOAP was originally created as a collaboration between
UserLand, DevelopMentor and Microsoft. The initial public release was
basically XML-RPC with namespaces and longer element names. Since
then, however, SOAP has been turned over a W3C working group.
Unfortunately, the working group has been adding a laundry-list
of strange features to SOAP. As of the current writing, SOAP supports
XML Schemas, enumerations, strange hybrids of structs and arrays, and
custom types. At the same time, several aspects of SOAP are
implementation defined.
Basically, if you like XML-RPC, but wish the protocol had more
features, check out SOAP. :-)