Алгоритм совместного редактирования для веб-приложения 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

Другие вопросы по тегам