Интерес к системам Business Process Management не может всегда оставаться на высоком уровне. Про термин adaptive case management через пару лет, вообще, никто не вспомнит. ACM и BPM освободят место новым трехбуквенным сокращениям, оставив после себя некоторое количество информационных систем. Хочется надеяться, что унаследованные приложения будут хоть в каком-то виде вписываться в новый корпоративный ИТ-ландшафт. Поэтому, есть смысл уже сейчас смотреть на те компоненты, которые присутствуют в системах обоих типов.
Очевидно, что таким компонентом является пользовательское приложения для работы с задачами. (В Oracle SOA Suite это называется Worklist application, у других производителей более распространено название Human Task) Недавно в обзоре блогов, посвященных тематике BPM, Adam Deane обратил внимание на сообщение Upside down Procedures and Processes в котором Michael J. Cunningham призывает нас начинать не с процессов, а с выполняемых пользователями задач. Подход более чем разумный. Конечному пользователю не очень интересно как устроен наш workflow движок. Для работы ему необходим список задач, экранные формы, специфичные для каждого типа задач и кнопки, позволяющие этими задачами управлять.
Идея разделения процессного движка и приложения, с которым работают пользователи, была четко сформулирована еще в спецификациях BPEL4People WS HumanTask (год назад эти спецификации обновились)

Наиболее интересные аспекты данной спецификации:
- Декомпозиция задачи на подзадачи может осуществляться как на основании описания задачи, так и в ходе выполнения.
- Определены механизмы назначения исполнителей на основании имен ролей и сотрудников, логических групп пользователей, а так же с использованием вычисляемых выражений.
- Описан Task Rendering. Механизм построения пользовательских интерфейсов для отображения задач, шаблонов уведомлений и т.п.
- Введено понятие Lean Task. Возможность создавать задачи вне контекста сложных бизнес-процессов. Примером такой задачи является запись из to-do list. Причем для пользователя lean task представляются так же, как и задачи из сложных процессов.
- Разделение данных экземпляра задачи на презентационные данные, конекст (статус, приоритет и т.п.) и оперативные данные, относящиеся к этой задаче
- Ad-hoc attachments и комментарии. Определен порядок присоединения дополнительных данных или гиперссылок на такие данные и комментарием пользователей
- Шаблоны маршрутизации задач и условия завершения
- Перехват задач по истечению тайм-аута и эскалация
- Порядок протоколирования операций (task history) и нотификации внешних систем
- Простые API ко всему этому, типа: getTaskHistory()
Одним словом, во-первых, велосипед уже давно изобретен, а во-вторых, в определенном виде уже реализован. Даже open-source пытается ввязаться в эту игру. Как это выглядит в OpenESB я писал в сообщении Glassfish ESB v2.2

Еще одна попытка реализации предпринята Apache HISE (Human Interactions Service Engine)

У Oracle и IBM все это выглядит несколько более зрелым. Однако, лукавство в том, что флагманские BPMS и {Dynamic | Adaptive | Advances} Case Management решения этих компаний построены с использованием совершенно других компонент. Поэтому, сейчас покупать бы я их не стал. Тем более, что на горизонте появилась волна, именуемая Digital Workplace, которая вероятно и поглотит задачу управления списком работ сотрудника компании. Worklist приложения просто встроят в корпоративный интранет портал. Ну а телеком в этой задаче, как всегда, пойдет своей дорогой, именуемой системы Work Ordering.