Povzetki

SREDA, 7. 9. 2022 

8:30 REGISTRACIJA

9:00 OTVORITEV KONFERENCE

9:15 – 10:30 IZKUŠNJE IN IZZIVI PRIHODNOSTI

vodja sekcije: dr. Boštjan Kežmah

25 LET RAZVOJA INFORMATIKE SKOZI PRIZMO KONFERENCE OTS

Luka Pavlič

Konferenca OTS (uvodoma »Objektna tehnologija v Sloveniji«, kasneje »Sodobne informacijske tehnologije in storitve«) na nek način predstavlja rdeča nit IT strokovnjakov širše regije že četrt stoletja. Dogodek, kjer strokovnjaki predstavljajo svoje uspešne projekte, bogate izkušnje iz prakse, morebitne prihodnje trende, ter izmenjujejo mnenja o dogajanju v industriji že 25 let, posledično predstavlja pomemben dokument o vsakoletnem stanju informatike.

Morda se zdi kar težko razumljivo, a prva konferenca je bila organizirana v času, ko vodilne platforme za uporabniške vmesnike informacijski rešitev, pametnih telefonov, niti še ni bilo. Pri Nokii so sicer najavili Communicatorja, ki bi naj bil sposoben poganjati celo neke vrste aplikacij ter bi naj imel dostop do interneta. Skoraj nikomur pa ni bilo prav jasno, kaj bi s tem počeli. Šele ob deseti obletnici konference je bilo slutiti, da se pripravljajo naprave, ki jim danes rečemo »pametni telefoni«. Podjetja, ki ponuja iskalnik Google še ni bilo. Zemljevidi v informacijskih rešitvah so bili izdelani po meri. Vizionarji so nam hiteli razlagati, da bomo v prihodnosti lahko preko interneta izvajali celo plačila. Operacijski sistem Windows 95 smo po večini nameščali s pomočjo disket, redki celo iz nosilcev CD. Linux jedro smo prevajati pred namestitvijo. Ključ je bil le in zgolj »ključ«, kratica USB je bila neznana. Večslojna arhitektura je po večini preštela le do števila 2. Najnaprednejši arhitekti so zaznali, da bi t.i. vmesni nivo preko standardiziranih posrednikov objektnih zahtev (takrat smo se še prerekali, ali govoriti v objektih ali raje predmetih) utegnil predstavljati preboj. IT oddelki (pravzaprav AOP oddelki) so bili organizirani bistveno drugače kot danes. Besedica »storitev« je svojo domovinsko pravico našla v svetu IT šele nekaj let kasneje.

V prispevku bomo ugotovili, da konferenca OTS skozi svojo zgodovino ponuja ne samo zanimive vpoglede v duh časa, temveč tudi vsakokrat nudi tudi zanimiv in kritičen vpogled v prihodnost področja. Skozi vzpone in padce tehnologij, pristopov in dobrih praks iz industrije bomo zaznali zanimive vzorce. Ugotovili bomo, da smo določene izzive uspeli rešiti, določeni pa žal ostajajo, čeprav se jih lotevamo vedno znova z drugačnimi pristopi in orodji. V prispevku tudi preko praktičnih primerov iz preteklih prispevkov poizkušamo odgovoriti na večno vprašanje: se izplača biti vizionar in hoditi po neuhojeni poti, ali raje čakati, da orodja, tehnologije in pristopi dozorijo ter šele nato uveljaviti spremembe v razvoj, poslovanje ali vzdrževanje IT rešitev.

TEHNIČNI IZZIVI SODOBNE POSLOVNE ANALITIKE

Mateja Verlič Brunčič, Boris Ovčjak

Poslovna analitika lahko pomaga podjetjem sprejeti boljše in informirane odločitve ne glede na velikost podjetja. Na podlagi podatkov podjetja boljše razumejo obnašanje svojih strank ali pridobijo vpogled v konkurenco. Pri tem ne gre zanemariti tehničnih izzivov, ki pridejo s področjem in na finančne, človeške, tehnične, pa tudi strateške omejitve pri reševanju. Podatke je potrebno prečrpati, obdelati, analizirati, vizualizirati in na koncu pripraviti v obliki, ki jo uporabniki razumejo in jo uporabijo kot podlago za odločanje. Vsak korak predstavlja specifiko in ima svoj nabor omejitev, dodaten vir izzivov predstavljajo tudi zunanje storitve, od katerih pridobivamo podatke in nad katerimi načeloma nimamo kontrole. Databox ima več kot deset let izkušenj z reševanjem izzivov na tem področju. V prispevku bomo predstavili, kako smo se lotili njihovega reševanja, da bi uporabniku čim bolj približali podatke na intuitiven in razumljiv način, ki jim daje dodano vrednost.

UMESTITEV DIGITALNIH (EU) DENARNIC V EKOSISTEM SODOBNIH IKT REŠITEV

Špela Čučko, Muhamed Turkanović

Po enoletnem posvetovanju z državami članicami, je junija 2021 Evropska komisija izdala obsežno poročilo o analizi Uredbe eIDAS (storitev elektronske identifikacije in zaupanja), kjer je hkrati naznanila korak naprej k eIDAS 2.0 oz. prenovi in modernizaciji v smeri t. i. ogrodja Evropske digitalne identitete. Posebej velja izpostaviti, da eIDAS 2.0 predvideva zasnovo in nastajanje t. i. digitalnih EU denarnic za upravljanje z dokumenti. Sklenjen je bil tudi akcijski načrt, ki veleva, da morajo do septembra 2023 vse države članice EU svojim državljanom ponuditi digitalno denarnico z EU digitalno identiteto, kar prinaša mnogo prednosti, kot so digitalizacija javnih procesov tudi na nivoju EU, nadzor nad deljenjem lastnih podatkov, preprostejše dokazovanje (digitalne) identitete itn. Pri čemer se postavlja vprašanje o tem, kaj točno so digitalne denarnice oz., kdo, kako in zakaj bi jih uporabljal, kakšne so njihove tehnične podrobnosti ter kako bodo omogočale omenjene prednosti v trenutnem, širšem ekosistemu IKT rešitev in storitev.

V prispevku bomo tako predstavili tehnično ozadje digitalnih denarnic v okviru Evropske digitalne identitete in posodobljene Uredbe eIDAS. Začeli bomo s predstavitvijo osnovnih konceptov in tipov digitalnih denarnic, s pogledom na funkcionalnosti, ki naj bi jih omogočale (digitalno podpisovanje, overjanje na osnovi QR oznak, selektivno vendar preverljivo deljenje informacij itn.). Poznamo številne tipe digitalnih denarnic, od oblačnih do denarnic, ki temeljijo na konceptu samo-upravljanih in decentraliziranih identitet (ang. Self-Sovereign Identity). Zaradi fokusa na digitalno identiteto morajo digitalne denarnice podpirati upravljanje in nadzorovanje le teh, pri čemer morejo omogočati varno shranjevanje in upravljanje identifikatorjev, zasebnih ključev, podatkov in poverilnic, ki naj bi bile zaščitene in popolnoma pod nadzorom uporabnika. Poleg omenjenega pa naj bi omogočale tudi shranjevanje in upravljanje digitalnih dokumentov (kot so npr. osebna izkaznica, diploma, bančna kartica, vozniško dovoljene, certifikat cepljenja), ki so povezani z digitalnimi identitetami. Dokumenti bodo shranjeni v obliki t. i. preverljivih poverilnic (ang. Verifiable Credentials), ki omogočajo preprost nadzor, preverjanje in selektivno razkritje informacij.

