image
Продукт

Взаимодействие (Collaboration)

Примечание: Выполнение пунктов данной главы является НЕОБХОДИМЫМ условием для Соответствия Требованиям Моделирования Хореографии BPMN, Соответствия Требованиям Моделирования Процесса BPMN и Соответствия Общим Требованиям BPMN. Однако следование изложенной в данной главе информации НЕ ТРЕБУЕТСЯ для Соответствия Требованиям Исполнения Процесса BPMN или Соответствия Требованиям Исполнения Процесса BPEL BPMN. Для получения более подробной информации см. раздел 2.1 документа.

Пакет Взаимодействие (Collaboration) содержит классы, используемые для моделирования Взаимодействия, представляющего собой совокупность Участников (Participants), представленных в виде Пулов (Pools), и взаимоотношений, представленных в виде Потоков Сообщений (Message Flows). Внутри Пулов Взаимодействия или в Хореографиях между этими Пулами МОГУТ находиться Процессы (см. фигуру 9.1). Хореография (Choreography) представляет собой расширенный тип Взаимодействия. Если Взаимодействие определено, это значение содержится в Definitions.



Фигура 9.1 – Классы пакета Collaboration

Элемент Collaboration наследует атрибуты и ассоциации элемента BaseElement (см. таблицу 8.5) посредством его связи с элементом RootElement. Таблица 9.1 содержит информацию о дополнительных атрибутах и ассоциациях элемента Collaboration.

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

Название атрибута Описание/использование
name: string Текстовое описание Взаимодействия.
choreographyRef: Choreography [0..*] Ассоциация choreographyRef указывает Хореографии, которые могут отображаться между Пулами Взаимодействия. Хореография служит для определения делового соглашения (или заказа, при котором происходит обмен сообщениями) между взаимодействующими Участниками. Для получения более подробной информации о Хореографии см. Главу 11.
Ассоциации participantAssociations (см. описание ниже) используются для установления соответствия между Участниками Хореографии и Участниками Взаимодействия.
Ассоциации MessageFlowAssociations (см. описание ниже) используются для установления соответствия между Потоками Сообщений Хореографии и Потоками Сообщений Взаимодействия.
Ассоциации conversationAssociations (см. описание ниже) используются для установления соответствия между Обменами Сообщений Хореографии и Обменами Сообщений Взаимодействия.
Обратите внимание, что данный атрибут не применяется в Хореографиях или Глобальных Обменах Сообщениями (GlobalConversation), являющихся подтипами Взаимодействия. Таким образом, одна Хореография не может ссылаться на другую.
correlationKeys: CorrelationKey [0..*] Данная ассоциация служит для указания Ключей Корреляции (CorrelationKeys), используемых для ассоциирования Сообщений с каким-либо Взаимодействием.
conversationAssociations: ConversationAssociation [0..*] Посредством данного атрибута определяется список соответствий между Обменами Сообщениями ссылающегося Взаимодействия и Обменами Сообщениями другого Взаимодействия. Используется, если:
  • Взаимодействие ссылается на Хореографию
conversations: ConversationNode [0..*] Объединенное взаимоотношение conversations допускает наличие Обменов Сообщениями во Взаимодействии с целью группировки Потоков Сообщений данного Взаимодействия и установления ассоциаций с информацией корреляции, как того ТРЕБУЕТ модель определения Взаимодействия или Процесса. Обмены Сообщениями отображаются в том случае, если Взаимодействие является непосредственно Взаимодействием, а не Хореографией.
conversationLinks: ConversationLink [0..*] Ссылки на Обмен Сообщениями (Conversation Links), используемые во Взаимодействии.
artifacts: Artifact [0..*] Посредством данного атрибута определяется список Артефактов (Artifacts), содержащихся во Взаимодействии.
participants: Participant [0..*] Посредством данного атрибута определяется список Участников (Participants), принимающих участие во Взаимодействии. Во Взаимодействии Участники отображаются в виде Пулов, а в Хореографии – в виде Секций Участников (Participant Bands) графических элементов Задач Хореографии (Choreography Activities).
participantAssociations: ParticipantAssociations [0..*] Посредством данного атрибута определяется список соответствий между Участниками ссылающегося Взаимодействия и Участниками другого Взаимодействия. Используется, если:
  • Взаимодействие ссылается на Хореографию.
  • Ссылка на определение Взаимодействия для Процесса задана с помощью Действия Вызов (и соответствует определению Взаимодействия вызывающего Процесса).
