CouchDB y el desarrollo de aplicaciones Android

Post on 09-Jul-2015

1.203 views 2 download

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.

Transcript of CouchDB y el desarrollo de aplicaciones Android

CouchDB y el desarrollo de aplicaciones Android

Ricardo Monagas

Contenido

1. Big Data

2. NoSQL

3. CouchDB

4. CouchDB & Android

5. Casos de Éxito

6. Enlaces de interés

2012

DATA

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/

NoSQLBigTable

Voldemort

CouchDB

Amazon DynamoDB

CouchDB

Documentos JSONJavascript para peticiones MapReduce

HTTP para formar un API

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” …

}

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);

}“} }

}

¿Por qué NoSQL y CouchDB?

Los datos de la vida real son almacenados en documentos

Almacenamiento de la

aplicación completa

¿Por qué NoSQL y CouchDB?

Fácil administración, backup,

replicación y trabajo offline

Diseño sin esquemas rígidos

CouchDB = Relax

CouchDB & Android

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

Instalación

Couchbase

CouchDB & Android

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

Instalación

Ektorp

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) {}

};

CouchDB & Android

Inicialización de CouchDB

2. Declaración de Servicio para Couchbase

private ServiceConnection couchServiceConnection;

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();

}

CouchDB & Android

Inicialización de CouchDB

3. Llamada al método startCouchbase

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

...

startCouchbase();

}

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();

}

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();

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;…

}

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); }

}

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

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);

Casos de Éxito

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

Gracias por su atención,

¿Preguntas?

Ricardo MonagasDirector General de Uppersky

Twitter: @rmmonagas

Slideshare: http://goo.gl/GlngJ

Email: ricardo.monagas@uppersky.co