2013-03-22 85 views
1

我有一個基於Java(Apache Tomcat)的web應用程序,它允許用戶使用不同語言(如(c,C++,java))在瀏覽器中編寫代碼並在服務器上編譯和執行它們。通過在ptrace監督下在chroot jail中執行每個代碼來處理服務器安全問題。用於java web應用程序的協作編輯算法

  • 我使用Ace編輯器作爲代碼編輯器。

我想添加另一個功能,即協作編輯,名稱說明了一切。

我看過一些related問題堆棧溢出

因此,如果我使用code.google.com/p/google-diff-match-patch,並且每0.5秒產生一個差異,請將其發送到服務器並將所有其他差異從服務器中取出並返回。

  • 您是否認爲上述方法可行?它可行嗎?

  • 我有這樣的web應用程序準備好了,所以我只希望有人點我在正確的方向,這樣我可以集成一些Java腳本,並寫一些服務器端代碼來實現我的目標

  • 在我的web 應用程序中添加協作編輯的最佳方式是什麼?

回答

3

我正在研究一個非常類似的項目。 :)

您的解決方案不處理衝突。你需要一個更老練的技術像運營轉型:http://en.wikipedia.org/wiki/Operational_transformation


這是谷歌Wave的基礎,現在是開源:

http://www.waveprotocol.org/protocol

http://incubator.apache.org/wave/


在Internet你可以找到很多關於這個話題的好博客和文章: http://www.codecommit.com/blog/java/understanding-and-applying-operational-transformation