Povzetki prispevkov

Vabljeno predavanje 9:15-10:00

Adel Taweel

Predication of non-functional properties of COTS-based systems
On the outset COTS-based systems offers several advantages, including the promise of shorting the development life cycle, reducing costs of software development and faster utilisation of recent technical improvements in software industry in terms of capability, reliability, compatibility, performance and so forth. Many (initially!) believed that developing COTS-based systems is similar in many ways to LEGO-like building and would easily deliver these promises. However, this is rarely realised in practice. An important issue of COTS-based systems is that they are likely to be (or perhaps already being) used in domains where human life and/or economic loss are possible and the need for a highly reliable system is a must. However, would it be possible to build reliable COTS-based systems that meet such domains’ requirements? Does it necessarily mean that composing a system from highly reliable COTS components produce a highly reliable system? Is it possible to predict quality attributes of a COTS-based system from its components before building it? In this presentation we highlight the complexity of this issue, focusing on reliability, and attempt to answer these questions. We outline various approaches that attempted to address this issue, and propose a possible way forward to predicting the reliability of COTS-based system from its individual components.

SPLETNE STORITVE 10:20-12:30

Tomaž Marčun, Jože Čož
Spletne storitve – več kanalov in nivojev
V prispevku bodo predstavljeni izkušnje in načrti Zavoda za zdravstveno zavarovanje Slovenije na področju načrtovanja programskih arhitektur elektronskih storitev. Zavod nudi in razvija elektronske storitve, ki temeljijo na internetnih tehnologijah in so namenjene internim uporabnikom in različnim zunanjim partnerjem. Zaradi raznovrstnih načinov dostopanja do teh storitev (kanalov) je potrebno zagotoviti ustrezne nivoje programske opreme za zanesljivo in vsebinsko usklajeno delovanje storitev. Arhitektura vsebuje:

  • programske komponente za upravljanje posameznih kanalov,
  • programske komponente za enotno upravljanje istovrstnih storitev preko različnih kanalov in
  • programske komponente za integralno upravljanje informacijske podpore poslovnih področij in Zavoda kot celote.

V prispevku bodo predstavljene rešitve za aktualne storitve s področja obveznega zdravstvenega zavarovanja, ki se uporabljajo preko naslednjih kanalov:

  • aplikacije za notranje uporabnike inf.sistema,
  • računalniško izmenjevanje podatkov s partnerji v zdravstvu in drugimi organizacijami (več različnih tehničnih izvedb),
  • storitve na spletnih straneh,
  • storitve na samopostrežnih terminalih.
    Poleg opisa obstoječih rešitev bodo predstavljene možnosti posodabljanja in nadgrajevanja z uporabo sodobnih tehnologij spletnih storitev, upoštevajoč tehnološke in poslovne možnosti.

Borut Fabjan, Tadej Milharčič
Nadzor in zaračunavanje spletnih storitev ter vsebin
Članek obravnava problematiko avtentikacije, avtorizacije in zaračunavanja spletnih storitev in vsebin. Konkreten primer rešitve in njeno arhitekturo. Članek ima poudarek na konkretnem problemu, rešitvi in arhitekturi ter uporabljenih tehnologijah kot so: ServiceProxy, Single Sign-On, J2EE, Caching, LibertyAlliance, MS Passport, ebXML SAML, Kerberos

Gregor Kovač, Smiljan Dolinšek
Varne spletne storitve in učinkoviti poslovni procesi
V članku bomo ugotovili ali in kako lahko s pomočjo platforme spletnih storitev zasnujemo, realiziramo in izvajamo učinkovite poslovne procese izven meja lastne organizacije. Prikazali bomo osnovne gradnike, ki omogočajo enostavno vzpostavitev tehnoloških temeljev za izkoriščanje storitev, hkrati pa pokazali na dejstvo, da je večina dela še vedno na strani definicije poslovnih postopkov. Pokazali bomo na dejstvo, da izbira tehnologije predstavlja samo enega od vidikov izgradnje uspešne integracije poslovnih procesov med podjetji. Iz naših izkušenj, ne najpomembnejšega.

Gregor Lončar
Vloga spletnih storitev v poslovanju "na zahtevo"
Spletne storitve so skupni imenovalec poslovnega modela "na zahtevo".Omogočajo nam povezovanje celotnega sistema različnih neprilagojenih virov v močnejšo poeenoteno platformo, ki nam zmanjšuje stroške in omogoča nove poslovne priložnosti.

Rikardo Tinauer, Miha Dominik Puc
Združevanje tehnologij in storitev v elektronskem poslovanju
Na področju elektronske izmenjave podatkov med podjetji je bilo v preteklosti vloženega že veliko truda in finančnih sredstev. Predvsem so večja podjetja po svetu vlagala velike napore in sredstva v standard za elektronsko izmenjavo podatkov znan pod imenom EDIFACT, ki pa se ni uspel množično uveljaviti kjub velikim pričakovanjem. S časom se ga je celo prijelo ime “nočna mora pisarne brez papirja” zaradi njegove kompleksne implementacije. Tako je implementacija informacijskih sistemov za elektronski način izmenjave podatkov bila sprva le domena večjih podjetij, ki so si lahko privoščila razvoj takšnih sistemov. Ogromno število malih in srednjih podjetij pa se je zaradi finančnih nezmožnosti takšnim rešitvam odreklo. Prav tako velika podjetja delujejo v mnogo bolj stabilnih okoljih. Kar se odraža predvsem v ustaljenih poslovnih poteh, ki jih imajo ta podjetja ter z jasno definiranimi poslovnimi procesi, ki se skozi čas zelo malo spreminjajo.

Medtem pa mala in srednja podjetja večinoma delujejo v nestabilnih in velikokrat tudi zelo dinamčnih okoljih. Poslovne vezi se vzpostavljajo in prekinjajo z zaznavno dinamiko. Kot odziv na spremembe okolja se spreminjajo tudi poslovni procesi ter s tem vsebina in vrsta podatkov potrebnih v medsebojnih komunikacijah. Ta problem je za mala in srednja podjetja še danes zelo pereč saj velikokrat informacijskih sistemov ni mogoče prilagoditi hitrosti sprememb.. Eden izmed razlogov, zakaj je tako, je tudi v tem, da ta podjetja nimajo ne znanja in ne potrebnih izkušenj, predvsem pa nimajo finančnih sredstev, da bi poizkušala spraviti posamezne poslovne procese na skupni imenovalec, jih proučiti in izluščiti skupne značilnosti teh procesov.

