[Twisted-Python] Spread or SOAP

Stephen Waterbury golux at comcast.net
Tue Jul 6 21:19:07 EDT 2004

Sam Couter wrote:
> David Ripton <dripton at ripton.net> wrote:
>>If you like the basic idea of SOAP (client/server RPC via XML over http), 
>>I think XML-RPC (which is basically an early draft of SOAP) is fine.
>>Then feeping creaturism set in, and SOAP (plus the ring of associated
>>cruft like WSDL) is no longer simple.
> WSDL is one of the very few redeeming features of SOAP - it's the
> equivalent of CORBA's IDL, ...

... only it's in XML -- ooo, isn't that lovely!  Not.  8^P
IDL was more elegant.

> ... and allows you to define an interface and what
> types it expects. For languages less dynamic than python, the WSDL can be
> used to generate stub and skeleton code in an automated fashion.
> Without WSDL, that code has to be written by hand. That's a menial, error
> prone and BORING task. Other RPC systems worked out not to do that
> decades ago.
> For languages as dynamic as python, it allows code to dynamically
> interrogate an interface to find what functions it provides.

IMNSHO, these capabilities are okay, but very overrated.  Stub and
skeleton code is usually pretty trivial, and could be auto-generated
using much simpler, more natural, and better-supported approaches
than WSDL.  Seen any WSDL tools lately?  Me neither.

>>If pure request-response with just basic types is all you need, then 
>>either will work fine.  (So will SOAP, or CORBA for that matter if 
>>firewalls don't preclude it -- there'll just be more docs to read.)
> Both SOAP and CORBA allow you to define complex objects to be marshalled
> over the wire. Neither are limited to simple types. CORBA is not limited
> to simple request-response.
> With CORBA the remote end can get a stub (object reference) that they can
> call remote methods on (callbacks). Object references can be passed back
> and forth all over the place, and the stub knows where to send the
> callback requests to find the original implementation of that object.
> SOAP is value-object (structured data, no methods) only.
> As far as I can tell, PB is a python-only equivalent to CORBA.

Not exactly, but I'll let the more PB-savvy types respond to this.
Maybe Brian?  ;)  A very important distinction is that PB is, by
design, not "transparent", as CORBA tries to be.  One reason for
this is that quite often it's important for your application to
know what's remote and what's local.

But hey, RTFM -- the PB howtos are pretty good, methinks!  ;)

- Steve

More information about the Twisted-Python mailing list