V prispevku bomo predstavili tudi številne scenarije uporabe, ki bodo razsvetlili prihodnje načine digitalnih procesov in s tem povezane digitalne preobrazbe. Prav tako bomo predstavili nujnost posodobitve trenutnih IKT rešitev in storitev z namenom doseganja kompatibilnosti z novimi pristopi (overjanja, avtorizacije, komunikacije, izmenjave dokumentov). Pri tem se bomo sklicevali na obstoječe nove standarde (VC – W3C) in predloge le teh ter določene nove dobre prakse.

10:50 – 12:45 SPLETNE TEHNOLOGIJE IN OGRODJA

vodja sekcije: dr. Boštjan Šumak

RAZVOJ SPLETNIH APLIKACIJ Z UPORABO SPLETNIH KOMPONENT

Andrej Krajnc, Jani Pulko, Andrej Korošec, Bojan Štok

Razvoj informacijskih rešitev na osnovi komponent omogoča ponovno uporabo vnaprej pripravljenih gradnikov, ki so dostopni le preko vmesnikov, ni pa vidna njihova notranjost. Razvoj na osnovi komponent je pridobil na pomenu ob uveljavitvi objektnih jezikov, ki so zastavljeni tako, da je razvoj komponent precej olajšan.

V zadnjem času prevladujejo predvsem spletne aplikacije, ki se na odjemalski strani izvajajo v brskalniku, kjer programska koda temelji na označevalnem jeziku HTML in programskem jeziku JavaScript. Čeprav se je jezik HTML od pojava leta 1993 veliko razvijal in nadgrajeval, pa dolgo ni omogočal razvoja na osnovi komponent kot ga poznamo v objektnih jezikih.
Velik korak naprej v tej smeri predstavljajo spletne komponente (ang. Web Components), ki omogočajo razvoj HTML komponent za spletne aplikacije. Notranja struktura spletnih komponent je skrita za druge, preko vmesnikov pa je omogočena interoperabilnost z drugimi HTML elementi. Implementacija spletnih komponent temelji na uporabi spletnih tehnologij, ki so dobro podprte v sodobnih brskalnikih.

Spletne komponente lahko uporabljamo v obstoječih pristopih za razvoj spletnih aplikacij. Tako jih lahko kombiniramo s poljubnimi JavaScript knjižnicami in ogrodji, lahko se uporabljajo tudi v javanskih ogrodjih (npr. JSF), poseben pristop pa predstavlja ogrodje Vaadin, kjer s spletnimi komponentami delamo kot z drugimi javanskimi razredi.
V praktičnem delu bodo prikazani primeri uporabe spletnih komponent, ki jih uporabljamo pri razvoju različnih aplikacij.

 

PRIMERJALNA ANALIZA: ALI NAJ PISANJE PREDLOG CSS OSTANE LOČENO OD PROGRAMSKE KODE JAVASCRIPT?

Gregor Jošt, Luka T. Korošec, Matej Žvan

Definiranje stilnih predlog CSS v datotekah JavaScript, oz. CSS-v-JS (angl. CSS-in-JS) predstavlja sodoben pristop k oblikovanju spletnih strani, kjer ne uporabljamo zunanjih datotek CSS, ampak vso oblikovanje CSS definiramo v programskem jeziku JavaScript. Pri tem ohranimo vso sintakso, pravila in razumevanje CSS, le da implementacijo prestavimo v datoteko JavaScript. Ogrodja za razvoj odjemalskega dela spletnih strani (npr. Angular, React, Vue) ne podpirajo CSS-v-JS pristopa, zato imamo v ta namen na voljo več kot 50 knjižnic. Takšne knjižnice so lahko namenjene in prilagojene specifičnem ogrodju, lahko pa so v celoti neodvisne od njih. Vsaka od teh podpira različen obseg funkcionalnosti in jih tudi implementira na svojevrsten način. Kljub temu pa si te knjižnice delijo nekaj skupnih prednosti, kot so lažja ponovna uporaba komponent, samodejno ustvarjanje unikatnih izbirnikov (angl. selectors), dinamična vključitev stilov in celovita podpora CSS.

Po drugi strani pa ima običajen pristop k oblikovanju spletnih aplikacij še vedno jasne prednosti. Uporaba različnih metodologij (npr. BEM – “Block, Element, Modifier”) ali tehnologij (moduli CSS) je še vedno zelo pogost pristop k oblikovanju spletnih strani, ki pa ne zahteva učenja novega ogrodja. Kljub temu se CSS-v-JS vse pogosteje uveljavlja kot alternativa, saj ima CSS svojevrstne težave, kot so prekrivanje stilov, pomanjkanje izolacije (pristop “vse je globalno”) in pomanjkanje tehnologije za odstranjevanje stilov, ki se ne uporabljajo (angl. dead code elimination).

Glede na vse večjo priljubljenost in uporabnost CSS-v-JS pristopa smo se v sklopu članka osredotočili na primerjavo omenjenega pristopa z običajnim načinom (tj. definiranje stilnih predlog v ločeni datoteki CSS). V primerjalni analizi se bomo omejili na knjižnico React, za vključitev CSS-v-JS pa bomo uporabili knjižnico styled-components saj velja za eno bolj priljubljenih knjižnic v ta namen.

 

PRAKTIČNI PRIMERI PRISTOPOV ZA IZBOLJŠAVO HITROSTI DELOVANJA REACT APLIKACIJ

Leon Pahole

V sodobnem razvoju spletnih aplikacij se večina programerjev poslužuje ogrodij in knjižnic, temeljujočih na jeziku JavaScript, ki poenostavijo delo s kompleksnimi, dinamičnimi in odzivnimi grafičnimi vmesniki. Knjižnica React sodi med eno izmed najbolj priljubljenih takšnih orodij.

V knjižnici React razvoj temelji na komponentah, ki predstavljajo vizualne elemente v spletni aplikaciji. Poleg vizualnih gradnikov komponente vsebujejo tudi logiko delovanja in podatke, prav tako pa lahko izrisujejo druge komponente, s čimer tvorijo hierarhijo komponent. V praktičnih projektih lahko število in kompleksnost komponent v hierarhiji hitro narasteta, kar lahko povzroči poslabšanje v delovanju in odzivnosti aplikacije, ki jo občutijo tudi uporabniki. Statistike kažejo, da lahko počasno delovanje spletne aplikacije vodi v izgubo uporabnikov, zato je pomembno, da pri razvoju posvetimo čas performančni analizi in implementiramo potrebne
optimizacije.

V prispevku bomo predstavili pristope za analizo in izboljšavo delovanja spletnih aplikacij v knjižnici React. Predstavljeni pristopi temeljijo na praktičnih izkušnjah.

V prvem delu bomo predstavili metode za analizo delovanja s pomočjo razvojnih orodij v brskalniku. Cilj analize je pridobitev metrik, ki jih bomo kasneje uporabili za primerjavo optimizacij in kvantifikacijo performančne izboljšave. Prav tako bomo na podlagi rezultatov pretehtali odločitev, ali je implementacija optimizacije smiselna.

Drugi del prispevka bomo posvetili delovanju knjižnice React. Razložili bomo interni algoritem, ki izrisuje komponente in se spoznali z optimizacijskimi mehanizmi, s katerimi lahko zmanjšamo
število izrisov.

V tretjem delu prispevka bomo predstavili praktične primere optimizacij. Posamezen primer bomo najprej analizirali in razložili vzrok za počasno delovanje. Nato bomo s pomočjo optimizacijskih mehanizmov izboljšali hitrost in s pomočjo ponovne analize izrazili izboljšavo.

