45
Department of Computer Science Institute for System Architecture, Chair for Computer Networks Application Development for Mobile and Ubiquitous Computing 4. Disconnected Operations Dr. Ing. Thomas Springer Technische Universität Dresden Chair of Computer Networks

ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

  • Upload
    dinhnhu

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Department of Computer Science Institute for System Architecture, Chair for Computer Networks

Application Development for Mobile and Ubiquitous Computing

4. Disconnected Operations

Dr. Ing. Thomas SpringerTechnische Universität Dresden

Chair of Computer Networks

Page 2: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Lecture Structure

Dr. Thomas Springer Slide 2Application Development - 4. Disconnected Operations

Adaptation and Context-

awareness

Mobile Middleware

Application Development

Enabling Technologies and Challenges

Disconnected Operations

Location-based Services

Communication Mechanisms

Android iOSMobile Web Applications

Cross-Platform Development

Mobile Business Applications

Energy Awareness

Page 3: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Motivating Example

§ Social Fitness App• Wristband/Smart Watch + Smartphone/Tablet App• Server component for data storage and user

management

§ Functionality• Automatic detection and tracking of sports

activities• Recording of activity states and content

(images, videos, track record, curve withpulse, etc.)

• Activity Timeline - Posting own activities andsee others‘ activities in an integrated timelinewith text, images, videos, etc.

• Management of training schedule andplanning of training activities

• Managing competitions with ranking

Dr. Thomas Springer 3Application Development - 4. Disconnected Operations

Running Competition June 27, 2016

5.7 km: 26:39

Beate„cooler Lauf bei herrlichem Wetter“

Cycling June 26, 2016

27.3 km: 26:39

You„Erste Etappe war eine einzige Quälerei, beim nächsten Mal geht’s bestimmt besser“ ...mehr

Training schedule June 28, 2016

Second Stage - Cycling

You

Warning: Bad conditionsexpected !!!

Cycling

June 26, 2016

27.3 km: 26:39„Erste Etappe war eine einzige Quälerei, beim nächsten Mal geht’s bestimmt besser“

Page 4: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Social Fitness App - Architecture

Dr. Thomas Springer 4Application Development - 4. Disconnected Operations

Server

App

App

App

App

User and Team data(workout, challenges, etc.)

Page 5: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Social Fitness App – Offline Challenge

§ Retrieving timeline entries

Dr. Thomas Springer 5Application Development - 4. Disconnected Operations

Server

User and Team data(workout, challenges, etc.)

§ App gets blocked§ Showing outdated timeline entries

from cache

Page 6: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Social Fitness App – Offline Challenge

§ Uploading local workout data

Dr. Thomas Springer 6Application Development - 4. Disconnected Operations

Server

User and Team data(workout, challenges, etc.)

Cycling

June 26, 2016

27.3 km: 26:39„Erste Etappe war eine einzige Quälerei, beim nächsten Mal geht’s bestimmt besser“

§ Storing data locally untilconnection is available

§ User might think that data is sentor activity is performed

Page 7: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Social Fitness App – Offline Challenge

§ Conflicting updates for team activity

Dr. Thomas Springer 7Application Development - 4. Disconnected Operations

Server

User and Team data(workout, challenges, etc.)

Cycling

June 26, 2016

27.3 km: 26:39„Erste Etappe war eine einzige Quälerei, beim nächsten Mal geht’s bestimmt besser“

Cycling

June 26, 2016

27.3 km: 26:39„Erste Etappe war eine einzige Quälerei, beim nächsten Mal geht’s bestimmt besser“

Cycling

June 26, 2016

27.3 km: 26:39„Erste Etappe war eine einzige Quälerei, beim nächsten Mal geht’s bestimmt besser“

§ Local changes on outdated copies§ Conflicting changes due to

concurrent updates

Page 8: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Motivation

§ Challenge: disconnections, i.e. longer phases of unreachability• foreseeable (due to energy saving, communication costs, location

changes)• unforeseeable (uncovered regions, unavailability of servers,

network congestions)

§ Goal:• availability of application functionality and data also during phases

of disconnectiono Logic and data needs to be locally available

• transparency for user and developer:o user perspective: application usage without interruptionso developer perspective: hiding disconnections from applications

Dr. Thomas Springer 8Application Development - 4. Disconnected Operations

Page 9: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Lecture Overview

§ Disconnected Operations• Coda filesystem• Mobile Database Systems• Generalization of concepts

§ Weakly Connected Operations• Concepts• Weakly-connection support in Coda

§ Offline-first Principle

Dr. Thomas Springer 9Application Development - 4. Disconnected Operations

