image
Продукт

10.8 Экземпляры Процесса, Немоделируемые Действия и Публичный Процесс

Процесс может выполняться несколько раз, и каждый раз ождиается, что все шаги данного Процесса будут выполняться в соответствии с последовательностью их расположения. К примеру, Процесс на фигуре 10.1 повторяется каждую пятницу, а в каждом из его экземпляров сначала выполняется Задача «Receive Issue List», затем Задача «Review Issue List» и т.д., т.е. ожидается последовательность выполнения, отображенная на диаграмме. Также ожидается, что каждый экземпляр этого Процесса является верным для данной модели, однако, некоторые экземпляры таковыми не являются (к примеру, если Процесс содержит Действия для ручного выполнения, а у исполнителей этих Действий нет соответствующей инструкции по их выполнению).

В некоторых программах моделирования для выполнения Процесса предусмотрено использование большего числа Действий и Событий, нежели указано в модели данного Процесса. Это позволяет осуществлять переход к нужному шагу без внесения изменений в саму модель. Например, изображенные на фигуре 10.1 экземпляры Процесса могут выполнять дополнительное Действие на отрезке между Задачами «Receive Issue List» и «Review Issue List». Данные экземляры являются верными для этого Процесса, поскольку они все так же выполняют содержащиеся в нем Действия (в указанном порядке и в указанных условиях).

Существует 2 способа определения того, что в Процессе возможно использование немоделируемых Действий:

  • В случае, если значение атрибута isClosed Процесса равно «false», или его значение вообще не установлено, то в экземпляре Процесса МОГУТ присутствовать такие взаимоотношения, как отправка и получения Сообщений и События, при этом модель данного Процесса не содержит соответствующих элементов. Однако в определенном Потоке операций использование немоделируемых взаимоотношений может быть ограничено (см. следующий пункт). В случае, если значение атрибута isClosed Процесса равно «true», то экземпляр Процесса НЕ МОЖЕТ содержать такие взаимоотношения, как отправка и получения Сообщений и События, если в данном Процессе им не соответствуют дополнительные графические элементы. Это ограничение отменяет выполнение любого немоделируемого взаимоотношения, допустимого для какого-либо из описанных ниже Потоков операций.
  • В случае, если значение атрибута isImmediate Потока операций Процесса равно «false», то в ходе данного Процесса МОГУТ БЫТЬ выполнены дополнительные немоделируемые Действия и взаимоотношения. Такие Действия входят в состав Потока операций. В случае, если значение атрибута isImmediate равно «true», то немоделируемые Действия НЕ МОГУТ быть выполнены в ходе следования Потока операций. В невыполняемых Процессах (т.е. тех, чей атрибут isExecutable имеет значение «false» в качестве установленного или значения по умолчанию) Поток операций, значение атрибута «isImmediate» которого не установлено, обрабатывается так, как если бы это значение было равно «false». В выполняемых Процессах (т.е. тех, чей атрибут isExecutable имеет значение «true» в качестве установленного или значения по умолчанию) Поток операций, значение атрибута «isImmediate» которого не установлено, обрабатывается так, как если бы это значение было равно «true». Значение атрибута isImmediate выполняемого Процесса не может быть «false».

Ограничение использования немоделируемых Действий, определенное посредством значений атрибутов isClosed и isImmediate, может быть применено только при выполнении Процессов и его экземпляров, содержащих такое ограничение. Немоделируемые Действия МОГУТ встречаться в экземплярах других Процессов.

В случае, если Процессом предусмотрено возможное использование немоделируемых Действий, то такие Действия могут появляться и в моделях других Процессов и их экземплярах, выполнение которых может быть верным для исходного Процесса. Рассмотрим пример Процесса, схожего с Процессом на фигуре 10.1, содержащим дополнительное Действие на отрезке между Задачами «Receive Issue List» и «Review Issue List». Процесс на фигуре 10.1 может содержать атрибут isClosed или isImmediate, что позволяет Действиям появляться на этом отрезке. По мере выполнения Процесса на фигуре 10.1 для него становятся верными экземпляры другого Процесса, содержащего дополнительные шаги на отрезке между Задачами «Receive Issue List» и «Review Issue List»). Разработчики модели могут указать, что все экземпляры одного Процесса становятся верными для другого Процесса, и эта связь осуществляется осредством поддерживающей ассоциации между Процессами. В ходе разработки моделей данных Процессов такая ассоциация может не учитываться, поскольку она является лишь отображением намерений разработчиков.

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

