Структура BPMN


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

С технической точки зрения, построение структуры BPMN основывается на принципе расширяемости вышестоящих слоев основного ряда простых элементов, определенных в данной спецификации как Элементы Ядра (Core Elements). Отталкиваясь от набора основных конструкций, разделение на слои используется для описания дополнительных элементов спецификации, которые используются для расширения существующих и добавления новых конструкций. Разделение на слои по понятной причине зависит от путей разрешения ситуации. Модель типа XML Schema легко приспосабливается к структурной модели с импортом и механизмом принятия решений, который устраняет неточности в выборе определений для элементов внешних слоев.



Фигура 8.1 – Вид Ядра и структуры слоев BPMN

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

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

Структура BPMN разделена на слои, при этом каждый слой выстраивается на вершине иерархии и определяет расширение расположенных ниже слоев. У структуры имеется Ядро (Core или kernel), содержащее наиболее важные элементы BPMN, НЕОБХОДИМЫЕ для построения диаграмм, а именно: Процесс (Process), Хореография (Choreography) и Взаимодействие (Collaboration). Ядро должно быть простым, сжатым и расширяемым, а также реализовывать определенное поведение.

Ядро вмещает три пакета (см. фигуру 8.2):

  1. Foundation. Содержит основные конструкции, необходимые для моделирования диаграмм BPMN.
  2. Service. Содержит основные конструкции, необходимые для моделирования сервисов и интерфейсов.
  3. Common. Содержит классы, являющиеся общими для слоев Процесса (Process), Хореографии (Choreography) и Взаимодействия (Collaboration).




Фигура 8.2 – Диаграмма классов, отображающая пакеты Ядра (core packages)

На фигуре 8.3 отображена организация основных элементов моделирования BPMN.



Фигура 8.3 – Диаграмма классов, отображающая организацию основных элементов BPMN


8.1 Пакет Infrastructure

В BPMN пакет Infrastructure состоит из двух элементов, используемых как для моделей с абстрактным синтаксисом, так и для диаграмм.

8.1.1 Класс Definitions

Класс Definitions – это крайний объект всех элементов BPMN. Посредством элементов данного класса определяются границы видимости и пространство имен элементов, содержащих элементы класса. Обмен файлами BPMN всегда осуществляется благодаря использованию одного или более элементов Definitions.



Фигура 8.4. – Диаграмма класса Definitions

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

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

Название атрибута Описание/использование
name: string Название элемента Definition.
targetNamespace: string При помощи данного атрибута определяется пространство имен, ассоциированное с Definition. Использование данного атрибута также позволяет удовлетворять требованиями языка XML Schema.
expressionLanguage: string [0..1] При помощи данного атрибута определяется язык формального Выражения (formal Expression), используемого в этом выражении (само оно находится в элементах Definition). Значением по умолчанию является «http://www.w3.org/1999/XPath», однако, оно МОЖЕТ БЫТЬ изменено для каждого отдельно взятого формального Выражения. Язык ДОЛЖЕН БЫТЬ указан в формате URL.
typeLanguage: string [0..1] При помощи данного атрибута определяется тип системы, используемый элементами Definitions. Значением по умолчанию является «http://www.w3.org/2001/XMLSchema», однако, оно может быть изменено для каждого отдельно взятого ItemDefinition. Язык ДОЛЖЕН БЫТЬ указан в формате URL.
rootElements: RootElement [0..*] При помощи данного атрибута определяется список корневых элементов Definitions. На данные элементы может быть указана ссылка. Они видны другим Definitions.
diagrams: BPMNDiagram [0..*] При помощи данного атрибута определяется список Диаграмм BPMN, содержащихся в Definitions (для получения более подробной информации о Диаграммах BPMN см. Главу 12).
imports: Import [0..*] При помощи данного атрибута осуществляется импорт определенных извне элементов и открывается доступ для использования их элементами Definitions.
extensions: Extension [0..*] При помощи данного атрибута указываются расширения (extensions) помимо атрибутов и ассоциаций, указанных в спецификации BPMN (для получения более подробной информации о возможности расширения см. подраздел 8.2.3).
relationships: Relationship [0..*] Данный атрибут позволяет выполнять расширение моделей BPMN и интегрировать их в более масштабные системные Процессы или Процессы разработки.
exporter: string [0..1] При помощи данного атрибута указывается инструмент для экспорта файла с моделью BPMN.
exporterVersion: string [0..1] При помощи данного атрибута указывается версия инструмента для экспорта файла с моделью BPMN.

