Meeskond "Söörlösed": Difference between revisions
Line 91: | Line 91: | ||
Unusual Suspects retsensioonid XML, teenuse ja kliendi kohta https://wiki.itcollege.ee/index.php/Talk:Meeskond_%22Unusual_Suspects%22 | Unusual Suspects retsensioonid XML, teenuse ja kliendi kohta https://wiki.itcollege.ee/index.php/Talk:Meeskond_%22Unusual_Suspects%22 | ||
==Akaver Veebiteenuse retsensioon== | ==Akaver meeskonna Veebiteenuse retsensioon== | ||
==Kolmas meeskonna XML retsensioon== | |||
Kolmas https://wiki.itcollege.ee/index.php/Talk:Meeskond_%22Kolmas%22_2012 | Kolmas https://wiki.itcollege.ee/index.php/Talk:Meeskond_%22Kolmas%22_2012 |
Revision as of 22:02, 28 May 2012
Plaan
Teeme väga hajusa rakenduse ehk veebiteenuse mis omakorda tarbib veebiteenust. Plaan järgmine: EMHI pakub iga tunni aja tagant tasuta ilmainfot oma mõningatest vaatlusjaamadest Lehel: http://www.emhi.ee/index.php?ide=32,1255 Seal on link http://www.emhi.ee/ilma_andmed/xml/observations.php kus värskelt mõõdetud ilmaandmed on kättesaadavad 10 minutit peale igat täistundi.
Meil on plaan tekitada veebiteenus, mis vastavalt sisestatud GPS koordinaatidele ja kuupäev-kellaajale kuvab ilmainfo. Ilmainfo kuvamiseks peame esmalt tekitama XML faili mõõtejaamade kohta. Jaamad, mis meie XML faili lähevad peavad vastama alljärgnevale kahele tingimusele:
- 1. Iga jaam peab olema jaamade listis, mis on kirjas
http://www.emhi.ee/ilma_andmed/xml/observations.php failis (s.t tema mõõteandmed edastatakse iga tunni tagant)
- 2. Jaamal peavad olema koordinaadid - need saab lingilt http://www.emhi.ee/index.php?ide=7 ,,Meteoroloogiajaamad" nimeliselt kaardilt jaama lingile klikkides.
Esmalt peame valmis tegema n.ö staatilise ehk siis käsitsi sisse löödud XML faili meid huvitavate (punkt 1. olevate) jaamade koordinaatidega. Teise XML faili saame eelpool nimetatud lingilt: http://www.emhi.ee/ilma_andmed/xml/observations.php XSLT abil paneme need 2 kokku - seda esitame oma XML-i pähe.
Edasi on meil plaan kirjutada 2 C# juppi.
- 1. Programm, mis hakkab iga tunni tagant EMHI käest ilmaandmeid küsima ja neid andmebaasi kirjutama.
- 2. Veebiteenus, mis saadud kuupäeva-kellaaja ja Eesti piires olevate koordinaatide abil arvutab välja ilmaandmed.
Ilmainfo väljaarvutamiseks kasutaks esialgu kahe lähima jaama vahel lineaarset interpoleerimist. S.t see võiks käia nii: N: Roomassaare jaamas on 1 kraad sooja ja Virtsu jaamas on 4 kraadi sooja. Nende andmete põhjal tahan teada, palju Kuivastus on sooja. Olgu Roomassaare-Virtsu vahemaa 80 km ning Kuivastu-Virtsu vahemaa 15 km. Roomasaarest -Virtsu tõuseb temp. iga kilomeetri kohta 3/80 kraadi, seega saan välja arvutada suvalise punkti temperatuuri, mis jääb Roomassaare-Virtsu vahele. Et Kuivastu on 15 km Virtsust-Roomassaare poole, siis lahutan 4-(15*3/80)=4-45/80=4-0,55=3,45 kraadi.
XML
Jaamade koordinaatide XML
Jaamade koordinaadid koos õhutemperatuuriga HTML-i XSLT abil
XSLT, mis teeb valmis meie XML-i kasutades koordinaatide XML-i ja EMHI reaalaja XML-i
Meie XML, (selle kohta saab arvustuse kirjutada ;)
Meie XML Schema
Veebiteenus
Teenuse meetodite koodifail on see https://www.dropbox.com/sh/st7yxaxwt48bc2c/5RsKTgySU-/koguja/ilmaTeenus/servIlm.cs
Teenuse koguprojekt asub siin koos andmebaasi varundusfailiga https://www.dropbox.com/sh/st7yxaxwt48bc2c/JwxAHWKM9P
Kasutajate haldamiseks on loodud ASP.NET Membership andmebaas, mis sisaldub EMHI.bak failis ja WCF'ile sai selle kasutamiseks õigused ka antud, mis nähtub App.config failidest nagu näiteks siin: https://www.dropbox.com/sh/st7yxaxwt48bc2c/DLp70MYYF8/koguja/WCFilmaKlient/app.config Muuhulgas sisaldab eelpool mainitud servIlm.cs meetodit kasutajanime järgi viimase logimisaja pärimiseks, rohkema kasustajastatistikaga me käesolevas töös ei tegelenud.
Klientrakendus
Temperatuuri saamiseks vajasime rakendust, mis annaks näiteks klikates GPS koordinaadid, mis oleksid sisendparameetriteks meie teenusele. Seepärast on vormi sisse istutatud Google kaart.
Kaardil klõpsates ilmub kaardile vastavalt lähimate ilmajaamade andmebaasist viimase kättesaadava ilmaandmete järgi jaamade kauguse järgi interpoleeritud temperatuur. Näiteks nii nagu siin: http://enos.itcollege.ee/~arasu/temperatuuri_kaart.jpg
Kui teil pole aega/tahtmist/võimalust kogu projekti oma arvutitesse püsti ajada, siis võin koolis näidata, et see päriselt ka töötab :)
Päevik: XML
18.03 Reget tuleb välja kontseptsiooniga, mida teha, Anneli nõustub, et on uhke asi küll.
22.03 Reget jaamade XML koordinaatide faili valmis. Annelile jäi nuputada kuidas see ilma andmetega XSLT abil kokku panna. Reget saadab ka mäidise muutuja kasutamisest.
27.03 Anneli katsetus teha XSLTd, mis näitaks kahe XMLi dokumendi sisu, läheb aia taha, sest selline trikk ei ole XML sissejuhatavas teemas, veebiotsingud päädivad programmide leidmisega küll C#, Javast ja jutuga XPathist.
28.03. Reget avaldab näidst andes saladuse, kuidas kaht XMLi ühte siduda. Anneli kirjutab XSLT lõpuni valmis.
03.04 Reget paneb ette, et nüüd võiks teha ka XSD ja töö esitada. Lõpuks saab ta seda siiski ise teha.
Annelile jääb teiste tööde retsenseerimine.
Päevik: veebiteenus
01.05 koguneme, et tekitada XML failist andmebaas LINQ päringute abil. Koguja nimelise konsoolirakenduse Program.cs all on väljakommenteerituna see kood, mis tõstis XML failist andmed baasi. Teiseks tegime ka programmijupi, mis jälgib EMHI kodulehel (http://www.emhi.ee/ilma_andmed/xml/observations.php)iga tunni tagant tekkivaid uusi ilmaandmeid ja kogub need meie andmebaasi sellisel moel, et EMHI ilmaandmete esimese elemendi atribuut timestamp on baasis ILM tabeli primaarvõtmeks ja kogu XML on salvestatud tekstina ühte lahtrisse. Vahepeal jäime LINQga nats jänni ja helistasime õppejõule ning nõudsime kohest ärkamist ja märkamist. Üritasime panna ka windowsi Task Scheduleri arvuti käimise ajal iga tunni tagant ilma-andmeid baasi koguma, aga Anneli kopeeris kogu projekti koodi teise kohta ja tegi paranduse kunagi hiljem.
Lisasime ka vastavalt õppefilmile WCF Service Library, mille nimeks sai ilmaTeenus, mille all arendame teenusekoodi ja ..., mille nimeks sai ilmaHost, ning häälestasime hosti vastavalt õppevideole teenuseklassi tarbima. Lõime ka ka WCF kliendi, mille nimeks sai ilmaKlient, et oleks võimalik teenust turvaliselt tarbida.
Olles poolteist tundi vaadanud turvamise videot ning jõudnud sellega 12, minutisse, läksime laiali, olles kokku leppinud, et Reget tegeleb vahepeal funktsionaalsete meetodite väljamõtlemisega ja Anneli katsub turvaosa ära teha.
05.05 takerdus Annelil teenuse turvamine salapärase IMetadataExcange veateate taha, mille tekkepõhjuseks oli lõppkokkuvõttes hajameelselt koostatud hosti web.config-i secureBehavior, millest juhuslikult puudusid serviceMetadata ja serviceDebug.
12.05 toimuski Regeti ja Anneli ühisjõul ülalmainitud vea parandamine ning Regeti meetodite lisamine projekti (taidaKoordinaadid, sordiKoordMas, leiaLahimad, interpoleeri) ning lõpliku teenuse programmeerimine. Reget helistas ka õppejõule, et küsida, kuidas saaks andmeid niimoodi klassifailis hoida, et neid iga kliendi puhul poleks vaja uuesti andmebaasist pärida, kuid lõpptulemusena sai "static" meetodite nimetustest ära kustutatud ja jäi nii, et iga uue kliendi puhul päritakse kõik andmebaasist otsast peale. Lisatud said veel meetodid leiaLahimAeg, mille puhul otsustasime, et kuna kasutaja tõenäoliselt mingi minevikuilma vastu huvi ei tunne, oleks meil baasist vaja lihtsalt viimaseid ilmaandmeid. Arendatud sai ka meetod getTemp, mis hangib ILM baasis leidvast XMList kahe lähima ilmajaama temperatuurid ning interpoleerib need üheks. Anneli kirjutas tegevused päevikusse ning tema ülesandeks jäi vaadata turvamise video lõpuni ning vaadata kõik üle ning kommenteerida.
Päevik: veebiteenuse lõpp ja klientrakendus
20.05 saadi taas kokku. Vahepeal oli Reget vormil baseeruva graafilise kliendi ka valmis meisterdanud, et teenus loogiliselt toimida saaks. Selleks pani ta google kaardi WCF vormi. Anneli oli turvamise video lõpuni vaadanud ja teenuse vastavalt turvanud. Mõtlesime välja meetodi kasutaja viimase logina pärimiseks. Anneli kommenteeris üle peamised teenusega seotud meetodid, õppides, kuidas Visual Studiot häälestada XML formaadis dokumentatsiooni kirjutama ja riputas tehtu koopia ühte Dropboxi kausta ja esitas siin wikis. Kuna klientrakenduse esitamisega on veel pisut aega, siis on Annelil plaanis kliendi meetodeid lähemalt uurida ja kommenteerida-dokumenteerida.
Retsensioonid
Unusual Suspects retsensioonid XML, teenuse ja kliendi kohta https://wiki.itcollege.ee/index.php/Talk:Meeskond_%22Unusual_Suspects%22
Akaver meeskonna Veebiteenuse retsensioon
Kolmas meeskonna XML retsensioon
Kolmas https://wiki.itcollege.ee/index.php/Talk:Meeskond_%22Kolmas%22_2012