The entire integration development and operational lifecycle is managed through a web based service console offering a point and click integration and monitoring experience without having to write a single line of code.
Furthermore Oracle ICS supports various industry standards like SOAP and REST and comes with a set of cloud adapters providing pre-integration capabilities with several SaaS applications (such as Oracle ERP Cloud, Oracle HCM Cloud, Oracle Sales Cloud, Oracle RightNow, Eloqua, NetSuite and Salesforce) shortening the time-to-market in integration projects.
The concepts in Oracle ICS are really simple; you create connections (using the pre-defined offered adapters) and leverage those connections to create integrations which you can then dashboard monitor to track the current state of your running integrations and fix any errors that might occur.
Oracle ICS supports three types of integration patterns:
- Map My Data: You can create an integration where using your own adapters can define a a custom source and a custom target (and define routing paths and data mappings)
- Publish to ICS: You can create an integration where you can configure a service to publish message to ICS through a predefined ICS Messaging target (which is created for you automatically by choosing this pattern)
- Subscribe to ICS: You can create an integration where you can configure a service to subscribe to messages from ICS through an ICS Messaging source (which is created for you automatically by choosing this pattern)
The use case is really simple; I have a service that processes a purchase order. Based on the order total it will either automatically approve the purchase or will route it for manual approval. The logic has been implemented in Java using two methods; processPurchaseOrderBS representing the business service where the actual logic has been implemented and the processPurchaseOrderPS acting as a wrapper/proxy service.
JAX-WS capabilities I have exposed those two Java methods as web services and deployed them on my Integrated Weblogic Server.
So the first thing that we need to do is to create a connection to the on-prem web services exposed in the previous step. From the Oracle ICS home page click on the "Create Connections" banner image and from the "Connections" page click on the "Create New Connection" button.
From the "Create Connection - Select Adapter" popup the "SOAP" adapter to create a SOAP connection to the "Process Purchase Order" web services.
In the "New Connection - Information" popup enter a connection name, and optionally update the identifier populated automatically based on the connection name, default version and provide a description, and click "Create".
From your connection's home page click on the "Configure Connectivity" button and enter the WSDL url of your web service and click "OK".
By default when you create a new connection in Oracle ICS, it pre-populates the security section with the "Username and Password Token"security policy. I did not configure any security in my "Process Purchase Order" services therefore i will turn security off. To do so click on the "Configure Credentials" button and from the "Credentials" popup select "No Security Policy" from the "Security Policy" drop down list and click "OK".
Now we can test our connection. From the top right section of your connection's home page click on the "Test" button and ensure that your connection is successful.
From the "Create Integration" popup select the "Map my Data" integration pattern.
In the "New Integration - Information" popup enter an integration name, and optionally update the identifier populated automatically based on the integration name, default version and provide a description if needed, and click "Create".
You should be presented with the integration canvas with an empty source and an empty target.
This will bring up the SOAP Configuration Wizard to help in configuring the source endpoint. Enter a name for your endpoint (I named it "ProcessPurchaseOrderPS") and click "Next".
For the target "fullname" we will have to concatenate the first name and last name elements from source. To do so click on the "fullname" destination element to open the "Mapping Builder". Expand "Mapping Components" and from the "Functions" category expand "String"and drag and drop the "concat" function to the right (just below "fullname") and map "firstname" to string1 and "lastname" to string2.
I will first invoke my integration by supplying an order with an order total less than 100 to see if the integration will return an auto-approval status.
If you invoke the integration with a higher value order total (in the example below 110) you should get a different response back (pending manual approval).
If you navigate to the "Tracking" page you will see all messages processed by default in the last 1 hour by all active integrations. Please note how instances are displayed; they are displaying using the custom business identifiers defined.