Povzetki

TOREK, 19. junij 2018

8:30 REGISTRACIJA

9:00 OTVORITEV IN UVODNO PREDAVANJE

Veriga blokov – humbug ali avspicija? (2. del)
Boštjan Kežmah, Muhamed Turkanović (UM FERI)

Kezmah Turkanovic

Dr. Kežmah in Dr. Turkanović bosta po množici vprašanj, ki so ostala odprta po živahnem soočenju v sklopu dneva FERI, skozi predstavitev in analizo konkretnih primerov ponovno soočila svoje nasprotujoče si argumente (humbug ali avspicija) glede pridobitev vpeljave in uporabe tehnologij veriženja blokov (Blockchain) v različnih domenah ter osvetlila njihov učinek na ključna področja delovanja sodobne družbe (pravosodni sistem, novi poslovni modeli, storitveni ekosistemi itd.).

 

10:00 – 10:50 BLOCKCHAIN V AKCIJI
Vodji sekcije: dr. Boštjan Kežmah, dr. Muhamed Turkanović

Sledenje ukradenim bitcoinom po verigi blokov
Marko Gašparič (MaG IT d.o.o.), Boštjan Vesnicer (H-Bit d.o.o.)

Gašperič Vesnicer

Konec leta 2017 se je zgodil napad na NiceHash, v katerem je bilo ukradenih več kot 4700 bitcoinov. Napadalci so, z zlorabo sistema za izplačevanje, najprej prenesli bitcoine iz NiceHash denarnice na pet različnih naslovov; potem pa so se kovanci razpršili.

Mešanje določenih kovancev z drugimi se pogosto uporablja za prikrivanje izvora kovancev. Pri kripto-valutah, kjer so vse transakcije javne, se ta metoda uporablja za legitimne namene, npr. za zaščito zasebnosti, in za nelegitimne namene, npr. kot pranje denarja. Do določene mere poteka mešanje tudi spontano, saj lahko transakcije v verigi blokov vsebujejo izhode več transakcij, ki se lahko razdelijo po več naslovih. Zaradi teh aktivnosti je sledenje kovancem po verigi blokov oteženo.

Načeloma je pri kraji bitcoinov najbolj verjetno, da se bo ugotovilo identiteto roparja pri izplačilu. Npr. ob pretvorbi ukradenih kovancev v drugo valuto. Zato je NiceHash razvil orodje za zaznavo menjav kovancev na spletnih menjalnicah za kripto-valute in pologe ukradenih kovancev na lastni platformi. To orodje temelji na seznamu “pomembnih” transakcij, na katerega je transakcija uvrščena, če vsebuje dovolj “umazanih” kovancev.

Analiza kovancev deluje dovolj hitro, da se seznam transakcij osveži z vsakim novim bitcoin blokom in tako omogoča sprotno preverjanje transakcij, ki prihajajo na naš sistem. Možno je tudi dokaj hitro preverjanje poljubnih transakcij, npr. takšnih, ki bi lahko bile izvedene na menjalnicah za kripto-valute.

V prispevku bomo natančno opisali kako je potekalo reševanje problema in s kakšnimi težavami smo se soočili. Za ponazoritev bomo predstavili tudi nekaj empiričnih podatkov in primerov dejanskih analiz.

 

Implementacija nadgradljivosti in zamenljivosti pametnih pogodb na platformi ethereum
Blaž Podgorelec, Muhamed Turkanović (UM FERI)

Podgorelec Turkanovic

Glede na poročilo Gartnerjevega grafa navdušenja za tehnologijo veriženja blokov (angl. Hype Cycle for Blockchain Technologies) iz leta 2017 se pametne pogodbe (angl. Smart Contracts) nahajajo v fazi zasnovi koncepta, kar proži veliko zanimanja javnosti. Sami koncepti pametnih pogodb so bili predstavljeni že leta 1997, vendar zaradi neobstoja ustrezne tehnologije niso imeli možnosti ustreznega razvoja. Vzpostavitev soglasja med nepoznanimi deležniki, ki ga ponuja tehnologija veriženja blokov (angl. Blockchain), pa je omogočila oživitev in razvoj že predlaganih konceptov, ki sedaj predstavljajo dodano vrednost tehnologiji veriženja blokov. Tako je leta 2013, za razliko od platforme verig blokov Bitcoin, platforma Ethereum ponudila možnost razvoj pametnih pogodb na verigi blokov s Turingovo polnostjo. Omenjena platforma še danes velja za najbolj popularno platformo za razvoj pametnih pogodb na verigah blokov.

Zaradi omenjene zgodne faze razvoja pametnih pogodb so izoblikovani vzorci dobrih praks razvoj in arhitektur decentraliziranih aplikacij, ki temeljijo na pametnih pogodbah zelo okrnjeni. Pametne pogodbe se osredotočajo predvsem na avtomatizacijo vnaprej programirljivih transakcij, katere pa lahko v primeru napake v razvoju pametne pogodbe s strani razvijalca, izpostavijo določena varnostna tveganja, ki lahko rezultirajo v veliko poslovno škodo deležnikov poslovnega procesa. Razvijalci pametnih pogodb, tako prevzemajo veliko odgovornost, ki zahteva skoraj ničelno toleranco do napak. Zaradi tehnologije veriženja blokov velja za pametne pogodbe nameščene v omrežje Ethereum nezmožnost naknadnega spreminjanja, kar lahko v primeru napačne implementacij privede do nepredvidenih anomalij v delovanju le teh. Težava je prisotna na javnem ali zasebnem omrežju platforme Ethereum. Prav tako se postavi vprašanje, kako je z nadgradnjo ali spremembo že definiranega poslovnega procesa. Prav zaradi omenjene problematike, se raziskovalci in razvijalci, ki za razvoj pametnih pogodb uporabljajo platformo Ethereum, osredotočajo na iskanje načina gradnje pametnih pogodb, ki bi v primeru zahtev po spremembah poslovne logike ali ugotovljenih hroščev v implementaciji posameznih že nameščenih pametnih pogodb, omogočala nadgradnjo oz. odpravo le teh.

Namen prispevka je predstaviti arhitekturo in s tem predlog dobre prakse gradnje pametnih pogodb, ki učinkovito omogoča zamenljivost in nadgradljivost že nameščenih pametnih pogodb omrežja Ethereum. Predstavili bomo modelirane koncepte in podali primere v visoko nivojskem programskem jeziku platforme Ethereum imenovanim Solidity. Predloge bomo podkrepili na primeru ekosistema za upravljanje digitalnih mikro certifikatov na verigah blokov EduCTX, ki smo ga implementirali s pomočjo pametnih pogodb na platformi Ethereum.

 

11:10 – 12:30 BLOCKCHAIN REŠITVE IN TEHNOLOGIJE
Vodja sekcije: dr. Dean Korošec

Razvoj programskih rešitev veriženja blokov za energetsko poslovno domeno
Andrej Bregar, Ciril Kafol, Jure Trilar, Matej Nosan (Informatika d.d.)

Trilar

Ena aktualnejših tehnologij zadnjega časa je veriženje blokov, ki zagotavlja sledljiv in zaupanja vreden konsenz glede velikih množic transakcij. Ta tehnologija pridobiva vse več privržencev in primerov uporabe v različnih poslovnih domenah. V prispevku analiziramo in predstavimo možnosti in scenarije celovite uporabe mehanizmov veriženja blokov v povezavi s poslovnimi ter reguliranimi procesi energetskih sistemov. Kot enega prvih vzorčnih primerov v tej domeni realiziramo predlog pilotskega projekta razvoja in uvedbe programske rešitve veriženja blokov v izbranem procesu transparentnega, varnega ter sporazumnega prenosa merilnih podatkov na trgu z električno energijo. Prototipna rešitev je razvita na platformi Ethereum in zajema vse ključne elemente veriženja blokov, kot so poslovna pravila na osnovi pametnih pogodb, zapisovanje in persistenca transakcijskih podatkov v blokih, porazdeljena večvozliščna arhitektura, uporabniška identiteta, varnostni mehanizmi na podlagi certifikatov in podpisovanje z žetoni. Varen uporabniški vmesnik je razvit kot decentralizirana aplikacija. Model je zaseben, kar pomeni, da končni odjemalci ne morejo vzpostaviti lastnih vozlišč, temveč dostopajo s svojimi identitetami, ki se vodijo z javnimi ključi, prek varnega spletnega uporabniškega vmesnika do vozlišč distributerjev, na katerih infrastrukturo so vezana merilna mesta. V prispevku opišemo implementirani poslovni scenarij, pametne pogodbe s procesnimi pravili, podatkovni model, arhitekturo sistema, varnostne mehanizme in uporabniški vmesnik. Ker temelji programska rešitev na specifični izbrani platformi, opravimo tudi primerjavo razpoložljivih tehnologij veriženja blokov in izbiro najprimernejše tehnologije za aplicirani scenarij v energetski domeni. Članek zaključimo z analizo pridobljenih izkušenj z uporabo in zrelostjo tehnologije. Izpostavimo tako prednosti in priložnosti kakor tudi pomanjkljivosti in dvome.

 

