OIC Process: Auto-Mapping Elements in the Data Mapper

| Nov 17, 2019
Hereafter I describe a 'hidden feature' regarding data mapping in Oracle Integration Cloud - Process.

When mapping data in the Oracle Integration Cloud (or OIC for short) you sometimes discover that elements you want to map from are not always available as a source on the left-hand side. As I recently found out (thank you Eduardo Chiocconi!) that does not necessarily mean that they are not available for mapping.

An example might be including (more...)

Getting Your Hands Dirty with TensorFlow 2.0 and Keras API

| Oct 31, 2019
Diving into technical details of the regression model creation with TensorFlow 2.0 and Keras API. In TensorFlow 2.0, Keras comes out of the box with TensorFlow library. API is simplified and more convenient to use.

Read the complete article here.

SEO for Single Page Oracle (SPA) JET Application

| Oct 24, 2019
This is a quick tip post related to Oracle JET.

SEO (search engine optimization) is a must for a public website or public-facing app. Search engines do indexing well for static HTML pages. Oracle JET on contrary follows SPA (single page application) approach with dynamic UI. This makes it harder for the search engines to build an index for such an app. The same applies to any other SPA implementations with Angular, React, Vue.js, (more...)

Microprocess Considerations

| Oct 21, 2019
In this article I discuss some considerations when applying the Microprocess Architecture, and how those can impact the design of the process.

As pointed out in the article about the Microprocess Architecture, one should carefully consider if this is the right architecture for the process application to create. Considering the implications (for example one single business process can end up comprising multiple process applications) it should not be considered to be a "one-size fits (more...)

Machine Learning with SQL

