Upload
ricardo-monagas
View
1.204
Download
2
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
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: [email protected]