Reflections after Oracle OpenWorld 2015 – Mobility and Internet of Things

0

imageInternet of Things continues to be of great potential interest – with tens of billions connected devices to sense and record and report and actuate when necessary. Cars, running shoes, trees, animal wild life, home appliances, kiosks and vending machines, cash registers and other point of sales equipment, thermostats, medical devices, security equipment, shipments in any form and shape, wearables are all things, connected to the internet (directly or indirectly). Their location, current status and behavior all produce data points, broadcast to centralized data processing facilities. Beacons – a popular topic at the conference – are typically not things themselves, but provide fine grained data on location & proximity, speed and direction that add to the bulk of IoT data.

One of the universal themes in IoT-land is wireless communication. Wifi and Bluetooth are part of that (for short range connectivity). There’s also activity afoot with respect to longer range (LoRa) wireless protocols, with power and cost characteristics intended to make them more attractive for IoT deployments than the current cellular system is. LoRa network services are rapidly being introduced; the recently founded LoRa alliance brings together dozens of industry leaders around that want to promote and standardize Low Power Wide Area Networks (LPWAN or LoRaWAN). The LoRaWAN technology is ideal to target battery operated sensors and low power applications as a complement to M2M (Machine-to-Machine) cellular connectivity. And with special long range network services being deployed around the world to enable Internet of Things (IoT), machine-to-machine (M2M), and smart city, and industrial applications, IoT seems about to reaccelerate.

image

Oracle is not in the business of producing the things in the IoT, although many of these devices have Java embedded on them, which makes Oracle some sort of accessory. Oracle’s focus with IoT is on collecting and processing the data sent from the things, in real time where necessary, and preparing the data for Big Data (Analytics) or regular enterprise IT systems. Oracle wants to provide the bridge between the things and the enterprise. The key offering around this from Oracle is the IoT Cloud Service – to be available in the Spring of 2016.

The next figure illustrates how the IoT Cloud Services handles Fast Data – one of the many pieces in the Oracle Public Cloud platform puzzle, that also encompasses many other services for processing the data that enters the cloud through the IoT front end.

image

