• Rezultati Niso Bili Najdeni

Sandra Vizlar

N/A
N/A
Protected

Academic year: 2022

Share "Sandra Vizlar"

Copied!
56
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za raˇ cunalniˇ stvo in informatiko

Sandra Vizlar

Integracija gradnikov za izdelavo spletnih in mobilnih obrazcev z uporabo mikrostoritev

DIPLOMSKO DELO

UNIVERZITETNI ˇSTUDIJSKI PROGRAM PRVE STOPNJE

RA ˇCUNALNIˇSTVO IN INFORMATIKA

Mentor : doc. dr. Rok Rupnik

Somentor : dipl. ing. elektrotehnike Saˇso Saviˇ c

Ljubljana, 2021

(2)

To delo je ponujeno pod licencoCreative Commons Priznanje avtorstva-Deljenje pod enakimi pogoji 2.5 Slovenija (ali novejˇso razliˇcico). To pomeni, da se tako besedilo, slike, grafi in druge sestavine dela kot tudi rezultati diplomskega dela lahko prosto distribuirajo, reproducirajo, uporabljajo, priobˇcujejo javnosti in predelujejo, pod pogojem, da se jasno in vidno navede avtorja in naslov tega dela in da se v primeru spremembe, preoblikovanja ali uporabe tega dela v svojem delu, lahko distribuira predelava le pod licenco, ki je enaka tej. Podrobnosti licence so dostopne na spletni strani creativecommons.si ali na Inˇstitutu za intelektualno lastnino, Streliˇska 1, 1000 Ljubljana.

Izvorna koda diplomskega dela, njeni rezultati in v ta namen razvita programska oprema je ponujena pod licenco GNU General Public License, razliˇcica 3 (ali novejˇsa). To pomeni, da se lahko prosto distribuira in/ali predeluje pod njenimi pogoji. Podrobnosti licence so dostopne na spletni strani http://www.gnu.org/

licenses/.

Besedilo je oblikovano z urejevalnikom besedil LATEX.

(3)

Kandidat: Sandra Vizlar

Naslov: Integracija gradnikov za izdelavo spletnih in mobilnih obrazcev z uporabo mikrostoritev

Vrsta naloge: Diplomska naloga na univerzitetnem programu prve stopnje Raˇcunalniˇstvo in informatika

Mentor: doc. dr. Rok Rupnik

Somentor: dipl. ing. elektrotehnike Saˇso Saviˇc

Opis:

Analizirajte podroˇcje avtomatizacije zajema povpraˇsevanja po storitvah. V okviru tega prouˇcite moˇznosti uporabe dogodkovne arhitekture in dogodkovne pretoˇcne platforme. Nato implementirajte sistem za enostavno oblikovanje novih spletnih in mobilnih obrazcev. Pri implementaciji uporabite tehnologije in sisteme po svojem izboru.

Title: The integration of widgets to create web forms and mobile forms with the use of microservices

Description:

Analyze the field of automation of service demand capture. Study the possi- bility of using event-driven architecture and event streaming platform. Then implement a system for easy design of new web and mobile forms. Use technologies and systems of your choosing for implementation.

(4)
(5)

Zahvala za pomoˇc pri izdelavi diplomske naloge gre mentorju, doc. dr. Roku Rupniku in somentorju, dipl. ing. elektrotehnike Saˇso Saviˇcu. Ravno tako se zahvaljujem sodelavcem v podjetju, ki so mi bili pripravljeni odgovoriti na vsako vpraˇsanje, ki se mi je porodilo tekom pisanja diplomske naloge. Zahvala gre tudi druˇzini, partnerju in prijateljem, ki so me tekom ˇstudija podpirali in mi stali ob strani.

(6)
(7)

Kazalo

Povzetek Abstract

1 Uvod 1

1.1 Predstavitev domene . . . 1

1.2 Cilji diplome . . . 2

1.3 Predstavitev problema . . . 2

1.4 Pregled sorodnih primerov . . . 2

1.5 Struktura diplome . . . 3

2 Orodja in tehnologije 5 2.1 Paketna obdelava podatkov . . . 5

2.2 Dogodkovna obdelava podatkovnih tokov . . . 6

2.3 Dogodkovno vodena arhitektura (angl. event driven architecture) 7 2.3.1 Osnovna enota EDA: dogodek . . . 7

2.3.2 Komponente EDA . . . 7

2.3.3 Pretok podatkov v EDA . . . 8

2.3.4 Tipi procesiranja podatkov . . . 9

2.3.5 Prednosti in slabosti dogodkovne arhitekture . . . 10

2.3.5.1 Prednosti EDA . . . 10

2.3.5.2 Slabosti EDA . . . 11

2.4 Apache Kafka . . . 12

2.4.1 Arhitektura Apache Kafke . . . 12

(8)

2.4.1.1 Osnovna podatkovna enota: sporoˇcilo . . . . 13

2.4.1.2 Proizvajalci . . . 13

2.4.1.3 Teme in particije . . . 15

2.4.1.4 Potroˇsniki . . . 16

2.4.1.5 Gruˇce in posredniki . . . 17

2.4.1.6 Apache Kafka in mikrostoritve . . . 18

3 Platforma za izdelavo obrazcev 19 3.1 Komponente obrazcev . . . 19

3.2 Pridobitev podatkov obrazca . . . 22

4 Analiza 23 4.1 Diagrami primerov uporabe . . . 23

5 Naˇcrtovanje 27 5.1 Arhitektura sistema . . . 27

6 Predstavitev aplikacije 31

7 Zakljuˇcki 37

Literatura 37

(9)

Seznam uporabljenih kratic

kratica angleˇsko slovensko

CGP corporate identity celostna grafiˇcna podoba HTML HyperText Markup Language jezik za oznaˇcevanje nadbese-

dila

EDA event driven architecture dogodkovno vodena arhitek- tura

SSO single sign on enotna prijava

CRM customer relationship mana- gment

upravljanje odnosov s stran- kami

BPM business process management upravljanje poslovnih proce- sov

(10)
(11)

Povzetek

Naslov: Integracija gradnikov za izdelavo spletnih in mobilnih obrazcev z uporabo mikrostoritev

Avtor: Sandra Vizlar

V okviru diplomske naloge smo oblikovali spletne obrazce za avtomatski zajem povpraˇsevanja po storitvah. To bo olajˇsalo delo zaposlenih v podjetju, saj se bodo znebili roˇcnega zajema povpraˇsevanj. V diplomski nalogi so predstavljeni arhitektura in orodja, ki smo jih uporabili za realizacijo cilja.

Zajem povpraˇsevanja smo implementirali z izdelavo spletnih obrazcev. Za izgradnjo le teh je podjetje kupilo platformo, ki omogoˇca enostavno izdelavo tudi uporabnikom brez znanja programiranja in oblikovanja v HTML. S tem smo uspeli tudi zagotoviti enostavno dodajanje obrazcev za povpraˇsevanje po novih storitvah. Z uporabo dogodkovnih podatkovnih tokov in Apache Kafke smo uspeli doseˇci obdelavo podatkov v realnem ˇcasu.

Kljuˇcne besede: spletni obrazci, EDA, dogodkovna obdelava podatkovnih tokov, Apache Kafka.

(12)
(13)

Abstract

Title: The integration of widgets to create web forms and mobile forms with the use of microservices

Author: Sandra Vizlar

