@conference {2022:sose:ccc, title = {Cargo-Cult Containerization: A Critical View of Containers in Modern Software Development}, booktitle = {16th International Conference on Service-Oriented System Engineering (SOSE 2022)}, year = {2022}, month = {August}, publisher = {IEEE}, organization = {IEEE}, address = {San Francisco, USA}, abstract = {Software is increasingly developed and deployed using containers. While the concept of a container is conceptually straightforward, there are various issues to be considered while using them, ranging from technical details inside containers to the orchestration of containers that jointly form a meaningful application. In recent years, the use of containers has become so prevalent that developers have a tendency to resort to cargo-cult containerization {\textendash} ritual adherence to the use of containers just because so many others are doing the same thing. In this paper, we study advantages and downsides of containers in modern- day software development. We foresee the use of containers to spread into new areas, including IoT systems and embedded devices. At the same time, we caution against indiscriminate use of containers, since excessive containerization can have adverse impacts on software maintenance and overall complexity of a system architecture.}, keywords = {containers, software architecture}, author = {Tommi Mikkonen and Cesare Pautasso and Kari Systa and Antero Taivalsaari} } @article {2018:ieeecloud:bac, title = {Consistent Disaster Recovery for Microservices: the BAC Theorem}, journal = {IEEE Cloud Computing}, volume = {5}, year = {2018}, month = {January/February}, pages = {49-59}, abstract = {How do you back up a microservice? You dump its database. But how do you back up an entire application decomposed into microservices? In this article, we discuss the tradeoff between the availability and consistency of a microservice-based architecture when a backup of the entire application is being performed. We demonstrate that service designers have to select two out of three qualities: backup, availability, and/or consistency (BAC). Service designers must also consider how to deal with consequences such as broken links, orphan state, and missing state.}, keywords = {availability, BAC theorem, consistency, disaster recovery, Microservices}, doi = {10.1109/MCC.2018.011791714}, url = {http://ieeexplore.ieee.org/document/8327550/}, author = {Guy Pardon and Cesare Pautasso and Olaf Zimmermann} } @proceedings {2018:icwe:workshops, title = {Current Trends in Web Engineering: ICWE 2018 Workshops MATWEP, EnWot, KD-WEB, WEOD, TourismKG}, volume = {11153}, year = {2018}, publisher = {Springer}, address = {C{\'a}ceres, Spain}, keywords = {Web Engineering; Proceedings; Workshops}, doi = {10.1007/978-3-030-03056-8}, url = {https://link.springer.com/book/10.1007\%2F978-3-030-03056-8}, editor = {Cesare Pautasso and Fernando S{\'a}nchez-Figueroa and Kari Systa and Juan Manuel Murillo Rodr{\'\i}guez} } @conference {2017:icsa:web, title = {Comparing the Built-In Application Architecture Models in the Web Browser}, booktitle = {1st IEEE International Conference on Software Architecture (ICSA 2017)}, year = {2017}, month = {April}, publisher = {IEEE}, organization = {IEEE}, address = {Gothenburg, Sweden}, abstract = {Depending on one{\textquoteright}s viewpoint, a generic standards-compatible web browser supports three, four or five built-in application rendering and programming models. In this paper, we provide an overview of the built-in client-side web application architectures. While the dominance of the base HTML/CSS/JS technologies cannot be ignored, we foresee Web Components and WebGL gaining popularity as the world moves towards more complex and even richer web applications, including systems supporting virtual and augmented reality.}, keywords = {Web application architecture, Web development, Web engineering}, author = {Antero Taivalsaari and Tommi Mikkonen and Cesare Pautasso and Kari Systa} } @conference {benchflow:2016:closer, title = {A Container-centric Methodology for Benchmarking Workflow Management Systems}, booktitle = {6th International Conference on Cloud Computing and Service Science (CLOSER 2016)}, year = {2016}, month = {April}, pages = {74-84}, publisher = {SciTePress}, organization = {SciTePress}, address = {Rome, Italy}, abstract = {Trusted benchmarks should provide reproducible results obtained following a transparent and well-defined process. In this paper, we show how Containers, originally developed to ease the automated deployment of Cloud application components, can be used in the context of a benchmarking methodology. The proposed methodology focuses on Workflow Management Systems (WfMSs), a critical service orchestration middleware, which can be characterized by its architectural complexity, for which Docker Containers offer a highly suitable approach. The contributions of our work are: 1) a new benchmarking approach taking full advantage of containerization technologies; and 2) the formalization of the interaction process with the WfMS vendors described clearly in a written agreement. Thus, we take advantage of emerging Cloud technologies to address technical challenges, ensuring the performance measurements can be trusted. We also make the benchmarking process transparent, automated, and repeatable so that WfMS vendors can join the benchmarking effort.}, keywords = {BenchFlow, benchmarking, Docker}, doi = {10.5220/0005908400740084}, author = {Vincenzo Ferme and Ana Ivanchikj and Cesare Pautasso and Marigianna Skouradaki and Frank Leymann} } @conference {rest:2015:wicsa, title = {A conversation based approach for modeling REST APIs}, booktitle = {12th Working IEEE / IFIP Conference on Software Architecture (WICSA 2015)}, year = {2015}, month = {May}, address = {Montreal, Canada}, abstract = {Conversations are a well-known concept in service design to describe complex interactions between a client and one or multiple services. The REST architectural style constrains the characteristics of clients, servers and their interactions in REST architectures which consequently has an impact on conversations in such systems. The relation between conversations and REST architectures and how such RESTful conversations can be characterized has not been studied in detail yet. In this paper we discuss the characteristics of conversations in REST architectures and introduce an initial set of commonly used conversation types. Based on this, we propose to use conversations as a modeling tool for the design of REST APIs at a higher level of abstraction. We also introduce a corresponding interaction centric metamodel for REST APIs. The characterization of RESTful conversations enables a new interaction centric viewpoint on REST architectures which can be also applied for modeling REST APIs on an abstraction level that enables users to focus on the essential functionality of their REST API.}, keywords = {conversation, model-driven engineering, REST, RESTful conversation}, url = {http://wicsa2015.org/wicsa-sessions.html$\#$WS5}, author = {Florian Haupt and Frank Leymann and Cesare Pautasso} } @article {rest:tweb:2013, title = {Control-Flow Patterns for Decentralized RESTful Service Composition}, journal = {ACM Transactions on the Web (TWEB)}, volume = {8}, year = {2013}, month = {December}, pages = {5:1{\textendash}5:30}, abstract = {The REST architectural style has attracted a lot of interest from industry due to the nonfunctional properties it contributes to Web-based solutions. SOAP/WSDL-based services, on the other hand, provide tools and methodologies that allow the design and development of software supporting complex service arrangements, enabling complex business processes which make use of well-known control-flow patterns. It is not clear if and how such patterns should be modeled, considering RESTful Web services that comply with the statelessness, uniform interface and hypermedia constraints. In this article, we analyze a set of fundamental control-flow patterns in the context of stateless compositions of RESTful services. We propose a means of enabling their implementation using the HTTP protocol and discuss the impact of our design choices according to key REST architectural principles. We hope to shed new light on the design of basic building blocks for RESTful business processes.}, keywords = {business process management, control flow, control-flow patterns, REST, service composition, Web services}, issn = {1559-1131}, doi = {10.1145/2535911}, url = {http://doi.acm.org/10.1145/2535911}, author = {Bellido, Jesus and Rosa Alarc{\'o}n and Cesare Pautasso} } @inbook {jopera:2009:compiler, title = {Compiling Business Process Models into Executable Code}, booktitle = {Handbook of Research in Business Process Management}, year = {2009}, pages = {218-337}, publisher = {IGI Global}, organization = {IGI Global}, chapter = {15}, abstract = {Model-driven architecture (MDA), design and transformation techniques can be applied with success to the domain of business process modeling (BPM) with the goal of making the vision of business-driven development a reality. This chapter is centered around the idea of compiling business process models for executing them, and how this idea has been driving the design of the JOpera for Eclipse workflow management tool. JOpera presents users with a simple, graph-based process modeling language with a visual representation of both control and data-flow aspects. As an intermediate representation, the graphs are converted into Event-Condition-Action rules, which are further compiled into Java bytecode for efficient execution. These transformations of process models are performed by the JOpera process compiler in a completely transparent way, where the generated executable artifacts are kept hidden from users at all times (i.e., even for debugging process executions, which is done by augmenting the original, high level notation). We evaluate our approach by discussing how using a compiler has opened up the several possibilities for performing optimization on the generated code and also simplified the design the corresponding workflow engine architecture.}, keywords = {business process execution engines, model-driven engineering}, issn = {978-1-60566-288-6}, url = {http://www.igi-global.com/book/handbook-research-business-process-modeling/445}, author = {Cesare Pautasso} } @conference {jopera:2009:sc, title = {Composing RESTful Services with JOpera}, booktitle = {8th International Conference on Software Composition}, volume = {5634}, year = {2009}, month = {July}, pages = {142-159}, publisher = {Springer}, organization = {Springer}, address = {Zurich, Switzerland}, abstract = {The REST architectural style is emerging as an alternative technology platform for the realization of service-oriented architectures. In this paper, we apply the notion of composition to RESTful services and derive a set of language features that are required by composition languages for RESTful services: dynamic late binding, dynamic typing, content-type negotiation, state inspection, and compliance with the uniform interface principle. To show how such requirements can be satisfied by an existing composition language, we include a case-study using the JOpera visual composition language. In it, we present how to build a composite application (DoodleMap) out of some well-known, public and currently existing RESTful service APIs.}, keywords = {JOpera, REST, Web service composition}, doi = {10.1007/978-3-642-02655-3_11}, author = {Cesare Pautasso} } @conference {ibm:2007:agtive, title = {Combining Quality Assurance and Model Transformations in Business-Driven Development}, booktitle = {Third International Symposium on Applications of Graph Transformations with Industrial Relevance (AGTIVE 2007)}, year = {2007}, month = {October}, pages = {1-16}, abstract = {Business-driven development is a methodology for developing IT solutions that directly satisfy business requirements. At its core are business processes, which are usually modeled by combining graphical and textual notations. During business-driven development, business process models are taken to the IT level, where they are implemented in a Service-Oriented Architecture. A major challenge in business-driven development is the semantic gap between models captured at the business and the IT level. Model transformations play a major role in bridging this gap. This paper presents a transformation framework for IBM WebSphere Business Modeler that enables programmers to quickly develop in-place model transformations, which are then made available to users of this tool. They address various user needs such as quickly correcting modeling errors, refining a process model, or applying a number of refactoring operations. Transformations are combined with quality assurance techniques, which help users to preserve or improve the correctness of their business process models when applying transformations. }, keywords = {business driven development, model-driven engineering}, doi = {10.1007/978-3-540-89020-1_1}, author = {Jana Koehler and Thomas Gschwind and Jochen Malte K{\"u}ster and Cesare Pautasso and Ksenia Ryndina and Jussi Vanhatalo and Hagen V{\"o}lzer} } @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} }