Podjetja v elektronski obliki izmenjujejo večinoma podatke, vendar ti podatki še zdaleč ne dosegajo normativov, ki bi zadostili pogojem o pravni veljavnosti teh podatkov, kar je cilj elektronskega poslovanja. Za dosego teh normativov morajo biti izpolnjeni trije pogoji, ki določajo kdo je podpisal podatke, kaj oziroma kateri podatki so bili podpisani in kdaj so nastali ti podatki. Na vprašanje kdo in kaj odgovorimo z uporabo overovljenega digitalnega potrdila ter digitalnim podpisom, na tretje vprašanje pa odgovori overovljen časovni žig. Le z uporabo teh instrumentov lahko podjetja zagotovijo elektronsko izmenjavo pravno veljavnih podatkov, ali bolje rečeno elektronskih dokumentov.

Iz tega naslova je nastal danes v svetu velik paradoks, namreč navkljub vsej tehnologiji, storitvam ter programski in strojni opremi je nivo izmenjave elektronskih dokumentov pod pričakovanji, kar pa je povsem razumljivo. Elektronsko poslovanje je ubralo popolnoma naraven način razvoja, to je evolucijski način. Nastajale so mnoge rešitve in tehnologije za omogočitev elektronskega poslovanja. Vendar so bile te rešitve zaradi razvoja, ki je potekal v zaprtih skupinah, ki so bile med seboj nepovezane, preveč različne in nezdružljive med seboj. Poleg tega so te rešitve v veliki meri reševale zelo specifične probleme. Za široko in splošno sprejeto uporabo pa je potrebna konvergenca teh rešitev.

Poslovanje s pravno veljavnimi dokumenti zadeva vse subjekte vsakdanjega življenja: podjetja, fizične osebe, državno upravo, notarje in finančne ustanove. Kar pomeni, da vsak poslovni subjekt posluje s celo množico drugih poslovnih subjektov. Tudi v svetu elektronskega poslovanja je slika podobna. Podjetja in posamezniki se srečujejo s kopico različnih tehnologij, ki naj bi olajšala in pocenila poslovanje, pa je velikokrat ravno obratno. Ta razdrobljenost uporabnikom celo oteži elektronsko poslovanje.

Prav zato bi bilo potrebno vsem tem uporabnikom ponuditi urad oziroma center za elektronsko poslovanje. Prek tega centra bi lahko lahko uporabniki naročali blago pri svojih dobaviteljih, plačevali različne račune, dobavitelji bi lahko potrjevali naročila svojih odjemalcev, sklepali pogodbe, prijavljali davke, najemali posojila pri bankah, oddajali različne vloge organom državne uprave itd. Vse to bi potekalo na enoten način, hitro in varno.

Center bi moral svojim uporabnikom nuditi storitve preverjanja avtentičnosti dokumentov, preverjanje podpisnikov teh dokumentov ter arhiviranje dokumentov s strani tretje osebe, torej centra. Tako bi center za elektronsko poslovanje hkrati imel tudi vlogo elektronskega notariata. Vse komunkacijske poti bi bile speljane skozi center, kar bi za uporabnike pomenilo, znižanje stroškov, saj jim ne bi bilo več potrebno investirati sredstev v drago programsko in strojno strežniško opremo. Prav tako uporabnikom ne bi bilo potrebno skrbeti za vzpostavljanje poti s svoijimi partnerji. Center bi zagotovil uporabnikom varnost z uporabo danes vedno bolj razširnjene PKI tehnologije in pametnih kartic. Največjo prednost za uporabnike storitev centra pa bi predstavljala uporaba enotne programske opreme, ki jim jo bi v celoti zagotovil in vzdrževal center. To bi uporabnikom zelo poenostavilo elektronsko poslovanje in znižalo stroške poslovanja iz naslova uporabe in licenčnine programske opreme usposabljanj uporabnikov in vzdrževanja. Programska oprema bi bila v celoti osnovana na izmenjavi XML dokumentov ter bi omogočala izmenjavo dokumentov v poljubnih standardih, bodisi nacinalnih v neki državi kot je pri nas standard za izdajo računov “e-SLOG” ali pa svetovni standard “VISA General XML Invoice”, ki je trenutno v fazi odobritve, ter mnogi drugi, ki se danes šele uveljavljajo.

SODOBNE ARHITEKTURE 13:45-15:25

Gregor Polančič, Romana Vajde Horvat
Načini implementacije spletnih aplikacij
Tehnologije za razvoj spletnih aplikacij so že dosegle stanje, ki ne omogoča zgolj razvoja preprostih spletnih aplikacij, temveč tudi razvoj celovitih spletnih informacijskih sistemov. Zorenje tehnologije zagotovo pomaga zviševati kakovost in uporabnost spletnih aplikacij, posledično pa se s širjenjem spektra uporabnosti tehnologij, povečuje tudi njihova kompleksnost.
Problem obvladovanja kompleksnosti zasnove aplikcij je pogosto tehnološko neodvisen. Rešitve se pojavljajo v obliki abstraktnih idej, izkušenj ali novih spoznanj in se nato aplicirajo na sodobnih programskih rešitvah. Čeprav njihova pravilna uporaba pripomore k razvoju širše uporabnih in lažje obvladljivih programskih proizvodov, se rešitev pogosto izogibamo. Razlogi pogosto ležijo v naporu, potrebnemu za osvojitev novih znanj, ki bremeni razvijalce predvsem v začetnih fazah projekta.
V članku so predstavljene rešitve v obliki konceptov in programskih proizvodov. Vrednotene so na uporabnost v odvisnosti od zahtev in kompleksnosti problema. Programski proizvodi, ki jih zasledimo v članku temeljijo na Javi in programskih rešitvah tipa »odprta koda«, koncepti v njihovi zasnovi pa so tehnološko neodvisni.

