30.08.2013 Views

Mobildejting - Kungliga Tekniska högskolan

Mobildejting - Kungliga Tekniska högskolan

Mobildejting - Kungliga Tekniska högskolan

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Mobildejting</strong><br />

NIKLAS PRAGSTENÖ M<br />

och PATRIK RUMIN<br />

Examensarbete<br />

Stockholm, Sverige 2009


<strong>Mobildejting</strong><br />

NIKLAS PRAGSTEN<br />

och PATRIK RUMIN<br />

Examensarbete i datalogi om 15 högskolepoäng<br />

vid Magisterprogrammet i programvaruutveckling<br />

<strong>Kungliga</strong> <strong>Tekniska</strong> Högskolan år 2009<br />

Handledare på CSC var Henrik Eriksson<br />

Examinator var Stefan Arnborg<br />

TRITA-CSC-E 2009:078<br />

ISRN-KTH/CSC/E--09/078--SE<br />

ISSN-1653-5715<br />

<strong>Kungliga</strong> tekniska <strong>högskolan</strong><br />

Skolan för datavetenskap och kommunikation<br />

KTH CSC<br />

100 44 Stockholm<br />

URL: www.csc.kth.se


Sammanfattning<br />

Detta arbete har genomförts med syfte att undersöka vilken metod för trådlös kommunikation som<br />

är mest lämplig att använda för en mobil dejtingapplikation. Dessutom undersöks hur två enheter<br />

kan hitta varandra i ett begränsat rum och upprätta kommunikationskanaler samt om det är möjligt<br />

att genomföra detta genom att bygga en prototyp.<br />

Ett antal krav upprättades på applikationen: Räckvidden ska vara 20m, applikationen ska vara<br />

fristående, skrivet i ett programmeringsspråk som stöds av de flesta mobiltelefoner, kommunikation<br />

ska kunna upprättas samt att det ska vara gratis. De tre tekniker som jämfördes var IrDA,<br />

”Internetalternativ” samt Bluetooth. Av de ställda kraven stödde IrDA 4/5, Internet stödde 3/5 och<br />

Bluetooth nästan 5/5.<br />

Efter att vi granskat undersökningens resultat valdes Bluetooth till att användas vid konstruktionen<br />

av prototypen. Prototypen utvecklades som både klient och server (peer-to-peer) då den måste vara<br />

fristående. Bluetooth visade sig vara en långsam teknik: det tar lång tid att hitta andra enheter. En<br />

annan motgång var att överföringen från ”Sun Wireless Toolkit Emulator” till en riktig mobiltelefon<br />

inte fungerade till fullo.


Mobiledating<br />

Abstract<br />

The purpose of the project has been to investigate which method of wireless communication is more<br />

suitable for a mobile dating application. How two units can find each other in a limited area and<br />

uphold communication channels and finally, to verify whether it is possible or not by building a<br />

prototype.<br />

A number of requirements were established for the application: Range is at least 20m, application<br />

must be autonomous, developed in a widely supported programming language, free communication<br />

must be supported. The three compared methods were IrDA, “Internet alternatives”, and Bluetooth.<br />

Of the listed requirements, IrDA supported 4/5, Internet supported 3/5 and Bluetooth supported<br />

almost 5/5.<br />

After examining the results from the investigation, we chose Bluetooth to be used in the<br />

development of the prototype. The prototype was developed both as server and client (peer-to-peer)<br />

since it has to be independent. This lead to that additional time was consumed because of lack of<br />

experience in the project group. Bluetooth turned out to be a slow technology, it took a long time to<br />

find other units and the transfer from “Sun Wireless Toolkit Emulator” to a real life mobile phone<br />

did not work completely.


Innehållsförteckning<br />

1. Introduktion......................................................................................................................................1<br />

1.1. Scenario för en dejtingapplikation............................................................................................1<br />

1.2. Frågeställning............................................................................................................................1<br />

1.3. Prototyp.....................................................................................................................................1<br />

2. Bakgrund..........................................................................................................................................2<br />

2.1. Olika typer av dejting...............................................................................................................2<br />

2.1.1. Internet/Chat......................................................................................................................2<br />

2.1.2. Teledejting.........................................................................................................................2<br />

2.1.3. SMS...................................................................................................................................2<br />

2.1.4. Speeddejting......................................................................................................................2<br />

2.1.5. ProximityDating................................................................................................................2<br />

2.1.5.1. MeetMoi....................................................................................................................3<br />

2.1.5.2. Mobiluck...................................................................................................................3<br />

2.1.5.3. Speck.........................................................................................................................3<br />

2.1.5.4. BlueDating.................................................................................................................3<br />

3. Val av teknik.....................................................................................................................................4<br />

3.1. Inför val av teknik.....................................................................................................................4<br />

3.2. Krav för val av teknik...............................................................................................................4<br />

3.3. Vilka tekniker finns på dagens mobiltelefoner?........................................................................4<br />

3.4. IrDA..........................................................................................................................................4<br />

3.4.1. Allmänt om IrDA..............................................................................................................5<br />

3.4.2. Upprätta en kommunikationskanal med Java IrDA-API..................................................5<br />

3.5. Internet......................................................................................................................................6<br />

3.5.1. Lokaliseringsalternativ-Java Location API.......................................................................6<br />

3.5.1.1. Lokalisera en enhet....................................................................................................6<br />

3.5.1.2. Lokaliseringssätt........................................................................................................6<br />

3.5.2. Upprätta kommunikationskanal........................................................................................7<br />

3.5.3. Fristående applikationer....................................................................................................7<br />

3.6. Bluetooth...................................................................................................................................7<br />

3.6.1. Allmänt om Bluetooth.......................................................................................................8<br />

3.6.2. Lokalisering av andra enheter...........................................................................................8<br />

3.6.3. Profiler..............................................................................................................................8<br />

3.6.4. Räckvidd...........................................................................................................................9<br />

3.7. Sammanfattning av teknisk undersökning................................................................................9<br />

3.7.1. Räckvidd...........................................................................................................................9<br />

3.7.2. Fristående applikation.......................................................................................................9<br />

3.7.3. Programmeringsspråk för applikationen...........................................................................9<br />

3.7.4. Kommunikationskanaler.................................................................................................10<br />

3.7.5. Gratis kommunikationen.................................................................................................10<br />

4. Applikationen..................................................................................................................................11<br />

4.1. Målet med applikationen.........................................................................................................11<br />

4.2. Beskrivning av klasser............................................................................................................11<br />

4.3. Så fungerar vår applikation ”FTW-Dating”............................................................................12<br />

