DESARROLLO WEB EN ENTORNO SERVIDOR CAPÍTULO 9: Desarrollo de aplicaciones Web híbridas Marcos López Sanz Juan Manuel Vara Mesa Jenifer Verde Marín Diana Marcela Sánchez Fúquene Jesús Javier Jiménez Hernández Valeria de Castro Martínez
Aplicación Web híbrida Es una página o aplicación Web que utiliza contenidos o servicios de terceros y los combina para crear una aplicación Web nueva. También llamada mashup. 2
Reutilización de código e información Las aplicaciones Web híbridas son accedidas a través de una interfaz pública o usando una API. El concepto de mashup implica una integración fácil y rápida. Ejemplos: YouTube, Google, Flickr ofrecen mashups para integrar sus servicios con otras aplicaciones Web. 3
Reutilización de código e información Incluir código embebido en una aplicación Web NO la convierte en una aplicación Web híbrida. Para considerarse una aplicación Web híbrida esta debe acceder a la información externa o procesar los datos que nos ofrece el servicio para ofrecer un valor añadido al usuario. 4
Arquitectura de una aplicación Web híbrida Consta de tres partes: o Proveedor de contenidos. o Servidor de la aplicación Web. o Cliente Web. 5
Arquitectura de una aplicación Web híbrida Proveedor de contenidos: es la fuente de datos. Se accede a ellos a través de un interfaz pública o una API y con diferentes protocolos (RSS, Atom, Screen scraping). o RSS (Really Simple Syndication): tecnología basada en una estructura XML que permite compartir contenidos de una Web determinada. Distribuye contenidos de una Web sin necesitar un navegador. 6
Arquitectura de una aplicación Web híbrida o Atom: tecnología basada en XML que permite compartir contenidos de una Web determinada. A diferencia de RSS puede contener más información, siendo esta más compleja y consistente. Esto conlleva un mayor grado de dificultad asociada a esta tecnología. 7
Arquitectura de una aplicación Web híbrida o Screen scraping: accede a la página del proveedor a través de ingeniería inversa y procesa el contenido HTML recopilando la información deseada. Extrae la información en forma de texto y también de forma gráfica. Esta en desuso debido a los siguiente inconvenientes que presenta: No todas las Webs autorizan su uso. Complejidad. Sobrecarga de los servidores. Propensión a fallos inesperados. 8
Arquitectura de una aplicación Web híbrida o API: es un conjunto de funciones y procedimientos que ofrecen una biblioteca para utilizar otro software. Presenta las siguientes ventajas: Pertenece al proveedor por tanto existe un acuerdo entre el proveedor y el cliente. Sencillo y documentado. El proveedor dispone de servidores específicos para este servicio otorgándole robustez y una gestión de errores adecuada. 9
Arquitectura de una aplicación Web híbrida o Elementos de una arquitectura mashup con API: 10
Arquitectura de una aplicación Web híbrida Servidor del mashup: es la aplicación Web que provee un nuevo servicio utilizando diferentes fuentes de información de las que no es dueño. Cliente Web: es la interfaz de usuario del mashup. 11
Comunicación en la arquitectura mashup Formas de acceder a una página Web híbrida o a un proveedor de contenidos: 1. El usuario accede directamente al contenido que ofrece el proveedor. El contenido se mezcla en el cliente a través de Javascript. 2. Acceso al proveedor desde el sitio Web del mashup. El contenido se mezcla en el servidor de aplicaciones y después se envía al navegador Web del cliente. 12
Comunicación en la arquitectura mashup 3. El usuario accede al servidor de páginas híbridas desde el navegador. 13
Categorías de mashup Masups de mapas: muestran información sobre un mapa o imagen satélite. Se utilizan en aplicaciones Web en las que es necesario precisar la situación de algo. 14
Masups de mapas: Categorías de mashup 15
Categorías de mashup Mashups de fotos y videos: generan el contenido a partir de servidores Web que almacenan grandes cantidades de fotografías y vídeos. El proveedor de contenidos permite realizar tareas sobre ellas como: editar, ordenar, coleccionar, compartir, etc. 16
Categorías de mashup Mashups de fotos y vídeos: 17
Categorías de mashup Mashups de compras: permite realizar búsquedas de las mejores ofertas comerciales. 18
Categorías de mashup Mashups de noticias: seleccionan fuentes de noticias a través de los protocolos RSS y Atom. Existe la posibilidad de agrupar noticias según ciertos parámetros de preferencias del usuario. 19
Categorías de mashup Mashups de noticias: 20
Repositorios UDDI UDDI proporciona un método estandarizado para la publicación y descubrimiento de información sobre servicios Web. Para publicar un servicio hay que: o Buscar un servicio de directorio. Ubicar el servicio Web XML en el UDDI o en otro servicio de directorio. 21
Servicio de directorio Los directorios de servicios Web XML, proporcionan una ubicación centralizada en la que los proveedores pueden publicar información acerca de sus servicios Web. La especificación UDDI define un medio estándar para publicar y descubrir información acerca de los servicios Web XML. 22
Servicio de directorio Los esquemas de los que dispone UDDI en XML definen cuatro tipos de informaciones que permiten a un programador utilizar servicios Web publicados. Estos tipos son: o o o o Información comercial. Información de servicios. Información de enlace. Información de la especificación del servicio. 23
Servicio de directorio El cliente ubica un servicio Web XML en un servicio de directorio UDDI. Cuando este está ubicado se asocia una dirección URL al documento de descubrimiento. 24
Descubrimiento de un servicio Consiste en localizar o descubrir uno o varios documentos relacionados que describen un servicio Web XML. Para descubrir estos servicios se utiliza el documento de descubrimiento de servicios Web (archivo.disco). Un documento de descubrimiento es un documento XML que contiene vínculos (URLs) a otros recursos que describen al servicio Web XML. De esta forma se permite el descubrimiento mediante programación de un servicio Web XML. 25
Descubrimiento de un servicio A través del proceso de descubrimiento, los clientes del servicio Web XML, obtienen la información de que un servicio Web XML existe y el sitio Web donde se puede buscar el documento de descripción del servicio Web XML (WSDL). 26
Descubrimiento de un servicio El cliente solicita el documento de descubrimiento de un servicio Web. Una vez se ha solicitado el servidor devuelve al cliente este documento. Puede existir un sitio para la descripción del servicio y otro para el descubrimiento. Existen casos en los que el uso del servicio Web es privado y no existe un medio público para buscarlo. 27
Descripción de un servicio La descripción de un servicio, está escrito con una gramática XML a la cual se la denomina WSDL (Lenguaje de descripción de servicios Web). Este documento define el formato de los mensajes comprensible para el servicio Web XML y sirve como acuerdo entre el proveedor del servicio y el cliente que consume el servicio. 28
Descripción de un servicio 29
Formato de conexión de un servicio Los servicios se pueden comunicar utilizando: o HTTP: dentro de este protocolo existe el protocolo que envía las variables a través de la URL (GET) y el que las envía en oculto (POST). Estos protocolos envían pares de parámetros, nombre y valor, junto con la solicitud asociada. o SOAP: es un protocolo simple y ligero basado en XML. Sirve para intercambiar información estructurada y de tipos. Define un marco para la mensajería que excluye del mensaje la semántica de la aplicación y el transporte. Por esta razón se puede implementar este protocolo con diferentes métodos de transporte. Este protocolo es muy modular y extensible. 30
Formato de conexión de un servicio 31
API Es una interfaz de programación de aplicaciones. Permite la comunicación con una aplicación externa. Provee de métodos para poder realizar las tareas para las que está programada y el acceso a ellos desde una aplicación cliente. 32
API Las API s dependen del lenguaje, responden a una sintaxis y unos elementos del lenguaje en particular. Es deseable que los métodos de la API puedan ser llamados por el mayor número de lenguajes posibles, sobre todo si la API no está vinculada a un sistema especifico. 33
Sindicación Consiste en el reenvío de contenidos desde el origen de los datos hasta un destinatario, que a su vez puede convertirse en nuevo emisor de esos contenidos. Surge la necesidad de crear nuevas páginas que agrupen contenidos de diferentes páginas. La nueva página Web será un mashup o página Web hibrida. 34
Sindicación 35
Fuente Web o Canal Web La sindicación consiste en la distribución de contenidos de un portal de internet. De esta forma es posible seleccionar parte de información de una página Web y ponerla a disposición de otros portales o clientes finales. Para ofrecer el contenido se hace uso de una fuente Web, que provee los datos a la página de destino. 36
Fuente Web o Canal Web Una fuente Web es el medio de redifusión de contenido Web. RSS y Atom son el formato que adopta dicha fuente Web. Contienen la información necesaria para poder visualizar el contenido. Los items que suelen tener las fuentes Web son: el titulo, un resumen del contenido, un enlace para ampliar la información y una fecha de publicación. 37
Beneficios de la sindicación El ahorro de tiempo es considerable, al disponer de los contenidos de una forma fácil y rápida. Se evita el uso de direcciones de correo electrónico, puesto que aquí los datos viajan a través del protocolo HTTP. De esta forma se evita el envío de publicidad, spam, etc. 38
Utilización de una fuente Web Un fichero de una fuente Web, es un documento XML que puede ser abierto directamente por un navegador. No obstante lo más recomendable es utilizar un programa que lea estos documentos XML (fuente Web), y los analice, mostrando el resultado en el propio programa. A estos programas se los llama agregadores. 39
Utilización de una fuente Web Un agregador es una aplicación Web o local que permite la suscripción a diferentes fuentes Web, principalmente de los dos principales formatos RSS y Atom, aunque existen algunos derivados de estos. Permite reunir datos que se publican en portales que permiten la redifusión Web. La aplicación se encarga de actualizar los vínculos e indicar cuándo se ha añadido nueva información en el programa. Algunos permiten filtrar u ordenar los contenidos por palabras clave. 40
Utilización de una fuente Web Tipos: o Los que disponen de un acceso en línea, basta logarse para acceder a ellos (ejemplos: IGoogle, Netvibes, Blogvibes, My Yahoo o Google Reader). o Los que requieren de la instalación de un software en local (ejemplos: Liferea o Naufrago (para Linux), NetNewsWire o FeedReader). 41
Utilización de una fuente Web Ejemplo agregador NetNewsWire para Mac: 42
Formato RSS <?xml version="1.0" encoding="iso-8859-1"?> <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/"> <channel>...items... </channel> </rss> 43
Formato Atom Etiquetas obligatorias: <? Xml version = "1.0" encoding = "UTF-8"?> <feed xmlns="http://www.w3.org/201/atom"> <id> http://ejemplo.com/ </id> <title> Titulo </title> <updated> 20 de enero de 2011 </updated> </Feed> 44
Formato Atom Etiquetas que se pueden añadir al final: <entry> <author>anónimo</author> <link type="text/html" href="http://ejemplo.org/"/> <category term="sports"/> <contributor> <name>madona</name> </contributor> <generator uri="/mypagina.asp" version="3.0"> Generado por ASP </Generator> <icon> /icono.jpg </icon> <logo> /logo.jpg </logo> <rights> 2012 MAdrid </rights> <subtitle> Un comentario </ subtitle> </entry> 45