10.2.1 Распределение ресурсов

В следующих параграфах содержится информация о том, каким образом определяются ресурсы (Resources) для Действия. Фигура 10.7 отображает диаграмму классов элементов BPMN, используемых для распределения ресурсов.

Фигура 10.7 – Диаграмма классов для распределения ресурсов

Элемент ResourceRole

Элемент ResourceRole наследует атрибуты и ассоциации элемента BaseElement (см. таблицу 8.5). Таблица 10.5 содержит информацию о дополнительных ассоциациях элемента ResourceRole.

Таблица 10.5 - Ассоциации элемента ResourceRole.

Название атрибута

Описание/использование

resourceRef: Resource [0..1]

Данный ресурс связан с Действием и не должен быть указан, если используется атрибут resourceAssignmentExpression.

resourceAssignmentExpression: Resource- AssignmentExpression [0..1]

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

resourceParameterBindings: Resource- ParameterBinding [0..*]

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

Expression Assignment Выражения для распределения ресурсов

Ресурсы (Resources) могут быть определены для Действия, использующего определенные выражения. Такие выражения ДОЛЖНЫ возвращать типы данных, связанные с ресурсами, например данные о Пользователях или Группах. Различные выражения могут возвращать данные о множестве ресурсов. Для всех них определяются соответствующие подклассы класса ResourceRole, например, потенциальные владельцы. Семантика здесь определяется подклассом.

Элемент ResourceAssignmentExpression наследует атрибуты и ассоциации элемента BaseElement (см. таблицу 8.5). Таблица 10.6 содержит информацию о дополнительных ассоциациях элемента ResourceAssignmentExpression.

Таблица 10.6 - Ассоциации элемента ResourceAssignmentExpression

Название атрибута

Описание/использование

expression: Expression

Элемента ResourceAssignmentExpression ДОЛЖЕН содержать выражение (Expression), используемое в рабочем цикле для назначения ресурса (или ресурсов) для элемента ResourceRole.

Назначение параметризованного ресурса

Ресурсы поддерживают параметры запросов, поступающих к Ресурсу в рабочем цикле. Эти параметры МОГУТ относиться к данным об экземплярах Задач, использующим выражения. В ходе выполнения запроса инфраструктурой определяется, какой из параметров, определенный Ресурсом, используется. МОГУТ БЫТЬ использованы несколько параметров, от «0» и более. Они могут являться более значимым, чем параметры, значения которых были определены в ходе использования Ресурса. Данный документ не содержит описания механизма использования Задачи и Ресурса. Определение количества запросов ресурса необходимо для определения группы Ресурсов, например, людей, назначенных на выполнение Действия. Невыполненные запросы оцениваются как запросы, возвращающие пустой набор данных. Запросы возвращают один или несколько (группу) Ресурсов.

Элемент ResourceParameterBinding наследует атрибуты и ассоциации элемента BaseElement (см. таблицу 8.5). Таблица 10.7 содержит информацию о дополнительных ассоциациях элемента ResourceParameterBinding.

Таблица 10.7 - Ассоциации элемента ResourceParameterBinding.

Название атрибута

Описание/использование

parameterRef: ResourceParameter

Ссылается на параметр, определенный Ресурсом.

expression: Expression

Выражение, используемое для вычисления значения, используемого для связки с атрибутом типа ResourceParameter.

10.2.2 Исполнитель

Класс Performer определяет ресурс, выполняющий Действие или являющийся ответственным за его выполнение. Ресурсом (например, исполнителем) может являться одно лицо, группа лиц, роль или должность в организации, а также сама организация.

Элемент Performer наследует атрибуты и ассоциации элемента BaseElement (см. таблицу 8.5) посредством взаимодействия с элементом ResourceRole. Однако у данного элемента не может быть дополнительных атрибутов или ассоциаций.

10.2.3 Задача

Задача представляет собой элементарное действие, включенное в состав Процесса. Используется в случае, если Процесс не детализируется далее в данной Модели. Как правило, после выполнения Задачи её исполнителем являются конечный пользователь и/или приложения.

