Povzetki

 

TOREK, 14. junij 2016

9:15–10:45  Aktualne tehnologije (vodja sekcije: dr. Luka Pavlič)

 

Reaktivni model spleta in programiranja

mag. Andrej Krajnc, mag. Bojan Štok, dr. Ciril Petr (Iskratel d.o.o.)

V zadnjem času pridobiva vse bolj na pomenu reaktivno programiranje (reactive programming). Gre za pristop k programiranju, ki bolje naslavlja značilnosti sodobnih programskih arhitektur. Zadnja leta zaznamujejo velike količin naprav, velike količine podatkov, velike količine strežnikov nekje v oblaku, aplikacije so vedno bolj kompleksno sestavljene rešitve, uporabniki pa kljub temu želijo hitre odzivne čase in nenehno razpoložljivost aplikacij. Če želimo zadovoljiti potrebe sodobnega časa, moramo na novo premisliti naš pristop k izgradnji rešitev. Rešitve (reaktivni sistemi) morajo biti glede na prejšnje veliko bolj fleksibilne, ohlapno sklopljene, skalabilne, odzivne, elastične itd., verjetno najbolj ključno pa je to, da so rešitve asinhrone. Reaktivne arhitekture temeljijo na uporabi mikroservisov, vendar se le ti med seboj povezujejo na nekoliko drugačne načine – zadnja leta uveljavljen de-facto REST standard je sinhron, za reaktivne arhitekture pa potrebujemo asinhrone načine povezovanj. Reaktivno programiranje pridobiva na pomenu tudi zaradi tega, ker je vedno bolje podprto v različnih programskih jezikih, npr. Java 8 je uvedla tokove (stream) in Lambda izraze. V praksi lahko najdemo številna nova ogrodja in razširitve, ki naslavljajo reaktivno programiranje (Play, Akka, Lagom, RxJava itd.). Dobre prakse uporabe reaktivnega programiranje so opisane z reaktivnimi načrtovalskimi vzorci. Čeprav precej konceptov, na katerih temelji reaktivno programiranje, obstaja že dalj časa in ne gre za veliko novega, pa lahko vseeno ocenimo, da gre za novo paradigmo, ki jo potrebujemo za razvoj sodobnih rešitev.

 

Mikrostoritve in zabojniki Docker

Mitja Gradišnik, Črtomir Majer (UM FERI)

Rešitve zasnovane po najpogosteje uporabljeni trinivojski monolitni arhitekturi pogosto prerastejo v kompleksne,  težko obvladljive komponente, ki jih je težko vzdrževati in nadgrajevati, prav tako se kot težavno izkaže tudi nameščanje na oblačno infrastrukturo. Omenjene težave trinivojske monolitne arhitekture skuša razrešiti arhitektura mikrostoritev, ki vpeljuje fleksibilnejšo, modularno zasnovo informacijskih rešitev. Programske rešitve grajene v skladu s principi arhitekture mikrostoritev razbijejo sistem na manjše, fino granulirane in povsem avtonomne storitve, ki so fokusirane v opravljanje zgolj enega specifičnega opravila. Komunikacija med storitvami poteka preko platformsko neodvisnih vmesnikov, najpogosteje kar REST, ki je zaradi svoje preprostosti najpogosteje uporabljen pristop izmenjave sporočil med storitvami.  Tako zasnovane storitve so med seboj izredno šibko sklopljene ter promovirajo modularno zasnovo programskih rešitev, ki jo je mogoče namestiti na širokem spektru različne infrastrukture, vključno z v zadnji letih močno izpostavljeno oblačno infrastrukturo.

Prednosti fleksibilne arhitekture mikrostoritev se pri nameščanju v oblak izkažejo predvsem v navezavi s tehnologijami zabojnikov (angl. Container Technology), katerih najvidnejši predstavnik je odprtokodna rešitev Docker. Naloga zabojnikov je, da mikrostoritve ovijejo v kos samostojne in samozadostne programske opreme, ki iz vidika izvajanja povsem neodvisna od okolja, v katerega je nameščena.

Z uporabo principov arhitekture mikrostoritev ter tehnologij zabojnikov lahko gradimo distribuirane rešitve, ki jih enostavno  namestimo v oblak,  so enostavne za upravljanje, visoko skalabilne in hkrati povsem neodvisne od platform in programskih jezikov. Seveda pa vpeljava mikrostoritev ne prinaša zgolj rešitve obstoječih težav v razvoju informacijskih rešitev. Vpeljava mikrostoritev prinaša tudi številne nove izzive, ki jih je potrebno ustrezno nasloviti.

 

Razvoj poslovne rešitve s principom enostranskih spletnih aplikacij

Boris Ovčjak, Jernej Flisar, Mitja Krajnc (UM FERI)

Vedno večji poudarek na izboljšani uporabniški izkušnji in tekočem delovanju aplikacij je izdatno doprinesel k masovnemu poskoku enostranskih spletnih aplikacij na vseh področjih. Predvsem uporabniška izkušnja je gonilna sila razvoja spletnih aplikacij, ki stremi k temu, da uporabniku nudi čim večjo odzivnost, prilagodljivost ter nemoteno izvajanje delovnega procesa. Temu dosti pripomore tudi napredek spletnih tehnologij, ki nudijo vse več podpore izvajanju procesov na strani odjemalca. Tako programska koda, ki se je poprej izvajala izključno na strežniški strani in uporabniku dostavljala odgovore na njegove poizvedbe, sedaj del tega delovanja prinese k uporabniku, katerega delo tako postane bolj tekoče in neodvisno od čakanja na strežniške odgovore.

Kljub vsem naštetim prednostim pa se poraja vprašanje primernosti tehnologije za uporabo v poslovnem svetu. Glede na arhitekturo se takšna vprašanja predvsem sklicujejo na varnost takšnih aplikacij, njihovo skalabilnost in seveda na hitrost delovanja pri večjih količinah podatkov. Prav tako se poraja vprašanje o primernosti pristopa kadar se ukvarjamo s kompleksnimi podatki, ki jih prinese svet poslovnih aplikacij.