Uporaba tehnologije veriženja blokov za upravljanje ekosistema podatkov o vozilih
Jaka Jenko, Andrej Meh, Ambrož Stropnik (Kivi Com d.o.o.)

Jenko Stropnik

Digitalizacija procesov, inteligentni sistemi, tehnologije veriženja blokov (angl. blockchain) in poslovanje s kriptovalutami so področja brez katerih si ne znamo več predstavljati sodobnih informacijskih sistemov in informacijskih storitev. Njihovo praktično uporabo zasledimo na vseh področjih, od uporabe v proizvodnih informacijskih sistemih, v zdravstvu in nenazadnje tudi v različnih sistemih namenjenih za obdelavo podatkov iz vozil.

Prihodnost avtomobilske industrije je tako v upravljanju ekosistema podatkov o vozilih.

Področje sistemov za obdelavo podatkov iz vozil je v zadnjih nekaj letih naredilo ogromen korak naprej, kjer danes že težko najdemo vozilo, ki ne komunicira z okolico oz. proizvajalcem. Posledično večina proizvajalcev vozil ponuja uporabnikom vozil različne storitve za obdelavo podatkov o statusu vozila (npr. BMW ConnectedDrive, Škoda Connect, Volkswagen Connect itn…) in storitve, povezane s statusom vozila (npr. naročilo na servis). Prav na tem področju pa so različni proizvajalci programske opreme naredili še korak naprej, saj se že pojavljajo različne platforme, ki so s pomočjo uporabe OBD II naprav sposobne pridobivati in obdelovati podatke različnih vozil, različnih proizvajalcev (npr. Munic) z namenom upoštevanja in nadgrajevanja zahtev kupcev / uporabnikov in zagotavljanja vedno boljše storitve. Zato takšne platforme niso zanimive samo za uporabnike vozil, ampak tudi za različne druge ciljne skupine, ki jih obdelava podatkov o vozilih zanima, npr: servisne hiše, zavarovalnice, različna podjetja za sledenje in upravljanje službenih vozil itd. Iz vidika možnosti uporabe tako ne govorimo več o platformi, ki je sposobna podatke iz vozil prejemati in obdelovati, ampak je to ekosistem za obdelavo in upravljanje podatkov o vozilih.

Takšen ekosistem, imenovan Viapan, razvijamo tudi mi in ga v prispevku predstavljamo kot projekt v razvoju. Namen prispevka je predstaviti deloma vsebinski del sistema Viapan, predvsem pa tehnološko ozadje ekosistema za upravljanje in obdelavo podatkov o vozilih kot smo si ga zamislili mi: celotno arhitekturo ekosistema, ki obsega zajem podatkov iz OBD II naprave v vozilu, ustrezne komunikacije naprave s procesnim centrom in obdelave ter priprave podatkov za potrebe različnih skupin uporabnikov ekosistema. Pri tem podrobneje predstavimo eno od možnosti uporabe sodobne tehnologije veriženja blokov za namen implementacije registra vozil kot osnove ekosistema in izpostavimo prednosti, slabosti in izzive uporabe omenjenega pristopa uporabe tehnologije veriženja blokov.

 

ARK ekosistem: primer uspešnega odprtokodnega razvoja tehnologije veriženja blokov skupaj s skupnostjo
Kristjan Košič, Rok Černec, Alex Barnsley, Francois-Xavier Thoorens (ARK ECOSYSTEM)

Kosic Kosic Kosic Thoorens

V prispevku bomo analizirali in preleteli razvoj odprtokodnega in decentraliziranega ekosistema, katerega namen je razvijalcem ponuditi orodja in storitve, za razvoj in integracijo tehnologije veriženja blokov v obstoječe informacijske sisteme (ARK Ekosistem). V vlogi distribuiranih ekosistemov je predvsem pomembna vključitev aktivne skupnosti, ki skupaj decentralizirano vodi, razvija in sodeluje pri usmerjanju novih funkcionalnosti in potreb, ki izhajajo iz skupnosti same, ter tako omogoča resnično organsko rast in nastanek novih naravnih poslovnih modelov. Skrivnost uspeha (kot povsod) se skriva v postavljanju skupnih ciljev in vpeljavi tehnologije tam, kjer je najbolj potrebna. Seveda, to ne bi bilo uspešno brez odprtokodnih platform in že vzpostavljenih procesov, ki se skrivajo v ozadju. V prispevku si bomo podrobneje ogledali kako poteka razvoj odprtokodne rešitve ARK Ekosistem skupaj s skupnostjo, ter izpostavili nove funkcionalnosti in novosti, ki sledijo v težko pričakovani verziji v2.

 

12:30 – 13:30 KOSILO

 

13:30 – 14:10 VABLJENO PREDAVANJE
Vodja sekcije: mag. Ivan Lah

Game changer cloud computing – why cloud computing is changing the IT vendor / service landscape
Achim Heidebrecht (NOVUM GmbH)

Heidebrecht

The IT industry always damanded heavly that companies have to change the way they are dealing with hardware, software, processes, security, etc. Change was always something the customers had to conduct in their organisations. A very comfortable situation for IT vendors and service providers.

But today? Cloud computing is on the table. Bear in mind, that cloud computing was invented by a retail company not by leading IT vendor. Amazon Web Service (AWS) started its business in 2006 and is the cloud computing leader today (estimates revenue of 20 billion US$ in 2018). Cloud computing is not in its infancy for a long time. The maturity is awesome. Traditional IT vendors and service providers are struggling with decreasing revenue and profit. How does cloud computing impact the IT vendor and service industry?
How does the IT department of enterprises change their behavior in the light of cloud computing? Today many companies move their applications into the cloud because of security and compliance reasons, not for saving money as the first priority. This shows how fundamental the change is.

The talk will cover these issues happening at enterprise IT departments as well as the impact for the IT vendor and service provider landscape.

About the speaker:

Achim Heidebrecht is CTO of NOVUM GmbH, Nueremberg, Cologne, Vienna & Maribor.

Before joining NOVUM he served several years for Talanx AG, Germanys third largest insurance group, in leading IT positions, at last as Head of Group IT. His IT and business expertise covers the sell side as well as the buy side of the IT business. In 2014 he was rewarded with the German Best-in-Cloud Award in the category IaaS/PaaS and in 2016 with the German Digital Leader Award in the category invent markets.

 

14:10 – 15:40 SODOBNE ARHITEKTURE IN REŠITVE
Vodja sekcije: mag. Bojan Štok

Kako načrtovati sodobno arhitekturno rešitev za kompleksne informacijske sisteme
Ervin Lemark, Tjaša Šoster, Damijan Kavs, Vid Bevčar (COMLAND d.o.o.)

Lemark

Kot razvijalci in vzdrževalci informacijskih rešitev se vedno znova vprašujemo naslednje:

Kako in s čim bi se lotili razvoja kompleksnega sistema, ki bi bil sposoben zadostiti hitro rastočim
potrebam, bi se ga dalo enostavno razširjati z novimi zmožnostmi, bi bil dostopen na različnih
napravah, bi se ga dalo celo klonirati in uporabiti drugje, hkrati pa bi bil varen, bi zadoščal
standardom in zakonskim zahtevam ter še prijazen do uporabnika in enostaven za vzdrževanje?

Tako je, večno Million Dollar vprašanje izdelovalcev informacijskih sistemov …

Zgodi se tudi, da nam to vprašanje zastavi naročnik. Za kar smo mu globoko hvaležni, tudi če se na koncu odloči za manj sodobno rešitev. To vprašanje smo si zadnje čase pogosto zastavili. Z veseljem vam povemo, da smo odgovor našli in ga zapisali. Tu vam ga predstavimo.

Naš odgovor je …

Arhitektura, zasnovana na mikro storitvah

