@conference {apiace:2023:vissoft, title = {Interactively exploring API changes and versioning consistency}, booktitle = {11th IEEE Working Conference on Software Visualization (VISSOFT 2023)}, year = {2023}, month = {October}, pages = {28-39}, publisher = {IEEE}, organization = {IEEE}, address = {Bogota, Colombia}, abstract = {Application Programming Interfaces (APIs) evolve over time. As they change, they are expected to be versioned based on how changes might affect their clients. In this paper, we present two novel visualizations specifically designed to represent all structural changes and the level of adherence to semantic versioning practices over time. They can also serve for characterizing and comparing the evolution history of different Web APIs. The API VERSION CLOCK helps to visualize the sequence of API changes over time and highlight inconsistencies between major, minor, or patch version changes and the corresponding introduced breaking or non-breaking changes applied to the API. The API CHANGES overview aggregates all changes to an OpenAPI (OAS) description, highlighting the unstable vs. the stable elements of the API over its entire history. Both visualizations can be automatically created using the APICTURE, a command-line and web-based tool that analyzes the histories of git code repositories containing OAS descriptions, extracting the necessary data for generating visualizations and computing metrics related to API evolution and versioning. The visualizations have been successfully applied to classify, compare, and interactively explore the multi-year evolution history of APIs with up to hundreds of individual commits.}, keywords = {API Versioning; Software Visualization}, doi = {10.1109/VISSOFT60811.2023.00013}, url = {https://ieeexplore.ieee.org/document/10350155}, author = {Souhaila Serbout and Diana Carolina Mu{\~n}oz Hurtado and Cesare Pautasso} } @conference {2022:sose:apiace, title = {Impact of API Rate Limit on Reliability of Microservices- Based Architectures}, booktitle = {16th International Conference on Service-Oriented System Engineering (SOSE 2022)}, year = {2022}, month = {August}, publisher = {IEEE}, organization = {IEEE}, address = {San Francisco, USA}, abstract = {Many API patterns and best practices have been developed around microservices-based architectures, such as Rate Limiting and Circuit Breaking, to increase quality properties such as reliability, availability, scalability, and performance. Even though estimates on such properties would be beneficial, especially during the early design of such architectures, the real impact of the patterns on these properties has not been rigorously studied yet. This paper focuses on API Rate Limit and its impact on reliability properties from the perspective of API clients. We present an analytical model that considers specific workload configurations and predefined rate limits and then accurately predicts the success and failure rates of the back-end services. The model also presents a method for adaptively fine-tuning rate limits. We performed two extensive data experiments to validate the model and measured Rate Limiting impacts, firstly on a private cloud to minimize latency and other biases, and secondly on the Google Cloud Platform to test our model in a realistic cloud environment. In both experiments, we observed a low percentage of prediction errors. Thus, we conclude that our model can provide distributed system engineers and architects with insights into an acceptable value for the rate limits to choose for a given workload. Very few works empirically studied the impact of Rate Limit or similar API-related patterns on reliability.}, keywords = {API Analytics}, author = {Amine El Malki and Uwe Zdun and Cesare Pautasso} } @article {2021:computer, title = {Isomorphic Internet of Things Architectures With Web Technologies}, journal = {Computer}, volume = {54}, year = {2021}, month = {July}, pages = {69--78}, abstract = {Internet of Things development needs isomorphic software architectures, in which every kind of device can be programmed with a consistent set of implementation technologies, allowing applications and their components to be statically deployed or dynamically migrated without having to change their shape.}, keywords = {Internet of Things, Isomorphic Architecture, Web}, doi = {10.1109/MC.2021.3074258}, url = {https://ieeexplore.ieee.org/document/9473238}, author = {Tommi Mikkonen and Cesare Pautasso and Antero Taivalsaari} } @conference {2019:map:europlop, title = {Interface Evolution Patterns {\textemdash} Balancing Compatibility and Flexibility across Microservices Lifecycles}, booktitle = {24th European Conference on Pattern Languages of Programs (EuroPLoP 2019)}, year = {2019}, month = {July}, publisher = {ACM}, organization = {ACM}, address = {Irsee, Germany}, abstract = {Remote Application Programming Interfaces (APIs) are technology enablers for distributed system trends such as cloud-native application development. API providers find it hard to design their remote APIs so that they can be evolved easily; refactoring and extending an API while preserving backward compatibility is particularly challenging. If APIs are evolved poorly, clients are critically impacted; high costs to adapt and compensate for downtimes may result. For instance, if an API provider publishes a new incompatible API version, existing clients might break and not function properly until they are upgraded to support the new version. Hence, applying adequate strategies for evolving service APIs is one of the core problems in API governance, which in turn is a prerequisite for successfully integrating service providers with their clients in the long run. Although many patterns and pattern languages are concerned with API and service design and related integration technologies,patterns guiding the evolution of APIs are missing to date. Extending our pattern language on Microservice API Patterns (MAP), we introduce a set of patterns focusing on API evolution strategies in this paper: API Description, Version Identifier, Semantic Versioning, Eternal Lifetime Guarantee, Limited Lifetime Guarantee, Two in Production, Aggressive Obsolescence, and Experimental Preview.The patterns have been mined from public Web APIs and industry projects the authors have been involved in.}, keywords = {API, API Evolution, Microservices, patterns}, doi = {10.1145/3361149.3361164}, url = {https://dl.acm.org/citation.cfm?id=3361164}, author = {Daniel L{\"u}bke and Olaf Zimmermann and Cesare Pautasso and Uwe Zdun} } @conference {2018:map:europlop, title = {Interface Quality Patterns --- Crafting and Consuming Message-Based Remote APIs}, booktitle = {23rd European Conference on Pattern Languages of Programs (EuroPLoP)}, year = {2018}, month = {July}, publisher = {ACM}, organization = {ACM}, address = {Kloster Irsee, Germany}, abstract = {The design and evolution of Application Programming Interfaces (APIs) in microservices architectures is challenging. General design issues in integration and programming have been covered in great detail in many pattern languages since the beginnings of the patterns movement, and service-oriented infrastructure design patterns have also been published in the last decade. However, the interface representations (i.e., the content of message payloads) have received less attention. We presented five structural representation patterns in our previous work; in this paper we continue our coverage of the API design space and propose five interface quality patterns that deal with the observable aspects of quality-attribute-driven interface design for efficiency, security, and manageability: An API Key allows API providers to identify clients. Providers may offer rich data contracts in their responses, which not all consumers might need. A Wish List allows the client to request only the attributes in a response data set that it is interested in. If a client makes many API calls, the provider can employ a Rate Limit and bill clients according to a specified Rate Plan . A provider has to provide a high-quality service while at the same time having to use its available resources economically. The resulting compromise is expressed in a provider{\textquoteright}s Service Level Agreement. }, keywords = {interfaces, Microservices, patterns, quality}, author = {Mirko Stocker and Olaf Zimmermann and Daniel L{\"u}bke and Uwe Zdun and Cesare Pautasso} } @conference {asq:2016:ectel, title = {Inferring student attention with ASQ}, booktitle = {11th European Conference on Technology Enhanced Learning (EC-TEL)}, year = {2016}, month = {September}, publisher = {Springer}, organization = {Springer}, address = {Lyon, France}, abstract = {ASQ is a Web application for broadcasting and tracking interactive presentations, which can be used to support active learning pedagogies during lectures, labs and exercise sessions. Students connect their smartphones, tablets or laptops to receive the current slide as it is being explained by the teacher. Slides can include interactive teaching elements (usually questions of different forms). In contrast to other existing platforms, ASQ does not only collect, aggregate and visualize the answers in real-time, it also supports the data analytics in the classroom paradigm by providing the teacher with a real-time analysis of student behaviour during the entire session. One vital aspect of student behaviour is (in)attention and in this paper we discuss how we infer --- in real-time --- student attention based on log traces ASQ collects.}, keywords = {analytics, ASQ}, author = {Vasileios Triglianos and Cesare Pautasso and Alessandro Bozzon and Claudia Hauff} } @demo {benchflow:2016:icpe, title = {Integrating Faban with Docker for Performance Benchmarking}, year = {2016}, month = {March}, pages = {129-130}, publisher = {ACM}, address = {Delft, The Netherlands}, abstract = {Reliability and repeatability are key requirements in performance benchmarking ensuring the trustworthiness of the obtained performance results. To apply a benchmark to multiple systems, the reusability of the load driver is essential. While Faban has been designed to ensure the reliability of the performance data obtained from a benchmark experiment, it lacks support for ensuring that the system under test is deployed in a known configuration. This is what Docker, a recently emerging containerization technology, excels at. In this demo paper we present how we integrated Faban with Docker as part of the BenchFlow framework to offer a complete and automated performance benchmarking framework that provides a reliable and reusable environment, ensuring the repeatability of the experiments. }, keywords = {BenchFlow, benchmarking, Docker, Faban}, doi = {10.1145/2851553.2858676}, author = {Vincenzo Ferme and Cesare Pautasso} } @article {105, title = {Improving execution unit occupancy on SMT-based processors through hardware-aware thread scheduling}, journal = {Future Generation Computer Systems}, volume = {30}, year = {2014}, month = {January}, pages = {229 - 241}, abstract = {Modern processor architectures are increasingly complex and heterogeneous, often requiring software solutions tailored to the specific hardware characteristics of each processor model. In this article, we address this problem by targeting two processors featuring Simultaneous MultiThreading (SMT) to improve the occupancy of their internal execution units through a sustained stream of instructions coming from more than one thread. We target the AMD Bulldozer and IBM POWER7 processors as case studies for specific hardware-oriented performance optimizations that increase the variety of instructions sent to each core to maximize the occupancy of all its execution units. WorkOver, presented in this article, improves thread scheduling by increasing the performance of floating point-intensive workloads on Linux-based operating systems. WorkOver is a user-space monitoring tool that automatically identifies FPU-intensive threads and schedules them in a more efficient way without requiring any patches or modifications at the kernel level. Our measurements using standard benchmark suites show that speedups of up to 20\% can be achieved by simply allowing WorkOver to monitor applications and schedule their threads, without any modification of the workload.}, keywords = {multicores, Overseer}, issn = {0167739X}, doi = {10.1016/j.future.2013.06.015}, author = {Achille Peternier and Danilo Ansaloni and Daniele Bonetta and Cesare Pautasso and Walter Binder} } @demo {asq:icwe2014, title = {Interactive Scalable Lectures with ASQ}, year = {2014}, month = {July}, pages = {515-518}, publisher = {Springer}, address = {Toulouse, France}, abstract = {Taking full advantage of the Web technology platform dur- ing in-class lectures requires a shift from the established scheme of online education delivery that utilizes the video channel to embed all types of content and gathers student feedback via multiple choice questions or textual answers. In this paper we present the design of ASQ to deliver interactive content for use in heterogeneous educational settings with a large number of students, taking advantage of the co-location of students and instructors and building upon the latest capabilities of the Web platform. ASQ is centered around interactive HTML5 presentations coupled with a versatile microformat to create and deliver various types quizzes and scalable, synchronous/asynchronous feedback mechanisms.}, keywords = {hybrid MOOC}, author = {Vasileios Triglianos and Cesare Pautasso} } @proceedings {icsoc:2011:phd, title = {ICSOC2011 Phd Symposium Preface}, volume = {7221}, year = {2011}, month = {December}, pages = {162-163}, publisher = {Springer}, address = {Paphos, Cyprus}, keywords = {proceedings, service oriented computing}, doi = {10.1007/978-3-642-31875-7_16}, author = {Quan Z. Sheng and Cesare Pautasso and Sonia Ben Mokhtar} } @inbook {DBLP:books/sp/wilde2011/PautassoW11, title = {Introduction to REST: From Research to Practice}, booktitle = {REST: From Research to Practice}, year = {2011}, pages = {1-18}, publisher = {Springer}, organization = {Springer}, chapter = {1}, keywords = {REST}, doi = {10.1007/978-1-4419-8303-9_0}, url = {http://ws-rest.org/book/}, author = {Cesare Pautasso and Erik Wilde} } @article {5453330, title = {Information Quality in Mashups}, journal = {Internet Computing}, volume = {14}, number = {4}, year = {2010}, month = {July-August}, pages = {14-22}, abstract = {Modern Web 2.0 applications are characterized by high user involvement: users receive support for creating content and annotations as well as "composing" applications using content and functions from third parties. This latter phenomenon is known as Web mashups and is gaining popularity even with users who have few programming skills, raising a set of peculiar information quality issues. Assessing a mashup{\textquoteright}s quality, especially the information it provides, requires understanding how the mashup has been developed, how its components look alike, and how quality propagates from basic components to the final mashup application.}, keywords = {component quality, information quality, mashup patterns, mashups, quality metrics, Web 2.0 applications, Web mashups}, issn = {1089-7801}, doi = {10.1109/MIC.2010.60}, author = {Cinzia Cappiello and Florian Daniel and Maristella Matera and Cesare Pautasso} } @conference {ccgrid2008, title = {Initializing a National Grid Infrastructure Lessons Learned from the Swiss National Grid Association Seed Project}, booktitle = {8th IEEE International Symposium on Cluster Computing and the Grid (CCGRID 2008)}, year = {2008}, month = {May}, pages = {169-176}, publisher = {IEEE}, organization = {IEEE}, address = {Lyon, France}, abstract = {In addition to multi-national Grid infrastructures, several countries operate their own national Grid infrastructures to support science and industry within national borders. These infrastructures have the benefit of better satisfying the needs of local, regional and national user communities. Although Switzerland has strong research groups in several fields of distributed computing, only recently a national Grid effort was kick-started to integrate a truly heterogeneous set of resource providers, middleware pools, and users. In the following article we discuss our efforts to start Grid activities at a national scale to combine several scientific communities and geographical domains. We make a strong case for the need of standards that have to be built on top of existing software systems in order to provide support for a heterogeneous Grid infrastructure.}, keywords = {distributed computing, grid computing, middleware, national grid infrastructure}, doi = {10.1109/CCGRID.2008.62}, author = {Nabil Abdennadher and Peter Engel and Derek Feichtinger and Dean Flanders and Placi Flury and Sigve Haug and Pascal Jermini and Sergio Maffioletti and Cesare Pautasso and Heinz Stockinger and Wibke Sudholt and Michela Thi{\'e}mard and Nadya Williams and Christoph Witzig} } @proceedings {mashups:2008, title = {Introduction: Second International Workshop on Web APIs and Services Mashups (Mashups 2008)}, volume = {5472}, year = {2008}, month = {December}, pages = {133-135}, publisher = {Springer}, address = {Sidney, Australia}, keywords = {Web mashups}, doi = {10.1007/978-3-642-01247-1_12}, author = {Cesare Pautasso and Stefan Tai and E. Michael Maximilien} } @proceedings {bpm:2008:mde4bpm, title = {Introduction to the First International Workshop on Model-Driven Engineering for Business Process Management (MDE4BPM 2008)}, year = {2008}, month = {September}, pages = {173-175}, publisher = {Springer}, address = {Milano, Italy}, doi = {10.1007/978-3-642-00328-8_17}, url = {http://www.inf.usi.ch/mde4bpm08/}, author = {Cesare Pautasso and Jana Koehler} }