på Android ( Relax ?)

Post on 08-Feb-2016

57 views 0 download

description

på Android ( Relax ?). @ glennbech @ baksiaOslo g lenn.bech@inmeta.com http://www.baksia.org http://www.glennbech.com. Agenda. Litt om CouchDB Demo CouchDB på android devicer Hvorfor? Hvordan? Et par alternativer (Demo). CouchDB …?*. Godt sted å starte. - PowerPoint PPT Presentation

Transcript of på Android ( Relax ?)

på Android (Relax?)

@glennbech@baksiaOsloglenn.bech@inmeta.comhttp://www.baksia.orghttp://www.glennbech.com

AgendaAgenda

• Litt om CouchDB

• Demo

• CouchDB på android devicer

• Hvorfor?

• Hvordan? Et par alternativer

• (Demo)

CouchDB …?*CouchDB …?*

Lotus Notes askSam Apstrata Datawasp CRX MUMPSDatabase UniVerse

UniData Jackrabbit CouchDB FleetDB MongoDB GemFire

Enterprise OrientDB RavenDB Redis StrokeDB Terrastore

ThruDB Persevere DBSlayer

DokumentorientertDokumentorientert

JSON basert og «Skjemaløst»JSON basert og «Skjemaløst»

{ "_id": "BCCD12CBB", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}

{ "_id": "BCCD12CBC", "type": "person", "name": "Luke", "age": 35, "powers": ["Pull", "Jedi Mind Trick"], "dark_side": false}

HTTP REST BasertHTTP REST Basert

SQL REST

Insert into… HTTP PUT /db/id

Select * from HTTP GET /db/id

Update HTTP PUT /db/id

Delete HTTP DELETE /db/id

DBA HTTP GET /mydb/, HTTP GET/_all_dbs,HTTP PUT /_replicate, HTTP POST /mydb/_bulk_docs

«World class replication»«World class replication»

• Multi master replikering som oppdager konflikter

• «Eventual Consistency»

SpørringerSpørringer

SQL

> Select id, name from Person

CouchDB

Function (doc) {

emit(doc._id, doc.name)

}

SpørringerSpørringer

«Views» Reduce«Views» Reduce

SQL

> Select darkside, count(*) from Person group by darkside

«Views» Reduce«Views» Reduce

Liten Demo?Liten Demo?

• Starte server

• http://46.137.75.167:5984/_all_dbs

• http://46.137.75.167:5984/_utils

• curl -X PUT http://46.137.75.167:5984/anewdb• curl -X DELETE http://46.137.75.167:5984/anewdb

Android + couch Match made in heaven?Android + couch Match made in heaven?

• Android har god rammeverstøtte for JSON & HTTP

Couch DB på Android?Couch DB på Android?

Scenario #1Scenario #1

• Full funksjonalitet i områder uten nettdekning/variabel dekning

• Økonomiske hensyn (Roaming? Synkronisere data over WIFI)

Scenario #1Scenario #1

Replication

OFFLINE

[ONLINE]

Scenario 2Scenario 2

• Skrivehastighet viktig, Nettverk ingen opsjon• «Runkeeper»• Telemetri

Scenario #2Scenario #2

POST http://127.0.0.1:5984/db/_bulk_docs

Scenario #3 «continous»Scenario #3 «continous»

GET /db/_changes?feed=continous&since=4

Delta (n1,n2,n3,n4)

How to #1 «Quick & Dirty»How to #1 «Quick & Dirty»

How to #1How to #1

•Adb forward tcp:80 tcp:5984

How to #1How to #1

How to #2 (Mye kulere)How to #2 (Mye kulere)

• Couchbase for Android

• Basert på Apache CouchDB

• Støtte for å pakke databasen sammen med Applikasjonen på under 5mb

How to #2 Mye kulereHow to #2 Mye kulere

• Beta. Kun master på Github

• <9 timer siden sist modifikasjon ved min «git clone»

• Måtte laste ned Android Native Development KIT (NDK)

• Fikk ikke utviklingsmiljø på Windows 7 i gang (måtte bruke Ubuntu)

• Replikering via. Curl fungerer fint

• Jobber nå med Replikering initiert fra Android kode

• Ta gjerne en prat på Oslo mekaniske om dere er nysgjerrige

KlientbibliotekKlientbibliotek

Noen forslag

• Jackson JSON (~200k) POJO Mapper mm.http://jackson.codehaus.org/

• Couch Droid. «Lightweight» (< 39k)http://nosql.mypopescu.com/post/371951782/droidcouch-android-library-for-couchdb

• AndCouch (Super lettvekt, en klasse, del av Couchbase)https://github.com/couchbaselabs/Android-Couchbase.git

ReferanserReferanser

• http://horicky.blogspot.com/2008/10/couchdb-implementation.html

• http://wiki.apache.org/couchdb/Installing_on_Ubuntu

• http://guide.couchdb.org/

• http://www.youtube.com/watch?v=3RdcKWYGqig

• https://github.com/couchbaselabs/Android-Couchbase

• https://cloudant.com/