As part of the diploma thesis, we designed online forms for automatic demand capture. This will facilitate the work of the company’s employees, as they will get rid of the manual capture of demands. The diploma thesis presents the architecture and tools we used in the realization of our goal. We implemented demand capture with online forms. The company bought a platform that allows users to easily create forms even without any knowledge of programming and design in HTML to build these. With this, we also ensured an easy way of adding forms for new types of demands. Using event data streams and Apache Kafka, we were able to achieve real-time data processing.

Keywords: online forms, EDA, event data stream processing, Apache Kafka.

(14)
(15)

Poglavje 1 Uvod

Diplomska naloga je nastala v sodelovanju s podjetjem, ki je ˇzelelo v svoj ˇze obstojeˇci portal za stranke integrirati spletne obrazce za avtomatski zajem povpraˇsevanj po storitvah, ki jih podjetje ponuja.

1.1 Predstavitev domene

Podjetje ima za stranke ˇze obstojeˇci portal, ki pa ne omogoˇca oddaje pov- praˇsevanja po storitvah.

Portal bo deleˇzen prenove, ki bo oljaˇsala zajem povpraˇsevanja, saj ga bo avtomatizirala in tako odstranila potrebo po roˇcnem pregledu povpraˇsevanj iz elektronskih sporoˇcil. Prenova portala bo priˇsla v obliki spletnega obrazca, preko katerega stranka izvede povpraˇsevanje.

Pred oddajo povpraˇsevanja se mora uporabnik registrirati oziroma prija- viti. Ob registraciji potrebujemo veljaven elektronski naslov, ime in priimek, kontaktne podatke ter podatke o podjetju. Po prejetju potrditvenega sporoˇcila in aktivaciji profila se lahko uporabnik prijavi v portal.

Portal ima svoj CGP, zato bodo tudi obrazci izdelani v skladu s podjetjevo celostno grafiˇcno podobo.

1

(16)

2 Sandra Vizlar

1.2 Cilji diplome

Projekt se izvaja z namenom, da bo pripomogel k digitalizaciji prodaje.

Namen spletnih obrazcev bo torej poveˇcanje prodaje z zbiranjem povpraˇsevanj direktno iz spleta. Sistem spletnih obrazcev mora znati zajeti zahtevane podatke in jih poslati na zaledni sistem. Podatki morajo biti strukturirani, saj tako zagotovimo da zaledni sistemi enostavno pridobijo ˇzelene podatke iz sporoˇcila, brez pretipkavanja iz enega sistema v drugega.

1.3 Predstavitev problema

Projekt bo vkljuˇceval izdelavo spletnih obrazcev s platformo, ki jo je podjetje kupilo v ta namen. Temu bo sledila implementacija poˇsiljanja podatkov iz obrazcev v zaledni sistem z uporabo Apache Kafke. Iz Apache Kafke gre sporoˇcilo v BPM, kjer se zaˇcne proces sestavljanja ponudbe za stranko.

1.4 Pregled sorodnih primerov

Eden izmed sorodnih primerov je portal eUprava, drˇzavni portal Republike Slovenije, preko katerega je Ministrstvo za javno upravo zagotovilo elektronski naˇcin opravljanja upravnih storitev.

Pogoj za oddajo elektronskih vlog preko eUprave je kvalificirano digitalno potrdilo. Prijava v eUpravo uporabnikom omogoˇca vpogled v statuse oddanih vlog in dokumente, ki jih tam hranijo.[1]

Spletni obrazci za avtomatski zajem povpraˇsevanj bodo imeli podobno implementacijo pridobivanja osebnih podatkov in avtomatskega izpolnjevanja polj, ki jih zahtevajo. Namesto kvalficiranega digitalnega potrdila bomo uporabili pridobivanje podatkov o stranki s pomoˇcjo SSO.

(17)

Diplomska naloga 3

1.5 Struktura diplome

V 2. poglavju bomo spoznali orodja in tehnologije, ki smo jih uporabili na tem projektu in sicer:

1. v 2.1. predstavimo paketno obdelavo podatkov

2. v 2.2. predstavimo dogodkovno obdelavo podatkovnih tokov 3. v 2.3. predstavimo dogodkovno vodeno arhitekturo

4. v 2.4. predstavimo Apache Kafko

Nato v 3. poglavju predstavimo platformo za izdelavo obrazcev.

V 4. poglavju so prikazani diagrami primerov uporabe, v poglavju 5. pa arhitektura sistema.

Na koncu v 6. poglavju aplikacijo predstavimo in v poglavju 7. navedemo zakljuˇcke, do katerih smo priˇsli.

(18)

4 Sandra Vizlar

(19)

Poglavje 2

Orodja in tehnologije

Dandanes je kljuˇcnega pomena, da podatke pridobimo in obdelamo v realnem ˇcasu.[2] S tem v mislih se bo obdelava podatkov spletnih obrazcev iz klasiˇcne paketne obdelave podatkov preusmerila na implementacijo cevovodov za obdelavo podatkovnih tokov v realnem ˇcasu.

2.1 Paketna obdelava podatkov

Paketna obdelava podatkov je naˇcin obdelave informacij, kjer se podatki zbirajo v enote imenovane paketi.

Le te se nato obdela v ozadju v serijah, brez interakcije s strani upo- rabnika, po vnaprej doloˇcenem urniku. Serije se lahko izvaja periodiˇcno po dnevih, tednih, mesecih oziroma po potrebi. Da zagotovimo minimalno ˇstevilo prekinitev, sestavimo urnik tako, da obdelava podatkov ne moti delovnega procesa. To veˇcinoma pomeni, da serije izvajamo ob koncu delovnega dne, oziroma ponoˇci. Kadar to ni moˇzno, se izbere ˇcas v obdobju ko je sistem najmanj obremenjen. Dandanes so ta okna za izvedbo serij, zaradi zahteve po konstantni razpoloˇzljivosti sistemov, vse manjˇsa.[3]

Podatki v paketni obdelavi v analizo pridejo z visoko latenco.[4] To pomeni, da v resnici ves ˇcas obdelujemo zastarele podatke. Aˇzurnost le teh bo na koncu odvisna od dolˇzine intervala med enim in drugim izvajanjem serije.[5]

5

(20)

6 Sandra Vizlar Ta princip obdelave podatkov torej ni primeren, ˇce ˇzelimo podatke anali- zirati v realnem ˇcasu. Sam proces paketne obdelave podatkov traja dlje kot ostali naˇcini obdelave informacij.[6] Problem lahko nastane tudi s prostorom, kamor shranjujemo pakete podatkov.[7]

2.2 Dogodkovna obdelava podatkovnih tokov

Dandanes se spopadamo z ogromnimi koliˇcinami podatkov, ki jih je potrebno obdelati v realnem ˇcasu. Podatki torej ne smejo biti statiˇcni in zastareli, tako kot so pri paketni obdelavi podatkov. Obdelava podatkovnih tokov v realnem ˇcasu je reˇsitev primerna za situacije, kjer se zahteva takojˇsnja obdelava podatkov.[8]

Za razliko od klasiˇcne paketne obdelave podatkov, pri obdelavi podatkov- nih tokov ne skladiˇsˇcimo podatkov za kasnejˇso obdelavo. Obdelava podat- kovnih tokov v realnem ˇcasu pomeni, da bomo podatke obdelali takoj, ko so generirani. Hranjenje podatkov namreˇc povzroˇca latenco, zato ga ne upora- bimo, ko se od nas zahteva obdelava velike koliˇcine podatkov in vizualizacija obdelanih podatkov v realnem ˇcasu. ˇSe eden izmed razlogov za latenco je to, da sistem ˇcaka na navodila za obdelavo podatkov. To latenco lahko zmanjˇsa dogodkovno vodena arhitektura. [9]

