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.
4. 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
14. 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) {}
};
15. CouchDB & Android
Inicialización de CouchDB
2. Declaración de Servicio para Couchbase
private ServiceConnection couchServiceConnection;
16. 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();
}
17. CouchDB & Android
Inicialización de CouchDB
3. Llamada al método startCouchbase
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
startCouchbase();
}
18. 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();
}
19. 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();
20. 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;
…
}
21. 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);
}
}
22. 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
23. 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);
25. 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
26. Gracias por su atención,
¿Preguntas?
Ricardo Monagas
Director General de Uppersky
Twitter: @rmmonagas
Slideshare: http://goo.gl/GlngJ
Email: ricardo.monagas@uppersky.co