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
-
March 31, 2025 (v1)Conference paper
We present a new garbage collection reference counting algorithm capable of collecting reference cycles-overcoming a known limitation of traditional reference counting. The algorithm's key features include resilience to errors during tracing, support for object finalisation, no need for supplementary heap memory during collection, and a fast...
Uploaded on: April 5, 2025 -
December 24, 2024 (v1)Journal article
Choreographies provide a clear way to specify the intended communication behaviour of concurrent and distributed systems. Previous theoretical work investigated the translation of choreographies into (models of) programs based on message passing. However, existing theories still present a gap between how they model communications—using channel...
Uploaded on: April 5, 2025 -
March 31, 2025 (v1)Conference paper
In education, the capability of generating human-like text of Large Language Models (LLMs) inspired work on how they can increase the efficiency of learning and teaching. We study the affordability of these models for educators and students by investigating how LLMs answer multiple-choice questions (MCQs) with respect to hardware constraints...
Uploaded on: April 5, 2025 -
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 -
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 -
June 4, 2014 (v1)Conference paper
In Service-Oriented Architectures (SOA), services are com-posed by coordinating their communications into a flow of interactions. Coloured Petri nets (CPN) offer a formal yet easy tool for modelling interactions in SOAs, however mapping abstract SOAs into executable ones requires a non-trivial and time-costly analysis. Here, we propose a...
Uploaded on: April 5, 2025 -
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 -
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 -
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 -
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 -
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 -
June 13, 2022 (v1)Conference paper
International audience
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 -
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 -
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 -
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