Članek je tako namenjen predstavitvi uporabe omenjenega pristopa pri poslovnih aplikacijah z uporabo .NET tehnologij in JavaScript ogrodja AngularJS s poudarkom na naslavljanju prednosti, slabosti ter prej omenjenih izzivov, ki jih pristop prinaša.

 

11:00–13:00  Sodobni pristopi za digitalno preobrazbo (vodja sekcije: dr. Tomaž Domajnko)

 

Prototip mobilne aplikacije z zalednim sistemom, izdelan hitreje kot agilno

Bojan Brumen, Peter Pogladič, Ivan Slamek, Andrej Kline (msg life odateam d.o.o.)

Prispevek vsebuje izkustveno poročilo (“experience report”) o projektu, ki smo ga izvedli člani podjetja msg life odateam, ki delamo po XP paradigmi, s švicarskim IT-timom, ki uporabljajo metodologijo SCRUM. Kot vsebino smo v najkrajšem možnem kratkem času prototipirali in implementirali sistem, ki je povezal novo razvite mobilne aplikacije z obstoječim (“legacy”) sistemom msg.Symass. Tehnološko velja izpostaviti dejstvo, da same Spletne storitve v takšni povezavi sistemov na zadoščajo v vseh pogledih, zato smo morali biti iznajdljivi z uporabo mikro servisov. Kot zanimivost velja izpostaviti, da nam je agilni pristop bil celo prepočasen za dosego cilja v predvidenem roku. Predstavili bomo dosežek projekta v obliki demo predstavitve in ekipo, ki ga je naredila.

 

Scrum, Kanban, Scrumban – kdaj, zakaj, kako?

Lucija Brezočnik, Črtomir Majer, dr. Luka Pavlič (UM FERI)

Podjetja, ki razvijajo programsko opremo, so zaradi vedno krajših razvojnih ciklov novih produktov in nenehnega spreminjanja njihovih specifikacij primorana vpeljati spremembe v tradicionalni način vodenja razvoja. Rešitev so našla v vpeljavi agilnih metod, ki jim je v zadnjem desetletju popularnost močno narasla. Prehod na agilni razvoj pa ni preprost. Podjetja sicer imajo na voljo mnogo spletnih vprašalnikov, ki jim pomagajo pri odločanju, če so že pripravljena na tranzicijo ali ne, vendar se jim nato še vedno poraja vprašanje: »Katera agilna metoda pa je za naše podjetje optimalna?«. Zaradi tega bomo v prispevku na podlagi zadnje letne raziskave stanja agilnih metod v svetu primerjali tri najbolj razširjene med njimi – Scrum, Kanban in Scrumban.

 

Motivacija v samoorganizirajočih timih pri agilnem razvoju programske opreme

dr. Boštjan Grašič (Infonova GmbH)

Razvoj programske opreme je kreativen in umsko intenziven proces, ki ga je težko kvantitativno ovrednotiti in nadzorovati. Eden izmed pomembnih dejavnikov, ki vplivajo na proces razvoja programske opreme, je motivacija. Raziskave kažejo, da motivacija pomembno vpliva na različne vidike uspeha IT projektov, kot so doseganje projektnih rokov, produktivnost, skladnost s proračunom, nizka fluktuacija zaposlenih ter nizki izostanki od dela. V prispevku obravnavamo vidik motivacije pri agilnem razvoju programske opreme. Identificirali smo dejavnike motiviranja, katerih vpliv na motivacijo smo empirično raziskali. Izvedli smo anketo na 116-ih članih agilnih razvojnih timov v treh organizacijah, ki se ukvarjajo z razvojem programske opreme. Na osnovi teoretičnih izhodišč in rezultatov empirične raziskave smo izdelali model motivacije pri agilnem razvoju programske opreme (MARPO). Model MARPO smo aplicirali na metodologijo Scrum ter pripravili priporočila za vzpostavitev in ohranjanje motivacije pri agilnem razvoju programske opreme.

 

Kako uvesti kartično poslovanje na spletu in se izogniti podpori?

dr. Črt Gerlec, dr. Rok Žontar (Lyoness Group AG)

V sodobnem informacijskem svetu so opazne vedno večje težnje potrošnikov k uporabi sodobnih plačilnih sistemov na spletu. Na drugi strani, želijo podjetja prav tako svojim strankam ponuditi čim manj ovir pri nakupu in plačilu za svoje izdelke ali storitve. A pri tem se obojni srečujejo z različnimi zahtevami za programsko opremo. Na eni strani želijo potrošniki bogato uporabniško izkušnjo in visoko varnostjo za svoje podatke. Podjetja na drugi strani, morajo upoštevati računati na stroške vpeljave in upravljanja s to tehnologijo. Če pri tem upoštevamo, da imajo podjetja v večini že vpeljane obstoječe programske rešitve, so lahko tehnološke prepreke vzrok, da se ne odločijo za takšno rešitev ali pa se odločijo za uporabo zunanjih plačilnih sistemov.

V članku bi predstavili izkušnje pri vpeljavi kartičnega poslovanja na primeru podjetja Lyoness in probleme s katerimi smo se srečevali pri vpeljavi. Predstavili bi kronološki razvoj sistema, kjer smo prešli več faz. Na podlagi pridobljenih izkušenj bi nudili vpogled v razvoj sistema in pokazali, kako pomembno je, da že od začetka vzpostavimo arhitekturo, ki jo je mogoče dolgoročno vzdrževati in nadgrajevati. Dejstvo je, da se programska oprema razvija skladno z razvojem podjetja. Navadno se začne s prototipno rešitvijo, ki čez čas preraste v večji in kompleksnejši sistem, ki deluje avtonomno.  Tako smo tudi mi prešli vse od začetne faze, kjer smo uporabljali preproste rešitve drugih ponudnikov, smo s prenovo celotnega plačilnega informacijskega sistema, uspeli podpreti cilje podjetja, da omogoča tak način plačila čim večjemu številu članov in partnerskih podjetij. Do zaključne faze bomo implementirali domensko specifično storitev, katera ustreza visokim varnostnim zahtevam PCI in upošteva posebnosti globalnega podjetja , ki posluje v 47 državah z 22 različnimi valutami.

