Advertisement

Software & Systems Modeling

, Volume 12, Issue 1, pp 89–104 | Cite as

Synchronizing concurrent model updates based on bidirectional transformation

  • Yingfei Xiong
  • Hui Song
  • Zhenjiang Hu
  • Masato Takeichi
Special Section Paper

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.

Keywords

Model synchronization Bidirectional transformation Concurrent updates Model difference 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Object Management Group: MOF query/views/transformations specification 1.0. (2008). http://www.omg.org/docs/formal/08-04-03.pdf
  2. 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)Google Scholar
  3. 3.
    Stevens P.: Bidirectional model transformations in QVT: semantic issues and open questions. Softw. Syst. Model. 9(1), 7–20 (2010)CrossRefGoogle Scholar
  4. 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)Google Scholar
  5. 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)Google Scholar
  6. 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)Google Scholar
  7. 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)Google Scholar
  8. 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)Google Scholar
  9. 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)Google Scholar
  10. 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)Google Scholar
  11. 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)Google Scholar
  12. 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)Google Scholar
  13. 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)Google Scholar
  14. 14.
    Bancilhon F., Spyratos N.: Update semantics of relational views. ACM Trans. Database Syst. (TODS) 6(4), 557–575 (1981)MATHCrossRefGoogle Scholar
  15. 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)Google Scholar
  16. 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)Google Scholar
  17. 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)Google Scholar
  18. 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)Google Scholar
  19. 19.
    Java Management Extensions http://www.jcp.org/en/jsr/detail?id=77
  20. 20.
  21. 21.
    Eclipse Consortium: The Eclipse Graphical Modeling Framework (2008). http://www.eclipse.org/modeling/gmf/
  22. 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)Google Scholar
  23. 23.
    JOnAS Project. Java Open Application Server. http://jonas.objectweb.org
  24. 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)Google Scholar
  25. 25.
    Saito, Y., Shapiro, M.: Replication: optimistic approaches. Technical Report HPL-2002-33, HP Laboratories Palo Alto (2002)Google Scholar
  26. 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)Google Scholar
  27. 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)Google Scholar
  28. 28.
    Giese H., Wagner R.: From model transformation to incremental bidirectional model synchronization. Softw. Syst. Model. 8(1), 21–43 (2009)CrossRefGoogle Scholar
  29. 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)Google Scholar
  30. 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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag 2011

Authors and Affiliations

  • Yingfei Xiong
    • 4
  • Hui Song
    • 2
  • Zhenjiang Hu
    • 3
  • Masato Takeichi
    • 1
  1. 1.Department of Mathematical InformaticsThe University of TokyoTokyoJapan
  2. 2.Key Laboratory of High Confidence Software Technologies (Peking University)Ministry of EducationBeijingChina
  3. 3.GRACE CenterNational Institute of InformaticsTokyoJapan
  4. 4.Generative Software Development LabUniversity of WaterlooWaterlooCanada

Personalised recommendations