### Proxy Service Operation Selection Configuration page

Use AquaLogic Proxy Service Operation Selection Configuration page to enforce WS-I compliance (for SOAP 1.1 services only) and select the selection algorithm to use to determine the operation called by this proxy service. This option is only available for SOAP or XML services defined from a WSDL.

The WSDL specification defines a default algorithm to compute which operation is called based on the type of the SOAP message received. However, there are cases (for example, performance issues, signature/encryption issues, or the default algorithm is not applicable) when you may need to select the operation based on other means.

ALSB provides additional algorithms. Each of them follows the same pattern and are based on the evaluation of an expression to get a value that is then used to lookup the corresponding operation in a static table.

ALSB is generally very forgiving if an inbound message is either missing data such that the operation cannot be determined, or has data that does not correspond to a valid operation. Both of these conditions result in `$operation` being empty. Rather than reject all such messages, ALSB does not initialize the operation variable in the context but otherwise continues to process the message.

However, security requirements are enforced if the proxy service is WSDL-based and at least one of the following conditions is true:

- The WSDL has a WS-Security policy and the proxy is an active intermediary.
- The proxy has message-level custom authentication (either custom token or username/password).

If these conditions are met, then there is a runtime check to make sure the operation selection algorithm returns a valid operation name. If the operation selection returns null or an operation that is not in the WSDL, then the message is rejected and an error is raised.

Option | Description
--- | ---
Enforce WS-I Compliance | Select or deselect this check box to specify whether or not the service is to conform to the Basic Profile defined by the Web Services Interoperability Organization. This option is available for or SOAP 1.1 services only When a service is marked WS-I compliant, checks are performed against the messages sent to and from that service. For proxies, checks are performed against request messages received by the proxy. For invoked services (i.e. services invoked by a proxy via service callout action or route node), checks are performed against the response messages received from those services. Note that it is the WS-I compliance property of the invoked service and not the proxy that determines whether or not checks are performed against messages received from the invoked service. If you specify WS-I compliance testing for an invoked service, the message flow generates a fault for response errors.
Selection Algorithm | Select one of the following and perform any required additional steps: Transport Header - Select this algorithm to define the transport header that contains the lookup value. Then: In the Header Name field, enter the transport header that extracts the value used as a key to select the operation being invoked. Under the Operation Mapping field, specify the value for each operation in the Value field. The value is used as the key of the operation. SOAPAction Header - Select this algorithm to specify that operation mapping be done automatically from the WSDL associated with this proxy service. WS-Addressing - Select this algorithm to specify that the lookup value is contained by the WS-Addressing `Action` tag located in the SOAP headers of the SOAP message. Then, under the Operation Mapping field, specify the value for each operation in the Value field. The value is used as the key of the operation. SOAP Header - Select this algorithm to define an XPath expression to be evaluated against the SOAP headers. This allows you to get the lookup value. Then: In the XPath Expression field, specify the XPath expression that extracts the value used as a key to select the operation being invoked. In the Operation Mapping field, specify the value for each operation in the Value field. The value is used as the key of the operation. SOAP Body Type - This is the default algorithm defined by the WSDL specification to compute which operation is called based on the type of the SOAP message received. If the proxy service is configured for a Web Service security pass-through scenario with an encrypted body, you cannot select this algorithm. A similar caveat applies to pass-through encrypted SOAP headers. If you have a WSDL that has two operations with the same input message, do not select this algorithm for operations, because the operation cannot be uniquely identified by inspecting the input message. Payload Type - Available only for XML services based on a WSDL port or WSDL binding.
Header Name | This option is available only when the Selection Algorithm option is set to Transport Header. Enter the transport header that extracts the value used as a key to select the operation being invoked.
XPath Expression | This option is available only when the Selection Algorithm option is set to SOAPHeader. Specify the XPath expression that extracts the value used as a key to select the operation being invoked.
Operation Mapping | This option is available only when the Selection Algorithm option is set to Transport Header, WS-Addressing, or SOAP Body Type. Specify the value for each operation in the Value field. The value is used as the key of the operation.