• Šifra predmeta:63546H
  • Kreditne točke:6
  • Semester: poletni
  • Vsebina

Računalništvo v megli za pametne storitve / Fog computing for smart services

Računalništvo v megli lahko opredelimo kot krovni koncept, ki zajema štiri različne tehnologije: internet stvari, umetno inteligenco, računalništvo v oblaku in veriženje blokov. Predstavlja stično področje teh štirih tehnologij s katerimi se ustvarjajo številne nove zmogljive pametne storitve in aplikacije. Za zagotavljanje zanesljivih in zaupanja vrednih aplikacij računalništva v megli se je potrebno osredotočiti na izboljšave celotnega postopka razvoja programske opreme v smislu prožnosti, prilagodljivosti, programskih modelov, načrtovanja aplikacij, kakovosti izvedbe, operativnih stroškov in podobno. Večina povezanih problemov je kompleksnih, zato je na praktični ravni potrebno zahtevnost implementacije omejevati na vsakem koraku.

Računalništvo v megli je s pojavom in prakso DevOps, vsesplošne uporabe tehnologij vsebnikov in s tem zmožnosti uporabe (deljenja in ponovne uporabe) celotnega nabora metod umetne inteligence v aplikacijah računalništva v megli, že na dosegu rok. Pri tem predmetu bo študentom predstavljena vsa kompleksnost, ki jo prinaša razvoj ene osnovne pametne aplikacije v praksi.

Na začetku bomo pri predmetu predstavili glavne koncepte, vizijo in cilje računalništva v megli. Posebna pozornost bo namenjena potencialnim primerom uporabe, na primer tistim iz slovenskega programa pametne specializacije, ki predstavljajo velike zahteve za vključevanje interneta stvari, umetne inteligence, računalništva v oblaku in tehnologije veriženja blokov, pri tem pa bodo obravnavani obstoječi modeli različnih pametnih storitev in aplikacij.

V sklopu uvodnih predavanj se bodo študenti v laboratoriju seznanili in osredotočili na preizkušanje nabora tehnologij, potrebnih za izdelavo pametnih aplikacij; najprej s preizkušanjem izbranih algoritmov in modelov za globoko učenje. Proti koncu tretjega tedna bodo študentje morali pripraviti predlog lastno izvedenega projekta.

V tretjem tednu bodo obravnavani nekateri napredni pristopi k uresničitvi digitalnih dvojčkov in zahtevano dinamično zlitje informacij. Na vajah bomo začetne aplikacije globokega učenja razširili s funkcijo obveščanja (npr. v obliki kratkega sporočila na mobilni telefon). Predavatelj bo ovrednotil predloge študentskih projektov.

Četrti teden se bomo osredotočil na življenjski cikel DevOps s poudarkom na aplikacijah za računalništvo v megli. Študenti bodo na vajah postavili in preizkusili orodje Fabric8. Obravnavali bomo različne pristope k orkestraciji. V petem tednu bo tema tekla o analizi uporabniških, aplikacijskih in sistemskih zahtev za pametne aplikacije. Pomagali si bomo z različnimi pristopi za analizo zahtev. Analizirali bomo zahteve po robnem računalništvu za premične (npr. roboti, avtomobili, mobilni telefoni) in stacionarne stvari (npr. senzorji, kamere). Praktično delo bo osredotočeno na vse zahteve za izvajanje izbrane aplikacije globokega učenja in izdelani bodo osnovni diagrami UML. V šestem tednu bodo obravnavani pristopi za večnivojski (infrastruktura, omrežje, vsebnik, aplikacija) nadzor aplikacij. Za preizkušanje možnosti za nadzor aplikacij globokega učenja bomo na vajah uporabili orodje Prometheus z vizualizacijo Grafana.

Pri pripravi komponent storitev za virtualizacijo mora inženir upoštevati možnost optimizacije nastale slike vsebnika ali virtualnega stroja za delovanje, shranjevanje in čim hitrejšo dostavo na želeno napravo. V teoriji bomo razpravljali o različnih vidikih tega procesa in jih preizkusili v laboratoriju, npr. orodje za optimizacijo slik virtualnih strojev ENTICE. Študentje bodo posodobili aplikacijo globokega učenja in sistem za nadzor. Ob koncu sedmega tedna bodo študentje predstavili aktualno stanje svojega projekta in tako sredi semestra dosegli mejnik.

Osmi teden bo osredotočen na večstopenjsko zasnovo aplikacij (več vsebnikov nameščenih na izbrani infrastrukturi od roba omrežja vse do podatkovnega centra v oblaku) z namenom reševanja nefunkcionalnih zahtev aplikacije (npr. zahtevi po zasebnosti). Med laboratorijskim delom bodo študentje lahko primerjali obstoječe načrte aplikacij, na primer tiste, izdelane v okviru Evropsko-Korejskega raziskovalno-inovacijskega projekta DECENTER in upoštevali različne izboljšave ter nadaljevali s projektnim delom.

