CouchDB y el desarrollo de aplicaciones Android

1,767 views

Published on

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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,767
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
36
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

CouchDB y el desarrollo de aplicaciones Android

  1. 1. CouchDB y el desarrollo de aplicaciones Android Ricardo Monagas
  2. 2. Contenido 1. Big Data 2. NoSQL 3. CouchDB 4. CouchDB & Android 5. Casos de Éxito 6. Enlaces de interés
  3. 3. 2012DATA
  4. 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
  5. 5. Voldemort NoSQLCouchDB BigTable Amazon DynamoDB
  6. 6. CouchDBDocumentos JSON Javascript para peticiones MapReduce HTTP para formar un API
  7. 7. 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” …}
  8. 8. 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); }“ }}}
  9. 9. ¿Por qué NoSQL y CouchDB? Los datos de la vida real son almacenados en documentosAlmacenamiento de la aplicación completa
  10. 10. ¿Por qué NoSQL y CouchDB?Diseño sin esquemas rígidos Fácil administración, backup, replicación y trabajo offline
  11. 11. CouchDB = Relax
  12. 12. CouchDB & Android Instalación Couchbase Fuente: https://github.com/couchbase/Android-Couchbase
  13. 13. CouchDB & Android Instalación Ektorp Fuente: https://github.com/helun/Ektorp
  14. 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. 15. CouchDB & Android Inicialización de CouchDB 2. Declaración de Servicio para Couchbase private ServiceConnection couchServiceConnection;
  16. 16. CouchDB & Android Inicialización de CouchDB 3. Método de Inicio de Couchbasepublic void startCouchbase() { CouchbaseMobile couch = new CouchbaseMobile(getBaseContext(), mCallback); couchServiceConnection = couch.startCouchbase();}
  17. 17. CouchDB & Android Inicialización de CouchDB 3. Llamada al método startCouchbasepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... startCouchbase();}
  18. 18. 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();}
  19. 19. CouchDB & Android Inicialización de Ektorp 2. Conexión con el servidor de CouchDBCouchDbInstance dbInstance = new StdCouchDbInstance(httpClient);CouchDbConnector db = new StdCouchDbConnector("mydatabase", dbInstance);db.createDatabaseIfNotExists();
  20. 20. CouchDB & Android Manejo de la Base de Datos 1. Creación de Documento de Comprapublic class Compra extends CouchDbDocument { private int id; private double total; private List<Producto> productos; …}
  21. 21. CouchDB & Android Manejo de la Base de Datos 2. CRUD para los documentos de Comprapublic class CompraRepository extends CouchDbRepositorySupport<Compra> { public CompraRepository(CouchDbConnector db) { super(Compra.class, db); }}
  22. 22. CouchDB & Android Manejo de la Base de Datos 3. Ejemplos de manipulación de BDcompraRepository = new CompraRepository (couchDbConnector);Compra c = compraRepository.get(id); // Lectura de Compra por IDcouchDbConnector.create( c ); // Creación de documento de CompracompraRepository.update( c ); // Actualización de documento de CompracouchDbConnector.delete( c ); // Eliminación de documento de Compra
  23. 23. CouchDB & Android Manejo de la Base de Datos 4. Peticiones en CouchDBViewQuery query = new ViewQuery() .designDocId("_design/Compra") .viewName(“por_fecha_compra") .key(“31-01-2013");List<Compra> compras = db.queryView(query, Compra.class);
  24. 24. Casos de Éxito
  25. 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. 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

×