@article {toffetti2013IC, title = {Kriging Controllers for Cloud Applications}, journal = {IEEE Internet Computing}, volume = {17}, year = {2013}, month = {July-August 2013}, pages = {40-47}, publisher = {IEEE}, abstract = {Infrastructure as a Service is a Cloud computing paradigm that enables service providers to execute applications on third-party infrastructures with the pay-as-you-go billing model. Service providers can balance operational costs and quality of service by monitoring the application behavior and changing the deployed configuration at runtime as operating conditions change. Current approaches for automatically scaling cloud applications exploit user defined rules that respond well to events that can be predicted at design time, but have no provision for learning, hence do not react adequately to unexpected execution conditions. In this article we present a new approach for designing autonomic controllers that automatically adapt to unpredicted conditions by dynamically updating a model of the system behavior. The approach demonstrates Kriging models as a suitable means to design efficient autonomic controllers.}, keywords = {automatic control, autonomic computing, autonomic controller, cloud computing}, issn = {1089-7801}, doi = {10.1109/MIC.2012.142}, author = {Giovanni Toffetti-Carughi and Alessio Gambi and Mauro Pezz{\`e} and Cesare Pautasso} } @inproceedings {sosoa:2011, title = {Towards Self-Organizing Service-Oriented Architectures}, year = {2011}, month = {July}, pages = {115-121}, publisher = {IEEE}, address = {Washington, DC, USA}, abstract = {Service-oriented architectures (SOAs) provide a successful model for structuring complex distributed software systems, as they reduce the cost of ownership and ease the creation of new applications by composing existing services. However, currently, the development of service-oriented applications requires many manual tasks and prevailing infrastructure is often based on centralized components that are central points of failure and easily become bottlenecks. In this paper, we promote self-organizing SOA as a new approach to overcome these limitations. Self-organizing SOA integrates research results in the areas of autonomic and service oriented computing. We consider self-organizing features for the whole life-cycle of a service-oriented application, from the creation to the execution, optimization, and monitoring.}, keywords = {autonomic computing, monitoring, self-organizing service-oriented architecture, service composition, service oriented computing, Web services}, doi = {10.1109/SERVICES.2011.44}, author = {Walter Binder and Daniele Bonetta and Cesare Pautasso and Achille Peternier and Diego Milano and Heiko Schuldt and Nenad Stojnic and Boi Faltings and Immanuel Trummer} } @conference {jopera:2010:icwe, title = {Engineering autonomic controllers for virtualized web applications}, booktitle = {10th international conference on Web engineering (ICWE 2010)}, series = {ICWE{\textquoteright}10}, volume = {6189}, year = {2010}, note = {Best Paper Award}, month = {July}, pages = {66{\textendash}80}, publisher = {Springer}, organization = {Springer}, address = {Berlin, Heidelberg}, keywords = {autonomic computing, cloud computing, control system synthesis, JOpera}, isbn = {3-642-13910-8, 978-3-642-13910-9}, doi = {10.1007/978-3-642-13911-6_5}, author = {Giovanni Toffetti-Carughi and Alessio Gambi and Mauro Pezz{\`e} and Cesare Pautasso} } @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} } @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} } @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} }