Članek boi prav tako nudil grob pregled nad različnimi načini upravljanja plačevanja s kreditnimi karticami (zunanji ponudniki, iframe-rešitve, delna integracija preko AJAX-a) in povezanimi standardi varovanja podatkov o plačilni karticah.

 

14:00–16:00  Informacijska varnost in ranljivost (vodja sekcije: Milan Gabor)

 

Vzpostavitev lastnega sistema za enotno prijavo in upravljanje identitet

Mitja Krajnc, Jernej Flisar, Boris Ovčjak (UM FERI)

V svetu, kjer imamo aplikacije že za praktično vsako stvar so nam mnoga uporabniška in gesla že bolj v breme, kot v korist. Le kdo si zapomni več deset različnih uporabniških imen in gesel in pri tem upošteva varnostna priporočila glede kompleksnosti. V ta namen se vse bolj pogosto pojavljajo sistemi za enotno prijavo, ki omogočajo prijavo v več različnih aplikacij z enotnim uporabniškim računom in enotno prijavno točko. Preprosto je prijava v aplikacijo z uporabo Google, Facebook, Microsoft Account in podobnimi storitvami za uporabnike dovolj enostavna in varna, da postaja pri uporabnikih vse bolj uveljavljena.

Ampak kaj storiti, kadar se znajdemo v poslovnem svetu, kjer imamo več sistemov, ki bi lahko uporabljali enotno prijavo, vendar je uporaba zunanjih ponudnikov nemogoča. Kot ena izmed rešitev, se pojavlja vzpostavitev lastnega sistema za enotno prijavo, ki združuje prednosti uporabe ene vstopne točke za prijavo v več sistemov z neodvisnostjo od zunanjih ponudnikov.

Ena izmed takih rešitev je IdentityServer3, odprtokodna rešitev, temelječa na ogrodju .NET, ki omogoča implementacijo enotne prijave in omejevanje dostopa za spletne aplikacije z uporabo protokolov kot sta OpenID Connect in OAuth2.

V ta namen bomo v članku predstavili vzpostavitev takšne rešitve, pasti s katerimi se lahko srečamo, različne delovne tokove povezane s prijavo in dodeljevanju varnostnih žetonov in razširitve osnovnih funkcionalnosti sistema.

 

Osnovni koncepti zagotavljanja kibernetske varnosti

mag. Samo Maček (Generalni sekretar Vlade RS), mag. Franci Mulec, mag. Franc Močilar (Ministrstvo za zunanje zadeve)

Vlada je februarja letos sprejela Strategijo kibernetske varnosti Republike Slovenije. Sistemska ureditev je nujna zaradi vedno večjega pomena kibernetske varnosti za nemoteno delovanje sistemov, od katerih je odvisno delovanje države in družbe, kot celote. Razvoj informacijske tehnologije prinaša splošno družbeno blaginjo, hkrati prinaša tudi  določena s tem povezana tveganja. Težave v delovanju ali celo uničenje kritičnih informacijskih sistemov imajo lahko resne posledice na delovanje države, gospodarstvo, varnost in zdravje prebivalstva. Kibernetska varnost je zato postala integralni del nacionalne varnosti držav in mednarodne skupnosti. Predstavlja zbirko orodij, politik, konceptov, zaščitnih ukrepov smernic in pristopov, s katerimi lahko ta tveganja obvladujemo.

Struktura virov tveganja od interesnih skupin posameznikov vedno bolj prerašča na geostrateški nivo in interesom, ki izhajajo iz  globalizacije in širših družbenih sprememb. Število varnostnih incidentov je v zadnjem času močno naraslo. Napadalci se poslužujejo novih napadov, goljufij in prevar. Trendi sledijo tehnološkemu razvoju in spreminjanju družbenega okolja.

Prispevek obravnava aktualna prizadevanja Slovenije in EU v smeri sistemske ureditve področja kibernetske varnosti ter izpostavlja konkretna tveganja in zaščitne ukrepe, ki jim  v slovenski družbi, v organizacijah in zasebnem življenju ne posvečamo posebne pozornosti.

Zaradi narave in vsebine dela imata Generalni sekretariat vlade in Ministrstvo za zunanje zadeve dolgo tradicijo obravnavanja podatkov, ki so ključnega pomena za varnost in nemoteno izvajanje funkcij države. Poleg vidika nacionalne varnosti in zaščite kritične infrastrukture državnega pomena so predstavljeni koncepti in konkretne rešitve aktualni tudi za številne gospodarske družbe in državne organe.

 

Opatch: popravljanje popravljanja

Stanka Šalamun (ACROS Security)

Ključni problem informacijske varnosti so varnostne napake v programski opremi, ki napadalcem vsakodnevno omogočajo precej preprosto vdiranje v računalniške sisteme s pomočjo neznanih  in novih ranljivosti, še bolj pogosto pa z uporabo tudi več mesecev ali let starih lukenj.  Žalostna statistika, da v resnih in varnih industrijah (tudi bančništvu ali zdravstvu), v poprečju potrebujejo pol leta, da namestijo varnostne popravke, govori o tem, da je nekaj v procesu popravljanja zelo narobe. Osnovni vzrok za tako stanje so proizvajalci programske opreme, ki izdelujejo zelo luknjast softver, ki ga pa v primeru odkritja varnostne napake popravljajo prepočasi, če sploh. Ker popravki ponavadi prinašajo veliko sprememb v delujoče računalniške sisteme, jih morajo upravljavci računalniških sistemov pred namestitvijo v produkcijske sisteme dodobra preizkusiti v kombinaciji z obstoječim programskim okoljem, kar stane veliko časa in denarja. Ker uradni popravki prevečkrat pokvarijo ključne funkcionalnosti, se pogosto sploh ne znajdejo na ključnih računalnikih. Tako pomembni infrastrukturni sistemi ostanejo ranljivi še dolgo po tem, ko napadalci ranljivost že veselo izrabljajo za vdiranje.