Boštjan Dolenc
Poslovni procesi - lepilo informacijskih sistemov
Poslovni procesi se počasi širijo iz domene poslovnih analitikov in svetovalcev na področje povezovanja in celo gradnje aplikacij. Na prvo področje vstopajo kot povezovanje preko upravljanja poslovih procesov (Business Process Management), na drugo pa preko storitveno usmerjene arhitekture (Service-Oriented Architecture). Po drugi strani pa se ponujajo kot tisti bistveni del, ki bo dopolnil mozaik spletnih storitev v celoto. V vseh treh primerih poslovni procesi predvsem povezujejo komponente med seboj in odpirajo nov, procesni vidik informacijskega sistema.
Prispevek bo predstavil spremembe in izzive, ki jih tak razvoj prinaša. Prikazal bo spremembe v arhitekturi aplikacij ter tehnologije (zapisi, razna orodja, strežniki za izvajanje) in standarde (BPEL4WS, JSR-207) s tega področja. Predvsem pa bo poskušal odgovoriti, v kolikšni meri gre le za komponentno gradnjo sistemov v novih oblačilih.

Matjaž B. Jurič
Storitvene arhitekture, ki temeljijo na modelih
Spletne storitve poleg vseh ostalih novosti prinašajo predvsem novo arhitekturo - storitveno orientirano arhitekturo. V prispevku bomo prikazali njene najpomembnejše novosti in jo primerjali z večslojno arhitekturo. Odgovorili bomo na vprašanje, ali storitvena arhitektura dejansko prinaša nove pristope v razvoj programske opreme in kako jih izkoristiti z uporabo obstoječih programskih platform in jezikov. Nenazadnje bomo proučili, kako uporabiti modele za načrtovanje storitvene arhitekture neodvisno od programskih platform in pregledali osnovne koncepte MDA (Model Driven Architecture).

Maja Pušnik
ebXML := spletne storitve ++
Spletne storitve so ključna tehnologija za komunikacijo med informacijskimi sistemi podjetij, vendar ne izpolnjujejo vseh zahtev elektronskega poslovanja, predvsem sodelovanja spletnih storitev in avtomatizacije poslovnih procesov. V prispevku bo predstavljen ebXML (Electronic Business Extensible Markup Language), ki temelji na spletnih storitvah, omogoča pa veliko več. ebXML omogoča komunikacijo s pošiljanjem sporočil, ki temeljijo na relativno enostavni XML tehnologiji, zato je dostopen podjetjem vseh velikosti. Podpira dolgo trajajoče poslovne transakcije, identifikacijo in specifikacijo zahtev poslovnih procesov, sklepanje pogodb, definicije profilov sodelovanj, orkestracijo poslovnih procesov in več. Velik poudarek ebXML je tudi na kvaliteti storitev in varnosti.

DOKUMENTI IN VARNOST 15:40 – 17:00

Boštjan Šumak
XML serializacija dokumentov in primerjava z DOM in SAX
Standard XML (Extensible Markup Language) je postal gonilna tehnologija sodobnega elektronskega poslovanja in se uporablja za enostaven zapis ter enotno razumevanje podatkov. Obravnava teh podatkov pa je stvar XML razpoznavalnikov in programskih jezikov. V prispevku bomo predstavili tri načine obdelave XML dokumentov; serializacijo, DOM (Document Object Model) in SAX (Simple API for XML). Opisali bomo njihove lastnosti, prednosti in pomanjkljivosti, ter predstavili primere in področja uporabe, kjer je vsak od njih najustreznejši. Kreirali bomo odločitven model, ki bo na podlagi izbranih kriterijev in odločitvene funkcije izbral najprimernejši način obdelave XML dokumentov.

Matevž Gačnik
Tipski sistem XML <> Tipski sistem CLR
Standard XML Schema definira tipski sistem XML, ki je funkcionalno močnejši od klasičnih, programskih tipskih sistemov. Vsak tip je v standardu opisan v smislu vrednostnega in leksikalnega prostora. Sistem med drugim omogoča definicijo preprostih in kompleksnih tipov, dedovanje z ohranjanjem semantike tipa in podobno. V resnici je mogoče v tipskem sistemu XML dedovati na dva načina. Prvi, ki je prisoten tudi v programskih tipskih sistemih, je dedovanje z razširanjem. Drugi, dedovanje z omejitvijo, pa deluje nad vrednostnim prostorom tipa. Glede na količino metapodatkov, ki jih v XML prinaša XML Schema, je mogoče prevajanje med tipskim sistemom XML in programskimi tipskimi sistemi . Večji ponudniki programske opreme že ponujajo prevajalnike shem, ki omogočajo premoščanje med različnimi tipskimi sistemi.

Matic Petek, Rudi Ponikvar
Uporaba XML Signature v okolju Java
Elektronski podpis (ang. Digital signature) postaja osnovni gradnik novodobnih internetnih aplikacij. Omogoča povečanje varnosti spletnih transakcij, predvsem pa ga lahko uporabimo kot nadomestilo za običajni lastoročni podpis. Zamisel je sorazmerno preprosta. Pošiljatelj transakcijo podpiše s privatnim ključem, ki mora biti varno shranjen. Prejemnik glede na vsem znani javni ključ pošiljatelja preveri izvor poslanega sporočila.

