Workflow (англ."поток работ") - описание последовательности действий/работ отдельного работника или группы сотрудников. Например последовательность согласования счетов или договоров.

Для целей управления Workflow может отображать какой-либо аспект реальной деятельности, являясь, таким образом,  виртуальным представлением фактической работы.
Workflow-модель служит для представления реальной работы для дальнейшей оценки, например, для описания устойчиво  повторяющейся последовательности действий.

Основные функции Workflow:

  •     последовательность выполняемых действий
  •     автоматизация управления бизнес-процессами
  •     автоматизация документооборота
  •     служба управления задачами
  •     служба отслеживания
  •     служба уведомления
  •     служба идентификации

Задачи являются основной единицей обмена информацией между бизнес процессами и людьми. Обычно задача ставится пользователю, которому необходимо выполнить некоторые взаимосвязанные действия. Например, может потребоваться согласовать запрос на приобретение некоторых товаров с руководителем. Обычно пользователю необходимо выполнить серию задач, сгруппированных по смыслу. Так, например, руководитель может сгруппировать задачи по согласованию в группу «согласование на сегодня», если он выполняет их каждый день. Такие группы называются списком задач.

В течение жизненного цикла workflow-системы задачи в списке задач постоянно изменяют свое состояние. Например, задача для нашего руководителя сначала находится в состоянии инициализации (подготовка). Затем, когда руководитель получает задачу, она переходит в состояние в работе. Наконец, когда руководитель утверждает запрос, задача переходит в состояние завершена. Состояния – это часть концепции, они служат для описания жизненного цикла задачи. Наиболее распространенные состояния задачи – это инициализация, когда задача создается, в работе, когда пользователь запросил задачу и получил входные данные; завершена  когда, пользователь завершил задачу и предоставил выходные данные, и отменена,когда пользователь завершил задачу с сообщением об ошибке.

Задачи обычно связаны с ограничениями по времени: срок выполнения, повышение срочности, делегирование, и рестарт. В нашем случае задача по согласованию может потерять актуальность, если руководитель не выполнит ее в указанный промежуток времени. Данная просроченная задача может привести к созданию более срочной задачи и целому ряду подобных действий. Также руководитель может решить делегировать задачу, передав ее другому исполнителю (например, заместителю), который будет действовать от имени руководителя. Руководитель может вовлечь другого менеджера, чтобы собрать дополнительное мнение по вопросу задачи. Если второй менеджер не выполняет задачу в установленное время, задача будет рестартована с другим сроком выполнения.
В других сценариях задачи взаимосвязаны между собой по смыслу. Вопрос «какая следующая задача?» не всегда будет иметь простой ответ. В некоторых случаях ответ определяется во время обработки задачи. Задачи могут быть сгруппированы в последовательность в рамках бизнес-процесса так, что пользователь будет знать следующую задачу или задачи после завершения текущей. В нашем примере руководителю необходимо последовательно утвердить 20 запросов для того, чтобы полностью завершить бизнес-процесс. Каждый раз, когда руководитель завершает согласование, программа должна суметь определить следующую задачую. Цепочки задач описывают взаимоотношения между группами задач в рамках бизнес процесса на основе метаданных. Цепочки задач могут объединять задачи по смыслу для того, чтобы помочь пользователям достичь такой функциональности, как последовательное выполнение и управление защитой от сбоев.
Задачи, которые выполняются в рамках определенных бизнес-процессов, будем называть встроенными задачами. Задачи, которые полностью независимы от бизнес-процессов, назовем автономными задачами. Встроенные задачи обычно имеют доступ к данным бизнес-процесса и хранятся в исходных объектах бизнес-процесса, таких как переменные или сообщения. Автономные задачи, напротив, взаимодействуют с бизнес-процессом через четко определенный интерфейс без какой-либо зависимости от данных бизнес-процесса.

Архитектурный компонент, отвечающий за обработку задач – это служба управления задачами. В типовом сценарии работы служба управления задачами получает запрос на создание задачи, связывается со службой идентификации для определения всех сотрудников, имеющих право на работу с задачей, добавляет задачу к списку выполняемых задач каждого пользователя (список «к исполнению», «todolist»), и устанавливает соответствующие расписания и правила. В конечном итоге пользователь решит поработать с задачей и обратится к ней. Пользователь затем может выполнить задачу или сделать запрос на дополнительную информацию.

Важной стороной workflow-системы является способность определять перечень пользователей, имеющих право на выполнение задачи. Процесс определения таких пользователей может быть основан на взаимодействии с платформами управления идентификацией. В нашем примере службам workflow необходимо определить, кто из пользователей имеет право утвердить запрос – в данном случае, руководители. Для выполнения данного процесса workflow-система должна определить понятие руководителя по отношению к набору пользователей и ролей, традиционно существующих в каталогах пользователей.

Между людьми и процессами могут быть установлены различные типы связей. Один из наиболее простых типов связей – роль. Люди в организации могут быть отнесены к ролям, выполняющим различные функции относительно бизнес-процесса, например, администратор процесса или владелец задачи. В другом типе процесс вычисляет, какие люди участвуют в задаче; к нему относятся  ссылки на сотрудников и запросы. Ссылки на сотрудников используются для того, чтобы описать различные категории людей, которые участвуют в выполнении процесса. Запросы в каталог пользователей организации используются для определения людей и ассоциирования их со ссылками; результат запроса – это ссылка на сотрудника или сотрудников. В нашем примере общая роль «финансовый директор» может быть определена ссылкой «руководитель», привязанной к запросу «выбрать начальника отдела, где название отдела «финансовый».

Служба индентификации отвечает за функции, связанные с пользователем, такие как аутентификация, авторизация и опознование людей. Информация о пользователях часто хранится в каталогах пользователей организации. Служба идентификации может работать независимо от справочника пользователей организации. Используя адаптеры, можно получить доступ из справочника через провайдера и можно выполнять запросы для получения информации о пользователях. Данный подход позволяет разделить хранилища информации о пользователях и workflow-системы.

Далее, представим, что в нашем примере менеджер хочет восстановить порядок утверждения запроса для проверки ошибок или узких мест. Служба отслеживания регистрирует все изменения состояния задачи и цепочки (семейства) задач. Данная служба должна поддерживать основной функционал, способному восстановить историю работы с задачей, изменения и выполнить анализ выполнения задачи.

Нам также необходима служба, которая бы уведомляла руководителя с помощью электронного сообщения, что создана заявка и необходимо ее утвердить. Служба уведомлений управляет механизмом уведомлений пользователей об изменении состояния задачи.

Четыре службы, описанные выше, дают хорошее представление о самом общем функционале, необходимом для workflow-системы. Сочетание этих служб позволяет реализовывать наиболее распространенные сценарии в области управления бизнес-процессами.