Исполняемая семантика бизнес-процессов
Очевидно, что модели, созданные с помощью BPMN, алгоритмичны, т .е. можно сконструировать некоторый вычислитель, который их будет исполнять. Это будет особенный вычислитель.
- Он работает параллельно тому, как развертывается во времени реальный бизнес-процесс (в нашем случае - покупка мебели).
- Он постоянно находится в диалоге с пользователем (в нашем случае - с продавцом-дизайнером). То есть поток управления вычислителя нуждается в данных, которые пользователь вводит по мере продвижения бизнес-процесса.
Такой вычислитель в англоязычной литературе обычно называют Workflow Engine (WE). Он полезен по следующим причинам.
- WE может вести параллельно несколько таких бизнес-процессов во времени. Это важно, так как работа с одним клиентом может откладываться, и нужно запоминать не только данные клиента, но также и состояние, в котором она отложена, чтобы при получении соответствующего события корректно возобновить работу - открыть перед продавцом-дизайнером нужные диалоговые окна, загрузить туда нужные данные и т. д.
- При переходе на следующий шаг WE, согласно спецификации бизнес-процесса, проверяет, что все условия завершения предыдущего шага были правильно выполнены. Разумеется, WE не может исправлять орфографические ошибки в выходных документах, но проверить, что каждый из требуемых документов создан, что все его графы заполнены и т. д., он вполне может, а это уже предотвращает многочисленные ошибки в делопроизводстве (например, продавец-дизайнер не может забыть создать или отдать клиенту список товаров).
- WE интегрирует в одну среду многочисленные программные приложения и базы данных, полезные для работы сотрудников компании.
- WE автоматически может выполнять многие шаги без участия человека, в нашем случае - сохранять и удалять проект, генерировать событие от таймера (по истечении десяти дней) и т. д. Разумеется, далеко не все действия бизнес-процесса могут быть полностью автоматизированы. Например, дизайн-проект создает человек, а не WE.
- Для сложных бизнес-процессов, в которых участвуют многие сотрудники, WE берет на себя все, связанное с коммуникациями - он рассылает необходимые уведомления о начале/конце соответствующего шага, пересылает запросы на данные и сами данные в ответ и т. д. При этом участники такого бизнес-процесса могут находиться в разных частях земного шара. Становится возможной виртуальная компания, для которой неважно, где физически расположены ее отдельные подразделения, - главное, чтобы все они были связаны сетью и компьютерами, оснащенными нужным программным обеспечением.
В итоге, как показано на рис.11.3, WE оказывается ядром мощной системы автоматизации бизнеса компании. И программа, которую он выполняет, - это спецификация бизнес-процесса.
Рис. 11.3. Схема окружения автоматизированного бизнес-процесса
Рассмотрим, как WE может выполнять фрагмент бизнес-процесса покупки мебели, изображенный на рис.11.2. Сразу после старта наш процесс начинает деятельность под названием "Создание дизайн-проекта". Например, открывается рабочее окно графического редактора, где создается дизайн-проект (это пример полезного ПО, которое может быть интегрировано с WE ). Выход из этого редактора может осуществляться с сохранением промежуточных результатов - проект еще не готов, процесс продолжает пребывать в состоянии "Создание дизайн-проекта", а продавец-дизайнер вместе с клиентом, например, пошли пить кофе. Второй вариант выхода из редактора - дизайн-проект готов. WE предлагает продавцу-дизайнеру выбрать один из трех вариантов (в виде окошка со списком выбора):
- клиент готов заплатить;
- клиент заплатит позже;
- от клиента ожидается дополнительная информация.
Продавец-дизайнер выбирает тот ответ, который соответствует ситуации, и WE продолжает исполнять процесс.
Одними из самых распространенных WE являются ERP-системы. Кроме того, существует множество различных workflow-систем, которые умеют выполнять бизнес-процессы, определенные в той или иной формальной нотации, а также имеют различные интерфейсы - пользовательский, административный, программный (для подключения стороннего ПО) и т. д.