Trådlösa och spontana nätverk



Relevanta dokument
U SB M I N I ADAPTE R BLUETOOTH

LC Sweex Wireless LAN USB-kort

3.2 1H[W*HQHUDWLRQ6HFXULW\ Användarmanual

Handbok Fjärranslutning till skrivbord. Brad Hards Urs Wolfer Översättare: Stefan Asserhäll

KTH Programutvecklingsprojekt med mjukvarukonstruktion 2D1362. Projektpresentation

30 år av erfarenhet och branschexperts

LC Sweex Wireless LAN PC Card 54 Mbps

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

krävs för att kunna utföra arbete. Den finns i många former men kan inte förstöras, bara omvandlas från en form till en annan.

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Gränslös kommunikation

Henrik Asp. Allt du behöver veta för att KÖPA DATOR

Distribuerade affärssystem

Föreläsning 2. Operativsystem och programmering

Mobilt Bredband Turbo 3G+ Manual

Rapport i Mobila systemarkitekturer. Symbian

LAJKA-GUIDE. Så kör du. Windows på din Mac. 7 Fler spel och program 7 Enklare än Bootcamp 7 Körs direkt i OSX 7 Helt gratis

Börja med att ladda ner appen Blacklens till din mobil. Finns både till iphone på Apple Store och till Android på Google Play.

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

STYRKAN I ENKELHETEN. Business Suite

Instruktion: Trådlöst nätverk för privata enheter

Mobile First Video on demand och livesändningar på Internet. Juni 2012

Trådlöst (endast vissa modeller)

Instruktion till. PigWin PocketPigs. Del 1 - Installation

Operativsystem och användargränssnitt

Din manual CANON LBP

Bilaga 5 Produktöversikt Dnr: /

Säkerhetskopiera mobilen

Detta är en liten ordlista med förklaringar på begrepp och aktiviteter relaterade till. elvisualiseringsverktyg

Instruktion: Trådlöst utbildningsnät orebro-utbildning

Produktutvecklingsprocessen. (e)lvis

Så fjärrstyr du datorn

Quick start manual. Smart-House Rev 1.1

SeniorNet Huddinge Dagens tema: Trådlösa uppkopplingar

ENKEL INTRODUKTIO Du kanske länge har funderat vad alla begrepp som Wifi, surfplatta och app står för, kanske detta dokument kan lösa dina problem.

9 Webbföreläsningar. 9.1 Streaming

Systemskiss. LiTH Autonom bandvagn med stereokamera Gustav Hanning Version 1.0. Status. TSRT10 8Yare LIPs. Granskad

Inlämningsuppgift 11e Nätvärksskrivare

Manual Sportident Onlinekontroll via GPRS

Foto: Björn Abelin, Plainpicture, Folio bildbyrå Illustrationer: Gandini Forma Tryck: Danagårds Grafiska, 2009

Presentationsprogram - Kravspecifikation. Henrik Österdahl och Jenny Melander, D mars 2002

LASERJET ENTERPRISE M4555 MFP-SERIEN. Installationsguide för programvara

Filöverföring i Windowsmiljö

Lathund Blanketthotell Komma igång

Uppdragsbeskrivning. Paddel-appen Utmärkta kanotleder. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info.

Mobilt Bredband Turbo 3G Manual

Programmering B med Visual C

Handbok Dela Skrivbord. Brad Hards Översättare: Stefan Asserhäll

Instruktioner för Internetanslutning

Kom i gång med trådlösa

Så övervakar du hemmet med Skype

Minnesisolering för virtuella maskiner en hypervisorstudie

Nya Aquila använder senaste versionen av våra verktyg: UniPaaS 1.9 (tidigare Magic), samt Crystal Reports version 12 (idag kör ni på version 8).

MOBILT INKÖP MANUAL VERSION 3. Sida 1

WINTEXT SERVER/ WINTEXT32 integrerad texttelefoni i tele- och datornät

ISAC. Tel. 08/

Introduktion till hårdvara, mjukvara och operativsystem

Quickstart manual. Rev SHTOOL Quickstart manual Smart-House

VERKTYG FÖR BILKOMMUNIKATION VIDA ALL-IN-ONE

Installationsguide Huawei E367

Om konsolporten. Beskrivning av portarna

PCI ETHERNET CARD 100 MB

Systemkrav WinServ II Edition Release 2 (R2)

Christer Scheja TAC AB

Preliminär specifikation av projekt

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll

Setup Internet Acess CSE-H55N

MINIX NEO A2 Användarguide

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING

Dags för ett nytt grepp på skrivbordet.

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.7

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Skriv ut vackra foton av hög kvalitet hemma

Handbok Simond. Peter H. Grasch

Fastighetsnätets uppbyggnad

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

Godkännande av kundapplikationer

Din guide till en säkrare kommunikation

NSi Output Manager Vanliga frågor och svar. Version 3.2

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

USB Type-C till Gigabit-nätverksadapter - USB 3.1 Gen 1 (5 Gbps)

Virtuell Server Tjänstebeskrivning

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

Ta kontroll över kopiering och utskrifter med uniflow Output Manager

Daniel Akenine, Teknikchef, Microsoft Sverige

Memo Comai Hur fungerar Memo Comai? Hur använder jag Memo Comai?

iphone/ipad Snabbguide för anställda på HB

MINIX NEO A1+ Användar Manual

SNABBGUIDE NOKIA PC SUITE 4.81 FÖR NOKIA 6310i

1. Revisionsinformation

Inledning. Viktiga säkerhetsinstruktioner. Svensk version. LD Sweex Powerline USB-adapter

Din guide till (S)IP. Ny porttelefon för SIP Med ljud och bild. Utbildningar En lärorik höst med Talk. Kampanj - Snom och Microsoft OCS / Lync

BT-500. Bluetooth Stereo Hörlurar

Innehåll Molntjänster... 4 Vad är detta?... 5 Cirkeln sluts... 6 The Cloud... 7 The Cloud (forts.)... 8 Definition av molntjänster...

Riktlinjer: avveckling av AppleTalk-routing i LUNET

SNABBGUIDE FÖR. Installation av Nokia Connectivity Cable Drivers

Benga s tekniska hörna. Så skapar du ett Vista-nätverk :16 - PC för Alla

Transkript:

Examensarbete utfört i datalogi vid Tekniska Högskolan i Linköping Trådlösa och spontana nätverk av Fredrik Söderlund och Anders Westberg LiTH-IDA-Ex-00/56 2000-08-02 Företag: GoldPen Computing AB Handledare på företaget: Staffan Berglund och Carl Eriksson Examinator: Patrick Doherty

Sammanfattning Sammanfattning Till ett spontant och trådlöst nätverk kan medlemmarna anslutas automatiskt och så klart trådlöst. Med automatisk anslutning menas att inget mänskligt initiativ behövs för att starta uppkopplingen. När en enhet kommer tillräckligt nära en annan börjar de prata med varandra och utnyttja varandras tjänster. På marknaden finns ett antal teknologier som kan användas för att konstruera ett sådant nät. De kan indelas i teknologier för spontana nätverk och teknologier för trådlös kommunikation. Vi har tittat närmare på ett par teknologier inom respektive område. Jini är en teknologi baserad på Java för spontana nätverk. Jini är uppbyggt kring en uppslagstjänst. I uppslagstjänsten kan tjänster registreras av medlemmar på nätet. Andra medlemmar kan sedan ladda ner tjänsterna, som består av javaobjekt, och använda dem. Bluetooth är en teknologi för trådlös kommunikation över korta avstånd, maximalt tio meter. Mellan två bluetoothenheter kan data och ljud sändas trådlöst. Teknologin har en inbyggd mekanism för att upptäcka och ansluta nya enheter som kommer inom räckhåll. För att testa dessa två teknologier har vi gjort en testimplementation där vi styr en legorobot från en bärbar dator via Jini och Bluetooth. Testimplementationen innefattar även styrning av legoroboten från en stationär dator och från en handdator. Arbetet med testimplementationen har gett många nyttiga erfarenheter. Bland annat kom vi fram till att Jini i dagsläget inte går att köra på mindre datorer som t.ex. handdatorer eftersom de saknar en komplett javaomgivning. Vidare visade det sig att vissa av de protokoll som definierar Bluetooth och som vi tänkt använda i vår lösing inte var implementerade av konstruktörerna till Bluetooth, vilket ledde till en hel del begränsningar i vår testimplementation. Dessa begränsningar gör att kombinationen Bluetooth och Jini inte blir så intressant i dagsläget. Vi tror dock att dessa problem kommer att lösas i framtiden när handdatorer utrustas med javaomgivning och inbyggda bluetoothenheter. Trådlösa och spontana nätverk iii

Sammanfattning iv Trådlösa och spontana nätverk

Förord Förord Denna rapport är resultatet av ett examensarbete vid Institutionen för Datavetenskap (IDA) på Linköpings Tekniska Högskola (LiTH) under våren 2000. Arbetet har utförts på uppdrag av GoldPen Computing AB i Linköping. Rapporten vänder sig till personer som vill lära sig mer om teknologier bakom distribuerade nätverk och trådlös överföring samt till de som vill återskapa eller vidareutveckla vår testimplementation. För att rapporten ska tillföra läsaren något bör denne besitta grundläggande kunskaper om datorer och nätverk. Denna rapport är uppdelad i tre delar. I första delen ges en översikt över de tekniker som används för att skapa ett trådlöst och spontant nätverk. Andra delen behandlar mer ingående tekniker vi valde att undersöka. Tredje och sista delen sammanfattar den implementation vi har gjort och diskuterar de lösningar vi valt att använda. Linköping den 2 augusti 2000 Fredrik Söderlund Anders Westberg Trådlösa och spontana nätverk v

Förord vi Trådlösa och spontana nätverk

Innehållsförteckning Innehållsförteckning 1 INTRODUKTION...1 1.1 BAKGRUND...1 1.2 OM DOKUMENTET...3 2 PROBLEMSPECIFICERING...5 2.1 PROBLEMFORMULERING...5 2.2 MÅL MED EXAMENSARBETET...5 3 FÖRSTUDIE...7 3.1 TEKNOLOGIER PÅ MARKNADEN...7 3.2 UTVALDA TEKNIKER...19 4 JINI...21 4.1 BAKGRUND...21 4.2 ÖVERSIKT...22 4.3 UPPTÄCKT...23 4.4 REGISTRERING...23 4.5 FÖRNYELSE AV REGISTRERING...24 4.6 UPPSLAGNING...25 4.7 UNDERRÄTTELSE...26 4.8 ETT EXEMPEL...26 5 BLUETOOTH...31 5.1 BAKGRUND...31 5.2 ÖVERSIKT...31 5.3 BASBANDSPROTOKOLLET...33 5.4 LÄNKHANTERINGSPROTOKOLLET...41 5.5 PROTOKOLLET FÖR LOGISK LÄNKHANTERING OCH ANPASSNING...43 5.6 PROTOKOLLET FÖR UPPTÄCKT AV TJÄNSTER...45 5.7 APPLIKATIONSPROTOKOLLET...51 5.8 ÖVRIGA PROTOKOLL...51 6 ÖVRIGA TEKNIKER...53 6.1 PALM...53 6.2 LEGO...57 7 LÖSNINGSGÅNG...61 7.1 ÖVERSIKT...61 7.2 JININÄTVERK...62 7.3 ROBOTKLIENTEN...62 7.4 BLUETOOTHKLIENTEN...63 7.5 PALMKLIENTEN...69 7.6 ROBOTTJÄNSTEN...70 7.7 SAMMANSATT LÖSNING...72 8 IMPLEMENTATION...73 8.1 ÖVERSIKT...73 8.2 IR-LÄNK...74 8.3 LEGOROBOT...75 Trådlösa och spontana nätverk vii

Innehållsförteckning 8.4 ROBOTTJÄNST...76 8.5 ROBOTKLIENT...78 8.6 PALMPROXY...78 8.7 PALMKLIENT...80 8.8 BLUETOOTHLÄNK...81 8.9 BLUETOOTHPROGRAM...83 8.10 BLUETOOTHPROXY...87 8.11 BLUETOOTHKLIENT...88 8.12 ANVÄNDARGRÄNSSNITT...89 8.13 PRESENTATIONSTJÄNST...90 8.14 PROGRAM FÖR ATT STARTA APPLIKATIONERNA...91 9 RESULTAT...93 9.1 VAD DETTA ARBETE TILLFÖRT...93 9.2 ERFARENHETER...93 9.3 FÖRSLAG TILL FORTSATT ARBETE...94 10 DISKUSSION...95 10.1 ALLMÄN DISKUSSION...95 10.2 SLUTSATSER...96 10.3 FRAMTIDEN...96 11 REFERENSER...98 APPENDIX A - REMOTE METHOD INVOCATION (RMI)...100 A.1 ÖVERSIKT...100 APPENDIX B - INSTALLATIONSANVISNINGAR...104 B.1 INSTALLATION AV JAVA...104 B.2 INSTALLATION AV JAVAX...104 B.3 INSTALLATION AV NQC...105 B.4 INSTALLATION AV JINI...105 B.5 INSTALLATION AV KÄLLKODEN TILL TESTIMPLEMENTATIONEN...105 B.6 INSTALLATION OCH KONFIGURERING AV HTTP-SERVER...106 B.7 KOMMUNIKATION MELLAN PALM OCH STATIONÄR DATOR...107 B.8 INSTALLATION AV KVM EARLY ACCESS...110 B.9 INSTALLATION AV POSE...111 B.10 INSTALLATION AV UTVECKLINGSPAKETET TILL BLUETOOTH...113 APPENDIX C - ANVISNINGAR FÖR START AV TESTSYSTEMET...115 C.1 BAKGRUNDSPROCESSER...115 C.2 JINIAPPLIKATIONER...116 C.3 ANVÄNDARGRÄNSSNITT FÖR ATT STARTA SYSTEMET...118 APPENDIX D - ANVISNINGAR FÖR VIDAREUTVECKLING...119 D.1 KOMPILERING, FILKONVERTERING OCH STUBBGENERERING...119 BEGREPPSFÖRKLARINGAR...121 INDEX...125 viii Trådlösa och spontana nätverk

Introduktion 1 Introduktion Denna rapport är resultatet av ett examensarbete utfört vid Institutionen för Datavetenskap (IDA) på Linköpings Tekniska Högskola (LiTH) på uppdrag av GoldPen Computing AB i Linköping, våren 2000. 1.1 Bakgrund Den senaste teknologin inom trådlös kommunikation och mjukvara för nätverk erbjuder stora möjligheter att skapa system som utför de mest komplexa uppgifter utan att användaren behöver vara inblandad. Ett exempel skulle kunna vara en hemdator med tillhörande bildläsare, skrivare och ljudsystem etc. Med den teknik som används idag måste användaren själv besitta en mängd kunskap om hur alla enheter ska kopplas samman och hur drivrutiner eller liknande ska installeras för att allt ska fungera tillsammans. Med morgondagens teknik kommer alla enheter att själv ha kunskapen som behövs. Allt användaren behöver göra är att placera alla enheter i närheten av varandra, slå på strömmen och allt kommer att fungera. I dagsläget utvecklas teknik för detta på två fronter; dels på radiokommunikationsfronten för trådlösa nätverk och dels på mjukvarufronten för spontana nätverk. Trådlösa nätverk Trådlös kommunikation har funnits länge, men ofta handlar det om kommunikation mellan endast två enheter. I trådlösa nätverk kan alla medlemmar kommunicera med varandra. Trådlösa nätverk fungerar i princip på samma sätt som traditionella nätverk baserade på kablar. Det är dock vissa saker man måste ta hänsyn till i ett trådlöst nätverk. Tillförlitligheten är inte lika hög i ett trådlöst nätverk. Störningar från andra trådlösa signaler kan orsaka avbrott och för långa avstånd mellan enheterna likaså. I traditionella nätverk har man också oftast tillgång till servrar som sköter centrala uppgifter såsom namnuppslagning, filtrering av data och liknande. I trådlösa nätverk kan man inte förlita sig på det. Spontana nätverk Ett spontant nätverk är ett nätverk som sköter sig självt. Användaren behöver inte initiera något. När en medlem får kontakt med nätverket tar den själv kontakt med medlemmarna och kopplar upp sig. Om den sedan behöver nyttja någon av de andra medlemmarnas tjänster så söker den själv upp den medlem som tillhandahåller en passande tjänst och använder den. Tanken är att man ska slippa konfigurera nätverket manuellt i förväg. En intressant kombination Teknologierna på dessa områden är väldigt färska och lite arbete har lagts ner på att utreda vilka fördelar en kombination av dessa skulle kunna ge och vilka problem som skulle kunna inträffa. Förmodligen kommer många produkter att baseras på dessa teknologier och kombinationer av dem. Därför vore det intressant att utvärdera dem. Ett tänkte scenario illustreras i figur 1 och skulle kunna vara en arbetsplats med en antal enheter anslutna till ett och samma nätverk. När en ny enhet ska anslutas till nätverket behöver den bara placeras i närheten av någon annan redan ansluten enhet och direkt därefter kunna kommunicera med övriga enheter i nätverket. Kommunikationen mellan olika enheter sker trådlöst och ska kunna ske direkt utan att slussas igenom någon server. Trådlösa och spontana nätverk 1

Introduktion 9;07 figur 1: Enheter anslutna till ett nätverk Utvärderat system I vårt utvärderingsarbete valde vi att begränsa oss till ett mindre omfattande system. De enheter vi valde att använda var en handdator, en stationär dator, en bärbar dator och en robot. Anledningen att vi valde dessa var att vi strävade efter att få ett mobilt och illustrativt system. Överföringen mellan enheterna och nätverket skulle skötas trådlöst och enheterna skulle koppla upp sig mot nätverk när de kom tillräckligt nära det. En översiktlig bild av vårt utvärderade system kan beskådas i figur 2. 2 Trådlösa och spontana nätverk

Introduktion $5439,39 3 9;07 figur 2: Utvärderat system 1.2 Om dokumentet Rapporten är indelade i följande tre delar: översikt, detaljerad genomgång av utvalda tekniker och implementation. Vi rekommenderar att den nyfikne läsaren studerar kapitel 1-3 och 9-10. Den som är intresserad av hur de tekniker, som vi valde att undersöka, fungerar i detalj ska även läsa kapitel 4-6. Den läsare som är intresserad av hur vi gick till väga för att få ett fungerande spontant nätverk eller som vill använda vårt arbete som underlag för egna experiment ska också studera kapitel 7-8 samt appendix. Resten av rapporten disponeras på följande vis: Kapitel 2: Problemspecificering Formulerar problemställning och mål med examensarbetet. Kapitel 3: Förstudie Sammanfattar de tekniker som finns på marknaden inom nätverksdistrubition, sladdersättare, handdatorer, små javamaskiner och robotar. Trådlösa och spontana nätverk 3

Introduktion Kapitel 4: Bluetooth Ger en grundläggande och detaljrik genomgång av bluetoothtekniken. Kapitel 5: Jini Behandlar ingående jiniteknikens struktur. Kapitel 6: Övriga tekniker Presenterar noggrant de övriga tekniker vi använt oss av i examensarbetet. Kapitel 7: Lösningsgång Beskriver hur vi gick till väga för att utforma ett fungerande system. Kapitel 8: Implementation Beskriver vår testimplementationen. Kapitel 9: Resultat Examensarbetet summeras och vi presenterar de resultat vi kommit fram till. Kapitel 10: Diskussion Resultatet diskuteras och förslag på fortsatt arbete tas upp. Appendix: Behandlar dels RMI som är en teknik inom Java och dels hur man installerar och får de tekniker vi använt oss av att fungera ihop. Begreppsförklaringar: Innehåller korta förklaringar på begrepp som förekommer i rapporten. Index: Index över de viktigaste begreppen och nyckelorden. 4 Trådlösa och spontana nätverk

Problemspecificering 2 Problemspecificering Detta kapitel formulerar problemställning och mål med examensarbetet. 2.1 Problemformulering Problemet som vi med detta examensarbete vill undersöka kan specificeras med följande frågor: 1. Hur konstruerar man ett trådlöst spontant nätverk på bästa sätt? 2. Vilka teknologier finns på marknaden som kan tänkas lösa problemet? Med på bästa sätt menas att lösningen: ska gå att anpassa till de områden där det verkligen är intressant att använda den. ska vara så konstruerad att användaren av det färdiga systemet kan sköta det på egen hand utan hjälp av en systemadministratör. ska vara så plattformsoberoende som möjligt. De teknologier som kan tänkas lösa problemet måste uppfylla följande krav: De ska vara eller ha en potential att bli allmänt kända så att teknologin kan appliceras inom så många användningsområden som möjligt. De ska vara relativt fria för att underlätta en spridning av teknologin. 2.2 Mål med examensarbetet Målet med examensarbetet är inte att ge raka och precisa svar på frågorna i problemformuleringen, utan att ta fram ett underlag som läsaren av rapporten kan använda för att själv bilda sig en uppfattning i frågorna. Underlaget ska innehålla översiktliga beskrivningar av de största teknologierna inom området. mer ingående beskrivningar av några utvalda teknologier. en beskrivning av problemställningar och lösningsförslag till dessa. dokumentering av en testimplementation. Trådlösa och spontana nätverk 5

Problemspecificering 6 Trådlösa och spontana nätverk

Förstudie 3 Förstudie Kapitlet sammanfattar olika tekniker inom nätverksdistribution, trådlösa förbindelser, handdatorer, virtuella maskiner och robotar som finns på marknaden. I det sista avsnittet motiverar vi vårt val av tekniker. 3.1 Teknologier på marknaden De tekniker som detta examensarbete behandlar är i de flesta fall helt nya tekniker och en del är så pass nya att de ännu inte är fullt utvecklad och testade. Detta har skapat en del problem som i vissa fall har lett till att vi varit tvungna att införa begränsningar i vårt utvärderingsarbete för att få det att fungera. Inom ett eller ett par år torde teknikerna ha blivit mer kompletta och den turbulenta marknad som nu råder inom detta område borde ha stagnerat och alla utom de bästa teknikerna gallrats bort. Anledning till att marknaden är turbulent är att en miljö med trådlösa och spontana nätverk efterfrågas av etablissemanget och därigenom har företag som kan erbjuda kompletta och genomtänkta lösningar goda chanser att ta stora marknadsandelar inom industri-, dator- och privatmarknaden. Nedan ges en översiktlig beskrivning på vilka teknikområden vi har undersökt: Nätverksdistributörer Används för att behandla tillgängliga resurser och önskemål från enheter som är inkopplade på ett nätverk. Sladdersättare Används för att få en mobil och trådlös datormiljö. Handdatorer Används för att få en mobil, portabel och kraftfull styrenhet. Små virtuella javamaskiner Används för att köra javaprogram på handdatorer. Robotar Används för att få en mobil reglerbar enhet och därigenom få en illustrativ testmiljö. 3.1.1 Nätverksdistributörer En nätverksdistributör används för att koordinera olika enheter med varandra då det gäller tillgängliga resurser och önskemål om dessa resurser. Exempelvis kan en tillgänglig resurs vara en skrivare som erbjuder en utskriftstjänst och en efterfrågad resurs kan vara en digitalkamera som önskar en utskriftstjänst för att skriva ut ett fotografi. Målet med dessa nätverksdistributörer är att få enheter att samarbeta med andra enheter på ett enkelt, smidigt och skalbart sätt. Att koordinera enheter innebär att enheten och/eller nätverket uppfyller några av följande punkter: Enheten meddelar nätverket när den har anslutits. Trådlösa och spontana nätverk 7

Förstudie Automatiskt upptäcka nya enheter i omgivningen. Förmåga att konfigurera sig själv utan ingrepp från en administratör. Ett enkelt och smidigt samarbete med andra enheter när så är behövligt. Det är inte lätt att bygga upp den struktur som ska koordinera kommunikationen mellan olika enheter. Detta p.g.a. att olika enheter kan var olika specificerade och använda vitt skilda protokoll. Därför blir det svårt för denna struktur att anpassa alla protokoll till en standard. Hur som helst är en väldefinierad koordinationsstruktur en viktig förutsättning för att få olika enheter att bli uppmärksamma på varandra. För att få en koordinationsstruktur att fungera måste det introduceras någon slags standard i hanteringen av enheterna, annars kan enheterna helt enkelt inte koordineras. Det egentliga problemet är att skapa en balans mellan standardiseringskraven och enheternas grad av frihet. Med enheternas grad av frihet menas de val av protokoll och tekniker som kan göras [1]. Det finns en rad olika aktörer på marknaden för nätverksdistributörer, men där mjukvarujättarna Sun och Microsoft nog står för de lösningar som har störst potential att etablera sig. Nedan sammanfattas de största nätverksdistributörerna. Jini Sun ligger bakom denna teknik och enligt dem ska det bli lika enkelt att ansluta nya enheter till nätverket och få dem att fungera som det idag är att ansluta en telefon. Alltså inga konstiga inställningar, inga drivrutiner och inga problem kring det underliggande operativsystemet. Jini är uppbyggt av det plattformsoberoende programspråket Java och är precis som Java utvecklat av Sun Microsystem. Jini kan ses som ett steg i programspråket Javas väg mot att skapa ett nätverk som utåt sätt ser ut som en enda stor dator. Med hjälp av Jini kan Java utnyttjas i ett nätverkssystem och alla möjliga periferienheter, allt från skrivare och servrar till kylskåp och kameror. Dessa kan sedan kopplas samman i ett distribuerat javanät oberoende av operativsystem. De enda kraven för att ansluta en enhet till ett fungerande jininätverk är att den innehåller en processor, en Java Virutal Machine (JVM) samt att det ovanpå denna ska finnas plats för 40 kb jinikod [2]. I figur 3 illustreras hur Jini är tänkt att fungera och nedan beskrivs jinitekniken mer ingående. För att Jini ska fungera behövs tre faktorer: Någon som erbjuder en tjänst. En s.k. uppslagstjänst som har kontroll på vilka tjänster som erbjuds. Någon som behöver få en tjänst utförd. I Jini har tjänsterna en central roll där de t.ex. kan motsvara fotografering med en digitalkamera, utskrift från en skrivare eller styrning av en robot. 8 Trådlösa och spontana nätverk

Förstudie Skrivare (producent av tjänst) 1. Skrivaren letar efter en uppslagstjänst. 2. Uppslagstjänsten etablerar kontakt. 3. Skrivaren skickar över info om sig själv, bl.a. en drivrutin. 6. Leasingavtalet uppdateras. Uppslagstjänst (lista över tillgängliga tjänster) Skrivare,svart/vit 4 s/m, Postscript 4. Någon vill göra utskrifter och kontaktar uppslagstjänsten. 5. Uppslagstjänsten letar upp lämplig skrivare och för över information och drivrutin till användaren. PC (användare av tjänst) figur 3: Ett exempel på hur Jini är tänkt att fungera. Vad som egentligen händer när t.ex. en skrivare anslutits är att den skickar iväg ett meddelande till nätverket. Detta meddelande fångas upp av en uppslagstjänst som i sin tur besvarar meddelandet. Efter att en kontakt etablerats mellan skrivaren och uppslagstjänsten skickar skrivaren detaljerad information om sig själv till uppslagstjänsten. I det här fallet Trådlösa och spontana nätverk 9

Förstudie skickar skrivaren t.ex. en drivrutin, ett användargränssnitt, ett hjälpdokument och en beskrivning av vad den kan samt var den befinner sig. När någon i nätverket vill använda sig av en tjänst vänder den sig till uppslagstjänsten. I det här fallet behöver inte någon vara en speciell användare utan det kan lika gärna vara ett ordbehandlingsprogram som vill använda sig av en lagringstjänst eller ett kalkylprogram som vill nyttja en beräkningstjänst. När någon t.ex. vill göra en utskrift skickas en förfrågan till uppslagstjänsten om det finns någon lämplig skrivare. Om en skrivare påträffas skickar uppslagstjänsten över den kod som behövs för att använda skrivaren. Användaren behöver alltså inte hålla ordning på drivrutiner och dylikt utan de skickas över samtidigt som tjänsten åberopas. Egentligen behöver inte heller skrivaren skicka över drivrutiner till uppslagstjänsten utan den behöver bara skicka över en URL (Universal Resource Locator) som hänvisar var den resterande delen av skrivarens information finns. På detta sätt får man alltid tillgång till de senaste drivrutinerna. De tjänster som ansluter sig till uppslagstjänsten upprättar ett leasingavtal med den. Detta avtal måste tjänsterna förnya med bestämda tidsintervall annars tar uppslagstjänsten bort dem från listan över tillgängliga tjänster. På detta sätt skapas ett levande nätverk där enheter, när som helst, kan anslutas och tas bort [3]. En stor fördel med Jini är att dagens plattformsberoende drivrutiner kan ersättas av en enda drivrutin som fungerar på alla tänkbara plattformar. Denna plattformsoberoende drivrutinen är förstås skriven i Java. UPnP UPnP har utvecklats av Microsoft och målet är ett system som automatiskt konfigurerar sig självt och där skillnaden mellan lokal och distribuerad bearbetning upphävs. I figur 4 illustreras hur UPnP är tänkt att fungera och i följande avsnitt beskrivs det mer ingående. När en UPnP-kompatibel enhet ansluts till ett nätverk får den en IP-adress. I ett företagsnätverk som redan använder TCP/IP fås adressen förmodligen från en s.k. DHCP-server som sköter fördelningen av unika IP-adresser. I ett hemnätverk tas adressen från en adressrymd som är speciellt reserverad för detta ändamål. Enheten skickar sedan ut en förfrågan om någon annan enhet redan har tilldelats den adressen. När enheten har fått en IPadress meddelar den nätet att den finns. Därefter lyssnar enheten på en speciell kanal på nätverket. Är det t.ex. en skrivare som anslutits lyssnar den efter anrop från någon som behöver skriva ut. Skulle det komma en sådan förfrågan meddelar skrivaren att den finns och var den finns. Enhetens beskrivning och kunskap lagras av själva enheten i en databas i XML-format. Genom att tolka skrivarens XML-fil får, i vårt fall, klienten klart för sig hur den ska använda skrivaren. UPnP är inte beroende av en speciell uppslagstjänst utan en klient som behöver en speciell tjänst anropar alla anslutna enheter (s.k. multicast) och endast de som uppfyller klientens önskemål svarar [3]. Salutation Salutation är utvecklat av Salutation konsortium vars medlemmar är ledande företag inom datorvärlden. De mest kända medlemmarna är Hewlett-Packard, Canon, Adobe System, Hitachi, Konica, Sun Microsystems och Xerox. 10 Trådlösa och spontana nätverk

Förstudie Ett av målen med Salutation har varit att få det att fungera på det flesta apparater och utrustningar som finns. Detta har man löst genom att göra arkitekturen oberoende av operativsystem, nätverksprotokoll och processortyp. Salutation har dessutom konstruerats för att tillåta skalbar implementation på vanliga datorer men även på små, portabla och resursbegränsade enheter. 1. Se efter om det finns en DHCP-server. Skrivare 2. Inget svar från DHCP-servern. Då ger enheten sig själv en IPadress tagen från en reserverad adressrymd. 3. Enheten talar om för nätet att den tillkommit. Andra enheter på nätverket. 4. Någon som behöver en skrivare skickar ut en allmän förfrågan på en speciell kanal på nätverket och ber alla skrivare att svara. 5. Skrivaren svarar att den finns. 6. Klienten hämtar den XML-fil som innehåller data om skrivaren. 7. Nu kan skrivaren användas. figur 4: Ett exempel på hur UPnP är tänkt att fungera. Trådlösa och spontana nätverk 11

Förstudie Kärnan i Salutations arkitekturer är Salutation Manager (SLM) och genom den kommunicerar alla enheter som vill erbjuda tjänster eller de enheter som efterfrågar tjänster (klient). SLM kan köras på samma maskin som klienten eller tjänsten men kan lika gärna köras på någon annan maskin i nätverket. En SLM agerar som en agent för sin uppdragsgivares räkning och den hanterar även hur data skickas mellan olika enheter. Det är även SLM som åstadkommer att enheter kan kommunicera med andra enheter oberoende av vilket protokoll eller kommunikationsmedel de använder. I en SLM registrerar en tjänst sina resurser och det är även i SLM som klienten eventuellt finner sin efterfrågade tjänst och som i sådana fall ansöker om lov att få använda den. En nätverksenhet kan vara en tjänst, klient eller bådadera. För att sprida information om vilka registreringar varje SLM har letar de upp alla andra SLMer som finns i närheten och utbyter registreringsinformation med dem. Varje enhet har en uppsättning med attributposter, t.ex. skulle en skrivare kunna ha följande attributpost {skrivare, utskriftshastighet 10 s/m, färg}. Dessa poster kan bli undersökta och jämförda när en klient söker efter en tjänst med speciella attribut. Varje förfrågan från en klient skickas först till den lokala SLM och kan inte den uppfylla klientens önskemål skickas förfrågan vidare till andra SLM i nätverket [1]. En annan fördel med Salutation är att det kan programmeras i det språk som ligger en varmast om hjärtat [4]. JetSend Detta protokoll är framtaget av Hewlett-Packard och är ett exempel på ett serviceprotokoll som gör det möjligt för skrivare, digitalkameror och persondatorer att utbyta information utan att en användare behöver vara inblandad. JetSend-protokollet gör det möjligt för enheter att identifiera allmänna dataformat och utbyta data. När två enheter har blivit anslutna till varandra, genom exempelvis Jini, kan JetSend-protokollet användas för att sända information mellan enheterna. JetSend-enheter är utformade på ett sådant sätt att två enheter direkt kan börja kommunicerar med varandra utan att behöva ta hjälp av en server eller besitta detaljerad information (t.ex. drivrutiner) om varandra. JetSend-protokollet är plattformsoberoende och har designats för att möjliggöra kommunikation mellan många olika enheter och dataformat över de vanligaste transportmedium som Internet, intranät, telefonnätet och infraröd överföring. JetSends kommunikationsprotokoll är en öppen licens för industrin som gör det möjligt att få många företag att tillverka applikationer kompatibla med JetSend. I dagsläget används JetSend till största del i produkter från Hewlett-Packard [5]. Övrigt Det finns även några andra tekniker som ligger i gränslandet till nätverksdistributörer. Några av dessa följer nedan. Infernospaces kallas en teknik som företaget Lucent har tagit fram och innebär att alla som pratar Infernospaces ska kunna kopplas samman och kommunicera med varandra. Infernospaces är plattformsoberoende och programmeringen kan göras i både C och Java. Lucent finns idag för Windows NT och Solaris men deras planer är att göra det möjligt för fler operativsystem och programmeringsspråk att prata Infernospaces [6]. Home Audio Video interoperability (HAVi) är utvecklat av de ledande företagen inom musikindustrin, bl.a. Grundig, Hitachi, Philips, Sony och Toshiba. HAVi är en standard 12 Trådlösa och spontana nätverk

Förstudie som gör det möjligt för konsumentapparater att kommunicera med varandra och utbyta digitalt ljud och video. Det utmärkande med HAVi är att enheter som är anslutna till samma nätverk kan dela på varandras resurser och funktioner. Funktionaliteten för en HAVikompatibel enhet deklareras automatiskt när den anslutits till nätverket och sedan kan andra enheter komma åt dessa funktioner över nätverket. [7] IBM bedriver ett forskningsprojekt kallat Universal Device Controller som har likheter med Jini, men de lär knappast tvinga ut det på marknaden om någon av de andra lösningarna för nätverksdistribution håller måttet. Även inom universitetsvärlden forskas det inom detta område. En avdelning på MIT (Massachusetts Institute of Technology) bedriver forskning kring framtidens nätverk i det s.k. Oxygen-projektet. 3.1.2 Sladdersättare För att få ett mobilt system vill man givetvis ersätta alla sladdar som finns mellan olika enheter. Den ledande tekniken på marknaden är i dagsläget infraröd överföring (IR) men Bluetooth har framtiden för sig eftersom den har många fördelar gentemot IR. Bluetooth Bluetooth är en specifikation som beskriver hur exempelvis mobiltelefoner, stationära datorer och handdatorer lätt kan länka sig samman med varandra och kommunicera trådlöst på ett kort avstånd. Bluetoothtekniken kan även användas för att enkelt förlänga det fasta nätet till mobila enheter utan att använda sladdar. Bluetooth fungerar genom att varje enhet är utrustad med en liten tranceiver (en kombinerad sändare och mottagare) som kan sända och ta emot data i det fria frekvensbandet 2.4 GHz. Detta frekvensband är tillgängligt i de allra flesta länder och i de länder där det inte är tillgängligt har man använt ett annat frekvensband. Förutom data kan man använda upp till tre stycken ljudkanaler för att kunna skicka över musik, röster och andra ljud. Varje enhet har en unik adress på 48-bitar från standarden IEEE 802. Uppkopplingar kan vara en-till-en eller en-till-många. Det maximala avståndet mellan två standardenheten är 10 meter, men det kommer att finnas förstärkningsenheter som ska göra det möjligt att kommunicera på upp till 100 meter. Överföringshastigheten kan komma upp i 1 Mbps i den första generationen av bluetoothenheter, men i nästa generation hoppas man komma upp i 2 Mbps. Ett frekvenshoppningsschema gör det möjligt för enheter att kommunicera även om det finns många elektromagnetiska störningar i närheten. Bluetooth stöder även kryptering [8]. IrDA IrDA står för Infrared Data Association och är en organisation som startade 1993 för att skapa en internationell standard för hårdvara och mjukvara som används för infraröd kommunikation. Denna speciella form av radiosändare fungerar genom att en stråle av ljus, som ligger i det infraröda frekvensområdet med takten Terahertz (10 12 Hertz), moduleras med information och överförs från en sändare till en mottagare på ett relativt kort avstånd. Infraröd datakommunikation har i dagsläget en ledande roll när det gäller trådlös dataöverföring för bärbara datorer, handdatorer, digital kameror, mobiltelefoner och andra mobila datamaskiner. Genom att dessa mobila enheter har blivit allt populärare har även efterfrågan på IR-lösningar ökat. Trådlösa och spontana nätverk 13

Förstudie Exempel på några användningsområden: Skicka ett dokument från sin bärbara dator till en skrivare. Utväxla visitkort med hjälp av handdatorer. Synkronisera sin kalender och telefonbok mellan sin stationära dator och sin bärbara dator. Skicka fax från sin bärbar dator genom en vanlig telefon. Överföra bilder från sin digitalkamera till sin stationära dator. Infraröd kommunikation inkluderar en transceiver i de båda enheter som kommunicerar med varandra. Därtill kan det krävas att en eller båda enheterna innehåller speciell mjukvara så att kommunikationen dem emellan kan synkroniseras. Ett exempel är det speciella stöd för IR som ingår i Microsofts operativsystem Windows 95. I standarden IrDA-1.1 är den maximala datastorleken som kan överföras 2048 bytes och dess maximala överföringshastighet är 4 Mbps. En överföringshastighet av 16 Mbps är under utveckling. IR kan också användas för tämligen långa sammanlänkningar och det är möjligt för sammanlänkningar inom ett lokalt nätverk (LAN). Den maximala effektiva distansen är något under 2.5 kilometer och den maximala bandbredden är 16 Mbps. Eftersom IR använder sig av ljus för att kommunicera blir den känslig för dimma och andra atmosfäriska störningar [9]. 3.1.3 Handdatorer En handdator är en liten dator som kan hållas i handen, även vid användning, och är utrustad med en tryckkänslig skärm för att möjliggöra inmatning med hjälp av en penna. Till en del modeller kan man ansluta ett litet tangentbord för inmatningen men de allra flesta väljer att enbart använda sig av en penna för att mata in kommandon och text. I dagsläget används en handdator framför allt för enklare tjänster som almanacka, anteckningsbok, e-postredigerare samt adress- och telefonbok. Det finns även mjukvara och hårdvara inom andra områden som t.ex. MP3-spelare, datorspel och GIS (Geografiska informationssystem). I framtiden förväntas mobiltelefonen integreras i handdatorn (s.k. hybridenheter) och då kan funktioner som att få tillgång till Internet förverkligas på ett enkelt sätt. Handdatormarknaden är i stark utveckling och spås en lysande framtid. Palm OS är det dominerande operativsystemet, därefter följer enheter med Windows CE och som trea ligger EPOC. Det finns ytterligare operativsystem men eftersom de har en oansenlig del av marknaden behandlar vi dem inte här [10]. Palm OS Palm OS är ett operativsystem som används av handdatorer från Palm Computing samt av andra handdatortillverkare som använder det på licens. Palm OS designades från början att passa i små handburna enheter med en specifik storlek och en specifik skärmstorlek. Detta har senare visat sig vara ett klokt val att fokusera på dessa detaljer och Palm OS har till stor del denna designfilosofi att tacka för att man idag är det ledande operativsystemet på handdatormarknaden. 14 Trådlösa och spontana nätverk

Förstudie I Palm OS kan användaren kan endast ha en applikation aktiv åt gången. Endast den aktiva applikationen kan exekvera kod, d.v.s. inga bakgrundsprocesser kan köras. Dock kan flera processer hållas i minnet samtidigt. Det utrymme som systemet behöver för en applikation som körs finns i en dynamiskt återanvändbar area av minnet. Koden för applikationerna och dess relaterade databaser lagras på en permanent area som inte går att återanvända under körning. Palm Computing valde att inte inkludera ett tangentbord i sina handdatorer eftersom de ville producera en liten och smidig handdator. De tog även lärdom av en tidigare penndator, Newton från Apple, då de valde att inte stöda igenkänning av handstil. Istället får palmanvändare lära sig att texta med speciella symboler. Genom att välja denna lösning kan storleken på Palm OS hållas nere. De applikationer som är inbyggda är almanacka, adressbok, att-göra-lista, minnesanteckningar, kalkylator och lösenordsskydd. Nya applikationer kan utvecklas och läggas till på ett enkelt och snabbt sätt med hjälp av olika utvecklingsverktyg. Palm OS innehåller även ett gränssnitt för att kommunicera med infrarött ljus, TCP/IP och med streckkodsavläsare [11]. Den stora fördelen med Palm OS ifrån en utvecklares perspektiv är att det finns ett stort antal användare som kan tänkas köpa applikationen. Eftersom Palm Computing är det ledande företaget på handdatormarknaden har de fördelen av att kunna styra marknaden i den riktning de vill. Detta i motsats till många andra företag som måste följa med i bakvattnet till företag som producerar hårdvara och operativsystem. Eftersom Palm OS byggdes upp från grunden för att köras på små och energisnåla enheter så är den inte bara anpassad för handdatorer utan kan och kommer med stor sannolikhet att användas i allt från mobiltelefoner till styrsystem för maskiner. Palm har stöd och bra kontakter med andra marknadsledande företag som IBM, Oracle, Sybase och SAP. Genom dessa samarbeten kan nya produkter genereras och Palm stärka sin ställning ytterligare. Den största nackdelen med Palm OS när man t.ex. jämför med Windows CE är att utvecklaren måste ta till sig en hel del ny kunskap för att kunna bygga applikationer. Till Windows CE finns det redan versioner av verktygen Visual Basic och Visual C++ vilket resulterar i mycket planare inlärningskurva för utvecklaren. Den monokroma skärm som de flesta Palmmaskinerna är utrustade med har även varit ett irritationsmoment för vissa utvecklare och användare. Nyligen kom lösningen på detta problem genom att Palm lanserade en maskin med färgskärm, dock till priset av att maskinen behöver mer ström och kostar mer. Viss kritik har även riktats mot den processor, Motorola 68328 (Dragonball), som Palm använder eftersom den är för begränsad i fråga om hastighet och beräkningskapacitet [12]. Windows CE Microsofts Windows CE är ett nerbantat operativsystem som är designat för att användas i små datorsystem. Microsofts vision med Windows CE är att den ska användas inom allt ifrån handburna datorer och mobiltelefoner till bil- och industrisystem. Windows CE, som oftast förkortas CE, har haft framgångar inom bilindustri men inom affärs- och privatmarknaden ligger de långt efter 3Coms Palm. Trådlösa och spontana nätverk 15

Förstudie De utvecklare som är vana vid att utveckla program för olika Windows-varianter ställs inför nya utmaningar när de ska skriva applikationer baserade på Windows CE. I de flesta fall måste programkod som utvecklats för Windows API ombearbetas om programmet ska kunna köras på CE API. Detta med anledning av CE-enheters begränsade minnesutrymme och storleken på bildskärmen. För närvarande kan CE-maskiner delas in i följande tre grupper: Handdatorer (modell större) handburna maskiner som stöder en bildskärmsstorlek på 640*240 pixlar, ett litet tangentbord, ljudmöjligheter och plats för minneskort och PCMCIA-kort. Handdatorer (modell mindre) maskin i fickformat som stöder en bildskärmsstorlek på 240*320 pixlar, varken tangentbord eller mus, ljudmöjligheter och plats för minneskort. Bildator bilsystem som stöder röststyrning, trådlös kommunikation och inbyggda navigeringssystem. Alla dessa använder ett gränssnitt som är mycket likt standard Windows. Vilket kan tyckas vara bra men många anser att just detta är en av CEs största begränsning. Anledning till detta är att gränssnittet blir för omständigt för de applikationer som en handdator är gjord för. Ett exempel är att det behövs flera klick och menyval innan man kan slå upp ett telefonnummer i sin adressbok än det behövs i en handdator av typen Palm. Det verkar som om Windows CE och Palm OS har haft olika filosofier när det gäller designen av gränssnittet. Palm OS har designats för att få ett effektivt och enkelt gränssnitt och Windows CE verkar ha designats för att i första hand likna standard Windows. Windows CE är designad för att köras i minnes- och strömbegränsade enheter, men det är även designat för man enkelt ska kunna ansluta och använda ny hårdvara. Den största finessen som skiljer ut Windows CE från sina konkurrenter är att CE är ett operativsystem som utnyttjar 32-bitar, flertrådighet och med möjlighet till parallellkörning. Återigen dyker skillnaden i designfilosofi upp. Palms designers har optimerat för ett enkelt och strömbesparande operativsystem eftersom de antog att innehavaren av handdatorn ville ha enkel information på ett snabbt och enkelt sätt. Konstruktörerna av Windows CE optimerade istället för mer kraftfulla lösningar som erbjuder möjlighet att köra processorintensiva applikationer, som t.ex. MP3-spelare och videospelare. Windows CE kan givetvis synkronisera sig mot en stationär dator och i vissa program finns funktioner för att byta t.ex. e-post och kontakter mellan sin stationär dator och sin handdator. Andra funktioner och finesser som finns på CE-maskiner är följande: strömbesparande funktioner, enklare ljudfunktioner, möjlighet att sätt in mer minne samt möjlighet till seriell, infraröd och nätverkskommunikation. Trots likheten med Windows har inte CE fått den expansion som många förväntade sig. De faktorer som brukar lyftas fram som anledningen till att inte CE har blivit en succé är följande punkter: mycket minne krävs, användargränssnittet är för omständigt och långsamt samt att CE-maskiner kräver mycket ström vilket leder till mycket begränsad användningstid [13]. Microsofts senaste grepp för att locka nya kunder till CE-världen är att version 3.0 av CE konstruerats om och givits namnet Pocket PC [13]. Skillnaderna mellan Pocket PC och Windows CE är framför allt att Pocket PC kommer att bli enklare, snabbare, minnessnålare och genom att det tar upp mindre minne så blir den även billigare än Windows CEmaskiner. Användargränssnittet ska även förbättras och bli mer intuitivt och kräva färre 16 Trådlösa och spontana nätverk

Förstudie kommandon med pennan för att starta en applikation. Dessutom förväntas förbättringar vad gäller trådlös uppkoppling och kommunikation samt bättre integration med stationära system [14]. EPOC EPOC är ett operativsystem som är designat för små, portabla handdatorer och mobiltelefoner. EPOC är baserat på ett tidigare operativsystem från Psion som var den första större tillverkaren av handdatorer. Namnet EPOC härstammar från företagets tro på att världen är på väg att inträda i en ny epok av personlig bekvämlighet (eng. a new epoch of personal convenience ). Psion bildade 1998 konsortium Symbain tillsammans med Ericsson, Nokia och Motorola, lite senare anslöt sig även Matsushita [15]. EPOC är ett operativsystem som utnyttjar 32-bitar, med möjlighet till parallellkörning och som stöder ett pennbaserat grafiskt gränssnitt. Det är skrivit i programspråket C++ och använder en objektorienterad design. Koden för själva operativsystem är väldigt kompakt vilket medför att det kan få plats i små ROM-minnen. EPOCs användningsområden skiljer sig inte i så stor utsträckning från Palm OS och Windows CE. Den enda skillnaden är att EPOC är mer utbyggd för att kommunicera med mobiltelefoner än de övriga. EPOC kan användas på olika mikroprocessorer men fungerar bäst på plattformar utrustade med arkitekturen Advanced RISC Machines (ARM). Symbian anser att ARM är den bästa plattformen i termer av instruktioner per sekund, per watt och per dollar. Symbian erbjuder utvecklingsverktyg för C++ och OPL som är ett BASIC liknande språk. Det har även släppts en testversion för att möjliggöra utveckling i Java och det finns hjälpmedel i form av en emulator för utvecklare [16]. EPOC är inte lika kompatibelt med Windows-datorer som CE eller lika välspritt som Palm OS men är trots det ett väldigt lättanvänt och kraftfullt sätt att kommunicera med sin handdator, mobiltelefon eller hybrid. Lägg där till att EPOCs infraröda överföring är kompatibel med vissa mobiltelefoner och modem så förstår man varför EPOC har många trogna anhängare [17]. Det bådar även gott för framtiden att nästa version av EPOC ska innehålla bl.a. Bluetooth och WAP-bläddrare samt att säkerheten ska förbättras [16]. 3.1.4 Små virtuella javamaskiner Vi intresserade oss i ett tidigt stadium av arbetet för Jini och för att kunna använda den tekniken var man tvungen att använda en JVM (java virtual machine) för att möjliggöra körning av Jini på en handdator. Eftersom handdatorer är små både till formatet och i minnesutrymmet krävs det att den virtuella maskin som skall användas är mycket minnessnål. Vi valde att undersöka och experimentera med de två mest spridda produkterna, d.v.s. KVM från Sun och Waba från Wabasoft. Ett alternativ, som inte var aktuellt i vårt fall, till att programmera i Java och köra programmet på en liten JVM är att programmera i ett språk som är specifikt för en viss maskin. Vilket oftast innebär att man skriver kod i C/C++ för ett speciellt API. Dessa APIer tenderar i många fall att bli stora och därigenom svåra att programmera, underhålla och framför allt att små programmeringsfel kan skapa stora applikationsfel. KVM KVM är en extremt minnessnål implementation av en JVM och har utvecklats av Sun i nära samarbete med 3Com. KVM utgör kärnan i Java 2 Micro Edition (J2ME) och den är Trådlösa och spontana nätverk 17

Förstudie lämpad för 16/32-bit RISC/CISC mikrokontroller som har minimalt med minne. Den behöver som mest ett par hundra kilobyte och skalar man ner till ett minimum kan man komma ner till att den endast behöver 40 kb RAM-minne. Tanken med KVM är att den inte bara ska kunna användas i handdatorer utan även i olika små elektriska maskiner som t.ex. mobiltelefoner, personsökare och myntautomater. Detta gör det möjligt för små apparater att klara av att chatta, spela, skicka e-post och e-handla. Sun och 3Com är två giganter på datormarknaden vilket borgar för kontinuerlig uppdatering av produkten och genomslagskraft på marknaden. I dagsläget är det den bantade JVM som är mest spridd på marknaden. Det är dessutom gratis att ladda ner och prova den. Den största nackdelen med KVM är att den ännu bara finns till handdatorer av typen Palm och att den bara uppfyller en delmängd av hela JVM-specifikationen [18]. Waba Waba är utvecklat av Wabasoft och är en egen programmeringsplattform som inkluderar en liten virtuell maskin, den s.k. Waba virtual machine. Waba har designats för små, mobila prylar, vilket märks genom att Waba virtual machines inklusive grundklasser endast tar upp 64Kb av minnet och kan köra program som tar upp mindre än 10Kb. Syntaxen i Waba är en delmängd av Java-syntax. Detta gör att systemutvecklare som kan Java även lär sig att programmera Waba snabbt. Waba-program kan även skrivas i utvecklingsverktyg för Java och Waba-program kan också köras som javaapplets eller javaapplikationer. Waba-program kan köras på PalmPilot eller Windows CE enheter utan att koden behöver ändras om enheten innehåller en Waba Virtual Machine. Det enda som behövs är att kompilera om programmet så att det passar sitt format, d.v.s. Palm OS eller Windows CE. Waba kan laddas ner och provas kostnadsfritt. En nackdel med Waba är att inga stor företag står bakom denna teknik ännu och det märks genom att den inte har någon större spridning på marknaden [19]. Övriga små virtuella javamaskiner På marknaden finns även en del andra små virtuella javamaskiner som i de flesta fall är gratis att ladda ner och prova. Några av dess följer nedan. J9 kommer från IBM och har en storlek på 177Kb. Den ingår i deras VisualAge Micro Edition och den är anpassad för att fungera på Palm [20]. Jeode har utvecklats av Isignia och dess storlek kan var allt från 360 KB till 2.7MB. Den stöder miljöer som Windows CE, Linux, Windows NT och VxWorks. Jeodekonfigurationen för Windows CE/MIPS har klarat av Sun s PersonalJava kompabilitetstest [21]. CrEme är en minnessnål JVM som är speciellt utformad för att köras i maskiner med Windows CE. Den utvecklas och säljs av företaget NSIcom [22]. Psion har även de tagit fram en virtuell javamaskin som fungerar på enheter med EPOC som operativsystem [23]. 18 Trådlösa och spontana nätverk

Förstudie 3.1.5 Robot Vi ville använda en rörlig robot som del i vår experimentella uppkoppling och därigenom erhålla en mer illustrativ och levande testmiljö samt att integrera ytterligare en teknik. Nedanstående tekniker undersöktes och utreddes innan vi gjorde vårt val. Lego Företaget Lego levererar ett robotpaket med namnet Lego Mindstorms Robotics Invention System 1.5. Paketet innehåller 700 byggbitar, styrenhet, sensorer, motorer, utvecklingsverktyg och IR-torn för att möjliggöra kommunikation mellan styrenheten och en dator. Tack vare de 700 byggbitarna och att alla sensorer och motorer går att placera på godtyckliga ställen i förhållande till styrenheten har man i stort sett fria händer att konstruera vad man önskar. Dessutom laddar man ner sitt program från datorn till styrenheten trådlöst m.h.a. IR, vilket även bidrar till att göra roboten mer flexibel [24]. En annan fördel var att andra lyckade projekt hade använt sig av Lego Mindstorms, vilket underlättade för vår del genom att vi kunde ta del av lösningar på deras problem [25]. Aibo Sonys robothund heter Aibo och skiljer sig mot andra traditionella robotar genom att den är utrustad med ett autonomt beteende. Detta genom att den har inbyggda funktioner för känslor, instinkter, lärande och växande. Aibo uttrycker sina känslor och kommunicerar med människor genom ge ifrån sig ljud, ändra färg på ögonen, vifta på svansen och mer eller mindre lyda husse. Aibo tar in information från en digitalkamera, två mikrofoner, en balanssensor och tryckkänsliga partier på kroppen. Robothunden styrprogram är lagrat i ett 8 Mb stort minneskort och har man köpt till ett programpaket till sin PC kan man skriva egna program till Aibo. Programmet laddas då ner från den stationär datorn till minneskortet vilket sedan placeras inne i robothunden. En nackdel med Sonys robothund är det höga priset, drygt 30 000 kronor. En annan nackdel är att egna konstruktioner kan bli väldigt svåra och avancerade att implementera p.g.a. att Aibo är så pass komplett som den är [26][27]. Growbot Det finns flera olika byggsatser på marknaden och en bland dessa är Growbot, en programmerbar robotbil. Growbots styrdator, Basic-Stamp II, är en mikrokontroller med 16 I/O som är baserad på en PIC 16C57 från MicroChip. Programmen till Basic-Stamp II skrivs i en Basic-variant och laddas ner från en stationär dator till styrdatorn genom en seriekabel. I byggsatsen ingår flera olika sensorer som kan användas för att vidareutveckla sin robotbil. Trots detta känns denna byggsats alltför tillrättalagd och vill man förändra sin konstruktion radikalt krävs det stora ingrepp på Growbots styrkort [28]. 3.2 Utvalda tekniker Eftersom vår tid var begränsad hade vi inte tid att experimentera och utvärdera varje teknik så noggrant som hade önskats. Därför grundlades våra val av tekniker till största del genom inläsning och i några enstaka fall av kortare undersökningar. De utvalda tekniker beskrivs mer ingående i kapitel 4-6. Trådlösa och spontana nätverk 19

Förstudie Nätverksdistributör När vi gjorde vårt val av nätverksdistributör var vi intresserade av en ny och lovande teknik. Vi valde Jini som dessutom är gratis att prova och enkel att få tag på. Sladdersättare Vårt val av Bluetooth grundade sig på att den var den teknik som vi tyckte verkade mest intressant. Det som gjorde att vi fascinerades av denna teknik var att den är helt ny samt att mycket tyder på att den är framtidens sladdersättare. Handdator I vårt val av handdator bestämde vi oss för Palm med anledning av att den besitter den största delen av handdatormarknaden och att vi hade tillgång till Palmdatorer genom GoldPen samt att vi under vår undersökning av marknaden träffade på andra projekt som använt den. Små virtuella javamaskiner I stort sett alla håller måttet på att vara små, gratis att ladda ner och prova. Vi valde KVM eftersom den fungerar på Palm och att den kommer från Sun som även gjort Jini och således tyckte vi det borgade för att de skulle fungerar ihop. En annan sak som stärkte vår tro på KVM var att ett annat liknande projekt [25] hade använt sig av den i sitt arbete. Robot Valet av robot var inte svårt då Lego Mindstorm motsvarade våra krav med att vara en rörlig, lättkonstruerad, relativt billig, utrustad med trådlös överföring mellan datorn och roboten samt att andra projekt hade använt sig av denna teknik 20 Trådlösa och spontana nätverk