EESTI INFOTEHNOLOOGIA KOLLEDŽ PRAKTIKA ARUANNE PEETER LUMP INFOTEHNOLOOGIA SÜSTEEMIDE ARENDAMISE ÕPPEKAVA Juhendaja : T. Järvi
Konsultant : M. Tamm
Tallinn 2011 Sisukord
1 Sisukord 1
Sisukord ....................................................................................................................... 2
2
Praktikaettevõte ............................................................................................................ 4
2.1
Tegevusvaldkond .................................................................................................. 4
2.2
Keskuse struktuur .................................................................................................. 4
2.3
Divisjonide Põhiülesanded .................................................................................... 5
2.4
Praktikakoha kirjeldus ........................................................................................... 5
3
Projektid ja tööülesanded ............................................................................................. 6
3.1
Tutvumine
SMIT -is kasutatavate infosüsteemide arendamise tehnoloogiatega. .. 6
3.2
Luua
andmemudel ettevõtte ruumide kasutamise õigustest töötajate poolt. ......... 6
3.3
Loodud andmemudelist genereerida
andmebaas . .................................................. 7
3.4
Projekti jätkuna luua infosüsteem. ........................................................................ 7
3.5
Migreerida projekt STS keskkonda. Tutvumine uue keskkonnaga....................... 7
3.6
Projektis tuleb päringute kiirust suurendada. ........................................................ 7
3.7
Projekti tutvustamine tellijale. ............................................................................... 8
3.8
Projektis tuleb teha muudatused. ........................................................................... 8
3.9
Infosüsteemi andmete sisestamisel tuleb kasutada auto-
complete . ....................... 8
3.10
Tuleb luua infosüsteemi analüüs. ...................................................................... 8
4
Tulemused .................................................................................................................. 10
EESTI INF OTE HNOL OOGIA K OLLE DŽ 2 Sisukord
5
Praktika
sooritus ......................................................................................................... 12
6
Hinnang praktikale ..................................................................................................... 13
7
Kokkuvõte .................................................................................................................. 14
8
Kasutatud kirjandus ................................................................................................... 16
8.1
Praktika õppekirjandus ........................................................................................ 16
8.2
Aruande koostamisel abiks .................................................................................. 16
EESTI INF OTE HNOL OOGIA K OLLE DŽ 3 Praktikaettevõte
2 Praktikaettevõte Siseministeeriumi infotehnoloogia- ja
arenduskeskus on Siseministeeriumi
hallatav riigiasutus. Keskuse nime ametlik lühend on SMIT.
Keskus asub Tallinnas. Keskuse postiaadress on Sõpruse pst 145.
2.1 Tegevusvaldkond Keskuse tegevusvaldkonnaks on ministeeriumi ja tema valitsemisala sisejulgeoleku
tagamiseks vajalike infokommunikatsioonitehnoloogia valdkonna teenuste osutamine ja
selleks vajalike arendus- ning haldusprotsesside korraldamine ja koordineerimine.
2.2 Keskuse struktuur Keskuse struktuuriüksuseks on divisjon.
Divisjoni koosseisu võib
kuuluda osakond .
Keskuse divisjonid on:
strateegia divisjon;
infrastruktuuri divisjon;
arendusdivisjon;
tugidivisjon;
administratiivdivisjon.
EESTI INF OTE HNOL OOGIA K OLLE DŽ 4 Praktikaettevõte
2.3 Divisjonide Põhiülesanded Strateegia divisjoni ülesandeks on arendusprotsesside strateegilist ühtsust tagavate
standardite, dokumentide sh arengukavade, protsesside ja süsteemide
väljatöötamine ning rakendamine ministeeriumis ja tema valitsemisalas.
Infrastruktuuri divisjoni ülesandeks on infrastruktuuril baseeruvate teenuste
pakkumine läbi infotehnoloogilise ja kommunikatsiooni infrastruktuuri
riist - ja
tarkvara haldamise, arendamise ning
rakendamise korraldamise ministeeriumis ja
tema valitsemisalas.
Arendusdivisjoni ülesandeks on tarkvaral baseeruvate teenuste pakkumine läbi
tarkvara haldamise ja arendustegevuse korraldamise ning infotehnoloogilise
arhitektuuri korrastamise ministeeriumis ja tema valitsemisalas.
Tugidivisjoni ülesandeks on keskuse poolt osutatavate infotehnoloogia- ja
sideteenuste kasutamiseks vajalike lõppkasutajate seadmete tehnilise korrashoiu
ning tehnilise- ja kasutajatoe tagamine ministeeriumis ja tema valitsemisalas.
Administratiivdivisjoni ülesandeks on infokommunikatsioonitehnoloogia alast
põhitegevust toetavate teenuste osutamine ministeeriumis ja tema valitsemisalas.
2.4 Praktikakoha kirjeldus Praktika toimub arendusdivisjoni tarkvaraarenduse
osakonnas . Osakonnas on
kümmekond otseselt programmeerimisega tegelevat inimest, kelledele lisandub
analüüsiosakonnast samuti kümmekond analüüsi ning arhitektuuriga tegelevat inimest. IT
alased oskused on suhteliselt kõrged kuna on tegemist igapäevatööga. On ka IT Kolledži
lõpetanuid. Ettevõte sobib ideaalselt praktikakohaks.
EESTI INF OTE HNOL OOGIA K OLLE DŽ 5 Projektid ja tööülesanded
3 Projektid ja tööülesanded Praktika I toimus ajavahemikul 1. November 2010 kuni 24. Detsember 2010. Praktika II
toimus ajavahemikul 17. Jaanuar 2011 kuni 18. Märts 2011. Praktika jooksul
sooritatud ülesanded võib tuua ühise nimetaja alla – milleks on täiesti uue tervikliku infosüsteemi
loomine.
Järgnevalt lühidalt sooritatud alamülesannetest:
3.1 Tutvumine SMIT-is kasutatavate infosüsteemide arendamise tehnoloogiatega. Teha selgeks, mida kujutavad endast järgmised märksõnad:
Töövahendid – NetBeans, SVN
Teenuste formaadid –
JSON , SOAP+
WSDL , JMS
Programmeerimiskeeled –
Java , Groovy, Javascript
Arendusraamistikud – GRAILS,
Spring MVC, Spring DI, Hibernate
Rakendusserverid – Tomcat, Glassfish
Andmebaasisüsteemid – ORACLE 11g, POSTGRESQL 8
3.2 Luua andmemudel ettevõtte ruumide kasutamise õigustest töötajate poolt. Enterprise Architect keskkonnas tuleb luua andmemudel ruumide kasutamise õigustest.
EESTI INF OTE HNOL OOGIA K OLLE DŽ 6 Projektid ja tööülesanded
Samuti peab tulemus sisaldama infot, kus asuvad võtmed – kelle käes või millises ruumis.
3.3 Loodud andmemudelist genereerida andmebaas. Andmebaas tuleb luua vastavalt nõuetele, mis kehtivad ettevõttes. Nõuded on põhiliselt
andmebaasi loomise skriptidele. Seega tuleb luua skriptid, mis teevad andmebaasi valmis.
3.4 Projekti jätkuna luua infosüsteem. Infosüsteem tuleb luua NetBeans keskkonnas, GRAILS [5] projektina, kasutades gruuvi
programmeerimiskeelt.
3.5 Migreerida projekt STS keskkonda. Tutvumine uue keskkonnaga. Eelmises tööülesandes alustatud infosüsteem tuleb migreerida uude arenduskeskkonda,
milleks on SpringSource Toolsuite [4]. NetBeans keskkonnas on tekkinud GRAILS
projektidele väikseid probleeme, mistõttu minnakse ettevõttes üle teise keskkonda.
Tutvuda uue keskkonnaga ning jätkata projektiga. SpringSource Toolsuite on
Eclipse baasil arenduskeskkond.
3.6 Projektis tuleb päringute kiirust suurendada. Projektis näidatakse teatud vaadetes
pikki liste andmetest. Neid tuleb sorteerida ning
filtreerida ning selleks, et iga päringuga ei tagastataks kogu vaadet, tuleb projektis listid
küsida
AJAX -iga [6]. Listid tuleb saata JSON-is.
JSON on analoog XML-ile. Ta ei sisalda pikki kirjeldavaid tagisid, vaid on ainult puhtalt
andmed. AJAX-i päringud on GRAILS-i lisatavad pluginate abil. Ka AJAX on üks
asjadest, millele IT Kolledžis erilist rõhku ei panda, paraku suurtes infosüsteemides on
see
lahutamatu osa.
EESTI INF OTE HNOL OOGIA K OLLE DŽ 7 Projektid ja tööülesanded
3.7 Projekti tutvustamine tellijale. Projektile tuleb kirjutada esmane kirjeldus ning esitada tellijatele, kelleks on ettevõtte
sees üks teine osakond.
3.8 Projektis tuleb teha muudatused. Projektis on teatud andmeid, mida on tarvis infosüsteemis kuvada ka peale nende
andmete tühistamist või nende andmete kehtivuse aja lõppemist. Need andmed tuleb
kuvada tühistamise või kehtivuse aja lõppemisega koos lisades kirjele „
Kehtetu alates“.
3.9 Infosüsteemi andmete sisestamisel tuleb kasutada auto-complete. Infosüsteemi andmete sisestamisel on andmed alati mõne olemasoleva kirjega seotud.
Kuna kirjeid tabelis võib olla kümme
tuhat või rohkemgi ei ole mõeldav, et otsitav kirje,
mille külge sisestatav kirje liita, leitakse mõnest loendist. Selleks tuleb kasutada otsingut.
Sisestades lahtrisse mõned tähed, peab infosüsteem pakkuma
variante , kus selline
tähekombinatsioon esineb. Kasutaja valib sellest lühikesest loendist endale sobiva.
GRAILS-is on selle tarvis loodud SEARCHABLE plugin. See kasutab
Apache lucene
indekseerimistarkvara, mis koostöös moodustavad päris võimsa otsingute süsteemi. Nüüd
lisaks vaid
jQuery -ga päringud ning süsteem töötab päris laitmatult.
3.10 Tuleb luua infosüsteemi analüüs. On juhtunud tobe lugu, kus infosüsteem hakkab valmis saama, kuid see, mille alusel teda
oleks pidanud ehitama ehk infosüsteemi analüüs, puudub. Lihtsalt kirjeldades tuleb kõik
senitehtu dokumenteerida ning üles joonistada.
Infosüsteem on saanud päris mahukas. Kokku sain 102 erinevat kasutusjuhtu, mis on
otsesed ning autonoomsed
toimingud loodud registris. Õnneks on kasutusjuhud
olemuselt sarnased ning neid on kuute erinevat tüüpi:’
1. Objekti või tehingu registreerimine (
luuakse kirje).
EESTI INF OTE HNOL OOGIA K OLLE DŽ 8 Projektid ja tööülesanded
2. Objekti või tehingu otsing ning vaatamine. Kasutaja kasutab filtreid otsitava
objekti või tehingu leidmiseks (filtreerida saab kõikide parameetrite järgi) ja
vajutab „Esita“ nuppu, mille järel kuvatakse objekti või tehingut puudutav
informatsioon ning seosed.
3. Objekti omaduste muutmine (kirje muutmine).
4. Registreeringu tühistamine. Objekt, mida enam ei ole või tehing, mis ei kehti
enam, tühistatakse. Infosüsteemis on edaspidi info kätte saadav kui kehtetu info.
5. Registreeringu
taasavamine . See on tühistamisele
vastand operatsioon . Ei ole väga
tihti kasutuses.
6. Registreeringu kustutamine. Pärast operatsiooni ei ole info enam kätte saadav.
Loodud infosüsteem saab ning uuendab oma mõned andmed, nagu isiku ja ametikoha
andmeid, ametnike registrist ning tulevikus hakkab välja pakkuma erinevaid teenuseid.
EESTI INF OTE HNOL OOGIA K OLLE DŽ 9 Tulemused
4 Tulemused Sain selge ettekujutuse, kuidas SMIT-is toimub infosüsteemide arendamine.
Kasutusel on palju tehnoloogiaid, milledega ma ei olnud varem kokku puutunud.
Modelleeritakse Enterprise Architect keskkonnas, mis on sarnane kolledžis
kasutatavale Racional
Rose -le –
loogika on sama. Praktika käigus sai loodud
andmemudel ning genereeritud andmebaasi loomise
skript koos test
andmebaasiga.
Enim kasutatakse kõrgtaseme keelt Groovy, mille baasil luuakse GRAILS
projekte.
Avastasin, et GRAILS suudab koos hoida SPRING-i ning HIBERNATE ilma
tohutuid XML konfiguratsioone kirjutamata. Turvalisus koos logimistega näiteks
töötab SPRINGSECURITY baasil. Suhteliselt lihtne on luua rollide ning õiguste
süsteem.
GRAILS-i domeenimudelis vaid üks käsk „belongsTo“ või „hasMany“ ehitab
kokku terve andmemudeli seoste süsteemi. Kuna kasutusel on
laisk väärtustamine,
ei tee nende seoste kaasas kandmine andmebaasi päringuid keerulisemaks, küll on
vajadusel lihtne pöörduda etteantud muutuja poole.
Uurisin GRAILS pluginate toimimist ning nende tohutuid võimalusi. Samuti on
võimalik luua oma pugin, mingi spetsiifilise tegevuse jaoks.
Mõistsin, et GRAILS programmeerimine on suund, kuhu on mõttekas pürgida.
Üllatuslikult on GRAILS kasutamine Eestis vähe levinud.
Sain ettekujutuse, mis asi on AJAX, oskan nüüd teha jQuery–s päringuid,
konverteerida saadetavat infot JSON-isse ning brauseriga seda näidata.
EESTI INF OTE HNOL OOGIA K OLLE DŽ 10 Tulemused
Jõudsin arusaamisele, mis asi on LUCENE indekseerimine ning oskan seda koos
jQuery päringutega kasutada.
Täiesti uudse
asjana õppisin süsteemi grid960 kasutama. Teisiti öeldes, kogu
traditsiooniline kujundus lihtsustus oluliselt. Näiteks tabeli tagide asemel antakse
div klassile nimi ning see esitab andmed veebilehel kokkulepitud kohas. Vaadetes
kirjutatud kood lühenes pea poole võrra. Lisaks on võimalik kõik vaated vaid
pisikeste muudatustega täiesti teiseks teha.
EESTI INF OTE HNOL OOGIA K OLLE DŽ 11 Praktika sooritus
5 Praktika sooritus Kõike eelpoolnimetatut IT Kolledžis ei õpetata, samas tuleb tõdeda, et enamus kasutusel
olnud märksõnad ning
tehnoloogiad on IT Kolledži erinevate ainete sooritamisel
loengutekstidest läbi käinud. Täiesti uue asjana, mida IT Kolledži õppekavas ei käsitleta,
tooksin välja GRAILS
tehnoloogia . Tegemist on koodigeneraatoriga, mis kasutab Groovy
programmeerimiskeelt. GRAILS tehnoloogia baseerub Javal. GRAILS tehnoloogia
võimaldab suhteliselt väikese tööjõukuluga saada arvestatavaid tulemusi.
Teise olulise
osana praktika käigus sooritatust tooksin esile Enterprise Architectiga
modelleerimise . Nagu
eelpool mainisin, on tegemist IT Kolledžis
kasutatava Racional
Rose analoogiga. Kui võrrelda IT Kolledžis sooritatud modelleerimist praktika käigus
tehtuga, oli kolledžis sooritatud ülesanne oluliselt lihtsam – mõni üksik tabel
andmemudelis, mõni üksik infovajadus jne. Paraku tegelikkuses tuleb lahendada palju
keerulisemaid ülesandeid ning loomulikult kasvab ressursi kulu eksponentsiaalselt
ülesande keerulisuse kasvuga.
Kolmandaks tooksin esile AJAX-i ja jQuery. Need koostöös, eriti veel kasutades JSON-i,
võimaldavad oluliselt kiirendada brauseri tööd. Enam ei ole tarvis andmeid korduvalt
suurtes
kogustes kliendini tarnida. AJAX-i päringuga küsime vaid pisut ning juba
näitame.
Andmebaasi koormuse vähendamiseks on oluline abimees LUCENE indekseerimine.
Ning mööda ei saa minna ka kujundamise abilisest grid960 [8].
EESTI INF OTE HNOL OOGIA K OLLE DŽ 12 Hinnang praktikale
6 Hinnang praktikale Hindaksin praktika sooritamise suurepäraseks.
Ausalt öeldes ma ei oleks kujutanudki
sisukamat praktikat ette. Töökorraldusliku poole pealt ma küll töötasin üksi, kuid mul oli
pidevalt võimalik küsida teistelt programmeerijatelt või praktika juhendajalt kui mul
tekkisid küsimused. Loomulikult ma kasutasin seda ohtralt. Samas nn grupitööd esines
ettevõttes suhteliselt vähe. Mõistagi alati võib nuriseda, kas just neid tehnoloogiad ning
selles järjekorras oli parim läbida kuid tuleb lähtuda ikkagi ettevõtte
vajadustest .
Kokkupuudet GRAILS tehnoloogiaga hindan väga kõrgelt ning soovitaksin seda IT
Kolledži õppekavas, näiteks
vooru „
veebirakendused Java baasil“ raames käsitleda või
koguni viia sisse uus
voor , mis oleks läbitav peale eelpoolnimetatud vooru läbimist.
Rõhutan, et GRAILS-ist arusaamiseks peab olema selge „veebirakendused Java baasil“.
Uue aine raames võiks käsitleda ka SPRING ning HIBERNATE ning kõikvõimalikke
abistavaid puginaid, mis on GRAILS-ile loodud. Lisaks tuleks käsitleda jQuery-t ning
AJAX-i ning LUCENE indekseerimist otsingute hõlbustamiseks. Sellist soovitust
põhjendan asjaoluga, et riiklikud infosüsteemid on suures osas programmeeritud Java
keeles, GRAILS on nn. Java kohal ning võimaldab programmeerijal väiksema ressursi
kuluga saavutada sama tulemuse ning arvan, et see tehnoloogia, mis on kõigile vabalt
ning tasuta kättesaadav, on hetkel parim lahendus infosüsteemi loomiseks.
EESTI INF OTE HNOL OOGIA K OLLE DŽ 13 Kokkuvõte
7 Kokkuvõte Praktika käigus sooritatud tööülesanded ei valmistanud mulle väga suuri raskusi. IT
Kolledžis õpitu baasil saab
rahulikult infosüsteeme looma hakata. Minu poolt alustatud
infosüsteem ei ole veel praktika lõpu seisuga valmis, kuid jätkan tööd kuna olen nüüd
SMIT-i töötajate nimekirjas. Lisaks on praktika käigus alustatud projekt ühtlasi ka minu
diplomitööks.
Järgnevalt paar vaadet minu poolt loodud infosüsteemist:
Näide pääsuloa sisestamisest [Joonis 1], kus ruum lisatakse kasutades auto-complete, mis
teeb jQuery päringu lucene indeksitele, ning
tagastab loendi, millest kasutaja valib:
Joonis 1 Pääsuloa sisestamine kasutades auto-complete koos lucene päringuga EESTI INF OTE HNOL OOGIA K OLLE DŽ 14 Kokkuvõte
Ruum vaade [Joonis 2]. Vaade tuuakse esile jQuery päringuga, jättes taustale loendi
vaate, milles on otsinguks
filtreerimine kõikide atribuutide järgi. Vaates esitatakse kõik
ruumiga seotud info,
vajutades „kehtetud ka“ nupule, esitatakse ka kehtivuse kaotanud
kirjed (tühistatud, kehtivuse aeg läbi). Vajutades Tee pääsulubade PDF, tehakse
kehtivatest pääsuõiguste kirjetest PDF fail.
Joonis 2 Ruum vaade Enda
seisukohast vaadates olen rahul, et leidsin praktikakoha suurte ning vastutusrikaste
infosüsteemide lähedale.
EESTI INF OTE HNOL OOGIA K OLLE DŽ 15 Kasutatud kirjandus
8 Kasutatud kirjandus 8.1 Praktika õppekirjandus 1. Groovy Documentation
2. Graeme Rocher and
Jeff Brown - The Definitive Guide to Grails
3. Erwin Vervaet - The Definitive Guide to Spring Web Flow
4.
http://www.springsource.com/ 5.
http://www.grails.org/ 6.
http://api.jquery.com/jQuery.ajax/ 7.
http://lucene.apache.org/ 8.
http://960.gs/ 8.2 Aruande koostamisel abiks www.smit.ee
EESTI INF OTE HNOL OOGIA K OLLE DŽ 16
Kõik kommentaarid