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