Задачи, как и Процессы, отображаются на диаграмме Процесса в виде прямоугольников с закругленными углами (см. фигуру 10.8).

  • Задача представляет собой прямоугольник с закругленными углами, который ДОЛЖЕН БЫТЬ выполнен одинарной тонкой линией.
    • Текст, цвет, размер, а также линии, используемые для изображения Задачи, ДОЛЖНЫ соответствовать правилам, указанным в разделе «Использование Текста, Цвета и Линий в Моделировании Диаграмм».
      • Граница данного графического элемента, выполненная жирной линией, ДОЛЖНА подразумевать использование графического элемента в качестве Действия Вызов (глобальные Задачи)
      • Граница данного графического элемента, выполненная пунктиром, ДОЛЖНА подразумевать использование графического элемента в качестве Подпроцесса, работающего с Событиями. Такая граница неприемлема для отображения Задач.
      • Граница данного графического элемента, выполненная двойной линией, ДОЛЖНА подразумевать использование графического элемента в качестве Подпроцесса Транзакции. Такая граница неприемлема для отображения Задач.

Фигура 10.8 – Графический элемент «Задача»

BPMN различает три типа маркеров Задачи: Маркер Цикла (Loop Marker), Многоэкземплярный Маркер (Multiple Instance Marker), а также Маркер Компенсации (Compensation Marker). Задача может содержать от одного до двух вышеуказанных Маркеров (см. Фигуру 10.9).

  • Маркер Цикла ДОЛЖЕН БЫТЬ выполнен в виде небольшой стрелки, острие которой загнуто в направлении, противоположном направлению самой стрелки.
    • Маркер Цикла МОЖЕТ сочетаться с Маркером Компенсации.
  • Многоэкземплярный Маркер ДОЛЖЕН БЫТЬ выполнен в виде трех параллельных вертикальных линий. Для более подробной информации о многоэкземплярных Действиях см. подраздел 10.2.8.
    • Если Многоэкземплярный Маркер используется для последовательного, а не параллельного, выполнения Задачи, линии должны отображаться горизонтально (см. фигуру 10.49).
    • Многоэкземплярный Маркер МОЖЕТ сочетаться с Маркером Компенсации.
  • Маркер Компенсации ДОЛЖЕН БЫТЬ выполнен в виде двух треугольников, повернутых влево (как кнопка перемотки назад на проигрывателе). Для более подробной информации о Компенсации см. подраздел 10.6
    • Маркер Компенсации МОЖЕТ сочетаться как с Маркером Цикла, так и с Многоэкземплярным Маркером.

Все существующие Маркеры ДОЛЖНЫ БЫТЬ сгруппированы и располагаться в центре нижней части графического элемента Задачи.

Фигура 10.9 – Маркеры Задачи

Фигура 10.10 отображает диаграмму классов элемента Задача

Фигура 10.10 - Диаграмма классов элемента Задача

Задача наследует атрибуты и ассоциации элемента Activity (см. таблицу 10.3), помимо которых других у Задачи быть не может.

10.2.3.1 Типы Задач

BPMN выделяет несколько типов Задач, что позволяет описывать различия в присущем им поведении, характерные для каждого из типов. Список типов Задач МОЖЕТ БЫТЬ пополнен за счет добавления различных маркеров. Задача, тип которой не указан, называется Абстрактная Задача BPMN 1.2 такая Задача носит название Неопределенная Задача (None Task)). Фигура 10.8 представляет собой графическое изображение Абстрактной Задачи.

Сервисная задача (ServiceTask)

Сервисная задача представляет собой Задачу, предназначенную для оказания услуги, которая может являться как веб-сервисом (Web service), так и автоматизированным приложением.

Графически Сервисная Задача отображается в виде прямоугольника с закругленными углами (установленное в BPMN отображение графического элемента Задача) и отличается от других типов Задач наличием определенного маркера, расположенного в левом верхнем углу фигуры Сервисной Задачи (см. фигуру 10.11).

Таким образом, на диаграмме Сервисная Задача – это прямоугольник с закругленными углами, границы которого ДОЛЖНЫ БЫТЬ выполнены одинарной тонкой линией. Содержит маркер, позволяющий отличать данный тип Задач от других (см фигуру 10.11).

Фигура 10.11 – Графический элемент Сервисная Задача

Сервисная Задача наследует атрибуты и ассоциации Activity (см. таблицу 10.3). Необходимо отметить, что в случае, если Задача данного типа ссылается на Операцию (Operation), должны быть приняты во внимание следующие ограничения: Сервисная Задача имеет лишь один набор входных и максимум один набор выходных данных. Для неё подразумевается один единственный ввод данных со значением ItemDefinition, равным значению, определенному сообщением, на которое ссылается атрибут inMessageRef связанной Операции. Если же Операция определяет выходные сообщения, то Сервисная Задача будет иметь один вывод данных со значением атрибута ItemDefinition, равным значению, определенному сообщением, на которое ссылается атрибут outMessageRef связанной Операции

