SOAP, take two

geoff on 2003-01-10T20:49:50

well, thanks to chromatic, my last journal entry has made it to the front page of the O'Reilly Network. you can read the entire article from here.

I have to say, I would have been kinder to the Java programmers had I known that people would actually read my ramblings. after all we (the Perl community) need them in this matter.

the fact that SOAP::Lite can turn my 7000 lines of OO Perl into a SOAP service without changing a line of code is amazing... and almost completely worthless if I can't show how to write clients in other languages. see, without a real Java example for this kind of thing, we can't say to the rest of the world "Go ahead, you write in Java, we'll write in Perl, and everybody can get along just fine." and, as the minority, it will always be up to us to show how our SOAP library (SOAP::Lite) can be made to work with whatever the Java people use. that is, if we want to write OO Perl for web services. without some complete example we as Perl programmers can whip up ourselves, we will have no recourse but to step back sheepishly when our bosses say "Well, you don't know how, and our Java team doesn't have the time to figure it out, so just let's just write the whole thing in Java."

so please, warm up to your Java-speaking friends, and get them to step up to the challenge. Don't let them get away with hand-waving notions like "oh, you just need to create the proper WSDL foo - it's all in the specs." it's time for an example that makes going to the specs unimportant - complete Java example that Perl SOAP developers can use to quickly get themselves up to speed, proving that SOAP promises are not just a dream.


Creating web services

ziggy on 2003-01-11T05:11:19

the fact that SOAP::Lite can turn my 7000 lines of OO Perl into a SOAP service without changing a line of code is amazing...
Actually, that's not the full story. SOAP::Lite make an OO Perl module into a SOAP service by adding an external 7-line boilerplate stub.

If you tilt your head at the right angle, it's actually easier in C#. That language was created so that adding a 'service' keyword to a method definition makes it into a Web Service (with autogenerated WSDL through some utility or something). Including SOAP support in the language runtime also helps.

Astute readers will recognize that "adding a simple keyword to a method definition" requires modifying code, while adding a 7-line boilerplate wrapper does not. There's probably a wrapper technique for C#, but I doubt it's as simple as SOAP::LIte. :-)

Thanks Paul!