用于并发XML编辑的Java工具
我正在构建一个用户界面,用户必须能够同时对网页进行编辑。我们90%以上的应用程序采用的标准技术是乐观锁定;也就是说,我们希望并发编辑很少发生,如果发生,第二个提交者就会出错并丢失编辑 在应用程序的有限部分中,需要并发编辑,我们需要以更好的方式处理这些编辑。锁定以强制顺序编辑不是一个选项,因为在用户离开屏幕而未显式解锁的情况下,需要在锁定上超时,这将非常烦人 如果可能,我希望将表单数据保存为XML,但允许对该文档进行并发编辑 我简要研究过的一些工具可能能够做到这一点,或者为如何最好地处理它提供一些灵感: apachewave(googlewave) 暴徒用于并发XML编辑的Java工具,java,xml,concurrency,editing,Java,Xml,Concurrency,Editing,我正在构建一个用户界面,用户必须能够同时对网页进行编辑。我们90%以上的应用程序采用的标准技术是乐观锁定;也就是说,我们希望并发编辑很少发生,如果发生,第二个提交者就会出错并丢失编辑 在应用程序的有限部分中,需要并发编辑,我们需要以更好的方式处理这些编辑。锁定以强制顺序编辑不是一个选项,因为在用户离开屏幕而未显式解锁的情况下,需要在锁定上超时,这将非常烦人 如果可能,我希望将表单数据保存为XML,但允许对该文档进行并发编辑 我简要研究过的一些工具可能能够做到这一点,或者为如何最好地处理它提供一些
有人对能够处理这个问题的工具包或技术有更多的建议吗?感谢您的帮助。这里有两种基本算法可以帮助您: 1,这是Apache Wave的背后。 其主要思想是捕获基本编辑事件并合并来自不同用户的并发事件流。虽然乍一看很简单,但这种方法可能需要复杂的实现:
面对与您类似的需求,我的解决方案基于第二种方法,因为它简单而健壮。最初的Mobwrite实现使用Python后端,所以我用Java重新实现了它。您可以找到一个工作原型,它是一个简单的基于web的协作编辑器,在我们的专有软件中采用相同的方法之前,我制作了它作为概念证明。干得好,我在GitHub上主持了您的项目。对于我的需求来说,操作转换是过度的。我需要合并的是一个项目列表,使用两个列表之间的“相对差异”作为集合来计算差异很容易。相对差异一方面给出添加的内容,另一方面给出删除的内容。