Текущий Участник, предоставляющий услугу, указывается посредством соединения Сервисной Задачи и Участника с помощью Потоков Сообщений. В Процессе такое соединение отображается в рамках Взаимодействия (см. таблицу 10.1).

Фигура 10.12 – Диаграмма классов Сервисной Задачи

Элемент ServiceTask наследует атрибуты и ассоциации элемента Activity (см. таблицу 10.3). Таблица 10.8 содержит информацию о дополнительных ассоциациях элемента ServiceTask.

Таблица 10.8 – Ассоциации элемента ServiceTask

Название атрибута

Описание/использование

implementation: string = ##webService

С помощью данного атрибута определяется технология, используемая для отправки и получения сообщений. Значение "##unspec-ified" используется для указания того, что технология ещё не выбрана, значение "##WebService" – для указания технологии веб-сервисов, а введенный URL – для указания какой-либо другой технологии или протокола (coordination protocol). Технологией, определенной по умолчанию, является технология веб-сервиса.

operationRef: Operation [0..1]

Данный атрибут указывает на операцию, запускаемую сервисной Задачей.

Отправка сообщений (Send Task)

Отправка сообщений представляет собой простую Задачу, суть которой заключается в отправлении сообщения внешнему Участнику, имеющего отношение к данному бизнес-процессу. Задача считается выполненной в случае, если сообщение было отправлено хотя бы один раз.

Текущий Участник, которому отправляется сообщение, указывается посредством соединения Отправки сообщений и Участника с помощью Потоков Сообщений. В Процессе такое соединение отображается в рамках Взаимодействия (см. таблицу 10.1).

Графически Отправка сообщений отображается в виде прямоугольника с закругленными углами (установленное в BPMN отображение графического элемента Задача) и отличается от других типов Задач наличием маркера в виде конвертика с темной заливкой (такой же маркер имеет определяющее результат Событие Сообщение). Маркер расположен в левом верхнем углу фигуры Задачи данного типа.

Таким образом, на диаграмме Отправка сообщений – это прямоугольник с закругленными углами, границы которого ДОЛЖНЫ БЫТЬ выполнены одинарной тонкой линией. Содержит маркер в виде конвертика с темной заливкой, позволяющий отличать данный тип Задач от других (см фигуру 10.13).

Фигура 10.13 - Графический элемент Отправка сообщений

Фигура 10.14 – Диаграмма классов элементов SendTask и ReceiveTask

Элемент SendTask наследует атрибуты и ассоциации элемента Activity (см. таблицу 10.3). Необходимо отметить, что в случае, если Задача данного типа ссылается на Сообщение, должны быть приняты во внимание следующие ограничения: Отправка сообщений имеет максимум один набор входных и один ввод данных. Если ввод данных осуществляется, то для данной Задачи ДОЛЖЕН БЫТЬ определен атрибут ItemDefinition, значение которого равно тому, что определено связанным сообщением. Во время выполнения Отправки сообщений данные автоматически перемещаются из ввода данных данной Задачи в Сообщение, предназначенное для отправки. Если ввод данных не осуществляется, то данные из Процесса в сообщение не попадают.

Таблица 10.9 содержит информацию о дополнительных ассоциациях элемента SendTask.

Таблица 10.9 – Ассоциации элемента SendTask

Название атрибута

Описание/использование

messageRef: Message [0..1]

Атрибут messageRef МОЖЕТ иметь значение «Message», указывающее на то, что сообщение будет отправлено Задачей. В данном контексте сообщение – это то же самое, что и выходное сообщение (в веб-сервисе). На диаграмме МОГУТ отображаться один или несколько связанных с Задачей Исходящих потоков сообщений. Однако в данной ситуации отображение Потоков сообщений НЕ ОБЯЗАТЕЛЬНО. Сообщение относится ко всем Исходящим потокам сообщений и отсылается по всем Исходящим потокам сообщений по завершении отдельно взятого экземпляра Задачи данного типа.

operationRef: Operation

Данный атрибут указывает на операцию, запускаемую Задачей Отправка сообщений.

implementation: string = ##webService

