W przepływach pracy, które często opisują działania dziejące się długo:
miesiącami czy wręcz latami, zdarza się, ze wskutek nieprzewidzianej
komplikacji trzeba zejść z utartego szlaku i rzecznie zmienić bieg
sterowania. Po takiej zmianie wracamy do wykonywania przepływu
czasem cofając się nieco, czasami przeskakując, a czasami wchodzimy
w ogóle w stan, który w oryginalnej sieci nie był osiągalny. Chodzi o
to, żeby taki powrót do koleiny był poprawny, czyli żeby
przeniesienie sygnałów sterowania nie spowodowało żadnej z dwóch typowych
wadliwych sytuacji: zablokowania się części przepływu pracy lub powstania
śmieci, czyli sygnałów, które już po zakończeniu konkretnego przepływu
jeszcze zalegają, jako jakoby nie obsłużone.
W sieciach Petriego, których używam do modelowania przepływów pracy,
sterowanie modeluje się za pomocą pionków, które wędrują po sieci, a
sytuacja regeneracji odpowiada arbitralnemu przegrupowaniu pionków. Aby
takie przegrupowanie miało dobre cechy, trzeba je zrobić z głową. W
referacie przedstawię liniowy algorytm stwierdzania, czy w sieci, która
powstała strukturalnie, dane markowanie jest poprawne w przedstawionym
wyżej sensie. Kryterium konieczne i dostateczne, pozwalające to
stwierdzić, będzie korzystało z historii budowy sieci zakodowanej w
postaci drzewa rozdrobnień.
Często zdarza się, ze w sytuacji awaryjnej chcemy zmodyfikować sam
przebieg przepływu pracy, na przykład dodając dodatkowa funkcjonalność,
albo ucinając istniejącą, którą uznamy za wadliwa. Przedstawiony wynik
pozwala również na modyfikowanie sieci na bieżąco w bezpieczny sposób,
czyli taki który zachowuje poprawność markowania w nowowpowstałej sieci
przepływu.
|