Kaj pa, če popravljanje programske opreme spremenimo tako, da bi bilo drastično cenejše in preprostejše za vse vpletene? Če obstoječi tradicionalni pristop priprave popravkov skozi razvijalskih cikel proizvajalcev, ki na koncu vključuje zamenjave celotnih izvedbenih datotek in knjižnic, testiranje matrike podprtih verzij ter distribucijo nekaj mega ali sto mega paketov zamenjamo z dobro umerjenimi, le nekaj instrukcij velikimi mikropopravki v pomnilniku? Takimi, katerih namestitev je neopazna in ne zahteva ponovnega zagona programa, kaj šele celotnega strežnika? Takimi, ki jih lahko v primeru suma napake z lahkoto ugasnemo in prižgemo, ko potrdimo pravilnost delovanja? Tako majhnimi, da bi bili uporabni tudi za popravljanje varnostnih napak interneta stvari? Da omogočimo varnostnim raziskovalcem, da poleg tega, da diagnosticirajo bolezen, sami pripravijo še zdravilo? Pravljični svet? Niti ne. Tehnološka rešitev (namig: 0patch.com) že obstaja in je plod dela mariborskih strokovnjakov. Čas je, da popravimo popravljanje.

 

Tehnologije za samodejno iskanje ranljivosti spletnih aplikacij

Anže Žitnik, mag. Aleš Černivec (XLAB d.o.o.)

Na internetne tehnologije se dandanes zanašamo na vsakem koraku. Čeprav nam nudijo velike koristi, se je potrebno zavedati ranljivosti, ki jih prinašajo. Povečuje se tudi število varnostnih incidentov v kibernetskem prostoru, ki, poleg groženj zasebnosti, lahko povzročajo tudi izpade ključnih storitev. Kibernetske grožnje zato predstavljajo stalno tveganje poslovanju vseh podjetij in organizacij.

WISER (Wide­Impact cyber SEcurity Risk framework) [1] je projekt, ki se ukvarja z implementacijo ogrodja za ocenjevanje in upravljanje stopnje tveganja, ki ga predstavlja informacijsko­komunikacijska tehnologija v organizaciji. Projekt se je začel junija 2015, konzorcij pa sestavljajo partnerji iz 6­ih držav (tudi nečlanice) EU. Cilj projekta je validacija obstoječih rešitev za upravljanje s tveganjem na področju računalniške varnosti in razvoj novih rešitev, ki bodo dopolnile obstoječe. XLAB bo v okviru projekta realiziral rešitev za nadzor infrastrukture in hrambo znanih ranljivosti opazovane infrastrukture.

Kot del projekta WISER smo razvili produkt CyberWiser­Light, ki omogoča samoocenjevanje stopnje izpostavljenosti kibernetskim grožnjam. XLAB je pri tem prispeval implementacijo rešitve za samodejni pregled varnostnih ranljivosti v spletnih aplikacijah, ki jo predstavljamo v tem prispevku. CyberWiser­Light poda oceno tveganja ter predlaga varnostne izboljšave na podlagi rezultatov vprašalnika o varnostni politiki organizacije ter samodejnega pregleda programskih varnostnih ranljivosti v izbrani spletni aplikaciji.

Orodje za samodejno varnostno testiranje programskih ranljivosti v naši rešitvi nudi pomembno podporo pri ocenjevanju celostnega kibernetskega tveganja ter ob identifikaciji ranljivosti ponuja tudi ukrepe za preprečitev varnostnega tveganja, ki ga predstavljajo najdene ranljivosti. Avtomatsko testiranje je sicer manj temeljito kot strokovno izveden penetracijski test, vendar je mnogo cenejše in hitrejše. Pomembno prednost avtomatskemu varnostnemu testiranju aplikacij prinaša tudi možnost kontinuiranega pregledovanja ob spremembah v aplikacijah.

S CyberWiser­Light poskušamo kar se da poenostaviti in avtomatizirati varnostno testiranje spletnih aplikacij ter rezultate le­tega predstaviti na pregleden in razumljiv način. S tem želimo varnostno testiranje približati tudi uporabnikom, ki se sicer ne ukvarjajo z računalniško varnostjo.

Jedro naše rešitve je uporaba različnih obstoječih orodij za pregled varnostnih ranljivosti spletnih aplikacij, kot sta W3af [2] in OWASP ZAP [3]. Kot vmesnik do omenjenih orodij uporabljamo ogrodje Cscan [4], katerega smo zaradi enostavnejše postavitve in možnosti skaliranja vključili v kontejner Docker [5]. Za samodejno skaliranje skrbimo z orodjem Kubernetes [6] za upravljanje s kontejnerji Docker. Programski vmesnik, ki deluje na osnovi tehnologije REST, smo razvili z ogrodjem Django [7], pri čemer smo morali poskrbeti tudi za razvrščanje nalog testiranja in komunikacijo s programi delavci, ki tečejo v kontejnerjih Docker. Naša rešitev omogoča zagon varnostnega testa z enostavnim klicem programskega vmesnika REST, kateremu lahko podamo lastne nastavitve ali prepustimo izbor privzetih možnosti.

V prispevku podrobneje opišemo virtualizacijsko okolje Docker, orodje za upravljanje programskih kontejnerjev Kubernetes in razvoj programskega vmesnika v ogrodju za razvoj spletnih aplikacij Django. Predstavimo tudi orodji W3af in OWASP ZAP, namenjeni varnostnemu testiranju aplikacij ter primere varnostnih ranljivosti, ki jih naša rešitev lahko zazna, vpliv rezultatov varnostnega skeniranja na celostno oceno varnostnega tveganja ter načrte za nadaljnji razvoj orodja CyberWiser­Light.

 

16:20–18:00  Poslovna, umetna in naravna inteligenca (vodja sekcije: dr. Boštjan Grašič)

 

Modelno usmerjena podatkovna integracija – ali kako učinkovito uvesti poslovno inteligenco v poslovne procese

