Алгоритм совместного редактирования для веб-приложения Java
У меня есть веб-приложение на основе Java (Apache Tomcat), которое позволяет пользователю писать код в браузере на разных языках, таких как (c, C++, java), компилировать и выполнять их на сервере. Проблемы безопасности сервера решаются путем выполнения каждого кода в chroot-тюрьме под наблюдением ptrace.
- Я использую Ace Editor в качестве редактора кода.
Я хочу добавить еще одну функцию - совместное редактирование, название говорит само за себя.
Я видел несколько связанных вопросов по переполнению стека.
Поэтому, если я использую http://code.google.com/p/google-diff-match-patch/ и создаю разность каждые 0,5 секунды, отправляю ее на сервер, извлекаю все остальные разности и возвращаю их с сервера.
Как вы думаете, вышеупомянутый подход будет работать? Будет ли это возможно?
У меня есть готовое веб-приложение, поэтому я хочу, чтобы кто-то указал мне правильное направление, чтобы я мог интегрировать некоторый Java-скрипт и написать некоторый код на стороне сервера для достижения моей ЦЕЛИ.
Как лучше всего добавить совместное редактирование в мое веб-приложение?
1 ответ
Я работаю над очень похожим проектом.:)
Ваше решение не обрабатывает конфликты. Вам нужна более сложная техника, такая как операционное преобразование: http://en.wikipedia.org/wiki/Operational_transformation
Это была основа Google Wave с открытым исходным кодом:
http://www.waveprotocol.org/protocol
http://incubator.apache.org/wave/
В Интернете вы можете найти множество хороших блогов и статей на эту тему: http://www.codecommit.com/blog/java/understanding-and-applying-operational-transformation