• Nebyly nalezeny žádné výsledky

Prvá vrstva je typicky postavená na systéme na zasielanie správ (angl. mes-saging system), ktorý zachytáva prúd dát zo zdrojov. Odtiaľ môžu byť dáta prúdovo spracované.

3.6. Porovnanie Druhá vrstva, nazývaná tiež databázová, slúži na zoskupovanie čiastkových výsledkov prúdového spracovania z prvej vrstvy. Túto vrstvu je možné implementovať pomocou NoSQL databázy.

Tretia vrstva slúži na dávkové spracovanie dát. Je postavená nad distri-buovaným súborovým systémom. Údaje čerpá z prvej vrstvy. Výsledky tejto vrstvy korigujú aproximačné výsledky prvej vrstvy.

3.5.1 Výhody a nevýhody

Keďže sa jedná o pomerne abstraktný model, ktorý nie je možné v jednej forme použiť na všetky IoT systémy, je ťažké hodnotiť klady a zápory. Zaujímavé ale je, že požiadavky na výsledky je možné smerovať na všetky tri vrstvy.

3.5.2 Prípady použitia

Iot-a architektúra má praktické využitie napríklad v systéme inteligentnej do-mácnosti. Prvá vrstva poskytuje vďaka prúdovému spracovaniu výsledky tak-mer v reálnom čase, a dokáže tak napríklad rýchlo oznámiť majiteľovi domu vlúpanie alebo požiar. Výsledky databázovej vrstvy je možné použiť na moni-torovanie aktuálnej kondície domu a tretia vrstva poskytuje dlhodobé štatis-tiky zo všetkých senzorov.

3.6 Porovnanie

Predstavil som 5 významných návrhových modelov na spracovanie v oblasti veľkých dát. Vznikali v priemysle, ale aj v akademickom prostredí, v snahe vyriešiť reálne problémy.

Je náročné ich podrobiť priamemu porovnaniu, pretože každá z týchto architektúr sa zameriava na riešenie iných typov úloh. Pri návrhu je preto potrebné zvážiť požiadavky na konkrétny novovznikajúci systém. Konkrétne rýchlosť, akou chceme dostať výsledky, presnosť výsledkov, spoľahlivosť a šká-lovateľnosť systému, rýchlosť vývoja, udržateľnosť kódu a mnoho iných. Zvážiť, ktoré je nevyhnutne potrebné uspokojiť a kde je možné spraviť kompromis.

Kapitola 4

Analýza a návrh architektúry

V tejto kapitole bližšie predstavím problematiku logovania, zberu logov a ich analýzy za účelom cielenia reklamy používateľom. Definujem požiadavky, ktoré by mal spĺňať systém určený na centralizáciu logov. Následne na základe po-žiadaviek navrhnem vhodnú architektúru takéhoto systému.

4.1 Úvod do problematiky

Podpora (angl.promotion) je jedným zo štyroch základných bodov marketin-gového mixu. [30] Marketingový mix, označovaný aj ako

”štyri P“, popisuje marketingové nástroje, ktoré môžu firme pomôcť dosiahnuť ciele prostred-níctvom ovplyvnenia trhu. Popri produktovej, cenovej a distribučnej politike vyjadruje podpora spôsoby, akými môžu podniky propagovať svoj produkt alebo službu.

Najdôležitejšou časťou podpory je reklama. Úlohou reklamy je v prvom rade presvedčiť o kúpe. Existuje mnoho kanálov, ktorými je možné širiť re-klamu. Potenciálnych zákazníkov možno osloviť umiestnením fyzickej reklamy v podobe plagátov, billboardov či iných pútačov, alebo rôznymi médiami ako sú tlač, rozhlas a televízia. Voľba konkrétneho kanálu vo veľkej miere záleží na cieľovej skupine, ktorú má daná reklama osloviť.

Špeciálnym typom reklamy je internetová reklama. Hlavným druhom in-ternetovej reklamy je bannerová reklama. Ide o vyhradené plochy na webových stránkach, umiestnené v blízkosti primárneho obsahu. Oproti ostatným kaná-lom sa dá reklama na internete lepšie naplánovať. Je možné zakúpiť si počet zobrazení alebo počet kliknutí na reklamu.

Navyše je reklama na internete neporovnateľne flexibilnejšia. Na tom istom banneri sa môže rôznym používateľom zobraziť rôzna reklama. Takúto reklamu nazývame cielená reklama.

4.1.1 Cielená reklama

Cielenie (angl.targeting) pomáha dostať reklamu k cieľovým skupinám a do-káže niekoľkonásobne zvýšiť jej efekt. Cieliť reklamu je možné z viacerých hľadísk. Napríklad podľa sociodemografických charakteristík – veku, pohlavia, národnosti a príjmu, ďalej podľa geografickej polohy, záujmov alebo správania a aktivity na webových stránkach.

Nato, aby bolo vôbec možné cieliť internetovú reklamu na konkrétne cieľové skupiny, je potrebné nejakým spôsobom získať a analyzovať dáta o užívateľoch a ich aktivite.

4.1.2 Clickstream

Clickstream, tiež známe ako click path, je cesta, ktorú nasledujú návštevníci webových stránok klikaním alebo navigáciou na stránkach. [31] Zjednodušene môžeme povedať, že je to zoznam všetkých zobrazených stránok všetkým náv-števníkom, zoradený podľa času prístupu. Zachytáva informácie o tom, kedy a odkiaľ daný návštevník pristúpil na stránku, koľko času tam strávil a kedy stránku opustil. Popri samotných klikoch sa môžu zaznamenávať napríklad aj vyhľadávané kľúčové slová. Jednotlivé záznamy bývajú často obohatené o ďal-šie informácie, ako napríklad ID návštevníka, informácie o polohe návštevníka, jeho webovom prehliadači alebo hardvéri.

