3. Event Handling Patterns Bohdan Koleček. Event-handling patterns Naše zaměření:  Síťové orientované systémy Návrhové vzory  Reactor  Proactor  Asynchronous.

Slides:



Advertisements
Podobné prezentace
ZÁSADY PRVNÍ POMOCI Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Ludmila Jakubcová. Dostupné z Metodického portálu ;
Advertisements

Strategické řízení školy s využitím sebehodnocení školy dle modelu CAF RNDr. Hana Žufanová.
ELEKTRONICKÉ ZABEZPEČOVACÍ SYSTÉMY. Název projektu: Nové ICT rozvíjí matematické a odborné kompetence Číslo projektu: CZ.1.07/1.5.00/ Název školy:
Počítačové sítě 8. Využití sítí © Milan Keršlágerhttp:// Obsah: ● sdílení v sítích.
Využití informačních technologií při řízení obchodního řetězce Interspar © Ing. Jan Weiser.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Vzdělávací portál Vzdělávací portál.
Číslo projektu: CZ.1.07/1.4.00/ Název DUM: Prostředí internetu Číslo DUM: III/2/VT/2/2/27 Vzdělávací předmět: Výpočetní technika Tematická oblast:
Elektrotechnická měření Dimenzování sítí nn - PAVOUK 2.
Počítačové sítě 14. IPv4 © Milan Keršlágerhttp:// Obsah: ● IP protokol, IP adresa,
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně AUTOR: Ing. Oldřich Vavříček NÁZEV: Podpora výuky v technických oborech TEMA: Základy elektrotechniky.
Název školyZákladní škola praktická Rožnov pod Radhoštěm Číslo projektuCZ / / Číslo materiáluVY_32_INOVACE_225 AutorMgr. Romana Rybiařová.
Rozšiřující návrhové vzory pro organizaci práce a komunikaci.
Podnik ro Název projektu: Nové ICT rozvíjí matematické a odborné kompetence Číslo projektu: CZ.1.07/1.5.00/ Název školy: Střední odborná.
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr. Petra Šandová Název: VY_32_INOVACE_5B_INF3_16_ Téma: pro 4.,5.ročník ZŠ, vytvořeno:
Síťové operační systémy OB21-OP-EL-KON-DOL-M Orbis pictus 21. století.
Počitačová bezpečnost - je obor informatiky, který se zabývá zabezpečením informací v počítačích (odhalení a zmenšení rizik spojených s používáním počítače).
Software =je v informatice sada všech počítačových programů používaných v počítači, které provádějí nějakou činnost. - Software je protiklad k hardwaru,
Dopravní modely v SUMP Jitka Ondráčková
Elektronické bankovnictví
Pasivní bankovní operace -přímé bankovnictví
Bezpečí – pro někoho pocit, pro nás realita
Základy automatického řízení 1
PROJEKT OP LZZ „IMPLEMENTACE AGE MANAGEMENTU V ČR“ CZ /5. 1
Tutoriál ~ eKnihy Stahování
Systémové databáze v SQL Serveru
Internet.
Operační systémy 9. Spolupráce mezi procesy
Operační systémy Hardwarové prostředky využívané počítačem
Číslo projektu: CZ.1.07/1.4.00/ Název DUM: Internetové služby – Disk Google Číslo DUM: III/2/VT/2/2/36 Vzdělávací předmět: Výpočetní technika Tematická.
Praha, 1. – ročník mezinárodní konference k profesnímu rozvoji pedagogických pracovníků Profesní rozvoj pedagogů.
Veřejná správa, Regionální rozvoj Litoměřice Jan Jůna 2012
Inf Operační systémy a jejich funkce
1. Tlačítko START 2. Podrobnější hledání 3. Zařízení a tiskárny 4
Úloha bodového systému
ELEKTRONICKÉ ZABEZPEČOVACÍ SYSTÉMY
Komunikační model TCP/IP
Dělení mnohočlenů mnohočlenem
Programování v jazyce C++
Základní informace o poskytovateli
Řízení znalostí z pohledu práva
Windows – WordPad VY_32_INOVACE_32_649
Filmová animace Náhodné změny Mgr. Jiří Mlnařík
Configuration Patterns
Abstract Factory.
Číslicová technika.
Souběh Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
C# Vícevláknové aplikace
1. ročník oboru Mechanik opravář motorových vozidel
USMĚRŇOVAČE V NAPÁJECÍCH OBVODECH
2. ROČNÍK KONFERENCE K RODINNÉ POLITICE MĚSTA OLOMOUCE,
BIBS Informatika pro ekonomy přednáška 2
Informatika pro ekonomy přednáška 8
Etické kodexy v praxi Pavel Seknička.
Materiál byl vytvořen v rámci projektu
Digitální gramotnost Informatické myšlení
Remote login.
Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Přednášky z Distribuovaných systémů
Kooperace a kolaborace v online prostředí
Diagramy stavů Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with UML®, Second Edition, Pearson – Prentice Hall, 2005.
Nádherné prezentace navrhnete a předvedete snadno a s jistotou.
Název: VY_32_INOVACE_ICT_7B_12B Škola:
Název školy Střední škola obchodně technická s. r. o. Číslo projektu
Analýza informačního systému
Informatika pro ekonomy přednáška 8
Počítačové sítě Úvodní přednáška
Informační systém základních registrů
Martin VLASTNÍK, vedoucí oddělení politiky nerostných surovin
Současné aktivity v oblasti České podnikatelské rady pro udržitelný rozvoj a Světové podnikatelské rady pro udržitelný rozvoj.
Procesy – základní pojmy
Transkript prezentace:

3. Event Handling Patterns Bohdan Koleček

Event-handling patterns Naše zaměření:  Síťové orientované systémy Návrhové vzory  Reactor  Proactor  Asynchronous Completion Token  Acceptor-Connector Popisují způsob, jakým iniciovat, přijmout, demultiplexovat, dispatchovat a zpracovat události (eventy) v síťově orientovaném systému

Reactor – Motivační příklad Distribuovaná logovací služba  klienti posílají logy na centrální logovací server  Pouze dvě události connect - připojení klienta read – přečti logovací záznam  simultánní příchod události  obsluha má krátké trvání

Rešení Pro každé připojení vytvořit nové vlákno  nutno zabezpečit thread-safe  nelze měnit kontext  již při pár tisících požadavků neúnosná režie  vlákna nejsou podporována na všech systémech Reactor  single thread  simultánní zpracování události  event demultiplexer Event 2Event 1 Handler 1 Handler 2 Handler 3 Události Event loop Callback nebo Event Handler

Reactor Reactor řeší rozdělení (demultiplexing) a náslené zpracování (dispatching) příchozích eventů, aplikace jen poskytuje event handlery, které obsluhují tyto události Využívá vzor Inversion of Control (Hollywoodský princip - “Don't call us, we'll call you”) Základní vlastnosti  čeká synchronně na událost, když nastane událost, aktivuje handlery  události jsou typicky z různých zdrojů  single thread Také známý jako Dispatcher nebo Notifier

Reactor - struktura Handle  libovolný zdroj (řízený OS) schopný vstupu a/nebo výstupu  obvykle síťová připojení, soubory Synchronous Event Demultiplexer  event loop  blokuje zdroje  jakmile je možné začít synchronní operaci na handli bez blokování, pošle handle na dispatcher Dispatcher  udržuje si tabulku registrovaných handlerů  odešle handle z demultiplexoru na asociovaný event handler Event handler  komponenta aplikace implementující zpracování daného eventu  aplikace využívá demultiplexing a dispatching poskytnutý reactorem

Reactor – struktura diagram

Reactor – časový diagram

Reactor Výhody  Rozdělení zodpovědností mezi reactor a aplikaci  umožňuje modularitu, znovupoužitelnost, přenositelnost  Umožnuje obsloužit více současných spojení bez režie multiple threads  ale jen na principu serializace volání jednotlivých event handlerů Nevýhody  Nepreempetivní - při implementaci je dobře vyvarovat se  cyklení nad velikými kolekcemi objektů  výpočetně náročným operacím  voláni synchronních I/O metod  sleep / pause výrazy  Komplexní ladění, testování

Příklad - telefonní linka  telefonní síť je reactor.  Vy jste event handler registrovaný telefonním číslem (handle).  pokud se Vám někdo pokouší dovolat, telefonní síť Vás na hovor upozorní zvoněním a Vy tuto událost zpracujete například tím, že zvednete telefon Reálné implementace  Reactor (Java), Twisted (Python), ReactPHP (PHP), Xt (UI toolkit v UNIXu) Reactor – Příklady, použití