messageFlow: Message Flow [0..*] Посредством данного атрибута определяется список Потоков Сообщений, используемых во Взаимодействии. Потоки Сообщений отображаются во Взаимодействии (в виде пунктирных линий), но скрыты в Хореографии.
messageFlowAssociations: Message Flow Association [0..*] Посредством данного атрибута определяется список соответствий между Потоками Сообщений Взаимодействия и Потоками Сообщений соответствующей модели. Используется, если:
  • Взаимодействие ссылается на Хореографию. Это означает своего рода «подключение» Потоков Сообщений Взаимодействия к соответствующим Действиям Хореографии (Choreography Activities).
IsClosed: boolean = false Булевское значение, указывающее на то, могут ли Потоки Сообщений, смоделированные вне Взаимодействия, появиться при выполнении этого Взаимодействия.
  • Значение «true» означает, что они НЕ МОГУТ появляться.
  • Значение «false» означает, что они МОГУТ появляться.



Набор Потоков Сообщений (Message Flows) какого-либо Взаимодействия МОЖЕТ принадлежать Обмену Сообщениями (Conversation). Обмен Сообщениями (Conversation) представляет собой набор Потоков Сообщений, имеющих общее предназначение, другими словами, все они связаны с обработкой одного заказа (для получения более подробной информации об Обмене Сообщениями см. раздел 9.4).

9.1 Основные понятия Взаимодействия

В состав Взаимодействия, как правило, входят два или более Пулов (Pools), представляющих собой его Участников (Participants). Обмен Сообщениями (Messages) между Участниками отображается посредством Потока Сообщений, соединяющих два Пула (или объекты внутри Пулов). Сообщения, ассоциированные с Потоками Сообщений, также МОГУТ отображаться графически. Примеры Взаимодействия приведены на фигурах 9.3, 9.4 и 9.5.

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

9.1.1 Использование общих элементов BPMN во Взаимодействии

Некоторые из элементов BPMN являются общими как для Процессов и Хореографий (Choreography), так и для Взаимодействий. Такие элементы используются во всех перечисленных диаграммах. Следующие подразделы содержат информацию об использовании во Взаимодействии Сообщений (Messages), Потоков Сообщений (Message Flows), Участников (Participants), Потоков Операций (Sequence Flows), Артефактов (Artifacts), Корреляций (Correlations), Выражений (Expressions) и Сервисов (Services).

9.2 Пулы и Участники

Пул (Pool) представляет собой графическое изображение Участника (Participant) Взаимодействия. Участник (см. подраздел 9.2.1) может являться более узкой Партнерской Сущностью (PartnerEntity, к примеру, компания) либо представлять достаточно общую Партнерскую Роль (PartnerRole, к примеру, покупатель, продавец, производитель). Пул МОЖЕТ ссылаться, а МОЖЕТ НЕ ссылаться на Процесс. Пул НЕ ОБЯЗАТЕЛЬНО содержит Процесс, т.е. может быть «черным ящиком»,

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

Текст, цвет, размер, а также линии, используемые для изображения Пула, ДОЛЖНЫ соответствовать правилам, указанным в разделе «Использование Текста, Цвета и Линий в Моделировании Диаграмм».



Фигура 9.2 - Пул

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

