Web Services Addressing, firewalls and intermediary nodes

 

+

Search Tips   |   Advanced Search

 

Use the Web Services Addressing (WS-Addressing) support in WAS, you can create endpoint references that can be distributed across firewalls and intermediary nodes.

You can use the class...

com.ibm.websphere.wsaddressing.EndpointReferenceManager

...of the WS-Addressing API provided to automatically generate endpoint references that represent endpoints on the node on which the references are generated. These endpoint references contain the appropriate address information, based on the URL configured for the endpoint and any valid proxy configuration for the server on which the endpoint resides. Messages targeted at the endpoint reference from the client are routed to the endpoint through the appropriate intermediary node or nodes, as described in the following topology scenarios.

The topology of your system can also affect the type of endpoint reference that the WS-Addressing programming model generates. For example, if you use the createEndpointReference(QName serviceName, String endpointName) method to create an endpoint reference in a cluster environment, the endpoint reference, by default, represents an endpoint that is workload-managed in the cluster in which the endpoint was created, in accordance with the appropriate topologies in the following sections. This behavior therefore provides a performance enhancement for the application.

If the requesting application component runs under a transaction or in an HTTP session, affinity constraints might apply to the workload-management of endpoints.

You can also use the WS-Addressing programming model to create an endpoint reference that represents a stateful session bean that should not be workload-managed, for example because it maintains in-memory state. To create such an endpoint reference, use the createEndpointReference(QName serviceName, String endpointName, java.rmi.Remote statefulSessionBean) method.

If you enable high availability for stateful session beans, and create the endpoint reference using this method, the endpoint reference remains valid even if the stateful session bean is failed over, provided that the request originates from a WAS client at version 6.1 or later, or is routed by a Proxy Server for IBM WAS in the same administrative cell, as described in the following topology scenarios.

For stateless services, and for stateful services that are backed up by replication services, all the following topology scenarios are suitable.

 

Direct connection

Use this topology for non-clustered configurations. In this topology, there is no intermediary node. The client communicates directly with the WAS server on which the target endpoint resides. In this topology, the WS-Addressing API automatically generates the appropriate endpoint reference address, based on the URL configured for the Web service module.

If the endpoint reference represents a workload-managed endpoint, messages targeted at the endpoint reference are workload-managed only if the client targeting the endpoint reference is a WAS client, at Version 6.1 or later, that exists in the same administrative cell as the endpoint, as illustrated in the following diagram.

 

Proxy Server for IBM WAS

Use this topology when endpoint references refer to services that are deployed in a workload-managed cluster, access stateful information that is localized to a specific server, and optionally, can be failed over in a highly-available configuration. In this topology, the WS-Addressing API automatically generates the appropriate endpoint reference address, based on the URL prefix of a Proxy Server for IBM WAS that is configured for the target server on which the endpoint resides. Assuming that the client exists outside the administrative cell that contains the proxy server and target server, the client communicates with the proxy server, which dynamically routes the client requests to the appropriate server in the WAS cluster.

If the proxy targeting the endpoint reference is a Proxy Server for IBM WAS, at Version 6.1 or later, that exists in the same administrative cell as the endpoint, messages targeted at a workload-managed endpoint reference are workload-managed, based on the cluster. Similarly, requests targeted at an endpoint reference that represents a stateful session bean retain affinity to that stateful session bean, and an endpoint reference that represents a highly available stateful session bean remains valid if the stateful session bean is failed over to another server.

 

HTTP server, such as IBM HTTP Server

Use this topology when endpoint references refer to services that are deployed in a workload-managed cluster, and that do not access any stateful information that is localized to a specific server. In this topology, the WS-Addressing API automatically generates the appropriate endpoint reference address based on the URL prefix of the HTTP server that is configured for the target Web service module. You must configure the HTTP server URL prefix for each deployment of each application. The client communicates with the HTTP server, which then routes the client requests to a specific server based on the HTTP server configuration.

An endpoint reference that represents a highly available stateful session bean becomes invalid if the stateful session bean is failed over to another server. Similarly, requests targeted at an endpoint reference that represents a stateful session bean might not retain affinity to that stateful session bean, because the HTTP server might spread its requests across the available servers.

To maintain stateful session bean affinity and high availability, use a Proxy Server for IBM WAS in addition to your HTTP server, as described in the following topology.

 

HTTP server with a Proxy Server for IBM WAS

Use this topology when endpoint references refer to services that are deployed in a workload-managed cluster, that access stateful information that is localized to a specific server, and optionally, that can be failed over in a highly-available configuration. Also, this topology supports any HTTP server as the external HTTP reverse proxy (unlike the Proxy Server for IBM WAS topology).

In this topology, the WS-Addressing API automatically generates the appropriate endpoint reference address based on the URL prefix of the HTTP server that is configured for the target Web service module. You must configure the HTTP server URL prefix for each deployment of each application. The client communicates with the HTTP server, which you configure to forward the client requests to a Proxy Server for IBM WAS. The proxy then dynamically routes the requests to the appropriate server.

If the proxy targeting the endpoint reference is Proxy Server for IBM WAS, at V6.1 or later, and exists in the same administrative cell as the endpoint, messages targeted at a workload-managed endpoint reference are workload-managed based on cluster. Similarly, requests targeted at an endpoint reference that represents a stateful session bean retain affinity to that stateful session bean, and an endpoint reference that represents a highly available stateful session bean remains valid if the stateful session bean is failed over to another server.


 

Related concepts

Stateful session bean failover for the EJB container
Web Services transactions, firewalls and intermediary nodes
Virtual hosts

 

Related tasks

Configure virtual hosts
Creating endpoint references using the Web Services Addressing support
Setting up the proxy server
Routing requests from a plug-in to a proxy server

 

Related Reference

Web Services Addressing APIs
Provide HTTP endpoint URL information