Implementera en guide för allmänna
transporter med buss på
mobiltelefoner med Java 2 Micro
Edition
Implement a guide for general transports with
bus on mobile phones with Java 2 Micro Edition
Jonny Påhls
2006
EXAMENSARBETE
Datateknik
Nr: E3392D
EXAMENSARBETE, C-nivå
i Datateknik
Program
Reg nr
Omfattning
Datateknik, 120 p
10 p
Jonny Påhls
E3392D
Datum
2006-05-17
Handledare
Examinator
Hans Jones
Ernst Nordström
Företag/Institution
Kontaktperson vid företaget/institutionen
Etex AB
Lars Forslöf
Namn
Titel
Implementera en guide för allmänna transporter med
buss på mobiltelefoner med Java 2 Micro Edition
Nyckelord
Kollektivtrafik, J2ME, mobiltelefon, MIDLet
Sammanfattning
Detta examensarbete går ut på att ta fram en applikation, avsedd för mobiltelefoner, där man på
ett enkelt sätt kan få reda på avgångarna för Dalarnas kollektivtrafik. Det stigande bensinpriset
och bilåkningens negativa miljöpåverkan ligger som grund till att Etex AB och Balanz AB vill
undersöka om det går att få människor att välja bussen framför personbilen. Om man genom
denna applikation kan underlätta planeringen av människors dagliga resor, hur påverkas då valet
av fortskaffningsmedel?
Resultatet blev en applikation där man, via sin mobiltelefon, bland annat kan ta reda på avgångar
för utvalda linjer av Dalatrafiks bussar, hantera linjekartor och synkronisera avgångar med
telefonens kalender. Alla tidtabeller sparas i telefonen för att minska nätverkstrafiken och för att
informationen enkelt ska kunna återanvändas.
Dalatrafik är det företag som ansvarar för kollektivtrafiken i Dalarna. Det finns i dagsläget ingen
möjlighet att få reda på avgångarna för deras bussar om man inte har tillgång till en tidtabell eller
ringer till deras kundservice. Vissa kommuner har redan lösningar för tidtabellshantering i
mobiltelefonen och nu vill Etex AB och Balanz AB, som är två företag som bl.a. arbetar med
trådlösa applikationer, att även Dalarna ska få ta del av detta praktiska hjälpmedel.
De flesta mobiltelefoner som säljs idag har stöd för att köra applikationer, eller MIDlets som de
också kallas, gjorda i J2ME (Java 2 Platform, Micro Edition). Denna teknik har tagits fram av
Sun för att göra applikationer som kan köras på mindre mobila enheter såsom mobiltelefoner och
handdatorer. Kombinerar man J2ME med den ökande prestandan i dagens mobiltelefoner kan
avancerade applikationer t.ex. spel med 3D-grafik, webbläsare och andra nyttiga program
tillverkas.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
DEGREE PROJECT
in Computer science
Programme
Reg number
Extent
Computer science
E3392D
15 ECTS
Name of student
Year-Month-Day
Jonny Påhls
2006-05-17
Supervisor
Examiner
Hans Jones
Ernst Nordström
Company/Department
Supervisor at the Company/Department
Etex AB
Lars Forslöf
Title
Implement a guide for general transports with
bus on mobile phones with Java 2 Micro Edition
Keywords
Public transports, J2ME, mobile phone, MIDLet
Summary
The purpose of this degree's project is to create an application for mobile phones, where you
in a simple way can find out the departures for Dalarnas public transport system. The
increasing gasoline prices and the automobile's negative effect on the environment have lead
to Etex AB and Balanz AB to investigate the possibility of people choosing the bus instead of
their car. If this application can help people to plan their daily travel, how will this affect their
choice of transport?
The result was an application for a mobile phone. The application provides departures for
Dalatrafiks buses, displays public traffic maps and synchronizes departures with your
telephones calendar. All timetables are saved in the mobile phone's memory to minimize
network traffic and to make the information easy to reuse.
Dalatrafik is the company that regulates public transport in Dalarna. Today the only way to
find out the departure times for their buses is either to check the regular paper timetable or to
phone their customer service. There are some municipalities that already have solutions for
timetable handling in mobile phones. Etex AB and Balanz AB are two companies’s that
among other things works with wireless applications and now wants Dalarna to be able to use
this very practical service.
Most of the mobile phones that are sold today support applications or MIDLets, that are
written in J2ME (Java 2 Platform, Micro Edition). This technique was created by Sun
Microsystems to make applications for smaller mobile devices such as mobile phones and
personal digital assistants. If you combine J2ME with the increasing performance in the
mobile phones of today, you will be able to construct very advanced applications such as
games with 3D-graphics, web browsers and other useful programs.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
Innehållsförteckning
1 INLEDNING OCH BAKGRUND .................................................................................................................... 1
1.1 BAKGRUND ................................................................................................................................................... 1
1.2 SYFTE ............................................................................................................................................................ 1
1.3 MÅL .............................................................................................................................................................. 1
1.4 PROBLEMFORMULERINGAR ........................................................................................................................... 2
1.5 MÅLGRUPP .................................................................................................................................................... 2
2 AVGRÄNSNINGAR .......................................................................................................................................... 3
2.1 AVGRÄNSNINGAR PÅ RAPPORTEN ................................................................................................................. 3
2.2 FUNKTIONALITET .......................................................................................................................................... 3
2.3 SPRÅK ........................................................................................................................................................... 3
2.4 TESTNING AV APPLIKATIONEN....................................................................................................................... 3
3 METODIK .......................................................................................................................................................... 4
3.1 VERKTYG ...................................................................................................................................................... 4
3.2 UTVECKLINGSMODELL .................................................................................................................................. 4
3.3 RESURSER ..................................................................................................................................................... 5
4 LÖSNING ........................................................................................................................................................... 6
4.1 J2ME ............................................................................................................................................................ 6
4.1.1 JVM ...................................................................................................................................................... 7
4.1.2 Configurations ...................................................................................................................................... 7
4.1.3 Profiles ................................................................................................................................................. 7
4.1.4 Valbara paket ....................................................................................................................................... 8
4.1.5 J2ME i denna lösning ........................................................................................................................... 8
4.2 XML ............................................................................................................................................................. 8
4.2.1 XML-namngivning ................................................................................................................................ 9
4.2.2 XML-utformning ................................................................................................................................. 10
4.2.3 XML-tolkning ...................................................................................................................................... 13
4.3 NÄTVERK .................................................................................................................................................... 14
4.4 LAGRING I MOBILTELEFONEN ...................................................................................................................... 15
4.5 ANVÄNDARGRÄNSSNITT ............................................................................................................................. 16
4.5.1 Visning av tidtabellsdata .................................................................................................................... 16
4.6 EXTRA FUNKTIONER .................................................................................................................................... 17
4.6.1 Linjekartor .......................................................................................................................................... 17
4.6.2 Påminnelser ........................................................................................................................................ 17
4.6.3 Visning av exakt tid............................................................................................................................. 17
4.6.4 Kontroll av giltighetsperiod ................................................................................................................ 18
4.7 FUNKTIONER SOM IMPLEMENTERATS AV ETEX AB ..................................................................................... 18
4.7.1 Kontroll om vald buss är försenad ..................................................................................................... 18
4.7.2 Hitta närmaste hållplats ..................................................................................................................... 18
4.7.3 Anropsstyrds trafik ............................................................................................................................. 18
4.7.4 Trafikinformation................................................................................................................................ 18
5 RESULTAT ...................................................................................................................................................... 19
5.1 XML ........................................................................................................................................................... 19
5.2 NÄTVERK .................................................................................................................................................... 19
5.3 LAGRING I TELEFONEN ................................................................................................................................ 20
5.4 ANVÄNDARGRÄNSSNITT ............................................................................................................................. 21
5.4.1 Visning av tidtabellsdata .................................................................................................................... 22
5.5 EXTRA FUNKTIONER .................................................................................................................................... 23
5.5.1 Linjekartor .......................................................................................................................................... 23
5.5.2 Påminnelser ........................................................................................................................................ 24
5.5.3 Visning av exakt tid............................................................................................................................. 25
5.6 TEST AV APPLIKATIONEN ............................................................................................................................ 26
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
6 SLUTSATSER .................................................................................................................................................. 27
6.1 SYFTE OCH MÅL .......................................................................................................................................... 27
6.2 BRISTER OCH FRAMTIDA UTVECKLINGSMÖJLIGHETER................................................................................. 27
6.3 FÖRDELAR MED DENNA LÖSNING ................................................................................................................ 28
7 REFERENSER ................................................................................................................................................. 29
7.1 ELEKTRONISKA REFERENSER....................................................................................................................... 29
7.2 LITTERATUR ................................................................................................................................................ 30
8 ORDLISTA ....................................................................................................................................................... 31
9 BILAGOR ......................................................................................................................................................... 32
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
Bilagor
Bilaga 1 Flödesschema
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
1 Inledning och bakgrund
1.1 Bakgrund
Bensinpriset skjuter i höjden och människor blir allt mer miljömedvetna. Ett bra sätt att slippa
ifrån ensampendlande, som både kan vara dyrt och miljöpåfrestande, är att välja
kollektivtrafiken. Om detta ska vara ett alternativ som kan konkurrera med personbilen så
måste det vara billigt och enkelt att åka kollektivt.
Ett sätt att förenkla för resenärerna är att göra det lättare att planera sitt resande. De gamla
hederliga tidtabellerna fyller sitt syfte men med dagens teknik kan det finnas smidigare sätt att
visa tidtabellsinformation.
De flesta människor äger idag en mobiltelefon och utvecklingen på denna front har minst sagt
gått framåt. Dagens mobiltelefoner innehåller bl.a. kameror, musikspelare och kalendrar. En
stor del av mobiltelefonerna som säljs idag har också stöd för J2ME (Java 2 Platform, Micro
Edition) vilket gör det enkelt att utveckla applikationer, eller MIDlets som de kallas inom
Java världen, som både kan nås och användas av många.
Etex AB och Balanz AB är två företag som bl.a. tillverkar applikationer för mobiltelefoner.
De vill att en utredning görs som undersöker om det går att ta fram en lösning som underlättar
för bussresenärer och har bestämt att detta ska göras i form av detta examensarbete.
1.2 Syfte
Dalatrafik är det företag som har hand om Dalarnas kollektivtrafik. I nuläget finns det inget
sätt att få reda på avgångarna för Dalatrafiks bussar genom mobiltelefonen förutom att ringa
till Dalatrafiks kundservice. Detta examensarbete syftar till att undersöka om det går att ta
fram en lösning för tidtabellshantering i mobiltelefoner och i och med detta locka fler att välja
kollektivtrafiken.
1.3 Mål
Uppdragsgivaren Etex AB (www.etex.se), med visst stöd från Balanz AB (www.balanz.se),
vill att en MIDlet ska tas fram. Applikationen ska göra det möjligt att på ett enkelt sätt få reda
på avgångarna för en eller flera av Dalatrafiks (www.dalatrafik.se) busslinjer. Målet är att ha
en fungerande demonstration av applikationen i en J2ME mjukvaruemulator, eller allra helst
skarpt i telefonen.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
1
1.4 Problemformuleringar
Suns (det företag som har utvecklat programmeringsspråket Java, www.sun.com) slogan om
Java lyder ”Write once, run everywhere” vilket betyder att man ska kunna köra samma Java
kod på olika plattformer utan att behöva ändra koden. Tyvärr är detta en sanning med
modifikation då en stor del av koden fungerar felfritt men vissa delar kan bete sig annorlunda
och ibland t.o.m. orsaka fel när den körs på olika mobiltelefoner.
Under utvecklingen har en emulator, alltså ett program som man kan köra applikationen på
och som ska bete sig som motsvarande mobiltelefon, använts. Men inte ens denna
programvara, som förövrigt kommer från SonyEricsson (www.sonyericsson.se), beter sig som
den verkliga mobiltelefonen. Det enda sättet att vara helt säker på att programmet fungerar är
alltså att testa det i en riktig mobiltelefon.
I dagens mobiltelefoner finns en mängd olika typer av skärmar, både i avseende på storlek,
upplösning och färgskala. Därför måste ett användargränssnitt som är anpassbart för olika
typer av skärmar tas fram. J2ME innehåller en mängd olika APIs (Application Programmable
Inteface) som är avsedda för menyhantering och andra gränssnittsfunktioner. Att använda sig
av dessa APIs förenklar givetvis konstruktionen av användargränssnittet men ett problem som
kan uppstå är att gränssnittet kan se olika ut i olika mobiltelefoner.
Mobiltelefoner brukar sällan kunna stoltsera med särskilt mycket lagringsutrymme, även om
vissa modeller kan ha stöd för så kallade flashminnen. De har också begränsat arbetsminne i
jämförelse med en persondator. Detta gör att man måste ta stor hänsyn till hur all data ska
sparas på ett utrymmessnålt och effektivt sätt samt att man inte allokerar arbetsminne i
onödan.
Mer konkreta saker att undersöka är:
 XML-format som är lämpligt för denna typ av applikation.
 Ett användargränssnitt som gör lösningen användbar för olika mobiltelefoner.
 Stöd för frågor till server (om en viss buss går i tid).
 Möjlighet att lägga in påminnelser i telefonens kalender (när skall man gå till
hållplatsen).
 Hur data ska lagras i telefonen på ett effektivt sätt.
 Test av applikationen i olika telefoner.