Пул выступает в роли контейнера Потоков Операций (Sequence Flows) между Действиями (Activities), содержащимися в Процессе. Потоки Операций могут пересекать границы Дорожек (Lanes) внутри Пула (для получения более подробной информации о Дорожках см. подраздел 10.7), однако, не могу пересекать границ самого Пула. Это означает, что Процесс полностью находится в Пуле. Связь между Пулами отображается посредством Потоков Сообщений.

Другая особенность использования Пула заключается в возможности добавления в него деталей Действия (Activity). Соответственно, Пул МОЖЕТ отображаться как «Белый Ящик» (все детали показаны) или как «Черный Ящик» (все детали спрятаны). С Пулом, отображаемым в виде «Черного Ящика», не может быть ассоциировано ни одного Потока Операций, однако, Потоки Сообщений могут присоединяться к границам такого Пула (см. фигуру 9.3).



Фигура 9.3 – Потоки Сообщений, присоединенные к границам двух Пулов

Действия внутри Пула, отображаемого в качестве «Белого Ящика», организованы посредством Потоков Операций. Потоки Сообщений в данном случае могут пересекать границы Пула для соединения с соответствующими Действиями (см. фигуру 9.4).



Фигура 9.4 – Потоки Сообщений, соединяющие Элементы Потока внутри Пулов

Взаимодействие может содержать два (2) или более Пулов (т.е. Участников). Однако с точки зрения разработчиков модели, Процесс, представляющий собой выполняемую работу, рассматривается как «внутренний» (internal) и НЕ ТРЕБУЕТ заключения в границы Пула, в то время как остальные Пулы на Диаграмме ДОЛЖНЫ отображаться с границами (см. фигуру 9.5).



Фигура 9.5 – Основной (Внутренний) Пул, не имеющий границ

В BPMN для Пулов предусмотрен маркер - маркер многоэкземплярности, который МОЖЕТ отображаться в Пуле (см. фигуру 9.6). Данный маркер используется в том случае, если Участник, указанный в Пуле, является множественным. Для получения более подробной информации о множественности Участников см. соответствующий пункт следующего подраздела.

  • Многоэкземплярный маркер Пула ДОЛЖЕН быть выполнен в виде трех параллельно расположенных вертикальных линий.
  • Маркер, если он используется, ДОЛЖЕН располагаться в центре нижней части графического элемента Пула.




Фигура 9.6 – Пулы с маркерами Множественного Участника

9.2.1 Участники (Participants)

Участник представляет собой конкретную Партнерскую Сущность (PartnerEntity, например, компанию) и/или менее узкую Партнерскую Роль (PartnerRole, например, покупателя, продавца, производителя), являющиеся Участниками Взаимодействия. Как правило, Участник отвечает за выполнение Процесса, заключенного в его Пуле. Однако Пул МОЖЕТ существовать и без Процесса.

На фигуре 9.7 представлена диаграмма классов элемента Participant и его отношений с другими элементами BPMN. Если Участник указан, это значение хранится во Взаимодействии, содержащем подтипы Хореографии (Choreography), Глобального Обмена Сообщениями (GlobalConversation) и Глобальной Задачи Хореографии (GlobalChoreographyTask).



Фигура 9.7 – Диаграмма классов элемента Participant

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

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

