Хореография
Диаграмма «Хореография» описывает последовательность взаимодействий участников при выполнении бизнес-процессов. Такие диаграммы строят для того, чтобы еще более наглядно показать взаимодействия между бизнес-процессами и их участниками. Для первоначального понимания хореографии рассмотрим простой пример.
Простая диаграмма хореографии
Ниже представлена диаграмма хореографии BPMN, на которой изображена последовательность взаимодействий между Пациентом и Клиникой при выполнении бизнес-процесса приема врача и назначения лечения.
Данный бизнес-процесс описан четырьмя взаимодействиями хореографии.
Запрос доктору
- Пациент является инициатором взаимодействия и отправляет в Клинику инициирующее сообщение «Мне требуется прием врача!». Ответное сообщение от Клиники – «Приходите на прием!». Таким образом, данное взаимодействие является двухсторонним, то есть, в ходе него происходит обмен сообщениями. Обратите внимание, что инициирующее сообщение и участник-инициатор имеют светлый фон, а ответное сообщение и отвечающий участник – имеют темный фон.
Инициирующее сообщение может отправлять только участник-инициатор, а ответное сообщение – может быть отправлено только в ответ на инициирующее сообщение!
На рисунке ниже показано, что нельзя прикреплять инициирующее сообщение к границе отвечающего участника и также нельзя прикреплять ответное сообщение к границе участника-инициатора.
-
Передача симптомов Данное взаимодействие является односторонним. Это значит, что имеет место только передача инициирующего сообщения, а ответное сообщение отсутствует. Инициатором взаимодействия является Пациент: он передает доктору в Клинике симптомы своей болезни – «Я чувствую себя плохо…»
-
Передача рецепта Данное взаимодействие также, как и предыдущее, является односторонним. Инициатор взаимодействия – Клиника. В ходе взаимодействия происходит отправка инициирующего сообщения «Возьмите Ваш рецепт!»
-
Передача медикаментов Пациент является инициатором взаимодействия. Он предъявляет рецепт провизору в Клинике и таким образом транслирует ему инициирующее сообщение «Мне нужны мои лекарства». В ответ Пациент получает медикаменты. Это отражено на диаграмме в виде ответного сообщения «Вот Ваши лекарства!»
Для лучшего понимания хореографии здесь и далее мы приводим соответствующую диаграмму «Взаимодействие».
Вызов хореографии
Вызов хореографии BPMN предназначен для вызова глобальной (стандартной, многократно используемой) задачи или подпроцесса хореографии. Обозначается графическим символом задачи или подпроцесса в жирной рамке.
Задачи хореографии
Задачи хореографии BPMN предназначены для обозначения взаимодействий между двумя участниками бизнес-процессов (или между двумя бизнес-процессами). Они изображаются в виде графических объектов, которые состоят из нескольких элементов.
Задачи хореографии BPMN могут изображаться по-разному, в зависимости от характера описываемого взаимодействия. Возможно всего два варианта:
- Передача сообщения (одностороннее взаимодействие, one-way collaboration)
Этот вид взаимодействия представляет собой передачу одного сообщения от инициатора ко второму участнику и изображается в виде задачи хореографии любым из приведенных ниже способов. Более предпочтительным является изображение с инициирующим сообщением, так как в этом случае можно указать название этого сообщения.
Соответствующая ситуация на диаграмме «Взаимодействие» может выглядеть по-разному. Ниже представлены два возможных примера: передача сообщения между свернутыми пулами и между задачами в разных пулах.
- Обмен сообщениями (двухстороннее взаимодействие, two-way collaboration)
Этот вид взаимодействия представляет собой обмен сообщениями между инициатором и вторым участником, и изображается в виде задачи хореографии с инициирующим сообщением и ответным сообщением.
Соответствующая ситуация на диаграмме «Взаимодействие» может выглядеть по-разному. Ниже представлены три возможных примера обмена сообщениями: между двумя, тремя и четырьмя задачами.
Обмен сообщениями между двумя задачами
Обмен сообщениями между тремя задачами
Обмен сообщениями между четырьмя задачам
Изображение ответного сообщения без инициирующего сообщения является ошибкой!
Соблюдайте правильную последовательность задач хореографии!
При моделировании хореографии BPMN следите за тем, чтобы инициатор каждой последующей задачи был вовлечен в предыдущую задачу! Нарушение этого правила является ошибкой.
Маркеры задач и подпроцессов хореографии
Маркеры задач и подпроцессов хореографии служат для обозначения циклов и множественных экземпляров задач и подпроцессов. Рассмотрим применение маркеров подробнее на примере задач хореографии BPMN.
Циклическая задача хореографии BPMN и соответствующий ей фрагмент диаграммы «Взаимодействие». Обратите внимание, что обе соответствующие задачи – отправка и получение сообщения – должны быть циклическими.
Многоэкземплярная задача хореографии BPMN (параллельные экземпляры) и соответствующий ей фрагмент диаграммы «Взаимодействие». Обратите внимание, что обе соответствующие задачи – отправка и получение сообщений – должны быть многоэкземплярными.
Многоэкземплярная задача хореографии BPMN (последовательные экземпляры) и соответствующий ей фрагмент диаграммы «Взаимодействие». Обратите внимание, что обе соответствующие задачи – отправка и получение сообщений – должны быть многоэкземплярными.
Задача хореографии BPMN с множественным участником и соответствующий ей фрагмент диаграммы «Взаимодействие». Обратите внимание, что на диаграмме взаимодействия пул множественного участника также должны быть обозначен как множественный.
Маркеры подпроцессов хореографии BPMN обозначаются аналогичным образом, как и маркеры задач хореографии и несут ту же самую смысловую нагрузку.
Подпроцессы хореографии
Подпроцесс хореографии BPMN – это составное действие хореографии, которое декомпозируется на поток из нескольких дочерних задач хореографии. Количество участников подпроцесса хореографии может быть от двух и более. Свернутый подпроцесс хореографии BPMN на диаграммах отмечается символом «+».
Свернутый подпроцесс хореографии
Развернутый подпроцесс хореографии и соответствующая ему диаграмма «Взаимодействие»
Изображение подпроцесса хореографии BPMN с инициирующим и / или ответным сообщением является ошибкой, так как характерно только для задач. Будьте внимательны!
События хореографии
События BPMN используются на диаграммах хореографии в большинстве случаев также, как и на диаграммах бизнес-процессов. Особенности использования событий на диаграммах хореографии BPMN приведены в таблицах ниже.
Использование стартовых событий на диаграммах хореографии
Тип стартового события | Можно ли использовать? | Комментарии |
---|---|---|
Абстрактное | Да | Используется для старта хореографии во всех случаях, когда процесс должен запуститься первым инициирующим сообщением. Также используется для старта подпроцессов хореографии. |
Сообщение | Нет | - |
Таймер | Да | Все участники должны иметь соглашение об одинаковом времени выполнения действий. |
Эскалация | Нет | - |
Ошибка | Нет | - |
Компенсация | Нет | - |
Условие | Да | Используется с обычной семантикой. |
Сигнал | Да | Источник сигнала не требуется изображать. Все участники хореографии «видят» сигналы, т.к. сигнал не имеет конкретного получателя и этим отличается от сообщения. |
Использование промежуточных событий на диаграммах хореографии
Тип стартового события | Можно ли использовать? | Комментарии |
---|---|---|
Абстрактное | Да | Используется с обычной семантикой, для обозначения определенной точки, достигнутой в процессе. Не может передавать сообщения. |
Сообщение | Нет | - |
Таймер | Да | При условии синхронизации времени между участниками хореографии. |
Ошибка | Нет | - |
Эскалация | Нет | - |
Отмена | Нет | - |
Компенсация | Нет | - |
Условие | Да | Используется как задержка, которая ожидает изменения данных для того, чтобы событие сработало. Данные должны быть видны всем участникам и содержаться в одном из предыдущих сообщений. |
Условие (граничное) | Да | Применяется только как прерывающее событие - обработчик. |
Условие (в событийном шлюзе) | Да | Используется как задержка, которая ожидает изменения данных для того, чтобы событие сработало. Данные должны быть видны всем участникам и содержаться в одном из предыдущих сообщений. |
Ссылка | Нет | Используется с обычной семантикой. |
Сигнал | Да | Используется только как событие-обработчик. |
Множественное | Нет | - |
Использование завершающих событий на диаграммах хореографии
Тип стартового события | Можно ли использовать? | Комментарии |
---|---|---|
Абстрактное | Да | Используется для завершения хореографии, то есть, обозначения той точки в процесс хореографии, после которой участники взаимодействия прекращают отправлять сообщения и ожидать получения каких-либо сообщений. |
Сообщение | Нет | - |
Ошибка | Нет | - |
Эскалация | Нет | - |
Отмена | Нет | - |
Компенсация | Нет | - |
Сигнал | Нет | - |
Множественное | Нет | - |
Останов (терминатор) | Да | Используется с обычной семантикой. |
Ссылка на подпроцессы
В диаграммах хореографии используются 4 вида действий (кубиков):
1. Задача хореографии (Choreography Task)
Представляет собой элементарное действие и отображает один или несколько случаев обмена сообщениями между участниками. Подразумевается наличие как минимум двух Участников. Название Задачи Хореографии и имена Участников отображаются в трех разных частях данного графического элемента. Таким образом, графически Задача Хореографии должна быть разделена на дорожки с именами участников (две или более), а также содержать дорожку, предназначенную для названия данной Задачи. Может ссылаться на бизнес-процесс оркестрации. Не может ссылаться на бизнес-процесс хореографии.
2. Свернутый подпроцесс хореографии (Collapsed sub-choreography )
Диаграмма не отображает детали Подхореографии. Знак «плюс» находится в центре нижней части дорожки с названием Задачи и указывает на то, что данное Действие является Подпроцессом. В данном случае детали Хореографии находятся на нижнем уровне. Не является ссылкой на бизнес-процесс. Является только декомпозицией задачи хореографии.
3. Развернутый подпроцесс хореографии (Expanded sub-choreography)
Границы Подхореографии расширены. Внутри границ просматриваются детали. Важно отметить, что поток операций не может пересекать границ Подхореографии.
3. Вызов хореографии (Call choreography)
Вызов другого процесса хореографии. Может ссылаться на бизнес-процесс хореографии. Не может ссылаться на бизнес-процесс оркестрации.