Advertisement

Guess Who’s Coming: Runtime Inclusion of Participants in Choreographies

  • Maurizio GabbrielliEmail author
  • Saverio Giallorenzo
  • Ivan Lanese
  • Jacopo Mauro
Chapter
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11760)

Abstract

In Choreographic Programming, a choreography specifies in a single artefact the expected behaviour of all the participants in a distributed system. The choreography is used to synthesise correct-by-construction programs for each participant.

In previous work, we defined Dynamic Choreographies to support the update of distributed systems at runtime.

In this work, we extend Dynamic Choreographies to include new participants at runtime, capturing those use cases where the system might be updated to interact with new, unforeseen stakeholders. We formalise our extension, prove its correctness, and present an implementation in the AIOCJ choreographic framework.

Keywords

Choreographic programming Adaptation of distributed systems Dynamic inclusion of new software components 

References

  1. 1.
    Montesi, F.: Kickstarting choreographic programming. In: Hildebrandt, T., Ravara, A., van der Werf, J.M., Weidlich, M. (eds.) WS-FM 2014-2015. LNCS, vol. 9421, pp. 3–10. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-33612-1_1CrossRefGoogle Scholar
  2. 2.
    Dalla Preda, M., Gabbrielli, M., Giallorenzo, S., Lanese, I., Mauro, J.: Dynamic choreographies: theory and implementation. Logical Methods Comput. Sci. 13(2) (2017)Google Scholar
  3. 3.
    Lu, S., Park, S., Seo, E., Zhou, Y.: Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In: ASPLOS, pp. 329–339. ACM (2008)Google Scholar
  4. 4.
    Humble, J., Farley, D.: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Pearson Education, London (2010)Google Scholar
  5. 5.
    Gabbrielli, M., Giallorenzo, S., Guidi, C., Mauro, J., Montesi, F.: Self-reconfiguring microservices. In: Ábrahám, E., Bonsangue, M., Johnsen, E.B. (eds.) Theory and Practice of Formal Methods. LNCS, vol. 9660, pp. 194–210. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-30734-3_14CrossRefGoogle Scholar
  6. 6.
    Bravetti, M., Giallorenzo, S., Mauro, J., Talevi, I., Zavattaro, G.: Optimal and automated deployment for microservices. In: Hähnle, R., van der Aalst, W. (eds.) FASE 2019. LNCS, vol. 11424, pp. 351–368. Springer, Cham (2019).  https://doi.org/10.1007/978-3-030-16722-6_21CrossRefGoogle Scholar
  7. 7.
  8. 8.
    Bergstra, J.A., Ponse, A., Smolka, S.A. (eds.): Handbook of Process Algebra. Elsevier Science Inc., New York (2001)zbMATHGoogle Scholar
  9. 9.
    Montesi, F., Guidi, C., Zavattaro, G.: Service-oriented programming with Jolie. In: Bouguettaya, A., Sheng, Q., Daniel, F. (eds.) Web Services Foundations, pp. 81–107. Springer, New York (2014).  https://doi.org/10.1007/978-1-4614-7518-7_4CrossRefGoogle Scholar
  10. 10.
    Dragoni, N., et al.: Microservices: yesterday, today, and tomorrow. Present and Ulterior Software Engineering, pp. 195–216. Springer, Cham (2017).  https://doi.org/10.1007/978-3-319-67425-4_12CrossRefGoogle Scholar
  11. 11.
    Giallorenzo, S., Lanese, I., Russo, D.: ChIP: a choreographic integration process. In: Panetto, H., Debruyne, C., Proper, H., Ardagna, C., Roman, D., Meersman, R. (eds.) OTM 2018. Lecture Notes in Computer Science, vol. 11230, pp. 22–40. Springer, Cham (2018).  https://doi.org/10.1007/978-3-030-02671-4_2CrossRefGoogle Scholar
  12. 12.
    Giallorenzo, S., Lanese, I., Mauro, J., Gabbrielli, M.: Programming adaptive microservice applications: an AIOCJ tutorial. In: Behavioural Types: from Theory to Tools, pp. 147–167. River Publishers (2017)Google Scholar
  13. 13.
    Bucchiarone, A., Marconi, A., Pistore, M., Raik, H.: Dynamic adaptation of fragment-based and context-aware business processes. In: ICWS, pp. 33–41. IEEE (2012)Google Scholar
  14. 14.
    Chen, W.-K., Hiltunen, M.A., Schlichting, R.D.: Constructing adaptive software in distributed systems. ICDCS. LNCS, vol. 6084, pp. 635–643. Springer, Heidelberg (2001).  https://doi.org/10.1109/ICDSC.2001.918994CrossRefGoogle Scholar
  15. 15.
    Ghezzi, C., Pradella, M., Salvaneschi, G.: An evaluation of the adaptation capabilities in programming languages. In: SEAMS, pp. 50–59. ACM (2011)Google Scholar
  16. 16.
    Lanese, I., Bucchiarone, A., Montesi, F.: A framework for rule-based dynamic adaptation. In: Wirsing, M., Hofmann, M., Rauschmayer, A. (eds.) TGC 2010. LNCS, vol. 6084, pp. 284–300. Springer, Heidelberg (2010).  https://doi.org/10.1007/978-3-642-15640-3_19CrossRefGoogle Scholar
  17. 17.
    Zhang, J., Goldsby, H., Cheng, B.H.C.: Modular verification of dynamically adaptive systems. In: AOSD, pp. 161–172. ACM (2009)Google Scholar
  18. 18.
    Leite, L.A.F., et al.: A systematic literature review of service choreography adaptation. SOCA 7(3), 199–216 (2013)CrossRefGoogle Scholar
  19. 19.
    Carbone, M., Honda, K., Yoshida, N.: Structured communication-centered programming for web services. ACM Trans. Program. Lang. Syst. 34(2), 8 (2012)CrossRefGoogle Scholar
  20. 20.
    Carbone, M., Montesi, F.: Deadlock-freedom-by-design: multiparty asynchronous global programming. In: POPL, pp. 263–274. ACM (2013)Google Scholar
  21. 21.
    Castagna, G., Dezani-Ciancaglini, M., Padovani, L.: On global types and multi-party session. Logical Methods Comput. Sci. 8(1) (2012)Google Scholar
  22. 22.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: POPL, pp. 273–284. ACM (2008)Google Scholar
  23. 23.
    Basu, S., Bultan, T., Ouederni, M.: Deciding choreography realizability. In: POPL, pp. 191–202. ACM (2012)Google Scholar
  24. 24.
    Lanese, I., Guidi, C., Montesi, F., Zavattaro, G.: Bridging the gap between interaction- and process-oriented choreographies. In: SEFM, pp. 323–332. IEEE (2008)Google Scholar
  25. 25.
    Bravetti, M., Zavattaro, G.: Towards a unifying theory for choreography conformance and contract compliance. In: Lumpe, M., Vanderperren, W. (eds.) SC 2007. LNCS, vol. 4829, pp. 34–50. Springer, Heidelberg (2007).  https://doi.org/10.1007/978-3-540-77351-1_4CrossRefzbMATHGoogle Scholar
  26. 26.
    Bergstra, J.A., Klint, P.: The discrete time TOOLBUS - a software coordination architecture. Sci. Comput. Program. 31(2–3), 205–229 (1998)CrossRefGoogle Scholar
  27. 27.
    Coppo, M., Dezani-Ciancaglini, M., Venneri, B.: Self-adaptive multiparty sessions. SOCA 9(3–4), 249–268 (2015)CrossRefGoogle Scholar
  28. 28.
    Di Giusto, C., Pérez, J.A.: Event-based run-time adaptation in communication-centric systems. Formal Asp. Comput. 28(4), 531–566 (2016)MathSciNetCrossRefGoogle Scholar
  29. 29.
    Anderson, G., Rathke, J.: Dynamic software update for message passing programs. In: Jhala, R., Igarashi, A. (eds.) APLAS 2012. LNCS, vol. 7705, pp. 207–222. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-35182-2_15CrossRefGoogle Scholar
  30. 30.
    Montesi, F., Yoshida, N.: Compositional choreographies. In: D’Argenio, P.R., Melgratti, H. (eds.) CONCUR 2013. LNCS, vol. 8052, pp. 425–439. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-40184-8_30CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Maurizio Gabbrielli
    • 1
    • 2
    Email author
  • Saverio Giallorenzo
    • 3
  • Ivan Lanese
    • 1
    • 2
  • Jacopo Mauro
    • 3
  1. 1.University of BolognaBolognaItaly
  2. 2.INRIASophia AntipolisFrance
  3. 3.University of Southern DenmarkOdenseDenmark

Personalised recommendations