Ena izmed oblik obdelave podatkovnih tokov je dogodkovna obdelava podatkovnih tokov. Dogodkovna obdelava podatkovnih tokov (angl. event stream processing) je naˇcin obdelave podatkov sistema, ki konstantno proi- zvaja nove podatkovne tokove.[10] Dogodek predstavlja nove podatke, ki jih dostavi podatkovni tok. [11]

Platforme za obdelavo podatkovnih tokov, kot je Apache Kafka, so kljuˇcnega pomena za obdelavo podatkov v realnem ˇcasu. Sposobne so sprejeti ogromne koliˇcine podatkov, ki bodo aplikacijam, ki jih bodo obdelale, na voljo v nekaj milisekundah.

Teh podatkov ne hranimo v podatkovnih bazah, saj so draga investicija z dragim vzdrˇzevanjem. Namesto tega jih hranimo v zbirkah. Podatkovni

(21)

Diplomska naloga 7 tokovi so sestavljeni iz veˇc med seboj povezanih dogodkov. Le te v zbirkah hranimo skupaj. V zbirko lahko shranjujemo dogodke veˇcih uporabnikov, prav tako lahko iz nje bere veˇc aplikacij. [12]

2.3 Dogodkovno vodena arhitektura (angl. event driven architecture)

Eden izmed razlogov za latenco v sistemu je to, da sistem ˇcaka na navodila za obdelavo podatkov. Kot smo omenili v poglavju 2.2, je reˇsitev za to dogodkovno vodena arhitektura. Dogodkovno vodena arhitektura (angl.

event driven architecture) omogoˇca spremljanje dogajanja v sistemu in odziv na dogodke, ki se zgodijo v njem, v realnem ˇcasu. EDA je porazdeljena arhitektura, ki podatke v realnem ˇcasu procesira asinhrono. [13]

2.3.1 Osnovna enota EDA: dogodek

Dogodek predstavlja nove podatke, ki jih dostavi podatkovni tok. Po tem, ko se dogodek generira, je razposlan vsem aplikacijam in ljudem, ki njegove podatke potrebujejo. Le ti bodo podatke ocenili in se, ˇce bo to potrebno, nanje tudi odzvali. Vir dogodka so lahko tako uporabniki, kot tudi sam sistem.

Dogodek je sestavljen iz glave in telesa. Glava vsebuje podatke, ki opisujejo nastanek dogodka, kot so na primer enoliˇcni identifikator dogodka, ime dogodka in ˇcas, ko se je le ta zgodil ter kdo ga je ustvaril.

V telesu najdemo opis samega dogodka. Opis mora biti dovolj natanˇcen, da ne rabimo nazaj k podatkovnemu viru po dodatno razlago. [13]

2.3.2 Komponente EDA

Dogodkovna obdelava podatkovnih tokov omogoˇca EDA asinhronost in po- razdeljenost njenih storitev. [14]

(22)

8 Sandra Vizlar Eden izmed bolj popularnih konceptov poˇsiljanja podatkov v EDA je koncept ponudnik-odjemalec.[15] Ponudnik dogodka bo tok podatkov generiral, odjemalec dogodkov pa jih sprejme in potem ustrezno obdela. [16]

Porazdeljenost EDA zagotavlja, da so ponudniki in odjemalci loˇceni, kar pomeni da ponudniki ne vedo, kdo bo obdelal dogodke, ki so jih generirali.[14]

Koncept ponudnik-odjemalec je prikazan na sliki 2.1.[16]

PONUDNIK PROCESNA ODJEMALEC

ENOTA

Slika 2.1: Prikaz koncepta ponudnik-odjemalec. [16]

2.3.3 Pretok podatkov v EDA

Bolj podroben pregled nad arhitekturo in samim prenosom podatkov od ponudnika do odjemalca le teh je prikazan na sliki 2.2.[17][18]

GENERATOR DOGODKOV

KANAL ZA PRENOS

DOGODKA PROCESNA ENOTA ODZIV NA

DOGODEK

Slika 2.2: Prikaz pretoka podatkov v EDA. [17]

(23)

Diplomska naloga 9 1. Generator dogodkov

Generator dogodkov zazna prihod podatkov in ustvari dogodek. Naloga generatorja dogodkov je tudi pretvorba formata podatkov, saj so si le ti lahko med sabo razliˇcni, ker prihajajo iz veˇc(ih) razliˇcnih virov. Tako dobimo standardno obliko podatkov v sistemu.[13]

2. Kanal za prenos dogodka

Kanal za prenos dogodka je mehanizem, ki poˇslje informacije od ge- neratorja dogodka do procesne enote obdelavo dogodka. Sporoˇcilo se zapakira v za sistem standarden format. Hkrati je lahko odprtih veˇc kanalov za prenos dogodka. Procesna enota bo dogodke brala asinhrono.

Dogodki bodo ˇcakali v vrsti, na to da jih obdela procesna enota.[19]

3. Procesna enota

Procesna enota za obdelavo dogodkov je odgovorna za ovrednotenje dogodka, po vnaprej doloˇcenih pravilih s strani uporabnika in izbiro ter izvedbo primerne reakcija nanj.[19] Reakcija na dogodek je lahko vse od zaˇcetek procesa znotraj sistema do obveˇsˇcanja specifiˇcnih odjemalcev, tako oseb kot sistemov.[13]

4. Odziv na dogodek

En sam dogodek lahko povzroˇci veˇc razliˇcnih odzivov. Odzivi so lahko sproˇzeni s strani procesne enote ali pa s strani odjemalca, ki spremlja prihod novih podatkov. Odjemalci so lahko tako ljudje kot tudi aplikacije in podatkovna skladiˇsˇca. Podatke odjemalci dobijo v formatu primernem zanje, pretvorbo pa storijo zaledni sistemi. Obstaja tudi moˇznost, da dogodek ne potrebuje odziva.[13]

2.3.4 Tipi procesiranja podatkov

Veˇcina EDA kombinira sledeˇce tipe procesiranja podatkov med sabo.

1. Obdelava preprostih dogodkov

(24)

10 Sandra Vizlar Obdelava preprostih dogodkov (angl. simple event processing) opisuje oznaˇcuje obdelavo dogodkov, ki so dovolj pomembni, da sproˇzijo odziv procesne enote ali odjemalca. Ponavadi se ta naˇcin obdelave uporabi za obdelavo podatkov v realnem ˇcasu in s tem zmanjˇsanje latenc.[20]

2. Dogodkovna obdelava podatkovnih tokov

Dogodkovna obdelava podatkovnih tokov je podrobneje predstavljena v poglavju 2.2. Gre za tip obdelave podatkov, ki poteka v realnem ˇcasu ter tako omogoˇca takojˇsnje odloˇcanje.[19]

3. Obdelava kompleksnih dogodkov

Obdelavo kompleksnih dogodkov (angl. complex event processing) uporabimo predvsem za zaznavanje in odziv na anomalije in groˇznje v sistemu. Tak naˇcin obdelave vkljuˇcuje opazovanje dogodkov in iskanje vzorcev, na katere se po potrebi odzovemo.[20]

