Проектирование бизнес-процессов хореографии

Хореография

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

Простая диаграмма хореографии

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

empty

Данный бизнес-процесс описан четырьмя взаимодействиями хореографии.

Запрос доктору

  1. Пациент является инициатором взаимодействия и отправляет в Клинику инициирующее сообщение «Мне требуется прием врача!». Ответное сообщение от Клиники – «Приходите на прием!». Таким образом, данное взаимодействие является двухсторонним, то есть, в ходе него происходит обмен сообщениями. Обратите внимание, что инициирующее сообщение и участник-инициатор имеют светлый фон, а ответное сообщение и отвечающий участник – имеют темный фон.

Инициирующее сообщение может отправлять только участник-инициатор, а ответное сообщение – может быть отправлено только в ответ на инициирующее сообщение!

На рисунке ниже показано, что нельзя прикреплять инициирующее сообщение к границе отвечающего участника и также нельзя прикреплять ответное сообщение к границе участника-инициатора.

empty

  1. Передача симптомов Данное взаимодействие является односторонним. Это значит, что имеет место только передача инициирующего сообщения, а ответное сообщение отсутствует. Инициатором взаимодействия является Пациент: он передает доктору в Клинике симптомы своей болезни – «Я чувствую себя плохо…»

  2. Передача рецепта Данное взаимодействие также, как и предыдущее, является односторонним. Инициатор взаимодействия – Клиника. В ходе взаимодействия происходит отправка инициирующего сообщения «Возьмите Ваш рецепт!»

  3. Передача медикаментов Пациент является инициатором взаимодействия. Он предъявляет рецепт провизору в Клинике и таким образом транслирует ему инициирующее сообщение «Мне нужны мои лекарства». В ответ Пациент получает медикаменты. Это отражено на диаграмме в виде ответного сообщения «Вот Ваши лекарства!»

Для лучшего понимания хореографии здесь и далее мы приводим соответствующую диаграмму «Взаимодействие».

empty

Вызов хореографии

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

empty

Задачи хореографии

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

empty

Задачи хореографии BPMN могут изображаться по-разному, в зависимости от характера описываемого взаимодействия. Возможно всего два варианта:

  1. Передача сообщения (одностороннее взаимодействие, one-way collaboration)

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

empty empty

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

empty empty

  1. Обмен сообщениями (двухстороннее взаимодействие, two-way collaboration)

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

empty

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

Обмен сообщениями между двумя задачами empty

Обмен сообщениями между тремя задачами empty

Обмен сообщениями между четырьмя задачам empty

Изображение ответного сообщения без инициирующего сообщения является ошибкой!

empty

Соблюдайте правильную последовательность задач хореографии!

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

empty

Маркеры задач и подпроцессов хореографии

Маркеры задач и подпроцессов хореографии служат для обозначения циклов и множественных экземпляров задач и подпроцессов. Рассмотрим применение маркеров подробнее на примере задач хореографии BPMN.

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

empty

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

empty

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

empty

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

empty

Маркеры подпроцессов хореографии BPMN обозначаются аналогичным образом, как и маркеры задач хореографии и несут ту же самую смысловую нагрузку.

empty

Подпроцессы хореографии

Подпроцесс хореографии BPMN – это составное действие хореографии, которое декомпозируется на поток из нескольких дочерних задач хореографии. Количество участников подпроцесса хореографии может быть от двух и более. Свернутый подпроцесс хореографии BPMN на диаграммах отмечается символом «+».

Свернутый подпроцесс хореографии empty

Развернутый подпроцесс хореографии и соответствующая ему диаграмма «Взаимодействие» empty

🚫

Изображение подпроцесса хореографии BPMN с инициирующим и / или ответным сообщением является ошибкой, так как характерно только для задач. Будьте внимательны!

empty

События хореографии

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

empty

Использование стартовых событий на диаграммах хореографии

Тип стартового событияМожно ли использовать?Комментарии
АбстрактноеДаИспользуется для старта хореографии во всех случаях, когда процесс должен запуститься первым инициирующим сообщением. Также используется для старта подпроцессов хореографии.
СообщениеНет-
ТаймерДаВсе участники должны иметь соглашение об одинаковом времени выполнения действий.
ЭскалацияНет-
ОшибкаНет-
КомпенсацияНет-
УсловиеДаИспользуется с обычной семантикой.
СигналДаИсточник сигнала не требуется изображать. Все участники хореографии «видят» сигналы, т.к. сигнал не имеет конкретного получателя и этим отличается от сообщения.

Использование промежуточных событий на диаграммах хореографии

Тип стартового событияМожно ли использовать?Комментарии
АбстрактноеДаИспользуется с обычной семантикой, для обозначения определенной точки, достигнутой в процессе. Не может передавать сообщения.
СообщениеНет-
ТаймерДаПри условии синхронизации времени между участниками хореографии.
ОшибкаНет-
ЭскалацияНет-
ОтменаНет-
КомпенсацияНет-
УсловиеДаИспользуется как задержка, которая ожидает изменения данных для того, чтобы событие сработало. Данные должны быть видны всем участникам и содержаться в одном из предыдущих сообщений.
Условие (граничное)ДаПрименяется только как прерывающее событие - обработчик.
Условие (в событийном шлюзе)ДаИспользуется как задержка, которая ожидает изменения данных для того, чтобы событие сработало. Данные должны быть видны всем участникам и содержаться в одном из предыдущих сообщений.
СсылкаНетИспользуется с обычной семантикой.
СигналДаИспользуется только как событие-обработчик.
МножественноеНет-

Использование завершающих событий на диаграммах хореографии

Тип стартового событияМожно ли использовать?Комментарии
АбстрактноеДаИспользуется для завершения хореографии, то есть, обозначения той точки в процесс хореографии, после которой участники взаимодействия прекращают отправлять сообщения и ожидать получения каких-либо сообщений.
СообщениеНет-
ОшибкаНет-
ЭскалацияНет-
ОтменаНет-
КомпенсацияНет-
СигналНет-
МножественноеНет-
Останов (терминатор)ДаИспользуется с обычной семантикой.

Ссылка на подпроцессы

В диаграммах хореографии используются 4 вида действий (кубиков):

1. Задача хореографии (Choreography Task)

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

empty

2. Свернутый подпроцесс хореографии (Collapsed sub-choreography )

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

empty

3. Развернутый подпроцесс хореографии (Expanded sub-choreography)

Границы Подхореографии расширены. Внутри границ просматриваются детали. Важно отметить, что поток операций не может пересекать границ Подхореографии.

empty

3. Вызов хореографии (Call choreography)

Вызов другого процесса хореографии. Может ссылаться на бизнес-процесс хореографии. Не может ссылаться на бизнес-процесс оркестрации.

empty