Resources for Web Services

Software infrastructure

Knoplerfish Axis Bundle

This gives easy access to Apache Axis, the best open source web services tool . . . except for Axis2, which this is not a bundle of. It would likely be beneficial for us to similarly bundle-ize Axis 2. Axis 2 is significantly better at handling cutting edge WS-* standards, which grid computing seems to use extensively.

Important APIsAxisService

Throw it a WSDL, it configures a new instance of itself with all the appropriate details. We use it to figure out what our services want.

ServiceClient

From there, we create a client.

How-to for auto-magic Dual Transports

If we can (since some operations might be long-running), engage WS-Addressing withengageModule(newQName("addressing"));and have it use a separate listener withgetOptions().setUseSeparateListener(true);.
EndpointReference

We could also do some nifty tricks with endpoint references if we have some sort of central (or any third party) server we want receiving the results instead of this client.

OMElement

then we invoke the client as appropriate (almost always sendReceiveNonBlocking or sendRobust), passing it anOMElementwith the necessary payload.

XmlSchema

We'll have to look at the schema for each service and see which ones we can invoke.

Example Code of Interest

Web Services Desktop Demo

Knoplerfish has implemented an example for running arbitrary web services on an arbitrary host. Our effort should likely start with a similar infrastructure (at least enough to handle everything the automatically generated parameter dialogues can handle) and be able to handle additional optional capabilities (mainly passing network files back and forth).