8.1.2 Класс Import

Класс Import используется при наличии ссылки на внешний элемент (это может быть как элемент BPMN, так и не относящийся к данной спецификации элемент). Элементы Imports ДОЛЖНЫ БЫТЬ видны.

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

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

Название атрибута Описание/использование
importType: string Посредством данного атрибута указывается тип документа, импортируемого путем добавления абсолютного URL, который определяет используемую в документе кодировку. При импорте документов типа XML Schema 1.0 значением по умолчанию является «http://www.w3.org/2001/XMLSchema», при импорте документов WSDL 2.0 таким значением является «http://www.w3.org/TR/wsdl20/», а при импорте документов типа BPMN 2.0 значением по умолчанию является «http://www.omg.org/spec/BPMN/20100524/MODEL».
Также МОГУТ поддерживаться и другие типы документов. Документы типов Xml Schema 1.0, WSDL 2.0 и BPMN 2.0 ДОЛЖНЫ поддерживаться в обязательном порядке.
location: string [0..1] Посредством данного атрибута указывается расположение импортированного элемента.
namespace: string Посредством данного атрибута указывается пространство имен импортированного элемента.

8.1.3 XML схемы пакета Infrastructure

Таблица 8.3 – XML схема элементов Definitions












www.w3.org/1999/XPath"/>
2001/XMLSchema"/>





Таблица 8.4 - XML схема элемента Import

name="import" type="tImport"/>
<xsd:complexType name="tImport">
name="namespace" type="xsd:anyURI" use="required"/>
name="location" type="xsd:string" use="required"/>
name="importType" type="xsd:anyURI" use="required"/>

8.2 Пакет Foundation

Пакет Foundation содержит два класса, распределенных между другими пакетами Ядра (см. фигуру 8.5) модели с абстрактным синтаксисом.



Фигура 8.5 – Классы пакета Foundation

8.2.1 Base Element

Элемент BaseElement представляет собой абстрактный суперкласс для большинства элементов BPMN. С его помощью становится возможным наследование другими элементами его атрибутов id и документации.

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

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

Название атрибута Описание/использование
id: string Данный атрибут используется для указания уникальных значений элементов BPMN. Атрибут id НЕОБХОДИМ в случае, если на данный элемент есть (или предполагается) ссылка. Если же ничто не ссылается на данный элемент (и это даже не предполагается), то атрибут id МОЖНО опустить.
documentation: Documentation [0..*] Данный атрибут используется для размещения аннотации к элементу BPMN (к примеру, описание или какая-то другая документация).
extensionDefinitions: ExtensionDefinition [0..*] Данный атрибут используется для привязки дополнительных атрибутов и ассоциаций к какому-либо элементу BaseElement. Такая связь не может быть применена в случае, если произведена замена XML-схемы, т.к. механизмы XSD, осуществляющие поддержку любых атрибутов и элементов, уже удовлетворили этому требованию. Для получения более подробной информации о возможности расширения см. подраздел 8.2.3.
extensionValues: Exten-sionAttributeValue [0..*] Данный атрибут используется для установки значений расширяемых атрибутов и ассоциаций. Он не может быть применен в случае, если произведена замена XML-схемы, т.к. механизмы XSD, осуществляющие поддержку любых атрибутов и элементов, уже удовлетворили этому требованию. Для получения более подробной информации о возможности расширения см. подраздел 8.2.3.