4.4. Problem...................................................................................................................................15<br />

4.4.1. Extra API.........................................................................................................................15<br />

4.4.2. Anslutna enheter..............................................................................................................15<br />

4.4.3. Långsam teknik...............................................................................................................15<br />

4.4.4. Server/Klient...................................................................................................................16


4.4.5. En sluten testmiljö...........................................................................................................16<br />

5. Slutsats och diskussion...................................................................................................................17<br />

6. Referenser.......................................................................................................................................18<br />

6.1. IrDA........................................................................................................................................18<br />

6.2. Internet....................................................................................................................................18<br />

6.3. Bluetooth.................................................................................................................................18<br />

6.4. Övrigt......................................................................................................................................19<br />

6.5. Litteratur.................................................................................................................................20


1. Introduktion<br />

Sedan Internet blivit tillgängligt för allmänheten på bred front har människor börjat söka kontakt<br />

med varandra på sätt som tidigare inte varit möjligt. Mobiltelefoner har funnits en längre tid men är<br />

fortfarande ett outvecklat område för kontaktsökande mellan människor.<br />

”Applikationer för mobiltelefoner” är ett spännande, nytt och ganska outvecklat område som inte<br />

riktigt har slagit igenom. För de som vill vara med i utvecklingens framkant finns det alla<br />

möjligheter, framför allt då det med Javas ”Java ME” (Java Micro Edition) har blivit enklare att<br />

utveckla applikationer som kan få en bredare spridning iom att det är plattformsoberoende. Syftet<br />

med detta arbete är att se om det går att skapa en applikation som kan kommunicera med andra<br />

enheter inom ett begränsat område.<br />

1.1. Scenario för en dejtingapplikation<br />

Gösta befinner sig på KTH i matsalen och äter sin lunch, plötsligt ger hans mobiltelefon ifrån sig en<br />

signal. Någon person som matchar hans sökprofil befinner sig i närheten. Samtidigt har Sara slagit<br />

sig ner två bord bort, hon hinner inte mer än sätta sig ner innan hennes mobiltelefon ger ifrån sig en<br />

signal. Båda försöker diskret lokalisera vem som är deras ”match”.<br />

1.2. Frågeställning<br />

Frågeställningen för detta arbete kan sammanfattas enligt följande: ”Hur kan två mobiltelefoner<br />

hitta varandra i ett begränsat rum och upprätta kommunikation?”, ”Vilken är den bästa tekniken för<br />

att lösa problemet?” samt ”Hur ska en prototyp se ut med detta val av teknik?”<br />

1.3. Prototyp<br />

En prototyp kommer att skapas för att förverkliga iden och valet av teknik. Applikationen kommer<br />

skrivas i ett programmeringsspråk som möjliggör en så stor spridning som möjligt bland de<br />

mobiltelefoner som finns idag. En central fråga är om det över huvud taget är möjligt med dagens<br />

kommunikationstekniker att ha vetskap om vilka andra mobila enheter som finns ens närhet.<br />

För att kunna skapa en prototyp krävs det att vi sätter oss in i de tekniker som är möjliga att<br />

använda i vårt fall. Därefter krävs en fördjupning i den teknik som sedan kommer att användas.<br />

1


2. Bakgrund<br />

2.1. Olika typer av dejting<br />

Att dejta via Internet har blivit mer vanligt de senaste åren och det finns ett antal webbsajter som<br />

tillhandahåller denna typ av tjänster. Att dejta via mobiltelefon är inte alls lika vanligt, men det finns<br />

möjligheter för dem som är intresserade. När det gäller dejting med mobiltelefoner finns det olika<br />

typer som en person kan använda sig av, t.ex ”ProximityDating”, SMS, teledejting, chat (MSN)<br />

mm. Se nedan för en genomgång av olika dejtingmöjligheter för mobiltelefoner. Denna genomgång<br />

ska inte ses som fullständig utan ger bara ett smakprov på vad som finns.<br />

2.1.1. Internet/Chat<br />

En väl spridd chatapplikation är MSN som även finns för mobiltelefoner 1 . Andra applikationer är<br />

t.ex Yahoo 2 och Skype. Vissa av dessa är textbaserade och andra fungerar med hjälp av bild och<br />

ljud. Vanliga dejtwebbsajter som Mötesplatsen.se och spraydejt går också att använda/surfa till från<br />

mobiltelefoner. Mobilove 3 och Zogo 4 är webbsajter som är specialiserade för mobiltelfoner.<br />

2.1.2. Teledejting<br />

En äldre typ av dejting som använder sig av vanlig telefon. Personer ringer in till t.ex ett telefoncafé<br />

och har möjlighet att prata med andra människor.<br />

2.1.3. SMS<br />

Dejtingteknik som fungerar genom att man skickar SMS. Ex SMSDejt.se 5 . Vissa dejtingwebbsajter<br />

på Internet använder sig av SMS-teknik för att informera sina användare t.ex om att nya<br />

meddelanden har inkommit till deras profil. Vid tillfällen när SMS används kan det uppstå en<br />

kostnad för varje skickat SMS.<br />

2.1.4. Speeddejting<br />

Spray mobil speeddejting 6 ; Användarna använder sig av<br />

videotelefoni och kan befinna sig varsomhelst i Sverige och dejta<br />

upp till fem personer på tio minuter.<br />

2.1.5. ProximityDating<br />

Begreppet ”Proximity Dating” direkt översatt på svenska blir<br />

närhetsdejting. (Se bild 1) Tekniken används för det mesta på<br />

mobiltelefoner där en applikation körs som har din profil lagrad<br />

med egenskaper som hårfärg, intressen, musiksmak mm.<br />

Bild 1. "Proximity dating" -<br />

Applikationen använder sig sedan av någon sorts teknik,<br />

www.news.com.au<br />

lokaliseringsmetod, för att känna av var mobiltelefonen befinner sig i<br />

1 http://info.mobile.msn.com/en-us/default.aspx<br />

2 http://mobile.yahoo.com/<br />

3 http://pluto3.plutolife.com/match3/wap?x=ret&k=matchse&s=keep&iplidred=1320382<br />

4 http://www.zogo.com/splash.php<br />

5 http://www.smsdejt.se/<br />

6 http://www.newsdesk.se/pressroom/spray/pressrelease/view/154600<br />

2


förhållande till andra mobiltelefoner t.ex. bluetooth, telefonmaster eller IR. Genom att veta dess<br />

position i förhållande till andra mobiltelefoner kan applikationen ge utslag då den kommer<br />

tillräckligt nära en annan mobiltelefon med samma applikation och en matchande profil.<br />

