Understanding Consuming and Invoking Oracle Mediator/ESB-Based Services

This section provides information about consuming Oracle Mediator/ESB-Based services.

Oracle Mediator/ESB Projects When PeopleSoft is a Consumer

Oracle Mediator/ESB cannot provide a service. It can only mediate between a client and the provider of the service.

Hence, if PeopleSoft is the consumer of a Mediator or ESB service, the Mediator/ESB project will contain a SOAP service that will implement the business logic. Further there will be a routing service that will route the SOAP request message from PeopleSoft to the underlying web service implementation.

Service Routing Types

There are three types of routing services: synchronous, asynchronous, and asynchronous request/response.

Note:

Oracle Mediator provides the ability to consume asynchronous request/response services. You cannot consume these types of services uses Oracle ESB.

The type of routing service determines the type of Mediator or ESB project. A Mediator or ESB project with a synchronous routing service defined is a synchronous Mediator/ESB project; and a Mediator/ESB project with an asynchronous routing service defined is an asynchronous Mediator/ESB project. Mediator projects with an asynchronous request/response service defined is an asynchronous request/response service.

Oracle ESB Nested and Non-Nested WSDL

PeopleSoft systems can consume WSDL documents that are nested or not nested. This section provides additional information on each type.

Note:

PeopleSoft supports integrations with Oracle ESB nested WSDL documents. This feature is not available with Oracle Mediator.

Using nested WSDL documents allows you to separate the different elements of a service definition into independent documents that you can consume as needed.

Using nested WSDL helps you to write clearer definitions by enabling you to separate the definitions according to their level of abstraction. It also maximizes the ability to reuse service definitions.

The following example shows a nested WSDL document. The document is separated into three smaller documents: data type definitions, abstract definitions, and specific service bindings.

The following example shows a data type definition WSDL document:

//data type definitions WSDL//
<schema attributeFormDefault="unqualified"
     elementFormDefault="qualified"
     targetNamespace="http://xmlns.oracle.com/SynchAdd_ESB"
     xmlns="http://www.w3.org/2001/XMLSchema">
     <element name="SynchAdd_ESBProcessRequest">
          <complexType>
               <sequence>
                    <element name="input1" type="integer"/>
                    <element name="input2" type="integer"/>
               </sequence>
          </complexType>
     </element>
</schema>

The following example show an abstract definition WSDL document:

<?xml version="1.0" encoding="UTF-8" ?>
<definitions name="NestedAsyncFFAdd_RS"
     targetNamespace="http://oracle.com/esb/namespaces/NestedAsyncFFAdd_ESB"
     xmlns="http://schemas.xmlsoap.org/wsdl/"
     xmlns:tns="http://oracle.com/esb/namespaces/NestedAsyncFFAdd_ESB"
     xmlns:inp1="http://xmlns.oracle.com/SynchAdd_ESB">
     <types>
          <schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://xmlns.oracle.com/SynchAdd_ESB"
schemaLocation="SyncAdd_Req.xsd" />
</schema>
</types>
<message name="SynchAdd_ESBProcessRequest_request">
<part name="SynchAdd_ESBProcessRequest"
element="inp1:SynchAdd_ESBProcessRequest" />
</message>
<portType name="NestedESBAsyncFFAdd_ppt">
<operation name="NestedESBAsyncFFAdd">
<input message="tns:SynchAdd_ESBProcessRequest_request" />
</operation>
</portType>
</definitions>

The following example shows a service bindings WSDL document:

<?xml version="1.0" encoding="UTF-8" ?>
<definitions targetNamespace="http://oracle.com/esb/namespaces/ 
  NestedAsyncFFAdd_ESB/concrete"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://oracle.com/esb/namespaces/NestedAsyncFFAdd_ESB/concrete"
