Cloud Computing: las nuevas Capas de Persistencia

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Cloud Computing: las nuevas Capas de Persistencia - Presentation Transcript

    1. Cloud Computing: Nuevas capas de persistencia
    2. El problema
    3. 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
    4. 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
    5. 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
    6. 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
    7. 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
    8. Apache CouchDB
    9. 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…)
    10. Características de CouchDB  Motor de vistas mediante Javascript o Funciones javascript que “emiten” resultados function(doc) { emit(“key”, doc); } • Se devuelven pares clave/valor donde los valores son documentos. o Se usa para implementar consultas complejas.
    11. Características de CouchDB  Motor de vistas mediante Javascript o Funciones “reduce” • Se usan para generar resultados agregados function (key, values, rereduce) { return sum(values); }
    12. 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?
    13. Características de CouchDB  Basada en Servicios Web REST o 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\"]
    14. Jugando con CouchDB  Via http://host/_utils/  Crear Base de Datos  Crear documentos  Crear Vistas
    15. Jugando con CouchDB  Accediendo a los datos: o http://host/_all_dbs : lista de Bds o http://host/blog_[nombre, apodo, nick...] : Información de la BD o http://host/blog_[nombre, apodo, nick...]/_all_docs : Lista de documentos o http://host/blog_[nombre, apodo, nick...]/[doc_id] : Información del documento
    16. Jugando con CouchDB  Creando Vistas: o Creamos una vista temporal o Podemos realizar pruebas o La almacenamos con un nombre
    17. Jugando con CouchDB  Vía programación o Lenguaje de programación capaz de realizar peticiones HTTP o Por ejemplo: PHP 5 + cURL
    18. Jugando con CouchDB  Vía programación o 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);
    19. Jugando con CouchDB  Vía programación o 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);
    20. Jugando con CouchDB  Vía programación o 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);
    21. Jugando con CouchDB  Vía programación o 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);
    22. Jugando con CouchDB  Vía programación o 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);
    23. Jugando con CouchDB  Vía programación o 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);
    24. Amazon SimpleDB
    25. Características de Amazon SimpleDB  Base de Datos Orientada a Documentos o Base de Datos => Dominio o Documento => Item o Valores => Atributos
    26. Características de Amazon SimpleDB  API basada en servicios SOAP o REST o Definición de servicios mediante WSDL o Autenticación: • Identificador de acceso + hash con una clave secreta • Certificado x.509 o Bibliotecas de desarrollo
    27. Características de Amazon SimpleDB  Escalabilidad o Posibilidad de crear varios dominios. o En manos de Amazon • Sin costes • Sin control
    28. Jugando con Amazon SimpleDB  Interfaz de acceso o Via extensión de Firefox o http://code.google.com/p/sdbtool/
    29. Jugando con Amazon SimpleDB  Vía programación o Bibliotecas de desarrollo disponibles para muchos lenguajes. o Consumo directo de SOAP. o En nuestro caso: C# .NET o http://developer.amazonwebservices.com/connect/entry.jspa?exte
    30. Jugando con Amazon SimpleDB  Vía programación o Listar Dominios ListDomainsRequest request = new ListDomainsRequest(); ListDomainsResponse response = this.cliente.ListDomains(request); response.ListDomainsResult.DomainName;
    31. Jugando con Amazon SimpleDB  Vía programación o Crear Dominios CreateDomainRequest request = new CreateDomainRequest(); request.DomainName = \"Nombre\"; CreateDomainResponse response = this.cliente.ListDomains(request); response.ListDomainsResult.DomainName;
    32. Jugando con Amazon SimpleDB  Vía programación o Obtener Items QueryRequest request = new QueryRequest(); request.DomainName = this.cbDomains.SelectedItem.ToString(); QueryResponse response = this.cliente.Query(request);
    33. Jugando con Amazon SimpleDB  Vía programación o 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);
    34. Conclusiones
    35. Conclusiones  Sobre las BBDD Orientadas a Documentos o ¿Merecen la pena? o ¿Sustitutas de BBDD Relacionales? o ¿Las usaríais en proyectos? o Problemas de CouchDB o Problemas de Amazon SimpleDB
    36. Conclusiones Dudas a docencia@davidjbrenes.info
    37. Conclusiones Estas 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/

    + David J. BrenesDavid J. Brenes, 6 months ago

    custom

    492 views, 0 favs, 0 embeds more stats

    Uno de los primeros problemas con que debemos lidia more

    More info about this document

    CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

    Go to text version

    • Total Views 492
      • 492 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 5
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories