David Ripton <dripton@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, 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.
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. -- Sam "Eddie" Couter | mailto:sam@couter.dropbear.id.au Debian Developer | mailto:eddie@debian.org | jabber:sam@teknohaus.dyndns.org OpenPGP fingerprint: A46B 9BB5 3148 7BEA 1F05 5BD5 8530 03AE DE89 C75C