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.
|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|
|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
|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.
|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.||
|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.
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
Inbound into HCM: Import input data files into Oracle HCM Cloud
Outbound from HCM: Export files from Oracle HCM Cloud
|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
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.
|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.
|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.
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.