The IoT CS has stream analytics as one of its key features: the ability to process events and signals flowing in – at high volume and high speed – and do triage (keep it or lose it) and analyze (find exception, detect pattern, group and aggregate over time window. IoT CS can perform predictive analytics – based on machine learning algorithms – on the IoT streams and events (resulting in advance warnings and preemptive actions).

image

On the front, the service exposes a gateway that can connect – bi-directionally and secure – with many types of devices over all sorts of communication protocols, dealing with identities, authentication, encryption and other security aspects. The service does secure provisioning, identity & lifecycle management of devices with which it interacts. Initially, REST over HTTP will be the main protocol. For high volume, low latency messaging, other protocols such as MQTT need to be supported. Additionally, intelligent edge devices – close to the things – can act as proxies (aka gateway) for the IoT Cloud Service. These edge devices do initial filtering, enrichment and some data aggregation and message bulking up as well as secure communication to the IoT CS.

On the backend, the IoT CS reports findings to enterprise systems, usually with much higher granularity than the original signals from the things and at a much lower volume of messages. These enterprise systems that IoT CS feeds into may very well be systems running on the cloud or integration cloud services that represent such systems, like ICS, SOA CS or Big Data CS.

Stream Explorer – a component borne out of Oracle Event Processor and released in the Spring of 2015 – is a key element of the IoT CS, providing the user interface for configuring stream processing – including filters, pattern matching, Time Series analytics and other analysis activities – and doing real time monitoring of proceedings in IoT CS. Oracle JET powers the user interface.

image

Note that the IoT Service can also be seen as the Fast Data Service or even the Real Time Insight Service. The real time data that is being processed by the IoT Cloud Service can originate from things – and the service certainly has additional support for communicating with these things – but also from other sources such as social networks, live sport event feeds and web site traffic sensors.

Mobile

Mobile coupons have ten times higher redemption rates than print coupons. When based on a person’s context – location, profile & preferences, history – a mobile coupon is pushed, chances are far higher that this coupon has an effect. That should not be surprising at all. A coupon which far higher relevance because of the correlation in time, place and other aspects with the recipient should have a much larger effect. The ability of today’s technology to send location based mobile coupons in real time – that is perhaps the much more relevant fact. It is not hard to implement. The required infrastructure is available – for pretty much anyone, without large investments or extensive skills.

image

In terms of Oracle products, we could implement such proximity based services with a number of technologies and products. Drawing from GPS on the mobile device and interaction with beacons for fine grained position, the device broadcasts details on location. The IoT CS processes, filters, enriches and forwards to the Mobile Cloud Service (MCS) that pushes a notification to the device, with for example a coupon. Possibly components from the CX offering are involved in between. Note: geo fencing is a common term for real time analysis of the location of a device (and possibly a person) and triggering actions based on that location. Stream Explorer – included in IoT CS – provides geo fencing capability.

Another interesting fact around mobility: 90% of Text (SMS) messages are read within 3 minutes of being delivered- which makes texting far more penetrating than telephone, email and other communication channels. To quickly attract attention of your users, now you know which channel to use. Read more amazing facts about mobile in this presentation: http://www.slideshare.net/JamieTurner1313/50-amazing-facts-about-mobile .

Mobility has been a major global IT industry trend for several years of course. It is easily associated with the ongoing evolution of smartphones, the rapid success of watches (and temporary silence around the glasses) and perhaps some people consider the Tesla car a mobile device as well.

Mobility means different things to different people – depending on your role and business. For Oracle, mobility is first of all looked at from the enterprise angle and the B2B arena that makes up most of Oracle’s business. However, offering its customers an easy way of providing a mobile consumer experience is starting to be part of Oracle’s thinking as well – for example in the area of CX (Customer Experience). Some of the Digital Experiences with Custom Mobile Apps identified by Oracle are:

– Consumer Engagement – Engage with customers through in-app messaging, coupons to increase revenue and customer satisfaction with targeted engagements

– Customer Self-Service – Give customer easy access to their information to enable real time decisions; Empower users to tasks reducing enterprise cost of operations

– Employee Self-Service – Enable ‘portal’ type mobile access via purpose built self service tasks; provide Micro apps for common employee tasks like Expenses, Approvals, Benefits, with a consistent user experience from the office, home or travel

This figure shows the upcoming Sites CS where mobile sites can be designed and exposed to consumers.

image

In the enterprise arena, mobility can be taken to describe the ability to work at any time and at any place – with a consistent user experience and an uninterrupted flow across various devices. The Oracle Cloud Applications UX team defines the user experience for Oracle Applications – from SaaS products to many platform services and indirectly the tools and technologies used to create the user experience. The user experience defined by this team – driven by the philosophy of ‘simplicity, mobility, extensibility’ and based on the ‘glance, scan, commit’ approach to human-system interaction – leans heavily on smart visualizations, especially in the glance and scan stage. The visualizations and the way they are presented is carefully crafted into a number of design patterns – detailed for various devices. From wearables – currently primarily the watch that works well for glance and notifications – to smart phone, tablet and laptop/PC, this team has described a consistent best practice for the user experience.

image

In this experience, the cloud provides the platform that is the backbone throughout the experience. This platform knows about the user – her history and preferences, her tasks, schedule and recent activities. The context created from this user profile and the actual status derived from device based information such as the current location – and perhaps even temperature, humidity, sound levels – can be leveraged in not just offering the most relevant user experience, but also enriching the information presented (recommendations and suggestions, data filtered based on the context) as well as any data captured.

image

The cloud also provides an interesting new facility, called session portability. This facility keeps track of what a user is doing, and remembers the last actions – to allow the user to later on continue with that same interrupted workflow, on the same or on a different device. This provides for business transactions and other professional activities the similar experience as reading ebooks with synchronized page location on various devices or watching your favorite TV show or movie on Netflix on tablet, smartphone and laptop intermittently with mutual position synchronization.

This next figure illustrates how a professional might be using various devices at different times and locations throughout the day, for different types of tasks. Session portability would mean that after each interruption and on each connected device, the previously abandoned flow can be resumed.

image

Oracle’s Cloud Applications UX team showed demonstrations of session portability during the OOW 2015 conference. Without explicitly naming release dates, it seems likely that this feature is not far away from initial implementation in some of the workflows in Oracle SaaS applications.

The implementation of a consistent user experience on various devices is facilitated by Oracle. Using ADF, JET and MAF (Mobile Application Framework) – the same experience can be provided in standard browsers running on a wide array of devices.

image

When an application has special needs, a pure web app approach – standard HTML5 and JavaScript – may not suffice. Native device capabilities and integration maybe required for scenarios that involve specialized capture, off-line usage and real time push. Oracle offers the Mobile Application Framework (MAF) for an hybrid mobile application.

The hybrid approach is selected over purely native apps, because it offers an efficient, almost always good-enough approach for enterprise applications. Leveraging generic underlying components, such as an embedded JVM, access to local storage and device services (contacts, email, camera, GPS, barcode scanning, beacon interaction …) using Apache Cordova, and the mobile browser with standard HTML5 and JavaScript, MAF applications can offer most of the benefits of native apps from a largely declarative, cross platform (Android, Windows, iOS) development approach. Performance and advanced graphical features may be a little compromised compared to the full native implementation – but usually to an extent that is not relevant and perhaps not even noticeable.

Note that Oracle has over 160 mobile apps available with many of the SaaS products and on premises Applications products, as well as some platform services such as BI, Document Cloud Service & WebCenter Content and Process Cloud Service & BPM Suite. Most of these have been created using MAF.

image

image

MAF 2.2.0 was released just prior to the conference – bringing a 30% performance improvement, in part thanks for improved JSON parsing and an optimized JVM. In collaboration with Samsung, page rendering time was also much improved on Android. Release 2.2.0 added support for a number of mobile patterns – such as ‘swipe [record] to reveal [actions]’ , ‘pull to refresh [swipe down and refresh the contents]’, ‘zoom and fade animations for popups’- and additional visualizations on top of the already quite rich set: Stock Charts, Chart Drill Events, Timeline Overview.

image

The Masonry layout was added – also new in ADF 12.2.1 – a layout component for building responsive Dashboards and Grid layouts. Another new layout component was added that lets you easily control content layout based on orientation, called Flex Layout. The Mobile Alta 1.4 skin was added with support for Google Material Design for Android L. For Android there is also full support for the Back button. The SOAP WebService Data Control is deprecated and customers are strongly recommend to move from SOAP/XML to REST/JSON for much (much) better performance (primarily because of the huge difference in XML parsing vs JSON parsing). Note that JDK 8 has been introduced in the previous update (2.1.0) of MAF, early 2015.

MAF 2.3 is the next release, slated for some time in 2016. This release has a number of major new features:

• Windows 10 Support – This adds Windows 10 support so existing MAF apps can now run on that platform (both tablet and desktop)

• MCS Analytics / Diagnostics – Easy APIs so developers can take advantage of the analytics and diagnostics capabilities in MCS in their MAF apps

• Cordova Update – This brings our support for Cordova and related plugins up to a newer level

• Visualization Enhancements – Several new enhancements to provide a stunning visualization experience

However, the biggest improvement probably is the much close integration with CS or Mobile Cloud Service. Release 2.3.0 introduces Mobile Persistence Model. This provides wizards to integrate services from Mobile Cloud Service (MCS) easily into a MAF application without coding; it also provides more declarative, out of the box support for off-line scenarios where data is locally cached (not just for off-line, also for general better performance) and changes can be synchronized when the device is on line again. Note that MCS provides the backend for these off line/on line & synchronization capabilities.

In terms of licenses, MAF is available to any organization with a subscription to MCS. Also part of the Mobile Cloud Service in the near future is the Mobile Application Accelerator, nicknamed MAX. Business users can compose their own mobile applications using Oracle Mobile Application Accelerator, part of Oracle Mobile Cloud Service. Oracle Mobile Application Accelerator lets users develop mobile apps without writing any code and provides a simple, intuitive user interface for creating these apps. MAX-developers can use built in components as well as custom MAF components that ‘real’ developers have created and uploaded to the cloud. This allows advanced functionality to be incorporated into the declaratively composed mobile app. A MAF application can be downloaded directly from MCS for testing – using a simple QR code and the MAX application tester app running on the mobile device.

Mobile Cloud Service

The essential role for Mobile Cloud Service is to provide the easy to access bridge between mobile applications and the world of enterprise systems that provide data and handle transactions. These worlds have little in common and have no easy, straightforward interaction channel.

MCS went live in the Summer of 2015.

image

Mobile Cloud Service acknowledges the fact that mobile front end developers have special requirements to create the required rich user experience and do so in an efficient manner, focusing development resources on the functional requirements, not the underlying integration. These developers can define the APIs they need for their applications in MCS, including the REST verbs and URLs and sample JSON messages they will send and expect to receive. These APIs are called Mobile Backend. MCS immediately starts supporting test calls to mock implementations of these APIs. Front end developers can invoke the REST APIs directly – and also leverage mobile platform specific client SDKs for easier integration with MCS.

image

MCS supports the design of connectors with the back end systems that form the real backing platform for the APIs. These connectors can communicate directly to on premises applications, cloud applications and external entities such as social networks. Alternatively, they work with Oracle ICS and SOA CS to perform such integrations on their behalf, leveraging existing integration flows and the many out of the box adapters.

The Services Developer on MCS will link up the Mobile Backends through reusable, custom APIs to the Connectors, adding filters and transformations where needed to achieve the messages designed for the APIs. MCS runs on Node.js; most of the development work is done in JavaScript.

Several Platform APIs are available to further facilitate mobile app development. These APIs are for:

– storage – for persistence of small payloads on behalf of devices and to share some data and files across users of an application

– off-line (on device) data – for caching (and synchronizing) of selected data on the device for better performance and off-line scenarios

– push notifications – to send push notifications to all supported platforms, using for example Apple Push Notifications Service (APNS) and Google Cloud Messaging (GCM)

– analytics – to analyze adoption patterns, usage patterns and user workflows, based on events from the mobile apps sent to the MCS

– user management – create, update and remove user accounts and associated profiles and perform authentication and authorization

Analytics can be monitored through a range of dashboards available in MCS – for example this one:

image

In addition to integration between MAF and MCS, there is special support for developing mobile applications against MCS for Sencha Web Application Lifecycle Management Platform. From the press release issued by Sencha: “By connecting Sencha’s Platform to Oracle Mobile Cloud Service, enterprises can easily tie their front end mobile web applications with Oracle’s comprehensive back end mobile cloud service including enterprise security, push notifications, authentication, data storage, diagnostics, and analytics.” Other partners for MCS include Xamarin (for mobile development) and Syniverse, VMWare AirWatch and Samsung for special added value services.

On the short term roadmap for MCS are support for SMS, location [based] services and integration with Git and browser based JavaScript development – presumably through the Developer Cloud Service. More support for Windows devices is expected – including an SDK and notification push.

About Author

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director and Oracle Developer Champion. Solution architect and developer on diverse areas including SQL, JavaScript, Kubernetes & Docker, Machine Learning, Java, SOA and microservices, events in various shapes and forms and many other things. Author of the Oracle Press book Oracle SOA Suite 12c Handbook. Frequent presenter on user groups and community events and conferences such as JavaOne, Oracle Code, CodeOne, NLJUG JFall and Oracle OpenWorld.

Comments are closed.