JPD Transport User Guide

     Previous  Next    Open TOC in new window    View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Using the JPD Transport

AquaLogic Service Bus (ALSB) can leverage WebLogic Integration (WLI) as a service end point. WLI business processes and composite applications can act as business services (service providers) or as service clients (service consumers). The JPD transport allows ALSB to natively invoke WLI business processes (JPD) using RMI synchronously. Note that the JPD transport can invoke only WLI business process and cannot invoke any Java Web services.

The JPD transport provides access to WLI processes along with support for both transaction and security context propagation from ALSB to WLI. Although ALSB does not manage conversions, an external client can interact with conversational WLI processes using the JPD transport as long as the client is conversational aware. That is, the client must be either a JPD client or a web service conversational client and must have support for generating and understanding conversational headers. For more information, see “About Conversation Management” in Calling Business Processes in Guide to Building Business Processes.

The JPD transport is an outbound transport and can be used to invoke only external services. This implies that you can configure the JPD transport only with business services. There is no support for inbound transport and so this transport cannot be configured for ALSB proxy services.

JPD or web service (WS) clients can send a request message to an ALSB proxy service, which after processing forwards the message to the WLI business process using the ALSB business service configured with JPD transport. For more information, see Typical Scenario.

You can configure WLI as a service client by importing the service client WSDL from ALSB into WLI, generating a Service Control, and adding a node in the business process to invoke the service. You can expose WLI to ALSB by generating the WSDL file from the existing business process and registering with ALSB as a business service.

 


WLI Business Process

A business process is a collection of interrelated tasks associated with a specific organizational requirement. WLI Business Process Management (BPM) allows users to model and execute business processes that span multiple internal systems, external resources, and users. From the BPM perspective, the enterprise is a set of business services that are accessed through controls and can be orchestrated to model a business process. WLI supports synchronous and asynchronous communications and stateless and stateful processes.

Business processes can expose their functionality to clients in several ways, including through WSDL files.

 


Key Features

This section describes the key features that are supported by the JPD transport.

Service Types

The JPD transport supports the following service types:

The incoming message should be in compliance with the WLI business process semantics. For WSDL and SOAP-based business services, the request should be a SOAP message that can be understood by a WLI business process. For an XML-based business service, the XML should be a self-contained document with a method name and parameters serialized to XML along with the namespace.

Note: JPD transport provides support for SOAP 1.1 and limited support for SOAP 1.2.

Messaging Patterns

The JPD transport supports:

 


Limitations

JPD transport does not support:

 


Quality of Service

The Quality of Service (QoS) can be Best-Effort or Exactly-Once and can be configured in the message flow.

For messages sent over RMI, the security and transaction context may be propagated from the client to ALSB. Security context is propagated to the remote WLI end point. The transaction can be propagated based on QoS settings and value of the Propagate-Transaction option set while configuring a business service to use the JPD transport. Propagating the security context from ALSB to WLI may require enabling domain trust between domains. Domain trust is required when ALSB and WLI are on different domains. Domain trust is not required when credentials specified in a service account are used for invoking the WLI business service.

While configuring a business service to use the JPD transport, you can set the Propagate-Transaction option to specify if an existing transaction in ALSB can be propagated to the WLI business process or not. The propagation of the transaction depends on the QoS parameters as listed below:

 


Typical Scenario

A typical scenario where the JPD transport can be used is as follows:

  1. An external client sends a request message to a proxy service in ALSB. The proxy service can be configured with any transport that is supported by ALSB, and the service type of the proxy service can be WSDL (generated from the business service JPD), Any SOAP, or Any XML.
  2. Note: Ensure that the incoming requests are compliant with the JPD semantics. That is, the file format of the WSDL, SOAP, or XML file should be as expected by the business process JPD file.
  3. The proxy service receives the message and forwards it to ALSB message flow for processing. The outbound message to be sent to the WLI business process is created in the message flow after removing the binding and transport-specific headers. The request message flow is invoked for processing.
  4. After the request message flow processing is over, the message is forwarded to the ALSB business service.
  5. The business service invokes WLI Stateless Session Bean (SLSB) deployed on the WLI server using SOAP over RMI, which in turn invokes the WLI business process.
  6. An SLSB-named proxy dispatcher bean is registered on the WLI server and is used to handle requests from the JPD proxies. The JPD transport forwards the messages received by the business service to the SLSB, which in turn invokes the WLI business process.

  7. The response from the WLI business process is returned to the business service end point. The response message flow is invoked for processing.
  8. The response message is processed in the response message flow and the response is returned to the external client through the ALSB proxy service.

Figure 1 shows a typical scenario where you can use the JPD transport.

Figure 1 Typical Scenario Using the JPD Transport

Typical Scenario Using the JPD Transport

 


Before you Configure a Business Service

