3. in 4. september 2025
MARIBOR
3. in 4. september 2025
MARIBOR
Vodja sekcije: Tina Beranič
Z razvojem umetne inteligence (angl. Artificial Intelligence, AI) in strojnega učenja (angl. Machine Learning, ML) v zadnjem desetletju postaja ključno vprašanje, kako zagotoviti zanesljivost in kakovost napovednih modelov. Kljub napredku na tem področju se mnogi AI projekti soočajo z visoko stopnjo neuspeha, predvsem zaradi pomanjkljivega testiranja in neustrezne integracije modelov v produkcijska okolja.
V tem kontekstu se razvija praksa MLOps, ki združuje metodologije DevOps s specifikami razvoja in vzdrževanja ML modelov, s ciljem izboljšanja avtomatizacije, nadzora kakovosti in zanesljivosti napovednih modelov. Ključna razlika med klasično programsko opremo in inteligentnimi sistemi, ki vključujejo napovedne modele je, da na delovanje slednjih močno vplivajo podatki, zaradi česar je pomembno tudi testiranje kakovosti vhodnih podatkov. Napačni ali nepopolni podatki lahko bistveno poslabšajo napovedno uspešnost ML modelov, zato so vzpostavljeni postopki preverjanja pravilnosti in skladnosti podatkov, vključno z validacijo temelječo na podlagi sheme podatkov kot tudi validacijo na podlagi primerjav z referenčno podatkovno zbirko. Poleg preverjanja kakovosti podatkov je ključno tudi spremljanje stabilnosti modelov skozi čas. Modeli so podvrženi spremembam v podatkih, ki lahko povzročijo degradacijo napovedne uspešnosti ML modela. V ta namen se uporabljajo napredne metode in pristopi, integracija teh v avtomatizirane cevovode pa omogoča hitro zaznavo in odzivanje na spremembe v podatkih ter zagotavlja robustnost modelov v produkcijskih sistemih.
V prispevku predstavljamo tudi primere dobre prakse, ki temeljijo na odprtokodnih rešitvah za preverjanje kakovosti ML modelov kot so Evidently, Great Expectations in MLFlow. S kombinacijo avtomatiziranih testov, sprotne validacije podatkov in sistematičnega spremljanja sprememb v porazdelitvah podatkov lahko dosežemo večjo zanesljivost in uspešnost napovednih modelov v realnih okoljih. S tem prispevkom želimo osvetliti pomen celostnega pristopa k zagotavljanju kakovosti modelov ter izpostaviti ključne izzive in rešitve pri vpeljavi MLOps praks.
Sodobne podatkovne arhitekture se vse bolj usmerjajo k agilnemu modelu ELT (Extract–Load–Transform), ki temelji na podatkovnih jezerih (data lakes) in podatkovnih koliščih (data lakehouses). Ključna prednost tega pristopa je uporaba odprtih tabelaričnih formatov, kot so Apache Iceberg, Hudi ali Delta Lake, ki temeljijo na odprtih datotečnih formatih, kot so AVRO, ORC in Parquet. Ključne lastnosti teh so ACID transakcije, evolucija sheme, potovanje skozi čas med poizvedovanjem, inkrementalno nalaganje podatkov, optimizacija shranjevanju in branju itn. Takšna arhitektura omogoča večjo fleksibilnost, boljšo razširljivost ter zmanjšuje kompleksnost pri obdelavi podatkov.
V prispevku se fokusiramo in predstavimo Tableflow – novo rešitev iz ekosistema Confluent, ki omogoča neposredno predstavitev podatkov v Kafka temah kot odprte tabele v formatu Iceberg ali Delta. S tem se podatki, pridobljeni iz OLTP virov že v fazi zajema in vnosa (ang. ingestion) pretvorijo v format, primeren za poizvedovanje in učinkovitejše shranjevanje surovih podatkov v podatkovno jezero/kolišče. Kafka v tem kontekstu ne služi le pretočni obdelovi (stream processing), temveč tudi kot mehanizem za zajem in vnos podatkov, skladen s sodobno velepodatkovno arhitekturo. To bistveno zmanjša izgubo konteksta in sheme, ki se pogosto pojavlja pri klasičnih prenosih med OLTP in analitičnimi sistemi.
V prispevku bomo predstavili uporabnost tabelaričnega toka z zmožnostjo neposrednega preslikovanja Kafka tem v podatkovna jezera, kar omogoča premik pretočnih podatkov iz operativnega sistema v podatkovno jezero, pri čemer se ohrani njihova uporabnost za analitiko in strojno učenje.
Poleg konceptualnega pregleda bomo prikazali tudi integracijo Tableflow z orodji/kolišči, kot sta Databricks in Snowflake, ter izvedli primerjalno analizo z obstoječimi pristopi poizvedovanja po tokovnih podatkih, kot sta Kafka Streams in ksqlDB. Izpostavili bomo, kdaj in kdaj in zakaj pristop z uporabo tabelaričnih tokov predstavlja boljšo alternativo.
Razširjen povzetek: Inteligentni agenti so napredni programski sistemi, zasnovani za delovanje v kompleksnem okolju (npr. simulacijsko industrijsko okolje), kjer neprestano zaznavajo dogajanje, sprejemajo samostojne odločitve in izvajajo ustrezne akcije glede na zastavljene cilje. Njihova vloga v različnih simulacijskih okoljih je postala ključna za preizkušanje različnih scenarijev, še posebej na področju kibernetske varnosti, kjer so grožnje nepredvidljive in se hitro prilagajajo. Z uporabo takšnih agentov je mogoče preučevati in prilagajati obrambne ukrepe v nadzorovanem in varnem okolju, ne da bi ogrozili dejanske informacijske sisteme. Zmožnost prilagajanja je še posebej pomembna, saj lahko na podlagi zaznanih podatkov in rezultatov lastnega delovanja izboljšujejo svoje prihodnje odzive, kar omogoča učinkovitejše modeliranje napadov in obrambnih strategij. Veliki jezikovni modeli, ki temeljijo na nevronskih mrežah (te so del strojnega učenja, ki spada pod računsko inteligenco), pomembno prispevajo k zmogljivosti in naprednemu delovanju inteligentnih agentov. Ti modeli predstavljajo enega najpomembnejših prebojev na področju umetne inteligence, saj omogočajo razumevanje in tvorbo naravnega jezika na ravni, ki se približuje človeški komunikaciji, kar inteligentnim agentom omogoča bolj naravno in učinkovito interakcijo z uporabniki. Sodobni veliki jezikovni modeli niso več omejeni le na učenje iz besedil, temveč vse pogosteje vključujejo tudi slike, videe in druge vrste podatkov. S tem razvijajo sposobnost zaznavanja konteksta, prepoznavanja pomenskih, stilskih in vizualnih značilnosti ter tvorbe koherentnih in smiselnih vsebin, kar jih uvršča med ključne gradnike naprednih, multimodalnih inteligentnih sistemov. V kontekstu inteligentnih agentov, veliki jezikovni modeli omogočajo generiranje realističnih sporočil, kar je ključno za simulacijo raznolikih napadov, kot je spletno ribarjenje, obenem pa tudi za zaznavanje tovrstnih napadov na podlagi analize besedilnih značilnosti komunikacije. Področje kibernetske varnosti se vsakodnevno sooča z vedno bolj sofisticiranimi grožnjami, med katerimi je spletno ribarjenje še vedno izjemno razširjeno in učinkovito. Takšni napadi temeljijo na socialnem inženiringu, kjer se manipulira uporabnika z namenom, da ta razkrije občutljive informacije, npr. prijavne podatke, številke bančnih kartic ali dostop do internih sistemov. Sporočila, uporabljena v teh napadih, so pogosto zelo verodostojna in izkoriščajo psihološke trike, kot so nujnost, avtoriteta ali radovednost. Kljub številnim zaščitnim ukrepom ostaja človeški dejavnik najšibkejši člen v verigi kibernetske varnosti, zato je ključnega pomena razvoj simulacijskih orodij, kjer lahko preučujemo interakcije med napadalci in branilci ter prepoznamo vzorce vedenja, ki vodijo do uspešnih napadov. V tem članku bomo z uporabo inteligentnih agentov, podprtih z velikimi jezikovnimi modeli, razvili simulacijski sistem, v katerem bo en ali več agentov delovalo kot napadalec, ki bodo tvoril prepričljiva prevarantska spletna sporočila in poskušali pridobiti občutljive informacije, medtem ko bodo drugi agenti prevzeli vlogo obrambnega mehanizma, ki bo analiziral prejeta sporočila, iskal znake prevare in se poskušal učinkovito odzvati. Takšna interakcija omogoča realistično simulacijo in hkrati služi kot učni primer za nadaljnjo izgradnjo varnostnih rešitev. S pričakovanimi rezultati raziskave želimo prispevati k razumevanju učinkovitosti različnih obrambnih strategij, izboljšati algoritme za samodejno prepoznavanje prevar in s tem okrepiti pripravljenost na dejanske kibernetske napade. Rezultati bodo uporabni tako v raziskovalne kot tudi v izobraževalne namene (npr. Izvedba delavnic), saj bodo omogočili boljše razumevanje narave napadov s spletnim ribarjenjem in učinkovite obrambe pred njimi.
Vodja sekcije: Dean Korošec
Sistemi za nadzor različic so temelj učinkovitega razvoja programske opreme. Omogočajo sledljivost sprememb, sodelovanje v ekipah in vzdrževanje kakovosti kode skozi celoten življenjski cikel projekta. Subversion (SVN) je bil dolga leta široko uporabljen, a ga v zadnjem desetletju vse bolj nadomešča Git, ki bolje ustreza sodobnim potrebam razvoja. Kot distribuiran sistem omogoča Git naprednejše upravljanje zgodovine, s prilagodljivostjo podpira kompleksne delovne tokove in zaradi razširjenosti v industriji omogoča boljšo integracijo z orodji sodobnega DevOps ekosistema.
Kljub temu, da je Git že dlje časa vodilno orodje za upravljanje različic programske kode, razvojne ekipe tudi danes pogosto vzdržujejo starejše projekte, pri katerih se še vedno uporablja SVN in selitev na Git predstavlja tveganje za stabilnost obstoječega delovnega procesa. V našem podjetju Git uporabljamo kot privzeto orodje za verzioniranje kode novejših projektov, hkrati pa vzdržujemo in aktivno nadgrajujemo starejše sisteme, pri katerih se je do sedaj uporabljal SVN. Zaradi kritičnega pomena teh sistemov in potrebe po stabilnem delovnem toku je bila selitev na Git zahteven, a pomemben korak pri modernizaciji razvojnega procesa.
V prispevku predstavljamo razloge za migracijo takšnih projektov iz SVN na Git ter poudarimo pomembnost izbire ustrezne točke v življenjskem ciklu projekta za uspešno izvedbo migracije. Prikazujemo pristop k izvedbi selitve v realnem okolju z ohranjanjem večletne zgodovine iz SVN-ja, ki vsebuje pomembne informacije o evoluciji projekta. Opišemo prehod na nove razvojne tokove ter posodobitev povezanih procesov, kot so CI/CD in pregledi kode.
Med selitvijo iz SVN na Git smo se soočali z izzivi prenosa zgodovine iz kompleksnih SVN repozitorijev, kjer standardna orodja pogosto odpovedo ali zahtevajo ročne posege za ohranjanje pravilnega poteka revizij in združevanja vej v repozitoriju. Namesto da bi se zanašali izključno na avtomatske rešitve, smo uporabili prilagojeno strategijo prenosa, ki poleg avtomatizirane ekstrakcije zgodovine vključuje skripte za čiščenje metapodatkov in rekonstrukcijo logične strukture repozitorija v Gitu.
Prav tako opisujemo vzpostavitev novega delovnega toka in način uporabe vej, pri čemer izpostavimo prilagodljivost Gita, ki omogoča oblikovanje razvojnih procesov glede na specifične potrebe projekta. Pri prehodu iz SVN-ja na Git je ključno razumeti razlike v arhitekturi in delovanju obeh sistemov. Ustvarjanje novih vej je denimo v Gitu zelo učinkovito, kar vpliva na priporočene prakse uporabe. Razlike v delovanju v splošnem pomenijo, da pri delu z Gitom ne smemo razmišljati enako kot pri SVN-ju, če želimo v celoti izkoristiti možnosti, ki jih Git ponuja.
Prispevek zaključujemo s prikazom primerjalnih prednosti dela z Gitom na praktičnem primeru, kjer smo lahko v Gitu enostavneje rešili kompleksnejši problem delovnega procesa, kot če bi še vedno uporabljali SVN. Poudarimo, da migracija ni enkraten dogodek, temveč začetek uvajanja naprednejših razvojnih praks. Git s svojo prilagodljivostjo omogoča stalno izboljševanje delovnega toka in sledenje sodobnim razvojnim pristopom, ki se skupaj s tehnologijami nenehno spreminjajo. Prispevek tako ne le izpostavlja koristi prehoda, temveč ponuja tudi praktičen okvir za ekipe, ki načrtujejo posodobitev svojih orodij za nadzor različic.
Na OTS konferenci bomo predstavili sodobno low-code rešitev, ki je podjetju omogočila hitro, prilagodljivo in stroškovno učinkovito izgradnjo lastne ERP aplikacije. Gre za odgovor na dolgoletne izzive tradicionalnih ERP sistemov, ki pogosto zahtevajo dolgotrajne implementacije, visoke stroške vzdrževanja in omejene možnosti prilagajanja. Že ob ustanovitvi podjetja smo se srečali z dilemo kakšne tehnologije izbrati za razvoj ERP aplikacije. Za temelj vsega smo se odločili za programski jezik Java, ker smo ga tudi najbolj poznali. Seveda smo potem potrebovali še bazo podatkov (IBM DB2) in nekakšno ogrodje za razvoj vnosnih mask, form. Pregledali smo več rešitev in se na koncu odločili za razvoj lastne low-code platforme za razvoj mask, form. Z uporabo lastne low-code platforme smo razvili rešitev, ki omogoča enostavno konfiguracijo poslovnih procesov, brez obsežnega programiranja, s čimer smo znatno skrajšali čas razvoja in izboljšali sodelovanje med IT-jem in poslovnimi oddelki. Kot osnovo za razvoj low-code platforme smo uporabili jezik SQL, ker je zelo izrazno bogat in lahek za učenje. V sklopu razvoja smo razvili tudi potrebna orodja za oblikovanje vnosnih mask; pripravo akcij, ki jih maska proži ter orodje delo z bazo podatkov. Na koncu smo potrebovali še strežniško okolje na katerem rešitev teče in rešitev na strani klienta, ki te vnosne maske prikazuje. Strežniško okolje temelji na operacijskem sistemu Linux, Javi 11 in aplikacijskem strežniku Payara. Za izris vnosnih mask smo uporabili SmartGWT.
Odločitev za low-code pristop je bila sprejeta po analizi obstoječih rešitev, ki niso zadostile potrebam po fleksibilnosti, hitrosti implementacije in možnosti sprotnega prilagajanja procesom. Tradicionalne rešitve so pogosto terjale drage nadgradnje ali popolne prilagoditve s pomočjo zunanjih izvajalcev. Lastna low-code platforma pa nam je omogočila, da ključne funkcionalnosti razvijemo sami, znotraj podjetja, in jih po potrebi hitro prilagodimo.
V članku bomo predstavili tudi poglede in izkušnje uporabnikov. Načeloma ti poročajo o številnih prednostih pred tradicionalnih programskih okoljih: hitrejše učenje, hitrejši popravki, hitrejši razvoj, enostavnejše upravljanje z nalogami, hitrejši odziv na spremembe v procesih ter zmanjšano število napak pri vnosu podatkov. Zaradi intuitivnega vmesnika je usposabljanje uporabnikov enostavnejše, medtem ko oddelek za podporo strankam poroča o precej nižji obremenjenosti pri podpori uporabnikom.
Članek sklene misel, da low-code pristopi niso več rezervirani le za manjše aplikacije, temveč postajajo ključno orodje tudi pri razvoju kompleksnih poslovnih sistemov, kot so ERP rešitve. V prihodnosti pričakujemo še večje razširjanje teh platform, saj omogočajo hitro prilagodljivost, zmanjšujejo IT odvisnost in neposredno vključujejo končne uporabnike v proces razvoja aplikacij. Z razmahom umetne inteligence pa načrtujemo tudi njeno vpeljavo v sam razvoj mask oz. form.
V predavanju bo predstavljena praktična rešitev za dinamično upravljanje Node.js mikroservisa, ki teče znotraj Docker kontejnerja, brez potrebe po ponovnem grajenju in posodabljanju slike ob vsaki vsebinski spremembi. Sistem temelji na treh ključnih tehnologijah: Node.js, PM2 in Docker, združenih v robustno, preprosto in razširljivo arhitekturo, primerno za produkcijsko uporabo.
Mikroservisna aplikacija je napisana v Node.js in nameščena v Docker kontejner, ki ima zunanji direktorij (volume) montiran kot del datotečnega sistema znotraj kontejnerja. Ta direktorij služi kot vhodna točka za ZIP paket, ki vsebuje novo vsebino v obliki .mjs (JavaScript module) datotek, najpogosteje konfiguracijo ali funkcionalne module v JSON formatu.
Za nadzor znotraj kontejnerja je uporabljen PM2, uveljavljen Node.js procesni upravljalnik, ki omogoča stabilno produkcijsko izvajanje aplikacij. Posebnost te rešitve je v tem, da Docker kontejner ostane nespremenjen, saj se nadgradnje izvajajo zgolj na nivoju podatkov oz. vsebine, ki se nahaja v ZIP paketu. Prav tako se lahko na ta način – če je sistem pravilno modulariziran – nadgradi tudi sama aplikacija brez menjave kontejnerske slike. V praksi to pomeni hiter in varen produkcijski deploy z minimalnim izpadom storitev.
Predavanje bo predstavilo tudi konkretne tehnične izzive, kot so:
Rešitev je zasnovana z mislijo na stabilnost, enostavno posodabljanje in dolgoročno vzdrževanje, hkrati pa omogoča hitro vključevanje novih vsebin brez motenj v produkciji. Namenjena je vsem, ki želijo poenostaviti upravljanje mikroservisov in zmanjšati kompleksnost deploy procesov.
Omrežje MNZ/Policije sodi med večja »privatna« omrežja v državi. Upravlja ga Urad za informatiko in telekomunikacije na Generalni policijski upravi. Omrežje se glede na razpoložljive vire vsakodnevno prilagaja najrazličnejšim potrebam različnih služb policije in aktualnim tehnologijam. Pri ključnih odločitvah, je izredno pomembna tudi dolgoročna finančna vzdržnost, ki v nobenem pogledu ne sme vplivati na nivo varnosti, zanesljivosti in robustnosti celotnega sistema – saj mora omrežje delovati nemoteno tudi v primeru različnih» izrednih« razmer. Pri pripravi rešitev so vodilo različni dejavniki – realne potrebe končnih uporabnikov, razmere na trgu telekomunikacijski storitev, optimizacija razpoložljivih finančnih sredstev, zagotavljanje varnega in zanesljivega delovanja, možnost hitrega prilagajanja spremembam, …
Na predavanju bo predstavljen kratek pregled zgodovine razvoja govornega omrežja MNZ/policije s fokusom na izvedenih aktivnostih v zadnjih letih. Glede na nove tehnološke priložnosti, so bile izvedene različne aktivnosti v smislu spremenjene arhitekture, spremenjenem konceptu registrofonskega / snemalnega sistema, kjer je potrebno in mogoče in smiselno uporabljeni virtualizaciji, lastnem razvoju klicnih centrov za sprejem klicev na interventno številko policije 113 oziroma enotno evropsko številko za prijavo pogrešanih otrok 116000. Pri vpeljavi sprememb je bilo v veliko pomoč dobro poznavanje in obvladovanje možnosti, ki jih ponujajo posamezni gradniki – pa tudi dejstvo, da danes večina sodobnih IKT rešitev, temelji na uporabi IP protokola ter »standardne« strojne opreme, katere funkcionalnost je odvisna od programske opreme (za razliko od preteklih desetletij, ko so bile tovrstne rešitve zasnovane pogosto na dražji in namenski strojni opremi).
V veliko pomoč so bili pri razvoju lastnih rešitev, tudi različni »projekti« s področja prosto dostopnih odprtokodnih rešitev oziroma orodij za potreben (do)razvoj. Na tem mestu izpostavljamo le eno od njih – Asterisk (https://www.asterisk.org/). Gre za odprtokodno ogrodje, ki je namenjeno gradnji komunikacijskih aplikacij. S pomočjo Asteriska lahko običajni računalnik spremenimo v zmogljiv govorni strežnik, ki mu lahko dodamo tudi druge storitve (npr. funkcionalnosti klicnega centra.
Zgrajen sistem omogoča hitro prilagajanje potrebam specifičnim službam policije (npr. Specialna enota policije) na področju države oziroma podpori enotam v tujini (npr. Center za policijsko sodelovanje). Dobro poznavanje omrežja in opreme , je omogočil tudi hiter odziv v času epidemije povezane s COVID-19, ko so bile brez kakršnihkoli dodatnih finančnih sredstev s pomočjo prerazporeditve obstoječe opreme, praktično čez noč zagotovljene nujno potrebne storitve glede na nove okoliščine (npr. konferenčni strežniki, oddaljen storitveni center / HelpDesk).
Brez dvoma se sama po sebi zastavljajo določena vprašanja, kot na primer – Kako je to mogoče ob vsesplošnem pomanjkanju ustreznih kadrov ? Na kakšen način so bili izvedeni posegi ? Kdo je zagotovil potrebno podporo projektu oziroma posameznim fazam ? Ali so bile tehnološke spremembe upravičene v finančnem smislu (investicija, mesečni stroški) ? Ali tehnološke spremembe ne pomenijo višje stopnje tveganja v smislu robustnosti oziroma zanesljivosti delovanja? Kaj vsi posegi pomenijo v smislu dolgoročnega vzdrževanja sistema ? Kakšne so koristi za končnega uporabnika ? Nenazadnje – kakšno tveganje pomeni uporaba odprtokodne rešitve v smislu dolgoročne podpore ….
Vodja sekcije: Bojan Štok
V članku predstavljamo modularen in razširljiv sistem podatkovnega jezera (data lake), ki temelji na učinkovitih obdelavah velikih količin surovih podatkov z uporabo vgrajenega (in-process) relacijskega pogona DuckDB ter objektne hrambe Parquet datotek na S3 ali podobnih rešitvah. Motivacija za razvoj sistema izhaja iz naraščajoče potrebe organizacij po enotnem in stroškovno učinkovitem skladišču podatkov, ki omogoča takojšen dostop in obdelavo brez zapletenih centraliziranih baz. Naš cilj je zagotoviti arhitekturo, kjer se surovi podatki uporabnikov transformirajo v kolonarno obliko Parquet in shranijo na cenovno ugodnem S3, nato pa se poizvedbe izvajajo neposredno na teh datotekah znotraj mikroservisov.
Naš pristop zajema tri osnovne faze: (1) pridobivanje surovih podatkov iz heterogenih virov, (2) pretvorbo teh podatkov v kolonarno obliko Parquet ter njihovo shranjevanje na cenovno ugodni objektni strežnik S3, in (3) dinamično izvajanje poizvedb neposredno na Parquet datotekah znotraj servisov, kjer DuckDB deluje kot vgrajen SQL pogon.
Ključni prispevek našega pristopa je neposredna integracija rezultatov poizvedb v aplikacijo za poslovno analitiko in vizualizacijo, razvito pri nas. Poizvedbe lahko uporabniki sprožijo iz vmesnika BI-orodja, REST-API-ja ali najrazličnejših dashboardov, pri čemer DuckDB deluje kot vmesnik med surovimi viri in vizualnimi komponentami. To pomeni, da so analitični rezultati na voljo skoraj v realnem času, brez potrebe po vzdrževanju klasičnih relacijskih baz. Obenem arhitektura podpira horizontalno razširljivost: več instanc DuckDB lahko hkratno obdeluje različne segmente podatkov, kar omogoča linearno povečanje zmogljivosti glede na potrebe.
V evalvaciji sistema prikazujemo njegovo uporabnost na praktičnih primerih. Uporabniški primeri kažejo, da lahko aplikacija za vizualizacijo skozi našo arhitekturo nudi hitro odzivnost poizvedb za tabele z več milijoni zapisov, kar omogoča tekoče raziskovanje podatkov (data exploration) in hitro sprejemanje odločitev.
Glavni prispevki tega dela so:
Predlagani sistem je univerzalen in se lahko prilagodi različnim področjem, od spletne analitike do IoT in telemetrije, ter ponuja organizacijam hiter prehod k modernim oblačnim arhitekturam podatkovnih jezer.
V zadnjem desetletju smo priča izjemnemu razvoju tehnologij interneta stvari (Internet of Things – IoT). Uporaba IoT naprav in pametnih števcev je v celotnem energetskem sektorju (in širše) povzročila ekspanzijo podatkov, ki se jih lahko pridobiva v skoraj realnem času iz različnih merilnih naprav, ki so na voljo in so instalirani neposredno pri končnih odjemalcih in/ali na samem omrežju oziroma v našem primeru na distribucijskem energetskem omrežju DO, ki je v upravljanju na Elektro Ljubljana.
Infrastrukture za zbiranje, prenos, shranjevanje in obdelavo ogromnih količin podatkov se spreminja z uvedbo novih tehnologij na področju vele podatkov in sledi tehnološkim trendov. Na Elektro Ljubljana smo zaradi omejitve resursov pri uporabi relacijskih bazah (RDBMS) in uporabo ETL (Extract Transform Load) procesov naprej v verigi procesov, ki sledijo in zagotavljajo učinkovito upravljanje in obdelava podatkov ter v želji, da preskusimo nove tehnologije, ki se pojavljajo na trgu začeli z uporabo podatkovnih zbirk časovnih vrst. Sistem za upravljanje in obdelavo podatkovnih zbirk časovnih vrst je načrtovan, tako da je enostaven, hiter in odziven ter da ne predstavlja dodatna obremenitev v sodobni arhitekturi IT rešitve. Zelo pomembna funkcionalnost sistema je njegova integracija z ostalimi storitvami in IT rezatvah, ki že živijo v naši ITK arhitekturi. Naprej smo primerjali različne odprtokodne podatkovne zbirke časovnih vrst (TimeScaleDB, ClickHouse, …) in primerjali njihove lastnosti.
V tem članku bomo predstavili naše izkušnje pri zbiranju, prenosu, shranjevanju in obdelavi ogromnih količin podatkov iz merilnih naprav v našem omrežju. S pomočjo primerjalnih testiranj smo pokazali, da je ClickHouse ena najhitrejših analitičnih baz podatkov na trgu, pri čemer se je v realnih primerih uporabe skozi leta pokazalo znatno izboljšanje zmogljivosti pri izvajanju tipičnih poizvedb.
Prispevek prikazuje izkušnje in dobre prakse poslovno inteligenčnega sistema Skrinja za namene podpore odločanju na primeru upravnih postopkov Upravnih enot v Sloveniji. Sistem Skrinja je horizontalna platforma, ki vključuje podatkovno skladišče s poslovno inteligenčnim sistemom z namenom omogočanja informacij v realnem času za potrebe odločanja in vpogleda v stanje na tem področju v državi. Poslovno inteligenčni sistem je v produkciji od leta 2020 in zajema: plačah v javnem sektorju (preko 180.000 javnih uslužbencev, 2000 proračunskih uporabnikov, 750 različnih tipov plačil), javna naročila v javnem sektorju (več kot 11% BDP) ter podatke o upravnih postopkih upravnih enot (iz dokumentnega sistema Krpan, več kot 1mio letno).
Podatkovni vir Upravni postopki je v uporabi novembra 2024, ima več kot 250 uporabnikov, vodstvo Ministrstva za javno upravo (MJU), Službo za upravne enote MJU, načelnike UE in vodje notranjih organizacijskih enot. Vodstvo MJU je dalo pomembno podporo pri razvoju in vpeljavi tega vira s ciljem povečanja transparentnosti in pridobitve vpogleda v stanje postopkov izvedbi upravnih enot v državi v realnem času. Na ta način pridobivajo vpogled v tekoče podatke na terenu, kjer se podatki dnevno osvežujejo iz dokumentnega sistema Krpan v sistem Skrinja. V procesu uvedbe Upravnih postopkov v Skrinjo je šlo za večmesečno partnersko vzajemno sodelovanje vseh deležnikov, tako vsebinskih nosilcev znotraj MJU in upravnih enot, tako do ekipe KRPAN na strani dokumentnega sistema (z zunanjimi izvajalci) ter ekipe Skrinja (skupaj z zunanjimi izvajalci). Skupaj se je v procesu pridobivanja uporabniških zahtev in poslovnih pravil vzpostavila in implementirala tako metodologija kot tehnična rešitev v podatkovnem skladišču in poslovno inteligenčnem sistemu. V dokumentnem sistemu KRPAN so shranjeni podatki o upravnih postopkih, ki jih vodijo upravne enote. KRPAN je sodobna, enotna, napredna in modularna rešitev za upravljanje z dokumentarnim gradivom v javni upravi. Omogoča varno in učinkovito delo, je prilagodljiv potrebam javnih uslužbencev ter nameščen na centralno infrastrukturo MJU. Podpira številne procese in se zlahka povezuje z drugimi sistemi.
Poslovno inteligenčni sistem Skrinja svojim uporabnikom (MJU in upravnim enotam) na enem mestu nudi vpogled v sveže podatke upravnih enot v realnem času, ki jih lahko uporabijo za različne potrebe ter pripravo različnih statistik, analiz in poročil za svoje deležnike. Na ta način se je izjemno povečala transparentnost ter poenostavil, avtomatiziral in optimiziral proces poročanja in obdelave podatkov 58 upravnih enot, ki je prej potekal na ne avtomatiziran in zamuden način. Obenem se je zmanjšala obremenitev zaposlenih z rutinskim poročanjem ter omogočil takojšen dostop do podatkov ter hitra analitična obdelava le-teh.
Podatkovni prostori (angl. data spaces) uvajajo sodoben, decentraliziran pristop upravljanja in nadzorovanega izmenjavanja podatkov med več neodvisnimi deležniki. Njihov glavni cilj je zagotoviti visoko stopnjo interoperabilnosti ob hkratnem ohranjanju fleksibilnosti, transparentnosti in nadzora nad podatkovnimi viri in tokovi. Med drugim podatkovni prostori odpravljajo številne pomanjkljivosti, kot so zadržki pri izmenjavi podatkov med organizacijami, podjetji in, potencialno, tudi posamezniki, s katerimi se srečujemo pri obstoječih metodah izmenjave podatkov.
V prispevku podrobno predstavimo arhitekturo decentraliziranih podatkovnih prostorov, opišemo ključne komponente in postopke, ki omogočajo učinkovito sodelovanje med heterogenimi sistemi ter odgovarjajo na vprašanja, kot so: kako poiskati podatke, kako jih varno deliti in kako nadzirati njihovo uporabo.
Predstavili bomo konkretno implementacijo povezovalnikov podatkovnih prostorov, temelječih na EDSC, in standardih podatkovnih prostorov IDSA. Ti omogočajo celovito vzpostavitev in delovanje decentraliziranega ekosistema. Poleg tega bomo predstavili tehnične podrobnosti razvoja in delovanja lastne rešitve povezovalnika podatkovnih prostorov, imenovanega DSX Engine. DSX Engine velja za decentraliziran povezovalnik, ki temelji na odprtokodnem ogrodju EDC, dopolnjen z lastnimi razširitvami, ki omogočajo popolno decentralizacijo. Podrobneje bomo obravnavali zasnovane in razvite razširitve, ki podpirajo izvirne funkcionalnosti, kot je tokenizacija procesov podatkovnega prostora na podlagi pametnih pogodb in ustreznih kriptografskih žetonov. V prispevku predstavimo tudi DSX Engine v praksi in sicer na osnovi delujočega podatkovnega prostora DIH AGRIFOOD Data Space (DADS).
Rezultati našega raziskovanja prispevajo k boljšemu razumevanju koncepta decentraliziranih podatkovnih prostorov ter ponujajo smernice za nadaljnji razvoj in implementacijo takšnih rešitev v različnih panogah.
V predavanju bo predstavljen koncept uporabe specializiranih varnostnih modulov in rešitev za občutno izboljšanje varnosti komunikacije v jedru telekomunikacijskega sistema. Zaradi kompleksnosti in visokih stroškov kloniranja ali kompromitiranja teh rešitev se bistveno zmanjšajo tveganja, povezana z nepooblaščenim dostopom. Napadalci, ki imajo zgolj programski (SW) dostop, in celo močnejši napadalci s fizičnim (HW) dostopom, so zaradi uporabe teh modulov omejeni pri svojih možnostih. Če ne morejo klonirati podatkov, so jim na voljo samo bolj drastični napadi, kot so fizična kraja. S tem bi onemogočili avtentikacijo in osnovno delovanje, kar lahko administrator hitro zazna, ukrepa in omeji vpliva napada.
V uvodnem delu bodo predstavljene osnove komunikacije in postopki avtentikacije uporabnikov telekomunikacijskega omrežja z jedrom sistema. Opisane bodo uporabljene šifrirne metode, ključni principi varnosti, kot so zaščita integritete in zagotavljanje tajnosti podatkov, ter specifični komunikacijski kanali v 5G, ki jih zaščitimo s šifriranjem. Prav tako bodo pojasnjeni različni protokoli in metode, namenjeni vzpostavljanju varnih povezav ter zagotavljanju zaupanja vredne komunikacije znotraj 5G jedra. Avtentikacija v 5G sistemu je zaradi uporabe naprednejših protokolov, medsebojne avtentikacije in večstopenjskega preverjanja identitete bistveno bolj robustna in varna v primerjavi z 4G sistemi, kar znatno zmanjša tveganje kraje identitete in drugih varnostnih incidentov.
Sledila bo obširna analiza večplastnega varnostnega modela, ki vključuje uporabo rešitev, kot so HSM (Hardware Security Module), TPM (Trusted Platform Module), ter programske rešitve, na primer Hashicorp Vault. Razloženo bo, kdaj je smiselna uporaba posamezne rešitve, kakšne so njihove prednosti in slabosti ter kako jih učinkovito vključiti v varnostno arhitekturo.
Poudarili bomo tudi ključne pristope za odzivanje na različne scenarije napadov ter ukrepe za zmanjšanje škode ob uspešni infiltraciji. Na primeru registracije in avtentikacije uporabnika v 5G omrežju bomo pojasnili razliko v varnostnih zmogljivostih med dvema ravnema varnostnih rešitev:
Predavanje bomo zaključili s pregledom trenutnih varnostnih praks, naših pristopov ter načrtov za nadaljnji razvoj in izboljšave varnosti v našem 5G sistemu.
V sodobnem digitalnem okolju organizacije letno investirajo tisoče, deset- ali celo sto-tisoče evrov v krepitev svojih kibernetsko-varnostnih zmogljivosti, z namenom zaščite pred oddaljenimi, pogosto anonimnimi napadalci. Sredstva vlagajo v razvoj in implementacijo najsodobnejših tehnologij ter orodij, ki predstavljajo vrh trenutnih trendov na trgu (npr. EDR, XDR, IDS, IPS, SIEM), pri čemer je poudarek na spremljanju in zaznavanju varnostnih incidentov. Ob tem zaposlujejo specializirano osebje, ki 24 ur na dan nadzoruje omrežni promet ter sistemske aktivnosti, analizira varnostna obvestila in alarme ter obravnava tudi najmanjša odstopanja od pričakovanega vedenja v informacijskem okolju.
Vendar pa se ob tem zastavlja pomembno vprašanje: koliko pozornosti je pri tem namenjeno fizični varnosti organizacij? Koliko sredstev in pozornosti se namenja varovanju fizične infrastrukture, zaščiti poslovnih prostorov ter ozaveščanju in usposabljanju zaposlenih za primere fizičnih vdorov? Ali so poslovni prostori ustrezno zaščiteni pred vstopom nepooblaščenih oseb in kako zanesljivo je preprečen dostop do najbolj občutljivih območij, kot so strežniške sobe, sejne dvorane in pisarne vodilnih kadrov?
V prispevku bomo omenili že uveljavljene koncepte barvne tipologije varnostnih ekip: Blue Team (obramba), Red Team (ofenziva) ter Purple Team (koordinacija in sodelovanje med obrambno in napadalno ekipo), osredotočili pa se bomo predvsem na ne tako prepoznavno a vseeno ključno entiteto – t. i. Black Team, ki izvaja fizično penetracijsko testiranje. Za razliko od Rdeče ekipe, ki za doseganje kibernetskih varnostnih ciljev uporablja elemente fizične varnosti, je fokus Črne ekipe iskanje ranljivosti v fizični infrastrukturi, pri čemer pa uporabljajo kot podporni element izkoriščanje kibernetskih varnostnih pomanjkljivosti.
Nadaljevali bomo s predstavitvijo primerov fizičnih napadov, ki vključujejo vektorje informacijske varnosti ter opozorili na ključne točke, na katere morajo biti organizacije še posebej pozorne.
V zaključnem delu prispevka bomo obravnavali ustrezen pristop k oceni fizične varnosti: ali je organizacija zrela za izvajanje fizičnega penetracijskega testa ali pa bi moral prvi korak obsegati izvedbo fizične varnostne revizije, odpravo identificiranih pomanjkljivosti ter šele nato validacijo zaščitnih ukrepov s simuliranim fizičnim napadom.
S člankom želimo dvigniti ozaveščenost o pogosto zapostavljenem vidiku varnosti, katerega ranljivosti lahko v sodobnem digitalnem okolju povzročijo enako hude posledice kot sofisticirani kibernetski napadi.
Prizadevanje za vzpostavitev evropskega okvira za digitalno identiteto je leta 2024 doprineslo do pomembnega koraka naprej, saj je 20. maja 2024 začela veljati novela EU uredbe št. 910/2014 za e-identifikacijo in storitve zaupanja, ki jo poznamo tudi kot Uredba eIDAS 2.0. Ta vzpostavlja pravno podlago za uvedbo evropske denarnice za digitalno identiteto po vsej EU. Z denarnico bodo uporabniki lahko tudi varno pridobili, shranili in delili svoje pomembne dokumente, npr. o izobrazbi in licencah, pooblastila za zastopanje pravnih oseb, finančne podatke in podatke o družbah, ter elektronsko podpisovali oz. v primeru denarnic za podjetja elektronsko žigosali dokumente.
Da bi dosegli interoperabilnost med denarnicami, izdanimi s strani držav članic, so v izvedbenih aktih k Uredbi eIDAS 2.0 določeni standardi za evropsko denarnico, ki jih morajo upoštevati vse implementacije denarnic po državah, pravila za certificiranje denarnic in sporočanje Evropski komisiji. Skupne visokonivojske zahteve za denarnico se pripravljajo v okviru Arhitekturnega in referenčnega okvirja (ARF), poleg tega pa Evropska komisija pripravlja tudi referenčno implementacijo denarnice za podporo implementacijam denarnic po državah članicah. Največ težav pri zagotavljanju interoperabilnosti med implementacijami trenutno povzroča pomanjkanje standardov na nekaterih področjih, ki so ključni za uspešno delovanje celotnega ekosistema evropskih denarnic, tako nacionalno kot tudi čezmejno.
Za uspešno delovanje ekosistema denarnic je pomembna tudi vključenost izdajateljev dokumentov (potrdil o atributih) in seveda uporaba denarnic s strani ponudnikov storitev, ki se zanašajo na podatke in dokumente iz denarnic. Tudi zanje veljajo zahteve iz Uredbe eIDAS 2.0, izvedbenih aktov in skupnih zahtev ARF.
V prispevku bodo zato podrobneje predstavljene nekatere visokonivojske zahteve ARF, ki se nanašajo na področje zasebnosti, še posebej uporaba metod ničelno spoznavnih dokazov (angl. Zero knowledge Proof) v ekosistemu denarnic za zagotavljanje zasebnosti ter tudi izdaja in ponovna izdaja potrdil o atributih.
Samo z upoštevanjem skupnih zahtev, standardov in specifikacij bo zagotovljeno enotno in skladno izvajanje ekosistema denarnic ter njihova interoperabilnost na ravni EU do 24. decembra 2026, ko naj bi države članice vzpostavile svoje nacionalne denarnice.
Družabno srečanje s koncertom skupine Leonart
Klub Fenix (Maribox, Loška ulica 13, Maribor, dvigalo – nivo L)
V današnjem času umetne inteligence in podatkovno vodenih odločitev ni več vprašanje ali, temveč kako hitro lahko razvijalci vklopimo napredne funkcionalnosti v naše aplikacije. Python je nesporni kralj podatkovne znanosti in umetne inteligence – vendar mnogi razvijalci še vedno ustvarjamo poslovne aplikacije v C# in .NET. Na predavanju bom prikazal pristop, ki omogoča:
Prispevek je smiselno nadaljevanje mojih prispevkov iz OTS 2019 (Vue), 2022 (Blazor) in 2023 (Blazor Hybrid), vendar pa je vseeno zaključen prispevek, neodvisen od prejšnjih prispevkov in predznanja. Nadaljevanje pa je v smislu, da .NET okolje zopet nadgrajujemo in povezujemo z zunanjim svetom.
Veliki jezikovni modeli omogočajo, da običajnim aplikacijam dodamo funkcionalnosti umetne inteligence. Pametni asistenti z uporabo orodij omogočajo, da veliki jezikovni model preko povratnega klica pokliče poslovno metodo v aplikaciji. V javanskem okolju je najbolj priljubljena knjižnica LangChain4j. Knjižnica omogoča, da lahko uporabimo različne implementacije velikih jezikovnih modelov (OpenAI, Ollama, JLama,…) ne da bi nam bilo treba spreminjati programsko kodo.
V prispevku bomo bolj podrobno predstavili knjižnico LangChain4j in Quarkusovo razširitev Quarkus LangChain4j, ki uporabo knjižnice LangChain4j še bolj poenostavi, saj omogoča deklarativno uporabo knjižnice večinoma le z uporabo anotacij. Tako lahko hitro razvijamo nove funkcionalnosti. Podobni pristop uporablja Spring AI v SpringBoot aplikacijah. Pametnega asistenta COBISS, ki smo ga lani predstavili, smo nadgradili z uporabo knjižnice LangChain4j. Tako je precej ponavljajoče se kode odpadlo. Na kratko bomo predstavili tudi ogrodje Quarkus, ki omogoča zelo hiter zagon aplikacij in je konkurenčno ogrodju Spring ter ogrodju Jakarta EE.
S sprejetjem in adaptacijo protokola za modelni kontekst (MCP) nastaja enoten in odprt način za komunikacijo med veliki jezikovni modeli (LLM) medsebojno delujejo z obstoječimi aplikacijami. Temeljni cilj protokola je na poenoten način izpostaviti opis delovanje aplikacije, ki ga veliki jezikovni modeli uporabijo kot kontekst pri odgovarjanju ali načrtovanju. Protokol predpostavlja arhitekturo odjemalec-strežnik, ki poteka prek protokola HTTP in formata json-rpc.
Veliki jezikovni modeli komunicirajo z MCP-strežniki z uporabo orodji, znotraj gostiteljskih aplikacij – kot na primer integriranimi razvijalski okolje – ali v agentskem delovnem toku. Predvsem slednji ima potencial postatit de facto standardni sestavni del na strani odjemalca v protokolu MCP, saj lahko agente integriramo v obstoječe gostiteljske aplikacije ali jih uporabimo izven teh, v okviru enega ali več agentskih sistemov.
V prispevku avtor podrobneje predstavi obstoječo različico protokola MCP, njegove pomanjkljivosti in morebitne rešitve v naslednji različici protokola MCP. Pri praktičnem prikazu delovanja odjemalca in strežnika avtor pokaže uporabo agentov kot most za povezovanje velikih jezikovnih modelov z aplikacijami, ki implementirajo MCP. Prispevek se zaključi s pregledom nastajajočih trendov pri povezovanju agentov in aplikacij ter analizo tveganj, povezanih z agentskim delovnim tokom.
Vodja sekcije: Boštjan Grašič
V podjetju Databox smo se z namenom izboljšanja stabilnosti in dviga kakovosti produkta lotili sistemske prenove procesa zagotavljanja kakovosti (QA). Članek opisuje ključne faze QA procesa, ki ga izvajamo pri razvoju novih funkcionalnosti in večjih projektov, z vključitvijo QA ekipe že v zgodnji fazi razvoja.
Proces se začne z analizo zahtev, kjer QA pregleda specifikacije, sprejemne kriterije in dizajne. Zgodnja vključenost omogoča pravočasno odkrivanje nejasnosti ter definiranje testabilnih zahtev, kar zmanjša tveganje za pozne in drage spremembe. Ključni poudarki v tej fazi vključujejo pripravo testnega načrta, identifikacijo tveganj, testnega obsega in potrebnih virov.
QA tesno sodeluje s produktnimi vodji, razvijalci in oblikovalci, da skupaj definirajo pričakovane uporabniške tokove. Po potrditvi testnega načrta se pripravijo testni primeri in scenariji, pri čemer QA že v fazi razvoja izvaja raziskovalno testiranje, ki služi kot osnova za odkrivanje zgodnjih napak in dopolnitev testnih scenarijev.
Sledi faza funkcionalnega testiranja, ob kateri QA sistematično poroča o napakah in izboljšavah. Po odpravi napak se izvede regresijsko testiranje in pripravi testno poročilo, ki služi kot podlaga za odločitev o izdaji funkcionalnosti. V času izdaje QA izvede še produkcijski dimni test (“smoke test”), po izdaji pa sodeluje v retrospektivi, kjer zbere povratne informacije za izboljšave v prihodnjih ciklih. Sledijo še preostale po izdajne QA naloge.
Prispevek osvetljuje pomen strukturiranega pristopa in kakovostne QA dokumentacije (testni primeri, okolja, skripti, poročila), ki omogoča večjo zanesljivost in konsistentnost pri razvoju digitalnih rešitev.
Osnovna funkcionalnost velike večine rešitev podjetja Databox temelji na integraciji z zunanjimi viri podatkov. Zaradi raznolikosti uporabniških vmesnikov (API, eng. application programming interface), prek katerih v imenu uporabnika dostopamo do podatkov, se pri razvoju in vzdrževanju integracij srečujemo z vrsto izzivov, povezanih z zagotavljanjem kakovosti. Ti vmesniki so raznoliki tako iz vidika delovanja in omejitev kot tudi iz vidika kakovosti, kar zahteva razvoj, testiranje in vzdrževanje namenskih in nestandardnih integracijskih rešitev.
Prispevek obravnava ključne tehnične in procesne izzive, s katerimi se sooča ekipa za zagotavljanje kakovosti (QA, eng. quality assurance) pri preverjanju delovanja povezav z zunanjimi viri podatkov, zagotavljanju točnosti in ujemanja pridobljenih podatkov z rešitvami, ki jih za vizualizacijo ponujajo ponudniki podatkov sami in nenazadnje pri zagotavljanju konsistentne in prijazne uporabniške izkušnje. Predstavlja kako se teh izzivov lotevamo s kombinacijo tehničnih in sistematičnih pristopov ter veliko mero kreativnosti in tudi improvizacije. Vse pomembnejšo vlogo pri tem igrata tudi avtomatizacija in uporaba AI-orodij (AI, eng. artificial intelligence), tako pri rutinskem preverjanja povezav in skladnosti podatkov, kot tudi pri generiranju testnih scenarijev in odkrivanju anomalij. Prispevek vključuje nazorne primere pristopov iz prakse in opisuje naše izkušnje.
Testiranje programske opreme je ključen korak pri zagotavljanju kakovosti končnih rešitev. V prispevku predstavljamo, kako smo vpeljali grafične UI (ang. User interface) teste v razvojno okolje večplatformskih mobilnih aplikacij, ki temeljijo na ogrodju .NET MAUI. Opišemo tudi, kako smo teste vključili v proces neprekinjene integracije in postavitve CI/CD (ang. Continuous integration / continuous delivery) s pomočjo platforme GitLab. Pri tem smo uporabili orodje Appium, ki omogoča interakcijo z uporabniškim vmesnikom na različnih platformah.
Appium je odprtokodno ogrodje za avtomatizacijo UI testov, ki že od leta 2011 omogoča testiranje mobilnih, spletnih in hibridnih aplikacij. Ker Appium deluje na ravni uporabniškega vmesnika, ni vezan na uporabljeno tehnologijo za razvoj aplikacije – tako mu je vseeno, ali je aplikacija razvita s pomočjo nativnih orodij ali z uporabo .NET MAUI. Ključni pogoj za uporabo Appium v .NET
MAUI aplikacijah je, da imajo vse pomembne UI komponente nastavljen atribut AutomationId, kar omogoča njihovo enostavno identifikacijo in manipulacijo v testih. Za izvedbo testov smo uporabili ogrodje NUnit, ki se je izkazalo kot stabilna in fleksibilna izbira za projekte v ogrodju .NET. Testi vključujejo osnovne interakcije, kot so kliki na gumbe, preverjanje prisotnosti elementov ter validacijo rezultatov.
Največji izziv pri vpeljavi grafičnih testov v naš CI/CD proces je bila konfiguracija GitLab CI /CD okolja za podporo zagona testov. Ker gre za mobilne aplikacije, je bilo potrebno v cevovod vključiti emulatorje, postaviti Appium strežnik ter zagotoviti ustrezne gonilnike za posamezne platforme. V prispevku se za namen enostavnosti omejimo le na operacijski sistem Android. CI cevovod smo razširili s koraki, ki vključujejo:
S predstavljenim procesom smo dosegli višjo stopnjo avtomatizacije in zagotavljanja kakovosti v naših mobilnih aplikacijah. Integracija testov v okolje GitLab CI ni trivialna, a ponuja velik doprinos k stabilnosti končnega produkta, še posebej v večplatformskem razvoju, kjer je ročno testiranje zamudno in nagnjeno k napakam.
Dostopnost aplikacij je aktualna tema, ki prinaša veliko novih izzivov za razvijalce programske opreme. Mobilna ali spletna aplikacija je dostopna, ko jo lahko nemoteno in učinkovito uporabljajo ljudje vseh sposobnosti, vključno s tistimi s posebnimi potrebami, kot so vidne, slušne ali kognitivne motnje. V tem prispevku bomo predstavili dostopnost iz vidika spletnih in mobilnih aplikacij. Opisali bomo, kakšne so najnovejše smernice ter dobre prakse razvoja za dostopne aplikacije, s kakšnimi izzivi se srečujemo ob razvoju dostopnih aplikacij ali izboljšanju dostopnosti obstoječih aplikacij in kakšna orodja obstajajo na mobilnem in spletnem področju, ki nam lahko razvoj dostopnih aplikacij olajšajo. Na koncu bomo predstavili še praktične primere dostopnih aplikacij.
Vodja sekcije: Luka Pavlič
Novi Zakon o informacijski varnosti v slovenski pravni red uvaja Direktivo o ukrepih za visoko skupno raven kibernetske varnosti v Uniji (NIS2 direktivo). Pričakovana objava zakona je 15. 6. 2025, kar pomeni, da bodo stari zavezanci morali zagotoviti skladnost do 15. 6. 2026, novi zavezanci pa do konca leta 2026.
Zaradi zagotavljanja varnosti dobavne verige pa ne bodo zavezanci samo ponudniki bistvenih in pomembnih storitev, temveč posredno tudi njihovi dobavitelji.
Predlog zakona jasno navaja, da naj bi zavezanci kot dobro prakso upravljanja in vodenja varovanja informacij upoštevali standard ISO 27001. Tudi zakon in direktiva vsebujeta nekaj prvin, ki jih povzemata po ISO 27001. Zato je koristno prepoznati najpogostejše napake, ki se v praksi v slovenskih podjetjih pojavljajo pri uvajanju in izvajanju delovanja sistema upravljanja varovanja informacij po ISO 27001, saj je mogoče pričakovati, da se bodo podobne težave pojavljale tudi pri zunanjem preverjanju skladnosti z ZinfV-1, kot tudi v inšpekcijskih postopkih, ki jih predvideva novi zakon.
Področje umetne inteligence (UI) zaradi svoje interdisciplinarne narave zahteva strokovno znanje s področij matematike, statistike, računalništva in seveda domenskega znanja za področje uporabe. UI se hitro razvija, nenehno se pojavljajo novi algoritmi in tehnike, ki zahtevajo stalno učenje. Izzivi poleg tehničnih vključujejo etične vidike, ublažitev pristranskosti in preglednost v postopkih odločanja. Široka uporaba UI v različnih panogah zahteva različne nabore spretnosti in prilagodljivost. Poleg tega je iskanje svetega grala UI – splošne inteligence – še vedno izmuzljivo in od raziskovalcev zahteva premikanje meja, premagovanje teoretičnih in praktičnih ovir. Umetna inteligenca tako ostaja zahtevno in dinamično področje.
Pospeševalci imajo ključno vlogo v EU pri učinkoviti uporabi širokega nabora znanj na različnih področjih. Pospeševalci uporabe UI ponujajo smernice za krmarjenje po zapletenem okolju tehnologij UI in zagotavljajo usklajenost s predpisi EU, etičnimi standardi in družbenimi vrednotami. Pomagajo opredeliti priložnosti za uvedbo UI, jih uskladiti s posebnimi potrebami in izzivi v EU ter spodbujati inovacije in gospodarsko rast. Poleg tega vzpodbujajo in omogočajo sodelovanje med različnimi zainteresiranimi stranmi, vključno z vlado, industrijo, akademskimi krogi in civilno družbo ter spodbujajo izmenjavo znanja, sodelovanje in soustvarjanje. Podpirajo pobude za krepitev zmogljivosti (capacity-building initiatives) ter usposabljajo strokovnjake in oblikovalce politik za odgovorno in etično uporabo UI.
V projektu EU.FFICIENT (Obzorje Evropa) smo začeli z oblikovanjem štirih skupnosti pospeševalcev – SP (angl. CEF – Communities of Expert Facilitators): napredna proizvodnja, zdravstvena tehnologija, mobilnost in UI/digitalizacija. SP UI se nekoliko razlikuje od drugih skupnosti, saj UI predstavlja tudi ključno omogočitveno tehnologijo na vseh ostalih treh navedenih področjih. Cilj vseh je odkriti obstoječe vrzeli med začetniki in naprednimi pospeševalci, da bi podprli procese soustvarjanja; usposobiti druge pospeševalce o posebnih temah, povezanih s soustvarjanjem; izmenjava znanj med pospeševalci (inter- in intradisciplinarno); pomagati uskladiti ponudbo in povpraševanje po inovacijah ter analizirali vpliv novih trendov/tehnologij v procesih soustvarjanja.
Preko platforme EU.FFICIENT, bodo obstoječi in novi pospeševalci dostopali do najnovejših praktičnih primerov in učnega gradiva, ki jim bo pomagalo pridobiti nove spretnosti in znanja. Pričakujemo koristi od sinergij med člani štirih tematskih skupnosti, kar lahko privede do novih soustvarjenih projektov in partnerstev. Z zagotavljanjem centralizirane platforme za soustvarjanje bomo omogočili pospešili in izboljšali sodelovanje med akademskim svetom in industrijo ter ustvarili večji vpliv na družbo.
Digitalizacija javnih storitev, ki je eden ključnih elementov digitalne preobrazbe Slovenije do leta 2030, predstavlja investicijo v okviru načrta za okrevanje in odpornost (NOO). Del te investicije je tudi projekt Razvoj novih dinamičnih elektronskih storitev (DES). Eden od ključnih ciljev projekta DES je »Poenotenje dostopa do digitalnih javnih storitev z uvedbo enotnih standardov za spletne in mobilne storitve.«
Javna uprava in z njo tudi javni sektor tako postajata pomembna dejavnika in nosilca razvoja digitalne preobrazbe v državi. Na Ministrstvu za digitalno preobrazbo se zavedamo pomena partnerskega sodelovanja in soustvarjanja ter želimo oblikovati take digitalne javne storitve, kakršne uporabniki potrebujejo tako doma kot čezmejno.
Vzpostavitev enotnih standardov za digitalne javne storitve (za spletne in namenske mobilne aplikacije) predstavlja temeljni korak pri zagotavljanju konsistentnih funkcionalnih, vizualnih in tehničnih zahtev za razvoj digitalnih storitev, tako za spletno kot mobilno okolje in bo omogočalo, da bodo digitalne storitve dostopne, vključujoče, varne, intuitivne, učinkovite ter skladne z načeli dobre uporabniške izkušnje.
Kot prvi korak k poenotenju smo opredelili enotne standarde za digitalne javne storitve. To so pravila, smernice in tehnični okviri, ki bodo omogočili enotno, varno in učinkovito izvajanje ter razvoj storitev. S tem bomo poleg učinkov z uporabniškega vidika dosegli tudi pomembne prihranke in izboljšali kakovost digitalnih storitev.
Del enotnih standardov, ki se nanaša na mobilne storitve je že v veljavi in javno dostopen na portalu NIO – Smernice za razvoj mobilnih aplikacij. Smernice zagotavljajo celovit nabor informacij, potrebnih za razvoj kakovostnih in varnih mobilnih aplikacij, ki bodo ustrezale tako tehnološkim standardom kot pričakovanjem uporabnikov. Predstavljeni so tudi kriteriji, ki odločevalcem pomagajo pri presoji in odločitvi o smiselnosti uvedbe mobilne aplikacije.
Za zagotavljanje tehnične podpore v procesu standardizacije razvoja mobilnih rešitev načrtujemo vzpostavitev mobilne razvojne platforme (mobile app framework). Ta bo razvijalcem omogočala dostop do ključnih gradnikov, orodij, med drugim vnaprej pripravljenih vgrajenih knjižnic, programskih vmesnikov (API-jev), odprte in modularne izvorne kode za posamezne komponente, kot tudi do prototipa aplikacije, ki bo demonstriral delovanje posameznih gradnikov. Vse navedeno bo predstavljalo pomembno podporo pri razvoju digitalnih storitev in mobilnih aplikacij v javni upravi.
Z določitvijo enotnih standardov za digitalne javne storitve ter smernic za razvoj mobilnih aplikacij bomo prispevali k višji kakovosti digitalnih storitev javne uprave, okrepili njihovo prepoznavnost in spodbudili širšo uporabo različnih digitalnih kanalov. Poleg tega bomo organom omogočili usklajen, celovit pristop k razvoju mobilnih aplikacij ter s tem prispevali k večji učinkovitosti, gospodarnosti in doseganju prihrankov pri razvoju in vzdrževanju digitalnih rešitev.