EN FR
EN FR


Section: New Results

Service-Oriented Computing

Participants : Mario Bravetti, Maurizio Gabbrielli, Saverio Giallorenzo, Claudio Guidi, Ivan Lanese, Cosimo Laneve, Fabrizio Montesi, Davide Sangiorgi, Gianluigi Zavattaro, Stefano Pio Zingaro.

Orchestrations and choreographies

The practice of programming distributed systems is extremely error-prone, due to the complexity in correctly implementing separate components that, put together, enact an agreed protocol. Usage of contracts and session types in orchestration languages guarantees correct communication [22]. Asynchronous subtyping for binary session types has been thought to be decidable for 8 years, before we proved in previous work it to be undecidable. We have now highlighted some practically-relevant fragments of session types where asynchronous subtyping is indeed decidable [14].

We also studied practical aspects of choreographies, that is multiparty contracts. On the one hand we extended the classical proof of correctness of the projection of a choreography on one participant, which is the cornerstone of the theory of choreographies. Indeed, the classical proof considers projection to a model based on channels in the CCS style, while practice mainly relies on correlation sets. We bridged this gap by giving a correctness proof towards a real-world execution model based on correlation sets [31].

We then studied how to apply choreographies for cross-organizational system integration. More precisely, we proposed a software development process to build integrations composed by distributed, independent connectors whose global behaviour is correct by construction [30]. Choreographies and choreography projection are at the heart of the proposed development process.

Microservices

We continued the study of microservice-oriented computing started in past years, in particular by using our microservice-oriented language Jolie. We focused, in particular, on the use of Jolie in an Internet of Things (IoT) setting [28]. Technically, a key feature of Jolie is that it supports in a uniform way multiple service-oriented communication protocols such as HTTP and SOAP. We extended Jolie in order to support, uniformly as well, also lightweight protocols such as MQTT and CoAP, which are largely used in IoT. These are very different from service-oriented protocols which are point-to-point and based on TCP since MQTT is publish-subscribe while CoAP is based on UDP.