Skip to main content
Log in

Synchronizing concurrent model updates based on bidirectional transformation

  • Special Section Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

Model-driven software development often involves several related models. When models are updated, the updates need to be propagated across all models to make them consistent. A bidirectional model transformation keeps two models consistent by updating one model in accordance with the other. However, it does not work when the two models are modified at the same time. In this paper we first examine the requirements for synchronizing concurrent updates. We view a synchronizer for concurrent updates as a function taking the two original models and the two updated models as input, and producing two new models where the updates are synchronized. We argue that the synchronizer should satisfy three properties that we define to ensure a reasonable synchronization behavior. We then propose a new algorithm to wrap any bidirectional transformation into a synchronizer with the help of model difference approaches. We show that synchronizers produced by our algorithm are ensured to satisfy the three properties if the bidirectional transformation satisfies the correctness property and the hippocraticness property. We also show that the history ignorance property contributes to the symmetry of our algorithm. An implementation of our algorithm shows that it worked well in a practical runtime management framework.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Object Management Group: MOF query/views/transformations specification 1.0. (2008). http://www.omg.org/docs/formal/08-04-03.pdf

  2. Schürr, A., Klar, F.: 15 years of triple graph grammars. In: Proceedings of the 4th International Conference on Graph Transformation. Lecture Notes in Computer Science, vol. 5214, pp. 411–425. Springer, Berlin (2008)

  3. Stevens P.: Bidirectional model transformations in QVT: semantic issues and open questions. Softw. Syst. Model. 9(1), 7–20 (2010)

    Article  Google Scholar 

  4. Alanen, M., Porres, I.: Difference and union of models. In: UML’03: Proceedings of the 6th International Conference on the Unified Modeling Language. Lecture Notes in Computer Science, vol. 2863, pp. 2–17. Springer, Berlin (2003)

  5. Mehra, A., Grundy, J., Hosking, J.: A generic approach to supporting diagram differencing and merging for collaborative design. In: ASE ’05: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, New York, NY, USA, ACM, pp. 204–213 (2005)

  6. Abi-Antoun, M., Aldrich, J., Nahas, N., Schmerl, B., Garlan, D.: Differencing and merging of architectural views. In: ASE ’06: Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering, Washington, DC, USA, IEEE Computer Society, pp. 47–58 (2006)

  7. Xiong, Y., Liu, D., Hu, Z., Zhao, H., Takeichi, M., Mei, H.: Towards automatic model synchronization from model transformations. In: ASE ’07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, New York, NY, USA, ACM, pp. 164–173 (2007)

  8. Xiong, Y., Song, H., Hu, Z., Takeichi, M.: Supporting parallel updates with bidirectional model transformations. In: ICMT ’09: Proceedings of the Second International Conference on Theory and Practice of Model Transformations. Lecture Notes in Computer Science, vol. 5563, pp. 213–228. Springer, Berlin (2009)

  9. Diskin, Z.: Algebraic models for bidirectional model synchronization. In: MoDELS ’08: Proceedings of the 11th International Conference on Model Driven Engineering Languages and Systems. Lecture Notes in Computer Science, vol. 5301, pp. 21–36. Springer, Berlin (2008)

  10. Xing, Z., Stroulia, E.: UMLDiff: an algorithm for object-oriented design differencing. In: ASE ’05: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, New York, NY, USA, ACM, pp. 54–65 (2005)

  11. Cicchetti, A., Ruscio, D.D., Pierantonio, A.: Managing model conflicts in distributed development. In: MoDELS ’08: Proceedings of the 11th International Conference on Model Driven Engineering Languages and Systems. Lecture Notes in Computer Science, vol. 5301, pp. 311–325. Springer, Berlin (2008)

  12. Xiong Y., Hu Z., Zhao H., Song H., Takeichi M., Mei H.: Supporting automatic model inconsistency fixing. In: ESEC/FSE ’09: Proceedings of 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, New York, NY, USA, ACM, pp. 315–324 (2009)

  13. Khanna, S., Kunal, K., Pierce, B.C.: A formal investigation of diff3. In: Arvind, P. (eds.) Foundations of Software Technology and Theoretical Computer Science (FSTTCS), pp. 485–496 (2007)

  14. Bancilhon F., Spyratos N.: Update semantics of relational views. ACM Trans. Database Syst. (TODS) 6(4), 557–575 (1981)

    Article  MATH  Google Scholar 

  15. Matsuda, K., Hu, Z., Nakano, K., Hamana, M., Takeichi, M.: Bidirectionalization transformation based on automatic derivation of view complement functions. In: ICFP ’07: Proceedings of the 2007 ACM SIGPLAN international conference on Functional programming, New York, NY, USA, ACM, pp. 47–58 (2007)

  16. Lechtenbörger, J.: The impact of the constant complement approach towards view updating. In: PODS ’03: Proceedings of the Twenty-Second ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems, New York, NY, USA, ACM, pp. 49–55 (2003)

  17. Oreizy, P., Medvidovic, N., Taylor, R.N.: Architecture-based runtime software evolution. In: Proceedings of the 20th International Conference on Software Engineering (ICSE’98), pp. 177–186 (1998)

  18. Song, H., Xiong, Y., Hu, Z., Huang, G., Mei, H.: A model-driven framework for constructing runtime architecture infrastructures. Technical Report GRACE-TR-2008-05, GRACE Center, National Institute of Informatics, Japan (2008)

  19. Java Management Extensions http://www.jcp.org/en/jsr/detail?id=77

  20. Java PetStore http://java.sun.com/developer/releases/petstore/

  21. Eclipse Consortium: The Eclipse Graphical Modeling Framework (2008). http://www.eclipse.org/modeling/gmf/

  22. Song, H., Xiong, Y., Chauvel, F., Huang, G., Hu, Z., Hong, M.: Generating synchronization engines between running systems and their model-based views. In: Proceedings of the 4th International Workshop on Models@run.time, pp. 11–20 (2009)

  23. JOnAS Project. Java Open Application Server. http://jonas.objectweb.org

  24. Pierce, B.C., Schmitt, A., Greenwald, M.B.: Bringing Harmony to optimism: a synchronization framework for heterogeneous tree-structured data. Technical Report MS-CIS-03-42, University of Pennsylvania (2003)

  25. Saito, Y., Shapiro, M.: Replication: optimistic approaches. Technical Report HPL-2002-33, HP Laboratories Palo Alto (2002)

  26. Egyed, A., Letier, E., Finkelstein, A.: Generating and evaluating choices for fixing inconsistencies in UML design models. In: ASE ’08: Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering, Washington, DC, USA, IEEE Computer Society, pp. 99–108 (2008)

  27. Kolovos, D., Paige, R., Polack, F.: Detecting and repairing inconsistencies across heterogeneous models. In: ICST ’08: Proceedings of the 1st International Conference on Software Testing, Verification, and Validation. IEEE Computer Society, pp. 356–364 (2008)

  28. Giese H., Wagner R.: From model transformation to incremental bidirectional model synchronization. Softw. Syst. Model. 8(1), 21–43 (2009)

    Article  Google Scholar 

  29. Antkiewicz, M., Czarnecki, K.: Design space of heterogeneous synchronization. In: GTTSE ’07: Proceedings of the 2nd Summer School on Generative and Transformational Techniques in Software Engineering. Lecture Notes in Computer Science, vol. 5235, pp. 3–46. Springer, Berlin (2007)

  30. Foster J.N., Greenwald M.B., Moore J.T., Pierce B.C., Schmitt A.: Combinators for bidirectional tree transformations: a linguistic approach to the view-update problem. ACM Trans. Program. Lang. Syst. 29(3), 17 (2007)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yingfei Xiong.

Additional information

Communicated by Richard Paige, Jeff Gray and Dang Van Hung.

This research was done while Y. Xiong was at the University of Tokyo.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Xiong, Y., Song, H., Hu, Z. et al. Synchronizing concurrent model updates based on bidirectional transformation. Softw Syst Model 12, 89–104 (2013). https://doi.org/10.1007/s10270-010-0187-3

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-010-0187-3

Keywords

Navigation