elektronická verzia publikácie - FIIT STU - Slovenská technická ...
elektronická verzia publikácie - FIIT STU - Slovenská technická ...
elektronická verzia publikácie - FIIT STU - Slovenská technická ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Softvérové súiastky 49<br />
teda musí ma mechanizmus zabezpeujúci šírenie udalostí a musí jednoznane špecifikova,<br />
o sa stane, ke vznikne udalos.<br />
Dva základné modely na spracovanie udalostí sa nazývajú pull model (model ahania)<br />
a push model (model tlaenia).<br />
Pull model<br />
V pull modeli súiastka, ktorá spracováva udalosti, požiada o novú udalos hne ako má<br />
predchádzajúcu udalos spracovanú. Ak alšia udalos nie je k dispozícii, súiastka aká<br />
urenú dobu a potom opakuje svoju žiados.<br />
Hlavným problémom tohto modelu je, že ak vznikne viac udalostí poas spracovania<br />
predchádzajúcej, všetky okrem poslednej sa môžu strati. Tento problém iastone rieši<br />
vytvorenie radu udalostí. Ak sa rad preplní, systém musí vedie akceptova stratenie udalosti.<br />
Džka radu je limitovaná z dvoch dôvodov. V systémoch sa asto používa veké<br />
množstvo typov správ a dlhý rad pre každý typ správy by spôsobil neúmernú spotrebu<br />
pamäti. Druhý dôvod je, že reagova na udalos má zvyajne význam len do uritého asu.<br />
Ak udalos aká príliš dlho, zastará a jej spracovanie už nemusí ma žiadny význam, len<br />
zbytone spotrebuje výpotové zdroje.<br />
Manažér udalostí pre tento model je pomerne jednoduchý. V urených asoch prezerá<br />
všetky zaregistrované zdroje udalostí a ke niektorý vytvorí udalos, uloží ju do príslušného<br />
radu. Ke si udalos vyzdvihnú zaregistrované súiastky, prípadne po stanovenom<br />
ase alebo po zaplnení radu, manažér túto udalos z radu odstráni.<br />
Udalos pritom môže by urená len jedinému z príjemcov alebo všetkým zaregistrovaným<br />
príjemcom. Ak je urená len pre jedného, vymaže sa z radu hne ako sa odovzdá<br />
prvému, kto o u požiadal. Ak je urená pre všetkých, tak sa znaí kto už udalos prevzal<br />
a vymaže sa až s posledným odberom.<br />
Udalos pre jedného sa používa najmä vtedy, ke je viacero súiastok na spracovanie<br />
rovnakej udalosti – záaž sa rovnomerne rozdeuje. Udalos si prevezme tá súiastka, ktorá<br />
práve skonila predchádzajúcu innos.<br />
Dobrým príkladom na spracovanie udalosti pre každého je udalos „vyšla upravená<br />
<strong>verzia</strong> softvérového systému“. Každá inštancia tohto softvérového systému si raz denne<br />
alebo raz za týžde na zodpovedajúcom serveri skontroluje, i bola vytvorená novšia <strong>verzia</strong>.<br />
Ak bola vytvorená, môže sa nainštalova, ak nie, softvér znovu pošle požiadavku<br />
po stanovenom ase. Ak bol nejaký poíta dlhší as vypnutý, zvyajne nevadí, že sa preskoili<br />
dve alebo tri verzie softvérového systému a nainštaluje sa najnovšia.<br />
Tento príklad ukazuje aj výhody modelu. Drobnou výhodou je, že staí implicitná registrácia<br />
pozorovatea – vie kde sa má pýta. Vekou výhodou je jednoduchý manažér<br />
udalostí. Potrebuje len zabezpei, aby sa každá udalos dostala do svojho radu<br />
a poskytuje rýchle odpovede na stav radu. Nemusí sa trápi a opakovane vyzýva všetkých,<br />
ktorí zatia nereagovali na udalos.<br />
Push model<br />
V push modeli súiastka, ktorá vytvára udalos, pošle správu všetkým súiastkam, ktoré<br />
sa prihlásili na jej spracovanie. Ak príjemca udalosti ešte nie je pripravený túto správu<br />
spracova, správa sa stratí. Tento problém znovu môže iastone rieši rad na správy, tentoraz<br />
na strane príjemcu.