• Rezultati Niso Bili Najdeni

Integracija komponent

Komponente sistema kot samostojne enote nimajo velike uporabne vrednosti.

Z njihovo integracijo ustvarimo usklajen in celosten sistem, ki deluje kot smi-selna celota in uporablja vse komponente za dosego optimalne uporabniške izkušnje. Komponente med seboj komunicirajo preko natančno definiranih kanalov in vmesnikov. Celotna arhitektura rešitve je prikazana na sliki 5.5.

Čelni del za pridobivanje podatkov iz podatkovne baze ali za dostop do metrik vozlišč v Kubernetesovi gruči uporablja REST API, ki ga izpostavlja zaledni del. Poslati mora HTTP zahtevo z vsemi polji in poizvedovalnimi pa-rametri, ki jih pričakuje zaledni strežnik. Kot odgovor prejme JSON objekt, ki ga uporabi za prikaz podatkov na uporabniškem vmesniku. Zaledni del do podatkovne baze dostopa preko JDBC. Za interakcijo s pametno pogodbo uporablja odprtokodno knjižnicoweb3j, ki omogoča klicanje funkcij, pridobi-vanje javnih atributov in naročanje na dogodke. Čelni del za interakcijo z ve-rigo blokov uporablja knjižnico web3.jsin MetaMask. Slednji se uporablja, ko na verigo blokov pošiljamo transakcijo. Za branje podatkov je dovolj

upo-5.2. INTEGRACIJA KOMPONENT 73

Slika 5.4: Potek HTTP zahteve od krmilnikov, preko storitvenih razredov do podatkovnega nivoja, ki je podatkovna baza ali Kubernetes API.

raba le knjižnice web3.js. Ko uporabnik najame določeno metodo umetne inteligence in izbere ponudnika infrastrukture ter uspešno zaključi plačilo, se začne postopek namestitve vsebnika na vozlišče v Kubernetesovi gruči.

Po uspešni namestitvi začne vsebnik pošiljati rezultate analize videotoka na MQTT strežnik, od koder jih prebere Vue aplikacija in prikaže uporabniku.

Kubernetes metodi umetne inteligence poda spodaj definiran JSON objekt

fabric8

stroj 1 virtualni

stroj 2 podatkovna JDBC

baza

vsebnik 1 vsebnik 2 vsebnik 1 vsebnik 2 vsebnik 3

MQTT prerok

Slika 5.5: Celotna arhitektura sistema StreamAI. Prikazana je integracija med zalednim in čelnim delom, podatkovno bazo, pametno pogodbo, Kuber-netesom, MetaMaskom in MQTT strežnikom.

kot okoljsko spremenljivko. V polju input.urlje podan URL do videotoka, ki ga mora metoda analizirati. Polje output.url.mqtt vsebuje URL stre-žnika in temo, kamor mora pošiljati rezultate. Podani so tudi metapodatki metode umetne inteligence.

{

"input":{

"url":"http://193.2.72.90:30156/construction.webm/"

},

5.2. INTEGRACIJA KOMPONENT 75

Kot izhod mora metoda MQTT strežniku pošiljati JSON objekt, prika-zan spodaj. Poljefpspredstavlja število sličic videotoka, ki jih metoda lahko procesira v eni sekundi. Polje delay predstavlja zamik med časom sličice v videotoku in časom pošiljanja na strežnik MQQT. Polje timestamp pred-stavlja časovno oznako sličice. Tabela detections predstavlja vse zaznane predmete na trenutni sličici, vključujoč z njihovo lokacijo in stopnjo prepri-čanja v napoved. Polje encoded_image vsebuje zakodirano trenutno sličico z označenimi predmeti, ki se na uporabniškem vmesniku dekodira v sliko, primerno za prikaz.

"class":"car",

"location":[

"274.6901",

"664.73906",

"437.6706",

"719.99426"

],

"score":0.75641185 },

{

"class":"truck",

"location":[

"274.6901",

"664.73906",

"437.6706",

"719.99426"

],

"score":0.8971 }

],

"encoded_image":"123abc..."

}

Poglavje 6

Spletni vmesnik za analizo videotokov

