0% encontró este documento útil (0 votos)
59 vistas26 páginas

Couchdb 130211144903 Phpapp02

Este documento resume el uso de CouchDB como base de datos NoSQL para aplicaciones Android. Explica las ventajas de CouchDB como base de datos orientada a documentos con diseño flexible y replicación. Luego detalla cómo instalar y configurar CouchDB en Android usando bibliotecas como Couchbase y Ektorp, y cómo realizar operaciones CRUD en la base de datos mediante documentos y vistas. Finalmente, menciona algunos casos de éxito y enlaces de interés.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
59 vistas26 páginas

Couchdb 130211144903 Phpapp02

Este documento resume el uso de CouchDB como base de datos NoSQL para aplicaciones Android. Explica las ventajas de CouchDB como base de datos orientada a documentos con diseño flexible y replicación. Luego detalla cómo instalar y configurar CouchDB en Android usando bibliotecas como Couchbase y Ektorp, y cómo realizar operaciones CRUD en la base de datos mediante documentos y vistas. Finalmente, menciona algunos casos de éxito y enlaces de interés.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 26

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
Fuente: http://www-01.ibm.com/software/data/bigdata/

Datos por todos lados

340 Millones de Tweets por día


4000 tweets por segundo
Fuente: blog.twitter.com
Voldemort

NoSQL
CouchDB
BigTable

Amazon DynamoDB
CouchDB

Documentos JSON
Javascript 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?

Diseño sin esquemas rígidos

Fácil administración, backup,


replicación y trabajo offline
CouchDB = Relax
CouchDB & Android
Instalación

Couchbase

Fuente: https://github.com/couchbase/Android-Couchbase
CouchDB & Android
Instalación

Ektorp

Fuente: https://github.com/helun/Ektorp
CouchDB & Android
Inicialización de CouchDB
1. Creación de instancia ICouchbaseDelegate
private final ICouchbaseDelegate mDelegate = new ICouchbaseDelegate() {

@Override
public void couchbaseStarted(String host, int port) {}

@Override
public 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 HTTP
public 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

Couchbase – http://www.couchbase.com

Ektorp – http://goo.gl/dDKC0

Couchbase Android – http://goo.gl/MMca5

Cloudant – http://www.cloudant.com
Gracias por su atención,
¿Preguntas?
Ricardo Monagas
Director General de Uppersky

Twitter: @rmmonagas
Slideshare: http://goo.gl/GlngJ
Email: ricardo.monagas@uppersky.co

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy