用于 JBPM 的可视化 BPMN 2.0 差异工具

Visual BPMN 2.0 diff tool for JBPM

我想知道您认为 easiest/more 使用 JBPM 网页设计器创建可视化工具来比较 BPMN 2.0 流程的有效方法是什么?

...way to create a visual tool to compare BPMN 2.0 processes using JBPM web designer?

我不知道如何实现它,JBPM 设计师也不能做什么,如果它已经在现有工具中解决了,所以我不能选择一些最简单的高效 解决方案。

但是基于 BPMN 个模型实际上是 XML 个文件而 XML 个文件实际上是 text 个文件这一事实,我会 尝试 将问题减少到 文本差异 可视化。

从 2 XMLs(旧的,新的)创建新的 "diff" XML 使用一些现有的面向文本的 diff 算法,其中 "added" 东西会被标记如 green "removed" 标记为 red 和 "modified" 标记为 blue。如果生成的 "diff" XML 格式正确 BPMN 文件,那么只需在 BPMN 查看器中显示它就会直观地显示差异。

我很长时间没有跟踪文本差异或二进制差异问题,但除了咨询 Wikipedia: DIFF 主题外,我知道的一些可靠来源是:

  1. WinMerge is very mature and useful text-diff tool and it's source code repository contains some text-diff algorithms implemented in C++ and C - sourceforge.net/p/winmerge/code/HEAD/tree/trunk/Src/diffutils/src
  2. Angus Johnson 使用在 Delphi 中实现的源代码 TextDiff tool 创建了很棒的免费软件。该应用程序是围绕 TDiff 组件构建的,该组件(根据自述文件)基于 E Myers 的论文 "An O(ND) Difference Algorithm and its Variations" - Algorithmica Vol。 1 第 2 期,1986 年,第 251-266 页和 "An O(NP) Sequence Comparison Algorithm",作者:Sun Wu、Udi Manber 和 Gene Myers。 PDF 中的两篇论文及其源代码都包含在可下载的 zip
  3. 作为两个字符串之间计算 Levenshtein distance 的副产品,可以设置将旧字符串转换为新字符串所需的 "add"、"copy"、"delete" 操作.如果您为操作分配颜色,您可以获得差异的彩色可视化

以上所有内容都包含一些"Computer Science"东西,这对我来说很难理解,但相应的代码确实有效。例如,在研究 Angus Johnson 的工具时(我添加了对比较完整文件夹的支持,而不仅仅是文件),评论和自述文件中有一些注释声称

→ 比较文本文件是比较字符串向量的特例,这是比较数字向量(字符串哈希)的特例,它是一些 straighforward(?) N 维数学题(!?)

我卖的是我几年前买的东西,理解和使用它取决于你,但我相信它可能有用;)