Introduccin al MiddlewarePortalesIng. Fabricio Alvarez
AgendaConceptos generales, historia, clasificacin Portales Java Portales .NET WSRP Portales & integracin Presente & futuro
INCO - Facultad de Ingeniera Montevideo, Uruguay
2
PortalesConceptos generales, historia, clasificacin
Portal
INCO - Facultad de Ingeniera Montevideo, Uruguay
4
Portal
INCO - Facultad de Ingeniera Montevideo, Uruguay
5
Portales
Un portal es una aplicacin Web, adaptable por el usuario final, que provee un nico punto de acceso a una gran variedad de contenido y aplicaciones, posiblemente obtenidos de distintas fuentes
INCO - Facultad de Ingeniera Montevideo, Uruguay
6
Portales & Middleware
Un portal como plataforma funciona como middleware, integrando mltiples aplicaciones (sin importar arquitectura o plataforma) en un solo frontend dentro de un navegador
INCO - Facultad de Ingeniera Montevideo, Uruguay
7
Historia
~1995o
Portales Web pblicos
Altavista, AOL, Excite, Yahoo!
Finales de los 90o
Produccin de portales empresariales
1998 primer portal comercial Epicentric, Plumtree
2002o
Entran al mercado los vendedores de servidores de aplicacin
BEA, IBM, Oracle, Sun8
INCO - Facultad de Ingeniera Montevideo, Uruguay
Historia
2003oo
JSR-168 WSRP 1.0JSR-286 WSRP 2.0
2008o o
INCO - Facultad de Ingeniera Montevideo, Uruguay
9
Portales & Evolucin Web
INCO - Facultad de Ingeniera Montevideo, Uruguay
10
Clasificacin Portales
Una posible clasificacinoo
Portales pblicos Portales empresariales o corporativosDe acuerdo al propsito o rea funcional
Otra posible clasificacino
Portales Horizontales Portales Verticales
INCO - Facultad de Ingeniera Montevideo, Uruguay
11
Clasificacin Portales
INCO - Facultad de Ingeniera Montevideo, Uruguay
12
Portales HorizontalesTambin llamados portales genricos o generales Cubren muchas reas, amplios rangos de temas de interso
Noticias, acontecimientos, deportes, etc
INCO - Facultad de Ingeniera Montevideo, Uruguay
13
Portales Horizontales
INCO - Facultad de Ingeniera Montevideo, Uruguay
14
Portales VerticalesOrientados a personas con intereses particulares Cubren un rea particular concreta Tambin conocidos como Vortals, portales temticos o especializados
INCO - Facultad de Ingeniera Montevideo, Uruguay
15
Portal Verticales - Ejemplos
INCO - Facultad de Ingeniera Montevideo, Uruguay
16
Clasificacin Portales Empresariales
INCO - Facultad de Ingeniera Montevideo, Uruguay
17
Caractersticas de un PortalAgregacin de Contenido Vistas Adaptables Contenido Personalizado Modelo de seguridad unificado (SSO) Localizacin, Internacionalizacin Soporte a distintos tipos de Clientes nico punto de acceso
INCO - Facultad de Ingeniera Montevideo, Uruguay
18
Caractersticas de un Portal
INCO - Facultad de Ingeniera Montevideo, Uruguay
19
Portales
INCO - Facultad de Ingeniera Montevideo, Uruguay
20
PortalesSurgen como respuesta a la necesidad de unificar aplicaciones distintas en una nica aplicacin Web integrada Un portal debe proveer la base para integrar distintos componentes en una interfaz consistente para el usuario
INCO - Facultad de Ingeniera Montevideo, Uruguay
21
Beneficios de los Portales
Mejor acceso a la informacino
Estructurada y no estructurada
Reduccin de costos Modularizacin, reuso Interfaz de usuario consistente Motores de bsqueda integrados Fcil administracin y mantenimiento Impacto mnimo en el cliente Mltiples canalesINCO - Facultad de Ingeniera Montevideo, Uruguay 22
Portales JavaPortales basados en la plataforma Java
Soluciones Propietarias
Surgieron varias soluciones propietariaso
Sun, IBM, BEA System, Oracle, Plumtree
Los componentes del portal deban ser desarrollados especficamente para una de estas plataformas Esto generaba dependencia con el proveedor
INCO - Facultad de Ingeniera Montevideo, Uruguay
24
Necesidad de EstndaresLa dependencia con el proveedor iba en contra de la portabilidad de aplicaciones empresariales que planteaba J2EE En Octubre del 2003 los principales proveedores de Portales, liderados por IBM y Sun, acordaron un estndar:o
JSR-168: Portlet SpecificationJSR-286INCO - Facultad de Ingeniera Montevideo, Uruguay 25
En 2008, segunda versino
Especificacin de Portlets (JSR-168)La especificacin estandariza cmo los componentes de un portal (portlets) deben ser desarrollados Los Portlets que utilicen esta API y se adhieran a la especificacin podrn ser integrados en cualquier portal que la soporte
INCO - Facultad de Ingeniera Montevideo, Uruguay
26
Especificacin de Portlets (JSR-168)
La especificacin trata los siguientes puntos:oo o o o o o o
Contrato entre los portlets y portlet container Window States (max, normal, min) Portlets Modes (view, edit, help) Manejo de preferencias en un Portlet Informacin de usuario Empaquetado y deployment Seguridad JSP tagsINCO - Facultad de Ingeniera Montevideo, Uruguay 27
Especificacin de Portlets (JSR-168)
INCO - Facultad de Ingeniera Montevideo, Uruguay
28
Especificacin de Portlets (JSR-286)
Algunas mejoras introducidas:o
IPC (InterPortlet Communication)
Sesin y parmetros compartidos Eventos: usados para coordinar estado entre diferentes portlets
o o o o
Alineacin con WSRP 2.0 Mejor soporte a frameworks Web Servir recursos directo desde portlets Servir datos AJAX directo desde portlets
INCO - Facultad de Ingeniera Montevideo, Uruguay
29
Especificacin de Portlets
Versin 1.0 (JSR-168)o
http://jcp.org/en/jsr/detail?id=168 http://jcp.org/en/jsr/detail?id=286Apache Pluto: http://portals.apache.org/pluto/
Versin 2.0 (JSR-286)o
Implementacin Referenciao
INCO - Facultad de Ingeniera Montevideo, Uruguay
30
Portales y PginasUn portal es una aplicacin Web que comnmente provee personalizacin, single sign on, agregacin de contenido desde diferentes fuentes y aloja la capa de presentacin de Sistemas de Informacin Las pginas de los portales pueden tener conjuntos de portlets diferentes que crean contenido para usuarios diferentes
INCO - Facultad de Ingeniera Montevideo, Uruguay
31
PortletsUn Portlet es un componente Web basado en la tecnologa Java que procesa pedidos y genera contenido dinmico El contenido generado por un portlet es llamado fragmento (HTML, XHTML, WML,
etc)
El ciclo de vida de un portlet es manejado por el contenedor de portlets
INCO - Facultad de Ingeniera Montevideo, Uruguay
32
Contenedor de Portlets
El Contenedor de Portletso
o
o
Ejecuta Portlets, les provee el ambiente de ejecucin requerido y maneja el ciclo de vida de los mismos Provee almacenamiento persistente para las preferencias de los portlets Recibe pedidos desde el portal para ejecutar pedidos en los portles que aloja
El Contenedor de Portlets no es responsable de agregar el contenido producido por los distintos Portles. Esto es responsabilidad del Portal
INCO - Facultad de Ingeniera Montevideo, Uruguay
33
Servlet vs Portlets
Similitudesoo o
Componentes Web Java Son manejados por un contenedor especializado Generan contenido dinmicoLos portlets slo generan fragmentos Los portlets pueden acceder a datos del usuario Los portlets pueden acceder y almacenar datos de configuracin y adaptacinINCO - Facultad de Ingeniera Montevideo, Uruguay 34
Diferenciaso
oo
Interfaz Portlet
La interfaz Portlet define los siguientes mtodos que son llamados directamente por el container durante el ciclo de vida un Portlet init() destroy() processAction() render()Llamado cuando el Portlet es instanciado por el contenedor. Llamado cuando el container destruye el Portlet. Llamado luego de que el usuario enva cambios al Portlet. Se utiliza para procesar acciones de los usuarios Llamado cuando el portlet es redibujado.
INCO - Facultad de Ingeniera Montevideo, Uruguay
35
Manejo de Requests
INCO - Facultad de Ingeniera Montevideo, Uruguay
36
Manejo de Requests
INCO - Facultad de Ingeniera Montevideo, Uruguay
37
Manejo de Requests
INCO - Facultad de Ingeniera Montevideo, Uruguay
38
Generic Portlet
Se provee una clase GenericPortlet que implementa el mtodo render() y delega la llamada a mtodos ms especficos de acuerdo al modo en que se encuentra el PortletdoView()Llamado por el mtodo render() cuando el Portlet est en el modo view Llamado por el mtodo render() cuando el Portlet est en el modo edit
doEdit() doHelp()
Llamado por el mtodo render() cuando el Portlet est en el modo help
INCO - Facultad de Ingeniera Montevideo, Uruguay
39
HelloWorldPortlet.javapackage test.portlet; import javax.portlet.GenericPortlet; ........ public class HelloWorldPortlet extends GenericPortlet{ protected void doView(RenderRequest request, RenderResponse response) throws PortletException ..... { response.setContentType(text/html); PrintWriter writer = response.getWriter(); writer.write(Hello World); writer.close(); }INCO - Facultad de Ingeniera Montevideo, Uruguay 40
HelloWorldPortlet
INCO - Facultad de Ingeniera Montevideo, Uruguay
41
Portlet Request y Response
Los mtodos processAction, render y los mtodos especializados (doView, doEdit, etc) aceptan como parmetros request y response (similares a los que acepta el service del Servlet)
INCO - Facultad de Ingeniera Montevideo, Uruguay
42
Portlet Request y Response
A travs del request y response un portlet puede:o
o
o
o
Mantener el estado y comunicarse con otros portlets, servlets, JSPs usando la portlet session Recibir entradas de los usuarios desde formularios incluidos en el portlet Crear el contenido para que presente el portal que es enviado al usuario a travs del response Consultar informacin de estado del portlet y del portalINCO - Facultad de Ingeniera Montevideo, Uruguay 43
Portlet ModeTodo Portlet tiene un modo actual que indica la funcin que est ejecutando Los modos definidos en la especificacin son: View, Edit y Helpo
La disponibilidad puede restringirse en base a roles
El modo puede ser consultado en cualquier parte del cdigo del Portlet Los proveedores de portales pueden definir modos adicionales para dar funcionalidades especficasINCO - Facultad de Ingeniera Montevideo, Uruguay 44
Window StateEl Window State indica la cantidad de espacio de la pgina que es asignada al Portlet El Portlet puede utilizar esta informacin para decidir cunta informacin desplegar Los tres Window States definidos por la especificacin son: Minimizado, Maximizado y Normal Los proveedores de portales pueden definir Window States adicionalesINCO - Facultad de Ingeniera Montevideo, Uruguay 45
Portlet Preferences
Las preferencias en los portlets pueden utilizarse para proveer una vista o comportamiento adecuando de acuerdo al usuarioo
o
Slo para datos bsicos de configuracin de portlets No reemplazan base de datos
El Contenedor es responsable de acceder y almacenar estas preferencias (mtodos getValues y setValues)INCO - Facultad de Ingeniera Montevideo, Uruguay 46
User Information
La especificacin provee un mecanismo para acceder a la informacin de los usuarios como nombre, email, telfono y direccin User Given Name user.name.given
Map userInfo =(Map)request.getAttribute(PortletRequest.USER_INFO); String givenName = String)userInfo.get(user.name.given);INCO - Facultad de Ingeniera Montevideo, Uruguay 47
Packaging y DeploymentPara el packaging y deployment de portlets se utiliza un "Web Application Archive" (WAR) que puede contener otros componentes como servlets, JSPs, etc Adems del archivo web.xml debe haber un archivo adicional (portlet.xml) que define todas las configuraciones relacionadas con los Portlets
INCO - Facultad de Ingeniera Montevideo, Uruguay
48
Arquitecturas y Tecnologas
No existe una arquitectura estndar, si tal vez un conjunto de funcionalidades clave
INCO - Facultad de Ingeniera Montevideo, Uruguay
49
Arquitecturas y Tecnologas
INCO - Facultad de Ingeniera Montevideo, Uruguay
50
Portales .NETMicrosoft Office Sharepoint Server
MOSS
INCO - Facultad de Ingeniera Montevideo, Uruguay
52
Web PartUna Web Part es un componente reutilizable que se puede colocar en una pgina ASPX Controles que ejecutan en el servidoro
Con la diferencia que soportan personalizacin a travs de la interfaz WebPart
Deben ser colocados en una WebPartZone, usando un WebPartManager ASP.NET 2.0 tiene soporte nativo Pueden ejecutar fuera del MOSSINCO - Facultad de Ingeniera Montevideo, Uruguay 53
Ciclo de vida Web Parts
INCO - Facultad de Ingeniera Montevideo, Uruguay
54
WSRPWeb Services for Remote Portlets
WSRP: Contenido RemotoLos Portales proveen agregacin de contenido proveniente de diferentes lugares El contenido puede ser obtenido de forma local o remota El contenido remoto es normalmente accedido a travs de Web Services
INCO - Facultad de Ingeniera Montevideo, Uruguay
56
Algunos problemasLos WS orientados a datos requieren de una aplicacin que provea lgica de presentacin especfica No existe un contrato estndar entre consumidores y proveedores Para cada servicio que se consuma hay queo
Desarrollar y desplegar un portlet en el consumidor
INCO - Facultad de Ingeniera Montevideo, Uruguay
57
Web Services for Remote PortletsWSRP fue definido para ofrecer una solucin estndar que permita presentar contenido remoto en portales WSRP define una interfaz comn para comunicarse con Web Services orientados a presentacino
WS sern utilizados por motores de agregacin (portales u otros)
Estos servicios procesan las interacciones del usuario y proveen fragmentos de mark-upINCO - Facultad de Ingeniera Montevideo, Uruguay 58
WSRP Datos vs. PresentacinData-OrientedData
Presentation-OrientedData Presentation logicRender
XMLSOAP
Presentation LogicRender
MarkupSOAP
59INCO - Facultad de Ingeniera Montevideo, Uruguay 59
WSRP Versiones
Estndar de la OASIShttp://www.oasis-open.org/committees/wsrp/
La versin 1.0 fue aprobada como estndar en agosto del 2003 La versin 2.0 fue aprobada como estndar en abril del 2008
INCO - Facultad de Ingeniera Montevideo, Uruguay
60
WSRP ActoresProductor WSRP Portlet WSRP Consumidor WSRP
INCO - Facultad de Ingeniera Montevideo, Uruguay
61
Productor WSRPEl Productor es un Web Service que ofrece uno o ms portlets e implementa un conjunto de interfaces WSRP brindando un conjunto de operaciones comunes a los consumidores Cada productor es especificado utilizando un documentos WSDL estandarizado
INCO - Facultad de Ingeniera Montevideo, Uruguay
62
Portlet WSRPUn portlet WSRP es un componente integrable a una UI que vive dentro de un productor WSRP y es accedido remotamente a travs de la interfaz del productor Un portlet WSRP no es un Web Service, tiene que ser accedido a travs del productor
INCO - Facultad de Ingeniera Montevideo, Uruguay
63
Consumidor WSRPUn consumidor WSRP es un cliente que invoca los servicios ofrecidos por el productor y provee un ambiente para que los usuarios interacten con portlets ofrecidos por uno o ms productores El ejemplo ms comn de un consumidor WSRP es un portal
INCO - Facultad de Ingeniera Montevideo, Uruguay
64
WSRP - InterfacesWSRP define un conjunto de interfaces que los productores deben implementar y que sern utilizadas por los consumidores para interactuar con portlets remotos Las interfaces definidas son:o o o o
Service Description Interface (requerida) Markup Interface (requerida) Registration Interface (opcional) Portlet Management Interface (opcional)INCO - Facultad de Ingeniera Montevideo, Uruguay 65
Service Description InterfacePermite que un productor WSRP informe sus capacidades a consumidores Un consumidor puede utilizar esta interfaz para:o
o
Consultar que portlets son ofrecidos por el consumidor Consultar metadata del productor
INCO - Facultad de Ingeniera Montevideo, Uruguay
66
Markup InterfacePermite que un consumidor interacte con un portlet remoto corriendo en un productor Un consumidor utilizar esta interfaz parao
o
Realizar alguna interaccin cuando el usuario realice alguna accin sobre el portlet remoto a travs del portal Obtener el mark-up actual de acuerdo al estado del portlet (cuando el usuario interacta con otros portlets)
INCO - Facultad de Ingeniera Montevideo, Uruguay
67
Registration InterfacePermite al productor requerir que los consumidores realicen alguna clase de registro antes de interactuar con el servicio A travs de este mecanismo un productor puede definir un determinado comportamiento de acuerdo al tipo de cliente (ej: filtrar los portlets ofrecidos)
INCO - Facultad de Ingeniera Montevideo, Uruguay
68
Portlet Management InterfaceA travs de esta interfaz el consumidor tiene acceso al ciclo de vida del portlet remoto Un consumidor podr modificar el comportamiento del portlet utilizando esta interfaz
INCO - Facultad de Ingeniera Montevideo, Uruguay
69
Beneficios WSRPWSRP define claramente el contrato entre productores y consumidores Provee interoperabilidad Menos desarrollo, menos instalaciones Administracin sencilla, agregar portlets es slo configuracin Construido sobre estndares existenteso o
SOAP WSDLINCO - Facultad de Ingeniera Montevideo, Uruguay 70
Desventajas WSRPAdopcin del mercado Uso en aplicacin complejas Lentitud?
INCO - Facultad de Ingeniera Montevideo, Uruguay
71
Portales & IntegracinIntegracin con otras herramientas, sistemas y tecnologas
IntegracinWeb Services Workflows Bsquedas Servidores de aplicaciones CMS ESBs Mashups
INCO - Facultad de Ingeniera Montevideo, Uruguay
73
Presente & FuturoPresente y futuro de los portales
Portales del mercadoVendedor Apache IBM Nombre Jetspeed WebSphere Portal Tecnologa Java EE Java EE Licencia Apache Propietaria API Portlet JSR-286 JSR-286
Jboss + ExoLiferay Microsoft Open Text Oracle
GateInLiferay Sharepoint Vignette Portal Oracle Portal ..
Java EEJava EE ASP.NET Java EE Java EE
LGPLLGPL Propietaria Propietaria Propietaria
JSR-286JSR-286 WSRP JSR-286 JSR-168 ..
INCO - Facultad de Ingeniera Montevideo, Uruguay
75
GateIn
INCO - Facultad de Ingeniera Montevideo, Uruguay
76
Sharepoint 2010
INCO - Facultad de Ingeniera Montevideo, Uruguay
77
WebSphere Portal
INCO - Facultad de Ingeniera Montevideo, Uruguay
78
Liferay
INCO - Facultad de Ingeniera Montevideo, Uruguay
79
JetSpeed
INCO - Facultad de Ingeniera Montevideo, Uruguay
80
Portales & FuturoRedes Sociales Cloud Computing HTML 5 Mashups Dispositivos mviles
INCO - Facultad de Ingeniera Montevideo, Uruguay
81
Portales & Futuro
INCO - Facultad de Ingeniera Montevideo, Uruguay
82
ReferenciasJSR 168: Portlet Specification http://jcp.org/en/jsr/detail?id=168 JSR 286: Portlet Specification 2.0 http://jcp.org/en/jsr/detail?id=286 What's new in the Java Portlet Specification V2.0 (JSR 286)? Stefan Hepper, Oliver Kthhttp://www.ibm.com/developerworks/websphere/library/techarticles/0 803_hepper/0803_hepper.html
INCO - Facultad de Ingeniera Montevideo, Uruguay
83
ReferenciasPortlets and Apache Portals. Stefan Hepper, Peter Fischer, Stephan Hesmer, Richard Jacob and David Sean Taylor. Manning 2005 Professional Portal Development with Open Source Tools: Java Portlet API, Lucene, James, Slide. Wiley Technology Publishing. 2004.
INCO - Facultad de Ingeniera Montevideo, Uruguay
84
ReferenciasJBoss Portal Server Development. Ramanujam Rao. Packt Publishing. 2009 Building and Managing Enterprise-Wide Portals. Jana Polgar, Robert Mark Bram, Anton PolgarJana Polgar, Robert Mark Bram, Anton Polgar. Idea Group Publishing. 2006. Web Services for Remote Portlets http://www.oasis-open.org/committees/wsrp/
INCO - Facultad de Ingeniera Montevideo, Uruguay
85