V zadnjem delu prispevka bomo podali nekaj nasvetov za vkomponiranje performančne analize in optimizacij v proces razvoja spletnih aplikacij.

 

KAJ JE BLAZOR IN KAKO SE PRIMERJA Z JAVASCRIPT OGRODJI?

Matjaž Prtenjak

WASM
Do sedaj so napredek na področju spletnega razvoja predstavljala JavaScript razvojna ogrodja, kot so Angular, React, Vue in podobna. Hkrati z njimi pa so se tudi brskalniki začeli obnašati kot okolja/programi, ki lahko poganjajo kakršnekoli (druge) programe. Brskalniki so se torej začeli obnašati kot računalniki, ki tečejo v ločenem okolju (peskovniku) in lahko vse potrebno dobijo s spleta.

Hkrati pa je v svetu razvite veliko programske opreme v različnih programskih jezikih in dobro bi bilo, če bi lahko s kakšnimi navzkrižnimi prevajalniki prevedli obstoječo programsko kodo v kodo, ki bi jo razumel brskalnik. Vendar v kaj jo prevesti? V JavaScript?
Če nadaljujem analogijo med brskalnikom in računalnikom je torej programsko kodo potrebno prevesti v strojni jezik računalnika. Potrebno je torej razviti nek strojni jezik brskalnika, ki bi bil standardiziran in bi ga brskalniki razumeli. In to je WASM (WebAssembly) – »strojni jezik brskalnika«3

Blazor
Microsoft4 je vzpon JavaScript-a zamudil. Pred leti je poskušal razviti okolje, ki bi bilo bližje povprečnemu MS razvijalcu/razvijalki. Naredili so Silverlight, ki pa je v brskalniku potreboval vtičnik in ni nikoli zares zaživel.
Hkrati pa MS ima močno orožje, ki nenehno tekmuje z Java svetom in to je seveda .Net, ki ga je v zadnjih letih povsem prenovil in tudi odprl svetu, saj je ustanovil .Net Foundation in je zatorej odprtokodno orodje.
Vendar to ni tematika tega prispevka. To je samo osnova, ki nam pomaga razumeti, kaj se je zgodilo, ko sta se združili ideji odprtega .Net razvojnega okolja in odprtega WASM. MS je dobil možnost, da veliko količino programske kode prevede v WASM ali povedano drugače, dobil je možnost razvoja .Net programov, ki tečejo v brskalniku.

Blazor je odprtokodno razvojno okolje podjetja Microsoft, kjer lahko program razvijamo v C# programskem jeziku, prevajalnik pa ga prevede v WASM. Takšen program se torej lahko izvaja v poljubnem brskalniku (vsi novejši).

JavaScript ~ Blazor
JavaScript je najbolj popularno razvojno okolje in mladi programerji/programerke v njem plavajo kot ribe v morju. A čeravno svet stoji na mladih, obstaja še vedno množica razvijalcev, ki pa jim/nam JavaScript razvojna ogrodja niso tako blizu in ki se vseeno bolje počutimo v strogo tipiziranih jezikih kot so C++, C#, Java in podobni.
Če bi torej MS izbral Blazor kot tekmeca JavaScript-u, bi klavrno pogorel, zato Blazor ni konkurent JavaScript-u, temveč z njim sodeluje. Blazor zna izvajati in sodelovati z JavaScript in tudi v JavaScript-u lahko kličemo Blazor funkcije.

Do sem torej vse lepo in prav. Pojavi pa se vprašanje, kako torej izgleda razvoj neke spletne aplikacije v Blazor-ju, glede na moderno JavaScript ogrodje – VUE.

Blazor ~VUE
Leta 2019 sem na OTS predstavil VUE in sedaj je čas, da predstavim, kako se Blazor primerja z VUE in zakaj je meni – kot »staremu« razvijalcu, bližje Blazor kot Vue.

V prispevku bi torej ob podobnem uvodu, ki je zapisan tukaj, praktično primerjal posamezne aspekte VUE razvojnega okolja in Blazor razvojnega okolja.

 

12:45 – 14:00 KOSILO

 

14:00 – 15:40 ARHITEKTURE SODOBNIH INFORMACIJSKIH REŠITEV

vodja sekcije: dr. Dean Korošec

 

MODERNI TRENDI PRI INTEGRACIJAH SISTEMOV: AGILNE INTEGRACIJE, OSREDOTOČENE NA API-JE

Dušan Rauter

Poslovni uspeh vse bolj temelji na sposobnosti podjetja, da se odzove na spremembe. Ker novi moteči akterji vstopajo na trge in tehnologija spreminja pričakovanja potrošnikov, se morajo organizacije razvijati, da bi te spremembe obravnavale v veliko krajših ciklih, kot kdaj koli prej. Sodobne arhitekture in procesi programske opreme lahko naredijo organizacije učinkovitejše pri soočanju s spremembami in nastopajo kot zmagovalci na svojih trgih.

Tehnologija je preoblikovala celotne industrije. Trend velikih sprememb vodi do tega, da organizacije radikalno preoblikujejo svoja IT okolja, da bi lahko ponudile nove digitalne storitve, ki jih stranke zahtevajo, bolje in hitreje kot njihovi konkurenti.

Sposobnost integracije aplikacij in podatkov je ključnega pomena za uresničitev različnih poslovnih ciljev in zagotavljanje konkurenčnih storitev. Nove in vse težje zahteve se postavljajo k starim pristopom, saj digitalne inovacije in motnje postajajo glavni normativ.

Pred nami so novi izzivi, kot je povečana uporaba hibridnih aplikacij v oblaku, IT okolja v oblaku, potreba po razširitvi sistemov za nove storitve za partnerje in stranke ter povpraševanje po sodobnih aplikacijah. Zaradi tega je integracija podjetja še pomembnejša in zagotavljanje storitev na hitrejši in neprekinjen način še bolj kritično. Verjamemo da je boljši način za reševanje teh novih in hitro naraščajočih izzivov integracija različnih aplikacij in informacijskih sistemov, uporaba strategije agilne integracije. Agilna integracija združuje tri zmogljive arhitekturne principe: porazdeljeno integracijo z mikro storitvami, vmesnike za programiranje aplikacij (API) in vsebnike (kontejnerje)-  za spodbujanje agilnosti, razvoj novih poslovnih procesov in končno zagotavljanje konkurenčne prednosti.

 

OMEJEVANJE FREKVENCE ZAHTEVKOV NA ODJEMALCU 

Aljaž Mislovič

Strežniki so pogosto tarča namernemu ali nenamernemu povišanju frekvence zahtevkov v kratkem časovnem obdobju. Z različnimi metodami omejevanja zato strežniki ščitijo svoje sistemske vire, podatkovne baze in izboljšujejo uporabniško izkušnjo. V tem članku smo reševali realni problem produkcijskega okolja Databox, ki v vlogi odjemalca iz različnih strežnikov črpa podatke za svoje uporabnike. V prispevku bomo opisali, kako smo zasnovali in implementirali programsko rešitev, ki uspešno omejuje frekvenco zahtevkov na različne strežnike z različnimi metodami omejevanja. Na koncu bomo predstavili tudi rezultate testiranja na več kot 100 milijonov izvedenih zahtevkov na produkcijskem okolju, ter podali rezultate zmogljivosti.

 

PREHOD NA REALNO-ČASOVNO OBDELAVO PODATKOVNIH TOKOV S POMOČJO KAFKA STREAMS IN KSQL/KSQLDB