Название атрибута Описание/использование
name: string [0..1] Текстовое описание Участника. Имя Участника может отображаться напрямую либо быть заменено ассоциированной Партнерской Ролью (PartnerRole) или Партнерской Сущностью (PartnerEntity). Также возможен вариант, когда имя Партнерской Роли и имя Партнерской Сущности отображаются одновременно.
processRef: Process [0..1] Посредством атрибута processRef указывается Процесс, который используется Участником во Взаимодействии. Процесс отображается в Пуле данного Участника.
partnerRoleRef: PartnerRole [0..*] Посредством атрибута partnerRoleRef указывается Партнерская Роль, принадлежащая Участнику Взаимодействия. Для Участника МОЖЕТ быть указана как Партнерская Роль, так и Партнерская Сущность. Данный атрибут образован от атрибута participantRefs Партнерской Роли.
partnerEntityRef: PartnerEntity [0..*] Посредством атрибута partnerEntityRef указывается Партнерская Сущность, принадлежащая Участнику Взаимодействия. Для Участника МОЖЕТ быть указана как Партнерская Роль, так и Партнерская Сущность. Данный атрибут образован от атрибута participantRefs Партнерской Сущности.
interfaceRef: Interface [0..*] Посредством данной ассоциации указываются Интерфейсы (Interfaces), которые поддерживает Участник. Определение Интерфейса см. в подразделе 8.4.1)
participantMultiplicity: participant- Multiplicity [0..1] Ассоциация participantMultiplicityRef используется для определения Участника, который представляет собой более одного (1) экземпляра Участника в данном взаимодействии. Ниже содержится более подробное описание ParticipantMultiplicity.
endPointRefs: EndPoint [0..*] Данный атрибут используется для указания адреса (или ссылки на конечную точку) конкретного сервиса для реализации Участника.


Партнерская Сущность (PartnerEntity)

Партнерская Сущность(PartnerEntity) является одним из типов Участника (см. подраздел выше).

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

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

Название атрибута Описание/использование
name: string Текстовое описание Партнерской Сущности.
participantRef: Participant [0..*] Данный атрибут определяет то, каково участие Партнерской Сущности во Взаимодействии или Хореографии (Choreography).


Партнерская Роль (PartnerRole)

Партнерская Роль(PartnerRole) является одним из типов Участника (см. подраздел выше).

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

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

Название атрибута Описание/использование
name: string Текстовое описание Партнерской Роли.
participantRef: Participant [0..*] Данный атрибут определяет то, каково участие Партнерской Роли во Взаимодействии или Хореографии (Choreography).


Множественность Участника

Элемент ParticipantMultiplicity используется для указания на множественность Участника.

К примеру, производитель может получить запрос от множества поставщиков, участвующих во Взаимодействии.



Фигура 9.8 – Пул с Множественным Участником

На фигуре 9.9 изображена диаграмма классов для Множественного Участника.



Фигура 9.9 – Диаграмма классов для Множественного Участника

Маркер многоэкземплярности отображается в центре нижней части Пула (Участника, см. фигуру 9.9) или Секции Участника в Действии Хореографии (см. раздел 11.4). Он используется в случае, если элемент ParticipantMultiplicity ассоциирован с Участником, а значение атрибута maximum не указано или равно «два и больше».

Таблица 9.5 содержит информацию об атрибутах элемента ParticipantMultiplicity.

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

Название атрибута Описание/использование
minimum: integer = 0 Посредством атрибута minimum указывается минимальное количество Участников, которые ДОЛЖНЫ участвовать во Взаимодействии. Если указано также и значение атрибута maximum, оно ДОЛЖНО БЫТЬ больше или равно значению данного атрибута.
maximum: integer [0..1] = 1 Посредством атрибута maximum указывается максимальное количество Участников, которые МОГУТ участвовать во Взаимодействии. Данное значение ДОЛЖНО БЫТЬ равно «1» или больше, А ТАКЖЕ ДОЛЖНО БЫТЬ равно или больше значения атрибута minimum.


Таблица 9.6 содержит информацию об атрибутах Экземпляра (Instance)элемента ParticipantMultiplicity.

Таблица 9.6 – Атрибуты Экземпляра элемента ParticipantMultiplicity

Название атрибута Описание/использование
numParticipants: integer [0..1] Текущее значение множественности Участника для данного Экземпляра Хореографии или Взаимодействия.


Ассоциация Участника (ParticipantAssociation)

