"Going Offline", one of the hottest mobile app trends

Post on 24-Jan-2017

277 views 0 download

Transcript of "Going Offline", one of the hottest mobile app trends

6674 - "Going Offline", one of the hottest trends in mobile

Derek Baron, Program DirectorIBM MobileFirst

Here’s what I’ll be presenting:The situation:• Enabling your app to work offline is hard and yet is more important

than everThe problem:• What makes it hardest is sync and replication of the data between the

device and backend databasesThe IBM Solution offers:• A way to build an app that works as well offline as it does online, and

avoid the challenges of writing a replication protocol• A way to deal with the ever changing shape of data• Ability to put the data where you need it: closer to your users, or in

your data center (or both)

Forrester

According to Forrester Research, the ability to work offline is "the most

important and difficult mobile feature...and will be a consideration for

nearly every modern application" 

3

6

One of the hottest trends in mobile is "going offline"

NEW in 2014 – top apps that work offline

• Google Maps Offline

• Google Now Cards Offline

• Facebook offline mode

• Square offline (swipe credit cards offline)

7

You need an on-device database

The on-device database helps mitigate against network issues

8

Mobile App

DeviceDB

Mobile App

MasterDB

MasterDB

Cloudant

Mobile App

DeviceDB

On-Device

Native CRUD

Query

Sync

IBM MobileFirst Platform and Cloudant

Deployment options:• On-premise NoSQL DB• Fully managed DBaaS

option• Reconfigure data layer

platform (public, private) over time with no downtime or re-coding

A complete data solution for Mobile Apps “Mobile-scale” workloads – millions of daily users SDK for iOS and Android Location based indexing & analytics Integrated with MFP tools and security

Wired Magazine

Mobile business applications aren't truly mobile if they can't work offline … faced with a tripling of time and cost when

adding offline functionality to a business app (Wired Magazine, June

2014) 

10

Why a tripling of time and cost?

Factors include:

1. Implementing sync and replication2. The ever changing shape of data3. The need to place data where you need it

11

The data center in your hand

The mobile data architecture is really like having 1000’s of data centers whose databases need to replicate..

12

Not being able to use an app because it can not access the data associated with it is just as bad as your entire data center going dark

The cost of sync and replication… complexity

1. Figure out how to store a subset of the application’s data locally

2. Implement a mechanism to keep the data synchronized on both the client and server

13

Sources: “Performance of Mobile, Single-Object, Replication Protocols”, Peter Keleher, University of Maryland

Replication that “just works”

The IBM Cloudant datastore was designed for a key purpose: sync and replication

Rather than relying on a master/slave architecture, Cloudant supports a multi-master architecture

You don't have to worry which database is the "single source of truth." They all are

14

Replication

Multi-master architecture means you don't have to worry which database is the "single source of truth”.

In cases of conflict, Cloudant will choose an arbitrary winner that every node can agree upon deterministically. More on this later…

Cloudant Toolkit supports pull or push modes for replication so the programmer can control when the sync happens

A document is really a tree of the document and its history. There’s a single, linear tree -- just a single branch -- running from the creation of the document to the current revision

Each node becomes aware of the existence of revisions when changes are pushed or pulled

Conflicts can occur in two places: 1) immediately, when you try to commit a new revision, 2) or later, when two peers have committed changes to the same

document

At this point, you can present both versions to the user, or resolve the conflict automatically using your preferred conflict resolution strategy: last write wins, first write wins, RCS, etc. If you want to resolve the conflict by creating a new revision, you simply put a new document on top of the current winner.

The masters are in sync

22

In reality, you rarely want everything local

User Data

Native Language Objects (new)

Cloudant

Shared Data

Remote API (new)

Local A

PI

Sync

User/Device Data (Offline)- Generated by the user of the app- User preferences, wish list, shopping cart- Offline data, periodically synched to the cloud

Shared Data (Online)- Generated by the enterprise- Shared by multiple users/devices- e.g. Cached/Mobile Store Inventory- Queried as-needed by the app, such as for product

search or category display

User Data

Two adjacent problems while we’re at it

1. The ever changing shape of mobile data