1.5 Målgrupp
Applikationen riktar sig till dem som utnyttjar Dalatrafiks bussar och som har tillgång till en
mobiltelefon med stöd för J2ME.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
2
2 Avgränsningar
2.1 Avgränsningar på rapporten
Rapporten kommer inte att innehålla någon källkod p.g.a. att Etex AB och Balanz AB
eventuellt kommer att sälja den färdiga produkten.
2.2 Funktionalitet
Det kommer endast att vara möjligt att se tidtabelldata för Dalatrafiks långväga busstrafik,
alltså inte för stadstrafiken. All tidtabellsdata kommer genereras manuellt vilket är ett mycket
tidskrävande arbete och p.g.a. detta kommer endast tidtabeller för linje 53/253, som går
mellan Falun – Borlänge, att vara tillgängliga.
2.3 Språk
Språket som kommer att användas i användargränssnittet är svenska. I de fall där
applikationen presenterar ”inbyggda” textsträngar där texten är på engelska kommer texten
inte att översättas.
2.4 Testning av applikationen
Testning av applikationen kommer att ske i emulatorn från SonyEricsson samt i SonyEricsson
W800i.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
3
3 Metodik
Applikationen bygger på ett demoprogram som Hans Jones på Etex AB har tagit fram. Detta
program har modifierats och utökats så att det uppfyller det som diskuterats i 1.3 mål.
3.1 Verktyg
De verktyg som använts under utvecklingen är:
 Netbeans 5.0 (www.netbeans.org). Används som editor, debugger och kompilator.
 SonyEricsson SDK 2.2.3 (developer.sonyericsson.com). Används som emulator.
 Java 2 Standard Edition 5.0 (java.sun.com/j2se/1.5.0/download.jsp). Krävs när man
utvecklar Java applikationer.
 gzip 1.2.4 (www.gzip.org). Används för att komprimera XML-filer.