Mikro storitve so buzzword že nekaj časa. Vsi res veliki informacijski sistemi jih uporabljajo. Ko skočite na katerokoli globalno spletno aplikacijo (Amazon, Facebook, Twitter, eBay, …) uporabljate arhitekturo z mikro storitvami.

Kaj pa uporaba mikro storitev v poslovnih informacijskih sistemih, aplikacijah za naročnika, naših lastnih izdelkih? Tu se še kar oklepamo starejših, z leti preizkušenih pristopov.

Čas je, da gremo naprej. Kako? Tu je recept.

Model arhitekture (in tehnologije) sodobnega informacijskega sistema

Predstavljamo vam naš arhitekturni recept. Hkrati odgovarjamo tudi, s katerimi tehnologijami menimo, da najbolje izvedemo posamezne dele sestavljanke.

 

IT integracije v sodobnih elektroenergetskih omrežjih z uporabo modela CIM
Nikola Risteski (Bintegra d.o.o.)


Na področju proizvodnje in dobave elektrike se dogajajo korenite spremembe – zavezani smo k zniževanju ogljičnega odtisa, povečanju deleža elektrike iz obnovljivih virov, uvajamo električne avte, prehajamo na distribuirano in manj predvidljivo proizvodnjo elektrike (sončne, veterne elektrarne). Rešitev za prej omenjene izzive elektroenergetskih omrežij predstavlja razvoj tako imenovanega pametnega omrežja (angl. “Smart Grid”). Večina definicij pametnega omrežja izpostavlja uporabo digitalne izmenjave informacij z namenom zagotavljanja stabilnosti, varnosti, zanesljivosti in učinkovitosti, kot tudi interoperabilnosti med različnimi udeleženci znotraj omrežja, kot tudi med različnimi omrežji. Iz tega je razvidno, da je razvoj pametnega elektroenergetskega omrežje nepredstavljiv brez integracij nekoč popolnoma nepovezanih sistemov.

V okviru prizadevanj za implementacijo pametnega omrežja, slovenski sistemski operater prenosnega omrežja ELES izvaja projekt pilotnega razvoja pametnega omrežja v Sloveniji v sodelovanju z japonsko agencijo NEDO. V okviru navedenega projekta sodelujemo tudi podjetje Bintegra d.o.o., kjer smo se osredotočili na zagotavljanje integracij oz. interoperabilnosti z implementacijo arhitekture storitvenega vodila (angl. Enterprise Service Bus), oziroma natančneje arhitekturo mikrostoritev.

Tehnologija, ki smo jo izbrali za implementacijo rešitve je Apache ServiceMix, kar predstavlja skupek različnih odprtokodnih tehnologij za implementacijo integracijskih projektov. Potreba po interoperabilnosti med razlinimi operaterji napeljuje k implementaciji splošnih standardov, ki veljajo za vse operaterje. V tem primeru smo se odločili za uporabo modela Common Information Model (CIM), ki je namenjen kot osnova za standarde za izmenjavo komunikacij na področju energetike. Pri integraciji smo uporabili nabor standardov IEC (International Electrotechnical Commision) za izmenjavo podatkov med udeleženci elektroenergetskega trga.

 

Informacijska rešitev za upravljanje odjema električne energije gospodinjskih odjemalcev
Gašper Lakota, Tomaž Buh (Solvera Lynx d.o.o.)

Lakota Buh

V okviru slovensko-japonskega sodelovanja na področju pametnih omrežij, t.i. NEDO projekta, se izvaja pilotni projekt upravljanja odjema električne energije gospodinjstev. Gre za enega izmed prvih projektov upravljanja odjema električne energije gospodinjstev v Sloveniji in je namenjen pridobivanju znanja in izkušenj pri gospodinjskih uporabnikih in njihovem obnašanju v primeru različnih načinov upravljanja odjema, prepoznati zahteve in načine integracije različnih informacijskih sistemov za potrebe vodenja elektrodistribucijskega omrežja ter preveriti, kako lahko različne vrste naprav za upravljanje odjema povežemo v celoten sistem upravljanja z energijo v elektrodistribucijskem podjetju.

Družba Solvera Lynx d.o.o. je v okviru projekta razvila rešitev za centralno upravljanje odjema (ang. Demand Response Control System – DRCS) gospodinjstev in malih poslovnih odjemalcev (priključne moči ≤ 43 kW). Sistem DRCS omogoča sprejemanje in izvajanje zahtevkov za znižanje odjema. Sistem DRCS na podlagi preteklih merilnih podatkov in analitičnih modelov napoveduje odjem ter hkrati ocenjuje potencial za znižanje odjema. Znižanje odjema pri odjemalcih se doseže z obveščanjem preko SMS in e-pošte, nekateri odjemalci pa so opremljeni še z napravami za avtomatsko nižanje odjema. Komunikacija s temi napravami se izvaja preko programskih rešitev kot storitev (angl. Software as a Service – SaaS), ki jih zagotavljajo ponudniki naprav. Z drugimi sistemi je DRCS povezan preko t.i. CIM integracijskega vodila, nadgrajenega za potrebe Elektro Maribor. Testiranje funkcionalnosti se izvaja v okviru pilotnega projekta Premakni porabo.

 

16:00 – 18:00 KIBERNETSKA VARNOST IN ZAŠČITA PODATKOV
Vodja sekcije: Milan Gabor

Mikroamnezija – kako mikroservisi v sporočilno usmerjeni arhitekturi rešujejo izziv GDPR
Tomaž Lukman, Norman Seibert (iteratec GmbH)

25. maja 2018 začne veljati splošna uredba o varstvu podatkov (General Data Protection Regulation – GDPR), ki v IT sistemih regulira obdelavo osebnih podatkov prebivalcev EU. GDPR je izjemen izziv za večino podjetij in je za podjetja z velikim številom podedovanih sistemov skoraj nočna mora. Kot razvojni partner za kompleksne projekte, nas je, da končamo to nočno moro, najel nemški avtomobilski proizvajalec. Cilj je bil razviti IT rešitev za GDPR v kontekstu personaliziranega spletnega portala in pripadajočih mobilnih aplikacij. V tem kontekstu obstaja preko sedemdeset sistemov/storitev, ki obdelujejo osebne podatke.

V prispevku je opisan začetni IT ekosistem omenjenega portala in zahteve, ki izvirajo iz GDPR. Nato so podane zahteve, izpolnilnjene z najosnovnejšim sprejemljivim produktom (minimal viable product – MVP), ki omogoča brisanje osebnih podatkov. Osrednji del prispevka je opis mikroservis arhitekture našega MVP, ki temelji na asinhroni sporočilni komunikaciji preko Apache Kafka, ustaljenega posrednika sporočil (message broker). Sledi opis evolucije arhitekture, s katero smo omogočili izpolnjevanje vedno več zahtev povezanih z GDPR.

Ena izmed pomembnih nefunkcionalnih zahtev je skalabilnost, saj na začetku ni bilo jasno, koliko sistemov/storitev v ekosistemu portala obdeluje osebne podatke. Kombinacija posrednika sporočil zgrajenega za masivno skalabilnost in mikrostoritvenega pristopa nam je v zelo kratkem času omogočila razširitev dometa naše GDPR rešitve. Danes le-ta pokriva vse sisteme na področju prodaje prestižnega avtomobilskega proizvajalca.

 

Varnostne ranljivosti pametnih pogodb platforme Ethereum
Marko Hölbl, Blaž Podgorelec (UM FERI)

Hölbl Podgorelec

Pametne pogodbe s podporo tehnologije veriženja blokov so v omejeni obliki možne že znotraj Bitcoin protokola, vendar so šele leta 2013 s platformo Ethereum dobile podporo Turingove polnosti ter s tem na razsežnosti. Čeprav trenutno ni edina, je platforma Ethereum najbolj popularna platforma za razvoj pametnih pogodb, kar je razvidno tudi iz trenutne številčnosti začetnih ponudb kovancev (ang. ICO), ki se odvijajo v okviru javnega omrežja Ethereum s pomočjo namenskih pametnih pogodb.

Kljub temu da ni bil edini (LLL, Serpent), je Solidity trenutno edini merodajen visokonivojski programski jezik za razvoj pametnih pogodb na platformi Ethereum. Le ta ima zaradi namenske rabe (pametne pogodbe na verigah blokov pod okriljem navideznega stroja Ethereum (EVM)) ter svoje mladosti določene specifike, izzive ter tudi težave v obliki varnostnih ranljivosti. Tudi za najbolj znane vdore v pametne pogodbe (primer DAO ali vdor Parity) pripisujejo varnostnim luknjam programskega jezika Solidity.