xmlns:ws="http://www.example.com/webservice" xmlns:http="http:
//schemas.xmlsoap.org/wsdl/http/"
xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:esb="http://www.oracle.com/esb/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http:
//schemas.xmlsoap.org/wsdl/"
xmlns:import="http://oracle.com/esb/namespaces/NestedAsyncFFAdd_ESB">
<import namespace="http://oracle.com/esb/namespaces/NestedAsyncFFAdd_ESB"
location="http://bng-psft-
0100:8888/esb/slide/ESB_Projects/PS_Consumer_NestedAsyncFFAdd_ESB/NestedAsyncFFAdd_
ESB_NestedAsyncFFAdd_RS.wsdl" />
<binding name="__soap_NestedAsyncFFAdd_RS_NestedESBAsyncFFAdd_ppt"
type="import:NestedESBAsyncFFAdd_ppt">
<soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="NestedESBAsyncFFAdd">
<soap:operation xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document"
soapAction="NestedESBAsyncFFAdd" />
<input>
<soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal" />
</input>
</operation>
</binding>
<binding name="__esb_NestedAsyncFFAdd_RS_NestedESBAsyncFFAdd_ppt"
type="import:NestedESBAsyncFFAdd_ppt">
<esb:binding />
<operation name="NestedESBAsyncFFAdd">
<esb:operation eventname="
NestedAsyncFFAdd_ESB.NestedAsyncFFAdd_RS.NestedESBAsyncFFAdd" />
<input />
</operation>
</binding>
<service name="ESB_NestedAsyncFFAdd_RS_Service">
<port name="__soap_NestedAsyncFFAdd_RS_NestedESBAsyncFFAdd_ppt"
binding="tns:__soap_NestedAsyncFFAdd_RS_NestedESBAsyncFFAdd_ppt">
<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
 location="http://bng-psft-0100:8888/event/NestedAsyncFFAdd_ESB/
 NestedAsyncFFAdd_RS" />
</port>
<port name="__esb_NestedAsyncFFAdd_RS_NestedESBAsyncFFAdd_ppt"
binding="tns:__esb_NestedAsyncFFAdd_RS_NestedESBAsyncFFAdd_ppt"/>
</service>
<plt:partnerLinkType name="NestedESBAsyncFFAdd_pptLT">
<plt:role name="NestedESBAsyncFFAdd_pptProvider">
<plt:portType name="tns:NestedESBAsyncFFAdd_ppt" />
</plt:role>
</plt:partnerLinkType>

Oracle Mediator/ESB WSDL Bindings

A WSDL document binding provides the protocol and data format specification for a particular port type.

Oracle Mediator/ESB WSDL documents can have SOAP bindings or Oracle Mediator/ESB native bindings.

Note:

Oracle Mediator/ESB WSDL documents to be consumed by PeopleSoft systems must be of the SOAP type. SOAP binding adhere to the SOAP protocol. Choosing the Oracle Mediator/ESB native binding type may result in unpredictable behavior in PeopleSoft systems.

Asynchronous Request/Response Callback Operations

The WSDL created by Oracle Mediator for asynchronous request/response integrations does not contain a service definition for the callback operation. The PeopleSoft system does not recognize the callback until the service definition is defined.

As a result, save the WSDL document to the file system and add the following section to the WSDL document. Then consume the WSDL document in the Consume Web Services Wizard, selecting the File option when specifying the WSDL source.

<wsdl:service name="asyncrrcalcesbcallback_client_ep">
   <wsdl:port name="AsyncRRCalcESBCallback_pt" binding="client:
    AsyncRRCalcESBCallbackBinding">
      <soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
       location="http://Client.EndPoint.Set.By.Caller"/>
   </wsdl:port>
</wsdl:service>

PeopleSoft Integration Broker Consume Services Wizard

To consume Oracle Mediator/ESB-based services use the PeopleSoft Integration Broker Consume Services Wizard. The wizard enables you to consume WSDL provided by integration partners. In turn, the wizard creates PeopleSoft service, service operation, message, and routing definitions for the WSDL, thereby enabling you to manage and invoke the service in PeopleSoft.

See Understanding the Consume Web Service Wizard.