Dessa verktyg är gratis och kan laddas ner från de angivna länkarna.
3.2 Utvecklingsmodell
Den modell som använts är den så kallade spiralmodellen som är en iterativ
utvecklingsmodell. Spiralmodellens fyra faser är: riskanalys, prototyp, test och utvärdering.
När dess fyra faser har gåtts igenom startar processen om igen [www1], se figur 1.
Detta examensarbete har lett till mycket forskning för att hitta lösningar på olika problem. Det
har gjort att spiralmodellen inte har blivit följd till punkt och pricka. Den största risken i
arbetet har varit att tiden inte skulle räcka till. Eftersom målet har varit att ha en fungerande
applikation har visst avkall fått göras på utvecklingsmodellen.
Figur 1. Figur över spiralmodellens fyra faser.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
4
3.3 Resurser
Det finns i nuläget några kommuner som har lösningar för tidtabellshantering i mobiltelefon,
bla. Luleå [www2] och Jönköping [www3]. Dessa lösningar, likväl som andra MIDlets, har
testats och fungerat som en källa för idéer och inspiration.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
5
4 Lösning
Programmet kommer att finns i två olika versioner. En version kommer att innehålla
funktionalitet för att visa linjekartor. Dessa kartor tar upp relativt mycket lagringsutrymme
och därför kommer en mindre (i avseende på hur mycket lagringsutrymme den upptar)
version också att vara tillgänglig utan denna funktion.
En del funktioner i applikationen (ej grundfunktionerna) kommer att vara beroende av hur
avancerad mobiltelefon man har tillgång till (se 4.6 Extra funktioner).
4.1 J2ME
J2ME (Java 2 Platform, Micro Edition) är i grund och botten J2SE (Java 2 Platform, Standard
Edition) som är avskalat för att bättre passa mindre, mobila enheter som PDAs (Personal
Digital Assistants) och mobiltelefoner. Applikationer som är gjorda i J2ME kallas för
MIDlets. J2ME är uppdelat i configurations, profiles och valbara extrapaket [www4, LS05],
se figur 2. Varje apparat som stödjer J2ME är portad mot en specifik configuration och profile
och det är detta som gör det möjligt att utveckla applikationer till apparaten. Det är nämligen
configurationen och profilen som innehåller alla klasser, APIs och bibliotek som man har
tillgång till under programmeringen. När en ny J2ME-produkt tillverkas är det upp till
tillverkaren att porta den mot en profile och en configuration och se till att allt som dessa
innehåller stöds av produkten. Detta gör att man vet vad som finns att tillgå när man utvecklar
en applikation för en produkt. I vissa fall kan dock tillverkaren av produkten ha implementerat
APIs och klasser felaktigt vilket leder till att en applikation inte fungerar på olika apparater
som använder sig av samma profile och configuration.
Mindre apparater
Personsökare
Större apparater
Mobiltelefoner
Bil navigeringssystem
Internet beroende
apparater
Digitalboxar
Personal Profile
Personal Basis Profile
PDAP
MIDP
Foundation Profile
CLDC
CDC
J2ME
Configurations
Profiles
Figur 2. Figur över J2ME Configurations och Profiles.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
6
4.1.1 JVM
Alla produkter som kan köra Java kod innehåller någon form av JVM (Java Virtual Machine).
En JVM är den motor som tolkar och kör Java koden som den aktuella applikationen
innehåller. Java applikationer körs alltid inom denna motor och det är den som översätter
källkoden till operativsystemspecifika kommandon vilket gör Java till ett mycket säkert
programmeringsspråk. En JVM i en persondator är mer komplicerad än JVMen i en
mobiltelefon. Detta beror på att en mobiltelefon inte klarar av lika avancerade funktioner som
en persondator och behöver då inte en lika avancerad JVM. JVMen i mobiltelefoner kallas
också för KVM där K står för kilobyte som syftar till att den är mindre än en vanlig JVM
[LS05].
4.1.2 Configurations
Configurations specificerar en JVM och en bas av klassbibliotek som kan användas i en
mängd olika enheter som delar karakteristik i avseende på processorstyrka, minneskapacitet
och nätverkstekniker. En configuration ställer alltså krav att enheten måste uppfylla vissa krav
när det gäller processorn, minnet och nätverksstödet. I dagsläget finns det två olika familjer av
configurations: CDC (Connected Device Configuration) och CLDC (Connected Limited
Device Configuration).
CDC
En CD (Connected Device) måste ha minst 512KB ROM (Read-Only Memory), 256 KB
RAM (Random Access Memory) och någon form av nätverksanslutning. CDC är designad för
mer avancerade apparater som bilnavigerings system och digital boxar. CDC kräver också att
en fullkomlig JVM stöds.
CLDC
CLDer är mindre enheter såsom mobiltelefoner, personsökare och enklare PDAs. CLDC
ställer inte lika höga krav som CDC. CLDC är designat för apparater som har minst 160KB
ROM och 32KB RAM alltså för apparater som inte är lika avancerade.
4.1.3 Profiles
Profiles ligger ovanpå Configurations och adderar APIs (Application Programmable
Interface) som gör det möjligt att köra applikationer i en produkt från en viss produktfamilj.
En profile är alltså en mängd högnivå APIs som definierar applikationens livscykel,
användargränssnitt, lagringsutrymme och tillgång till produktspecifika funktioner. MIDP
(Mobile Information Device Profile) är en vanlig profile och det är brukligt att man
kombinerar MIDP med CLDC i mobiltelefoner, och andra liknande produkter, för att ge bra
stöd för Java-applikationer i dessa.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
7
4.1.4 Valbara paket
Mobiltelefoner, och andra produkter, kan ha funktioner utöver det som specificeras i
configuration och profile. Detta kan t.ex. vara 3D-grafik och multimedia och för att få tillgång
till dessa funktioner måste paket med stöd för dessa inkluderas. Om applikationen inte
använder sig av dessa funktioner bör man undvika att inkludera dessa paket eftersom det
kommer leda till sämre prestanda.
Valbara paket namnges som ett JSR-nummer. JSR står för Java Specification Request och
numret efter JSR hänvisar till ett speciellt paket. I denna applikation används PIM som är ett
valbart paket och har JSR-numret 75. I dagsläget finns det drygt 300 [www5] valbara paket
som kan inkluderas i applikationer som kräver stöd för den funktionalitet som specificeras i
dessa paket.
4.1.5 J2ME i denna lösning
Denna applikation kommer att designas för CLDC 1.0 och MIDP 2.0.
CLDC 1.0 ställer följande minimikrav på hårdvaran:
 160KB RAM.
 32KB ROM.
 Någon form av nätverksanslutning.
MIDP 2.0 ställer följande minimikrav på hårdvaran:
 256KB ROM (detta utöver kraven från CLDC).
 128KB RAM.
 8KB lagringsutrymme (som inte förlorar information vid strömlöshet).
 En 96x54 pixlars skärm.
 Någon form av inmatningsutrustning (siffertangenter, tangentbord eller touch screen).
 Tvåvägs nätverk.
För att få tillgång till full funktionalitet krävs att telefonen har stöd för PIM som finns
specificerat i det valbara paketet JSR 75.
4.2 XML
XML eller eXtensible Markup Language är ett standard format som har utvecklats av W3C
(World Wide Web Consortium). XML används för att beskriva data på ett sätt som gör det
oberoende av hårdvara, mjukvara, skriftspråk och även informationen det beskriver.
XML kan användas både för att lagra och för att överföra data, vilket också görs i denna
lösning. Det som gör XML till ett bra sätt att både lagra och överföra data är att om
datakonsumenten känner till XML utformningen kan denne också tolka det data och den
bakomliggande arkitekturen har ingen betydelse.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
8
XML innehåller taggar, attribut och text. Det innehåller mycket mer också men dessa tre är de
som används i denna lösning. En tag (<tag>) används för att ge information om vad som
komma skall och måste alltid ha en motsvarande sluttag (</tag>). Attribut används för att ge
extrainformation som tagen inte ger och står även inuti tagen (<tag attribut=””>). Texten står
mellan tag och sluttag och är den data som tagen beskriver (<tag attribut=””>text</tag>)
[www6, www7].
4.2.1 XML-namngivning
Webbservern kommer att innehålla nio XML-filer (register filen och två busslinjer med fyra
tidtabeller vardera) och om applikationen sedan börjar användas fullt ut kommer det att
tillkomma en stor mängd filer. Detta gör att ett system för att hålla ordning på filerna krävs.
Detta löstes genom att ge XML-filerna unika filnamn som ger all den information som krävs
för att veta till vilken busslinje en XML-fil tillhör samt vad det är för typ av tidtabell.
Den viktigaste filen, som innehåller information om tillgängliga busslinjer, har filnamnet
”buslines.xml”. Denna fil fungerar som ett register över resterande filer och utan denna fil
skulle applikationen inte kunna ta emot några tidtabeller över huvudtaget.
Tidtabellsfilerna har ett sex siffror långt filnamn ”XXXXXX.xml”.
 De första tre siffrorna anger linjenumret t.ex. ”053XXX.xml” betyder att det är en
