Meeskond "Teine"

From ICO wiki
Jump to navigationJump to search

Projekti üldine kirjeldus.

Veebiteenuse baasil ilma edastamise rakendusi on arvukalt. Windowsi külgriba ilmateade on oma olemuselt mittevajalik. Näiteks, hommikul kell 8 arvutit uurides, on esitatud ilma info kell 6 seisuga. Teisiti sõnastades on ekraanil esitatu ajalugu ning kuna see meid enam ei huvita, on tegelikkuses tegemist infomüraga. Küll huvitaks meid lähim ilma prognoos. Selline lühiajaline, alla 24 tunnine ilma prognoos on üldjuhul täpne. Seda infot on mõistagi leida erinevatelt meteoroloogia teenistuste kodulehtedelt kuid meie eesmärk on tuua see info töölaua nurgale ehk luua veebiteenusel põhinev rakendus, mis esitaks lähima ilma prognoosi. Seega rakendus võiks saada teenuselt kolm lähenevat prognoosi, esimene näitaks ilma umbkaudu 6 tunni pärast, teine 12 tunni pärast ning kolmas 18 tunni pärast. Rakendus kuvaks kõik kolm prognoosi korraga väikses aknakeses. See info on palju olulisem, kuna see paratamatult mõjutab meie käitumist.


I ülesanne

Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks).

Ilmajaama teenusele vajalikud andmed on ilmajaama kohta käivad põhiandmed (nimi, asukokt) ning ilma kohta käivad andmed (temperatuur, sademed, tuule kiirus ja suund). Valminud XML ja teised failid on leitavad ning allalaetavad järgmiselt leheküljelt: http://vr2ilmajaam2010.codeplex.com/.


II ülesanne

Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes.

Teenus on ilmselt parim luua andmebaasi põhine.

Tabelid:

1. jaam - hoitakse andmeid ilmajaama kohta (jaama nimi, asukoha koordinaadid).

2. ilmateade - hoitakse andmeid ilma kohta (temperatuur, tuule kiirus ja suund ning andmete esitamise aeg).

3. kasutaja - hoitakse andmeid kasutaja parooli ja kasutajanime kohta.

4. logi - kirjutatakse andmed kui mingi kasutaja on teenust kasutanud.

Teenuseid on kaks:

1. teenus tagastab ilmajaamad - teenuse tarbimiseks peab andma kasutajanime ja parooli.

2. teenus tagastab konkreetse ilmajaama info - teenuse tarbimiseks peab andma ilmajaama id, kasutajanime ja parooli.

Juhul kui kasutajanimi või parool ei ole andmebaasis, ei saa teenust kasutada.

See, kuidas kasutajanimi ja parool saavad andmebaasi, ei ole käesoleva ülesande teema.


Valminud teenus komplektse projektina on allalaetav aadressilt: http://vr2ilmajaam2010.codeplex.com/.


III ülesanne

Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele

Oleme pisut muutnud ilma info kogumise kontseptsiooni. Nüüd eeldame, et on mingi arv väikseid ilmajaamasid, mis koguvad info ning annavad selle rakendusele, mis edastab kogutud infot veebiteenusena. Meil on loodud kõrgema taseme administraator koos teenustega, mis tegeleb uute jaamade ning kasutajate lisamisega. Administraatori tasemel toimud ka ilma info lisamine. Madalamal tasemel toimub andmete kätte saamine vastavalt teenustele.

Administraatori teenus addUser ei tohi mõistagi olla vabalt kõigile kättesaadav, sest sellisel juhul saaks ükskõik kes lisada kasutajaid ning seeläbi ka ilmainfot nii lisada kui ka kasutada.

Administraatori poolt lisatud paroolist me arvutame räsi SHA1 algoritmiga (kasutame netist leitud algoritmi). Räsi hoitakse andmebaasis. Kasutaja poolt sisestatud paroolist arvutame samuti räsi ning võrdleme seda andmebaasi sisestatuga. Räsist teatavasti ei ole võimalik paroolini tagasi tulla.

Oleme uuendanud andmemudeli eriti põhjalikuks. Näiteks oleme arvestanud asjaoluga, et väikses ilmajaamas on kasutajanimi riistvaraliselt määratud, samas võib tema asukoht aja jooksul muutuda.

Lõpetuseks oleme loonud desktopi kliendi rakenduse, mis teeb tööd ainult madalama taseme teenustega. Seega saab kätte ilmajaamad koos sisestatud ilmainfoga.

Meil on tekkinud probleeme codeplexi andmete üleslaadimise ning allalaadimisega, ning uus versioon on allalaetav komlektse projektina: http://enos.itcollege.ee/~plump/VR2/Ilmajaam.rar.


Põhikaitsmine

Viimaseks ülesandeks valisime rakenduse, mis simuleerib väikest mobiilset ilmajaama. Rakendus on lahendatud veebiteenuse kliendina, mis kasutab teenust "addWeather".

Temperatuuri mõõtmist mõistagi ei õnnestu ainult tarkvaras lahendada, kuid selline simulaator annab selge ülevaate kogu projekti mõttest ning teostuse ideelisest lahendusest.

Temperatuuri mõõtmist reaalses süsteemis võib teostada näiteks arupuru (Smartdust) kübe, mis lihtsamais konfiguratsioonis omab standardvarustuses temperatuuri andurit ning mingisugust võrgukaarti.

Kogu projekt, mis koosneb teenustest, ilmajaama simulaatorist, mis teatab läbi teenuse andmeid ning klientrakendusest, mis võimaldab erinevate mobiilsete jaamade poolt salvestatud andmeid lugeda, on kokkupakituna allalaetav aadressilt: http://enos.itcollege.ee/~plump/VR2/Ilmajaam_ja_sim_klient.rar.