Med dagens snabba utveckling av allt mer kraftfulla mobiltelefoner med tekniker som GPS kommer<br />

med största sannolikhet ”Proximity Dating” öka i omfattning. I USA maj 2007 använde sig så<br />

många som 3,6 miljoner människor av ”Proximity Dating” 7 .<br />

2.1.5.1. MeetMoi<br />

Steg 1. Konfigurera din dejtingprofil. Medan du förflyttar dig runt uppdaterar MeetMoi ständigt din<br />

geografiska position. Du bestämmer vad för information användare ska se och vilka som ska se den.<br />

Steg 2. Var du än befinner dig söker MeetMoi efter matchande profiler. När någon som matchar dig<br />

befinner sig i närheten ger din telefon ifrån sig en signal. Ta fram din ”träff” i din mobiltelefon för<br />

att se personens bild och profil. Steg 3. När du får kontakt med någon du fattar tycke för kan du<br />

skicka ett meddelande, en blink, ett email eller bestämma var ni ska träffas på riktigt.<br />

MeetMoi använder sig av en lokaliseringsmetod som heter ”Xtify” för att mobilen ska kunna<br />

fastställa sin position.<br />

Xtify är en lokaliseringsapplikation som fungerar på mobiltelefoner. Den använder sig av GPS eller<br />

trianguleringsmetoder för att bestämma lokalisering. Denna information kan sedan användas av<br />

externa webbsidor för applikationsspecifik funktionalitet. 8<br />

2.1.5.2. Mobiluck<br />

En mobil webbsida där användaren skapar en profil och kan prata med andra användare. Det går att<br />

se vilka personer som finns i närheten via en inbyggd<br />

lokaliseringstjänst och användaren kan välja att skicka<br />

meddelanden till dessa.<br />

2.1.5.3. Speck<br />

Speck 9 är en egen enhet, ingen mobiltelefon, och<br />

använder sig av Bluetooth för att kommunicera med<br />

andra användare. (Se bild 2)<br />

2.1.5.4. BlueDating<br />

En Java-utvecklad dejtingapplikation 10 från ”BlueStar<br />

projekt” där användaren skapar en profil för sig själv<br />

samt en för de kriterier som söks. Denna applikation är<br />

dock inte möjlig att ladda ner i dagsläget.<br />

7 http://www.theglobeandmail.com/servlet/story/RTGAM.20070711.wgtcelldate11/BNStory/PersonalTech/home,<br />

”Love is just a cellphone call away”<br />

8 http://www.xtify.com/support/guide<br />

9 http://speck.randomfoo.net/<br />

10 http://www.csg.ethz.ch/research/projects/Blue_star<br />

3<br />

Bild 2. Speck speck.randomfoo.net/design.html


3. Val av teknik<br />

3.1. Inför val av teknik<br />

I denna undersökning har avsikten inte varit att göra en fullständig undersökning av olika tekniker,<br />

utan inriktningen har legat på att se om dessa tekniker uppfyller de krav som har ställts på<br />

applikationen. Med en kravlista för applikationen går det att få fram vilken teknik som passar bäst i<br />

just detta fall.<br />

3.2. Krav för val av teknik<br />

1. Räckvidd 1-20 meter.<br />

2. Applikationen ska var fristående, inte vara beroende av en central server.<br />

3. Applikationen ska vara skriven i ett programmeringsspråk som stöds av de flesta<br />

mobiltelefoner.<br />

4. En kommunikationskanal ska kunna upprättas och data ska kunna skickas mellan två mobila<br />

enheter.<br />

5. Kommunikationen emellan användarna ska vara gratis, dvs inga ytterligare kostnader ska<br />

tillkomma vid användandet.<br />

3.3. Vilka tekniker finns på dagens mobiltelefoner?<br />

Efter en genomgång av de mobiltelefoner som finns på marknaden i dagsläget har det visat sig att<br />

de i vårt fall aktuella tekniker som används är följande:<br />

• WLAN<br />

• Webbläsare<br />

• IrDA<br />

• Bluetooth<br />

• SMS/MMS<br />

• GPS<br />

Dessa kan delas upp i 3st huvudkategorier: Bluetooth, IrDA och Internet (resten).<br />

3.4. IrDA<br />

1. FALSKT: Räckvidden för IrDA är extremt kort, fungerar som bäst på 5-60cm avstånd.<br />

2. SANT: IrDA är inte beroende av någon central server, de enskilda IrDA-enheterna fungerar<br />

som fristående enheter.<br />

3. SANT: Det finns ett antal API:er för IrDA, bl a har HP skapat ett eget API i Java.<br />

4. SANT: Det fungerar bra med IrDA att upprätta en kommunikationskanal emellan två<br />

enheter.<br />

5. SANT: IrDA är helt gratis att använda.<br />

4


3.4.1. Allmänt om IrDA<br />

IrDA kommunicerar genom att skicka ut pulser ur IrDA-fönstret, enheterna ska ligga mellan 5-<br />

60cm från varandra och vinkeln mellan enheterna får inte överstiga 15°. Detta medför att<br />

användningsområdet för IrDA blir väldigt begränsat. IrDA begränsas även då endast en enhet kan<br />

vara kopplad till en annan, tekniken har inte möjlighet att ”broadcasta” information 11 .<br />

IrDA kan hittas på många olika sorts apparater som mobiltelefoner, usb-adaptrar, seriell-adaptrar,<br />

även på en del moderkort samt skrivare så finns det integrerade IrDA-fönster 12 . (Se bild 3)<br />

IrDA tekniken utvecklas inte i lika stor utsträckning nu<br />

för tiden men det finns fortfarande många saker som gör<br />

det till en bra och användbar teknik:<br />

• Det är en väldigt billig teknik, komponenterna<br />

som du behöver för att bygga IrDA apparaterna<br />

kostar i stort sett ingenting.<br />

• IrDA är snabbt, tekniken stödjer<br />

överföringshastigheter upp till 16Mbit/s.<br />

• Tekniken är väldigt billig även från<br />

energisynpunkt, det är en minimal mängd energi<br />

som krävs för att använda tekniken.<br />

Det finns fyra olika tekniker beroende på vilken hastighet data skickas över irDA 13 . SIR (Serial<br />

Infrared) 9600 bit/s. MIR (Medium Infrared) 0.576 Mbit/s och 1.152 Mbit/s. FIR (Fast Infrared) 4<br />

Mbit/s. VFIR (Very Fast Infrared) 16 Mbit/s. UFIR (Ultra Fast Infrared) upp till 100Mbit/s.<br />

