Cloud Integration Patterns Using Oracle PaaS

February 1, 2019 | 8 minute read
Abhay Kumar
Cloud Solutions Architect
Text Size 100%:

Introduction

Integration is a key aspect in any Cloud implementation. The integration usecases can be presented in many forms such as integrating cloud applications and on-premise applications in real-time or getting a data into an application from a file generated by a data-source or it can exposing APIs to an application which does not  expose web-services natively. This blog describes high-level integration patterns using Oracle's PaaS services. This blog provides high-level design patterns backed by a real-world usecases. Some of these patterns may have an implementation reference that provides drill down details into the implementation of these patterns. However, some patterns may not have the implementation details as yet. Overall the objective of this blog provides the readers an high-level idea on what common patterns that have been implemented in the field.

Abbreviations

Term Abbreviation
Oracle Integration Cloud OIC
API Cloud Service APICS
Process Cloud Service PCS
Oracle Internet Of Things Cloud Service IOTCS
Integration Cloud Service ICS
Integration Platform As A Service iPaaS
File Based Data Import FBDI
Oracle Messaging Cloud Service OMCS

 

Design Patterns

Title Usecase Pattern Implementation Reference Contributor
ERP Cloud Integration Pattern -

 

Integrate with Oracle ERP Cloud using FBDI

Oracle Enterprise Resource Planning (ERP) Cloud is a suite of cloud applications for finance, project management, procurement, risk management and other core day-to-day activities important in every business, regardless of size, industry or geography. Designed from the ground-up with a modern architecture and technology, Oracle ERP Cloud is natively connected with all Oracle enterprise cloud applications and scales inherently to support added users, transactions and sites as your business grows by size and into new markets across your country or the globe.In any Oracle ERP Cloud implementation there is generally a need to integrate other Oracle and Thirdparty applications with Oracle ERP Cloud. For example, there may be invoices from from partners that could be sent as file which needs to be created as AP Invoices in ERP.

File Based Data Import (FBDI) is one of the ways to integrate with Oracle ERP Cloud. This pattern is mainly used for loading bulk data into Oracle ERP.

The file-based data import process involves generating an file-based data import (FBDI) file, uploading the file to ERP, and then receiving a callback from the ERP service.

A high-level pattern would like below -

The Solution design can be broken down into 3 steps as shown below -

Step 1: This step involves generating an FBDI file from the source file got from source application/datasource. Generation of FBDI file involves following steps in OIC

i. Reading source file within OIC

ii. Transforming the source file to FBDI

iii. Staging FBDI file (optional)

Step 2: This step involves loading the FBDI generated in Step 1 to Oracle ERP Cloud. This is done using Oracle ERP Cloud Adapter part of OIC. Oracle ERP Adapter internally handles loading FBDI file to UCM and then calling a job in Oracle ERP Cloud to load the data into ERP.

Step 3: Once the data is loaded into Oracle ERP Cloud, Oracle ERP Cloud asynchronously callsback OIC with the results of the load process

A-Team Blog:

 

http://www.ateam-oracle.com/integrating-with-erp-cloud-using-ics/

Abhay Kumar
Singleton Pattern In many integration scenarios there is a need of the messages coming from the source application in order and then deliver the ordered messages to target application. The source application generates the messages in order but the requirement is that the messages should not go out-of-order within middle layer i.e OIC.

Handling the messages coming from source system in order within OIC can be done if we can make OIC consume 1 message at a time and hence the name of this pattern is called singleton pattern. The way this can be achieved in OIC is to use a “Scheduled-Based Orchestration” Integration type. A schedule integration flow works based out of schedule threads. There are limited number of schedule threads and every schedule of a scheduled integration flow can be run on 1 thread at a time. Once a scheduled integration flow is RUNNING based on schedule trigger, no other instance of the same schedule integration flow can be triggered until the current schedule flow completes.

We make use of the scheduled integration flow feature to orderly read messages from queuing system like Oracle Messaging Cloud Service. The source system generates in order and puts these messages in OMCS. The messages in OMCS are in order because it is queue. In a scheduled integration flow, the messages from OMCS is consumed one-by-one in synchronous manner until there are no more messages left in the queue. Since the messages are read one-by-one from the OMCS queue, the messages are delivered in order to the target application.

None Abhay Kumar
Fan out Pattern -

 

Master Data Sync from MDM system to downstream systems

This is common usecase when there are Mater Data application. For example, there can be Customer Data Management (CDM) application that may contain all customer data in organization and this data needs to be synced from the Master Data application (CDM) to other applications.

  • 1. Event is generated from PDH. For list of events look at https://bit.ly/2A2t4QS. Search for “Product Master Data Management”
 
  • 2. Use “Publish to OIC” integration style when creating OIC integration. ERP Adapter receives the Event. Event can be published for multiple subscribers to pick up using the “Publish to OIC” integration pattern.
 
  • 3. Use “Subscribe from OIC” integration style when creating OIC integration. OIC receives the published message from the publisher in Step 2. This message can be optionally transformed and enriched using OIC constructs. Finally the message is handed over to EBS Adapter to insert data into EBS.
 
  • 4. EBS Adapter inserts data into EBS

 

 