Muhamed Turkanović, Martina Šestak

Dogodkovno orientirana miselnost procesiranja sveta okrog nas postavlja v ospredje dogodke (ang. event) kot atomarno osnovo obdelave podatkov v modernih IKT rešitvah. Dogodke lahko tako metaforično predstavimo kot posamične atome vode, ki skupaj tvorijo potok, ki ima svoj izvir in po navadi tudi ponor, pri čemer lahko trenuten način obdelave teh dogodkov enačimo z naključnim zajemom vode v dlan in požirkom med sprehodom po gozdu. Platforma Kafka se je že vrsto let nazaj izkazala kot odlična osnova za pretočno obdelavo podatkov, pri čemer lahko le to, s svojo osnovno gručo Kafka, metaforično predstavimo kot vodno strugo. V trenutnih IKT rešitvah in s tem povezanih arhitekturah IT/IS se že opaža pogostejša uporaba Kafke, vendar z osredotočanjemna razvoj Kafka proizvajalcev (ang. producer) in potrošnikov (ang. consumer) ter uporabo Kafke kot sporočilnega sistema. Prihajamo pa vedno bolj do situacij, kjer želimo dogodke kontinuirano in v celoti spremljati in ne zgolj sporadično. Na primeru našega potoka, si zahtevo lahko predstavimo kot nenadno zastrupitev vode, kjer je potrebno kontinuirano in detajlno spremljati celoten tok na določeni točki in iskati morebitne škodljive primesi. Za ta namen je nujno potrebno začeti Kafko uporabljati kot platformo za realno-časovno obdelavo podatkovnih tokov in sicer z uporabo komponent, kot so Kafka Streams in/ali KSQL oz. ksqlDB.

V prispevku bomo podrobneje predstavili platformo Kafka iz vidika realno-časovne pretočne obdelave podatkov. Predstavili bomo razlike med rešitvama Kafka Streams in KSQL/ksqlDB ter njuno umeščenost v ekosistem Kafka oz. v ekosistem IKT rešitev, ki uporablja Kafka za dogodkovno orientirano obdelavo podatkov. Izpostavili bomo ključne prednosti Kafke pred klasičnimi sporočilnimi sistemi, kot je npr. RabbitMQ. Pri tem bomo poskusili biti objektivni ter v razpravo vključili tudi morebitne konkurenčne sisteme, kot je Apache Flink s svojo nadgradnjo Flink SQL. Med drugim je cilj prispevka tudi, da osvetlimo potreben zasuk v miselnosti pri realno-časovni obdelavi tokov, podobno kot je potreben drugačen mentalni model razvijalca, ko uporablja vtičnice (ang. sockets) za razvoj spletnih rešitev. Kot primer predstavimo tudi integracijo realno-časovne pretočne obdelave podatkov s poslovno-inteligenčnimi sistemi (ang. business intelligence), ki posledično pretvorijo nadzorne plošče (ang. dashboard) v TV-ju podoben medij.

S tehničnega vidika pa se bomo predvsem osredotočili na KSQL oz. ksqlDB. Opisali bomo podobnosti in razlike s klasičnim poizvedovanjem po podatkovnih bazah, ki jih v primerjavi s potokom lahko enačimo z bazenom in poizvedovalni jezik SQL z zajemalko za čiščenje le tega. Dotaknili se bomo tudi scenarijev povezovanja tabel s tokovi ter kompleksnejših primerov in izzivov uporabe KSQL/ksqlDB.

 

RAZVOJ SPLETNIH REŠITEV NA OSNOVI OGRODJA ANGULAR Z UPORABO MIKRO ČELNIH ZALEDIJ

Alen Granda, Matic Strajnšak

V današnjih časih se vedno več podjetij poslužuje uporabe spletnih tehnologij za namen komunikacije s končnim uporabnikom. Uporabnikov je vedno več, so vedno bolj zahtevni in uspešni v iskanju napak v aplikacijah. Zaradi tega so spletne aplikacije z vsakim popravkom ali dodano funkcionalnostjo večje. Posledično je vzdrževanje takšnih aplikacij zahtevno in izpostavljeno akumuliranju nepravilnosti v programski kodi. V ta namen se je že konec leta 2016 začelo govoriti o mikro čelnih zaledjih (ang. microfrontends), ki razširijo koncept mikroservisov v svet čelnih zaledij spletnih aplikacij. Arhitektura razdeli glavno spletno aplikacijo na več manjših, obvladljivih, enostranskih aplikacij (ang. Single page
application), katere lahko več programskih ekip neodvisno druga od druge razvijajo.

S prihodom tehnologije Webpack 5 je v svet spletnih tehnologij prispel koncept povezovanja modulov (ang. Module federation). To pomeni, da lahko referenciramo dele programa, ki še niso znani v času prevajanja kode. Prav tako se je s tem omogočilo deljenje skupnih knjižnic med moduli, kar onemogoči nepotrebno podvajanje. Omenjen doprinos je implementacijska rešitev mikro čelnih zaledij, saj lahko na ta način ločeno razvijemo aplikacije, ki jih s pomočjo povezovanja modulov v izvajanju
združimo v enotno aplikacijo. V nadaljevanju bolj podrobno opišemo princip mikro čelnih zaledij, njihovih prednosti in slabosti ter
predstavimo implementacijo arhitekture v spletnem ogrodju Angular. Za namen demonstracije smo ustvarili projekt, ki je sestavljen iz več mikro aplikacij ter lupine, ki je zadolžena za nalaganje mikro aplikacij na zahtevo. Mikro aplikacije smo namenoma razvili z različnimi verzijami, da smo lahko demonstrirali, kako lupina pouporabi enake verzije oziroma jih naloži ob prvem zahtevku. Obrazložili smo postopek konfiguracije celotnega projekta, njegove strukture ter zagona. Podali smo še nekaj
ključnih informacij ob razvoju in nekaj primerjav napram monolitni arhitekturi čelnega zaledja aplikacij.

Prav tako smo predstavili vidik samostojnih komponent v spletnem ogrodju Angular. Samostojna komponenta služi nadomestitvi razredom, ki so okrašeni z dekoratorjem @NgModule. Ti razredi so namreč namenjeni le prevajalniku, ki z njihovo pomočjo poskrbi za uvoz, izvoz, deklaracijo in souporabo delov aplikacije. S tem načinom smo poskrbeli za lažji razvoj in zmanjšanje nepotrebne programske kode. Prav tako vsaka komponenta zahteva le tiste module, ki jih potrebuje. Samostojne komponente smo integrirali v demonstracijski projekt mikro čelnih zaledij, kjer se nam je to zdelo smiselno. Za namen primerjave smo nekaj komponent mikro aplikacije skonstruirali z uporabo razredov @NgModule. Analizirali smo, zakaj se nam v določenih primerih zdi uvedba samostojnih komponent
koristna zamenjava oziroma zakaj v drugih ne.

 

16:00 – 17:40 BLOCKCHAIN, ODPRTOKODNE REŠITVE, AGILNOST

vodja sekcije: dr. Boštjan Grašič

 

DODAJANJE POLJUBNIH FUNKCIONALNOSTI DIGITALNI KRIPTO-DENARNICI METAMASK
Vid Keršič, Andraž Vrečko, Urban Vidovič, Martin Domajnko, Muhamed Turkanović