2.3.5 Prednosti in slabosti dogodkovne arhitekture

2.3.5.1 Prednosti EDA 1. Format podatkov

Podatki so v generiˇcnem formatu in so na voljo tudi za kasnejˇso uporabo.

[15]

2. Porazdeljenost EDA

Ponudniki in odjemalci ne vedo drug za drugega. Med njimi obstaja enota, ki sprejme dogodek in ga poˇslje naprej. Komponente lahko tako brez problemov dodamo ali odstranimo iz sistema.[21]

3. Asinhronost EDA

Obvestila o dogodkih se poˇsiljajo asinhrono, kar pomeni da so razposlana takoj, ko se dogodek zgodi. ˇCe ga odjemalec ne more procesirati v tem trenutku, lahko to stori tudi kasneje.[21]

(25)

Diplomska naloga 11 4. Tolerantnost do napak

Ker je EDA porazdeljena, odpoved ene izmed komponent sistema ne bo vplival na ostale. Odpoved namreˇc postane eden izmed dogodkov, ki jih je treba obdelati. [21]

2.3.5.2 Slabosti EDA

1. Predvidevanje nepredvidenega

Zelo teˇzko testiramo sisteme, ki temeljijo na EDA, saj le ta uporablja asinhrono poˇsiljanje obvestil o dogodkih. To pomeni, da ne moremo nikoli priˇcakovati kdaj bomo prejeli podatke.[22]

(26)

12 Sandra Vizlar

2.4 Apache Kafka

Dandanes aplikacije konstantno generirajo podatke v realnem ˇcasu, ki jih moramo po hitrem in zanesljivem postopku spraviti do prejemnikov.

Ponavadi so aplikacije, ki podatke proizvajajo in te, ki jih odjemajo loˇcene in nedosegljive druge drugim. Zato potrebujemo mehanizem, ki bo podatke prenesel od proizvajalca do potroˇsnika.

Ta mehanizem bo Apache Kafka, odprtokodna dogodkovna pretoˇcna platforma (angl. event streaming platform). Platformo razvija Apache Kafka Foundation v jezikih Java in Scala. Apache Kafka je platforma za obdelavo podatkovnih tokov, katere cilj je obdelava podatkov v realnem ˇcasu z nizko latenco, ki je odporna na odpovedi, saj le te lahko obdela brez teˇzav. [23]

Osnovne funkcionalnosti Apache Kafke so:

1. prenos podatkov med proizvajalcem in potroˇsnikom 2. shranjevanje tokov dogodkov

3. obdelava tokov dogodkov, ko se zgodijo [24]

2.4.1 Arhitektura Apache Kafke

Apache Kafka teˇce na gruˇci streˇznikov, kar lahko vidimo na sliki 2.3. To so tako imenovani posredniki. Posredniki so razdeljeni na teme, le te pa na particije, kamor shranjujemo podatke, ki jih pridobimo od proizvajalcev. ˇCe kateri izmed streˇznikov odpove, delo prevzamejo ostali. To nam zagotovi neprekinjene operacije brez izgube podatkov.

Apache Kafka uporablja klasiˇcno potisni/povleci (angl. push/pull) metodo za pridobitev in posredovanje podatkov. Podatki proizvajalci porinejo do posrednikov, kjer so porazdeljeni v particije, znotraj tem. Sporoˇcila so indeksirana in shranjena skupaj glede na ˇcasovno oznako v datoteˇcni sistem.

Ta sporoˇcila lahko nato iz posrednikov potegnejo potroˇsniki.[24]

(27)

Diplomska naloga 13

KAFKA GRU?A

PROIZVAJALEC PROIZVAJALEC PROIZVAJALEC

POTRO?NIK

POTRO?NIK

KAFKA ZOOKEEPER

pisanje sporo?il branje sporo?il

TEMA PARTICIJA PARTICIJA

PARTICIJA POSREDNIK

TEMA PARTICIJA PARTICIJA PARTICIJA POSREDNIK TEMA

PARTICIJA PARTICIJA

PARTICIJA POSREDNIK

PROIZVAJALEC PROIZVAJALEC

POTRO?NIK

Slika 2.3: Prikaz Kafka gruˇce. [23]

2.4.1.1 Osnovna podatkovna enota: sporoˇcilo

Podatke, s katerimi Apache Kafka upravlja, imenujemo sporoˇcila. Sporoˇcilo je le tabela bajtov. Dodan je lahko en bit, ki mu pravimo kljuˇc in vsebuje metapodatke. Ta je ravno tako zapisan v tabeli bajtov in nam pove v katero particijo spada sporoˇcilo. Particijo izraˇcunamo tako, da izraˇcunamo zgoˇsˇceno (angl. hash) vrednost kljuˇca. Nato po modulu s ˇstevilom particij izraˇcunamo ˇstevilko particije, v katero umestimo sporoˇcilo. To nam zagotovi, da so podatki, ki jih zapiˇsemo z istim kljuˇcem, zapisani v isto particijo.[25]

2.4.1.2 Proizvajalci

Proizvajalci kreirajo sporoˇcila. Sporoˇcilo se poˇslje do posrednika in se tam zapiˇse v temo. Proizvajalcu je ponavadi vseeno v katero particijo se sporoˇcilo zapiˇse. Ta se namreˇc razporedijo enakomerno po particijah v neki temi. ˇCe pa proizvajalec ˇzeli, da se sporoˇcilo zapiˇse v toˇcno doloˇceno particijo, poˇslje s podatki kljuˇc. Tako zagotovi, da bodo vsa sporoˇcila z istim kljuˇcem zapisana v isto particijo.

Ce sporoˇˇ cilo uspeˇsno pride do posrednika, ta poˇslje odgovor nazaj do

(28)

14 Sandra Vizlar proizvajalca, kjer pove v kateri particiji znotraj teme je zapisano sporoˇcilo ter s kakˇsnim odmikom. V primeru, da sporoˇcilo ni bilo uspeˇsno poslano, bo proizvajalec prejel obvestilo o napaki in poskuˇsal poslati sporoˇcilo ponovno, preden obupa in nas obvesti o neuspeˇsnem poˇsiljanju sporoˇcila.[25]

Potek zapisa sporoˇcila je prikazan na sliki 2.4.

PODATKI

KAFKA PROIZVAJALEC

USTVARIMO SPORO? ILO

OBJAVIMO SPORO? ILO

KAFKA POSREDNIK

SPORO? ILO LOKACIJA

SPORO? ILA

Slika 2.4: Potek zapisa sporoˇcila in prejetja odgovora ob uspeˇsnem poˇsiljanju.

[26]

Proizvajalci lahko sporoˇcila poˇsiljajo na veˇc naˇcinov [27]:

1. Poˇslji in pozabi

Sporoˇcilo poˇsljemo posredniku, vendar nas odgovor o uspeˇsnosti poˇsiljanja sporoˇcila ne zanima. Ker je kafka visoko razpoloˇzljiv sistem in posredniki ponovno poˇsljejo neuspeˇsno dostavljena sporoˇcila, bodo le ta veˇcino ˇcasa uspeˇsno priˇsla do posrednika. Kljub vsemu lahko sporoˇcila izgubimo,

(29)

Diplomska naloga 15 zato ta naˇcin uporabimo, kadar si nekaj podatkov lahko privoˇsˇcimo izgubiti.[28]

2. Sinhrono poˇsiljanje podatkov

