Mobildejting - Kungliga Tekniska högskolan
Mobildejting - Kungliga Tekniska högskolan
Mobildejting - Kungliga Tekniska högskolan
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