DISPEČERSKÝ SYSTÉM LEO EXPRESS (2. 12. 2016) 1. ZÁKLADNÍ CHARAKTERISTIKA Dispečrský systém je IT systém k realtime řízení veřejné dopravy provozované dopravcem LEO Express v rámci doortodoor konceptu. Skládá se z databázové aplikace s webovým rozhraním (software) a hlásičů událostí (hardware se softwarem). Systém je víceuživatelský, umožňující spolupráci v reálném čase na základě uživatelských práv přihlášených uživatelů. Systém slouží k: • organizačnímu plánování procesů • řízení průběhu procesů • alokaci prostředků (ukazatele) • řízení kapacity účastníků • dokumentaci průběhu procesů • vyhodnocování průběhu procesů • vyhodnocování využití prostředků (ukazatele) • vyhodnocování spolehlivosti Základem činnosti dispečerského systému jsou modely procesů, souběžně spuštěné a interaktivně dotvářené (dispečerem) organizační plánování procesů. Operacím v modelu jsou (dispečerem) přiděleni účastníci (řízení kapacity účastníků), a prostředky ukazatele (materiál, finance, apod.). Na základě informací hlásičů pak systém podle modelu procesů s přidělenými účastníky a prostředkyukazateli sleduje aktuální běh spuštěných procesů a upozorňuje dispečera na odchylky. Plán i skutečný průběh systém dokumentuje. V definovaných situacích (změnách v naplánování procesu) systém automaticky rozešle informaci všem zúčastněným.
Účastník Účastník 1 Účastník 2 Účastník 3 ... Účastník u
veličina hlášená hlásičem
Hlásič
Nositel/přiřazení Hlášená veličina
Hlásič 1
Účastník H1
Ukazatel H1
Hlásič 2
Účastník H2
Ukazatel H2
Hlásič 3
Účastník H3
Ukazatel H3
... Hlásič h
...
DATABÁZE UKAZATELŮ
DATABÁZE HLÁSIČŮ
DATABÁZE ÚČASTNÍKŮ
asociace hlásiče s účastníkem
...
Účastník Hh
Ukazatel Hh
hlásič účastníka lze použít k dokončení operace
Ukazatel Ukazatel 1 Ukazatel 2 Ukazatel 3 ... Ukazatel l
hodnota hlášená při dokončení op.
OPERACE
výčet prostředků operace
Role
Účastník
Prostředek
Role 1
Účastník R1
Prostředek P1
Bilance P1
Výraz P1
Role 2
Účastník R2
Prostředek P2
Bilance P2
Výraz P2
Role 3
Účastník R3
Prostředek P3
Bilance P3
Výraz P3
...
...
Role r
Bilance (+, , =) Množství (výpočet)
...
Účastník Rr
...
Prostředek Pp
... Výraz Pp
Bilance Pp
} každému „účastníku R“ po dokončení operace aktualizovány ukazatele odpovídající názvem „prostředkům P“ pomocí „bilance P“ a „výrazu P“
Ukazatel 1
Ukazatel 2
Ukazatel 3
...
Účastník 1
...
Účastník 2
...
Účastník 3
... ...
...
...
...
poloha pro dokončení operace
Ukazatel l
...
...
...
Účastník u
DATABÁZE LOKALIT
UKAZATELE ÚČASTNÍKŮ
obsazení rolí účastníky
Název
GPS šířka
GPS délka
Průměr oblasti
Lokalita 1
Šířka 1
Délka 1
Průměr 1
Lokalita 2
Šířka 2
Délka 2
Průměr 2
Lokalita 3
Šířka 3
Délka 3
Průměr 3
... Lokalita l
... Šířka l
... Délka l
... Průměr l
Obr.: Princip vazeb mezi datovými entitami dispečerského systému (viz další kapitoly)
2. MODEL PROCESŮ Proces je soubor (skupina) operací, které mohou být vzájemně provázány. Proces je označen názvem procesu, který jej jednoznačně identifikuje. Procesy jsou uloženy v Databázi procesů popsané v jiné kapitole. Operace v procesu jsou zasazené do časové osy, členěné na dny. Časová osa procesu je buďto absolutní, když je zadáno datum počátku, nebo relativní. Dny jsou v obou případech číslovány vzestupně (Den 1, Den 2, Den 3, atd.). Máli proces zadáno datum počátku, jedná se o absolutní časovou osu a jednotlivé dny jeho časové osy jsou navíc označeny odpovídajícími datumy (např. Den 1 – 21. 6. 2016). Operace v procesu jsou zahajovány v závislosti na jejich časové poloze, jejich vlastnostech a vzájemných vazbách. Běh procesu skončí tím, že jsou dokončeny/přesko čeny/selhány/zrušeny všechny operace procesu. 2.1. Operace Operace je úkon či děj (posloupnost úkonů), probíhající v určitém okamžiku či období v závislosti na čase a předchozím ději. Závislost operace na čase, výsledcích předchozího děje a její vnitřní děj (proces) jsou určeny těmito paramery operace: • den a čas zahájení (den je vztažen k časové ose procesu; může být stanoven pouze čas nebo nemusí být stanoven den ani čas) • den a čas dokončení (den je vztažen k časové ose procesu; může být stanoven pouze čas nebo nemusí být stanoven den ani čas) • doba trvání operace (nemusí být stanovena) • kalendářní platnost operace (stanovena formou dnů v týdnu (týdenní periodicita) a kalendáře výjimek (které konkrétní datumy ano, které konkrétní datumy ne)) • podmínečné provedení operace (provedení operace je podmíněno výsledkem předchůdce/předchůdců (příznaky „provést při výsledku ANO“ a provést při výsledku „NE“ defaultně platné oba), přičemž pokud není podmínka splněna, nabude operace statusu „přeskočená“ a považuje se dokončenou) • ukončovatel způsob dokončení operace (viz samostatná kapitola) • začátek směny – příznak, zda okamžik zahájení operace je začátkem pracovní směny pro všechny účastníky operace • konec směny – příznak, zda okamžik dokončení operace je koncem pracovní směny pro všechny účastníky operace • odkaz název procesu (nemusí být využit vždy) na vnitřní proces popisující vnitřní děj operace Každá operace má účastníky, kteří jsou pro provedení operace nezbytní (jejich čas je tedy pro provedení operace alokován) a sadu prostředkůukazatelů, popisujících nároky/spotřebu operace (zejména spotřeba materiálu, cena, atd.). Zvláštním prostředkemukazatelem je čas, jehož spotřeba může být vyjádřena dobou trvání operace. Při dokončení operace se všechny tyto parametry automaticky upraví podle skutečnosti (viz kapitoly popisující účastníky a ukazatele). 2.1.1. Status operace Speciálním parametrem operace je její status. Status operace slouží k podchycení historie vývoje operace. Operace není editovatelná, její parametry se nepřepisují, s výjimkou
statusu. Při každé editaci operace je její status změněn na „nahrazená“ (ostatní atributy jsou zachovány) a operaci nahradí její nová verze (s vyeditovanými parametry). Status operace nabývá těchto hodnot: • • • • • •
• • •
očekávaná (počítá se s tím, že bude, ale není připravena nemá definovánu časovou polohu nebo přiděleny účastníky) naplánovaná (je připravena a čeká se, až proběhne) probíhající (byla zahájena, ale dosud nedokončena) dokončená s výsledkem ANO (podmínky pro dokončení operace byly splněny, přičemž byla hlášena hodnota ANO) dokončená s výsledkem NE (podmínky pro dokončení operace byly splněny, přičemž byla hlášena hodnota NE) přeskočená (u operace s podmínečným provedením nebyla splněna podmínka provedení na základě výsledku předchůdce/předchůdců, operace se provádět nebude) selhaná (ačkoliv již měla proběhnout, nebyla a nebude dokončena) zrušená (neproběhla ani neproběhne, je zrušena dispečerem) nahrazená (novou verzí v důsledku editace, včetně změny statusu)
Operace je zahájena (status se změní na „probíhající“) pokud jsou současně splněny tyto podmínky: • proběhli předchůdci operace (dokončeni, přeskočeni, zrušení, selhaní – viz dále) • jsou splněny podmínky pro podmínečné provedení operace (na základě výsledku předchůdce/předchůdců) • operace má aktuálně status „očekávaná“ či „naplánovaná“ • nastal (uplynul) čas zahájení (stanovený přímo nebo výpočtem pomocí dne a času dokončení a doby trvání operace) • jsou aktuálně dostupné prostředkyukazatele pro provedení operace (viz dále) • jsou dostupní účastníci pro provedení operace (nejsou vázáni jinou probíhající operací) Operace je považována za zpožděnou (toto není status), pokud nastal některý z těchto případů: • den a čas zahájení operace již byl, ale operace nemohla být záhájena (kvůli nesplnění podmínek) • den a čas ukončení operace již byl, ale nebylo dosud potvrzeno ukončení operace • doba trvání operace již uplynula, ale nebylo dosud potvrzeno ukončení operace 2.1.2. Dokončení operace Operace je dokončena pokud jsou současně splněny všechny tyto podmínky: • operace má aktuálně status „očekávaná“, „naplánovaná“ nebo „probíhající“ • jeli ukončovatel = „čas“: nastal (uplynul) čas dokončení (jeli stanoven přímo nebo výpočtem z času zahájení a doby trvání operace) • jeli ukončovatel = „vnitřní“: je dokončen vnitřní proces (všechny operace vnitřního procesu) • jeli ukončovatel = „účastník“: přišlo hlášení z hlásiče účastníka, splňující zadané kritérium • jeli ukončovatel = „signál“: přišel signál z jiného procesu o dokončení příslušné operace v něm
• •
jeli ukončovatel = „EXT“: přišlo potvrzení o dokončení operace od příslušného externího systému jeli ukončovatel = „DISPEČER“: dispečer potvrdil dokončení operace prostřednictvím webového rozhraní nebo mobilní aplikace
Ukončování (vnitřního procesu) hlásičem probíhá pomocí výstižně nazvané poslední operace před koncovou značkou (viz kapitola popisující metodu „Rozbor“). Operaci je třeba nastavit způsob ukončení = „účastník“, zvolit roli, jejíž hlásič bude použit, z Databáze ukazatelů zvolit ukazatel a nadefinovat kritéria události. Přitom se vyžaduje, že daná role bude obsazena takovým konkrétním účastníkem, se kterým je asociován hlásič informující o příslušeném ukazateli. Zpracování informací hlásiče pro účely dokončení operace probíhá na straně systému. Jakmile hlásič vrátí informaci, je vyhodnocena podmínka v kritériu dokončení operace. Pokud je v kritériu nastaveno „čekat na splnění“, je operace dokončena pouze pokud je podmínka v kritériu dokončení splněna (operace je tedy vždy dokončena s výsledkem „ANO“). Jeli nastaveno „nečekat na splnění“, je operace dokončena ihned po vrácení hodnoty hlásičem, přičemž výsledek dokončení „ANO“ či „NE“ zavisí na tom, zda je podmínka v kritériu splněna či ne. Podmínka v kritériu je definována intervalem rozpětí hodnoty a parametrem, zda má hodnota ležet uvnitř či vně intervalu. Dialog k zadání kritéria pro dokončení operace tedy obsahuje tyto zadávací prvky: • dolní mez uzavřeného intervalu (včetně) • horní mez uzavřeného intervalu (včetně) • přepínač „uvnitř / vně“ (zda má být hodnota uvniř či vně intervalu) • přepínač „nečekat na splnění / čekat na splnění“ (zda jde jen vyhodnocení aktuálního stavu nebo o čekání až stav nastane) V případě ukazatele „GPS souřadnice“ není uvedena horní ani dolní mez, ale je uveden odkaz na lokalitu z Databáze lokalit. 15:41
← --: → ░1-34567 ░1-34567
GPS
√
všechno
11:11
1359 Pha-Bys 1359 Pha-Bys
?
1359 PhaBys
Flirt
DATABÁZE UKAZATELŮ
Účastníci: Vozidlo
480 002 5
Strojvedoucí Strojvedoucí Boh VK
VK Praha
Stevard 1
SW Praha
Stevard 2
SW Praha
Stevard 3
SW Praha
Prostředky: Dopravní cesta
+
42250
Elektřina
+
1000000
kWh
Doba trvání
+
135
minut
Ukazatel čas GPS ON ... Ukazatel l
DATABÁZE HLÁSIČŮ
htrkm
Hlásič
Nositel/přiřazení Hlášená veličina
GPS 480 002 5 480 002 5
GPS
ON 480 002 5
480 002 5
ON
Hlásič 3
Účastník H3
Ukazatel H3
... Hlásič h
... Účastník Hh
... Ukazatel Hh
Obr.: Princip definice ukončení operace hlásičem účastníka GPS polohou vozidla
2.1.3. Účastníci, jejich role a alokace časové kapacity Lidé a počitatelné („kusové“) předměty, jejichž „účast“ je potřebná k provedení operace, jsou účastníci (lidé, vozidla, apod.). Účastníci jsou vedeni v Databázi účastníků (popsaná v samostatné kapitole). Účastníci potřební k provedení operace jsou u každé operace obsaženi v seznamu účastníků operace. Každá položka v seznamu (tedy účastník) je označena názvem role, vysvětlující význam účastníka pro operaci (např. „odstupující strojvedoucí“, „nastupující strojvedoucí“, apod.). Dále položka obsahuje název skupiny účastníků a název/jméno konkrétního účastníka. Skupina účastníků je okruh účastníků v Databázi účastníků, z něhož musí být účastník vybrán k účasti na dané operaci. Je přípustné, aby u jedné operace bylo více účastníků stejné skupiny účastníků, přičemž se od sebe liší názvem role. Účastníci se při operacích nespotřebovávají, pouze se po dobu trvání operace alokuje jejich časová kapacita. Jednáli se o složeného účastníka, alokuje se současně i časová kapacita všech jeho součástí. Jako nepřípustné jsou hodnoceny toto stavy: • konkrétní účastník (tedy kterákoliv část složeného účastníka) je ve stejný okamžik alokován u více paralelně probíhajících operací (ne případ mateřské operace versus posloupnost operací jejího vnitřního procesu) jednoho procesu; v operacích různých paralelně běžících (nevnořených) procesů může být ve stejný okamžik alokován • v kterýkoliv okamžik je v rámci jednoho procesu požadavek na alokaci většího počtu účastníků dané skupiny účastníků, než je počet účastníků v této skupině Pro každého účastníka vedeného v Databázi účastníků existuje množina jeho ukazatelů, která odpovídá množině všech ukazatelů vedených v Databázi ukazatelů tedy existuje pole/matice Účastníci x Ukazatele (podrobnosti viz kapitola popisující ukazatele). Při dokončení operace se nároky/spotřeba ukazatelů účastníků operace (zejména množství jejich spotřebovaného času) automaticky zaktualizuje a uloží podle skutečnosti (viz kapitola popisující prostředkyukazatele). Organizaci angažmá konkrétních účastníků v operacích lze řešit i směnovým způsobem, kdy účastník nastoupí na směnu podle turnusu (rozpisu) a až do konce směny běží jeho odpracovaný čas. Operace, jichž se v průběhu směny účastní, na sebe nemusí kontinuálně navazovat, protože daný účastník je přítomen (k dispozici) ve směně a jeho čas je „účtován“ za směnu, nikoliv jako součet dob trvání jednotlivých operací. Zahajování a ukončování směn se provádí nastavením parametrů začátek směny a konec směny u příslušných operací. 2.1.4. Prostředkyukazatele, jejich zisk a spotřeba Důsledky provedení operace na nepočitatelný materiál se vyjadřují pomocí ukazatelů, definovaných v Databázi ukazatelů (finance, čas, voda, apod.). Typicky se takto vyjadřuje potřeba (spotřeba) prostředků pro provedení operace, avšak operace nemusí ukazatele pouze spotřebovávat, může je i produkovat či nastavovat na určitou hodnotu. U každného ukazatele operace je uvedeno jeho množství a zvolena bilance. Bilance může být kladná („zisk“), záporná („spotřeba“) nebo rovna („nastavení“). Kladná bilance znamená, že se při provedení operace se ukazatel o uvedené množství zvýší (vyrobí se). Záporná bilance znamená, že při provedení operace se ukazatel o uvedené množství sníží
(spotřebuje se). Rovná bilance znamená, že se provedením operace ukazatel nastaví na uvedené množství (např. kilometrický dojezd po natankování plné nádrže). Množství je u všech bilancí zadáno formou výrazu, který kromě základních operátorů (+,,*,/) může obsahovat i čísla a tyto parametry (jako proměnné): • den a čas zahájení operace • den a čas dokončení operace • doba trvání operace • hodnota vrácená hlásičem při dokončení operace Při dokončení operace se nároky/spotřeba operace vyjádřená množstvím prostředků ukazatelů (včetně doby trvání operace) automaticky zaktualizuje, uloží podle skutečnosti a pomocí těchto množství se změní stejnojmenné ukazatele u všech účastníků oprace (např. trvalali operace 1 hodinu („doba trvání operace“ = +1 hodina), pak se ukazatel „doba trvání operace“ zvýší u všech účastníků této operace o +1 hodinu). Podrobnosti viz kapitola popisující Databázi ukazatelů. Jako nepřípustný je hodnocen stav, kdy se ukazatel v důsledku provádění operací v kterémkoliv okamžiku dostane pod minimální nebo nad maximální nastavenou mez. Dostaneli se množství/zásoba prostředku mimo meze, musí být zkorigována provedením příslušné operace (např. doplnění vody), nikoliv zásahem v Databázi ukazatelů. Proto je nezbytné na počátek každého procesu umístit operace nastavující dostatečnou úroveň všech ukazatelů potřebných pro běh procesu (aby bylo z čeho čerpat). Kromě číselných ukazatelů, majících celočíselný či desetinný tvar, existují v Databázi ukazetelů implicitně tyto speciální ukazatele: • GPS • doba trvání operace 2.2. Modelování procesů pomocí operací Modelování procesů pro plánování a sledování jejich průběhu se provádí pomocí těchto metod (popsaných v následujících kapitolách): • metoda „předchůdci“ • metoda „rozbor“ • meziprocesový signál • provazování účastníků • meziprocesové obsazování účastníků 2.2.1. Metoda „předchůdci“ Metoda „předchůdci“ je sekvenční řetězení operací. Předchůdci jsou operace, které musí proběhnout, aby mohla proběhnout následná operace. Každá operace má seznam odkazů na své předchůdce (může být i prázdný). U každého odkazu je možno nastavit vstupní podmínku (buďto „ANO“ nebo „NE“ nebo „ANO či NE“) určující požadovaný výsledek předchůdce (tedy hodnoty statusu operace „dokončená s výsledkem ANO“, „dokončená s výsledkem NE“ nebo obojí). Dále má každá operace parametr určující vzájemný vztah všech jejích vstupních podmínek, a to buďto logický součet („něco“) nebo logický součin („všechno“). Tímto způsobem vznikají časové posloupnosti navzájem provázaných operací. Vstupní podmínky pro provedení operace jsou splněny, pokud:
•
•
u vzájemného vztahu podmínek „něco“ (logický součet) byl dokončen aspoň jeden její předchůdce a výsledek odpovídá stanovené podmínce („ANO“ / „NE“ / „ANO či NE“) u vzájemného vztahu podmínek „všechno“ (logický součin) byli dokončeni všichni její předchůdci a jejich výsledky odpovídají stanoveným podmínkám („ANO“ / „NE“ / „ANO či NE“)
Zablokujíli výsledky dokončení předchůdce/předchůdců provedení operace (tedy již neexistuje možnost, že dokončením dosud nedokončeného předchůdce/předchůdců s patřičným výsledkem budou splněny podmínky pro provedení operace), je operace automaticky označena statusem „přeskočená“ (cyklickou aplikací tohoto pravidla je pak takto označena celá „větev“ provázaných operací). Jeli předchůdce operace zrušen (jeho status operace je změněn na „zrušená“), je jím podmíněná podmínka provedení (následné) operace i vazba předchůdceoperace automaticky zrušena (stávající verze následné operace je „nahrazená“ novou). U procesů s relativní časovou osou je přípustné, aby okamžik počátku předchůdce operace ležel v čase až po okamžiku počátku dané operace. Při použití takového procesu jako zdrojový proces pro generování periodickým opakováním, bude tato vazba interpretována tak, že daná operace bude ležet až v následujícím „běhu“ opakování zdrojového procesu, než leží její předchůdce, s nímž je svázána (např. navázání prvního vlaku dalšího oběhového dne na poslední vlak dne předchozího) viz kapitola popisující generování periodickým opakováním. 2.2.2. Metoda „rozbor“ Rozbor je nahrazení operace procesem, definujícím vnitřní průběh operace. Pro tento účel každá operace obsahuje odkaz název procesu (nemusí být využit vždy) na svůj vnitřní proces. Vnitřní proces je standardní proces se všemi atributy procesu. Použití metody rozbor má tyto vlastnosti: • Hloubka „zanoření“ opakovaným aplikováním rozboru není (teoreticky) omezena, (kterákoliv operace vnitřního procesu může být dále rozebrána být mateřskou operací). • Při změně (editaci) vnitřního procesu přímo v nadřazeném procesu (kam náleží jeho mateřská operace) se změna projeví jen v rámci daného nadřazeného procesu, a to podle volby uživatele buďto jen v právě editovaném místě (výskytu) nebo ve všech výskytech tohoto vnitřního procesu (vyjma již dokončených, selhaných, zrušencýh či přeskočených), a nebo ve všech výskytech počínaje editovaným místem (výskytem) dále. Při změně (editaci) vnitřního procesu v Databázi procesů (jako samostatného procesu) se změna projeví ve všech procesech s absolutní časovou osou u všech jeho výskytů od aktuálního okamžiku dále, ve všech procesech s relativní časovou osou všude. Uživatel na to bude upozorněn varovnou hláškou. • Každý proces, který je použit jako vnitřní proces, musí obsahovat počáteční značku a koncovou značku. První operace za počáteční značkou (tedy operace, jíž je počáteční značka předchůdcem) se začne provádět v okamžiku počátku mateřské operace. Poslední operace před koncovou značkou určuje dokončení mateřské operace – způsob ukončení (ukončovatel), okamžik ukončení a její výsledek je převzat jako výsledek mateřské operace. Proto je vždy při aplikaci metody rozbor (=
•
•
•
•
při přiřazení vnitřního procesu operaci) uživatel upozorněn, že dosavadní způsob dokončení (mateřské) operace bude ztracen a automaticky nahrazen nastavením ukončovatel = „vnitřní“. Operace vnitřního procesu, které leží v posloupnosti operací mezi počáteční značkou a koncovou značkou, se při aplikaci metody „rozbor“ umisťují do časové osy tak, aby čas dokončení poslední z nich odpovídal stanovenému času dokončení mateřské operace. Přitom jsou zachovány vzájemné vazby operací a jejich časové délky (jsouli stanoveny). Jejich časové polohy jsou zachovány relativně (= vzájemné časové polohy operací mezi sebou), takže na sebe navázané operace jsou do časové osy umístěny počínaje od stanoveného okamžiku dokončení mateřské operace směrem vpřed (proti času). Nemáli mateřská operace stanoven okamžik dokončení ale okamžik počátku, „skládají“ se operace vnitřního procesu mezi počáteční značkou a koncovou značkou od okamžiku počátku mateřské oparace směrem dál. Máli mateřská operace stanovenou dobu trvání (nebo okamžik počátku i okamžik konce) a souhrnná časová délka operací vnitřního procesu mezi počáteční značkou a koncovou značkou s touto dobou nesouhlasí, systém neakceptuje úkon, který tuto situaci vyvolal. Je přípustné, aby vnitřní proces obsahoval oprace, které začnou probíhat ještě před stanoveným časem začátku mateřské operace. Tyto (přípravné) operace musí být v předchůdcovské linii vedoucí k první operaci po počáteční značce a jejich čas počátku musí být stanoven (přímo nebo výpočtem pomocí jejich dob trvání). Dále je přípustné, aby vnitřní proces obsahoval operace, které budou dobíhat ještě po skončení mateřské operace („dozvuky“). Mateřská operace nemá žádné vlastní účastníky ani prostředkyukazatele, ale shrnuje vše, co potřebují operace v jejím vnitřním procesu: souhrnná doba trvání operace (= časová délka časově nejdelší větve posloupnosti operací vnitřního procesu mezi počáteční a koncovou značkou), seznam účastníků jako souhrnný „průmět“ účastníků všech operací vnitřního procesu (výčet unikátních záznamů role + skupina účastníků + jméno/název účastníka) s uvedenou souhrnnou časovou délkou angažmá každého z nich v operacích vnitřního procesu), součet všech prostředkůukazatelů (množství) všech operací vnitřního procesu. V případě vztahu k předchůdcům typu logický součet se při výpočtu výše uvedených souhrnů bere v úvahu vždy nejkritičtější větev variantní posloupnosti operací vnitřního procesu (s největším množstvím prostředkuukazatele). Po dokončení všech operací vnitřního procesu (včetně operací dobíhajících po koncové značce) se nároky/spotřeba mateřské operace vyjádřená spotřebovaným časem účastníků operace, množstvím prostředkůukazatelů i dobou trvání operace automaticky zaktualizuje a uloží podle skutečnosti. Doba trvání operace se přitom počítá pouze od počáteční po koncovou značku! V souhrnu účastníků mateřské operace lze měnit pouze přiřazení konkrétních účastníků v rámci dané skupiny účastníků. Taková změna se (po potvrzovacím dialogu) promítne do všech operací vnitřního procesu, kde je změněný účastník (tedy odpovídající záznam role + skupina účastníků + jméno/název účastníka) angažován (hromadná změna „shora dolu“).
Při použití rozboru, kdy je operaci přiřazen odkaz na její vnitřní proces, dojde k synchronizaci účastníků této mateřské operace s souhrnem účastníků vnitřního procesu. Synchronizace proběhne takto:
•
•
•
zásahem uživatele je možné provázat navzájem účastníka mateřské operace a účastníka v souhrnu účastníků vnitřního procesu, podmínkou je shodná skupina účastníků obou provazovaných účastníků (názvy rolí v tomto případě zůstanou zachovány jiný v mateřské operaci, jiný v operacích vnitřního procesu) zbylí (neprovázaní) účastníci mateřské operace jsou automaticky ze seznamu účastníků mateřské operace vypuštěni (protože nejsou účastníky operací vnitřního procesu, takže nejsou zahrnuti do souhrnného výčtu) zbylí (neprovázaní) účastníci operací vnitřního procesu jsou automaticky zahrnuti do seznamu účastníků mateřské operace (převezme se celý záznam role + skupina účastníků + jméno/název účastníka)
2.2.3. Meziprocesový signál Meziprocesový signál slouží k vzájemné časové synchronizaci paralelně běžících procesů (např. směny personálu a grafikon spojů), kdy operace v jednom běžícím procesu „čeká“ na „zprávu“ o dokončení konkrétní operace v jiném běžícím procesu. Meziprocesový signál není vazba typu předchůdce – operace, ale pouze forma ukončení operace (ukončovatel operace = „signál“). Meziprocesový signál má tyto vlastnosti (podmínky): • Použít meziprocesový signál lze jen tehdy, existujeli již v jiném procesu operace, na jejíž dokončení je „vyslání signálu“ vázáno. • Meziprocesový signál smí být vždy jen v rámci stejného dne, tedy „vysílající“ i „čekající“ operace musí mít plánovaný začátek (den a čas zahájení) ve stejném dni (skutečný začátek se může vlivem předchůdcovských vazeb opozdit přes půlnoc). • Při odkazování na „vysílající“ operaci v jiném procesu se odkazuje jejím absolutním názvem v rámci celého systému (viz názvoslovná pravidla popsaná dále). Typickým příkladem použití meziprocesového signálu je konec směny personálu v procesu „Směny...“, který je vázán (se stanoveným časovým offsetem) na příjezd vlaku do konečné stanice (detekováno GPS hlásičem) v paralelně běžícím procesu „Grafikon...“. 2.2.4. Provazování účastníků Mezi dvěma či více operacemi jednoho procesu je možné (zásahem uživatele) vytvořit provázání účastníků, takže jeden konkrétní účastník postupně zastává provázané role v různých operacích (např. strojvedoucí v průběhu směny postupně veze několik vlaků). Při změně skupiny účastníků či jména/názvu konkrétního účastníka u jednoho provázaného účastníka je uživatel dotázán, zda účastníka vyjmout z provázání a změnu provést pouze u něj, a nebo zda změnu promítnout u všech operací, kde je účastník provázán. Změna role se nepromítá, týká se vždy jen jedné operace. Na pořadí provazování účastníků nezáleží, protože provázání pouze sjednotí účastníky do jednoho provázaného účastníka, bez vlivu na pořadí provádění operací. Vytvořit vazbu mezi účastníky lze některým z těchto způsobů: • „převzít“ existujícího účastníka jedné operace jako nového účastníka druhé operace (převezme se celý záznam role + skupina účastníků + jméno/název účastníka) • provázat navzájem existující účastníky dvou operací; podmínkou je shodná skupina účastníků obou provazovaných účastníků (dosavadní názvy rolí zůstanou v obou
operacích zachovány) Vazby mezi účastníky lze v plném rozsahu aplikovat i v případě, kdy jedna z operací je mateřskou operací (= je rozebrána pomocí vnitřního procesu). Přímé provázání účastníků mezi různými úrovněmi procesu (z operace do vnitřního procesu některé ze sousedních operací) však není možné. Takovou vazbu je třeba řešit jako vazbu na účastníka mateřské operace a pak dále pomocí vlastností metody „rozbor“, popsané v samostatné kapitole. Pro označení provázaného účastníka (jehož názvy rolí se můžou operace od operace lišit) se v kontextu procesu či mateřské operace (např. v souhrnu účastníků mateřské operace) použije název (relativní či absolutní) role časově první operace v procesu, jíž se provázaná role účastní. Provázání účastníků lze zásahem uživatele zrušit dvěma způsoby: • účastník se vyjme z provázanosti: tím zůstane účastník samostatně existovat v operaci, kde byl vyjmut, a zbytek provázaných účastníků zůstane i nadále provázán v operacích beze změny (= byl vyjmut jeden z množiny, množina existuje dál) • provázanost účastníků se přeruší (rozdělí na dvě skupiny): tím vznikne skupina provázaných účastníků operací ležících v časové ose před operací, na které se změna provázání provádí, a dále skupina provázaných účastníků operací počínaje operací, na které se změna provádí, do budoucna (= provázání bylo „přeťato“ v určitý časový okamžik a vznikly dvě na sobě nezávislé množiny provázaností) Při každé změně provázaného účastníka, včetně změny jeho skupiny účastníků, je uživatel automaticky dotázán, zda změnu aplikovat na všech provázaných účastnících, daného účastníka vyjmout z provázanosti a nebo změnu provést počínaje danou operací do budoucna. Podle výsledku uživatelovy volby pak může dojít ke zrušení provázaní účastníků. 2.2.5. Meziprocesové obsazování účastníků Obsazování rolí u operací jednoho procesu („obsazovaný“) konkrétními účastníky může být řešeno pomocí jiného procesu „turnusu“, a to na principu jednosměrného provazování účastníků mezi různými procesy. Turnus je proces (s relativní či absolutní časovou osou), složený z posloupnosti operací reprezentující směny účastníka. Tyto operace (turnusové operace) musí obsahovat účastníka, jehož obsazování řídí, a ten musí být mezi těmito operacemi provázán. Účastník (resp. jeho role) takové operace se pak (zásahem uživatele) jednosměrně prováže s vybranými operacemi obsazovaného procesu, které tím obsadí. Je přípustné, aby turnusová operace obsahovala víc než jednoho účastníka a řídila tím více obsazování současně. Meziprocesové obsazování účastníků je tedy druh metody provazování účastníků, popsané v samostatné kapitole, avšak s těmito odlišnostmi: • provazují se účastníci operací „ležících“ v různých procesech • provázat lze pouze účastníky těch operací, (turnusové s obsazované), jejichž okamžik zahájení je stanoven na stejný den, protože turnusová operace „vnutí“ obsazení provázaného účastníka obsazované operaci ve stejném dni • Změna skupiny účastníků či jména/názvu konkrétního účastníka u účastníka turnusové operace se promítne do všech obsazovaných operací. Změna skupiny účastníků či jména/názvu konkrétního účastníka u obsazované operace se zpětně do turnusové operace nepromítne; uživatel je upozorněn potvrzovancím
dialogem a daná operace je automaticky vyjmuta z meziprocesového obsazování (provázání) účastníků. Změny již provázaných rolí se nijak vzájemně nepromítají, název role je vždy omezen na konkrétní operaci. 2.3. Názvoslovná pravidla Názvy procesů, operací a rolí účastníků mohou být uváděny buďto v absolutní nebo relativní formě. Pojmy absolutní a relativní zde mají obdobný význam jako v případě zápisu URL adres, tedy absolutní identifikuje danou entitu v rámci celého systému (obsahuje celou „cestu“ názvů), zatímco relativní identifikuje danou entitu pouze v rámci určité nadřazené entity (obsahuje pouze „cestu“ názvů v rámci některé z nadřazených entit). Pro zachování přehlednosti se názvy uvádí v těchto formátech: • absolutní název operace: rekurzivní zápis formátu [
: : ] (např. „Čekání na přípojný autobus v Přerově : Spoj Praha – Bystřice : Vlak 1359“) •
relativní název operace v rámci nadřazené entity: stejné jako u absolutního názvu, ale rekurzivně pouze po zvolenou z nadřazených entit (např. relativní název operace v rámci vnitřního procesu „Spoj Praha – Karviná“ zní „Čekání na přípojný autobus v Přerově“)
•
názvy procesů se zapisují podle stejných pravidel jako názvy operací
•
role účastníka se označuje tak, že se před název operace (ať už relativní či absolutní) připojí název role účastníka oddělený znakem „@“: (např. „strojvedoucí PhaBoh @ Střídání na ose Bohumín : Vlak 1359 PhaBys : GVD2016“)
Název podle výše popsaného formátu musí být v rámci jednoho dne daného procesu unikátní. Jeli proces periodický, je ta část názvu, která není jednoznačná, doplněna v závorkách datumem jejího počátku (u relativní časové osy se použije pořadové číslo dne). Příklad: V procesu GVD2017 je v každém dni operace „1359 PhaBys“. Prosté označení „1359 PhaBys : GVD2017“ by nebylo jednoznačné, proto je nejednoznačná část názvu doplněna datem do tvaru „1359 PhaBys (21.6.2017) : GVD2017“ nebo v případě relativní časové osy „1359 PhaBys (den 6) : GVD2017“. 2.4. Práce s procesy Základem práce na modelu procesu je sestavení procesu z jednotlivých operací. Jakmile je nějaký (základní) proces sestaven, je možné s ním dále pracovat a postupně sestavit celý komplexní model procesu (procesů). K tomu lze využít následující akce (popsané v následujících kapitolách): • generování periodickým opakováním • slučování procesů • zkracování procesu a manilupace s jeho dny • změna časové osy • zdvojení operace • spouštění / zastavování procesů
O tom, které akce lze s procesem provádět, rozhoduje status procesu, který nabývá těchto hodnot: • v přípravě (výchozí status procesu proces nelze okamžitě spustit ani jeho spuštění naplánovat) • spustitelný (proces lze okamžitě spustit nebo jeho spuštění naplánovat) • naplánovaný (proces má stanoveno datum spuštění; spuštění nastane automaticky v 00:00 nastaveného data) • probíhající (proces aktuálně běží; této hodnoty status nabude při okamžitém nebo naplánovaném spuštění) • pozastavený (běh procesu byl zastaven dispečerem, aniž by doběhly všechny jeho operace) • dokončený (běh procesu skončil doběhnutím všech jeho operací) 2.4.1. Generování periodickým opakováním Generování periodickým opakováním je metodou k sestavování procesů, při nímž je nový proces vytvořen periodickým opakováním zvoleného (zdrojového) procesu. Jako zdrojový proces ke generování může být použit jakýkoliv proces (již pojmenovaný a uložený) s relativní časovou osou. Generování periodickým opakováním je jednorázová akce, při níž je zvolen zdrojový proces a zadán počet dnů, po který má být opakován. Zdrojový proces je pak při generování opakovaně „skládán“ za sebe tak, že jeho nový „běh“ započne následující den po ukončení předchozího běhu. Máli některá z operací následujícího „běhu“ mít jako předchůdce některou z operací předchozího „běhu“, musí být tato vazba předchůdce – operace definována již ve zdrojovém procesu (okamžik počátku předchůdce bude ležet časově až za počátkem operace). Majíli operace zdrojového procesu provázaného účastníka (např. „operace A“ a „operace B“), provázání je, samozřejmě, provedeno u všech „běhů“ periodického opakování, ale navíc je provedeno i napříč „běhy“ (tedy účastník je svázán u všech výskytů „operace A“ i „operace B“ dohromady). 2.4.2. Slučování procesů Slučování procesů je metoda tvorby procesů, při které je do existujícího (cílového) procesu vložen jiný existující proces. Vložení proběhne promítnutím operací v časové ose vkládaného procesu do časové osy cílového procesu. Časová osa výsledného procesu je automaticky upravena tak, aby pojmula časové rozsahy (období) časových os obou slučovaných procesů. Při slučování platí tyto pravidla: • majíli oba slučované procesy absolutní časové osy, sloučení proběhne bez dalších dotazů • máli vkládaný proces abslolutní časovou osu a cílový proces osu relativní, sloučení nelze provést • máli vkládaný proces relativní časovou osu, je uživatel při slučování vyzván k zadání offsetu počátku časové osy vkládaného procesu vůči časové ose cílového procesu; s tímto offsetem pak sloučení časových os obou procesů proběhne
2.4.3. Zkracování procesu a manipulace s dny Procesy lze upravovat pomocí jejich časové osy manipulacemi s celými dny takto: • Existující (zpravidla dlouhý) proces lze zkrátit „odřezáním“ dnů od zvoleného dne doprava (do budoucna). • Existující (zpravidla dlouhý) proces lze zkrátit „odřezáním“ dnů od zvoleného dne doleva (do minulosti). • Zvolený den nebo posloupnost dnů lze vymazat. • Zvolený den nebo posloupnost dnů lze zkopírovat a vložit na jiné místo („vložit před“). Při výše uvedených manipulacích musí uživatel ošetřit vazby mezi operacemi dotčených dnů ručně, automaticky se kopírují pouze vazby v rámci dne nebo mezi dny kopírovaným jako souvislý blok. 2.4.4. Změna časové osy Proces může mít buďto absolutní (když je zadáno datum počátku) nebo relativní časovou osu. Druh časové osy lze změnit zadáním resp. vymazáním datumu počátku časové osy. U absolutní časové osy je dále možné změnit datum jejího počátku. Tyto změny lze provádět pouze u procesů se statusem „v přípravě“ a „spustitelný“. Uživatel je vždy upozorněn, že tímto krokem mění druh resp. datumovou polohu časové osy a je požádán o potvrzení tohoto úmyslu. Změna druhu časové osy nebo datumu jejího počátku se dotkne nejen označení jednotlivých dnů časové osy (např. Den 1 – 21. 6. 2016), ale i všech datumových údajů u operací daného procesu (typicky den a čas zahájení a den a čas dokončení operace). 2.4.5. Zdvojení operace K provedení (operativní) změny průběhu procesu je možné využít nástroj asistovaného zdvojení operace. Tento nástroj má charakter průvodce, který pomáhá podle existující operace vytvořit její kopii s tímto výsledkem: • Uživatel může zadat názvy obou exemplářů operace (původní operace i její kopie), přičemž defaultní je dosavadní název, u kopie doplněný „ kopie“. • Jeli původní operace rozebrána vnitřním procesem, je stejným vnitřním procesem rozebrána i její kopie. • Účastníci původní operace, kteří jsou provázáni, jsou provázáni i u kopie operace. • Máli původní operace vazby na předchůdce, má stejné vazby i její kopie. • Jeli původní operace předchůdcem pro nějakou (následnou) operaci, zobrazí se uživateli varování, že tato vazba nebude zkopírována (zůstane pouze u původní operace). • Jeli původní operace „vysílačem“ meziprocesového signálu, zobrazí se uživateli varování, že tato funkce nebude zkopírována (zůstane pouze u původní operace). • Řídíli operace obsazování účastníků jiných operací pomocí meziprocesového obsazování účastníků, zobrazí se uživateli varování, že tato funkce nebude zkopírována (zůstane pouze u původní operace). • Všechna varování se zobrazí souhrnně a uživatel má možnost si vybrat, zda je vezme na vědomí a nebo zda zdvojení operace zruší.
Původní operace (originál)
░1234567 ░1234567
?
√
Bohumín Bohumín
← --: → ░1234567 ░1234567 příj. Bystřice příj. Bystřice
15:41 GPS
√
15:41
14:48
← --: →
všechno
odjezd Praha odjezd Praha
?
14:46
GPS
░1234567 ░1234567
11:11
všechno
← --: →
GPS
11:11
?
střídání strojvedoucích
14:48
← --: → ░1234567 ░1234567
GPS
√
všechno
14:46
?
Bohumín - kopie Bohumín - kopie
střídání strojvedoucích
Kopie operace („dvojče“)
Obr.: Výsledek zdvojení operace 2.4.6. Spouštění a zastavování procesů Dispečerský systém umožňuje současný běh (teoreticky) neomezeného množství procesů. Rozhodujícím parametrem pro spouštění procesů je status procesu. Označit proces za spustitelný, spustit proces, naplánovat jeho spuštění a nebo běžící proces zastavit může jen uživatel s příslušnými právy (viz kapitola popisující uživatelské rozhraní). Proces lze spustit nebo jeho spuštění naplánovat jen pokud jsou splněny všechny tyto podmínky: • proces má status „spustitelný“ nebo „pozastavený“ a všechny v něm použité vnitřní procesy mají status „spustitelný“ • všechny procesy, jejichž meziprocesového signálu je daný proces příjemcem, již běží nebo je naplánováno jejich spuštění současně s naplánováním spuštění daného procesu (jejich spuštění je též nabídnuto automaticky systémem při pokusu o spuštění či naplánování daného procesu) Při pokusu o okamžité spuštění či naplánování spuštění procesu jsou tyto podmínky automaticky ověřeny a pokud není některá z nich splněna, je uživateli nabídnuta možnost automatické nápravy. Spouštění procesů (okamžité i naplánované) má tyto vlastnosti: • proces s absolutní časovou osou po spuštění automaticky běží od toho dne časové osy, jehož datum odpovídá aktuálnímu datumu (jeli spuštěn před počátkem své absolutní časové osy, začnou se operace prvního dne časové osy provádět až nastane odpovídající datum) • proces s relativní časovou osou lze spustit (či na naplánovat spuštění) od počátku časové osy, a nebo stanovit, od kterého pořadového dne jeho relativní časové osy se proces spustí • proces (spuštěný okamžitě nebo naplánovaně) začíná řešit operace ležící v časové ose prvního dne jeho běhu (= dne od kterého byla časová osa spuštěna), a to postupně od času 0:00 • u všech operací se statusem „očekávaná“, „naplánovaná“ či „probíhající“ ležících
•
v časové ose přede dnem, od kterého proces začíná běžet, se při spuštění procesu automaticky nastaví status operace na „zrušená“; jiné statusy operací ležících v časové ose přede dnem, od kterého proces začíná běžet, zůstávají zachovány spouštění vnitřního procesu mateřskou operací je bráno vždy jako nové spuštění procesu, bez jakékoliv vazby na předchozí běh tohoto vnitřního procesu
Vyjma procesů automaticky spuštěných jiným procesem (jako vnitřní proces některé z jeho operací), způsobuje běh procesu změny procesu: parametry operací, zejména časové údaje, se automaticky aktualizují podle skutečného průběhu procesu (viz kapitola popisující operaci a její základení parametry). Jeli běžící proces zastaven (dispečerem), jeho status se automaticky změní na „pozastavený“. Pokud je pak v průběhu stejného dne znovu spuštěn, v důsledku výše uvedených vlastností běh procesu plynule naváže a pokračuje tam, kde byl předtím zastaven. Jeli žádoucí, aby při znovuspuštění procesu některá operace neproběhla (např. hrozíli nebezpečí, že vlivem souvislostí zůstane znovuspuštěný proces „viset“ na nějaké operaci), je třeba tuto situaci ošetřit úpravou procesu před znovuspuštěním (zpravidla zrušením příslušené operace).
3. OŠETŘENÍ PROBLÉMŮ Vznikneli kdykoliv (z jakéhokoliv důvodu a v jakékoliv fázi práce) logický nesoulad v modelu procesů (navzájem kolidující operace, porušení podmínek předchůdců, časová kolize v alokaci účastníků, apod.), reaguje systém podle stupně závažnosti problému. Jednotlivé problémy, jejich zařazení do stupňů závažnosti a příslušné reakce systému jsou definovány zde: Stupeň závažnosti 1 Reakce systému:
• •
zvýraznění problémové operace (operací) varovná hláška
Možná řešení (varianty):
• •
aktualizace (oprava) modelu procesů odstraňující problém potvrzení, že problém je možno ignorovat Problémy spadající do tohoto stupně
Dokončení operace před stanoveným časem jejího začátku Nedokončení operace do stanoveného času dokončení Použití procesu s absolutní časovou osou jako vnitřní proces Pokus o uložení procesu pod názvem, který již existuje. Stupeň závažnosti 2 Reakce systému:
• • •
zvýraznění problémové operace (operací) varovná hláška zablokování možnosti změnit status problémové operace (operací) na „naplánovaná“ či „dokončená“
Možná řešení (varianty):
•
aktualizace (oprava) modelu procesů odstraňující problém Problémy spadající do tohoto stupně
Konkrétní účastník je ve stejný okamžik alokován u více alespoň částečně paralelně probíhajících operací jednoho procesu (kolize alokace časové kapacity účastníka); včetně případu, kdy koliduje účastník jako součást složeného účastníka. U jednoho procesu alokován větší počet účastníků skupiny účastníků, než je její stav (počet k dispozici) Množství prostředkuukazatele se v kterémkoliv okamžiku dostane pod minimální nebo nad maximální nastavenou mez Logický nesoulad času zahájení, doby trvání operace a času dokončení (třetí z nich musí být vždy součtem prvních dvou) Operace má být ukončena hlásičem účastníka informujícím o zadaném ukazateli, avšak role v operaci není obsazena účastníkem, který má asociován hlásič informující o tomto ukazateli.
Stupeň závažnosti 3 Reakce systému:
• •
neakceptování úkonu, kterým problém vznikl výzva k opravě
Možná řešení (varianty):
•
okamžitá oprava zamýšleného úkonu Problémy spadající do tohoto stupně
Pokus o provázání dvou účastníků různých skupin účastníků Pokus o použití procesu s absolutní časovou osou jako fragmentu pro generování procesu periodickým opakováním Pokus o sloučení procesu s absolutní časovou osou (vkládaný proces) s procesem s relativní časovou osou (cílový proces) Pokus o zacyklení účastníků (vytvoření smyčky vzájemně vložených účastníků nevhodnou definicí skupin účastníků). Pokus o vytvoření vazby předchůdce – operace porušující časovou souslednost v procesu s absolutní časovou osou. Nesoulad časové délky (doby trvání) mateřské operace a jejího vnitřního procesu. Pokus o přidělení nového názvu operace, který již v daném procesu ve stejném dni existuje. Přípravné operace vnitřního procesu (operace v předchůdcovské linii vedoucí k první operaci po počáteční značce nemají stanoven čas jejich počátku (přímo ani výpočtem pomocí jejich dob trvání). Pokus asociovat s účastníkem hlásič zasílající ukazatel, který již zasílá jiný hlásič asociovaný s tímto účastníkem.
4. POMOCNÉ SOUČÁSTI SYSTÉMU Model procesů (i celá činnost dispečerského systému) je postaven jako hierarchická struktura datových entit různého typu. Tyto entity jsou uloženy v databázích popsaných v následujících kapitolách. S ohledem na zachování konzistence této struktury mají všechny databáze, jež jsou součástí dispečerského systému, tyto specifické valstnosti: • Záznam v databázi nelze vymazat, lze jej pouze zneplatnit, aby zůstal k dispozici pro jiné (často archivní) entity, které se na něj odkazují. Možnost zobrazení a možnost volby (kliknutí) zneplatněného záznamu závisí na významu volby (významu v aplikaci) a právech uživatele. • Při editaci záznamu se před uložením zobrazí dialog nabízející volbu mezi třemi možnostmi: přepsat/opravit stávající záznam (což se projeví ve všech entitách, které se na něj odkazují i v archivních), zaktualizovat od nynějška (projeví se v procesech s relativní časovou osou všude, v procesech s absolutní časovou osou jen od aktuálního časového okamžiku do budoucnosti) a nebo uložit jako zcela nový (nezávislý) záznam (pro případné budoucí použití – klonování záznamu). 4.1. Databáze procesů Databáze procesů je úložištěm připravených/připravovaných procesů, na které se v systému odkazuje a se kterými se dále pracuje. Každý proces uložený v Databázi procesů je jednoznačně identifikován názvem procesu. Záznam v databázi obsahuje dále parametr datum počátku datum prvního dne časové osy procesu a individuální práva uživatelů k danému procesu (prohlížení, editace, spouštění). Kromě těchto údajů obsahuje data popisující samotný proces, jeho prostředky ukazatele a přiřazení účastníků. Záznam v databázi má tedy tuto strukturu: • ID procesu (primární klíč) • Název procesu (musí být unikátní) • Datum počátku (datum) • Datová entita popisující proces, včetně účastníků a prostředkůukazatelů (vhodná datová struktura) 4.2. Databáze účastníků Databáze účastníků slouží ke správě „zásob“ účastníků, kteří jsou k dispozici k účasti na jednotlivých operacích. U každého účastníka je uvedeno datum počátku platnosti („Platnost od“) a může být uvedeno datum konce platnosti („Platnost do“). Každý účastník v databázi může obsahovat seznam odkazů na jiné účastníky v databázi (viz kapitola popisující účastníky). To může mít dva způsoby využití: • jedná se o složeného účastníka, obsahujícího seznam jeho součástí (= účastníli se účastník, musí se účastnit všechny jeho součásti) • jedná se název skupiny účastníků (= jeli uvedena potřeba účasti, znamená to, že se musí zúčastnit jeden konkrétní účastník z takové skupiny) O tom, kterým z výše uvedených způsobů bude interpretován název účastníka i jeho seznam odkazů, rozhoduje parametr typ účastníka, který může nabývat dvou hodnot: skupina / složený účastník.
Vytváření účastnických struktur tím, že složený účastník obsahuje jiného složeného účastníka, skupina obsahuje skupinu, či použití vzájemné kombinace skupiny a složeného účastníka je dovoleno, pokud tím nevznikne zacyklení účastníků. Jeli v systému požadován vstup/volba jména účastníka a je zvolen účastník, který je skupinou, opakuje se volba mezi členy zvolené skupiny (rekurzivně jako při otevírání adresářů ve filesystému) tak dlouho, dokud není zvolen účastník, který není skupinou (složeným účastníkem být může). Záznam v databázi má tedy tuto strukturu: • ID účastníka (primární klíč) • Název účastníka (musí být unikátní) • Typ účastníka (přípustné hodnoty: „Skupina“, „Složený účastník“) • Platnost od (datum) • Platnost do (datum) • Seznam odkazů (dynamický seznam odkazů na jiné záznamy v Databázi účastníků; jeli typ účastníka = „Skupina“, pak se pro tento seznam používá popisek „Členové“, jinak se používá „Součásti“) 4.3. Databáze ukazatelů Databáze ukazatelů slouží k definici a správě veličin, používaných jako ukazatele operací (spotřebovávaný či produkovaný materiál prostředky) a také sdělovaných hlásiči. Databáze definuje jejich parametry, ale neslouží k průběžné správě jejich množství. Každý ukazatel má v databázi definovánu jednotku, ve které se jeho množství vyjadřuje, maximální a minimální mez stavu/zásoby tohoto ukazatele (nepovinné parametry používané se při hlídání aktuálního stavu/zásoby prostředku při běhu procesů) a dále příznak, zda je jeho množství vyjadřováno v desetinných číslech či nikoliv. Záznam v databázi má tedy tuto strukturu: • ID ukazatele (primární klíč) • Název ukazatele (musí být unikátní) • Jednotka • Desetinné (logická hodnota) • Maximální mez • Minimální mez 4.4. Databáze lokalit Databáze lokalit definuje GPS body lokality, pro použití v podmínkách dokončování operací. Každá lokalita je určena GPS souřadnicemi jejího středu a průměrem kruhu (oblasti) kolem těchto souřadnic. Tento kruh určuje oblast citlivosti lokality. Pokud se GPS hlásič nachází uvnitř kruhu, je splněna podmínka, že se nachází v lokalitě daného názvu. Záznam v databázi má tedy tuto strukturu: • ID lokality (primární klíč) • Název lokality (musí být unikátní) • GPS šířka • GPS délka • Průměr oblasti (kruhu v metrech)
4.5. Hlásiče událostí a Databáze hlásičů Hlásiče událostí jsou zdroje informací o průběhu procesů. Pro úspěšnou spolupráci systému s hlásičem musí systém obsahovat příslušné rozhraní. Tato rozhraní jsou pro každý hlásič specifická (např. propojení s různými externími IT systémy), ale jejich základní charakteristiky (stran poskytovaných funkčností) jsou pro celý druh hlásičů stejné. Požadavky na tato rozhraní jsou popsány společně s příslušným druhem hlásičů v následujících kapitolách. Systém počítá s použitím čtyř druhů hlásičů: • vozidlové hlásiče (zařízení ve vozidlech odesílající informace o poloze vozidla a jeho stavu) • mobilní terminály (mobilní zařízení na Android platformě s aplikací pro mobilní sběr dat) • webové terminály (části webového rozhraní pro zobrazování plánu činnosti účastníka a potvrzování jejího průběhu) • datové hlásiče (externí IT systémy zasílající datově informace) Ke správě hlásičů slouží Databáze hlásičů. Databáze hlásičů obsahuje pro každý hlásič: • unikátní název hlásiče (např. „GPS 4800025“) • nositel/přiřazení (odkaz do Databáze účastníků na účastníka, se kterým je hlásič asociovaný) • hlášená veličina (odkaz do Databáze ukazatelů na ukazatel/veličinu hlášenou hlásičem) • parametry potřebné pro komunikaci s hlásičem (např. IP adresu a parametry potřebné pro odeslání a vyhodnocení dotazu) 4.5.1. Vozidlové hlásiče GPS Vozidlový hlásič je zdroj informací o určitém ukazateli (z Databáze ukazatelů), asociovaný s konkrétním účastníkem (primárně vozidlem) prostřednictvím Databáze účastníků. Účastník nesmí mít asociováno více hlásičů zasílajících stejný ukazatel. Stěžejní funkcí vozidlového zařízení je poskytování informace (= ukazatele) o GPS poloze, ale kromě toho může posílat i jiné informace (= ukazatele) o stavu vozidla (analogové i digitální). Pro každý zasílaný ukazatel musí být samostatný záznam v Databázi hlásičů (poskytujeli zařízení ve vozidle např. 3 různé ukazatele, musí být v Databázi hlásičů třikrát jako 3 hlásiče, ačkoliv se jedná o jedno zařízení). Informace jsou hlásičem posílány automaticky v nastaveném intervalu, zpravidla jednotkách sekund. Toto řešení je preferováno před variantou posílání informace jen při její změně, která vzhledem k vlastnostem GPS hrozí přebujením datového toku. 4.5.2. Mobilní terminály Mobilní terminál je mobilní zařízení na Android platformě s aplikací pro mobilní sběr dat. V Databázi hlásičů jsou mobilní terminály vedeny formou přihlašovacích údajů k aplikaci. Tak lze kterékoliv mobilní zařízení s příslušnou aplikací použít pro libovolného účastníka, přičemž účastník se identifikuje právě přihlašovacími údaji z Databáze hlásičů. Zadáním těchto údajů se z obecného zařízení s příslušnou aplikací stane konkrétní hlásič svázaný s konkrétním účastníkem, zasílající informace o určitém ukazateli. Máli zasílat informace o více ukazatelích, je třeba jej vícenásobně vložit do Databáze hlásičů (podobně jako vozidlové hlášiče).
Aplikace pro mobilní sběr dat po přihlášení uživatele umožňuje vymezenou interakci s dispečerským systémem, zejména potvrzování dokončení operací přihlášeným účastníkem. 4.5.3. Webové terminály Webové terminály jsou obdobou mobilních terminálů, avšak nejde o speciální aplikaci, ale o webové rozhraní s obdobnými funkcemi, jako má speciální aplikace mobilního terminálu. Princip práce s webovými terminály i způsob jejich vedení v Databázi hlásičů je stejný, jako u mobilních terminálů (viz samostatná kapitola popisující mobilní terminály). 4.5.4. Datové hlásiče Datové hlásiče jsou rozhraní zasílající externím IT systémům dotazy a vyhodnocující obdržené odpovědi. V okamžiku zahájení operace, u níž je ukončovatelem datový hlásič, provede hlásič příslušný typ dotazu na příslušný externí IT systém a přijme odpověď, zpravidla číslo, kterou vyhodnotí tak, aby výsledek byl „ANO“ či „NE“. Výsledek se pak převezme jako výsledek operace. Parametry hlásiče resp. události, kterou hlásič oznamuje, uvedené v Databázi hlásičů v případě datového hlásiče obsahují: • specifické parametry k navázání spojení s konkrétním externím IT systémem (např. LEVIS) • specifické parametry k získání požadované informace od externího IT systému (např. počet cestujících vlaku číslo XXXX s odjezdem dne DD.MM.RR přestupujících na autobus číslo YYYY) • referenční hodnotu (např. „0“) • způsob vyhodnocení obdržené informace (volbou z možností „je menší než referenční hodnota“, „je rovno referenční hodnotě“, „je větší než referenční hodnota“) Každý dotaz na daný hlásič vrací výsledek „ANO“ či „NE“. Pokud je tedy třeba rozlišit kvantitu ve více úrovních, než jednou referenční hodnotou (např. zda někdo z cestujících přestupuje a zda se tito přestupující vejdou do taxíku či je třeba objednat minibus), je třeba nadefinovat dva či více samostatných hlásičů, které se budou lišit referenční hodnotou (např. zda někdo přestupuje referenční hodnota je „0“ cestujících, zda je třeba objednat míslo taxi minibus referenční hodnota je „3“ cestující).
5. ROZHRANÍ Práce se systémem je podmíněna úspěšným přihlášením uživatele a její rozsah je omezen právy uživatele, která se sčítají. Práva jsou tato: • správa dispečerského systému (všechno) • správa Databáze procesů • správa Databáze ukazatelů • správa Databáze účastníků • správa Databáze hlásičů • příprava procesů (správa procesů) • spouštění procesů • komandování (omezeno na určitý typ účastníka: správa Databáze účastníků a přiřazování účastníků operacím více než týden dopředu od aktuálního data) • dispečer (práce se spuštěnými procesy včetně editace od dosud neproběhlých operací až po operace týden dopředu) • analýza (zobrazování výsledků/analýz) UPOZORNĚNÍ: Popsané rozhraní je základní úrovně. Po získání prvních zkušeností se systémem bude dospecifikována nadstavba tohoto rozhraní, usnadňující práci se systémem v podmínkách dopravního systému, pracujícího s entitou „spoj“, ležící v určité časové a GPS poloze a zajišťované několika účastníky. 5.1. Webové uživatelské rozhraní Webové rozhraní je strom navzájem odkazovaných stránek (pomocí linků). Strom stránek sestává ze stránek těchto základních typů (popsaných v dalších kapitolách): • Velín • Seznam • Podrobnosti (příslušné datové entity) • Vizualizace procesu Každá stránka obsahuje v záhlaví název/nadpis stránky a hlavní menu, jehož položky (=odkazy) vedou na stránky s příslušným obsahem a jsou aktivní (kliknutelné) v závislosti na právech přihlášeného uživatele. Hlavní menu má tyto položky: • Velín (výchozí stránka pro práci se systémem) • Procesy (správa Databáze procesů, jejich příprava a generování) • Účastníci (správa Databáze účastníků) • Prostředkyukazatele (správa Databáze ukazatelů) • Hlásiče (správa Databáze hlásičů a jejich parametrů) • Upozorňování (maticové nastavení informačních akcí (mail, SMS) v závislosti na událostech změnách) • Uživatelé (správa Databáze uživatelů a jejich práv) • Nastavení (nastavení chování systému) 5.1.1. Stránka Velín Velín je výchozím místem pro práci se systémem, které se zobrazí po přihlášení uživatele do webového rozhraní. Zobrazení jednotlivých částí obsahu a kliknutelnost odkazů závisí na právech přihlášeného uživatele. Při plých právech Velín poskytuje základní přehled v oblastech Procesy a operace, Účastníci a směny, Hlásiče a poloha, Ukazatele
a prostředky. Každé z těchto oblastí je věnována část prostoru na stránce tak, aby Velín jako takový nebyl rolovatelný (zobrazení se musí vejít na obrazovku/displej). Informace zobrazené na stránce Velín pro každou z oblastí jsou uvedeny níže. Oblast Procesy a operace: • Zpožděné operace Operace jsou zobrazeny ve formě stromového seznamu na základě jejich absolutního názvu tak, aby byla vizuálně zřejmá jejich příslušnost k mateřským operacím/procesům. Na stejných úrovních jsou položky setříděny chronologicky podle plánovaných časů zahájení a dokončení. Seznam může být rolovatelný vertikálně. U každé operace je zobrazen absolutní název (včetně příslušnosti k procesu a velikost jejího zpoždění (času zahájení či dokončení). Při umístění ukazatele myši na operaci se objeví „bublina“ s těmito podrobnostmi: ◦ vypočtený/stanovený čas zahájení ◦ vypočtený/stanovený čas dokončení ◦ ukončovatel •
Probíhající operace Operace jsou zobrazeny ve formě stromového seznamu na základě jejich absolutního názvu tak, aby byla vizuálně zřejmá jejich příslušnost k mateřským operacím/procesům. Na stejných úrovních jsou položky setříděny chronologicky podle plánovaných časů zahájení a dokončení. Seznam může být rolovatelný vertikálně. U každé operace je zobrazen absolutní název (včetně příslušnosti k procesu a čas zbývající do vypočteného/stanoveného času dokončení. Při umístění ukazatele myši na operaci se objeví „bublina“ s těmito podrobnostmi: ◦ vypočtený/stanovený čas zahájení ◦ vypočtený/stanovený čas dokončení ◦ ukončovatel
•
Procesy s naplánovaným spuštěním Procesy jsou zobrazeny ve formě stromového seznamu na základě jejich absolutního názvu tak, aby byla vizuálně zřejmá jejich příslušnost k mateřským operacím/procesům. Na stejných úrovních jsou položky setříděny chronologicky podle plánovaných časů zahájení a dokončení. Seznam může být rolovatelný vertikálně. U každého procesu je zobrazen absolutní název (včetně příslušnosti k procesu a datum naplánovaného spuštění.
Oblast účastníci a směny: • Účastníci v probíhajících operacích Zobrazen je abecedně řazený rolovatelný seznam názvů skupin účastníků, jejichž členové se účastní právě probíhajících operací. Za každou položkou je uveden jejich počet. Položky fungují jako odkazy (v závislosti na právech) na zobrazení stránky typu Seznam s příslušně filtrovaným seznamem účastníků = zobrazujícím právě se účastnící členy zvolené skupiny účastníků. •
Účastníci ve volnu Zobrazen je abecedně řazený rolovatelný seznam názvů skupin účastníků, jejichž členové se momentálně neúčastní probíhajících operací a u nichž je splněna časová podmínka ukončeného odpočinku. Za každou položkou je uveden jejich počet. Položky fungují jako odkazy (v závislosti na právech) na zobrazení stránky typu Seznam s příslušně filtrovaným seznamem účastníků = zobrazujícím ty členy
zvolené skupiny účastníků, kteří se právě neúčastní žádné operace a kteří „jsou odpočatí“. Oblast Hlásiče a poloha: • Mapa GPS hlásičů Zobrazena je mapa s polohou všech aktivních hlásičů poskytujících informaci o aktuální GPS poloze účastníka (vozidla), s nímž je hlásič asociován. Každý hlásič je znázorněn výrazným bodem s popiskem uvádějícím název asociovaného účastníka (vozidla). Kliknutím do mapy lze mapu zvětšit na celou stránku (obrazovku). Dále jsou k dispozici obvyklé funkce „zvětšit“ a „zmenšit“ mapu. Při umístění ukazatele myši na bod znázorňující hlásič se objeví „bublina“ s těmito podrobnostmi: ◦ název asciovaného účastníka (vozidla) ◦ aktuální GPS souřadnice ◦ aktuální rychlost ◦ doba od posledního updatu polohy (v sekundách) Kliknutí na bod znázorňující hlásič zobrazí stránku typu Seznam s ukazateli hlášenými tímto hlásičem. Kliknutím na položku tohoto seznamu (= ukazatel) lze zobrazit historií hodnot tohoto ukazatele hlášeného tímto hlásičem (opět stránka typu seznam). S využitím obecných vlastností stránky typu Seznam lze historii filtrovat (např. zadáním časového intervalu). Aktuální obsah seznamu (tabulky) lze zobrazit do grafu resp. mapy (v případě ukazatele GPS). •
Hlásiče Odkaz na stránku typu Seznam obsahují seznam hlásičů. S využitím obecných vlastností stránky typu Seznam lze obsah tabulky filtrovat a vyhledávat. Kliknutím na řádek tabulky se zobrazí stránka typu Seznam s historií hodnot ukazatelů hlášených tímto hlásičem (podrobnosti viz výše).
•
Účastníci s hlásiči Odkaz na stránku typu Seznam obsahují seznam účastníků asociovaných s hlásiči. Jedná se o obdobu sezamu hlásičů, ale uvedeny jsou pouze ty hlásiče, které mají asociovaného účastníka. Máli účastník asociovaných víc hlácičů, je každý z hlásičů uveden jako samostatná položka seznamu. V tabulce je oproti seznamu hlásičů uveden i sloupec s názvem účastníka, podle kterého je seznam implicitně setříděn, ostatní vlastnosti jsou stejné jako u seznamu hlásičů.
Oblast Ukazatele a prostředky: • Ukazatele/prostředky ovlivněné právě probíhajícími operacemi Zobrazen je abecedně řazený rolovatelný seznam ukazatelů (prostředků), jejichž množství je ovlivněno právě probíhajícími operacemi. U každého ukazatele je vhodně indikováno, zda je jeho hodnota ve stanovených mezích na začátku operace a zda je ve stanovených mezích po dokončení operace (předpoklad na základě parametrů operace). Položky fungují jako odkazy (v závislosti na právech) na zobrazení stránky typu Seznam s příslušně filtrovaným seznamem ukazatelů = zobrazujícím ukazatele ovlivňované právě probíhajícími operacemi. Kliknutím na položku tohoto seznamu se zobrazí stránka typu seznam s historií daného ukazatele. S využitím obecných vlastností stránky typu Seznam lze tuto historii filtrovat (např. zadáním časového intervalu). Aktuální obsah seznamu (tabulky) lze zobrazit do grafu resp. mapy (v případě ukazatele GPS). Při umístění ukazatele myši na položku v rolovatelném seznamu ukazatelů (prostředků) se objeví „bublina“ s těmito podrobnostmi:
◦ aktuální hodnota ukazatele (bere se stav na počátku probíhající operace) ◦ meze ukazatele Zvážit ještě toto: Každá ze skupin obsahuje pro každou z možných hodnot statusu operace odkaz vedoucí na zobrazení seznamu operací s daným statusem a v příslušné časové poloze. Kromě toho obsahuje každá skupina i následující speciální odkazy na zobrazení seznamů operací v příslušné časové poloze s následujícími parametry: • moje operace (zobrazeny operace, u nichž je přihlášený uživatel veden jako účastník) • všechny operace (zobrazeny všechny operace) • uzavřené operace (zobrazeny operace se statusy „dokončená s výsledkem ANO“, „dokončená s výsledkem NE“, „přeskočená“, „zrušená“ a „selhaná“) • neuzavřené operace (zobrazeny operace se statusy „očekávaná“ a „naplánovaná“) • zpožděné operace Dále Velín obsahuje odkazy na analytická zobrazení (výsledky a analýzy) seskupené podle druhu výsledků/analýz a v rámci skupiny rozčleněné podle bližších parametrů daného typu výsledku/analýzy (viz dále v samostatné kapitole). 5.1.2. Stránka typu Seznam Je vertikálně rolovatelná tabulka obsahující řádkový seznam položek, stránkovaný po v konfiguraci systému nastaveném počtu položek na stránku, seřazený a filtrovaný defaultně nebo podle druhu zobrazení (odkazu na něj vedoucího). Nad a pod tabulkou je stránkovací navigace, umožňující jednoklikové rolování po stránkách vpřed a vzad a skoky na první a poslední stránku. Tabulka má ukotvené dvouřádkové záhlaví. V jeho prvním řádku je možné pro každý sloupec zadat řetězec/číslo/interval (dle typu obsahu sloupce) k filtrování položek v tabulce (filtry ve sloucích mají vzájemnou vazbu logický součin) a zvolit seřazení zobrazených položek podle daného sloupce vzestupně/sestupně/nijak. Aktivní filtr (zadaný řetězec/číslo/interval) a seřazení je v záhlaví tabulky zvýrazněno z důvodu upozornění uživatele na filtrovaný resp. setříděný obsah seznamu v tabulce. Ve druhém řádku záhlaví je u každého sloupce se sumarizovatelným obsahem automaticky zobrazen jeho součet za celé aktuální filtrované/nefiltrované zobrazení tabulky (ne jen za na stránce zobrazenou část tabulky). V posledním sloupci tabulky jsou v řádku každé položky tabulky obsažena tlačítka (odkazy) k přímému provedení úkonů s položkou v daném řádku tabulky. Jsou aktivní (kliknutelná) v závislosti na okolnostech a právech přihlášeného uživatele. Dojdeli k návratu zpět na zobrazení tabulky po provedení akce (odskoku jinam) vyvolané klikem na některé z tlačítek v posledním sloupci tabulky, je řádek tabulky, z něhož byla akce vyvolána, zvýrazněn („řádkový kurzor“); zobrazení seznamu v tabulce musí být proto patřičně vertikálně „odrolováno“. Kliknutím kdekoliv do řádku tabulky se zobrazí podrobnosti položky v daném řádku, a to formou stránky typu Podrobnosti (viz dále). Stránka typu Seznam je využita zejména v těchto případech: • zobrazení různě filtrovaného a seřazeného seznamu operací (viz odkazy ve Velíně) • seznam hlásičů (podrobnosti viz stránka „Velín“ Oblast Hlásiče a poloha)
• • • •
seznam účastníků asociovaných s hlásiči (podrobnosti viz stránka „Velín“ Oblast Hlásiče a poloha) zobrazení historie zvolené operace (seznam s chronologicky řazenými verzemi dané operace se statusem „nahrazená“) zobrazení historie zvoleného hlásiče (podrobnosti viz stránka „Velín“ Oblast Hlásiče a poloha) ...
5.1.3. Stránka typu Podrobnosti Stránka typu Podrobnosti slouží k zobrazení formuláře s podrobnostmi o určité entitě. Obsahuje také tlačítka (odkazy) k přímému provedení úkonů se zobrazenou entitou (typicky „Uložit změny aktualizovat“, „Uložit jako novou klonovat“, „Zneplatnit jako smazat“, „Návrat bez uložení“ a další podle konkrétního použití). Jednotlivá tlačítka a pole formuláře jsou aktivní (editovatelná/kliknutelná) v závislosti na okolnostech a právech přihlášeného uživatele. Stránka typu Podrobnosti je využita k zobrazení podrobností těchto entit: • operace • účastník • ukazatel 5.1.4. Stránka Vizualizace procesu Stránky typu Vizualizace procesu je graficky optimalizovaná vizualizace procesu v časovém měřítku, znázorňující vzájemné vazby operací (předchůdce a rozbor), jejich časové polohy a vazby mezi účastníky. Dále umožňuje volitelně zobrazit časový harmonogram zvoleného účastníka či „stopu“ s grafickým časovým průběhem zvolených ukazatelů. Zobrazení je možné přepnout do podoby stránky typu Seznam a zobrazit operace v daném procesu formou tabulky. Stránka umožňuje běžné úkony s operacemi i celými procesy, plus některé speciální úkony, tedy celkem: • vytváření nových operací/procesů • kopírování operací/procesů • mazání operací/procesů • nahrazení operace vnitřním procesem • periodické generování procesů podle fragmentu procesu • vytváření vazeb mezi operacemi (předchůdce a rozbor) • vytváření vazeb mezi účastníky operací • hromadné úpravy operací, jejich ukazatelů a účastníků Stránka je využita k zobrazení procesu při: • monitorování průběhu spuštěných procesu (proces, který aktuálně běží) • přípravu (generování a editaci) procesů (různé fragmenty procesů používané při přípravě a úpravě procesů, který budou spuštěny Způsob vizuální interpretace procesu a jeho stavu je klíčovým faktorem ovlivňujícím efektivitu práce se systémem. Vizualizace procesu musí co nejintuitivnějším způsobem sdělovat tyto informace (prvky/stavy/skutečnosti): • polohu operace na časové ose
den a čas zahájení a den a čas ukončení operace dobu trvání operace název operace kalendářní platnost operace název vnitřního procesu počáteční značku a koncovou značku začátek směny a konec směny vazby od předchůdců a podmínky jejich vyhodnocení ukončovatele operace a požadovaný výsledek pro ukončení vazby na následující operace meziprocesové signály („vysílač“ a „přijímač“ meziprocesového signálu) provázání účastníků meziprocesové obsazování účastníků operace turnusová a operace obsazovaná
Požadovaný výsledek předchůdce: √x / √ / x Předchůdce 1 Předchůdce 2 Požadovaný počet splněných výsledků: něco/všechno
Kalendářní platnost
hh:mm √ x
název, bilance, množství, jednotka
Dny v týdnu
← hh:mm →
hh:mm
░1234567 Název operace
√
Vnitřní proces Účastníci: Vozidlo
role, skupina, jméno
Doba trvání
označení ukončovatele
Čas zahájení
všechno
• • • • • • • • • • • • •
Flirt
4800025
Strojvedoucí Strojvedoucí Boh
Glomba Roman
VK
VK Praha
Hronovský Lukáš
Stevard 1
SW Praha
Trnavský Lukáš
Stevard 2
SW Praha
Chvojková Monika
Stevard 3
SW Praha
Štencl Jiří
Čas ukončení
Výsledek operace: ? / √ / x
Další operace Ukončovatel: hlásič účastníka, potvrzení dispečera, událost EXT, meziproc. signál, čas, vnitřní
Název vnitřního procesu
Prostředky: Dopravní cesta
+
64240
htrkm
Elektřina
+
1000000
kWh
Obr.: Návrh uspořádání vizuální interpretace operace, jejích účastníků a prostředků Výše uvedené vizualizované položky (to jest každá část vizualizace operace) mohou nabývat různých barev podle jejich okamžitého stavu/statusu. Význam barev je tento:
Červená: potřeba zásahu (dispečera) – očekávané operace (doplnit parametry), běžící operace (potvrdit ukončení) Nažloutlá světle žlutá: naplánované (operace/proces) Ostře žlutá: probíhající (operace/proces) Zelená: dokončené/splněné (operace/proces, podmínky) Šedá: přeskočené (operace/proces) typicky z důvodu nesplnění podmínek předchůdcem Šedá s vybledlým (našedlým) písmem: zneplatněné (operace/proces, položka)
Zpožděné operace (zpožděno jejich zahájení nebo dokončení) blikají (barva tím není nijak dotčena). 5.2. Výsledky a analýzy Systém umožňuje pomocí odkazů ve Velíně zobrazit/vygenerovat přehledy těchto typů: • podklady pro mzdy (bude upřesněno) • spotřebu vymezené části procesu (přehled množství produkovaných resp. spotřebovaných ukazatelů a hodin alokovaných účastníků pro fakturaci výkonů LE • výkaz práce účastníka (přehled alokovaných hodin účastníka za zvolenou část procesu – vždy operace a alokovaný čas) • úspěšnost operací ve vymezené části procesu (přehled operací a jejich rozčlenění podle výsledného statusu, včetně včasnosti dokončení)
6. PRÁCE SE SYSTÉMEM V této kapitole jsou popsány postupy pro všechny předpokládané typové situace a úkony, které bude třeba se systémem řešit. Tento popis slouží jako návod k práci se systémem a současně jako sada testovacích kroků, které musí systém popsaným způsobem splnit. V některých případech jsou proto uvedeny požadavky na vzhled rozhraní a reakce systému. 6.1. Příprava modelu procesu: Příprava nového GVD Dispečerský systém umožňuje při přípravě modelu procesu, v tomto případě nového GVD, využít dva možné principiální přístupy nebo jejich kombinace. Jde o přístupy: • „zdola nahoru“ V tomto případě začíná tvorba modelu od sestavování posloupností operací dílčích procesů, které jsou pak použity jako vnitřní procesy pro postupnou syntézu procesů vyšších řádů („mateřských“ procesů), až po samotný hlavní proces. Tyto dílčí procesy musí jít do takových podrobností, aby byly podchyceny všechny potřebné detaily celého procesu. Tento přístup je výhodný, pokud se mění hlavní proces (např. časový rozvrh spojů GVD), ale technologické postupy se nemění, tedy lze využít již hotových dílčích procesů a využít je jako vnitřní procesy. •
„shora dolů“ V tomto případě začíná tvorba modelu sestavením posloupnosti operací hlavního procesu. Pro vybrané (důležité nebo komplexní) operace jsou následně vytvořeny vnitřní procesy, které tyto operace rozeberou a popíšou do potřebných detailů. Proces rozebírání se aplikuje pouze tam a opakuje tak dlouho, dokud nejsou podchyceny všechny potřebné detaily celého procesu. Tento přístup je výhodný, pokud se modeluje proces, pro který nelze využít již hotové komponenty (dílčí procesy), pokud není již předem známa přesná představa o všech detailech procesu, a nebo pokud se od dispečerského systému neočekává příliš komplexní podrobně propracované řízení/sledování daného procesu.
V dále popisovaném příkladu práce se systémem je použit druhý z obou přístupů, přičemž není vytvořen detailní model účastníků jednotlivých (elementrárních operací) – není to pro daný účel třeba. Obsazování (alokace časové kapacity) účastníků je řešeno směnovou formu, kdy operace oběhu soupravy mají jediného účastníka – konkrétní soupravu. Analogicky, každý člen personálu má svou posloupnost operací dle turnusu („persgraf“), které alokují jeho kapacitu v čase. Tyto směny personálu mají konce synchronizovány se skutečným plněním grafikonu při oběhu souprav tím, že jsou ukončnovány v závislosti na skutečném GPS hlášeném příjezdu daného vlaku v oběhu souprav (pomocí meziprocesového signálu). 6.1.1. Příprava fragmentu procesu oběhu souprav (jeden oběhový den GVD) Vytvoří se jednodenní proces s relativní časovou osou, který popisuje oběh souprav tak, že se posloupnosti operací všech oběhových dnů nachystají do jednoho dne pod sebe. Tento fragment nelze nachystat jako vícedenní proces proto, že u oběhů soupravy může být ve stanovených kalendářních dnech nadefinováno vzájemé nebo cyklické „prohození“ souprav v oběhu (tedy skoková změna oběhového dne). Fragment se tedy vytvoří takto: • Vlaky jedoucí přes půlnoc se rozdělí na vlak „do půlnoci“ a vlak „po půlnoci“. U všech vlaků se uvede čas počátku a čas dokončení operace podle stanoveného
jízdního řádu. Mezi vlaky se umístí operace s činnostmi, které musí soupravy absolvovat, a které nejsou součástí (jízdy) vlaku obratové úkony, depo, atd. Majíli tyto operace některý z časových parametrů pevně dán (čas počátku, dobu trvání nebo čas dokončení), je třeba jej operaci zadat. Všechny operace musí mít nastavenu kalendářní platnost. Pokud se průběh operace v některých dnech týdne liší, musí být nachystány všechny varianty této operace i s příslušnými kalendářními platnostmi (např. „jen úterý“ / „kromě úterý“). Jednotlivé operace se propojí vazbami předchůdce – operace tak, aby vznikla závislostní posloupnost. U operací s variantním průběhem v závislosti na kalendáři je třeba propojit jejich varianty paralelně; o tom, která se provede, rozhodne aktuální kalendářní den. Vždy poslední operace oběhového dne se sváže vazbou předchůdce – operace s první operací následujícího oběhového dne (ačkoliv se všechno chystá do jednodenního procesu). Všem operacím se nadefinuje jediný účastník role „vozidlo“, který se mezi všemi operacemi prováže. ?
1357 Pha-Bys 1357 Pha-Bys
√
10:22
11:11
?
1356 Kar-Pha 1356 Kar-Pha
√
░-2----░-2-----
14:55
?
1359 Pha-Boh 1359 Pha-Boh
√
všechno
?
1361/1363 Pha-Kce 1361/1363 Pha-Kce
1360 StM-Pha 1360 StM-Pha
?
√
1360 StMPha
← --: →
19:55
19:37
░1234567 ░1234567 1363 Pha-Ova 1363 Pha-Ova
?
√
← --: → ░1234567 ░1234567 1370 Ova-Pha 1370 Ova-Pha
√
← --: → ░1----6░1----6Vyskladnění Vyskladnění
:
?
:
√
← --: → ░1--4567 ░1--4567 Depo Depo do půlnoci do půlnoci
24:00
?
Vyskladnění :
√
?
← --: → ░-2345-7 ░-2345-7 Bez Bez vyskladnění vyskladnění
:
?
:
√
← --: → ░-23---░-23---Není depo Není depo
24:00
?
Příprava Praha
Depo od půlnoci - dlouhé Depo od půlnoci - dlouhé
?
:
1370 OvaPha
1363 PhaOva
:
░-2----░-2-----
23:26
všechno
√
░1234567 ░1234567
16:11
všechno
?
15:22
všechno
1355 Pha-StM 1355 Pha-StM
← --: →
← --: →
všechno
22:55
← --: →
všechno
░1234567 ░1234567
1355 PhaStM
00:00
?
1367/1369 Pha-půlnoc 1367/1369 Pha-půlnoc
░1234567 ░1234567
všechno
√
24:00
← --: → ░1234567 ░1234567
1367/1369 Phapůlnoc
všechno
√
Obrat Pha
všechno
1350/1352 půlnoc-Pha 1350/1352 půlnoc-Pha
12:31
12:08
všechno
?
░1234567 ░1234567
√
1361/1363 PhaKce ← --: →
Obrat StM
09:11
1350/1352 půlnocPha
√
1364 Kar-Pha 1364 Kar-Pha
1356/1358 KcePha 08:22 Obrat Praha
všechno
√
?
1356/1358 Kce-Pha 1356/1358 Kce-Pha
← --: →
19:11
?
14:11
13:22
← --: →
18:22
← --: → ░1-34567 ░1-34567
1364 KarPha
░1234567 ░1234567
1367/1369 půlnocKce 00:00
1357 PhaKar
O brat Praha
04:45
√
všechno
1367/1369 půlnoc-Kce 1367/1369 půlnoc-Kce
?
Obrat Kce
všechno
√
04:03
← --: → ░1234567 ░1234567
√
Obrat Kce
1357 Pha-Kar 1357 Pha-Kar
1354 StMPha 00:00
?
1350/1352 Kcepůlnoc
░1-34567 ░1-34567
14:39 všechno
√
?
1364 Boh-Pha 1364 Boh-Pha 1364 BohPha
14:04
← --: →
Obrat Kar
?
všechno
1354 StM-Pha 1354 StM-Pha
Obrat Praha
všechno
1348 StMPre
1349 PreStM
░1234567 ░1234567
10:11
18:22
← --: → ░-2----░-2-----
všechno
všechno
Obrat Praha
√
14:46
← --: →
1359 PhaBoh
√
?
1359 PhaBys
09:22
← --: →
1371 Pha-půlnoc 1371 Pha-půlnoc 1371 Phapůlnoc
?
1359 Pha-Bys 1359 Pha-Bys
11:11
06:28
24:00
← --: → ░1234567 ░1234567
15:41
░1-34567 ░1-34567
1356 KarPha
20:52
√
1366 BysPha
← --: →
všechno
░1234567 ░1234567
Obrat Praha
← --: →
všechno
Sv BohKar
1371 půlnocBoh
Příprava Boh
06:39
?
1366 Bys-Pha 1366 Bys-Pha
1357 PhaBys
√
20:22
← --: → ░1234567 ░1234567
všechno
░-2----░-2-----
Obrat Pha
16:05
14:42
← --: →
všechno
Obrat Praha
10:11
√
všechno
•
Obrat Ova
•
Obrat Praha
•
všechno
•
Obrat Bys
•
1353 PhaKar
← --: → ░1-34567 ░1-34567 1362 Kar-Pha 1362 Kar-Pha 1362 KarPha
16:22
?
17:11
√
← --: →
20:08
░1234567 ░1234567 1365 Pha-StM 1365 Pha-StM
?
1369 PreStM
12:39
√
Obrat Pre
?
1368 StMPre
1353 Pha-Kar 1353 Pha-Kar
12:04
všechno
√
← --: → ░1-34567 ░1-34567
Obrat Praha
08:11 √
všechno
?
Obrat Kar
Depo od půlnoci - krátké Depo od půlnoci - krátké
:
něco
← --: → ░1---567 ░1---567
Obrat Praha
všechno
00:00
√
1365 PhaStM
Obr.: Jeden oběhový den GVD 6.1.2. Doplnění o důležité momenty Jednotlivé vlaky a operace v oběhu souprav se pomocí metody „rozbor“ rozpitvají vnitřním procesem, který podchycuje odjezd z výchozí stanice, příjezd do konečné stanice a jiné provozně důležité události sloužící jako „vysílače“ meziprocesových signálů pro
synchronizaci jiných procesů s jízdou vlaku. • Tento proces je vhodné nachystat jako samostatný proces s relativní časovou osou tak, aby byl co nejuniverzálněji použitelný pro všechny vlaky resp. technologické úkony a pak je pouze „kolonovat“ (ukládat částečně upravené pod novým názvem) pro konkrétní vlaky či technologické úkony. V případě vlaku by měl proces obsahovat typicky ty z následujících operací, které jsou nezbytné pro namodelování potřebných situací: ◦ odjezd z výchozí stanice (čas počátku i čas dokončení = čas odjezdu; ukončení GPS polohou hlásiče (opuštění výchozí stanice)) ◦ příjezd nebo odjezd vlaku z důležité stanice, zejména pro přestupní vazby nebo střídání personálu (čas počátku = čas příjezdu nebo čas odjezdu, čas dokončení = čas odjezdu nebo čas příjezdu (co je vhodnější); název operace musí vystihovat, zda se jedá o příjezd nebo odjezd; ukončení GPS hlásičem) ◦ příjezd do konečné stanice (čas počátku i dokončení = čas příjezdu; ukončení GPS polohou hlásiče (vjezd do konečné stanice)) • Operacím tohoto procesu se zadá pouze potřeba jednoho účastníka role „vozidlo“. • Provede se provázání účastníků „vozidlo“ (souprava) mezi všemi operacemi vnitřního procesu. • Takto připravený obecný proces vlaku se uloží jako nový proces pro každý vlak a podle vlaku se nazve. Podle konkrétního vlaku se upraví časové polohy operací a GPS body (stanice). Případně se doplní či upraví všechny pro vlak důležité situace (viz výše). • Obdobně se připraví i vnitřní procesy popisující technologické úkony, které musí soupravy absolvovat mezi vlaky (obratové čistění, naskladňování, fekálování, atd.). • Všem vlakům (a podle potřeby i technologickým úkonům, které musí soupravy absolvovat mezi vlaky) se přiřadí připravené vnitřní procesy, přičemž se vždy účastník role „vozidlo“ prováže do mateřské operace. 11:11
vnitřní
všechno
√
15:41
← --: → ░1-34567 ░1-34567 1359 Pha-Bys 1359 Pha-Bys 1359 PhaBys
?
√
odj. Přerov odj. Přerov příj. Bohumín příj. Bohumín
?
√ √
14:48
?
√
Střídání na ose Střídání na ose Bohumín Bohumín
Účastníci:
SW Praha
Stevard 3
SW Praha
√
Čekat Čekat v Přerově v Přerově na 9562 ? na 9562 ?
?
√
:
← 00:00 → ░1234567 ░1234567 OK OK
14:41
:
← --: →
:
?
Nástup Nástup strojvedoucí strojvedoucí Boh-Bys Boh-Bys
← 00:05 →
:
░1234567 ░1234567
░1234567 ░1234567 ?
√
Odstup Odstup strojvedoucí strojvedoucí Pha-Boh Pha-Boh
čas
SW Praha
Stevard 2
x
všechno
Stevard 1
:
:
← --: → ░1234567 ░1234567
dispečer
:
čas
VK Praha
dispečer
VK
něco
Flirt
Strojvedoucí Strojvedoucí Boh
všechno
Vozidlo
?
Prostředky: Dopravní cesta
+
42250
Elektřina
+
1000000
kWh
Doba trvání
+
135
minut
htrkm
:
← --: →
:
?
Nástup Nástup četa četa Boh-Bys Boh-Bys
← 00:xy →
:
░1234567 ░1234567
░1234567 ░1234567 ?
√
Odstup Odstup čety čety Pha-Boh Pha-Boh
Obr.: Vnitřní proces jízdy vlaku (včetně zajištění přípoje a střídání posádek)
čas
14:xy
všechno
Čekání Čekání zajištěno zajištěno
:
dispečer
← --: → ░1234567 ░1234567
dispečer
√
všechno
:
← --: →
15:41
░1234567 ░1234567
?
odj. Bohumín odj. Bohumín příj. Bystřice příj. Bystřice
GPS
odj. Olomouc odj. Olomouc odj. Přerov odj. Přerov
14:48
← --: → ░1234567 ░1234567
všechno
√
14:46 √
GPS
?
14:46
← --: → ░1234567 ░1234567
všechno
odj. Praha odj. Praha odj. Olomouc odj. Olomouc
√
GPS
√
všechno
?
13:42
13:42
← --: → ░1234567 ░1234567
všechno
13:26
13:26
← --: → ░1234567 ░1234567
GPS
GPS
odjezd Praha odjezd Praha
11:11
GPS
11:11
← --: → ░1234567 ░1234567
všechno
11:11
?
?
07:21 všechno
vnitřní
√
08:11
← --: → ░1234567 ░1234567 Příprava Praha Příprava Praha
?
Ranní příprava Praha – s nástupem strojvedoucího
√
:
← 00:05 → ░1234567 ░1234567 Administrativa Administrativa
čas
Oživení Oživení vozidla vozidla
?
všechno
√
:
:
← 00:10 → ░1234567 ░1234567
čas
všechno
čas
všechno
Technická Technická prohlídka prohlídka
?
?
:
?
?
√
Přejímka Přejímka cateringu cateringu
:
?
: √ √
všechno
:
√
Úklid
Úklid Úklid
?
√
:
:
← 00:15 → ░1234567 ░1234567 Nástup Nástup cestujících cestujících
√
?
√
:
← 00:00 → ░1234567 ░1234567 Připravenost Připravenost k odjezdu k odjezdu
?
?
:
← --: → ░1234567 ░1234567 Fekálování Fekálování a a voda voda
Příprava sekcí Příprava sekcí
: √
:
← --: → ░1234567 ░1234567
Fekál
všechno
:
√
:
← 00:05 → ░1234567 ░1234567
čas
Loading Loading AF AF
← 00:20 → ░1234567 ░1234567
všechno
: √
čas
√
?
:
← --: → ░1234567 ░1234567
všechno
:
VK
Zahájení Zahájení přípravy přípravy vozidla a vlaku vozidla a vlaku
všechno
:
← 00:00 → ░1234567 ░1234567
čas
√
všechno
:
všechno
Nástup Nástup četa četa
√
:
:
← 00:20 → ░1234567 ░1234567
AF
← 00:20 → ░1234567 ░1234567
?
všechno
:
: √
čas
Nástup Nástup strojvedoucí strojvedoucí
:
čas
← 00:10 → ░1234567 ░1234567
čas
:
?
Obr.: Vnitřní proces ranní přípravy v Praze (včetně zajištění přípoje a střídání posádek) 10:22
:
← --: →
všechno
░1234567 ░1234567
vnitřní
√
Obrat Praha Obrat Praha
?
Obrat Praha, střídání strojvedoucích
← 00:00 →
:
Technická Technická prohlídka prohlídka
?
√
všechno
:
← --: →
Fekál
Fekálování Fekálování a a voda voda
čas
?
:
√
← --: →
11:11
░1234567 ░1234567 Ukončení Ukončení obratových obratových úkonů úkonů
?
?
:
░1234567 ░1234567 Loading Loading AF AF
← --: →
AF
√
všechno
:
░1234567 ░1234567
:
?
:
░1234567 ░1234567 Úklid Úklid a a příprava sekcí příprava sekcí
Úklid
√
← --: →
Odstup Odstup strojvedoucí strojvedoucí
:
?
√ :
← 00:10 → ░1234567 ░1234567
:
√
všechno
Zahájení Zahájení obratových obratových úkonů úkonů
← 00:20 → ░1234567 ░1234567
√
░1234567 ░1234567 čas
√
všechno
:
všechno
:
√
všechno
√
čas
Střídání Střídání strojvedoucích strojvedoucích
:
?
všechno
√
:
← 00:05 → ░1234567 ░1234567
čas
: √
?
čas
Nástup Nástup strojvedoucí strojvedoucí
:
všechno
← 00:10 → ░1234567 ░1234567
čas
:
?
Obr.: Vnitřní proces obratu Praha 6.1.3. Vygenerování oběhů souprav z fragmentu tohoto procesu Pomocí připraveného fragmentu oběhu souprav se vygeneruje oběh souprav („strojgraf“)
na potřebné období a přiřadí se mu jednotlivé soupravy: • Periodickým opakováním fragmentu oběhu souprav (jednodenního procesu) se vygeneruje dostatečně dlouhý oběh soupravy (delší než je potřebný počet dnů alespoň o dvakrát tolik dnů, kolik je souprav) a uloží se jako nový proces (např. „Rozvinutý oběh“) s relativní časovou osou. Tento proces popisuje dlouhodobý oběh jedné soupravy. • „Rozvinutý oběh“ se opakovaně vloží do nového procesu (nazvaného např. „Oběh souprav“) tolikrát, kolik je souprav, přičemž každé vložení se posune o jeden den. (Např. pro 5 souprav se proces vloží celkem 5 krát, přičemž první začíná 1. den procesu, další začíná 2. den procesu, další začíná 3. den procesu, atd.). Takto vytvořený „Oběh souprav“ se na začátku ořízne o tolik dnů, kolik je souprav (tím pádem se prvním dnem procesu stane den, ve kterém je již definováno 5 oběhů – oběh pro každou z 5 souprav). • Procesu „Oběh souprav“ se změní relativní časová osa na absolutní časovou osu stanovením datumu prvního dne časové osy. Toto datum odpovídá prvnímu dni, od kdy má nový oběh souprav platit. 6.2. Příprava modelu procesu: Turnusové směny nového GVD Jeli oběh souprav hotov, pokračuje tvorba modelu procesu nového GVD přípravou personálních turnusů. Personální turnusy se připravují jako procesy pro každou turnusovou skupinu zvlášť. Každý takový proces obsahuje posloupnost operací definujících pořadí směn jednotlivých členů turnusových skupin („persgraf“). 6.2.1. Příprava fragmentu procesu turnus pro jednu turnusovou skupinu Na rozdíl od oběhu souprav se fragment turnusu vytvoří jako několikadenní proces s relativní časovou osou, který v jednotlivých dnech obsahuje operace směny personálu: • Směny trvající přes půlnoc se rozdělí na směnu „do půlnoci“ a směnu „po půlnoci“. U všech směn se uvede čas počátku a čas dokončení operace v závislosti na stanoveném jízdního řádu (plus personální technologické úkony). • Všechny operace musí mít nastavenu kalendářní platnost. Pokud se průběh operace v některých dnech týdne liší, musí být nachystány všechny varianty této operace i s příslušnými kalendářními platnostmi (např. „jen úterý“ / „kromě úterý“). • Operacím se zadá účastník (tedy jeho role a název skupiny), jehož obsazování daný turnus řídí a provede se provázání účastníků všech operací ve fragmentu. • Pro každou operaci (směnu) se vytvoří vnitřní proces (s výhodou lze využít „klonování“), obsahující operaci „Nástup“ a operaci „Konec“, u nichž se nastaví příslušný parametr (začátek směny resp. konec směny). Zatímco operace „Nástup“ musí mít stanoven čas zahájení (= stanovený čas nástupu), operace „Konec“ musí mít definovánu dobu trvání operace a jako předchůdce musí mít operaci „Příjezd do stanice“, která je dokončena meziprocesovým signálem příslušnou operací z Oběhu souprav, založenou na GPS hlásiči (např. příjezd do konečné stanice). Ta v závislosti na skutečném časovém průběhu jízdy vlaku určí okamžik zahájení odpočítávání doby do konce směny (stanovena výše uvedenou dobou trvání operace „Konec“). I těmto operacím vnitřního procesu se nadefinuje potřeba jednoho (jediného) účastníka příslušné role a prováže se do mateřské operace (směny).
11
12
13
14
15
Proces Oběh vozidel
11:11
15:41
← --: →
všechno
░1-34567 ░1-34567
vnitřní
√
1359 Pha-Bys 1359 Pha-Bys
?
1359 PhaBys
„Vysílač“ signálu
Proces Turnus strojvedoucí TS Boh 05:52
?
√
15:41
← --: → ░1234567 ░1234567 příj. Bystřice příj. Bystřice
?
14:53
← --: →
všechno
░1-34567 ░1-34567
vnitřní
√
odj. Bohumín odj. Bohumín
15:41
14:48
← --: → ░1234567 ░1234567
GPS
√
všechno
?
GPS
odjezd Praha odjezd Praha
Meziprocesový signál
░1234567 ░1234567
14:48
11:11
všechno
← --: →
GPS
11:11
Směna strojvedoucí 1356/1359 Směna strojvedoucí 1356/1359
?
Směna strojvedoucí 1356/1359
„Přijímač“ signálu ← --: →
Oběh vozidel : Oběh vozidel : 1359 Pha-Bys : 1359 Pha-Bys : odj. Bohumín odj. Bohumín
14:48
?
:
√
← 00:05 →
:
░1234567 ░1234567 Odstup Odstup strojvedoucí strojvedoucí Pha-Boh Pha-Boh
čas
?
14:48
všechno
Nástup Nástup strojvedoucí strojvedoucí 1356/1359 1356/1359
:
GPS
← --: → ░1234567 ░1234567
dispečer
05:52
?
Obr.: Princip ukončení směny v závislosti na příjezdu do stanice střídání 6.2.2. Vygenerování personálního turnusu z fragmentu tohoto procesu Pomocí připraveného fragmentu turnusu se vytvoří proces Personální turnus („persgraf“) na potřebné období pomocí těchto kroků: • Periodickým opakováním fragmentu turnusu se vygeneruje dostatečně dlouhý proces (delší než je potřebný počet dnů alespoň o dvakrát tolik dnů, kolik je lidí v daném turnusu) a uloží se jako nový proces (např. „Turnusový řádek“) s relativní časovou osou. • Turnusový řádek se opakovaně vloží do nového procesu (nazvaného např. „Personální turnus TS...“) tolikrát, kolik je lidí v daném turnusu, přičemž každé vložení se posune o jeden den. (Např. pro 16 lidí se proces vloží celkem 16 krát, přičemž první začíná 1. den procesu, další začíná 2. den procesu, další začíná 3. den procesu, atd.). Takto vytvořený Personální turnus se na začátku ořízne o tolik dnů, kolik je lidí v daném turnusu (tím pádem se prvním dnem procesu stane den, ve kterém je již definováno 16 Turnusových řádků pro každého ze 16 členů turnusu). Jeli to účelné, není nutno turnusové řádky tímto způsobem vkládat do jediného procesu, ale každý turnusový řádek může být samostatným a samostatně běžícím procesem (v případě tohoto příkladu tedy 16 samostatně běžících procesů). • Nyní se procesu popisujícímu personální turnus změní relativní časová osa na absolutní časovou osu stanovením datumu prvního dne časové osy. Toto datum odpovídá prvnímu dni, od kdy má nový personální turnus platit.
6.3. Přiřazení účastníků operacím v připravených procesech Jsouli oběh i směny personálu hotovy, zbývá provést obsazení oběhu souprav (přiřadit konkrétní soupravy) a směn personálu v „persgrafu“ (přiřadit konkrétní lidi). Nejprve však musí být připraven „kádr“ účastníků v Databázi účastníků. Postup je tento: • V Databázi účastníků se založí skupina pro vozidla a výstižně se nazve (např. „Jednotka Flirt“). • Do Databáze účastníků se inventárními čísly vloží všechna vozidla (soupravy) a začlení se do příslušné skupiny. • V Databázi účastníků se založí potřebné skupiny pro rozdělení personálu podle pracovních pozic, pracovišť a případně turnusových skupin výstižně se nazvou (např. „Strojvedoucí Bohumín vnitro“). • Do Databáze účastníků se jmenovitě vloží veškerý personál (strojvedoucí, vedoucí kabiny, stevardi) a začlení se do příslušných skupin (jeden člověk může být současně členem více skupin, pokud je oprávněn vykonávat více pracovních pozic). • Každému z oběhů navkládaných do „Oběhu souprav“ se přiřadí příslušná skupina účastníků (vozidel) a konkrétní souprava z ní, a to volbou z Databáze účastníků (např. „4800025“). Toto přiřazení se provede na kterékoliv z provázaných operací daného oběhu. • Každému z Turnusových řádků Personálního turnusu se přiřadí příslušná skupina účastníků a konkrétní člověk z ní, a to volbou z Databáze účastníků (např. „Krtko Martin“). Toto přiřazení se provede na kterékoliv z provázaných operací daného řádku. 6.4. Rozšíření základního modelu o další funkce – hlídání přestupních vazeb Připravený model nového GVD nyní popisuje oběh souprav a směny potřebného personálu. Základem všeho je časový rozvrh (nástupy na směny, odjezdy vlaků), který kopíruje realitu, odvíjející se od jízdy spojů (operace oběhu souprav ukončované na základě GPS polohy hlásičů účastníků). Na takto připravený model lze navazovat další funkce (např. hlídání přestupních vazeb) přidáváním dalších paralelně běžících procesů, jejichž operace jsou meziprocesovými signály synchronizovány s jízdou spojů obdobně, jako ukončování směn personálu (např. příjezd do Olomouce spustí prověření potřeby čekání na přípoj v Přerově). 6.5. Spuštění připraveného modelu nového GVD Připravený model procesu (nového GVD) se spustí okamžitým spuštěním nebo spuštěním naplánováným na datum prvního dne jeho platnosti. Jeli celý model nového GVD sestaven výše popsaným způsobem, to jest z procesů (dějových linek) s jen malou vzájemnou provázaností, je třeba spustit nebo naplánovat spuštění ve stejné datum všech jeho součástí procesů (dějových linek): oběh souprav, všechny personální turnusy a případně i další procesy rozšiřující základní model. UPOZORNĚNÍ: Běh procesu způsobuje jeho změny. Parametry operací, zejména časové údaje, se automaticky mění podle skutečného průběhu procesu a také jsou prováděny změny na základě operativních zásahů uživatele (dispečera). Pokud tedy není proces určen jen pro jednorázové použití, je vhodné si před jeho spuštěním udělat kopii pro případné další použití (spuštění). Toto není třeba u procesu, který je automaticky spouštěn
jiným procesem (jako vnitřní proces některé z jeho operací). 6.6. Řešení typických situací na běžícím modelu GVD V této kapitole jsou popsány postupy, jak řešit nejčastěji se vyskytující typické situace, které se v provozu vyskytují. Předpokladem je, že běží model GVD (tedy všechny jeho procesy) tak, jak byl připraven a spuštěn podle předchozích kapitol. Změna personálního obsazení konkrétní směny • V procesu „Personální turnus...“ se vyhledá příslušná operace (směna) v příslušný den (datum). U příslušného účastníka (role) této operace se provede jeho změna (a případně i změna skupiny účastníků) výběrem z Databáze účastníků. • V rozhodovacím dialogu, který se následně automaticky zobrazí, se vybere možnost „Změnu provést jen u této operace“. Tímto krokem se účastník této operace vyjme z provázanosti a u zbylých provázaných účastníků se změna neprojeví. Změna obsazení jednoho trunusového řádku počínaje stanoveným dnem • V procesu „Personální turnus...“ se vyhledá den (datum) a v něm operace (směna) od níž má změna platit. U příslušného účastníka (role) této operace se provede jeho změna (a případně i změna skupiny účastníků) výběrem z Databáze účastníků. • V rozhodovacím dialogu, který se následně automaticky zobrazí, se vybere možnost „Změnu provést počínaje touto operací do budoucna“. Tímto krokem se provázaný účastník rozdělí na dvě oddělené skupiny provázaných účastníků podle času: provázaní účastníci operací před dotčenou operací a provázaní účastníci operací počínaje dotčenou operací do budoucna. Rozdělení konkrétní směny na dvě části • Před provedením rozdělení směny je výhodné vytvořit operaci (nebo se ujistit, zda v modelu již existuje), která určuje událost, od které se odvíjí ukončení první části směny. Typicky jde o příjezd do stanice, kde má dojít k vystřídání, po němž následuje konec směny. Tato operace musí být součástí vnitřního procesu příslušné operace (spoje) v procesu „Oběh souprav“, musí mít výstižný název (například „příjezd Ostrava hl. n.“) a její ukončovatel musí být „účastník“ (zpravidla GPS poloha vozidla). Jeli žádoucí hlídání zpoždění, pak je třeba této operaci nastavit dobu trvání operace nulovou a den a čas dokončení operace na okamžik pravidelného příjezdu. • V procesu „Personální turnus...“ se vyhledá den (datum) a v něm operace (směna), kterou je třeba rozdělit zdvojením. Na ni se aktivuje průvodce „Zdvojení operace“. V průběhu průvodce se zadají výstižné názvy obou „dvojčat“ zdvojené operace (např. původní směna „1363/1370“ se rozdělí na směnu „1363“ a směnu „1370“). • U první z obou směn (případně u jejího vnitřního procesu) je třeba změnit okamžik ukončení. Ten se sváže pomocí „meziprocesového signálu“ s operací, od níž se odvíjí ukončení první směny (např. „příjezd Ostrava hl. n.“) a nastaví se den a čas dokončení (= plánovaný konec směny). Jeli první směna rozebrána vnitřním procesem, opraví se případně doba trvání operace u operace „Konec“ podle tabulek technologických časů. Na dotaz systému při ukládání změn ve vnitřním procesu je třeba odpovědět, že se změna týká pouze tohoto jednoho výskytu vnitřního procesu (= uloží se samosatně bez vlivu na ostatní).
•
U druhé z obou směn (případně u jejího vnitřního procesu) je třeba upravit okamžik začátku směny tím, že se den a čas zahájení operace reprezentující tuto směnu se nastaví na okamžik plánovaného nástupu. Na dotaz systému při ukládání změn ve vnitřním procesu je třeba odpovědět, že se změna týká pouze tohoto jednoho výskytu vnitřního procesu (= uloží se samosatně bez vlivu na ostatní).
Operativní vzájemná výměna strojvedoucích během směny • V procesu „Personální turnus...“ se vyhledá den (datum) a v něm operace (směny) těch dvou strojvedoucích, které je třeba navzájem vyměnit. • Operace reprezentující příslušné směny obou strojvedoucích (tedy dvě směny) se rozdělí na dvě části (tedy vzniknou celkem čtyři směny). Rozdělení se provede postupem popsaným v jiné části této kapitoly. Okamžikem rozdělení, který ukončuje první části směn obou strojvedoucích ve skutečnosti, je okamžik jejich vzájemného vystřídání, ale protože zpravidla není třeba proces pitvat do úplných detailů, lze okamžik rozdělení stanovit pro každého strojvedoucího zvlášť, a to meziprocesovým signálem o příjezdu spoje do místa střídání. • Začátky obou druhých směn obou strojvedoucích nesmí mít stanovený den a čas zahájení, ale vazbou předchůdce – operace se „zapojí“ za odpovídající první část směny příslušného strojvedoucího. • U obou druhých částí směn obou strojvedoucích se změní konkrétní účastník příslušné role („strojvedoucí“) vzájemnou výměnou (jmen). Na dotaz v dialogovém okně je třeba v obou případech odpovědět volbou, že změna se má provést pouze u dané operace, bez vlivu na ostatní operace, kam je účastník provázán. Operativní zkrácení trasy vlaků (přesunutí obratu) • V procesu „Oběh souprav“ se vyhledá den (datum) a v něm operace (vlaky), které mají být zkráceny zpravidla „vlak tam“ a „vlak zpět“. Z logiky věci se přitom předpokládá, že se jedná o vlaky vezené stejnou soupravou, tedy o operace, jež jsou součástí jednoho řetězce provázaného vazbami předchůdce – operace. • U operace reprezentující „vlak tam“ se stávající ukončení změní tak, aby bylo nastaveno na příjezd do stanice, v níž bude „vlak tam“ ukončen (zpravidla ve vnitřním procesu pomocí meziprocesového signálu). Jeli potřebné sledovat zpoždění, nastaví se den a čas dokončení podle plánovaného příjezdu do této stanice. Na dotaz systému při ukládání změn ve vnitřním procesu je třeba odpovědět, že se změna týká pouze tohoto jednoho výskytu vnitřního procesu (= uloží se samosatně bez vlivu na ostatní). • U operace reprezentující „vlak zpět“ se nastaví den a čas zahájení na okamžik plánovaného odjezdu ze stanice, v níž byl „vlak tam“ ukončen. • „Vlak tam“ a „vlak zpět“ musí být svázány vazbou předchůdce – operace. Proto jsouli v posloupnostním řetězci vazeb předchůdce – operace mezi operacemi „vlak tam“ a „vlak zpět“ nějaké operace, musí se zásahem uživatele zneplatnit a operace „vlak zpět“ se musí provázat přímou vazbou na předchůdce „vlak tam“. • Jsouli zkrácením trasy vlaků dotčeny i směny personálu ve smyslu změny místa vystřídání, je třeba následně patřičně upravit i směny s využitím postupů popsaných v jiných částech této kapitoly. Vzájemná záměna souprav v oběhu • Oběh souprav je popsán procesem „Oběh souprav“, v němž je každý vlak reprezentován jednou operací. Vlaky „vezené“ stejnou soupravou jsou provázané vazbami předchůdce – operace a mají provázaného účastníka – soupravu (vozidlo).
•
•
•
•
Proto je při záměně souprav v oběhu třeba změnit (křížem) vazbu předchůdce – operace mezi operacemi reprezentujícími vlaky, mezi kterými k záměně souprav dojde, a dále rozvázat vazbu mezi účastníky těchto operací a provázat je „křížem“. V případě, kdy má k záměně souprav dojít v nácestné stanici, je třeba před nejprve oba dotčené vlaky v této stanici rozdělit a pak provést výše uvedená „překřížení“. Před rozdělením je třeba ve vnitřních procesech rozebírajících jízdu obou vlaků mít (vytvořit) operaci, která určuje okamžik rozdělení – tedy příjezd do stanice, kde dojde k vzájemné záměně souprav. Dále je třeba vytvořit operaci, která informuje o odjezdu ze stanice po záměně souprav. Tyto operace musí mít výstižný název (například „příjezd Červenka“ a „odjezd Červenka“) a jejich ukončovatel musí být „účastník“ (zpravidla GPS poloha vozidla). Jeli žádoucí hlídání zpoždění, pak je třeba těmto operacím nastavit dobu trvání operace nulovou a den a čas dokončení operace podle pravidelného příjezdu resp. odjezdu. Oba vlaky (= operace, které je reprezentují) se rozdělí tak, že se na nich aktivuje průvodce „Zdvojení operace“. Přitom je důležité, aby původní operace reprezentovala druhou část jízdy vlaku, zatímco nově vytvořené „dvojče“ reprezentuje první část jízdy vlaku. V průběhu průvodce se proto změní název původní operace (vlaku) a zadá se výstižný název jejího „dvojčete“ (např. původní vlak „1353“ se přejmenuje na „1353 Červenka Karviná“ a „dvojče“ se nazve „1353 Praha – Červenka“). U obou prvních částí vlaků (zpravidla u jejich vnitřních procesů) je třeba změnit okamžik ukončení na příjezd do příslušné nácestné stanice. Všechny operace vnitřních procesů za touto operací je proto třeba zrušit. Máli se hlídat zpoždění, nastaví se den a čas dokončení první části na okamžik plánovaného příjezdu do nácestné stanice. Na dotaz systému při ukládání změn ve vnitřním procesu je třeba odpovědět, že se změna týká pouze tohoto jednoho výskytu vnitřního procesu (= uloží se samosatně bez vlivu na ostatní jeho výskyty). U obou druhých částí vlaků (zpravidla u jejich vnitřních procesů) je třeba změnit okamžik jejich zahájení na odjezd z příslušné nácestné stanice. Všechny operace vnitřních procesů před touto operací je proto třeba zrušit. Máli se hlídat zpoždění, nastaví se den a čas dokončení na okamžik plánovaného odjezdu. (Dosavadní vazba obou druhých částí vlaku na jejich předchůdce se změní až v rámci „překřížení“ oběhů souprav podle prvního bodu tohoto postupu.) Na dotaz systému při ukládání změn ve vnitřním procesu je třeba odpovědět, že se změna týká pouze tohoto jednoho výskytu vnitřního procesu (= uloží se samosatně bez vlivu na ostatní).