Clickstreamové dáta môžu slúžiť jednak na všeobecné a súhrnné štatistiky o tom, ako sa v priemere správajú všetci návštevníci na stránkach, ale aj na analýzu chovania jednotlivcov. Informácie získané analýzou týchto dát typicky slúžia na poskytovanie personalizovaného obsahu a cielenej reklamy.

Vždy, keď používateľ klikne na hypertextový odkaz, jeho webový prehlia-dač (angl.web browser) vyšle požiadavku (angl.request) na iný počítač, známy ako webový server.

4.1.3 Webový server

Webový server je počítač, ktorý odpovedá na požiadavky klientov. Najbežnej-ším klientom je webový prehliadač. Komunikujú spolu prostredníctvom pro-tokolu HTTP. Typickou odpoveďou je odoslanie webovej stránky, obrázku, textu alebo iného súboru. Komunikácia s klientami, a teda clickstreamové dáta, sa typicky ukladajú do logových súborov na webových serveroch.

Požiadavky na webové stránky a webové služby s veľkou návštevnosťou bežne obsluhuje viacero webových serverov. Premávka sa rozdeľuje medzi jed-notlivé servery, a tým sa vyvažuje ich zaťaženie (angl.load balancing). Z toho dôvodu sa logové súbory nachádzajú na viacerých serveroch. Tieto dáta sa ďa-lej spracujú a analyzujú, preto vzniká potreba ich predtým centralizovať a ulo-žiť na jedno miesto, odkiaľ môžu byť načítané.

4.2. Funkcionalita systému

4.2 Funkcionalita systému

Veľké spoločnosti, ktoré prevádzkujú viacero webových služieb analyzujú dáta jednotne, aby mohli čo najlepšie cieliť na všetkých svojich stránkach. Spoloč-nosť Seznam zaznamená každú hodinu na desiatkách serverov desiatky až stovky miliónov záznamov z rôznych služieb.

Systém, ktorý zbiera tieto dáta zo serverov a centralizuje ich do exter-ných úložísk, odkiaľ sú ďalej dávkovo alebo prúdovo spracované, by mal byť založený na architektúre, ktorá umožňuje jednoduché škálovanie. To v praxi znamená, že musí existovať spôsob, akým je možné zvýšiť priepustnosť sys-tému, ak narastie objem dát na vstupe. Takáto situácia môže nastať v prípade, že pribudnú ďalšie služby alebo sa zvýši premávka.

4.2.1 Vstupy a výstupy

Vstupom systému sú logové súbory uložené na viacerých serveroch. Ich obsah je potrebné agregovať a transportovať do streamingovej platformy Apache Kafka a na distribuovaný súborový systém Apache HDFS.

4.2.2 Funkčné požiadavky

1. Transport logov z viacerých serverov:Systém bude schopný trans-portovať obsah logových súborov z viacerých serverov na určené výstupy.

2. Streamový výstup: Systém bude schopný transportovať obsah logo-vých súborov do distribuovaného systému na zasielanie správ Apache Kafka.

3. Batchový výstup:Systém bude schopný transportovať obsah logových súborov na distribuovaný súborový systém Apache HDFS.

4. Streamové spracovanie: Systém bude vykonávať transport na strea-mový výstup nepretržite a v takmer reálnom čase.

5. Možnosť konfigurácie: Parametre systému bude možné pred spuste-ním konfigurovať. Medzi konfigurovateľné parametre bude patriť naprí-klad definícia vstupov a výstupov.

6. Monitorovanie: Chovanie systému bude možné monitorovať. Medzi sledované parametre budú patriť napríklad metriky výkonu.

7. Zotavenie po výpadku:Pri výpadku a následnom opätovnom spustení systému alebo jeho časti bude systém schopný obnoviť svoju činnosť a pokračovať v spracovaní tam, kde skončil pred výpadkom.

4.2.3 Nefunkčné požiadavky

1. Škálovateľnosť:Aplikácia musí byť distribuovaná a ponúkať možnosť horizontálneho škálovania.

2. Spoľahlivosť: Systém musí garantovať spoľahlivé doručenie záznamov bez strát.

3. Rozšíriteľnosť:Systém musí byť pre prípadné zmeny v budúcnosti jed-noducho rozšíriteľný a modifikovateľný. Môže sa jednať o nárast produ-centov logových záznamov ako vstupov, alebo potrebu nového výstupu.

4. Využiť open source technológie:Systém musí byť postavený na open source technológiách.

4.3 Návrh architektúry

V tejto časti navrhnem architektúru systému. Počíta s definovanými vstupmi a výstupmi, ale nie je závislá na konkrétnej technológii. Navrhovaný systém predstavuje transportnú časť architektúry na spracovanie veľkých dát, rozobe-ranej v 3. kapitole, ktorá má za úlohu agregovať dáta zo zdrojov a uložiť ich do centralizovaného úložiska. Na nasledujúcom obrázku je táto časť znázornená pomocou prvých troch blokov – zdroje dát (angl.data sources), úložisko dát (angl.data storage) a prijímanie správ v reálnom čase (angl.real-time message ingestion) – a vzťahu medzi nimi.