[maemo-developers] SOAP Web Services

From: Dave Neary dneary at maemo.org
Date: Mon Apr 20 12:48:00 EEST 2009
Hi Tim,

Tim Allen wrote:
> It will most probably just be written in C, but we'd consider Python if the
> advantages were really there.  Do you think Python is quick to learn and how
> do you think it compares for making a simple GTK app?

Python syntax is pretty easy, and there are some helper classes
available that make it *very* easy to write simple GTK+ applications for
it with Glade and GtkBuilder: http://www.pixelbeat.org/talks/pygtk/

> Directly creating the SOAP envelope and parsing the reply doesn't sound like
> much fun - do you think it would take a lot of time to get right?

Since SOAP = "Simple Object Access Protocol", it tends to be easier to
do in object oriented languages, but there's noting preventing you from
parsing SOAP messages in C. A quick search found the following:
* http://sourceforge.net/projects/csoap/
* http://www.cs.fsu.edu/~engelen/soap.html
* http://www.sqldata.com/SoapClient/SoapClient30.htm

The first one is pure C using libxml2, the second and third are C++.
gSOAP also supports pure C applications.


I suggest that getting your SOAP API right is more important than the
choice of client/server language. If you are happier writing your
application in C, and it's more suitable for all the rest of your
application, then do that by all means. The SOAP client calls will be a
smallish part of your app. One of the advantages of using SOAP is that
you don't need the same language on the client & server side of the
operation.

Make sure you spend a lot of time ensuring that your object model &
functions for the SOAP part are very well defined & documented
beforehand. Generating a WSDL file is very good for this - and with a
WSDL file, most SOAP libraries can generate skeleton code for you that
parses function calls into messages, which substantially reduces your work.

In the past, I've used Axis http://ws.apache.org/axis/ for SOAP, which I
found *really* easy. You're literally just calling methods of Java
objects and the SOAP stuff is completely abstracted away, once you have
the WSDL file for the service. I assume the same would be true in
Python, and while things might be slightly more complicated in C, I
don't imagine that the difference would be sufficient to change the
language you're using for the entire project.

Cheers,
Dave.

-- 
maemo.org docsmaster
Email: dneary at maemo.org
Jabber: bolsh at jabber.org


More information about the maemo-developers mailing list