Slide 1

Slide 1 text

Friday, September 20, 13

Slide 2

Slide 2 text

The  Future  of  Mobile J.  Chris  Anderson  –  Mobile  Architect Friday, September 20, 13

Slide 3

Slide 3 text

JSON  Anywhere   Couchbase  Server • JSON  on  the  device ­ Developers   increasingly  prefer   NoSQL  database • JSON  on  the  wire ­ No  need  for  data   transforma9on • JSON  in  the  cloud ­ Flexible  data  model ­ High  performance ­ Easy  scalability JS N JS N JS N Friday, September 20, 13

Slide 4

Slide 4 text

Couchbase  Lite The  only   Na@ve  NoSQL   Database  for   Mobile Friday, September 20, 13

Slide 5

Slide 5 text

The  Complete  Mobile  Solu@on Friday, September 20, 13

Slide 6

Slide 6 text

Architecture Server  3 Server  1 Server  2 Couchbase  Server Channel Sync  Gateway Channel Channel Sync  Gateway Channel Couchbase  Lite  for  iOS  and  Android On Premise In the cloud Friday, September 20, 13

Slide 7

Slide 7 text

Couchbase  Lite The  only  NoSQL  Database  for  Mobile  Devices • Features ­ Ultra-­‐lightweight,  secure  JSON   database   ­ Na9ve  support  for  iOS,  Android   and  REST/HTML5 ­ Full  document,  index  and   querying  and  sync  capabili9es ­ Powerful  conflict  resolu9on Couchbase   Lite   Android Couchbase   Lite   iOS Friday, September 20, 13

Slide 8

Slide 8 text

What  you  get Couchbase   Lite   Android Couchbase   Lite   iOS ­ Enable  new  class  of  rich  data   intensive  local  applica9ons   ­ Rapid  development  using   na9ve  JSON  data ­ Highly  responsive  interac9ve   applica9ons ­ Always  available  -­‐    online  or   offline Friday, September 20, 13

Slide 9

Slide 9 text

Sync  via  Channels Friday, September 20, 13

Slide 10

Slide 10 text

Collaborate  using  Channels • For  each  document,  you  specify  a  set  of   channels  it  belongs  to • For  each  user  or  device,  you  control  which   channels  they  can  access • Replicate  only  a  subset  of  documents  down  to   the  device ­ User-­‐defined  filter  func9ons   ­ Simply  lets  you  know  whether  a  document  should  be  replicated • And  you  can  authen@cate  users   Friday, September 20, 13

Slide 11

Slide 11 text

Data Routing Data Data Friday, September 20, 13

Slide 12

Slide 12 text

Data Routing Data Data Data Friday, September 20, 13

Slide 13

Slide 13 text

Data Routing Data Data Data Data Friday, September 20, 13

Slide 14

Slide 14 text

Data Routing Data D ata Data Data Data Friday, September 20, 13

Slide 15

Slide 15 text

Data Routing Data D ata Data Data Data Data Friday, September 20, 13

Slide 16

Slide 16 text

Data Routing Data Data Data Data Data Data Friday, September 20, 13

Slide 17

Slide 17 text

How  do  I  get  started? Zero to sync in 5 minutes !!! Friday, September 20, 13

Slide 18

Slide 18 text

Look  at  the  code  JSON  /  REST  interface -­‐CRUD  opera9ons  use  HTTP   verbs -­‐Works  with  libraries  like   jQuery  and  Backbone Live  Query  UI  Updates -­‐UI  updated  to  reflect   database  changes,  even  for   remote  changes -­‐HTTP  long  poll  API  to   support  quick  redraw Collaborate  via  Cloud -­‐social  network  login -­‐programmable  sync   func9on  for  update   valida9on  and  channel   rou9ng Friday, September 20, 13

Slide 19

Slide 19 text

JSON  Document  Schema Friday, September 20, 13

Slide 20

Slide 20 text

All  Todo  Lists • Rendered  with  HTML   and  JavaScript • View  query  to  show  all   the  lists  on  a  device. • Form  submit  event   creates  a  document   represen@ng  a  list. Friday, September 20, 13

Slide 21

Slide 21 text

Task  List  -­‐  Items • Toggle  a  checkbox • Add  a  photo • Live  update Friday, September 20, 13

