Pierpaolo Degano has been an influential pioneer in the investigation of Petri nets as models for concurrent process calculi (see e.g. the well-known seminal work by Degano–De Nicola–Montanari also known as DDM88). In this paper, we address the limits of classical Petri nets by discussing when it is necessary to move to the so-called Transfer...
-
2015 (v1)Book sectionUploaded on: March 25, 2023
-
June 18, 2018 (v1)Conference paper
We briefly recall results obtained in twenty years of research, spanning across the old and the new millennium, on the expressiveness of coordination languages and on behavioural contracts for Service-Oriented Computing. Then, we show how the techniques developed in those contexts are currently contributing to the clarification of aspects that...
Uploaded on: December 4, 2022 -
April 2020 (v1)Journal article
We recall techniques, mainly based on the theory of process calculi, that we used to prove results in twenty years of research, spanning across the old and the new millennium, on the expressiveness of coordination languages and on behavioural contracts for Service-Oriented Computing. Then, we show how such techniques recently contributed to the...
Uploaded on: December 3, 2022 -
August 24, 2015 (v1)Conference paper
In previous works we have proved that component reconfig-uration in the presence of conflicts among components is non-primitive recursive, while it becomes poly-time if there are no conflicts and under the assumption that there are no components in the initial configuration. The case with non-empty initial configurations was left as an open...
Uploaded on: March 25, 2023 -
2016 (v1)Book section
The Aeolus component problem of automatic deployment of complex distributed component systems. In the general setting, the task of checking if a distributed application can be deployed is an undecidable problem. However, the current undecidability proof in Aeolus assumes the possibility to perform in a synchronized way atomic configuration...
Uploaded on: March 25, 2023 -
June 5, 2015 (v1)Report
In previous works we have proved that component reconfiguration in the presence of conflicts among components is non-primitive recursive, while it becomes poly-time if there are no conflicts and under the assumption that there are no components in the initial configuration. The case with non-empty initial configurations was left as an open...
Uploaded on: March 25, 2023 -
September 16, 2019 (v1)Conference paper
We discuss the relationship between session types and be-havioural contracts under the assumption that processes communicate asynchronously. We show the existence of a fully abstract interpretation of session types into a fragment of contracts, that maps session subtyping into binary compliance-preserving contract refinement. In this way, the...
Uploaded on: December 4, 2022 -
January 4, 2021 (v1)Journal article
We study the relationship between session types and behavioural contracts, representing Communicating Finite State Machines (CFSMs), under the assumption that processes communicate asynchronously. Session types represent a syntax-based approach for the description of communication protocols, while behavioural contracts, formally expressing...
Uploaded on: December 4, 2022 -
2019 (v1)Book section
Erlang is a functional and concurrent programming language. The aim of this paper is to investigate basic properties of the Erlang concurrency model, which is based on asynchronous communication through mailboxes accessed via pattern matching. To achieve this goal, we consider Core Erlang (which is an intermediate step in Erlang compilation)...
Uploaded on: December 4, 2022 -
March 5, 2015 (v1)Conference paper
Jolie is an orchestration language conceived during Sensoria, an FP7 European project led by Martin Wirsing in the time frame 2005– 2010. Jolie was designed having in mind both the novel –at project time– concepts related to Service-Oriented Computing and the traditional approach to the modelling of concurrency typical of process calculi. The...
Uploaded on: March 25, 2023 -
2018 (v1)Journal article
Session types are behavioural types for guaranteeing that concurrent programs are free from basic communication errors. Recent work has shown that asyn-chronous session subtyping is undecidable. However, since session types have become popular in mainstream programming languages in which asynchronous communication is the norm rather than the...
Uploaded on: December 4, 2022 -
October 2017 (v1)Journal article
Session types are used to describe communication protocols in distributed systems and, as usual in type theories, session subtyping characterizes substitutability of the communicating processes. We investigate the (un)decidability of subtyping for session types in asynchronously communicating systems. We first devise a core undecidable...
Uploaded on: March 25, 2023 -
March 27, 2021 (v1)Conference paper
Session types are widely used as abstractions of asynchronous message passing systems. Refinement for such abstractions is crucial as it allows improvements of a given component without compromising its compatibility with the rest of the system. In the context of session types, the most general notion of refinement is the asynchronous session...
Uploaded on: December 4, 2022 -
2015 (v1)Journal article
In distributed systems like those based on cloud or service-oriented frameworks, applications are typically assembled by deploying and connecting a large number of heterogeneous software components, spanning from fine-grained packages to coarse-grained complex services. Automation techniques and tools have been proposed to ease the deployment...
Uploaded on: March 25, 2023 -
October 2019 (v1)Journal article
We investigate the problem of modeling the optimal and automatic deployment of cloud applications. We follow an approach based on three main pillars: (i) the specification of the computing resources needed by software components and those provided by the executing environment (e.g. virtual machines or containers), (ii) the declarative...
Uploaded on: December 4, 2022 -
June 14, 2021 (v1)Conference paper
Session types are becoming popular and have been integrated in several mainstream programming languages. Nevertheless, while many programming languages consider asynchronous fifo channel communication, the notion of subtyping used in session type implementations is the one defined by Gay and Hole for synchronous communication. This might be...
Uploaded on: December 4, 2022 -
September 5, 2016 (v1)Conference paper
Traditional development methodologies that separate software design from application deployment have been replaced by approaches such as continuous delivery or DevOps, according to which deployment issues should be taken into account already at the early stages of development. This calls for the definition of new modeling and specification...
Uploaded on: March 25, 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 -
2018 (v1)Journal article
We give two different notions of deadlock for systems based on active objects and futures. One is based on blocked objects and conforms with the classical definition of deadlock by Coffman, Jr. et al. The other one is an extended notion of deadlock based on blocked processes which is more general than the classical one. We introduce a technique...
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 -
March 4, 2021 (v1)Journal article
Session types, types for structuring communication between endpoints in concurrent systems, are recently being integrated into mainstream programming languages. In practice, a very important notion for dealing with such types is that of subtyping, since it allows for typing larger classes of systems, where a program has not precisely 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 -
August 26, 2019 (v1)Conference paper
Session types, types for structuring communication between endpoints in distributed systems, are recently being integrated into mainstream programming languages. In practice, a very important notion for dealing with such types is that of subtyping, since it allows for typing larger classes of system, where a program has not precisely the...
Uploaded on: December 4, 2022 -
July 11, 2022 (v1)Conference paper
International audience
Uploaded on: February 22, 2023 -
2023 (v1)Publication
State-of-the-art serverless platforms use hard-coded scheduling policies that hardly accommodate users in implementing functional or performance-related scheduling logic of their functions, e.g., preserving the execution of critical functions within some geographical boundaries or minimising data-access latencies. We addressed this problem by...
Uploaded on: December 29, 2023