С помощью данного атрибута определяется технология, используемая для отправки и получения сообщений. Значение "##unspec-ified" используется для указания того, что технология ещё не выбрана, значение "##WebService" – для указания технологии веб-сервисов, а введенный URL – для указания какой-либо другой технологии или протокола (coordination protocol). Технологией, определенной по умолчанию, является технология веб-сервиса.

Получение сообщений (Receive Task)

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

Текущий Участник, от которого получено сообщение, указывается посредством соединения Получения сообщений и Участника с помощью Потоков Сообщений. В Процессе такое соединение отображается в рамках Взаимодействия (см. таблицу 10.1).

Данный тип Задач обычно используется для запуска Процесса (получение сообщения -> самозапуск процесса). Обязательными условиями этого являются наличие у Задачи атрибута instantiate, значение которого ДОЛЖНО БЫТЬ установлено как «true», и ОТСУТСТВИЕ Входящих потоков операций.

Графически Получение сообщений отображается в виде прямоугольника с закругленными углами (установленное в BPMN отображение графического элемента Задача) и отличается от других типов Задач наличием маркера в виде конвертика без заливки (такой же маркер имеет обрабатывающее триггер Событие Сообщение). Маркер расположен в левом верхнем углу фигуры Задачи данного типа.

Таким образом, на диаграмме Получение сообщений – это прямоугольник с закругленными углами, границы которого ДОЛЖНЫ БЫТЬ выполнены одинарной тонкой линией. Содержит маркер в виде конвертика без заливки, позволяющий отличать данный тип Задач от других (см. фигуру 10.15). В случае, если значение атрибута instantiate для данной Задачи установлено как «true», то маркер выглядит как маркер Стартового события Сообщение (см. фигуру 10.16).



Фигура 10.15 - Графический элемент Получение сообщений

Фигура 10.16 - Графический элемент Задачи Получение сообщений, используемой для запуска Процесса

Элемент ReceiveTask наследует атрибуты и ассоциации элемента Activity (см. таблицу 10.3). Необходимо отметить, что в случае, если Задача данного типа ссылается на Сообщение, должны быть приняты во внимание следующие ограничения: Получение сообщений имеет максимум один набор выходных и один вывод данных. Если вывод данных осуществляется, то для данной Задачи ДОЛЖЕН БЫТЬ определен атрибут ItemDefinition, значение которого равно тому, что определено связанным сообщением. Во время выполнения Получения сообщений данные автоматически перемещаются из Сообщения в вывод данных. Если вывод данных не осуществляется, то содержимое сообщения не попадет из этой Задачи в Процесс.

Таблица 10.10 содержит информацию о дополнительных ассоциациях элемента ReceiveTask.

Таблица 10.10 – Атрибуты и ассоциации элемента ReceiveTask

Название атрибута

Описание/использование

messageRef: Message [0..1]

Атрибут messageRef МОЖЕТ иметь значение «Message», указывающее на то, что сообщение будет получено Задачей. В данном контексте сообщение – это то же самое, что и входное сообщение (в веб-сервисе). На диаграмме МОГУТ отображаться один (1) или несколько связанных с Задачей Входящих потоков сообщений. Однако в данной ситуации отображение Потоков сообщений НЕ ОБЯЗАТЕЛЬНО. Сообщение относится ко всем Входящим потокам сообщений, но приходит только по одному (1) Входящему потоку сообщений для каждого отдельно взятого экземпляра Задачи данного типа.

instantiate: boolean = false

Данный атрибут указывает на то, что Получение сообщений является механизмом, запускающим Процесс. Если данная Задача отображается как самое первое из Действий, включенных в Процесс, значение данного атрибута МОЖЕТ БЫТЬ «true» (например, если к Задаче не подходит Входящий поток операций). Многоэкземплярные Задачи также МОГУТ иметь этот атрибут со значением «true».

operationRef: Operation

Данный атрибут определяет операцию, с помощью которой Задача Получение сообщение принимает сообщения.

implementation: string = ##webService

С помощью данного атрибута определяется технология, используемая для отправки и получения сообщений. Значение "##unspec-ified" используется для указания того, что технология ещё не выбрана, значение "##WebService" – для указания технологии веб-сервисов, а введенный URL – для указания какой-либо другой технологии или протокола (coordination protocol). Технологией, определенной по умолчанию, является технология веб-сервиса.

Пользовательская задача (User Task)

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