Ko govorimo o vključitvi elektronskega podpisa v XML dokumente, ne moremo mimo standarda XML Signature, predlaganega iz strani organizacije W3C. Osnovna prednost, ki ga ločuje od ostalih načinov podpisa podatkov (npr. PKCS#7), je možnost podpisa samo določenega dela XML drevesa. Možnost postane zelo uporabna pri XML dokumentih, katerih različni deli so podpisani in preverjeni preko različnih subjektov. Če bi bil podpis izveden preko celotnega XML dokumenta, bi vsaka uporabnikova sprememba vrednosti v dokumentu povzročila razveljavitev originalnega podpisa.

Ko želimo v okolju Java podpisati XML dokument po standardu XML Signature, se srečamo s problemom podpisovanja podatkov ter vključitvijo elektronskega podpisa v XML dokument.

Za izvedbo varnega elektronskega podpisa, je potrebno imeti privatni ključ shranjen na varnem mediju, kot je naprimer pametna kartica (ang. Smart card) ali elektronski ključ (ang. iKey). Dostop do strojnih naprav je omogočen preko standarda PKCS#11 ali Microsoft Cryptograpic API, če uporabljamo platformo Microsoft Windows oziroma .NET. Okolje Java ne vključuje knjižnic za dostop do zgoraj omenjenih standardov. Vse prevečkrat se sliši, da je knjižnica Java Cryptography Extension (v nadaljevanju JCE) vse kar potrebujemo za izvedbo preverjanja in podpisa. Na žalost JCE ni dovolj zmogljiva, ker je zasnovana predvsem kot vmesnik do prilagojenih rešitev za dostop do varnih naprav za shranjevanje elektronskih certifikatov. Osnovni paket omogoča izvedbo podpisa, vendar je podpis možen samo preko ključev, ki so shranjeni v "keystore" datoteki.

Vključitev elektronskega podpisa v XML dokument po standardu XML Signature lahko izvedemo tudi »ročno« s preoblikovanjem XML dokumentov, vendar programerji raje uporabijo že izdelane transformatorje, kot je naprimer knjižnica Apache XML Security ali Entrust/Toolkit for Java.
V prvem delu prispevka bova predstavila infrastrukturo javnih ključev (ang. PKI), predvsem v povezavi s elektronskim podpisom. V nadaljevanju sledi opis standarda XML Signature ter možnosti uporabe (podpis spletnih strani, transakcij spletnih storitev, datotek, ...). S primerjavo knjižnic v okolju Java bova prikazala zahtevnost (ali enostavnost) vključitve XML podpisa v Java aplikacije. Za konec bova predstavila nekaj izkušenj pri vključitvi digitalnega podpisa v obstoječe aplikacije.

Bojan Kraut
Dokumentno orientirana izmenjava podatkov v portalnih sistemih
Mnogi informacijski sistemi so v zadnjih letih bili priča posodabljanju in s tem tudi integraciji v spletno okolje. Ti takoimenovani portali, črpajo informacije iz različih virov, vključujoč skrbno izbrane informacijske posrednike, ki storitveno nudijo informacije preko spleta, kot tudi iz lokalnih sistemov organizacije, ki so integrirani v informacijski sistem.
Vedno pomembnejša pa postaja podatkovna izmenjava med poslovnimi partnerji, ki dostopajo do storitev organizacije v mnogih primerih preko dokumentno orientirane podatkovne izmenjave – XML in SOAP izmenjava ter spletne storitve, ebXML, RossetaNet, ter preko starejših standardov kot je EDI. Problemi na katere organizacije naletijo na tem področju, so ogromno število poslovnih partnerjev, za katere morajo mnogokrat prilagajat svoje vmesnike ter relativno širok nabor standardov, ki so trenutno v uporabi. Kljub temu pa se ponujajo rešitve, ki uspešno premoščajo komunikacijsko vrzel, vendar je potrebno biti previden pri izbiri implementacije, saj mnogi obljubljajo več kot imajo.

17:15 OKROGLA MIZA - MEDORGANIZACIJSKO POVEZOVANJE, VARNOST, ZAUPANJE ...

četrtek, 19.6.2003

RAZVOJNI IZZIVI 8:30-10:10

Aleš Živkovič
Kako združiti nezdružljivo ali MSF RUP
Rational Unified Process je ogrodje procesa za razvoj programske opreme, ki natančno določa kaj je potrebno storiti, kdaj, kaj za to potrebujete in kaj bo pri tem nastalo. Določa tudi kdo bo posamezno aktivnost izvedel. Kljub obsežnosti in primernemu nivoju opisa delovnih napotkov so določena pomembna področja le bežno opisana z izdatnim seznamom referenc na dodatno literaturo o področju.

Microsoft Solution Framework je drugačne vrste ogrodje s podobnim ciljem. Odgovoriti na vprašanje kako razviti dobro programsko opremo. Je manj podroben pri opisu aktivnosti in korakov, ki jim je potrebno slediti, daje pa številne napotke kako razvijat informacijske rešitve.

V prispevku bomo pregledno opisali obe ogrodji in opredelili skupne značilnosti kot tudi morebitna razhajanja. Z unijo obeh ogrodij bomo poskušali zapolniti vrzeli tako enega kot drugega.

Andrej Kline
Razvoj programske opreme, voden skozi teste
Namen prispevka je predstaviti vlogo, ki jo ima testiranje v razvoju programske opreme, z nekoliko drugačnega vidika. Z vidika razvoja, vodenega skozi teste. V izvornem, tj. angleškem jeziku tovrsten pristop poimenujemo »Test Driven Development«, ali z okrajšavo TDD.
Poizkusil bom odgovoriti na naslednja vprašanja:

Čemu testirati?

Prispevek bo zagovarjal načela:

  • problemi v testih kažejo na probleme v kodi
  • testi nas »silijo« v enostaven design
  • nezmožnost dobrega testiranja ima vzrok v slabi porazdeljenosti sistema
  • test je 1. uporaba objekta (ali enote programske kode), zato naj v razvoju nastopi čimprej

Čemu nov pristop?

TDD je način upravljanja s strahom med programiranjem, med razvojem. Strah razvijalcev v smislu sem-pred-težkim-problemom-in-ne-vidim-končne-rešitve. Takšen strah vodi v neodločnost, eksperimentiranje, plahost, izoliranost razvijalca od povratnih informacij in s tem posledično v slabo kodo, kodo, ki ne komunicira. TDD poudarja hitro, konkretno spoznavanje tematike programiranja, čisto komunikacijo, iskanje pomoči, in neposrednega odziva na ustvarjeno kodo. Zato podaja pravilo:

  • začni z enostavnim razvojem
  • piši avtomatske teste
  • preoblikuj kodo in dodajaj odločitve eno za drugo

V čem se TDD razlikuje od prvin testiranja, ki jih zagovarja metodologija ekstremnega programiranja (XP)?

XP testiranje podaja kot princip, ki ga razvijalci moramo zagotoviti, da razvoj poteka v skladu z drugimi prvinami; preoblikovanje, skupno lastništvo kode, ipd.

TDD pa predstavlja zavest razvijalca o luknji, razhajanju med odločitvijo, ki jo razvijalec sprejme in med posledico, odzivom na to odločitev, ter podaja tehnike za nadzorovanje omenjenega razhajanja.
Razvoj opredeli z dvema enostavnima praviloma, pri čemer testiranje privede do novega ekstrema:

  • napiši novo programsko kodo le, če avtomatski test ne deluje
  • odpravi podvojenost

Razmišljanja bom podkrepil z vzorci uporabe TDD in s praktičnim primerom uporabe pristopa TDD na »problemu« Fibonacci-jevega zaporedja.

Petar Brajak
Uporaba "agilnih" metodologij pri razvoju J2EE projektov
Analiza stanja razvoja programske opreme v svetu in pri nas kaže, da kvaliteta in produktivnost te opreme ne sledi zahtevam in pričakovanjih naročnikov in uporabnikov. Ti problemi so še bolj izraženi v hitro spreminjajočem okolju sodobnega e-poslovanja v katerem se spremembe programske opreme dogajajo tudi na dnevni osnovi.

Kot rešitev tega problema se zadnje čase omenjajo različne "agilne" metodologije od katerih so najbolj znane eXtreme Programming, Adaptive Software Development, Lean Development, SCRUM in Crystal. Vse te metodologije imajo za cilj hiter odziv na nove zahteve naročnikov, prilagodljivost na nove spremembe, razvoj kvalitetne programske opreme v najkrajšem možnem času in v okvirjih dogovorjenega zneska. Ne glede, da te metodologije izgledajo v teoriji zelo obetavno, težko je ocenjevati njihovo učinkovitost, ker je zelo malo izkušenj iz ne akademskega okolja. V podjetju Medius že drugo leto uporabljamo nekatere koncepte "agilnega progamiranja", zlasti pri razvoju kompleksnih "e-business" aplikacij na osnovi J2EE arhitekture pri katerih je potreba po hitrih in učinkovitih spremembah nujna.

V tem članku bomo prikazali naše izkušnje pri uvajanju in uporabi metodologije eXtreme programming s poudarkom na "unit testing", "refactoring", "design by patterns", "plug-in"-izacija programske arhitekture, upravljanja in vodenja kode ter razvojnih skupin.

Simon Beloglavec
Zmanjševanje kompleksnosti objektnih struktur s preoblikovanjem sestavljenih vzorcev
Načrtovalski vzorci se pogosto obravnavajo kot neodvisne smernice do rešitve za dani kontekst. Podrobnejša analiza posameznega vzorca, razkriva množico relacij z drugimi načrtovalskimi vzorci. Kompleksni vzorci se morajo obravnavati kot sistem, komunikacijsko močno sklopljenih vzorcev. Katalogi načrtovalskih vzorcev v večini primerov ne opisujejo relacij, ki lahko nastopijo med vsebovanimi vzorci. Standardiziran seznam splošno uveljavljenih relacij med vzorci prav tako ni na voljo. Relacije lahko predstavljajo začetno točko za analizo in odpravljanje nezaželene kompleksnosti dane rešitve. Članek predstavlja predlog, za merjenje kompleksnosti načrtovalskih vzorcev za programsko opremo, na osnovi relacij med vzorci. Prvi del članka analizira obstoječe predloge za klasifikacijo relacij. Drugi del predstavlja na primeru merjenje in odpravljanje nezaželene kompleksnosti s pomočjo preoblikovanja sestavljenih vzorcev.

Vabljeno predavanje 10:30-11:15
Bran Selic
Does Your Software Creak As It Runs?
We are often so overwhelmed with the difficulty of writting logically correct software that we tend to underplay or even ignore the influence of the underlaying computing platform. In some cases, this negligence has been raised to the level of a design principle, based on a dangerously naive interpretation of the idea of "platform independence". After all, it is the platform that gives life to our logic and, as we demonstrate, its effect on software can be profound. We argue that software is not as far removed from physics as many imagine (or hope), that quantity can affect quality, and that, paraxodically, true platform independence cannot be achieved unless the platform is properly factored into design. We then outline a general approach that addresses this issue and show how it can be realized with UML.

KAJ RAZVIJALCU OLAJŠA ŽIVLJENJE 11:40-13:15

Uroš Šmon
Programi, ki skrbijo sami zase
V prispevku bomo predstavili značilnosti tehnologije za avtomatski prenos programskih modulov, vpliv na razvoj programov in vzdrževanje. Predstavili bomo, kako lahko preko ustreznega aplikacijskega vmesnika dostopamo do storitev tehnologije BITS (Background Intelligent Transfer Service), vključno z varnostjo, prioritetami, ponovim proženjem, prenosom v ozadju, ter kako lahko te zmožnosti izkoristimo pri zasnovi in razvoju sodobnih informacijskih rešitev. Predstavljene bodo torej praktične implikacije omenjene tehnologije.

Boštjan Kežmah
Triki pri razvoju spletnih aplikacij
Več kot leto dni je že, odkar je izšla prva različica ogrodja Microsoft .NET, izid druge je pred vrati. V tem času smo nabrali že kar nekaj izkušenj in hroščev. Ena večjih pridobitev ogrodja je razen podpore spletnih storitev nova generacija platforme za izdelavo spletnih aplikacij – ASP .NET. Pričakujemo lahko, da se bodo tudi tisti, ki še vedno vztrajajo na stari platformi, kmalu vdali. Pri tem jim bodo, tako kot tudi izkušenim razvijalcem, v veliko pomoč dosedanje izkušnje.
V prispevku bomo predstavili nekaj nasvetov in trikov, ki ciljajo tako na začetnike kot izkušene razvijalce. Pri tem bomo naslovili predvsem težave, ki se pogosto pojavljajo in nekatere skrite zmogljivosti ogrodja, ki postajajo nepogrešljive pri razvoju sodobnih spletnih aplikacij.

Bojan Štok, Sebastjan Žerovc, Ciril Petr
Ogrodje za razvoj spletnih aplikacij in upravljanje dopolnilnih storitev v telefoniji
Predstavljeno je spletno ogrodje, ki smo ga razvili v našem podjetju in uporabili pri implementaciji aplikacije za upravljanje dopolnilnih storitev v telefoniji. Na kratko je predstavljeno tudi novo Sunovo ogrodje Java Server Faces (JSF). Razvoj spletnih aplikacij v Javi brez ogrodij je precej zamudno in zapleteno. Najbolj uporabljeno ogrodje je Struts, ki so ga razvili pri Apache. V Javi pogrešamo vizualna orodja za razvoj spletnih aplikacij kot je ASP.NET. Načrtovalci JSF upajo, da bodo programerji prešli iz uporabe ogrodja Struts na JSF. Od proizvajalcev razvojnih orodij pa pričakujejo, da bodo podprli vizualni razvoj spletnih aplikacij z ogrodjem JSF."

Andrej Krajnc, Gordana Budimir, Robert Vehovec, Luka Štok
Izkušnje z uporabo odprte kode pri razvoju programske opreme COBISS
V zadnjem času koncept odprte kode vse bolj pridobiva na pomenu. Vse več je projektov, ki temeljijo na uporabi odprte kode. Prispevek opisuje izkušnje (pozitivne in negativne), pridobljene z uporabo odprte kode pri razvoju programske opreme COBISS. Knjižnice razredov, ki temeljijo na odprti kodi, se v COBISS-u uporabljajo predvsem pri:

  • delu z XML-om (Xerces, Xalan, Saxon, Sun Multi-Schema XML Validator, Batik, itd.),
  • implementaciji Z39.50 strežnika (DBUtils),
  • implementaciji iskalnika (OCLC Site Search, Lucene),
  • delu z MARC bibliografskimi zapisi (MARC4J),
  • implementaciji naročanja po standardu ISO-ILL (A2J),
  • pretvorbi izpisov v različne formate (IText, Retep, POI, itd.),
  • zagonu jave kot servisa (Java Service Wrapper),
  • delu s servleti in JSP (Tomcat).
Prispevek govori tudi o načrtih za uporabo odprte kode v prihodnosti,
predvsem pri uvajanju spletnih storitev.

GOVORNA KOMUNIKACIJA IN XML 14:30-16:15

Bojan Imperl, Peter Koželj
Tehnologija VoiceXML v praksi
V letu 2000 bil predlagan skriptni jezik VoiceXML, ki temelji na tehnologiji XML in vključuje vrsto ukazov na visokem nivoju abstrakcije za krmiljenje komponent govorne tehnologije in telefonske platforme. Jezik VoiceXML so skupaj predlagali AT&T, Motorola, Lucent in IBM ter predstavlja poenotenje njihovih lastnih (prejšnjih) rešitev. VoiceXML namenjen za gradnjo sistemov govornega dialoga med človekom in strojem, torej za gradnjo govornih uporabniških vmesnikov v telefonskem okolju, ki vključujejo: avtomatsko sintetiziranje govora (TTS: text to speech), avtomatsko razpoznavanje govora (ASR: automatic speech recognition), prepoznavanje DTMF signalov (Dual-Tone Multi Frequency), predvajanje in shranjevanje zvočnih posnetkov.
Jezik VoiceXML se je zelo hitro uveljavil po vsem svetu, v preteklem letu pa se je pojavil tudi pri nas. V članku bodo na kratko predstavljena storitev M-Vstopnica, ki so jo skupaj izdelali partnerji HERMES SoftLab, Mobitel, Ljubljanski kinematografi – Kolosej, Programski atelje A&Z ter finski Moom. M-Vstopnica omogoča uporabnikom mobilnih telefonov rezervacijo in nakup vstopnic za kino predstave preko govornega uporabniškega vmesnika v slovenskem jeziku.
Namen članka je predstaviti konkreten primer uporabe tehnologije VoiceXML v praksi; predstaviti prednosti in omejitve VoiceXML sistemov na dejanskem primeru, ter predstaviti spremljajoče tehnologije kot so mrežne storitve (Web services), ki omogočajo uspešno integracijo sistema za prepoznavanje govora v učinkovito celoto. Poleg opisa sistema bo podana tudi analiza delovanja sistema po prvih desetih mesecih obratovanja.

Igor Horvat, Borut Fabjan
Sodobne govorne aplikacije
Članek obravnava razvoj in arhitekturo sodobnih govornih aplikacij na osnovi tehnologij VoiceXML 2.0 in VoIP ter delovanja v produkcijskem okolju, ki zahteva nemoteno delovanje. Članek ima poudarek na konkretnem problemu, rešitvi in arhitekturi ter uporabljenih tehnologijah.

Janez Kaiser
Avtomatski razpoznavalnik govora
V pričujočem članku bomo predstavili avtomatski razpoznavalnik govora, razvit v Hermes SoftLab kot del Hermes SoftLab VoiceXML strežnika. Razpoznavalnik predstavlja prvi sistem za razpoznavanje govora v slovenskem jeziku, ki je doživel praktično uporabo v komercialnem sistemu.

V zadnjem času so se tudi na našem področju začeli uveljavljati sistemi telefonskega dialoga, ki omogočajo nudenje storitev uporabnikom brez posredovanja operaterjev. Pri večini takih sistemov, ki so trenutno na voljo, uporabniki vnašajo zahteve z uporabo tipk na telefonskem aparatu (DTMF signali). V Hermes SoftLab smo se odločili, da zasnujemo sistem telefonskega govornega dialoga, ki bi omogočal vnos zahtev s pomočjo govora, kar odpravlja vrsto omejitev, ki jih predstavlja interakcija s pomočjo DTMF. Hkrati pa je govorna komunikacija uporabniku tudi neprimerno prijaznejša in naravnejša. Razvoj telefonskega govornega dialoga je temeljil na tehnologiji, ki omogoča snovanje govornih dialogov v jeziku VoiceXML. Prvi širši javnosti ponujen sistem, ki je bil izdelan s pomočjo omenjene tehnologije, je M-vstopnica. To je sistem za nakup ali rezervacijo kinematografskih vstopnic v Kolosej kinematografih v Ljubljani in Kopru.

Pri snovanju VoiceXML strežnika smo naleteli na težavo pri izbiri avtomatskega razpoznavalnika govora. Na tržišču dosegljivi komercialni razpoznavalniki govora namreč ne nudijo podpore za slovenski jezik. Prirejevanje razpoznavalnika, ki je v osnovi zgrajen za razpoznavanje tujega jezika, za razpoznavanje slovenskega jezika ni dalo zadovoljivih rezultatov, zaradi česar smo se odločili, da izdelamo razpoznavalnik sami. Izdelava je obsegala dve fazi: izbiro algoritma za razpoznavanje in njegovo implementacijo ter snemanje baze govornih posnetkov, ki so potrebni za izdelavo statističnih modelov govora, uporabljenih pri avtomatskem razpoznavanju govora.

Razpoznavanje govora poteka v treh fazah: detekciji govora, izračunu značilk in iskanju najverjetnejšega niza besed. Vzorce govora, ki jih dobimo npr. v povratnem klicu iz telefonske kartice, najprej vodimo v detektor govora. Za detekcijo govora uporabljamo meritve energijskih nivojev govora. Nivoji se dinamično adaptirajo glede na glasnost šuma, ki je prištet govoru. Iz vzorcev govora, ki jih detektor govora označi kot govor, izračunamo značilne vektorje. Pri tem uporabljamo redukcijo šuma in prilagoditev na telefonski kanal. Za izračun značilk uporabljamo mel kepstrum metodo. Na podlagi dobljenih značilnih vektorjev nato z Viterbijevim algoritmom poiščemo najbolj verjetno zaporedje besed, ki jih modeliramo s fonemskimi prikritimi modeli Markova. Iskanje je omejeno s slovnicami za razpoznavanje, ki določajo, katere besede so predvidene v vhodnem govoru in kako si lahko sledijo.Razpoznavalnik omogoča uporabo v naprej definiranih slovnic, lahko pa se definirajo tudi dinamično tik pred pričetkom razpoznavanja.

Razpoznavalnik je implementiran kot razred v jeziku C++. Do sedaj je bil uporabljen na operacijskih sistemih Windows in Linux, vendar pa je zasnovan tako, da je ga je možno preprosto prenesti na druge operacijske sisteme. Uporabnik komunicira z razpoznavalnikom preko za uporabo zelo preprostega nabora funkcij. Med tipičnim potekom enega razpoznavanja si sledijo funkcije:1) definicija slovnice; 2) pričetek razpoznavanja; 3) prenašanje vzorcev govora; 4) zaključek razpoznavanja. Razpoznavalnik komunicira z uporabnikom preko povratnih klicev. Primeri sporočil so: zaznan začetek oziroma konec govora in rezultat razpoznavanja.