Page 10: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Coda

§ Distributed file system with disconnection support• Goal: high availability and scalability

Dr. Thomas Springer 10Application Development - 4. Disconnected Operations

file server

auth server

update server

Kernel

file server

auth server

update server

Kernel

Coda Client

user process

user process

cache manager

Venus

KernelCoda mini cache

virtual file system socket layer

network device

...

file server

auth server

update server

Kernel

Coda Servers

Noble, Satyanarayanan (Carnegie Mellon University)

Page 11: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Disconnection Handling in Coda Cache Manager

Hoarding

Emulation Reintegration

disco

nnec

tion

disconnection

physical reconnection

logical

reconnection

hoarding database, prefetching

server emulationfiles from cachelogging of updates

reply of logsautomated conflict resolutionapplication specific conflict resolver

Noble, Satyanarayanan (Carnegie Mellon University)

Dr. Thomas Springer 11Application Development - 4. Disconnected Operations

Page 12: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Operation while connected• direct access to remote file servers• client-side caching of whole files• write-through changes

§ Hoarding• Prefetching of files for offline availability

• hoard profile: script for specifying a set of files to be cachedo indication of their importance based on hoard priorityo tool support for creating hoard profiles

Dr. Thomas Springer 12Application Development - 4. Disconnected Operations

CodaPreparation Phase

Hoarding

Emulation Reintegration

disco

nnec

tion

disconnection

physical reconnection

logical

reconnection

Page 13: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

CodaSample Hoard Profile

Dr. Thomas Springer 13Application Development - 4. Disconnected Operations

+[c|d] c … immediate children, d… all descendants, + … current and future files

-priorities, higher value means higher priority

Hoarding

Emulation Reintegration

disco

nnec

tion

disconnection

physical reconnection

logical

reconnection

Page 14: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Prioritized caching algorithm• balance between

o short-term need of caching for performance ando long-term need of caching for availability (hoarding)

• Least recently used scheme (LRU) for cache management• combined with per device prioritized file list (hoard database)• priority(hoard priority, recent usage)

§ Hoard walking - periodic cache updates or on request• first phase

o update file sets (e.g. new files in folder created by other clients)• second phase

o re-evaluation of all priorities in cache and hoard databaseo update cached files that were changed remotely

Dr. Thomas Springer 14Application Development - 4. Disconnected Operations

CodaPreparation Phase

Hoarding

Emulation Reintegration

disco

nnec

tion

disconnection

physical reconnection

logical

reconnection

Page 15: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Operation while disconnected• No access to remote file servers• Operation on locally cached files• Error message for access to uncached files

§ Emulation• virtual file system emulates file server operations• retrieves files from Venus cache manager• changes written to local copy• local file changes immediately visible• versioning of files for conflict detection• Logging of local changes for later reply to server

• Local modification log (change modify log, cml)o modification record log entry contains copy of the performed file

operation and the version state of all involved files

Dr. Thomas Springer 15Application Development - 4. Disconnected Operations

CodaDisconnection phase

Hoarding

Emulation Reintegration

disco

nnec

tion

disconnection

physical reconnection

logical

reconnection

Page 16: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Local Modification Log (change modify log, cml)• Contains list of modification records, i.e. locally

performed modifications• each modification record contains copy of the

performed file operation and the version state of all involved files

§ Optimization of modification log• any operation which overwrites the effects of

previous operations cancel corresponding record logs(e.g. delete cancels create and write operations)

• reduce required storage for change modify log• increases reintegration performance

Dr. Thomas Springer 16Application Development - 4. Disconnected Operations

CodaDisconnection phase

Hoarding

Emulation Reintegration

disco

nnec

tion

disconnection

physical reconnection

logical

reconnection

Page 17: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Operation when reconnected• again direct access to remote file servers• Log of local changes• Changed and outdated files in cache

§ Reintegration• logged actions sent to server and replayed• conflict detection based on version comparison

• conflictso file changed in parallel at client and servero same name for a newly created directoryo parallel change of directory attributes at client and server

Dr. Thomas Springer 17Application Development - 4. Disconnected Operations

CodaReintegration phase

Hoarding

Emulation Reintegration

disco

nnec

tion

disconnection

physical reconnection

logical

reconnection

Page 18: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Reintegration• automatic conflict resolution

o generic conflict resolutiono application specific conflict resolution

- application specific conflict resolvers provided byapplication developer (includes knowledge about filecontent)

• tool for manual conflict resolution

Dr. Thomas Springer 18Application Development - 4. Disconnected Operations

CodaReintegration phase

Hoarding

Emulation Reintegration

disco

nnec

tion

disconnection

