Service choreographies are a versatile approach for building service-based distributed systems. Many approaches can be found in the literature tackling different aspects of service choreographies, such as choreography realizability and conformance checking, distributed coordination, formal choreographic languages, and scalability. As of today, choreography scalability has not been specifically addressed through approaches that also consider coordination issues while still decoupling these two related aspects. Scalability is one of the most important properties to be considered when building distributed systems. It enhances the user-perceived performances and influences the overall dependability of the system. In particular, load scalability allows distributed service-oriented systems to effectively handle varying loads without suffering performance degradation. In this direction, microservice-based systems are able to scale thanks to the possibility of replicating those microservices exposed to growing loads, distributing their workload among different instances. By leveraging on our experience in coordinating service choreographies, in this paper, we propose a layered architectural style that allows to realize scalable microservice-oriented choreographies. The architecture integrates a fully-distributed coordination layer capable of ensuring the correct interactions and a load-balancing layer that allows to balance of coordinated requests. We discuss the properties of the proposed architectural style and evaluate its benefits on user-perceived performances.

An architectural style for scalable choreography-based microservice-oriented distributed systems

Gianluca Filippone;Claudio Pompilio;Marco Autili
;
Massimo Tivoli
2022-01-01

Abstract

Service choreographies are a versatile approach for building service-based distributed systems. Many approaches can be found in the literature tackling different aspects of service choreographies, such as choreography realizability and conformance checking, distributed coordination, formal choreographic languages, and scalability. As of today, choreography scalability has not been specifically addressed through approaches that also consider coordination issues while still decoupling these two related aspects. Scalability is one of the most important properties to be considered when building distributed systems. It enhances the user-perceived performances and influences the overall dependability of the system. In particular, load scalability allows distributed service-oriented systems to effectively handle varying loads without suffering performance degradation. In this direction, microservice-based systems are able to scale thanks to the possibility of replicating those microservices exposed to growing loads, distributing their workload among different instances. By leveraging on our experience in coordinating service choreographies, in this paper, we propose a layered architectural style that allows to realize scalable microservice-oriented choreographies. The architecture integrates a fully-distributed coordination layer capable of ensuring the correct interactions and a load-balancing layer that allows to balance of coordinated requests. We discuss the properties of the proposed architectural style and evaluate its benefits on user-perceived performances.
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11697/195099
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? 0
social impact