V prispevku bomo predstavili znane pasti razvoja pametnih pogodb v programskem jeziku Solidity na platformi Ethereum. Med temi se bomo predvsem osredotočili na možnost ponovnih vključitev (ang. re-entrancy), obstoj hroščev sporočilnega sklad (ang. callstack bugs), uporabe pomanjkljivih matematičnih funkcij, možnost izpada lastništva (ang. fallout), pasteh nadomestnih funkcij (ang. fallback functions) v povezavi s prenosom domorodne kriptovalute Ether med posameznimi računi v omrežju itd. Predstavitve posameznih napadov bomo podkrepili z dejanskimi primeri ter povezavami med njimi ter z rešitvami za odpravo teh ranljivosti.

V prispevku bomo predstavili tudi orodja in storitve, ki so nam lahko v pomoč pri pregledu varnosti izvorne kode pametne pogodbe. Zaključili bomo s priporočili osredotočeni na varnostne vidike pametnih pogodb, ki so lahko vodilo za dobre prakse razvoja nad verigami blokov.

 

Zaščita podatkov in hiperkonvergenca: naša izkušnja
Damijan Bačani (Comtrade Gaming HYCU, Inc.)


What hyper-converged infrastructure is and how we created an application-centric data protection solution for it. How does it differentiates from the legacy infrastructure models and its cousin, converged infrastructure, and how important data backup and recovery is for such systems and for today’s IT in general.

Hype-converged Infrastructure

More or less every enterprise looks at software solutions in a way to grow the business. The systematic solution which supports this business process certainly does not lie in the legacy infrastructure model, where computing power, networking, software and storage are standalone blocks which needs an entire army of IT engineers which ultimately do the hard work of integrating and maintaining them. Nor in the more sophisticated legacy model called Converged where the idea is the system which integrates the previously mentioned physical blocks into the physical solution bundle which is pre-configured and ready to connect to electricity. The right answer is hype-converged infrastructure. This fully software-defined IT infrastructure assembles storage, computing and networking into a singlesystem solution. This significantly reduces the engineering effort, data center complexity and increases scalability.

Hype-converged Infrastructure Suppliers

The hyper-converged market has matured over the last few years, with a range of hardware and software offerings. Simplivity, VMware, Stratoscale, ZeroStack and Nutanix are some of HCI players with Nutanix being a leader in hype-converged infrastructure segment.

Our company is working with Nutanix to improve data protection for applications running on Nutanix hype-converged infrastructure and has created a product that perfectly fits into this strategy – HYCU Data Protection for Nutanix.

Nutanix solution allows customers to seamlessly select, provision, deploy & manage their Business Apps across all their infrastructure, both private and public cloud. It will eventually support all the components required to manage a complete Software Defined Data Center (SDDC).

Benefits for Dev/Test and DevOps teams

Whether your development team is developing new IT applications or producing new in-house or commercial software, an efficient, high-performance development and test environment can help drive productivity, improve time to market, and have a direct impact on revenue.

What does that mean? “MS Azure or AWS like” self-service access to infrastructure, API-driven infrastructure resources that can be consumed within your application, ability to quickly create and clone dev/test environments are just a few goodies for developers.

Deep Dive: HYCU Data Protection for Nutanix

As Gartner, a leading industry analyst, has reported, enterprise data protection tasks are the most critical in the IT industry and for IT professionals. Do you want to know why we decided to make this product and what technical challenges had to be solved? Interested in technologies used in our product?

 

Zapiranje in odpiranje podatkov v državnih informacijskih sistemih
Samo Maček (Generalni sekretariat Vlade RS), Franci Mulec, Franc Močilar (Ministrstvo za zunanje zadeve)


V informacijske sisteme, ki so namenjeni podpori izvajanju ključnih funkcij države (vlada, zunanje zadeve) se uvrščajo gradiva, ki se razlikujejo po izvoru, vsebinskem področju, vrsti in stopnji zaupnosti. Tudi če se nanašajo na isto zadevo, se lahko za njihovo obravnavo zahtevajo povsem drugačne tehnične rešitve.

Za zaščito interesov države, določena gradiva zapiramo v izolirane sisteme, kjer jih varujemo pred naraščajočimi grožnjami terorizma, organiziranega in kibernetskega kriminala. Na drugi strani je z vidika odprtosti družbe zaželeno, da se v postopke odločanja, če je le mogoče, vključuje zainteresirano in strokovno javnost ter predstavnike civilne družbe. Zato proaktivno omogočamo javno dostopnost določenih vsebin, pod t. i. odprto licenco.

Med obema skrajnostma ločujemo sisteme glede na stopnjo tajnosti (interno do strogo tajno), varnostni razred in nivo odprtosti. Čeprav lahko posamezna zadeva presega tehnične okvire določenega sistema, je treba vseeno zagotoviti njeno celovitost z vsebinskega in uporabniškega vidika. V prispevku bomo prikazali nekaj lastnih praktičnih rešitev s katerimi obvladujemo navedene izzive in so uporabni tudi za naše gospodarske ter druge subjekte.

 

Centralizacija logiranih podatkov z uporabo odprtokodnih rešitev za upravljanje velikih količin podatkov
Marko Polak, Gregor Slokan (Medius d.o.o)


Vsak ki se dnevno ukvarja z razvojem ali nadzorom nad delovanjem ene ali več aplikacij se zaveda pomembnosti logiranja različnih nivojev izvajanj aplikacije. Programer preko logov spremlja ustreznost delovanja aplikacije in rešuje nastale težave v delovanju, sistemski administrator preko logov nadzoruje ustreznost delovanje aplikacije in odkriva potencialne zaplete v delovanju, varnostni nadzornik spremlja potencialne varnostne težave, nadzornik aplikacije od uporabnikov prejema različna poročila o delovanju ali nedelovanju aplikacije, ki jih filtrira in predaja naprej sistemskemu administratorju, varnostnemu nadzorniku ali programerju,… Ustrezno logiranje in uporaba logiranih podatkov sta torej ključna za dolgoročni razvoj in uporabo aplikacije. Ko pogledamo bolj podrobno, je logiranje razdeljeno na dve strani. Ena stran se ukvarja z logiranjem podatkov, druga stran pa s shranjevanjem, obdelavo in iskanjem po podatkih.

Na strani logiranja imamo oblikovana določena poslovna pravila, obstajajo standardi in dobre prakse, ki se jih morajo razvijalci programske opreme držati in to rešuje večino zapletov zbiranja podatkov.

Na strani shranjevanja, obdelovanja in pregleda pa naletimo na kar nekaj izzivov, ki jih je potrebno rešiti. Pri shranjevanju se moramo odločiti o obliki shranjenih podatkov(tekstovna datoteka, stisnjena datoteka), retencijski čas hranjenja podatkov(koliko časa v kaki obliki) in kje bodo podatki shranjeni(ponavadi imamo več različnih sistemov za shranjevanje podatkov odvisno od aktualnosti). Pri obdelovanju tako shranjenih podatkov se večinoma osredotočimo na posamezne datoteke, ali kratkega časovnega obdobja, ker je časovna in sistemska zahtevnost obdelave celotnega sklopa podatkov prevelika. Pri pregledu podatkov pa je pregledovanje ponavadi zaradi (pre)velikih datotek omejeno na konzolne pregledovalnike in iskalnike ali pa izsek log datoteke preko konzolnih ukazov v manjše datoteke, ki jih lahko odpremo z grafičnimi pregledovalniki.

Poleg opisanega pa dodatno dimenzijo problema shranjevanja, obdelovanja in pregleda logiranih podatkov vpeljemo s komunikacijo med različnimi aplikacijami. Vzdrževanje shranjenih podatkov, vzporedno obdelovanje in združevanje, ter iskanje preko različnih logov je svojevrsten problem, ki je težko rešljiv preko konzolnih pregledovalnikov oziroma je rešljiv, a časovno in resursko(človeško) zelo potraten.