Druga faza projekta je bilo snemanje baze posnetkov, ki smo jih uporabili za učenje prikritih modelov Markova. Večji del baze je bil posnet med zaposlenimi v Hermes SoftLab. Ta del vsebuje posnetke 170 govorcev. Vsak govorec je prebral 20 fonetično bogatih stavkov in tri zaporedja števk in pogostih ukazov. Drugi del posnetkov pa smo dobili med testnim obratovanjem M-vstopnice. Ti posnetki so primarno namenjeni modeliranju šumnega okolja pri uporabi razpoznavalnika v praksi.

Z uporabo modelov, naučenih na opisani bazi, dobimo na testih s posnetki iz pilotne faze M-vstopnice zanesljivost razpoznavanja večjo kot 99%.

Robert Korošec, Matic Petek
Inteligentno shranjevanje XML datotek
V času, ko XML postaja običajni del vsake aplikacije, se zastavljajo vprašanja možnosti učinkovitega shranjevanja XML dokumentov v podatkovne baze. Ne želimo, da je dokument samo statična datoteka, brez konkretnega pomena za že obstoječi podatkovni model. Glede na to, da ima XML dokument strukturirano obliko podatkov, želimo strukturo relacijsko povezati s že obstoječim podatkovnim modelom, ter izkoristiti vse običajne prednosti relacijske podatkovne baze (hitro iskanje po podatkih s pomočjo indeksov, močan in uveljavljen programski jezik SQL za obdelavo podatkov, itd.).

