Very Small Information Systems/SS2007

MobileSurvey (HTTP vs Wap vs MIDLet)

Project 1

By Christian Christensen

The project is to be completed at the end of May 2007. Software versions will be placed at http://sourceforge.net/

Links: http://sourceforge.net/projects/mobilesurvey/ An assignment for http://sourceforge.net/projects/wsis/

-- Danish part that will be translated later... --

Den videnskabelige artikel:

En analyse af HTTP, WAP og MIDLet og disses påvirkninger på strømforbrug på mobile enheder, samt krypteringens effekt på strømforbrug.

-- Indholdsfortegnelse

• Introduktion

• Problemformulering

• Generelt om HTTP, WAP og MIDLets

• Struktur gennemgang og pseudokode forklaring med DIS aspekt.

• HTTP løsningens aspekter/fordele/ulemper

• WAP løsningens aspekter/fordele/ulemper

• MIDLet løsningens aspekter/fordele/ulemper

• Kryptering af data. Pakkekryptering vs. Modulkryptering vs. Egen kryptering.

• Konklusion og besvarelse af problemformulering.

• Afslutning og evaluering af projekt.

--

• Introduktion

Der ønskes at blive udviklet en applikation / et produkt som et alternativ til OnlineInterview.dk´s nuværende web browser baserede produkt. OnlineInterview.dk tilbyder værktøjet til udarbejdning af spørgeskemaer og indsamling af besvarelser via standard browsere på PCere. OnlineInterview.dk ønsker at give respondenter mulighed for at besvare spørgeskemaer uafhængigt af geografisk placering og kun ved brug af en mobiltelefon. Opgaven vil omhandle en produktanalyse med tilhørende designfase, samt en beskrivelse af produktets tekniske aspekter. Der vil under de tekniske aspekter blive foretaget en sammenligning mellem HTTP(Ren Internet), WAP(Ren Internet) og en MIDLet(Applikation med data udveksling til Internet). De tre typer af produkter vil blive fremstillet i et begrænset omfang, således at det er muligt at sammenligne teoriområder. Oprettelse af forbindelse fra den mobile enhed til Internet vil ikke blive belyst. Ud fra dokumentationen af produktet, vil en akademisk artikel blive udarbejdet hvori der gennemgås relevante teoretiske aspekter, herunder strømforbrug, komprimering og kryptering.

Om produktet MobileSurvey:

MobileSurvey skal give en respondent muligheden for at modtage og besvare et spørgeskema via mobiltelefonen. Spørgeskemaet konstrueres på en hjemmeside på Internettet og kan også besvares via f.eks. et link. MobileSurvey skal være et tillægsprodukt til den eksisterende løsning som kræver en pc med internetadgang.

Tekniske krav:

Applikations navn: MobileSurvey Tekniske krav: MIDLet: Mobiltelefon med Java understøttelse (formodentligt MIDL 1.0) og adgang til Internet. HTTP/WAP: Adgang til Internet. Produkt modtager: www.onlineinterview.dk / CBS (opgave samling) / Wikiversity.com

Produkt relevans:

Produktet vil betyde at www.onlineinterview.dk vil kunne tilbyde at besvarelser bliver indsamlet uafhængigt af respondentens geografiske placering. Derudover vil det altid være muligt at modtage besvarelser umiddelbart efter at man har forespurgt respondenten, da denne kan besvare spørgeskemaerne med det samme.

Problemformulering:

Der ønskes en analyse af følgende mulige Internet protokoller ved brug, under besvarelse af mobile spørgeskemaundersøgelser.

- HTTP

- WAP

- MIDLets

Herunder ønskes en analyse af ligheder og forskelle. Ved brug af krypteringsalgoritmer ønskes det at påvise påvirkningen, på strømforbruget under brug af en mobile enhed.

Generelt om HTTP, WAP og MIDLets

HTTP:

HTML, er forkortelsen for HyperText Markup Language, hvilken er en måde at beskrive opbygningen af hjemmesider på. HTTP er baseret på en klient server løsning. Dvs. alle dele skal overføres fra server til klient før brugeren kan se f.eks. layout og data. HTML løsningen er ikke baseret på cookies men derimod sessions. Dette sikrer brugervenlighed i form af lagring af variabel lokalt. HTML løsningen genereres ud fra serverens håndtering af PHP der trækker data fra en MySQL database. Klient siden levere både GET og POST kald, da der ønskes fleksibilitet, men også sikkerhed.

WAP:

Wireless Application Protocol eller WAP som det forkortes, er en åben international standard til brug ved mobilkommunikation. WAP er primært fokuseret på mobiltelefoner og i et begrænset omfang PDAer. WAP tilbyder de mest basale funktioner som en web-browser kan tilbyde indenfor begrænsningerne som den mobile enhed giver. WAP er skrevet i WML (Wireless Markup Language) og tolkes via en WAP browser. Wap løsningen er ikke baseret på cookies eller sessions, men derimod simpel variabel kast mellem instanser. Da WAP løsningen primært er baseret på variable lagring indenfor samme card, sikres en stabil håndtering af variable.

MILDet:

En MIDlet (Mobile Information Device) er en Java baseret applikation til embedded enheder. MIDlet benytter Java ME framework som er en speciel Micro Edition af Java. Normalt benyttes denne primært til spil og mindre programmer, da de mobile enheder stiller særlige krav til den software som skal afvikle den. MIDlets er baseret på "compile once, run anywhere"- filosofien, hvilket er meget praktisk indenfor mobilindustrien.

Strukturgennemgang og pseudokode forklaring med DIS aspekt.

MobileSurvey er baseret på en klient-server løsning, da spørgeskemaet skal kunne tilgås fra forskellige platforme og være geografisk uafhængige.

Illustration: https://archive.is/20140204220942/www-128.ibm.com/developerworks/library/wi-cloud/fig2.gif (Ny illustration skal udarbejdes i Visio)

HTTP, WAP, MIDLet – aspekter, fordele og ulemper

HTTP er den mest udbredte protokol til brug i Internet browsere. Derfor er langt de fleste browsere baseret på at kunne modtage og tolke http. WAP giver muligheden for at browse på både ældre og nyere mobile enheder. Dog er denne form, ved at blive udfaset da nye mobile enheder giver mulighed for http, der levere tekst, billeder, video og andre grafiske elementer som WAP ikke kan tilbyde. Både http og wap er baseret på at alle data skal sendes fra serveren til klienten, ved hver forespørgsel. Dette betyder at der er et stort behov for data overførsel. Der er blevet foretaget tre målinger på størrelsen af de tre typer, herunder ses resultaterne:

HTTP: LINK: http://mobilesurvey.onlineinterview.dk/ Antal kode linier: 200 linier kode, kun første side der indlæses. Størrelse: 8 kb, uden billeder (Længere linier end de andre, da løsningen er komplet) Test software: "almindelig browser”

WAP: LINK: http://wap.onlineinterview.dk/index.wml Antal kode linier: 150 linier kode Størrelse: 2 kb, uden billeder. Test software: "WAP Proof" - freeware.

MIDLet: LINK: http://sourceforge.net/projects/mobilesurvey/ Antal kode linier: 250 linier kode Størrelse: Under 100 bytes, da programmet (10 kb) allerede er tolket/kompileret og installeret. Test software: MIDLet emulator. (Indbygget i udviklingsværktøj)


 * RESULTATER INDSÆTTES HER MED GRAF*

Resultaterne bekræfter den typiske tendens at http-løsninger ofte er mere data krævende pga. større designmæssige krav/muligheder. WAP-løsningen giver samme funktionalitet, men med mindre krav til mængde af data. Den tredje og mest interessante er MIDLet-løsningen der har samme størrelse som http, dog med den store forskel at den allerede er på den mobile enhed, der kræves derfor kun overførsel af resultat-data, hvilket er en promille af http løsningen. HTML tilbyder GET kald, der kan give fleksibilitet i form af foruddefineret svar via link, og POST kald der levere højere modstandsdygtighed overfor misbrug af variabelkald. På trods af dette, vælges MILDet ud fra den påstand, at muligheden for at en bruger vælger at foretage reverse-engineering og ændre i programmet, ikke er relevant. Herudover er kompatibiliteten meget større da ældre mobile telefoner kan bruge MIDlet og ikke http. En stor overraskelse er dog at MIDLet kræver et større forbrug af strøm under oprettelse af forbindelse og afvikling af programmet end WAP versionen. Det formodes at dette skyldes at Java kræver mere processor kraft.

Kryptering af data - Pakning vs. Modulkryptering vs. Egen kryptering. HTML versionen af MobileSurvey kan udvides men HTTPS, da dette kunne være interessant pga. sikkerhedsmæssige aspekter. Dog vil det være de færreste besvarelser der vil kræve en sikker protokol. Pakning af data, vil ikke gøre det muligt at aflæse data-strømmen direkte da den derved ikke sendes i klart sprog. Dette er dog den ”laveste” form for sikkerhed, da standard pakning også leveres med en standard udpakning som er frit tilgængelig. Kryptering via private eller offentlige nøgler kan også være interessante såfremt der en tale om følsomme data. Ligeledes kan begrænsninger indenfor IP-ranges og give et højere sikkerheds niveau. Desværre kræver alle løsninger en tredje part involveret og da disse krypterings alternativer ikke tilbydes til MIDLets vælges en lokal kryptering. HTTPS, vil kunne supplere en lokal kryptering såfremt man ønsker at kryptere mere end blot data fra besvarelsen.

Der blev indarbejdet denne TEA (Tiny Encryption Algorithm):

---

// use 16 chars of 'password' to encrypt 'plaintext' with xTEA function encrypt(plaintext, password) { var v = new Array(2), k = new Array(4), s = "", i;

plaintext = escape(plaintext); // use escape so only have single-byte chars to encode

// build key directly from 1st 16 chars of password k[0] = Str4ToLong(password.slice(0,4)); k[1] = Str4ToLong(password.slice(4,8)); k[2] = Str4ToLong(password.slice(8,12)); k[3] = Str4ToLong(password.slice(12,16));

for (i=0; i<plaintext.length; i+=8) { // encode plaintext into s in 64-bit (8 char) blocks v[0] = Str4ToLong(plaintext.slice(i,i+4)); // ... note this is 'electronic codebook' mode v[1] = Str4ToLong(plaintext.slice(i+4,i+8)); code(v, k); s += LongToStr4(v[0]) + LongToStr4(v[1]); }

return escCtrlCh(s); }

// use 16 chars of 'password' to decrypt 'ciphertext' with xTEA function decrypt(ciphertext, password) { var v = new Array(2), k = new Array(4), s = "", i;

k[0] = Str4ToLong(password.slice(0,4)); k[1] = Str4ToLong(password.slice(4,8)); k[2] = Str4ToLong(password.slice(8,12)); k[3] = Str4ToLong(password.slice(12,16));

ciphertext = unescCtrlCh(ciphertext); for (i=0; i<ciphertext.length; i+=8) { // decode ciphertext into s in 64-bit (8 char) blocks v[0] = Str4ToLong(ciphertext.slice(i,i+4)); v[1] = Str4ToLong(ciphertext.slice(i+4,i+8)); decode(v, k); s += LongToStr4(v[0]) + LongToStr4(v[1]); }

// strip trailing null chars resulting from filling 4-char blocks: if (s.search(/\0/) != -1) s = s.slice(0, s.search(/\0/));

return unescape(s); }

---


 * Krypteringen medførte dette….. * TEKST *

Konklusion og besvarelse af problemformulering. Vi har set at http og MIDLet har ca. samme strømforbrug men tilbyder en række designmæssige forbedringer i forhold til WAP. MIDLet og WAP har den store fordel at de også kan afvikles på ældre mobile enheder. Dog var det signifikant meget forskel på WAP og http/MIDLet´s strømforbrug. WAP benyttede generelt 25-50 % mindre strøm, hvilket kan være afgørende såfremt det skal besvares mange spørgeskemaer på samme mobile enhed. Da MobileSurvey i starten skal benyttes af flere personer der har hver deres mobile enhed og ikke skal besvare flere spørgeskemaer efter hinanden, vælges MIDLet. Det kan forventes at WAP løsningen vil bliver videreudviklet med henblik på respondenter der skal besvare flere spørgeskemaer efter hinanden som f.eks. en person fra Gallup der indsamler data på Strøget.

-- Den tekniske artikel med review af arbejdsprocessen. --

En analyse af HTTP, WAP og MIDLet og disses påvirkninger på strømforbrug på mobile enheder, samt krypteringens effekt på strømforbrug.

Indholdsfortegnelse

• Introduktion

• Problemformulering

• HTTP, WAP og MIDLet løsningens alternativer.

• Opgavens gennemførsel og review heraf

• Konklusion og besvarelse af problemformulering.

• Afslutning og evaluering af projekts gennemførsel

• Introduktion

I denne opgave vil de praktiske tekniske aspekter blive gennemgået. Opgaven vil belyse det praktiske arbejde som ligger til grund for opgaven og applikationen. MobileSurvey blev udarbejdet i foråret af 2007 og har belyst en række interessante problemstillinger som f.eks. applikationers forskel på strømforbrug i en mobilenhed, samt forskelle og ligheder mellem http, WAP og MIDLet. Problemer i forbindelse med opsætning og udvikling vil ligeledes blive beskrevet.

• Problemformulering

-	Hvilke alternative sprog kunne MobileSurvey have været udviklet i?

-	Hvilke software-produkter blev brugt i opgaven?

-	Hvordan blev softwaren brugt?

-	Hvordan blev målingerne indsamlet?

Det ønskes at alternativer bliver analyseret for relevans, for at sikre et optimalt valg af udviklingssprog. Dette kan have stor betydning da en mere effektiv udnyttelse af frameworks kan give store besparelser indenfor f.eks. strømforbrug og afviklingstider. Opgaven skal vise hvorledes applikationen er fremkommet og hvorledes målinger er blevet målt og sammenlignet.

• HTTP, WAP og MIDLet løsningens alternativer.

ALTERNATIVER TIL SPROG ?

• Opgavens gennemførsel og review heraf

Da det ønskes at MobileSurvey skaber værdi for andre end opgaveafsender og opgavemodtager, er der valgt løsninger som er Open Source baseret. Dette gælder f.eks. værktøjet NetBeans, Apache, MySql og hjemmesiderne wikibooks.org og sourceforge.net. Disse værktøjer kan benyttes frit så længe det endelige produkt overholder GNU, der overordnet set henviser til at kildekoden skal deles og må frit benyttes af alle.

I opgaven blev der benyttet JavaME og NetBeans IDE med NetBeans Mobility Pack. Dette Software Development Kit (SDK) indeholder alle de elementer der er nødvendige for at skabe et komplet mobilprodukt. NetBeans kan kompilere og pakke koden således at den er klar til at blive testet på enhver mobil telefon. Den klarekode kompileres til en java fil der derefter pakkes i en JAR fil. Ud over JAR filen genereres også en JAD fil der fortæller navnet på applikationen, versionen, forfatteren, JAR filens størrelse og JAR filens placering.

Sådan blev applikationen afprøvet:

Da NetBeans komplette SDK indeholder en emulator der kan emulere både MIDL 1.0 og 2.0, samt vise eksempler på hvor store skærme er på angivne mobile enheder, findes denne tilstrækkelig. Applikationen er indstillet til lavest mulige versions krav da dette sikrer den højeste kompatibilitet. Emulatoren virker som en hver anden mobil telefon, der navigerer med piletaster og indtaster data med tastaturet. Den benyttede emulator simulerede en ældre Nokia uden farveskærm. For at kontrollere emulatorens resultater, oplades applikationen direkte til en mobile enhed for derefter at afprøve applikationen. Dette kræver at den mobile enhed kan overføre filer direkte fra PC til enhed. Oftest sker dette via et USB-kabel eller en infrarød port. Når filerne er overført skal de typisk installeres, således at enheden ved hvor den skal henvise til. Såfremt man ikke har mulighed for at overføre filerne traditionelt, er der mulighed for at oploade filerne via FTP og skabe en HTML side med link til JAD filen. Dette vil sikre at enheden kan hente og installere JAR filen korrekt. Dog kræver det at den mobile enhed har adgang til Internettet, men da applikationen kræver dette bør det ikke være en hindring. Her er filerne lagt op http://mobilesurvey.onlineinterview.dk/index.htm (bemærk ikke html)

Sådan blev strømmen målt ved brug af http, WAP og MIDLet.

Multimeter

* Opstilling – diagram * INDSÆT HER *

Parallelt pga. strømforbrug (Amp) Serielt pga. spænding (Volt)

• Konklusion og besvarelse af problemformulering.

Ud fra analyser og data fra målinger, er det bevist at MIDLet er det rigtige valg til MobileSurvey. Det skal dog bemærkes at nyere mobile enheder, bliver mere og mere energi efficiente og bedre til at udnytte netværksforbindelser til Internettet. Dette medfører at HTML løsningen kan bliver mere anvendelig i takt med brugernes krav til fleksibilitet, brugervenlighed og design. MIDLet tilbyder en betydelig større kompatibilitet til ældre mobile enheder, og med mange af de samme fordele som http levere i dag.

• Afslutning og evaluering af projekts gennemførsel

Problemer med Netbeans Da NetBeans giver mulighed for at arbejde flere på samme udviklingsprojekt er den sat op på således at NetBeans danner en server. Dette skaber dog problemer når man flytter fra et netværk til et andet, da IP adressen ændres. NetBeans server IP skal opdateres manuelt, hvilket har givet anledning til flere problemer.

Udvikling på flere platforme Projektet har medvirket udvikling af både WAP og MIDLet programmering. Dette har givet et større indblik i de to sprog og har vist at WAP er mindre problematisk at udvikle i.

Projektet har været en succes der har givet OnlineInterview den grundsten som skal danne fundamentet til et nyt mobilt produkt. MobileSurvey, giver den geografiske uafhængighed som der blev efterlyst og de indsamlede data giver kvalitative informationer nok, til at træffe en beslutning om at arbejde videre med denne beta-version af MobileSurvey. WAP versionen vil ligeledes blive videreudviklet, da OnlineInterview.dk dermed kan tilbyde spørgeskemaer på alle relevante platforme.