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.

Microservices

Microservices represent an architectural style inspired by service-oriented computing that has recently started gaining popularity. As we have discussed in [37], one of the main advantages of the microservices approach is that it improves scalability of the developed applications. In [43] we have analyzed the impact of microservices on the overall line of research on software architectures, by pointing out specific open problems and future challenges. One of the challenges is concerned with programming languages because microservice systems are currently developed using general-purpose programming languages that do not provide dedicated abstractions for service composition. In [46] we have discussed the limitations of the current practices and we have proposed a novel language-based approach to the engineering of microservices based on the Jolie programming language.

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. Theoretical and applied research is, therefore, fundamental, to explore new tools to assist the development of such systems. In particular, usage of so-called session types in orchestration languages guarantees correct communication by means of corresponding type system theories. In this context, we carried out studies about: foundations of the classical theory of session types, by providing an encoding into pi-calculus typing [17]; and subtyping in the context of asynchronous communication, showing it to be an undecidable problem [15]. Choreographies are also an important specification tool in that they can be compiled to obtain projected orchestrations that enjoy deadlock freedom by construction. Moreover they allow one to express dynamic behaviours at the level of the whole system, which then reflect on each involved orchestration. In this context, in [16] we studied the theory and implementation of dynamic choreographies and in [45] we showed how to use them for programming microservice-based applications. Finally, we considered applications in the context of Mobility-as-a-Service (MaaS) scenarios, where solutions of different transportation providers are dynamically composed into a single, consistent interface. We devised the prototype of an enabling software platform for MaaS [27] and we studied MaaS security issues [28].