[kepler-users] new web service actor

Daniel Crawl crawl at sdsc.edu
Thu Jun 7 14:02:01 PDT 2007


Hi,

I've created a new actor that can invoke web service operations with
complex types. It's called WSWithComplexTypes. To see it in action,
look at these workflows in $KEPLER/workflows/test/spa/:

NewWebServiceArrayReturnTest.xml
NewWebServiceDecodeOutputTest.xml
NewWebServiceNestedTypesTest.xml


WSWithComplexTypes invokes web services defined by WSDLs. Similar
to WebService, given a web service WSDL URL and an operation name,
WSWithComplexTypes specializes its input and output ports to reflect
the input and output parameters of the operation. For simple web
service types, e.g., string, int, double, etc., the ports are set to
the matching Ptolemy types. For complex web service types, the ports
are set to XMLTOKEN. When the actor fires, it reads each input port,
invokes the web service operation with the input data, and outputs the
response to the output ports.

WSWithComplexTypes also has two parameters, inputMechanism and
outputMechanism, that aid in working with complex web service types. Their
default setting is 'simple', which causes WSWithComplexTypes to specialize
its ports as already described. By setting to 'composite', a composite
actor is additionally created for each (web service operation) parameter
that is a complex type. Each composite actor contains the XMLAssembler or
XMLDisassembler actors needed to build the complex web service type, and
the external ports are all simple Ptolemy types. Changing the mechanism
back to 'simple' deletes the connected composite actors. (If you have
made changes to the composite actors and don't want them lost, disconnect
them from WSWithComplexTypes before changing the mechanism to 'simple').

If you have any questions, let me know.

  --dan


More information about the Kepler-users mailing list