IBM Bluemix is IBM's Platform as a Service (PaaS) offering. It is an implementation of IBM’s Open Cloud Architecture, leveraging Cloud Foundry to enable developers to rapidly build, deploy, and manage their cloud applications, while tapping a growing ecosystem of available services and runtime frameworks. IBM will provide services and runtimes into the ecosystem based on our extensive software portfolio.
Since the beginning in 2014 it contains a mobile backend as a service (MBaaS) implementation which provides developers with tools such as unified APIs and software developer kits (SDKs) that bundle backend services such as push notifications, data storage, identity management and analytics. These services meet the requirements of nearly every mobile project and therefore speed up the development of such applications.
These services are packaged together in the Mobile Cloud boilerplate, and include security (Mobile Client Access), push (Push Notifications), data (Mobile Data) and quality assurance (Mobile Quality Assurance) attached to a Node.js runtime.
This version did not support a local data store on the device and the implementation of secure access via Open Authentication (OAuth 2) with 3rd party providers such as Google+ and Facebook was quite complicated to implement. An example of this mobile clould implementation for Android can be found here.
In October 2015 the IBM Bluemix team released a new version of the API that was based on the experience gained during the past two years and implemented similarly as the IBM MobileFirst for iOS 8 services for Bluemix released in Q1 of 2015.
This new version is now open source (Android only at the moment) and interested parties can participate in the evolution of these SDKs. The image shows the new structure of the APIs. The various components can be implemented separately from each other.
Core SDK to interact with the server-side components, Node.js and Liberty and to provide mobile client access. Here there are clients for Google+ and Facebook authentication as well as a service to implement a custom Authentication provider.
Push SDK to interact with the device specific push service providers (iOS and Android).
Cloudant SDK to implement data persistence with the Cloudant NoSQL database service. This now provides offline data and backend synchronization.
Samples of these SDKs can be found on GitHub with an associated readme on how to set them up and run.
Do you have any comments or suggestions to share? Follow me on Twitter @kpschlotter