dr. Andrej Krajnc, David Batič (Agencija za energijo), Marko Lah, Katarina Lah, Uroš Goljat (Silantro)

Učinkovito izvajanje monitoringa trga je ključna naloga Agencije za energijo, ki zahteva metodološki pristop in učinkovito informatizacijo procesov. Jedro te procesne domene je kompleksna analitika velike količine podatkov, ki jih agencija pridobiva iz različnih virov, potreba po avtomatiziranem generiranju in objavi standardiziranih poročil za notranje in zunanje uporabnike ter »ad-hoc« lokalizirani analitiki z uporabo lokalnih analitičnih orodij. Agencija za energijo bo monitoring trga izvajala z uporabo novega informacijskega sistema, ki bo temeljil na podatkovnem skladišču in zagotavljal funkcije poslovne inteligence. Pri razvoju te rešitve smo se odločili za pristop, ki temelji na modelno usmerjeni podatkovni integraciji in zagotavlja vrsto prednosti v primerjavi s klasičnim načinom razvoja.

 

Umetna inteligenca v igrah: ali še lahko zmagamo?

Damijan Novak, dr. Domen Verber (UM FERI)

Komponente umetne inteligence v računalniških igrah so z izrednim zanimanjem velikanov (kot je Google, Microsoft, Facebook, IBM, Baidu …) dobile nov val zagona. Val je celo takšen, da v akademskih vodah že primanjkuje raziskovalcev. Na nekaterih področjih že lahko govorimo o novi revoluciji umetne inteligence (npr. algoritem AlphaGo nad potezno igro Go).
Naš prispevek opisuje področje uporabe tehnik umetne inteligence v računalniških igrah. Prikazano je trenutno stanje na tem področju, nekaj najbolj odmevnih primerov uporabe in podrobnejši opis najpogosteje uporabljenih pristopov. Prikazali bomo naše raziskovalno delo ter smernice pri razreševanju trenutnih najtežjih problemov. Pri tem odgovarjamo na vprašanja kot so: »Ali pri umetni inteligenci dejansko gre za pravo inteligenco?«, »Na kakšen način lahko računalniški program premaga človeškega nasprotnika?«, »O kakšnih kompleksnostih problemov govorimo?«, »Pri katerih žanrih računalniških iger umetna inteligenca trenutno še ne more premagati najboljših človeških igralcev?« ter »Ali so nam šteti dnevi pri doseganju zmag proti umetni inteligenci?«

 

Nevronske mreže v jeklarski proizvodnji

Robert Rupnik (Acroni d.o.o.), dr. Alenka Brezavšček, dr. Davorin Kofjač (UM, Fakulteta za organizacijske vede)

V prispevku bomo prikazali praktično uporabo sodobne informacijske tehnologije v konkretnem proizvodnem okolju. Acroni d.o.o. je sestavni del skupine SIJ d.d., ki je eno največjih slovenskih podjetij, definitivno pa največji proizvajalec jekel v tem delu Evrope. Podjetje sestavljajo štiri enote in v prispevku bomo prikazali optimiranje sklopa strojev v enem od teh obratov. V podjetju smo preskusili že več orodij za terminiranje proizvodnih procesov, vendar rezultati niso bili zadovoljivi. Klasična orodja omogočajo razvrščanje, ki je ob dejstvu, da je danes skoraj vsak izdelek svoj unikat neuporabno. Kompleksnost kombinacij, ki jih je potrebno upoštevati ob razvrščanju vhodnih plošč v sistem je za izkušene operaterje prezahtevna in v procesu prihaja do velikega števila kratkih zastojev. Reševanja izziva smo se lotili z uporabo znanja iz področja nevronskih mrež.

Kaj je nevronska mreža (Neural network)? Poenostavljeno je to mreža, ki deluje na več plasteh. Na prvi imamo vstopne informacije, ki so poznane in vidne, na drugem nivoju imamo skrita polja v katerih se dogaja logika razmišljanja in optimiranja procesa, tem nivoju rečemo tudi skriti nivo in zadnji tretji nivo je nivo rezultata, ki je zopet viden. (Engelbrecht, 2002)

Kot sem omenil bomo v prispevku prikazali konkretno uporabo v proizvodnem procesu. Proces izvaja funkcijo toplotnih obdelav jekel in je sestavljen iz štirih peči za termično obdelavo, hladilne naprave za izvedbo kaljenja in zakladalnega vozička, ki premika plošče v in iz peči.

Proces spremljamo z zapisi časov vseh pomembnih korakov in parametrov v obdobju zadnjih 5 let. Torej podatkov za učenje in iskanje informacij več, kot dovolj. Na osnovi učenja iz preteklosti smo oblikovali nevronsko mrežo funkcijskih odločitvenih točk na katere vpliva moč posameznega parametra v določenem momentu. Cilj je poiskati najustreznejšo ploščo izmed vseh, ki jih imamo pred vhodom v peči s ciljem, da le ta povzroči najkrajši zastoj v trenutku, ko se zaključi proces termične obdelave v eni od peči.

Z uvedbo aplikacije smo skrajšali zastoje različno glede na vrsto termične obdelave med 15 in 30%. S tem ne samo, da smo povečali produktivnost, ampak smo dosegli tudi velik energetsko ekološki učinek, ker peči niso delovale v prostem teku, temveč so efektivno delovale.

V prispevku bomo tako prikazali:

  • Stanje procesa pred uvedbo sodobnega informacijskega pripomočka
  • Delovanje in strukturo konkretne nevronske mreže
  • Aplikacijo z vhodnimi in izhodnimi podatki
  • Rezultate spremenjenega procesa

 

Stres in izgorelost v IT industriji

Matevž Rostaher (Skupina NOVUM IT d.o.o.)

