Cloud Computing: las nuevas Capas de Persistencia
Click here to load reader
-
Upload
david-j-brenes -
Category
Technology
-
view
3.041 -
download
4
description
Transcript of Cloud Computing: las nuevas Capas de Persistencia
![Page 1: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/1.jpg)
Cloud Computing:
Nuevas capas de persistencia
![Page 2: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/2.jpg)
El problema
![Page 3: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/3.jpg)
El problema Escenario
o La Web 2.0 es todo datos• Perfiles de usuario• Mensajería• Datos de terceros (grupos musicales, libros…)• Datos emegentes (gustos)• La Web 2.0 se basa en un gran número de datos
– > 20 tweets cada 2 segundos– > 600 tweets / minuto– > 36000 tweets / hora– > 864000 tweets / dia
![Page 4: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/4.jpg)
BBDD Orientadas a Documentos Bases de Datos Relacionales
o MySQL, PostgreSQL, SQL Server, Oracle…
o Propósito más general => No dedicados a la escalabilidad
o Estructuras de datos (esquemas) más estrictas
• Más seguridad.• Más posibilidades.• Más sobrecarga.
o Funcionalidad distribuida como anexo.
Necesidad de otro tipo de capa de persistencia
![Page 5: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/5.jpg)
BBDD Orientadas a Documentos BBDD Orientadas a Documentos
Basado en la metáfora de la hoja de cálculo de Amazon
o Base de datos => Conjunto de documentos
o Documento => Conjunto de pares clave/valor
![Page 6: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/6.jpg)
BBDD Orientadas a Documentos BBDD Orientadas a Documentos
o Uso intensivo de pares clave valor:• Base de Datos = {identificador, documento}• Documento = {nombre de campo, valor de campo}
o Pueden ser vistas como tablas hash
o Pares clave valor• Muy usados en cloud computing• Un buen ejemplo: El algoritmo Map / Reduce
![Page 7: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/7.jpg)
BBDD Orientadas a Documentos BBDD Orientadas a Documentos
o Optimizadas para datos accedidos mediante clave primaria.
o Sin esquema• Más eficiente.• Menos mantenible.
o Ausencia de relaciones• Facilidad para replicación de datos• Dificultad para expresar modelos complejos
![Page 8: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/8.jpg)
Apache CouchDB
![Page 9: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/9.jpg)
Características de CouchDB Base de Datos Orientada a Documentos
o Revisiones:• Los documentos no se sobreescriben al
modificarse
• Se crean revisiones a-la SVN
• Las revisiones desaparecen (solo sirven para concurrencia)
o Adjuntos• Se pueden adjuntar documentos (jpg, txt, pdf…)
![Page 10: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/10.jpg)
Características de CouchDB
Motor de vistas mediante Javascripto Funciones javascript que “emiten” resultados
• Se devuelven pares clave/valor donde los valores son documentos.o Se usa para implementar consultas
complejas.
function(doc){ emit(“key”, doc);}
![Page 11: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/11.jpg)
Características de CouchDB
Motor de vistas mediante Javascripto Funciones “reduce”
• Se usan para generar resultados agregados
function (key, values, rereduce) {
return sum(values);}
![Page 12: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/12.jpg)
Características de CouchDB
Base de datos “distribuida”o Mecanismos para replicación de datos entre
instancias.o Usado en entornos con miles de instancias.o Diseñado desde el principio para ello.o Basado en HTTP → Escalabilidad propia de
aplicaciones web.
• Pero...o ¿Ejemplos?
![Page 13: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/13.jpg)
Características de CouchDB
Basada en Servicios Web RESTo PUT → CREATE, INSERT
o GET → SELECT
o POST → CREATE, INSERT, UPDATE
o DELETE → DELETE
o COPY, MOVE...
o Comunicación mediante JSON.• http://host/_all_dbs ["testing","blog"]
![Page 14: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/14.jpg)
Jugando con CouchDB
Via http://host/_utils/
Crear Base de Datos
Crear documentos
Crear Vistas
![Page 15: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/15.jpg)
Accediendo a los datos:o http://host/_all_dbs : lista de Bdso http://host/blog_[nombre, apodo, nick...] :
Información de la BDo http://host/blog_[nombre, apodo, nick...]/_all_docs :
Lista de documentoso http://host/blog_[nombre, apodo, nick...]/[doc_id] :
Información del documento
Jugando con CouchDB
![Page 16: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/16.jpg)
Creando Vistas:o Creamos una vista temporal
o Podemos realizar pruebas
o La almacenamos con un nombre
Jugando con CouchDB
![Page 17: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/17.jpg)
Jugando con CouchDB
Vía programacióno Lenguaje de programación capaz de realizar
peticiones HTTP
o Por ejemplo: PHP 5 + cURL
![Page 18: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/18.jpg)
Jugando con CouchDB
Vía programacióno Obtener datos$ch = curl_init("http://host/_all_dbs");curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$json = curl_exec($ch);curl_close($ch);$dbs = json_decode($json);
![Page 19: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/19.jpg)
Jugando con CouchDB
Vía programacióno Obtener datos de una vista$ch = curl_init("http://host/_view/group_by_author/authors?group=true");curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$json = curl_exec($ch);curl_close($ch);$dbs = json_decode($json);
![Page 20: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/20.jpg)
Jugando con CouchDB
Vía programacióno Grabar datos$ch = curl_init("http://host/blog/");
curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “POST”);curl_setopt($ch, CURLOPT_POSTFIELDS, '{"titulo":"prueba ", "autor":"brenes"}');$json = curl_exec($ch);curl_close($ch);$dbs = json_decode($json);
![Page 21: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/21.jpg)
Jugando con CouchDB
Vía programacióno Grabar datos$ch = curl_init("http://host/blog/");
curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “PUT”);curl_setopt($ch, CURLOPT_POSTFIELDS, '{“_id”: “1”, "titulo":"prueba ", "autor":"brenes"}');$json = curl_exec($ch);curl_close($ch);$dbs = json_decode($json);
![Page 22: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/22.jpg)
Jugando con CouchDB
Vía programacióno Actualizar datos$ch = curl_init("http://host/blog/");curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “PUT”);curl_setopt($ch, CURLOPT_POSTFIELDS, '{“id”: “1”, “_rev”: “1236EF”, "titulo":"prueba ", "autor":"brenes"}');$json = curl_exec($ch);curl_close($ch);$dbs = json_decode($json);
![Page 23: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/23.jpg)
Jugando con CouchDB
Vía programacióno Eliminar datos$ch = curl_init("http://host/blog/post_id");
curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “DELETE”);$json = curl_exec($ch);curl_close($ch);$dbs = json_decode($json);
![Page 24: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/24.jpg)
Amazon SimpleDB
![Page 25: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/25.jpg)
Características de Amazon SimpleDB
Base de Datos Orientada a Documentoso Base de Datos => Dominio
o Documento => Item
o Valores => Atributos
![Page 26: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/26.jpg)
Características de Amazon SimpleDB
API basada en servicios SOAP o RESTo Definición de servicios mediante WSDL
o Autenticación:
• Identificador de acceso + hash con una clave secreta
• Certificado x.509
o Bibliotecas de desarrollo
![Page 27: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/27.jpg)
Características de Amazon SimpleDB
Escalabilidado Posibilidad de crear varios dominios.
o En manos de Amazon
• Sin costes
• Sin control
![Page 28: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/28.jpg)
Jugando con Amazon SimpleDB
Interfaz de accesoo Via extensión de Firefox
o http://code.google.com/p/sdbtool/
![Page 29: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/29.jpg)
Jugando con Amazon SimpleDB
Vía programacióno Bibliotecas de desarrollo disponibles para
muchos lenguajes.
o Consumo directo de SOAP.
o En nuestro caso: C# .NETo http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1133
![Page 30: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/30.jpg)
Jugando con Amazon SimpleDB
Vía programacióno Listar Dominios
ListDomainsRequest request = new ListDomainsRequest();ListDomainsResponse response = this.cliente.ListDomains(request);response.ListDomainsResult.DomainName;
![Page 31: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/31.jpg)
Jugando con Amazon SimpleDB
Vía programacióno Crear DominiosCreateDomainRequest request = new CreateDomainRequest();request.DomainName = "Nombre";CreateDomainResponse response = this.cliente.ListDomains(request);response.ListDomainsResult.DomainName;
![Page 32: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/32.jpg)
Jugando con Amazon SimpleDB
Vía programacióno Obtener ItemsQueryRequest request = new QueryRequest();request.DomainName = this.cbDomains.SelectedItem.ToString();QueryResponse response = this.cliente.Query(request);
![Page 33: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/33.jpg)
Jugando con Amazon SimpleDB
Vía programacióno Todos los accesos siguen la misma
estructura[Metodo a ejecutar]Request request = new [Metodo a ejecutar]Request();[Configurar Request]
[Metodo a ejecutar]Response response = this.cliente.[Metodo a ejecutar](request);
![Page 34: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/34.jpg)
Conclusiones
![Page 35: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/35.jpg)
Conclusiones Sobre las BBDD Orientadas a
Documentoso ¿Merecen la pena?
o ¿Sustitutas de BBDD Relacionales?
o ¿Las usaríais en proyectos?
o Problemas de CouchDB
o Problemas de Amazon SimpleDB
![Page 37: Cloud Computing: las nuevas Capas de Persistencia](https://reader037.fdocuments.ec/reader037/viewer/2022100304/54bd642c4a79595e238b4637/html5/thumbnails/37.jpg)
ConclusionesEstas transparencias se publican bajo licencia Creative Commons y se pueden redistribuir o modificar bajo las siguientes condiciones:
1. Se dé reconocimiento al autor de estas transparencias.
2. No se use con propósitos comerciales.3. Se distribuya con la misma licencia.
Texto de la licencia: http://creativecommons.org/licenses/by-nc-sa/3.0/