Sporoˇcilo poˇsljemo posredniku in ˇcakamo na odgovor. V primeru uspeˇsnega poˇsiljanja dobimo od posrednika metapodatke z lokacijo sporoˇcila, na katero se ponavadi ne oziramo. Veliko bolj nas zanima, ˇce sporoˇcilo ni bilo uspeˇsno poslano. V tem primeru dobimo obvestilo o na- paki. Ta naˇcin poˇsiljanja podatkov uporabimo, ko poˇsiljamo pomembne podatke, kjer izgube niso dopustne. Ena izmed slabosti sinhronega poˇsiljanja podatkov je, da nam omejuje prepustnost, saj moramo po vsakem poslanem sporoˇcilu ˇcakati na potrditev o uspehu.[28]

3. Asinhrono poˇsiljanje podatkov

Sporoˇcilo poˇsljemo posredniku in ne ˇcakamo na potrditev o uspehu ali na napako. S pomoˇcjo funkcije povratnega klica sami preverimo ali je bilo sporoˇcilo uspeˇsno poslano.[28]

2.4.1.3 Teme in particije

Sporoˇcila v Kafki hranimo v temah. Posamezna tema je razdeljena na eno ali veˇc particij, kamor sporoˇcila zapisujemo tako, da jih dodamo na konec vrste.

Sporoˇcila so tako znotraj particije urejena kronoloˇsko, od starih proti novim.

Casovna urejenost velja le znotraj particij, ne pa tudi znotraj tem.[25]ˇ Sporoˇcilom v partcijah se dodeli enoliˇcen identifikator, imenovan odmik (angl. offset). Kafka doloˇci odmik vsakemu sporoˇcilu ko se zapiˇse v particijo.

Odmiki bodo zaporedni. Predvsem so uporabni za potroˇsnike, ki berejo sporoˇcila iz particije. [29]

Zgradba particije in dodeljevanje enoliˇcnega identiikatorja ob zapisu sporoˇcila vanjo je prikazano na sliki 2.5.

(30)

16 Sandra Vizlar

0 1 2 3 4 5 6 7

0 1 2 3 4

0 1 2 3 4 5 6

PARTICIJA 0 PARTICIJA 1 PARTICIJA 2

STARA SPORO? ILA

SPORO? ILANOVA

ZAPIS SPORO? IL V PARTICIJE

Slika 2.5: Zgradba particij in prikaz poteka indeksiranja sporoˇcil ob dodajanju v le te. [27]

Kafka s porazdeljevanjem tem na particije omogoˇca redundanco in skala- bilnost.[25] S hranjenjem kopij particij na veˇcih streˇznikih zagotovimo tudi odpornost na napake.[24]

2.4.1.4 Potroˇsniki

Potroˇsniki so naroˇceni na teme, iz katerih ˇzelijo brati podatke. Potroˇsnik poˇslje zahtevo za prenos sporoˇcil posredniku, kjer se nahaja tema iz katere ˇzeli brati. V zahtevi mora podati odmik sporoˇcila v particiji.[27]

Ker potroˇsnik opravlja operacije z visoko latenco, se lahko zgodi, da ne zmore pravoˇcasno obdelati vseh podatkov ki pridejo v temo. Ta problem reˇsimo tako, da ustvarimo skupino potroˇsnikov, kjer bodo vsi potroˇsniki iz skupine brali iz iste teme, toda razliˇcnih particij. Skupina zagotavlja da bo vsako particijo bral le en potroˇsnik.[25]

Potek branja sporoˇcila je prikazan na sliki 2.6.

(31)

Diplomska naloga 17

Process

PODATKI

KAFKA POTRO?NIK 0

OBDELAMO SPORO? ILO NARO? IMO

SPORO? ILO KAFKA TEMA

PARTICIJA 0

PARTICIJA 1

PARTICIJA 2

SPORO? ILO 0

5 4 3 2 1

PODATKI

KAFKA POTRO?NIK 1

OBDELAMO SPORO? ILO NARO? IMO

SPORO? ILO SPORO? ILO 1

SPORO? ILO 3 7

6

6 5 4

5 4 3 2

SKUPINA POTRO?NIKOV

Slika 2.6: Zgradba particij in prikaz poteka indeksiranja sporoˇcil ob dodajanju v le te. [25][26]

Ta naˇcin hkratnega branja iz particij omogoˇca dobro prepustnost in odpornost na odpovedi. V primeru da eden izmed potroˇsnikov odpove, bo branje iz njegove particije prevzel eden izmed preostalih potroˇsnikov.[25]

2.4.1.5 Gruˇce in posredniki

Posrednik je streˇznik, razdeljen na teme. Namen posrednika je sprejem sporoˇcil od proizvajalcev, doloˇcanje odmika in shranjevanje sporoˇcila v particijo ter posredovanje sporoˇcil potroˇsnikom, ko to zahtevajo. Posamezen streˇznik lahko upravlja na tisoˇce particij in miljone sporoˇcil na sekundo.

Kafka gruˇca je sestavljena iz veˇc posrednikov. Znotraj gruˇce bo eden izmed posrednikov avtomatsko doloˇcen za nadzornika gruˇce. Ta bo odgovoren za administrativne operacije, kot so dodeljevanje particij posrednikom in spremljanje izpadov posrednikov.

Vsaka particija bo v lasti le enega posrednika, ki mu pravimo vodja

(32)

18 Sandra Vizlar particije. Particijo lahko kljub temu razporedimo po veˇc posrednikih. S tem ustarimo kopije particije, ki zagotavljajo redundanco sporoˇcil v particiji. V primeru odpovedi vodje particije lahko namreˇc tisti posrednik, ki vsebuje kopijo particije, prevzame vodstvo nad njo. Vsi proizvajalci in potroˇsniki so povezani z vodjo gruˇce.

Ena izmed kljuˇcnih funkcionalnosti Kafke je hranjenje podatkov za nek doloˇcen ˇcas. Posredniki lahko shranjujejo podatke v particijah za nek vnaprej doloˇcen ˇcas ali pa dokler particija ne doseˇze neke velikosti. Posamezne particije znotraj teme imajo lahko tudi razliˇcna obdobja hranjenja podatkov.

Ob preteku le teh sporoˇcila izbriˇsemo iz particij.[25]

2.4.1.6 Apache Kafka in mikrostoritve

V EDA lahko poteka komunikacija med mikrostoritvami, na katere je razde- ljena aplikacija, preko Kafke. Komunikacija namreˇc poteka asinhrono preko sporoˇcilnih kanalov.[30]

Kafka mikrostoritve enostavno obravnava kot proizvajalce in potroˇsnike.

Potroˇsnike tudi razrsti v loˇceno skupino potroˇsnikov.[31] Mikrostoritve bodo tako lahko prebrale in procesirale podatke, ki jih dobijo iz Kafka tem ter jih tja tudi zapisale.

(33)

Poglavje 3

Platforma za izdelavo obrazcev

Spletne obrazce smo izdelali s spletno platformo za ustvarjanje elektronskih obrazcev. Le te se vgradi v obstojeˇca spletna mesta. Platformo je podjetje integriralo v zaledje.

3.1 Komponente obrazcev

Za izdelavo obrazcev imamo na voljo platno, kamor postavljamo komponente, za katere ˇzelimo da jih naˇsi obrazci imajo. Na sliki 3.1 je prikazan vme- snik za izdelavo obrazcev, na katerem lahko vidimo seznam spodaj opisanih komponent.

