WITW: WSDL: 1, Norm: 0

Volume 8, Issue 33; 24 Feb 2005; last modified 08 Oct 2010

The complexity of WSDL has exceeded my level of interest in deciphering the complexity of WSDL.

I tried to wrestle my way through the arcana of WSDL, but I'm giving up. I don't doubt that it can be done, but I don't care enough to work my way through it.

I think this WSDL file describes the name method. At least, the SOAP::Lite module swallows it:

    #!/usr/bin/perl -- # -*- Perl -*-

use SOAP::Lite;

my $usage = "$0 userid\n";

my $userid = shift @ARGV || die $usage;

my $wsdl = "http://norman.walsh.name/2005/02/24/examples/witw.wsdl";
my $service = SOAP::Lite->service($wsdl);

my $result = $service->name($userid);

print "$userid is $result\n";


If it works in some tool that you have, I'd been keen to hear it. Likewise, if it doesn't work and you know how to fix it, I'd like to hear that too.

I tried to extend the file to support all of the methods provided by my SOAP server, but I gave up. I bungled it, or the tools I tried are buggy, or both. Sometimes I got incomprehensible error messages, sometimes I got incomprehensible results, and sometimes the code just went off into an infinite loop.

That said, I do think some sort of web services description language is necessary. While XML geeks may be happy building fancy URIs and parsing XML result documents to get work done, I'm afraid your average programmer isn't going to go for that.

The WITW project uses a function to calculate the distance between two points on the earth. I use that function by declaring it and calling it:

use Math::Trig qw(great_circle_distance);
$dist = great_circle_distance($lat, $long, $llat, $llong, $radius);

Now suppose the implementation of great_circle_distance was a web service. It could be a straight-forward REST web service or it could be some sort of RPC or it could be something else. As a programmer writing WITW, I don't care! What has to happen is, I declare the function and then I use it. A little boilerplate is OK, but making me understand URIs or GET or POST or XML isn't.

I think something dramatically simpler than WSDL could get the job done most of the time. We know the hard things are possible, we just have to make the easy things easy.


I sympathize -- I had to figure out WSDL well enough to write some examples in my book, and it wasn't a fun task.

—Posted by David Megginson on 25 Feb 2005 @ 03:40 UTC #

Two checkers that might be handy if you haven't already tried them on your WSDL: http://www.mindreef.net/tide/scopeit/start.do and http://soapclient.com/soaptest.html. Thanks for letting us all in on your experiments!

—Posted by Shifra Raffel on 25 Feb 2005 @ 04:16 UTC #

You may find this WS description language interesting... no great tool support i am afraid but we hope it's easier than WSDL...


—Posted by Savas Parastatidis on 25 Feb 2005 @ 07:06 UTC #

sometimes...when people are not looking....i use RDDL to define and describe my REST type web services....

I find WSDL is, like the rest of the WS stack, overblown for anything less then enterprise type development....if need be I would suggest using XML Spy to create a nice WSDL document....when I made them for various books, etc...

—Posted by James Fuller on 01 Mar 2005 @ 06:45 UTC #