Изображения дополнительных элементов

From RunaWFE
Jump to navigation Jump to search

Изображения дополнительных элементов

Замечание о различных вариантах определения Действия

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

  • Атомарное действие – Подпроцесс (Subproc.jpg) – Композиция (+)
  • Действие с синхронизацией - Действие без синхронизации (&)
  • Последовательное действие - Параллельное действие (*)

Также в настоящем описании существует такое понятие как Мульти-действие.:

  • Единичный экземпляр действия - Мульти-действие

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


Мульти-действие обозначается специальной иконкой (см. ниже). Предполагается, что для всех случаев, в которых «Мульти-действие» специально не оговорено или не изображено в виде иконки «мультидействия», действие является «единичным экземпляром действия»


То есть всего возможно 24 варианта Действия. В последующих пунктах будут приведены некоторые типичные варианты Действий.


Настоящее описание предполагает, что имя действия или процесса (подпроцесса) должно начинаться с глагола в неопределенной форме (неявное повелительное наклонение).


Параллельное действие

UML термин. – Expansion region with only one action


Вид Действия. Если одна точка управления «догоняет» другую в параллельном действии, то в рамках данного действия организуется несколько независимых экземпляров действия с соответствующими локальными переменными (см. определение перспективы данных). Изменение глобальных переменных экземплярами действия происходят в соответствии со специальными правилами. В данном случае точки управления независимы. После выполнения обоих экземпляров действия количество точек управления не изменяется, они опять «идут» одна за другой.

Activity P.jpg

Рис. Обозначение параллельного атомарного действия с синхронизацией.


Подпроцесс с синхронизацией


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

Activity Sub Sync.jpg

Рис. Обозначение действия – последовательного подпроцесса с синхронизацией.


Подпроцесс без синхронизации


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

Activity Sub Async.jpg

Рис. Обозначение действия – последовательного подпроцесса без синхронизации.

Activity Sub AsyncP.jpg


Рис. Обозначение действия – параллельного подпроцесса без синхронизации.


Мульти-действие


Понятие Мульти-действие расширяет понятие Действие глоссария. Мульти-действие – специальный вид Действия. В момент прихода управления в Мульти-действие создается известное к этому моменту времени количество экземпляров этого действия, для каждого узла организуется своя точка управления и далее для каждой точки управления параллельно и независимо выполняются действия разных экземпляров этого узла. После того, как действия всех точек управления выполнены, управление переходит к следующему узлу по исходящему переходу.

MultiInstance2.jpg


Рис. Обозначение конструкции «Мульти-действие».


Замечание. Количество экземпляров мульти-узла определяется значением специальной «присоединенной» переменной в момент прихода управления в это действие. В настоящее время еще не решен вопрос о поведении действия в случае изменения значения этой переменной в процессе исполнения экземпляров мульти-узла.


Простое соединение

UML термин - MergeNode

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

Decision.jpg


Дискриминатор

Вид маршрутного узла. Соответствует WF-паттерну «дискриминатор». Обозначается черным прямоугольником, над верхней частью прямоугольника в квадратных скобках располагается надпись «Discriminator». Черный прямоугольник должен иметь несколько входящих и один исходящий переход.

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


Альтернативное описание поведения дискриминатора:

1. Для элемента «Дискриминатор» в графе бизнес-процесса всегда должен существовать единственный парный элемент «Разделение».

2. Для пришедшей в узел точки управления поведение узла следующее: Если в дискриминатор пришла первая точка управления, сгенерированная соответствующим парным элементом «Разделениее», то для исходящего перехода генерируется одна точка управления. Если пришла не первая точка управления, то ничего не происходит. В момент прихода последней точки управления из сгенерированных соответствующим «Разделением», все эти точки управления уничтожается.


Discrim2.jpg

Рис. Обозначение конструкции «Дискриминатор».


Область с прерыванием

UML термин - InterruptibleActivityRegion

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

InterraptRegion.jpg

Рис. Обозначение конструкции «Область с прерыванием».


Сигнал

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

Signal0.jpg

Рис. Обозначение конструкции «Сигнал».


Приемник сигнала

Особый вид маршрутного узла. Содержит один исходящий переход, и один или ни одного входящего перехода. Приемнику сигнала в данном или каком-то другом бизнес-процессе должен соответствовать элемент "Сигнал". Если узел содержит входящий переход, то пришедшая в узел точка управления «идет» дальше, только если в приемник сигнала пришел сигнал (специальное сообщение), в противном случае управление «останавливается» в этом узле и «ждет» сигнала. Если узел не содержит входящий переход, то пришедший сигнал порождает новую точку управления.

Signal2.jpg

Рис. Обозначение конструкции «Приемник сигнала».