Virtlab:Komponenty/Rozdělení rezervačního a aktivačního serveru
Z VirtlabWiki
← Starší verze | Novější verze →
Původní rezervační server v sobě obsahoval proces, který zajištoval aktivaci rezervací. Z důvodu větší modularity došlo k oddělení této komponenty a vznikl samostatný aktivační server. Způsob rozdělení a následnou komunikaci mezi servery popisuje obrázek:
V podstatě jde o to, že se z původního rezervačního serveru vytvořila identická kopie. Oba zdrojové kódy byly následně upraveny tak, že po vytvoření dalšího procesu pomocí příkazu fork(), kde obslužný kód pro hlavní proces (rodič), obstarával funkci rezervačního, zůstal samostatně v rezervačním serveru a obslužný kód pro dětský proces (potomek), je implementován v aktivačním serveru. Na následnou komunikaci (na portu 50002) mezi rezervačním serverem a nově vzniklým aktivačním serverem (v rámci lokality) se využil stejný komunikační protokol, jako mezi rezervačními servery navzájem. Rozdíl je v použitých příkazech, které jsou popsány v komunikačním protokolu aktivačního serveru. Princip je takový, že v případě nějaké změny (nové rezervace, zrušení rezervace) pošle rezervační server pokyn aktivačnímu serveru, aby se podíval do databáze a podle toho si nastavil alarm. Při nové rezervaci se zároveň pošlou informace o propojení jednotlivých požadovaných zařízeních, které si aktivační server uloží do souboru. V případě, že pak nastane čas konkrétní rezervace je dále zpracovává. V případě zrušení rezervace, posílá rezervační server aktivačnímu pokyn s identifikátorem delresid zrušené rezervace, že už si může vytvořený soubor smazat.