Web server  klient zašle požadavek na spojení  server spojení akceptuje  server otevře a čte příslušný soubor  nakonec pošle server obsah souboru zpět klientovi Možné implementace  Synchronní multi-threading - problémy se škálovatelností, komplexitou kódu a přenositelností  Reactor - nepodporuje zpracování více eventů zároveň - nepodporuje dlouhé zpracovaní klientských požadavků  Proactor - asynchronní varianta Reactoru Proactor – Motivační příklad

Proactor Aktivní event demultiplexing and dispatching model Využívá Asynchronous Operation Processor  typicky I/O Rozdělení aplikačních služeb na dvě části  asynchronní (můžou být dlouho trvající) operace (které jsou volány proaktivně)  completion handlery – stará se o zpracování výsledku asynchronní operace Vhodno použít, jestliže aplikace  vykonává asynchronní operace bez zablokovaní volajícího vlákna  aplikaci stačí notifikace, když asynchronní operace skončí

Proactor - struktura

Proactor – v čase

Proactor – Příklad ze života, použití Upozornění nepřijatých hovorů  zavolám momentálně nedostupné kamarádce  nechám ji (jako initiator) vzkaz na záznamníku (zde asynchronous operation processor), ať zavolá zpět  během čekání mohu vykonávat libovolnou jinou činnost  kamarádka zavolá zpět (Proactor)  zvednu telefon a představím se jako Completion handler Reálné implementace  Windows: completion ports  UNIX: POSIX AIO (asynchronous I/O)  Obsluha přerušení v OS  C++: Boost.Asio, ACE

Proactor vs Reactor Společná myšlenka  snaha o nahrazení multithreadingu v event-driven systémech Reactor  synchronní události  pasivní event demultiplexing and dispatching model  vhodné jen krátce trvající operace Proactor  asynchronní události  aktivní event demultexing and dispatching model  vhodné i pro dlouho trvající operace

Asynchronous Completion Token – Motivační příklad Internetový burzovní systém  musíme monitorovat všechny servery pro okamžité řešení selhání  na každém serveru běží management agent  management aplikace sbírá data z management agentů Spojení management aplikace s management agenty  thread v aplikaci pro každého agenta, synchronní spojení  špatně škáluje  asynchronní spojení, ale jak efektivně demultiplexovat completion event?  řešení – Asynchronous Completion Token

Asynchronous Completion Token (ACT) Také znám jako: Active Demultiplexing, Magic Cookie Iniciátor při asynchronním volání služby vytvoří ACT  ACT identifikuje completion handler na straně iniciátora  služba při completion události vrátí iniciátoru ACT  ACT umožní efektivní demultiplexing completion eventu na straně iniciátora

ACT - Struktura

ACT – Příklad ze života, reálné implementace FedEx  při odeslání zásilky může odesílatel vyplnit vlastní identifikátor  při doručení je identifikátor odeslán odesílateli Reálné implementace  HTTP koláčky  Windows: handles, overlapped I/O, I/O completion ports  UNIX: POSIX asynchronous I/O

Asynchronous Comletin Token - shrnutí Výhody  jednoduchost, prostorová nenáročnost, flexibilita  efektivní uložení a obnovení stavu Nevýhody  potenciální memory leak  nutnost autentizace tokenu v případě nedůvěryhodné služby  pokud je ACT pointer, nesmí být přemapována paměť (např. restart aplikace)

Acceptor-Connector – motivační příklad Gateway  každá peer služba používá gateway na odesílaní a přijímaní dat, příkazů a informací o stavu, například k satelitu Problém  navázání spojení se satelitem je komplexní  kód pro navázání sopjení je téměř úplně nezávislý na kódu samotných služeb Řešení?  Acceptor-Connector

Acceptor-Connector Vlastnosti  odděluje zřízení připojení a inicializaci od vlastní služby  zapouzdření aplikačních služeb pomocí peer service handlerů Struktura  Acceptor přijímá pasivně spojení  Connector vytváří aktivně spojení  service handlers implementují vlastní službu

Acceptor-Connector - Struktura

Acceptor-Connector – Příklad, reálné implementace Manažeři a sekretářky  manažerka Alice chce hovořit s manažerem Bobem  manažerka Alice požádá svou sekterářku (Connector) o uskutečnění hovoru  sekterářka zavolá Bobově sekretářce (Acceptor)  ta předá telefon Bobovi  Alice a Bob jsou peer service handlers Reálné implementace  ACE (C++), Java CE  UNIX – Inetd  master acceptor process  service handlers: FTP, TELNET, DAYTIME a ECHO