Download Tema 4: Web clipping
Document related concepts
no text concepts found
Transcript
Tema 4: Web clipping Motivación (1) Hasta ahora hemos visto Cómo desarrollar un portlet con el API Java estándar de portlets La posibilidad de desarrollar un portlet con un framework Web con soporte para portlets (que internamente utiliza el API Java estándar) La posibilidad de encapsular una aplicación Web Java, local al servidor de portales, como un portlet (e.g. Apache Portals Bridges) Pero, ¿y si queremos integrar una aplicación Web general como un portlet en el portal? La aplicación Web no corre dentro del portal, quizás tampoco en su misma máquina, quizás incluso está en otra empresa, quizás no esté escrita en Java; además, nos gustaría reaprovechar parte de su interfaz gráfica, y claro, sería deseable poder integrarla en el portal sin tener que desarrollar un portlet específico Motivación (2) Primera opción: enlace directo Solución Integrar la aplicación en el portal mediante un simple enlace desde un portlet del portal <a href=“URL aplicación XYZ”>Clic para acceder a aplicación XYZ</a> Link Portlet _ + ? e X Clic para acceder a aplicación XYZ Ventajas Sencillo (“demasiado sencillo”) Motivación (3) Primera opción: enlace directo (cont) Desventajas Cuando el usuario hace clic en el enlace, abandona la página del portal Quizás la URL de la aplicación no esté accesible a los navegadores (firewall que lo impide), sino sólo a la máquina en la que corre el portal No es posible adaptar el look-n-feel de la aplicación al del portal No es posible integrar sólo un “trozo” de la aplicación Web (e.g. un formulario de búsqueda que aparece en una página y el área de resultados de la página de resultados) Si la página Web no es alcanzable directamente mediante una URL, la solución no es cómoda Ejemplo: una página de resultados accesible mediante la siguiente secuencia de navegación: formulario autenticación -> clic en enlace -> formulario de consulta -> página de resultados Sería deseable que el portal pudiese navegar automáticamente a la página de resultados Motivación (4) Segunda opción: iframe Solución Integrar la aplicación en el portal mediante un portlet que contiene un iframe con la URL de la aplicación <iframe src=“URL aplicación XYZ”></iframe> Motivación (y 5) Segunda opción: iframe (cont) Ventajas Sencillo (“demasiado sencillo”) La aplicación Web se integra en las páginas del portal con la apariencia de un portlet (“aparentemente”) Desventajas Las mismas que la solución anterior, excepto la primera desventaja (las interacciones con la aplicación ocurren dentro del iframe) Web clipping (1) Los servidores de portales suelen proporcionar un portlet genérico que actúa como proxy de una aplicación Web remota Permite integrar la aplicación Web (o fragmentos de sus páginas) dentro de las páginas del portal Esta solución se conoce con el nombre de “Web clipping” El Web clipping hace frente a las desventajas de las soluciones anteriores Una solución completa de Web clipping conlleva dos aspectos fundamentales Navegación automática Extracción de fragmentos HTML Los servidores de portales difieren en el grado de soporte de cada uno de estos aspectos Web clipping (2) Navegación automática El portlet navega automáticamente a la página Web lanzando las peticiones HTTP que especifica la secuencia de navegación Es una tarea compleja (gestionar cookies, interpretar JavaScript, etc.) Extracción de fragmentos HTML Cuando el portlet recibe la página destino, extrae el fragmento(-s) del área(-s) de interés (e.g. un formulario, la sección de resultados de una página de resultados, etc.) Reescribe todas o algunas de las URLs (aquellas a las que se les quiera aplicar Web clipping cuando el usuario haga clic en ellas) del fragmento(-s) extraído(-s) para que apunten al portal Cambia el formato del fragmento(-s) HTML para adaptarlo al lookn-feel del portal (e.g. usando una transformación XSLT) Web clipping (3) Habitualmente la configuración del portlet proxy es una tarea del administrador del portal Especificación de secuencias de navegación Especificación de fragmentos a extraer Especificación de adaptación de fragmentos Web clipping (4) Web clipping (5) Web clipping (6) Portal 1: Accede a la página del portal Yahoo! Finance 1.1: El porlet proxy accede a la página principal de “Yahoo! Finance” y extrae el área del formulario de búsqueda Resto de la página Resto de la página Web clipping (7) Portal 2: Teclea IBM y hace clic en el botón “Get Quotes” Yahoo! Finance 2.1: El porlet proxy hace una petición a la URL del formulario y extrae dos fragmentos de la página de respuesta Resto de la página Resto de la página Web clipping (8) Problemas Esfuerzo de mantenimiento: cambios en la aplicación Web => reconfiguración del portlet proxy Si alguna secuencia de navegación cambia => es necesario volver a configurar la secuencia en el portlet proxy Si se hace algún cambio en el HTML de una página, posiblemente sea necesario volver a especificar el fragmento en el que se está interesado La implementación del portlet proxy podría utilizar una ruta XPath para identificar el nodo raíz del fragmento, y en ese caso, un cambio en el HTML, podría alterar dicha ruta Las soluciones comerciales de Web clipping pueden hacer frente en menor o mayor medida a los problemas anteriores Es muy tedioso adaptar el look-n-feel de la aplicación original al del portal Una solución comercial puede ofrecer una solución gráfica para realizar la adaptación Web clipping (y 9) Ejemplo: PortletBridge http://www.portletbridge.org Portlet conforme al API Java estándar de portlets que actúa como portlet proxy de una aplicación Web No soporta navegación automática Es necesario proporcionar una hoja XSLT para extraer los fragmentos HTML y adaptarlos (si se precisa) Puede instalarse en cualquier servidor de portales Java Incluye un hoja XSLT de partida que extrae el contenido del cuerpo (lo contenido en <body>) y reescribe los enlaces si se desea Puede usarse como punto de partida para hacer un Web clipping más complejo Ejemplo: Oracle Portal Server Permite realizar todo (o casi todo) el proceso de Web clipping (navegación, extracción y adaptación) gráficamente http://www.oracle.com/technology/products/ias/portal/ portlet_dev_viewlets.html