Yjs Yata
Yjs Yata
net/publication/310212186
CITATION READS
1 331
4 authors, including:
Ralf Klamma
RWTH Aachen University
327 PUBLICATIONS 2,069 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Learning Layers project (2012 -2016) - Construction sector pilot and follow-up View project
All content following this page was uploaded by Petru Nicolaescu on 14 November 2016.
The user has requested enhancement of the downloaded file. All in-text references underlined in blue are added to the original document
and are linked to publications on ResearchGate, letting you access and read them immediately.
This is the authors' preprint of a paper to appear in the Proceedings of the 19th
International Conference on Supporting Group Work (GROUP 2016) © Copyright 2016 ACM
The reasoning here is that the user id has a total ordering. Case 2 (origin1 ≡ origin2 and creator2 > creator1 ):
Case 2: (origin1 < origin2 ): Similar to case 1.
Case 3 (origin1 < origin2 ):
o1 ≤c o2 ∧ o2 ≤c o1
⇔ (o1 ≤ o2 ∧ o2 ≤ o1 ) ∧ (o1 ≤c o2 ∧ o2 ≤c o1 ) Figure 3
⇔ (o1 ≤ o2 ∧ o2 ≤ o1 ) ∧ (o1 ≡ o2 ∨ (o1 <c o2 ∧ o2 <c o1 )) ⇒ (¬(o1 < origin2 ) ∨ (∃o : o2 < o < o1 ))
Rule 1
⇒ o1 ≤ o2 ∧ o2 ≤ o1 ∧(∃o : o1 < o < o2 )
∧ o1 ≡ o2 ∨ ((o1 < origin2 ∨ origin2 ≤ origin1 ) ⇔ (¬(o1 < origin2 ) ∧ (∃o : o1 < o < o2 ))
| {z }
f alse ∨(∃o : o2 < o < o1 ∧ ∃o : o1 < o < o2 )
∧(o2 < origin1 ∨ origin1 ≤ origin2 )) ⇒ (¬(o1 < origin2 ) ∧ (∃o : o1 < o < o2 ))
| {z }
true ∨(o2 < o1 ∧ o1 < o2 )
⇒ o1 ≤ o2 ∧ o2 ≤ o1 ∧ (o1 ≡ o2 ∨ o1 < origin2 ) antisymmetry
⇒ ¬(o1 < origin2 ) ∧ (∃o : o1 < o < o2 )
⇒ (o1 ≤ o2 ∧ o2 ≤ o1 < origin2 ) ∨ o1 ≡ o2
!
⇒ origin2 ≤ o1 ∧ o1 < o2
origin2 <o2 assumption
⇒ o1 ≡ o2 ⇒ origin1 < origin2 ≤ o1 ∧ o1 < o2
⇒ origin1 < origin2 ≤ o1 < o2
Case 3: (origin2 < origin1 ): Similar to Case 2. o1 and o2 conflict
⇔ origin1 < origin2 < o1 < o2
Rule 1
⇒ f alse
Proof transitivity. Let o1 , o2 , and o3 be insertions,
with o1 ≤c o2 ∧ o2 ≤c o3 , o3 conflicts with o1 , and w.l.o.g. Case 4 (origin2 < origin1 ): Similar to Case 3.
o1 6= o2 6= o3 .
8. ACKNOWLEDGMENTS
This research was funded in part by the European Com-
mission in the projects “Layers” (FP7-318209) and “Metis”
(531262-LLP-2012-ES-KA3-KA3MP).
9. REFERENCES
[1] M. Ahmed-Nacer, C.-L. Ignat, G. Oster, H.-G. Roh,
and P. Urso. Evaluating CRDTs for Real-time
Document Editing. In Proceedings of the 11th ACM
symposium on Document engineering, pages 103–112.
ACM New York, 2011.
[2] L. Andre, S. Martin, G. Oster, and C.-L. Ignat.
Figure 11: Illustration of graph editing with Yjs. Supporting Adaptable Granularity of Changes for
Massive-scale Collaborative Editing. In
SyncMeta is using an OT solution for enabling shared edit- Collaboratecom 2013. IEEE, 2013.
ing on text and ensuring that the created nodes and edges [3] S. Androutsellis-Theotokis and D. Spinellis. A Survey
are converging during the modeling process at all sites. How- of Peer-to-peer Content Distribution Technologies.
ever, this solution uses timestamps for ensuring the consis- ACM Computing Surveys, 36(4):335–371, 2004.
tency in a P2P manner, which does not scale well with an [4] A. H. Davis, C. Sun, and J. Lu. Generalizing
increasing number of users. However, by synchronizing the Operational Transformation to the Standard General
underlying JSON model representation using YATA, Yjs is Markup Language. In CSCW ’02, pages 58–67. ACM,
a perfect candidate for achieving scalable optimistic NRT 2002.
collaborative modeling. The Yjs implementation benefits [5] M. Derntl, P. Nicolaescu, S. Erdtmann, R. Klamma,
from the advantages of YATA over OT algorithms. Thus, and M. Jarke. Near Real-Time Collaborative
Conceptual Modeling on the Web. In ER’15, volume Editing on Arbitrary Data Types. In ICWE’15,
9381, pages 344–357. Springer International volume 9114, pages 675–678. Springer, 2015.
Publishing, 2015. [20] G. Oster, P. Urso, P. Molli, and A. Imine. Data
[6] C. A. Ellis and S. J. Gibbs. Concurrency Control in Consistency for P2P Collaborative Editing. In CSCW
Groupware Systems. In ACM SIGMOD ’89, ’06, pages 259–268. ACM Press.
volume 18, pages 399–407. ACM, 1989. [21] N. Preguiça, J. M. Marques, M. Shapiro, and
[7] N. Fraser. Differential synchronization. In Proceedings M. Letia. A Commutative Replicated Data Type for
of the 2009 ACM Symposium on Document Cooperative Editing. In 29th IEEE International
Engineering, pages 13–20. ACM, 2009. Conference on Distributed Computing Systems, 2009,
[8] A. Gallidabino and C. Pautasso. The Liquid.js pages 395–403. IEEE, 2009.
Framework for Migrating and Cloning Stateful Web [22] M. Ressel, D. Nitsche-Ruhland, and R. Gunzenhäuser.
Components across Multiple Devices. In WWW’16 An Integrating, Transformation-oriented Approach to
Companion, pages 183–186, 2016. Concurrency Control and Undo in Group Editors. In
[9] A. R. S. Gerlicher. A Framework for Real-time CSCW ’96, pages 288–297. ACM, 1996.
Collaborative Engineering in the Automotive [23] H.-G. Roh, M. Jeon, J.-S. Kim, and J. Lee. Replicated
Industries. In CDVE’06, pages 164–173. Abstract Data Types: Building Blocks for
Springer-Verlag, 2006. Collaborative Applications. Journal of Parallel and
[10] J. Grudin. Computer-Supported Cooperative Work: Distributed Computing, 71(3):354–368, 2011.
History and Focus. Computer, 27(5):19–26, 1994. [24] M. Shapiro, N. Preguiça, C. Baquero, and
[11] C. Ignat and M. C. Norrie. Tree-based Model M. Zawirski. A comprehensive study of Convergent
Algorithm for Maintaining Consistency in Real-Time and Commutative Replicated Data Types, 2011.
Collaborative Editing Systems. In CSCW ’02. ACM, [25] C. Sun. Undo As Concurrent Inverse in Group
2002. Editors. ACM Transactions on Computer-Human
[12] C.-L. Ignat and M. C. Norrie. Multi-level Editing of Interaction, 9(4):309–361, 2002.
Hierarchical Documents. Computer Supported [26] C. Sun and C. Ellis. Operational Transformation in
Cooperative Work, 17(5-6):423–468, 2008. Real-time Group Editors: Issues, Algorithms, and
[13] I. Koren, A. Guth, and R. Klamma. Shared Editing on Achievements. In CSCW ’98, pages 59–68.
the Web: A Classification of Developer Support [27] C. Sun, X. Jia, Y. Zhang, Y. Yang, and D. Chen.
Libraries. Collaboratecom 2013, pages 468–477. IEEE, Achieving Convergence, Causality Preservation, and
2013. Intention Preservation in Real-time Cooperative
[14] I. Koren, P. Nicolaescu, and R. Klamma. Editing Systems. ACM Transactions on
Collaborative Drawing Annotations on Web Videos. In Computer-Human Interaction, 5(1):63–108, 1998.
ICWE’15, volume 9114. Springer, 2015. [28] C. Sun, Y. Xu, and A. Agustina. Exhaustive Search of
[15] D. Kovachev, D. Renzel, P. Nicolaescu, I. Koren, and Puzzles in Operational Transformation. In CSCW ’14,
R. Klamma. DireWolf: A Framework for pages 519–529. ACM, 2014.
Widget-based Distributed User Interfaces. Journal of [29] D. Sun and Chengzheng Sun. Context-Based
Web Engineering, 13(3&4):203–222, 2014. Operational Transformation in Distributed
[16] R. Li, Du Li, and C. Sun. A Time Interval Based Collaborative Editing Systems. IEEE Transactions on
Consistency Control Algorithm for Interactive Parallel and Distributed Systems, 20(10):1454–1470,
Groupware Applications. In ICPADS ’04, pages 2009.
429–436. IEEE Computer Society, 2004. [30] D. Sun and C. Sun. Operation Context and
[17] Y. Liu, Y. Xu, S. J. Zhang, and C. Sun. Formal Context-based Operational Transformation. In CSCW
Verification of Operational Transformation. In FM ’06, pages 279–288. ACM Press, 2006.
2014: Formal Methods, volume 8442, pages 432–448. [31] S. Weiss, P. Urso, and P. Molli. Logoot-Undo:
Springer International Publishing, 2014. Distributed Collaborative Editing System on P2P
[18] D. A. Nichols, P. Curtis, M. Dixon, and J. Lamping. Networks. IEEE Transactions on Parallel and
High-latency, Low-bandwidth Windowing in the Distributed Systems, 21(8):1162–1174, 2010.
Jupiter Collaboration System. In UIST ’95, pages [32] Y. Xu, C. Sun, and M. Li. Achieving Convergence in
111–120. ACM, 1995. Operational Transformation: Conditions, Mechanisms
[19] P. Nicolaescu, K. Jahns, M. Derntl, and R. Klamma. and Systems. In CSCW ’14, pages 505–518. ACM,
Yjs: A Framework for Near Real-Time P2P Shared 2014.