physical reconnection

logical

reconnection

Page 19: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Embedded Mobile Databases• Local lightweight database embedded into application• Example: SQLite

§ Mobile Client/Server Databases• Lightweight database synchronized with database server• Examples: DB2 Everyplace, Oracle 10g lite, Tamino Mobile Suite

etc.

Mobile Database Systems

Dr. Thomas Springer 19Application Development - 4. Disconnected Operations

Page 20: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

SQLite§ Embedded SQL database engine§ Serverless, reads and writes directly to

ordinary disk files§ Features

• Support of local ACID transactions including nested transactions

• Implements most of SQL92 • Self-contained (no external

dependencies)• Cross-platform support (db files can be

moved)• Small code footprint: < 300KB fully

configured or less than 180KB with optional features omitted.

Dr. Thomas Springer 20Application Development - 4. Disconnected Operations

Integrated Mobile Databases

DB File(one file per database)DB File

(one file per database)

Programming API

SQL Command Processor

Tokenizer

Parser

Code Generator

Virtual Machine

DB Backend

DB File(one file per database)

SQL statement

VM code for query execution

Page 21: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Local data access+ persistency for App data+ simple programming API+ runs on local device, embedded into application+ No dependency on established, permanent network connection+ Small footprint+ Good performance

- DB in the scope of one application-> no sharing of data between applications-> no synchronization with backend

Dr. Thomas Springer 21Application Development - 4. Disconnected Operations

Embedded Mobile Databases

Page 22: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ A mobile database system• consists of a set of components distributed over mobile and

stationary devices

§ Two architecture concepts1. Extended Client/Server system2. Middleware system with replication server

Dr. Thomas Springer 22Application Development - 4. Disconnected Operations

Mobile Client/Server Databases - Overview

Page 23: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Client runs lightweight replica containing a subset of the master DB§ Lightweight DB performs operations locally in disconnected mode

(server emulation)§ Resynchronisation not permanently but

• triggered by client or• periodically performed by system

Dr. Thomas Springer 23Application Development - 4. Disconnected Operations

1. Extended Client/Server system

Mobile Client Database System

mobile Database (replica)

Lightweight DBMS

Synchronization Client

Master database

Server-DBMS

Synchronization Serverreplica selection

Synchronization

Figure according to „Mobile Datenbanken und Informationssysteme“ Hagen Höpfner, Can Türker, Birgitta König-Ries

Page 24: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

2. Middleware system with replication server

§ Intermediary middleware server for replication providing• decoupling of Mobile DB and Master DB – multiple sources can be integrated

at the replication server (transparent for client and server)• replication server can disburden data sources• access control at replication server

Mobile Client

mobile Database (replica)

Lightweight DBMS

Synchronization Client

Mobile Client

mobile Database (replica)

Lightweight DBMS

Synchronization Client

Database System

Master database

Server-DBMS

Synchronization Server

Database System

Master database

Server-DBMS

Synchronization Server

... ...

Replication Server

Figure according to „Mobile Datenbanken und Informationssysteme“ Hagen Höpfner, Can Türker, Birgitta König-Ries

Dr. Thomas Springer 24Application Development - 4. Disconnected Operations

Page 25: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Example: DB2 Everyplace

§ Architecture: Middleware system with replication server

Mobile Client

DB2 Everyplace DB

DB2 EveryplaceDBMS

Application

Synchronization Client

Query-by-example

(GUI)

Middleware

Mirror DB

Sync Server

Database Server

Master DB

Relational DBMS

Figure according to „Mobile Datenbanken und Informationssysteme“ Hagen Höpfner, Can Türker, Birgitta König-Ries

Dr. Thomas Springer 25Application Development - 4. Disconnected Operations

Page 26: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Replication

§ Tools• Mobile Device Administration Center (MDAC)• XML Scripting tool

§ Allow definition of part of Master DB to be replicated• at granularity of tables• specification of horizontal or vertical filters to select particular rows

or columns• target table can be created out of data from multiple tables (join,

merge)• target tables can be read-only or read-write• read-write restrictions

o no aggregations for row/column selectiono source table must not be created based on join or merge of other

tableso just tables replicated (no integrity definition nor trigger)

Dr. Thomas Springer 26Application Development - 4. Disconnected Operations

Page 27: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Steps for synchronizing local changes withMaster DB

Mobile Client

DB2 Everyplace DB

DB2 Everyplace table

Middleware

Mirror DB

Database Server

Master DB

DB2 Everyplace table input

queue

Admin Control DBsync request

Staging table

Mirrortable

Mirrortable

Staging table

copy updates, resolve conflicts

writeupdates

