CouchDB y el desarrollo de aplicaciones Android
-
Upload
ricardo-monagas -
Category
Technology
-
view
1.187 -
download
2
description
Transcript of CouchDB y el desarrollo de aplicaciones Android
![Page 1: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/1.jpg)
CouchDB y el desarrollo de aplicaciones Android
Ricardo Monagas
![Page 2: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/2.jpg)
Contenido
1. Big Data
2. NoSQL
3. CouchDB
4. CouchDB & Android
5. Casos de Éxito
6. Enlaces de interés
![Page 3: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/3.jpg)
2012
DATA
![Page 4: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/4.jpg)
2.5 Quintillones de Bytes diarios
Datos por todos lados
340 Millones de Tweets por día
4000 tweets por segundo Fuente: blog.twitter.com
Fuente: http://www-01.ibm.com/software/data/bigdata/
![Page 5: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/5.jpg)
NoSQLBigTable
Voldemort
CouchDB
Amazon DynamoDB
![Page 6: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/6.jpg)
CouchDB
Documentos JSONJavascript para peticiones MapReduce
HTTP para formar un API
![Page 7: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/7.jpg)
1. Base de Datos orientada
en Documentos{
“_id”: “453453406456456”,“_rev”: “5345436475658”,“moneda”: “Bs”,“productos”: *
{“nombre”: “Manzana”,“precio”: 20, …
}, …
],“fecha”: “2012-08-12T13:15:56.684+0000”,“cantidad”: 2,“estado”: “cerrado” …
}
![Page 8: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/8.jpg)
2. Peticiones mediante
Documentos de Diseño{ "_id": "_design/Compra",
"_rev": "371-b2bdc2ce5dd269017f006595328a66ad","language": "javascript",
"views": {
“por_fecha_compra": {
"map": “function(doc) {
if (doc.fecha && doc.id_usuario && doc.estado === ‘cerrado')
emit([doc.id_usuario,doc.fecha], doc);
}“} }
}
![Page 9: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/9.jpg)
¿Por qué NoSQL y CouchDB?
Los datos de la vida real son almacenados en documentos
Almacenamiento de la
aplicación completa
![Page 10: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/10.jpg)
¿Por qué NoSQL y CouchDB?
Fácil administración, backup,
replicación y trabajo offline
Diseño sin esquemas rígidos
![Page 11: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/11.jpg)
CouchDB = Relax
![Page 12: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/12.jpg)
CouchDB & Android
Fuente: https://github.com/couchbase/Android-Couchbase
Instalación
Couchbase
![Page 13: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/13.jpg)
CouchDB & Android
Fuente: https://github.com/helun/Ektorp
Instalación
Ektorp
![Page 14: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/14.jpg)
CouchDB & Android
Inicialización de CouchDB
1. Creación de instancia ICouchbaseDelegate
private final ICouchbaseDelegate mDelegate = new ICouchbaseDelegate() {
@Overridepublic void couchbaseStarted(String host, int port) {}
@Overridepublic void exit(String error) {}
};
![Page 15: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/15.jpg)
CouchDB & Android
Inicialización de CouchDB
2. Declaración de Servicio para Couchbase
private ServiceConnection couchServiceConnection;
![Page 16: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/16.jpg)
CouchDB & Android
Inicialización de CouchDB
3. Método de Inicio de Couchbase
public void startCouchbase() {
CouchbaseMobile couch = new CouchbaseMobile(getBaseContext(), mCallback);couchServiceConnection = couch.startCouchbase();
}
![Page 17: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/17.jpg)
CouchDB & Android
Inicialización de CouchDB
3. Llamada al método startCouchbase
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
startCouchbase();
}
![Page 18: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/18.jpg)
CouchDB & Android
Inicialización de Ektorp
1. Creación del Cliente HTTPpublic void couchbaseStarted(String host, int port) {
httpClient = new AndroidHttpClient.Builder().host(host).port(port).username(username).password(password).build();
}
![Page 19: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/19.jpg)
CouchDB & Android
Inicialización de Ektorp
2. Conexión con el servidor de CouchDB
CouchDbInstance dbInstance = new StdCouchDbInstance(httpClient);
CouchDbConnector db = new StdCouchDbConnector("mydatabase", dbInstance);
db.createDatabaseIfNotExists();
![Page 20: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/20.jpg)
CouchDB & Android
Manejo de la Base de Datos
1. Creación de Documento de Compra
public class Compra extends CouchDbDocument {
private int id;
private double total;
private List<Producto> productos;…
}
![Page 21: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/21.jpg)
CouchDB & Android
Manejo de la Base de Datos
2. CRUD para los documentos de Compra
public class CompraRepository extends CouchDbRepositorySupport<Compra> {
public CompraRepository(CouchDbConnector db) {
super(Compra.class, db); }
}
![Page 22: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/22.jpg)
CouchDB & Android
Manejo de la Base de Datos
3. Ejemplos de manipulación de BD
compraRepository = new CompraRepository (couchDbConnector);
Compra c = compraRepository.get(id); // Lectura de Compra por ID
couchDbConnector.create( c ); // Creación de documento de Compra
compraRepository.update( c ); // Actualización de documento de Compra
couchDbConnector.delete( c ); // Eliminación de documento de Compra
![Page 23: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/23.jpg)
CouchDB & Android
Manejo de la Base de Datos
4. Peticiones en CouchDB
ViewQuery query = new ViewQuery().designDocId("_design/Compra") .viewName(“por_fecha_compra") .key(“31-01-2013");
List<Compra> compras = db.queryView(query, Compra.class);
![Page 24: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/24.jpg)
Casos de Éxito
![Page 25: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/25.jpg)
Enlaces de interés
Ektorp – http://goo.gl/dDKC0
Couchbase – http://www.couchbase.com
Couchbase Android – http://goo.gl/MMca5
Cloudant – http://www.cloudant.com
![Page 26: CouchDB y el desarrollo de aplicaciones Android](https://reader034.fdocument.pub/reader034/viewer/2022052218/559e250e1a28abaf208b4612/html5/thumbnails/26.jpg)
Gracias por su atención,
¿Preguntas?
Ricardo MonagasDirector General de Uppersky
Twitter: @rmmonagas
Slideshare: http://goo.gl/GlngJ
Email: [email protected]