Данные элементы используются для установки соответствия между двумя элементами, содержащими Участников. Время от времени могут возникать ситуации, когда Участники разных Диаграмм могут быть определены по-разному (т.к. они создавались по-отдельности), но при этом данные Участники представляют собой одно и то же. Элемент ParticipantAssociation служит для установки соответствия между такими Участниками.

Элемент ParticipantAssociation используется в случае, если одна (внешняя) диаграмма с Участниками в составе содержит другую (внутреннюю) диаграмму также с Участниками в составе. BPMN выделяет четыре случая, когда необходимо применение элемента ParticipantAssociation:

  1. Взаимодействие ссылается на Хореографию (Choreography) для добавления её между Пулов (Участников) Взаимодействия. Участники Хореографии (внутренней диаграммы) должны соответствовать Участникам Взаимодействия (внешней диаграммы).
  2. Обмен Сообщениями типа Вызов (Call Conversation) ссылается на Взаимодействие или Глобальный Обмен Сообщениями (GlobalConversation). Участники Взаимодействия (внутренней диаграммы) должны соответствовать Участникам, на которых ссылается Обмен Сообщениями типа Вызов (внешний элемент). Любой Обмен Сообщениями типа Вызов содержит собственный набор элементов ParticipantAssociations.
  3. Хореография типа Вызов (Call Choreography) ссылается на Хореографию или Глобальную Задачу Хореографии (GlobalChoreographyTask). Участники Хореографии или Глобальной Задачи Хореографии (внутренней диаграммы) должны соответствовать Участникам, на которых ссылается Хореография типа Вызов (внешний элемент). Любая Хореография типа Вызов содержит собственный набор элементов ParticipantAssociations.
  4. Действие Вызов (Call Activity), содержащееся внутри Процесса с определяющим Взаимодействием, ссылается на другой Процесс с определяющим Взаимодействием. Участники определяющего Взаимодействия вызываемого Процесса (внутренней диаграммы) должны соответствовать Участникам определяющего Взаимодействия вызывающего Процесса (внешней диаграммы).


Элемент ParticipantAssociation может быть присвоен внешней диаграмме или одному из её элементов. На фигуре 9.10 изображена диаграмма классов элемента ParticipantAssociation.



Фигура 9.10 - Диаграмма классов элемента ParticipantAssociation

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

Таблица 9.7 – Ассоциации элемента ParticipantAssociation

Название атрибута Описание/использование
innerParticipantRef: Participant Посредством данного атрибута определяется Участник элемента, на который ссылаются (например, Хореография, которая будет использована во Взаимодействии) и который соответствует родительскому элементу (например, Взаимодействию).
outerParticipantRef: Participant Посредством данного атрибута определяется Участник родительского элемента (например, Взаимодействие ссылается на Хореографию), соответствующий элементу, на который ссылаются (например, Хореография).



9.2.2 Дорожки (Lanes)

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

9.3 Поток Сообщений (Message Flow)


Поток Сообщений (Message Flow) используется для отображения обмена сообщениями между двумя Участниками (Participants), готовыми эти Сообщения отсылать и получать.

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



Фигура 9.11 – Поток Сообщений

На Диаграмме Взаимодействия (вид Процесса Хореографии в сочетании с Процессами Оркестровки) Поток Сообщений может быть расширен с целью показать Сообщение, поступающее от одного Участника к другому (см. фигуру 9.12).



Фигура 9.12 – Поток Сообщений с Присоединенным Сообщением

В случае, если в состав Взаимодействия входит Хореография (Choreoraphy), то Поток Сообщений, поскольку он соединяет двух Участников, проходит через Задачу Хореографии (Choreography Task), см. фигуру 9.13.



Фигура 9.13 – Поток Сообщений, проходящий через Задачу Хореографии


На фигуре 9.14 представлена диаграмма классов Потока Сообщений, а также его отношения с другими элементами BPMN. Если Поток Сообщений определен, это значение хранится либо во Взаимодействии, либо в Хореографии или Глобальной Задаче Хореографии (GlobalChoreographyTask).



