Povzetki

 

TOREK, 16. junij 2015

9:15 – 10:45 – Ključni faktorji uspeha v informatiki

 

20 let sodobnih tehnologij in storitev

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

Pred 20 leti se je začela v praksi zelo uveljavljati objektna tehnologija, ki je prinesla osnovne koncepte in principe, na katerih še zmeraj temelji sodoben razvoj programske opreme. Hitro se je uveljavil razvoj na osnovi ogrodij in komponent, kjer so se v svet programiranja prenašali pristopi, kot jih poznamo v drugih panogah. Nekateri pristopi se niso uveljavili oz so postali manj pomembni (CORBA, SOA, SOAP itd.). Z razmahom uporabe interneta se je povečala potreba po elektronski izmenjavi podatkov, kar je najbolje naslovil programski jezik XML, ki pa ga v zadnjem času zamenjuje JSON. Vzporedno z novimi tehnologijami so se razvijali tudi pristopi k razvoju programske opreme, kjer se v zadnjem času uveljavljajo predvsem agilni pristopi, ki bolje naslavljajo potrebe današnjega časa. Po vseh teh letih lahko ugotavljamo, da so se določeni koncepti obdržali skozi ves ta čas, pri nekaterih stvareh pa nastaja (napačen) občutek, da delamo korake nazaj. Na osnovi izkušenj zadnjih 20 let bomo predstavili naš pogled na to, kam nas bodo popeljale nove stvari, o katerih se danes največ govori: računalništvo v oblaku, velike količine podatkov, mobilne rešitve, mikroservisi. pristop DevOps itd.

 

Tudi po 20-ih letih je odločilen človeški faktor

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

OTS se je leta 1995 začel z ero takrat nove fleksibilne paradigme objektnega programiranja. Na osnovi le-te smo v zadnjih dvajsetih letih v praksi udejanjali še mnoge metode, prakse in tehnologije. Zlasti so to bili načrtovalski vzorci, agilni razvoj programske opreme, spletno programiranje, storitvene arhitekture, spletne storitve ter BPM in programiranje v oblaku. Izkušnje kažejo, da kljub vedno boljšim orodjem ostaja stalnica, to je človek. Nobena tehnologija ne deluje brez jasnih ciljev in vrednot, pravilne komunikacije in organizacije. Pogosto je potreben tudi zajeten zalogaj poguma. V prispevku bomo zato osvetlili človeški vidik razvoja informacijskih sistemov in kako se le-ta odraža v povezavi z omenjenimi tehnologijami v praksi.

 

Outsourcing in Agile Development: Methods and Lessons Learned from Real-Life Projects

Boštjan Grašič, Dieter Pock (Infonova GmbH)

Organizations which are project driven may experience peak and off-peak times. The number of projects being executed varies depending on the number of contracts. At a given point in time there might be a higher number of project resulting in a higher demand of people. A couple months down the road, the situation might change and the demand for people might be significant lower. Outsourcing is a method which can be used to handle fluctuations in demand.

In this paper we are analyzing different outsourcing models based on contract type, collaboration method and location of development. This criteria’s are used for a side-by-side comparison of different outsourcing approaches. The comparison is based on the findings in literature as well as on experience from real-life projects where outsourcing has been used.

In the second part of the paper we are presenting a model for off-shore outsourcing with distributed teams practicing agile development. The model is based on a case study of a 12-month project with multiple development teams based in Austria and India. The model as well as lessons learned are useful for other organizations when dealing with question about organization of the code base, dealing with multi-cultural environment, handling time-difference, managing collaboration across continents and handling high frequent software rollouts.

 

11:10 – 13:00 – Učinkoviti razvojni pristopi

 

Mobilno plačevanje z dogodkovno vodeno arhitekturo

Tomaž Tomažič (Bintegra d.o.o.), Vid Kuklec (Si.mobil d.d.)

Zadnja leta vsakič, kadar govorimo ali pišemo o storitveno usmerjeni arhitekturi (SOA), ne moremo mimo tega, da ne bi spregovorili tudi o povezavi med SOA  in dogodkovno vodeno arhitekturo (event-driven architecture oziroma EDA). V našem prispevku bomo predstavili moč EDA v povezavi s storitveno usmerjeno arhitekturo kot del širše arhitekturne strategije.

Poslovni dogodek je vsaka opazna dejavnost, ki vpliva na vaše poslovanje. V dogodkovno vodeni arhitekturi se dogodek zabeleži nekje v programski infrastrukturi in ima določen učinek na poslovanje sistema. Lahko rečemo, da dogodki usmerjajo celotno poslovanje.  Kompleksno procesiranje dogodkov (complex event processing  oziroma CEP) predstavlja novejšo tehnologijo za pridobivanje informacij iz sistemov, ki temeljijo na sporočilih. Poslovnim sistemom omogoča procesiranje distribuiranih poslovnih dogodkov in identifikacijo poslovnih priložnosti oziroma nevarnosti.  CEP omogoča sledenje, korelacije med poslovnimi dogodki, ugotavljanje trendov ter vzorcev in kar je najvažnejše, napovedovanje vpliva predvidenih situacij. Tako je mogoče hitro ukrepanje v situacijah, ko je potrebno preprečiti ali minimizirati škodo. Recimo, če stranka ne dobi svojega naročenega izdelka ali storitve v dogovorjenem roku in prekliče naročilo.

Kot primer implementacije rešitve na osnovi takega arhitekturnega pristopa bomo predstavili integracijo mobilnega plačevanja preko sistema Moneta in drugih ponudnikov plačilnih sistemov, v podjetju Si.mobil. S to integracijo je omogočeno vsem Si.mobil uporabnikom mobilnih telefonov plačilo izdelkov in storitev preko mobilnika. Brezgotovinsko plačevanje je Si.mobil omogočil svojim uporabnikom že leta 2009. Ker je obseg mobilnega plačevanja v tem času zelo porastel in je postalo zaželeno med strankami, se je pojavila tudi potreba po spremembi in nadgradnji sistema. Obstoječi sistem integracije z mobilnim plačevanjem je bil sposoben odziva na preproste dogodke, ki so bili značilni za klasično poslovanje. Nove poslovne zahteve pa so postavljale zahtevnejša poslovna pravila in modele, ki so zahtevali drugačen arhitekturni pristop, kot smo ga izvajali v okviru klasične storitveno usmerjene arhitekture.