Kljub temu, da so ljudje glavni vir IT industrije, sta stres in zlasti “burn out” sindrom temi, ki sta stigmatizirani in se o njih zelo malo govori. Izkušnje kažejo, da sta stres in posledično tudi “burn out” faktorja, ki ogrožata dolgoročni uspeh IT organizacij. Agilne metode razvoja programske opreme, kjer je človek postavljen v središče pozornosti, lahko pripomorejo k zmanjšanju stresnih situacij v projektih. Kljub temu pa agilne metode same po sebi ne zagotavljajo zmanjšanje stresa. V praksi se dnevno soočamo s stresnimi situacijami, ki so večinoma povezane s slabo usklajenostjo ciljev posameznih akterjev v organizaciji. V prispevku bom predstavil praktične izkušnje pri uporabi konkretnih praks obvladovanja stresa kot so transparentna komunikacija s pomočjo tehnike nenasilne komunikacije (Nonviolent CommunicationT), s pravilno uporabo agilnih praks in nenazadnje tudi s prakso skupinske meditacije.  Predstavil bom tudi metode odkrivanja indikatorjev, ki nakazujejo potencialno nevarnost, da pri posameznem sodelavcu nastopi t.i. “burn out” sindrom.

 

SREDA, 15. junij 2016

8:30–10:30  Zagotavljanje kakovosti (vodja sekcije: mag. Ivan Lah)

 

Nevsiljivo merjenje uporabnosti spletnih aplikacij

Peter Horvat (Evident d.o.o.)

Splet in spletne aplikacije postajajo primarni kanal poslovne komunikacije. Globalna dosegljivost, široka demografska raznolikost uporabnikov, dinamika razvoja in trendov, zahtevajo hiter ter časovno in stroškovno učinkovit pristop k identifikaciji uporabnostnih težav. Pojavlja se torej potreba po objektivnem merjenju večjega števila geografsko in časovno razpršenih uporabnikov. Rešitev lahko najdemo v nevsiljivem, delno ali popolno avtomatiziranem zajemu uporabnostnih podatkov, medtem ko uporabnik storitev uporablja v svojem naravnem okolju in kontekstu. V prispevku bomo predstavili koncept nevsiljivega merjenja uporabnosti ter avtomatizacije zajema vedenjskih in stališčnih podatkov. Na osnovi praktičnega primera implementacije in uporabe bomo izpostavili prednosti in slabosti takšnega merjenja.

 

Kako do sodobnih regresijskih testov

mag. Boštjan Kežmah (UM FERI)

V praksi pri reviziji informacijskih sistemov ugotavljamo, da se veliko naročnikov in razvijalcev še vedno ne odloča, da bi izvajali regresijske teste. Uveljavljajo se celo rešitve kjer razvijalec napiše izjavo, da izvedene spremembe vplivajo samo na funkcijo, ki je bila spremenjena. Pa je v sodobnem razvoju programske opreme in ponovni uporabi to sploh mogoče? Večina revidirancev se odloči izogibati testiranju zaradi stroškov. Ali je izdelava sodobnih samodejnih testov res pomemben strošek v deležu razvoja? Kakšne sodobne pristope in rešitve razvoja, vzdrževanja, dokumentiranja in poročanja pri testiranju so danes na razpolago? Inovativne in učinkovite, zato za pogumne ni ovir, bomo ugotovili v prispevku.

 

Avtomatizacija testiranja mobilnih aplikacij

Sabina Mlinarič, dr. Simon Jurič (INOVA IT d.o.o.)

Sedanji hitri razvoj aplikacij ter njihovo nenehno nadgrajevanje in posodabljanje postavlja testiranje v vedno pomembnejšo vlogo v procesu razvoja programske opreme. Vseeno pa zaradi vedno večje ponudbe aplikacij in različnih naprav na trgu tudi klasično ročno testiranje ne zadovoljuje več potreb v razvoju. Da je lahko aplikacija preverjena na čim večjem številu naprav v danem časovnem okviru je potrebno uporabiti tudi avtomatizirane teste,  saj je ročno testiranje prepočasno in nepraktično. V ta namen je na trgu že precejšnje število orodij, v prispevku pa se bomo osredotočili na avtomatizacijo testiranja mobilnih aplikacij z orodjem Ranorex. V začetku prispevka bomo predstavili avtomatizirano testiranje v splošnem, nato pa se bomo osredotočili na orodje Ranorex, predstavili njegove osnovne funkcionalnosti ter izpostavili temeljne prednosti in pomanjkljivosti orodja. V nadaljevanju bomo Ranorex primerjali še z drugimi znanimi orodji za avtomatizirano testiranje ter zaključili s predlogi kdaj in na kakšnih projektih je orodje Ranorex primerno za uporabo ter kdaj uporaba tega orodja ni priporočljiva.

 

Visoka razpoložljivost storitev v oblaku

Samo Dečman (3 GEN d.o.o.)

Včasih se je uporabljala beseda “gostovanje” (angl. hosting), danes je vse skupaj doživelo nadgradnjo v obliki novega izraza “oblak” (angl. “cloud”). Gre za precej neoprijemljiv pojem, o katerem je bilo povedanega že mnogo in bo v prihodnosti povedanega še mnogo več. Velika večina povedanega je namenjena končnim uporabnikom, ki so praviloma dovolj računalniško pismeni, da jim je povedan vidik jasen. Žal je lestvica pričakovanj uporabnika napram tehnološkim zmožnostim postavljena precej visoko in so jo zmožni doseči le redki. Zaradi tega bomo na predstavitvi premaknili fokus oblaka na tisti bolj tehnični del in na čisto praktične težave, s katerimi se je potrebno spopadati.

Neprekinjena razpoložljivost storitev je zelo široko področje, ki se začne že s pravilno izbiro strojne opreme (strežniške infrastrukture in omrežja), nadaljuje z izbiro virtualizacijske platforme in njenih funkcionalnosti, konča pa se z neko kombinacijo programske opreme (operacijskega sistema, podatkovne baze, aplikacijskega strežnika in aplikacij). Vsaka komponenta v skladu mora imeti redundanco, če želimo ohraniti storitev delujočo v primeru nenadzorovanega izpada (okvare) ali nadzorovanega izpada komponente (npr. redne vzdrževalne aktivnosti v obliki namestitve varnostnih popravkov).