3.4.2. Upprätta en kommunikationskanal med Java IrDA-API<br />

Koden nedan är endast en sammanställning över de mest centrala funktionsanropen samt<br />

semantiken för att upprätta kommunikationskanaler med Java IrDA-API.<br />

Serversidan: En IrSocket skapas, ”MyServer”, denna väntar sedan på anslutande klienter. När en<br />

klient ansluter skapas kommunikationskanaler till klienten.<br />

IrServerSocket server = new IrServerSocket("MyServer");<br />

IrSocket sock = server.accept();<br />

DataInputStream in = new DataInputStream(sock.getInputStream());<br />

PrintStream pout = new PrintStream(sock.getOutputStream());<br />

Clientsidan: En IrSocket skapas mot Servern. Med hjälp av den skapade IrSocket kan<br />

kommunikationskanaler skapas till servern.<br />

IrSocket client= new IrSocket("ANY","MyServer");<br />

DataInputStream in = new DataInputStream(client.getInputStream());<br />

11 http://www.irda.org/displaycommon.cfm?an=1&subarticlenbr=14<br />

12 http://www.irda.org/displaycommon.cfm?an=1&subarticlenbr=22<br />

13 http://www.irda.org/displaycommon.cfm?an=1&subarticlenbr=69<br />

5<br />

Bild 3. IrDA användning www.usbgear.net


PrintStream pout = new PrintStream(client.getOutputStream());<br />

Koden ovan är lik en vanlig JavaSocket-uppkoppling.<br />

3.5. Internet<br />

1. SANT: Räckvidd – Med GPS uppfylls räckviddskravet. Med andra tekniker uppfylls inte 1-<br />

20m gränsen.<br />

2. FALSKT: Applikationen är inte fristående från en server.<br />

3. SANT: Applikationen kan skrivs i Java.<br />

4. SANT: Det går att upprätta en kommunikationskanal mellan två enheter via en server.<br />

5. FALSKT: Kommunikationen är inte gratis. Det kostar pengar att skicka data, antingen per<br />

minut, per mängd data som skickas eller vid tecknande av ev abonnemang.<br />

3.5.1. Lokaliseringsalternativ-Java Location API<br />

Med hjälp av ett bibliotek, Java Location API 14 , går det att få fram information om var en enhet<br />

befinner sig. Noggrannheten beror på vilken typ av lokaliseringsteknik som används.<br />

3.5.1.1. Lokalisera en enhet<br />

För att kunna använda Location API krävs det en representation för själva lokaliseringsmodulen,<br />

t.ex GPS-modulen. Denna representation är en instans av ”LocationProvider”. Som argument vid<br />

skapandet av instansen ges ett ”Criteria-objekt” som definierar vilkor för vilken lokaliseringsmodul<br />

som kan accepteras. Det är Location API-implementationen själv som väljer den<br />

”LocationProvider” som passar bäst in beroende på de villkor som är specificerade.<br />

För att få fram koordinater för enhetens position skapas sedan ett ”Location-objekt” och genom det<br />

objektet kan koordinaterna nås. Se kodrader nedan för exempel...<br />

Criteria criteria = new Criteria();<br />

criteria.setHorizontalAccuracy(25); // 25m noggranhet<br />

LocationProvider provider = LocationProvider.getInstance(criteria)<br />

Location location = provider.getLocation(60); //Var 60 sek<br />

Coordinates coord = location.getQualifiedCoordinates();<br />

double latitud = coord.getLatitude();<br />

double longitud = coord.getLongitude();<br />

3.5.1.2. Lokaliseringssätt<br />

GPS 15 ger en korrekt position men det kan även fungera med andra lokaliseringsmetoder som GSM<br />

nätbaserade 16 , t.ex cell-identifiering +- ca 75-200 m beroende på diverse yttre omständigheter, eller<br />

14 http://jcp.org/aboutJava/communityprocess/final/jsr179/index.html<br />

15 http://gge.unb.ca/Resources/HowDoesGPSWork.html<br />

16 http://www.cs.toronto.edu/~walex/papers/are_gsm_phones_the_solution_for_localization_wmcsa2006.pdf<br />

6


speciella applikationer, t.ex Xtify 17 .<br />

3.5.2. Upprätta kommunikationskanal<br />

I Java ME går det att upprätta en kommunikationskanal med hjälp av ”SocketConnection”. En<br />

klients anslutning till en server sker med hjälp av metoden ”Connector.open()” som returnerar en<br />

”Socket”. Från denna ”Socket” går det sedan att skapa kommunikationskanaler.<br />