Oracle XML DB je nadgradnja podatkovne baze Oracle 9i, ki omogoča različne načine shranjevanja XML dokumentov ter skrbi za njihovo povezljivost s običajnim relacijskim okoljem. V prispevku bomo predstavili arhitekturo XML DB, prednosti strukturiranega shranjevanja, ter povezljivost s svetom relacijskih podatkovnih baz.

SODOBNI PRISTOPI V PRAKSI 16:30-18:00

Boris Benko
Povezovanje poslovnih procesov na področju komunikacij s pomočjo J2EE integracijske nadgradnje
J2EE komponentni modeli so uporabni tudi za integracijske namene, v kolikor so ustrezno nadgrajeni z ustreznimi programskimi komponentami. Članek opisuje izkušnje, pridobljene z uspešno izvedenim pilotnim projektom na področju komunikacij. Projekt je pokazal pozitivne strani integracijske nadgradnje, ki podatkovne tokove v različnih tehnologijah pretvori v XML sporočila, ki jih integracijska nadgradnja obdeluje sinhrono ali asinhrono, ter jih po potrebi povratno pretvori v izvorno ali kakšno drugo ponorno tehnologijo, primerno za nadaljno obdelavo. Po izvedbi projekta so se oblikovale vrednostne metrike, kako koristni so posamezni integracijski moduli, kako dobro integracijska nadgradnja zna procesirati XML sporočila, ter kako zmogljiva je celotna integracijska arhitektura. V zaključku je podan kratek pregled ključnih značilnosti J2EE integracijske nadgradnje, glede na kontekst zahtev iz področja komunikacij.

