Презентация - Проблемы современных

Download Report

Transcript Презентация - Проблемы современных

Автоматическая верификация и
оптимизация потоков работ
Каленкова А.А., научный руководитель: доктор физ.-мат. наук,
проф. Серебряков Владимир Алексеевич (ВЦ РАН)
08.04.2015
Потоки работ. Системы управления потоками
работ.
Поток работ (Workflow) – это полная или частичная автоматизация
некоторого производственного процесса, при которой документы,
информация и задания передаются для выполнения от одного
участника к другому в соответствии с набором процедурных правил*.
Система управления потоками работ (Workflow Management System) это система, которая позволяет описывать, создавать и управлять
выполнением потока работ при помощи программного обеспечения,
которое способно интерпретировать описание процесса,
взаимодействовать с участниками потока работ и, при необходимости,
вызывать соответствующие приложения и инструменты*.
Системы управления потоками работ могут быть предназначены для
описания и исполнения произвольных процессов интеграции
географически распределенных данных и приложений.
* WFMC (Workflow Management Coalition) http://wfmc.org
08.04.2015
Архитектура системы управления потоками
работ
Уровень определения
Данный уровень представлен
набором функций, задача
которых заключается в
декларативном определении
бизнес-процесса.
Уровень создания и выполнения
На этапе выполнения
происходит анализ определения
процесса специальным
программным обеспечением,
которое отвечает за создание и
управление экземплярами
потоков работ.
Уровень взаимодействия с
пользователями и
приложениями
08.04.2015
Задачи верификации и оптимизации потоков
работ
Проверка сбалансированного использования элементов
«И-распараллеливание», «И-синхронизация», «ИЛИвыбор», «ИЛИ-синхронизация» при описании потока
работ - верификация потока работ. Известны различные
эффективные методы верификации потоков работ.
Известны работы, посвященные оптимизации
(распараллеливанию) потоков работ. Например
полуавтоматический метод оптимизации, который
позволяет запускать независящие по данным действия
потока работ параллельно. Также известны методы
распараллеливания потоков работ основанные на
применении шаблонных преобразований, но они также
не учитывают наличие вершин выбора и циклов и во
многих распространенных случаях могут быть
неприменимы. Интерес представляет задача
автоматической оптимизации потоков работ в более
«общем» случае.
Особое внимание должно быть уделено оптимизации
блочных языков описания потоков работ (например
BPEL)
08.04.2015
Промежуточные графовые представления
потоков работ (1)
Существуют различные языки описания потоков работ
(BPMN, XPDL, BPEL), тем не менее, в их основе лежит
один и тот же базис (последовательный и
параллельный запуск заданий, выбор, «И/ИЛИ синхронизация»).
Для того чтобы анализировать поток работ: находить
структурные ошибки потока управления, избыточные
зависимости по управлению и, наконец, применить
алгоритм оптимизирующих преобразований, который
позволит организовать параллельное исполнение
действий потока работ, необходимо графовое
представление потока работ.
08.04.2015
Сети потоков работ (WF-nets)
Определение (сеть Петри)*. Сеть Петри – это
тройка (P, T, F):
P – это конечный набор позиций (мест),
T – это конечный набор переходов,
F - это набор дуг (отношения потока).
В любой момент времени позиция содержит
ноль или более фишек. Количество фишек может
меняться во время выполнения сети.
Определение (сеть потока работ)*. Сеть
Петри PN = (P,T,F) называется сетью
потока работ – WF-net, если выполняются
следующие условия:
существует только одна исходная позиция iP ,
такая что, у нее нет входящих дуг.
существует только одна конечная позиция oP,
такая что, у нее нет исходящих дуг.
каждый узел расположен на пути от i к o.
* Aalst W.M.P., Hirnschall A., Verbeek H.M.W. An Alternative Way to Analyze
Workflow Graphs // Electronic Commerce Research – 2002. – V.2, №.3 – P. 195–
231.
08.04.2015
Графы потоков работ
(Workflow graphs)*
* Aalst W.M.P., Hirnschall A., Verbeek
H.M.W. An Alternative Way to Analyze
Workflow Graphs // Electronic
Commerce Research – 2002. – V.2,
№.3 – P. 195–231.
Поток управления определяет порядок
выполнения работ.
Задание - единичная работа, направленная на
достижение цели, используется для построения
разветвителя и синхронизатора.
Последовательность (последовательное
выполнение) состоит из вершины, которая
имеет входящий и исходящий поток
управления.
Разветвитель позволяет разбить входной
поток управления на независимые
параллельно исполняющиеся потоки
управления.
Синхронизатор применяется для объединения
параллельных потоков управления в один.
Выбор имеет два и более исходящих потока
управления и моделирует взаимно
исключающие альтернативные пути.
Координатор слияния имеет несколько
входящих потоков управления и объединяет
взаимно исключающие альтернативные пути в
один путь.
08.04.2015
Размеченные графы анализа потоков работ
Как и сеть Петри, граф анализа потока работ обладает
не только статической, но и динамической
составляющей – дуги (поток управления) графа могут
содержать некоторое количество фишек или не
содержать их вовсе.
Задание одновременно синхронизирует и разветвляет
поток управления: ожидается появление фишек на
всех входящих дугах, по одной фишке забирается с
каждой дуги, далее выполняется задание и
добавляется фишка на каждую исходящую дугу.
При выборе ожидается появление фишек на всех
входящих дугах, забираются фишки с входящих дуг, и
добавляется по фишке на дуги с пометками true или
на дуги с пометками false (вершина выбора имеет по
крайней мере одну исходящую дугу с пометкой true и
одну с пометкой false).
При слиянии забирается фишка с одной из входящих
дуг (если фишки есть на нескольких дугах, выбор
недетерминирован) и передается фишка на
исходящую дугу.
В Размеченных графах анализа
потоков работ дополнительно
указаны названия заданий, имена
входных и выходных параметров,
пометки для исходящих дуг вершин
выбора, названия дуг, условия в
вершинах выбора.
08.04.2015
Формальный язык описания потоков работ (1)
Формальный язык описания потоков работ дает возможность создавать
универсальные алгоритмы анализа блочных структур потоков работ без
привязки к конкретному блочно-графовому языку (например языку BPEL).
Поток работ, заданный с помощью Формального языка описания потоков
работ, определяется шестеркой WF  (, , A0 , ,, ) :
Множество  - множество всех локальных генерируемых в процессе
выполнения потока работ событий.
Множество действий   comp simp состоит из множества составных и
простых действий, для которых определены формулы.
Начальное действие A0  . Действие, с которого начинается выполнение
потока работ.
Множество переменных  , определенных уровне экземпляра потока работ .
Множество предикатов  . Предикаты являются функциями, принимающими
значение булевского типа, они используются в логических выражениях
условных конструкций потока работ.
Множество формул  , описывающих структуру действий потока работ.
Каждая из формул этого множества определяет структуру простого или
составного действия, идентификатор которого указан в ее левой части.
08.04.2015
Формальный язык описания потоков работ (2)
WF  (, , A0 , , , )
  {a, b}
  {A0 , A, B, C}
  {x, y, z}
 {f }