Skozi študijo primera si bomo ogledali integracijo mobilnega plačevanja skozi prizmo dogodkovno vodene arhitekture ter tehnologij za njeno implementacijo. Dotaknili se bomo posameznih storitev in prepletenega procesiranja dogodkov ter pojmov, kot so vzorci objavi/naroči, sprejemnik in oddajnik.

Ključne besede: Dogodkovno vodena arhitektura (EDA), storitveno usmerjena arhitektura (SOA), mobilno plačevanje, kompleksno procesiranje dogodkov/complex event processing  (CEP).

 

Orodja, procesi in izzivi zvezne integracije

Tomaž Korelič, Marin Šiklić, Mitja Bombač (Infonova GmbH)

Zvezna integracija (angl. Continuous integration ali CI) je praksa v agilnem razvoju programske opreme, pri čemer se združijo in namestijo vse komponente sistema. Sem spada tudi izvajanje avtomatskih testov, s katerimi preverjamo pravilno delovanje sistema. Ta proces se izvaja periodično glede na potrebe razvoja. To je lahko dnevno, večkrat na dan, ob vsaki spremembi izvorne kode, oziroma je poljubno nastavljivo.

CI temelji na uporabi avtomatiziranih orodij, ki omogočajo prevajanje izvorne kode, nameščanje artefaktov in izvajanje avtomatiziranih testov. S tem dobimo hitro povratno informacijo o delovanju sistema in napredku razvoja. Omenjena orodja in konfiguracija le-teh je lahko zelo kompleksna, pri čemer je kompleksnost odvisna od projekta.

V prispevku bomo opisali proces CI na konkretnem projektu. Predstavili bomo uporabljena odprtokodna orodja in rešitve, ki smo jih razvili interno. Skozi vsa leta uporabe CI, smo v podjetju zasnovali določena pravila in smernice uporabe in konfiguracije CI orodij. Predstavili bomo težave na katere smo naleteli med projektom in predstavili rešitve, ki jih naslavljajo.

 

Vzpostavitev procesa neprekinjene dostave in namestitve programske opreme po uveljavljenih praksah DevOps

Dušan Bratuša (Skupina Novum IT d.o.o.)

Pri implementaciji programske opreme moramo razmišljati tudi o procesih, uporabljenih pri dostavi programske opreme. Tradicionalno se ti procesi v veliki meri še vedno izvajajo ročno. Če se poslužujemo ročnih korakov pri dostavi in namestitvi, odpiramo pot k nekonsistentno dostavljeni programski opremi, nezadovoljstvu razvijalcev in strank. Kot alternativa tradicionalnim pristopom     se ponudi avtomatizacija korakov dostave programske opreme. V prispevku bomo predstavili prakse DevOps, ki predlagajo avtomatizacijo procesov dostave ter primer vzpostavitve takega procesa z metodo neprekinjene dostave in namestitve programske opreme.

 

14:00 – 15:30 – Izzivi sodobnih poslovnih rešitev

 

Next generation healthcare IT solutions based on vendor-neutral health data platform, open API and community sourced clinical data models

Anže Droljc, Tomaž Gornik, Borut Fabjan, Andrej Orel (Marand d.o.o.)

Healthcare is starting to realize that the real value of IT is not in applications but data. Good data is key to improving outcomes, managing chronic disease and population health management. Further, data must be kept and accessed for the lifetime of the patient. This brings many challenges to current IT systems, since they were not designed for data outliving the application. It is becoming clear that the storage of clinical data should be independent of the application – i.e. vendor-independent. The presentation will introduce health data platforms based on the “open data, open API” approach.

 

Poslovne integracije na primeru letalskega prevoznika

Goran Čapelnik, Sandi Križanič (Bintegra d.o.o.), Lucas Hirschegger (Adria Airways d.d.)

Zadnja leta se vsa podjetja, ki se ukvarjajo s letalskim prevozom potnikov, srečujejo z resnimi izzivi in težavami, povezanimi s tendenco zmanjševanja stroškov, cenovno tekmo v panogi, uvajanjem novih storitev in povezavami različnih podjetij v panogi in izven nje. V povezavi z vsem tem se je pojavila potreba po preoblikovanju IT arhitektur podjetij v skladu s storitveno usmerjenim pristopom h graditvi arhitekture (Service Oriented Architecture ali krajše SOA ). Uvedba SOA je temeljito spremenila način, kako zasnovati in implementirati rešitve.

SOA iniciativa v Adriji Airways  se je pričela leta 2011, ko se je Adria odločila zamenjati svojo lastno rešitev za operativo letenja  z rešitvijo Netline. Pojavila se je namreč  potreba po integracijah tega sistema z zalednimi sistemi v podjetju. Po izvedbi pilotskega projekta so se odločili za platformo TIBCO BusinessWorks podjetja TIBCO, ki jo uporabljajo tudi mnogi veliki letalski prevozniki. Kot izvajalca so izbrali podjetje Bintegra, ki je imelo na tem področju največ izkušenj in kompetenc v Sloveniji.

Danes je preko storitvenega vodila povezanih več sistemov in rešitev, ki so povezani z letalstvom. Kako so ti sistemi integrirani bomo prikazali v prispevku. Netline je danes centralni sistem v Adriji Airways za planiranje poletov. Skrbi za vso operativo letenja (planiranje letov, določanje letal za polete, planiranje posadk in podobno). Komunikacija s sistemom Netline preko platforme TIBCO BusinessWorks poteka na različne načine, z branjem iz baz podatkov preko JDBC-ja ali pa z odlaganjem SITA datotek na določeno lokacijo.