8.2.2 Documentation

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

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

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

Название атрибута Описание/использование
text: string Данный атрибут используется для ввода текстового описания элемента BPMN.
textFormat: string Посредством данного атрибут указывается формат текста. Это ДОЛЖЕН БЫТЬ документ MIME-типа. Значением по умолчанию является «text/plain».


На схеме BPMN complexType tDocumentation не содержит текстовых атрибутов или элементов. Вместо этого, текст документа появляется в теле данного элемента. Рассмотрите пример:

An example of how the documentation text is entered.

8.2.3 Extensibility

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

Существует ряд элементов, используемых для расширения. Применение таких элементов позволяет пользователям добавлять атрибуты и элементы помимо стандартных для BPMN.

Благодаря способности к расширению, в результате чего стандартные элементы остались неизмененными и легкоузнаваемыми для пользователей BPMN, модели стали взаимозаменяемы. В процессе замены МОГУТ БЫТЬ утеряны лишь дополнительные атрибуты и элементы.



Фигура 8.6 – Диаграмма класса Extension

Класс Extension, используемый в BPMN, состоит в основном из четырех различных элементов:

  1. Extension
  2. ExtensionDefinition
  3. ExtensionAttributeDefinition
  4. ExtensionAttributeValue


ExtensionDefinition и ExtensionAttributeDefinition являются основными элементами класса Extension. Позднее был составлен список атрибутов для добавления к стандартным элементам BPMN. В списке атрибутов содержится информация о названии и типе каждого добавляемого атрибут. Используя эти данные, пользователь BPMN может осуществлять интеграцию любой метамодели в метамодель BPMN, а также повторно использовать уже существующие элементы модели.

Элемент ExtensionDefinition может быть создан отдельно от какого-либо элемента или определения BPMN.

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

Любой элемент BPMN, входящий в подкласс BaseElement этого BPMN, может быть расширен путем присоединения к нему дополнительных атрибутов. При этом необходимо, чтобы расширяемый элемент BPMN был ассоциирован с элементом ExtensionDefinition, указанным на уровне определений (элементов Definitions) модели BPMN.

Также следует помнить, что любой «расширенный» элемент BPMN содержит текущее значение атрибута расширения. Это значение, определенное элементом ExtensionAttributeValue, в свою очередь, хранит в себе значение типа Element. Оно также ассоциировано с соответствующим определением атрибута.

Элемент Extension
Элемент Extension связывает элемент ExtensionDefinition и его атрибуты с определением модели BPMN (импортирует элемент ExtensionDefinition и его атрибуты в необходимое определение).

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

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

Название атрибута Описание/использование
mustUnderstand: boolean [0..1] = False Используется для указания того, ДОЛЖНА ли БЫТЬ семантика, указанная посредством элемента расширения и его атрибутов, понятна пользователям для корректного управления моделью BPMN. Значением по умолчанию является «False».
definition: ExtensionDefinition Определяет содержимое расширения.
Обратите внимание, что на XML- схеме это определение поставляется внешним файлом XML schema и на него ссылается QName.


ExtensionDefinition

Класс ExtensionDefinition служит для определения и группировки дополнительных атрибутов. Данный тип не может быть использован в случае, если произведена замена XML-схемы, т.к. Сложные Типы (Complex Types) XSD уже удовлетворили этому требованию.

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

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

Название атрибута Описание/использование
name: string Название расширения. Используется в качестве пространства имен для присвоения уникальной характеристики содержимому расширения.
extensionAttributeDefinitions: ExtensionAttributeDefinition [0..*] Особые атрибуты, составляющие расширение.


ExtensionAttributeDefinition

Посредством элемента ExtensionAttributeDefinition указываются новые атрибуты. Данный тип не может быть использован в случае, если произведена замена XML-схемы, т.к. механизмы XSD, поддерживающие «AnyAttribute» или «Any», уже удовлетворили этому требованию.

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

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