None Abhay Kumar
HCM Cloud Integration Pattern -

 

File Based integrations for HCM Cloud using UCM webservices

There are various usecases where file based integration between Oracle HCM Cloud and other applications are needed.
They could either be Inbound or Outbound integrations.

 

Inbound into HCM: Import input data files into Oracle HCM Cloud Oracle HCM Cloud provides a Data Loader feature, which allows data files in HDL (HCM Data Loader) format to be imported into HCM. The Files should be staged in UCM (Universal Content Manager a.k.a WebCenter Content ) and then the HCM Dataloader service can be invoked to load the data from staged files into HCM

 

Outbound from HCM: Export files from Oracle HCM Cloud and integrate with other applications
On the outbound side, various usecases call for exporting files such as reports from Oracle HCM cloud. The HCM outbound files are placed on UCM (Universal Content Manager a.k.a WebCenter Content ) and can be searched, retrieved and integrated with downstream applications using UCM Webservices.

Inbound into HCM: Import input data files into Oracle HCM Cloud
1. Read HDL data file from External file source like an FTP server
2. Stage the HDL file in UCM using UCM Webservices
3. Call the HCM Dataloader Service to load HDL data

Outbound from HCM: Export files from Oracle HCM Cloud
1. Search in UCM for files to be exported
2. Retrieve files from UCM using UCM Webservices
3. Transfer file to external destination

 

A-Team blog:

 

http://www.ateam-oracle.com/oic-ics-ucm-filebased-hcm-integration/

Shreenidhi Raghuram
Scheduler Pattern -

 

Scheduled Integrations Best Practice

Often times a "scheduled integration" in OIC can be a fairly complex integration. Complexity in this case refers to the number of actions, maps, etc. When these integrations require to be triggered by applications (outside of the schedule), the whole integration must be redone from scratch since a trigger on an integration cannot be changed.

By using a pattern of separating the "schedule" from the "integration", the option of having the integration available outside of the schedule is now a possibility. It also makes maintenance easier as the primary flow is in one place vs. multiple.

Break Schedule From Integration

 

  1. Develop the business flow using a REST triggered integration
  2. Develop the scheduled flow leveraging OIC's "Local Integration" feature (https://blogs.oracle.com/integration/how-to-invoke-an-integration-from-another-integration-in-oic-without-creating-a-connection)

We now have more flexibility and better maintainability with scheduled integrations.

NOTE: the "Local Integration" feature is not available in ICS, but this pattern can be used with a local ICS REST connection from the scheduled flow to the business flow.

None Greg Mally
Sequencing Pattern -

 

Integration From Agile To PDH

Many of the integration usecases involve sequencing. One such usecase is dealing with Product Lifecycle Application (PLM) application like Agile.

Agile produces something called Engineering Change Orders (ECOs). These ECO are released as and when there are updates to the items in Agile. Agile makes sure that the ECO are released in Order. The requirement downstream is to make sure that the ECOs are delivered in order to the downstream applications.

OIC does not guarantee the ordering of messages unless this is explicitly architected. The pattern below walks through how the sequencing of ECOs from Agile can be achieved when delivering to target application.

None Abhay Kumar
Cloud Buffering -

 

Using OIC and Eventhub for highly available short-term persistent cloud buffering.

We combine OIC and EventHub to provide a highly available middle-ground in front of less-available on-premise solutions.

OIC and EventHub are used together in cloud, to provide a _staging area_ for asynchronous external data providers, that is _highly available_. The on-premise system queries EventHub from on-premise on a periodic basis to retrieve pending work items for processing.

1. OIC is configured to receive messages from external actors, using a well known API endpoint. REST is typical.
2. The OIC integration flow posts the message into an EventHub topic.
3. On a periodic basis, depending on availability, the on-premise system queries EventHub for pending work.
4. The work is retrieved from the EventHub topic.
5. The work is forwarded to on-premise systems for further processing.

None Christian Weeks

Summary

The blog provided high-level overview of many integration design patterns that are implemented using Oracle iPaaS. The above patterns are works from many contributors within A-Team whose names are listed above. We recommend you revisit this blog time and again since we will adding more patterns that we come across.

Abhay Kumar

Cloud Solutions Architect


Previous Post

Using Catalog Manager with Oracle Analytics Cloud

Dayne Carley | 8 min read

Next Post


Restricting Access to Oracle Analytics Cloud (OAC) by IP Range

Richard Williams | 5 min read