【问题标题】:Suggestions for workflow architecture?对工作流架构的建议?
【发布时间】:2008-11-04 11:55:09
【问题描述】:

我们为客户建立了一个拨款申请系统。他们现在要求提供一些简单的工作流功能(在提交申请之前需要两次批准)。

我对数据库设计进行了一些思考,我将使用该数据库设计以提供最大灵活性和可重用性的方式对工作流要求进行编码,并且我很想知道是否存在任何现有的设计模式或此类系统的最佳实践。有什么建议吗?

注意:这是一个自定义的 ASP.NET 应用程序,我们肯定会推出我们自己的工作流解决方案。我对购买一个组件不感兴趣,或者更不用说将整个事情转移到像 SharePoint 这样的平台上。

【问题讨论】:

    标签: asp.net workflow


    【解决方案1】:

    不看Windows Workflow Foundation 是愚蠢的。它完全符合您的要求。

    这是ASP.NET specific link

    【讨论】:

    • 除了 WWF 似乎针对桌面应用程序,他想创建自己的解决方案 ;-)
    • 谷歌搜索 WF 和 ASP.NET 会得到大量结果表明您的声明是错误的。
    • 很高兴知道,因为答案链接中的 MS 教程似乎只讨论了 WinForms 应用程序。
    • Curt - 谷歌搜索提供了一个很好的链接 - devx.com/dotnet/Article/29992 我不知道你在抱怨什么。
    【解决方案2】:

    如果工作流功能如此简单,那么您的方法就足够了。但是,如果您想要(或者如果客户稍后要求)更多功能,例如:

    • 对审批者的提醒
    • 给管理员的警报
    • 任务升级和重新分配
    • 作业取消
    • 基于规则的分配
    • 任务跟踪

    那么您可能需要考虑像Workflow Foundation 这样的工作流组件。

    工作流模式的学术方法可以在here 找到,它们分为四类:

    我认为您的案例中更有趣的类别是资源模式。

    【讨论】:

      【解决方案3】:

      过去运作良好的一个解决方案是创建包含成员的批准组,批准代码作为一个简单的查找表,并对批准状态机进行软编码,以便每个步骤都来自分配一个批准代码到组成员的项目。这允许更改组成员身份和更改批准路径,而无需重新编码任何内容。您还可以添加代码触发器和端点(通过反射,例如程序集名称 + 类名称 + 方法名称)以在每个步骤中执行副作用和提交/通知操作

      【讨论】:

        【解决方案4】:

        我有一个类似的问题。有一组相互依赖的批处理。我正在为这些批处理流程开发类似系统的工作流程。

        以下两种设计哪个更好:

        1. 数据库驱动设计,其中每个进程更新其状态和数据库表中的其他详细信息,其他进程查询这些表,或

        2. 一种基于 JMS 或消息传递的方法,其中进程使用消息传递队列相互通信。

        【讨论】:

          猜你喜欢
          • 2022-08-19
          • 2020-12-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多