Tehnologija veriženja blokov (angl. blockchain) se v zadnjih letih vse bolj uveljavlja na mnogih področjih, saj se lahko tehnologija uporabi za veliko različnih namenov, na primer ustvarjanje kripto valut, upravljanje decentraliziranih digitalnih identitet, sledljivost v dobavnih verigah, nezamenljive žetone (angl. NFT), navidezne svetove (angl. metaverse) itd. Uporaba verig blokov je v primerjavi s trenutnimi tehnologijami, bistveno kompleksnejša. Zato se je uveljavilo veliko kripto denarnic, ki uporabnikom omogočajo uporabo le teh, na preprost način. Kripto denarnice danes omogočajo interakcijo z verigami blokov in decentraliziranimi aplikacijami (angl. decentralized application, dApp), ter posledično upravljanje z zamenljivi ali nezamenljivimi žetoni, interakcijo z navideznimi svetovi itn. Danes je vsekakor najbolj priljubljena denarnica MetaMask, ki podpira vsa omrežja, ki temeljijo na navideznem stroju Ethereum (angl. Ethereum Virtual Machine, EVM). Ker se funkcionalnosti in možnosti uporabe tehnologije veriženja blokov zelo hitro povečujejo, so razvijalci denarnice MetaMask leta 2022 izdali razvojni sistem imenovan Snaps. Ta omogoča razvoj in integracijo poljubnih funkcionalnosti v obliki vtičnikov za kripto denarnico MetaMask.

V prispevku bomo predstavili kako lahko na osnovi sistema Snaps snujemo poljubno funkcionalnost h kripto denarnici MetaMask ter le to temu primerno razvijemo in integriramo. S tem se izognemo razvoju lastne kompleksne rešitve, hkrati pa obdržimo uporabnikom znano rešitev in varnost kriptografskih ključev, ki so eden izmed najpomembnejših komponent tehnologije veriženja blokov. Čeprav bomo pokazali, da nam sistemi Snaps omogočajo praktično neomejeno možnosti, bomo v prispevku za namen demonstracije predstavili implementacijo razširitev, ki MetaMask denarnici doda podporo decentraliziranim identitetam in identifikatorjem (angl. decentralized identifier, DID) ter preverljivim poverilnicam (angl. verifiable credential, VC), ki so do sedaj za uporabo potrebovali ločeno rešitev. Prispevek zaključimo z analizo prednosti in slabosti, ki jih ima predstavljen pristop, in pregledom trenutnega stanja novih funkcionalnosti kripto denarnice MetaMask.

 

PRIHODNOST DOBRODELNIH ORGANIZACIJ – DECA (DECENTRALIZED CHILDREN’S ART)

Katerina Petrevska, Petar Stojkovski, Blagoj Soklevski

Načela delovanja dobrodelnih organizacij so skoraj povsod po svetu enaka in ustaljena. Potrebna je reforma, ki bo doprinesla h kakovostnejšemu izvajanju dobrodelnih projektov ter učinkovitejšemu spremljanju porabe sredstev. V okviru organizacija “DECA – Decentralized Children’s Art” smo realizirali model ideje, ki uporablja in prilagaja najnovejše tehnologije veriženja blokov za namen spremembe načina delovanja dobrodelnih organizacij. Glavni cilj je doseči transparentnost organizacij, kar ne zajema zgolj zbiranja donacij in sredstev, temveč tudi njihovo upravljanje. Vsak izmed izvedenih projektov bo sledil več podobnim korakom za zbiranje donacij, in sicer: organiziranje delavnic v ustanovah oziroma centrih za delo z otroki s posebnimi potrebami, podpora pri ustvarjanju umetniških del, digitalizacija njihovih umetnin in digitalizacija umetnin kot (2D/3D) NFTs. S takšnim pristopom želimo povečati udeležbo in integracijo otrok v proces zbiranja donacij.

 

UČINKOVITA IN PRILAGOJENA PODPORA POSLOVNIM PROCESOM S POMOČJO ODPRTOKODNIH REŠITEV

Miroslav Beranič

Poslovni svet bodisi zaradi pogostih ali obsežnih sprememb pogojev delovanja potrebuje hitro in učinkovito podporo s strani uporabljenih informacijskih tehnologij. Žal so IT tehnologije pogosto postale omejitveni faktorji pri sprejemanju poslovnih odločitev. Prav tako so vse pogosteje, sicer neregulirane, trgovske poslovne veje, omejene s hitro spreminjajočimi pravili delovanja, kar terja pogosto in hitro prilagajanje ter na drugi strani ažurno komuniciranje s strankami. Podjetja tako morajo najti primerno ravnovesje med državnimi regulacijami, konkurenčnimi ponudniki in strankami, katerih odločitve slonijo na prijazni uporabniški izkušnji. Na drugi so infrastruktura in razvijalci pod pritiskom s strani poslovnih zahtev in nenehnih tehnoloških sprememb. Želja podjetja je tako izbira tehnologije, ki je stabilna in se nekontrolirano ne spreminja, hkrati pa omogoča nove funkcionalnosti ter uvajanje novih kanalov s specifičnimi pravili in usmeritvami.

V prispevku bomo predstavili celostno infrastrukturno in arhitekturno rešitev za podjetja za povečanje konkurenčne prednosti in oplemenitenje dodane vrednosti obstoječim poslovnim procesom ter celovito pot razvoja sprememb v poslovnih procesih s pomočjo rešitev Red Hat OpenShift in Liferay DXP. Red Hat OpenShift je odprtokodna rešitev, ki nudi poenoteno delovanje in upravljanje izbranih aplikacij na klasičen način ali oblačnih rešitev. Nudi celovit nabor aplikacij in procesov za avtomatizirano delo z izbranimi rešitvami ter nadzor nad izvajanjem in delovanjem. Liferay DXP je odprtokodna rešitev, ki omogoča izgradnjo uporabnikom prijazno in prilagojeno spletno rešitev. Razvijalci lahko pri razvoju sledijo in sodelujejo z odločevalci poslovnih procesov, ki se ne razumejo v poglobljene razvojne procese.

S pomočjo prikazanih rešitev je podjetjem omogočeno hitro prilagajanje pravilom in ažurna komunikacija s strankami na vseh kanalih, na katerih je podjetje prisotno, bodisi javna spletna stran, samopostrežni terminali, email ali socialni mediji.

UPORABA OGRODJA SCRUM V NEPROGRAMERSKIH PROJEKTIH

Štefan Masič

Članek prikazuje izkušnje pri uporabi (projektne) metode Scrum na primeru dveh projektov, ki nimata programerskega ozadja in katerih značilnost je, da so člani delovne skupine na različnih lokacijah (prvi projekt) ali se nahajajo na isti lokaciji, vendar imajo druge delovne obveznosti (drugi projekt), ki jim ne omogočajo natančno sledenje paradigmi Scrum (npr. kontinuirano izvajanje vsakodnevnega Sprint sestaneka).

Upravljanje obeh projektov se je izvajalo s pomočjo izbranega okolja (program Monday.com), ki je bil izbran na osnovi predhodne analize več orodij. Prikazani so kriteriji izbire, ki so predvideli, da mora okolje zadostiti upravljanju tako operativnih in razvojnih projektnih nalog, kakor izvajanju projektov po metodi Scrum.

Članek predstavi osnovno projektno organiziranost: skupina in vloge, organizacija Sprinta, tipi in frekvenca izvajanja, načrt izvedbe (angl. Roadmap), retrospektiva. V nadaljevanju članka so predstavljeni tudi druge projektni prijemi, ki so dopolnili metodo Scrum. To so: arhitektura izvedbe projekta (princip dvojnega diamanta, angl. Double Diamond), uporaba mrežnega diagrama opravil (angl. Network Task Diagram) in uporaba orodij za skupinsko delo (Miro).