Amadeus se uporablja kot rezervacijski sistem za nakupe Adrijinih kart. Tudi s sistemom Amadeus se  preko TIBCO BusinessWorks povezujemo s pomočjo različnih protokolov, bodisi z asinhrono komunikacijo preko JMS konektorjev do IBM MQ ali preko spletnih storitev.

FLIS je grafična aplikacija, ki v obliki gantograma prikazuje lete za izbran dan. Aplikacija prikazuje tako pričakovane kakor tudi dejanske lete. Grafična aplikacija omogoča tudi vpogled v obremenitve in osebje za izbrane lete.

S pomočjo različnih procesov imenovanih roboti, so se mnoga ročna dela na Adriji s pomočjo integracijske platforme TIBCO BusinessWorks avtomatizirala, ker je omogočilo zmanjšanje obsega ročnega dela. Roboti izvajajo opravila kot so pošiljanje različnih obvestil in poročil na določen dan v mesecu preko elektronske pošte, kopiranje datotek iz določenih lokacij na ciljne lokacije, kreiranje datotek in poročil za potrebe skupine Star Alliance, analiziranje elektronskih sporočil in izvedba potrebnih avtomatskih akcij, monitoriranje podatkovnih skladišč ter datotečnih sistemov in izvedba potrebnih avtomatskih akcij.

 

Bliskovita integracija z eArhivom Pošte Slovenije

Jernej Novak (UM FERI), Branko Godec (Pošta Slovenije d.o.o.), Boštjan Kežmah (UM FERI)

Novi predpisi, zagotavljanje konkurenčnosti, skrb za uporabnike in razvoj novih tehnologij nas stalno vzpodbujajo k hitremu prilagajanju in razvoju programske opreme. Da smo lahko hitro in učinkovito zagotovili elektronsko hrambo gradiva skladno s strogimi zahtevami zakonodaje, smo uporabili storitve eArhiv Pošte Slovenije. V prispevku bomo predstavili kako je v kratkem času potekala integracija storitev eArhiva Pošte Slovenije z obstoječo programsko rešitvijo ob upoštevanju zakonodaje in zahtev naročnika. Predstavili bomo tudi različne možnosti razvoja programske opreme, kadar nimamo na voljo vseh potrebnih podatkov za integracijo storitev.

 

15:50 – 17:50 – Informacijska varnost

 

ELK sklad za hekerje

Milan Gabor, Danijel Grah (Viris d.o.o.)

ELK sklad je krajši zapis za Elastic search, Logstash in Kibano. Tri ločena orodja, ki lahko dajo v pravi kombinaciji močno podporo za vizualizacijo podatkov in so lahko koristni tudi za hekerje. V prispevku bomo na kratko povzeli lastnosti posameznega orodja, jih povezali med sabo in na koncu prikazali, kako lahko v zelo kratkem času pričaramo zelo nazorne vizualne prikaze za nas zanimivih podatkov. Po predstavitvi osnovne ideje in delovanja, bomo prikazali kako lahko takšna kombinacija koristi tudi hekerjem za analizo brezžičnih omrežij in vizualizacijo pridobljenih podatkov.

 

Nevarnosti optičnih, akustičnih in TEMPEST napadov pri uporabi informacijsko komunikacije opreme

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

V prispevku so predstavljena varnostna tveganja prestrezanja vplivov, ki jih uporabniki pri uporabi informacijsko komunikacijske opreme nehote oddajamo v okolico. Gre za tako imenovane napade prek stranskih kanalov (»side channel attacks«), s katerimi je mogoče pridobiti podatke, ki so s temi vplivi neposredno ali posredno povezani. Pri uporabi informacijske opreme se običajno tveganj, ki jih predstavljajo razne vrste optičnih, akustičnih, TEMPEST in nekaterih drugih napadov, niti ne zavedamo.

Napadalec lahko tako npr. z uporabo teleskopa zajame sliko zaslona z oddaljenih lokacij v direktni liniji ali refleksij s predmetov v prostoru. Z laserskim mikrofonom ali visokohitrostno videokamero lahko prestreže pogovor v prostoru na podlagi zaznavanja rahlih tresljajev okenskih šip in drugih predmetov. Zvočni posnetek dogajanja v prostoru lahko razkrije tudi določene druge podatke – npr. vnose s tipkovnico, izpis na tiskalniku … Podatke pa je mogoče rekonstruirati tudi na podlagi elektromagnetnega sevanja, konduktivnih emisij, analize porabe električne energije ipd.

Navedeno področje informacijske varnosti je s predpisi opredeljeno pri delu s tajnimi podatki višjih stopenj. Zahteve večinoma izhajajo iz regulative zvez NATO in EU. Enake koncepte varovanja uporabljajo tudi mnoge gospodarske družbe v svojih visoko varnih sistemih in pri delu s svojimi najbolj občutljivimi podatki. Za obravnavanje podatkov, ki bi lahko ogrozili varnost ali delovanje države, imamo v Sloveniji vzpostavljenih nekaj informacijskih sistemov za obravnavanje tajnih podatkov višjih stopenj. Generalni sekretariat Vlade RS je vzpostavil vladni informacijski sistem za obravnavanje nacionalnih in EU tajnih podatkov, v katerega je povezana tudi večina drugih državnih organov. Na področju zunanjih zadev pa ima takšne sisteme vzpostavljene Ministrstvo za zunanje zadeve.

