WSDL/SOAP/XML-RPC HELP

Harry George harry.g.george at boeing.com
Fri Aug 20 12:31:36 EDT 2004


Tomislav Lepusic <lepi--REMOVE-THIS-FROM-HERE at fly.srk.fer.hr> writes:

> Hello,
> 
> I don't know if this is the right group (I'm more in Perl, know
> nothing about Python), so if you can help me thanks, if not, sorry to
> bother you.
> 
> 
> I'm working on my student project and I'm totally lost and don't have
> any idea how to continue, and the deadline is 1.9.2004. Please help,
> 'couse i'm loosing myself in this XML/SOAP/RPC/WSDL things......
> 
> A little discription.
> I have to define and make something like virtual driver for serial
> port (RS232), only it isn't really a driver. The server has to be on
> Linux box (physical port(s) is/are there), and the other side (client)
> is not inportant. It is not important what is connected on serial
> port. Also, there is no need to work on any kind of drivers on Windows
> or something, becouse that is not the point. I have to make an
> universal way to send/recive/control serial port on that server
> computer from anywhere. I know how to program for serial port on Linux
> (in C), and I have made some progress there. That low-level programing
> isn't the problem. The problem is how to make it work over the net, so
> that someone who wants to write a program on Windows or Mac can use
> something universal to access it (like XML). I HAVE TO USE XML-RPC or
> SOAP or WSDL or something like that. The problem is that I don't know
> how to use those technologies. I read some tutorials, guides on
> XML-RPC, SOAP and WSDL, and I'm totally lost now.
> BTW, I was planning to use Perl becouse I know something about it. (I
> don't know Java)
> 
> So, if you can help me in any way (advice, similar example or
> something), please do. This is very important to me. I forget,
> everything must be secure (SSL or something).
> 
> Thank you
> 
> Tom

1. Many of us spent time in perl-land, and feel the move to python is
   worth your while, especially if you are currently confused.  Python
   is an excellent environment ofr learning new problem spaces, even if you
   later implement in other languages.

2. To learn more about XML, there are zilions of books.  I find
   E.R. Harold's "XML Bible", IDG Books to be useful -- enough
   examples to get going, but not so much detail you get lost.  You
   still have to visit the specs at: 
   http://xml.coverpages.org/xml.html
   http://www.w3.org/TR/1998/REC-xml-19980210.html

   You probably don't need to know this to use XMPRPC.  Just follow
   the examples.  For SOAP, you probably do need a good sense of XML
   and XSchemas.

3. To learn more about SOAP/WSDL, see James Snell et al "Programming
   Web Services with SOAP", O'Reilly, 2002.  There are enough examples
   to get the feel for it.  If you are working in python, see
   http://pywebsvcs.sourceforge.net/

4. In the opinion of many sensible people, SOAP/WSDL is a monster that
   started as an MS .COM extension of XMLRPC and got totally out of
   control.  Or more to the point, got out of the control of standards
   efforts to "play well with others", and got into the control of
   corporations seeking a new mechanism for proprietary lockin.

5. XMLRPC is the quick/cheap way to get web services.  In Python it is
   pretty straightforward.  See
   http://www.python.org/cgi-bin/moinmoin/XmlRpc

6. Assuming you are new to programming as well as XML/SOAP/WSDL, here
   are some std approaches to learning new problem domains:

5.1. Do a literature search, get tutorials, ask for help -- you are
     doing this.

5.2. Setup a small testbed to learn the mechanisms.  Typically start
     with a known good source or server, and read/parse/process that.
     Then learn to write/generate/serve.  In this case, you should
     probably follow the XMPRPC example above.  This is NOT your
     actual classroom exercise -- it is just a learning environment.
     Once you understand the mechanisms, you can architect and develop
     your project.  You can even grow them side-by-side (learn some
     more, then code some more, etc.)

5.3. In a system with several interacting parts (sounds like your
     exercise), the biggest problem is system integration.  This can
     be a nightmare if you've left it to the last phase.  Instead, get
     the whole thing connected with minimal functionality right from
     the start.  E.g., a simple query at one end gets to the other end
     and is acknowledged.  Build an automated regression test process
     around this (ask when you get to this point in python).  Then add
     functionality feature by feature, testing as you go.



-- 
harry.g.george at boeing.com
6-6M21 BCA CompArch Design Engineering
Phone: (425) 342-0007



More information about the Python-list mailing list