Socket socket = (SocketConnection)Connector.open("socket://www.xyz.com:8314);<br />

InputStreamReader is = new InputStreamReader(socket.openInputStream());<br />

PrintStream ps = new PrintStream(socket.openOutputStream());<br />

Servern väntar på anslutande klienter och när en klient är ansluten returneras klientens ”Socket” och<br />

kommunikationskanalerna kan upprättas.<br />

Socket clientSocket = serverSocket.accept();<br />

PrintWriter pw = new PrintWriter(clientSocket.getOutputStream());<br />

InputStreamReader is = new InputStreamReader(clientSocket.getInputStream());<br />

När detta är gjort kan servern och klienten kommunicera med varandra. Då flera klienter är anslutna<br />

till servern kan klienterna med serverns hjälp kommunicera med varandra.<br />

3.5.3. Fristående applikationer<br />

Klienterna kan inte upptäcka varandra utan en servers hjälp. Klienterna måste meddela servern sin<br />

position med jämna intervall och när servern upptäcker att två klienter är ”tillräckligt” nära varandra<br />

så meddelar servern dessa klienter om detta. Om de sedan vill starta en kommunikation gör de det<br />

med serverns hjälp. Servern har således en väldigt central roll. Först håller servern reda på var alla<br />

användare befinner sig och om de är tillräckligt nära varandra, sedan sköter serven även<br />

kommunikationen klienterna emellan.<br />

3.6. Bluetooth<br />

1. Delvis SANT: Bluetooth klass 2 klarar av att sända ca tio meter. Bluetooth klass 1 har en<br />

räckvidd runt hundra meter men den används inte på mobiltelefoner.<br />

2. SANT: En central server är inte nödvändig när du använder dig av Bluetooth,<br />

applikationerna kan hitta och kommunicera direkt med varandra.<br />

3. SANT: Det finns ett Bluetooth-API till J2ME.<br />

4. SANT: Bluetoothapplikationer kan hitta varandra och att sedan upprätta en<br />

kommunikationskanal för att sända data till andra enheter.<br />

5. SANT: Informationen som skickas mellan bluetoothapplikationer är helt gratis då de<br />

använder sig av radiovågor.<br />

17 http://www.xtify.com<br />

7


3.6.1. Allmänt om Bluetooth<br />

Bluetooth designades för användning med låg<br />

energiförbrukning. När enheter som kommunicerar<br />

genom Bluetooth länkas samman använder de<br />

samma radiokanal där deras interna klockor<br />

”synkas” samman för att följa samma<br />

frekvensmönster 18 . Detta mönster ger säkerhet samt<br />

en stabilare signal då många andra radiovågor kan<br />

vara i närheten. I och med att Bluetooth använder<br />

sig av radiovågor så behöver man inte ha fri sikt för<br />

att upprätta en länk, radiovågorna kan ta sig igenom<br />

diverse hinder.<br />

Den kategori enheter som använder sig av Bluetooth<br />

Bild 4. Bluetooth användning www.bluetooth.com<br />

har i många fall tidigare använts sig av IrDA, t.ex<br />

mobiltelefoner. (Se bild 4)<br />

3.6.2. Lokalisering av andra enheter<br />

Med hjälp av Java Bluetooth API går det att använda sig av bluetoothfunktionen på sin mobil. För<br />

att hitta andra enheter använder bluetoothenheter sig av en procedur som kallas ”inquire<br />

procedure”. Enheterna skickar ut förfrågan till andra enheter och väntar på att någon/några ska<br />

svara. Enheter som är anslutna bildar ett ”piconet” och upp till åtta enheter kan vara anslutna till ett<br />

”piconet”. I ett sådant nät finns det en ”master” och upp till sju ”slave”. En enhet kan vara ansluten<br />

till flera ”piconet”.<br />

För att kommunicera med den lokala ”bluetoothstacken” (bluetooth-nätverksnivåerna på telefonen)<br />

krävs en instans av ”localDevice”. För att hitta andra enheter behövs en ”discoveryAgent”. Denna<br />

används senare till att starta ”inquire procedure”. Sökningen startas med metoden ”startInquiry()”,<br />

som argument finns en lyssnare, ”DiscoveryListener”. När en enhet hittas anropas en metod i<br />

lyssnarklassen, ”deviceDiscovered”. I detta läge finns en referens till en annan enhet,<br />

”RemoteDevice”, och applikationen kan fortsätta 19 .<br />

DiscoveryAgent myDa = LocalDevice.getInstance().getDiscoveryAgent();<br />

myDa.startInquiry(int accessCode, DiscoveryListener listener);<br />

// Inuti Lyssnarklassen<br />

deviceDiscovered(RemoteDevice rmDevice, DeviceClass cod);<br />

När Java Bluetooth API används jobbar man på en högre abstraktionsnivå och behöver inte veta hur<br />

det fungerar under huven med olika nätverksnivåer, piconet (master, slave mm). Utvecklaren<br />

behöver endast känna till API:et.<br />

3.6.3. Profiler<br />

Alla bluetoothenheter har ett antal profiler som beskriver vad enheten stödjer för funktioner . t.ex<br />

18 http://www.bluetooth.com/Bluetooth/Technology/Works/Overview_of_Operation.htm<br />

19 http://developers.sun.com/mobility/apis/articles/bluetoothcore/index.html<br />

8


för att ”streama” musik mellan olika enheter så behövs profilen ”Advanced Audio Distribution<br />

Profile” (A2DP), för att skicka bilder mellan enheter behövs ”Basic Imaging Profile” (BIP). Det<br />

finns ett stort antal profiler och enheter kan välja att använda sig av flera. Alla enheter måste dock<br />

stödja profilen ”Generic Access Profile” och ”Service Discovery Application Profile” 20 .<br />

3.6.4. Räckvidd<br />

Standardräckvidden 21 för Bluetooth är runt 10m (klass2), men det finns även en mer kraftfull variant<br />

som har en räckvidd på upp till 100m (klass1).<br />

3.7. Sammanfattning av teknisk undersökning<br />

Nedan följer en sammanfattning av hur väl de olika teknikerna uppfyller de krav som finns på<br />

applikationen.<br />

3.7.1. Räckvidd<br />

Angående räckvidden så har IrDA ca en meter. Internet med GPS klarar räckvidden 1-20 meter.<br />

Bluetooth klass 2 har en räckvidd av ca tio meter. IrDA:s dåliga räckvidd medför i princip att två<br />

personer måste stå bredvid varandra, de två enheterna måste vara riktade mot varandra och de<br />

måste ha fri sikt. Detta medför att det inte är ett fungerande alternativ för vår applikation.<br />

Internet med användandet av GPS fungerar för de krav vi ställt, andra lokaliseringshjälpmedel når<br />

inte upp till de krav vi ställt för vår applikation.<br />

Bluetooth når på mobiltelefoner ungefär tio meter.<br />

Det bästa alternativet är Bluetooth, även om det inte stödjer kravet till fullo på räckvidd 20 meter<br />

så klarar det ca tio meter. Bluetooth är också bra då det inte behöver fri sikt för att kommunicera.<br />

3.7.2. Fristående applikation<br />

IrDA klarar kravet på att inte använda sig av en central server då kommunikationen sker direkt<br />

mellan de olika enheterna med hjälp av ServerSocket-teknologi.<br />

Vid användande av Internet måste kommunikationen ske via en server, enheter kan inte själva hitta<br />

varandra.<br />

Bluetooth klarar också kravet att inte använda sig av en central server då den liksom IrDA<br />

kommunicerar direkt emellan enheter<br />

Både IrDA och Bluetooth uppfyller kravet, dock inte Internet.<br />

3.7.3. Programmeringsspråk för applikationen<br />

IrDA fungerar bra att skriva i Java då det finns bibliotek, t.ex ”Java Infrared Socket API”, som<br />

används när enheter ska kommunicera.<br />

Internet går bra att skriva i Java, här används ”Java Location API” för att positionering av enheter.<br />

Det går att använda Java med Bluetooth, t.ex ”Java Bluetooth API”, för att hitta och kommunicera<br />

med andra enheter.<br />

För alla de tekniker som undersökts finns möjligheten att jobba i Java, vilket stöds av de flesta<br />

20 Beginning J2ME Platform, from novice to professional, sid 199<br />

21 http://www.bluetooth.com/Bluetooth/Technology/Works/Architecture__Radio.htm<br />

9


moderna mobiltelefoner. Beroende på val av teknik så används olika API:er.<br />

3.7.4. Kommunikationskanaler<br />

IrDA fungerar bra för att skapa en anslutning med hjälp av sockets direkt emellan två enheter.<br />

Internet fungerar för att skapa kommunikationskanaler men de måste gå via en server, de kan inte<br />

kommunicera direkt emellan enheterna.<br />

Bluetooth kan hitta och upprätta en anslutning till andra närliggande bluetoothenheter.<br />

Alla tre tekniker uppfyller detta krav.<br />

3.7.5. Gratis kommunikationen<br />

IrDA är helt gratis då det kommunicerar genom ir-pulser som går direkt mellan enheterna.<br />

För Internet gäller att du måste betala för din skickade och mottagna information, per minut du är<br />

uppkopplad, per mängd data som du skickar eller vid tecknande av ev abonnemang. Detta då<br />

telenätet används för att ansluta till Internet.<br />

Bluetooth använder sig av radiovågor för att skicka information emellan enheter, detta är helt gratis.<br />

Endast IrDA och Bluetooth är helt gratis och uppfyller kravet för applikationen. Internet är inte<br />

gratis.<br />

10


4. Applikationen<br />

4.1. Målet med applikationen<br />

• Applikationen ska vara lätt att använda utan omfattande utbildning.<br />

• En profil ska kunna sparas lokalt på mobiltelefonen.<br />

• Applikationen ska känna av andra aktiva applikationer i närheten.<br />

• Om din profil överensstämmer med andra användares profiler så ska ni kunna se och<br />

interagera med varandra; om ni inte matchar ska ni inte märka av varandra.<br />

• Det ska gå att föra konversationer med andra användare av applikationen.<br />

Gällande säkerheten för applikationen har den inte för avsikt att ta hänsyn till säker kommunikation<br />

mellan användare eller ev intrång. Bluetooth har inbyggd säkerhet mot intrång och det är endast<br />

detta som applikationen använder sig av.<br />

4.2. Beskrivning av klasser<br />

I bilden (se bild 5) så visas en klassuppbyggnad och struktur över applikationen. Nedan följer en<br />

kort beskrivning av de olika klasser som används, vad de har för uppgift samt vad för förhållande<br />

de har till varandra.<br />

Bild 5. Klassdiagram<br />

Den mest centrala och styrande klassen i vår applikation är BTController, det är den som är<br />

kopplingen emellan logiken och gränssnittet (BT_GUI). BT_GUI innehåller det grafiska i<br />

applikationen och använder sig av klassen Profile vilket även BTController gör. Profile innehåller<br />

användarens profil, vilken används vid ”matchning” emot andra användare.<br />

11


UpdateMain är en hjälpklass till BT_GUI och används till att uppdatera det grafiska gränssnittet.<br />

Storage innehåller logiken för att spara ner profiler lokalt på användarens mobiltelefon och används<br />

av BTController.<br />

DeviceManager innehåller logiken för att hitta närliggande fysiska bluetoothenheter samt ärver av<br />

gränssnittet DisvoveryListener. Används av BTController.<br />

ServiceServer innehåller logiken för att lyssna efter klienter som vill ansluta till servern, skapar<br />

uppkopplingsobjekt (Connections) samt ärver av gränssnittet ServiceManager. Används av<br />

BTController.<br />

ServiceClient innehåller logiken för att hitta applikationen (”services”) på enheter som tidigare<br />

hittats i DeviceManager, skapar uppkopplingsobjekt (Connections) samt ärver av gränssnitten<br />

ServiceManager och DiscoveryListener. Används av BTController.<br />

DiscoveryListener innehåller lyssnarfunktioner.<br />

Connections är uppkopplingsobjekt som kommunicerar med andra Connections.<br />

Klasserna Connections, ServerClient, ServiceServer, DeviceManager och UpdateMain är alla<br />

trådar. När applikationen är igång så körs ett minimum av 5 trådar plus en tråd för varje<br />

uppkoppling emot andra användare. Detta möjliggör ett grafiskt gränssnitt som inte låser sig i<br />

väntan på logiken bakom samt en uppdaterad och aktuell lista av enheter i närheten.<br />

4.3. Så fungerar vår applikation ”FTW-Dating”<br />

1.Vid start av applikationen så kommer du till<br />

första sidan (se bild 6) som välkomnar dig samt<br />

hänvisar dig till skapandet av din profil. Här<br />

kan du välja att skapa en profil, läsa hjälpdelen<br />

eller stänga ner applikationen. Var du än<br />

befinner dig i applikationen så kommer du<br />

alltid ha valet att gå till hjälp eller att stänga ner<br />

applikationen.<br />

12<br />

Bild 6. Startsida


2.Om du valt att skapa en ny profil (se bild 7)<br />

så kommer du till den här sidan, här fyller du i<br />

de kriterier som andra jämför sig med. Du<br />

fyller i din ålder, kön, hårfärg mm. Här kan du<br />

välja att gå till nästa sida eller att gå tillbaka till<br />

startsidan.<br />

3.Om du valt att gå till nästa sida (se bild 8)<br />

kommer du hit där du fyller i vilka kriterier du<br />

söker. Här kan du välja att spara din profil eller<br />

att backa och göra diverse ändringar.<br />

4.Om du valt att spara din profil så kommer du<br />

tillbaka till startsidan (se bild 9), här uppmanas<br />

du att antingen börja dejta eller att redigera din<br />

profil. Om du nu väljer att stänga ner<br />

applikationen för att senare starta upp den igen<br />

kommer profilen du tidigare sparat laddas upp<br />

så att du inte behöver fylla i den igen.<br />

13<br />

Bild 7. Skapa profil<br />

Bild 8. Skapa profil<br />

Bild 9. Startsida


5.Om du valt att börja dejta kommer du hit (se<br />

bild 10), till den interaktiva delen av<br />

applikationen. Här listas alla matchande<br />

personer i närheten som använder sig av FTW-<br />

Dating. Här kan du välja att skicka ett<br />

meddelande till någon användare eller att<br />

redigera din profil.<br />

6.Om du vill skicka ett meddelande till en<br />

annan användare skriver du in ditt meddelande<br />

i textfältet märkt ”Your message” (se bild 11),<br />

sedan väljer du vilken användare du vill skicka<br />

till och väljer ”Send”.<br />

14<br />

Bild 10. Sida för kommunikation<br />

Bild 11. Sida för kommunikation


7.Om du någon gång har valt att gå till<br />

hjälpdelen av applikationen är det så här den<br />

ser ut. (Se bild 12) Här ges förklaringar på hur<br />

du använder de olika delarna av applikationen.<br />

4.4. Problem<br />

4.4.1. Extra API<br />

För att uppnå målen med applikationen var vi tvungna att använda oss av extra Java API,<br />

javax.bluetooth API. Tidigare erfarenhet av Bluetooth API saknades helt i projektgruppen och<br />

information om hur det används finns bl a på Suns webbsida 22 .<br />

För att komma igång med Bluetooth API:et krävdes en del studier samt att det behövdes en ganska<br />

omfattande struktur innan det var möjligt att testa specifika funktioner. Detta kan liknas med ett<br />

pussel som man inte kan se om det är rätt utfört förrän sista biten är lagd och om det är något som<br />

inte stämmer så kan det vara tungt att felsöka.<br />

4.4.2. Anslutna enheter<br />

Ett problem vi brottades med under programmeringen var att hålla den lista som var fylld med<br />

anslutna enheter uppdaterad och endast innehållande vital information. Det gick åt mycket tid till att<br />

redigera denna lista då sökningen av nya enheter ständigt gav upphov till dubbletter. Det faktum att<br />

varje enskild applikation fungerade både som server samt klient gjorde att dubbla uppkopplingar<br />

skapades mellan två applikationer. Detta problem löstes genom jämförelse av bluetoothadresser.<br />

4.4.3. Långsam teknik<br />

Faktum, snarare än ett problem, är att Bluetooth inte är någon speciellt snabb teknik 23 . Det tog runt<br />

10 sekunder från att en användare valde att ”starta” till att användaren hittades av andra användare<br />

och dök upp på deras skärm. Bara att söka efter närliggande bluetoothenheter tog uppåt 6-7<br />

sekunder, ovanpå detta ska man sedan söka efter applikationen (”service”) på de funna<br />

bluetoothenheterna.<br />

Nedan är den kod som letar efter bluetoothenheter rent fysiskt, först den funktion (startInquiry) som<br />

startar sökningen och sedan den funktion (deviceDiscovered) som anropas när en bluetoothenhet<br />

hittas och sist den funktion (inquiryCompleted) som anropas när sökningen är klar.<br />

22 http://developers.sun.com/mobility/apis/articles/bluetoothintro/index.html<br />

23 Beginning J2ME Platform, from novice to professional, sid 202<br />

15<br />

Bild 12. Hjälpsida


inquiryStarted = discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this)<br />

