Hi all,
We have a workflow system called Taverna (taverna.sf.net) which uses axis for the parts it need to call web service based components. I was able to use the dynamic invocation example to construct this and to use wsdl4j and axis's wsdl parsing to present the user with a view on the service that looks like a standard 'chip' type thing, has inputs and outputs and a big button marked go (this is per operation, obviously).
This all works very nicely, can consume .net service and others as long as they're using simple types, so string, byte[] and arrays of these. As it happens this is normally sufficient, in our community (bioinformatics) these are far and away the most common services, descending as they do from wrapped command line tools - obviously a command line tool consumes files so binary or text is cool.
There are a few services out there, however, which are document oriented and use complex types. All well and good, but of course our current framework panics and so our users can't construct workflows containing these types and that's a shame. What I was thinking of doing was presenting an operation that consumed complex types as always being document oriented, so in the workflow it would have a single input xml and a single output xml document. These can then be parsed and created by adjacent processing entities in the workflow.
So - how easy is it going to be to modify the existing dynamic invocation code to a) notice that there's a complex type and b) switch automagically into something that looks like a document style invocation?
Any pointers or experiences would be most helpful.
Cheers,
Tom