XML + SOAP + Webservices

Diez B. Roggisch deets at web.de
Thu Jun 9 08:20:16 EDT 2005


Johan Segernäs wrote:
> I'm put on building a system in Python and I haven't used either webservices,
> SOAP or Python so I'm a bit lost.
> 
> This system will require callback functions, should I use Python thru Apache
> for this or build my own listening daemon? Use module for Apache or do I make
> some kind of CGI script in Python? 
> 
> Where do I start? What lib do I use for XML? SOAP? Webservices?
> 
> Is there any nice project/tutorial for this so I can give it a taste and try
> to estimate how much time I need and stuff.

For first tries, you could go and check SimpleXMLRPCServer - it's in the 
docs. Then there is twisted, and some others I believe. Running throgh 
an apache doesn't buy you much AFAIK - so just skip it for now for the 
additional complexity it involves.


Callbacks aren't supported by any xml-based RPC I'm aware of - which 
doesn't mean you can't do it, but _how_ to do it is up to you: You need 
a way to pass a server the necessary callback information. It basically 
consists of the url to talk to. That by the way is no limitation of 
python, but of xmlrpc, soap and whatever.

And last but not least I found that whenever I tried to make python SOAP 
implementations work with more than trivial WSDLs I (or the 
implementations...) failed - maybe you can tweak it into working by 
handtayloring the calls and proxies - but that is tedious, errorprone 
and certainly not the road somone want's to go. I personally always used 
apache axis in conjunction with jython to fulfill my SOAP needs in 
python. But then again, it's not python anymore - at least not when you 
need some cpython-only lib s.

regarding the .NET stuff - don't expect much. Just because it uses a 
wire-protocol that is well known doesn't mean that the infrastructure 
build on top of it is easy to grasp - and it's not integrated in 
anything but itself. That's true for the JAVA-world either, btw.

Sooo - concluding remarks could be:
  - soap and python - not so good
  - if you can, use some other RPC to interface .NET - like IPython, or 
win32, or even corba if you can.


Regards,
Diez



More information about the Python-list mailing list