DB2Log

Mirrortable

Change Data Tables

Logging

Capture Apply

1

2

3

4

5

Dr. Thomas Springer 27Application Development - 4. Disconnected Operations

Page 28: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Conflict handling

§ Detection based on version numbers• For each table row version number maintained by Sync Server and

Sync Client• Differing version numbers mark conflicts

§ Conflict Handling• Default:

o changes rejected, o transaction rolled backo logging of conflicto mobile DB updated with data from mirror DB

• User-based conflict resolutiono based on program for log searcho application-specific conflict resolution implementable

Dr. Thomas Springer 28Application Development - 4. Disconnected Operations

Page 29: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Hoarding• Replication of data from Master DB• Explicitly defined by administrator using a tool• Prefetching of data according to defined scheme

§ Emulation• App uses local DB to manipulate data• even if connection is established

§ Reintegration• Synchronization of local DB with Master DB• Explicitly or periodically triggered

Dr. Thomas Springer 29Application Development - 4. Disconnected Operations

Disconnected Work with Mobile DBs

Page 30: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ NoSQL database solution with sync support

§ Couchbase Lite• Embedded database with CRUD and query functionality• JSON and binary data representation supported• Queries based on N1QL (declarative query language that extends SQL for

JSON)

§ Sync Gateway• Sync between Couchbase Lite and Couchbase Server• Peer-to-Peer sync between Couchbase Lite instances• Runs on server or cloud

§ Data Access• REST and Event-based APIs• JSON input and output

Dr. Thomas Springer 30Application Development - 4. Disconnected Operations

www.couchbase.com

Page 31: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Disconnected Operations - Priciples

TransitionFunction

Proxy-Client

Proxy-Server

Dispatcher

Conn

ected

Serv

iceFu

nctio

ns

Disc

onne

cted S

ervice

Func

tions

Proxy-Client

Proxy-Server

Dispatcher

Conn

ected

Serv

iceFu

nctio

ns

Disc

onne

cted S

ervice

Func

tions

§ introduction of proxy§ implementation of functionality for connections and

disconnections (f.connected(), f.disconnected())§ transition function for proxy state between

connection/disconnection

• monitoring of actions

• caching, prefetching

• change ofdata copies

• recording ofactions

reintegration with server

local server emulation

Dr. Thomas Springer 31Application Development - 4. Disconnected Operations

Page 32: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Disconnected Operations – Generalization

§ Preparation phase• ensure local availability of data and code

o replication of data and cachingo monitoring of user actions and prefetchingo static or dynamic installation of emulation code on client

§ Disconnection phase• local server emulation

o changes of local data copieso recording of actions

§ Reintegration phase• mediate local changes to server

o conflict detection and resolution

Dr. Thomas Springer 32Application Development - 4. Disconnected Operations

Preparation

Disconnection Reintegration

disco

nnec

tion

logical

reconnection

physical reconnection

disconnection

Page 33: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Generalized Architecture

server-side Proxy

client-side Proxy

Application

Prefetching

Caching

read data

Synchroni-zation

Write Log

write data

Transfer control Server

Synchroni-zation

Dr. Thomas Springer Application Development - 4. Disconnected Operations 33

Page 34: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Limits of disconnected operations• limited task continuity due to lack of access to remote data• local changes not visible to remote clients• probability of conflicts raises with disconnection time• local resources required for caching, logging of operations and

server emulation• bad performance and response times using low bandwidth links

§ Weak connection support• mode of operation to hide network latencies• minimized disconnection times• lower resource requirements on mobile devices• increased consistency and task continuity• decreased probability of conflicts

Ø Low bandwidth links require explicit support

Weakly connected operations

Dr. Thomas Springer 34Application Development - 4. Disconnected Operations

Page 35: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Support of weak connections

§ Mechanism for adaptive and dynamic use of connectionresources• load of new data and cache updates• reintegration of local changes

§ Load of requested data has highest priority to support taskcontinuity and short response time

§ Cache updates and reintegration independent from responsetimes• fast reintegration decreases size of local operation log and conflict

probability• slower reintegration enables optimization of local operation log

(e.g. eliminate operations), Ø reduced amount of data for network transfer

Dr. Thomas Springer 35Application Development - 4. Disconnected Operations

Page 36: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Partially Connected Operations

§ Extension of Andrew File System (AFS)§ All file system writes are performed locally and logged§ Three prioritized classes of data transmissions for

efficient network usage

1. Interactive communication2. Read/Fetch data3. Write data for reintegration

§ Classes have different priorities§ One send queue for each class§ Specific send strategy to prioritize interactive communication

and high availability of data in cache

Dr. Thomas Springer 36Application Development - 4. Disconnected Operations

Page 37: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Coda - Weakly Connected Operations

§ Extension of disconnected operations in Coda

§ Implicitly 2 classes of data transmissions

1. Read operations for missed and outdated files with high priority2. Trickle reintegration in background with low priority only if no

read operations active

§ Calculation of treshold for max. file size for reading new files• error message for larger files

Dr. Thomas Springer 37Application Development - 4. Disconnected Operations

Page 38: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Coda - Weakly Connected Operations

Hoarding

ServerEmulation

Write-disconnected

disconnection

connection

disconnection

strong

connectionweak

connection

§ resolving strong distinction between connected and disconnected§ if small bandwidth network connection available

• operation in disconnected mode for writing• but performance of reintegration functionality for cache updates

Dr. Thomas Springer 38Application Development - 4. Disconnected Operations

Page 39: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Coda – Trickle Reintegration

§ Ongoing background reintegration with minimally impact on foreground activity• balance between

o effectiveness of log optimization ando conflict probability

• minimal delay time (adjusted according current connectivity)o replay operation remains defined time in modify log (aging window) (10

min. based on simulations)

optimizationreintegration

Dr. Thomas Springer 39Application Development - 4. Disconnected Operations

Page 40: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ Idea of progressive enhancement• Start with an assumption of base-level capabilities• Than take advantage of advanced capabilities when they become

available

§ Offline-first• Assumption for base-level: no connection• Progressively enhance when connection becomes available• Shift in mindset: lack of connection is not an error• Build your app to work without a conncetion

Dr. Thomas Springer 40Application Development - 4. Disconnected Operations

Principle Offline-first

Page 41: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Social Fitness App – Offline Challenge

§ Retrieving timeline entries

Dr. Thomas Springer 41Application Development - 4. Disconnected Operations

Server

User and Team data(workout, challenges, etc.)

§ Check availability of connection first§ Cache retrieved timelines when

connection is available

Page 42: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Social Fitness App – Offline Challenge

§ Uploading local workout data

Dr. Thomas Springer 42Application Development - 4. Disconnected Operations

Server

User and Team data(workout, challenges, etc.)

Cycling

June 26, 2016

27.3 km: 26:39„Erste Etappe war eine einzige Quälerei, beim nächsten Mal geht’s bestimmt besser“

§ Store workout data locally in persistent storage

§ Sync with server when connectionbecomes available

Page 43: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Social Fitness App – Offline Challenge

§ Conflicting updates for team activity

Dr. Thomas Springer 43Application Development - 4. Disconnected Operations

Server

User and Team data(workout, challenges, etc.)

Cycling

June 26, 2016

27.3 km: 26:39„Erste Etappe war eine einzige Quälerei, beim nächsten Mal geht’s bestimmt besser“

Cycling

June 26, 2016

27.3 km: 26:39„Erste Etappe war eine einzige Quälerei, beim nächsten Mal geht’s bestimmt besser“

Cycling

June 26, 2016

27.3 km: 26:39„Erste Etappe war eine einzige Quälerei, beim nächsten Mal geht’s bestimmt besser“

§ Use weakly connected mechanismsto balance connectivity requirementsand in-time data updates

Page 44: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

Summary

§ Goal: Transparency of connection loss for programmer and user

§ Combination of Mechanisms• Caching/Prefetching• Emulation of server on client-device• Delayed Write-back• Balanced network usage

§ disconnected/weakly connected operations is a blueprint forapplication specific solutions

§ Adopt Offline-first principle

Dr. Thomas Springer 44Application Development - 4. Disconnected Operations

Page 45: ApplicationDevelopment forMobile …. Disconnected... · ApplicationDevelopment forMobile andUbiquitousComputing 4. DisconnectedOperations ... § Couchbase Lite • Embedded databasewithCRUD

§ “Mobile Datenbanksysteme” Bela Mutschler, Günther Specht.§ „Mobile Datenbanken und Informationssysteme“ Hagen

Höpfner, Can Türker, Birgitta König-Ries§ Thomas Fanghänel, Jonas S. Karlsson, Cliff Leung: “DB2

Everyplace Database Release 8.1: Architecture and Key Features”

§ “The Ultra-Compact Database for Enterprise Mobility” ProductDatasheet. http://www.pointbase.com/resourcecenter/pdfs/micro.pdf

§ “UltraLite Database Management and Reference SybaseiAnywhere”

§ https://techbeacon.com/offline-first-web-mobile-apps-top-frameworks-components

References

Dr. Thomas Springer 45Application Development - 4. Disconnected Operations