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.
Steps on how to achieve this:
Open your 11g Service Bus Console.
Go to your http OSB proxy service, and edit the Transport Configuration.
Switch the protocol from http to sb.
Click Last. Click Save. Click Activate. Click Submit.
Export the WSDL of the proxy to be used later in JDeveloper. (It will export as a .jar file that you can extract)
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.
Create a new BPEL process in the same way as normally done.
Now drag in the Direct Binding from the BPEL Services tab under the Components tab.
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.
Create an Invoke step, and assign the input and output of the call like you would normally do.
Deploy the SCA to your 12c environment and log into Enterprise Manager 12c.
You can now test the Service.
You can also launch the flow trace to inspect the flow. Note the Direct Binding icon on the flow.
You have now successfully connected OSB11g and BPEL12c without the overhead of HTTP calls!