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.

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

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

Saved successfully!

Ooh no, something went wrong!