УДК 004

Оптимизация блокчейн бизнес-процессов на основе сетей Петри

Брёхин Алексей Александрович – студент-магистр Московского государственного технического университета им. Н.Э. Баумана.

Домнин Егор Олегович – студент-магистр Московского государственного технического университета им. Н.Э. Баумана.

Научный руководитель Рудаков Игорь Владимирович – кандидат технических наук, заведующий кафедрой Программного обеспечения ЭВМ и информационных технологий Московского государственного технического университета им. Н.Э. Баумана.

Аннотация: В работе проводится сравнительный анализ существующих методов построения бизнес-процессов. Приводится описание разработанного метода трансляции диаграммы бизнес-процесса в сеть Петри с дальнейшей оптимизацией и преобразованием в smart contract.

Ключевые слова: BPMN, сеть Петри, blockchain, smart-contract.

Введение

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

В след за ростом популярности растет и количество выполняемых бизнес-процессов на платформе blockchain, оптимизация которых может уменьшить затраты на комиссию за выполнение smart contract.

Получение сети Петри из BPMN

Метод принимает в качестве входных данных модель процесса BPMN, состоящую из следующих типов узлов: задачи, события, шлюзы. При построении бизнес-процесса информация обо всех узлах и связях хранится в XML файле.

На основе анализа XML файла BPMN каждое задание и событие представляются как позиции, а шлюзы в виде переходов. По данному правилу получено соответствие между BPMN и сетью Петри [1].

map.png

Рисунок 1. Взаимосвязь между BPMN и сетью Петри.

Структурная оптимизация сети Петри

Для структурной оптимизации нужно ввести модифицированную сеть Петри, которая представляется в виде разносортного множества.

·

·

·  является входной функцией – отображением из переходов в комплекты позиций

·  есть выходная функция – отображение из переходов в комплекты позиций

·

·

·

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

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

algo.png

Рисунок 2. Алгоритм нахождения эквивалентной сети Петри.

Найденным эквивалентным позициям и переходам ставим в соответствие одну позицию и переход соответственно. Результатом минимизирования является модифицированная сеть Петри, эквивалентная исходной сети. Эквивалентность проверяется одинаковым количеством фишек в выходных позициях сетей при любой заданной последовательности входных позиций сети, в которых появляется фишка.

mini.png

Рисунок 3. Результат минимизации.

Переход от оптимизированной сети Петри к smart contract

Рассмотрим переход от минимизированной сети Петри к smart contract на Solidity (язык программирования) на конкретном примере сети:

petri-net.png

Рисунок 4. Пример сети Петри.

Смарт-контракт генерируется по следующему алгоритму:

Алгоритм 1.

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

i. - Если задача активизирована, то

1. выполнить код Solidity , связанный с задачей

2. если выполнено, вычислить все предикаты, связанные с этой задачей, и сохранить результаты в локальном битовом наборе tmpPreds

3. вызов функции step с новой маркировкой и tmpPreds для выполнения всех внутренних функций, которые могут быть активизированы

4. вернуть TRUE для указания успешного выполнения задачи

ii. Вернуть FALSE, чтобы указать, что задача не активизирована

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

i. выполнить код Solidity, связанный с задачей

ii. если выполнено, вычислить все предикаты, связанные с этой задачей и сохранить результаты в локальном битовом наборе tmpPreds

iii. вернуть новую маркировку и tmpPreds (вернуться к функции step)

Архитектура программного продукта

Разработанный программный продукт состоит из следующих частей:

▪ модуль построения бизнес-процесса;

▪ модуль построения сети Петри на основе бизнес-процесса;

▪ модуль оптимизации сети Петри.

▪ модуль генерирования smart contract.

IDEF0 диаграмма программы показана на рисунке:

idef.png

Рисунок 5. IDEF0 диаграмма программного продукта.

Заключение

Задача предоставления удобного программного обеспечения для автоматического создания smart contract достаточно нетривиальна, а способы решения могут сильно варьироваться в зависимости от конечной цели: скорость исполнения smart contract или экономия средств на комиссии при исполнении контракта. В данной работе был рассмотрен комплекс методов, который позволяет существенно снизить расходы на комиссию.

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

Список литературы

  1. Luciano García-Bañuelos, Alexander Ponomarev, Marlon DumasIngo Weber. - Optimized Execution of Business Processes, Business Process Management, 2017.
  2. Федоров И.Г. - Моделирование бизнес-процессов в нотации BPMN, 2013.
  3. Сети Петри, Котов B.E., 1984.
  4. BitFury Group - Smart Contracts on Ethereum Blockchain, 2015.