Na osnovi podatkov prvega projekta, ki je že zaključen, je pripravljena študija primera, ki prikazuje izzive s katerimi se je ekipa srečevala in kako se je na njih. Povzeta je tudi ocena na osnovi merljivih elementov kot so: ocenjene in dejansko izvedene točk zgodbe (angl. Estimated and Actual Story Points), udeležba članov na sestankih in prikaz trenda izvedenih delovnih opravil skozi celoten projekt (angl. Planed and Actual Work).
V zaključku podaja članek priporočila za projektnega vodjo (oziroma člana, ki je v vlogi Scrum Master). Priporočila so namenjena priprave naslednjega projekta takšnega tipa (projekti, ki niso programerski). Mednje sodijo: uporaba krovnega dokumenta projekta, oblikovanje predstavitvenega dokumenta vsakega sprinta, razširitev vsakega opravila z nedoumnimi parametri (rezultat, izdelek), tedenska izvedba dolgega retrospektivnega sestanka kot koncept povezovanja.

18:00 DRUŽABNO SREČANJE


ČETRTEK, 8. 9. 2022

9:00 – 10:50 ARHITEKTURNI IZZIVI SODOBNIH INFORMACIJSKIH REŠITEV


IZZIVI IN VZORCI ZASNOVE MIKROSTORITEV V BREZSTREŽNIŠKEM OKOLJU

Tilen Hliš, Luka Pavlič

Mikrostoritvena arhitektura je preizkušen, in kot kažejo podatki, tudi vodilen arhitekturni stil informacijskih rešitev zadnjega desetletja. Mikrostoritve izhajajo iz problematike spletnih storitev, ki slabo ali sploh ne podpirajo vseh načel storitveno usmerjene arhitekture. Številne prednosti mikrostoritvene arhitekture vključujejo nizko sklopljenost, neodvisnost posameznih storitev in omogočeno razširljivost, ponujajo sisteme z višjimi zmogljivostmi, boljšim delovanjem, organizacijsko pa ponujajo možnost hkratnega neodvisnega razvoja posameznih gradnikov informacijskih rešitev.

Vpeljava mikrostoritvene arhitekture zaradi svojih posebnosti in številnih odstopanj od dolgoletnih dobrih praks zahteva ustrezno uporabo inovativnih pristopov pri naslavljanju nefunkcionalnih zahtev. Na eni strani so pristopi v razvoju in se bodo v industriji dobre prakse šele uveljavile skozi čas, po drugi strani pa že obstaja mnogo katalogov preizkušenih dobrih praks, Načrtovalski vzorci ne predstavljajo konkretne implementacije, temveč praktično preizkušene ideje, kako rešiti določeno skupino izzivov. Vzorce lahko umestimo v kategorije ali skupine – vsaka izmed njih naslavlja določeno problematiko s katero se soočajo razvijalci . Eno izmed področij, ki je povezano s svojo skupino načrtovalskih vzorcev mikrostoritvene arhitekture, je področje izvajanja mikrostoritev. Skupina zajema vzorce, ki so povezani z izvajanjem posameznih mikrostoritev in celotne informacijske rešitve, pri čemer izpostavljamo vzorec, ki temelji na uvedbi brez strežnika (angl. Serverless deployment).

Brezstrežniško računalništvo z vedno hitrejšim razvojem oblačnega računalništva vedno bolj pridobiva na pomenu. Arhitekture brez strežnika predvidevajo zasnovo informacijskih rešitev, ki vključuje zaledje kot storitev (angl. Backend as a Service – BaaS) in kodo po meri (angl. Functions as a Service -FaaS), ki se izvaja v upravljanih, kratkotrajnih vsebnikih na izbrani platformi.

 


RAZVOJ VEČPLATFORMNE APLIKACIJE ZA PRIKAZ NAPRAV PAMETNEGA DOMA

Sebastjan Mevlja

Telekom Slovenije d.d. razvija avtohtone aplikacije za upravljanje NEO pametnega doma za vsako platformo posebej. Zanimalo nas je, ali bi lahko več aplikacij nadomestili z eno večplatformno (angl. cross-platform) aplikacijo. Odločili smo se za izdelavo testne večplatforme aplikacije.
Da bi čim bolj znižali ceno razvoja aplikacije in izboljšali uporabniško izkušnjo smo se odločili, da za razvoj uporabimo ogrodje Flutter. Aplikacija podpira Android in IOS mobilne naprave ter spletne brskalnike. Sledili smo NEO oblikovalskim pravilom, zato je tema aplikacije temno modra z
odtenkom vijolčaste. Osrednji in bistveni namen aplikacije je komunikacija z napravami pametnega  doma z uporabo MQTT protokola.

Komuniciranje z napravami pametnega doma poteka z uporabo MQTT protokola. Aplikacija vzpostavi povezavo z MQTT posrednikom in posreduje sejo, ki jo dobi ob NEO prijavi. Način  vzpostavitev povezave je odvisen od vrste naprave. Posebnost spletne različice je, da za komunikacijo uporablja spletne vtičnice (angl. websocket). Po vzpostavljeni povezavi se aplikacija naroči na vse potrebne teme in počaka na potrditev. Po prejeti potrditvi aplikacija zahteva seznam naprav pametnega doma, ki so trenutno povezane na NEO Smartbox. Seznam naprav se ustrezno procesira in naprave se prikažejo na grafičnem vmesniku. Testiranju smo posvetili posebno pozornost. Želeli smo doseči čim višjo pokritost kode. Napisali
smo teste enot, gradnikov in integracijske teste. Zaradi modularne zasnove aplikacije in odvisnosti od zunanjih storitev je bilo za namene testiranja potrebno izdelati mokap (angl. mockup) uporabljenih storitev. Napisali smo 137 testov in dosegli dobro pokritost aplikacije. Tako smo potrdili pričakovano delovanje aplikacije.

Z uporabo Github Actions smo postavili delovni tok, ki se sproži ob vsaki objavi kode na Git veji main. Na začetku se preveri format izvornih datotek in izvede statična analiza programske kode. Nadaljujemo z izvajanjem testov enot. Po prestanih testih se iz izvorne kode zgradita Android in
spletna aplikacija. Namestitvene datoteke za Android aplikacijo se odložijo na Github, kjer so na voljo za prenos. Spletna aplikacija se postavi na Githubov spletni strežnik, ki omogoča brezplačno gostovanje enostavnih spletnih aplikacij.

Tekom razvoja smo dobro spoznali orodje Flutter in njegove prednosti ter slabosti. Ugotovili smo, da je zelo dobro orodje za razvoj večplatformnih aplikacij. Ima konstantno in urejeno sintakso ter ne zahteva pisanja odvečen kode. Je intuitiven in ne zahteva veliko učenja. Je relativno svež,
vendar je hitro postal priljubljen. Flutter ponuja nesporne prednosti, kot so hitrejši razvoj in prihranek denarja. Te prednosti lahko pomembno vplivajo na proces razvoja, ko gre za predvideno uporabo sredstev in hitrejše trženje izdelka. Hitrejši razvoj omogoča hitrejšo potrditev ideje, zgodnje testiranje uporabnikov in prihranek denarja.

NAPREDNE IT REŠITVE ZA POSPEŠEVANJE ZELENEGA PREHODA

Robert Meolic, Miha Lenko, Andrej Souvent