Before you configure a business service, you may need to do any or all of the following tasks based on your requirements:

  1. Generate the WSDL file associated with the business process that you want to call from the business service. Right-click on the JPD file and select the Generate-WSDL option. Use the generated WSDL to configure the JPD business service. For more information, see Configuring Business Services to use the JPD Transport.
  2. Create a service account. The service account credentials can be used for system or process.
  3. The system service account specifies the user credentials for the invocation of the WLI stateless session bean that the JPD transport uses to send incoming messages. If no service account is specified, the inbound request subject is used. If there is no inbound request subject, an anonymous subject is used.

    The process service account specifies the user credentials for the invocation of the JPD. If no service account is specified, the inbound request subject is used. If there is no inbound request subject, an anonymous subject is used.

    For more information, see Service Accounts in Using the AquaLogic Service Bus Console.

  4. Configure a JNDI provider. The JNDI provider points to the WLI JNDI provider where the WLI SLSB is registered.
  5. When you create a business service, you can associate it with a JNDI provider. For more information, see Adding JNDI Providers in Using the AquaLogic Service Bus Console and Configuring Business Services to use the JPD Transport.

    Note: When a JNDI provider is not specified during the business service configuration, the default context is used. This implies that the service and the ALSB server are located on the same machine. When the call is co-located, serialization is skipped during service invocation.

    IIOP(S), T3(S), and HTTP(S) transport protocols can be used by the JNDI provider. The preferred communication protocol from ALSB to a WLS domain is T3 or T3S. If messages need to go through a firewall, you can use HTTP tunneling by using an HTTP provider url in the context and by enabling HTTP tunneling on the WLS server.

    It is the responsibility of the administrator to ensure that the protocol supported by the JNDI provider is on the remote ALSB server.

    If the JNDI provider is configured with a user name and password, IIOP and IIOPS protocols are not supported when WLI and ALSB are co-located on the same machine.

  6. Create an instance of WLS Work Manager that you want to use as the dispatch policy for the service end point. The default Work Manager is used if no other Work Manager exists. For information about work managers, see Using Work Managers to Optimize Scheduled Work and Create Work Manager in WebLogic Server Administration Console Online Help.
  7. Configure a proxy service for receiving callbacks from a business process. This callback proxy service is not required if the business process being invoked is a synchronous JPD or an asynchronous JPD without callbacks. This service may be used when the business process being invoked is an asynchronous business process with callbacks. For more information, see Asynchronous Business Processes with Callbacks.

 


Configuring Business Services to use the JPD Transport

Because the JPD transport is an outbound transport, it can only be configured for a business service. When you create a business service from the ALSB Console, select WSDL, Any XML, or Any SOAP as the service type in the General Configuration page.

Note: Ensure that the incoming requests are compliant with the JPD semantics. That is, the file format of the WSDL, SOAP, or XML file should be as expected by the business process JPD file.

Select the transport protocol as jpd in the Transport Configuration page. For information about:

With ALSB throttling, you can limit the amount of throughput to business services to support policy enforcement and prevent overloading of those services. For more information, see Throttling in ALSB in AquaLogic Service Bus Operations Guide.

 


Asynchronous Business Processes with Callbacks

Any JPD client that needs to receive callbacks needs to send the callback location (URL) as part of the initial request. This callback location specifies that the client is waiting to receive callbacks from the business process at the specified URL. To support callbacks in ALSB, you need to configure two message flows — one for request processing and the other for callback processing.

To use the JPD transport for invoking an asynchronous business process with callbacks through ALSB, you need to configure a callback proxy service. You can specify the location of the callback proxy service during the JPD business service configuration. Because callbacks are only supported over JMS, the callback proxy service must be configured over JMS. WLI sends the callback response and the initial callback location URL to the JMS queue associated with the callback proxy service as a JMS transport header BEA_WLI_Target_Callback_Location. You can use the $inbound message context variable to retrieve the initial callback location (sent using the JPD client request) and configure the business service to send the callback to the actual JPD callback client.

 


Error Handling

You can configure the JPD transport-based business services to handle application errors by specifying whether or not to retry business service end point URIs when application errors occur. See “Retry Application Errors” in Creating and Configuring Business Services - Transport Configuration page in Using the AquaLogic Service Bus Console.

An application error occurs when a JPD transport-based business service receives a SOAP fault as a response and the BEA-380001 error code is generated. If an error handler is configured for the response message flow, the error is handled according to the service configuration. Otherwise, the error is propagated back to the proxy service end point.

Note: When a response timeout or sequence timeout occurs for a request to a business service, the ALSB server tries to send the message to the next URI in the end point URI list based on the load-balancing algorithm. This behavior does not depend on the Retry Application Errors option.

 


Transport Header

The JPD transport is not bound to any specific protocol and all the invocations happen over RMI. Therefore, there are no protocol-specific headers required by the JPD transport. You can pass any custom request headers as name-value pairs. JPD transport defines two headers that may be used by WLI to process a message. The transport headers are shown in Table 1:

Table 1 JPD Transport Headers
Header Name
Description
Content-Type
Content type of the message received by the JPD transport (for example, text/XML, application/soap + XML or multipart/related).
If this value is not specified, it is determined during runtime and passed to WLI.
SOAPAction
An optional SOAP Action header.
SOAPAction header is only available when the proxy service receives the SOAP message over HTTP(S) and can be mapped to the JPD transport header.


  Back to Top       Previous  Next