Что останется после ACM и BPMS?

Интерес к системам 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 (год назад эти спецификации обновились)

Architectural Impact of WS-HumanTask on Workflow Management Systems

Наиболее интересные аспекты данной спецификации:

  1. Декомпозиция задачи на подзадачи может осуществляться как на основании описания задачи, так и в ходе выполнения.
  2. Определены механизмы назначения исполнителей на основании имен ролей и сотрудников, логических групп пользователей, а так же с использованием вычисляемых выражений.
  3. Описан Task Rendering. Механизм построения пользовательских интерфейсов для отображения задач, шаблонов уведомлений и т.п.
  4. Введено понятие Lean Task. Возможность создавать задачи вне контекста сложных бизнес-процессов. Примером такой задачи является запись из to-do list. Причем для пользователя lean task представляются так же, как и задачи из сложных процессов.
  5. Разделение данных экземпляра задачи на презентационные данные, конекст (статус, приоритет и т.п.) и оперативные данные, относящиеся к этой задаче
  6. Ad-hoc attachments и комментарии. Определен порядок присоединения дополнительных данных или гиперссылок на такие данные и комментарием пользователей
  7. Шаблоны маршрутизации задач и условия завершения
  8. Перехват задач по истечению тайм-аута и эскалация
  9. Порядок протоколирования операций (task history) и нотификации внешних систем
  10. Простые 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.