Native Apps At The Client & Cloud

Srinivasan Sundara Rajan

Subscribe to Srinivasan Sundara Rajan: eMailAlertsEmail Alerts
Get Srinivasan Sundara Rajan: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Microsoft Developer, Amazon Cloud Journal

Blog Post

MBaaS - Azure vs AWS | @CloudExpo [#Cloud]

Why PaaS Vendors Makes Sense For MBaaS

MBaaS: As  the  enterprise  mobility  grows,  there is  a  stronger  need  for  supporting  the  mobile clients  with  value  added  services  which  connect to the  back  end  legacy  systems  and  ensure  that the  enterprise  mobile  applications  perform  the  required tasks.

Mobile Backend as a service, also known as " backend as a service", is a model for providing  mobile app developers with a way to link their applications to backend cloud storage and APIs exposed by back end applications.

There  are   several  advantages  to  embrace  MBaaS   when  enterprises  think of  a  strategy  to  mobilize  their  enterprise  applications.

  • Mobile Backend-as-a-Service facilitates integration on ERP applications with mobile applications for effective operations. For e.g.: Accounts Receivables (payment integration) enabling true enterprise class mobile applications
  • Mobile Backend-as-a-Service enables additional layers of security. For e.g.: integration with two factor authentication servers
  • Mobile Backend-as-a-Service compliments mobile enterprise application platform for non business critical applications yet providing "Write Once Run Anywhere" capability
  • Intellectual property rights fully protected as no business logic is exposed to mobile clients that are vulnerable for hacking

MBaaS Players: The  importance  of MBaaS  is  clearly  highlighted  by  the  fact  that  the  major  cloud  providers  Microsoft  Azure  and  Amazon AWS  have  services  in  support  of  it.

Microsoft Azure Mobile Services is a Azure service offering designed to make it easy to create highly-functional mobile apps using Azure. Mobile Services brings together a set of Azure services that enable backend capabilities for your apps. Mobile Services provides several  backend capabilities in Azure to support your apps.

Amazon AWS provides a range of services that are designed specifically to help mobile app developers quickly and easily build apps that can scale from tens to hundreds of millions of users, and reach global scale with minimum effort.  Individually they are  further  broken into  multiple relevant services  namely, identity management & sync (Amazon Cognito), analytics (Amazon Mobile Analytics), and push notifications (Amazon SNS Mobile Push).

The  following    table   covers  some  of  the  equivalent  features  between  Azure  and Amazon  and  also  touch  upon  where  there  are  differences  and  value  additions,  as  these  services are  quite new  they  will  evolve  more in the future.

Microsoft Azure

Amazon AWS

Azure  mobile  services provide  rich set of  options to  integrate  with backend  data.  One particularly interesting scenario is using an existing SQL database (either on-premises or in the cloud), that may already be used by other applications, to make existing data available to mobile clients. It  can  also    use  non relational  database like MongoDB  as  data  source.

 

Azure mobile  services  also  supports  calling custom APIs. A custom API enables you to define custom endpoints that expose server functionality that does not map to an insert, update, delete, or read operation.

The Amazon DynamoDB Object Mapper simplifies access to DynamoDB and enables secure access to private or shared data directly from your mobile app.

 

The Amazon S3 Transfer Manager in the AWS Mobile SDK simplifies uploading and downloading files from devices over mobile connections to make accessing files stored in the cloud fast and easy. The Amazon S3 Transfer Manager provides multi-part uploads/downloads, pause, resume and cancel.

 

While  there  is  a mention  about  support for Amazon Relational Database Services (RDS) there are  no  explicit features  mentioned on this front.

Azure mobile  services  facilitate   offline sync feature,  which allows developers to write apps that are usable even when the end user has no network access.

 

The offline sync features in the SDK let you handle such conflicts via code and let you dynamically decide what to do with conflicting items.

Amazon Cognito is a service that makes it easy to save user data, such as app preferences or game state, in the AWS Cloud without writing any backend code or managing any infrastructure.

 

You can save data locally on users' devices allowing your applications to work even when the devices are offline. You can also synchronize data across a user's devices so that their app experience will be consistent regardless of the device they use.

Windows Azure Mobile Services (WAMS) supports authentication from

different providers  like : Facebook, Google, Microsoft  Account (formerly Microsoft Live ID), and Twitter. Apart  from this, Azure Active Directory is also  an authentication provider for Azure Mobile Services.

With Amazon Cognito, you can create unique end user identifiers for accessing AWS cloud services by using public login providers such as Amazon, Facebook, Google, and any OpenID Connect compatible provider, or by using your own user identity system. With these identifiers you can store app data in the Amazon Cognito sync store or access other AWS services like Amazon S3 or Amazon DynamoDB.

Azure Mobile  Services  also  support  sending  Push Notifications   back to  the  mobile devices. Your mobile service needs to talk to either the

Windows, Google or Apple notification services. Your client application needs to register a

channel with the mobile service.

Amazon Simple Notification Service (Amazon SNS) is a fast, flexible, fully managed push messaging service. Amazon SNS makes it simple and cost-effective to push notifications to Apple, Google, Fire OS, and Windows devices.

Microsoft  has   acquired  a  Mobile  analytics solution Capptain,  With Capptain, the app owners and marketers can engage with app users in real-time by analyzing their behavior, finely segmenting the audience based on how they interact with the app, and engage via personalized push notifications or rich in-app messaging. Combining analytics and push, Capptain reacts to user behavior in milliseconds to deliver the right message at the right time, resulting in your users feeling well cared-for.

Amazon Mobile Analytics is a service that lets you easily collect, visualize, and understand app usage data at scale. Many mobile app analytics solutions deliver usage data several hours after the events occur. Amazon Mobile Analytics is designed to deliver usage reports within 60 minutes of receiving data from an app so that you can act on the data more quickly.

 

Differentiators : Considering  the   importance  of  MBaaS  in the emerging  mobility  reference  architecture, it is likely  that  both  these  services will  have  a  good  chance in  getting into the enterprise  landscape.  The  other  factors  like performance,  cost  of ownership   will also  play role in the adoption. However there  are  some  differentiators  in  each  of  them  from  the  features  perspective.

Microsoft Azure Mobile Services,  scores  well  in :

  • On Premise Integration : As a true hybrid cloud enabler, Azure mobile services provides lot of options for on premise integration. Mobile Services enables you to easily create a cloud-hosted mobility layer on top of these assets, while safely connecting to them back on your premises using Hybrid Connections. Supported assets include any resource that runs on a static TCP port, including Microsoft SQL Server, MySQL, HTTP Web APIs, and most custom web services.
  • Relational Database Integration : While NOSQL based databases may find a role in Enterprise mobile applications, it is unlikely that the relational databases will go out of picture and hence support for relational databases is key to the success of enterprise mobility applications. The Mobile Services .NET backend makes it easy to take advantage of existing assets in building a mobile service. One particularly interesting scenario is using an existing SQL database (either on-premises or in the cloud), that may already be used by other applications, to make existing data available to mobile clients.

Amazon AWS  Mobile Services,  scores  well  in :

  • Real Time Processing : You can have your mobile applications push data to Amazon Kinesis from hundreds of thousands of devices, making the data available to you as soon as it is produced on the mobile devices. The Amazon Kinesis Recorder enables you to reliably record data to an Amazon Kinesis stream from your mobile application. The Amazon Kinesis Recorder batches requests to handle intermittent network connections and enables you to record events even when the device is offline. Azure documentation has some mention about integration with SignalR however this has to be evolved further.

 

Summary: Mobile Backend as a Service (MBaaS) is one of the fastest growing cloud services delivery model. While  there  are   some  pure play   vendors  already in the  race,  considering  the  diversity  of  technologies  in most enterprises  , MBaaS  may  well  be  served  better  when  working  along side a  cloud  based PaaS  service  so that  a  combination of MBaaS  eco system  can be provided. In that context  both  Microsoft Azure  and  Amazon AWS  provides  options for enterprises.

More Stories By Srinivasan Sundara Rajan

Highly passionate about utilizing Digital Technologies to enable next generation enterprise. Believes in enterprise transformation through the Natives (Cloud Native & Mobile Native).