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.
50 Štúdie vybraných tém programových a informaných systémov<br />
Manažér udalostí je komplikovanejší, lebo, okrem prijatia udalosti, musí oznámi<br />
každému zaregistrovanému prijímateovi, že si má prevzia túto udalos. Okrem toho<br />
samozrejme kontroluje, kto si už udalos prevzal. Manažér má teda viac práce ako<br />
v prípade pull modelu. Zvláš výrazné to je, ke potrebujeme prideli udalos práve jednému<br />
prijímateovi. Manažér sa postupne a opakovane dopytuje všetkých prijímateov, i<br />
sú pripravení prija novú udalos. Príliš vea udalostí a dlhá doba odozvy na udalos môžu<br />
zahlti systém tak, že väšina výpotových zdrojov sa bude využíva len na rozdeovanie<br />
správ.<br />
Zahltenie manažéra udalostí sa dá rieši vytvorením jeho distribuovanej verzie<br />
a najmä vhodným urením intervalu, ako asto má opakova dopyty na prijatie správy.<br />
Výhodou tohto modelu je, že ho možno použi aj ke nie sú k dispozícii súiastky,<br />
ktoré si dokážu vyžiada udalos samé. Nevýhodou je už spomínaná vyššia spotreba výpotových<br />
zdrojov a možnos zahltenia.<br />
Preto sa tento model používa najmä pri práci s riedkymi alebo vnútornými udalos-<br />
ami. Súiastky, ktoré súasne vytvárajú aj prijímajú udalosti sú o nieo jednoduchšie ako<br />
pre predchádzajúci model, poznáme typickú dobu odozvy na udalos a vemi asto je táto<br />
odozva kratšia než je as príchodu alšej udalosti. Typický príklad je používateské rozhranie,<br />
kde je odozva na udalosti o niekoko rádov kratšia, než je hustota generovania<br />
udalostí používateom.<br />
2.2.4 Existujúce riešenia<br />
Zaujímavé vlastnosti systémov vytvorených zo súiastok založených na udalostiach, ako<br />
už spomínaná asynchrónnos spracovania a veká vonos prepojenia, spôsobili znané<br />
rozšírenie ich použitia v súasných systémoch. Ani do budúcnosti nie je vidie dôvod,<br />
preo by mal záujem o ne ochabnú.<br />
Z vekého množstva spôsobov použitia sú tu strune opísané tri príklady. Jedná sa<br />
o programovací jazyk, webové služby a integranú platformu.<br />
Udalosti v jazyku Java<br />
V programovacom jazyku Java sú udalosti reprezentované ako objekty. Odkazy na tieto<br />
objekty sú posielané ako správy, zodpovedajúce príslušným udalostiam.<br />
Model udalostí je však v tomto jazyku prístupný len cez príslušné rozšírenie, nazvané<br />
Advanced Windowing Toolkit – AWT. Preto je potrebné vždy, ke chceme tento model využi,<br />
importova balíek jawa.awt.event. K dispozícii sú však aj novšie balíky, s väším<br />
potom typov udalostí, napríklad swing. Jedná sa o podporu používateského rozhrania,<br />
preto sa používa push model udalostí.<br />
Vzor, poda ktorého sú v jazyku Java vytvárané súiastky sa nazýva Posluchá (angl.<br />
Listener). Je to v princípe ekvivalent už opísaného vzoru Pozorovate. Súiastky pracujú<br />
v režime klient-server. Zdroj udalostí je serverom, u ktorého si klient registruje prijímanie<br />
zodpovedajúcej udalosti. Klient potom „poúva“, i mu server neposiela túto udalos.<br />
Z implementaného hadiska je to navrhnuté tak, že server aj klient implementujú im<br />
zodpovedajúce rozhranie. V rámci programového kódu je potom špecifikované, na ktorú<br />
udalos bude súiastka reagova.<br />
Tento prístup poskytuje aj alšiu zaujímavú možnos – delegovanie spracovania udalostí.<br />
Súiastka môže odchytáva viacero typov udalostí, ale niektoré z nich nespracuje