Ukrepi, s katerimi ta tveganja obvladujemo, se izvajajo na različnih ravneh (organizacijski, fizični, tehnični, informacijski, …) in skupaj pripomorejo k ustrezni stopnji varnosti. Cena njihove implementacije je praviloma zelo visoka. Namenska TEMPEST-oprema, ki je zaščitena pred oddajanjem neželenih elektromagnetnih in konduktivnih vplivov, je tako nekajkrat dražja od običajne. V večini primerov so pri vzpostaviti sistemov potrebni tudi drugi ukrepi, npr. posegi v prostor (oklopi, zaščitne folije, filtri, …), fizično varovanje, ločena informacijsko komunikacijska infrastruktura (black red separacija) in namenske šifrirne rešitve. Če upoštevamo možnost škodljivih posledic razkritja ali zlorab tako pomembnih podatkov pa se izkaže, da je cena varčevanja lahko zelo visoka. Vodi v izgubo dobrega imena države ali organizacije, slabšega finančnega rezultata, izgubo industrijske lastnine ipd.

V okviru vladnih informacijskih sistemov in sistemov na področju zunanjih zadev smo zaradi neugodne finančne situacije zato uporabili tudi nekatere inovativne pristope, ki temeljijo na boljšem izkoristku obstoječe infrastrukture in lastnem razvoju varnostnih rešitev.

 

Kako sem prisluškoval policiji?

Dejan Ornig (SMT d.o.o.)

Tisti, malce starejši se boste spomnili, da se je včasih dalo službe, kot je med drugim tudi Policija, poslušati z malce dodelanim radijskim sprejemnikom. Ti časi naj bi s prihodom digitalnega radijskega omrežja TETRA minili. Vsaj tako je mislila večina ljudi, tudi strokovnjaki, ki so trdili, da je brez posebne zelo drage programske in strojne opreme nemogoče prisluškovati digitalnemu radijskemu omrežju TETRA. Ker me je od nekdaj zanimala informatika in informacijska omrežja sem se v letu 2012 odločil te trditve preveriti. Osmo-com je namreč že leta 2011 na internetu objavil odprtokodno programsko opremo, ki je omogočala demoduliranje TETRA signala in dekodiranje prometnih podatkov. Potreboval sem samo še RTL-SDR sprejemnik, ki me je stal 20 evrov in delo se je začelo. Ko sem osvojil nekaj znanja in uspel popraviti dobršni del osmo-tetra programske kode, sem začel s sistematično analizo TETRA omrežje in pri tem ugotovil številne varnostne ranljivosti, ki sem jih kasneje tudi opisal v svoji varnostni analizi. Med tem sem se občasno lahko zabaval ob poslušanju pogovorov Policije, torej tistih pogovorov, ki so potekali po “varnem” omrežju. Vsaj tako so trdili. Sam trdim, da je omrežje TETRA lahko bistveno varnejše od GSM omrežja, seveda pa je to odvisno predvsem od pravilno implementiranih varnostnih mehanizmov, ki so v omrežju TETRA opcijski in tudi stanejo.

 

Aktivna obramba pred grožnjami (Advanced Threat Defence)

Matjaž Pušnik

Varnost informacijskih sistemov je neprestano na preizkušnji. Načeloma velja, da mora napadalcu uspeti samo enkrat, da uspe pridobiti dostop do varovanih informacij. Obramba mora uspeti vsakokrat, torej ubraniti “varovane informacije”. To načelo je zmota. Napadalec mora prodreti več utrjenih zidov, enako kot so to počeli napadalci v srednjem veku. Obramba ponavadi bolje pozna obrambno okolje, kot napadalec. Obramba lahko izkoristi prednost domačega “igrišča”, da upočasni ali prepreči napredovanje napadalcev. Obramba temelji na različnih strategijah in tehnikah. Članek bo podal tehnike in metode, ki jih obramba lahko uporabi za aktivno zaznavo napadov na informacijski sistem.

 

SREDA, 17. junij 2015

9:00 – 10:30   Mobilne rešitve

 

Superračunalnik v mojem žepu

Domen Verber (UM FERI)

Prispevek opisuje možnosti uporabe visokozmogljivega računalništva za vgrajene sisteme in mobilne naprave.

Visokozmogljivo računalništvo uporabljamo za reševanje kompleksnih problemov. Običajno ga povezujemo s superračunalniki z več milijoni procesnih jeder, ki porabijo megavate električne energije in zasedajo cela nadstropja. Delček teh zmogljivosti je danes mogoče poustvariti tudi na zmogljivejših delovnih postajah in strežnikih. A še vedno so to sistemi z veliko porabo električne energije in veliko potrebnega prostora.

Z razvojem tehnologije in miniaturizacijo računalniških komponent se je visokozmogljivo računalništvo približalo tudi vgrajenim sistemom in mobilnim napravam. Vgrajeni sistemi so vgrajeni v druge naprave in zato ne smejo zasedati veliko prostora. Podobno velja za mobilne naprave, ki jih nosimo s seboj. Prav tako želimo, da je poraba energije pri njih čim manjša.

Visokozmogljivo računalništvo temelji na principu sočasnega izvajanja programov na več sto ali več tisoč procesnih enotah. Kot tako ni primerno za učinkovito reševanje kakršnih koli problemov. Rešitev problema mora biti razgradljiva, da jo lahko izvedemo sočasno, posamezni deli pa morajo biti neodvisni drug od drugega. Že enostavna računica nam pokaže, da v primeru, ko ni možno vzporedno izvesti 10% izvirnega algoritma, lahko dosežemo največ desetkratno pohitritev, tudi če imamo na razpolago veliko število procesnih enot.

V prispevku bomo pokazali nekaj primerov uporabe visokozmogljivega računalništva, ki so se pojavili na tržišču v zadnjem času. Podjetje Google je predstavil avtonomno vozilo, ki ga upravlja računalnik z razpoznavo okolice. Na mobilnih napravah so se pojavile aplikacije, ki nudijo uporabniku informacije in druge storitve preko govornega vmesnika. Prav tako se pripravlja velika množica novih aplikacij s področja interneta stvari, ki jim bo visokozmogljivo računalništvo v veliko pomoč.