Prispevek predstavlja rešitev za vpeljavo centralnega logirnega sistema, v katerega se stekajo podatki povezanih aplikacij. Sistem mora skrbeti za obdelavo(indeksacijo, združevanje,…) podatkov, shranjevanje podatkov in ustrezno iskanje po podatkih. Vse to pa dodatno »začiniti« z iskanjem v skoraj realnem času. Logirani podatki namreč predstavljajo ključ za vpogled v delovanje aplikacije, ustreznost delovanja aplikacije, komunikacijo med aplikacijami in odkrivanje napak. Danes pa je ključen tudi čas od nastanka težave, do odkrivanja in priprave rešitve za nemoteno zagotavljanje internih ali eksternih storitev podjetja. Razlika med »navadnimi« orodji in metodami vpogleda v logirane in opisanega centralnega sistema, je razlika časovne zahtevnosti nekaj dni(za več ljudi) in nekaj minut ene osebe.

Predstavljen bo centralni logirni sistem zgrajen na odprtokodnih, skalabilnih rešitvah(Hadoop, Flume, Morphline, Solr Cloud, Zookeper, Kafka, WildFly…), ki so narejene tako da tečejo na cenovno sprejemljivi strojni opremi(commodity hardware). Ker gre za izziv masovnih podatkov(Big data), je ravno skalabilnost sistema ključna za dolgoročno delovanje. Sistem je skalabilno zastavljen na vseh nivojih(zbiranje in pošiljanje logov v sistem, transformacija podatkov v ustrezno obliko, indeksacija, shranjevanje in iskanje). Integracija s centralnim logirnim sistemom je narejena iz dveh tokov podatkov. Dogotkovni tok podatkov in aplikacijski tok podatkov. Dogotkovni tok zajema točno določeno podatkovno strukturo ključnih podatkov uporabe aplikacije in njene komunikacije z drugimi aplikacijami, aplikacijski pa aplikacijske loge, ki nastajajo na aplikacijskemu strežniku. Prvi služi za lažje iskanje po zajetih podatkih(glede na dogodek, ki je določen kot poslovno pravilo v aplikaciji – vpis uporabnika v aplikacijo, odpiranje pregleda v uporabniškem vmesniku aplikacije,…), drugi pa nam ponudi celotno dogajanje povezano z zabeleženim dogodkom.

V celoto pa naš centralni logirni sistem sklene možnost dodeljevanja pravic vpogleda v podatke(kombinacija okolja kjer teče aplikacija in aplikacije), nivoji obfuskacije osebnih podatkov na podlagi določenih karakteristik podatkov ter možnost brisanja specifičnih podatkov(GDPR).

Pregled nad vsemi opisanimi komponentami, njihovo povezovanje v stabilno celoto, dodatna povezava s svojimi rešitvami(razvitimi v programskem jeziku Java), tam kjer odprtokodnih ni ali niso uporabne, opis delovanja takšnega sistema in izzivi s katerimi smo se v praksi soočili je predmet tega članka.

 

18:00 DRUŽABNO SREČANJE

nagovor predstavnika generalnega pokrovitelja: dr. Simon Jurič, Inova IT d.o.o.

koncert Nike Zorjan

 

SREDA, 20. 6. 2018

9:00 – 10:50 AGILNI PROCESI IN PRISTOPI K RAZVOJU

Civilizacija dobrih slabih programov
Matej Šprogar (UM FERI)

Sprogar

Ljudje smo vedno bolj le figurice, nujni statisti v igri neorgansko rastočega kapitala. Vsakodnevno obstreljevanje z reklamami nam vsiljuje nove in nove izdelke in kot civilizacija smo posledično postali dobesedno odvisni od (domnevnih) izboljšav. Dejansko stanje ocenjujejo za nas drugi, lastno mnenje je postalo nepotreben in včasih celo nevaren luksuz, zgodovinski spomin se je skrčil na minimum. Vse to vpliva tudi na razvoj v programskem svetu.

Na spletu je viden trend pavšalnih komentarjev kot “ta program je zastarel”, “že pol leta ni bilo commitov”, “tega nihče več ne uporablja” ali pa “X je to!”, “Y bo rešil vse težave!” in “novi Z je revolucionaren!”… Vse to je slaba, a nujna posledica spremenjene miselnosti celotne generacije, ki vpliva tako na stanje programske opreme kot tudi programskih jezikov.

S programiranjem se danes ubada ogromno ljudi, a komaj eno človeško življenje nazaj je bil na planetu le en pravi “moderni” programer — oče računalnika Alan Turing. Ker je število programerjev drastično narastlo, je povprečno znanje seveda upadlo. Tudi zato s(m)o izumljali nove in nove prijeme, a jih žal večinoma ne uporabljamo za boljšo kodo, ampak več kode. Dejansko zna vsaka naslednja generacija programerjev v povprečju manj, čeprav se zdi, da naredi “več”. Ampak številčnost programerjev je prinesla nesluteno širino idej in svežine in z GNU/Linuxom celo dostojno alternativo profitno usmerjenim korporacijam.

Vojna za denar pa se dejansko vrti okoli programerjev – kdor “ima” programerje, ima programe in kdor ima programe, ima uporabnike. Današnji programerji zahtevajo in celo pričakujejo vedno bolj “udobne” jezike in orodja tudi zaradi odseva splošne potrošniške iluzije, da je nov produkt nujno boljši od starega – da je torej novejši prevajalnik že sam po sebi garant za kvalitetnejši program… Posledično se programerji polenijo in s tem dejansko pripomorejo k povprečnemu upadu znanja in tudi širitvi slabih praks: nek problem je vedno mogoče rešiti na več načinov, a razširila se žal ne bo najboljša rešitev, ampak tista z največ reklame. Ko programer nekritično sprejme neko rešitev in jo (slepo) uporabi, jo dejansko promovira! Ampak kritičnost je mogoča samo, če imamo znanje in dostop do izvorne kode; ker pa je znanje omejeno in ker je mnogo kode licenčne in skrite, upada tudi nivo kritičnosti, kar spet zniža raven znanja…

Kapital nujno potrebuje stabilno proizvodnjo, zato od nekdaj vzpodbuja načine, ki podpirajo spremembo intelektualnega procesa programiranja v obrtniško merljivo tipkanje. (Če bi to bilo mogoče, bi seveda lahko program nadomestil programerja!) Programerji pa v posledično vedno bolj birokratsko vodenem okolju ne delajo optimalno. Temeljni razkorak med razvojem in uporabniki je skušal preseči agilni manifest iz leta 2001, ki je lepo ubesedil nesoglasje med programerji in tedanjimi razvojnimi praksami. Ampak agilne ideje so dosegle resnični preboj le na procesnem področju (scrum), na tehnološkem (XP) pač ne. Posledica je bila razvodenitev gibanja, nastanek novih iniciativ (“Software Craftmanship” 2009) in borba za XP nasledstvo.

Članek postavi v drugačno perspektivo nekaj prelomnih točk iz kratke zgodovine računalništva in skuša najti skupni imenovalec za uspele in neuspele inovacije. Torej kaj imajo skupnega Apple, GNU/Linux, Java, scrum in Nokia…? Se lahko iz povedanega kaj naučimo? In konec koncev, zakaj se ista zgodba venomer ponavlja!?

 

Družinsko centrična zasnova spletne aplikacije MyFamily
Vid Čermelj, Jure Trilar, Veronika Zavratnik, Emilija Stojmenova Duh (Univerza v Ljubljani, Fakulteta za Elektrotehniko)

Cermelj Trilar