2. Putting the data where you need it:• close to your users• close to your systems• or both!

24

The ever changing shape of mobile data

Personal user information, geolocation data, social graphs, user-generated content, machine logging data, and sensor-generated data are just a few examples of the ever-expanding array of data being captured.

25

Source: http://www.couchbase.com/nosql-resources/what-is-no-sql

Mobile developers choose JSON and NoSQL

• Want to easily accommodate any new type of data they choose to work with • Database that isn’t disrupted by content structure changes • Efficient storage of unstructured and semi-structured data

26

And yet, businesses have SQL databases

What is the mobile developer to do??

27

Sample strategy (on-premises)

28

Cloudant Adapter

Cloudant NoSQL DB

MobileFirst Platform Server

SQL Adapter

Cast Iron Adapter Enterprise Services

Relational DB

Mobile App

Cloudant Device DB

Cloudant Sync

Cloudant Query

Native Language

CRUD

On-Device

Your data center

Sample strategy (on Bluemix)

Mobile App

Bluemix

Cloudant NoSQL DB

Cloudant Device DB

Cloudant Sync

Cloudant Query

Native Language

CRUD

Cloud Integration

Service

Enterprise Services

Relational DB

node.js

On-DeviceEnterprise

• Integrate using custom code in node.js + Cloud Integration service• Cloudant node.js SDK available

Where you put your data matters… a lot

• Closer to your users• When reducing network latency is critical

• Closer to your systems• When security and control are critical

• Both• When you need to have it all!

30

4IBM Confidential

Put the data closer to your mobile users

The IBM Cloudant managed DBaaS enables you to:• Geographically disperse your data across multiple data centers

to allow for easy access depending on location• Ability to store data across dozens of geographic locations WW

Closer to your systems on-premises

IBM MobileFirst Platform Cloudant Local• Cloudant NoSQL database in your data center

IBM Mobile First Platform includes Cloudant Local single node license Upgrade to multi-node clusters for high availability and scalabilty

32

Elastic Scalabilty Multi-Structured Data Data Mobility

Upgrade to Multi-Node Clusters for High Availability

and Scalability

Cloudant Local

Cloudant

MultitenantCloudant

Cloudant LocalSingle Node

Cloudant Local

Cloudant LocalCluster

Mobile App

Device DB

On-Device

On-Cloud

On-Prem

Native CRUD

Query

Sync

• Store Data on Cloud or On-Prem• On Cloud for fully managed,

automatic scaling• On Prem for more control, data

isolation

Single Node License Included

When you want to have it all

What you saw today:The situation:• Enabling your app to work offline is hard and yet is more important

than everThe problem:• What makes it hardest is sync and replication of the data between the

device and backend databasesThe IBM Solution offers:• A way to build an app that works as well offline as it does online, and

avoid the challenges of writing a replication protocol• A way to deal with the ever changing shape of data• Ability to put the data where you need it: closer to your users, or in

your data center (or both)

Learn more:

• IBM MobileFirst Platform Foundation• Includes single-node Cloudant Local

http://www-03.ibm.com/software/products/en/mobilefirstfoundation

• IBM MobileFirst Platform Cloudant Localhttps://cloudant.com/cloudant-local/

• IBM MobileFirst Services on Bluemixhttps://bluemix.net

35

• Encryption on device for Cloudant Sync• Expanded SDK options – node.js, Hybrid, Windows• Further cloud / on-premises continuity • JSONStore/Cloudant Sync Reconciliation• Advanced BLOB/File/Object Store support

We are planning the following roadmap for 2015

IBM Confidential

Notices and DisclaimersCopyright © 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM.

U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.

Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided.

Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.

Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.

References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business.

Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation.

It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.

Notices and Disclaimers (con’t)

Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right.

• IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORS®, Enterprise Document Management System™, Global Business Services ®, Global Technology Services ®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, SoDA, SPSS, StoredIQ, Tivoli®, Trusteer®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.

Thank YouYour Feedback is

Important!

Access the InterConnect 2015 Conference CONNECT Attendee Portal to complete your session surveys from your smartphone,

laptop or conference kiosk.