Pred kratkim so se na tržišču pojavili prvi procesorji za mobilne naprave, ki vključujejo namenske komponente za visokozmogljivo računalništvo, kot jih srečamo v superračunalnikih. Najdemo jih v Audijevih avtomobilih in v tabličnem računalniku Nexus 9. Delovanje razvojne platforme s takšnim procesorjem smo preizkusili tudi v našem laboratoriju. V prispevku bomo prikazali nekaj rezultatov. Na obzorju pa je že nova generacija takšnih naprav.

 

Večkanalni razvoj interkativnih vsebin

Jože Pfeifer (Comtrade d.o.o.)

Nabor mobilnih naprav, s pomočjo katerih uporabniki konzumirajo interaktivno vsebino, se širi iz dneva v dan. To predstavlja velik izziv za podjetja in njihove razvijalce, saj le-ti želijo, da je njihova vsebina na voljo uporabnikom preko čim več kanalov. Ponujena vsebina se dandanes namreč ne konzumira samo na že uveljavljenih namiznih računalnikih in prenosnikih temveč v vedno večji meri na novodobnih mobilnih napravah. Pri razvoju interaktivnih vsebin za vse te različne kanale si lahko pomagamo s široko paleto orodij, ki nam olajšajo in pohitrijo razvoj, saj nam omogočajo izvoz našega produkta na več kanalov.

 

Uporaba JavaFX 8 za večplaformskih razvoj mobilnih aplikacij

Gregor Plavčak, Jernej Flisar, Mitja Gradišnik (UM FERI)

V zadnjih nekaj letih smo bili priča razcvetu trga mobilnih naprav. Premik od razvoja namiznih na mobilne aplikacije je razvijalce prisilil, do so se začeli soočati s številnimi izzivi, ki jih je prinesel dokaj močno razdrobljen trg mobilnih naprav. Da se doseže širok krog uporabnikov aplikacij, morajo razvijalci pripraviti aplikacije za več različnih platform, kar zna biti iz razvojnega vidika časovno in finančno potratno. Vsaka izmed mobilnih platform namreč ponuja lastna razvojna okolja, ogrodja in programske jezike za razvoj mobilnih aplikacij. V izogib omenjenim težavam, so začeli razvijalci posegati po platformah, ki omogočajo razvoj mobilnih aplikacij na enovit način, ter njihovo poganjanje na različnih mobilnih napravah.

Z zadnjo različico ogrodja vstopa v tekmo za svoj del tržnega deleža na področju razvoja večplatformskih mobilnih aplikacij za vodilne mobilne platforme tudi JavaFx, pri čemer stavi na prednost, ki izhaja iz širokega kroga razvijalcev z znanjem programskega jezika Java, ter predhodnih izkušnjah z razvojem grafičnih uporabniških vmesnikov v Javi. V kolikšni meri bo ogrodje večplatformskega razvoja mobilnih aplikacij uspešno ter sprejeto med razvojnimi skupinami, je predvsem odvisno koliko mobilnih platform ogrodje naslavlja ter koliko je razvojno ogrodje oz. okolje privlačno za razvijalce same. JavaFx 8 vstopa na trg uporabniško bogatih aplikacij kot prenovljeno ogrodje, ki je povsem neodvisna od predhodnih javanskih platform za gradnjo grafičnih uporabniških vmesnikov. Dosedanje rešitve javanskih mobilnih aplikacij temelječih na JaviME so namreč za današnje razmere preveč okrnjena, da bi bilo z njimi mogoče podpreti bogat nabor funkcionalnosti sodobnih mobilnih naprav.

Uporabniške vmesnike v ogrodju JavaFx je mogoče graditi s pomočjo na XML temelječem označevalnem jeziku, imenovanim FXML, ki ponuja razvijalcem preko 60 različnih gradnikov. Poleg osnovnih gradnikov uporabniškega vmesnika vključuje ogrodje tudi gradnike za prikazovanje multimedijskih vsebin, spletnih vsebin (WebView), vgrajenih koledarjev ter vrsto različnih grafikonov. Aplikacije so zasnovane po vzorcu MVC (model-view-controller), kar olajša razvoj z možnostjo neodvisnega dela razvijalcev poslovne logike ter grafičnih oblikovalcev. Razvoj aplikacij je močno olajšata prosto dostopno orodje SceneBuilder, ki mogoča urejanje gradnikov vmesnika po principu »drag-and-drop«, ter možnost oblikovanja grafičnih gradnikov s CSS3.

Pri zagotavljanju prenosljivosti med različnimi mobilnimi platformami ubira JavaFx povsem drugačno strategijo, kot smo bili tega pri javanskih aplikacijah vajeni v preteklosti. Za prenosljivost javanskih aplikacij med različnimi sistemi je običajno skrbelo standardizirano izvajano okolje, zadolženo za interpretacijo in izvajanje bajtne kodo javanskih aplikacij. Platforma JavaFx se na tem področju odmika od ustaljenega modela, pri čemer skuša mobilne aplikacije po načinu izvajana, nameščanja ter distribucije kolikor se le da približati domorodnim mobilnim aplikacijam. Za dosego navedenega se izvorna koda JavaFx mobilne aplikacije prevede neposredno v domorodno programsko kodo izbrane mobilne platforme, kar omogoča razvijalcem možnosti izkoriščanja prednosti domorodnih aplikacij, ob znatnem prihranku časa in denarja, ki izhaja iz razvoja od platforme neodvisne programske kode. Trenutna različica ogrodja JavaFx 8 podpira razvoj mobilnih aplikacij za trenutno vodilni platformi Android in iOS.

 

11:00  – 13:00 – Aktualne tehnologije

 

Microsoft ASP.NET na operacijskem sistemu Linux

Bojan Vrhovnik (Microsoft Slovenija d.o.o.)

