old-www/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-competition.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"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Common XML-RPC Interfaces</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>