08 Portales

download 08 Portales

of 85

Transcript of 08 Portales

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