Tuesday, December 23, 2014

Direct Binding Adapter between Oracle Fusion Middleware 11g and 12c

From Oracle documentation we know the following:
“A SOA composite can invoke any Service Bus SB WSDL-based proxy service. To invoke an SB proxy service, the SOA service component must use a direct binding reference of Target Type "Oracle Service Bus."

However can this we done between FMW11g and FMW12c? The answer is in fact YES, and this can help in a strategy to run 11g and 12c in parallel without compromising performance.
clip_image002[4]
Steps on how to achieve this:
Open your 11g Service Bus Console.
clip_image004[4]
Go to your http OSB proxy service, and edit the Transport Configuration.
clip_image006[4]
Switch the protocol from http to sb.
 clip_image008[4]
Click Last. Click Save. Click Activate. Click Submit.
 clip_image010[4]
Export the WSDL of the proxy to be used later in JDeveloper. (It will export as a .jar file that you can extract)
clip_image012[4]
You have now changed the protocol of the proxy from HTTP to SB. Thus this proxy cannot be invoked over the HTTP protocol anymore. Alternatively you can create a clone of the proxy service and have a HTTP and SB version available.
Now launch JDeveloper for 12.
clip_image014[4]
Create a new BPEL process in the same way as normally done.
clip_image016[4]
Now drag in the Direct Binding from the BPEL Services tab under the Components tab.
clip_image018[4]
Supply a name and change the Reference Target to Oracle Service Bus. Then browse for the WSDL file you downloaded earlier. Note that the Provider URL is t3 protocol.
Click OK.
clip_image020[4]
Create an Invoke step, and assign the input and output of the call like you would normally do.
 clip_image022[4]
Deploy the SCA to your 12c environment and log into Enterprise Manager 12c.
 clip_image024[4]
You can now test the Service.
 clip_image026[4]
You can also launch the flow trace to inspect the flow. Note the Direct Binding icon on the flow.
 clip_image028[4]
You have now successfully connected OSB11g and BPEL12c without the overhead of HTTP calls!