tidtabell för linje 53.
 Siffra 4 är en extra siffra som inte används i nuläget. Den kan ses som en reservsiffra
och kan komma att användas om programmet utökas så att mer information krävs.
 Siffra fem anger riktningen för linjen och kan vara antingen 1 eller 2. Om siffra fem är
1 så är det den riktning som står först i Dalatrafiks tidtabell, är siffra fem 2 så är det
den motsatta riktningen. T.ex. ”05301X.xml” betyder att det är en tidtabell för linje 53
som går mellan Falun – Borlänge.
 Siffra sex anger vilken sorts tidtabell det är, 1 betyder vardagar, 2 lördag, 3
söndag/helgdag och 4 betyder natt. Filnamnet ”053011.xml” exempelvis, betyder att
det är en tidtabell för linje 53 som går mellan Falun – Borlänge och att den innehåller
tidtabellsdata för vardagar.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
9
4.2.2 XML-utformning
I denna lösning används två olika XML-format. Ett format för att beskriva alla busslinjer som
det finns tidtabeller för och ett för själva tidtabellen för en viss busslinje. Alla XML-filer
kommer att ligga på en webbserver och de kommer också att vara komprimerade med gzip
(www.gzip.org). gzip är ett gratisprogram som får användas fritt och anledningen till att
filerna komprimeras är att de ska ta upp mindre plats och på det viset behöver användaren inte
ladda hem lika mycket data.
XML-filerna har under arbetets gång fyllts med data manuellt av mig själv och min
handledare. Eftersom detta är ett mycket tidskrävande arbete har det under utvecklingen
endast funnits en busslinje med tillhörande tidtabeller tillgänglig. Linje 53/253 (som går
mellan Falun och Borlänge och vice versa) valdes pga. att det är den linje som innehåller flest
avgångar vilket leder till att dessa tidtabeller kommer att generera störst mängd data och man
ser då hur mobiltelefonen klarar av att hantera det. I framtiden är det dock meningen att dessa
filer ska genereras automatiskt av någon form av programvara.
XML-formatet som beskriver alla busslinjer ser ut på följande sätt:
<buslines>
<line>
<bus id="" validTo="" wday="" sat="" sun="" night="">text</bus>
<info></info>
</line>
</buslines>
Se tabell 1 nedan för förklaring till taggar etc.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
10
Tabell 1. Förklaring till taggar, attribut och text
Tag
Attribut
Text
<buslines>
<line>
<bus>
id
validTo
Wday - night
text
<info>
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
Förklaring
Visar att information
om tillgängliga
busslinjer finns här
Visar att information
om en viss busslinje
finns här
Ger information om
busslinjen bl.a. vilka
tidtabeller som finns
för linjen
Anger id-numret för
linjen t.ex. 053010
(se 4.2.1 XMLnamngivning)
Anger hur länge
tidtabellen är giltig
och står på formen
”YYYY-MM-DD”
Anger vilka
tidtabeller som finns
tillgängliga för
linjen. Står det
wday=”1” så innebär
det att tidtabell för
vardagar finns för
linjen om det står
wday=0 så finns inte
den tidtabellen
tillgänglig för denna
linje
Anger linjenummer
och mellan vilka
städer linjen går (i
klartext)
Innehåller
extrainformation som
är specifik för just
den linjen. Det kan
finnas flera <info>
taggar, varje tag får
endast innehålla en
mening
023-77 80 00
023-77 80 50
http://www.du.se/
11
XML-formatet som beskriver tidtabelldata för en specifik linje ser ut på följande sätt:
<timetable>
<departure start="" dep="" linenumber = "" rundays = "" anm="">
<dest time="">text</dest>
</departure>
</timetable>
Se tabell 2 nedan för förklaring till taggar etc.
Tabell 2. Förklaring till taggar, attribut och text
Tag
Attribut
Text
<timetable>
<departure>
start
dep
linenumber
rundays
anm
<dest>
time
text
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
Förklaring
Visar att
tidtabellsdata finns
här
Visar att tidtabells
data finns här
Anger startstation
Anger tiden då
bussen lämnar
startstationen
Anger linjenumret på
bussen
Anger de dagar som
bussen går (om den
inte går varje dag,
t.ex. om det är en
tidtabell för vardagar
och bussen går varje
vardag så innehåller
attributet ingenting)
Innehåller
specialkoder för just
den avgången
Visar att det är en
hållplats som bussen
stannar vid
Anger tidpunkten då
bussen ska anlända
till hållplatsen
Anger
hållplatsnamnet
023-77 80 00
023-77 80 50
http://www.du.se/
12
4.2.3 XML-tolkning
För att informationen i XML-filerna ska kunna användas måste de tolkas eller parsas som det
också kallas. I denna applikation är XML-filerna dessutom komprimerade med gzip och
måste först dekomprimeras. Detta görs av ett bibliotek som heter ”TinyLine GZIPInputStream
1.8.2 for J2ME CLDC” som är gratis och får användas fritt (www.tinyline.com). När filen
blivit dekomprimerad måste den sedan parsas för att applikation ska kunna tolka
informationen som finns lagrad i XML-filen.
I dagsläget finns det inget inbyggt stöd för att hantera XML-filer i mobiltelefoner. Lösningen
till detta är att man inkluderar ett bibliotek som har funktionalitet för XML-hantering. Detta
gör att applikationen växer i storlek och eftersom mobiltelefoner har begränsad kapacitet
måste biblioteket vara välskrivet och anpassat för enheter med dessa egenskaper.
Det finns ett flertal olika bibliotek som adderar XML-hantering till applikationen som
inkluderar det. Tabell 3 nedan visar de bibliotek som rekommenderas av Sun för användning i
applikationer avsedda för mobiltelefoner [www8].
Tabell 3. De olika bibliotek som Sun rekommenderar för XML-hantering i MIDP
applikationer.
Namn
Storlek
ASXMLP 020308
6 kB
kXML 2.0 alpha
9 kB
kXML 1.2
16 kB
MinML 1.7
14 kB
NanoXML 1.6.4
10 kB
TinyXML 0.7
12 kB
Xparse-J 1.1
6 kB
Till denna lösning valdes kXML 2.0 som parser. Valet grundas på att den är gratis och får
användas fritt, är relativt liten och lättanvänd [www9].
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
13
4.3 Nätverk
Applikationen i sig själv kommer inte att innehålla någon tidtabellsinformation. Programmet
kommer att vara uppbyggt kring en webbserver som innehåller den information som behövs
för att hantera tidtabellsdata från Dalatrafik. Under utvecklingen kommer en egen webbserver
att användas.
Eftersom det är kostsamt att skicka och ta emot data över nätverket måste lösningen vara
gjord på ett sådant sätt att onödig nätverkstrafik undviks i allra största mån. Genom att all data
som laddats hem en gång till telefon sparas kommer nätverkstrafiken att hållas nere. Hur
mycket trafik som kommer att generas är omöjligt att säga och beror helt på hur många
tidtabeller som användaren laddar hem.
Den viktigaste filen på webbservern är den fil som innehåller alla tillgängliga busslinjer med
tillhörande tidtabeller. Denna fil fungerar som ett register över alla andra filer som finns (se
kapitel 4.2 för mer information om denna fil). För att användaren ska veta vilka tidtabeller
som finns tillgängliga måste alltså denna fil laddas hem först av allt, se figur 3. När den sedan
finns tillgänglig kan användaren göra sina val och andra filer kan laddas hem. Denna fil,
liksom alla andra filer, behöver bara laddas hem en gång men vill man uppdatera den för att
t.ex. se om det tillkommit nya busslinjer så kan man göra det.
Server med
komprimerade
XML-filer
Mobiltelefon
med stöd
för J2ME
Lista med
alla
busslinjer
1
2
3
4
Tidtabell
för
vald linje
Figur 3. Bild över hur mobiltelefonen kommunicerar med webbservern.
1.
2.
3.
4.
Användaren skickar en förfrågan om vilka busslinjer som finns tillgängliga.
Fil med alla busslinjer med tillhörande tidtabeller laddas hem.
Användaren gör sina val.
Valda tidtabeller laddas hem.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
14
4.4 Lagring i mobiltelefonen
Mobiltelefoner har inte lika stora lagringsmöjligheter som en persondator och man måste
därför se till att utrymmet utnyttjas maximalt och undvika redundans. I denna lösning används
mobiltelefonens inbyggda databas. Databasen i en mobiltelefon fungerar inte som en klassisk
relationsdatabas utan här måste man själv implementera relationer och andra funktioner. Det
är väldigt krävande för en mobiltelefon att läsa och skriva till databasen och bör därför
undvikas så långt det går. Ett sätt att komma runt detta är att läsa upp den information som
man behöver till minnet och arbeta med den därifrån [TK02, LS05]. Alla filer som sparas i
databasen genererar en egen databasfil.
En hierarkisk lösning med tre nivåer valdes som ramverk för lagringen se figur 4. Den översta
nivån innehåller alla tillgängliga busslinjer med tillhörande tidtabeller och är en kopia på det
data som finns i motsvarande XML-fil. Nivå nummer två innehåller alla tidtabeller som blivit
hemladdade och fungerar som ett register. Här finns också information om giltighetsperiod.
Den lägsta nivån är de tidtabeller som blivit hemladdade och innehåller avgångar och alla
stopp som bussen gör på vägen mot destinationen.
Register över alla
busslinjer med
tillhörande tidtabeller
Register över
nedladdade tidtabeller
för olika busslinjer
Linje: X
Dagtyp : Y
Avgångar med
stopp på vägen
Figur 4. Schematisk bild över lagringen i mobiltelefonen.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
15
4.5 Användargränssnitt
Målet för applikationen är att det ska vara enkelt att använda den. Därför valdes att alla
menyer skulle konstrueras med hjälp av den funktionalitet som finns i J2ME och som är
avsedd för detta. Figur 5 visar hur menyerna i programmet kommer att se ut.
Figur 5. Figur över menysystemet i applikationen.
All interaktion med applikationen sköts med mobiltelefonens styrspak, menyknappar och
siffertangenter. Hur detta är löst kan variera på olika telefonmodeller, somliga har en styrspak
för navigering medan andra har en pekskärm. Det är upp till tillverkaren att implementera stöd
mot det API som sköter navigering. Det går därför inte att beskriva exakt hur man ska
förflytta sig i menyer och göra val i dessa eftersom detta är beroende av telefonens
interaktionsmöjligheter.
4.5.1 Visning av tidtabellsdata
Dalatrafiks tidtabeller innehåller en mängd information utöver avgångstider för olika bussar.
Detta kan exempelvis vara att turen körs med en lågentrébuss (underlättar på- och avstigning
med t.ex. barnvagn), att turen inte körs vissa dagar eller att turen körs med en direktbuss. Det
har därför varit viktigt och även ett problem att visa all denna extrainformation för
användaren på ett bra sätt.
Skärmen i en mobiltelefon har begränsad storlek vilket ledde till att det uppstod problem med
att få plats med information som måste visas när samma API som menyerna byggde på
användes. Eftersom arbetet varit tidsbegränsat gjordes valet att försöka hitta en färdig eller
delvis färdig lösning för att komma runt detta problem.
Demoprogrammet som Etex AB tagit fram använde sig av en klass från Sun som heter
VirtualList som Eric Giguere skrivit [www10]. Denna klass är gjord för att generera generella
dynamiska listor som kan hantera menyval och där teckensnittet kan modifieras både i storlek
och i utseende. Denna klass bygger i sin tur på ett API som heter CustomItem och som finns
definierat i MIDP 2.0.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
16
Vid examensarbetets start hade Etex AB modifierat denna klass för att bättre passa den
dåvarande versionen av applikation. Efter att klassen utökats ytterligare, av mig själv, bl.a.
genom att lägga till en scrollist och andra mindre justeringar valdes att klassen skulle fortsätta
att vara det ramverk som användes för visning av tidtabellsdata.
4.6 Extra funktioner
Förutom grundfunktionaliteten så finns det en mängd extra funktioner. Dessa har lagts till för
att göra applikationen mer användarvänlig samt för att applikationen ska kunna ge samma
information som kan hittas i Dalatrafiks reguljära tidtabell.
4.6.1 Linjekartor
Möjligheten att visa kartor är, som nämnts tidigare, endast tillgänglig i den större versionen av
programmet. Funktionen lades till för att underlätta för de bussresenärer som inte är bekanta
med Dalatrafiks olika busslinjer. Funktionen kommer att visa en karta över ett område där
man ser olika orter och vilka linjer som går mellan dem.
Bilderna som kartorna är uppbyggda av kommer från Dalatrafiks hemsida
(www.dalatrafik.se) men är anpassade för visning i mobiltelefoner.
4.6.2 Påminnelser
För att göra applikationen extra attraktiv och praktisk tillåter denna funktion användaren att
sätta en påminnelse för en valfri bussavgång. Denna funktion kommunicerar med telefonens
inbyggda kalender och kräver att användarens telefon stödjer kalenderfunktioner. För att veta
om ens telefon har tillgång till en kalender bör man kontrollera att PIM (Personal Information
Management) finns angivet i telefonens specifikationer.
För att denna funktion ska fylla sitt syfte måste påminnelsen innehålla information som gör att
användaren på ett enkelt sätt kan se vad påminnelsen beskriver. För att uppfylla detta kommer
påminnelsen att innehålla följande information:
 Busslinje samt mellan vilka orter linjen går.
 Den hållplats som användaren valde som påstigningsplats.
 Tiden som bussen anländer till hållplatsen.
 Hur långt före tiden för anländning som telefonen ska ge ifrån sig ett alarm.