Zeleni prehod energetike temelji na masovni integraciji obnovljivih in razpršenih virov energije. Zahteve investitorjev po vključevanju novih virov dostikrat povzročajo operaterjem omrežij težave, ker posamezni elementi omrežja zaradi termičnih omejitev ne dopuščajo dodatnih obremenitev. Klasična rešitev teh težav je nadgradnja ali pa celo postavitev novih transformatorjev in daljnovodov, kar pa ni samo draga, temveč tudi počasna rešitev zaradi dolgotrajnega umeščanja nove energetske infrastrukture v prostor. Zato je toliko bolj pomembno, da obstoječo infrastrukturo čim bolje izkoristimo. To nam omogoča tehnologija dinamičnega ocenjevanja prenosne zmogljivosti (ang. Dynamic Thermal Rating), ki temelji na izračunu termične obremenitve z upoštevanjem vremena, ki vpliva na hlajenje elementov omrežja. Ta tehnologija se lahko uporabi za daljnovode in za transformatorje. Slovenski operater prenosnega omrežja Eles je eden prvih operaterjev v Evropi, ki je tehnologijo dinamičnega ocenjevanja prenosnih zmogljivosti začel uporabljati v okviru obratovanja elektroenergetskega sistema. Za dosego tega cilja je skupaj s partnerji razvil SUMO, ki je modularen IT sistem za dinamično ocenjevanje prenosnih zmogljivosti. Dosedanje izkušnje kažejo, da omogoča v povprečju od 15  do 20% večjo izkoriščenost daljnovodov od nominalne vrednosti.

V članku bo SUMO predstavljen z vidika funkcionalnosti in izvedbe. SUMO je zgrajen kot storitveno usmerjena arhitektura, ki uporablja storitveno vodilo. V jedru sta tehnologiji Apache Karaf in Apache CXF. Storitveno vodilo uporabniki dojemajo kot skupek povezanih spletnih servisov. Podprta sta protokol SOAP in tehnologija RESTful. SUMO pri pridobivanju podatkov iz nekaterih zunanjih virov uporablja tudi protokol MQTT. Pomembna sestavna dela sta še Nagios XI za sprotni nadzor nad delovanjem ter Grafana za vizualizacijo podatkov in podporo analitiki.

V članku bodo podani tudi rezultati in izkušnje iz nekajletnega obratovanja SUMO 2.0 na ELES ter trendi nadaljnjega razvoja, ki narekujejo pripravo SUMO 3.0. Slednji so povezani predvsem z varnostnimi izzivi, ker ima SUMO v produkciji značilnosti varnostno-kritičnega sistema, pri katerem napačno delovanje oz. nedelovanje lahko povzroči materialno škodo.

ARHITEKTURNI IZZIVI RAZVOJA REŠITVE CONNECTED MHEALTH

Damjan Kovač, Sebastjan Juhart, Tina Maček, Matevž Klevže, Saša Saje Wang

Izraz mHealth (m-zdravje) se nanaša na medicinske in javnozdravstvene prakse, ki se izvajajo in so podprte z mobilnimi napravami. Aplikacije mHealth vključujejo uporabo mobilnih naprav za zbiranje zdravstvenih podatkov, dostavo in izmenjavo zdravstvenih informacij za zdravnike, raziskovalce in paciente, spremljanje bolnika, neposredno zagotavljanje oskrbe (prek mobilne telemedicine), pa tudi usposabljanje in sodelovanje zdravstvenih delavcev. mHealth rešitve so prisotne že nekaj časa, vendar se je povpraševanje po njih enormno povečalo v času COVID-19. Connected mHealth, rešitev, ki smo jo razvili v podjetju Mikropis je ena izmed tovrstnih mHealth rešitev, ki se osredotoča predvsem na rehabilitacijo na daljavo. Namen rešitve je zagotoviti kvalitetno fizioterapevtsko obravnavo in obravnavo delovne terapije ter ju prenesti v izvajanje na pacientovem domu. V želji, da bi resnično ustvarili edinstveno rešitev na področju rehabilitacije, smo v razvoj produkta vključili strokovnjake iz različnih področij tehnologij, medicine in zdravja. Naš cilj je bil razviti enostavno in uporabno platformo, ki je na eni strani namenjena različnim strokovnjakom v zdravstvenih in rehabilitacijskih centrih, pri ustvarjanju in dodeljevanju individualiziranih rehabilitacijskih programov svojim pacientom, na drugi strani pa izboljšani uporabniški izkušnji, večji motivaciji in uspešnejši rehabilitaciji pacientov.

Pri razvijanju tovrstne rešitve smo izbrali komponente, programski jezik in uporabniški vmesnik, ki omogoča varno, zanesljivo in enostavno uporabo tako za fizioterapevte, ki planirajo rehabilitacijske plane pacientom, kot tudi za paciente, ki planirane rehabilitacijske plane nato izvajajo preko mobilne aplikacije. V članku bomo predstavili naše izkušnje in dobre prakse, ki smo jih pridobili pri implementaciji rešitve Connected mHealth. Rešitev je dostopna na IBM cloudu in je kot takšna široko dostopna uporabnikom. V sklopu rešitve smo implementirali SSO za prijavo uporabnikov, ki omogoča povezovanje s sistemi, implementirali smo spletno web rešitev (Angular) za fizioterapevte in razvili native aplikaciji; za Android v programskem jeziku Kotlin, ter za iOS v programskem jeziku swift.

11:10 – 13:00 INTELIGENTNE STORITVE IN VELEPODATKI

VPELJAVA UMETNE INTELIGENCE IN STROJNEGA UČENJA V POSLOVNI PROCES NAPOVEDOVANJA PORABE ELEKTRIČNE ENERGIJE

Vili Podgorelec, Sašo Karakatič, Grega Vrbančič, Špela Pečnik, Iztok Fister ml., Lucija Brezočnik, Miro Rogina, Franci Klauzner

Podjetja dandanes vneto tekmujejo v zagotavljanju najboljših možnih storitev svojim strankam, pri čemer podjetja na trgu električne energije niso izjema. Glede na negotove razmere na področju zagotavljanja energetskih virov, v katerih se je znašel svet, vse večje potrebe po električni energiji in trend strme rasti cen energije je postala optimizacija poslovanja eno ključnih vprašanj celotnega sektorja. Ker umetna inteligenca (AI) in strojno učenje (ML) veljata za temeljni večnamenski tehnologiji ter za inovacijsko sredstvo z največjim potencialom preboja, si podjetja prizadevajo sprejeti te tehnologije in jih integrirati v svoje poslovne procese. Za konkretno preizkušanje možnosti uvedbe in uporabe metod AI in ML v svojem poslovnem procesu in informacijskih sistemih je podjetje Informatika informacijske storitve in inženiring d.o.o., osrednji partner v slovenskem elektroenergetskem prostoru, vzpostavilo in izvedlo pilotni projekt s Fakulteto za elektrotehniko, računalništvo in informatiko Univerze v Mariboru. Razvitih je bilo več modelov strojnega učenja za inteligentno analizo in napovedovanje porabe električne energije skupaj z nekaterimi podpornimi komponentami. Dobljeni rezultati kažejo, da lahko pravilna uporaba metod AI in ML omogoči podjetju zagotavljanje novih in naprednih storitev za svoje partnerje in različne vrste strank.

REŠEVANJE INDUSTRIJSKIH PROBLEMOV Z UPORABO RAČUNSKE INTELIGENCE: PRIMER AVTOMATSKEGA NAČRTOVANJA DELOVNEGA ČASA