Процесс, поддерживающий другой Процесс (как в случае с приватным и публичным Процессами), не должен полностью его копировать. НЕОБХОДИМО лишь, чтобы экземпляры этого Процесса появлялись так же, как если бы они были экземплярам другого. В верхней части фигуры 10.127 отображен публичный Процесс с Задачами Отправка и Получение. Поддерживающий его приватный Процесс отображен в нижней части фигуры. Приватный Процесс отправляет и получает те же сообщения, что и публичный, однако, для выполнения этих операций вместо Задач в нем используются События. В нем также содержатся Действия, не входящие в состав публичного Процесса. При этом все экземпляры приватного Процесса будут появляться так, как если бы они были экземплярами публичного, т.к. сообщения отсылаются и принимаются в ТРЕБУЕМОМ публичным Процессом порядке. В публичном Процессе допускается появление немоделируемых Действий.

Фигура 10.127 – Процесс, поддерживающий другой Процесс

Фактически, публичный Процесс выглядит как недостаточно углубленный приватный. То, что не указано в публичном Процессе, есть в приватном. К примеру, если ни один из Потоков операций, направленных от Эксклюзивного Шлюза, не содержит условного выражения, то в приватном Процессе будет указано то, какое из Действий, служащих целями Потоков операций, появится. Другим примером является Событие Таймер, для которого не указано значение элемента EventDefinition. То, когда выключится таймер, указывается в приватном Процессе.

10.9 Аудирование

Элемент Auditing и его ассоциации позволяют указывать значения атрибутов, связанных с проверкой. Посредством его использования достигается способность BPMN к расширению. Данный элемент используется Элементам потока и Процессами. Однако данный документ не содержит описания атрибутов проверки, т.к. в BPMN 2.0 указан собственный набор атрибутов и семантики для них.

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

10.10 Мониторинг

Элемент Monitoring и его ассоциации позволяют указывать значения атрибутов, связанных с проверкой. Посредством его использования достигается способность BPMN к расширению. Данный элемент использьзуется Элементам потока и Процессами. Однако данный документ не содержит описания атрибутов проверки, т.к. в BPMN 2.0 указан собственный набор атрибутов и семантики для них.

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

10.11 Представление XML-схемы для пакета Процесса

Таблица 10.136 – XML–схема для элемента Process

<xsd:element name="process" type="tProcess" substitutionGroup="rootElement"/>
<xsd:complexType name="tProcess">
<xsd:complexContent>
<xsd:extension base="tCallableElement">
<xsd:sequence>
<xsd:element ref="auditing" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="monitoring" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="processRole" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="laneSet" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="resourceRole" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="correlationSubcription" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="supports" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="processType" type="tProcessType" default="None"/>
<xsd:attribute name="isExecutable" type="xsd:boolean" use="optional"/>
<xsd:attribute name="isClosed" type="xsd:boolean" default="false"/>
<xsd:attribute name="definitionalCollaborationRef" type="xsd:QName" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>







Таблица 10.137 – XML–схема для элемента Auditing






Таблица 10.138 – XML–схема для элемента GlobalTask

<xsd:element name="globalTask" type="tGlobalTask" substitutionGroup="rootElement"/>
name="tGlobalTask">
<xsd:complexContent>
<xsd:extension base="tCallableElement">
<xsd:sequence>
<xsd:element ref="resourceRole" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>

Таблица 10.139 – XML–схема для элемента Lane

<xsd:element name="lane" type="tLane"/>
name="tLane">
<xsd:complexContent>
<xsd:extension base="tBaseElement">
<xsd:sequence>
<xsd:element name="partitionElement" type="tBaseElement" minOccurs="0" maxOccurs="1"/>
<xsd:element name="flowNodeRef" type="xsd:IDREF" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="childLaneSet" type="tLaneSet" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="partitionElementRef" type="xsd:QName"/>
</xsd:extension>
</xsd:complexContent>

Таблица 10.140 – XML–схема для элемента LaneSet

<xsd:element name="laneSet" type="tLaneSet"/>
name="tLaneSet">
<xsd:complexContent>
<xsd:extension base="tBaseElement">
<xsd:sequence>
<xsd:element ref="lane" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>

Таблица 10.141 – XML–схема для элемента Monitoring






Таблица 10.142 – XML–схема для элемента Performer

<xsd:element name="performer" type="tPerformer" substitutionGroup="resourceRole"/>
name="tPerformer">
<xsd:complexContent>
<xsd:extension base="tResourceRole"/>
</xsd:complexContent>