Data Integration may be interesting for the initial seeding of EBS data in Fusion ERP. It may also be useful for high volume database replication use cases - real time data lakes / operational reporting - look at Oracle GoldenGate here. Think of data integration for large amounts of data at rest that need moving somewhere (bulk data movement / preparation) i.e. after the business processes, that put the data there, have ended. Application integration is more focused on integrating (near) real time data between the apps in your ecosystem.
I have already alluded to the fact that Application Integration is a must for ensuring communication between your ERP and its ecosystem - consider all your stovepipe apps and the horizontal business processes that traverse them.
For example, that ecosystem will also contain your CRM, where you manage your customer relationship - contacts, opportunities etc. Application Integration is there to help keep those contacts in sync as well as implement the orchestration required for your Opportunity to Order business process, amongst a multitude of other integration use cases.
You are extremely happy with your ERP of choice, and sure why wouldn't you be? But what about that extra approval workflow that is specific to your organization? This is where App Extensions come into play. You need the ability to easily create such human centric workflows that provide that extra functionality you need. Those supplementary workflows also need to be embedded in your ERP, so your ERP end users have a streamlined experience.
Now with all of these application integrations and extensions up and running, don't your line of business owners require insight into what's going on? How long does it take to process an order? Which products are selling really well at the moment? Where are those orders coming from? Can I drill down from aggregate information to individual orders? All this can be garnered from the integrations and processes you are running and easily visualised for line of business owners. These visualisations can also be easily embedded in the user's app of choice, be it ERP or a company portal.
Now to leveraging the power of ERP, outside of the app itself. What about native mobile apps, providing mashups of CRM and ERP data for sales reps? What about leveraging innovations such as Conversational UI? OIC opens the door to Digital Innovation.
Net, net - the world of integration is much more than simply connecting App A to App B.
Oracle Integration (OIC) + Oracle Data Integration + OCI API Gateway + Oracle Digital Assistant (ODA) provide a compelling answer to the customer transitioning from EBS to ERP. But is that the whole story in respect of customer requirements?
Chapter 1 is a quick refresher on the functionality offered by OIC itself. too many folks concentrate purely on the application integration components. You will see that OIC covers most of the needs highlighted in the section above.
OIC - Integration
Of course, that is where the initial customer focus will be - implementing the must have business use cases, such as transforming those won opportunities into orders as quickly as possible. Let's look at the different integration patterns supported by OIC -
Transactional - e.g. retrieve customer's current orders for display in a sales rep's mobile app. Typical real-time request/response paradigm.
Batch/Scheduled - e.g. retrieve that humungous file of new orders every day at 5pm from each of our regional ftp servers, then do the magic on those orders so they can be imported into Fusion ERP.
File Transfer - Moving files from A to B.
Event Driven - e.g. push an Opportunity to ERP (morphing it into an order), as soon as it is marked as won in CRM. Immediately react to the ERP business event - purchase order created, by pushing the order data to downstream systems. Many apps support such business events, the magic here is the ability of your Application Integration engine to hook into such events.
Event Driven Architecture (EDA) has been around for a long time, the difference now is applying this effectively to a cloud or multi-cloud environment(s). Oracle Integration (OIC) comes with a rich set of adapters, including messaging adapters - Kafka, AQ, JMS etc. But this is only half the message. What about OIC's Pub/Sub capabilities? Essentially we support EDA at the following levels in OIC /OCI -
1. Event Driven / Pub-Sub between OCI Services
2. Event Driven / Pub-Sub within OIC
3. Event Driven - SaaS Business Events, which OIC can subscribe to via its rich set of SaaS adapters.
More about these later. Let's continue looking at the business value-add OIC provides.
OIC - Process
Process can be used for those human centric app extensions. Naturally, it can also be used for any of your business processing in need of automation. From the replacement of the excel sheet based vacation request to complex approvals of orders and resolution of insurance claim cases - Process can handle the lot. It supports structured and unstructured processes, enabling you to cope with uncertainties.
Business Processes can involve documents, think of an order and its attendant documentation e.g. export license etc. These documents can be stored inline in OIC - Process, however, one could also leverage Content and Experience for this. More on Content Management later.
OIC - Insight
These dashboards can be viewed within OIC or else embedded in the user's app of choice. In this case, we could embed in Fusion ERP.
OIC - Visual Builder
So that's our application integration, app extensions and biz insights boxes ticked. OIC provides us with comprehensive support in this area. What about the customer's other requirements?
OCI - OIC's Extended Toolbox
OIC - Integration takes care of the plumbing between your apps / technologies. In respect of OCI, we have some dedicated adapters for specific OCI Services -
We just leverage the rich OCI REST api for the other services -
The secret sauce here is the OCI Signature Version 1 security policy. Here we have a generic way to connect to the plethora of OCI Services.
Talking about services, let's begin with API Management and the OCI API Gateway -
OCI API Gateway
Now to publish an integration api -
I select the testGW gateway and click Deploy, naturally, I could have changed the path prefix to make it more user friendly. I then check out the gateway deployments, and there is my OIC api -
Now I can apply whatever policies are required and my mobile app developer has access to the customer data she requires! The api gateway may be all the customer requires in respect of api management/security. But imagine our Fusion ERP customer needs to expose apis to 3rd parties. We may need to protect the customer from malicious and unwanted internet traffic. Here we can leverage OCI WAF (Web Application Firewall) in conjunction with OCI API Gateway and OIC.
OCI WAF
- PCI-compliant
- Cloud Native
- Integration and Automation through APIs, CLI.
- Global security service
- Distributed PoP
- Protect any Internet-facing endpoints
- Cross-Site Scripting
- SQL Injections
- Known vulnerabilities
- Bot Management
- Layer 7 DDoS protection
- Threat Intelligence
Also note, WAF is very interesting for OIC customers when hitting the max number of entries allowed when configuring OIC Allowlist.
Thanks to my colleagues Antonio B., Valeria C. and Baptiste S. for the WAF content!
So which other OCI services should we be highlighting to our customer? This is totally dependent on what she needs to do today, her plans for tomorrow and further down the road. So think of tactical and visionary - OIC + OCI supports both!
ATP
Oracle offers many database options on OCI. Here I will focus on ATP. Our Fusion ERP customer could be looking at ATP for the following reasons -
1. Transform multiple Data sources into the Oracle FDBI Templates using ATP - e.g. our ERP customer has inbound files of between 4 - 10 different source systems, which need to be transformed into the relevant import format for GL Journals, AR Invoices, AP Invoices.
2. Data Caching - OIC does not currently provide explicit caching functionality. There are many integration scenarios where data is being fetched from various sources. The data doesn't change much, so caching would make sense. Think of an HCM use case - customer has purchased Oracle HCM cloud but also has SAP on-premise. The latter is still the single source of truth when it comes to base employee data. Caching this data in ATP would appreciably accelerate integration throughput.
OIC can, via the ATP adapter, easily leverage this "cache" in its integrations and processes.
3. Superfast file loading to ATP - OIC supports super fast bulk data import to ATP. Check out my post of this topic here
4. ATP for complex data centric processing logic - e.g. processing a large file where, for each line, I need to check if there is a duplicate in the file. This is very easily done in PL/SQL, once the data has been loaded into a table. Also useful for requirements around complex grouping of data.
Again, super easy for OIC to execute PL/SQL via the ATP adapter. This leads to faster processing and appreciably less complexity in your integrations.
5. ATP for OIC Audit Logging - Some customers also leverage ATP for offloading audit data from their integration flows. The data could be compliance related, so having it in a DB makes it easily retrievable and available to other tools.
(Data_Sources_Silos-->OIC-->ATP-->OAC).
OAC = Oracle Analytics Cloud. One can extract metrics/KPIs from the Integration flows and Process workflows. Very useful if the customer needs more B/I style "flexibility", above and beyond what OIC Insight offers.
7. ATP for throttling - Downstream throttling (Parking Lot Pattern) - Check out the following A-Team post for details.
Functions
Streaming
As you've probably guessed, I have a couple of blog posts that tell you how to exactly do this - implement pub/sub with OIC and OCI Streaming. A trilogy of posts is available -
I have always taken the Gaelic saying - Bi Ullamh! - Be Prepared - seriously!
There are, of course, other use cases for OCI Streaming in respect of OIC and our ERP customer. Imagine our customer has a website and a very popular one at that. She wants to get user behaviour data - who looked at which product when - into her CX Unity environment.
Use Streaming for capturing activity from websites or mobile apps, such as page views, searches, or other user actions. You can use this information for real-time monitoring and analytics, and in data warehousing systems for offline processing and reporting.
Website -> OCI Streaming -> OCI Streaming Adapter -> OIC -> CX Unity Adapter -> CX Unity
Object Storage
Let's look at the export -
The content of the .zip is as follows -
You can export from one OIC instance, import to another, or just OCI Object Storage as your OIC backup store.
This service can, of course, be used for storing whatever you want, for as long as you want. You also saw in the ATP section how Object Storage is used to enable bulk data load to ATP, via OIC.
OCI Object Storage is one of those unsung heroes - maybe we need to sing its praises more!
OCI Logging / OCI Logging Analytics / Service Metrics
It reads the new contacts file from FTP and then inserts those new contacts into SFDC and Netsuite -
Here is the Service Metrics view -
Now I want to check how long the SFDC invokes took -
OCI Logging Service
OCI Logging Analytics
OCI Events / Notifications
- Event fired on file upload to a particular bucket in OCI Object Storage
- Event Service Rule picks up this event and publishes to OCI Notification Service
- Topic can have 1 or more subscribers
One of these could be custom http -> invoke api gtwy -> OIC. Let's look at the configuration required to set this up -