Grega Vrbančič, Iztok Fister ml., Vili Podgorelec

Dostopnost velikih količin podatkov in relativno poceni in dostopne računske moči je v zadnjih nekaj letih pripomogla k enormnemu vzponu računske inteligence. Čeprav se mnoga podjetja in organizacije že dolga leta poslužujejo uporabe različnih tehnik matematične optimizacije, ki se najpogosteje uporabljajo za namen optimizacije poslovnih procesov, proizvodnih procesov, logistike in upravljanja distribucijskih omrežij, pa so novodobna gigantska podjetja kot so Uber, Netflix in Tesla vpeljala metode in tehnike računske inteligence tudi v bolj uporabniku usmerjene funkcionalnosti ter tako še dodatno povečale njihovo prepoznavnost. V industrijskih okoljih je tako sedaj, bolj kot kadarkoli, pomembno da je organizacija in izraba razpoložljivih virov kar se da učinkovita, saj lahko tako dosežejo pomembno konkurenčno prednost. Pri vpeljavi računske inteligence za reševanje industrijskih problemov pa se podjetja pogosto soočijo s številnimi izzivi, med katerimi pogosto izstopa predvsem zahtevna prilagoditev naprednih optimizacijskih algoritmov, predstavljenih v literaturi, na domensko specifični problem.

V prispevku bomo predstavili pristope, metode in tehnike, s katerimi lahko učinkovito naslavljamo najpogostejše industrijske probleme, obenem pa tudi opozorili na morebitne pasti, s katerimi se lahko soočimo pri vpeljavi ter podali smernice za njihovo naslovitev. V nadaljevanju bomo podrobneje predstavili primer uporabe optimizacijskih algoritmov, ki delujejo po vzorih iz narave, za reševanje problema avtomatske izdelave kompleksnih urnikov.

STROJNO UČENJE ZA BOLJŠE JAVNE STORITVE: ZGODNJA IDENTIFIKACIJA IZTOKOV IZ OMREŽJA PITNE VODE

Sašo Karakatič, Špela Pečnik, Grega Vrbančič, Rok Kukovec, Bojan Erker, Aleš Erker, Vili Podgorelec

Pitna voda je redek in dragocen vir, zato je ustrezno upravljanje tega vira bistveno za družbeni in gospodarski razvoj vsake države ali regije, saj je čista pitna voda uporabljena v vseh ključnih sektorjih gospodarstva, kot so kmetijstvo, industrija, energetika in promet. Pametne naprave so spremenile skoraj vse vidike našega življenja – in tudi pri upravljanju vodovodnega omrežja ni nič drugače. Moderni vodovodni sistemi so že opremljeni z napravami za sprotno beleženje pretokov skozi posamezne odseke vodovodnega omrežja. Prav tako so pogosti tudi sistemi, ki informacije o pretokih v obliki nadzornih sistemov prikazujejo v realnem času in s tem omogočajo spremljanje celotnega omrežja v vsakem trenutku. Še vedno pa za odkrivanje nepravilnosti v vodovodnem omrežju skrbijo bodisi človeški kontrolorji, ali pa primitivni sistemi na osnovi pravil. Pri človeških kontrolorjih je problem, da sta njihova čas in pozornost omejena. Prav tako pa je kontrolorja veščega identifikacije iztokov potrebno dodobra izobraziti. Obstoječi avtomatski sistemi pa so preveč primitivni, da bi zaznali kaj več kot nenadne ogromne iztoke – manjši iztoki, ki na dolgi rok naredijo veliko škode, pa ostanejo neodkriti. V tem članku je predstavljen sistem za zgodnje odkrivanje iztokov, ki temelji na tehnikah napredne analize podatkov in strojnem učenju. Sistem, ki bo opisan temelji na različnih tehnikah, kot so gručenje podobnih odsekov omrežnega sistema ter napoved pričakovane porabe vode določenega področja glede na letni čas in porabo v ostalih podobnih odsekih. Prvi rezultati kažejo, da je sistem zelo koristno orodje, ki kontrolorjem pomaga pri identifikaciji iztokov, ter te samodejno išče tudi v času, ko človeški kontrolorji niso na delovnem mestu.

UPRAVLJANJE VELEPODATKOV Z UPORABO ODPRTOKODNEGA ETL ORODJA APACHE NIFI

Martina Šestak, Jure Čačilo, Aida Kamišalić

Podjetja se pri sprejemanju poslovnih odločitev vse bolj zanašajo na inteligentne informacijske rešitve, ki temeljijo na kompleksnih odločitvenih modelih. Zagotovilo, da bodo podatki pravočasni, natančni, konsistentni, popolni itd. je osnova za oblikovanje uspešnih modelov odločanja. Za razvoj podjetja je torej kritično upoštevanje najboljših praks za vzpostavitev in ohranjanje kakovosti podatkov. Kakovost podatkov zagotavljamo s profiliranjem in nadzorovanjem vhodnih podatkov, skrbnim načrtovanjem vseh podatkovnih tokov, postavljanjem smernic za uveljavljanje celovitosti podatkov, spremljanjem celotnega toka podatkov itd. Eden izmed pomembnih načinov za spopadanje s slednjimi izzivi je uporaba orodij ETL, ki so postala ključna pri oblikovanju vsake kakovostne poslovno-inteligenčne rešitve. Uporaba orodij ETL prihrani podjetjem veliko virov, saj omogočajo avtomatiziran način zbiranja, transformacije in nalaganja podatkov. Takšna orodja prav tako ponujajo metode, s katerimi poenostavljajo kompleksne transformacije, ki se pogosto pojavljajo pri delu z velepodatki. Ker je pri upravljanju s podatki vedno vključen tudi človeški dejavnik, imajo orodja vgrajene mehanizme, ki usmerjajo razvijalca k uporabi pravilnih načrtovalskih vzorcev. Ena izmed takšnih rešitev je tudi odprtokodno ETL orodje Apache Nifi, ki se predstavlja kot enostaven, zmogljiv in zanesljiv sistem za obdelavo in distribucijo podatkov s spletnim uporabniškim vmesnikom in modelom, ki temelji na tokovnem programiranju (angl. flow-based programming). V prispevku bomo predstavili orodje Apache Nifi, njegovo arhitekturo, funkcionalnosti in ključne komponente. Nato se bomo osredotočili na predstavitev uporabe orodja na primeru zbiranja, transformacije in nalaganja podatkov za namene vzpostavitve podatkovnega skladišča. Uporabili bomo odprto dostopne podatke s področja kmetijstva, živilske industrije in ekologije. Zaključili bomo z analizo prednosti in slabosti orodja ter predstavili možna alternativna orodja.

13:00 – 14:10 KOSILO

14:10 VABLJENO PREDAVANJE

Marko Štefančič
TOP 10 DATA AND ANALYTICS TECHNOLOGY TRENDS

15:00 DELAVNICE

Boštjan Kežmah, Viktor Taneski, Marko Hölbl

OBRAMBA PRED NAJPOGOSTEJŠIMI SPLETNIMI ZLORABAMI IN KIBERNETSKIMI NAPADI V SLOVENIJI

Grega Vrbančič, Sašo Karakatič, Lucija Brezočnik, Vili Podgorelec

PYTHON IN STROJNO UČENJE V SODOBNIH INTELIGENTNIH REŠITVAH

Muhamed Turkanović, Martina Šestak

MOŽNOSTI UPORABE PLATFORME KAFKA V SODOBNIH INFORMACIJSKIH REŠITVAH