Obrazec ima lahko veˇc strani, na katere umeˇsˇcamo ostale komponente.

Stran je primarna vsebinska komponenta. Na voljo imamo tudi omejitve s katerimi lahko onemogoˇcimo prehod naprej po straneh, ˇce niso izpolnjena vsa obvezna polja.

Na strani lahko postavimo skupine komponent, katere lahko tudi shranimo kot zakljuˇceno celoto in uporabimo ponovno Skupini lahko doloˇcimo poljubno ˇstevilo stolpcev, kar omogoˇca boljˇsi nadzor nad postavitvijo elementov na strani. S tem kreiramo logiˇcne skupine komponent, ki jih lahko skupinsko nadziramo.

Za zbiranje podatkov imamo na voljo tekstovna vnosna polja., ki jih 19

(34)

20 Sandra Vizlar ponavadi uporabimo za zbiranje osebnih podatkov uporabnika. Na voljo imamo tudi spustne sezname, ki omogoˇcajo uporabniku filtriranje iskanja, sezname z radijskimi gumbi, ki omogoˇcajo le eno izbiro ali potrditvena polja ki jih omogoˇcajo veˇc.

Na voljo imamo uporabo tabel, s katero privzeto ni moˇzna interakcija.

To se lahko naknadno spremeni in omogoˇci izbiro vrstic. Na izbiro imamo tudi polje za izbiro datuma. Gumbi nam omogoˇcajo proˇzenje skript in pravil. Dodamo lahko tudi gumb, ki omogoˇca nalaganje datotek z raˇcunalnika uporabnika.

Obrazce lahko dodatno uredimo s komponentami kot so tekst, ravna ˇcrta, ki predstavlja loˇcnico ter tudi prazna polja.

Komponentam lahko doloˇcimo ˇstevilo stolpcev, ki jih zavzemajo na strani ali v skupini ter opremimo vnosna polja s privzeto vrednostjo ali sporoˇcilom za uporabnika. Polja lahko spremenimo v obvezna, kar pomeni da premik naprej po straneh ne bo mogoˇc, dokler niso izpolnjena. Gumb lahko uporabimo kot sproˇzilec Groovy skripte, ki nam na primer omejuje prehod med stranmi ali vizibilnost doloˇcenih komponent. Nastavimo lahko tudi preverjanje vsebine polja, da se prepriˇcamo da uporabniki niso vnesli nedovoljenih vrednosti.

(35)

Diplomska naloga 21

Slika 3.1: Prikaz vmesnika za izdelavo obrazca.

(36)

22 Sandra Vizlar

3.2 Pridobitev podatkov obrazca

Podatke spletnih obrazcev bodo zaposleni pridobili preko BPM. Podatki so strukturirani in so v XML formatu. Predstavljeni bodo tudi v PDF dokumentu. Celoten proces bo avtomatiziran. Zaposleni tako ne rabijo izvleˇci podatkov na roke in so ˇze pripravljeni za nadaljno obdelavo.

(37)

Poglavje 4 Analiza

Dostop do spletnih obrazcev smo dodali v ˇze obstojeˇci spletni portal za stranke.

S tem smo olajˇsali delo tako strankam kot tudi zaposlenim. Strankam bo na voljo enostaven naˇcin oddaje povpraˇsevanja po storitvi, ki jo potrebujejo.

Vse moˇznosti bodo namreˇc ˇze imeli navedene in tekom izpolnjevanja obrazca med njimi preprosto izbirajo. Tako smo poskrbeli, da stranka izpolni vsa polja, ki so potrebna za sestavo ponudbe za neko storitev. Zaposleni bodo tako iz zalednih sistemov, kamor se podatki poˇsljejo, ko stranka odda obrazec, pridobili povpraˇsevanje z vsemi potrebnimi informacijami na dlani.

4.1 Diagrami primerov uporabe

Stranka lahko dostopa do spletnih obrazcev za oddajo povpraˇsevanja po storitvah preko portala za stranke. V portal se mora stranka prijaviti, da lahko dostopa do teh obrazcev. ˇCe ˇse ni prijavljena, se sprva izvede registracija stranke.

Ko se stranka po uspeˇsni registraciji prijavi v portal, lahko navigira do spletnih obrazcev za oddajo povpraˇsevanja.

Sprva bo na spletnem obrazcu izbral vrsto povpraˇsevanja. Tu se bodo podatki o stranki pridobili avtomatsko iz prijave. Sledilo bo izponjevanje podrobnosti o storitvi, po kateri povpraˇsuje. Pred oddajo se uporabniku

23

(38)

24 Sandra Vizlar prikaˇze povzetek naroˇcila storitve. Ob oddaji povpraˇsevanja se bodo podatki poslali v sporoˇcilni sistem.

STRANKA

registracija stranke

prijava stranke

izbira vrste povpra?evanja

izpolnjevanje podrobnosti o ?eleni

storitvi

pregled povzetka naro?ila

pridobitev podatkov o stranki

oddaja povpra?evanja po?iljanje podatkov v

sporo?ilni sistem

<<vklju?uje>>

<<vklju?uje>>

Slika 4.1: Diagram primera uporabe za stranke

Zaposleni bodo lahko dostopali do povpraˇsevanj strank preko interne aplikacije. Ta bo pridobila podatke iz sporoˇcilnega sistema, kamor jih je poslala stranka. Posamezno povpraˇsevanje zaposleni pregleda in nato sestavi ponudbo za stranko. Ponudbo stranki tudi poˇslje.

(39)

Diplomska naloga 25

ZAPOSLENI

prikaz povpra?evanj

pregled posameznega povpra?evanja

sestava ponudbe

pridobitev povpra?evanj iz sporo?ilnega sistema

po?iljanje ponudbe stranki

<<vklju?uje>>

Slika 4.2: Diagram primera uporabe za zaposlene

(40)

26 Sandra Vizlar

(41)

Poglavje 5 Naˇ crtovanje

5.1 Arhitektura sistema

Za komunikacijo med posameznimi komponentami sistema smo uporabili mikrostoritve. Mikrostoritve so enostavni spletni vmesniki, ki smo jih zgradili iz ˇze obstojeˇcih spletnih vmesnikov ali pa smo jih napisali na novo. Uporabili smo jih, da zagotovimo hitrost in razumljivost vrnjenih rezultatov urednikom obrazcev, ki obiˇcajno niso IT osebe.

Stranka bo do spletnih obrazcev za oddajo povpraˇsevanja priˇsla preko osebnega portala. Sprva se bo stranka morala v osebni portal prijaviti. V primeru, da stranka ˇse ni registrirana si mora ustvariti profil. Ob registraciji stranke v CRM kreiramo digitalno stranko. Za to uporabimo mikrostoritev, s katero poˇsljemo tja podatke o stranki. Nato bo stranka preusmerjena na stran s prijavo.

Po prijavi bo uporabnik preusmerjen na obrazec za povpraˇsevanje po storitvah. Podatki o stranki se bodo izpolnili avtomatsko, saj smo jih pridobili z SSO z uporabo mikrostoritve platforme za izdelavo spletnih obrazcev.

Uporabnik nato izpolni zahtevana polja o storitvi po kateri spraˇsuje. Ob pritisku na gumb za oddajo obrazca se bodo podatki poslali v Kafko.

