Developing with ACCS Caching Services

Try though we might to shift everything to a glorious set of stateless services, there are still plenty of scenarios in which an application might need to store some state, commonly to track some information about a user and that user’s session. In these cases, an in-memory cache is a powerful addition to an application, and is nearly indispensable to an elastic cloud architected app which is expected to be able to scale horizontally on-demand, to allow information to be shared between application instances, avoiding the need for load balancer complexity to implement sticky-sessions. Application Container Cloud Service added the ability for applications to add a Caching Service binding in the 17.1.1 drop, and in this blog post we will explore how to leverage this capability in a Node.js application.

Continue reading “Developing with ACCS Caching Services”

ICS to API Platform

I’ve been using the API Platform and Integration Cloud Service (ICS) for some time now.  Independently, they are powerful products but together they are even better.

Initially, most ICS use cases were SaaS to SaaS or an extension to an existing SaaS.  But more and more I’m seeing people use ICS in place of a standard service bus to do basic validation, enrichment, transformation and routing.

But how do you expose these ICS services using standard API methods?  Well, it isn’t too difficult to go into API Platform and define an API to point to the ICS service, but this could be quite tedious.

Luckily, all the Oracle products have an “API first” strategy, so it wasn’t too difficult to setup an ICS flow to automatically publish new services into the API Platform.

Continue reading “ICS to API Platform”

Teaching how to use the Integration Cloud Service Connectivity Agent

I have been Integrating applications for the last 15+ years and normally every integration is a new challenge. It really doesn’t matter what technology or standards you use or have used in the past, the reality is that integrations come a new set of challenges. In the past few years the pre-built adapters have simplified in a way these challenges, but with hybrid architectures a new set of challenges comes to the picture, for example; connectivity, security, simplicity, message reliability, etc.

I was very excited when I learned the way Oracle Cloud is using to solve this problem. It is with something called Oracle ICS (Integration Cloud Service) Connectivity Agents, that basically get installed close to the Application being integrated, for example on-premise or in IaaS. Then using ICS in a browser, you can introspect into the backend application as if it was close to ICS, in fact with this solution ICS is completely oblivious of the location of the actual backend application. The Connectivity Agent will in this case connect internally with the back-end applications and communicate to ICS by pushing out messages via Messaging Cloud Service.

Continue reading “Teaching how to use the Integration Cloud Service Connectivity Agent”

Reflections on making Mobile-Applications Location Aware

Reading Alessia’s recent post about her experiments with beacons reminded me of a post that I have been meaning to write for a while, regarding my previous dabbling with building location-aware applications. Beacons are a powerful tool by which to provide fine-grained location services to applications, but need to be used carefully, and really need to be part of a larger mix of technologies in order to provide the richest experiences. In this post, I will look at the weaknesses I have previously encountered using beacons, and outline some of the strategies I have used to mitigate those weaknesses.

Continue reading “Reflections on making Mobile-Applications Location Aware”

First experience Using the Oracle Container Cloud Service

In a previous blog on OCCS, I covered the steps required to provision the service. As an input to the OCCS Service provisioning I was prompted to specify the number of worker nodes I required, which for my example I set to be two. Having provisioned the service, I can now start to build and run my Docker images on these worker nodes. As part of the provisioned service, I have a node dedicated to the Container Console which provides a nice web User Interface that allows me to Build, Deploy, Run and Manage Docker Containers on the worker node hosts that I provisioned as part of my service. The two worker nodes are the hosts that I will ultimately deploy and running the image of interest such as WordPress, MySQL, Oracle Database, Tomcat, Nginx, WebLogic Server or whatever you want pretty much. The Container Console makes it very easy to build, run and deploy images via a web administration console.

Continue reading “First experience Using the Oracle Container Cloud Service”

Wellness First: an inside look at Beacon technology

“Just like lighthouses have helped sailors navigate the world for thousands of years, electronic beacons can be used to provide precise location and contextual cues within apps to help you navigate the world.” (The Google Beacons development team)