Naslednji trije tedni (9–11) so namenjeni razvoju in razumevanju množice metod umetne inteligence, ki jih je mogoče hitro namestiti v vsebnik z namenom njegove uporabe na robu omrežja oz. v oblaku, razvrstitev metod za obdelavo masovnih podatkov s poudarkom na kvaliteti storitve in metodologij primerjalne analize. Laboratorijske vaje bodo osredotočene na nadzor in primerjavo kvalitete storitve različic aplikacije globokega učenja.

Zaključek predmeta (12–14 teden) je namenjen konceptom, pristopom, metodologiji in tehnologijam, povezanimi s tehnologijo veriženja blokov (žetoni, pametne pogodbe, pametni preroki), ki predstavljajo del vizije računalništva v megli. V praksi bodo študentje poskušali uresničiti možnost za zaračunavanje uporabe pametne aplikacije s pomočjo pametne pogodbe, izdelane v programskem jeziku Solidity ter nameščene v sistem za tehnologijo veriženja blokov Ethereum testnet.

V zadnjem tednu bomo analizirali potencial prihajajočih novih tehnologij, npr. pobude evropske komisije na področju naslednje generacije interneta. Študentje bodo rezultate svojih projektov v laboratoriju predstavili svojim kolegom in predavatelju.

Metode učenja in poučevanja

Predavanja; laboratorijske vaje, kjer študenti spremljajo postopek razvoja večstopenjske pametne aplikacije; seminarsko delo (projekt), kjer študenti razvijajo in integrirajo pametno aplikacijo z upoštevanjem pojava in prakse DevOps; posvetovanja; študij literature.

 

 

Podroben učni načrt

1. teden: Uvod v računalništvo v megli. Računalništvo v megli in z njimi povezani koncepti. Virtualizacija, federacije in druge oblike združevanja ponudnikov računalništva v oblaku. Računalniški kontinuum: internet stvari, računalništvo na robu, v megli in v oblaku. Motivacija za računalništvo v megli: tokovi masovnih podatkov - Problem štirih “V”-jev masovnih podatkov. Organizacijski in nadzorni slogi. Možnosti decentralizacije. Primeri razplastenih arhitektur. Dinamično spreminjanje obratovalnih pogojev aplikacij računalništva v megli. Energetska učinkovitost, zasebnost, varnost in druge visokonivojske zahteve. DevOps proces za razvoj aplikacij računalništva v megli. Vloga semantike pri procesu integracije. Laboratorijske vaje: Delo se bo začelo s preizkusom algoritmov in modelov globokega učenja (npr. s TensorFlow). Študentje bodo pozvani k izvedbi predloga projekta do konca tretjega tedna.

 

2. teden: Motivacija: pametne aplikacije in okolja. Strategija pametne specializacije v Sloveniji - področja in primeri uporabe. Analize zahtev. Večstopenjski načrti aplikacij. Samoprilagajanje sistema in aplikacij. Nameščanje in izvajanje. Laboratorijske vaje: Nadaljevanje iz prvega tedna.

 

3. teden: Pristop združitve informacij. Primeri digitalnega dvojčka, razširjene virtualnosti, obveščanja in kibernetskih sistemov. Laboratorijske vaje bo prvotno aplikacijo za globoko učenje razširilo s funkcijo obveščanja. Predavatelj bo ocenil prve predloge projektov. Laboratorijske vaje: Razširitev aplikacije z 2. tedna s funkcijo obveščanja (npr. e-pošta, Slack).

 

4. teden: Fenomen in praksa DevOps za računalništvo v megli. Korak za korakom skozi vse faze DevOps. Napredna delovna okolja (workbench) za programsko opremo, kot je SWITCH za časovno kritične aplikacije v oblaku. Pristop k orkestraciji. Laboratorijske vaje: študentje bodo sestavili in preizkusili delovno orodje Fabric8.

 

5. teden: Računalništvo zahtev za pametne storitve in aplikacije. Funkcionalne in nefunkcionalne zahteve. Kakovost storitve. Zahteve na visoki ravni. Energetska učinkovitost. Operativni stroški. Uporaba poenotenega jezika modeliranja za zajemanje zahtev. Kompromisi. Laboratorijske vaje: izdelava diagramov UML in analiza zahtev konkretne aplikacije, analiza postopka razvoja aplikacije globokega učenja.

 

6. teden: Programski in računalniški viri ter nadzor. Programska oprema in računalniški viri v celotnem spektru računalništva roba do oblaka. Modeli virov. Pristopi spremljanja na več ravneh. Infrastruktura, vsebnik, virtualka, meritve ravni aplikacije. Primerjava sistemov za spremljanje. Pristopi modeliranja kvalitete storitev. Zagotavljanje, razvrščanje in preverjanje možnosti uvajanja v oblak. Laboratorijske vaje: Uvedena bodo orodja za spremljanje izbrane aplikacije globokega učenja, kot je npr. Prometheus z vizualizacijo Banana.

 