V zadnjem času je bilo veliko govora o pametnih napravah, ki nam naredijo pameten dom. Vedno bolj pa postaja aktualen koncept pametnega mesta. Na evropskem programu EkoSmart (http://ekosmart.net/sl/o-projektu/), Fakulteta za elektrotehniko, Univerza v Ljubljani v sodelovanju s številnimi slovenskimi podjetji in ustanovami razvija ekosistem pametnega mesta z vsemi podpornimi mehanizmi, ki so potrebni za učinkovito, optimizirano in postopno integracijo posameznih področij v enovit in povezan sistem vrednostnih verig. Program se osredotoča na tri ključne domene pametnega mesta, to so zdravje, aktivno življenje in mobilnost. Program EkoSmart sestavlja šest projektov, ki vsak po svoje prispevajo k uresničevanju vizije programa. Aplikacija MyFamily je bila razvita v okviru projekta RRP3 v kategoriji aktivnega življenja in dobrega počutja.

Namen projekta je bil razvoj aplikacije MyFamily. Aplikacija je namenjena družinskim članom znotraj pametnega mesta. Služi kot platforma kjer si lahko otroci, starši in stari starši med seboj postavljajo naloge in cilje. Ko cilj dosežejo pa se lahko nagradijo.

Pred začetkom implementacije aplikacije smo s pomočjo spletnega vprašalnika ter polstrukturiranih intervjujev identificirali uporabnikove potrebe in mehanizme za spodbujanje aktivnega in zdravega življenja družin v pametnem mestu. S pomočjo teh podatkov smo izdelali načrt funkcionalnosti za delovanje aktivne in zdrave družine v pametnem mestu.

Za razvoj smo uporabili družinsko-centrični pristop razvoja aplikacij. Papirnati prototip smo testirali na uporabnikih, njihove nasvete pa nato uporabili pri implementaciji Interaktivnega prototipa. Prototip smo želeli izvesti v obliki napredne spletne aplikaije (Progressive Web App). Temeljna izhodišča so bila: večja privlačnost za končne uporabnike, zanesljivo delovanje, ne glede na stanje omrežja ter uporabnost na različnih napravah. Za strežniški del aplikacije smo uporabili Node.js, za del na klientu pa jQuery in jezik za avtomatsko generiranje predlog (templating language) ejs. Za podatkovno bazo smo uporabili MongoDB. Ker je aplikacija narejena za specifično skupino (za družine), smo morali arhitekturo baze temu ustrezno prilagoditi. Predvsem je tu zanimiv problem relacij med člani družine. Odločili smo se, da bomo vsako družino shranili kot svoj objekt. Aplikacija sledi Googlovim standardom razvoja aplikacij, vedno prikazuje samo najpomembnejše podatke in je prilagojena za uporabo na vseh napravah. Zaradi čim boljše uporabniške izkušnje so vse najpomembnejše funkcije aplikacije na eni strani,
dostopne z enim klikom.

Za testiranje vmesnika smo uporabljali različne metrike. Uporabniki so najprej reševali različne scenarije. Tu nas je zanimalo število uspešno opravljenih scenarijev, čas, ki ga je uporabnik potreboval za posamezen scenarij in kritičnost napak, ki jih je naredil. Ko je uporabnik končal z reševanjem scenarijev, je izpolnil še vprašalnike SUS, NASA-TLX in UEQ.

 

Platforma za enostavno prototipiranje mobilnih aplikacij
Blagoj Soklevski, Bojan Brumen, Uroš Pernat, Gregor Plavčak (msg life odateam d.o.o.)

Soklevski Brumen Pernat Plavcak

Življenje v moderni družbi nas na podlagi principa »čas je denar« sili v pametno ter produktivno uporabo časa ter s tem seveda tudi denarja. Kadar prodajamo kakšno svojo idejo je najhitrejši način, da stranki opišemo to idejo, le-ta pa si poskuša slednje vizualizirati v svoji glavi. To nas je pripeljalo k temu, da smo začeli razmišljati kako stranki na intuitiven način predstaviti nek produkt, ki bi pripomogel k samemu razumevanju ter vizualizaciji idejne zasnove. V večini primerov vsakokrat poskušamo razložiti kako naj bi neka stvar izgledala v praksi recimo na neki mobilni aplikaciji z uporabo skiciranja, naših besed, oziroma s pomočjo tvorjenja stavkov. Ker se prvotne idejne zasnove lahko razlikujejo že v osnovi smo kljub vsem omejitvam staknili glave in iskali preprost način kako optimizirati proces prototipiranja na način, da bi to lahko počeli tudi ljudje iz poslovnega sveta oz. tudi takšni z manj tehničnega znanja. Ideja je bila rojena. Potrebujemo rešitev, ki bi na podlagi našega tehničnega znanja ter tehnološke ekspertize omogočala uporabo vsakomur ob vsakem času brez specifičnih znanj z namenom ustvarjanja prototipa mobilne aplikacije.

Platforma je sestavljena iz dveh delov in sicer: spletni vmesnik, ki služi za uporabo dizajniranja izgleda aplikacije ter zaledni sistem, ki generira demo aplikacijo na podlagi vnesenih vhodnih podatkov. Za ta namen smo kot naše osnovne sestavne dele uporabili moderne tehnologije kot so Angular, Kotlin, mikrostoritve ter oblačne storitve. Uporabnik začne proces na spletnem vmesniku, kjer določi barvo aplikacije ter doda posamezne poglede in vnosna polja. Iz tega dizajna nastane JSON datoteka, ki služi kot definicija mobilne aplikacije ter jo je mogoče z gumbom »Generiraj« prenesti na sam oblak. Proces se nadaljuje na oblaku, kjer mikrostoritev ob prejemu JSON datoteke naredi prazen projekt Android narejen v programskem jeziku Kotlin ter le-tega nadgradi z definicijo iz JSON datoteke. Po končanem opravilu se s pomočjo avtomatske skripte generira .apk datoteka ter QR koda, ki je takoj za tem vrnjena v spletni vmesnik in služi kot povezava do prenosa same mobilne aplikacije. Ob skeniranju te kode s pametnim telefonom se prične prenos ter kasneje tudi inštalacija mobilne aplikacije. Ker pa vse skupaj rezidira v samem oblaku je platforma seveda na voljo 24/7.

Naša rešitev bo tako skupek tehnologij in programske kode, ki bo olajšala samo prototipiranje mobilne aplikacije kjerkoli in kadarkoli brez potrebnih predznanj v samo nekaj minutah.

 

Neprekinjena dostava v vzporednem kritičnem poslovnem okolju
Tadej Justin, Žiga Ciglar, Andrej Orešnik (Medius d.o.o.)


Dan danes je vedno več specializiranih podjetji, ki razvijajo programsko opremo le za določeno tehnologijo, programski jezik ali pa celo le posamezen del programja. Opažamo, da je vedno več sodelovanja med podjetji programske opreme na razvoju in izdelavi končnih aplikaciji. Razvoj in realizacija obsežnejšega programja je navadno razdeljena na več zaključenih enot, ki jih lahko realizira poljubna razvijalska skupina oz. razvijalsko podjetje. Pred izvedbo deljenih nalog je v takih primerih vnaprej izbrano in specificirano tudi produkcijo okolje. Vsem skupinam mora biti na voljo čim bolj podobna infrastruktura, kot je na voljo v produkcijskem okolju za preverjanje realizacije izvedenega dela. Le tako so posamezne skupine lahko dovolj samozavestne, da bo njihov izdelek deloval tudi v produkciji. Dostop do enake ali čimbolj podobne infrastrukture pa ni dovolj za oddajo realizirane rešitve naročniku. Skupinam mora imeti na razpolago tudi vsi ostale enote ali module celotnega programa. Le tako lahko skupina dobro preizkusi tudi integracijske funkcionalnosti svojega doprinosa oz. realizirane naloge. Poseben primer deljenega razvoja predstavlja zaprto produkcijsko okolje naročnika. Takrat razvijalske skupine nimajo neposrednega dostopa do produkcijske infrastrukure. Naročnik v takih primerih primerih sam poskrbi za popolno avtomatizacijo izdaje verzije programa v produkcijo. Velikokrat se dodatno izkaže, da ni samo produkcijsko okolje nedostopno, pač pa tudi celotno omrežje naročnika. Takrat je že dostava programske kode v zaprto poslovno omrežje nemogoča. V takih primerih je potrebno celoten proces neprekinjene dostave prilagoditi in upoštevati dodatne možne zaplete pri izdaji skupnega programja v produkcijo.

V tem prispevku predstavljamo izkušnje in realizacijo neprekinjene dostave programske kode z usklajenim delovanjem dveh podjetji, pri čemer je eno v vlogi lastnika programske kode, kontrolorja kvalitete in realizatorja izdaj programa v produkcijsko okolje, drugi pa v vlogi razvijalca. Posebnost te izkušnje je, da slednje žal nima dostopa do nobenega izmed programskih okolji prvega podjetja, nima možnosti niti “odriva” (ang. push) programske kode v omrežje prvega.

Vsi predstavljeni procesi udeleženi v neprekinjeno dostavo predstavljajo posamezne dele tradicionalnega agilnega razvoja aplikacij na osnovi programskega jezika Java. Z uporabo odprtokodnih programskih orodji in ogrodji smo zasnovali skriptirano namestitev, ki nam je omogočila vzpostavitev sistema za orkestracijo izvajanja programov v osebnikih – Kubernetes. S skriptirano namestitvijo lahko enostavno in hitro vzpostavimo ločena okolja namenjena zvezni integraciji (ang. continuous integration), zagotavljanju kvalitete in produkciji v zaprtem omrežju naročnika. Skriptirano namestitev smo s pridom izrabili za namestitev okolja preverjanja zvezne integracije tudi v lastnem okolju – razvijalskem okolju. Tako je zaključena funkcionalnost programja vedno pred oddajo naročniku funkcijsko in integracijsko avtomatično testirana na kar se da podobnem okolju, kot je ta v produkciji.

Dostava programske kode naročniku je izvedena s pomočjo sistema sinhronizacjie verzioniranja kode v sistemu Git, ki je integriran v dva neodvisna strežnika Gitlab. Eden je lociran pri razvijalskem podjetju, drugi pa v zaprtem omrežju naročnika. Slednji ima možnost funkcije prevzema (ang. pull) in dostop do Gitlab strežnika pri razvijalskem podjetju.

Prevzemni tok programske kode je zasnovan tako, da na največji možen način lajša razvoj, testiranje in pred-izdajo naročniku. Vodja razvoja ima možnost kreacije značke znotraj strežnika Gitlab. Ta je mogoče le v kolikor je bil cikel zvezne integracije uspešen. Ob izdaji značke se avtomatsko kreira stisnjena potrditev (ang. squash commit) programske kode v vejo, ki je namenjena sinhronizaciji z naročnikovim strežnikom Gitlab. Sinhronizacija se izvaja z izvedbo sinhronizaijske naloge, ki jo proži časovni razporejevalnik v strežniku Gitlab. Ta izvede prenos in sinhronizacijo Git repozitorijev in avtomatično zažene nalogo zvezne integracije. Če je ta uspešna, se vzpostavi novo okolje s pripadajočo novo funkcionalnostjo programja v okolju namenjenemu kontroli kakovosti. Takrat se obvesti kontrolorja kakovosti, ki novo in stare funkcionalnosti tudi ročno preizkusi. Če so preikusi uspšni, lahko naredi zahtevek za izdajo nove verzije programa. Ta se kreira z ustvorom značke, kateremu sledi avtomatska mamestitev v produkcijskem okolju.

11:10 – 12:50 PODATKOVNE TEHNOLOGIJE IN INTELIGENTNE STORITVE
Vodja sekcije: dr. Tomaž Domajnko

Primerjava odprtokodnih podatkovnih mrež
Bojan Štok, Ciril Petr, Andrej Krajnc (Iskratel d.o.o.)

Stok Petr KrajncA

V prispevku bomo primerjali nekaj popularnih odprtokodnih podatkovnih mrež (ang. data grid). Na običajnih računalnikih nam je v zadnjih letih na voljo vedno večja količina notranjega pomnilnika (RAM), kar nam sicer prinaša vertikalno skaliranje, z večanjem števila strežnikov v mreži, pa imamo tudi možnost horizontalnega skaliranja. Diskovno podprte podatkovne baze vse težje dohajajo vse večje zahteve po vzporedni obdelavi in shranjevanju. Zato večina kombinira podatkovne baze in podatkovne mreže, ki hranijo podatke v pomnilniku. Osnovne funkcionalnosti primerjanih podatkovnih mrež so podobne, razlikujejo pa se v arhitekturi in zmogljivosti. Funkcionalno najbolj bogat je sorazmerno mlad projekt Apache Ignite, ki omogoča enak programski vmesnik kot relacijske baze (SQL, JDBC, ODBC). Medtem ko Redis in Infinispan nista strogo konsistentna (ang. strongly consistent), je Apache Ignite strogo konsistenten in podpira dvofazno potrjevanje (ang. two-phase commit). Najbolj razširjen je Redis, ki pogosto zamenjuje rešitve, ki so temeljile na uporabi Memcached.

 

Umetna inteligenca za telebane – platforme strojnega učenja
Sašo Karakatič, Grega Vrbančič, Jernej Flisar, Vili Podgorelec (UM FERI)

Karakatic Vrbancic Flisar Podgorelec

Uporaba procesov strojnega učenja za večino podjetij predstavlja velik izziv, saj zahteva drag in talentiran kader, spremembo obstoječih poslovnih procesov in izobrazbo obstoječega kadra. Najnovejše tehnike strojnega učenja predstavljajo velik napredek pri obdelavi podatkov, vendar je področje preobrširno za spoznavanje »čez vikend« ali »v popoldanskem času« za ljudi, ki niso strokovnjaki področja podatkovne znanosti (angl. Data Science). Če gradimo nov Uber, Netflix ali Facebook je zahtevnost res ogromna, ampak uporaba obstoječih storitev strojnega učenja znatno olajša ta postopek.

Ena izmed bolj navdihujočih zgodb v zadnjih letih je tista o sinu japonskega kmeta, ki je pomagal očetu na kmetiji kumar. Odločil se je avtomatizirati proces razvrščanja kumar, ki je bil najbolj zamuden del pri kmetijskih opravilih in je zahteval popolno pozornost navzočih. Odločil se je, da zgradi sistem, ki samodejno razvrsti kumare in s tem svojim staršem pomaga pri tej skrbni nalogi. Za razliko od velikih podjetij, fant ni imel strokovnega znanja o strojnem učenju niti velikega proračuna za izdelavo takega sistema. Sin je uspel enostavno uporabiti in vključiti ponujene storitve, ki so mu omogočale prepoznavo različnih vrst kumar tar tako pospešiti proces razvrščanja.

Z uporabo oblačnih storitev strojnega učenja lahko začnemo graditi svoje prve modele umetne inteligence in tako vključiti dragocene napovedi in inteligenco v obstoječe sisteme. V članku bomo razpravljali o obstoječih platformah strategiji strojnega učenja – tako o spletnih (MLaaS ali Machine Learning as a Service) kakor tudi o lokalnih.

 

Analiza inteligentnih oblačnih storitev na primeru prepoznave obrazov
Grega Vrbančič, Vili Podgorelec (UM FERI)

Vrbancic Podgorelec

V zadnjih letih je strojno učenje postalo eden od temeljnih elementov informacijske tehnologije in s tem osrednji, čeprav navadno prikrit del našega življenja. Uporabniki so ozavestili inteligentno obnašanje naprav ter storitev in to od ponudnikov v vedno večji meri tudi zahtevajo. Podjetja so tako primorana nadgrajevati ter razvijati produkte in rešitve v smeri integracije z metodami in tehnologijami strojnega učenja oziroma s pomočjo umetne inteligence. Kljub enormnemu napredku na področju strojnega učenja je slednje še vedno zahtevna naloga, ki zahteva obilico domenskega znanja iz področja podatkovne znanosti. Z namenom zapolnitve omenjene vrzeli se na trgu pojavlja množica rešitev. Med najbolj obetajočimi rešitvami omenjenega problema pa so metode strojnega učenja v obliki storitev, integrirane z računalništvom v oblaku.

V prispevku bomo predstavili področje inteligentnih oblačnih storitev, njihovo integracijo z računalništvom v oblaku ter možnosti, ki jih uporaba takšnih storitev omogoča. Kot praktični primer bomo predstavili uporabo inteligentnih storitev za prepoznavo obrazov.

 

Razvoj inteligentne rešitve Watson Zlitine
Sara Hmelak, Matic Strajnšak, Gregor Kovačevič (Alcad d.o.o.)

Hmelak Strajnsak Kovacevic

Predstavili bomo izkušnje in tehnologije, uporabljene pri razvoju rešitve za podjetje Impol, imenovane Watson Zlitine, ki je uporabna kot pomoč pri sestavi zlitine. Minimizira porabo primarnih elementov in maksimizira uporabo scrapa, hkrati pa omogoča predvideti in napovedati končne mehanske lastnosti pri izbrani recepturi. S tem se že v fazi načrtovanja zlitine optimizirajo stroški, poraba surovine na skladišču ter predvidi ustreznost končnih lastnosti zlitine. Rešitev za komunikacijo z uporabnikom uporablja tehnologijo Watson Conversation iz IBM Blumix Cloud platforme, IBM SPSS Modeler za napovedne algoritme ter IBM MobileFirst za mobilno aplikacijo. Mobilna storitev skupaj z Watson Conversation omogoča tudi komunikacijo Speech to Text ter Text to Speech.

12:50 – 13:40 KOSILO

 

13:40 – 15:00 SPLETNE TEHNOLOGIJE
Vodja sekcije: dr. Boštjan Šumak

Spletne komponente in knjižnica X-TAG
Viktor Taneski, Gregor Jošt (UM FERI)

Taneski

JavaScript, en bolj popularnih programskih jezikov, se izvaja na več kot 90% spletnih straneh. V zadnjih nekaj letih smo priča pojavu programskega jezika JavaScript tudi na različnih platformah in napravah. Glede na obseg in kompleksnost aplikacij, ki jih lahko razvijemo s programskim jezikom JavaScript, običajno stremimo k čim večji ponovni uporabi programske kode (angl. code reuse). Za to so do sedaj skrbela tudi programska ogrodja (angl. frameworks), ki prav tako zmanjšujejo kompleksnost programske kode in posledično razvoja. Programska ogrodja so preizkušena in uporabljena v različnih scenarijih in situacijah ter običajno razvita s strani večjih podjetij, kot sta Google (Angular) in Facebook (React). Pogosta kritika programskih ogrodij JavaScript je, da so številna, se pogosto posodabljajo, razvijalci pa posledično težko sledijo spremembam in novostim. Po drugi strani spletne komponente (angl. Web components) predstavljajo nov pristop razvoja elementov po meri (angl. Custom elements) z ovitimi (angl. encapsulate) funkcionalnostmi, ki jih lahko večkrat uporabimo kjerkoli v kodi. Za razliko od obstoječih ogrodij so spletne komponente skupek W3C specifikacij, ki se hitro pomikajo proti standardizaciji. Ker so te specifikacije v različnih stanjih podprtosti v brskalnikih, je trenutno še priporočljivo uporabiti eno izmed obstoječih knjižnic za razvoj spletnih komponent. V tem članku bomo predstavili knjižnico X-Tag, razvito s strani Mozille in trenutno pod okriljem Microsofta. X-Tag je zelo preprosta JavaScript knjižnica, ki za delovanje zahteva le eno izmed W3C specifikacij spletnih komponent. Podprta je s strani brskalnikov, kot so Internet Explorer 9+, Edge, Firefox, Chrome, Safari in Opera.

 

API kot stičišče Angular obličja in na pametnih pogodbah temelječega zaledja
Patrik Rek, Blaž Podgorelec, Luka Hrgarek, Muhamed Turkanović (UM FERI)

Rek Podgorelec Turkanovic

Pri razvoju informacijskih sistemov se poskušamo držati načela šibke sklopljenosti (ang. loose coupling) posameznih komponent. Načelo velja na vsaki ravni razvoja, od arhitekturne zasnove do programskih razredov, vmesnikov, storitev in podatkov. Iz takšnega načela običajno izhaja delitev na oblični (ang. frontend) in zaledni (ang. backend) del sistema, ki se še najbolj pogosto pojavlja pri spletnih aplikacijah. Če takšno arhitekturo vpeljemo na pravilen način, dosežemo možnost zamenljivosti posameznih komponent z minimalnim ali ničelnim posegom v ostale dele sistema. Prav tako nam takšna arhitektura omogoča ponovno uporabo komponent (npr. uporabo istega zaledja ali API-ja za izdelavo spletne aplikacije), s čimer si,posebej v primeru ponovne uporabe API-ja, skrajšamo čas razvoja in ohranimo konsistentno poslovno logiko, ne glede na uporabniški vmesnik.

V primeru razvoja spletne aplikacije, ki temelji na pametnih pogodbah verig blokov platforme Ethereum, kot zalednega dela sistema, je potrebno vključiti namensko knjižnico web3.js, ki omogoča dostop do le-teh. V primerjavi z razvojem klasičnih spletnih aplikacij, temelječih na centraliziranih strežnikih, zahteva le ta uporabo določenih posebnosti, vezanih na pametne pogodbe. Predvsem je potrebno izpostaviti distribuirano in decentralizirano okolje zaledja ter asinhronost, ki je povezana s tehnologijo veriženja blokov. Če razvijalcu mobilne oz. spletne aplikacije izpostavimo funkcionalnosti, ki jih ponuja pametna pogodba, s pomočjo REST aplikacijskega vmesnika, v veliki meri olajšamo razvoj na pametnih pogodbah temelječih aplikacij, hkrati pa dodamo tudi vmesno točko, na kateri lahko preverjamo identiteto uporabnika, združujemo klice večih pametnih pogodb in dodamo morebitno transformacijo podatkov. Ob tem pa lahko poskrbimo za uporabniško prijazno uporabo tehnologije veriženja blokov.

V prispevku bomo predstavili primer uporabe API-ja kot stičišča spletnega obličja ter zaledja, temelječega na verigah blokov platforme Ethereum. Izpostavili bomo prednosti, slabosti in izzive takšnega pristopa ter povzeli z nasveti za smiselnost uporabe takšnega pristopa.

 

1 leto časa – 20 let zgodovine – 300×10^4 vrstic kode. Transformiraj zdaj!
Robert Kristanc, Marjan Kaligaro (SRC d.o.o.)

Investicija v razvoj programske opreme je praviloma precejšnja. To seveda pomeni, da želimo aplikacijo (če ustrezno funkcionalno deluje) uporabljati čim dlje časa. Dodaten razlog proti menjavi (poslovnih) aplikacij je tudi migracija, ki za sabo prinese cel kup potencialnih nevšečnosti (ki izhajajo bodisi iz nepoznavanja vsebin bodisi iz nekompatibilnosti virnih in ciljnih podatkovnih struktur). V podjetju SRC d.o.o. smo se omenjenih dveh problemov lotili na način, ki ne zahteva migracije in/ali zamenjave aplikacije. Vzpostavili smo mehanizem REST spletnih storitev, ki povezujejo obstoječe zaledne sisteme z modernim spletnim vmesnikom.

 

SEMINARSKE DELAVNICE

Delavnica 1: Tehnologija veriženja blokov na ramenih odprtokodnega ekosistema ARK
Kristjan Košič, Rok Černec

Koliko časa je potrebno da vzpostavimo lastno verigo podatkovnih blokov? Kaj mi lahko odprtokodna/javna veriga ponudi in kdo so na koncu moje stranke?

V sklopu delavnice bomo podrobneje spoznali tehnologije veriženja blokov ekosistema ARK, ter preizkusili nekatere ključne funkcionalnosti. Udeleženci bodo vzpostavili lastno verigo blokov, ter se spoznali z osnovnimi parametri komunikacije in uporabe le-te. Pregledali in uporabili bomo nekatere programske vmesnike, ki omogočajo brezskrbno integracijo in uporabo lastne verige v vaši že obstoječi informacijski rešitvi.

Zahteve:

  • osebni računalnik,
  • nameščen *nix sistem (Ubuntu strežnik),
  • dostop do interneta,
  • osnovno znanje uporabe git distribuiranega sistema za nadzor verzij.

 

Delavnica 2: Varnost spletnih aplikacij s poudarkom na OWASP Top 10
Milan Gabor

V sklopu delavnice bomo podrobneje spoznali z najbolj tipičnimi napakami spletnih aplikacij. V sklopu delavnice bomo spoznali kako se postaviti med strežnik, kako analizirati zahtevke brskalnika in odgovore strežnika. Seznanili se bomo tudi z OWASP TOP 10 napakami in priporočili, kako jih odpraviti. Za konec bomo preizkusili, kako je analizirat spletno aplikacijo in jo pohekat.

Zahteve:

  • osebni računalnik,
  • brskalnik,
  • RDP odjemalec.

 

Delavnica 3: Nikoli ni prepozno ali kako z zamudo sami zagotovimo skladnost z GDPR
Urška Kežmah, Boštjan Kežmah

25. maja 2018 začne veljati Splošna uredba o varstvu podatkov (GDPR). Novi Zakon o varstvu osebnih podatkov do takrat ne bo sprejet, zato se pri vpeljavi srečujemo s praktičnimi izzivi kako zagotoviti skladnost z GDPR. Zaradi množice odprtih vprašanj in (bolj dobičkonosnih) obveznosti, mnoge organizacije do roka ne bodo zagotovile skladnosti s predpisom. Bistvene pomembnejše spremembe so nove pravice posameznika, na katerega se nanašajo osebni podatki, nove obveznosti upravljavcev, obdelave na podlagi privolitve ter nova pravila za najemanje in nadzor obdelovalcev. Po krajši predstavitvi novosti si bomo »umazali prste«. Če želite v sklopu delavnice pripraviti svoj osnutek praktično uporabne predloge, se nam pridružite s prenosnim računalnikom ali tablico, največji mojstri pa lahko tipkajo kar na mobilni telefon.