Extensible Conflict-Free Replicated Datatypes for Real-time Collaborative Software Engineering
Istvan David, Eugene Syriani, Constantin Masson
Citation: Proceedings of the 17th Conference on Computer Science and Intelligence Systems, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 30, pages 849–853 (2022)
Abstract. Real-time collaboration has become a prominent feature of nowadays' software engineering practices. Conflict-free replicated data types (CRDT) offer an efficient and robust mechanism for implementing real-time collaborative environments. CRDT frameworks provide generic data types tool builders have to customize and extend when developing domains-specific model editors. However, extensibility has not been addressed by current CRDT frameworks as a primary objective so far. Furthermore, the data types provided by mainstream CRDT frameworks are primarily geared towards linear data, such as text, and fall short of supporting the complex data types typically used in domain-specific modeling, such as graphs. In this paper, we report our results in augmenting primitive CRDT with extension mechanisms. We demonstrate our technique in our prototype collaborative framework.
- J. Whitehead, “Collaboration in software engineering: A roadmap,” in Future of Software Engineering. IEEE, 2007. http://dx.doi.org/10.1007/978-3-642-10294-3_1 pp. 214–225.
- C. Sun et al., “Achieving Convergence, Causality Preservation, and Intention Preservation in Real-Time Cooperative Editing Systems,” ACM Trans. Comput.-Hum. Interact., vol. 5, no. 1, p. 63–108, 1998.
- P. A. Bernstein and N. Goodman, “Concurrency Control in Distributed Database Systems,” ACM Comput. Surv., vol. 13, no. 2, pp. 185–221, 1981. http://dx.doi.org/10.1145/356842.356846
- V. B. Gomes et al., “Verifying strong eventual consistency in distributed systems,” Proceedings of the ACM on Programming Languages, vol. 1, no. OOPSLA, pp. 1–28, 2017. http://dx.doi.org/10.1145/3133933
- M. Shapiro, N. Preguiça, C. Baquero, and M. Zawirski, “Conflict-free replicated data types,” in Symposium on Self-Stabilizing Systems. Springer, 2011. http://dx.doi.org/10.1007/978-3-642-24550-3_29 pp. 386–400.
- D. C. Schmidt, “Model-Driven Engineering,” IEEE Computer, vol. 39, no. 2, pp. 25–31, 2006. http://dx.doi.org/10.1109/MC.2006.58
- H. Muccini, J. Bosch, and A. van der Hoek, “Collaborative modeling in software engineering,” IEEE Software, vol. 35, no. 6, pp. 20–24, 2018.
- I. David et al., “Engineering process transformation to manage (in)consistency,” in Proceedings of the 1st Intl. Workshop on Collaborative Modelling in MDE, vol. 1717. CEUR-WS.org, 2016, pp. 7–16.
- I. David et al, “Collaborative Model-Driven Software Engineering: A Systematic Update,” in Proceedings of the 24th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems. ACM, 2021. http://dx.doi.org/10.1109/MODELS50736.2021.00035 pp. 273–284.
- M. Franzago, D. D. Ruscio, I. Malavolta, and H. Muccini, “Collaborative model-driven software engineering: A classification framework and a research map,” vol. 44, no. 12, 2018. http://dx.doi.org/10.1109/TSE.2017.2755039 pp. 1146–1175.
- S. Kelly, “Collaborative modelling with version control,” in Federation of Intl. Conferences on Software Technologies: Applications and Foundations. Springer, 2017. http://dx.doi.org/10.1007/978-3-319-74730-9_3 pp. 20–29.
- C. Adourian and H. Vangheluwe, “Consistency between geometric and dynamic views of a mechanical system,” in Proceedings of the 2007 Summer Computer Simulation Conference. Society for Computer Simulation International, 2007.
- I. David et al., “Towards inconsistency management by process-oriented dependency modeling,” in Proceedings of the 9th International Workshop on Multi-Paradigm Modeling, 2015, ser. CEUR Workshop Proceedings, vol. 1511. CEUR-WS.org, 2015, pp. 32–41.
- K. Vanherpen et al., “Ontological reasoning for consistency in the design of cyber-physical systems,” in 1st International Workshop on Cyber-Physical Production Systems. IEEE, 2016, pp. 1–8.
- C. Meiklejohn and P. Van Roy, “Lasp: A language for distributed, coordination-free programming,” in Proceedings of the 17th International Symposium on Principles and Practice of Declarative Program- ming. ACM, 2015. http://dx.doi.org/10.1145/2790449.2790525 p. 184–195.
- P. R. Johnson and R. Thomas, RFC0677: Maintenance of duplicate databases. RFC Editor, 1975.
- A. Stepanov and M. Lee, The standard template library. HP Laboratories 1501 Page Mill Road, Palo Alto, CA 94304, 1995, vol. 1501.
- C. Masson, “Framework for Real-time collaboration on extensive Data Types using Strong Eventual Consistency,” Master’s thesis, Université de Montréal, Canada, December 2018.
- D. Sun and C. Sun, “Operation Context and Context-based Operational Transformation,” in Proceedings of the 2006 20th Conference on Computer Supported Cooperative Work. ACM, 2006. http://dx.doi.org/10.1145/1180875.1180918 pp. 279–288.
- D. Sun, C. Sun, A. Ng, and W. Cai, “Real Differences between OT and CRDT in Correctness and Complexity for Consistency Maintenance in Co-Editors,” Proc. ACM Hum.-Comput. Interact., vol. 4, 2020.
- J. Bauwens and E. Gonzalez Boix, “Memory Efficient CRDTs in Dynamic Environments,” in Proceedings of the 11th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages, ser. VMIL 2019. ACM, 2019. http://dx.doi.org/10.1145/3358504.3361231 p. 48–57.
- I. David and E. Syriani, “Real-time Collaborative Multi-Level Modeling by Conflict-Free Replicated Data Types,” Softw. Syst. Model., 2022.