7. teden: Upravljanje slik vsebnikov in virtualnih strojev. Slike vsebnikov in virtualnih strojev. Teorija in praksa priprave, fragmentacija, optimizacija, dostava in delovanje slik ter shrambe slik vsebnikov in virtualnih strojev. Primer optimizirane shrambe slik virtualnih strojev ENTICE. Laboratorijske vaje: Predstavitev orodja Docker Compose. Namestitev algoritma in modela za globoko učenje v vsebnik. Izvedbe različnih operacij z vsebniki. Ob koncu tedna bodo študentje predstavili trenutno stanje svojega projekta.

 

8. teden: Načrtovanje večstopenjskih aplikacij. Pristopi k reševanju različnih nefunkcionalnih zahtev z zasnovo pametne aplikacije. Računalništvo na robu. Izvedba vodov masovnih podatkov od roba do oblaka. Uporaba ponudnikov hibridnih oblakov (infrastruktura kot storitev, platforma kot storitev, programje kot storitev, predmet kot storitev, itd.) Laboratorijske vaje: študentje bodo lahko primerjali obstoječe zasnove in se ukvarjali z različnimi izboljšavami za obravnavo aplikativnih zahtev. Nadaljevali bodo z delom na projektu.

 

9. teden: Uporaba metod globokega učenja v aplikacijah računalništva v megli. Razvrstitev zahtevnejših algoritmov in modelov globokega učenja in postopki njihovega nameščanja v vsebnike. Taksonomija metod umetne inteligence ter njihove možnosti za implementacijo v vsebnikih. Večstopenjska postavitev vsebnikov (mikrostoritev) od roba omrežja vse do oblaka. Postopki optimizacije izbranih metod globokega učenja za različne namene (npr. varčevanje z energijo, pospeševanje, itd.) Laboratorijske vaje: spremljanje kakovosti storitve različnih namenskih različic aplikacij globokega učenja.

 

10. teden: Primerjalne analize sistemov tokov masovnih podatkov. Platforme in integracija interneta stvari. Večstopenjski tokovi masovnih podatkov. Zahteve za elastičnost in razširljivost. Vrste podatkov. Tok podatkov. Dostava podatkov k procesom v primerjavi z dostavo procesov k podatkovnim virom (npr. na rob omrežja). Čezmejno upravljanje podatkov, npr. z namenom ohranjanja zasebnosti. Laboratorijske vaje: preizkus napredne platforme interneta stvari (npr. SensiNact). Namestitev algoritma in modela za globoko učenje v vsebnik.

 

11. teden: Upravljanje s tokovi masovnih podatkov ter načela upravljanja podatkov v računalništvu v megli. Pregled metodologij in tehnik za primerjalno analizo aplikacij za obdelavo masovnih podatkov. Kvalitativno in kvantitativno vrednotenje aplikacij. Laboratorijske vaje: praktično delo z Big Data Bench 4.0. Izdelava primerjalne analize za izbrano aplikacijo globokega učenja.

 

12. teden: Uvod v tehnologijo veriženja blokov. Zgodovina, zasnova, tehnologija in filozofski vidiki tehnologije veriženja blokov (blockchaina). Uskladitev tehnologije veriženje blokov z računalništvom v megli. Poslovni modeli interneta stvari, umetne inteligence, računalništva v oblaku in tehnologije veriženja blokov. Pristopi za monetizacijo storitev. Primeri storitev in aplikacij, ki temeljijo na tehnologiji veriženju blokov. Laboratorijske vaje: zasnova pristopa monetizacije za izbrano aplikacijo globokega učenja.

 

13.teden: Pametne pogodbe in pametni preroki. Programski jeziki, metode, sprožilci, pogodbe, decentralizirani preroki. Predloge in primeri sporazumov na ravni storitev. Uporaba pametnih pogodb pri razvoju večstopenjskih aplikacij. Laboratorijske vaje: Študenti bodo izdelali pametno pogodbo (npr. v jeziku Solidity).

 

14. teden: Visokonivojske zahteve. Doseganje zanesljivosti, zaupanja, varnosti in zasebnosti pri aplikacijah računalništva v megli. Preučevanje različnih pristopov. Uporaba semantike pri veriženju blokov, npr. ont.io. Laboratorijske vaje: Študentje bodo dokončali pametno pogodbo, ki omogoča monetizacijo za aplikacijo globokega učenja.

 

15. teden: Pobuda naslednje generacije interneta. Analiza trenutnega stanja tehnologij in trendov. Vizija interneta, osredotočenega na ljudi. Laboratorijske vaje: Študenti bodo predstavili rezultate svojih projektov.

 

  • Študijski programi
  • Porazdelitev ur na semester
45
ur
predavanj
20
ur
laboratorijskih vaj
10
ur
seminarskih vaj
  • Izvajalci
Nosilec predmeta
Prostor:R2.47 - Kabinet
Drugo
Prostor:R2.57 - Kabinet