26
CouchDB y el desarrollo de aplicaciones Android Ricardo Monagas

CouchDB y el desarrollo de aplicaciones Android

Embed Size (px)

DESCRIPTION

Uso de CouchDB como base de datos para soluciones que ameriten el manejo de gran cantidad de información a través de aplicaciones Android. La presentación muestra una pequeña introducción sobre ¿Cómo conectarse y manejar bases de datos CouchDB en Android? Las diapositivas fueron desarrolladas por mi persona para ExpoTech 2013 (31-01 al 01-02-2013) , en Puerto Ordaz - Venezuela.

Citation preview

Page 1: CouchDB y el desarrollo de aplicaciones Android

CouchDB y el desarrollo de aplicaciones Android

Ricardo Monagas

Page 2: CouchDB y el desarrollo de aplicaciones Android

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

2012

DATA

Page 4: CouchDB y el desarrollo de aplicaciones Android

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

NoSQLBigTable

Voldemort

CouchDB

Amazon DynamoDB

Page 6: CouchDB y el desarrollo de aplicaciones Android

CouchDB

Documentos JSONJavascript para peticiones MapReduce

HTTP para formar un API

Page 7: CouchDB y el desarrollo de aplicaciones Android

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

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

¿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

¿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

CouchDB = Relax

Page 12: CouchDB y el desarrollo de aplicaciones Android

CouchDB & Android

Fuente: https://github.com/couchbase/Android-Couchbase

Instalación

Couchbase

Page 13: CouchDB y el desarrollo de aplicaciones Android

CouchDB & Android

Fuente: https://github.com/helun/Ektorp

Instalación

Ektorp

Page 14: CouchDB y el desarrollo de aplicaciones Android

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

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

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

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

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

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

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

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

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

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

Casos de Éxito

Page 25: CouchDB y el desarrollo de aplicaciones Android

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

Gracias por su atención,

¿Preguntas?

Ricardo MonagasDirector General de Uppersky

Twitter: @rmmonagas

Slideshare: http://goo.gl/GlngJ

Email: [email protected]