Действия потока работ могут быть простыми и
составными.
Составное действие строится из действий потока работ с
использованием правил активации вложенных действий:
параллельной ( '& ' ) и последовательной активации ( '. ' ).
Составное действие также может быть специальным
составным действием: условным выбором (' IF ') или
циклом('WHILE ' ).
В формулах потока работ для простых действий
указываются их имена, входные и выходные параметры
(переменные потока работ). К простым действиям также
относятся несколько специальных системных действий:
генерация события ( ' CREATE ' ), ожидание события с
одновременным удалением информации о нем ( 'WAIT ' ) ,
пустое действие ( ' EMPTY ' ), не выполняющее никакой
работы.
Поток работ завершает свое выполнение, когда ни одно
его действие не может быть активировано.
  { A0  A & B & C , A  A '  x  .CREATE (a), B  B '  y  .CREATE (b),
C  IF ( f ( x),WAIT (a).WAIT (b).  x, y  C '  z , EMPTY )}
08.04.2015
Алгоритмы отображения между Формальным
описанием потоков работ и Размеченными
графами анализа потоков работ (1)
Эти алгоритмы необходимы для
анализа и преобразования
потоков работ, определенных с
помощью блочно-графовых
языков представления потоков
работ
Создан алгоритм (Алгоритм 1)
построения Размеченного графа
анализа потока работ по
Формальному описанию потока
работ.
На Формальный язык описания
потоков работ накладываются
дополнительно ограничения
(например действие по ожиданию
события с заданным именем
имеет строго одно вхождение в
формулы потока работ).
«Промежуточная» вершина A
соответствует составному действию
WHILE (a,B)
D1
f1
f0
D0
A
fn
...
Dn
B
Lcond= t rue
D0
f0'
f1' Lcond= false
F
D1
E
Lch= a
Lcond= false
fn'
...
Dn
08.04.2015
Алгоритмы отображения между Формальным
описанием потоков работ и Размеченными
графами анализа потоков работ (2)
Создан алгоритм (Алгоритм 2)
получения Формального
описания потока работ по
Размеченному графу анализа
потока работ.
Он также может быть
использован для
доказательства того, что по
графу не может быть получена
блочная структура потока работ.
A
B
B
C1
Lf= &
Lf= &
A
Lf= &
C1
A
...
Lf= &
...
Ck
Ck
getSimpleFormula( A).getFormula( B)
getSimpleFormula( A).getFormula(C1 ) &...& getFormula(Ck ).getFormula( B)
getSimpleFormula( A).getFormula(C1 ) &...& getFormula(Ck )
Утверждение 1. Пусть по Формальному описанию потока работ с помощью
Алгоритма 1 построен Размеченный граф анализа потока работ. Тогда, если к
этому Размеченному графу анализа потока работ применить Алгоритм 2 , то
результатом его работы стает некоторое Формальное описание потока работ .
08.04.2015
Russell, A.H.M. ter Hofstede,
Сопоставление промежуточных *N.
W.M.P. van der Aalst, and N. Mulyar. Workflow
Control-Flow Patterns: A Revised View
представлений потоков
// BPM Center Report BPM-06-22 ,
BPMcenter.org, 2006.
работ(1)
Промежуточные представления потоков работ
сопоставляются на основе шаблонов потока
управления, сформированных практикой
использования систем управления потоками работ*.
Определение. Сеть Петри (Сеть потока работ)
является Сетью свободного выбора, если для любых
двух переходов, имеющих общую входную
позицию, множества входных позиций совпадают.
Сетью потока работ может быть промоделирован
любой Граф потока работ, при этом она является
Сетью свободного выбора, поэтому Сети потоков
работ обладают большей выразительной
мощностью, чем Графы потоков работ.
08.04.2015
Сопоставление промежуточных представлений
потоков работ(2)
i
На Формальном языке описания потоков работ может быть
задан поток работ, поток управления которого не может
быть формализован с помощью Сети свободного выбора.
Граф потока работ и Размеченный граф анализа потока
работ обладают одинаковыми возможностями описания
потока управления и сводятся к Сетям свободного выбора.
  { A0  A & B & C & D & E, C  C '.CREATE (c), D  D '.CREATE (d ),
E  E '.CREATE (e), A  WAIT (e).WAIT (c). A ', B  WAIT (e).WAIT (d ).B '}
Потоки работ, которые не могут быть промоделированы
Сетью свободного выбора плохо поддаются верификации
(известный алгоритм верификации имеет
экспоненциальную вычислительную сложность).
08.04.2015
C
E
A
D
B
o
Сопоставление промежуточных представлений
потоков работ(3)




Размеченный граф анализа потока работ реализует
некоторые конструкции потока управления более
компактно, чем Граф потока работ, в силу того, что
задания и вершины выбора одновременно
распараллеливают и синхронизируют поток
управления.
Шаблон исключающего выбора – выбор одной из
нескольких ветвей исполнения потока работ,
реализуется в Размеченных графах анализа потоков
работ не с помощью одной вершины выбора, как это
делается в Графах потоков работ, а с помощью
нескольких вершин выбора.
В Размеченных графах анализа потоков работ не
предусмотрена конструкция для явного завершения
потока работ. Внесение завершающей вершины
требует проведение предварительной верификации
потока работ, так как необходимо, чтобы вершина
была корректно соединена со своими
предшественниками.
Формальный язык описания потоков работ не
позволяет создавать произвольные циклы.
08.04.2015
Структурные конфликты в Размеченных
графах анализа без ориентированных циклов
Конфликт типа «тупик» возникает
в том случае, если лишь
некоторые из входящих дуг
синхронизирующей вершины
активированы, и
синхронизирующая вершина
будет бесконечно долго ожидать
активации других входящих дуг.
Конфликт типа «недостаток
синхронизации» произойдет в
ациклическом Размеченном
графе анализа потока работ, если
вершина слияния была
активирована несколько раз
вследствие активации различных
входящих дуг.
A
Lcond= t rue
Lcond= false
B
C
D
A
B
C
D
08.04.2015
Алгоритм булевой верификации (АБВ) для
Размеченных графов анализа потоков работ
без ориентированных циклов (1)
Рассмотрим, некоторый Размеченный граф анализа потока работ . Поставим
каждой вершине выбора в соответствие уникальный идентификатор .
Построим алгоритм определения условий выполнения вершин и активации дуг.
В ходе работы этого алгоритма будет проведен модифицированный поиск в
ширину , для каждой вершины и для каждой дуги будет определено условие
выполнения и условие активации соответственно, являющиеся булевыми
функциями над множеством идентификаторов вершин выбора.
Если не выполнено условие Cf=Cf`=Cf``, возможен случай, когда будет
активирована только часть входящих дуг, и возникнет конфликт типа «тупик».
Cf`
Cf` `
Cf
Cn= Cf & Cf` & Cf` `
A
08.04.2015
Алгоритм булевой верификации (АБВ) для
Размеченных графов анализа потоков работ
без ориентированных циклов (2)
Если условия активации входящих дуг являются попарно
взаимоисключающими: Cf&Cf`=false, Cf`&Cf``= false,
Cf``&Cf=false, то при выполнении потока работ может быть
активировано не более одной входящей дуги вершины
слияния, иначе возникнет конфликт типа «недостаток
синхронизации».
Cf`
Cf` `
Cf
Cn= Cf V Cf` V Cf` `
Было доказано утверждение о том, что подобный алгоритм
позволяет находить структурный конфликт в некоторой
вершине Размеченного графа анализа потока работ без
ориентированных циклов, если все предшествующие ей
вершины не имели конфликта типа «недостаток
синхронизации».
08.04.2015
Алгоритм булевой верификации (АБВ) для
Размеченных графов анализа потоков работ
без ориентированных циклов (3)
В общем случае операции построения и
сравнения булевых функций, которые
выполняются в ходе работы АБВ для
графов без циклов, имеют
экспоненциальную вычислительную
сложность.
Однако условия выполнения вершин и
условия активации дуг могут быть
представлены в виде дизъюнктивных
нормальных форм (ДНФ)
идентификаторов вершин выбора или их
отрицаний. При этом в каждой
конъюнкции первым указан
идентификатор (или его отрицание) той
вершины выбора, которая была
раскрыта последней. Этот
идентификатор или его отрицание
называется ключевым фактором
конъюнкции.
Cn= true
ts
Cn= true
Cn= true
Cn= true
A
CI d= C1
C
B
Cf= C1
Lcond= true
Lcond= true
CI d= C2
Cf= true
Lcond= false
Cn= C1
D
Lcond = false Lcond= true
Cf= C2&C1
F
E
Cf= C1
G
Cn= C2&C1
Cn= C2&C1 V C1
H
Cf= true
I
08.04.2015
Алгоритм булевой верификации (АБВ) для
Размеченных графов анализа потоков работ
без ориентированных циклов (4)
При слиянии потоков управления все дизъюнкты k & K1 ,…, k & Km , k & K1 ,…, k & Km
заменяются на K1 ,…, K m для сокращения представления условия выполнения
вершины. После получения новых дизъюнктов должна быть проведена попытка
повторного сокращения представления условия активации и так до тех пор, пока
сокращение не сможет быть выполнено. Такие представления условий
выполнения вершин и активации дуг называются сокращенными.
Теорема 1. Пусть дан Размеченный граф анализа потока работ без
ориентированных циклов , не содержащий структурных конфликтов. В ходе
работы АБВ были вычислены условия выполнения вершин. Условия выполнения
вершин совпадают тогда и только тогда, когда совпадают множества ключевых
факторов дизъюнктов сокращенных представлений этих условий.
Теорема 2. Пусть дан Размеченный граф анализа потока работ без
ориентированных циклов , не содержащий структурных конфликтов. В ходе
работы АБВ были вычислены условия активации входящих дуг некоторой
вершины . Рассмотрим K1 и K2 - произвольные дизъюнкты представлений
одного и другого условий соответственно. Пусть K1  ap &...& a1 , K2  bq &...& b1
и i  : ai  bi , ai  !bi или i  p  1  q , или i  q  1  p такое,
что j  i, j  1:. a j  bj . Тогда дизъюнкты K1 и K2 не являются
взаимоисключающими.
08.04.2015
Алгоритм булевой верификации (АБВ) для
Размеченных графов анализа потоков работ
без ориентированных циклов (5)
Количество дизъюнктов при каждом новом слиянии
может расти экспоненциально, поэтому вводятся
ключевое и табличное представления условий
выполнения вершин и активации дуг.
Ключевое представление определяется как
дизъюнкция ключевых факторов соответствующего
сокращенного представления условия выполнения
вершины или активации дуги.
Табличное представление условия выполнения
вершины или активации дуги – это таблица, каждая
строка которой будет соответствовать некоторой
вершине выбора графа, а точнее ее идентификатору.
08.04.2015
Алгоритм булевой верификации (АБВ) для
Размеченных графов анализа потоков работ
без ориентированных циклов (6)
В таблице три столбца: в первом столбце будет указана вершина выбора (ее
идентификатор), во втором столбце (обозначим его «+») - идентификаторы вершин
выбора, участвующих в формировании заданного условия, в которые можно
перейти из этой вершины выбора по дугам с пометками Lcond=true. В третьем
столбце (обозначим его «-») - идентификаторы вершин выбора, участвующих в
формировании заданного условия, в которые можно перейти из этой вершины
выбора по дугам с пометками Lcond=false.
ts
CI d= C1
A
Lcond= false
Lcond= true
CI d= C2
B
Lcond= true
C
Lcond= false
+
D
-
С2
С1
С2
С1
С2
E
08.04.2015
Алгоритм булевой верификации (АБВ) для
Размеченных графов анализа потоков работ с
ориентированными циклами (1)
Определение. Управляющий граф (граф с выделенной начальной вершиной) называется
сводимым (приводимым), если его дуги можно разделить на две непересекающиеся группы:
Прямые дуги, образующие ациклический граф, в котором из начальной вершины может
быть достигнута любая вершина.
Обратные дуги – дуги, у которых конец доминируют над началом. То есть любой путь из
начальной вершины управляющего графа в начало дуги проходит через ее конец.
Определение . Пусть дан некоторый сводимый управляющий граф , цикл программы L(x,y),
соответствующий обратной дуге (x,y), определяется как y плюс множество вершин v таких,
что существует путь из v в x, для каждой вершины z которого справедливо, что z является
потомком y в дереве поиска в глубину.
Определение. Управляющий граф представляет собой иерархию вложенных циклов, если
Он является сводимыми.
В нем нет циклов программы, которые пересекаются, и не содержатся один в другом.
В нем нет циклов программы, обладающих, по крайней мере, двумя выходами (двумя
вершинами, соединенными исходящими дугами с внешними по отношению к циклу
программы вершинами).

АБВ для графов без ориентированных циклов выполняется на каждом уровне вложенности.
08.04.2015
Алгоритм булевой верификации (АБВ) для
Размеченных графов анализа потоков работ с
ориентированными циклами (2)
В ходе работы АБВ с Размеченным графом анализа
потоков работ, содержащим ориентированные циклы,
выделяются циклы программы, каждому циклу
программы соответствует некоторая вершина его
инициирующая, а также вершина выхода из цикла
программы.
Если вершина инициирующая цикл программы является
заданием или вершиной выбора, определяется
конфликт «мертвый цикл». Если же цикл программы
инициирует вершина слияния, то конфликта «мертвый
цикл» не возникнет.
Если вершиной выхода из цикла программы является
задание, то возникнет «бесконечный цикл», при этом
также будет определен конфликт «ветвящийся цикл».
Если вершиной выхода из цикла программы является
вершина выбора и есть исходящие дуги, одна их
которых соединяет эту вершину с внешней по
отношению к циклу программы вершиной, а другая с
внутренней вершиной цикла программы, имеющие
одинаковые значения пометок , то определяется
конфликт «ветвящийся цикл» . Если есть исходящие
дуги, соединяющие с внутренними вершинами цикла
программы, имеющие разные значения пометок , то
определяется конфликт «бесконечный цикл».
...
...
...
...
...
Lcond= false
...
Lcond= true
08.04.2015
...
Lcond= false
Lcond= true
Сопоставление алгоритмов верификации
Графов потоков работ
Сети Петри
Произвольные
перекрывающиеся
конструкции графа
+
Редукция
графа
+
Циклы
+
Логика
высказываний
Экземплярный
подход
Булева
верификация
(АБВ)
-
+
+
Простые циклы
Простые циклы
Вложенные циклы
-
Вычислительная
сложность
O(| N | * | F |)
O((| N |  | F |)3 )
2
O(| N | *
(| N |  | F |) 2 )
O(| N |2 )
или
O(| F |3 )
O(| F |3 )
Работа без конечного
задания потока работ
Возможность
использовать
данные,
полученные
в
ходе
верификации,
для
структурной оптимизации
потока работ
-
+
-
-
+
-
-
-
-
+
08.04.2015
Алгоритм структурной оптимизации
Размеченных графов анализа потоков
работ(1)
Определение. Две вершины Размеченного графа анализа v, w зависят по
данным, если выполняются условия:
1. Существует переменная, название которой указано в списке входных
или выходных параметров вершин ( Lin или Lout), при этом хотя бы у
одной вершины имя этой переменной присутствует в списке выходных
параметров ( Lout ).
2. Существует путь из одной вершины в другую.
Определение. Путь Размеченного графа анализа называется
избыточным, если его начальная вершина – это задание, а конечная
вершина – задание или вершина выбора, они не зависят по данными, при
этом, если есть промежуточные вершины, то это вершины слияния или
задания с пометкой Lt  EMPTY .
Алгоритм автоматической оптимизации Размеченного
графа анализа преобразует граф, не содержащий
структурных конфликтов, удаляя потоки управления,
формирующие избыточные пути, и сохраняя зависимости
по данным и управлению (условия выполнения вершин и
активации дуг).
08.04.2015
Алгоритм структурной оптимизации
Размеченных графов анализа потоков
работ(2)
Для каждого цикла программы или всего потока
работ:
1. Если рассматривается некоторый цикл
программы, то создаются (при условии, что таких
вершин нет) дополнительные вершины: цикловая
вершина, начальная вершина цикла программы и
конечная вершина цикла программы.
2. Определяются зависимости по данным. Если
анализируется некоторый цикл программы, то все
входные и выходные параметры вершин также
становятся входными и соответственно
выходными параметрами цикловой вершины,
которая при анализе на верхнем уровне
вложенности будет представлять весь
рассматриваемый цикл программы как некоторое
задание. При проверке графа на сводимость
первыми рассматриваются вложенные
ориентированные циклы.
Lt = EMPT Y
Lt = EMPT Y
...
08.04.2015
Lt = EMPT Y
Алгоритм структурной оптимизации
Размеченных графов анализа потоков
работ(3)
3. Для каждой вершины удаляются входящие потоки управления, образующие
избыточные пути. Если у вершины не осталось входящих потоков управления,
она соединяется с другими вершинами (начальным заданием или вершинами
выбора) так, что условие ее выполнения будет восстановлено, при этом этот
новый поток управления помечается как тривиальный.
4. Вершины рассматриваются в порядке модифицированного обхода в ширину
(при этом вершина не раскрывается до тех пор, пока не будут раскрыты все
вершины, от которых она зависела по данным). Для каждой вершины
восстанавливаются потерянные зависимости по данным (соединение
происходит так, что учитываются условия выполнения вершин). Если для
вершины восстанавливается зависимость по данным, удаляются возможные
входящие тривиальные потоки управления.
5. Если у некоторых вершин выбора нет исходящих потоков управления с
некоторым значением пометки, они создаются и соединяют вершину выбора
с некоторым новым заданием с пометкой Lt  EMPTY . Если вершина
принадлежит некоторому циклу программы и не имеет исходящих потоков
управления, она соединяется с конечной вершиной цикла программы, не
нарушая условий выполнения вершин.
08.04.2015
Алгоритм структурной оптимизации
Размеченных графов анализа потоков
работ(4)
ts
CI d= C1
Cn= true
Cn= true
A
Cn= C1
Lout= (a)
Lcond= true
Lcond= false
B
C
D
Cn= C1
Cn= true
E
Cn= true
H
Cn= true
Cn= C2
F
Lcond= true
Cn= true
G
Lcond= false
CI d= C3
CI d= C2
I
Lcond= true
Cn= C3
K
Lcond= false
J
Cn= C3
Lin= (a)
08.04.2015
Алгоритм структурной оптимизации
Размеченных графов анализа потоков
работ(5)
Cn= true
ts
Cn= true
Cn= true
Lt= EM PTY
CI d= C1
A
Lcond= false
Lcond= true
Cn= C1
Lout= (a)
B
D
Lt= EM PTY
C
Cn= C1
Lcond= false
Lt= EM PTY
Cn= true
Cn= true
E
Cn= C2
F
CI d= C3
H
Lcond= true
Lcond= false
Lt= EM PTY
G
Cn= true
CI d= C2
I
Lcond= true
K
Cn= C3
Lcond= false
J
Lin= (a)
Cn= C3
08.04.2015
Алгоритм структурной оптимизации
Размеченных графов анализа потоков
работ(6)
Также был предложен алгоритм преобразующий
Размеченный граф анализа потоков работ,
полученный по Формальному описанию потока работ,
так, что по нему может быть построено Формальное
описание потока работ.
Вычислительная сложность алгоритмов оптимизации
составляет: O(| N |2  |  |2  | N |4  | N |2 *| C |3 ) , где | N | количество вершин, | C | - количество вершин выбора,
а |  | - количество переменных, используемых в
качестве входных и выходных параметров вершин
графа.
08.04.2015
Алгоритм структурной оптимизации
Размеченных графов анализа потоков
работ(7)
Определение. Размеченный граф анализа потоков работ , не
содержащий структурных конфликтов, называется
детерминированным, если для любой пары вершин v, w, таких
что:
Условия их выполнения не являются взаимоисключающими.
Существует переменная, название которой указано в списке
входных или выходных параметров вершин ( Lin или Lout ), и хотя бы у
одной вершины имя этой переменной присутствует в списке
выходных параметров ( Lout ).
существует путь из вершины v в вершину w.
На основе Размеченных графов анализа потоков работ была
представлена операционная семантика потоков работ и было
формально доказано, что оптимизирующие преобразования не
изменяют «функциональность» детерминированных
Размеченных графов анализа потоков работ.
08.04.2015
BPEL (Business Process Execution
Language)



BPEL является блочно-графовым языком: структура потока работ описывается
вложенными блоками, однако некоторые действия могут быть связаны
дополнительными потоками управления.
BPEL-процесс может быть представлен как композиция веб-сервисов и быть
полностью автоматизированным.
Рассматриваются следующие действия BPEL- процессов: вызов операции
некоторого Web-сервиса (<invoke>), ожидание внешнего вызова операции WSDLинтерфейса процесса (<receive>), генерация ответа на запрос (<reply>),
копирование данных из одной переменной в другую (<assign>), пустое действие
(<empty>).
Эти примитивные действия могут комбинироваться в более сложные. К таким
действиям относятся определение упорядоченной последовательности действий
(<sequence>), условных выборов (<if>), циклов (<while>, <repeatUntil>),
определение параллельно выполняющихся действий (<flow>).
При параллельном исполнении действий можно регулировать порядок их
активации посредством использования элементов <link>. Для каждого составного
действия <flow> может быть определена секция <links>, в которой будут
перечислены имена связей, используемых для синхронизации на любом уровне
вложенности в пределах этого составного действия. Для каждого вложенного
действия, если это необходимо, указываются входящие связи (<target>) и
исходящие (<source>).
08.04.2015
BPEL (Business Process Execution
Language)
Программа на
Формальном языке
описания потоков
работ
BPEL4People
Описание
потока работ
Верификация
Оптимизация
Система управления
потоками работ
Оптимизированная
программа на
Формальном языке
описания потоков работ
BPEL4People
Описание
потока работ
Были созданы XML – представление Формального языка описания потоков работ,
алгоритмы отображения между Формальным языком описания потоков работ и BPEL.
Элементы и атрибуты BPEL сохраняются для восстановления исполняемого BPELпроцесса.
08.04.2015
Система автоматической верификации и
оптимизации потоков работ (1)
Была разработана Система автоматической
верификации и оптимизации Размеченных графов
анализа потоков работ, которая позволяет:
Создавать и редактировать Размеченные графы анализа
потоков работ.
Загружать и выгружать XML-описание Размеченных графов
анализа потоков работ.
Проводить верификацию и оптимизацию потоков работ в
соответствии с представленными алгоритмами.
Созданы модули конвертации между Размеченными
графами анализа потоков работ, Формальными
описаниями потоков работ и BPEL-процессами.
08.04.2015
Система автоматической верификации и
оптимизации потоков работ (2)
08.04.2015
Система управления электронной библиотекой
«Научное наследие России» (1)
Электронная библиотека «Научное наследие России»
изначально ориентирована на распределенную
архитектуру, в которой источники данных (хранилища
электронных книг и метаданных) могут быть
распределены территориально. Основные
архитектурные составляющие системы представлены:
серверами, обеспечивающими хранение метаданных;
серверами, обеспечивающими хранение оцифрованных
данных;
центральным Web-порталом Электронной Библиотеки
«Научное наследие России»;
центрами оцифровки данных.
08.04.2015
Система управления электронной
библиотекой «Научное наследие России» (2)
1
Оформление
заявки на
оцифровку
книги
(Размещение
первичных
метаданных)
2
Размещение
метаданных по
книге и ее
авторам
ИНИОН, БАН и другие
библиотеки
4
Размещение
электронных книг,
подготовка
оглавлений книг
МСЦ РАН
БЕН РАН
7
Сервер метаданных
ЭБ «Научное
Наследие России»
3 Оцифровка книг
на технических
средствах
библиотеки
Перегрузка
подготовленных
метаданных на
центральный
портал
5
6
Предварительная
Размещение
чистка
подготовленных
размещенных
электронных
данных
книг в
постоянном Сервер подготовки
Сервер центрального
хранилище электронных книг к
портала ЭБ «Научное
публикации
Наследие России»
Доступ пользователей
непосредственно к
данным центрального
портала РАН и через
центральный узел ЕНИП
РАН
Пользователи ЭБ «Научное Наследие России»
08.04.2015
Система управления электронной
библиотекой «Научное наследие России» (3)
На базе системы с открытым кодом Apache ODE был создан
прототип Системы управления электронной библиотекой
«Научное наследие России». Эта система исполняет BPELпроцессы, тем самым координируя работу участников, также
она имеет Web-интерфейс и предоставляет функции просмотра
информации о BPEL-процессах и исполняющихся экземплярах .
Были созданы BPEL-описания процессов публикации книги,
изменения метаданных и удаления книги. Часть задач, таких как
ввод метаданных и сканирование книги должны быть
выполнены человеком и не могут быть полностью
автоматизированы. Сообщения о выполнении
неавтоматизированных задач могут создаваться автоматически
информационными системами серверов подготовки данных и
метаданных. Также возможно введение информации
участником процесса о том, что задача была выполнена, с
помощью Web-интерфейса Системы управления электронной
библиотекой «Научное наследие России».
08.04.2015
Система управления электронной
библиотекой «Научное наследие России» (4)
08.04.2015
Пример (1)
<receive name="Get publication delete message"
partnerLink="deletePublicationPartnerLink" variable="jsccNumber"…/>
…
<invoke name="Delete publication on e-heritage.ru"
inputVariable="jsccNumber" outputVariable="deletedFromEheritage" …/>
<invoke name="Delete publication on upload.nasledie.enip.ras.ru
inputVariable="jsccNumber" outputVariable="deletedFromUpload" …/>
…
<if name="Has been deleted?">
<condition>$deletedFromEheritage and
$deletedFromUpload</condition>
<invoke inputVariable="jsccNumber“ …/>
..
<reply variable="output"…/>
08.04.2015
Пример (2)
<sequence>
<simpleActivity name="receive" input=""
output="deletePublicationPartnerLink_deletePublication, jsccNumber"/>
<simpleActivity name="invoke" input="jsccNumber" output="deletedFromEheritage"/>
<simpleActivity name="invoke" input="jsccNumber" output="deletedFromUpload"/>
<if predicate="and" input="deletedFromEheritage, deletedFromUpload">
<sequence>
<simpleActivity name="invoke" input="jsccNumber" output=""/>
<sequence>
<simpleActivity name="copy" input="jsccNumber" output="output"/>
</sequence>
</sequence>
<else>
<sequence>
<simpleActivity name="copy" input="jsccNumber" output="output"/>
</sequence>
</else>
</if>
<simpleActivity name="reply" input="output" output="deletePublicationPartnerLink_deletePublication"/>
</sequence>
08.04.2015
Пример (3)
08.04.2015
Пример (4)
08.04.2015
Спасибо!
08.04.2015