Dynamic Choreographies

Safe Runtime Updates of Distributed Applications
  • Mila Dalla Preda
  • Maurizio Gabbrielli
  • Saverio Giallorenzo
  • Ivan Lanese
  • Jacopo Mauro
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9037)


Programming distributed applications free from communication deadlocks and races is complex. Preserving these properties when applications are updated at runtime is even harder.

We present DIOC, a language for programming distributed applications that are free from deadlocks and races by construction. A DIOC program describes a whole distributed application as a unique entity (choreography). DIOC allows the programmer to specify which parts of the application can be updated. At runtime, these parts may be replaced by new DIOC fragments from outside the application. DIOC programs are compiled, generating code for each site, in a lower-level language called DPOC. We formalise both DIOC and DPOC semantics as labelled transition systems and prove the correctness of the compilation as a trace equivalence result. As corollaries, DPOC applications are free from communication deadlocks and races, even in presence of runtime updates.


Global State Parallel Composition Label Transition System Boolean Expression Service Orient Computing 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
    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)CrossRefGoogle Scholar
  3. 3.
    Bravetti, M., Carbone, M., Hildebrandt, T., Lanese, I., Mauro, J., Pérez, J.A., Zavattaro, G.: Towards global and local types for adaptation. In: Counsell, S., Núñez, M. (eds.) SEFM 2013. LNCS, vol. 8368, pp. 3–14. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  4. 4.
    Carbone, M., Honda, K., Yoshida, N.: Structured communication-centered programming for web services. ACM Trans. Program. Lang. Syst. 34(2), 8 (2012)CrossRefGoogle Scholar
  5. 5.
    Carbone, M., Montesi, F.: Deadlock-Freedom-by-Design: Multiparty Asynchronous Global Programming. In: POPL, pp. 263–274. ACM (2013)Google Scholar
  6. 6.
    Castagna, G., Dezani-Ciancaglini, M., Padovani, L.: On global types and multi-party session. Logical Methods in Computer Science 8(1) (2012)Google Scholar
  7. 7.
    Coppo, M., Dezani-Ciancaglini, M., Venneri, B.: Self-adaptive multiparty sessions. In: Service Oriented Computing and Applications, pp. 1–20 (2014)Google Scholar
  8. 8.
    Dalla Preda, M., Gabbrielli, M., Giallorenzo, S., Lanese, I., Mauro, J.: Dynamic Choreographies - Safe Runtime Updates of Distributed Applications. Technical report (2014),
  9. 9.
    Dalla Preda, M., Giallorenzo, S., Lanese, I., Mauro, J., Gabbrielli, M.: AIOCJ: A choreographic framework for safe adaptive distributed applications. In: Combemale, B., Pearce, D.J., Barais, O., Vinju, J.J. (eds.) SLE 2014. LNCS, vol. 8706, pp. 161–170. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  10. 10.
    Di Giusto, C., Pérez, J.A.: Disciplined structured communications with consistent runtime adaptation. In: SAC, pp. 1913–1918. ACM (2013)Google Scholar
  11. 11.
    Ghezzi, C., Pradella, M., Salvaneschi, G.: An evaluation of the adaptation capabilities in programming languages. In: SEAMS, pp. 50–59. ACM (2011)Google Scholar
  12. 12.
    Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented Programming. Journal of Object Technology 7(3), 125–151 (2008)CrossRefGoogle Scholar
  13. 13.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty Asynchronous Session Types. In: POPL, pp. 273–284. ACM (2008)Google Scholar
  14. 14.
    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)CrossRefGoogle Scholar
  15. 15.
    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
  16. 16.
    Lanese, I., Montesi, F., Zavattaro, G.: Amending choreographies. In: WWV. EPTCS, vol. 123, pp. 34–48 (2013)Google Scholar
  17. 17.
    Leite, L.A.F., et al.: A systematic literature review of service choreography adaptation. Service Oriented Computing and Applications 7(3), 199–216 (2013)CrossRefGoogle Scholar
  18. 18.
    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)CrossRefGoogle Scholar
  19. 19.
    Nienaltowski, P.: Practical framework for contract-based concurrent object-oriented programming. PhD thesis, ETH Zurich (2007)Google Scholar
  20. 20.
    Pawlak, R., et al.: JAC: an aspect-based distributed dynamic framework. Softw., Pract. Exper. 34(12), 1119–1148 (2004)CrossRefGoogle Scholar
  21. 21.
  22. 22.
  23. 23.
    Yang, Z., Cheng, B.H.C., Stirewalt, R.E.K., Sowell, J., Sadjadi, S.M., McKinley, P.K.: An aspect-oriented approach to dynamic adaptation. In: WOSS, pp. 85–92. ACM (2002)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2015

Authors and Affiliations

  • Mila Dalla Preda
    • 1
  • Maurizio Gabbrielli
    • 2
  • Saverio Giallorenzo
    • 2
  • Ivan Lanese
    • 2
  • Jacopo Mauro
    • 2
  1. 1.Department of Computer ScienceUniversity of VeronaVeronaItaly
  2. 2.Department of Computer Science and EngineeringUniversity of Bologna / INRIABolognaItaly

Personalised recommendations