Na predstavitvi se bomo dotaknili teoretičnega dela visoke razpoložljivosti, v nadaljevanju pa bomo v živo opravili prenos vloge primarne baze na njeno sekundarno kopijo. Opazovali bomo, kako ta prenos zaznajo različni klienti oz aplikacije in kako se nanj odzovejo. Če so podatki kri informacijskega sistema, je podatkovna baza njegovo srce – v tej analogiji lahko rečemo, da bomo v živo opravili operacijo na odprtem srcu in upajmo, preživeli.

 

10:45–12:15  Arhitekture poslovnih rešitev in storitev (vodja sekcije: dr. Dean Korošec)

 

Razširitev informacijskih sistemov zdravstvenih ustanov z API kot priložnost za nove ponudnike aplikacij

dr. Denis Pavliha (SRC Infonet d.o.o.)

Informacijske rešitve bolnišnic, zdravstvenih domov ali zasebnih ambulant so praviloma zaprti sistemi. Povečini so osnovani na podatkovni bazi, do katere dostopajo bodisi polni odjemalci (angl. fat client) bodisi odjemalniško-strežnike (angl. client-server) aplikacije. Tovrstne informacijske sisteme lahko razširimo z uporabo dodatnega zalednega sistema (angl. backend), ki ponuja Representational State Transfer (REST) storitve v obliki API vmesnika. Nanj se lahko povežejo nove aplikacije, ki niso del obstoječega sistema zdravstvene ustanove. Na ta način lahko uporabljajo nove aplikacije obstoječe podatke zdravstvene ustanove in se izognejo podvajanju informacij. Zdravstvena ustanova pa tako pridobi nove rešitve, ki razširjajo namen osnovnega informacijskega sistema z novimi funkcionalnostmi.

 

Analiza izkušenj z razvojem storitveno in procesno usmerjenega integralnega IS elektrodistribucijskih podjetij

Matej Nosan, dr. Andrej Bregar (Informatika d.d.)

V podjetju Informatika d.d. imamo dolgoletne izkušnje z razvojem kompleksnih storitveno in procesno usmerjenih programskih rešitev. Razvili smo celovito in integralno informacijsko podporo delovanju slovenskega elektrodistribucijskega sistema, ki zajema informatizacijo in upravljanje reguliranih poslovnih procesov priključevanja odjemalcev na elektrodistribucijsko energetsko omrežje, enotno vstopno točko za podatkovno intenzivno storitveno usmerjeno B2B izmenjavo podatkov med deležniki na trgu električne energije, obračunski sistem in podporne produkte. Informacijski sistem je zgrajen na platformah in tehnologijah IBM WebSphere (WAS, WPS, WSRR, ESB, Portal), J2EE, WS-*, BPEL, DB2 in drugih, kakor tudi na specifičnih interno vpeljanih metodologijah in vzorcih. V prispevku predstavimo razvite poslovne rešitve in uporabljene tehnologije, metodologije in vzorce, nato pa se osredotočimo na opis ter analizo tako pozitivnih kot negativnih izkušenj, ki smo jih pridobili pri razvoju in vzdrževanju dinamičnega sistema, temelječega na večnivojski infrastrukturi ter kompleksnih in podatkovno intenzivnih procesno-storitvenih integracijah.

 

 

Hibridni arhitekturni pristop: povezovanje oblačnih in tradicionalnih poslovnih aplikacij

Goran Čapelnik (Bintegra d.o.o.), Primož Vogrinec (Si.mobil d.d.)

Po eni strani se vedno več podjetij odloča za storitve v oblaku in številna podjetja že imajo pobude v oblaku na različnih nivojih: infrastrukturi, aplikacijah, in storitvah. Po drugi strani oblačne rešitve pomenijo velike spremembe v organizaciji, planiranju in pri vsakodnevnih opravilih IT oddelkov v podjetjih. Zato imajo številna večja podjetja, zaradi varnosti, velikosti in kompleksnosti njihovega IT-ja ali drugih razlogov, pomisleke proti zamenjavi tradicionalni rešitev z rešitvami v oblaku. Zato se odločajo za rešitve, ki kombinirajo prednosti obeh svetov in omogočajo postopen prehod na oblačne storitve. Hibridni pristop je zato dobra priložnost za tista podjetja, ki zaradi različnih razlogov informacijskih storitev ne morejo takoj prenesti v oblak.

Na študiji primera bomo predstavili, kako smo za veliko korporacijo, telekomunikacijskega operaterja s prisotnostjo v več državah, naredili načrt hibridne arhitekture in implementirali centralno rešitev za upravljanje z incidenti (Service Management) na nivoju celotne korporacije. Predstavili bomo tudi, kako smo rešitev integrirali z obstoječimi lokalnimi rešitvami za upravljanje z incidenti in zahtevki ter upravljaje odnosov s strankami (CRM sistemi), ki jih imajo podjetja v svojih okoljih v lokalnih državah.

Predstavili bomo prednosti in izzive hibridne arhitekture in posledice takšnega pristopa za razvoj in operativo.

 

13:00–14:30  Rešitve in izzivi interneta stvari (vodja sekcije: dr. Boštjan Šumak)

 

Integracija oblaka in interneta stvari

dr. Muhamed Turkanović (CEI-Systems)

Internet stvari (angl. Internet of Things) počasi prehaja iz vizije in modne muhe v naraščajoče oprijemljiv koncept, kateremu pozornost posveča vse več organizacij. Kljub takšnemu napredku, obstaja še zmeraj veliko izzivov, ki jih je potrebno obarvnavati s ciljem izkoriščanja celotnega potenciala, ki bi koristil širši družbi, gospodarstvu, okolju, posameznikom itd.

Oblak oz. računalništvo v oblaku (angl. Cloud Computing) se s svojo uveljavljenostjo in zrelostjo smatra, kot obetavna rešitev za določene omenjene izzive interneta stvari.  V primeru združevanja oblaka z internetom stvari, postaja oblak vmesna plast med fizičnimi objekti oz., stvarmi ter končnimi aplikacijami, na način, da izkorišča podatke in vire, ki jih objekti generirajo in si takoširi svoje področje uporabe oz. delovanja. Hkrati pa takšna integracija internetu stvari omogoča izkoriščanje skoraj neomejenih sredstev oblaka z namenom implementiranja storitev za upravljanje in izkoriščanje pametnih naprav. Pričakuje se, da bo integracija obeh konceptov v prihodnosti vedno bolj prodorna.