Iz Kafke bo nato BPM pridobil vsebino spletnega obrazca. Mikrostoritev za pridobitev podatkov iz Kafke nam vrne strukturirane podatke iz sporoˇcila.

27

(42)

28 Sandra Vizlar Nato ustvari poslovno zadevo ter tja posreduje pridobljene podatke iz obrazca.

To bo ustvarilo tudi novo opravilo, ki ga dodelimo zaposlenemu in sicer bo dobil nalogo analize spletnega povpraˇsevanja. Zaposleni nato ustvari novo poslovno priloˇznost na podlagi tega povpraˇsevanja, ter ustvari stik. Stranki nato posredujemo ponudbo za storitev.

(43)

Diplomska naloga 29

usmeritev na prijavo po kreiranju stranke

PRIJAVA (SSO) DOSTOP DO

PORTALA

REGISTRACIJA

OBRAZEC ZA POVPRA?EVANJE

PO STORITVAH

KAFKA

USTVARI POSLOVNO

ZADEVO ANALIZA

SPLETNEGA POVPRA?EVANJA uporabnik je

registriran

uporabnik ?e ni registriran

CRM kreiranje stranke

avtomatska izpolnitev polj za identifikacijo

stranke

po?iljanje podatkov v Kafko

pridobitev vsebine BPM obrazca

posredovanje podatkov iz obrazca

dodelitev analize zaposlenemu

USTVARI NOVO POSLOVNO PRILO?NOST USTVARI

STIK POTREBNA INTERAKCIJA STRANKE

ZALEDNI SISTEMI

POTREBNA INTERAKCIJA ZAPOSLENEGA POSREDOVANJE

PONUDBE ZA STORITEV STRANKI

Slika 5.1: Arhitektura sistema

(44)

30 Sandra Vizlar

(45)

Poglavje 6

Predstavitev aplikacije

Podjetje ponuja storitve poslovnim strankam, te pa imajo kontaktne osebe, ki v imenu poslovnih strank opravijo povpraˇsevanje po storitvah. Te podatke imamo zavedene v CRM. Kontaktna oseba mora imeti svoj profil. ˇCe ga ˇse nima, potem od nje zahtevamo registracijo, kjer poda podatke s katerimi kreiramo stranko v CRM. Temu bo sledila prijava stranke v portal. ˇCe ima stranka ˇze svoj profil, potem se samo prijavi z e-mailom in geslom. Zaslonske maske registracije in prijave so vidne na slikah 6.3 in 6.2. Registracijo in prijavo izvedemo preko portala na sliki 6.1, kjer tudi dostopamo do obrazcev za povpraˇsevanje po storitvah.

31

(46)

32 Sandra Vizlar

Slika 6.1: Portal

Slika 6.2: Prijava

(47)

Diplomska naloga 33

Slika 6.3: Registracija

Na sliki 6.4 imamo prikazano prvo stran obrazcev. Polja, ki vsebujejo podatke o podjetju in kontaktni osebi se izpolnejo avtomatsko, s podatki pridobljenimi iz SSO. SSO je tip prijave, ki nam omogoˇca uporabo veˇcih storitev z enim uporabniˇskim imenom in geslom.[32] Stranka bo nato izbrala vrsto povpraˇsevanja in storitve, za katero se zanima. Izbirala bo lahko s spustnega seznama, nekateri vnosi bodo tudi roˇcni. Ko izpolne vsa zahtevana polja, se lahko premakne na naslednjo stran, s klikom na gumb naprej.

(48)

34 Sandra Vizlar

Slika 6.4: Prikaz zaˇcetne strani spletnega obrazca

Sledilo bo izpolnjevanje strani obrazca s podrobnostmi o ˇzeljeni storitvi.

Ta stran se bo razlikovala, glede na vrsto storitve o kateri stranka povpraˇsuje.

Primer strani za zbiranje podrobnosti o storitvi je prikazan na sliki 6.5.

(49)

Diplomska naloga 35

Slika 6.5: Prikaz strani za zbiranje podrobnosti o izbrani storitvi Na koncu se prikaˇze povzetek povpraˇsevanja in se s klikom na gumb oddaj poˇslje v Kafko. Prikaz povzetka se nahaja na sliki 6.6.

Slika 6.6: Povzetek povpraˇsevanja stranke

(50)

36 Sandra Vizlar Iz Kafke bo nato BPM pridobil podatke s katerimi ustvari poslovno zadevo ter dodeli nalogo analiziranja povpraˇsevanja zaposlenemu. Ta nato ustvari poslovno priloˇznost ter stik in poˇslj ponudbo za storitev stranki.

(51)

Poglavje 7 Zakljuˇ cki

Z integracijo spletnih obrazcev smo dosegli ˇzeljeni cilj: avtomatizirali smo zajem povpraˇsevanja po storitvah. Poenostavili smo tudi dodajanje moˇznosti povpraˇsevanja po novih storitvah, saj lahko preprosto dodamo novo storitev na seznam storitev in nov obrazec s podrobnostmi o njej.

Obrazce lahko sestavi tudi nekdo, ki nima znanja o programiranju ali oblikovanju v HTML. S kupljeno platformo smo tako uspeli zagotoviti tudi enostavno oblikovanje novih obrazcev.

Z uporabo dogodkovne arhitekture in Kafke za poˇsiljanje sporoˇcil pa smo zagotovili, da se bodo podatki obdelali v realnem ˇcasu in ne bodo zastareli.

Trenutna reˇsitev sicer ne omogoˇca direktnega naroˇcanja neke storitve, toda glede na razmerje med ceno razvoja direktnega naroˇcanja storitve in prednosti, ki nam bi jih to prineslo, je ta reˇsitev trenutno najbolj uˇcinkovita.

Stranke si namreˇc dostikrat med samim naroˇcanjem storitve premislijo in se mora postopek zajema povpraˇsevanja zaˇceti znova.

37

(52)

38 Sandra Vizlar

(53)

Literatura

[1] eUprava - O drˇzavnem portalu eUprava.https://e-uprava.gov.si/o- e-upravi/o-e-upravi.html. (Accessed on 08/06/2021).

[2] Karan Patel, Yash Sakaria in Chetashri Bhadane. “Real Time Data Processing Framework”. V: International Journal of Data Mining Knowledge Management Process 5 (sep. 2015), str. 49–63. doi: 10 . 5121/ijdkp.2015.5504.

[3] David Ingram. Design-build-run : applied practices and principles for production-ready software development. Indianapolis, IN: Wiley Pub, 2009. isbn: 978-0-470-25763-0.

[4] Paris Carbone in sod. “Apache Flink™: Stream and Batch Processing in a Single Engine”. V:IEEE Data Eng. Bull. 38.4 (2015), str. 28–38.

url:http://sites.computer.org/debull/A15dec/p28.pdf.

[5] Rok Sitar. “Informacijski sistemi v podjetjih: diplomsko delo”. Doktor- ska disertacija. Univerza v Ljubljani, Ekonomska fakulteta, 2010. url: http://www.cek.ef.uni-lj.si/u_diplome/sitar4265.pdf.

[6] Anuska Kundu in Ananya Solanki. “Big Data Report Big Data Archi- tecture in Healthcare: A Scalable, Fault-Tolerant Approach”. V: (2020).

doi: 10.13140/RG.2.2.26388.86401. url: http://rgdoi.net/10.

13140/RG.2.2.26388.86401.

[7] Mike Ebbers in sod. Introduction to the New Mainframe: IBM z/VSE Basics. Mar. 2016. isbn: 9780738441405.