public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod)<br />

public void inquiryCompleted(int discType)<br />

För att hitta en applikation (”service”) använder vi oss av följande kodrader. Funktionen<br />

(searchServices) som startar sökningen med parametrar för bl a vilken applikation som den ska leta<br />

efter (uuidList), samt den funktion (servicesDiscovered) som anropas när en service hittas.<br />

transID = discoveryAgent.searchServices(null,uuidList, remoteDevice, this)<br />

public void servicesDiscovered(int transID, ServiceRecord[] servRecord)<br />

4.4.4. Server/Klient<br />

Det största och svåraste hindret vi har kämpat med under programmeringen av vår applikation var<br />

det faktum att applikationen ska vara helt fristående. Detta medförde att applikationen var tvungen<br />

att agera både som server och klient. Detta har varit ett svårt koncept att komma till rätta med då vi<br />

saknar erfarenhet inom det området (”peer-to-peer”). Vi har till sist löst det på det sätt som vi har<br />

ansett vara det mest effektiva, dock har slutresultat säkert kunnat sett ut på flera olika sätt.<br />

4.4.5. En sluten testmiljö<br />

Ett tråkigt problem vi stötte på när vi började närma oss slutet av programmerandet av vår<br />

applikation var att det fungerade endast i ”Sun Wireless Toolkit Emulator”. Vi prövade det åtskilliga<br />

