Taller de Sistemas de Infrmación 2 Clase 11 Prtales Java y WSRP
Prtales Un prtal es una aplicación Web, adaptable pr el usuari final, que prvee un únic punt de acces a una gran variedad de cntenid y aplicacines, psiblemente btenids de distintas fuentes INCO - Facultad de Ingeniería Mntevide, Uruguay 2
Prtales INCO - Facultad de Ingeniería Mntevide, Uruguay 3
Características de un Prtal Agregación de Cntenid Vistas Adaptables Cntenid Persnalizad Mdel de seguridad unificad (SSO) Lcalización, Internacinalización Sprte a distints tips de Clientes INCO - Facultad de Ingeniería Mntevide, Uruguay 4
Prtales INCO - Facultad de Ingeniería Mntevide, Uruguay 5
Prtales Surgen cm respuesta a la necesidad de unificar aplicacines distintas en una única aplicación Web integrada Un prtal debe prveer la base para integrar distints cmpnentes en una interfaz cnsistente para el usuari INCO - Facultad de Ingeniería Mntevide, Uruguay 6
Slucines Prpietarias Surgiern varias slucines prpietarias Sun, IBM, BEA System, Oracle, Plumtree Ls cmpnentes del prtal debían ser desarrllads específicamente para una de estas platafrmas Est generaba dependencia cn el prveedr INCO - Facultad de Ingeniería Mntevide, Uruguay 7
Necesidad de un Estándar La dependencia cn el prveedr iba en cntra de la prtabilidad de aplicacines empresariales que planteaba J2EE En Octubre del 2003 ls principales prveedres de Prtales, liderads pr IBM y Sun, acrdarn un estándar: JSR-168: Prtlet Specificatin INCO - Facultad de Ingeniería Mntevide, Uruguay 8
Prtlet Specificatin La especificación estandariza cóm ls cmpnentes de un prtal (prtlets) deben ser desarrllads Ls Prtlets que utilicen esta API y se adhieran a la especificación pdrán ser integrads en cualquier prtal la sprte INCO - Facultad de Ingeniería Mntevide, Uruguay 9
Prtlet Specificatin La especificación trata ls siguientes punts: Cntrat entre ls prtlets y prtlet cntainer Windw States (max, nrmal, min) Prtlets Mdes (view, edit, help) Manej de preferencias en un Prtlet Infrmación de usuari Empaquetad y deplyment Seguridad JSP tags INCO - Facultad de Ingeniería Mntevide, Uruguay 10
Prtlet Specificatin INCO - Facultad de Ingeniería Mntevide, Uruguay 11
Prtlet Specificatin Versión 1.0 (JSR-168) http://jcp.rg/en/jsr/detail?id=168 Versión 2.0 (JSR-286) http://jcp.rg/en/jsr/detail?id=286 Implementación Referencia Apache Plut: http://prtals.apache.rg/plut/ INCO - Facultad de Ingeniería Mntevide, Uruguay 12
Prtales y Páginas Un prtal es una aplicación Web que cmúnmente prvee persnalización, single sign n, agregación de cntenid desde diferentes fuentes y alja la capa de presentación de Sistemas de Infrmación Las páginas de ls prtales pueden tener cnjunts de prtlets diferentes que crean cntenid para usuaris diferentes INCO - Facultad de Ingeniería Mntevide, Uruguay 13
Prtlets Un Prtlet es un cmpnente Web basad en la tecnlgía Java que prcesa pedids y genera cntenid dinámic El cntenid generad pr un prtlet es llamad fragment (HTML, XHTML, WML, etc) El cicl de vida de un prtlet es manejad pr el cntenedr de prtlets INCO - Facultad de Ingeniería Mntevide, Uruguay 14
Prtlet Cntainer El Cntenedr de Prtlets Ejecuta Prtlets, les prvee el ambiente de ejecución requerid y maneja el cicl de vida de ls misms Prvee almacenamient persistente para las preferencias de ls prtlets Recibe pedids desde el prtal para ejecutar pedids en ls prtles que alja El Cntenedr de Prtlets n es respnsable de agregar el cntenid prducid pr ls distints Prtles. Est es respnsabilidad del Prtal INCO - Facultad de Ingeniería Mntevide, Uruguay 15
Servlet vs Prtlets Similitudes Cmpnentes Web Java Sn manejads pr un cntenedr especializad Generan cntenid dinámic Diferencias Ls prtlets sól generan fragments Ls prtlets pueden acceder a dats del usuari Ls prtlets pueden acceder y almacenar dats de cnfiguración y adaptación INCO - Facultad de Ingeniería Mntevide, Uruguay 16
Interfaz Prtlet La interfaz Prtlet define ls siguientes métds que sn llamads directamente pr el cntainer durante el cicl de vida un Prtlet init() destry() prcessactin() render() Llamad cuand el Prtlet es instanciad pr el cntenedr. Llamad cuand el cntainer destruye el Prtlet. Llamad lueg de que el usuari envía cambis al Prtlet. Se utiliza para prcesar accines de ls usuaris Llamad cuand el prtlet es redibujad. INCO - Facultad de Ingeniería Mntevide, Uruguay 17
Manej de Requests INCO - Facultad de Ingeniería Mntevide, Uruguay 18
Manej de Requests INCO - Facultad de Ingeniería Mntevide, Uruguay 19
Manej de Requests INCO - Facultad de Ingeniería Mntevide, Uruguay 20
Generic Prtlet Se prvee una clase GenericPrtlet que implementa el métd render() y delega la llamada a métds más específics de acuerd al estad del Prtlet dview() dedit() dhelp() Llamad pr el métd render() cuand el Prtlet está en el md view Llamad pr el métd render() cuand el Prtlet está en el md edit Llamad pr el métd render() cuand el Prtlet está en el md help INCO - Facultad de Ingeniería Mntevide, Uruguay 21
HellWrldPrtlet.java package test.prtlet; imprt javax.prtlet.genericprtlet;... public class HellWrldPrtlet extends GenericPrtlet{ prtected vid dview(renderrequest request, RenderRespnse respnse) thrws PrtletExceptin... { } respnse.setcntenttype( text/html ); PrintWriter writer = respnse.getwriter(); writer.write( Hell Wrld ); writer.clse(); INCO - Facultad de Ingeniería Mntevide, Uruguay 22
HellWrldPrtlet INCO - Facultad de Ingeniería Mntevide, Uruguay 23
Prtlet Request y Respnse Ls métds prcessactin, render y ls métds especializads (dview, dedit, etc) aceptan cm parámetrs request y respnse (similares a ls que acepta el service del Servlet) INCO - Facultad de Ingeniería Mntevide, Uruguay 24
Prtlet Request y Respnse A través del request y respnse un prtlet puede: Mantener el estad y cmunicarse cn trs prtlets, servlets, JSPs usand la prtlet sessin Recibir entradas de ls usuaris desde frmularis incluids en el prtlet Crear el cntenid para que presente el prtal que es enviad al usuari a través del respnse Cnsultar infrmación de estad del prtlet y del prtal INCO - Facultad de Ingeniería Mntevide, Uruguay 25
Prtlet Mde Td Prtlet tiene un md actual que indica la función que está ejecutand Ls mds definids en la especificación sn: View, Edit y Help El md puede ser cnsultad en cualquier parte del códig del Prtlet Ls prveedres de prtales pueden definir mds adicinales para dar funcinalidades específicas INCO - Facultad de Ingeniería Mntevide, Uruguay 26
Windw State El Windw State indica la cantidad de espaci de la página que es asignada al Prtlet El Prtlet puede utilizar esta infrmación para decidir cuánta infrmación desplegar Ls tres Windw States definids pr la especificación sn: Minimizad, Maximizad y Nrmal Ls prveedres de prtales pueden definir Windw States adicinales INCO - Facultad de Ingeniería Mntevide, Uruguay 27
Prtlet Preferences Las Prtlets Preferences pueden utilizarse para prveer una vista cmprtamient adecuand de acuerd al usuari El PrtletCntainer es respnsable de acceder y almacenar estas preferencias a través de la interfaz PrtletPreferences vía ls métds getvalues y setvalues Ls Prtlets tienen acces a las preferencias al prcesar request per pueden mdificarlas sól en la invcación al prcessactin INCO - Facultad de Ingeniería Mntevide, Uruguay 28
User Infrmatin La especificación prvee un mecanism para acceder a la infrmación de ls usuaris cm nmbre, email, teléfn y dirección <user-attribute> <descriptin>user Given Name</descriptin> <name>user.name.given</name> </user-attribute> Map userinf =(Map)request.getAttribute(PrtletRequest.USER_INFO); String givenname = String)userInf.get( user.name.given ); INCO - Facultad de Ingeniería Mntevide, Uruguay 29
Packaging y Deplyment Para el packaging y deplyment de prtlets se utiliza un "Web Applicatin Archive" (WAR) que puede cntener trs cmpnentes cm servlets, JSPs, etc Además del archiv web.xml debe haber un archiv adicinal (prtlet.xml) que define tdas las cnfiguracines relacinadas cn ls Prtlets INCO - Facultad de Ingeniería Mntevide, Uruguay 30
WSRP: Cntenid Remt Ls Prtales prveen agregación de cntenid prveniente de diferentes lugares El cntenid puede ser btenid de frma lcal remta El cntenid remt es nrmalmente accedid a través de Web Services INCO - Facultad de Ingeniería Mntevide, Uruguay 31
Alguns prblemas N existe un cntrat estándar entre cnsumidres y prveedres Para cada servici que se cnsuma hay que desarrllar y deplyar un prltet en el cnsumidr Dificultad para ls prductres de evlucinar El prblema principal es que: Ls Web Services están rientads a Dats mientras que ls Prtales están rientads a la Presentación INCO - Facultad de Ingeniería Mntevide, Uruguay 32
Web Services fr Remte Prtlets WSRP fue definid para frecer una slución estándar que permita presentar cntenid remt en prtales WSRP define una interfaz cmún para cmunicarse cn Web Services rientads a la presentación e integrables en prtales Ests servicis prcesan las interaccines del usuari y prveen fragments de mark-up para integrar en prtales INCO - Facultad de Ingeniería Mntevide, Uruguay 33
WSRP Versines Estándar de la OASIS http://www.asis-pen.rg/cmmittees/wsrp/ La versión 1.0 fue aprbada cm estándar en agst del 2003 La versión 2.0 fue aprbada cm estándar en abril del 2008 INCO - Facultad de Ingeniería Mntevide, Uruguay 34
WSRP Actres Prductr WSRP Prtlet WSRP Cnsumidr WSRP INCO - Facultad de Ingeniería Mntevide, Uruguay 35
Prductr WSRP El Prductr es un Web Service que frece un más prtlets e implementa un cnjunt de interfaces WSRP brindand un cnjunt de peracines cmunes a ls cnsumidres Cada prductr es especificad utilizand un dcuments WSDL estandarizad INCO - Facultad de Ingeniería Mntevide, Uruguay 36
Prtlet WSRP Un prtlet WSRP es un cmpnente integrable a una UI que vive dentr de un prductr WSRP y es accedid remtamente a través de la interfaz del prductr Un prtlet WSRP n es un Web Service, tiene que ser accedid a través del prductr INCO - Facultad de Ingeniería Mntevide, Uruguay 37
Cnsumidr WSRP Un cnsumidr WSRP es un cliente que invca ls servicis frecids pr el prductr y prvee un ambiente para que ls usuaris interactúen cn prtlets frecids pr un más prductres El ejempl más cmún de un cnsumidr WSRP es un prtal INCO - Facultad de Ingeniería Mntevide, Uruguay 38
Beneficis WSRP WSRP define claramente el cntrat entre prductres y cnsumidres Prvee interperabilidad Desarrll y Administración sencilla Cnstruid sbre estándares existentes SOAP WSDL INCO - Facultad de Ingeniería Mntevide, Uruguay 39
WSRP - Interfaces WSRP define un cnjunt de interfaces que ls prductres deben implementar y que serán utilizadas pr ls cnsumidres para interactuar cn prtlets remts Las interfaces definidas sn: Service Descriptin Interface (requerida) Markup Interface (requerida) Registratin Interface (pcinal) Prtlet Management Interface (pcinal) INCO - Facultad de Ingeniería Mntevide, Uruguay 40
Service Descriptin Interface Permite que un prductr WSRP infrme sus capacidades a cnsumidres Un cnsumidr puede utilizar esta interfaz para: Cnsultar que prtlets sn frecids pr el cnsumidr Cnsultar metadata del prductr INCO - Facultad de Ingeniería Mntevide, Uruguay 41
Markup Interface Permite que un cnsumidr interactúe cn un prtlet remt crriend en un prductr Un cnsumidr utilizará esta interfaz para Realizar alguna interacción cuand el usuari realice alguna acción sbre el prtlet remt a través del prtal Obtener el mark-up actual de acuerd al estad del prtlet (cuand el usuari interactúa cn trs prtlets) INCO - Facultad de Ingeniería Mntevide, Uruguay 42
Registratin Interface Permite al prductr requerir que ls cnsumidres realicen alguna clase de registr antes de interactuar cn el servici A través de este mecanism un prductr puede definir un determinad cmprtamient de acuerd al tip de cliente (ej: filtrar ls prtlets frecids) INCO - Facultad de Ingeniería Mntevide, Uruguay 43
Prtlet Management Interface A través de esta interfaz el cnsumidr tiene acces al cicl de vida del prtlet remt Un cnsumidr pdrá mdificar el cmprtamient del prtlet utilizand esta interfaz INCO - Facultad de Ingeniería Mntevide, Uruguay 44
Referencias JSR 168: Prtlet Specificatin http://jcp.rg/en/jsr/detail?id=168 JSR 286: Prtlet Specificatin 2.0 http://jcp.rg/en/jsr/detail?id=286 What's new in the Java Prtlet Specificatin V2.0 (JSR 286)? Stefan Hepper, Oliver Köth http://www.ibm.cm/develperwrks/websphere/library/techarticles/0 803_hepper/0803_hepper.html INCO - Facultad de Ingeniería Mntevide, Uruguay 45
Referencias Prtlets and Apache Prtals. Stefan Hepper, Peter Fischer, Stephan Hesmer, Richard Jacb and David Sean Taylr. Manning 2005 Prfessinal Prtal Develpment with Open Surce Tls: Java Prtlet API, Lucene, James, Slide. Wiley Technlgy Publishing. 2004. INCO - Facultad de Ingeniería Mntevide, Uruguay 46
Referencias JBss Prtal Server Develpment. Ramanujam Ra. Packt Publishing. 2009 Building and Managing Enterprise-Wide Prtals. Jana Plgar, Rbert Mark Bram, Antn PlgarJana Plgar, Rbert Mark Bram, Antn Plgar. Idea Grup Publishing. 2006. Web Services fr Remte Prtlets http://www.asis-pen.rg/cmmittees/wsrp/ INCO - Facultad de Ingeniería Mntevide, Uruguay 47