| Oct 19, 2019
Python (and soon JavaScript with TensorFlow.js) is a dominant language for Machine Learning. What about SQL? There is a way to build/run Machine Learning models in SQL. There could be a benefit to run model training close to the database, where data stays. With SQL we can leverage strong data analysis out of the box and run algorithms without fetching data to the outside world (which could be an expensive operation in terms of (more...)

Getting started with Pivotal Telemetry Collector

| Oct 17, 2019
Pivotal Telemetry Collector is an automated tool that collects data from a series of Pivotal Cloud Foundry (PCF) APIs found within a foundation and securely sends that data to Pivotal. The tool collects:

  • Configuration data from the Ops Manager API.
  • Optional certificate data from the CredHub API.
  • Optional app, task and service instance usage data from the Usage Service API.

Pivotal uses this information to do the following:

  • Improve its products and services.
  • Fix problems.
  • (more...)

Running Oracle JET in Oracle Cloud Free Tier

| Sep 25, 2019
OOW'19 stands up from recent years OOW conferences with important announcement - Oracle Cloud Free Tier offering. This offering includes two free DB instances and two free compute VM instances. What else you could wish for the side and hobby projects? This is a strong move by Oracle and it should boost Oracle Cloud. Read more about it in Oracle Cloud Free Tier page.

It was interesting to test how to deploy Oracle JET app (more...)

Basic VMware Harbor Registry usage for Pivotal Container Service (PKS)

| Sep 23, 2019
VMware Harbor Registry is an enterprise-class registry server that stores and distributes container images. Harbor allows you to store and manage images for use with Enterprise Pivotal Container Service (Enterprise PKS).

In this simple example we show what you need at a minimum to get an image on Harbor deployed onto your PKS cluster. First we need the following to be able to run this basic demo

Required Steps

1. PKS installed with Harbor Registry (more...)

Comprehensive TensorFlow.js Example

| Sep 23, 2019
I have implemented an app which includes TensorFlow.js API usage. First I will walk you through the app functionality and then will dive into implementation details. This app implements a business report execution time prediction use case (this time in JavaScript), which was explained in my previous post — Report Time Execution Prediction with Keras and TensorFlow.

Read more in my Towards Data Science post.

The Process Group Pattern

| Sep 15, 2019

This article describes the Process Group Pattern, which can be used to correlate process or integration instances that all support the same business process. It is also a pattern that support the Microprocess Architecture.

For a somewhat more complex process, and especially when applying the MicroprocessArchitecture, you may have more than one process application and probably several integration applications that make up the implementation of (more...)

Taking kpack, a Kubernetes Native Container Build Service for a test drive

| Sep 10, 2019
We wanted Build Service to combine the Cloud Native Buildpacks experience with the declarative model of Kubernetes, and extend the K8s workflow in an idiomatic fashion. With this goal in mind, we leveraged custom resource definitions to extended the K8s API. This way, we could use Kubernetes technology to create a composable, declarative architecture to power build service. The Custom Resource Definitions (CRDs) are coordinated by Custom Controllers to automate container image builds and keep (more...)

Using Web Worker for Long Tasks in Oracle JET

| Sep 10, 2019
JavaScript app runs in a single thread. This means if there is a long-running resource-intensive operation - the thread will be blocked and the page will stay frozen until operation completes. Obviously, this is not user-friendly and such behavior should be avoided. We can use Web Workers, through Web Workers we could run long-running operations in separate threads, without blocking the main thread. Code running in Web Worker doesn't have access to UI DOM, this (more...)

Oracle JET – How To Reference JavaScript Module in HTML

| Aug 11, 2019
I will explain how to reference JavaScript module function in Oracle JET HTML. In previous Oracle JET versions, we were using $root to access parent appController module. Syntax $root looks a bit like magic, it is better to reference module through a predefined variable. I will show you how.

Sample app comes with number converter, which helps to format numeric value. For convenience reasons and better reuse, number formatting function is moved to a separate (more...)

Oracle JET Model ID Attribute

| Aug 5, 2019
When building Oracle JET Model/Collection structure to render table, you should be careful defining ID attribute. This attribute must have unique values only, if there will be duplicates in ID, then table rows will be rendered incorrectly.

Take as example below structure for Employees REST endpoint. EmployeId attribute provides unique values and it should be defined as ID for JET model:

Let's try and see what happens when non-unique DepartmentId attribute is set for a (more...)

OIC: How to Force Dehydration in Processes

| Aug 5, 2019
This article describes a trick how you can force a Structured Process instance in OIC to dehydrate.
OIC Process uses the database to store its state, which is called dehydration. In contrast, restoring that state from the database is called hydration. Dehydration automatically happens at points where the process may have to wait for a 'longer' period of time, for example at a Receive or User activity, or a Timer Catch event. Dehydration is (more...)

Taking Pivotal Build Service (PBS) for a test drive

| Aug 2, 2019
Pivotal Build Service ALPHA was just released and in this blog post let's take it for a test drive to work out how it works. The Pivotal blog post about this release is below. In short it Assembles and Updates Containers in Kubernetes



1. Once you have deployed Pivotal Build Service, the pb CLI can be used to target it with the following command.

Note: Use the --skip-ssl-validation flag if the Pivotal (more...)

Report Time Execution Prediction with Keras and TensorFlow

| Jul 31, 2019
The aim of this post is to explain Machine Learning to software developers in hands-on terms. Model is based on a common use case in enterprise systems — predicting wait time until the business report is generated.

Report generation in business applications typically takes time, it can be from a few seconds to minutes. Report generation requires time, because typically it would fetch and process many records, this process needs time. Users often get frustrated, (more...)

OIC: Making a REST Integration Returning a 404 instead of 500

| Jul 28, 2019
In this article I describe how to return a HTTP 404 (resource) Not Found with a REST integration that on its turn calls another REST service that returns a 404.

When an integration invokes the GET action on a REST service that returns a 404, the integration will raise an APIInvocationError. As a result, the integration on its turn will respond with a HTTP 500 error, which is typically not what you want.

Embedding the (more...)

OIC: Handling Optional Elements in a REST Integration

| Jul 27, 2019
This article is a follow-up of the a previous article where I discuss how to handle optional elements in case of XML in the Oracle Integration Cloud (OIC). (more...)

Fault tolerance in integration flows – handling target system availability problems

| Jul 18, 2019
An important non-functional property of any software system is "Availability". In the ISO/IEC 25010:2011 product quality model, this is grouped under an overall category of "Reliability". 
Fault tolerance is a closely associated property also grouped under "Reliability". 

System downtimes could be either due to scheduled maintenance or for other unexpected reasons (server crashes, network failures, DNS misconfiguration). Normally, consumer systems would expect some form of service level agreement (SLA) around system availability - measured (more...)