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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Notes
A prosumer is a service that is both a provider and a consumer.
References
Peltz C (2003) Web services orchestration and choreography. Computer 36(10):46–52. https://doi.org/10.1109/MC.2003.1236471
Basu S, Bultan T (2011) Choreography conformance via synchronizability. In: Proceedings of the 20th international conference on world wide web, pp 795–804. https://doi.org/10.1145/1963405.1963516
Gössler G, Salaün G (2011) Realizability of choreographies for services interacting asynchronously. In: International workshop on formal aspects of component software. Springer, pp 151–167. https://doi.org/10.1007/978-3-642-35743-5_10
Basu S, Bultan T, Ouederni M (2012) Deciding choreography realizability. ACM Sigplan Not 47(1):191–202. https://doi.org/10.1145/2103621.2103680
Basu S, Bultan T (2016) Automated choreography repair. In: International conference on fundamental approaches to software engineering. Springer, pp 13–30. https://doi.org/10.1007/978-3-662-49665-7_2
Lanese I, Montesi F, Zavattaro G (2015) In: De Nicola R, Hennicker R (eds) The evolution of Jolie. Springer, Cham, pp 506–521. https://doi.org/10.1007/978-3-319-15545-6_29
Orlando S, Pasquale VD, Barbanera F, Lanese I, Tuosto E (2021) Corinne, a tool for choreography automata. In: Salaün G, Wijs A (eds) Formal aspects of component software. Springer, Cham, pp 82–92. https://doi.org/10.1007/978-3-030-90636-8_5
Autili M, Inverardi P, Tivoli M (2018) Choreography realizability enforcement through the automatic synthesis of distributed coordination delegates. Sci Comput Program 160:3–29. https://doi.org/10.1016/j.scico.2017.10.010
Autili M, Di Salle A, Gallo F, Pompilio C, Tivoli M (2019) Aiding the realization of service-oriented distributed systems. In: Proceedings of the 34th ACM/SIGAPP symposium on applied computing. In: SAC ’19. Association for Computing Machinery, New York, pp 1701–1710. https://doi.org/10.1145/3297280.3297446
Dar K, Taherkordi A, Rouvoy R, Eliassen F (2011) Adaptable service composition for very-large-scale internet of things systems. In: Eyers DM (ed) Proceedings of the 8th middleware doctoral symposium of the 12th ACM/IFIP/USENIX international middleware conference, Lisbon, Portugal, 12 December 2011, pp 2–126. https://doi.org/10.1145/2093190.2093192
Furtado T, Francesquini E, Lago N, Kon F (2014) A middleware for reflective web service choreographies on the cloud. In: Costa FM, Andersen A (eds) Proceedings of the 13th workshop on adaptive and reflective middleware, ARM@Middleware 2014, Bordeaux, France, December 8–12, 2014, pp 9–196. https://doi.org/10.1145/2677017.2677026
Vincent H, Issarny V, Georgantas N, Francesquini E, Goldman A, Kon F (2010) Choreos: scaling choreographies for the internet of the future. In: Middleware’10 posters and demos track, pp 1–3. https://doi.org/10.1145/1930028.1930036
Barker A, Besana P, Robertson D, Weissman JB (2009) The benefits of service choreography for data-intensive computing. In: Rauber T, Rünger G, Jeannot E, Jha S (eds) Proceedings of the 7th international workshop on challenges of large applications in distributed environments, CLADE@HPDC 2009, Garching Near Munich, Germany, June 10, 2009, pp 1–10. https://doi.org/10.1145/1552315.1552317
Yoon Y, Ye C, Jacobsen H (2011) A distributed framework for reliable and efficient service choreographies. In: Srinivasan S, Ramamritham K, Kumar A, Ravindra MP, Bertino E, Kumar R (eds) Proceedings of the 20th international conference on world wide web, WWW 2011, Hyderabad, India, March 28–April 1, 2011, pp 785–794. https://doi.org/10.1145/1963405.1963515
Gorbenko A, Kharchenko V, Romanovsky A (2009) Using inherent service redundancy and diversity to ensure web services dependability. Springer, Berlin, Heidelberg, pp 324–341. https://doi.org/10.1007/978-3-642-00867-2_15
Bondi AB (2000) Characteristics of scalability and their impact on performance. In: Proceedings of the 2nd international workshop on software and performance, pp 195–203
Abbott ML, Fisher MT (2015) The art of scalability: scalable web architecture, processes, and organizations for the modern enterprise. Addison-Wesley Professional, Boston
Baresi L, Filgueira Mendonça, D, Garriga M (2017) Empowering low-latency applications through a serverless edge computing architecture. In: European conference on service-oriented and cloud computing. Springer, pp 196–210. https://doi.org/10.1007/978-3-319-67262-5_15
Lewis J, Fowler M (2014) Microservices a definition of this new architectural term. https://martinfowler.com/articles/microservices.html. Accessed June 2022
Dragoni N, Giallorenzo S, Lafuente AL, Mazzara M, Montesi F, Mustafin R, Safina L (2017) In: Mazzara M, Meyer B (eds) Microservices: yesterday, today, and tomorrow. Springer, Cham, pp 195–216. https://doi.org/10.1007/978-3-319-67425-4_12
Dragoni N, Lanese I, Larsen ST, Mazzara M, Mustafin R, Safina L. Microservices: how to make your application scale. https://doi.org/10.1007/978-3-319-74313-4_8
Newman S (2015) Building microservices, 1st edn. O’Reilly Media Inc, Sebastopol
Autili M, Tivoli M (2014) Distributed enforcement of service choreographies. In: Cámara, J., Proença, J. (eds.) Proceedings 13th International Workshop on Foundations of Coordination Languages and Self-Adaptive Systems, FOCLASA 2014, Rome, Italy, 6th September 2014. EPTCS, vol. 175, pp. 18–35. https://doi.org/10.4204/EPTCS.175.2
Autili M, Perucci A, De Lauretis L (2020) In: Bucchiarone, A., Dragoni, N., Dustdar, S., Lago, P., Mazzara, M., Rivera, V., Sadovykh, A. (eds.) A Hybrid Approach to Microservices Load Balancing, pp. 249–269. Springer, Cham. https://doi.org/10.1007/978-3-030-31646-4_10
Autili M, Di Salle A, Gallo F, Pompilio C, Tivoli M (2020) Chorevolution: Service choreography in practice. Sci Comput Program 197:102498. https://doi.org/10.1016/j.scico.2020.102498
Autili M, Perucci A, Leite L, Tivoli M, Kon F, Di Salle A (2021) Highly collaborative distributed systems: synthesis and enactment at work. Concurr Comput: Pract Exp. https://doi.org/10.1002/cpe.6039
Filippone G, Autili M, Tivoli M Synthesis of context-aware business-to-business processes for location-based services through choreographies. J Softw: Evolut Process. https://doi.org/10.1002/smr.2416
Balalaie A, Heydarnoori A, Jamshidi P (2016) Migrating to cloud-native architectures using microservices: An experience report. In: Celesti A, Leitner P (eds) Advances in service-oriented and cloud computing. Springer, Cham, pp 201–215. https://doi.org/10.1007/978-3-319-33313-7_15
Taibi D, Lenarduzzi, V, Pahl C (2018) Architectural patterns for microservices: a systematic mapping study. In: CLOSER 2018: Proceedings of the 8th international conference on cloud computing and services science; Funchal, Madeira, Portugal, 19–21 March 2018, pp 221–232. https://doi.org/10.5220/0006798302210232
Li R (2015) Baker street: avoiding bottlenecks with a client-side load balancer for microservices. https://thenewstack.io/baker-street-avoiding-bottlenecks-with-a-client-side-load-balancer-for-microservices/. Accessed June 2022
Konersmann M, Kaplan A, Kühn T, Heinrich R, Koziolek A, Reussner R, Jürjens J, al-Doori M, Boltz N, Ehl M, Fuchs D, Groser K, Hahner S, Keim J, Lohr M, Sağlam T, Schulz S, Töberg, J-P (2022) Evaluation methods and replicability of software architecture research objects. In: 2022 IEEE 19th international conference on software architecture (ICSA), pp 157–168. https://doi.org/10.1109/ICSA53651.2022.00023
Kogias M, Iyer R, Bugnion E (2020) Bypassing the load balancer without regrets. In: Proceedings of the 11th ACM symposium on cloud computing. SoCC ’20. Association for Computing Machinery, New York, pp 193–207. https://doi.org/10.1145/3419111.3421304
Niu Y, Liu F, Li Z (2018) Load balancing across microservices. In: IEEE INFOCOM 2018—IEEE conference on computer communications, pp 198–206. https://doi.org/10.1109/INFOCOM.2018.8486300
Fielding RT (2000) Architectural styles and the design of network-based software architectures. PhD Thesis, University of California, Irvine
Scalas A, Dardha O, Hu R, Yoshida N (2017) A linear decomposition of multiparty sessions for safe distributed programming. In: Müller P (ed) 31st European conference on object-oriented programming, ECOOP 2017, June 19–23, 2017, Barcelona, Spain. LIPIcs, vol 74, pp 24–12431. https://doi.org/10.4230/LIPIcs.ECOOP.2017.24
Honda K, Mukhamedov A, Brown G, Chen T, Yoshida N (2011) Scribbling interactions with a formal foundation. In: Natarajan R, Ojo AK (eds) Distributed computing and internet technology—7th international conference, ICDCIT 2011, Bhubaneshwar, India, February 9–12, 2011. Proceedings. Lecture Notes in Computer Science, vol 6536. Springer, Cham, pp 55–75. https://doi.org/10.1007/978-3-642-19056-8_4
Giallorenzo S, Lanese I, Russo D (2018) Chip: A choreographic integration process. In: Panetto H, Debruyne C, Proper HA, Ardagna CA, Roman D, Meersman R (eds) On the move to meaningful internet systems. OTM 2018 conferences—confederated international conferences: CoopIS, C &TC, and ODBASE 2018, Valletta, Malta, October 22–26, 2018, Proceedings, Part II. Lecture Notes in Computer Science, vol 11230. Springer, Cham, pp 22–40. https://doi.org/10.1007/978-3-030-02671-4_2
Carbone M, Montesi F (2013) Deadlock-freedom-by-design: multiparty asynchronous global programming. In: Giacobazzi R, Cousot R (eds) The 40th annual ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL ’13, Rome, Italy—January 23–25, 2013, pp 263–274. https://doi.org/10.1145/2429069.2429101
Preda MD, Gabbrielli M, Giallorenzo S, Lanese I, Mauro J (2017) Dynamic choreographies: theory and implementation. Log Methods Comput Sci. https://doi.org/10.23638/LMCS-13(2:1)2017
Weisenburger P, Wirth J, Salvaneschi G (2020) A survey of multitier programming. ACM Comput Surv 53(4):81–18135. https://doi.org/10.1145/3397495
Giallorenzo S, Montesi F, Peressotti M, Richter D, Salvaneschi G, Weisenburger P (2021) Multiparty languages: the choreographic and multitier cases (pearl). In: Møller A, Sridharan M (eds) 35th European conference on object-oriented programming, ECOOP 2021, July 11–17, 2021, Aarhus, Denmark (Virtual conference). LIPIcs, vol 194, pp 22–12227. https://doi.org/10.4230/LIPIcs.ECOOP.2021.22
Oberhauser R (2016) Microflows: lightweight automated planning and enactment of workflows comprising semantically-annotated microservices. In: 6th international symposium on business modeling and software design (BMSD 2016), vol 1, pp 134–143. https://doi.org/10.5220/0006223001340143
Ben Hadj Yahia E, Réveillère L, Bromberg Y-D, Chevalier R, Cadot A (2016) Medley: an event-driven lightweight platform for service composition. In: Bozzon A, Cudre-Maroux P, Pautasso C (eds) Web engineering. Springer, Cham, pp 3–20. https://doi.org/10.1007/978-3-319-38791-8_1
Monteiro D, Maia PHM, Rocha LS, Mendonça NC (2020) Building orchestrated microservice systems using declarative business processes. SOCA 14(4):243–268. https://doi.org/10.1007/s11761-020-00300-2
Gutiérrez–Fernández AM, Resinas, M, Ruiz–Cortés A (2017) Redefining a process engine as a microservice platform. In: Dumas M, Fantinato M (eds) Business process management workshops. Springer, Cham, pp 252–263. https://doi.org/10.1007/978-3-319-58457-7_19
Valderas P, Torres V, Pelechano V (2020) A microservice composition approach based on the choreography of BPMN fragments. Inf Softw Technol 127:106370. https://doi.org/10.1016/j.infsof.2020.106370
Sun C-a, Wang J, Liu Z, Han Y (2021) A variability-enabling and model-driven approach to adaptive microservice-based systems. In: 2021 IEEE 45th annual computers, software, and applications conference (COMPSAC), pp 968–973. https://doi.org/10.1109/COMPSAC51774.2021.00130
Guidi C, Lanese I, Mazzara M, Montesi F (2017) In: Mazzara M, Meyer B (eds) Microservices: a language-based approach. Springer, Cham, pp 217–225. https://doi.org/10.1007/978-3-319-67425-4_13
Afzal S, Ganesh K (2019) Load balancing in cloud computing—a hierarchical taxonomical classification. J Cloud Comput. https://doi.org/10.1186/s13677-019-0146-7
Malcom (2018) Load-balancing strategies. https://www.beyondthelines.net/computing/load-balancing-strategies/. Accessed June 2022
Yu R, Kilari VT, Xue G, Yang D (2019) Load balancing for interdependent Iot microservices. In: IEEE INFOCOM 2019—IEEE conference on computer communications, pp 298–306. https://doi.org/10.1109/INFOCOM.2019.8737450
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Filippone, G., Pompilio, C., Autili, M. et al. An architectural style for scalable choreography-based microservice-oriented distributed systems. Computing 105, 1933–1956 (2023). https://doi.org/10.1007/s00607-022-01139-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-022-01139-5