What I find thrilling about beacons is that in their simplest sense they are unaware of themselves or any devices around them and we – humans – are not aware of them. So how is possible that these tiny transmitters are being used to help people in their daily lives? According to reports, 5 million beacons attached to the walls around the world are used to offer great help to people with regard to an array of things like travel, shopping, parking, entertainment, transportation, inventory management, assets tracking, indoor navigation  and at last but not least in the healthcare space through more efficient processes and improved patient-care.

Wellness First is a fictitious gym that utilizes beacons to improve the customer experience. In this post we’ll take a close look at the Ionic Framework Mobile App I’ve built that uses Estimote beacons to target a customer located near the room where a Yoga class  is just about to start and offers an unbeatable discount.

Continue reading “Wellness First: an inside look at Beacon technology”

3-Legged OAuth for Non-Web Clients

OAuth 2.0 is an awesome standard. It has made it much easier to discuss standard security flows, uses gloriously simple REST APIs and provides a very robust mechanism by which to provide third-party authorisation. Unfortunately, while the third party authorisation mechanisms are great for web clients, the fact that they rely upon browser redirects or collecting credentials in order to use the Resource Owner Password flow make them less awesome for third parties who are delivering API-driven experiences via mobile apps or smart devices.

In this scenario, we are looking for a mechanism by which we can provide informed consent to resource owners; doesn’t risk exposing user credentials to third parties; and can be API-driven for the third-party, not relying upon browser behaviour. In this post we will explore an approach that checks all of these boxes, something that I have called an ‘Out-of-band Consent’, in which credentials and consent are handled through a process which is entirely removed from the third-party requesting application.

Continue reading “3-Legged OAuth for Non-Web Clients”

Network Channels with Java Cloud + SOA Cloud has become a little easier

The cloud services are rapidly changing and are becoming easier all the time. This blog is an example of that.

One of the things that has changed is the network configuration of Oracle Java Cloud Service and Oracle SOA Cloud Service. It’s been a common task to create communication channels with these services to administer the environments. So that means creating specific security rules and typically it is a usual practice of creating different ports specific for the administration network traffic. Now, this already been done for you.

Continue reading “Network Channels with Java Cloud + SOA Cloud has become a little easier”

First play with the Oracle Integration Cloud Service (ICS) Scheduler

As of Dec 2016 aka Release 16.4.5, the ICS Scheduler has finally arrived!

You cannot imagine how excited I am! As a regular integrator of SaaS systems, I’ve started noticing a trend where most SaaS softwares offer comprehensive REST/SOAP APIs, but wait… with a catch, they’re all passive. Meaning you can call them to get/put data, but you can’t trigger an activity from them when certain data has changed. Some of my peers have even commented that we’ve gone backwards in time before SOA where everything is batch processed.

Rant aside. To automate integration between 2 “passive” APIs, you will need some form of trigger, preferably a scheduler. ICS has had a scheduler function for File/FTP connectors for a while now. This new function applies on Orchestrations, which means you can pretty much schedule and integrate any connector.

Today I’m going to showcase creating a scheduler that will send SMSes to me every 10min. The SMS gateway is implemented using REST. You can practice this with any connection you can view the response with (Email/Database).

Configuration in ICS

Create a new Orchestration integration.

Continue reading “First play with the Oracle Integration Cloud Service (ICS) Scheduler”

Custom 2-legged OAuth with Oracle Integration Cloud Service (ICS)

Oracle ICS provides OAuth authentication for REST APIs using a curl-like syntax. Given the many implementations of OAuth are not exactly to spec, syntax pitfalls sometimes occur. ICS provides the flexibility configure using regex the values needed to pull out the tokens from the JSON payload.

This flexibility allows us to integrate with the gamut of OAuth-compliant REST APIs in the consumer apps market.

Today, we’re going to use TrackVia (https://developer.trackvia.com/livedocs)

TrackVia is pitched to LOB users as a low-code alternative to spreadsheets, legacy databases and complicated enterprise systems to track, manage and automate critical business processes or operational workflows with greater efficiency, speed and ease.

Continue reading “Custom 2-legged OAuth with Oracle Integration Cloud Service (ICS)”