AIOCJ: A Choreographic Framework for Safe Adaptive Distributed Applications

  • Mila Dalla Preda
  • Saverio Giallorenzo
  • Ivan Lanese
  • Jacopo Mauro
  • Maurizio Gabbrielli
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8706)


We present AIOCJ, a framework for programming distributed adaptive applications. Applications are programmed using AIOC, a choreographic language suited for expressing patterns of interaction from a global point of view. AIOC allows the programmer to specify which parts of the application can be adapted. Adaptation takes place at runtime by means of rules, which can change during the execution to tackle possibly unforeseen adaptation needs. AIOCJ relies on a solid theory that ensures applications to be deadlock-free by construction also after adaptation. We describe the architecture of AIOCJ, the design of the AIOC language, and an empirical validation of the framework.


Adaptation Manager Adaptation Rule Applicability Condition Adaptation Server Service Choreography 
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.
    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
  2. 2.
    Carbone, M., Montesi, F.: Deadlock-Freedom-by-Design: Multiparty Asynchronous Global Programming. In: POPL, pp. 263–274. ACM (2013)Google Scholar
  3. 3.
    Gößler, G., Sifakis, J.: Component-Based Construction of Deadlock-Free Systems. In: Pandya, P.K., Radhakrishnan, J. (eds.) FSTTCS 2003. LNCS, vol. 2914, pp. 420–433. Springer, Heidelberg (2003)Google Scholar
  4. 4.
    Naik, M., Park, C.-S., Sen, K., Gay, D.: Effective static deadlock detection. In: ICSE, pp. 386–396. IEEE (2009)Google Scholar
  5. 5.
    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
  6. 6.
    Bucchiarone, A., Marconi, A., Pistore, M., Raik, H.: Dynamic Adaptation of Fragment-Based and Context-Aware Business Processes. In: ICWS, pp. 33–41. IEEE Press (2012)Google Scholar
  7. 7.
    Chen, W.-K., Hiltunen, M.A., Schlichting, R.D.: Constructing Adaptive Software in Distributed Systems. In: ICDCS. LNCS, vol. 6084, pp. 635–643. Springer (2001)Google Scholar
  8. 8.
    Zhang, J., Goldsby, H., Cheng, B.H.C.: Modular Verification of Dynamically Adaptive Systems. In: AOSD, pp. 161–172. ACM (2009)Google Scholar
  9. 9.
    Dalla Preda, M., Gabbrielli, M., Giallorenzo, S., Lanese, I., Mauro, J.: Deadlock Freedom by Construction for Distributed Adaptative Applications. Technical Report,
  10. 10.
    Carbone, M., Honda, K., Yoshida, N.: Structured communication-centered programming for web services. ACM Trans. Program. Lang. Syst. 34(2), 8 (2012)Google Scholar
  11. 11.
  12. 12.
    Lanese, I., Guidi, C., Montesi, F., Zavattaro, G.: Bridging the Gap between Interaction- and Process-Oriented Choreographies. In: SEFM, pp. 323–332. IEEE Press (2008)Google Scholar
  13. 13.
    World Wide Web Consortium, Web Services Choreography Description Language Version 1.0 (2005),
  14. 14.
  15. 15.
    Montesi, F., Guidi, C., Zavattaro, G.: Composing services with JOLIE. In: Proc. of ECOWS 2007, pp. 13–22. IEEE Press (2007)Google Scholar
  16. 16.
    Dalla Preda, M., Giallorenzo, S., Lanese, I., Mauro, J., Gabbrielli, M.: AIOCJ: A Choreographic Framework for Safe Adaptive Distributed Applications. Technical Report,
  17. 17.
    Lanese, I., Montesi, F., Zavattaro, G.: Amending choreographies. In: WWV, vol. 123, pp. 34–48. EPTCS (2013)Google Scholar
  18. 18.
    Eclipse website,
  19. 19.
  20. 20.
    Ghezzi, C., Pradella, M., Salvaneschi, G.: An evaluation of the adaptation capabilities in programming languages. In: SEAMS, pp. 50–59. ACM (2011)Google Scholar
  21. 21.
    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
  22. 22.
    Coppo, M., Dezani-Ciancaglini, M., Venneri, B.: Self-adaptive monitors for multiparty sessions. In: PDP, pp. 688–696. IEEE (2014)Google Scholar
  23. 23.
    Rinderle, S., Wombacher, A., Reichert, M.: Evolution of Process Choreographies in DYCHOR. In: Meersman, R., Tari, Z. (eds.) OTM 2006. LNCS, vol. 4275, pp. 273–290. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  24. 24.
    Wombacher, A.: Alignment of choreography changes in BPEL processes. In: IEEE SCC, pp. 1–8. IEEE Press (2009)Google Scholar
  25. 25.
    Cugola, G., Ghezzi, C., Pinto, L.S.: DSOL: a declarative approach to self-adaptive service orchestrations. Computing 94(7), 579–617 (2012)CrossRefzbMATHGoogle Scholar
  26. 26.
    Baresi, L., Marconi, A., Pistore, M., Sirbu, A.: Corrective Evolution of Adaptable Process Models. In: Nurcan, S., Proper, H.A., Soffer, P., Krogstie, J., Schmidt, R., Halpin, T., Bider, I. (eds.) RIMS 1982. LNBIP, vol. 147, pp. 214–229. Springer, Heidelberg (2013)Google Scholar
  27. 27.
    Bucchiarone, A., Marconi, A., Mezzina, C.A., Pistore, M., Raik, H.: On-the-Fly Adaptation of Dynamic Service-Based Systems: Incrementality, Reduction and Reuse. In: Basu, S., Pautasso, C., Zhang, L., Fu, X. (eds.) ICSOC 2013. LNCS, vol. 8274, pp. 146–161. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  28. 28.
  29. 29.
    Pawlak, R., et al.: JAC: an aspect-based distributed dynamic framework. SPE 34(12), 1119–1148 (2004)Google Scholar
  30. 30.
    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
  31. 31.
    Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented Programming. Journal of Object Technology 7(3), 125–151 (2008)CrossRefGoogle Scholar
  32. 32.
    Weber, B., Rinderle, S., Reichert, M.: Change Patterns and Change Support Features in Process-Aware Information Systems. In: Krogstie, J., Opdahl, A.L., Sindre, G. (eds.) CAiSE 2007 and WES 2007. LNCS, vol. 4495, pp. 574–588. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  33. 33.
    Casati, F., Ceri, S., Pernici, B., Pozzi, G.: Workflow Evolution. Data Knowl. Eng. 24(3), 211–238 (1998)CrossRefzbMATHGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Mila Dalla Preda
    • 1
  • Saverio Giallorenzo
    • 2
  • Ivan Lanese
    • 2
  • Jacopo Mauro
    • 2
  • Maurizio Gabbrielli
    • 2
  1. 1.Department of Computer ScienceUniv. of VeronaItaly
  2. 2.Department of Computer Science and EngineeringUniv. of Bologna / INRIAItaly

Personalised recommendations