Я изучаю Windows Workflow (WF) для .NET 4.0, и мне кажется, что кое-что отсутствует. С точки зрения BPM вам нужны концепции рабочих очередей и безопасности (авторизация пользователей).
Например, предположим, что у вас есть несколько экземпляров длительного рабочего процесса из нескольких разных рабочих процессов, запущенных на сервере приложений (например, AppFabric). Несколько экземпляров ожидают в действии вызова от клиента (возможно, приема WCF с корреляцией на основе содержимого). Клиенты должны иметь возможность запрашивать сервер, чтобы определить, какие экземпляры рабочего процесса (из любого рабочего процесса) ожидают ввода от них. Это должно быть основано на правах (желательно с использованием служб Active Directory) на уровне активности.
Например:
- Workflow 1
- Activity A, correlated on orderId
- Rights for: Abby, Bill
- Activity B, correlated on orderId
- Rights for: Abby
- Activity A, correlated on orderId
- Workflow 2
- Activity C, correlated on workItemId
- Rights for: Bill
- Activity C, correlated on workItemId
Рабочий процесс 1 имеет 3 запущенных экземпляра: два - в действии A (заказы 123 и 456) и один - в действии B (заказ 789).
В рабочем процессе 2 один экземпляр выполняется в действии 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. .Икс.
Вопросов:
- Есть ли какие-либо из этих функций в WF 4? Если да, то как это называется?
- Если нет, существует ли проект с открытым исходным кодом, который добавляет какие-либо из этих функций в WF 4?
- Если нет, есть ли более актуальные рекомендации по его реализации, чем в упомянутой выше статье?
Примечание. Я бы предпочел не связывать решение с SharePoint, если я могу этого избежать.