<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">intechngu</journal-id><journal-title-group><journal-title xml:lang="ru">Вестник НГУ. Серия: Информационные технологии</journal-title><trans-title-group xml:lang="en"><trans-title>Vestnik NSU. Series: Information Technologies</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">1818-7900</issn><issn pub-type="epub">2410-0420</issn><publisher><publisher-name>НГУ</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.25205/1818-7900-2020-18-3-44-56</article-id><article-id custom-type="elpub" pub-id-type="custom">intechngu-145</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Статьи</subject></subj-group></article-categories><title-group><article-title>Разработка многопользовательской модели данных с использованием подхода Operational Transformation</article-title><trans-title-group xml:lang="en"><trans-title>Building Collaborative Data System on Top of the Operational Transformations Algorithm</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Салтук</surname><given-names>К. Е.</given-names></name><name name-style="western" xml:lang="en"><surname>Saltuk</surname><given-names>K. E.</given-names></name></name-alternatives><email xlink:type="simple">k@saltuk.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Новосибирский государственный университет</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Novosibirsk State University</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2020</year></pub-date><pub-date pub-type="epub"><day>24</day><month>05</month><year>2021</year></pub-date><volume>18</volume><issue>3</issue><fpage>44</fpage><lpage>56</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Салтук К.Е., 2021</copyright-statement><copyright-year>2021</copyright-year><copyright-holder xml:lang="ru">Салтук К.Е.</copyright-holder><copyright-holder xml:lang="en">Saltuk K.E.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://intechngu.elpub.ru/jour/article/view/145">https://intechngu.elpub.ru/jour/article/view/145</self-uri><abstract><p>Предоставление пользователям возможности одновременно редактировать общую модель данных является непростой задачей для современных информационных систем. Большинство существующих алгоритмов требуют наличия постоянного сетевого постоянного сетевого подключения пользователей к системе, в противном случае, их намерения могут быть искажены и потеряны. Однако наличие постоянного сетевого подключения между пользователями накладывает сильные ограничения на возможные сценарии использования информационной системы. Для решения этой проблемы в работе предлагается использование гибридного подхода: за основу был взят механизм Operational Transformation, который вводит концепции преобразования пользовательских намерений; вместе с тем, для обеспечения возможности работы с моделью без сетевого подключения используется концепция системы контроля версий, которая оперирует ветками и коммитами. Таким образом, в коммитах системы контроля версий предлагается хранить пользовательские намерения в виде операций. Для совместной работы этих двух систем была проанализирована работа оригинального алгоритма преобразования операций и предложена новая модель поддержания консистентности состояния которая поддерживает обработку возможных конфликтов пользовательских намерений. Благодаря использованию модифицированного алгоритма преобразования операций, появляется возможность производить слияние веток в системе контроля версий, таким образом реализуя необходимую функциональность для многопользовательской работы с общей моделью. Использование описанного в работе комбинированного подхода позволит строить информационные системы, которые позволят пользователям модифицировать общую модель данных без постоянного сетевого подключения.</p></abstract><trans-abstract xml:lang="en"><p>Providing users with the way to collaboratively edit shared model is the challenge of complex informational systems. The majority of existing methods require online connection between users, otherwise, users’ intentions can be lost after a certain delay. The aim of this research is to build a collaborative system that allows users to edit shared model in offline manner without losing their intentions. Firstly, commit-based system was selected as underlying data storage. Secondly, we examined existing collaborative algorithms and selected operational transformation as the most perspective for this scenario. Thirdly, we described the way to merge commits, that stores operations, using modified operational transformation algorithm. Key features of modified operational transformation algorithm include ability to handle resolving of merge conflicts, when intentions of two users are conflicting. To implement this, we consider the set of commits branches as ordered set. As a result, we developed a version control system, that stores user’s intentions and can automatically resolve conflicts on merge. This approach can be applied to any informational system, which is able to save user’s input as the set of operations.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>многопользовательская работа</kwd><kwd>система контроля версий</kwd></kwd-group><kwd-group xml:lang="en"><kwd>operational transformation</kwd><kwd>collaboration</kwd><kwd>data system</kwd><kwd>version control system</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Chacon S., Straub B. Pro git. Apress, 2014.</mixed-citation><mixed-citation xml:lang="en">Chacon S., Straub B. Pro git. Apress, 2014.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Mackall M. Towards a better SCM: Revlog and mercurial. Proc. Ottawa Linux Sympo, 2006, vol. 2, p. 83-90.</mixed-citation><mixed-citation xml:lang="en">Mackall M. Towards a better SCM: Revlog and mercurial. Proc. Ottawa Linux Sympo, 2006, vol. 2, p. 83-90.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Apel S. et al. Semistructured merge: rethinking merge in revision control systems. In: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, 2011, p. 190-200.</mixed-citation><mixed-citation xml:lang="en">Apel S. et al. Semistructured merge: rethinking merge in revision control systems. In: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, 2011, p. 190-200.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Cavalcanti G., Borba P., Accioly P. Evaluating and improving semistructured merge. Proceedings of the ACM on Programming Languages, 2017, vol. 1, no. OOPSLA, p. 1-27.</mixed-citation><mixed-citation xml:lang="en">Cavalcanti G., Borba P., Accioly P. Evaluating and improving semistructured merge. Proceedings of the ACM on Programming Languages, 2017, vol. 1, no. OOPSLA, p. 1-27.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Sun C., Ellis C. Operational transformation in real-time group editors: issues, algorithms, and achievements. In: Proceedings of the 1998 ACM conference on Computer supported cooperative work. 1998, p. 59-68.</mixed-citation><mixed-citation xml:lang="en">Sun C., Ellis C. Operational transformation in real-time group editors: issues, algorithms, and achievements. In: Proceedings of the 1998 ACM conference on Computer supported cooperative work. 1998, p. 59-68.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Sun C. et al. Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems. ACM Transactions on Computer-Human Interaction (TOCHI), 1998, vol. 5, no. 1, p. 63-108.</mixed-citation><mixed-citation xml:lang="en">Sun C. et al. Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems. ACM Transactions on Computer-Human Interaction (TOCHI), 1998, vol. 5, no. 1, p. 63-108.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Cart M., Ferrie J. Asynchronous reconciliation based on operational transformation for p2p collaborative environments. In: International Conference on Collaborative Computing: Net-working, Applications and Worksharing (CollaborateCom 2007). IEEE, 2007, p. 127-138. DOI 10.1109/COLCOM.2007.4553821</mixed-citation><mixed-citation xml:lang="en">Cart M., Ferrie J. Asynchronous reconciliation based on operational transformation for p2p collaborative environments. In: International Conference on Collaborative Computing: Net-working, Applications and Worksharing (CollaborateCom 2007). IEEE, 2007, p. 127-138. DOI 10.1109/COLCOM.2007.4553821</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Krusche S., Berisha M., Bruegge B. Teaching code review management using branch based workflows. In: Proceedings of the 38th International Conference on Software Engineering Companion. 2016, p. 384-393. DOI 10.1145/2889160.2889191</mixed-citation><mixed-citation xml:lang="en">Krusche S., Berisha M., Bruegge B. Teaching code review management using branch based workflows. In: Proceedings of the 38th International Conference on Software Engineering Companion. 2016, p. 384-393. DOI 10.1145/2889160.2889191</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
