Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕОРИЯ ИНЖИНИРИНГА-Калянов.doc
Скачиваний:
14
Добавлен:
19.08.2019
Размер:
643.07 Кб
Скачать

3.1.5. Организация параллелизма при планировании бизнес-процесса

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

113

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

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

Таблиня ч <

А'

В

С

D

Е

F

G

+

А' В С

*

*

*

+

D Е F

+

+

'-■'+' +

■ ■*;

*г-

-*$г-

-Названия строк и столбцов соответствуют компонентам рас­сматриваемого бизнес-процесса. Символ ' означав?^начало вы­полнения параллельного процесса, символы * показывают, что соответствующие компоненты могут (но не обязательно должны) выполняться параллельно.

Отметим, что в данной матрице могут быть указаны и воз­можные последовательности выполнения компонентов бизнес-процесса. Так, символы + в табл. 3.5 означают, что после выпол­нения компоненты D может быть выполнена как компонента Е, так и компонента F.

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

Параллельная порождающая грамматика строится из матри­цы в. соответствии со следующими этапами.

Этап I. В качестве начального символа выбирается символ, определяемый пустым столбцом матрицы. Если таких столбцов несколько, то создается фиктивная начальная вершина.

Этап 2. В качестве терминальных символов выбираются символы, определяемые пустыми строками матрицы.

Этап 3. В качестве нетерминальных символов выбираются все остальные символы. : s

Этап 4. Множество порождающих правил определяется символами в клетках матрицы следующим образом:

  • если на пересечении строки X и столбца Y стоит символ *, это означает создание правила типа X' => X'Y;

  • если на пересечении строки X и столбца Y стоит символ +, это . означает создание правила типа X => XY.

Таким образом, каждая параллельная цепочка описывается как независимая единица бизнес-процесса, имеющая специаль­ную конструкцию для указания возможности ее одновременного выполнения с некоторыми другими частями бизнес-процесса.

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

Для инициации параллельной цепочки может быть использо­вана операция PARCALL (<список параметров>), а для ее завер­шения - операции END, RETURN и STOR При этом первые две операции завершают выполнение отдельных цепочек, а послед­няя служит для завершения всего процесса.

Для порождения и объединения нескольких цепочек в одной точке могут использоваться парные операции FORK-JOIN, PAR-BEGIN-PAREND, COBEGIN-COREND, DO TOGETHER-HOLD и другие, при этом первая операция открывает параллель­ный сегмент, а вторая закрывает его. Семантически эти операции различаются способом завершения цепочек.

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

не

позволяющих непосредственно описывать порядок выполнения цепочек. ■ , .

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

Простейшим и универсальным механизмом синхронизации янаяются семафоры Дейкстры (Dijkstra). Реализация этого меха­низма связана с введением целочисленных переменных специ­ального типа (семафоров) и двух неделимых операций Р и V, ко-торые выполняются над семафорами и обеспечивают единствен­ный способ обращения к ним. Для организации взаимодействия нескольких параллельных цепочек наряду с семафорами могут использоваться переменные типа «событие», с помощью которых можно задавать произвольные правила взаимодействия цепочек. Для работы с ними вводятся операции SIGNAL X (объявить собыгае) и WAIT X (ждать событие),: где X — переменная типа «собнше». Фактически эти операции'являются аналогами опера­ций Щ) и Р(Х) соответственно.

Мщепризнанным недостатком семафоров является то, что бесвднрольное их использование запутывает структуру управле­ния щнллельным процессом и велика вероятность ошибок при описагаи сложных взаимодействий. Введение механизма услов­ных чштических интервалов Хоара (Ноаге) позволяет повысить уровяь средств взаимодействия цепочек и устранить ряд недос­татков^ присущих семафорам. Для этой цели вводится специаль-яаяощрация (условный критический интервал), и все обращения к общ» ресурсам осуществляются только с помощью этой олера-шш.Чрвстой пример такой операции: REGION V WHEN В ЕЮ S. Выпвиение операции S возможно только при выполнении нредзшвия В, в качестве которого можно задавать произвольное логачпаюе выражение (V — имя критического интервала).

Садрощим шагом в повышении уровня взаимодействия па-раллешых цепочек является реализация концепции процесса-ескреяр, централизующего управление параллельными цепоч­ками ^анитор Хоара (Ноаге) и Хансена (Hansen), сентинелл Кешщя (Kepler), управляющие выражения Кемпбелла

(Kampbell) и Хабермана (Haberman)). Идея монитора заключает^; ся в создании механизма, унифицирующего взаимодействие па­раллельных цепочек по синхронизации, разделяемым ресурсам и компонентам процесса, использующим эти ресурсы. Сентинелл является развитием монитора и позволяет описывать дисципли­ну синхронизации в своем теле.

Рассмотренные механизмы взаимодействия цепочек получи­ли название процедурных. Для них существенно, что цепочки взаимодействуют через общие переменные, а взаимоисключаю­щий доступ к ним обеспечивается с помощью семафоров или ме­ханизмов, их развивающих.

Известны еще два вида механизмов взаимодействия: ориен­тированный на передачу сообщений и осуществляемый посред­ством удаленного вызова процедур. Разница между ними опреде­ляется явным или неявным (через удаленный вызов процедуры или рандеву) использованием примитивов посылки и получения сообщения. Такие механизмы ориентированы на их использова­ние Ч распределенных системах, что делает их особо актуальными для бизнес-процессов.-

Задача синхронизации параллельных участков бизнее?про-цесса решается путем расстановки в порожденных цепочках синхронизирующих операций.

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

А' — BC(r)D

I—EF(r)G

Функции С и F могут быть функциями обращения к эксперту для получения консультации, а г характеризует время, затрачива­емое на консультацию.

Осуществим синхронизацию с использованием семафора s:

A'f В p(s) С(г) v(s) D

I Ep(s)F(r)v(s)G

где f: s = 1; p(s): если s = 1, то s = s - 1; v(s): s = s + 1.

Следует отметить, что при использовании средств синхрони­зации возможно появление ошибок следующих основных типов:

  • отсутствие операций синхронизации для некоторых общих ре­сурсов;1

  • взаимная блокировка параллельных цепочек (тупик);

  • повторный запуск на выполнение цепочки до окончания ее предыдущего запуска и др.

Для их обнаружения были разработаны специальные методы, -которые без изменений могут быть применены и для бизнес-про- > цессов.

Далее в книге будут рассматриваться только последователь- ' ные процессы. Схема обработки параллельных объектов по ана- ; логии с решениями, принятыми в программной инженерии, выг- лядит следующим образом:

  1. переход от параллельных процессов к последовательным | путем их декомпозиции, фактически заключающейся в исключе- j нии из рассмотрения табл. 3.5; ; 1

  2. анализ, верификация и оценка последовательных процес- % сов известными методами; '*

  3. синхронизация процессов, ее анализ и верификация тради- ] ционными, апробированными в программной инженерии мето-; , j дами. j;