Kot glavni rezultat tega magistrskega dela je nastala spletna aplikacija Stre-amAI, ki končnim uporabnikom omogoča najem metod umetne inteligence za analizo njihovega videotoka. Zasnovana je kot decentraliziran ekosistem, ki povezuje različne tipe uporabnikov in jim omogoča deljenje virov. V tem poglavju predstavimo glavne funkcionalnosti in pogoste primere uporabe ter priložimo zaslonske posnetke razvite aplikacije.

6.1 Vstopna točka v sistem

Ko uporabnik odpre domačo stran aplikacije StreamAI, se mu prikaže pre-gleden uporabniški vmesnik za najem metode umetne inteligence, ki se bo izvajala nad lastnim videotokom (glej sliko 6.1). Če še ni prijavljen v Me-taMask, se mu pojavi prijavno okno, kjer izbere račun, ki ga želi povezati s spletno stranjo.

V zgornjem desnem kotu je naveden trenutni račun, s katerim je uporab-nik prijavljen. Ob zamenjavi računa se osveži trenutna spletna stran. Koraki najema so:

1. V prvem koraku mora uporabnik izbrati videotok, ki ga želi analizirati.

77

Slika 6.1: Vstopna točka aplikacije StreamAI za najem metode umetne inteligence.

Predhodno ga mora dodati v sistem, kar je prikazano v poglavju 6.4 Upravljanje z uporabnikovimi videotokovi. Videotokovi so v formatu WebM. Njihov predogled se v realnem času predvaja uporabniku, kar mu olajša izbiro pravega. Omogočeno je tudi dinamično filtriranje na podlagi imena.

2. V drugem koraku mora uporabnik izbrati metodo umetne inteligence, ki jo želi uporabiti za analizo izbranega videotoka. Ob kliku na metodo se odprejo njene podrobnosti. Pod vsako metodo je zapisana tudi cena najema na minuto.

3. V tretjem koraku uporabnik izbere vozlišče v Kubernetesovi gruči, ka-mor želi namestiti metodo umetne inteligence. Prikažejo se le ponudniki infrastrukture, ki jih je administrator predhodno potrdil in tisti, ki so nastavili ceno poganjanja za izbrano metodo umetne inteligence. Če se z miško pomaknemo nad ime ponudnika, se prikažejo njegove metrike, kar je prikazano na sliki 6.2. Pod vsakim ponudnikom je tudi cena

6.1. VSTOPNA TOČKA V SISTEM 79

Slika 6.2: Količina porabljenega delovnega pomnilnika, število procesorskih in grafičnih jeder ter število trenutnih namestitev v teku za izbrano vozlišče.

poganjanja izbrane metode umetne inteligence na minuto.

4. V četrtem koraku mora uporabnik navesti metrike kakovosti storitve, ki jih pričakuje od najema. Navesti mora omrežno zakasnitev, dovoljeno število izgubljenih paketov, omrežno prepustnost in minimalno število sličic na sekundo, ki jih mora metoda umetne inteligence obdelati. Na-zadnje mora vnesti še čas najema v sekundah.

Na podlagi izbranih parametrov se izračuna končna cena najema, ki je sestavljena iz cene metode umetne inteligence, cene ponudnika infrastrukture in pristojbine, ki jo zaračunava platforma. Parametri kvalitete storitve se v trenutni različici aplikacije še ne uporabljajo. Za zaključek najema mora uporabnik klikniti na gumb desno spodaj. Ob tem se odpre MetaMaskovo pojavno okno, kjer je zahtevana potrditev plačila (glej sliko 6.3).

Če je avtor metode umetne inteligence označil, da jo lahko uporabljajo le avtorizirani uporabniki, se pred namestitvijo na infrastrukturo pokliče še prerok, ki na verigo blokov zapiše rezultat klica zunanjega REST API vme-snika za avtorizacijo. V primeru, da uporabnik nima dovoljenja za najem, se v desnem spodnjem kotu prikaže napaka, prikazana na sliki 6.4, najem pa je zavrnjen. Če je uporabnik avtoriziran ali če metoda ne zahteva avtorizacije, je uporabnik preusmerjen na stran za analizo videotoka, ki je predstavljena v poglavju 6.5 Analiza videotoka.

Slika 6.3: Pojavno okno, kjer mora uporabnik potrditi plačilo za najem metode umetne inteligence za določen čas.

Slika 6.4: Obvestilo, da je prerok zavrnil namestitev metode umetne in-teligence, ker uporabnik ni avtoriziran. Sledi samodejna preusmeritev na začetno stran.