225 lines
4.5 KiB
HTML
225 lines
4.5 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>XML-RPC vs. Other Protocols</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.63
|
|
"><LINK
|
|
REL="HOME"
|
|
TITLE="XML-RPC HOWTO"
|
|
HREF="index.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="What is XML-RPC?"
|
|
HREF="xmlrpc-howto-intro.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="Common XML-RPC Interfaces"
|
|
HREF="xmlrpc-howto-interfaces.html"></HEAD
|
|
><BODY
|
|
CLASS="section"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>XML-RPC HOWTO</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="xmlrpc-howto-intro.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="xmlrpc-howto-interfaces.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><H1
|
|
CLASS="section"
|
|
><A
|
|
NAME="xmlrpc-howto-competition"
|
|
>3. XML-RPC vs. Other Protocols</A
|
|
></H1
|
|
><P
|
|
>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.</P
|
|
><P
|
|
>The opinions in the section are obviously biased; please take
|
|
them with a grain of salt.</P
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="xmlrpc-howto-corba"
|
|
>3.1. XML-RPC vs. CORBA</A
|
|
></H2
|
|
><P
|
|
><A
|
|
HREF="http://www.corba.org/"
|
|
TARGET="_top"
|
|
>CORBA</A
|
|
> 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 <A
|
|
HREF="http://www.gnome.org/"
|
|
TARGET="_top"
|
|
>Gnome</A
|
|
> project for
|
|
interapplication communication.</P
|
|
><P
|
|
>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
|
|
<I
|
|
CLASS="glossterm"
|
|
>interface definition language</I
|
|
> (IDL), allowing
|
|
you to define readable, object-oriented APIs.</P
|
|
><P
|
|
>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.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="xmlrpc-howto-dcom"
|
|
>3.2. XML-RPC vs. DCOM</A
|
|
></H2
|
|
><P
|
|
><A
|
|
HREF="http://www.microsoft.com/com/tech/DCOM.asp"
|
|
TARGET="_top"
|
|
>DCOM</A
|
|
> 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.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="section"
|
|
><H2
|
|
CLASS="section"
|
|
><A
|
|
NAME="xmlrpc-howto-soap"
|
|
>3.3. XML-RPC vs. SOAP</A
|
|
></H2
|
|
><P
|
|
><A
|
|
HREF="http://www.w3.org/TR/SOAP/"
|
|
TARGET="_top"
|
|
>SOAP</A
|
|
> 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.</P
|
|
><P
|
|
>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.</P
|
|
><P
|
|
>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.</P
|
|
><P
|
|
>Basically, if you like XML-RPC, but wish the protocol had more
|
|
features, check out SOAP. :-)</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="xmlrpc-howto-intro.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="xmlrpc-howto-interfaces.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>What is XML-RPC?</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
> </TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Common XML-RPC Interfaces</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |