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