gånger på olika Javastödjande mobiltelefoner, vi fick gränssnittet att fungera samt sparandet av<br />

profiler men bluetoothdelen av applikationen fungerade inte.<br />

16


5. Slutsats och diskussion<br />

Efter undersökningen av tre metoder så har det visat sig att en är bättre än de andra. Bluetooth<br />

passar bäst för val av teknik till applikationen. Bluetooth har uppfyllt flest krav av de som ställts,<br />

även om den inte har uppfyllt alla krav till fullo så är Bluetooth det bästa valet.<br />

Gällande frågeställningen om två enheter kan hitta varandra i ett begränsat rum så har alla av de<br />

undersökta tekniker mer eller mindre uppfyllt detta krav. IrDA är den teknik som är minst praktisk<br />

tilllämpningsbar då det krävs fri sikt samt att avståndet ej får överskrida 1 meter. Med hjälp av GPS<br />

fungerar Internet tillförlitligt och är ett alternativ för valet av teknik.<br />

Angående frågeställningen om att kunna upprätta en kommunikation mellan enheter så klarar alla<br />

tekniker av det, dock kan IrDA bara kopplas till en annan enhet, en enhet kan alltså inte<br />

kommunicera med flera enheter samtidigt. Både med Bluetooth och Internet går det att upprätta<br />

kommunikationskanaler mellan flera andra enheter.<br />

Ett krav för applikationen var att den skulle skrivas i ett programmeringsspråk som stöddes av de<br />

flesta moderna mobiltelefoner. Det visade sig att alla tre tekniker hade möjlighet att skrivas i ett<br />

sådant språk, dvs Java ME.<br />

IrDA och Internet visade sig båda två ha stora svagheter. IrDA har ett stort praktiskt problem då<br />

avståndet samt riktning enheterna får ha i förhållande till varandra är väldigt begränsat. Internets<br />

huvudsakliga fall är att en central server måste finnas som enheterna måste koppla upp sig emot<br />

samt att användandet av Internet via mobiltelefoner medför en viss kostnad.<br />

Prototypen kräver användande av ”peer-to-peer”-teknik då varje enhet är både en klient och en<br />

server. En negativ upptäckt med Bluetooth är att sökningen efter andra bluetoothenheter tar väldigt<br />

lång tid, detta medförde att prototypens uppdatering av andra enheter som finns i närheten inte kan<br />

ske tillräckligt ofta. Prototypen utvecklades på ”Sun Wireless Toolkit Emulator” men klarade aldrig<br />

övergång till en faktisk mobiltelefon till fullo.<br />

I detta arbete fanns det inget utrymme för säkerhet dock är prototypens säkerhet en viktig aspekt vid<br />

en vidareutveckling mot en färdig produkt. Vid användandet av kommersiella produkter får det inte<br />

finnas några tveksamheter gällande säkerheten.<br />

17


6. Referenser<br />

6.1. IrDA<br />