V prispevku bomo na kratko predstavili osnovne koncepte obeh tehnologij in tako izpostavili komplementarnost njunih komponent ter glavno gonilo njune integracije. Prav tako bomo predstavili določene nove aplikativne scenarije in platforme, ki izhajajo iz integracije omenjenih konceptov. Podrobno bomo analizirali primer oblačno integriranega ogrodja za spremljanje zdravja. S tem bomo prešli na predstavitev priložnosti, ki jih takšna integracija ponuja in hkrati izzive s katerimi se lahko srečamo oz. pomanjkljivosti v obstoječih pristopih. Na koncu se bomo še osredotočili na nekatera odprta vprašanja, ki jih je potrebno nasloviti v prihodnosti in predstavljajo perspektivne raziskovalne ter tržne smeri. Cilj prispevka je pridobiti celovito razumevanje integracije obeh konceptov z namenom odkrivanja potencialnih razvojnih in poslovnih priložnosti.

 

Upravljanje hišnih naprav v IoT stilu z uporabo platforme Arduino

Rihard Škorjanec, dr. Boštjan Šumak (UM FERI)

Na osnovi študije primera spletnega upravljanja klimatske naprave smo zasnovali arhitekturo rešitve, ki mogoča vključevanje gospodinjskih naprav v internet stvari z namenom spremljanja in upravljanja le-teh. Arhitekturo rešitve smo izdelali z uporabo platforme Arduino in deluje kot prehod, kateri omogoča preslikavo vmesnika poljubne gospodinjske naprave v spletno storitev. Z namenom zagotavljanja varne komunikacije v spletu in lokalnem omrežju in na osnovi omejenih zmožnosti mikrokrmilnika smo nadgradili arhitekturo rešitve z vključitvijo mikroprocesorja kot mostu med mikrokrmilnikom in omrežno povezavo. Izbira široko dostopnega protokola HTTPS, uporaba notacije JSON ter izdelava spletnih storitev po arhitekturnem stilu REST je omogočila enostavnost izgradnje, povezljivost, razširljivost in široko uporabnost ter zagotovila učinkovitost arhitekturne rešitve. Z rešitvijo smo prikazali primernost in uporabnost spletnih storitev za preslikavo vmesnika gospodinjskih naprav s pomočjo platforme Arduino. Uporaba oblačne storitve Thingspeak je omogočila prenos uporabniškega vmesnika naprav v splet. Posledično se je spremenil in nadgradil komunikacijski vmesnik naprave v smeri povezovanja stroj s strojem in ne samo uporabnik s strojem, kar rezultira v nov pojem internet stvari (IoT) , kjer se pametne naprave medsebojno povezujejo. S kombiniranjem aplikacijskih rešitev oblačne storitve ter z uporabo podatkov, pridobljenih iz prehoda in v spletu dostopnih drugih storitev, smo nadgradili obstoječe storitev z novimi funkcionalnostmi v obliki obveščanja uporabnika in predlaganja sprememb nastavitev naprave. Izbira spletnih storitev za enoten komunikacijski vmesnik upravljanih naprav nakazuje na storitveno usmerjenost arhitekture idejne rešitve, pri čemer se za komunikacijo uporabljajo končne točke REST API, ki so bolj usmerjene k upravljanju podatkovne vsebine kot omogočanju izvajanja metod, ki jih storitev nudi. Predvsem prednost uporabe arhitekturnega stila REST v okoljih z omejeno zmogljivostjo in dejstvo, da ni bil cilj rešitve zagotavljanje vseh načel storitveno naravnane arhitekturne (SOA), so botrovale izdelavi storitev, ki so bolj k virom usmerjena arhitektura rešitve (ROA).

 

Izzivi pri nadzoru globalno povezanih naprav

mag. Mihael Škarabot (SKIDATA AG)

Z razvojem interneta stvari so se pojavile nove možnosti na področju povezovanja naprav, ki smo jih svojim strankam prodali, namestili in jih sedaj vzdržujemo skozi življenjski cikel. Če imaš več kot 10.000 strank s tudi po več 10 naprav hkrati na vseh kontitentih sveta in so tvoje stranke odvisne od 24/7 delovanja tvojih naprav, je področje za izkoriščenje potenciala interneta stvari več kot očitno.

Najprej je bil na vrsti centralni register naprav. Za potrebe registra smo naprave povezali v oblak s pomočjo XMPP protokola in sporočilne/pogovorne infrastrukture. Tu smo se srečali s številnimi izzivi povezovanja starejših generacij naprav, poenotenja protokolov, varnostnimi vprašanji in posebnostmi razvoja programske opreme v oblaku. Hkrati smo morali rešiti oddaljeno posodabljanje programske opreme in konfiguracijo naprav.

Ko imamo enkrat internet dostop do naprav, se lahko osredotočimo na poslovno dodano vrednost. Uporaba ažurnih podatkov o uporabi/obrabi naprav, nameščenih sestavnih delih in delovanju le­teh nam omogoča učinkovito podproro logistično/vzdrževalnih procesov. Učinki se lahko podaljšajo celo v proizvodne procese. Vse to se odraža v višji zanesljivosti delovanja in optimizaciji stroškov vzdrževanja naprav.

Poleg podajanja ažurnih informacij o delovanju je mogoče na napravah izpostaviti tudi vmesnike za spremljanje delovanja in nadzor. Z globalno povezanimi napravami možno to vrsto funkcionalnosti enostavno skozi mobilno platformo ponuditi tudi strankam. S tem pridobimo možnost vzpostavitve globalnih procesov za upravljanje z incidenti, posebnimi dogodki in ostalimi spremembami kar vodi k dvigu zadovoljstva in večji lojalnosti kupcev.