4.6.3 Visning av exakt tid
Denna funktion hämtar hem den exakta tiden från en timeserver som ligger på Internet och
visar den i förhållande till mobiltelefonens tid. Det kommer inte att gå att ställa telefonens
klocka direkt ifrån applikationen eftersom att MIDleten körs i en JVM som inte har tillgång
till telefonklockan. Applikationer i Java ges inte tillgång till mjuk- och hårdvara som kan
påverka systemet i helhet. Detta förhindrar att applikationer kan låsa den arkitektur som de
körs på. Om en applikation skulle hamna dödläge så påverkar det endast applikationen och
inte hela systemet [LS05].
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
17
4.6.4 Kontroll av giltighetsperiod
Att den information som visas för användaren är aktuell är i allra högsta grad väsentlig för
denna applikation. Därför kommer en automatisk kontroll av giltighetsperioden att ske varje
gång användaren väljer att visa tidtabellsdata. Skulle det visa sig att giltighetsperioden har
passerat kommer ett meddelande, som informerar användaren om att det är dags att uppdatera
tidtabellerna, att genereras. Det kommer sedan att vara upp till användaren själv att uppdatera
dem.
4.7 Funktioner som implementerats av Etex AB
Etex AB har tagit fram några demofunktioner så att potentiella kunder kan se framtida
möjligheter med applikationen. Funktionerna fungerar inte i dagsläget p.g.a. att de kräver stöd
från både telefonoperatören och Dalatrafik. Funktionerna simuleras endast.
4.7.1 Kontroll om vald buss är försenad
Funktionen visar eventuella förseningar för en vald buss.
4.7.2 Hitta närmaste hållplats
Funktionen visar en karta där man ser närmaste hållplats, för en vald linje, i förhållande till
vart man befinner sig.
4.7.3 Anropsstyrds trafik
Funktionen skickar ett meddelande till Dalatrafik som visar att man tänker åka med en viss
buss.
4.7.4 Trafikinformation
Funktionen visar aktuell information som rör Dalatrafiks linjetrafik.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
18
5 Resultat
Här beskrivs resultaten av de lösningar som valts. Diskussion om de bästa lösningarna valdes
och eventuella motiveringar kan också läsas här.
5.1 XML
Lösningen gör det mycket enkelt att lägga till och att ta bort tidtabeller. Detta är väldigt
praktiskt om man under en testperiod endast vill att några få tidtabeller ska finnas tillgängliga.
Om man sedan vill utöka utbudet av tidtabeller är det mycket enkelt att lägga till mer
information.
Valet att komprimera XML-filerna gör att filerna blir ungefär två till åtta gånger mindre än
vad de skulle ha varit utan komprimering. Storleken på den största tidtabellen är ca 2KB.
Det som skulle kunna förbättras är den redundans som nu uppstår pga. att tidtabellerna
innehåller exakt samma information som finns i Dalatrafiks tidtabell i pocketform. I denna
tidtabell kan en bussavgång förekomma i flera olika tidtabeller vilket gör att den valda
lösningen kommer att generera mer data än vad som är nödvändigt. Att lösa detta kommer att
leda till att komplexiteten i resten av lösningarna ökar avsevärt samt att användaren måste
ladda hem fler tidtabeller. Båda dessa nackdelar som en ny lösning skulle medföra motiverar
valet av den nuvarande lösningen.
5.2 Nätverk
I och med valet att använda en webbserver med all tidtabellsdata så måste applikationen ha
tillgång till en nätverksanslutning för att fungera. Eventuella användare av programmet måste
därför se till att deras telefonoperatör har stöd för att skicka och ta emot data över en
nätverksanslutning. I nuläget har de flesta leverantörer av abonnemang till mobiltelefoner ett
system där man betalar för den mängd data som man laddar hem till sin telefon. Med tanke på
detta är lösningen gjord så att onödig nätverkstrafik undviks så mycket som möjligt och de
filer som laddas hem är komprimerade.
Dalatrafik ger ut tre tidtabeller per år vilket också gör att man måste uppdatera de tidtabeller
man har laddat hem, till sin telefon, tre gånger per år. Dessa faktorer, samt det faktum att
informationen som tas emot är komprimerad, bidrar till att nätverkstrafiken hålls nere och bör
inte rendera i några större kostnader.
Har man Telia som operatör ligger kostnaden i nuläget (2006-05-12) på 20 kr/MB och sjunker
ju mer data man laddar hem. Källa:
www.telia.se/privat/frame.do?sl=teliase_privatpersoner&mainFrame=/privat.do
Har man istället Comviq som operatör ligger kostanden i nuläget på 15 kr/MB.
Källa:
www.editorial.tele2.se/?page=tele2se_privat_mobiltelefoni_tjanst_surfochwap&popup=1
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
19
5.3 Lagring i telefonen
Lösningen använder sig av mobiltelefonens interna databas. Som nämnts tidigare är det
mycket krävande för telefonen att läsa och skriva information till databasen och man bör
därför undvika att göra det i onödan. Med tanke på detta konstruerades lösningen så att den
information som ska användas läses in till minnet och kan sedan bearbetas därifrån. Även om
detta förhindrar onödig läsning från databasen kan det leda till andra problem eftersom
arbetsminnet är betydligt mindre på en mobiltelefon jämfört med en persondator. Vissa
applikationer använder sig av olika former av kontroller för att försäkra att inte minnet ska ta
slut men detta görs dock inte i denna lösning [LS05].
Data från databasen läses upp till arbetsminnet i fyra steg när tidtabellsinformation ska visas
på skärmen:
1. Alla busslinjer som har någon tidtabell tillgänglig på webbservern läses in och visas på
skärmen. Detta sker endast när användaren laddar hem tidtabeller.
2. Användaren väljer att visa tidtabellerna för en specifik linje och de läses in och visas
på skärmen. Detta sker endast när användaren laddar hem tidtabeller.
3. Alla busslinjer som har någon tidtabell tillgänglig i databasen läses in och visas på
skärmen.
4. Användaren väljer att visa en tidtabell för en specifik linje och alla avgångar samt
stopp som görs läses in och visas på skärmen.
Det steg som kräver mest minne är punkt fyra. Eftersom den linje som blev vald att arbeta
med innehåller flest avgångar av alla busslinjer kan man dra slutsatsen att om mobiltelefonen
klarar av att hantera den mängden data så kommer den att kunna hantera övriga tidtabeller
också.
Lösningen kommer att generera 2 + n stycken databasfiler där n är antalet tidtabeller som
användaren laddat ner till sin mobiltelefon och tvåan kommer från filen med tillgängliga
busslinjer och filen med busslinjer som har nedladdade tidtabeller.
Den fil som är störst just nu är tidtabellen för vardagar linje 53/253/244 Falun – Borlänge och
ligger på ca 13kB. Den fil som innehåller samtliga busslinjer kommer att bli den största i
framtiden om Dalatrafiks fullkomliga tidtabell görs tillgänglig. Exakt hur stor den kommer att
bli är svårt att sia om men låt oss säga att den kommer att innehålla 80 olika linjer då kommer
den att bli ca 80 * 450B (filens storlek just nu) vilket blir 36kB.
Under detta arbete har olika applikationer som använder sig av databasen studerats och
exempel på databasfiler som är i storleksordningen 190kB har påträffats [www11]. Av detta
kan man dra slutsatsen att denna lösning kommer att fungera felfritt även när tidtabellsutbudet
växer. Om det ändå skulle visa sig att telefonen får problem kan man lösa detta genom att
endast läsa upp en delmängd, av den totala mängden data, och uppdatera den eftersom ny
information behöver visas.
Ett alternativ till att använda databasen hade varit att spara hemladdad data direkt som filer i
telefonen. Alla telefoner stödjer inte filhantering och hade man valt den lösningen hade man
fått lov att implementera mer funktioner för hand. Allt detta och det faktum att databasen är
avsedd för lagring av data gjorde att denna lösning valdes.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
20
5.4 Användargränssnitt
Användargränssnittet i menyerna använder sig enbart av APIs som finns definierade i MIDP
1.0 vilket betyder att de ska fungera i samtliga telefoner som stödjer den profilen. En mängd
olika telefoner bl.a. från SonyEricsson kan endast visa dessa menyer med en storlek på
teckensnittet vilket gjorde att endast den fördefinierade typsnittstorleken används. Figur 6
visar en bild på hur huvudmenyn ser ut i applikationen.
Figur 6. Huvudmenyn i programmet.
För ett komplett flödesschema över alla menyer och funktioner se Bilaga 1.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
21
5.4.1 Visning av tidtabellsdata
All visning av tidtabellsdata bygger på klassen VirtualList som finns tillgänglig på Suns
hemsida och som är skriven av Eric Giguere. Denna klass bygger i sin tur på ett API som
heter CustomItem och som finns definierat i MIDP 2.0. Tyvärr visade det sig under test att
vissa telefoner, bl.a. Qtek 8010, har problem med denna klass. Att ta fram ett nytt gränssnitt
skulle dock ta alldeles för lång tid. Ett sätt att få detta gränssnitt att fungera på fler telefoner är
att använda sig av klassen Canvas som finns definierad i MIDP 1.0. Denna klass är mycket
grundläggande och har inga fördefinierade funktioner för att hantera menyval och andra saker
som är viktiga i denna applikation. Därför måste man implementera all sådan funktionalitet
själv vilket gjorde att den ovan nämnda klassen VirtualList behölls. Figur 7 nedan visar hur
tidtabellsinformation presenteras för användaren.
Figur 7. Figur med exempel på hur tidtabellsdata presenteras för användaren.
Resultatet av lösningen blev ett gränssnitt som ger användaren all information som krävs för
att kunna planera en resa med någon Dalatrafiks bussar.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
22
5.5 Extra funktioner
Inga funktioner som implementerats av Etex AB diskuteras.
5.5.1 Linjekartor
Denna funktion, som endast finns tillgänglig i den större versionen av MIDleten, visar en
karta över antingen hela Dalarna eller Falun – Borlänge området. Funktionen fungerar mycket
bra och kan vara till stor hjälp om man vill ta reda på vilken linje som går mellan två orter.
Funktionen har testats i ett flertal olika telefonmodeller och ingen har haft problem med den.
Se figur8 för ett exempel på en linjekarta.
Kartorna som visas är större än skärmen och därför får man förflytta sig med telefonens
styrspak eller siffertangenter för att se hela kartan.
Figur 8. Exempel på hur det kan se ut när man tittar på en linjekara.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
23
5.5.2 Påminnelser
Endast telefoner med stöd för PIM har tillgång till denna mycket praktiska funktion som
hanterar påminnelser. Funktionen skulle kunna utökas så att man får välja datum, valfri
textsträng och annan information. Denna lösning fyller sitt syfte och därför valdes det att inte
utöka den i nuläget.
Figur 9 nedan visar en sekvens med bilder där ett alarm sätts för en avgång.
Figur 9. Bildsekvens som visar hur ett alarm sätts.
1. Användaren markerar den hållplats som han/hon vill ha en påminnelse om.
2. Användaren aktiverar kommandot ”Alarm” och får välja hur långt före tiden som
bussen anländer till hållplatsen som denne vill att telefon ska alarmera.
3. Användaren måste tillåta att applikationen modifierar telefonens kalender.
4. Användaren måste tillåta att applikationen modifierar telefonens kalender.
5. Användaren får ett meddelande om att en påminnelse blivit tillagd i kalendern.
Påminnelsen innehåller strängen ”[Missa inte bussen]”, information om busslinje och
hållplats och sparas i telefonens kalender under dagens datum.
När en påminnelse blivit tillagd kommer telefonen att ge ifrån sig ett alarm vid angiven tid.
När påminnelsen har blivit inaktuell kan användaren välja att ta bort alla påminnelser genom
applikationen men om han/hon vill ta bort en specifik påminnelse görs detta genom
kalendern. Har man stöd för PIM kan man även synkronisera alla påminnelser med t.ex.
Microsoft Outlook.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
24
5.5.3 Visning av exakt tid
Funktionen genererar en liten mängd nätverkstrafik, eftersom tiden hämtas från en timeserver
på Internet, vilket leder till en smärre kostnad. Det finns inget annat val än detta om man vill
kontrollera tiden så tyvärr kan man inte komma ifrån kostnaden som uppstår. Den exakta
tiden har stor betydelse i denna applikation och gör att funktionen är mycket praktiskt om man
är osäker på om klockan i telefonen visar korrekt tid. Figur 10 nedan visar hur det ser ut när
användaren väljer att kontrollera tiden.
Figur 10. Visar hur den exakta tiden presenteras för användaren. Observera att telefonens
klocka inte kan konfigureras genom applikationen.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
25
5.6 Test av applikationen
Tidsbrist gjorde att applikationen till största delen har testats i emulatorn. Emulatorn tillåter
att man väljer vilken telefonmodell som ska emuleras samt att inställningar som rör telefonens
prestanda specificeras. Detta kan t.ex. vara nätverkshastighet, lagringskapacitet och andra
telefon- och operatör specifika inställningar.
Vid test av applikationen i verklig telefon har nästan uteslutande mobiltelefoner från
SonyEricsson använts och då främst w800i. Att applikationen inte har testats i en större
mängd telefonmodeller har berott på att tillgången till mobiltelefoner för testning har varit
starkt begränsad.
Alla tester som utförts i emulatorn har varit lyckade och applikationen har bettet sig som
förväntat. Det var först när programmet testades i verkliga telefoner som problem uppstått, se
tabell 4 för testresultat. Att emulatorn inte har bettet sig som motsvarande telefon har varit ett
stort problem under utvecklingen. Somliga funktioner, som fungerat felfritt i emulatorn, har
visat sig fungera dåligt och i vissa fall inte alls när applikationen testats i verkliga telefoner.
Tabell 4. Testresultat av applikationen i verklika mobiltelefoner
Tillverkare
Telefonmodell
Anmärkning
SonyEricsson
W800i
Vid visning av tidtabellsdata
uppdateras ej scroll-listen
förrän användaren gör aktiva
val.
SonyEricsson
K750i
Se SonyEricsson W800i.
SonyEricsson
V800
Vid visning av tidtabellsdata
går det ej att traversera i
listan. Titeln på listan upptar
det mesta av skärmen.
Programmet stannar efter
nedladdning av tidtabeller.
SonyEricsson
Z800
Se SonyEricsson V800.
SonyEricsson
V600
Se SonyEricsson W800i.
SonyEricsson
K600
Se SonyEricsson W800i.
Qtek
8010
Visning av tidtabellsdata
fungerar inte alls.
Qtek
9100
Se SonyEricsson V800
förutom att titeln är normal.
LG
U880
Se Qtek 9100.
De telefoner som testats har inte haft det senaste firmwaret vilket kan ha bidragit till
testresultaten.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
26
6 Slutsatser
6.1 Syfte och mål
Syftet var att undersöka om det är möjligt att ta fram en applikation, avsedd för
mobiltelefoner, som gör det möjligt att få reda på avgångarna för Dalarnas kollektivtrafik och
på det sättet locka fler att välja bussen. Målet var att ta fram en applikation som gjorde
ovanstående och som kunde köras i en emulator eller allra helst i direkt i en mobiltelefon.
I mina ögon är både syfte och mål uppfyllda, det går att hantera tidtabellsinformation i
mobiltelefoner och det går att hantera det bra dessutom. Om denna applikation bidrar till att
fler väljer att åka kollektivt återstår att se. Borlänge kommun har, via konsulter, gjort en
undersökning på hur kollektivtrafiken i just Borlänge kan förbättras (www.borlangeenergi.se/index.php?PHPSESSID=6192dc7f724b6668c96674b92073db37&LVLC=1734).
Min åsikt är att denna applikation kan vara en i ledet av förbättringar.
Beträffande målet så har en applikation tagits fram och applikationen gör det möjligt att se
avgångarna för Dalatrafiks bussar och kan användas i ett flertal olika telefonmodeller.
Applikationen är dessutom uppbyggd på ett sådant sätt att det utan större modifieringar skulle
gå att använda den till att visa annan information än tidtabeller. Det skulle alltså utan större
jobb gå att konvertera applikationen till att hantera exempelvis olika typer av scheman,
evenemangsinformation eller tv-tablåer.
6.2 Brister och framtida utvecklingsmöjligheter
Som diskuterats tidigare så har applikationen kompabilitetsproblem med vissa
telefonmodeller. Detta beror nästan uteslutande på att gränssnittet som visar
tidtabellsinformation bygger på en klass (CustomItem) som har dåligt stöd från vissa av
telefontillverkarna. Att göra ett nytt gränssnitt har inte hunnits med inom tidsramen för detta
examensarbete. I framtiden bör dock ett nytt gränssnitt tas fram, ett gränssnitt som klarar att
hantera all den information som måste visas och framförallt är kompatibelt med fler telefoner.
Detta gränssnitt bör använda sig av klassen Canvas som är en klass som alla mobiltelefoner
ska stödja. Tas ett nytt gränssnitt fram kommer det att vara en tidskrävande uppgift och bör
därför göras så generellt som möjligt vilket gör att det kan återanvändas till andra
applikationer.
Applikationen borde också testas på många fler telefonmodeller, från olika tillverkare, än vad
som blivit gjort i detta examensarbete. Ett sätt att få tillgång till fler telefoner skulle kunna
vara att på något sätt samarbeta med en butik eller något företag som kan avvara ett antal
olika telefoner för testning.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
27
6.3 Fördelar med denna lösning
Som jag tidigare nämnt så har jag testat MIDlets för både Jönköpings och Luleås
kollektivtrafik. Fördelen med denna lösning gentemot de två är att man måste ladda hem en
applikation per busslinje. I denna lösning används ett program och alla busslinjer som finns
tillgängliga kan man komma åt från det. I de andra två fallen kommer mer nätverkstrafik att
genereras vilket leder till högre kostnader för användaren. Vidare kommer användaren att
tvingas hantera flera applikationer om denne vill ha tillgång till mer än en tidtabell vilket gör
lösningarna mindre användarvänliga. Dessa lösningar har heller inte lika bred funktionalitet
som denna lösning.
Det skulle också gå att lösa detta problem genom att göra en WAP-sida, alltså en hemsida för
mobiltelefoner. Där skulle man kunna lista alla bussavgångar för olika busslinjer på något
praktiskt sätt. Nackdelen med en sådan lösning är att man måste koppla upp sig varje gång
man vill kolla en bussavgång vilket leder till högre kostnader. En J2ME applikation har
fördelen att all hemladdad data kan sparas och återanvändas. Vidare tillåter J2ME att
applikationen får tillgång till fler funktioner som t.ex. påminnelser.
Jag tycker att om man ska lösa ett liknande problem så är J2ME helt rätt val. Hur man sedan
implementerar lösningen måste bestämmas utifrån själva applikationens användningsområde
och vad man vill lägga fokus på. Det kan exempelvis vara många funktioner,
användarvänlighet, storlek på applikationen eller annat som anses vara viktigt för just den
applikation man utvecklar.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
28
7 Referenser
7.1 Elektroniska referenser
[www1]
www.student.nada.kth.se/~d93-mka/pvt/node3.html
Bengtsson J. Karperyd M. (1997), Praktikfall i programvaruteknik 2I1250
Ansvarig utgivare: Magnus Karperyd
[www2]
www.llt.lulea.se/itmobil.shtml
Ansvarig utgivare: Ej angivet
[www3]
www.jlt.se/mobil/mobil.asp
Ansvarig utgivare: Ej angivet
[www4]
java.sun.com/javame/overview.html
Ansvarig utgivare: Ej angivet
[www5]
jcp.org/en/jsr/all
Ansvarig utgivare: Ej angivet
[www6]
www.xml.se/xml/vad.html
Liljegren G, (2001), Vad är XML?
Ansvarig utgivare: Gustaf Liljegren
[www7]
www.w3.org
Ansvarig utgivare: Ej angivet
[www8]
developers.sun.com/techtopics/mobility/midp/articles/parsingxml/
Knudsen J (2002), Parsing XML in J2ME
Ansvarig utgivare: Jonathan Knudsen
[www9]
kxml.sourceforge.net
Ansvarig utgivare: Ej angivet
[www10]
developers.sun.com/techtopics/mobility/midp/ttips/customcomponent/index.html
Giguere E. (2004), A Custom List Component for MIDP 2.0
Ansvarig utgivare: Eric Giguere
[www11]
www.manchild.net/airtimes
Ansvarig utgivare: Ej angivet
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
29
7.2 Litteratur
[LS05]
Li S. Knudsen J. (2005),
Beginning J2ME: From Novice to Professional, Third Edition.
Springer-Verlag. New York. ISBN:1-59059-479-7.
[TK02]
Topley K. (2002),
J2ME in a Nutshell.
O'Reilly & Associates, Inc.
Sebastopol. ISBN: 0-596-00253-X.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
30
8 Ordlista
Tabell 5. Ordlista
Ord/förkortning
API
Configuration
CDC
CLDC
Emulator
Firmware
Flashminne
J2ME
J2SE
MIDlet
MIDP
Parsa
PDA
PIM
Profile
RAM
ROM
Timeserver
WAP
XML
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Förklaring
Application Programmable Interface. Ett
gränssnitt som används när något på en högre
nivå vill kommunicera med en lägre nivå.
Se kapitel 4.1 J2ME.
Connected Device Configuration. En J2ME
configuration.
Connected Limited Device Configuration. En
J2ME configuration.
Programvara som gör att man kan köra
applikationer avsedda för andra plattformer.
Programvara som styr och kontrollerar
hårdvara.
Litet minneskort avsett för lagring.
Java 2 platform Micro Edition. Plattform för
utveckling av MIDlets.
Java 2 platform Standard Edition. Plattform
för utveckling av Java-applikationer t.ex.
applets.
Applikation som är avsedd för mindre mobila
system som t ex. mobiltelefoner.
Mobile Information Device Profile. En J2ME
profile.
När informationen i XML-filer tolkas och
läses in.
Personal Digital Assistant. Liten bärbar
handdator.
Personal Information Management. Ett API i
J2ME som används för att hantera olika typer
av kalenderfunktioner.
Se kapitel 4.1 J2ME.
Random Access Memory. Arbetsminne som
applikationer använder för att spara data i.
Read-Only Memory. Minne som endast kan
läsas ifrån.
Server som använder sig av NTP protokollet
(Network Time Protocol).
Wireless Application Protocol. Protokoll för
att hantera hemsidor för mobiltelefoner.
eXtensible Markup Language. Format för att
distribuera och lagra information.
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
31
9 Bilagor
Bilaga 1. Flödesschema
Visa busslinjer
Uppdatera
busslinjer
Kartor
Val/Listning
av busslinjer
Dalarna
Falun Borlänge
Databas
Exakt tid
Trafikinformation
Inställningar
Val/Listning
av dagar
Hämta
Påminnelser
Hjälp
Om
Val/Listning
av busslinjer
Töm databas
Linjeinfo
Val/Listning
av dagar
Justera
påminnelse
Ta bort alla
påminnelser
Linjeinfo
Val/Listing
av avgångar
Buss i tid
Hållplats
Linjeinfo
Listning av
busstopp
Sätt alarm
Påstigande
Linjeinfo
Figur 11. Flödesschema, se tabell 6 för förklaring till funktioner.
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
32
Tabell 6. Förklaring till funktioner i flödeschema
Funktion
Förklaring
Linjeinfo
Visar specifik linjeinformation, såsom
giltighetsperiod mm.
Buss i tid
Visar om vald buss är försenad
Hållplats
Visar en karta där man ser närmaste hållplats
i förhållande till aktuell position
Sätt alarm
Hämta
Lägger till en påminnelse i telefonens
kalender där man får välja hur långt före
bussens ankomst man vill bli påmind
Ger information till Dalatrafik att man tänker
stiga på bussen vid vald hållplats
Startar hemladdning av valda tidtabeller
Kartor
Visar en linjekarta över valt område
Trafikinformation
Visar information som rör busstrafiken
Exakt tid
Hämtar exakt tid från en timeserver
Justera påminnelse
Om påminnelsetiden, i telefonens kalender,
blir felaktig kan den justeras här
Hjälp
Förklarar hur applikationen fungerar
Om
Visar information om applikationen samt
telefonspecifik information
Påstigande
Högskolan Dalarna
Röda vägen 3
781 88 BORLÄNGE
Telefon:
Telefax:
URL:
023-77 80 00
023-77 80 50
http://www.du.se/
33