0
Cloud Computing:
Amazon Web Services,
  Apache Hadoop y
      Widgets
Previously…
Previously…
Así que ahora…




    Fotografía publicada bajo Creative Commons por el usuario santi_martin en flickr:
     http://www.f...
¿Y ahora?




            ?
Cuando no todo es CRUDo
   Emergencia en la web 2.0
       o   Los datos puros no son lo único.
Cuando no todo es CRUDo
   Emergencia en la web 2.0
       o   Las entradas del usuario pueden
           generar cambios.
Cuando no todo es CRUDo
   Emergencia en la web 2.0
       o   Los algoritmos suelen ser costosos
Cuando no todo es CRUDo
   Emergencia en la web 2.0
     o   Normalmente se cachean los resultados
     o   Permite una m...
Los caminos de la escalada
    Hardware
     o   Mayor potencia de cálculo
     o   Escalado de una máquina (límite tecno...
Los caminos de la escalada
    Hardware
     o   Límites tecnológicos de crecimiento
     o   Complicado mantenimiento de...
Los caminos de la escalada
    Software
     o   Dificultad de programación a través de redes.
     o   Estrategia bottom...
Cloud Computing
Cloud Computing
    El nuevo paradigma de computación
     distribuida
     o   Los recursos (CPU, Disco...) se comparten...
Cloud Computing
    Computación distribuida a la Web 2.0
     o   Software as a Service
     o   Uso de tecnologías web (...
Cloud Computing
    Ejecución remota
     o   Aplicaciones completas sin apenas recursos
             Ideal para entorno...
Cloud Computing
    Ventajas
     o   Liberación de carga computacional
     o   Simplificación de infraestructura
     o...
Cloud Computing
    Inconvenientes
     o   Dependencia de la red
     o   Dependencia de terceros (caso GMail)
     o   ...
Cloud Computing
    ¿Quien habla de esto?
Cloud Computing
    ¿Quien habla de esto?




              ¿Futura Web 2.0?
Cloud Computing
    ¿Quien juega a esto?
     o   Google (Google Apps)
     o   Sun (Sun Grid, Sun Cloud)
     o   Amazon...
Amazon EC2
Amazon EC2
    ¿Qué es Amazon EC2?
     o   Infraestructura en la nube
     o   Instalación de máquinas virtuales para
  ...
Amazon EC2
    ¿Cómo conectarse a Amazon EC2?
     o   http://aws.amazon.com/ec2/
     o   AWS Management Console: https:...
Amazon EC2
    ¿Cómo dar de alta una máquina en Amazon
     EC2?
     o   Máquinas virtuales: Amazon Machine Image
     o...
Amazon EC2
    Personalización de las AMIs
     o   Se pueden crear AMIs personalizadas
     o   A partir de Máquinas Win...
Amazon EC2
    Elastic Block Store
     o   Posibilidad de crear volúmenes compartidos
         entre las instancias
    ...
Amazon EC2
    Elastic IPs
     o   Mecanismo para hacer el servicio
         independiente de la instancia
     o   Enma...
Amazon EC2
    Seguridad
     o   Creación de KeyPairs para acceso por SSH
     o   Creación de grupos de seguridad
     ...
Amazon EC2
    API
     o   Como todo Amazon Web Service tiene API
     o   Permite acceder a los recursos vistos antes
 ...
Amazon S3
Amazon S3
    ¿Qué es Amazon S3?
     o   Sistema de almacenamiento de ficheros en
         la nube
     o   Creación de ...
Amazon S3
    Conceptos
     o   Buckets
     o   Directorios
     o   Ficheros
     o   Permisos
Amazon S3
    API
     o   Como todo Amazon Web Service tiene API
     o   Permite crear/listar/actualizar/eliminar
     ...
Apache Hadoop
Apache Hadoop
    ¿Qué es Apache Hadoop?
     o   Plataforma de computación distribuida
     o   Desarrollada sobre la pl...
Apache Hadoop
    HDFS
     o   Hadoop's Distributed File System
     o   Diseñado para detección de fallos y
         re...
Apache Hadoop
    MapReduce
     o   Arquitectura de computación distribuida
     o   Mútiples implementaciones (Google,
...
Apache Hadoop
    MapReduce
                  Realiza una primera         Realiza una segunda
               computación ...
Apache Hadoop
    MapReduce
     o   No todos los problemas son aplicables a este modelo
     o   La entrada debe ser fác...
Apache Hadoop
    El Framework

                        Map    Resultados   Reduce
                              intermed...
Apache Hadoop
    El Framework
     o   InputFormat y RecordReader
         •   Juntos se encargan de dividir los datos d...
Apache Hadoop
    El Framework

                        Map    Resultados   Reduce
                              intermed...
Apache Hadoop
    El Framework
     o   Mapper
         •   Implementa la fase Map del algoritmo
         •   Se invoca e...
Apache Hadoop
    El Framework
     o   Combiner
         •   Reagrupa los resultados intermedios
         •   Reduce el ...
Apache Hadoop
    El Framework

                        Map    Resultados   Reduce
                              intermed...
Apache Hadoop
    El Framework
     o   Reducer
         •   Implementa la fase Reduce del Algoritmo
         •   Recibe ...
Apache Hadoop
    El Framework

                Map    Resultados   Reduce
                      intermedios



     Inpu...
Apache Hadoop
    El Framework
     o   JobConf
         •   Configuración del trabajo distribuido
         •   Permite e...
Apache Hadoop
    El Framework
     o   Tool
         •   Crea las configuraciones de trabajos
         •   Permite crear...
Apache Hadoop
    El Framework… ¿Y si no quiero Java?
     o   Modo Streaming
         •   Permite usar lenguajes “de scr...
Apache Hadoop
    Creando un cluster
     1.       Preparando todas las máquinas
          o      Instalar soporte para H...
Apache Hadoop
    Creando un cluster
     1.       Configurando el cluster
          o      NameNode: Nodo encargado de g...
Apache Hadoop
    Creando un cluster
     1.       Configurando el cluster
          o      Hadoop-site.xml

     <proper...
Apache Hadoop
    Creando un cluster
     1.       Configurando el cluster
          o      Hadoop-site.xml

     <proper...
Apache Hadoop
    Creando un cluster
     1.       Configurando el cluster
          o      masters / slaves: ficheros en...
Apache Hadoop
    Creando un cluster
     1.       Iniciar el cluster
          o       bin/start-all.sh
Amazon Map/Reduce
Amazon Map/Reduce
    Storm Computing

                       EC2

       Hadoop                S3
Amazon Map/Reduce
    Storm Computing

                       EC2

       Hadoop                       S3

              ...
Amazon Map/Reduce
    Falta de acoplamiento
     o   Amazon EC2 incorpora la infraestructura
         necesaria
     o   ...
Amazon Map/Reduce
    ¿Qué es Amazon Map/Reduce?
     o   Servicio Web de Amazon para implementar
         algoritmos Map...
Amazon Map/Reduce
    ¿Cómo funciona Amazon Map/Reduce?
     1.       Configurando la entrada y la salida
          o    ...
Amazon Map/Reduce
     ¿Cómo funciona Amazon Map/Reduce?
      1.       Cargando el algoritmo
           o      Hay que c...
Amazon Map/Reduce
    ¿Cómo funciona Amazon Map/Reduce?
     1.       Creamos el trabajo
          o      En la AWS Conso...
Amazon Map/Reduce
    ¿Cómo funciona Amazon Map/Reduce?
     1.       Creamos las instancias
          o      Elegimos nú...
Amazon Map/Reduce
    ¿Cómo funciona Amazon Map/Reduce?
     1.       Ejecutamos
          o      Ventana de Estado en la...
Widgets
Widgets
    ¿Dónde está la nube?
Widgets
    ¿Dónde está la nube?
Widgets
    ¿Que perciben los usuarios?
     o Las revoluciones
       deben afectar a los
       usuarios

     o Percep...
Widgets
  Cloud Computing para los usuarios
   o Mayor uso de servicios alojados en la web

   o Mayor interconexión entr...
Widgets
  Cloud Computing para los usuarios
Widgets
  Cloud Computing para los usuarios




                        Widget
Widgets
  ¿Qué es un Widget?
 portable chunk of code that can be installed and executed within any
   separate HTML-based...
Widgets
  Plataformas de Widgets
   o Aplicaciones web específicas para ejecución de Widgets

   o API de desarrollo

   ...
Google Gadgets
  Google Gadget
   o Plataforma de Widgets de Google

   o Distribución por Orkut, Google Desktop o iGoogl...
Google Gadgets
  Hello World!

    <?xml version=quot;1.0quot; encoding=quot;UTF-8quot; ?>
    <Module>
      <ModulePref...
Google Gadgets
  Content
   o Sección central del widget

   o Opción 1: Implementar vista y lógica con HTML y
     Javas...
Google Gadgets
  Obteniendo datos
       gadgets.io.makeRequest(url, response, params);


   o Realiza petición a una URL...
Google Gadgets
  Obteniendo datos
   o Tipos de datos esperados

       • Text: gadgets.io.ContentType.TEXT

       • Dom...
Google Gadgets
  Obteniendo datos
    o Tipos de datos esperados

        • Text: gadgets.io.ContentType.TEXT

        • ...
Google Gadgets
  Obteniendo datos
  <script type=quot;text/javascriptquot;>
    function consultarDBs(){
       var param...
Google Gadgets
  ¡¡¡¡ gagdets.io is not defined !!!!
    o Parte del nuevo API de Google Gadget

    o Aún no soportado p...
Google Gadgets
  Enviando información

   o Método de petición como parámetro de la
     Request
  <script type=quot;text...
Google Gadgets
  Enviando información

   o Métodos de generación de JSON:

  var data = {};

  data['title'] = “sacando ...
Google Gadgets
  Actualizando la información

   o Google optimiza los gadgets a través de la
     caché

   o Para evita...
Google Gadgets
  Vistas

   o Los contenedores suelen tener distintas vistas
     para los Gadgets

   o iGoogle posee: “...
Google Gadgets
  Vistas
  <?xml version=quot;1.0quot; encoding=quot;UTF-8quot; ?>
  <Module>
    <ModulePrefs title=quot;...
Google Gadgets
  Vistas

   o Se puede cambiar de vista desde código


 var vistas = gadgets.views.getSupportedViews();

...
Conclusiones
Conclusiones
    Sobre el Cloud Computing
     o   ¿Compensa?
     o   ¿Mera reformulación de la computación
         dis...
Conclusiones


         Dudas y comentarios a
       docencia@davidjbrenes.info
Conclusiones
 Estas transparencias se publican bajo licencia
 Creative Commons y se pueden redistribuir o
 modificar bajo l...
Upcoming SlideShare
Loading in...5
×

Cloud Computing: Algoritmos en la Nube

2,435

Published on

Algunos algoritmos de la Web 2.0 exigen una capacidad de cálculo que no todos los servidores pueden proporcionar.

¿Qué posibilidades hay ahora mismo para ejecutar algoritmos de manera distribuida? ¿Y para montar una infraestructura de ordenadores?

¿Podríamos instalar nuestras aplicaciones en plataformas web? ¿Podríamos llegar a más usuarios?

Estas transparencias están basadas en unas confeccionadas por mi para un curso sobre Cloud Computing.

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

No Downloads
Views
Total Views
2,435
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
148
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Cloud Computing: Algoritmos en la Nube"

  1. 1. Cloud Computing: Amazon Web Services, Apache Hadoop y Widgets
  2. 2. Previously…
  3. 3. Previously…
  4. 4. Así que ahora… Fotografía publicada bajo Creative Commons por el usuario santi_martin en flickr: http://www.flickr.com/photos/santi_martin/2944882285/
  5. 5. ¿Y ahora? ?
  6. 6. Cuando no todo es CRUDo  Emergencia en la web 2.0 o Los datos puros no son lo único.
  7. 7. Cuando no todo es CRUDo  Emergencia en la web 2.0 o Las entradas del usuario pueden generar cambios.
  8. 8. Cuando no todo es CRUDo  Emergencia en la web 2.0 o Los algoritmos suelen ser costosos
  9. 9. Cuando no todo es CRUDo  Emergencia en la web 2.0 o Normalmente se cachean los resultados o Permite una mayor separación de capas o Alivia la carga al ejecutarse una sola vez o Presenta problemas de actualización o Cacheando solo parte (Google, la Wikipedia y otros RSS)
  10. 10. Los caminos de la escalada  Hardware o Mayor potencia de cálculo o Escalado de una máquina (límite tecnológico) o Granjas de servidores (dificultades lógicas)  Software o Necesidades especiales o Aprovechamiento del multiprocesador o Aprovechamiento de las redes
  11. 11. Los caminos de la escalada  Hardware o Límites tecnológicos de crecimiento o Complicado mantenimiento de instalaciones o Dispositivos no triviales (SANs, gestión avanzada de redes, equipos con características especiales…) o Dificultades de administración o Costes de almacenaje y acondicionamiento. o Resistencia a fallos.
  12. 12. Los caminos de la escalada  Software o Dificultad de programación a través de redes. o Estrategia bottom-up: • División del problema • Composición de las soluciones o Deformación del uniproceso. o Dificultad de mantenimiento. o Registro de errores
  13. 13. Cloud Computing
  14. 14. Cloud Computing  El nuevo paradigma de computación distribuida o Los recursos (CPU, Disco...) se comparten a traves de Internet. o Virtualización de dispositivos o Desarrollo de estrategias de tolerancia a fallos o Independencia de plataforma
  15. 15. Cloud Computing  Computación distribuida a la Web 2.0 o Software as a Service o Uso de tecnologías web (SOAP, Rest, Ajax...) estándar o Minimización de soluciones ad-hoc o Mezcla de diversos servicios o Trabajo en entornos heterogéneos
  16. 16. Cloud Computing  Ejecución remota o Aplicaciones completas sin apenas recursos  Ideal para entornos RIA (Air, XUL...)  Widgets  El caso Spotify o Ideal para dispositivos móviles (iPhone, Android...) o Actualizaciones instantáneas o Independencia de localización
  17. 17. Cloud Computing  Ventajas o Liberación de carga computacional o Simplificación de infraestructura o Ahorro de costes o Persistencia de servicios (datos, aplicaciones) o Independencia de localización o Facilidad de adopción de aplicaciones
  18. 18. Cloud Computing  Inconvenientes o Dependencia de la red o Dependencia de terceros (caso GMail) o Falta de control (polémica Facebook) o Riesgos de seguridad
  19. 19. Cloud Computing  ¿Quien habla de esto?
  20. 20. Cloud Computing  ¿Quien habla de esto? ¿Futura Web 2.0?
  21. 21. Cloud Computing  ¿Quien juega a esto? o Google (Google Apps) o Sun (Sun Grid, Sun Cloud) o Amazon (Amazon Web Services: EC2, S3, SimpleDB...) o Microsoft (Azure) o Apache (CouchDB, Hadoop) o Yahoo! (Open Social, Pipes, Y!OS)
  22. 22. Amazon EC2
  23. 23. Amazon EC2  ¿Qué es Amazon EC2? o Infraestructura en la nube o Instalación de máquinas virtuales para ejecución de procesos o Total control de administración sobre la máquina virtual remota o Amazon proporciona los servicios de escalabilidad y fiabilidad del servicio
  24. 24. Amazon EC2  ¿Cómo conectarse a Amazon EC2? o http://aws.amazon.com/ec2/ o AWS Management Console: https:// console.aws.amazon.com/ o Versión Beta de una interfaz central de administración para AWS
  25. 25. Amazon EC2  ¿Cómo dar de alta una máquina en Amazon EC2? o Máquinas virtuales: Amazon Machine Image o Lanzamos una nueva instancia o Seleccionamos la imagen o Plataforma. o Número de instancias o Capacidad de la máquina o Keypair a usar
  26. 26. Amazon EC2  Personalización de las AMIs o Se pueden crear AMIs personalizadas o A partir de Máquinas Windows o Facilidad para crear máquinas replicadas
  27. 27. Amazon EC2  Elastic Block Store o Posibilidad de crear volúmenes compartidos entre las instancias o Se comportan como un disco normal • Formatear • Montar/Desmontar • RAID o Se pueden crear copias de seguridad
  28. 28. Amazon EC2  Elastic IPs o Mecanismo para hacer el servicio independiente de la instancia o Enmascaran el acceso a una máquina mediante una IP pública o Facilidad para recuperación de errores y alta disponibilidad
  29. 29. Amazon EC2  Seguridad o Creación de KeyPairs para acceso por SSH o Creación de grupos de seguridad o Tipo de conexión o Ancho de banda
  30. 30. Amazon EC2  API o Como todo Amazon Web Service tiene API o Permite acceder a los recursos vistos antes o Permite crear aplicaciones de gestión o ¿Ausencia de interfaz de administración?
  31. 31. Amazon S3
  32. 32. Amazon S3  ¿Qué es Amazon S3? o Sistema de almacenamiento de ficheros en la nube o Creación de carpetas o Subida de ficheros o Análogo al FTP
  33. 33. Amazon S3  Conceptos o Buckets o Directorios o Ficheros o Permisos
  34. 34. Amazon S3  API o Como todo Amazon Web Service tiene API o Permite crear/listar/actualizar/eliminar buckets, directorios, ficheros… o ¿Ausencia de interfaz de administración?  Otros accesos o HTTP o Protocolo s3
  35. 35. Apache Hadoop
  36. 36. Apache Hadoop  ¿Qué es Apache Hadoop? o Plataforma de computación distribuida o Desarrollada sobre la plataforma Java o “Implementación” open-source basada en: • Google FileSystem • Google MapReduce
  37. 37. Apache Hadoop  HDFS o Hadoop's Distributed File System o Diseñado para detección de fallos y recuperación automática o Acceso a modo streaming o Soporte para grandes conjuntos de datos. o Optimizado para lecturas o Multiplataforma
  38. 38. Apache Hadoop  MapReduce o Arquitectura de computación distribuida o Mútiples implementaciones (Google, Hadoop, CouchDB, Facebook Hive…) o Basado en la estrategia dividir-vencer
  39. 39. Apache Hadoop  MapReduce Realiza una primera Realiza una segunda computación devolviendo computación sobre esos resultados intermedios resultados intermedios Map Resultados Reduce intermedios Input Output Ficheros [K1, V1] [K2, V2] [K3, V3] Ficheros
  40. 40. Apache Hadoop  MapReduce o No todos los problemas son aplicables a este modelo o La entrada debe ser fácilmente divisible o Los resultados deben poder ser agregados  CouchDB y MapReduce o ¿Se reconoce la estructura? o Map: Obtener los resultados o Reduce: Realizar operaciones sobre los resultados intermedios
  41. 41. Apache Hadoop  El Framework Map Resultados Reduce intermedios Input Output Ficheros [K1, V1] [K2, V2] [K3, V3] Ficheros
  42. 42. Apache Hadoop  El Framework o InputFormat y RecordReader • Juntos se encargan de dividir los datos de entrada • Devuelven registros • Especifican los tipos de las claves y valores de entrada al algoritmo Map
  43. 43. Apache Hadoop  El Framework Map Resultados Reduce intermedios Input Output Ficheros [K1, V1] [K2, V2] [K3, V3] Ficheros
  44. 44. Apache Hadoop  El Framework o Mapper • Implementa la fase Map del algoritmo • Se invoca el método “map” una vez por cada registro (Record) • Recibe pares clave/valor del tipo especificado por el RecordReader • Devuelve pares clave/valor de nuevos tipos
  45. 45. Apache Hadoop  El Framework o Combiner • Reagrupa los resultados intermedios • Reduce el tamaño de los datos a enviar de una fase a otra al ejecutar operaciones para agrupar los resultados • Dependiendo del problema no resulta viable • Envía los resultados agregados a la fase Reduce
  46. 46. Apache Hadoop  El Framework Map Resultados Reduce intermedios Input Output Ficheros [K1, V1] [K2, V2] [K3, V3] Ficheros
  47. 47. Apache Hadoop  El Framework o Reducer • Implementa la fase Reduce del Algoritmo • Recibe pares clave/valor del tipo especificado por la fase Map • Devuelve pares clave/valor de nuevos tipos
  48. 48. Apache Hadoop  El Framework Map Resultados Reduce intermedios Input Output
  49. 49. Apache Hadoop  El Framework o JobConf • Configuración del trabajo distribuido • Permite especificar Mappers, Reducers, InputFormats… • Permite especificar opciones ad-hoc
  50. 50. Apache Hadoop  El Framework o Tool • Crea las configuraciones de trabajos • Permite crear más de un trabajo distribuido
  51. 51. Apache Hadoop  El Framework… ¿Y si no quiero Java? o Modo Streaming • Permite usar lenguajes “de script” (PHP, Python, Ruby…) • Especificamos un Mapper y un Reducer • Los datos se pasan a los scripts, que se ejecutan
  52. 52. Apache Hadoop  Creando un cluster 1. Preparando todas las máquinas o Instalar soporte para Hadoop o Copiar algoritmos necesarios o Modificar hadoop-env.sh: Indicar JAVA_HOME
  53. 53. Apache Hadoop  Creando un cluster 1. Configurando el cluster o NameNode: Nodo encargado de gestionar el sistema de ficheros distribuido de Apache o JobTracker: Nodo encargado de gestionar los trabajos pendientes
  54. 54. Apache Hadoop  Creando un cluster 1. Configurando el cluster o Hadoop-site.xml <property> <name>fs.default.name</name> <value>hdfs://{{IP del NameNode}}:{{Puerto del NameNode}}</value> <description>La URI del sistema de ficheros. </description> </property>
  55. 55. Apache Hadoop  Creando un cluster 1. Configurando el cluster o Hadoop-site.xml <property> <name>mapred.job.tracker</name> <value>{{IP del JobTracker}}:{{Puerto del JobTracker}}</value> <description>El host y el puerto donde correra el jobTracker. </description> </property>
  56. 56. Apache Hadoop  Creando un cluster 1. Configurando el cluster o masters / slaves: ficheros en que se indican maestros y esclavos
  57. 57. Apache Hadoop  Creando un cluster 1. Iniciar el cluster o bin/start-all.sh
  58. 58. Amazon Map/Reduce
  59. 59. Amazon Map/Reduce  Storm Computing EC2 Hadoop S3
  60. 60. Amazon Map/Reduce  Storm Computing EC2 Hadoop S3 Amazon Map/Reduce
  61. 61. Amazon Map/Reduce  Falta de acoplamiento o Amazon EC2 incorpora la infraestructura necesaria o Apache Hadoop nos proporciona un framework para desarrollar algoritmos para procesar grandes conjuntos de datos o Amazon S3 nos permite almacenar grandes cantidades de ficheros asegurando la disponibilidad
  62. 62. Amazon Map/Reduce  ¿Qué es Amazon Map/Reduce? o Servicio Web de Amazon para implementar algoritmos Map/Reduce o Nos permite crear trabajos de Apache Hadoop que operen sobre datos de Amazon S3, en instancias de Amazon EC2.
  63. 63. Amazon Map/Reduce  ¿Cómo funciona Amazon Map/Reduce? 1. Configurando la entrada y la salida o Cargamos los datos de entrada en Amazon S3 o Cargamos el algoritmo en Amazon S3 o Creamos el directorio de salida en Amazon S3
  64. 64. Amazon Map/Reduce  ¿Cómo funciona Amazon Map/Reduce? 1. Cargando el algoritmo o Hay que compilar nuestro algoritmo en un .jar javac -classpath ${HADOOP_HOME}/hadoop-${HADOOP_VERSION}- core.jar -d output_directory WordCount.java jar -cvf output_file.jar -C output_directory/ .
  65. 65. Amazon Map/Reduce  ¿Cómo funciona Amazon Map/Reduce? 1. Creamos el trabajo o En la AWS Console o “Create new Job Flow ” o Elegimos el tipo de algoritmo o Elegimos la entrada y la salida
  66. 66. Amazon Map/Reduce  ¿Cómo funciona Amazon Map/Reduce? 1. Creamos las instancias o Elegimos número de instancias o Elegimos tipo de instancias
  67. 67. Amazon Map/Reduce  ¿Cómo funciona Amazon Map/Reduce? 1. Ejecutamos o Ventana de Estado en la AWS Console o Salida en directorios de Amazon S3
  68. 68. Widgets
  69. 69. Widgets  ¿Dónde está la nube?
  70. 70. Widgets  ¿Dónde está la nube?
  71. 71. Widgets  ¿Que perciben los usuarios? o Las revoluciones deben afectar a los usuarios o Percepción indirecta (mejores servicios) o ¿Percepción directa?
  72. 72. Widgets  Cloud Computing para los usuarios o Mayor uso de servicios alojados en la web o Mayor interconexión entre servicios o Acceso ubicuo o Difuminar el acceso a la siguiente capa: • ¿Quién se conecta? • ¿Cuando? • ¿A donde?
  73. 73. Widgets  Cloud Computing para los usuarios
  74. 74. Widgets  Cloud Computing para los usuarios Widget
  75. 75. Widgets  ¿Qué es un Widget? portable chunk of code that can be installed and executed within any separate HTML-based web page by an end user without requiring additional compilation. - Wikipedia o Facilidad de instalacion o Uso de Servicios Web y Ajax para interacción con el widget o Dependencia de la aplicación de terceros o Nosotros somos la nube
  76. 76. Widgets  Plataformas de Widgets o Aplicaciones web específicas para ejecución de Widgets o API de desarrollo o Funciones sociales para ordenación y filtrado de Widgets o Ejemplos: • DockBar • Netvibes • iGoogle • Blogger
  77. 77. Google Gadgets  Google Gadget o Plataforma de Widgets de Google o Distribución por Orkut, Google Desktop o iGoogle o Publicables en cualquier página web. o Mllones de potenciales usuarios o Desarrollo con HTML y Javascipt o API: http://code.google.com/intl/en/apis/gadgets/docs/dev_gui de.html
  78. 78. Google Gadgets  Hello World! <?xml version=quot;1.0quot; encoding=quot;UTF-8quot; ?> <Module> <ModulePrefs title=quot;hello world examplequot; /> <Content type=quot;htmlquot;> <![CDATA[ Hello, world! ]]> </Content> </Module> o ModulePrefs: Datos sobre el widget o <![CDATA[ ----- contenido ------ ]]>
  79. 79. Google Gadgets  Content o Sección central del widget o Opción 1: Implementar vista y lógica con HTML y Javascript (<content type=”html”>) <Content type=quot;htmlquot;><![CDATA[ contenido ]]></Content> o Opción 2: Implementar vista y lógica en una aplicación web en un servidor y enlazar a ella (<content type=”url” href=”...”>) <Content type=“url“ href=“…” />
  80. 80. Google Gadgets  Obteniendo datos gadgets.io.makeRequest(url, response, params); o Realiza petición a una URL o Se ejecuta un callback tras la petición donde se procesan los resultados. function response(obj) o obj.data = Datos parseados o obj.errors = Errores o obj.text = Texto de la respuesta
  81. 81. Google Gadgets  Obteniendo datos o Tipos de datos esperados • Text: gadgets.io.ContentType.TEXT • Dom: gadgets.io.ContentType.DOM • Json: gadgets.io.ContentType.JSON • Feed: gadgets.io.ContentType.FEED o Influyen en el parseo de la respuesta
  82. 82. Google Gadgets  Obteniendo datos o Tipos de datos esperados • Text: gadgets.io.ContentType.TEXT • Dom: gadgets.io.ContentType.DOM • Json: gadgets.io.ContentType.JSON • Feed: gadgets.io.ContentType.FEED o Influyen en el parseo de la respuesta
  83. 83. Google Gadgets  Obteniendo datos <script type=quot;text/javascriptquot;> function consultarDBs(){ var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON; var url = quot;http://host/_all_dbsquot;; gadgets.io.makeRequest(url, cargarDBs, params); } function cargarDBs(obj){ var html = quot;<ul>quot;; for (var key in obj.data) { html += quot;<li>quot;+ obj.data[key] + quot;</li>quot;; } document.getElementById('dbs').innerHTML = html; } </script>
  84. 84. Google Gadgets  ¡¡¡¡ gagdets.io is not defined !!!! o Parte del nuevo API de Google Gadget o Aún no soportado por iGoogle • Soportado por otros: http:// wiki.opensocial.org/index.php?title=Cross- container_Development#Containers o Disponible en el sandbox de desarrollo: http:// www.google.com/ig/sandbox
  85. 85. Google Gadgets  Enviando información o Método de petición como parámetro de la Request <script type=quot;text/javascriptquot;> function sendData(data){ var params = {}; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST; params[gadgets.io.RequestParameters.POST_DATA] = data; var url = quot;http://host/_all_dbsquot;; gadgets.io.makeRequest(url, callback, params); } function callback(obj){...} </script>
  86. 86. Google Gadgets  Enviando información o Métodos de generación de JSON: var data = {}; data['title'] = “sacando datos a JSON”; gadgets.json.stringify(data) {quot;titlequot;:“Sacando datos a JSONquot;}
  87. 87. Google Gadgets  Actualizando la información o Google optimiza los gadgets a través de la caché o Para evitarlo podemos modificar la URL con parámetros extra o Problemas con algunos Servicios REST (CouchDB, por ejemplo)
  88. 88. Google Gadgets  Vistas o Los contenedores suelen tener distintas vistas para los Gadgets o iGoogle posee: “home” (pequeño) y “canvas” (grande) o Se pueden especificar contenidos para distintas vistas.
  89. 89. Google Gadgets  Vistas <?xml version=quot;1.0quot; encoding=quot;UTF-8quot; ?> <Module> <ModulePrefs title=quot;Multiple Views Demoquot;> <Require feature=quot;opensocial-0.8quot; /> </ModulePrefs> <Content type=quot;htmlquot; view=quot;homequot;> <![CDATA[ Esto en pequeño ]]> </Content> <Content type=quot;htmlquot; view=quot;canvasquot;> <![CDATA[ Esto en grande ]]> </Content> </Module>
  90. 90. Google Gadgets  Vistas o Se puede cambiar de vista desde código var vistas = gadgets.views.getSupportedViews(); gadgets.views.requestNavigateTo(vistas[vista_deseada]);
  91. 91. Conclusiones
  92. 92. Conclusiones  Sobre el Cloud Computing o ¿Compensa? o ¿Mera reformulación de la computación distribuida? o ¿Uso empresarial de Gadgets? o Problemas de Amazon EC2 o Problemas de Hadoop o Problemas de Google Gadget
  93. 93. Conclusiones Dudas y comentarios a docencia@davidjbrenes.info
  94. 94. 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/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×