Slide 22

Slide 22 text

Toggle  a  Task  Checkbox by  upda@ng  the  JSON  Document Uses  a  familiar  REST  paradigm.  GET  and  PUT  used  here. Friday, September 20, 13

Slide 23

Slide 23 text

Live  Update  UI Local  and  remote  updates  both  trigger  a  database  event,  used  for  redraw. Friday, September 20, 13

Slide 24

Slide 24 text

Sign-­‐in  to  sync  and  collaborate • Example  uses  Facebook,  we   support  a  wide  variety  of   authen@ca@on  op@on • Pick  from  the  list  of  signed  in   users  when  sharing Friday, September 20, 13

Slide 25

Slide 25 text

Photo  AYachment Friday, September 20, 13

Slide 26

Slide 26 text

Sync  Func@on • Applica@on  code  run   in  the  cloud • Access  control • Channel  rou@ng • Update  Valida@on Your  cloud  in  one  page  of  code. Friday, September 20, 13

Slide 27

Slide 27 text

Task  documents  routed  to  channels • Must  have  a  list_id • Routed  to  a  channel  based  on  list_id Friday, September 20, 13

Slide 28

Slide 28 text

List  documents  grant  channel  access • Must  have  an  owner • Owner  can’t  change • Owner  and  members   can  access  channel • List  is  on  it’s  own   channel Friday, September 20, 13

Slide 29

Slide 29 text

Data  Structures  for  Conflict   Detec@on  and  Management Friday, September 20, 13

Slide 30

Slide 30 text

Vector  Clocks • Scale  with  the  #  of  processes  upda@ng  an  item Friday, September 20, 13

Slide 31

Slide 31 text

Never  Throw  Data  Away Friday, September 20, 13

Slide 32

Slide 32 text

Revision  Trees {counter,  content  hash} 4-­‐3a14f7d8 5-­‐d7ad89bd 4 4 4 3 3 3 2 2 2 3 1 winner 1 conflic@ng   version Friday, September 20, 13

Slide 33

Slide 33 text

Revision  Trees 1 Friday, September 20, 13

Slide 34

Slide 34 text

Revision  Trees 1 1 2 Friday, September 20, 13

Slide 35

Slide 35 text

Revision  Trees 1 1 2 2 Friday, September 20, 13

Slide 36

Slide 36 text

Revision  Trees 1 1 2 2 3 Friday, September 20, 13

Slide 37

Slide 37 text

Revision  Trees 1 1 2 2 3 3 Friday, September 20, 13

Slide 38

Slide 38 text

Revision  Trees 1 2 3 1 2 3 4 4 Friday, September 20, 13

Slide 39

Slide 39 text

Revision  Trees 1 2 3 1 2 3 4 4 4 Friday, September 20, 13

Slide 40

Slide 40 text

Revision  Trees 1 2 3 1 2 3 4 4 4 Friday, September 20, 13

Slide 41

Slide 41 text

Revision  Trees 1 2 3 4 1 2 3 4 4 4 Friday, September 20, 13

Slide 42

Slide 42 text

Revision  Trees 1 2 3 4 4 1 2 3 4 4 Friday, September 20, 13

Slide 43

Slide 43 text

Revision  Trees 1 2 3 1 2 3 4 4 4 4 1 2 3 4 3 4 Friday, September 20, 13

Slide 44

Slide 44 text

Revision  Trees 1 2 3 1 2 1 2 3 4 4 4 4 4 3 3 4 Friday, September 20, 13

Slide 45

Slide 45 text

Revision  Trees 1 2 3 1 2 1 2 3 4 4 4 4 4 3 3 4 5 4 Friday, September 20, 13

Slide 46

Slide 46 text

Revision  Trees 1 2 3 1 2 1 2 3 4 4 4 3 3 4 5 5 4 4 Friday, September 20, 13

Slide 47

Slide 47 text

Revision  Trees 1 2 3 1 2 1 2 4 4 3 3 4 5 5 3 3 4 4 5 4 4 Friday, September 20, 13

Slide 48

Slide 48 text

Conflict  Detec@on  and  Management •Vector  Clocks •Revision  Trees Friday, September 20, 13

Slide 49

Slide 49 text

Get  Started hYp://mobile.couchbase.com Friday, September 20, 13