March 24, 2015 | Written by: Shamim Hossain
Share this post:
I discussed the benefits of combining cloud computing and mobile/handheld devices in a blog post called, “What is mobile cloud computing?.” In this post, I will dive deeper into mobile cloud computing concepts with cloud-based services for mobile solutions.
Let’s revisit the definition of mobile cloud computing. It’s is an architectural pattern where data storage and CPU-intensive tasks are performed on cloud, and mobile devices are mainly used as a thin client to interact with the application and render results processed from the cloud. As mobile devices are constrained by storage, battery life and processing power, this architecture relieves mobile devices from many heavy lifting activities.
Some attributes of cloud computing, such as rapid elasticity and on-demand, automatic scalability, make sure that required computing and storage can be provisioned as needed. The computing component of the cloud consists of a number of pre-configured, pre-built and scalable services for consumption with mobile applications. Cloud runtimes are also offered as a mechanism to offload business logic from mobile devices. All these fit within the cloud platform as a service (PaaS) model and are collectively known as mobile backend as a service (MBaaS).
Mobile applications exist in three different flavors:
• Native mobile applications: Native mobile applications are for specific operating systems or platforms (iOS or Android) that can access device-specific features like GPS, a compass, camera, accelerometer and other sensors. These applications are downloaded from an app store to be installed on the device.
• Mobile web applications: These are basically mobile versions of a webpage with the native look and feel of the mobile platform. These are also known as responsive web, and are typically composed using HTML5 and CSS3, as well as frameworks like JQuery Mobile, Twitter Bootstrap, Meteor.js and others. These run from web browsers on mobile devices and do not require any installation. Mobile web applications require an Internet connection to work, like any other website. Mobile web apps cannot access all device-specific features like native apps.
• Hybrid mobile applications: Hybrid applications are a combination of the above two types. Like native apps, these are also available from an app store and are downloaded to the device. These apps are generally composed using HTML5 and CSS3. But there are device-specific wrappers or tools like IBM MobileFirst Platform Foundation, PhoneGap or Apache Cordova, which allow the apps to work in cross platforms. These apps can access most of the device-specific functionality. Hybrid mobile applications are gaining popularity due to the fact that you can reduce development cost by eliminating the need to code for each separate platform.
At the time of writing this blog post, seven mobile cloud services from IBM and third parties are available on Bluemix. Detailed information on these services is available from the Bluemix catalog.
Mobile cloud services can be bundled with the Mobile Cloud boilerplate. For those who are not familiar with boilerplates, they are containers for an application, associated runtime environment and predefined services. The mobile cloud boilerplate includes the following services:
• Mobile Cloud: Cloud storage service with an SDK for storing, deleting, updating and querying data, while hiding the management and implementation of the data store.
• Mobile Application Security (MAS): Functionality to securely control the access and behavior of applications running on mobile devices from the Bluemix dashboard. Application ID and Secret are used to verify authenticity of client application. MAS manages a list of clients and provides insight to usage with analytics.
• IBM Push for Bluemix: Functionality to send relevant content to the right people at the right time and place. This supports Apple Push Notification Service (APNS) or Google Cloud Messaging (GCM).
• Node.js application: Server-side functions, such as resource URIs and static files for running server side logic on the cloud for mobile applications. It is also known as cloud code for offloading business logic from mobile clients.
As explained earlier, a mobile app has a unique application ID. Application IDs are used by Bluemix PaaS for the purpose of metering and logging.
I hope this post has provided you with the fundamentals of mobile cloud computing and basic building blocks of mobile cloud architecture within the context of Bluemix. The Bluemix MBaaS offers powerful pre-built scalable mobile applications.
More and more businesses are offering omni-channel solutions to engage customers and enhance their level of satisfaction. Obviously mobile is a key channel to engage customers. You need a mobile strategy along with your cloud journey map to gain competitive advantage and stay ahead of the competition.
What are your thoughts? Share them in the comments below or connect with me on Twitter @shamimshossain.