04.11.2014 Views

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!