3 research outputs found

    Variability in remote portlets

    Get PDF
    130 p.Contexto Los portales corporativos (EIP, acr贸nimo en ingl茅s de Enterprise Information Portal ) integran informaci贸n, personas y procesos dentro de los l铆mites de las organizaciones. Una caracter铆stica importante de los portales corporativos es la descentralizaci贸n en la creaci贸n de los contenidos y la gesti贸n de los mismos, esto ayuda a mantener la informaci贸n siempre actualizada. Otra caracter铆stica distintiva es que pueden atender no s贸lo al personal interno de la organizaci贸n a la que pertenecen, sino que tambi茅n son capaces de proveer servicios a personal externo tales como clientes, proveedores y socios comerciales. Los portales permiten a las personas comunicarse y colaborar, proporcionan un punto de acceso uni cado al contenido din谩mico generado por las aplicaciones de negocio, fraccionan los silos de contenido y proveen informaci贸n personalizada de forma e caz. Los portales son tambi茅n plataformas de integraci贸n. Adem谩s de ofrecer sus propios servicios, un portal es tambi茅n un conducto para aplicaciones externas. Estas aplicaciones son t茅cnicamente conocidas como portlets. Un portlet es un componente Web con interfaz de usuario que puede ser ofrecido a trav茅s de aplicaciones de terceros (por ejemplo, un portal). Los portlets tienen interfaz de usuario, es decir, en lugar de devolver datos en crudo, los portlets presentan vistas a los usuarios. Adem谩s, los portlets son aplicaciones complejas con contexto que pueden soportar ujos de trabajos compuestos de m煤ltiples pasos. La especi caci贸n de portlet [6, 7] ofrece interoperabilidad entre las plataformas de portales y los portlets, estos es, permite a los desarrolladores escribir el portlet una vez, y reutilizarlo en cualquier portal que soporte la especi caci贸n. Esto proporciona la infraestructura para hacer posible un mercado de portlets de manera que, los portales puedan ofrecer portlets provistos por terceros. En 2006 se puso en marcha el proyecto Open Source Portlet Repository Project (un repositorio de portlets de c贸digo abierto) para fomentar el libre intercambio de portlets de c贸digo abierto. Este repositorio es "una biblioteca de aplicaciones listas para correr que se pueden descargar y desplegar directamente en su portal sin, en la mayor铆a de los casos, con gura- 1 ciones adicionales" [2]. Otras iniciativas similares son Portlet Swap (jboss.org) y Liferay Marketplace (liferay.com). La especi caci贸n Web Services for Remote Portlets (WSRP) va un paso m谩s all谩 y permite el renderizado remoto de los portlets. El mantra de esta especi - caci贸n es desplegar una vez, proveer en cualquier lugar . Con WSRP, un portlet puede estar alojado ( producido ) en una infraestructura completamente aislada de los portales que ofrecen ( consumen ) el portlet a sus usuarios. Esto convierte a WSRP en una soluci贸n viable para construir portales federados, es decir, una red de portales interconectados donde los recursos alojados en un portal pueden estar disponibles en muchos. Desde esta perspectiva, los portlets juegan en la capa de presentaci贸n el mismo papel que los servicios web convencionales juegan en la capa de l贸gica de negocio: permiten crear sistemas complejos mediante la composici贸n de sistemas reusables m谩s sencillos. Las principales diferencias con los servicios web tradicionales consisten en qu茅 se est谩 reutilizando (que incluye la interfaz de usuario) y d贸nde se produce la integraci贸n (en la capa de presentaci贸n). 2 Problema General La variabilidad en software es la capacidad de un sistema o artefacto software para ser modi cado, personalizado o con gurado para su uso en un contexto particular. Pero, 驴cu谩nta variabilidad debemos considerar? 驴Qui茅n es consciente de la variabilidad requerida? Para responder a estas preguntas vamos a introducir un ejemplo. Considere una compa帽铆a a茅rea (por ejemplo, IBERIA) que ofrece dos servicios en t茅rminos de portlets: searchFlight y bookFlight. De esta manera, las agencias de viajes (por ejemplo, HALCON) pueden hacer uso de estos portlets dentro de sus portales. Los usuarios (por ejemplo, los clientes de HALCON) acceden al portal de la agencia de viajes sin ser conscientes de que searchFlight est谩 siendo ofrecido por un tercero (es decir, IBERIA). Por lo tanto, los portlets son expl铆citamente desarrollados para ser utilizados en m煤ltiples portales, ya sea desplegados localmente o provistos de forma remota. El punto importante a destacar es que los portlets pueden ser reutilizados por diversos contextos y audiencias. Por ejemplo, IBERIA ofrece sus servicios no s贸lo a HALCON, sino tambi茅n a otras agencias de viajes (por ejemplo, EROSKI). Esto signi ca que searchFlight tambi茅n debe atender a las necesidades de integraci贸n de EROSKI. Por otro lado, incluso los clientes de un portal dado pueden tener diferentes necesidades. Por ejemplo, el usuario Oscar es muy aprensivo a las condiciones clim谩ticas por lo que siempre consulta el pron贸stico del tiempo antes de jar la fecha de un viaje. Esto s贸lo se aplica a Oscar, y no es contemplado por el portlet ightBooking. Por lo tanto, el Sr. Oscar se ve obligado a moverse fuera del 谩mbito del portal para satisfacer esta necesidad de datos (por ejemplo, a trav茅s de un widget weatherForecast ), y es su responsabilidad pasar los datos necesarios para la consulta del portal al widget. El ejemplo anterior sirve para ilustrar los diferentes contextos en los que la 2 variabilidad puede ser jada y decidida. En concreto, existen tres "reinos de decisi贸n": el proveedor del portlet (por ejemplo, IBERIA). En este caso, el proveedor realiza un an谩lisis profundo del dominio para satisfacer las variaciones del portlet requeridas por todos los usuarios y escenarios donde su portlet puede ser utilizado. el consumidor del portlet (por ejemplo, HALCON). Aqu铆, el portal del consumidor realiza un an谩lisis de su base de consumidores, y provee los medios al propietario del portal para con gurar el portlet adecuadamente. el usuario nal (por ejemplo, el Sr. Oscar). Ning煤n dise帽o puede proporcionar informaci贸n para cada situaci贸n, y ning煤n dise帽ador puede incluir informaci贸n personalizada para cada usuario. Esto es cierto para cualquier aplicaci贸n web, y los portlets no son una excepci贸n. Merece la pena mencionar, que estos reinos de decisi贸n no son ortogonales sino complementarios. Todos, el proveedor del portlet, el consumidor del portlet, e incluso, los usuarios nales, deben colaborar para obtener una mejor experiencia en la web. Las secciones siguientes profundizan en cada uno de estos escenarios. 3 Escenario 1: Variabilidad basada en el Provee- dor Este escenario pone la carga de la variabilidad sobre los hombros del proveedor. El proveedor debe realizar un an谩lisis del dominio con el n de comprender los diferentes entornos en los que sus portlets van a ser desplegados. Esto lleva a la noci贸n de Consumer Pro le (o per l del consumidor). El Consumer Pro le incluye no s贸lo detalles sobre la plataforma del consumidor (por ejemplo, JBoss GateIn, Liferay, eXo Platform), sino tambi茅n requisitos funcionales planteados por el propietario portal que necesitan ser atendidos por el proveedor del portlet. Mientras que el per l de usuario caracteriza al usuario nal (por ejemplo, edad, nombre, etc.), el Consumer Pro le recoge la idiosincrasia de la organizaci贸n a trav茅s de la cual se est谩 ofreciendo el portlet (por ejemplo, el propietario del portal) en cuanto a la funcionalidad del portlet se re ere. El per l de usuario puede ser din谩mico y, por lo tanto, requiere que el portlet pueda ser personalizado en tiempo de ejecuci贸n. Por el contrario, el Consumer Pro le se conoce en tiempo de registro, y no siempre es apropiado o posible considerarlo en tiempo de ejecuci 贸n. En este caso, es mejor personalizar el c贸digo en tiempo de desarrollo y producir un portlet espec铆 co para la organizaci贸n que incluya funcionalidad personalizada. Para este n, se propone el uso de l铆neas de producto software (SPL) para el desarrollo de portlets. 3 Desarrollo basado en SPL hace referencia a los m茅todos, herramientas y t茅cnicas para la creaci贸n de una colecci贸n de sistemas software similares a partir de un conjunto compartido de artefactos software utilizando un medio de producci 贸n com煤n. En este escenario, ya no tenemos un portlet sino una familia de portlets, y el proveedor de portlet se convierte en la "cadena de montaje" de esta familia. Este trabajo promueve esta visi贸n mediante la introducci贸n de una arquitectura compatible con el est谩ndar WSRP que permite a los consumidores de portlets manejar familias de portlet de la misma manera en la que manejan "portlets tradicionales". Al hacer esto, los portlets est谩n m谩s cerca de convertirse en servicios realmente reutilizables y, por lo tanto, permitir la construcci贸n de Arquitecturas Orientadas a Servicios (SOA) usando portlets. Una arquitectura SOA de de ne como "una estrategia de TI que organiza las funciones discretas contenidas en las aplicaciones empresariales en servicios interoperables est谩ndares que pueden ser combinados y reutilizados de manera 谩gil para satisfacer las necesidades del negocio" - BEA Systems, Inc. SOA ofrece a las organizaciones una mayor agilidad, ya que pueden desplegar r谩pidamente nuevos procesos de negocio o modi car los existentes en respuesta a los cambios del mercado. Los portales basados en portlets podr铆an proporcionar un enfoque ligero a las SOA. La de nici贸n anterior puede reformularse utilizando la terminolog 铆a de portales como una estrategia de TI que organiza las funciones discretas contenidas en las aplicaciones empresariales [portlets] en servicios interoperables [portlets remotos pueden comunicarse y compartir datos] est谩ndares [WSRP est谩 basado en los est谩ndares de servicios web] que pueden ser combinados [los portales pueden agregar informaci贸n de m煤ltiples portlets] y reutilizados de manera 谩gil [WSRP no requiere esfuerzo de programaci贸n] para satisfacer las necesidades del negocio . Aunque un n煤mero creciente de organizaciones se est谩n moviendo hacia las SOA muchas est谩n teniendo di cultades para identi- car el primer paso en el proceso. Aquellas empresas que buscan bene ciarse de las SOA pueden utilizar los portales basados en portlets como su primer paso en este camino [9]. Este escenario SOA no s贸lo requiere interoperabilidad (a trav茅s de los est谩ndares de portlets) y la difusi贸n de los portlets (a trav茅s de los repositorios de portlets), sino tambi茅n variabilidad. Los portlets tienden a ser componentes de grano grueso, ya que encapsulan tanto la capa de presentaci贸n, como la capa de funcional. Estos componentes de granularidad gruesa tienen menos posibilidades de ser reutilizados "tal cual" [5]. Esto puede poner en peligro la visi贸n de los portlets como servicios reutilizables. Esto introduce las siguientes preguntas de investigaci贸n: 驴C贸mo se puede aplicar el desarrollo basado en SPL a los portlets? 驴Cu谩les ser铆an las implicaciones para el est谩ndar WSRP? 4 4 Escenario 2: Variabilidad basada en el Con- sumidor Los proveedores de portlets no siempre pueden prever todas las necesidades de los consumidores, o algunos portlets podr铆an necesitar extensiones que no pueden ser soportadas utilizando los mecanismos de parametrizaci贸n habituales. El etiquetado social es un ejemplo de ello. Los portales, en un grado mayor que otras aplicacionesWeb, tienen la noci贸n de comunidad profundamente arraigada en el interior de su naturaleza. Espec铆 camente, los Enterprise Information Portals nacieron para dar soporte a los empleados dentro de una organizaci贸n. Por lo tanto, es natural integrar funcionalidades presentes en las redes sociales dentro de estos portales. Entre estas funcionalidades, este trabajo se centra en el etiquetado. La motivaci贸n para llevar el etiquetado al lugar de trabajo, admite una doble perspectiva. Desde el punto de vista de la empresa, el etiquetado es un medio econ贸mico para compartir y retener conocimiento en el contexto de una organizaci贸n, previniendo la fuga de datos cr铆ticos fuera de la empresa [4]. Desde la perspectiva de un empleado, distintos estudios [11, 1, 8] concluyen que las motivaciones individuales para utilizar el etiquetado en el lugar de trabajo, tales como la creaci贸n de un repositorio personal o re-encontrar los recursos propios a煤n son motivaciones importantes. En este escenario, los etiquetadores (es decir, la comunidad del portal) y las etiquetas son activos del portal. Sin embargo, y a diferencia de los sitios de etiquetado tradicionales, los portales podr铆an no contener la descripci贸n de todos los recursos susceptibles de ser etiquetados. Por ejemplo, la descripci贸n de los libros o de los hoteles que se ofrecen a trav茅s del portal la podr铆a proveer de forma remota, por ejemplo, por Amazon y Expedia, respectivamente. Esta externalizaci贸n de la descripci贸n de los contenidos no implica que no merezca la pena etiquetar los recursos externos. Esto nos lleva a distinguir entre dos actores: el proveedor de recursos, que mantiene el contenido de los recursos etiquetables (por ejemplo, la descripci贸n del libro en el caso de Amazon), y el consumidor de recursos (es decir, el portal), que mantiene la comunidad de etiquetadores y las etiquetas. De la misma manera en que los portlets adaptan su capa de presentaci贸n a las directrices est茅ticas del portal que los aloja, el etiquetado a trav茅s de los portlets tambi茅n debe adaptarse a las peculiaridades del portal del consumidor. Esto introduce las siguientes preguntas de investigaci贸n: 驴C贸mo pueden los portlets ser conscientes de las especi cidades del portal, en concreto, aquellas referentes al etiquetado? 5 Escenario 3: Variabilidad basada en el Usuario La personalizaci贸n es el proceso de adaptaci贸n de las p谩ginas a las caracter铆sticas o preferencias individuales de los usuarios de manera que resulten m谩s e caces para satisfacer sus objetivos. Se basan en la teor铆a de que cada usuario tiene intereses y necesidades 煤nicas. Desafortunadamente, los usuarios normalmente 5 no tienen in uencia en la elecci贸n de qu茅 contenido puede ser personalizado o c贸mo puede este personalizarse. Adem谩s, no siempre es f谩cil para el dise帽ador prever los distintos contextos y objetivos desde los que se acceden a su aplicaci贸n. "Ning煤n dise帽o puede proporcionar informaci贸n para cada situaci贸n, y ning煤n dise帽ador puede incluir informaci贸n personalizada para cada usuario" [10]. No hace mucho tiempo, s贸lo los desarrolladores pod铆an crear aplicaciones. Los usuarios s贸lo pod铆an utilizar lo que los desarrolladores hab铆an creado antes. Sin embargo, las cosas han cambiado. Con los mashups, los usuarios pueden evitar el departamento de TI y crear sus propias aplicaciones en respuesta a sus propias necesidades. Un mashup es una aplicaci贸n web ligera creada por la combinaci贸n de informaci贸n y capacidades de m谩s de una fuente existente para ofrecer nuevas funciones y conocimiento. Nuevas herramientas est谩n actualmente disponibles (por ejemplo, Software AG Presto, IBM Mashup Center, Kofax Kapow) que requieren poca o ninguna participaci贸n del departamento de TI y permiten a los usuarios con experiencia crear el mashup que necesitan, cuando lo necesitan. Habilitando a los usuarios de esta manera, se puede reducir el n煤mero de aplicaciones que esperan a la cola del departamento de TI para ser creadas, el tiempo y los costos de desarrollo y se puede reducir el costo de crear informaci贸n personalizada ya que los usuarios pueden adaptar ellos mismos la informaci贸n a la forma en que la necesitan [3]. Esto introduce las siguientes preguntas de investigaci贸n: 驴C贸mo pueden los mashups ser introducidos en los portales basados en portlets? 6 Contribuciones Esta tesis se ha desarrollado en el contexto de la ingenier铆a, lo que nos empuj贸 a lograr no s贸lo una contribuci贸n acad茅mica sino tambi茅n a mirar la aplicabilidad de estas ideas. Para ello, se proporciona una implementaci贸n de las ideas aqu铆 introducidas. En nuestra opini贸n, esta tesis hace las siguientes aportaciones: 6.0.1 Variabilidad basada en el Proveedor Este trabajo promueve la visi贸n de los portlets como servicios reutilizables mediante la introducci贸n de la noci贸n de Consumer Pro le como una forma de capturar las especi cidades de las diferentes organizaciones, donde el portlet puede ser utilizado. Esto a su vez conduce al uso de un enfoque de desarrollo de portlets basado en SPL y a la introducci贸n de una arquitectura compatible con el est谩ndar WSRP que permite a los consumidores de portlets manejar familias de portlet de la misma manera en la que manejan "portlets tradicionales". La soluci贸n se ha apoyado en el proyecto WSRP4Java1. 1http: //portals.apache.org/wsrp4j/ 6 6.0.2 Variabilidad basada en el Consumidor Esta tesis explora aquellos medios que pueden ser m谩s adecuados para dar soporte a las caracter铆sticas espec铆 cas del consumidor. El etiquetado se utiliza como un ejemplo. Este trabajo argumenta que el etiquetado debe ser ortogonalmente soportado como una funcionalidad transversal encima de los portlets. El principal reto se basa en la coherencia tanto en el back-end (esto es, el uso de una estructura com煤n de datos, por ejemplo, un conjunto com煤n de etiquetas), y el front-end (esto es, las interacciones con la funcionalidad de etiquetado deben ser soportadas de forma homog茅nea a lo largo de todo el portal utilizando estilos de presentaci贸n similares). El mecanismo de eventos de los portlet y las anotaciones RDFa se utilizan para cumplir con este requisito. Un ejemplo sobre Liferay ilustra la viabilidad del enfoque. 6.0.3 Variabilidad basada en el Usuario El enfoque presentado introduce mashups como un mecanismo de personalizaci 贸n adicional mediante el cual los usuarios del portal pueden complementar los servicios del portal (es decir, los portlets) con sus propias necesidades de informaci贸n. El enfoque se implementa sobre Liferay como la plataforma de portales utilizando los portlets como la tecnolog铆a para soportar los servicios del portal y XBL como que la tecnolog铆a de integraci贸n. Para facilitar la adopci贸n del enfoque se ha desarrollado una herramienta visual que oculta los tecnicismos de XBL a los usuarios. 7 Conclusiones El protocolo WSRP describe la conversaci贸n entre los proveedores de portlets y los consumidores que act煤an en nombre de los usuarios nales: los proveedores son los servicios web con capa de presentaci贸n que alojan los portlets y son capaces de procesar las solicitudes de markup y las de interacci贸n del usuario con los portlets, los consumidores utilizan estos servicios web como parte de las vistas que presentan a los usuarios nales y gestionan las interacci贸n de los usuarios nales con la capa de presentaci贸n de los portlets, los usuarios nales son los clientes de los consumidores Estos roles constituyen los diferentes contextos en los que la variabilidad de los portlets remotos se puede jar y decidir. el proveedor de portlet. En este caso, el proveedor de portlets lleva a cabo un an谩lisis profundo del dominio y proporciona a los consumidores un conjunto cerrado de variantes entre las que elegir. 7 el consumidor portlet. Los consumidores de portlets tambi茅n pueden crear y a帽adir sus propias variantes espec铆 cas del producto, por ejemplo, para tener en cuenta los requisitos que para ser satisfechos requieren el uso de funcionalidad externa. el usuario nal. Hay una tendencia creciente para proporcionar variabilidad a los usuarios nales (por ejemplo, mecanismos a trav茅s de plugins). Sin embargo, no podemos esperar que los usuarios nales puedan editar y compilar el c贸digo fuente. Esta tesis aborda el reto de soportar variabilidad para cada uno de estos escenarios

    Combining SOA and BPM Technologies for Cross-System Process Automation

    Get PDF
    This paper summarizes the results of an industry case study that introduced a cross-system business process automation solution based on a combination of SOA and BPM standard technologies (i.e., BPMN, BPEL, WSDL). Besides discussing major weaknesses of the existing, custom-built, solution and comparing them against experiences with the developed prototype, the paper presents a course of action for transforming the current solution into the proposed solution. This includes a general approach, consisting of four distinct steps, as well as specific action items that are to be performed for every step. The discussion also covers language and tool support and challenges arising from the transformation

    A Reusability Model for Portlets

    No full text
    corecore