Infrared Data Association. What is infrared and Where is it used? [online]. Available from:<br />

http://www.irda.org/displaycommon.cfm?an=1&subarticlenbr=14 [cited 30 mars 2009]<br />

Infrared Data Association. IrReady Products. [online]. Available from:<br />

http://www.irda.org/displaycommon.cfm?an=1&subarticlenbr=22 [cited 30 mars 2009]<br />

Infrared Data Association. Infrared Data Association. [online]. Available from: http://www.irda.org/ [cited 30<br />

mars 2009]<br />

HP Labs. Java Socket Interface for Infrared Communication. [online]. Available from:<br />

http://www.hpl.hp.com/personal/Jean_Tourrilhes/IrDA/Java.html [cited 2 april 2009]<br />

6.2. Internet<br />

University of Toronto, Department oc Computer Science. Are GSM phones the solution for localization?.<br />

[online]. Available from:<br />

http://www.cs.toronto.edu/~walex/papers/are_gsm_phones_the_solution_for_localization_wmcsa2006.pdf<br />

[cited 6 april 2009]<br />

UNB, Geodesy and Geomatics Engineering. In Simple Terms, How Does GPS Work?. [online]. Available<br />

from: http://gge.unb.ca/Resources/HowDoesGPSWork.html [cited 6 april 2009]<br />

Java Community Process. JSR-000179 Location API for J2ME (final release). [online]. Available from:<br />

http://jcp.org/aboutJava/communityprocess/final/jsr179/index.html [cited 2 april 2009]<br />

Forum.Nokia.com. MIDP:Location API Developer's Guide v2.0. [online] Available from:<br />

http://www.forum.nokia.com/info/sw.nokia.com/id/175bf8e6-a1f5-4d3d-a591-<br />

6fc936506a6b/MIDP_Location_API_Developers_Guide_v2_0_en.pdf.html [cited 2 april 2009]<br />

Sun Developer Network. J2ME and Location-Based Services. [online]. Available from:<br />

http://developers.sun.com/mobility/apis/articles/location/ [cited 30 mars 2009]<br />

Dynalab. Positionering. [online]. Available from: http://www.dynalab.se/arkiv/positionering_arkiv.html<br />

[cited 2 april]<br />

Sniff FriendFinder. social network integrated friend finder. [online]. Available from:<br />

http://www.varedu.nu/nordic/html/login.do [cited 30 mars 2009]<br />

Forum.Nokia.com. MIDP: Location API Developer's Guide, Version 2.0. [online]. Available from:<br />

http://www.forum.nokia.com/info/sw.nokia.com/id/175bf8e6-a1f5-4d3d-a591-<br />

6fc936506a6b/MIDP_Location_API_Developers_Guide_v2_0_en.pdf.html [cited 1 april 2009]<br />

6.3. Bluetooth<br />

Bluetooth. Overview of Operations. [online]. Available from:<br />

18


http://www.bluetooth.com/Bluetooth/Technology/Works/Overview_of_Operation.htm [cited 5 april 2009]<br />

Sun Developer Network. Using the Java APIs for Bluetooth Wireless Technology, Part 1 - API Overview.<br />

[online]. Available from: http://developers.sun.com/mobility/apis/articles/bluetoothintro/index.html [cited 10<br />

april 2009]<br />

Sun Developer Network. Using the Java APIs for Bluetooth, Part 2 - Putting the Core APIs to Work. [online].<br />

Available from: http://developers.sun.com/mobility/apis/articles/bluetoothcore/index.html [cited 10 april<br />

2009]<br />

Sun Developer Network. Wireless Application Programming with J2ME and Bluetooth. [online]. Available<br />

from: http://developers.sun.com/mobility/midp/articles/bluetooth1/ [cited 10 april 2009]<br />

Sun Developer Network. Part II: The Java APIs for Bluetooth Wireless Technology. [online]. Available from:<br />

http://developers.sun.com/mobility/midp/articles/bluetooth2/index.html [cited 10 april 2009]<br />

Bluetooth. Architecture – Radio. [online]. Available from: http://www.bluetooth.com/Bluetooth/Technology/<br />

Works/Architecture__Radio.htm [cited 5 april 2009]<br />

BlueTomorrow. Frequently Asked Questions. [online]. Available from:<br />

http://www.bluetomorrow.com/index.php?option=com_content&task=section&id=146&Itemid=248/#range<br />

[cited 6 april 2009]<br />

6.4. Övrigt<br />

Xtify. Xtify. [online]. Available from: http://www.xtify.com [cited 4 mars 2009]<br />

MSN Mobile. Here's what you will find on MSN Mobile. [online]. Available from:<br />

http://info.mobile.msn.com/en-us/default.aspx [cited 3 mars 2009]<br />

Yahoo Mobile Services. Yahoo Mobile Services. [online]. Available from: http://mobile.yahoo.com/ [cited 4<br />

mars 2009]<br />

Zogo. Zogo. [online]. Available from: http://www.zogo.com/splash.php [cited 5 mars 2009]<br />

MobilLove. MobileLove. [online]. Available from: http://pluto3.plutolife.com/match3/wap?<br />

x=ret&k=matchse&s=keep&iplidred=1320382 [cited 5 mars 2009]<br />

Newsdesk. Premiär för Speed Date i mobilen. [online]. Available from:<br />

http://www.newsdesk.se/pressroom/spray/pressrelease/view/154600 [cited 4 mars 2009]<br />

SMSDejt. Välkommen till SMSDejt.se. [online]. Available from: http://www.smsdejt.se/ [cited 3 mars 2009]<br />

globeandmail.com. Love is just a cellphone call away. [online]. Available from:<br />

http://www.theglobeandmail.com/servlet/story/RTGAM.20070711.wgtcelldate11/BNStory/PersonalTech/ho<br />

me [cited 4 mars 2009]<br />

Speck. Speck. [online]. Available from: http://speck.randomfoo.net/ [cited 5 mars 2009]<br />

Communication Systems Group. Blue*. [online]. Available from:<br />

http://www.csg.ethz.ch/research/projects/Blue_star [cited 5 mars 2009]<br />

19


Gizmag. Bluetooth-enabled proximty dating service. [online]. Available from:<br />

http://www.gizmag.com/go/3685/ [cited 4 mars 2009]<br />

6.5. Litteratur<br />

Beginning J2ME Platform - From novice to professional, Third Edition, Apress, ISBN: 1-59059-479-7<br />

20


TRITA-CSC-E 2009:078<br />

ISRN-KTH/CSC/E--09/078--SE<br />

ISSN-1653-5715<br />

www.kth.se

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!