Microsoft ASP.NET je odprtokodna tehnologija, ki omogoča izgradnjo modernih, modularnih in dinamičnih spletnih strani bodisi na lastni bodisi na gostovani (oblačni) infrastrukturi. Pogledamo si bomo, kaj je Microsoft naredil v smeri podpore tehnologije na operacijskem sistemu Linux ter kaj to pomeni s stališča razvijalca. Uporabili bomo že znana orodja za izgradnjo dinamičnih spletnih strani, preverili, kako lahko nastavimo »Kestrel« – razvojni strežnik za zagon in druge specifike tehnologije, ter pripravili Docker sliko za enostavnejšo ter hitrejšo distribucijo tehnologije na podlagi različnih zahtev strank.

 

Ogrodje AngularJS za portal COBISS/SciMet

Luka Juršnik, Gordana Budimir (Institut informacijskih znanosti Maribor)

V zadnjih dvajsetih letih je internet doživljal ogromno rast, v povprečju kar za 2 % svetovne populacije na leto. Vse se je začelo s statičnimi spletnimi stranmi, kasneje so se začeli uvajati tudi interaktivni elementi, ki jih je omogočil JavaScript, kar hitro za tem pa so se na široko odprla vrata spletnim aplikacijam, ki uporabljajo povezovanje s strežniki in omogočajo asinhrono nalaganje vsebin (AJAX). Takšne spletne aplikacije so predstavljale veliko konkurenco klasičnim namiznim aplikacijam. Intenziven tehnološki razvoj v zadnjih letih je omogočil boljši  izkoristek potenciala odjemalcev pri razvoju spletnih aplikacij. S tem se je povečala tudi ponudba ogrodij, kar sicer najprej oteži izbiro ogrodja za razvoj, kasneje pa olajša razvoj aplikacije v modelu MVW (Model-View-Whatever) na strani odjemalca.

Večina razvijalcev se je verjetno že srečala z zahtevo, da je treba obstoječe spletne strani ali aplikacije približati sodobnim zahtevam in jih prilagoditi tudi mobilnim napravam. Tudi v IZUM-u se srečujemo s podobnimi zahtevami, zato smo se odločili za razvoj novega portala COBISS/SciMet, ki je namenjen slovenski raziskovalni skupnosti za spremljanje raziskovalne uspešnosti s pomočjo scientometričnih metod. Pri tem je bilo glavno vodilo razviti aplikacijo z enotnim večjezičnim grafičnim vmesnikom za spletne in mobilne odjemalce z odzivnim dizajnom (RWD – Responsive web design) in ob upoštevanju novih tehnologij in smernic spletnega razvoja.

V portal COBISS/SciMet smo v prvi fazi vključili vse funkcionalnosti iz obstoječe aplikacije Naši v WoS in Scopus, ki pa je bolj dokumentno naravnana in vsebuje manj podatkov, pripravljenih v realnem času. Glede na uporabniške zahteve smo portal prototipno začeli dopolnjevati z zahtevnejšimi funkcionalnostmi, ki podpirajo pošiljanje in spreminjanje podatkov na strežniku in obdelovanje ter prikazovanje dobljenih podatkov (tudi grafično) s strani strežnika na zahtevo odjemalca v realnem času. Podatki se sedaj obdelujejo in (večinoma) pripravijo za prikaz HTML na strežniku, v spletni aplikaciji pa se pripravljen dokument HTML prikaže v pojavnem oknu. Ker pa za zajemanje podatkov o slovenski raziskovalni produkciji že imamo razvite spletne storitve, ki za različne vhodne kriterije pripravijo podatke v formatih TXT, XML in JSON, je bil naš cilj, da jih v portalu COBISS/SciMet uporabimo v čim večji meri. Z izbiro pravega ogrodja, ki bi nam omogočilo razvoj spletne aplikacije za enostavno in bogato prikazovanje teh podatkov, bi portal dobil dodatno vrednost pri spremljanju slovenske raziskovalne uspešnosti.

Ker so segmenti sistema COBISS tradicionalno večjezični (predvsem zaradi mednarodne mreže COBISS.Net, ki povezuje bibliografske sisteme na širšem področju zahodnega Balkana), je bil  poudarek pri načrtovanju in izbiri ogrodja tudi na možnosti globalizacije. Še pomembnejši pa je bil problem vzdrževanja in upravljanja vsebine spletnih strani, saj v IZUM-u v ta namen nimamo vzpostavljenega sistema za upravljanje z vsebinami CMS (Content Management System). Za pripravo vsebine spletnih strani se uporabljajo standardna pisarniška orodja (npr. beležnica). V določenih primerih se vsebina vnaša v vnaprej pripravljene datoteke HTML, vendar njihovo ažuriranje zahteva določeno programersko in oblikovalsko znanje urejevalcev vsebine, največkrat pa pripravljeno vsebino v spletno aplikacijo vnašajo kar razvijalci. Zato smo pri razvoju portala COBISS/SciMet poskusili v okviru ogrodja najti rešitev tudi za ta problem in omogočiti urejevalcem vsebine vzdrževanje le-te s spletnim administracijskim vmesnikom za upravljanje s vsebino po načelu WYSIWYG (kar vidiš, to dobiš).

