Local optimization for web services
You can use the provider application name in the web service binding file associated with the WEBSERVICE resource to enable local optimization of the web service request.
Using the INVOKE SERVICE command, you can specify the URIMAP(urimap) or URI(uri) where the uri is the URI of the web service to be invoked. If a URIMAP is specified, CICS uses the client mode URIMAP indicated to resolves the URI. If these options are omitted, CICS uses the URI specified in the web service description (WSDL) from which the WEBSERVICE was generated.
If the WEBSERVICE indicated is deployed in a requester mode PIPELINE, CICS invokes the remote web service. This is the most typical scenario.
- The PIPELINE is not driven and therefore no handler programs are used.
- The PIPELINE control containers are not present on the Channel. Some containers are present, including the DFHWS-DATA, DFHWS-OPERATION and DFHWS-URI containers. Any containers that normally contain XML are not present; this includes the DFH-REQUEST, DFHWS-BODY and DFHWS-XMLNS containers.
- Both the provider and requester applications must share the same copybooks and be implemented in the same programming language.
- Both the provider and requester applications share a single unit of work.
- If the web service is not expected to return a response, the EXEC CICS INVOKE SERVICE command does not return control to the application until after the target PROGRAM has ended.
If you want to use locally optimized web services but require data to be processed through a
PIPELINE, use the cics URI format described here: Options for controlling requester pipeline processing. This mechanism is less efficient than using the fully optimized
approach, but it avoids the processing cost of going out to the network.