på Android (Relax?) på
• Litt om CouchDB • Demo • CouchDB på android devicer • Hvorfor? • Hvordan? Et par alternativer • (Demo)
• •
Lotus Notes askSam Apstrata Datawasp CRX MUMPSDatabase UniVerse UniData Jackrabbit CouchDB FleetDB MongoDB GemFire Enterprise OrientDB RavenDB Redis StrokeDB Terrastore ThruDB Persevere DBSlayer
{ "_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 }
SQLREST Insert into…HTTP PUT /db/id Select * fromHTTP GET /db/id UpdateHTTP PUT /db/id DeleteHTTP DELETE /db/id DBAHTTP GET /mydb/, HTTP GET/_all_dbs, HTTP PUT /_replicate, HTTP POST /mydb/_bulk_docs
• Multi master replikering som oppdager konflikter • «Eventual Consistency»
SQL > Select id, name from Person CouchDB Function (doc) { emit(doc._id, doc.name) }
SQL > Select darkside, count(*) from Person group by darkside
• Starte server Starte server • all_dbs all_dbs • utils utils • curl -X PUT • curl -X DELETE
• Android har god rammeverstøtte for JSON & HTTP
• Full funksjonalitet i områder uten nettdekning/variabel dekning • Økonomiske hensyn (Roaming? Synkronisere data over WIFI)
Replication OFFLINE [ONLINE]
• Skrivehastighet viktig, Nettverk ingen opsjon • «Runkeeper» • Telemetri
POST
GET /db/_changes?feed=continous&since=4 Delta (n1,n2,n3,n4)
• Adb forward tcp:80 tcp:5984
• Couchbase for Android • Basert på Apache CouchDB • Støtte for å pakke databasen sammen med Applikasjonen på under 5mb
• 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
Noen forslag • Jackson JSON (~200k) POJO Mapper mm. • Couch Droid. «Lightweight» (< 39k) android-library-for-couchdb android-library-for-couchdb • AndCouch (Super lettvekt, en klasse, del av Couchbase)
• implementation.html implementation.html • • • • •