Presentation for Symfony Meetup Moscow (http://www.meetup.com/Symfoniacs/events/233365928/) in Russian.
Main topics:
1. Petri nets and Workflow nets overview.
2. Symfony Workflow component (https://github.com/symfony/workflow) overview.
3. https://github.com/fduch/workflow-bundle as a backport of Symfony's FrameworkBundle 3.2+ integration of Symfony Workflow component.
4. Introduce WorkflowExtensionsBundle (https://github.com/GlobalTradingTechnologies/workflow-extensions-bundle) for automation of workflow processes management and extending Symfony's Workflow Component
author: https://twitter.com/alex_medwedew
2. План
● Workflow. Системы управления Workflow.
● Сети Петри. Workflow-сети. Применимость.
● Что такое Symfony Workflow?
● Расширение Symfony Workflow:
WorkflowExtensionsBundle.
2
3. План
● Workflow. Системы управления Workflow.
● Сети Петри. Workflow-сети. Применимость.
● Что такое Symfony Workflow?
● Расширение Symfony Workflow:
WorkflowExtensionsBundle
3
4. Workflow. Workflow Management Systems
● Workflow - управляемый упорядоченный повторяемый
перечень работ, выполняемый организованным набором
ресурсов и направленный на решение конкретной задачи
заказчика. (Case-driven процесс по преобразованию
продукта от одного состояния к другому).
● Система управления Workflow (Workflow Management
System) - программная система, полностью определяющая,
управляющая и выполняющая workflow. В качестве
математической базы для WMS используют Сети Петри.
4
5. План
● Workflow. Системы управления Workflow.
● Сети Петри. Workflow-сети. Применимость.
● Что такое Symfony Workflow?
● Расширение Symfony Workflow:
WorkflowExtensionsBundle.
5
6. Сети Петри
● Сеть Петри - двудольный
ориентированный мультиграф.
● Вершины - объединение множеств
мест (places) и переходов (transitions).
● Входные места (input places) для перехода -
места, от которых есть дуги к данному
переходу.
● Выходные места (output places) для
перехода - места, к которым есть дуги от
данного перехода
● Каждое место содержит в 0 или более
токенов (tokens). Для простоты - 0 или 1.
6
7. Динамика сетей Петри
● Состояние сети (State, Marking) -
распределение токенов по местам.
● Переходы - активные компоненты
сети, меняющие ее состояние.
● Переход возможен, если каждое
входное место для перехода
содержит хотя бы один токен.
● Возможный переход осуществляется,
когда входное место теряет токен, а
каждое выходное - приобретает.
7
8. Применимость сетей Петри. Пример
использования
8
New Process
Waiting
for
transpor
tation
Waiting
for docs
Docs
processing
Transporta
tion to
warehouse
Docs
ready
Deliver Done
At
ware
house
9. Применимость сетей Петри. Пример
использования
9
New Process
Waiting
for
transpor
tation
Waiting
for docs
Docs
processing
Transporta
tion to
warehouse
Docs
ready
Deliver Done
At
ware
house
10. Применимость сетей Петри. Пример
использования
10
New Process
Waiting
for
transpor
tation
Waiting
for docs
Docs
processing
Transporta
tion to
warehouse
Docs
ready
Deliver Done
At
ware
house
11. Применимость сетей Петри. Пример использования
New Process
Wait
ing for
transpo
rta
tion
Waiti
ng for
docs
Docs
processing
Transporta
tion to
warehouse
Docs
ready
Deliver Done
At
ware
house
New Process
Wait
ing for
transpo
rta
tion
Waiti
ng for
docs
Docs
processing
Transporta
tion to
warehouse
Docs
ready
Deliver Done
At
ware
house
или
12. Применимость сетей Петри. Пример использования
12
New Process
Waiting
for
transpor
tation
Waiting
for docs
Docs
processing
Transporta
tion to
warehouse
Docs
ready
Deliver Done
At
ware
house
13. Применимость сетей Петри. Пример использования
13
New Process
Waiting
for
transpor
tation
Waiting
for docs
Docs
processing
Transporta
tion to
warehouse
Docs
ready
Deliver Done
At
ware
house
14. Workflow-сеть
● Workflow-сеть - частный случай сети Петри:
○ Существует начальное и конечное место
○ Все вершины (переходы и места) находятся на пути от начального места к конечному
14
15. Workflow-сеть. Применимость
● Некоторые подклассы Workflow-сетей могут
быть проверены на “оптимальность”
(отсутствие мертвых переходов,
корректность завершения) за
полиномиальное время.
15
16. План
● Workflow. Системы управления Workflow.
● Сети Петри. Workflow-сети. Применимость.
● Что такое Symfony Workflow?
● Расширение Symfony Workflow:
WorkflowExtensionsBundle.
16
17. Symfony Workflow
● Symfony Workflow - новый Symfony-компонент,
реализующий Workflow-сеть (не в полной мере :-) ).
● В стандартной поставке начиная с Symfony 3.2.
● Работает на базе Symfony 2.3+ и 3.0+ стеков.
● symfony/framework-bundle 3.2+ интегрирует
компонент в экосистему Symfony.
17
18. Symfony Workflow. Интеграция с экосистемой Symfony 2.3+
Бекпорт интеграции компонента в Symfony 3.2+
в виде отдельного бандла
https://packagist.org/packages/fduch/workflow-bundle
18
20. Symfony Workflow. Функционал
● Определение структуры Workflow-сети
● Задание субъекта Workflow
● Конфигурация хранилища состояний субъекта
● API для управления динамикой сети:
○
● Поддержка событийной системы нотификаций об изменении состояния
сети
● Система блокирования переходов на базе Guard-событий
20
Основной принцип - явное управление динамикой сети
21. План
● Workflow. Системы управления Workflow.
● Сети Петри. Workflow-сети. Применимость.
● Что такое Symfony Workflow?
● Расширение Symfony Workflow:
WorkflowExtensionsBundle.
21
22. WorkflowExtensionsBundle. Триггеринг переходов
22
New Process
Waiting
for
transpo
rtation
Waiting
for docs
Docs
processing
Transporta
tion to
warehouse
Docs
ready
Deliver Done
At
ware
house
Событие
появления
нового
заказа
24. WorkflowExtensionsBundle. Шедулинг переходов
24
New Process
Waiting
for
transpo
rtation
Waiting
for docs
Docs
processing
Transporta
tion to
warehouse
Docs
ready
Deliver Done
At
ware
house
Set absent
(in 5 days)
Absent
Событие
попадания
заказа в
ожидание
на склад
28. WorkflowExtensionsBundle. Решедулинг переходов
28
New Process
Waiting
for
transport
ation
Waiting
for docs
Docs
proces
sing
Transporta
tion to
warehouse
Docs
ready
Deliver Done
At
ware
house
Set
abandoned
(in 5 days)
Aban
doned
Set
problema
tic (in 30
days)
Pro
blema
tic
Событие
попытки
обработки
заказа
Событие
попадания
заказа на
обработку
документов