Lately, I have been playing around wih the integration between Fusion Middleware and Oracle Utilities Application Framework based products. The Fusion Middleware stack (BPEL, Mediator, OSB or ODI) can be used to send transactions from external systems (directly or indirectly) to the Oracle Utilities Application Framework based products using the Web Services interface (XAI) used by the products.
It is very simple to do this:
- Define your Web Service as an XAI Inbound Service as per the Oracle Utilities Application Framework based product documentation. This can be Maintenance Object based or Business Object/Business Service/Service Script based. The XAI Best Practices documentation walks through this process.
- When you define the XAI Inbound Service, the WSDL URL to generate the WSDL externally is displayed at the base of the XAI Inbound Service screen. Take note of that.
- Open Oracle JDeveloper and create or modify your SOA project (this can be a BPEL, Mediator or OSB project). You can use the ODI Data Mapper in a similar way. Use the standard "Web Service" adapter in your process. When the Web Service Adapter Wizard starts, specify the WSDL URL from the earlier step. This will load the Web Service Definition into JDeveloper directly.
- Alternatively you can load the WSDL into Oracle Service Registery using the Discovery process. The URL to use is documented in the XAI Best Practices. Oracle JDeveloper would then use the Service Registry (UDDI) as the source of the Web Service definition.
- You build and deploy your SOA project as per normal methods. It will contain the Web Service definition from the OUAF product inside the deployment.
For BPEL and Meditor all you need to use JDeveloper to build your solution (you may use JDeveloper with Service Registry (UDDI) as well).
For OSB, you build your SCA components in Jdeveloper and then assemble and deploy them using the OSB browser interface.
For ODI, you build and deploy your SCA components in the ODI Designer.
There a few things to remember using this process:
- The end point will be set to the end point used within the original Web Service definition. This may vary from environment to environment. To overcome this, it altered manually or altered as part of the deployment process using the facilities in Oracle JDeveloper. Refer to the JDeveloper documentation for further information on how to do this.
- Remember to populate the transactionType appropriately. If you forgot the value will default to the value set on the XAI Inbound Service definition. This may be correct but if not may result in unexpected results.
- Do not forget security. All Web Services must pass credentials to the underlying Oracle Utilities Application Framework based products. These can be propogated from within Fusion Middleware (the default) or on individual Web Service calls. Oracle Utilities Application Framework products support both HTTP Basic Digest Authentication and WS-Security. WS-Security support is only available to Oracle Utilities Application Framework Version 2.2 and above customers.
The process is very smooth and as the WSDL URL's are standard they will tend to work on most SOA platforms and tools (not just Oracle one's).