我正在调查 .NET 4.0 的 Windows 工作流 (WF),似乎缺少一些内容。从BPM的角度来看,您希望拥有工作队列和安全性(用户授权)的概念。
例如,假设您有多个长时间运行的工作流实例,这些实例来自在应用服务器(例如 AppFabric)上运行的多个不同工作流。几个实例正在等待来自客户端的调用(可能是基于内容的相关性的 WCF 接收)。客户端需要能够查询服务器以确定哪些工作流实例(来自任何工作流)正在等待来自它们的输入。这必须在活动级别基于权限(最好使用 Active Directory 服务)。
例如:
- 工作流程 1
- 活动 A,与 orderId 相关
- 权利:艾比,比尔
- 活动 B,与 orderId 相关
- 权利:艾比
- 活动 A,与 orderId 相关
- 工作流程 2
- 活动 C,与 workItemId 相关
- 权利:比尔
- 活动 C,与 workItemId 相关
工作流 1 有 3 个实例正在运行,两个在活动 A(订单 123 和 456)和一个在活动 B(订单 789)。
工作流 2 有 1 个实例在活动 C(工作项 99)处运行。
Bill 查询服务器并看到:
工作流活动键 1 个订单Id=123 1 个订单Id=456 2 C workItemId=99
Abby 查询服务器并看到:
工作流活动键 1 个订单Id=123 1 个订单Id=456 1 B 订单ID=789
本文讨论了从头开始为 WF 3.x 编写功能(对人类活动的支持)。
问题:
- WF 4 中有这个功能吗?如果是这样,它叫什么?
- 如果没有,是否有一个开源项目可以将任何此功能添加到 WF 4?
- 如果没有,是否有比上述文章更多的实施指南?
注意:如果可以避免,我宁愿不将解决方案与 SharePoint 结合使用。