Luka Debeljak
Principi gradnje večnivojskih aplikacij za ogrodje .NET
Z nenehnim razvojem tehnologije se korenito spreminjajo tudi pristopi k izgradnji sodobne programske opreme ter s tem neposredno tudi arhitektura programskih rešitev. Sodobne aplikacije so tako zasnovane porazdeljeno in večnivojsko, pri čemer posamezni nivoji predstavljajo smiselno ločene in izvedene funkcionalne gradnike aplikacije, porazdelitev pa tipično zajema vsaj podatkovni nivo, nivo poslovne logike ter nivo uporabniškega vmesnika.

Vzporedno z novo usmeritvijo razvoja programske opreme pa se razvija in uveljavlja tudi izvajalno in razvojno ogrodje .NET podjetja Microsoft, katero omogoča izgradnjo novih, sodobnih aplikacij za platforme podjetja Microsoft. Pri tem ogrodje .NET v zasnovo in arhitekturo porazdeljenih, večnivojskih aplikacij uvaja veliko novih konceptov in tehnologij, s katerimi je med drugim omogočena lažja in preprostejša izvedba, vpeljava in administracija aplikacij.

V okviru predstavitve bo prikazana stukturna zasnova večnivojske aplikacije za ogrodje .NET ter tehnologije, ki dejansko izvedbo takšne aplikacije omogočajo. Govora bo o medsebojni komunikaciji aplikacijskih nivojev, načinu prenosa ter serializaciji podatkovnih sporočil, integraciji aplikacij preko servisnih agentov in spletnih storitev, obrazložene pa bodo tudi lastnosti ter načini uporabe tehnologij .NET Remoting, Serviced Components, ASP.NET ter objektnih modelov ADO.NET, XML.NET in Windows Forms pri izvedbi večnivojskih aplikacij .NET.

