Making an externally-hosted web service available internally
Create an outbound service. An outbound service provides access, through one or more outbound ports, to a web service that is hosted externally. An outbound service can be used by any of your internal systems that can access the service integration bus on which it is hosted. To make an externally-hosted service available through a bus, you first associate it with a service destination, then you configure one or more port destinations (one for each type of binding, for example SOAP over HTTP or SOAP over JMS) through which service requests and responses are passed to the external service. You get the port definitions from the WSDL, but we can choose which ones to create.
This topic assumes that we have created and installed a Service Data Objects (SDO) repository (used for storing and serving WSDL definitions) on every stand-alone server or cluster that is to play a service integration bus web services role.
To create an outbound service, you must know the location of the externally-published WSDL file that describes the service. This WSDL file is either available at a web address or through a UDDI registry.
If the WSDL file for the outbound service is stored in a UDDI registry, you associate the outbound service with a UDDI reference to the registry. You select the UDDI reference from a drop-down list, so you must configure the UDDI reference before configuring a new outbound service that uses it.
Decide which method to use to configure these resources. We can create an outbound service using the console as described in this task, or using the createSIBWSOutboundService command.
If the bus needs to pass messages through an authenticating proxy server to retrieve WSDL documents, then we cannot use the console for this task and create the new outbound service by . For more information see the corresponding troubleshooting tip.
In the following figure, each message is passed from the outbound service to the target service through an outbound port. A separate outbound port is created for each available binding. JAX-RPC handlers and WS-Security settings can be applied at the ports.
Figure 1. Outbound service
Requests and responses to an outbound service are sent across any transport binding (for example SOAP over HTTP, SOAP over JMS, EJB binding) that is available to both the target service and the service integration bus. Each available binding type is represented by an outbound port configured at a port destination. For more information, see Outbound ports and port destinations.
We can control and monitor access to the target service in the following ways:
- We can associate JAX-RPC handler lists with ports, so that the handlers can monitor activity at the port, and take appropriate action depending upon the sender and content of each message that passes through the port.
- We can set the level of security to be applied to messages (the WS-Security binding). The security level can be set independently for request and response messages.
- Start the console.
- In the navigation pane, click Service integration -> Buses -> bus_name -> [Services] Outbound Services. The outbound services collection form is displayed.
- Click New. The New outbound service wizard is displayed.
- Use the wizard to create the new outbound service configuration by completing the following steps. For more information about the properties set with the wizard, see Outbound services settings and Outbound ports settings.
- Locate the target service WSDL.
- Select the service from the WSDL.
- This option is needed in case there is more than one service in the WSDL. The field is filled in for you by default. If there is only one service in the WSDL, accept the default.
- There needs to be at least one port defined in the service you select.
- Select the ports that are to be enabled for this service.
Select at least one port.
- Name the outbound service, the service destination and all of the port destinations.
- Default names are generated, but we can rename them. The default names are unique within the current service integration bus. Any replacement names that you choose must be similarly unique. If we enter a name that is not unique, an error message is displayed.
- If we have created a port selection mediation and deployed it to the service integration bus, then it is available for selection in the list of mediations. If we do not want to use a port selection mediation with this outbound service, select none from the drop-down list. This list contains all mediations, including port selection mediations, that are currently deployed to this service integration bus.
- The list of available ports is a subset of the ports described in the WSDL file. You chose this subset in the previous step. If we selected more than one port in the previous step, you should also set the default port to be used unless otherwise specified by a port selection mediation.
- Assign each port destination and (optionally) the port selection mediation to a bus member.
- Bus members are application servers or clusters added to this bus.
- The option to assign a port selection mediation to a bus member is only displayed if you selected a mediation in the previous step.
- Click Finish.
Results
If the processing completes successfully, the list of outbound services for this service integration bus is updated to include the new outbound service. Otherwise, an error message is displayed.
What to do next
Because the service is hosted externally, you might also need to enable proxy server authentication for each port to get permission to access the Internet.
To secure your new outbound service, or apply any JAX-RPC handler lists to the ports, or enable proxy server authentication for any of the ports, use the console to modify the outbound service configuration.
Subtopics
- Modify an existing outbound service configuration
Modify the configuration details for an outbound service. For example: secure the service; apply JAX-RPC handler lists to the ports for the service; publish the service to more than one UDDI registry.
- Delete outbound service configurations
Use this task to delete outbound services configurations using the console.
createSIBWSOutboundService command refreshSIBWSOutboundServiceWSDL command addSIBWSOutboundPort command removeSIBWSOutboundPort command setDefaultSIBWSOutboundPort command
Related information:
Making an internally-hosted service available as a web service Work with the web services gateway Outbound services [Settings] Outbound Ports [Settings]