2009-05-18 158 views
6

我们正在重写一个大型的遗留系统,这个遗留系统会大量(错误地)使用工作流引擎。展望未来,我想考虑替代新应用程序的工作流引擎。一个非常有趣的可能性是Space-based architecture +规则引擎。还有哪些范例存在?工作流引擎有哪些替代方案?

我会提到,这个应用程序编排复杂的文档发布工作流程,根据国家/地区/等不同的调整,但我希望尽可能保持答案更一般。

编辑:我给这个问题增加了一个赏金来获得更多的反馈。我希望听到有人实际实施了工作流程替代方案。如果没有产生任何内容,我会接受BPEL答案,尽管我对技术本身完全不感兴趣。

+0

关于编程方面没有想法,但是您看过WWF(Windows Workflow Foundation)吗? http://msdn.microsoft.com/en-us/netframework/aa663328.aspx – balexandre 2009-08-04 08:54:15

+0

我不是在寻找工作流程实现,而是在寻找工作流程模式的替代方案 – rcampbell 2009-08-04 12:17:02

回答

2

这似乎是这样一个明显的反应,但没有其他人已经提出了,所以这里不用:您是否考虑过文档(或内容)管理软件?

2

BPEL过程是一个选项。如果您打算利用未来的BPEL工具来完成这项工作,那么您会走这条路。否则,BPEL是一种过于复杂的混乱(因为所有这些“一切都可以插入”的解决方案)。

一件简单的事就是认识到工作流通常是关于队列而不是工作流。也就是说,更重要的是将某些东西放在某个桌子上,而不是按照僵化的模式指导工作流程。在这种情况下,拥有一个队列的东西,这是一个确定的工作阶段,然后以灵活的方式与其他潜在的工作块链接。这是一个普遍的过程,但是这个过程也有例外。规则引擎可以根据一般流程在队列之间移动事物(并根据需要启动外部流程),用户可以在定义的规则不削减的情况下任意将其移动到“正确”队列中。

1

那么,你已经提到了基于规则的处理。基于事件的处理模型有点类似,但在响应事件方面受到较少的正式限制。总的来说,我不认为人们必须完全遵守特定的模式。

(例如,基于事件的前端 - >规则为基础的编排 - >特定的(线性的)工作流处理)

1

如果30,000脚看起来它有两个选项:

  • 的控制处理调查队列和数据存储的检查是什么地方,以及移动基于一组规则的事情。
  • 一个等待被通知事件并根据一组规则处理事件的系统。

在这两种情况下,“规则”都可以在工作流/编排,规则引擎或代码中定义。

我们选择了实现基于以下条件的系统:

  • 相对简单的规则,直接在代码
  • 在工作流的复杂逻辑impemented。所以我们可以把它展示给客户,问他们这是他们的意思,并且知道它是好的,因为他们看到的是执行的东西。基于一组规则

我与MS技术工作,以便为您所描述的系统类型中移动的东西

  • 编排的pub/sub,我会在SharePoint中,其中有一个文档管理实现了它系统和内置的文件管理工作流程。入门级Sharepoint许可证Windows Sharepoint Services包含在操作系统中。

  • 1

    从KISS的角度来看,工作流只不过是队列和规则引擎而已 - 我们有一个文档系统,我们拥有一个类似于处理工作流程的文档系统。我们考虑websphere的工作流程以及来自weblogic的WLI,但使用持久存储的JMS(MDB以及唤醒consmer)的简单工作流程对我们来说没有任何问题。我认为你在这里采取正确的做法 - 祝你好运!

    2

    您可以严格按照您基于用户或文化或其他方式动态构建的有限状态机引擎执行此操作。您需要将特定的自动机作为长时间运行事务的状态。然后,当用户调用状态或采取另一个“动作”(基本上建模为状态转换)时,允许转换具有输出(Mealy机器)或新状态(Moore机器)。

    -1

    你可以考虑Apache Camel。 这是EIP和大部分的工作流Langugae喜欢如果,支持选择,但你必须为它编写代码。