Since the early days of the Internet, distributed software applications have become one of the leading forces behind the development and economic growth of our society. Nonetheless, the practice of programming distributed systems is one of the most error-prone. Developers strive to correctly implement separate components that, put together,...
-
May 12, 2016 (v1)PublicationUploaded on: March 25, 2023
-
June 18, 2018 (v1)Conference paper
Choreographic Programming is a paradigm for distributed programming, where high-level "Alice and Bob" descriptions of communications (choreographies) are used to synthesise correct-by-construction programs. However, implementations of choreographic models use message routing technologies distant from their related theoretical models (e.g.,...
Uploaded on: December 4, 2022 -
April 3, 2015 (v1)Conference paper
Application Programming Interfaces (APIs) are a standard feature of any application that exposes its functionalities to external invokers. APIs can becomposed thus obtaining new programs with new functionalities. However API composition easily becomes a frustrating and time-costly task that hinders API reuse. The issue derives from...
Uploaded on: March 25, 2023 -
October 22, 2018 (v1)Conference paper
Over the years, organizations acquired disparate software systems, each answering one specific need. Currently, the desirable outcomes of integrating these systems (higher degrees of automation and better system consistency) are often outbalanced by the complexity of mitigating their discrepancies. These problems are magnified in the...
Uploaded on: December 4, 2022 -
November 22, 2023 (v1)Journal article
Choreographies are coordination plans for concurrent and distributed systems, which define the roles of the involved participants and how they are supposed to work together. In the paradigm of choreographic programming, choreographies are programs that can be compiled into executable implementations. In this article, we present Choral, the...
Uploaded on: January 10, 2024 -
June 1, 2017 (v1)Book section
This tutorial describes AIOCJ, which stands for Adaptive Interaction Oriented Choreographies in Jolie, a choreographic language for programming microservice-based applications which can be updated at runtime. The compilation of a single AIOCJ program generates the whole set of distributed microservices that compose the application. Adaptation...
Uploaded on: March 25, 2023 -
January 4, 2017 (v1)Conference paper
Mobility as a Service (MaaS) applies the everything-as-a-service paradigm of Cloud Computing to transportation: a MaaS provider offers to its users the dynamic composition of solutions of different travel agencies into a single, consistent interface. Traditionally, transits and data on mobility belong to a scattered plethora of operators. Thus,...
Uploaded on: March 25, 2023 -
November 2, 2018 (v1)Conference paper
The Internet of Things (IoT) promotes the communication among heterogeneous entities, from small sensors to Cloud systems. However, this is realized using a wide range of communication media and data protocols, usually incompatible with each other. Thus, IoT systems tend to grow as homogeneous isolated platforms, which hardly interact. To...
Uploaded on: December 4, 2022 -
2019 (v1)Book section
In Choreographic Programming, a choreography specifies in a single artefact the expected behaviour of all the participants in a distributed system. The choreography is used to synthesise correct-by-construction programs for each participant. In previous work, we defined Dynamic Choreographies to support the update of distributed systems at...
Uploaded on: December 4, 2022 -
August 7, 2021 (v1)Journal article
DevOps advocates the usage of Virtualization Technologies (VT), such as Virtual Machines and Containers. However, it is complex to predict how the usage of a given VT will impact on the performance of an application. In this paper, we present a collection of reference benchmarks that developers can use to orient when looking for the...
Uploaded on: December 4, 2022 -
June 2023 (v1)Journal article
We introduce LEMMA2Jolie, a tool for translating domain models of microservice architectures given in LEMMA into concrete APIs of microservices in the Jolie programming language. Our tool combines the state of the art for the design and implementation of microservices: developers can use Domain-Driven Design (DDD) for the construction of the...
Uploaded on: January 10, 2024 -
2023 (v1)Publication
We formally define and implement a translation of domain and service models expressed in the LEMMA modelling ecosystem for microservice architectures to source code in the Jolie microservice programming language. Specifically, our work extends previous efforts on the generation of Jolie code to the inclusion of the LEMMA service modelling...
Uploaded on: December 29, 2023 -
September 7, 2016 (v1)Conference paper
Mobility as a Service takes the concept of XaaS to transportation: a MaaS provider shall merge transport options from different mobility providers, seamlessly handling the whole experience of traveling, from providing information, to travel planning, and payments handling. To effectively support the creation of a market of MaaS providers, we...
Uploaded on: March 25, 2023 -
June 13, 2022 (v1)Conference paper
International audience
Uploaded on: February 22, 2023 -
December 14, 2020 (v1)Conference paper
Serverless computing is a Cloud development paradigm where developers write and compose stateless functions, abstracting from their deployment and scaling. In this paper, we address the problem of functionexecution scheduling, i.e., how to schedule the execution of Serverless functions to optimise their performance against some user-defined...
Uploaded on: December 4, 2022 -
July 8, 2019 (v1)Conference paper
Ephemeral data handling, whereby processed data do not persist, is an emerging requirement of connected IT systems, due to storage constraints (IoT) or regulatory demands (eHealth, GDPR). We present ongoing work on TQuery, a query language for ephemeral data handling in microservices.
Uploaded on: December 4, 2022 -
2022 (v1)Journal article
The adoption of edge and fog systems, along with the introduction of privacy-preserving regulations, compel the usage of tools for expressing complex data queries in an ephemeral way. That is, queried data should not persist. Database engines partially address this need, as they provide domain-specific languages for querying data....
Uploaded on: February 22, 2023 -
August 10, 2019 (v1)Book section
The Internet of Things (IoT) advocates for multi-layered platforms from edge devices to Cloud nodes where each layer adopts its own communication standards (media and data formats). While this freedom is optimal for in-layer communication, it puzzles cross-layer integration due to incompatibilities among standards. Also enforcing a unique...
Uploaded on: December 4, 2022 -
2020 (v1)Book section
Following previous work on the automated deployment of componentbased applications, we present a formal model specifically tailored for reasoning on the deployment of microservice architectures. The first result that we present is a formal proof of decidability of the problem of synthesizing optimal deployment plans for microservice...
Uploaded on: December 4, 2022 -
June 14, 2021 (v1)Conference paper
In microservices, Model-Driven Engineering (MDE) has emerged as a powerful methodology for architectural design. Independently, the community of programming languages has investigated new linguistic abstractions for effective microservice development. Here, we present the first preliminary study of how the two approaches can crosspollinate,...
Uploaded on: December 4, 2022 -
October 16, 2017 (v1)Conference paper
Multi-modal travelling is a common phenomenon. However, planning multi-modal journeys is still an unstructured and time-consuming experience for customers: they lose time assembling a comprehensive plan out of disparate data, spread over a multitude of information systems — each corresponding to a different company responsible for one of the...
Uploaded on: March 25, 2023 -
January 8, 2019 (v1)Conference paper
Platoon formation is a freight organization system where a group of vehicles follows a predefined trajectory maintaining a desired spatial pattern. Benefits of platooning include fuel savings, reduction of carbon dioxide emissions, and efficient allocation of road capacity. While traditionally platooning has been an exclusive option limited to...
Uploaded on: December 4, 2022 -
November 27, 2020 (v1)Conference paper
Serverless computing is a paradigm for programming cloud applications in terms of stateless functions, executed and scaled in proportion to inbound requests. Here, we revisit SKC, a calculus capturing the essential features of serverless programming. By exploring the design space of the language, we refined the integration between the...
Uploaded on: December 4, 2022 -
April 9, 2019 (v1)Conference paper
Microservices are highly modular and scalable Service Oriented Architectures. They underpin automated deployment practices like Continuous Deployment and Autoscaling. In this paper we formalize these practices and show that automated deployment-proven undecid-able in the general case-is algorithmically treatable for microservices. Our key...
Uploaded on: December 4, 2022 -
2016 (v1)Book section
Microservices is an emerging paradigm for the development of distributed systems that, originating from Service-Oriented Architecture , focuses on the small dimension, the loose coupling, and the dynamic topology of services. Microservices are particularly appropriate for the development of distributed systems in the Cloud. However, their...
Uploaded on: March 25, 2023