Janko Mivšek
Zakaj Smalltalk?
V teh časih, ko je "politično korektno" govoriti le o Javi ter .NET, želimo s prispevkom prikazati trenutno stanje na področju Smalltalk-a tako v svetu kot pri nas. Evropsko združenje Smalltalkerjev ESUG namreč organizira letošnjo konferenco na Bledu, zato je sedaj prava priložnost, da osvežimo nekaj informacij o samem jeziku Smalltalk ter na njem temelječih orodjih, o prednostih in slabostih napram ostalim, o glavnih ponudnikih razvojnih orodij ter produktov na trgu, o stanju pri nas, o prosto dostopni Smalltalk kodi, o dogajanju v Smalltalk srenji, ...

Robert Prebil
Usodne napake pri informacijskih projektih
Prispevek bo (v nadaljevanju so našteti možni naslovi) identificiral, po avtorjevem skromnem mnenju, nekaj največjih težav tradicionalnega komercialnega načina vodenja projektov razvoja programske opreme po naročilu, predvsem s procesno/organizacijsko/ekonomsko/pravnega vidika. Posledice takega načina vodenja IT projektov so vidne v tem, da večina naročnikov ni zadovoljna z rezultati, ki jim jih prinašajo na tak način razvite >poslovne rešitve<, po drugi strani pa je nezadovoljen tudi izvajalec, ker mu večinoma ne uspe realizirati predvidenega poštenega zaslužka. Skratka >lose-lose< situacija za oba udeleženca. Prispevek bo v nadaljevanju predstavil KONKRETNO rešitev navedenega, tj, kako je mogoče komercialne IT projekte voditi na drugačen, >netradicionalen<, a precej bolj uspešen način, kjer bosta zadovoljna oba, tako naročnik kot tudi izvajalec.

24.6.2003
Predkonferenčna predavanja
Tukaj lahko najdete gradivo za seminar, ki se je odvijal na predkonferenčni prireditvi.
13.6.2003
Okrogla miza
Na spletnih straneh smo dodali podrobnosti o okrogli mizi, ki bo v sredo, 18. junija.
13.6.2003
Kje nas najdete?
Smetanova ulica 17.
10.6.2003
Parkirna mesta
Organizator zagotovil 63 parkirnih mest pred FERI na Smetanovi ulici.
9.6.2003
Udeležbo potrdil državni podsekretar MID
Otvoritve se bo udeležil tudi dr. Miroslav Kranjc, državni podsekretar Ministrstva za informacijsko družbo.
4.6.2003
Otvoritveni govor rektorja UM
Rektor Univerze v Mariboru je potrdil udeležbo na otvoritvi konference OTS'2003.
27.5.2003
Prijavnica
Na spletnih straneh smo objavili prijavnico za konferenco v elektronski obliki.
9.5.2003
Vabila za konferenco OTS'2003
Poslana vabila za konferenco. Začeli zbirati prijave udeležencev.
17.4.2003
Alcad
Alcad, d.o.o. pokrovitelj 8. konference OTS'2003.
15.4.2003
Razvojni center IRC Celje
Razvojni center IRC Celje, d.o.o. pokrovitelj 8. konference OTS'2003.
15.4.2003
Nova KBM
Nova KBM pokrovitelj 8. konference OTS'2003.
14.4.2003
IBM
IBM pokrovitelj 8. konference OTS'2003.
14.4.2003
Sestanek programskega odbora
V soboto, 12.4.2003, se je sestal programski odbor konference OTS'2003, kjer je bil potrjen program konference.
14.4.2003
SIGMA IFace
Podjetje SIGMA IFace pokrovitelj 8. konference OTS'2003.
11.4.2003
Iskratel
Podjetje Iskratel pokrovitelj 8. konference OTS'2003.
7.4.2003
Podaljšan rok objave programa
Zaradi podaljšanega roka za oddajo prispevkov bomo program konference objavili v torek 15. aprila.
2.4.2003
Marand d.o.o.
Podjetje Marand d.o.o. pokrovitelj 8. konference OTS'2003.
1.4.2003
Zavarovalnica Maribor
Družba Zavarovalnica Maribor d.d. pokrovitelj 8. konference OTS'2003.
27.3.2003
HERMES SoftLab
Podjetje HERMES SoftLab pokrovitelj 8. konference OTS'2003.
25.3.2003
Navodila za oblikovanje prispevkov
Na spletnih straneh smo dodali navodila avtorjem za oblikovanje prispevkov. Najdete jih na straneh, ki so namenjene za avtorje.
 
 
 
Prva stran | E-mail | Programski odbor | Organizacijski odbor | Uporabne povezave | Podrobne informacije
© 2003 Center odličnosti za sodobne informacijske tehnologije in storitve. Vse pravice pridržane.