Java Web应用程序的协同编辑算法

时间:2013-03-22 14:48:51

标签: java javascript tomcat collaboration collaborative

我有一个基于Java(Apache Tomcat)的Web应用程序,它允许用户使用不同语言(如c,c ++,java)在浏览器中编写代码,并在服务器上编译和执行它们。服务器安全问题通过在ptrace监督下执行chroot jail中的每个代码来处理。

  • 我使用Ace编辑器作为代码编辑器。

我想添加另一个协作编辑的功能,名称就是这样。

我在 Stack Overflow 上看到了一些related个问题。

因此,如果我使用code.google.com/p/google-diff-match-patch,并且每0.5秒生成一次差异,则将其发送到服务器并拉出所有其他差异并从服务器返回它们。

  • 您认为上述方法有效吗?它可行吗?

  • 我准备好了这个Web应用程序,所以我只希望有人指出我正确的方向,以便我可以集成一些java脚本并编写一些服务器端代码来实现我的 GOAL

  • 在我的网络中添加协作编辑的最佳方法是什么 应用

1 个答案:

答案 0 :(得分:4)

我正在开展一个非常相似的项目。 :)

您的解决方案无法处理冲突。您需要一种更复杂的技术,如运营转型: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