Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Alaspää Juha
RADIOTAAJUISTEN ETÄTUNNISTUSTEKNIIKOIDEN
HYÖDYNTÄMINEN NAUTAKARJAN MERKINNÄSSÄ
Opinnäytetyö
KESKI-POHJANMAAN AMMATTIKORKEAKOULU
Ylivieskan tekniikan toimipiste, mediatekniikka
Toukokuu 2008
TIIVISTELMÄ OPINNÄYETYÖSTÄ
Yksikkö
Tekniikan toimipiste,
Ylivieska
Aika
14.5.2008 Tekijä
Juha Alaspää
Koulutusohjelma
Mediatekniikan koulutusohjelma
Työn nimi
Radiotaajuisten etätunnistustekniikoiden hyödyntäminen nautakarjan merkinnässä
Työn ohjaaja
Yliopettaja Veikko Brax Sivumäärä
37
Työelämäohjaaja
Toimitusjohtaja Jari Salmela, NeuroAgent Oy
Radiotaajuiset etätunnistustekniikat avaavat uusia mahdollisuuksia eläintuotannon
tehostamiseen tietojärjestelmiä hyödyntämällä. Opinnäytetyössä selvitettiin nautakarjan
merkitsemisen nykytilaa, ja sen ongelmia sekä tulevaisuuden näkymiä ja uusia tekniikoita.
Opinnäytetyön tuloksena syntyy mobiili liityntä lihakarjallisten tarpeisiin tilaajan kehittämään
radiotaajuisia etätunnistustekniikoita hyödyntävä nautakarjan seuranta- ja
hallintajärjestelmään. Järjestelmä on tarkoitus laajentaa myöhemmin koko tuotantoketjun
käyttöön ja kehitysvaiheessa olevalta mobiililta liitynnältä vaadittiin ylläpidettävyyttä sekä
helppokäyttöisyyttä. Tässä opinnäytetyössä esitellään sovellusohjelmointia
kämmentietokoneille ja pohditaan käytettävyysteorian ja laitteen ominaisuuksien kautta
helppokäyttöisen mobiilisovelluksen rakentamista.
Taustatutkimuksessa selvisi, että nautakarjan merkinnässä on tiedostettuja ongelmia ja
kehittämistarpeita. Myös korvaavia merkintätapoja löytyy, mutta lakipykälät eivät toistaiseksi
salli näitä ratkaisuja. Tilaajan kehittämä järjestelmä ja tämän opinnäytetyön tuloksena
syntynyt mobiili liityntä järjestelmään saatiin valmiiksi testausta ja esittelyä varten.
Asiasanat
Nautakarjan merkintä, RFID, tietojärjestelmät, SOAP, kämmentietokoneet,
mobiiliohjelmointi, käytettävyys
ABSTRACT
CENTRAL
OSTROBOTHNIA
UNIVERSITY OF APPLIED
SCIENCES
Date
14.5.2008 Author
Juha Alaspää
Degree program
Media technology
Name of thesis
Benefits of Radio Frequency Identification in tracking cattle
Instructor
Chief executive officer Jari Salmela, NeuroAgent Pages
37
Supervisor
Licentiate of Science Veikko Brax
Radio Frequency Identification opens new possibilities to strengthen cattle identification. In
this research, prevailing practices and problems of identification in beef cattle industry was
examined. Also some future technologies were brought out.
A mobile solution for farmers was developed for the cattle tracking data system by using radio
frequency identification. In further development the developed data system will be extended to
various actors in cattle economics. Therefore mobile solution must be easy to use, highly
maintainable and extendable. In this thesis, mobile programming and its usability properties
are examined to achieve these goals.
There is an obvious need to develop cattle identification and many problems to do that.
Substitutive technologies were found, but legislation prevents using these solutions. The
developed cattle tracking data system is now ready for testing and marketing.
Key words
Cattle identification, RFID, data systems, SOAP, mobile devices, mobile programming,
usability
SISÄLLYS
TIIVISTELMÄ
ABSTRACT
SISÄLLYS
1 JOHDANTO .......................................................................................................................... 1
2 LIHAKARJAN MERKITSEMINEN JA SEURANTA ..................................................... 3 2.1 Eläinten merkinnän ja seurannan nykytila ............................................................................. 3
2.2 Eläinten merkinnän ja seurannan tulevaisuus ....................................................................... 4
3 ELÄINTEN SEURANTA- JA HALLINTAJÄRJESTELMÄ NEUROCATTLE .......... 7 3.1 NeuroCattle-järjestelmä lihanjalostuksen tuotantoketjussa ............................................ 7
3.2 NeuroCattle-järjestelmän tekniikka ja arkkitehtuuri ......................................................... 8
4 MOBIILI LIITYNTÄ NEUROCATTLE-JÄRJESTELMÄÄN ..................................... 10 4.1 Laitteisto- ja käyttöjärjestelmätason toteutus ...................................................................... 10
4.2 Mobiilin liitynnän sovellustason kuvaus ................................................................................. 11
4.2.1 Mobiilin liitynnän SOAP-rajapinta ................................................................................. 14
4.2.2 Kämmentietokoneen langaton RFID-rajapinta .......................................................... 17
4.2.3 Kämmentietokoneen manuaalinen rajapinta .............................................................. 18
4.2.4 Mobiilin käyttöliitynnän toteutus ..................................................................................... 19
5 MOBIILIN KÄYTTÖLIITYNNÄN YLLÄPIDETTÄVYYS ......................................... 21 5.1 Kieliversiointi ..................................................................................................................................... 21
5.2 Automaattiset sovelluspäivitykset ............................................................................................. 24
6 MOBIILIN KÄYTTÖLIITYNNÄN KÄYTETTÄVYYS ............................................... 25 6.1 Kämmentietokoneen ja käyttöliittymän vuorovaikutteisuus ......................................... 25
6.2 Käyttöliittymän opittavuus .......................................................................................................... 27
6.3 Käyttöliittymän joustavuus .......................................................................................................... 27
6.4 Käyttöliittymän kestävyys ............................................................................................................ 29
7 JOHTOPÄÄTÖKSET ........................................................................................................ 34
LÄHTEET ............................................................................................................................... 36
1
1 JOHDANTO
Radio Frequency Identification (RFID), eli radiotaajuinen etätunnistus on yleisnimitys
etätunnistus- ja käsittelyteknologialle, jonka avulla voidaan siirtää rajallinen määrä
tunnistetietoa langattomasti radioaaltojen välityksellä. Tekniikka on kypsynyt tekniseltä
suorituskyvyltään viimeisen viiden vuoden aikana etenkin korkeimmilla taajuuksilla ja pitkään
tulevaisuuden lupauksena pidetty tekniikka on tekemässä läpimurtoa eri teollisuuden aloilla.
Aika alkaa olla kypsä RFID-tekniikan käyttöönottoon myös eläinten merkinnässä ja
seurannassa. Elintarviketurvallisuusvirasto Evira tiedotti viime vuoden lopulla
mahdollisuudesta siirtyä matalaa radiotaajuutta käyttäviin elektronisiin RFID-
korvatunnisteisiin. Uusien tunnisteiden uskotaan helpottavan eläinten tietojen käsittelyä
välitystoiminnassa, suurilla nautatiloilla ja teurastamoissa.
Lisäksi kevään mittaan on uutisoitu naudanlihan hinnan nousupaineista, sillä naudanlihan
reaalinen hinta on jämähtänyt viime vuosituhannen lopun tasolle. Lihantuottajien kustannukset
ovat kuitenkin nousseet moninkertaisesti. RFID-tekniikan tuominen sopivan taustajärjestelmän
avulla koko tuotantoketjuun voisi olla yksi tapa tehostaa lihantuotantoa.
Tämän opinnäytetyön tuloksena syntyy mobiili liityntä RFID-tunnisteisiin perustuva
lihakarjan seuranta- ja hallintajärjestelmään. Projektin hankekuvauksessa järjestelmään
viitataan työnimellä MUUMUU, mutta myöhemmin tuotteen nimeksi jalostui NeuroCattle,
joten myös tässä opinnäytetyössä puhutaan NeuroCattle–järjestelmästä ja mobiilista liitynnästä
tähän järjestelmään. Järjestelmää ja tekniikkaa on tarkoitus testata aluksi nautakarjaan mm.
Pohjoismaiden suurimmalla lihakarjan maatilalla (n. 2000 päätä) ja myöhemmin laajentaa
testausta poroeläimiin, sikoihin ja lampaisiin. Tämän opinnäytetyön puitteissa kehitetään
ainoastaan testivalmis RFID-avusteinen mobiili liityntä NeuroCattle-järjestelmään, joten
testaus jätetään pois tästä raportista.
2
Seuraavassa luvussa luodaan katsaus eläintunnistuksen ja –seurannan nykytilaan.
Kolmannessa luvussa esitellään eläinten seuranta- ja hallintajärjestelmää, ja neljännessä
luvussa kuvataan mobiilia liityntää tähän järjestelmän.
Viidennessä luvussa käsitellään mobiilin käyttöliitynnän sovelluksen ylläpidettävyyteen ja
kuudennessa käytettävyyteen tähtääviä ratkaisuja. Viimeisessä luvussa pohditaan työn tuloksia
ja tavoitteiden täyttymistä.
3
2 NAUTAKARJAN MERKITSEMINEN JA SEURANTA
Elintarviketurvallisuuden takaamiseksi eläinten merkintä, rekisteröinti ja seuranta ovat
välttämättömiä. Euroopan Unionin jäsenyyden ja kansainvälistymisen vuoksi sen merkitys
kasvaa koko ajan. Eläinten merkitseminen ja rekisteröinti onkin tarkkaan määrätty
lainsäädännössä ja asetuksissa. Merkitsemistä valvovat TE-keskusten tarkastajat,
tarkastuseläinlääkärit sekä kunnaneläinlääkärit. (Evira 2008.)
2.1 Merkinnän ja seurannan nykytila
KUVIO 1. Muovinen korvamerkki
Eläimiä on jo pitkään merkitty korvamerkinnällä. Perinteinen korvamerkintä koostuu kahdesta
korvaan kiinnitettävästä muovilätkästä. Tuottajien mukaan perinteisen korvamerkin ongelma
on sen irtoaminen helposti (ITViikko 2005). Korvamerkin kadottanutta eläintä ei saa kuljettaa
tilalta pois ja merkitsemätön tai väärin merkitty teuraseläin katsotaan
elintarviketurvallisuussyistä ongelmajätteeksi teurastamoilla. Vuoden 1998 alusta alkaen EU:n
komissiossa määrättiinkiin tästä syystä käytettäväksi päämerkin lisäksi apumerkki. Samassa
komission asetusehdotuksessa esitettiin myös, että jokaiseen jäsenmaahan tulisi
tietokoneistetut tietokannat kaikista naudoista, tiloille omat rekisterit eläimistä ja jokaiselle
naudalle eläinpassi, joka seuraisi eläintä koko sen elämän ajan tilalta toiselle ja lopulta myös
teurastamoon. Suomessa tällaista kansallista nautarekisteriä ylläpitää Maatalouden
4
laskentakeskus. (Finfood 1997.) Nautarekisteristä löytyy kaikkien suomalaisten nautojen
tiedot – korvamerkin EU-tunnuksella yksilöitynä.
Vuoden 2007 lopulla hyväksyttiin apukorvamerkin korvaaminen elektronisella korvamerkillä.
Mikrosiru sijaitsee apumerkin naarasosan pyöreässä, halkaisijaltaan 32 mm suuruisessa
napissa. Siirtyminen elektronisiin tunnisteisiin on helppoa, sillä ne tilataan samaan tapaan kuin
perinteiset korvamerkit, joskin niiden hinta on suurempi ja toimitusaika pitempi. (Evira 2007.)
Lukijalaitteita kerrotaan olevan markkinoilla, mutta valmista kokonaisratkaisua elektronisten
korvamerkkien hyödyntämiseen ei tällä hetkellä tunnu olevan tarjolla.
KUVIO 2. Elektroninen korvamerkki
Elektronisen korvamerkin mikrosiru on ISO-standardien 11784 ja 11785 mukainen. Se on
perinteistä korvamerkkiä pienempi ja oletettavasti hieman vähemmän altis repeytymään irti
korvasta. Tunnisteiden ID-numero koostuu eläimen EU-tunnuksesta sekä tunnisteen
järjestysnumerosta. (Evira 2007.)
2.2 Merkinnän ja seurannan tulevaisuus
Myös korvamerkistä luopuminen kokonaan voisi tulla kysymykseen tulevaisuudessa,
vaikkakin se olisi melko haastava muutos tarkkaan säänneltyihin merkintäkäytäntöihin. Eräs
tällainen ratkaisu on RFID-sirun sisältävä keraaminen Bolus-tunniste, joka syötetään naudalle.
5
Tunniste asettuu märehtijän pötsiin, jossa sen on tutkittu säilyvän koko eläimen elinkaaren
ajan.
KUVIO 3. Bolus-tunniste
ScoringSystem Inc. tiedotti vuoden 2005 alussa verkkosivuillaan tunnisteiden ensimmäistä
testeistä Panaman karjataloudessa. Yritys rakensi Bolus-tunnisteita hyödyntävän ScoringAg-
taustajärjestelmän demonstraatio- ja testikäyttöön. Testeissä saavutettiin lupaavia tuloksia ja
järjestelmä synnytti kiinnostusta karjatalouden eri toimijoiden keskuudessa. (ScoringSystem
2005.) Täytyy huomioida, että edellä mainittu lupauksia herättävä tieto on peräisin
järjestelmän kehittäneen yhtiön tiedotteesta. Myös hankkeen, jonka puitteissa opinnäytetyön
käytännönosuus toteutettiin, käyttöön saatiin kyseisiä tunnisteita ja niitä on sen aikana testattu
onnistuneesti lupaavin tuloksin opetusnavetassa Haapajärven ammattiopistossa.
Yksi vaihtoehto korvamerkistä luopumiseen voisi olla RFID-tunnisteella varustetun implantin
upottaminen eläimen ihon alle. Implantti on kuitenkin alun perin tarkoitettu hieman
pienemmille eläimille ja ongelmaksi voivat muodostua lukuetäisyyden riittävyys, varsinkin
kun vaarana on, että implantti voi vaeltaa ihon alla lukuetäisyyden kannalta liian syvälle.
6
KUVIO 4. RFID-implantti
Maatalouden laskentakeskuksen mukaan korvamerkki olisi jo korvattu tällaisella implantilla,
mikäli teuraseläimissä sen käyttö sallittaisiin (ITViikko 2005). Korvamerkin korvaaminen
kestävämmällä ratkaisulla voisi olla perusteltua ja esimerkiksi edellä esitellyllä Bolus-
tunnisteella ei implantin käytön kaltaisia ongelmia kaiketi ole, sillä märehtijän pötsi ei ole
lihantuotannon raaka-aine, vaan se poistetaan ruhon käsittelyssä varsin aikaisessa vaiheessa.
Molemmat korvaaviksi tunnisteiksi esitetyt RFID-sirut noudattavat samaa ISO-standardia kuin
jo hyväksytty elektroninen korvamerkki, ja kaikkien näiden sirujen testaus hankkeessa
kehitettävällä seurantajärjestelmällä on mahdollista.
Somark Innovations esitteli viime vuonna tuotantoeläimille tatuoinnin, joka perustuu RFID-
tekniikaan, muttei sisällä lainkaan sirua eikä antennia vaan ainoastaan läpinäkyvää ja eläimille
ja ihmisille täysin turvallista mustetta. Tällaisen ratkaisun kerrotaan olevan
materiaalikustannuksiltaan huomattavasti edellä esiteltyjä vaihtoehtoja edullisempi. (RFID
Journal 2007.)
Tatuointi luettaisiin erittäin korkealla taajuudella toimivalla lukijalla, eikä se ole yhteensopia
taajuutensa kuin muunkaan tekniikkansa puolesta hyväksytyn elektronisen korvamerkin
kanssa. Yhtiö ei ole tarjonnut lukijasta ja tekniikasta yksityiskohtaista tietoa
uutisointivaiheessa patenttihakemusten vuoksi. Lukuetäisyydeksi kuitenkin kerrotaan noin
metri ja lukijan kerrotaan kykenevän lukemaan useamman tunnisteen yhtäaikaisesti. (RFID
Journal 2007.)
7
3 ELÄINTEN SEURANTA- JA HALLINTAJÄRJESTELMÄ NEUROCATTLE
NeuroCattle-järjestelmä on suunniteltu lisäämään ihmisten ja eläinten turvallisuutta mm.
karjan siirto- ja tunnistusvaiheessa. Elektroninen merkintä yhdistettynä sopivaan
taustajärjestelmään säästää sekä aikaa että rahaa.
3.1 NeuroCattle-järjestelmä lihanjalostuksen tuotantoketjussa
NeuroCattle-järjestelmä on suunniteltu kattamaan koko tuotantoketjun ja siitä avataan
rajapintoja eri osapuolten käyttöön. Järjestelmän tietoja voivat hyödyntää tilalliset,
lihanjalostajat, eläinlääkärit, viranomaiset ja monet muut tahot. Aluksi kehitetään liitynnät
järjestelmään lihantuottajien tarpeisiin. Näitä liityntöjä ovat internetpohjainen liityntä sekä
mobiili liityntä, jonka avulla tietoja kerätään ja päivitetään suoraan kentältä.
KUVIO 5. Lihanjalostuksen tuotantoketju
Lihanjalostuksen tuotantoketju on parhaimmillaan hyvinkin laaja ja eläimiä saatetaan joutua
kuljettamaan paljon. Naudan elinkaari saattaa sisältää sijoitukset vasikkakasvattamossa,
lihakarjatilalla jos kenties toisellakin, keräyskeskuksessa ja lopulta teurastamossa.
8
Eläinkuljetuksista säädetty laki ja eläinkuljetusasetus määräävät tarkkaan kuljetusten
käytännöt ja ilmoitusvelvollisuuden kuljetuksista. NeuroCattle-järjestelmän avulla
kuljetustilanteissa päästään eroon mm. rekisterikorteista, kun nopealla ja luotettavalla
tunnistuksella eläimille voidaan liittää punnitus-, rotu- ja sukupuolitieto sähköiseen
järjestelmään.
Teurastamoilla elektroninen merkintä helpottaa ja nopeuttaa teuraseläinten käsittelyä kun
taustatiedot saadaan järjestelmästä automaattisesti. Myös teuraseläinten terveystarkastus
nopeutuu kun terveystietohistoria on luettavissa samaan tapaan automaattisesti.
3.2 NeuroCattle-järjestelmän tekniikka ja arkkitehtuuri
Taustajärjestelmän alustana on Sun Microstysemsin SPARC Enterprise -palvelin. Järjestelmän
tietovarastona toimii MySQL-tietokanta, johon eläinten tietoja kerätään keskitetysti.
Tietokanta tarjoaa Application Programming Interfacen (API) paikallisiin liityntöihin ja
suojattujen rajapintojen rakentamiseen. Rajapintojen ja www-käyttöliitynnän taustalla on
GlassFish-palvelinohjelmisto.
9
KUVIO 6. Järjestelmän arkkitehtuuri.
Mobiiliasiakkaille ja muille osapuolille rakennettiin rajapinta Simple Object Access Protocol:n
(SOAP) avulla. Tätä protokollaa esitellään tarkemmin myöhemmin kun käsitellään mobiilin
liitynnän sovellustason toteutusta. Toinen rajapinta järjestelmästä ulospäin on www-liityntää
varten olemassa oleva rajapinta tietokantaan. Lisäksi mobiilista liitynnästä löytyy kaksi
rajapinnaksi luokiteltavaa eläinten yksilöintitiedon tietolähdettä; langaton RFID-rajapinta sekä
manuaalisen syötön rajapinta.
Tässä opinnäytetyössä rakennettiin ainoastaan arkkitehtuurin mobiiliratkaisu, ja seuraavissa
luvuissa keskitytään sen kuvaamiseen ja ratkaisun sovelluskehitykseen.
10
4 MOBIILI LIITYNTÄ NEUROCATTLE-JÄRJESTELMÄÄN
NeuroCattle-järjestelmän mobiilin liitynnän avulla kerätään ja päivitetään eläinten tietoja ja
tapahtumia suoraan kentältä. Kentällä eläimet on yksilöity joko elektronisilla yksilöllisen ID-
tiedon sisältävillä RFID-sirulla tai korvamerkillä, josta löytyy eläimen EU-tunnus. RFID-
tunnisteet luetaan mobiiliratkaisun RFID-lukijalla ja EU-tunnukset manuaalisesti tai
viivakoodinlukijalla. Tässä luvussa esitellään mobiilin liitynnän laitteistoa,
tiedonkeruusovellusta sekä sen rajapintoja.
4.1 Laitteisto- ja käyttöjärjestelmätason toteutus
Ensimmäinen versio mobiilista käyttöliitynnästä NeuroCattle-järjestelmään toteutettiin
Windows Mobile 5.0 –käyttöjärjestelmään pohjautuvalle kämmentietokoneelle. Windows
Mobile on käyttöjärjestelmä, joka muistuttaa monilta osin Windows-käyttöjärjestelmän
työpöytäversiota. Se pohjautuu aiempaan Windows CE -käyttöjärjestelmään ja .NET
Frameworkiin.
Mobiiliksi päätelaitteeksi on tarjolla muitakin päätelaitteita. Laitetta valittaessa tutkittiin myös
vaihtoehtoja käyttää mm. Symbian-käyttöjärjestelmän älypuhelinta sekä muita ratkaisuja.
Windows CE –pohjaiseen laitteeseen päädyttiin kuitenkin käyttöjärjestelmän monipuolisuuden
ja laajimman, robustien ratkaisujen laitevalikoiman vuoksi.
11
KUVIO 7. Mobiilin liitynnän laitteisto ja laitteistorajapinnat
RFID-lukijaksi valittiin matalan taajuusalueen (low frequency, LF) Syscan Internationalin
LiveTrack-käsilukija. Lukija ja päätelaite kommunikoivat keskenään Bluetoothin tai
sarjakaapelin välityksellä. Lukija noudattaa ISO-standardeja 11784 ja 11785. Lukuetäisyys on
25–30 senttimetriä. Lukijan kerrotaan soveltuvan haastaviin olosuhteisiin, sillä se on
suojaukseltaan peräti IP66-luokiteltu.
4.2 Mobiilin liitynnän sovellustason kuvaus
Osa Windows käyttöjärjestelmiä oleva ohjelmointikieliriippumaton .NET Framework on
Microsoftin kehittämä ohjelmistoarkkitehtuuri ja sovellusten ajoalusta, joka koostuu
luokkakirjastoista sekä ajoympäristöstä. Ensimmäinen versio, .NET Framework 1.0 esiteltiin
vuonna 2002 ja päivitys 1.1 versioon 2003. Ensimmäisen version yhteydessä esiteltiin uusi
12
ohjelmointikieli, C#. Se on turvallisempi versio C++-kielestä, ja sen katsotaan olevan
Microsoftin vastine Java-kielelle (Flink 2001, 44). Mobiilin liitynnän käyttöliittymä
rakennettiin juuri C#-ohjelmointikielellä Microsoftin Visual Studio .NET –
ohjelmointiympäristössä ja .NET Frameworkista käytettiin vuonna 2005 julkaistua versio
2.0:aa.
Windows Mobile Software Development Kit (SDK) on Microsoft Visual Studio –
ohjelmistokehitysympäristön lisäosa, joka mahdollistaa sovelluskehityksen tälle
käyttöjärjestelmälle. Se käyttää .NET Frameworkiin pohjautuvaa .NET Compact
Frameworkia, joka on kehitetty mobiililaitteiden vaatimattomampia resursseja varten. Lisäksi
se sisältää pääsyn kämmentietokoneelle ominaisiin resursseihin ja sisältää
kämmentietokoneelle suunniteltuja luokkakirjastoja. Myös .NET Compact Framework on
siinä määrin kielineutraali, että se tukee C# ja Visual Basic ohjelmointikieliä.
KUVIO 8. .NET Frameworkin komponentit ja sovelluskoodin kääntäminen (mukaillen
Tisseghem & Uyttersprot 2001.)
.NET Frameworkin ajoympäristö eli Common Language Runtime (CLR) tarjoaa ns.
virtuaalikoneen, joka kääntää kehitysympäristön tuottaman esikäännetyn (Intermediate
Language, IL) ohjelmakoodin käyttöjärjestelmän ymmärtämään ns. binäärimuotoon.
Esikäännetyn koodin käännös binääriseksi tapahtuu Just In Time (JIT) kääntäjän avulla, jonka
13
käyttö mahdollistaa optimoinnin eri keskusprosessorityypeille. (Wikipedia 2008e.)
.NET Compact Frameworkin luokkakirjastot sisältävät suuren määrän tuettujen
ohjelmointikielten käytettävissä olevia luokkia ja metodeja. Luokat on nimetty nimiavaruuden
mukaan, joiden juurena on System-nimiavaruus. Kuviossa 9 esitetään .NET Compact
Frameworkin nimiavaruuksien, ja sen sisältämien luokkien ja metodien hyödyntämistä
sovelluskehityksessä käyttöliittymän sekä rajapintojen osalta.
KUVIO 9. Mobiilin liitynnän sovellustason monitasoarkkitehtuuri
SOAP-rajapintaan liittymiseen .NET Compact Framework sisältää WebServices-
luokkakirjaston, joka tarjoaa luokkia SOAP viestien käsittelyyn. Samoin .NET Compact
Frameworkista löytyy Input/Output –nimiavaruus (IO) RFID-lukijaan liittymiseen virtuaalisen
sarjaportin kautta. Käyttöliittymän eriyttämiseksi sovelluslogiikasta, .NET Compact
Frameworkista voidaan käyttää ikkunoinnin (Windows) nimiavaruudesta löytyvää
lomakeluokkaa (Forms) käyttöliittymänikkunoiden luomiseksi. Sama luokka sisältää myös
joukon kontrolleja (Controls), jolloin käyttöliittymän ikkunaan voidaan tuoda mm.
tekstikenttiä sekä erilaisia nappeja ja ohjelmoida niille toiminnallisuutta.
14
4.2.1 Mobiilin liitynnän SOAP-rajapinta
Hajautusteknologioista, jolla sovellukset voidaan hajauttaa toimimaan lähiverkon
ulkopuolella, käytetään yleisnimitystä Web Services. Vaikka suora suomennos on
verkkopalvelu, sillä viitataan nimenomaan verkossa olevan palvelun ohjelmointirajapintaan.
(Wikipedia 2008f.)
KUVIO 10. Web Servicen arkkitehtuuri (Wikipedia 2008f.)
Web Service koostuu kolmesta osasta: palvelun tarjoajasta (Service provider), käyttäjästä
(Service Requester) sekä mahdollisesti palveluhakemistosta (Service Broker). NeuroCattle-
järjestelmän arkkitehtuuri voidaan sijoittaa kuvaan siten, että mobiili liityntä on palvelun
käyttäjä ja taustajärjestelmän palvelin on palvelun tarjoaja. Nämä kaksi kommunikoivat
keskenään SOAP-protokollan avulla. Kuvassa esiintyvä Web Service Description Language
(WSDL) on kieli, jonka avulla SOAP-protokollalla tarjotun palvelun rajapinta, sisältäen
kuvaukset mm. metodeista ja tietotyypeistä, voidaan määritellä (Wikipedia 2008f). Tämän
kielen avulla SOAP-rajapinta voidaan tuoda Visual Studio .NET -ohjelmointiympäristöön
nimiavaruutena ja sen luokkina. Sovelluskehittäjälle SOAP:n luokat ja metodit käyttäytyvät
aivan kuten ne olisivat paikallisia, mutta varsinainen sovelluslogiikka on palvelun tarjoajan
päässä. Tällainen sovelluslogiikka voi olla vaikkapa — kuten NeuroCattle-järjestelmän
SOAP-rajapinnassa — API tietokantaan. Universal Description Discovery and Integration
(UDDI) on standardisoitu tapa julkaista ja etsiä palveluiden metadata (Wikipedia 2008f).
15
SOAP on tietoliikenneprotokolla, jolla välitetään viestejä kahden sovelluksen välillä.
Mobiilisovelluksessa sitä käytetään liitynnässä taustajärjestelmään ja sen tietokantaan. Alun
perin Microsoftin kehittämä SOAP on käyttöjärjestelmä- ja ohjelmointikieliriippumaton,
mutta se on erityisesti mobiilisovelluksen käyttämässä .NET-ympäristössä helposti otettavissa
käyttöön. Myös Java-ohjelmointikielelle, jolla rajapinnan API on kirjoitettu, löytyy työkaluja
SOAP-protokollan hyödyntämiseen. (Salmenperä 2004.)
SOAP:ssa viestien rakenne perustuu XML-standardiin. Extensible Markup Language (XML)
on merkintäkieli, jolla tiedon merkitys on kuvattavissa tiedon sekaan. Vaikka puhutaan
merkintäkielestä, yleisesti käytettynä XML ei varsinaisesti ole kieli, vaan joukko XML-
pohjaisia teknologioita ja syntaksimäärittely, jolla voidaan rakentaa omia kuvauskieliä.
(Wikipedia 2008d; B’Far 2005, 104–106.) XML-rakenteisten tiedostojen käsittelyyn käytetään
usein ns. jäsentimiä ja .NET-ympäristössä sellainen löytyy yleisestä luokkakirjastosta.
Mobiiliratkaisussa XML:ta käytetään myös itse luotuna rakenteellisella merkintäkielenä
asetustiedostossa sekä kieliversioinnissa, josta tarkempi kuvaus ylläpidettävyyttä
käsittelevässä viidennessä luvussa.
SOAP:n XML-rakenteinen viesti koostuu kuoresta (Envelope), otsikosta (Header) sekä
rungosta (Body). Kuori on rakenteen päätaso ja sisältää koko SOAP-viestin. Otsikosta käy
ilmi, mitä viesti sisältää, kenen sitä kuuluu käsitellä sekä onko se pakollinen vai ei. Runko
sisältää varsinaiset ohjelmakutsut. (Flink 2001, 41.)
16
<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:muum="http://ws.neuroagent.fi/schema/muumuu">
<soapenv:Header/>
<soapenv:Body>
<muum:UpdateAnimalLocationRequest>
<muum:Login>
<FarmId>1</FarmId>
<UserLogon>username</UserLogon>
<UserPwd>passwd</UserPwd>
</muum:Login>
<muum:AnimalRFId>123456789</muum:AnimalRFId>
<muum:AnimalLocation>12</muum:AnimalLocation>
</muum:UpdateAnimalLocationRequest>
</soapenv:Body>
</soapenv:Envelope>
KUVIO 10. Esimerkki SOAP-kutsusta
SOAP-protokollan käyttämisessä liityntänä suljettuun tietojärjestelmään, täytyy huomioida,
ettei se huolehdi tietoturvasta lainkaan (Salmenperä 2004). Rajapinnan täytyy siis huolehtia
käyttäjän tunnistamisesta, jolloin jokaiseen asiakkaan lähettämään viestiin on sisällytettävä
käyttäjäntunnistus. Myös liikenteen salauksesta täytyy huolehtia, mutta langattomien
verkkoyhteyksien ratkaisuissa se voidaan jättää — kuten kehitetyssä järjestelmässä — OSI-
mallin siirtoyhteyskerroksen tehtäväksi.
Taulukossa 1 havainnollistetaan mobiiliratkaisun taustajärjestelmäliitynnässä käyttämät
tekniikat OSI-mallin kerroksille sijoitettuna. Hajautusteknologioiden arkkitehtuurin tekniikoita
on vaikeaa sijoittaa suoraan OSI-malliin, sillä tekniikat eivät yksiselitteisesti toimi tietyllä
kerroksella. SOAP ja WSDL käyttävät sovelluskerroksen HTTP-protokollaa (Hypertext
Transfer Protocol) tai sen salattua versiota, HTTPS-protokollaa (Hypertext Transfer Protocol
Secure) viestien yksilöimiseksi kutsuiksi ja vastauksiksi. Viestit itsessään ovat
esitystapakerroksen XML-standardin mukaisia.
Sovelluskerroksen voisi jakaa alakerroksiin tietoturvan näkökulmasta, jolloin mm.
palomuureissa voidaan erottaa samaa protokollaa käyttävät tavalliset www-kutsut ja SOAP-
viestit toisistaan. Tässä mallissa WSDL ja SOAP kuuluvat sovelluskerroksen XML-
alakerrokselle ja HTTP ja HTTPS TCP/IP-alakerrokselle. (Bunge, Chung, Endicott-Popovsky
& McLane 2008.)
17
TAULUKKO 1. Tiedonsiirrossa käytetyt tekniikat OSI-mallin mukaan
7. Sovelluskerros - XML-alakerros - TCP/IP-alakerros
WSDL, SOAP HTTP, HTTPS
6. Esitystapakerros XML
5. Istuntokerros RPC
4. Kuljetinkerros TCP
3. Verkkokerros IP
2. Siirtoyhteyskerros WLAN, 3G
1. Fyysinen kerros IEEE 802.11x Wi-Fi, UMTS
4.2.2 Kämmentietokoneen langaton RFID-rajapinta
Arkkitehtuurin RFID-rajapinnasta puhuttaessa tarkoitetaan kokonaisuudessaan
kämmentietokoneen liityntää RFID-lukijaan sekä sen kommunikaatioväylää RFID-siruihin.
Toisin sanoen sitä, miten RFID-tunnisteet näkyvät sovelluskehittäjälle.
RFID-rajapinta koostuu tunnisteesta, antennista sekä lukijayksiköstä. Lukijayksikkö käsittelee
antennilta saatua signaali-informaatiota ja välittää usein informaatiota jonkin yhteyden avulla
päätelaitteelle, josta tietoa jatkokäsitellään. Lukijayksikkö myös vastaanottaa komentoja
saman yhteyden kautta päätelaitteelta, esimerkiksi komennon luoda lukijan antennin avulla
magneettikenttä, josta tunniste indusoi antenniinsa sähkövirran. Tällöin keskustelu lukijan ja
tunnisteen välillä tapahtuu moduloimalla oskilloivaa magneettikenttää standardien mukaisesti.
LiveTrack RFID-käsilukijan kanssa kommunikointiin käytetään Bluetoothia. Se on avoin
standardi laitteiden langattomaan kommunikointiin lähietäisyydellä (Wikipedia 2008b).
Datakommunikaatio Bluetooth-laitteen kanssa vaatii virtuaalisen sarjaportin luomisen
Bluetooth-yhteyden palveluksi. Tällöin sovelluskehityksessä voidaan käyttää .NET
Frameworkin luokkakirjastoista löytyvää valmista sarjaporttiluokkaa.
18
Valittu RFID-lukija vastaanottaa virtuaalisen sarjaporttiin komentoina selkokielisenä yhden
kirjaimen rivinalkuunpalautusmerkin kera. Komennosta riippuen lukija palauttaa samaa
kanavaa käyttäen mahdollisen vastauksen komentoon. API, jonka komennot on listattu
taulukkoon 2, on varsin yksinkertainen ja pelkistetty, mutta tarjoaa tarvittavat toiminnot
mobiilin liitynnän tarpeisiin. Lukija on myös mahdollista asettaa tilaan, jossa se lähettää
automaattisesti luetun tunnisteen ID-tiedon, kun uusi tunniste on luettu. Mobiilisovelluksessa
käytetään juuri tätä tilaa ja porttia kuunnella säikeessä jatkuvasti uusia tunnistuksia odottaen.
TAULUKKO 2. RFID-lukijan rajapinnan komennot
Description Command Parameters Return value
Download tags from memory "D"<CR> <None>
FCCCDDDDDDDDDDDDDDDDHHSS MMHHWWDDMMYYTTTTTTT<CR>
Erase all tags from memory "E"<CR> <None> <None>
Obtain tag count in memory "G"<CR> <None> 9999<CR>
Set site number "K"<CR> 9999999 <None>
Obtain time/date "M"<CR> <None> HHSSMMHHWWDDMMYY<CR>
Set time and date "T"<CR> HHSSMMHHWWDDMMYY <None>
4.2.3 Kämmentietokoneen manuaalinen rajapinta
Taaksepäinyhteensopivuuden vuoksi eläimen yksilöivän korvamerkin tunnus pitää voida
syöttää myös manuaalisesti sovelluksessa. Arkkitehtuurissa tätäkin kuvataan rajapintana
tietoon.
Korvamerkki sisältää eläimen EU-tunnuksen lisäksi myös viivakoodin. Siksi rajapinnan
laitteistotason toteutus voidaan jatkokehityksessä rakentaa tarvittaessa myös sopivalla
viivakoodinlukijalla.
19
4.2.4 Mobiilin käyttöliitynnän toteutus
Toteutusmäärittelyssä määriteltiin mobiilin käyttöliittymän toiminnallisuutta. Mobiili liityntä
rakennettiin tietojen ja tapahtumien keräämiseksi ja päivittämiseksi suoraan kentältä.
Mobiilin liitynnän tärkein toiminnallisuus on eläimen tietojen selaus ja päivitys. Tietojen
selaus ja päivitystapahtumat käynnistetään hakemalla RFID-rajapinnasta tai manuaalisesti
syöttämällä eläimen yksilöivä tieto ja yhdistämällä tämä tieto SOAP-rajapinnan kautta
tietokannasta saataviin eläimen tietoihin. Eläimen päivitettäviä tietoja ovat eläimen perus
tunnistustiedot, terveystieto, paikkatieto sekä välitystieto. Kuviossa 12 on esitetty
mobiilisovelluksen käyttöliitynnän toteutus käyttötapauskaaviona.
KUVIO 12. Mobiilin käyttöliitynnän käyttötapauskaavio
RFID-rajapintaan valittu lukijalaite mahdollistaa myös yksilöintitietojen keräämisen ryhmiksi
lukijalaitteen muistiin, joiden avulla esimerkiksi terveystietoihin kuuluvia rokotuksia tai
paikkatiedon muutoksia ts. eläinten siirtoja voidaan päivittää ryhmälle eikä niitä tarvitse
erikseen syöttää jokaiselle eläimelle, joiden tiedot muuttuivat. Myös paikkatieto voidaan
20
yksilöidä RFID-tunnisteella, jolloin ryhmän siirron jälkeen voidaan lukea karsinan tunniste.
Tällöin sovellus hoitaa tietojen päivityksen kätevästi yhdellä napinpainalluksella.
Seuraavissa luvuissa on tarkemmin kuvattu käyttöliitynnän toteutusta erilaisista näkökulmista.
Niiden kautta avautuu pelkistettyjen toimintojen takaa useita haasteita niiden teknilliselle
toteutukselle.
21
5 MOBIILIN KÄYTTÖLIITYNNÄN YLLÄPIDETTÄVYYS
Toteutusmäärittelyssä mobiilin käyttöliitynnän sovellustason toteutukselta vaadittiin
ylläpidettävyyttä. Ylläpidettävyyttä luodaan rakenteeltaan oikeaoppisella ja hyvin
kommentoidulla sovelluskoodilla. Tähän on myös tässä opinnäytetyössä pyritty, mutta sen
teoria ja toteutus eivät ole kovinkaan oleellisia lopputuotteen kannalta. Sen sijaan tässä
luvussa kuvaillaan ylläpidettävyyteen tähtääviä useamman kielen tuen sekä automaattisten
sovelluspäivitysten ratkaisuja.
5.1 Kieliversiointi
Mobiilisovelluksen toteutusmäärittelyyn kuului useamman kielen tuki. Kieliversiointi
rakennettiin XML-tiedostoon. Sovelluksessa XML-tiedosto luetaan tietorakenteiksi omassa
luokassaan, josta sovelluksen eri lomakkeet voivat kutsua ilmentymää käyttöönsä. Kuviossa
13 esitetty luokkakaavio kuvaa, kuinka XML-tiedoston sisältö puretaan ja tarjotaan eri
lomakkeiden käyttöön.
22
KUVIO 13. Kieliversointiin käytettyjen luokkien kaavio
LanguageReader-luokka lukee XML-tiedoston sisällön ja varastoi jokaisen kielen yhdeksi
alkioksi Language-tyyppiseen taulukkoon (lang). Language-luokka sisältää erinäisiä tietoja
kielestä sekä kaikki sovelluksen tarvitsemat merkkijonot kyseisellä kielellä, jotka varastoidaan
hajautustauluun (Hashtable).
Hajautustaulu on hakurakenne joka yhdistää avaimia arvoihin (Wikipedia 2008c). Kehitetyssä
sovelluksessa avain, joka on identtinen joka kielellä, viittaa tiettyyn merkkijonoon ja arvo taas
palauttaa merkkijonon valitulla kielellä. Hajautustaulu on hyvä vaihtoehto hakurakenteeksi
kun halutaan indeksoida taulukkoa kokonaislukujen sijasta merkkijonoilla (Wikipedia 2008c).
Edellä mainittu hajautustaulu koostuu string- tai LanguageString-tyyppisistä arvoista. String-
tyyppiset arvot sisältävät pelkän merkkijonon. Esimerkiksi hajautustaulun avain ”Box” viittaa
23
suomen kielellä arvoon ”Karsina”. Näitä arvoja käytetään pääasiassa lomakkeiden
komponenttien nimeämiseen.
LanguageString-luokkaa käytetään määrittelemään järjestelmän tietokannan yksittäisen kentän
rajapinnan tunteman nimen (soapField) sekä tietotyypin (dbValueType), käyttäjälle
näytettävän nimen oikealla kielellä (strValue) sekä tarvittaessa kentän hyväksymät arvot
(subItems). InputFormTypes-tyyppinen uiDataType-muuttuja kertoo sovellukselle, millaisella
näkymällä kentän arvoa muokataan.
Kun tietokannan tietoa tuodaan käyttäjän nähtäväksi ja muokattavaksi, sovellus käy läpi kaikki
SOAP-rajapinnan määrittelemät kentät ja hakee kenttien määrittelyt edellä esitetyn mallin
mukaan. Tällä parannetaan sovelluksen ylläpidettävyyttä. Tietokantaan ja sitä kautta
rajapintaan tehtävät muutokset eivät vaikuta sovelluskoodiin, vaan esimerkiksi kentän lisäys
tai tietotyypin muutos päivitetään ainoastaan XML-tiedostoon.
Kuviossa 14 esitellään XML-tiedoston rakennetta. Esimerkkilistaus sisältää yhden kielen,
jossa on yksi string- ja yksi LanguageString-tyyppinen hajautustauluun sijoitettava kenttä.
<?xml version="1.0" encoding="utf-8"?>
<languages count="1">
<language id="1" xml:lang="fi" engname="Finnish" langname="Suomi"
charset="iso-8859-1">
<House>Navetta</House>
<GrowthPlace value="Kasvatettu" soapValue="growthPlace" subItems="3"
uiValueType="MultipleChoice" dbValueType="int">
<subitem dbValue="1" uiValue="ryhmäkarsinassa"></subitem>
<subitem dbValue="2" uiValue="yksilökarsinassa"></subitem>
<subitem dbValue="3" uiValue="parressa"></subitem>
</GrowthPlace>
</language>
</languages>
KUVIO 14. Esimerkki kieliversoinnissa käytettävästä XML-tiedostosta
24
5.2 Automaattiset sovelluspäivitykset
Automaattisia päivityksiä varten rakennettiin Web Service, jonka metodia
mobiilisovelluksesta kutsumalla voidaan selvittää onko sovelluksesta saatavilla uudempaa
versiota.
Mobiilisovelluksessa metodin kutsu tapahtuu ennen käyttöliittymän päälomakkeen avaamista.
Mobiilisovellus selvittää oman versionumeronsa ja lähettää sen metodin parametreissa. Metodi
palauttaa tietorakenteen, joka sisältää totuusarvon siitä, onko uusi versio saatavilla. Version
ollessa saatavilla, tietorakenteesta käy myös ilmi uuden version numeron ja sen
asennuspaketin lataussijainti.
Visual Studio -ohjelmistokehitysalustasta löytyy valmis projektityyppi asennuspaketin
luomiseen. Asennuspakettiin voidaan ajettavan sovellustiedoston lisäksi lisätä sovelluksen
tarvitsemia resurssitiedostoja. Kehitetyn mobiilisovelluksen kohdalla pakettiin kuuluu
kieliversiointiin kuuluva XML-tiedosto sekä asetustiedosto.
25
6 MOBIILIN KÄYTTÖLIITYNNÄN KÄYTETTÄVYYS
Käytettävyys on tuotteen ominaisuus, joka kuvaa sitä, kuinka sujuvasti tuotteen toimintoja
käyttämällä pääsee haluamaansa päämäärään (Kuutti 2003, 15–16). Käytettävyys ei ole
pelkästään tietoteknisten tuotteiden ominaisuus, mutta tällä erää keskitytään juuri
käytettävyysterminologiassa käytettyyn ihminen-tietokone-vuorovaikutussuhteeseen (Human-
Computer Interaction, HCI).
Kehitettävän mobiiliratkaisun käyttäjäryhmä koostuu aluksi lihakarjallisista, mutta
jatkokehityksessä järjestelmän ja myös mobiilin käyttöliitynnän käyttäjäkunta laajennee.
Käyttäjien kokemus kämmentietokoneiden käytöstä saattaa vaihdella, mutta voidaan
perustellusti olettaa, että se on vähäistä. Näin ollen käytettävyyteen on syytä kiinnittää erityistä
huomiota. Tässä opinnäytetyössä ei käytettävyyttä testata, vaan se otetaan huomioon yhtenä
näkökulmana ja toteutusmäärittelyn kohtana.
Käytettävyyttä voidaan jakaa osa-alueisiin: opittavuus, joustavuus, kestävyys (Burnett,
Brinström & Nilsson 2003). Ennen näiden kohtien pohdintaa voidaan kämmentietokoneen
ominaisuuksia ja käyttöliittymän rakentamista pohtia vuorovaikutteisuuden teorian kautta.
6.1 Kämmentietokoneen ja käyttöliittymän vuorovaikutteisuus
Käyttöliittymän rakentamisessa kämmentietokoneelle täytyy ottaa huomioon tiettyjä laitteen
ominaispiirteitä. Kämmentietokone ei laitteena ole käyttäjille yhtä tuttu kuin työpöytä-PC tai
kännykkä, joiden käytöstä käyttäjillä voi olla eläinrekistereiden digitalisoitumisen vuoksi
pitkäkin historia. Käyttöliittymän rakentamisessa kannattaakin hakea mm. edellä mainittujen
tuttujen alustojen kaltaista vuorovaikutteisuutta.
Kämmentietokoneen pieni näyttö asettaa haasteita käyttöliittymän rakentamiseen ja
komponenttien sijoittelu näytön lomakkeelle täytyy tehdä harkiten. Käyttöliitynnän ulkoasun
vuorovaikutteisuutta arvioidaan ulkoasun sekä sen rakenteen esteettisyydellä ja
26
minimalistisuudella (Burnett ym. 2003). Kehitetyssä sovelluksessa on pyritty pitämään
erilaisten komponenttien ja yhdellä lomakkeella näytettävien komponenttien määrä pienenä
minimalistisuuteen ja selkeään rakenteeseen pyrittäessä. Kuviossa 15 on käyttöliittymän
näkymä, jossa käsitellään eläimen perustietoja. Lomake sisältää paljon tietoa, mutta vain kaksi
erilaista, toiminnaltaan yksiselitteistä ja käyttäjille ennestään tuttua komponenttia.
KUVIO 15. Eläinten perustietojen tarkastelu
Lomakkeen vuorovaikutteisten elementtien kuten painikkeiden sekä kämmentietokoneen
omien painikkeiden käytön hyvällä suunnittelulla ja oikealla suhteella saadaan lisää tilaa
pienelle näytölle.
Kännyköistä käyttäjille tutut kämmentietokoneen keskipainike ja nuolinäppäimet on pyritty
ottamaan hyötykäyttöön sovelluksen navigoinnissa. Sivusuunnassa navigoidaan välilehtien
välillä ja pystysuunnassa selataan välilehtien sisältöä. Tällä pyritään toteuttamaan myös
toteutusmäärittelyn kohtaa, jossa laitetta ja sovellusta on pystyttävä käyttämään sormilla ilman
stylus-kynää.
27
6.2 Käyttöliittymän opittavuus
Opittavuudella tarkoitetaan sitä, kuinka helppo palvelun uuden käyttäjän on omaksua ja oppia
käyttämään palvelua sen vuorovaikutteisen käyttöliittymän avulla (Burnett ym. 2003).
Kehitetyssä sovelluksessa opittavuuteen pyritään minimalistisella käyttöliittymällä ja
hyödyntämällä käyttäjien aiempaa kokemusta mobiililaitteista ja muusta tietotekniikasta.
Käyttöliittymän lomakkeiden tulisi olla kohderyhmään kuuluvan käyttäjän kokemuksen ja
tietämyksen tasolla ja oudot osat tulisi varustaa sopivalla opastuksella (Burnett ym. 2003).
Kehitetyn sovelluksen kohdalla esitettävät ja syötettävät tiedot ovat tuttuja, sillä
kohderyhmään kuuluvat ovat joutuneet käsittelemään samankaltaisia tietoja lakisääteisen
merkinnän ja rekisteröinnin vuoksi. Mobiilisovellus vain siirtää tiedot paperilta ja työpöytä-
PC:n näyttölaitteelta kämmentietokoneella käsiteltäviksi. Tällöin tietojen käsittelyyn ei
varsinaisesti opastusta tarvita, ja sen voi jättää kokonaan pois, mikäli tietojen selaus ja
syöttökomponentit ovat käytettävyydeltään ja opittavuudeltaan tarpeeksi selkeitä.
Opittavuutta parantaa myös, kun eri lomakkeissa pyritään pitämään samankaltaiset toiminnot
yhdenmukaisina myös käyttöliittymässä. Mobiilisovelluksen päätasoilla komponentteja on
käytetty harkiten ja mahdollisimman vähän. Samankaltaiset toiminnot on pidetty
yhdenmukaisina, kuitenkin siten vaihtelevina, että navigoidessa on helppo tunnistaa missä
tilassa sovellus on.
6.3 Käyttöliittymän joustavuus
Joustavuudella tarkoitetaan sitä, kuinka monella tavalla käyttäjä voi vaihtaa informaatiota
palvelun kanssa (Burnett ym. 2003). Joustava käyttöliittymä antaa käyttäjälle mahdollisuuden
hoitaa useita tehtäviä samanaikaisesti, pyrkii ennakoimaan komentoja sekä tarjoaa
mahdollisuuden muuttaa sitä ulkoasun ja toimintojen osalta. Joustava sovellus oikolukee
väärin annetut komennot ja syötteet.
28
Kehitetyssä sovelluksessa tätä on painotettu ja käyttäjäsyötteiden antamisesta on pyritty
tekemään mahdollisimman helppoa. Käyttäjäsyötteen komponentit on rakennettu siten, ettei
käytännössä vääriä syötteitä pääse läpi eikä vääriä komentoja voida antaa.
.NET Frameworkin yleiset luokkakirjastot tarjoavat erilaisia komponentteja käyttäjäsyötteiden
vastaanottamiseen, mutta joidenkin käyttö vaatii ehdottomasti stylus-kynän käyttöä. Näihin
kuuluvat mm. tekstisyöte, jota varten kämmentietokoneiden käyttöjärjestelmästä löytyy
kosketusnäytölle ilmestyvä näppäimistö. Näppäimistön näppäimet eivät kuitenkaan ole
riittävän suuret sormilla käytettäviksi. Myös päivämäärän antaminen sormin valmiilla
kalenterikomponentilla on lähes mahdotonta.
Jotta käyttö olisi joustavaa ja käyttö olisi mahdollista sormin, rakennettiin käyttäjäsyötteitä
varten muutamia lomakkeita joiden käyttö on yksiselitteistä ja joiden käyttö on mahdollista
ilman stylus-kynää. Käyttäjäsyötteet jaettiin kategorioihin: teksti, numeerinen data,
päivämäärä, EU-tunnus ja monivalinta. Tekstisyötteitä pyrittiin kaikin keinoin välttämään ja
korvaamaan monivalinnoilla. Kuvioissa 16 ja 17 on luodut lomakkeet erityyppisten syötteiden
antamiseen.
KUVIO 16. Päivämäärän ja numeerisen datan syöttö
29
KUVIO 17. EU-tunnuksen ja monivalinnan syöttö
6.4 Käyttöliittymän kestävyys
Kestävyydellä viitataan siihen, kuinka paljon käyttäjä saa tukea käyttäessään palvelua ja miten
hyvin käyttäjä pystyy päättelemään palvelun tilan sen käyttöliittymästä (Burnett ym. 2003).
Kehitetyn sovelluksen käyttöliittymän rakenne perustuu selkeään hierarkiaan eikä se ole kovin
monitasoinen, joten eksymisen vaara on pieni.
Käyttöliittymän rakentamisen pohjana toimivat .NET Frameworkin ikkunointiluokan
komponentit antavat automaattisesti palautetta, esimerkiksi näppäintä painettaessa, sekä
tarjoavat komponentteja, jotka mukailevat Windows-käyttöjärjestelmien antamaa palautetta.
Työskentelevä kursori kuviossa 18 viestittää sitä, että palvelu suorittaa tavallista pidempään
kestävää toimenpidettä ja käyttäjän tulee odottaa. Tällaisiin pitkiin toimenpiteisiin tulisi myös
liittää toimenpiteen etenemisen nopeus, mikäli se on mahdollista. Mobiilisovelluksen
automaattisissa päivityksissä käyttäjälle näytetään edistymispalkki kun uutta versiota ladataan
(kuvio 19). Kuvion 18 kaltaisissa toiminnoissa pituutta ei voida tietää tai laskea.
30
KUVIO 18. Työskentelevä kursori pyytää
käyttäjää odottamaan
KUVIO 19. Päivityksen latauksen
edistymispalkki
Jos palvelun suorituksessa tapahtuu virhe tai käyttäjä tekee virheen, käyttäjällä tulis olla
mahdollisuus korjata se käyttöliittymällään (Burnett ym. 2003). Kaikkein kestävin palvelu ei
salli käyttäjän eikä sovelluksen virheitä, mutta usein tämä on mahdotonta kun palvelu perustuu
edes osittain käyttäjän syötteisiin. Kuviossa 20 tarkistetaan käyttäjän syötteen tarvittava pituus
haettaessa eläimen tietoja ja ilmoitetaan mahdollisesta virheestä. Edellisen alaluvun lopussa
esitellyt kustomoidut tiedonsyöttökomponentit sisältävät samankaltaisen tarkistuksen.
31
KUVIO 20. Virhe käyttäjän syötteessä
Toteutusmäärittelyyn kuului myös kestävyyteen laskettava vaatimus; verkkoyhteyden
vikaantumisen sieto. Tämä toteutusmäärittelyn kohta voidaan lukea kestävyyden
määritelmään, kun käyttäjälle ilmoitetaan jatkuvasti järjestelmän ja sovelluksen tila käytön
kannalta kriittisten toimintojen ja yhteyksien osalta.
Verkkoyhteyden täydellinen vikasieto on haastavaa toteuttaa, kun liityntä tietojärjestelmään on
rakennettu rajoitetuin toiminnoin SOAP:lla. Tietokannan täysi synkronointi SOAP:aa
käytettäessä ei tule kysymykseen ja kämmentietokoneen resurssitkin ovat rajalliset. Kehitetyn
ratkaisun päätavoite on, ettei käyttäjän syöttämää dataa menetetä vaikka verkkoyhteys tietojen
syöttövaiheessa vikaantuisi. Tavoitteena kuitenkin on rakentaa mobiilin liitynnän
verkkoyhteyksistä mahdollisimman vakaat, mutta langattomia yhteyksiä käytettäessä
vikaantumisen mahdollisuus pitää tiedostaa ja ottaa huomioon sovellusta rakennettaessa.
Käyttäjälle verkkoyhteyden jatkuva tarkkailu näkyy ns. online- ja offline-tiloina.
Verkkoyhteyden tilaa tarkastetaan paitsi ajastetusti, myös ennen SOAP:n yli tehtäviä
tietopäivityksiä. Kämmentietokoneen SDK tarjoaa pääsyn laitteen verkkokorttien tietoihin,
josta voidaan tarkistaa yhteyksien tila kevyillä kutsuilla.
32
KUVIO 21. Ilmoitus verkkoyhteyden palautumisesta
Vaikka mahdollisuus verkkoyhteyden vikaantumiseen tietojärjestelmän palvelinpäässä onkin
huomattavasti pienempi kuin langattomien yhteyksien mobiilissa liitynnässä, on myös sen
vikaantuminen otettava huomioon. Tätä varten sovellukseen rakennettiin eräänlainen
raskaampi verkkoyhteyden tilan tarkistus. Tässä tarkistuksessa tarkastetaan paitsi
kämmentietokoneen verkkokorttien yhteyksien tila, myös kaksipisteyhteys tietojärjestelmän
palvelimeen ja sen rajapintaan. Tätä tarkistusta on kuitenkin syytä käyttää harkitummin, kuin
kevyempää tarkistusta, jottei sovelluksen käyttäminen merkittävästi hidastuisi.
Verkkoyhteyden vikasiedon kannalta kriittisintä on siis se, ettei käyttäjän syöttämää tietoa
menetetä, vaikkei syöttövaiheessa verkkoyhteyttä olisi. Kun tietoja viedään SOAP:n yli
tietokantaan, tarkistetaan verkkoyhteyden tila aina päätepisteeseen asti raskaammalla
tarkistuksella. Mikäli verkkoyhteys ei päätepisteeseen asti toimi, tallennetaan päivityspyyntö
XML-rakenteisena tiedostoon sellaisenaan kuin se SOAP:lle lähetettäisiin. Kun verkkoyhteys
taas toimii ja päivittämättömiä tietoja on laitteen muistissa, voidaan XML-tiedoston sisältö
lukea SOAP:n rakentaman luokan instanssiksi ja yrittää päivitystä uudelleen. Ohjelmoijat
tuntevat nämä toimenpiteet XML-rakenteisena serialisointina ja deserialisointina. Kun näitä
odottavia päivityksiä päivitetään, ei voida varmistua siitä, onko tietoja jo muutettu
tietokannassa kämmentietokoneen verkkoyhteyden ollessa vikaantuneena. Tätä varten
tietokantaan luotiin kenttä, joka kertoo milloin tietokannan päivitettävää taulua on muokattu.
Mikäli tietokannassa on uudempaa tietoa, ei odottavaa päivitystä suoriteta ja siitä ilmoitetaan
käyttäjälle.
Vaikka tietokannan täysi synkronointi SOAP:n yli on varsin haastavaa, joitain osia
tietojärjestelmäympäristöstä ja yksilöintitiedoista tallennetaan mobiililaitteen muistiin. Tällä
tavalla mm. uusien eläinten luonti on mahdollista ilman verkkoyhteyttä. Käyttäjän
33
tunnistautuminen on vielä ratkaisematon ongelma ilman verkkoyhteyttä toimivassa laitteessa.
Tietoturvan kannalta käyttäjätietoja on arveluttavaa synkronoida laitteen muistiin, joten
sovellusta käynnistettäessä kirjautumisvaiheessa verkkoyhteys on oltava.
34
7 JOHTOPÄÄTÖKSET
Euroopan unionin alueella radiotaajuisten etätunnistustekniikoiden käyttöönotolle
nautaeläinten merkinnässä on näytetty vihreää valoa vuoden 2007 lopulla hyväksytyn
elektronisen korvamerkin myötä. Perinteinen korvamerkki säilyttänee asemansa vielä jonkin
aikaa, kun elektronisen korvamerkin hyödyntämiseen ei ole tarjolla ratkaisuja. Korvamerkin
ongelmat ovat kuitenkin selkeästi tiedostettu ja tässä opinnäytetöissä tuotiin esille korvaavia
tulevaisuuden ratkaisuja sekä etsittiin kokemuksia niiden käytöstä.
Maatalouden laskentakeskuksella on toistaiseksi vankkumaton asema keskitetyn kansallisen
nautarekisterin ylläpitäjänä ja sen liityntöjen tuottajana. Tilakohtaisten ohjelmistojen
innovaatioille on kuitenkin vielä tilaa. Eläinten seuranta- ja hallintajärjestelmä NeuroCattle
toteutettiin aluksi lihakarjallisten tarpeita varten, mutta kaiken potentiaalin elektronisesta
merkinnästä saadakseen on tavoiteltava järjestelmän käytön laajentamista koko
tuotantoketjuun. Tämä vaatii vielä kehitystyötä ja ennakkoluulotonta asennetta karjatalouden
eri toimijoiden keskuudessa.
Tässä opinnäytetyössä tavoitteena oli luoda mobiili liityntä NeuroCattle-järjestelmään.
Perustoimintojen osalta järjestelmätestausvalmiista liitynnästä pyrittiin toteuttamaan
ylläpidettävä automaattisten päivitysten sekä kieliversioinnin ja sen joidenkin laajennusten
avulla. Sovellusohjelmoinnin kannalta ylläpidettävyyttä lisää tämä opinnäytetyö
dokumentoinnin osana.
Käytettävyyttä painotettiin toteutusmäärittelyssä mm. haastavien olosuhteiden vuoksi.
Käytettävyyttä ei tässä opinnäytetyössä testattu, mutta tuotiin esille käytettävyyden teoriaa,
jonka pohjalta sitä pyrittiin kehittämään mobiilissa liitynnässä. Teoriatasolla käytettävyyden
näkökulman tuomisessa sovelluskehitykseen onnistuttiin, mutta mobiilin liitynnän
kokonaiskäytettävyys ratkeaa vasta kunnollisissa kenttätesteissä.
35
Opinnäytteen tilaaja jatkaa järjestelmän ja mobiilin liitynnän jatkokehitystä.
Mobiilisovelluksen osalta jatkokehitystä vaatii vielä verkkoyhteyden vikasietoisuuden
kehittäminen. Täydelliseen vikasietoisuuteen ei liene mahdollisuutta päästä, mutta tällöin
täytyy kehittää vikaantumisen estoa. Esimerkiksi varmentavien yhteyksien käyttöä kannattaa
harkita. Myös taaksepäinyhteensopivuuteen kannattaa jatkokehityksessä kiinnittää enemmän
huomiota ja miettiä rajapintoja yksilöintitietoon.
Jatkokehityskohteena toteutuu varmasti jatkuva järjestelmätestaus, mutta henkilökohtaisesti
myös käytettävyyden kunnollinen testaaminen kiinnostaisi. Testitulokset kertoisivat miten
kehityksessä onnistuttiin tuomaan teoria käytäntöön ja parantamaan sitä kautta yhtä
sovelluskehityksen tärkeintä osa-aluetta.
Itselleni sovelluskehitys mobiililaitteelle oli haastavaa ja mielenkiintoista. .NET Frameworkin
rakenne ja sen laajat mahdollisuudet avautuivat arkkitehtuurin taustoja tutkiessa ja sovellusta
kehitettäessä. Tilaajan kanssa tehdyn toteutusmäärittelyn kohdat olivat osin haastaviakin,
mutta ratkaisujen löytyminen antoi onnistumisen elämyksiä. Nämä kohdat ja ratkaisut ovat
ammattimaisen sovelluskehityksen kannalta erityisen oleellisia ja eivätkä varmasti unohdu
tulevaisuuden ohjelmistoprojekteissa.
36
LÄHTEET
B’Far, Reza. 2005. Mobile Computing Principles. Designing and Developing Mobile
Applications with UML and XML. Cambridge: Cambridge University Press.
Bunge, Robert; Chung, Sam; Endicott-Popovsky, Barbara; McLane, Don. 2008. An
Operational Framework for Service Oriented Architecture Network Security. WWW-
dokumentti. Saatavissa
http://csdl2.computer.org/comp/proceedings/hicss/2008/3075/00/30750312.pdf. Luettu
12.4.2008.
Burnett, Brinström, Nilsson. 2003. Perspectives on Multimedia, Communication, Media and
Information Technology. Wiley and Sons, Ltd.
Evira. 2008. Nautaeläinten merkitseminen ja rekisteröinti. WWW-dokumentti. Saatavissa:
http://www.evira.fi/portal/fi/elaimet_ja_terveys/merkitseminen_ja_rekister__inti/nautaelaimet/
. Luettu 7.5.2008.
Finfood. 1997. MMM: yksi korvamerkki naudoille riittää. WWW-dokumentti. Saatavissa:
http://www.terveyttakasviksilla.fi/finfood/finnfoo1.nsf/uutisetetusivulle/18582D99ADA06F6
AC22564100033232F. Luettu 7.5.2008.
Flink, Tommi. 2001. Siirtyminen monitasoarkkitehtuuriin: Microsoft .NET:n tarjoamat
mahdollisuudet. Jyväskylän yliopisto.
ITViikko. 2005. Karjatilan isäntä satsaa nautarekisteriin. WWW-dokumentti. Saatavissa:
http://www.itviikko.fi/page.php?page_id=46&news_id=200525056. Luettu 7.5.2008.
Kuutti, Ville. 2003. Käytettävyys, suunnittelu ja arviointi. Saarijärvi: Gummerus Kirjapaino
Oy.
RFID Journal. 2007. RFID Tattoos for Livestock. WWW-dokumentti. Saatavissa:
http://www.rfidjournal.com/magazine/article/3079. Luettu 7.5.2008.
Salmenperä, Mikko. 2004. SOAP, WSDL ja UDDI. WWW-dokumentti. Saatavissa:
http://www.ac.tut.fi/aci/courses/7601050/SOAP,%20WSDL%20ja%20UDDI.pdf. Luettu
12.4.2008.
ScoringSystem. 2005. First RFID Bolus Used in Panama’s Cattle Industry. WWW-
dokumentti. Saatavissa:
http://www.scoringsystem.com/scoringsystem/sandbox/content/pr_020905.html. Luettu
7.5.2008.
37
Tisseghem, Patrick; Uyttersprot, Wim. 2001. Introducing the Microsoft .NET Framework.
WWW-dokumentti. Saatavissa: http://www.u2u.be/Res/Article.aspx?ART=msdnetframe.
Luettu 11.5.2008.
Wikipedia. 2008a. RFID. WWW-dokumentti. Saatavissa: http://fi.wikipedia.org/wiki/RFID.
Luettu 7.5.2008.
Wikipedia. 2008b. Bluetooth. WWW-dokumentti. Saatavissa:
http://fi.wikipedia.org/wiki/Bluetooth. Luettu 7.5.2008.
Wikipedia. 2008c. Hajautustaulu. WWW-dokumentti. Saatavissa:
http://fi.wikipedia.org/wiki/Hajautustaulu. Luettu 12.4.2008.
Wikipedia. 2008d. XML. WWW-dokumentti. Saatavissa: http://fi.wikipedia.org/wiki/XML.
Luettu 12.4.2008.
Wikipedia. 2008e. .NET. WWW-dokumentti. Saatavissa: http://fi.wikipedia.org/wiki/.NET.
Luettu 11.5.20008.
Wikipedia. 2008f. Web Service. WWW-dokumentti. Saatavissa:
http://fi.wikipedia.org/wiki/Web_service. Luettu 11.5.20008.