2,250 research outputs found

    Weaving aspects into web service orchestrations

    Get PDF
    Web Service orchestration engines need to be more open to enable the addition of new behaviours into service-based applications. In this paper, we illus- trate how, in a BPEL engine with aspect-weaving ca- pabilities, a process-driven application based on the Google Web Service can be dynamically adapted with new behaviours and hot-fixed to meet unforeseen post- deployment requirements. Business processes (the ap- plication skeletons) can be enriched with additional fea- tures such as debugging, execution monitoring, or an application-specific GUI. Dynamic aspects are also used on the processes themselves to tackle the problem of hot-fixes to long running processes. In this manner, composing a Web Service ’on-the-fly’ means weaving its choreography in- terface into the business process

    A taxonomy of asymmetric requirements aspects

    Get PDF
    The early aspects community has received increasing attention among researchers and practitioners, and has grown a set of meaningful terminology and concepts in recent years, including the notion of requirements aspects. Aspects at the requirements level present stakeholder concerns that crosscut the problem domain, with the potential for a broad impact on questions of scoping, prioritization, and architectural design. Although many existing requirements engineering approaches advocate and advertise an integral support of early aspects analysis, one challenge is that the notion of a requirements aspect is not yet well established to efficaciously serve the community. Instead of defining the term once and for all in a normally arduous and unproductive conceptual unification stage, we present a preliminary taxonomy based on the literature survey to show the different features of an asymmetric requirements aspect. Existing approaches that handle requirements aspects are compared and classified according to the proposed taxonomy. In addition,we study crosscutting security requirements to exemplify the taxonomy's use, substantiate its value, and explore its future directions

    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

    Early aspects: aspect-oriented requirements engineering and architecture design

    Get PDF
    This paper reports on the third Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design Workshop, which has been held in Lancaster, UK, on March 21, 2004. The workshop included a presentation session and working sessions in which the particular topics on early aspects were discussed. The primary goal of the workshop was to focus on challenges to defining methodical software development processes for aspects from early on in the software life cycle and explore the potential of proposed methods and techniques to scale up to industrial applications

    Runtime Adaptation of Scientific Service Workflows

    Get PDF
    Software landscapes are rather subject to change than being complete after having been built. Changes may be caused by a modified customer behavior, the shift to new hardware resources, or otherwise changed requirements. In such situations, several challenges arise. New architectural models have to be designed and implemented, existing software has to be integrated, and, finally, the new software has to be deployed, monitored, and, where appropriate, optimized during runtime under realistic usage scenarios. All of these situations often demand manual intervention, which causes them to be error-prone. This thesis addresses these types of runtime adaptation. Based on service-oriented architectures, an environment is developed that enables the integration of existing software (i.e., the wrapping of legacy software as web services). A workflow modeling tool that aims at an easy-to-use approach by separating the role of the workflow expert and the role of the domain expert. After the development of workflows, tools that observe the executing infrastructure and perform automatic scale-in and scale-out operations are presented. Infrastructure-as-a-Service providers are used to scale the infrastructure in a transparent and cost-efficient way. The deployment of necessary middleware tools is automatically done. The use of a distributed infrastructure can lead to communication problems. In order to keep workflows robust, these exceptional cases need to treated. But, in this way, the process logic of a workflow gets mixed up and bloated with infrastructural details, which yields an increase in its complexity. In this work, a module is presented that can deal automatically with infrastructural faults and that thereby allows to keep the separation of these two layers. When services or their components are hosted in a distributed environment, some requirements need to be addressed at each service separately. Although techniques as object-oriented programming or the usage of design patterns like the interceptor pattern ease the adaptation of service behavior or structures. Still, these methods require to modify the configuration or the implementation of each individual service. On the other side, aspect-oriented programming allows to weave functionality into existing code even without having its source. Since the functionality needs to be woven into the code, it depends on the specific implementation. In a service-oriented architecture, where the implementation of a service is unknown, this approach clearly has its limitations. The request/response aspects presented in this thesis overcome this obstacle and provide a SOA-compliant and new methods to weave functionality into the communication layer of web services. The main contributions of this thesis are the following: Shifting towards a service-oriented architecture: The generic and extensible Legacy Code Description Language and the corresponding framework allow to wrap existing software, e.g., as web services, which afterwards can be composed into a workflow by SimpleBPEL without overburdening the domain expert with technical details that are indeed handled by a workflow expert. Runtime adaption: Based on the standardized Business Process Execution Language an automatic scheduling approach is presented that monitors all used resources and is able to automatically provision new machines in case a scale-out becomes necessary. If the resource's load drops, e.g., because of less workflow executions, a scale-in is also automatically performed. The scheduling algorithm takes the data transfer between the services into account in order to prevent scheduling allocations that eventually increase the workflow's makespan due to unnecessary or disadvantageous data transfers. Furthermore, a multi-objective scheduling algorithm that is based on a genetic algorithm is able to additionally consider cost, in a way that a user can define her own preferences rising from optimized execution times of a workflow and minimized costs. Possible communication errors are automatically detected and, according to certain constraints, corrected. Adaptation of communication: The presented request/response aspects allow to weave functionality into the communication of web services. By defining a pointcut language that only relies on the exchanged documents, the implementation of services must neither be known nor be available. The weaving process itself is modeled using web services. In this way, the concept of request/response aspects is naturally embedded into a service-oriented architecture

    Atomic service-based scheduling for web services composition

    Get PDF
    With the rapid development of Internet technologies and widespread of Internet applications, Web Services has become an important research issue of World Wide Web Consortium (W3C). In order to cope with various requirements from service users, services need to be thoroughly and precisely described, thus improvement needs to be made in describing services as more properties should be added to the current service description model based on OWL-ร, an ontology structure consisting of service profiles and operations. Semantics is widely considered as one of the core supplements, which is able to provide the metadata of services, so as to better match requirements with services in the service repository. On the other hand, Web Services has attracted people from various fields to perform relevant experiments on how to cope with users' requirements. Service providers tend to coordinate service implementation by means of interacting with available resources and reconstructing existing service modules. The integration of self-contained software components becomes a key step to meet service demands. This thesis makes contributions to current service description. The introduction of the term "Atomic Service" is not only considered to be a more refined service structure, but also serves as the fundamental component for all service modules. Based on this, the thesis will discuss issues including composition and scheduling, with the purpose of building interoperations among composable service units and setting up the mechanism of realising business goals with composite services under the guidance of the service scheduling language. This notion is illustrated in a demonstration system to justify the manageable interrelationship between service modules and the way of composition
    corecore