Параллельный шлюз

Время чтения: 1 мин. 1043 просмотров

Определение и обозначение параллельного шлюза

Параллельный шлюз BPMN используется для ветвления потока управления, то есть, создания параллельных маршрутов, либо для объединения маршрутов. При этом условие ветвления/слияния маршрутов задавать не нужно. Графически параллельный шлюз BPMN отображается с маркером «+» внутри ромба.

Ветвление потока управления параллельным шлюзом BPMN Слияние потоков управления параллельным шлюзом BPMN

Пример использования параллельного шлюза

На диаграмме ниже отображен процесс приготовления еды с использованием эксклюзивного шлюза BPMN. После выбора рецепта будет приготовлен салат, затем борщ или котлеты.

Диаграмма с эксклюзивными шлюзами BPMN

В этом процессе для каждого действия отображено время его выполнения. Общее время выполнения процесса составляет 48 минут если будет выбран борщ, либо 43 минуты если котлеты. Таким образом, минимальное время ожидания еды составляет 23 минуты. Очевидно, что цель этого процесса – получить салат и основное блюдо, чтобы как можно скорее удовлетворить чувство голода. Для сокращения времени на ожидание еды два действия в этом процессе можно выполнять параллельно: приготовление салата и основного блюда. Для этого на диаграмму процесса необходимо добавить параллельный шлюз BPMN, как показано ниже:

Диаграмма с параллельными шлюзами BPMN

Параллельное выполнение двух действий таким образом сокращает время приготовления еды на 10 минут. Проектирование параллельного выполнения задач – это классический пример оптимизации любого процесса.

Синхронизация потоков управления BPMN

На диаграмме ниже приведен пример, аналогичный разобранному выше, но без использования второго параллельного шлюза BPMN. Поток операций от действия «Приготовить салат» замыкается на эксклюзивный шлюз BPMN. Разберем ход выполнения этого процесса, если для приготовления будет выбран борщ.

Диаграмма с синхронизацией потоков управления

Вначале поток операций разделяется на два параллельных маршрута: приготовить борщ и приготовить салат. Как только задача «Приготовить салат» будет выполнена поток управления от нее пройдет через эксклюзивный шлюз и придет к задаче «Съесть еду». Через 5 минут после задачи «Приготовить борщ» поток управления от нее снова пройдет через шлюз и придет в задачу «Съесть еду». Таким образом, задача «Съесть еду» будет выполнена дважды.

В этом случае мы создали множественный (двойной) поток управления, который может приводить к многократному исполнению одних и тех же задач. Здесь задача «Съесть еду» выполняется дважды, с задержкой в 5 минут. Поток управления рассинхронизировался.

Если бы мы, как и раньше, использовали для объединения потоков управления параллельный шлюз BPMN, то рассинхронизации бы не произошло. Это свойство параллельного шлюза: при объединении потоков операций он «ждет» выполнения всех активных ветвей, и только потом запускает дальнейшее выполнение процесса. Это свойство используется для синхронизации потоков, а параллельный шлюз BPMN в данном случае называют «синхронизирующим шлюзом» или «синхронизатором».

Оставьте комментарий

Нажимая кнопку "Отправить комментарий" вы даёте согласие на обработку персональных данных в соответствии с политикой конфиденциальности

Поделиться этой страницей

Параллельный шлюз

Или скопируйте ссылку

СОДЕРЖИМОЕ