Задача слияния карт памяти (Mind Maps) в Web-системе Comapping Евгений Ларчик, 545 группа Научный руководитель: к. ф.-м. н., доцент Кознов Д.В.
Карта памяти ( Mind Map)
Comapping Web-средство для работы с картами памяти Результат сотрудничества компаний Ланит-Терком и Area9 и мат.-мех. ф-та СПбГУ Фокусируется на удобстве совместной работы над картами памяти
Задача слияния в Comapping Потеря подключения к Интернет Продожение работы над картой в режиме offline Изменение карты в режиме online другими пользователями При возобновлении подключения возникает необходимость слияния 2-х версий Задача сводится к задаче слияния деревьев
Постановка задачи Решить задачу слияния offline и online версий карт памяти в Comapping Сформулировать требования к решению Сделать обзор существующих подходов и выбрать наиболее подходящий алгоритм слияния деревьев Адаптировать этот алгоритм к требованиям Comapping Реализовать решение и интегрировать его в Comapping
Требования к решению Слияние без активного участия пользователя Возможность работы с конфликтами для более опытных пользователей Сохранение истории предыдущих изменений карты памяти
Выбор базового алгоритма Проанализировано 4 подхода и выбран алгоритм 3DM (Танкред Линдхольм, Хельсинкский Университет): рассматривает все операции над деревом хорошо специфицирован и имеет открытую реализацию Слияние в 2 шага: сопоставление узлов между сливаемыми деревьями и базовым деревом cлияние деревьев на основе этой информации
Модификации алгоритма 3DM Изменения: в алгоритме сопоставления узлов сопоставление по id дополнительная проверка на «похожесть» в разрешениях конфликтов Update/Delete Move/Move в журнале изменений (edit script)
Архитектура решения Язык реализации - haXe
Пример работы над конфликтом
Результаты Сформулирована задача слияния в Comapping, а также требования к её решению В качестве базового алгоритма слияния выбран алгоритм 3DM 3DM-алгоритм изменён в соответсвии с требованиями Comapping Спроектирован пользовательский интерфейс для работы с механизмом слияния и разрешения конфликтов Выполнена реализация решения