Danes obstaja že veliko ogrodij, ki poslovno logiko spletne aplikacije izvajajo na odjemalčevi strani in strežnik uporabljajo le še kot dostopno točko za API, ki ponuja podatke v različnih formatih. Eno takšnih ogrodij je AngularJS, ki je glede na statistike spletnih portalov GitHub in Stackoverflow trenutno daleč najbolj priljubljeno in največkrat uporabljeno. V fazi načrtovanja portala COBISS/SciMet smo, razen tega ogrodja, pregledali še druga najbolj razširjena ogrodja za razvoj spletnih aplikacij ene same strani (SPA – Single Page Application) Backbone, Ember.js in Knockout ter najpogosteje uporabljene knjižnice za razvoj spletnih strani in aplikacij, kot so Bootstrap, jQuery in Modernizr. Glede na te analize ter strukturo, funkcionalnost in namembnost portala COBISS/SciMet smo se odločili za razvoj aplikacije z ogrodjem AngularJS v kombinaciji s pomožnimi moduli (knjižnicami in ogrodji), ki so nam omogočili ustrezno implementacijo postavljenih zahtev (v vsebinskem in tudi v tehničnem smislu), pri tem pa smo obdržali uporabniško izkušnjo na visokem nivoju na vseh vrstah odjemalcev. Pri izbiri dodatnih modulov smo bili zelo pozorni na hitrost in obremenitev odjemalca pri nalaganju teh modulov v aplikacijo, glede na to, da se zavedamo, kako pomemben je za uporabnike prenos podatkov na mobilnih napravah. Zato smo se pri razvoju trudili uporabljati predvsem module iz AngularJS oz. čim manjše dodatne knjižnice in tako uspeli razviti aplikacijo brez dodatne uporabe knjižnice jQuery.

V prispevku so opisani koncepti ogrodja AngularJS in pridruženih modulov, ki smo jih uporabili pri razvoju portala COBISS/SciMet, ter specifike in rešitve, ki smo jih uporabili za dobro uporabniško izkušnjo in izpolnitev postavljenih vsebinskih in tehničnih zahtev, kot so večjezičnost, grafična predstavitev podatkov, dinamično nalaganje, modul za upravljanje z vsebino strani ter enoten uporabniški vmesnik za spletne in mobilne odjemalce z odzivnim dizajnom.

 

JavaScript 2015

Bernard Atelšek, Damjan Kovač, Borut Radi (Mikropis Holding d.o.o.)

JavaScript bo letos dopolnil okroglih 20 let. V tem času je prerasel iz postranske v osrednjo tehnologijo, brez katere si sodobnega računalništva ne moremo več predstavljati. Od skriptnega jezika v brskalniku do strežniške platforme. Vedno pomembnejši igralec postaja tudi na mobilnih platformah in namizju. V zadnjem času pa se seli še v mikrokontrolerje, robote, nosljive naprave in v internet stvari (IoT). JavaScript je zaradi svoje bogatosti in vseprisotnosti postal najdominantnejši programski jezik na vseh platformah. Letos bo izšla tudi nova različica jezika, ECMAScript 2015 , ki prinaša veliko novosti in sprememb. S tem pa postaja vedno bolj podoben drugim visokonivojskim jezikom. V članku vam bomo poskusili predstaviti jezik in nekatere njegove različice, najboljša razvojna orodja in ogrodja ter dejavnike, ki so prispevali k razširjenosti tega jezika.

 

14:00 – 15:30  IoT  in podatkovne tehnologije

 

Primer uporabe javanske knjižnice pri povezovanju v internet stvari (IoT)

Bojan Brumen (msg life odateam d.o.o.)

Kadar govorimo o programiranju naprav, ki jih najdemo v našem domu, programerji informacijskih sistemov ter objektno usmerjenih poslovnih aplikacij, katerih znanje so predvsem visoko usmerjeni objektni programski jeziki, težje prihajamo do samega jedra – programske logike naprav. Sam sem se vedno spraševal, če bi za morebitno znanje in komuniciranje s temi napravami potreboval bolj nizko nivojsko znanje, morda znanje kakšnega eksotičnega programskega jezika ali celo zbirnika? Odgovor je, da temu vendarle ni tako. Dandanes obstajajo elegantne rešitve z možnostjo krmiljenja naprav v enem izmed objektnih programskih jezikov.

Pred časom sem bil postavljen pred zanimiv problem, ki mi je postavil izziv, in sicer poiskati zmožnost komuniciranja senzorja gibanja ter računalniškega programa, ki naj bi ustrezno odreagiral na gibanje v prostoru. Po nekaj narejenih analizah sem odkril mlado inovativno nemško podjetje, ki je leta 2012 prejelo nagrado »chip award winner«, pregledal njihove produkte in implementiral nizkocenovni varnostni sistem, ki omogoča povezavo naprave v splet ter prejemanje sms ali email sporočil o statustih senzorja gibanja v hiši na mobilni telefon. Rešitev temelji na takoimenovanih brickih – mikrokontrolerjih, ki kontrolirajo bricklete – senzorje ali druge vhodno izhodne naprave. Filozofija proizvajalcev je, da so njihovi produkti podprti s številnih platform kot so Linux, Windows, Mac Os X, Android ter IOS, seveda pa so obenem vse njihove rešitve tudi odprtokodne, kar velja tako za njihovo programsko kot tudi strojno opremo. Ob enem podpirajo več visoko nivojskih programskih jezikov s knjižnicami, ki komunicirajo z njihovimi bricki ter posledično tudi njihovimi brickleti. Tako sta v njihovem razvoju med drugimi nastali tudi Javanska in C# knjižnica ter s tem možnost kontroliranja različnih senzorjev ali drugih naprav tudi takšnih, ki jih danes že imamo nameščene v naših domovih in jih lahko z malo znanja nadgradimo v pametne naprave. Povezovanje naprav v internet stvari s pomočjo javanske knjižnice na primeru nizkocenovnega varnostnega nadzora pametne hiše bo tako tudi predmet moje predstavitve.

 

Big Data Arhitekture – Hadoop, Hbase in MySQL oz. kako združiti NoSQL in SQL

Goran Krajačić, Vesna Krajačić (VSENET Marketing d.o.o.)