39

(54)

40 Sandra Vizlar [8] What is Event Stream Processing? How & When to Use It — Hazelcast.

https : / / hazelcast . com / glossary / event - stream - processing/.

(Accessed on 08/12/2021).

[9] M. Stonebraker, U. C¸ etintemel in S. Zdonik. “The 8 requirements of real-time stream processing”. V: SIGMOD Rec. 34 (2005), str. 42–47.

[10] TADEJ KRIVEC. “Obdelava kompleksnih dogodkov pri spremljanju proizvodnega procesa”. V: (2018). url: https://repozitorij.uni- lj.si/IzpisGradiva.php?lang=slv&id=102890.

[11] Anatomy of an Event Streaming Platform — Part 1 — by Dunith Dhanushka — Event-driven Utopia — Medium. https : / / medium . com / event - driven - utopia / anatomy - of - an - event - streaming - platform-part-1-dc58eb9b2412. (Accessed on 08/12/2021).

[12] Anatomy of an Event Streaming Platform — Part 2 — by Dunith Dhanushka — Event-driven Utopia — Medium. https : / / medium . com / event - driven - utopia / anatomy - of - an - event - streaming - platform-part-2-39393e81c861. (Accessed on 08/12/2021).

[13] Brenda Michelson. Event-Driven Architecture Overview. Teh. poroˇcilo.

Feb. 2006. doi: 10.1571/bda2-2-06cc. url: https://doi.org/10.

1571/bda2-2-06cc.

[14] Event Streams & Message Queues in Event-Driven Architectures — Pan- dio. https://pandio.com/blog/event-streams-queues/. (Accessed

on 08/14/2021).

[15] Behrooz Malekzadeh. “Event-Driven Architecture and SOA in collabo- ration A study of how Event-Driven Architecture (EDA) interacts and functions within Service-Oriented Architecture (SOA)”. V: (avg. 2021).

[16] Opher Etzion in Peter Niblett. Event processing in action. Manning Publications Co., 2010.

(55)

Diplomska naloga 41 [17] Eda on the azure services platform. https://www.slideshare.net/

YvesGoeleven/eda- on- the- azure- services- platform. (Accessed on 08/14/2021).

[18] Marko Jankovi´c. “Mobilna nadzorna ploˇsˇca za dogodkovno vodene arhitekture: diplomsko delo”. Doktorska disertacija. University of Lju- bljana, Faculty of computer in information science, 2012. url: http:

//eprints.fri.uni-lj.si/1631/1/Jankovi%C4%871.pdf.

[19] Event-driven architecture - Wikipedia. https://en.wikipedia.org/

wiki/Event-driven_architecture#Event_flow_layers. (Accessed on 08/14/2021).

[20] Components of Event-Driven Architecture - Tiempo Development.https:

/ / www . tiempodev . com / blog / components - of - event - driven - architecture/. (Accessed on 08/14/2021).

[21] Event-Driven Architecture and Pub/Sub Pattern Explained — AltexSoft.

https://www.altexsoft.com/blog/event- driven- architecture- pub-sub/. (Accessed on 08/20/2021).

[22] Disadvantages of Event-Driven Architecture - EDA Explained — Tiempo Dev. https://www.tiempodev.com/blog/disadvantages-of-event- driven-architecture/. (Accessed on 08/20/2021).

[23] Javed Ahmed Shaheen. “Apache Kafka: Real Time Implementation with Kafka Architecture Review”. V:International Journal of Advanced Science and Technology 109 (dec. 2017), str. 35–42. doi: 10.14257/

ijast.2017.109.04. url:https://doi.org/10.14257/ijast.2017.

109.04.

[24] Apache Kafka. https://kafka.apache.org/documentation/. (Acces- sed on 08/27/2021).

[25] N. Narkhede, G. Shapira in T. Palino.Kafka: The Definitive Guide : Real-time Data and Stream Processing at Scale. O’Reilly Media, 2017.

isbn: 9781491936160. url: https://books.google.si/books?id=

qIjQjgEACAAJ.

(56)

42 Sandra Vizlar [26] N. Garg. Learning Apache Kafka - Second Edition. Community experi- ence distilled. Packt Publishing, Limited, 2015. isbn: 9781784390273.

url: https://books.google.si/books?id=mi%5C_WBgAAQBAJ.

[27] Matija Kljun. “Integracija pretoˇcnih dogodkov in mikrostoritev z upo- rabo Apache Kafka”. V: (2017). url: https : / / repozitorij . uni - lj.si/IzpisGradiva.php?lang=slv&id=95932.

[28] Apache Kafka Callback and Acks - Learning Journal. https://www.

learningjournal.guru/courses/kafka/kafka-foundation-training/

callback-and-acks/. (Accessed on 09/04/2021).

[29] Understanding Kafka Topic Partitions — by Dunith Dhanushka — Event-driven Utopia — Medium.https://medium.com/event-driven- utopia / understanding - kafka - topic - partitions - ae40f80552e8.

(Accessed on 09/03/2021).

[30] How Kafka Can Make Microservice Planet Better - DZone Micro- services. https : / / dzone . com / articles / how - kafka - can - make - microservice-planet-better. (Accessed on 09/08/2021).

[31] Microservices and Kafka (Part One) - DZone Microservices. https:

/ / dzone . com / articles / microservices - and - kafka - part - one.

(Accessed on 09/08/2021).

[32] Single sign-on - Wikipedia. https : / / en . wikipedia . org / wiki / Single_sign-on. (Accessed on 09/07/2021).

Reference

POVEZANI DOKUMENTI

Zato je nujno, da po nekem ˇ casu poˇ cistimo odveˇ cne podatke (to so podatki v registru ali na disku, ki jih ne potrebujemo in so glavni razlog za ˇ ciˇsˇ cenje) in na tak naˇ

Table 2.1: Comparison of different types of panoramic cameras with respect to the number of standard images needed to build a panoramic image,the resolution of panoramic images and

Uspeˇsno smo implementirali tudi prototip, ki predstavlja informacijsko pod- poro naˇsi reˇsitvi in izpolnjuje cilje, ki smo si jih na zaˇ cetku zadali. Tako z medsebojnim

V okviru diplomskega dela opisujem izdelavo aplikacije v oblaku, ki zajame velike koliˇ cine podatkov iz druˇ zbenih omreˇ zij v skoraj realnem ˇ casu, nad njimi izvede vse

Kljuˇ cne besede: napovedovanje ˇ custvene naravnanosti, rudarjenje mnenj, odkrivanje znanj iz podatkov, strojno uˇ cenje, n-terka, klasifikacijske metode, logloss, ocena toˇ

ˇ Student naj postavi raˇ cunalniˇsko gruˇ co, ki bo omogoˇ cala horizontalno skala- bilnost obdelave podatkov. ˇ Student naj preuˇ ci in nato gruˇ co zastavi iz dveh tehnologij

V taksonomiji, zgrajeni iz podatkov s spletne strani NCBI, smo uporabili ˇstiri klasiˇ cne algoritme za strojno uˇ cenje (logistiˇ cno regresijo, nakljuˇ cne goz- dove, referenˇ

V primeru manjˇse mnoˇ zice podatkov se rekurenˇ cne mreˇ ze v eni iteraciji nauˇ cijo manj kot v primeru veˇ cje mnoˇ zice podatkov, zato je razumljivo, da veˇ c podatkov kot