Графически Пользовательская задача отображается в виде прямоугольника с закругленными углами (установленное в BPMN отображение графического элемента Задача), который ДОЛЖЕН БЫТЬ выполнен одинарной тонкой линией и отличаться от других типов Задач наличием маркера в виде верхней части фигуры человека (см. фигуру 10.17).

Фигура 10.17 - Графический элемент Пользовательская задача

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

Ручное выполнение (Manual Task)

Ручное выполнение представляет собой Задачу, выполнение которой подразумевает действия человека и исключает использование каких-либо автоматизированных механизмов исполнения или приложений. Примером такого типа Задач может служить установка телефонного аппарата на территории заказчика специалистом по обcлуживанию телефонов.

Графически Ручное выполнение отображается как прямоугольник с закругленными углами (установленное в BPMN отображение графического элемента Задача), границы которого ДОЛЖНЫ БЫТЬ выполнены одинарной тонкой линией. Содержит маркер в виде руки, позволяющий отличать данный тип Задач от других (см. фигуру 10.18).

Фигура 10.18 - Графический элемент Ручное выполнение

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

Бизнес-правило (Business Rule)

Бизнес-правило представляет собой инструмент, используемый в Процессе для обеспечения доступа к механизму бизнес-правил, а также для получения на выходе предоставленной этим механизмом информации об изменениях в бизнес-процессе. Использование атрибута InputOutputSpecification позволяет отправлять данные о Процессе в механизм бизнес-правил и получать обратно другие данные.

Графически Бизнес-правило отображается как прямоугольник с закругленными углами (установленное в BPMN отображение графического элемента Задача). Содержит маркер, позволяющий отличать данный тип Задач от других (см. фигуру 10.11). Маркер расположен в левом верхнем углу фигуры Задачи данного типа.

Таким образом, на диаграмме Бизнес-правило – это прямоугольник с закругленными углами, границы которого ДОЛЖНЫ БЫТЬ выполнены одинарной тонкой линией. Содержит маркер, позволяющий отличать данный тип Задач от других (см. фигуру 10.19).

Фигура 10.19 - Графический элемент Бизнес-правило

Элемент BusinessRuleTask наследует атрибуты и ассоциации элемента Activity (см. таблицу 10.3). Таблица 10.11 содержит информацию о дополнительных атрибутах элемента BusinessRuleTask.

Таблица 10.11 – Атрибуты и ассоциации элемента BusinessRuleTask

Название атрибута

Описание/использование

implementation: string = ##unspecified

С помощью данного атрибута определяется технология, используемая для выполнения Задачи Бизнес-правило. Значение "##unspec-ified" используется для указания того, что технология ещё не выбрана, значение "##WebService" – для указания технологии веб-сервисов, а введенный URL – для указания какой-либо другой технологии или протокола (coordination protocol). Технология по умолчанию не определена.

Задача-сценарий (Script Task)

Задача-сценарий выполняется механизмом исполнения бизнес-процесса. Разработчик модели процесса или её «внедренец» создают сценарий, который распознается механизмом исполнения. В нужный момент, когда Задача должна быть выполнена, запускается сценарий. Задача считается выполненной в случае, если был выполнен запущенный для неё сценарий.

Графически Задача-сценарий отображается как прямоугольник с закругленными углами (установленное в BPMN отображение графического элемента Задача). Содержит маркер, позволяющий отличать данный тип Задач от других (см. фигуру 10.11). Маркер расположен в левом верхнем углу фигуры Задачи данного типа.

Таким образом, на диаграмме Задача-сценарий – это прямоугольник с закругленными углами, границы которого ДОЛЖНЫ БЫТЬ выполнены одинарной тонкой линией. Содержит маркер, позволяющий отличать данный тип Задач от других (см. фигуру 10.20).

Фигура 10.20 - Графический элемент Задача-сценарий

Элемент ScriptTask наследует атрибуты и ассоциации элемента Activity (см. таблицу 10.3). Таблица 10.12 содержит информацию о дополнительных атрибутах для элемента ScriptTask.

Таблица 10.12 – Атрибуты элемента ScriptTask

Название атрибута

Описание/использование

scriptFormat: string [0..1]

Данный атрибут определяет формат сценария. Его значение ДОЛЖНО БЫТЬ указано в формате MIME-тип. Указывать значение для данного атрибута необходимо, если сценарий для Задачи уже существует.

script: string [0..1]

Разработчик модели МОЖЕТ добавлять сценарий, когда Задача выполняется. Если сценарий не задан, то данный тип Задач действует в процессе по типу Абстрактной задачи.