Фигура 9.14 – Диаграмма классов элемента Message Flow

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

Таблица 9.8 – Атрибуты и ассоциации элемента Message Flow

Название атрибута Описание/использование
name: string Текстовое описание Потока Сообщений.
sourceRef: InteractionNode Определяет Узел Взаимодействия (InteractionNode), от которого отходит Поток Операций. Из элементов, относящихся к Узлам Взаимодействия, только Пулы/Участники, Действия (Activities) и События (Events) могут являться источниками Потока Сообщений.
targetRef: InteractionNode Определяет Узел Взаимодействия (InteractionNode), к которому направлен Поток Операций. Из элементов, относящихся к Узлам Взаимодействия, только Пулы/Участники, Действия (Activities) и События (Events) могут являться целями Потока Сообщений.
messageRef: Message [0..1] Посредством ассоциации messageRef указывается Сообщение, проходящее через Поток Сообщений (для получения более подробной информации см. подраздел 8.3.11).

9.3.1 Узел Взаимодействия (Interaction Node)

В отличие от индивидуальных ассоциаций элементов, соединяющихся с Потоками Сообщений (см. раздел выше), элемент InteractionNode используется для указания другого элемента в качестве источника или цели ассоциаций Потока Сообщений (см. фигуру 9.14). Соединяться с Потоками Сообщений могут лишь Пулы/Участники, Действия (Activities) и События (Events). Элемент InteractionNode также используется для указания других элементов в качестве источников или целей Ссылок на Обмен Сообщениями (Conversation Links), см. подраздел 9.4.6.

Элемент InteractionNode не может иметь никаких атрибутов и ассоциаций, а также не наследует от других элементов BPMN. Поскольку Пулы/Участники, Действия и События обладают собственными атрибутами и ассоциациями, а также наследуют от других элементов, элементу InteractionNode не требуется никаких дополнительных атрибутов и ассоциаций.

9.3.2 Ассоциации Потока Сообщений

Описанные здесь элементы используются для установки соответствия между двумя элементами, содержащими Потоки Сообщений. Элемент MessageFlowAssociation применяется для установки соответствия между Потоками Сообщений.

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

  1. Взаимодействие ссылается на Хореографию (Choreography) для добавления её между Пулов (Участников) Взаимодействия. Потоки Сообщений Хореографии (внутренней диаграммы) должны соответствовать Потокам Сообщений Взаимодействия (внешней диаграммы).
  2. Взаимодействие ссылается на Обмен Сообщениями, содержащий Потоки Сообщений. Потоки Сообщений данного Обмена Сообщениями могут выступать в роли частичных запросов для Взаимодействия. Поэтому Потоки Сообщений Обмена Сообщениями (внутренняя диаграмма) должны соответствовать Потокам Сообщений Взаимодействия (внешняя диаграмма).
  3. Хореография ссылается на Обмен Сообщениями, содержащий Потоки Сообщений. Потоки Сообщений данного Обмена Сообщениями могут выступать в роли частичных запросов для Хореографии. Поэтому Потоки Сообщений Обмена Сообщениями (внутренняя диаграмма) должны соответствовать Потокам Сообщений Хореографии (внешняя диаграмма).


На фигуре 9.15 представлена диаграмма классов элемента MessageFlowAssociation.



Фигура 9.15 – Диаграмма классов элемента MessageFlowAssociation

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

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

Название атрибута Описание/использование
innerMessageFlowRef: Message Flow Посредством данного атрибута определяется Поток Сообщений элемента, на который ссылаются (например, Хореография, которая будет использована во Взаимодействии) и который соответствует родительскому элементу (например, Взаимодействию).
outerMessageFlowRef: Message Flow Посредством данного атрибута определяется Поток Сообщений родительского элемента (например, Взаимодействие ссылается на Хореографию), соответствующий элементу, на который ссылаются (например, Хореография).