A recent U2 forum inquiry asks about using the SoapRequest functions in BASIC to make a Web Service Client call via SOAP. I think it’s inefficient to do things like this directly to/from MV DBMS platforms. The person who maintains the code needs to know U2, BASIC, SOAP/XML, and the nuances of the U2 SoapRequest implementation (or whatever the library is for your specific MV platform). Considering how tough it is to get someone with the right skills to maintain the code, you could look at this as an investment in job security – but management might call it a liability. I believe IBM will be extending the Web Services interfaces, so maybe I’m just being too pessimistic. In fact I really hope IBM and other vendors continue to build on the interfaces already in there. The question is whether they can be responsive to your inquiries and build in quality before your projects are due.

I think a better way is to use external technologies like SOAP::Lite in Perl or PEAR::SOAP in PHP. This trades SoapRequest nuances for these other open source libraries and BASIC for an open source language, but I suspect there will be a lot more people who can read and maintain this code, and it’s probably a lot more stable and standard too. It’s also entirely free.

You can also use .NET for which you can build Web Service clients and servers with hardly any manual coding at all – the code is generated from WSDL provided by the Web Service endpoint. Use UO or UO.NET to get the data from Universe to a middle-tier, and then call through the generated code to make the actual remote request. This is a case of using the right tools for the right job, and again, all free. (You can use the free Visual Studio Express Editions.) Personally I’d prefer to use mv.NET as the data conduit, making the code MV platform independent as well as facilitating the gathering of data using DICT references with regular queries.

If you’re running over *nix and don’t want to involve Windows, you can do all of your communications using Mono (Open Source .NET) directly on a *nix platform – you can pass the data directly to Mono code from U2 or write to a file which the Mono code reads and transmits.

The above is just a small sample of the options available. The internet is full of information on the topic of Web Services – pretend you’re not approaching it from a Pick perspective and all sorts of opportunities open up.

The Pick DBMS is great for a lot of things, and we can really do wonders with BASIC, but having the ability to do something doesn’t imply that we should do it. With more powerful tools at our disposal, these days I always tend toward using tools specially created to do specific jobs, rather than tools created by one vendor to satisfy that "yes, we have that" checkbox.

For more information on Web Services and SOAP:
- See my articles pages with lots of links to more info.
- There’s an article on Service Oriented Architecture (SOA) in Spectrum Magazine.
- Excellent introduction to the U2 SOAP API
- Web Services can be quite complex and intimidating at times.
MicrosoftIBM, Sun Microsystems, W3C, OASIS, and others continue to work closely to create secure standards and foster commerce.
As time permits I’ll add some links from this posting to more info about doing Web Services from various MV platforms. Please feel free to post links as comments.