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.
|