Сессионные сети Петри

Pavel Vetokhin
2 min readMar 8, 2020

--

… In essence there are three “camps” in these discussions: the “Petri net camp”, the “Pi calculus” (or process algebra) camp, and the “Practitioners camp” (also known as the “No formalism camp”). This was the reason for starting the “Petri nets and Pi calculus for business processes” working group in June 2004. Two years later the debate is still ongoing and it seems unrealistic that consensus on a single language will be reached…

— W.M.P. van der Aalst et al. (2007). Business Process Management: Where Business Processes and Web Services Meet.

Постараемся не уходить в дебаты, а просто возьмём некоторое поведение¹ и при помощи каждого из формализмов набросаем его представление. Ну а начнём мы с самого практичного из них.

Объектно-ориентированное программирование

В мире ООП поведение представляется интерфейсами:

Queue Interface

Выглядит довольно просто!

Алгебры процессов

В мире исчисления процессов поведение представляется сессионными типами:

Queue Session Type

Выглядит чуть сложнее. Из примечательного — очень “читабельная” рекурсивность определения.

Сети Петри

В мире сетей Петри поведение представляется т.н. открытыми сетями Петри²:

Session Petri Net (Bare Metal)

Основное отличие в графичности представления. Из примечательного — явные места, в которых находится процесс до/после взаимодействия с внешним миром. Именно в эти точки должен “подключиться” процесс, реализующий данное поведение:

Session Petri Net (Implementable)

Можно пойти ещё дальше и наполнить диаграмму смыслом, дав элементам подходящие имена:

Session Petri Net (Meaningful)
  1. В качестве подопытного поведения возьмём сессионный тип очереди, приведённый в одной из лекций (видео с привязкой ко времени) курса “Сессионно-типизированное конкурентное программирование”.
  2. Открытые сети Петри (видео).

--

--