270 likes | 418 Views
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.
E N D
på Android (Relax?) @glennbech @baksiaOslo glenn.bech@inmeta.comhttp://www.baksia.org http://www.glennbech.com
Agenda • Litt om CouchDB • Demo • CouchDB på androiddevicer • Hvorfor? • Hvordan? Et par alternativer • (Demo)
Godt sted å starte • http://www.infoq.com/presentations/katz-couchdb-and-me • http://blog.stackoverflow.com/2009/06/podcast-59/
Dokumentorientert Lotus Notes askSamApstrataDatawasp CRX MUMPSDatabaseUniVerseUniDataJackrabbitCouchDBFleetDBMongoDBGemFireEnterprise OrientDBRavenDBRedisStrokeDBTerrastoreThruDB Persevere DBSlayer
JSON basert og «Skjemaløst» { "_id": "BCCD12CBC", "type": "person", "name": "Luke", "age": 35, "powers": ["Pull", "JediMind Trick"], "dark_side": false } { "_id": "BCCD12CBB", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true }
«World classreplication» • Multi master replikering som oppdager konflikter • «EventualConsistency»
Spørringer SQL > Select id, name from Person CouchDB Function (doc) { emit(doc._id, doc.name) }
«Views» Reduce SQL > Select darkside, count(*) from Person group by darkside
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 har god rammeverstøtte for JSON & HTTP
Scenario #1 • Full funksjonalitet i områder uten nettdekning/variabel dekning • Økonomiske hensyn (Roaming? Synkronisere data over WIFI)
Scenario #1 [ONLINE] Replication OFFLINE
Scenario 2 • Skrivehastighet viktig, Nettverk ingen opsjon • «Runkeeper» • Telemetri
Scenario #2 POST http://127.0.0.1:5984/db/_bulk_docs
Scenario #3 «continous» GET /db/_changes?feed=continous&since=4 Delta (n1,n2,n3,n4)
How to #1 • Adb forward tcp:80 tcp:5984
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 kulere • Beta. Kun master på Github • <9 timer siden sist modifikasjon ved min «gitclone» • 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
Klientbibliotek Noen forslag • Jackson JSON (~200k) POJO Mapper mm.http://jackson.codehaus.org/ • CouchDroid. «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
Referanser • 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/