IBM

What's New In IBM MobileFirst V7.0?

Jorge Balderas

Summa recently attended IBM InterConnect in Vegas and learned about exciting features of the new release of IBM MobileFirst Platform Foundation v7.0. This release was originally announced on Feb 17, 2015 and became available for electronic download on March 20, 2015. Here is a summary of new features worth paying attention to. 

Java Adapters

In addition to JavaScript Adapters with version v7.0 you can now write adapters in Java. Specifically you write Java adapters using the JAX-RS specification. JAX-RS is Java’s specification for implementing RESTful services. It is the preferred way to write RESTful services in Java, consequently if you are developing in Java, chances are you are already familiar with writing JAX-RS services.

A Java adapter is effectively a JAX-RS service that can be deployed to a MobileFirst Server and has access to the MobileFirst Server APIs. It gives you full control of the URL structure and it can also leverage the OAuth Security filter. You can also leverage existing Java code and libraries to access enterprise back end systems. The picture depicts how Java Adapters work in a MobileFirst Server:

java_adapters

RESTful access to JavaScript adapters

Prior to v7.0, there were 2 adapter endpoints available to use: the /query and the /invoke endpoints. The /invoke endpoint was the endpoint original available in Worklight and required providing: adapter name, procedure name and parameters in the URL, either using a GET or POST operation. The /query endpoint was the preferred way to access adapters prior to v7.0.

Starting with v7.0, the /adapters endpoint is the preferred way to access adapters. This endpoint is RESTful, which means adapter procedures can be invoked via REST URLs. This endpoint supports both JavaScript and Java adapters and it is protected by the OAuth security mechanism. The URL pattern for accessing the /adapters endpoint is as follows:

http(s)://<server>:<port>/<Context>/adapters/<adapter-name>/* 

If a Java adapter named accountAdapter has a resource with path /balance, then /balance is accessible from this URL:

http(s)://<server>:<port>/<Context>/adapters/accountAdapter/balance

Existing JavaScript adapter procedures can be also be called via REST URLs. The URL pattern is as follows: 

http(s)://<server>:<port>/<Context>/adapters/<adapter-name>/<procedure-name>

The previous example would be accessed as follows. The procedure arguments are passed as a JSON array of parameters provided in order.

http(s)://<server>:<port>/<Context>/adapters/accountAdapter/getBalance?params[‘12345678’]

 

OAuth 2.0 support

Prior to v7, MobileFirst security relied on a proprietary model for authentication. Starting with v7, there is full support for the OAuth 2.0 specification. The classic security model (pre V7) is still supported for backward compatibility.

Integrated single-node Cloudant (NoSQL) DB

Cloudant Local provides efficient and scalable app data storage. It supports offline access, scalable storage and enterprise integration. Cloudant Local is a NoSQL database implemented as a JSON document store. There are three licensing options available:

  • Single node license (included with MobileFirst Platform)
  • IBM Cloudant Data Layer Local Edition V1.0. Provides clustered nodes with horizontal and geographic scalability, fault tolerance and continuous availability.
  • Off premises. Uses the Cloudant.com database instance or the Cloudant NoSQL DB service on IBM Bluemix.

Custom Charts for Operational Analytics

Starting with v7 you can create different chart types or run a specific query to render into a table. MobileFirst also has several pre-made charts.

create_chart-2

The ability to report custom data using custom key-value pairs has been present since v6.1, however with v7.0 you can now extract the data in raw form as well as render custom charts from that raw data.

Obfuscation of hybrid resources

Obfuscation of hybrid resources is not as critical in mobile apps as it is in web applications because the resources reside on the device. However with v7, you can create more secure hybrid apps using the minification of JS and CSS files.

Minification is done at build time using the Google Closure Compiler. There are 3 levels of minification available: none, whitespaces (removes comments, line breaks and unnecessary spaces) and simple (in addition to the whitespace setting, it optimizes expressions and functions).

In addition to minification of web resources, you can also obfuscate, shrink and optimize code using Android ProGuard for development of Android applications.

Native vs Hybrid

Although this is not something new in v7, it is worth pointing out a clear message from IBM, that MobileFirst is no longer a middleware platform targeted primarily for hybrid mobile applications. Worklight (the original name for the product) has always supported development of native components, but when it came to accessing the Worklight (now MobileFirst) API, native components were treated as a “second class” citizens. This was a big shift starting with v6.2, where transitioning from native and hybrid components was simplified and the availability of the MobileFirst API from native code (iOS and Android) was significantly increased. With v7.0 this gap is closed even further with additions and improvements to the MobileFirst API.

Although IBM will not prescribe which approach or framework you should use for your client side code, the message at InterConnect was fairly consistent:

  • Use AngularJS and Ionic as a good “default” choice to develop hybrid code. Hybrid is preferred if your goal is to maximize cross-platform compatibility and code reuse.
  • Use Native code for applications or components that require the most sophisticated cutting-edge UX (User Experience). The downside is that it requires a more in-depth and specialized skillset, in addition to increased effort when targeting multiple platforms.
  • Use Xamarin if your preference is to develop in C#. Starting with MobileFirst v6.3 MobileFirst supports Xamarin. Xamarin is a development platform for developing cross-platform native applications for iOS, Android and Windows using C#. 

We agree whole-heartedly with these recommendations, in fact it is consistent with what we have been recommending to our customers.

Many More

There are many more new features worth highlighting:

Getting Started

You can download the MobileFirst developer edition for free. The developer edition is a full-featured version of the product that is installed as an Eclipse plugin.

What do you think of these new features? We hope you are excited as we are and look forward to working with you on your next MobileFirst project!

 

Jorge Balderas
ABOUT THE AUTHOR

Distinguished Technical Consultant