Название атрибута Описание/использование
name: string Название атрибута расширения.
type: string Тип, ассоциированный с данным атрибутом.
isReference: boolean [0..1] = False Указывает на то, будет ли значение атрибута содержаться в нем, либо на него будет дана ссылка.


ExtensionAttributeValue

Элемент ExtensionAttributeValue содержит значение атрибута. Данный тип не может быть использован в случае, если произведена замена XML-схемы, т.к. механизмы XSD, поддерживающие «AnyAttribute» или «Any», уже удовлетворили этому требованию.

Таблица 8.10 содержит информацию об ассоциациях элемента ExtensionAttributeValue.

Таблица 8.10 – Ассоциации элемента ExtensionAttributeValue


Название атрибута Описание/использование
value: [Element [0..1] Значение содержащегося атрибута, используемое в случае, если ассоциированное значение ExtensionAttributeDefinition.isReference равно «false». Тип данного Элемента ДОЛЖЕН соответствовать типу, указанному в ассоциированном с ним элементе ExtensionAttributeDefinition.
valueRef: [Element [0..1] Значение содержащегося атрибута, используемое в случае, если ассоциированное значение ExtensionAttributeDefinition.isReference равно «true». Тип данного Элемента ДОЛЖЕН соответствовать типу, указанному в ассоциированном с ним элементе ExtensionAttributeDefinition.
extensionAttributeDefinition: ExtensionAttributeDefinition Указывает атрибут расширения, для которого определяется данное значение.


Расширение XML-схем

Таблица 8.11 – Расширение XML-схемы

name="extension" type="tExtension"/>
name="tExtension">

ref="documentation" minOccurs="0" maxOccurs="unbounded"/>

name="definition" type="xsd:QName"/>
name="mustUnderstand" type="xsd:boolean" use="optional"/>


Пример XML

Приведенный ниже пример содержит описание Задачи, определенной в Ядре BPMN, которая была расширена с помощью Входных и Выходных данных, определенных уже за пределами Ядра.

Таблица 8.12 – Пример XML-схемы












Таблица 8.13 – Пример расширения XML-схемы














Таблица 8.14 – Экземпляр XML-примера (XML instance)
















8.2.4 Ссылки на внешние объекты

Одной из целей данного документа является обзор основных элементов, необходимых для построения синтаксически верных моделей Процессов с богатой семантикой. Такие модели могут использоваться для описания Процессов (Processes), Хореографий (Choreographies) и исполнительских действий различных уровней абстракции. Как подчеркивалось в данной спецификации, возможность расширения позволяет обогащать содержащиеся в BPMN данные, а также дополнять модели для выполнения их деталей.

Модели Процессов не являются изолированными и, как правило, задействованы в более сложных Бизнес-процессах и Процессах развития систем. Нижеследующее описание элементов позволяет интегрировать Артефакты (Artifacts) BPMN в такие Процессы развития путем детализации ненавязчивой модели тождественности/взаимоотношений между Артефактами (Artifacts) BPMN и элементами другой адресуемой модели предметной области.

Модель «Идентификатор/Ссылка» упрощена для возможности создания типизированных отношений, относящихся к различным категориям. Благодаря этому устанавливаются свободные взаимоотношения между Артефактами (как относящимися к BPMN, так и не относящимися к нему). Для расширения моделей BPMN и их интеграции в более масштабные системные Процессы и Процессы развития необходимо лишь определить «тип взаимоотношения» («relationship type»), который можно ассоциировать с элементами Артефактов (как BPMN, так и Артефактов, применяемых в других типах моделирования).

Такие расширения способны, например, связывать различными способами взаимоотношения «происхождения» («derivation») и «определения» («definition») между артефактами UML и Артефактами BPMN. Согласно спецификации BPMN, элемент диаграммы UML может быть соотнесен с элементом Процесса без воздействия на сами Артефакты, что, однако, позволяет выполнять интеграцию моделей, относящихся к данным взаимоотношениям.

При моделировании применяется внешняя спецификация взаимоотношений расширения между Артефактами BPMN и другими моделями классификации взаимоотношений (внешними моделями). Такие внешние модели используются для установления связи между элементами BPMN и другими структурными и неструктурными определениями метаданных посредством пересечения отношений, указанных во внешнем определении.

Модель UML для данной спецификации аналогична простой гибкой модели (см. ниже), в которой указанные взаимоотношения могут быть установлены путем определения ссылки на соответствующие объекты, находящиеся в указанном пространстве имен.
The UML model for this specification follow a simple extensible pattern as shown below; where named relationships can be established by referencing objects that exist in their given namespaces.



Фигура 8.7 – Метамодель Внешних Взаимоотношений (External Relationship)

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

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

Название атрибута Описание/использование
type: string Описательное имя элемента.
direction: RelationshipDirection {None | Forward | Backward | Both} Данный атрибут определяет направление взаимоотношений.
sources: [Element [1..*] Данная ассоциация определяет артефакты, расширенные посредством взаимоотношений.
targets: [Element[1..*] Данная ассоциация используется для расширения семантики исходного элемента(ов).
This association defines artifacts used to extend the semantics of the source element(s).


Таким образом, вы можете, к примеру, создавать взаимоотношения между различными артефактами, что позволяет добавлять внешние комментарии, используемые для отслеживания, деривации, внешних классификаций и т.д. Примером таких взаимоотношений «реконструкции» могут служить отношения между артефактом Visio ™ и Артефактом BPMN.

Таблица 8.16 - XML-схема реконструкции


targetNamespace=""
typeLanguage="" id="a123" expressionLanguage=""
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL Core-Common.xsd"
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:src="http://www.example.org/Processes/Old"
xmlns:tgt="http://www.example.org/Processes/New">
namespace="http://www.example.org/Processes/Old"/>
location="OrderConfirmationProcess.xml"
namespace="http://www.example.org/Processes/New"/>

An as-is and to-be relationship. The as-is model is expressed as a Visio diagram.
The re-engineered process has been split in two and is captured in BPMN 2.0 format.</
documentation>
ref="src:OrderConfirmation"/>
ref="tgt:OrderConfirmation_PartI"/>
<target ref="tgt:OrderConfirmation_PartII"/>

8.2.5 Корневой элемент

RootElement является абстрактным суперклассом для всех элементов BPMN, содержащихся в элементах Definitions. Каждому из таких элементов соответствует определенный жизненный цикл. Эти элементы не могут быть удалены, даже если другие элементы подвергаются удалению. Примерами корневых элементов (RootElements) являются Взаимодействие (Collaboration), Процесс (Process) и Хореография (Choreography). В зависимости от вариантов использования, на корневые элементы (RootElements) могут ссылаться множество других элементов (к примеру, они могут использоваться несколько раз). Некоторые элементы RootElements МОГУТ содержаться в других элементах, а не только в элементах Definitions; это было сделано во избежание сохранения побочных явлений независимых жизненных циклов. Элемент EventDefinition, к примеру, хранится в Процессе (Process), поскольку используется только в нем. В этом случае элемент EventDefinition будет зависеть от жизненного цикла Процесса (Process).

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

8.2.6 Представление XML-схем для пакета Foundation (Foundation Package)


Таблица 8.17 – XML-схема для элемента BaseElement

































name="id" type="xsd:ID" use="optional"/>
<xsd:attribute name="textFormat" type="xsd:string" default="textplain"/>


Таблица 8.18 – XML-схема для элемента RootElement








Таблица 8.19 – XML-схема для элемента Relationship






















Данные материалы предназначены исключительно для ознакомления в личных целях.Любое воспроизведение, копирование, а так же коммерческое и некоммерческое использование материалов должно согласовываться с авторами материалов (inbox@elma365.com). Допускается использование материалов сайта без уведомления авторов, но с явным указанием источника.