Я изучаю Windows Workflow (WF) для .NET 4.0, и кажется, что несколько частей отсутствуют. С точки зрения BPM вам нужны концепции рабочих очередей и безопасности (авторизация пользователя).
Например, допустим, у вас есть несколько длительных экземпляров рабочих процессов из нескольких различных рабочих процессов, запущенных на сервере приложений (например, AppFabric). Несколько экземпляров ожидают в действии вызова от клиента (возможно, получение WCF с корреляцией на основе содержимого). Клиенты должны иметь возможность запрашивать сервер, чтобы определить, какие экземпляры рабочего процесса (из любого рабочего процесса) ожидают ввода от них. Это должно основываться на правах (предпочтительно с использованием служб Active Directory) на уровне активности.
Например:
- Рабочий процесс 1
- Активность A, коррелированная по orderId
- Активность B, коррелированная по orderId
- Рабочий процесс 2
- Активность C, соотнесенная с workItemId
В рабочем процессе 1 запущено 3 экземпляра, два в действии A (заказы 123 и 456) и один в действии B (заказ 789).
Рабочий процесс 2 имеет 1 экземпляр, работающий в действии C (рабочий элемент 99).
Билл запрашивает сервер и видит:
Workflow Activity Key
1 A orderId=123
1 A orderId=456
2 C workItemId=99
Эбби запрашивает сервер и видит:
Workflow Activity Key
1 A orderId=123
1 A orderId=456
1 B orderId=789
В этой статье обсуждается написание функциональности (поддержка человеческой деятельности) с нуля для WF 3.x.
Вопросы:
- Есть ли какая-либо из этих функций в WF 4? Если так, то как это называется?
- Если нет, есть ли проект с открытым исходным кодом, который добавляет какую-либо из этих функций в WF 4?
- Если нет, есть ли более современные руководящие принципы по его реализации, чем в статье, упомянутой выше?
Примечание. Я бы не стал связывать решение с SharePoint, если смогу избежать его.