@article {jopjauto07, title = {Autonomic resource provisioning for software business processes}, journal = {Information and Software Technology}, volume = {49}, year = {2007}, month = {January}, pages = {65-80}, abstract = {Software development nowadays involves several levels of abstraction: starting from the programming of single objects, to their combination into components, to their publication as services and the overall architecture linking elements at each level. As a result, software engineering is dealing with a wider range of artifacts and concepts (i.e., in the context of this paper: services and business processes) than ever before. In this paper we explore the importance of having an adequate engine for executing business processes written as compositions of Web services. The paper shows that, independently of the composition language used, the overall scalability of the system is determined by how the run-time engine treats the process execution. This is particularly relevant at the service level because publishing a process through a Web service interface makes it accessible to an unpredictable and potentially very large number of clients. As a consequence, the process developer is confronted with the difficult question of resource provisioning. Determining the optimal configuration of the distributed engine that runs the process becomes sensitive both to the actual number of clients and to the kinds of processes to be executed. The main contribution of the paper is to show how resource provisioning for software business processes can be solved using autonomic computing techniques. The engine separates execution in two stages (navigation and dispatching) and uses a controller to allocate the node of a cluster of computers to each one of those stages as the workload changes. The controller can be configured with different policies that define how to reconfigure the system. To prove the feasibility of the concept, we have implemented the autonomic controller and evaluated its performance with an extensive set of experiments.}, keywords = {autonomic computing, distributed business process execution engines, service oriented architectures, Web service composition}, doi = {10.1016/j.infsof.2006.08.010}, author = {Cesare Pautasso and Thomas Heinis and Gustavo Alonso} } @inbook {116, title = {Autonomic Computing for Virtual Laboratories}, booktitle = {Dependable Systems: Software, Computing, Networks}, number = {4028}, year = {2006}, pages = {211-230}, publisher = {Springer}, organization = {Springer}, abstract = {Virtual laboratories can be characterized by their long-lasting, large-scale computations, where a collection of heterogeneous tools is integrated into data processing pipelines. Such virtual experiments are typically modeled as scientific workflows in order to guarantee their reproduceability. In this chapter we present JOpera, one of the first autonomic infrastructures for managing virtual laboratories. JOpera provides a sophisticated Eclipse-based graphical environment to design, monitor and debug distributed computations at a high level of abstraction. The chapter describes the architecture of the workflow execution environment, emphasizing its support for the integration of heterogeneous tools and evaluating its autonomic capabilities, both in terms of reliable execution (self-healing) and automatic performance optimization (self-tuning).}, keywords = {autonomic computing, JOpera, scientific workflow management}, isbn = {3-540-36821-3}, doi = {10.1007/11808107_10}, author = {Cesare Pautasso and Win Bausch and Gustavo Alonso}, editor = {J{\"u}rg Kohlas and Bertrand Meyer and Andr{\'e} Schiper} } @conference {jopera:2006:scc, title = {Control the Flow: How to Safely Compose Streaming Services into Business Processes}, booktitle = {2006 IEEE International Conference on Services Computing}, year = {2006}, pages = {206 - 213}, publisher = {IEEE}, organization = {IEEE}, address = {Chicago, USA}, abstract = {Although workflow languages are widely used for composing discrete services, these are not suitable for stream based interactions. In this paper we address the problem of how to extend a conventional Web service composition language with the ability to deal with data streaming services. The paper discusses several modeling alternatives and presents a marker based semantics for safely dealing with pipelined processing in service compositions. The paper also presents application examples that illustrate the advantages of the proposed approach}, keywords = {JOpera, streaming, Web service composition}, doi = {10.1109/SCC.2006.38}, author = {Bi{\"o}rn Bi{\"o}rnstad and Cesare Pautasso and Gustavo Alonso} } @article {115, title = {Enforcing Web Services Business Protocols at Run-Time: a Process Driven Approach}, journal = {International Journal of Web Engineering and Technology (IJWET)}, volume = {2}, year = {2006}, pages = {396-411}, abstract = {Business processes provide abstractions for modelling business protocols that define the correct interactions between two or more Web services (WS). It has been shown that it is possible to automatically derive role-specific processes from a global protocol definition and also statically verify the compliance of a local process with the corresponding global business process. In this paper, we show that a similar approach can be used at run-time. We propose to employ process-based tools to enforce that the messages exchanged between different WS comply with a given business protocol, both in terms of sequencing constraints and data flow characteristics. Our solution simplifies the implementation of WS because it helps to separate the concern of business protocol compliance from the actual service implementation. To do so, we show how to transparently add a protocol enforcement layer to the WS messaging stack. Our experimental results indicate that this imposes a minimal overhead.}, keywords = {business process modeling, business protocols, choreography, conversation controller, data flow, JOpera, Web services}, issn = {1476-1289}, doi = {10.1504/IJWET.2006.010422}, url = {http://www.inderscience.com/info/inarticle.php?artid=10422}, author = {Bi{\"o}rn Bi{\"o}rnstad and Cesare Pautasso and Gustavo Alonso} } @article {117, title = {JOpera: Autonomic Service Orchestration}, journal = {IEEE Data Engineering Bulletin}, volume = {29}, year = {2006}, month = {September}, pages = {32-39}, keywords = {autonomic computing, JOpera, Web service composition}, url = {ftp://ftp.research.microsoft.com/pub/debull/A06sept/issue1.htm}, author = {Cesare Pautasso and Thomas Heinis and Gustavo Alonso} } @conference {jopera:2006:ccgrid, title = {Mirroring Resources or Mapping Requests: implementing WS-RF for Grid workflows}, booktitle = {6th IEEE International Symposium on Cluster Computing and the Grid (CCGrid2006)}, year = {2006}, month = {May}, address = {Singapore}, abstract = {The Web Services Resource Framework (WS-RF) and the Web Services Notification (WS-N) specifications are a crucial component of Grid infrastructures. They provide a standardized interface to stateful services so that they can be managed remotely. There are already several implementations of these specifications and initial performance studies have compared them in terms of the overhead observed by a single client. In this paper we address the problem of implementing the WS-RF and WS-N specifications for large scale systems. In particular, we discuss how to implement WS-RF and WSN as the management interfaces to a Grid workflow engine. In the paper we describe and compare two different architectures for mapping resources to processes. The first one mirrors the state of the process as a resource. The second one maps the client requests to access the state of a resource embedded into the Grid workflow engine. We include an extensive performance evaluation, comparing the resulting systems in terms of scalability when servicing a large number of concurrent clients. }, keywords = {grid computing, JOpera, scientific workflow management}, doi = {10.1109/CCGRID.2006.69}, author = {Thomas Heinis and Cesare Pautasso and Gustavo Alonso} } @inproceedings {jopera:2006:works, title = {Parallel Computing Patterns for Grid Workflows}, year = {2006}, month = {June}, address = {Paris, France}, abstract = {Whereas a consensus has been reached on defining the set of workflow patterns for business process modeling languages, no such patterns exists for workflows applied to scientific computing on the Grid. By looking at different kinds of parallelism, in this paper we identify a set of workflow patterns related to parallel and pipelined execution. The paper presents how these patterns can be represented in different Grid workflow languages and discusses their implications for the design of the underlying workflow management and execution infrastructure. A preliminary classification of these patterns is introduced by surveying how they are supported by several existing advanced scientific and Grid workflow languages.}, keywords = {grid computing, scientific workflow management, survey, workflow patterns}, author = {Cesare Pautasso and Gustavo Alonso} } @inbook {jopera:2006:acbook, title = {A Self-Configuring Service Composition Engine}, booktitle = {Autonomic Computing: Concepts, Infrastructure, and Applications}, year = {2006}, pages = {237-252}, publisher = {CRC Press}, organization = {CRC Press}, chapter = {12}, keywords = {autonomic computing}, isbn = {0-8493-9367-1}, doi = {10.1201/9781420009354.ch12}, author = {Thomas Heinis and Cesare Pautasso and Gustavo Alonso}, editor = {Manish Parashar and Salim Hariri} } @conference {jopera:2005:icws, title = {Autonomic Execution of Service Compositions}, booktitle = {3rd International Conference on Web Services (ICWS 2005)}, year = {2005}, month = {July}, publisher = {IEEE}, organization = {IEEE}, address = {Orlando, Florida}, abstract = {An increasing amount of Web services are being implemented using process management tools and languages (BPML, BPEL, etc.). The main advantage of processes is that designers can express complex business conversations at a high level of abstraction, even reusing standardized business protocols. The downside is that the infrastructure behind the Web service becomes more complex. This is particularly critical for Web services that may be subjected to high variability in demand and suffer from unpredictable peaks of heavy load. In this paper we present a flexible architecture for process execution that has been designed to support autonomic scalability. The system runs on a cluster of computers and reacts to workload variations by altering its configuration in order to optimally use the available resources. Such changes happen automatically and without any human intervention. This feature completely removes the need for the manual monitoring and reconfiguration of the system, which in practice is a difficult and time-consuming operation. In the paper we describe the architecture of the system and present an extensive performance evaluation of its autonomic capabilities.}, keywords = {autonomic computing, JOpera, Web service composition}, doi = {10.1109/ICWS.2005.28}, author = {Cesare Pautasso and Thomas Heinis and Gustavo Alonso} } @conference {jopera:2005:icac, title = {Design and Evaluation of an Autonomic Workflow Engine}, booktitle = {2nd International Conference on Autonomic Computing (ICAC-05)}, year = {2005}, month = {June}, pages = {27 - 38}, publisher = {IEEE}, organization = {IEEE}, address = {Seattle, Washington}, abstract = {In this paper we present the design and evaluate the performance of an autonomic workflow execution engine. Although there exist many distributed workflow engines, in practice, it remains a difficult problem to deploy such systems in an optimal configuration. Furthermore, when facing an unpredictable workload with high variability, manual reconfiguration is not an option. Thanks to its autonomic controller, the engine features self-configuration, self-tuning and self-healing properties. The engine runs on a cluster of computers using a tuple space to coordinate its various components. Its autonomic controller monitors its performance and responds to workload variations by altering the configuration. In case failures occur, the controller can recover the workflow execution state from persistent storage and migrate it to a different node of the cluster. Such interventions are carried out without any human supervision. As part of the results of our performance evaluation, we compare different autonomic control strategies and discuss how they can automatically tune the system}, keywords = {automatic configuration, autonomic computing, JOpera, Web service composition}, doi = {10.1109/ICAC.2005.21}, author = {Thomas Heinis and Cesare Pautasso and Gustavo Alonso} } @inproceedings {jopera:2005:sc, title = {Flexible Binding for Reusable Composition of Web Services}, year = {2005}, month = {April}, pages = {151-166}, publisher = {Springer}, address = {Edinburg, Scotland}, abstract = {In addition to publishing composite services as reusable services, compositions can also be reused by applying them to orchestrate different component services. To do so, it is important to describe compositions using flexible bindings, which define only the minimal constraints on the syntax and semantics of the services to be composed. This way, the choice of which service to invoke can be delayed to later stages in the life cycle of the composition. In the context of Web service composition, we refine the concept of binding beyond the basic distinction of static and dynamic binding. Bindings can be evaluated during the design, the compilation, the deployment, the beginning of the execution of a composition, or just before the actual service invocation takes place. Considering the current limited support of dynamic binding in the BPEL service composition language, we show how we addressed the problem in JOpera, where modeling bindings does not require a specific language construct as it can be considered a special application of reflection.}, keywords = {dynamic binding, JOpera, Web service composition}, doi = {10.1007/11550679_12}, author = {Cesare Pautasso and Gustavo Alonso} } @article {106, title = {The JOpera visual composition language}, journal = {J. Vis. Lang. Comput.}, volume = {16}, year = {2005}, month = {February}, pages = {119{\textendash}152}, abstract = {Composing Web services into a coherent application can be a tedious and error-prone task when using traditional textual scripting languages or emerging XML-based approaches. As an alternative, complex interactions patterns and data exchanges between different Web services can be effectively modeled using a visual language. In this paper, we discuss the requirements of such an application scenario and we fully describe the JOpera Visual Composition Language. An extensive set of visual editing tools, a compiler and a debugger for the language have been implemented as part of the JOpera system with the goal of providing a true visual environment for Web service composition with usability features emphasizing rapid development and visual scalability. }, keywords = {data flow, JOpera, visual composition languages, Web service composition, Web services}, issn = {1045-926X}, doi = {10.1016/j.jvlc.2004.08.004}, author = {Cesare Pautasso and Gustavo Alonso} } @conference {jopera:2005:escience, title = {Publishing Persistent Grid Computations as WS Resources}, booktitle = {1st IEEE International Conference on e-Science and Grid Computing (e-Science 2005)}, year = {2005}, month = {December}, publisher = {IEEE}, organization = {IEEE}, address = {Melbourne, Australia}, abstract = {Grid services can be composed into processes, providing a high level definition of the computations involved in terms of their data exchanges and control flow dependencies. We show how processes themselves can be efficiently published as Grid services by mapping the persistent state of the process executions to standard compliant interfaces as defined by the Web Services Resource Framework (WS-RF). Mapping processes to resources is a fundamental step to enable recursive Grid service composition, where composite Grid services are themselves published as services. This gives processes a standardized and wellunderstood interface that enables their management, monitoring, steering and adaptation. Additionally it eases their reusability and simplifies integration into existing Grid applications and portals. In order to determine the mapping{\textquoteright}s overhead, we include the results of a comprehensive performance evaluation.}, keywords = {grid computing, JOpera, scientific workflow management}, doi = {10.1109/E-SCIENCE.2005.67}, author = {Thomas Heinis and Cesare Pautasso and Oliver Deak and Gustavo Alonso} } @inproceedings {95, title = {From Web Service Composition to Megaprogramming}, volume = {3324}, year = {2004}, month = {August}, pages = {39 - 53}, publisher = {Springer}, address = {Toronto, Canada}, abstract = {With the emergence of Web service technologies, it has become possible to use high level megaprogramming models and visual tools to easily build distributed systems using Web services as reusable components. However, when attempting to apply the Web service composition paradigm in practical settings, some limitations become apparent. First of all, all kinds of existing {\textquotedblleft}legacy{\textquotedblright} components must be wrapped as Web services, incurring in additional development, maintenance, and unnecessary runtime overheads. Second, current implementations of Web service protocols guarantee interoperability at high runtime costs, which justifies the composition of only coarse-grained Web services. To address these limitations and support the composition of also fine-grained services, in this paper we generalize the notion of service by introducing an open service meta-model. This offers freedom of choice between different types of services, which also include, but are not limited to, Web services. As a consequence, we argue that service composition {\textendash} defined at the level of service interfaces {\textendash} should be orthogonal from the mechanisms and the protocols which are used to access the actual service implementations.}, keywords = {heterogeneity, JOpera, megaprogramming, Web services}, isbn = {978-3-540-25049-4}, doi = {10.1007/b10662610.1007/978-3-540-31811-8_4}, author = {Cesare Pautasso and Gustavo Alonso} } @article {96, title = {JOpera: a Toolkit for Efficient Visual Composition of Web Services}, journal = {International Journal of Electronic Commerce (IJEC)}, volume = {9}, year = {2004}, month = {Winter 2004/2005}, pages = {107-141}, abstract = {Web services are attracting attention because of their ability to provide standard interfaces to heterogeneous distributed services. Standard interfaces make it possible to compose more complex services out of basic ones. This paper tackles the problem of visual service composition and the efficient and scalable execution of the resulting composite services. The effort revolves around the JOpera system, which combines a visual programming environment for Web services with a flexible execution engine that interacts with Web services through the simple object access protocol (SOAP), described with Web services language description (WSDL) and registered with a universal description discovery and integration (UDDI) registry. The paper explains the syntax and implementation of the JOpera Visual Composition Language (JVCL) and its ability to provide different quality of service (QoS) levels in the execution of composite services. }, keywords = {JOpera, Scalable Process Execution, visual languages, Web service composition}, issn = {1086-4415 }, url = {http://www.ijec-web.org/past-issues/volume-9-number-2-winter-2004-05/ijecv9n2-6/}, author = {Cesare Pautasso and Gustavo Alonso} } @conference {93, title = {Programming for dependability in a service-based grid}, booktitle = {3rd IEEE/ACM International Symposium on Cluster Computing and the Grid, 2003 (CCGrid 2003)}, year = {2003}, month = {May}, pages = {164 - 171}, publisher = {IEEE}, organization = {IEEE}, address = {Tokyo, Japan}, abstract = {Service-based Grid infrastructures emphasize service composition rather than sharing of low level resources. The idea is to build Grid applications out of computational services provided by the different sites of the Grid. Recent developments in the area of Web services have strengthened this idea by standardizing procedures like service description, publication and invocation. What is still missing is the infrastructure necessary to support the complete life cycle of applications running on service based Grids, i.e., suitable programming paradigms, execution infrastructure, and the ability to monitor and control such computations. Moreover, once computations are made of composable services, dependability becomes a key issue that needs to be addressed by the infrastructure as it cannot be addressed separately by each individual service. To address these concerns, we have developed the BioOpera Grid computing platform. BioOpera is a process support system for dependable cluster computing that has been extended with additional functionality to provide adequate support for service-based Grids. In this paper we describe how BioOpera can be used to develop, execute, and administer highly dependable computations over service-based Grids.}, keywords = {BioOpera, distributed business process execution engines, grid computing, Web services}, isbn = {0-7695-1919-9}, doi = {10.1109/CCGRID.2003.1199365}, url = {http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1199365}, author = {Win Bausch and Cesare Pautasso and Gustavo Alonso} } @conference {94, title = {Visual composition of Web services}, booktitle = {IEEE Symposium on Human Centric Computing Languages and Environments (HCC 2003)}, year = {2003}, month = {October}, pages = {92 - 99}, publisher = {IEEE}, organization = {IEEE}, address = {Auckland, New Zealand}, abstract = {Composing Web services into a coherent application can be a tedious and error prone task when using traditional textual scripting languages. As an alternative, complex interactions patterns and data exchanges between different Web services can be effectively modeled using a visual language. In this paper we discuss the requirements of such an application scenario and we present the design of the BioOpera Flow Language. This visual composition language has been fully implemented in a development environment for Web service composition with usability features emphasizing rapid development and visual scalability.}, keywords = {JOpera, visual languages, visual service composition, Web service composition, Web services}, doi = {10.1109/HCC.2003.1260208}, url = {http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1260208}, author = {Cesare Pautasso and Gustavo Alonso} } @conference {92, title = {BioOpera: cluster-aware computing}, booktitle = {IEEE International Conference on Cluster Computing (CLUSTER 2002)}, year = {2002}, month = {September}, pages = {99 - 106}, publisher = {IEEE}, organization = {IEEE}, address = {Chicago, IL, USA}, abstract = {In this paper we present BioOpera, an extensible process support system for cluster-aware computing. It features an intuitive way to specify computations, as well as improved support for running them over a cluster providing monitoring, persistence, fault tolerance and interaction capabilities without sacrificing efficiency and scalability.}, keywords = {BioOpera, cluster computing, scientific workflow management}, doi = {10.1109/CLUSTR.2002.1137734}, url = {http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1137734}, author = {Win Bausch and Cesare Pautasso and Reto Schaeppi and Gustavo Alonso} } @conference {91, title = {Dependable computing in virtual laboratories}, booktitle = {17th IEEE International Conference on Data Engineering (ICDE 2001)}, year = {2001}, month = {April}, pages = {235 - 242}, publisher = {IEEE}, organization = {IEEE}, address = {Heidelberg, Germany}, abstract = {Many scientific disciplines are shifting from in vitro to in silico research as more physical processes and natural phenomena are examined in a computer (in silico) instead of being observed (in vitro). In many of these virtual laboratories, the computations involved are very complex and long lived. Currently, users are required to manually handle almost all aspects of such computations, including their dependability. Not surprisingly, this is a major bottleneck and a significant source of inefficiencies. To address this issue, we have developed BioOpera, an extensible process support management system for virtual laboratories. The authors briefly discuss the architecture and functionality of BioOpera and show how it can be used to efficiently manage long lived computations}, keywords = {bioinformatics, BioOpera, scientific workflow management, virtual laboratories}, doi = {10.1109/ICDE.2001.914834}, url = {http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=914834}, author = {Gustavo Alonso and Win Bausch and Cesare Pautasso and Ari Kahn} }