Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
Carbone, M., Montesi, F.: Deadlock-Freedom-by-Design: Multiparty Asynchronous Global Programming. In: POPL, pp. 263–274. ACM (2013)
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)
Naik, M., Park, C.-S., Sen, K., Gay, D.: Effective static deadlock detection. In: ICSE, pp. 386–396. IEEE (2009)
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)
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)
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)
Zhang, J., Goldsby, H., Cheng, B.H.C.: Modular Verification of Dynamically Adaptive Systems. In: AOSD, pp. 161–172. ACM (2009)
Dalla Preda, M., Gabbrielli, M., Giallorenzo, S., Lanese, I., Mauro, J.: Deadlock Freedom by Construction for Distributed Adaptative Applications. Technical Report, http://arxiv.org/pdf/1407.0970v1.pdf
Carbone, M., Honda, K., Yoshida, N.: Structured communication-centered programming for web services. ACM Trans. Program. Lang. Syst. 34(2), 8 (2012)
Scribble website, http://www.jboss.org/scribble
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)
World Wide Web Consortium, Web Services Choreography Description Language Version 1.0 (2005), http://www.w3.org/TR/ws-cdl-10/
Jolie website, http://www.jolie-lang.org/
Montesi, F., Guidi, C., Zavattaro, G.: Composing services with JOLIE. In: Proc. of ECOWS 2007, pp. 13–22. IEEE Press (2007)
Dalla Preda, M., Giallorenzo, S., Lanese, I., Mauro, J., Gabbrielli, M.: AIOCJ: A Choreographic Framework for Safe Adaptive Distributed Applications. Technical Report, http://arxiv.org/pdf/1407.0975.pdf
Lanese, I., Montesi, F., Zavattaro, G.: Amending choreographies. In: WWV, vol. 123, pp. 34–48. EPTCS (2013)
Eclipse website, http://www.eclipse.org/
Xtext website, http://www.eclipse.org/Xtext/
Ghezzi, C., Pradella, M., Salvaneschi, G.: An evaluation of the adaptation capabilities in programming languages. In: SEAMS, pp. 50–59. ACM (2011)
Leite, L.A.F., et al.: A systematic literature review of service choreography adaptation. Service Oriented Computing and Applications 7(3), 199–216 (2013)
Coppo, M., Dezani-Ciancaglini, M., Venneri, B.: Self-adaptive monitors for multiparty sessions. In: PDP, pp. 688–696. IEEE (2014)
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)
Wombacher, A.: Alignment of choreography changes in BPEL processes. In: IEEE SCC, pp. 1–8. IEEE Press (2009)
Cugola, G., Ghezzi, C., Pinto, L.S.: DSOL: a declarative approach to self-adaptive service orchestrations. Computing 94(7), 579–617 (2012)
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)
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)
AIOCJ website, http://www.cs.unibo.it/projects/jolie/aiocj.html
Pawlak, R., et al.: JAC: an aspect-based distributed dynamic framework. SPE 34(12), 1119–1148 (2004)
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)
Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented Programming. Journal of Object Technology 7(3), 125–151 (2008)
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)
Casati, F., Ceri, S., Pernici, B., Pozzi, G.: Workflow Evolution. Data Knowl. Eng. 24(3), 211–238 (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Dalla Preda, M., Giallorenzo, S., Lanese, I., Mauro, J., Gabbrielli, M. (2014). AIOCJ: A Choreographic Framework for Safe Adaptive Distributed Applications. In: Combemale, B., Pearce, D.J., Barais, O., Vinju, J.J. (eds) Software Language Engineering. SLE 2014. Lecture Notes in Computer Science, vol 8706. Springer, Cham. https://doi.org/10.1007/978-3-319-11245-9_9
Download citation
DOI: https://doi.org/10.1007/978-3-319-11245-9_9
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-11244-2
Online ISBN: 978-3-319-11245-9
eBook Packages: Computer ScienceComputer Science (R0)