@conference {apiace:2024:msr,
	title = {APIstic: A Large Collection of OpenAPI Metrics},
	booktitle = {21st IEEE/ACM International Conference on Mining Software Repositories (MSR)},
	year = {2024},
	month = {April},
	pages = {265 - 277},
	address = {Lisbon, Portugal},
	abstract = {In the rapidly evolving landscape of web services, the significance of efficiently designed and well-documented APIs is paramount. In this paper, we present APIstic an API analytics dataset and exploration tool to navigate and segment APIs based on an extensive set of precomputed metrics extracted from OpenAPI specifications, sourced from GitHub, SwaggerHub, BigQuery and APIs.guru.
These pre-computed metrics are categorized into structure, data model, natural language description, and security metrics.
The extensive dataset of varied API metrics provides crucial insights into API design and documentation for both researchers and practitioners. Researchers can use APIstic as an empirical resource to extract refined samples, analyze API design trends, best practices, smells, and patterns. For API designers, it serves as a benchmarking tool to assess, compare, and improve API structures, data models, and documentation using metrics to select points of references among 1,275,568 valid OpenAPI specifications.
The paper discusses potential use cases of the collected data and presents a descriptive analysis of selected API analytics metrics. },
	keywords = {dataset, metrics, OpenAPI},
	doi = {10.1145/3643991.3644932},
	url = {https://dl.acm.org/doi/10.1145/3643991.3644932},
	author = {Souhaila Serbout and Cesare Pautasso}
}
@conference {apiace:2023:europlop,
	title = {API Rate Limit Adoption - A Pattern Collection},
	booktitle = {28th European Conference on Pattern Languages of Programs (EuroPLoP 2023)},
	year = {2023},
	month = {July},
	publisher = {ACM},
	organization = {ACM},
	address = {Kloster Irsee, Germany},
	keywords = {API Design Patterns},
	doi = {10.1145/3628034.3628039},
	url = {https://dl.acm.org/doi/10.1145/3628034.3628039},
	author = {Souhaila Serbout and Amine El Malki and Cesare Pautasso and Uwe Zdun}
}
@phdthesis {2018:asq:phd,
	title = {ASQ: Active Learning with Interactive Web Presentations and Classroom Analytics},
	year = {2018},
	month = {August},
	school = {USI},
	type = {PhD},
	address = {Lugano, Switzerland},
	abstract = {Today it is commonly accepted that the effectiveness of instructional technology, measured as improvement over the learning outcomes of students, is highly cor- related with the learning environment, the applied pedagogies and the goals of the participants of the learning process. The often applied passive lecture model and the undirected use of modern technology such as student laptops and smart- phones has been associated with increased levels of inattention and poor student performance. To address this, our work is focused on creating instructional technology for orchestrating traditional post-secondary brick-and-mortar classrooms of computer science education where active learning is the pedagogy of choice. We promote active learning during interactive lectures featuring retrieval practice with open practice question types of all answer depth formats(recognition, cued/free recall) directly integrated with slides. These turn student devices from a source of distraction to a learning affordance. Moreover, we take advantage of modern real-time Web technologies and machine learning techniques to allow timely and effortless gathering, assessment and classification of all student responses and activity during lectures thus tackling issues of scale with extrinsic classroom activities.

This dissertation introduces ASQ, a Web application for increasing teacher awareness by (i) turning student{\textquoteright}s devices from distraction tools to learning affordances; (ii) facilitating the application of active learning with the use of question types of various formats and depth; and (iii) utilizing real-time data analytics to facilitate the collection of students submissions, accelerate feedback cycles and infer student behaviors dynamics. With ASQ lecture slides are transformed into an interactive social playground for knowledge construction where students ex- periment with the presented material (individually or collaboratively), answer questions and continuously give feedback about the lecture quality. We reinforce the role of teachers as the driver of classroom activity by providing them with information to follow the progress of the learning process, spot learning gaps or misconceptions early and provide feedback when needed. We begin by focusing on the engineering aspects of such an application and discusses in depth how to architect interactive presentations for the Web and design an extensible set of active learning question types for live audiences. Next, we move to the educational technology domain and combine several longitudinal case studies in real-world computer science courses involving hundreds of students, which showcase the potential of a data-driven approach to infer students dynamics and design more engaging lectures, with student and instructor evaluation studies of ASQ to confirm its the suitability as lecturing tool in the modern classroom.
},
	keywords = {ASQ},
	author = {Vasileios Triglianos}
}
@article {2017:jwe:liquid,
	title = {Architecting Liquid Software},
	journal = {Journal of Web Engineering},
	volume = {16},
	year = {2017},
	month = {September},
	pages = {433-470},
	abstract = {The Liquid Software metaphor refers to software that can operate seamlessly across multiple devices owned by one or multiple users. Liquid software applications can take advantage of the computing, storage and communication resources available on all the devices owned by the user. Liquid software applications can also dynamically migrate from one device to another, following the user{\textquoteright}s attention and usage context. The key design goal in Liquid Software development is to minimize the additional efforts arising from multiple device ownership (e.g., installation, synchronization and general maintenance of personal computers, smartphones, tablets, home and car displays, and wearable devices), while keeping the users in full control of their devices, applications and data. In this paper we present the design space for Liquid Software, categorizing and discussing the most important architectural dimensions and technical choices. We also provide an introduction and comparison of two frameworks implementing Liquid Software capabilities in the context of the World Wide Web.
},
	keywords = {design space, liquid software, multi-device programming, software architecture},
	doi = {10.26421/JWE16.5-6},
	url = {http://www.rintonpress.com/journals/jweonline.html$\#$v16n56},
	author = {Andrea Gallidabino and Cesare Pautasso and Tommi Mikkonen and Kari Systa and Jari-Pekka Voutilainen and Antero Taivalsaari}
}
@conference {liquidjs:2016:wicsa,
	title = {On the Architecture of Liquid Software: Technology Alternatives and Design Space},
	booktitle = {13th Working IEEE/IFIP Conference on Software Architecture (WICSA 2016)},
	year = {2016},
	month = {April},
	address = {Venice, Italy},
	abstract = {The liquid metaphor refers to software that operates seamlessly across multiple devices owned by one or multiple users. Liquid software architectures can dynamically deploy and redeploy stateful software components and transparently adapt them to the capabilities of heterogeneous target devices. The key design goal in liquid software development is to minimize the efforts that are related to multiple device ownership (e.g., installation, synchronization and general maintenance of personal computers, smartphones, tablets, home displays, cars and wearable devices), while keeping the users in full control of their devices, applications and data. In this paper we present a design space for liquid software, categorizing and discussing the most important architectural issues and alternatives. These alternatives represent relevant capabilities offered by emerging technologies and deployment platforms that are then positioned and compared within the design space presented in the paper.},
	keywords = {design space, liquid software, liquid.js},
	author = {Andrea Gallidabino and Cesare Pautasso and Ville Ilvonen and Tommi Mikkonen and Kari Systa and Jari-Pekka Voutilainen and Antero Taivalsaari}
}
@conference {asq:icwe:2015,
	title = {asqium: A JavaScript Plugin Framework for Extensible Client and Server-side Components},
	booktitle = {15th International Conference on Web Engineering (ICWE 2015)},
	year = {2015},
	month = {June},
	pages = {81-98},
	publisher = {Springer},
	organization = {Springer},
	address = {Rotterdam, NL},
	abstract = {JavaScript has been growing from a language for embedding simple scripts into Web pages to a language for programming complex Web applications, whose logic is deployed across both Web browsers and Web servers. Current software packaging mechanisms for JavaScript enable a basic level of modularity and reuse. However, they have not yet reached full maturity in terms of enabling to extend a system with features contributed as third-party plugins, while encapsulating them adequately.
In this paper we present a novel plugin system for JavaScript applications, which integrate Node.js modules with HTML5 Web Components. It provides abstractions for: real time and loosely coupled communication between front-end and back-end components, persistent state storage, and isomorphic usage of JavaScript. Plugins can use hooks and events to contribute functionality and embed it into the main application flow, while respecting the common asynchronous non-blocking programming paradigm of JavaScript. We demonstrate the expressiveness of the framework as it is used to build ASQ: an open and extensible educational Web platform.
},
	keywords = {ASQ, plugin architecture, web framework},
	doi = {10.1007/978-3-319-19890-3_7},
	author = {Vasileios Triglianos and Cesare Pautasso}
}
@inproceedings {tcc:2014:wsrest,
	title = {Atomic Distributed Transactions: a RESTful Design},
	year = {2014},
	month = {April},
	publisher = {ACM},
	address = {Seoul, Korea},
	abstract = {The REST architectural style supports the reliable interaction of clients with a single server. However, no guarantees can be made for more complex interactions which require to atomically transfer state among resources distributed across multiple servers. In this paper we describe a lightweight design for transactional composition of RESTful services. The approach -- based on the Try-Cancel/Confirm (TCC) pattern -- does not require any extension to the HTTP protocol. The design assumes that resources are designed to comply with the TCC pattern and ensures that the resources involved in the transaction are not aware of it. It delegates the responsability of achieving the atomicity of the transaction to a coordinator which exposes a RESTful API.},
	keywords = {atomic transactions, REST, TCC},
	author = {Guy Pardon and Cesare Pautasso}
}
@article {triglianos2013www,
	title = {ASQ: Interactive Web Presentations for Hybrid MOOCs},
	year = {2013},
	month = {May},
	address = {Rio de Janeiro, Brazil},
	abstract = {ASQ is a Web application for creating and delivering interactive HTML5 presentations. It is designed to support teachers that need to gather real-time feedback from the students while delivering their lectures. Presentation slides are delivered to viewers that can answer the questions embedded in the slides. The objective is to maximize the efficiency of bi-directional communication between the lecturer and a large audience. More specifically, in the context of a hybrid MOOC classroom, a teacher can use ASQ to get feedback in real time about the level of comprehension of the presented material while reducing the time for gathering survey data, monitoring attendance and assessing solutions.},
	keywords = {ASQ, hybrid MOOC, Web engineering},
	url = {http://dl.acm.org/citation.cfm?id=2487894},
	author = {Vasileios Triglianos and Cesare Pautasso}
}
@article {babazadeh2013www,
	title = {The Atomic Web Browser},
	year = {2013},
	month = {May},
	pages = {217-218},
	address = {Rio de Janeiro, Brazil},
	abstract = {The Atomic Web Browser achieves atomicity for distributed transactions across multiple RESTful APIs. Assuming that the participant APIs feature support for the Try-Confirm/Cancel pattern, the user may navigate with the Atomic Web Browser among multiple Web sites to perform local resource state transitions (e.g., reservations or bookings). Once the user indicates that the navigation has successfully completed, the Atomic Web browser takes care of confirming the local transitions to achieve the atomicity of the global transaction.},
	keywords = {REST, REST transactions, try-confirm-cancel, Web engineering},
	url = {http://dl.acm.org/citation.cfm?id=2487788.2487899},
	author = {Cesare Pautasso and Masiar Babazadeh}
}
@conference {5959776,
	title = {An Architectural Style for Liquid Web Services},
	booktitle = {9th Working IEEE/IFIP Conference on Software Architecture (WICSA 2011)},
	year = {2011},
	month = {June},
	pages = {232-241},
	address = {Boulder, CO, USA},
	abstract = {Just as liquids adapt their shape to the one of their container, liquid architectures feature a high degree of adaptability so that they can provide scalability to applications as they are executed on a wide variety of heterogeneous deployment environments. In this paper we enumerate the properties to be guaranteed by so-called liquid service-oriented architectures and define a set of design constraints that make up a novel architectural style for liquid architectures. These constraints drive the careful construction of a pattern, the Restful Actor (Reactor), which enables to deliver the required scalability by means of replication of its constituent parts. Reactors feature a Restful Web service interface and a composable architecture which is capable of delivering scalability and high performance in a way that is independent from the chosen deployment infrastructure. We discuss how the Reactor can be deployed to run on distributed (shared-nothing) execution environments typical of virtualized Cloud computing environments as well as on modern multicore processors with shared memory architectures.},
	keywords = {architectural styles, cloud computing, design constraints, liquid service oriented architectures, liquid Web services, multicores, patterns, performance, REST, RESTful actor, RESTful Web service interface, scalability, shared memory architectures, virtualized cloud computing environments, Web services},
	doi = {10.1109/WICSA.2011.38},
	author = {Daniele Bonetta and Cesare Pautasso}
}
@inproceedings {saw:2010:shark,
	title = {Architectural decision modeling with reuse},
	year = {2010},
	month = {May},
	pages = {13 - 20},
	publisher = {ACM},
	address = {Cape Town, South Africa},
	abstract = {Architectural decision modeling aims at supporting the software architecture design process by capturing a reusable body of architectural knowledge. Whereas significant progress has been made towards this vision, there still remains a number of open problems. This paper outlines selected research challenges and opportunities related to knowledge capturing and sharing, model evolution and verification, and the integration of the architectural design process with existing software development methodologies. Our goal is to start a discussion on a roadmap for future research on reusable modeling of architectural decisions.},
	keywords = {architectural decisions, SAW},
	isbn = {9781605589671},
	doi = {10.1145/1833335.1833338},
	author = {Marcin Nowak and Cesare Pautasso and Olaf Zimmermann}
}
@conference {jopera:2008:icac,
	title = {Automatic Configuration of an Autonomic Controller: An Experimental Study with Zero-Configuration Policies},
	booktitle = {5th International Conference on Autonomic Computing (ICAC 2008)},
	year = {2008},
	month = {June},
	pages = {67-76},
	publisher = {IEEE},
	organization = {IEEE},
	address = {Chicago, IL, USA},
	abstract = {Autonomic control managers can remove the need for manual system configuration in order to achieve good performance and efficient resource utilization. However, simple controllers based on reconfiguration actions tied to thresholds, or {\textquoteright}if-then{\textquoteright} rules, themselves need to be configured and tuned in order to adapt the controller behavior to the expected workload characteristic. In this paper we present an experimental study of zero-configuration policies that can be automatically tuned based on analytical models of the system under control. In particular, we have designed and implemented a threshold-free self-configuration policy for a distributed workflow execution engine and compared it with a standard PID controller. The experimental results included in the paper show that using such a policy the controller can tune itself in addition to reconfiguring the distributed engine and the proposed policy out-performs simpler policies that require manual and error-prone tuning of their parameters.},
	keywords = {analytical models, automatic configuration, automatic control, autonomic controller, control system synthesis, distributed workflow execution engine, PID control, resource management, resource utilization, workload characteristic, zero-configuration policies},
	doi = {10.1109/ICAC.2008.29},
	author = {Thomas Heinis and Cesare Pautasso}
}
@conference {adkwik:2007:seke,
	title = {ADkwik: Web 2.0 Collaboration System for Architectural Decision Engineering},
	booktitle = {Nineteenth International Conference on Software Engineering and Knowledge Engineering (SEKE 2007)},
	year = {2007},
	month = {July},
	pages = {255-260},
	address = {Boston, USA},
	abstract = {Capturing and sharing software architecture design rationale has always been particularly challenging in complex application domains such as enterprise computing. Facing the ongoing acceleration of technology innovation and economic forces such as outsourcing and offshoring, conservative knowledge management practices and existing tools are no longer sufficient, offering only rudimentary support for knowledge exchange and collaboration on the Internet. In this paper, we present ADkwik, a Web 2.0 collaboration system supporting the cooperative decision making work of software architects. We describe the realization of ADkwik as a situational application wiki and discuss initial evaluation results. Thanks to its ease of use, ADkwik has already shown concrete benefits to its users, including rapid team orientation, tangible decision making advice, and simplification of asset harvesting.},
	keywords = {architectural decisions},
	author = {Nelly Schuster and Olaf Zimmermann 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}
}
@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}
}