Tehnologije Big Data so trenutno v popolnem razmahu. Začetke njene popularizacije lahko prav gotovo pripišemo velikim podjetjem, kot so Google, Facebook in Amazon, ki so zaradi obdelave velikih količin podatkov bila prisiljena iskati alternativne rešitve obdelave le teh. Toda v sodobnem svetu vse večje količine podatkov se krog podjetij, ki potrebujejo hranjenje sredstev velikih količin, visokih hitrosti in velike raznolikosti, hkrati pa tudi stroškovno učinkovite rešitve procesiranja le-teh, veča iz dneva v dan. Pri preučevanju novih Big Data tehnologij se hitro znajdemo v družbi NoSQL podatkovnih baz. NoSQL podatkovne baze so sprva mnogi razumeli, kot alternativno tehnologijo uveljavljenim SQL podatkovnim bazam. Danes je vse bolj jasno, da je pri oblikovanju kakovostnih Big Data arhitektur najbolje uporabiti rešitve, ki kombinirajo nestrukturirane podatke iz NoSQL s strukturiranimi v SQL podatkovnih bazah.

V prispevku si bomo na konkretnem primeru naše SaaS platforme SEOVISOR, ogledali za kakšno Big Data arhitekturo smo se mi odločili in kako ter v katere namene pri njej uporabljamo SQL in NoSQL podatkovne baze. Ogledali si bomo arhitekturo in komponente ogrodja Hadoop, ki danes velja za najbolj uveljavljeno Big Data ogrodje za porazdeljeno procesiranje velikih količin podatkov. Spoznali bomo pojme kot so HDFS, MapReduce, ZooKeeper, Spark, Storm, Pig, Hive, Ambari, Phoenix, HBase, Thrift in Stargate. V okviru Hadoop ogrodja, bomo podrobno spoznali omenjeno NoSQL podatkovno bazo Hbase, ki je odprtokodna rešitev modelirana na osnovi Googlove BigTable specifikacije. Hbase je namreč „de facto“ NoSQL podatkovna baza ogrodja Hadoop in z njim sodeluje tako, da uporablja njegov porazdeljen datotečni sistem (HDFS) za zagotavljanje krajših zakasnitev in hitrejših iskanj.

Konkretno Hbase v naši rešitvi uporabljamo za hranjenje velikih količin neobdelanih vhodnih podatkov. Transakcijske podatke in podatke združenih rezultatov analitičnih procesov pa hranimo v podatkovnem skladišču, ki teče na MySQL podatkovni bazi. Ob izvajanju procesov povezanih spletnih storitev je določene podatke potrebno beležiti bodisi v transakcijsko podatkovno bazo (SQL), bodisi v NoSQL podatkovno bazo ali pa tudi podatkovno skladišče (SQL). V določenih primerih pa v vse hkrati, saj imamo že pri izvedbi posameznega procesa pogosto na voljo določene skupne podatke (združene rezultate lokalnih podatkov). Ogledali si bomo torej, kako smo zadeve implementirali in kako celotna arhitektura deluje v praksi. Prispevek je zanimiv tudi iz stališča uvedbe Big Data tehnologij, saj je naša platforma sprva delovala le na podlagi SQL podatkovnih baz in smo Hadoop in NoSQL uvedli v že obstoječ in delujoč informacijski sistem

 

ActorDB – porazdeljena SQL baza

Ino Murko, Gregor Spagnolo (Biokoda d.o.o.)

ActorDB je podatkovna baza, ki združuje porazdeljeno računalništvo z relacijskim modelom podatkovne baze. Za razumevanje slednjega, bomo začeli pri standardnih relacijskih bazah (MySQL, MSSQL, Oracle RDBMS). Te so praviloma monolitne in se skalirajo po naslednjih pricipih:

  •         Master/slave ali master/master vendar mora biti nabor podatkov na vseh strežnikih.
  •         Denormalizacija (zahtevnost programske kode naraste).
  •         Deljenje (angl. sharding) zahtevnost upravljanja in uporabe podatkovne baze izredno naraste.

Tudi če podatkovna baza ni pretirano velika bo imela izredno zahtevne in zapletene mehanizme zaklepanja v primeru transakcij.

Podatkovno bazo ActorDB smo razvili v podjetju Biokoda d.o.o.. Razvita je bila za potrebe lastnega produkta EmitCloud. Produkt, omogoča podjetjem in posameznikom, dostop do datotek in dokumentov kjerkoli in kadarkoli. Rešitev omogoča enostavno namestitev tako za posameznike, kot podjetja z več sto tisoč uporabniki.

Cilji produkta so bili naslednji:

  •         Enostavna uporaba
  •         Enostavna administracija
  •         Brez kritičnih točk odpovedi (SPOF – Single point of failure)
  •         Horizontalna skalabilnost

Zadnji dve točki najbolj zadevata podatkovno bazo. V kolikor strežnik na katerem je podatkovna baza izpade nam lahko ustavi celoten sistem, zato smo ta kompleksni problem začeli reševati na drugačen način. Sama podatkovna baza je organizirana v gruče s tremi vozlišči (vsako vozlišče je SQLite podatkovna baza, ki pa niso nujno na istem strežniku). Število gruč je neomejeno in vsaka gruča predstavlja enega akterja. Od treh omenjenih vozlišč je eno vozlišče matično, ki izvaja branje in pisanje. Ostala dva vozlišča, pa sprejemata zapise s strani matičnega. Zapis se zgodi, kadar dosežemo večinski konsenz (angl. Two-Phase Commit). V primeru, da matično vozlišče odpove, bo eden iz med podrejenih vozlišč izbran za matično vozlišče. Ker je vsak uporabnik na svoji SQLite gruči smo dosegli tudi horizontalno skalabilnost.

SQLite pa ni podatkovni strežnik, ampak lokalna podatkovna baza. ActorDB replikacijo podatkov implementira z replikacijo WAL (angl. write-ahead logging) dnevnikov. Vendar, kako bomo dosegli konsistentnost, kadar je podatkovna baza na več strežnikih? Z implementacijo algoritma RAFT, ki je enostavnejša alternativa znanega algoritma PAXOS in omogoča, da dosežemo konsenz pri izmenjavi WAL dnevnikov.

Zavedamo se, da ActorDB ni primeren za reševanje vseh problemov, je pa najprimernejši za reševanje problemov, ki jih lahko abstrahiramo v posamezne akterje.