ˇ ´ UCEN ´I TECHNICKE ´ V BRNE ˇ VYSOKE BRNO UNIVERSITY OF TECHNOLOGY
ˇ ´ICH TECHNOLOGI´I FAKULTA INFORMACN ˇ ´ITACOV ˇ ´ ´ ´ U ˚ USTAV POC YCH SYSTEM FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS
BLUETOOTH OBEX FTP KLIENT PRO POCKET PC
´ RSK ˇ ´ PRACE ´ BAKALA A BACHELOR’S THESIS
´ AUTOR PRACE AUTHOR
BRNO 2008
ˇ SKARECK ˇ ´S ´ TOMA Y
ˇ ´I TECHNICKE ´ V BRNE ˇ VYSOKE´ UCEN BRNO UNIVERSITY OF TECHNOLOGY
ˇ ´ICH TECHNOLOGI´I FAKULTA INFORMACN ˇ ´ITACOV ˇ ´ ´ ´ U ˚ USTAV POC YCH SYSTEM FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS
BLUETOOTH OBEX FTP KLIENT PRO POCKET PC BLUETOOTH OBEX FTP CLIENT FOR POCKET PC
´ RSK ˇ ´ PRACE ´ BAKALA A BACHELOR’S THESIS
´ AUTOR PRACE
ˇ SKARECK ˇ ´S ´ TOMA Y
AUTHOR
´ VEDOUC´I PRACE SUPERVISOR
BRNO 2008
ˇ Ing. JAROSLAV SKARVADA
Abstrakt Tato bakal´ aˇrsk´ a pr´ ace se zab´ yv´ a problematikou synchronizace zaˇr´ızen´ı s operaˇcn´ım syst´emem Microsoft Windows Mobile za pouˇzit´ı technologie Bluetooth. Popisuje princip synchronizace, technologii Bluetooth a v´ yvoj aplikac´ı pro operaˇcn´ı syst´em Windows Mobile. Tyto znalosti jsou pot´e vyuˇzity pˇri n´ avrhu a implementaci synchronizaˇcn´ı aplikace.
Kl´ıˇ cov´ a slova OBEX, Pocket PC, Synchronizace, Bluetooth
Abstract This bachelors thesis deals with problematic of Microsoft Windows Mobile device synchronization via Bluetooth technology. It describes principle of data synchronization, Bluetooth technology and application development process for Windows Mobile. The design and implementation of synchronizing application is also presented.
Keywords OBEX, Pocket PC, Synchronization, Bluetooth
Citace ˇ Tom´aˇs Skareck´ y: Bluetooth OBEX FTP klient pro Pocket PC, bakal´aˇrsk´a pr´ace, Brno, FIT VUT v Brnˇe, 2008
Bluetooth OBEX FTP klient pro Pocket PC Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem tuto bakal´ aˇrskou pr´aci vypracoval samostatnˇe pod veden´ım pana Ing. Jaroslava ˇ Skarvady a uvedl vˇsechny liter´ arn´ı prameny a publikace, ze kter´ ych jsem ˇcerpal ....................... ˇ Tom´aˇs Skareck´ y 12. kvˇetna 2008
Podˇ ekov´ an´ı ˇ Chtˇel bych podˇekovat m´emu vedouc´ımu panu Ing. Jaroslavovi Skarvadovi za ochotu a ˇcas, kter´ y mi vˇenoval.
ˇ c Tom´
aˇs Skareck´ y, 2008. Tato pr´ ace vznikla jako ˇskoln´ı d´ılo na Vysok´em uˇcen´ı technick´em v Brnˇe, Fakultˇe informaˇcn´ıch technologi´ı. Pr´ ace je chr´ anˇena autorsk´ym z´ akonem a jej´ı uˇzit´ı bez udˇelen´ı opr´ avnˇen´ı autorem je nez´ akonn´e, s v´yjimkou z´ akonem definovan´ych pˇr´ıpad˚ u.
Obsah ´ 1 Uvod ˇ en´ı pr´ 1.1 Clenˇ ace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Synchronizace 2.1 Synchronizace soubor˚ u . . . . . . . . . . . . 2.2 Rozˇsiˇruj´ıc´ı moˇznosti synchronizace soubor˚ u 2.3 ActiveSync . . . . . . . . . . . . . . . . . . 2.3.1 Nedostatky ActiveSync . . . . . . . 3 Bluetooth ´ 3.1 Uvod . . . . . . . . . . . . . . . . . . . . 3.1.1 Historie . . . . . . . . . . . . . . 3.1.2 Vyuˇzit´ı . . . . . . . . . . . . . . 3.2 Protokoly . . . . . . . . . . . . . . . . . 3.2.1 Bluetooth Radio . . . . . . . . . 3.2.2 Baseband . . . . . . . . . . . . . 3.2.3 HCI . . . . . . . . . . . . . . . . 3.2.4 L2CAP . . . . . . . . . . . . . . 3.2.5 RFCOMM . . . . . . . . . . . . 3.3 Profily . . . . . . . . . . . . . . . . . . . 3.3.1 Generic Access Profile . . . . . . 3.3.2 Serial Port Profile . . . . . . . . 3.3.3 Generic Object Exchange Profile 3.4 Bluetooth a WiFi . . . . . . . . . . . . . 3.5 Komunikace . . . . . . . . . . . . . . . . 3.5.1 P´ arov´ an´ı . . . . . . . . . . . . . 3.5.2 Zabezpeˇcen´ı . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
4 Protokol OBEX 4.1 Form´ at pˇr´ıkazu . . . . . . . . . . . . . . . 4.2 Operace protokolu OBEX . . . . . . . . . 4.2.1 Operace Spojen´ı (Connect) . . . . 4.2.2 Operace Odpojen´ı (Disconnect) . . 4.2.3 Operace vloˇzen´ı (Put) . . . . . . . 4.2.4 Operace staˇzen´ı (Get) . . . . . . . 4.2.5 Operace nastaven´ı cesty (SetPath) 4.2.6 Operace pˇreruˇsen´ı (Abort) . . . . . 4.3 Profily vyuˇz´ıvaj´ıc´ı protokol OBEX . . . . 5
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . .
7 7
. . . .
9 9 9 10 10
. . . . . . . . . . . . . . . . .
11 11 11 11 11 12 12 12 12 12 13 13 13 13 13 14 14 15
. . . . . . . . .
16 16 16 16 17 17 17 17 18 18
4.3.1
File Transfer Profile . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 V´ yvoj aplikac´ı pro Windows Mobile 5.1 Softwarov´e poˇzadavky . . . . . . . . 5.2 V´ yvojov´ a prostˇred´ı . . . . . . . . . . 5.2.1 Ladˇen´ı . . . . . . . . . . . . . 5.3 Zdroje informac´ı a dokumentace . .
19
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
20 20 20 21 21
6 Rozbor probl´ emu 6.1 Komunikace . . . . . . . . . . . . . . . 6.2 OBEX FTP a jeho omezen´ı . . . . . . 6.2.1 Informace o souboru na serveru 6.2.2 Omezen´ı . . . . . . . . . . . . . 6.3 Synchronizace . . . . . . . . . . . . . . 6.3.1 Porovn´ an´ı soubor˚ u . . . . . . . 6.3.2 Konfliktn´ı stav . . . . . . . . . 6.3.3 Souˇcasn´ y pˇr´ıstup v´ıce zaˇr´ızen´ı . 6.3.4 Chybov´e stavy . . . . . . . . . 6.4 Konfigurace . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
22 22 22 22 23 23 23 23 23 24 24
7 Popis implementace 7.1 Bluetooth . . . . . . . . . . . . . . . . . . 7.1.1 Rozhran´ı pro OBEX . . . . . . . . 7.1.2 Vyhled´ av´ an´ı zaˇr´ızen´ı . . . . . . . . 7.1.3 Pˇripojen´ı . . . . . . . . . . . . . . 7.1.4 Pˇrenos dat . . . . . . . . . . . . . 7.2 Synchronizace . . . . . . . . . . . . . . . . 7.2.1 Informace o synchronizaci adres´aˇre ˇ sen´ı porovn´ 7.2.2 Reˇ an´ı souboru . . . . . 7.2.3 Synchronizace v´ıce zaˇr´ızen´ı . . . . 7.2.4 Oˇsetˇren´ı chybov´ ych stav˚ u . . . . . 7.3 Konfigurace . . . . . . . . . . . . . . . . . 7.4 Instalace . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
25 25 25 25 25 26 26 26 26 27 28 28 28
8 Z´ avˇ er 8.1 Moˇzn´ a rozˇs´ıˇren´ı do budoucna . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Testov´ an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29 29 29
A V´ yvojov´ e diagramy
31
B Uˇ zivatelsk´ a pˇ r´ıruˇ cka B.1 Konfiguraˇcn´ı aplikace . . . . . . . . . . B.1.1 Nastaven´ı vzd´ alen´ ych zaˇr´ızen´ı . B.1.2 Nastaven´ı adres´ aˇr˚ u . . . . . . . B.1.3 Nastaven´ı obecn´ ych vlastnost´ı . B.1.4 Nastaven´ı logu . . . . . . . . . B.2 Synchronizaˇcn´ı aplikace . . . . . . . . C Obsah CD
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
33 33 33 34 35 35 35 38
6
Kapitola 1
´ Uvod Mobilita elektronick´ ych zaˇr´ızen´ı stoup´a kaˇzd´ ym dnem. Dostupnost kapesn´ıch poˇc´ıtaˇc˚ u, laptop˚ u a mobiln´ıch telefon˚ u, kter´e jiˇz pomalu zaˇc´ınaj´ı dosahovat funkˇcnosti, na kterou jsme zvykl´ı sp´ıˇse u klasick´ ych stoln´ıch poˇc´ıtaˇc˚ u, je na velmi vysok´e u ´rovni. Mnoho lid´ı vyuˇz´ıv´ a pro svou pr´ aci i z´ abavu v´ıce tˇechto zaˇr´ızen´ı. Stav, kdy pracuj´ı na v´ıce neˇz jednom zaˇr´ızen´ı, ovˇsem zcela logicky vyvol´ av´ a poˇzadavek na aktu´alnost dat, kter´a k pr´aci vyuˇz´ıvaj´ı. Z tohoto d˚ uvodu je nutn´e zaˇr´ızen´ı mezi sebou synchronizovat a to nejl´epe bez nutnosti jak´ekoliv ˇcinnosti uˇzivatele. V zaˇr´ızen´ıch tohoto typu se st´ ale ˇcastˇeji objevuje technologie Bluetooth, kter´a je urˇcena pro pˇrenos dat na kr´ atkou vzd´ alenost. Nahrazuje zastaral´ y a probl´emov´ y pˇrenos pˇres infraˇcerven´ y port. Vˇetˇs´ı rychlost a moˇznost komunikovat, i pokud mezi zaˇr´ızen´ımi nen´ı pˇr´ım´ a viditelnost, t´eto technologii pˇrin´ aˇs´ı velkou oblibu a rozˇs´ıˇrenost. Moˇznosti technologie Bluetooth mohou uspokojit nˇekter´e poˇzadavky, kter´e jsou kladeny na synchronizaci dat. Aplikace, kter´a jich bude vyuˇz´ıvat, umoˇzn´ı synchronizaci dat zcela automaticky mezi t´emˇeˇr libovoln´ ym poˇctem zaˇr´ızen´ı vybaven´ ych Bluetooth adapt´erem. Tato pr´ ace navazuje na znalosti z´ıskan´e v pˇredmˇetu semestr´aln´ı projekt. C´ılem tohoto pˇredmˇetu bylo sezn´ amit se s principem v´ yvoje aplikac´ı pro operaˇcn´ı syst´em Windows Mobile a s protokolem OBEX.
1.1
ˇ Clenˇ en´ı pr´ ace
V kapitole 2 je pops´ an z´ akladn´ı princip synchronizace. D´ale jsou zde zm´ınˇeny nejzn´amˇejˇs´ı n´astroje, kter´e je moˇzn´e pro synchronizaci pouˇz´ıt a tak´e nedostatky, kter´ ymi tyto aplikace trp´ı. Kapitola 3 se zab´ yv´ a technologi´ı Bluetooth. Struˇcnˇe popisuje moˇznosti t´eto technologie a z´akladn´ı protokoly. Nakonec uv´ad´ı rozd´ıly mezi jednotliv´ ymi verzemi. Kapitola 4 popisuje podrobnˇeji protokol OBEX. Zvl´aˇstn´ı podkapitola je vˇenov´ana profilu FTP, kter´ y je vyuˇz´ıv´ an pro pˇrenos soubor˚ u mezi zaˇr´ızen´ımi pomoc´ı Bluetooth. V kapitole 5 je pops´ an zp˚ usob v´ yvoje aplikac´ı pro operaˇcn´ı syst´em Microsoft Windows Mobile. Jsou zde vyps´ any nutn´e softwarov´e prostˇredky a dostupn´a v´ yvojov´a prostˇred´ı. Kapitola 6 rozeb´ır´ a problematiku synchronizace.
7
Kapitola 7 popisuje samotnou implementaci programu. Na z´avˇer dokumentu jsou pops´ any moˇzn´a budouc´ı rozˇs´ıˇren´ı a nedostatky, kter´e st´avaj´ıc´ı implementace obsahuje.
8
Kapitola 2
Synchronizace Synchronizace je proces, pˇri kter´em doch´az´ı ke sjednocen´ı dat, nebo stav˚ u na v´ıce r˚ uzn´ ych m´ıstech.
2.1
Synchronizace soubor˚ u
Synchronizace soubor˚ u je proces, po jehoˇz probˇehnut´ı m´a dva a v´ıce adres´aˇr˚ u poˇzadovan´ y aktu´aln´ı obsah. Pokud dojde v jednom z nich ke zmˇenˇe souboru, smaz´an´ı nebo naopak k pˇrid´an´ı souboru je tato zmˇena automaticky prom´ıtnuta do druh´eho adres´aˇre pˇri dalˇs´ı synchronizaci. Rozliˇsujeme dva druhy synchronizace a to jednosmˇ ernou a obousmˇ ernou. Pˇri jednosmˇern´e synchronizaci jsou data pˇren´aˇsena pouze ze zdrojov´eho m´ısta na m´ısto c´ılov´e, k pˇrenosu opaˇcn´ ym smˇerem vˇsak nedoch´az´ı. Tento typ synchronizace je tak´e oznaˇcov´ an jako zrcadlen´ı dat a m˚ uˇze b´ yt vyuˇz´ıv´an napˇr´ıklad u z´alohov´an´ı. Obousmˇern´a synchronizace prob´ıh´ a, jak jiˇz n´ azev napov´ıd´ a, obˇema smˇery. Jej´ım v´ ysledkem jsou tedy dva identick´e adres´aˇre.
2.2
Rozˇ siˇ ruj´ıc´ı moˇ znosti synchronizace soubor˚ u
Nˇekter´e synchronizaˇcn´ı n´ astroje obsahuj´ı rozˇsiˇruj´ıc´ı funkce, jejichˇz u ´ˇcelem je uˇsetˇrit ˇcas, m´ısto nebo zabr´ anit moˇzn´ ym ztr´at´am dat a poskytnout tak uˇzivateli vˇetˇs´ı komfort neˇz jak´ y nab´ız´ı jednoduch´ a synchronizace. Mezi tyto funkce patˇr´ı napˇr´ıklad: • Komprese pˇren´ aˇsen´ ych dat. Pˇri pˇrenosu dat pˇres s´ıt’ m˚ uˇze d´ıky jejich velikosti doch´azet ke zpomalen´ı procesu synchronizace. Redukce pˇren´aˇsen´ ych dat pomoc´ı komprimace tento jev omezuje. • Detekce zmˇen v souborech ve zdrojov´em i c´ılov´em m´ıstˇe a odpov´ıdaj´ıc´ı reakce na pˇr´ıpadn´ y konflikt. • Moˇznost pˇren´ aˇset pouze ˇc´ asti soubor˚ u, kter´e byly zmˇenˇeny. Tato schopnost v´ yraznˇe sniˇzuje mnoˇzstv´ı dat, kter´e je nutn´e pˇren´est bˇehem synchronizace. • Schopnost zobrazit chystan´e zmˇeny jeˇstˇe pˇredt´ım, neˇz jsou provedeny. • Schopnost zobrazit rozd´ıly mezi c´ılov´ ym a zdrojov´ ym m´ıstem.
9
2.3
ActiveSync
ActiveSync je n´ astroj dod´ avan´ y firmou Microsoft, kter´ y zajiˇst’uje veˇskerou komunikaci mezi poˇc´ıtaˇcem a pocket PC. Umoˇzn ˇuje pˇr´ım´ y pˇr´ıstup k soubor˚ um, sd´ılen´ı s´ıtˇe, synchronizaci soubor˚ u a synchronizaci s Microsoft Outlook. V souˇcasnosti je to zˇrejmˇe nejlepˇs´ı n´astroj, kter´ y je k tˇemto ˇcinnostem dostupn´ y. Pocket PC je s n´ım velmi silnˇe prov´az´ano a vyuˇz´ıvaj´ı ho i jin´e aplikace. ActiveSync se skl´ ad´ a ze dvou program˚ u, z nichˇz jeden mus´ı bˇeˇzet na poˇc´ıtaˇci, druh´ y v pocket PC, a komunikuj´ı mezi sebou. Propojen´ı je moˇzn´e pomoc´ı USB kabelu, nebo pomoc´ı technologie Bluetooth.
2.3.1
Nedostatky ActiveSync
Nev´ yhodou synchronizace soubor˚ u pˇres ActiveSync je pˇredevˇs´ım omezen´a moˇznost nastaven´ı adres´ aˇr˚ u, u kter´ ych m´ a synchronizace prob´ıhat. Za nev´ yhodu m˚ uˇze b´ yt povaˇzov´ an i fakt, ˇze je nutn´e aby byl ActiveSync spuˇstˇen i na poˇc´ıtaˇci, nejen na Pocket PC. Tento nedostatek je vˇsak bohatˇe vykoupen v´ yhodami, kter´e pˇrin´aˇs´ı. Hlavnˇe v moˇznostech rozhodov´ an´ı pˇri konfliktn´ım stavu dvou soubor˚ u. Nemoˇznost komunikace se zaˇr´ızen´ımi, na kter´ ych nen´ı spuˇstˇen program ActiveSync, vyluˇcuje z procesu synchronizace vˇsechna zaˇr´ızen´ı, kter´a neobsahuj´ı operaˇcn´ı syst´em Windows. Tedy napˇr´ıklad poˇc´ıtaˇce s operaˇcn´ım syst´emem linux. Synchronizace nen´ı moˇzn´a tak´e s pˇr´ıstroji jako jsou mobiln´ı telefony. Jejich kapacita neust´ale vzr˚ ust´a, takˇze to m˚ uˇze b´ yt pro mnoh´e uˇzivatele v´ yznamn´e omezen´ı.
10
Kapitola 3
Bluetooth 3.1
´ Uvod
Bluetooth [4] je syst´em bezdr´ atov´eho pˇrenosu dat na kr´atkou vzd´alenost. Byl navrˇzen za u ´ˇcelem nahradit kabelov´e spojen´ı mezi dvˇema zaˇr´ızen´ımi. Mnoho vlastnost´ı a schopnost´ı je voliteln´ ych, takˇze kaˇzd´ y v´ yrobce m˚ uˇze zvolit pouze to co potˇrebuje, aniˇz by doˇslo k poruˇsen´ı vz´ajemn´e kompatibility. Tento dokument ˇcerp´ a ze specifikace Bluetooth verze 1.1 [1]
3.1.1
Historie
V´ yvoj Bluetooth byl zah´ ajen v roce 1998 firmami Erricson, IBM, Toshiba a Nokia. Specifikace Bluetooth verze 1.0 byly uvolnˇeny 26. ˇcervna 1999, ale v dobˇe uveden´ı nebyla tato technologie dostateˇcnˇe levn´ a, aby se doˇckala masov´eho rozˇs´ıˇren´ı. Pojmenov´ an´ı Bluetooth bylo zvoleno podle jm´ena D´ansk´eho kr´ale Haralda ”Modrozuba” Blaatanda, kter´ y ˇzil v 10. stolet´ı a d´ıky sv´ ym dobr´ ym diplomatick´ ym schopnostem dok´azal sjednotit mezi sebou v´ alˇc´ıc´ı kmeny. Technologie Bluetooth mˇela tak´e sjednotit, avˇsak tentokr´at telekomunikaˇcn´ı a v´ ypoˇcetn´ı techniku.
3.1.2
Vyuˇ zit´ı
Bluetooth je dnes pouˇzito v mnoha zaˇr´ızen´ıch. Jeho v´ yhodou je pomˇernˇe levn´ y hardware a tak´e jeho n´ızk´ a n´ aroˇcnost na energii. Hod´ı se pˇredevˇs´ım tam, kde nen´ı nutn´e pˇren´aˇset velk´e ˇ e vyuˇzit´ı nach´ objemy dat. Cast´ az´ı u mobiln´ıch telefon˚ u, kter´e ho pouˇz´ıvaj´ı pro v´ ymˇenu informac´ı mezi sebou, k pˇripojen´ı n´ahlavn´ı soupravy a pˇr´ıdavn´ ych zaˇr´ızen´ı. Dalˇs´ım m´ıstem vyuˇzit´ı jsou tisk´ arny, nˇekter´e bezdr´atov´e kl´avesnice a pˇrehr´avaˇce.
3.2
Protokoly
Popis technologie Bluetooth lze rozdˇelit do dvou ˇc´ast´ı, a to na popis protokol˚ u a popis profil˚ u. V t´eto sekci je popis z´ akladn´ıch protokol˚ u. Protokoly jsou seˇrazeny do vrstev, kde kaˇzd´a vrstva, kromˇe prvn´ı, je postavena nad vrstvou pˇredchoz´ı. Toto uspoˇr´ad´an´ı je zobrazeno na obr´ azku 3.1. Nejd˚ uleˇzitˇejˇs´ı protokoly jsou pops´any n´ıˇze. Protokolu OBEX je vˇenov´ana samostatn´ a kapitola.
11
Obr´azek 3.1: Vrstvy protokol˚ u
3.2.1
Bluetooth Radio
Bluetoot Radio je nejniˇzˇs´ı vrstva, kter´a definuje poˇzadavky na pˇrenos dat na frekvenˇcn´ım p´asmu 2.4 GHz. Toto p´ asmo je rozdˇeleno na 79 kan´al˚ u po 1 MHz, zaˇc´ın´a na frekvenci 2.402 GHz a konˇc´ı na 2.480 GHz. Re´alnˇe je vˇsak pouˇz´ıv´ano pouze 23 kan´al˚ u.
3.2.2
Baseband
Baseband je fyzick´ a vrstva Bluetooth, kter´a leˇz´ı nad vrstvou Bluetooth Radio. M´a za u ´kol ˇr´ızen´ı spojen´ı a pˇrenosu dat. Poskytuje sluˇzby jako zabezpeˇcen´ı pˇrenosu, korekci chyb. Zpˇr´ıstupˇ nuje tak´e pˇr´ıchoz´ı pakety vyˇsˇs´ım vrstv´am a umoˇzn ˇuje vyhled´av´an´ı jin´ ych zaˇr´ızen´ı, aby k nim bylo moˇzno pˇristupovat.
3.2.3
HCI
Host Controller Interface (HCI) poskytuje rozhran´ı pro ˇr´ızen´ı fyzick´e vrstvy, pro pˇr´ıstup k stavov´ ym informac´ım hardwaru a ke kontroln´ım registr˚ um, vyˇsˇs´ım vrstv´am v hierarchii protokol˚ u.
3.2.4
L2CAP
L2CAP je zkratkou pro Logical Link Control and Adaptation Protocol. Nach´az´ı se nad vrstvou Baseband a vyˇsˇs´ım protokol˚ um poskytuje n´asleduj´ıc´ı funkce. • Pˇren´ aˇsen´ı dat mezi r˚ uzn´ ymi vyˇsˇs´ımi protokoly. • Rozdˇelov´ an´ı a znovu spojov´am´ı paket˚ u. • Jednotnou spr´ avu pˇrenosu ke skupinˇe jin´ ych bluetooth pˇr´ıstroj˚ u. • Quality of service (QoS) spr´avu kvality pro vyˇsˇs´ı protokoly.
3.2.5
RFCOMM
RFCOMM je jednoduch´ y protokol, kter´ y emuluje klasick´ y RS232 s´eriov´ y port nad protokolem L2CAP. Protokol je zaloˇzen na standardu ETSI TS 07.10. RFCOMM. Podporuje 12
aˇz 60 souˇcasnˇe prob´ıhaj´ıc´ıch spojen´ı mezi dvˇema Bluetooth zaˇr´ızen´ımi. Poˇcet skuteˇcnˇe moˇzn´ ych spojen´ı m˚ uˇze b´ yt vˇsak niˇzˇs´ı, z´avis´ı na konkr´etn´ı implementaci Bluetooth adapt´eru. Komunikaci pˇres tento protokol mohou vyuˇz´ıvat dva druhy zaˇr´ızen´ı. • Prvn´ımi jsou koncov´e zaˇr´ızen´ı, kter´e komunikuj´ı mezi sebou. Napˇr´ıklad poˇc´ıtaˇce, tisk´ arny apod. • Druh´ ym typem jsou zaˇr´ızen´ı, pˇres kter´e pouze komunikace proch´az´ı. Napˇr´ıklad modemy. Protokol RFCOMM je navrˇzen tak, ˇze podporuje oba typy zaˇr´ızen´ı a jeho vyuˇzit´ı je pro nˇe totoˇzn´e.
3.3
Profily
Profil definuje, kterou ˇc´ ast specifikace je nutn´e implementovat pro poˇzadovanou funkˇcnost a jak´ ym zp˚ usobem je vyuˇz´ıv´ ana. V Bluetooth je velk´e mnoˇzstv´ı profil˚ u, kter´e jsou seˇrazeny v hierarchick´e struktuˇre. Pokud chce zaˇr´ızen´ı poskytovat funkˇcnost nˇejak´eho vyˇsˇs´ıho profilu, mus´ı tak´e implementovat vˇsechny profily, kter´e se nach´azej´ı pod n´ım. U vˇetˇsiny zaˇr´ızen´ı nejsou vˇsechny profily k dispozici.
3.3.1
Generic Access Profile
Z´akladn´ı Bluetooth profil. Umoˇzn ˇuje vyhled´av´an´ı a ustanoven´ı spojen´ı mezi zaˇr´ızen´ımi. Vˇsechny ostatn´ı profily jsou zaloˇzeny na tomto profilu.
3.3.2
Serial Port Profile
Definuje procedury, kter´e jsou potˇrebn´e pro ustanoven´ı a provoz s´eriov´eho spojen´ı mezi dvˇema zaˇr´ızen´ımi. Pouˇz´ıv´ a protokol RFCOMM. Na tomto profilu jsou postaveny napˇr´ıklad profily: • Headset Profile - Definuje procedury pro komunikaci mezi telefonem a zaˇr´ızen´ım headset. • Dial-up Networking Profile - Definuje procedury pro pˇripojen´ı a pouˇz´ıv´an´ı zaˇr´ızen´ı jako modem. • LAN Access Profile - Umoˇzn ˇuje pˇr´ıstup k zaˇr´ızen´ı pomoc´ı LAN s´ıtˇe. Vyuˇz´ıv´a protokol Point to Point (PPP), kter´ y je postaven´ y nad protokolem RFCOMM.
3.3.3
Generic Object Exchange Profile
Definuje procedury pro vyuˇz´ıv´ an´ı protokolu OBEX. Tomuto protokolu se vˇenuje cel´a kapitola 4.
3.4
Bluetooth a WiFi
WiFi je v souˇcasnosti zˇrejmˇe nejrozˇs´ıˇrenˇejˇs´ı bezdr´atov´a technologie. Pˇr´ım´e srovn´an´ı s Bluetooth je ovˇsem nepˇresn´e, protoˇze obˇe technologie jsou urˇcen´e pro jin´ y typ vyuˇzit´ı. WiFi funguje jako klasick´ y ethernet, zat´ımco Bluetooth je urˇceno k nahrazen´ı kabelov´eho spojen´ı
13
Dosah Rychlost pˇrenosu P´ asmo
Wifi Bluetooth M˚ uˇze b´ yt i nˇekolik kilometr˚ u Dle tˇr´ıdy 1/10/100m aˇz 54 Mb/s aˇz 3 Mb/s 2.4 nebo 5 GHz 2.4 GHz
Tabulka 3.1: Tabulka porovn´an´ı vlastnost´ı mezi dvˇema zaˇr´ızen´ımi. Obˇe technologie komunikuj´ı v p´asmu 2.4 GHz, ale pouˇz´ıvaj´ı jin´ y typ modulace. V´ yhodou WiFi je vyˇsˇs´ı rychlost pˇrenosu a vˇetˇs´ı dosah sign´alu. Naopak pro Bluetooth mluv´ı niˇzˇs´ı cena hardwaru a tak´e menˇs´ı energetick´e n´aroky. Zvl´aˇstˇe n´ızk´e energetick´e n´aroky jsou v zaˇr´ızen´ıch, ve kter´ ych je Bluetooth pouˇzito, velmi d˚ uleˇzit´ ym poˇzadavkem. Porovn´ an´ı vlastnost´ı shrnuje tabulka 3.1.
3.5
Komunikace
Pˇri komunikaci mezi Bluetooth zaˇr´ızen´ımi je jedno ustanoveno jako ˇr´ıd´ıc´ı (master). Na ˇr´ıd´ıc´ı zaˇr´ızen´ı se m˚ uˇze pˇripojit aˇz 7 podˇr´ızen´ ych zaˇr´ızen´ı (slave). Takto vznik´a ad-hoc s´ıt’, kter´ a je oznaˇcovan´ a jako piconet. Vˇsechny zaˇr´ızen´ı v s´ıti piconet se synchronizuj´ı s taktem ˇr´ıd´ıc´ıho zaˇr´ızen´ı. Data mohou b´ yt pˇren´ aˇsena mezi nadˇrazen´ ym zaˇr´ızen´ım a nˇekter´ ym podˇr´ızen´ ym. Role v s´ıti se vˇsak mohou podle potˇreby mˇenit, velmi rychle se m˚ uˇze nadˇrazen´e zaˇr´ızen´ı zmˇenit v podˇr´ızen´e. Piconet Piconet je ad-hoc poˇc´ıtaˇcov´ a s´ıt’ mezi zaˇr´ızen´ımi vyuˇz´ıvaj´ıc´ı technologii Bluetooth, kter´ a umoˇzn ˇuje komunikaci mezi jedn´ım nadˇrazen´ ym zaˇr´ızen´ım a aˇz sedmi podˇr´ızen´ ymi. Aˇz 255 zaˇr´ızen´ı m˚ uˇze ˇcekat na pˇripojen´ı do s´ıtˇe a m˚ uˇze b´ yt pˇripojeno v kter´emkoli okamˇziku. Specifikace dovoluje pouˇzit´ı aˇz deseti tˇechto s´ıt´ı na ploˇse o pr˚ umˇeru deset metr˚ u. Scatternet Scatternet je s´ıt’ sloˇzen´ a ze dvou a v´ıce s´ıti typu piconet. Umoˇzn ˇuje tedy spojit v´ıce neˇz 8 zaˇr´ızen´ı do jedn´e s´ıtˇe. Scatternet m˚ uˇze b´ yt ustanoven, pokud se ˇclen jedn´e s´ıtˇe piconet dostane do dosahu ˇclena jin´e s´ıtˇe piconet. Zaˇr´ızen´ı patˇr´ıc´ı do tˇechto s´ıt´ı piconet mezi sebou mohou komunikovat pˇres spojen´ı ustanoven´e mezi ˇcleny, kteˇr´ı se vid´ı.
3.5.1
P´ arov´ an´ı
P´arov´an´ı zajist´ı bezpeˇcn´e ˇsifrovan´e spojen´ı mezi dvˇema zaˇr´ızen´ımi, kter´e jiˇz nen´ı nutn´e obnovovat pˇri dalˇs´ım spojen´ı. Toto spojen´ı je v´az´ano na adresu Bluetooth adapt´eru a je moˇzn´e ho kdykoliv zruˇsit obˇema zaˇr´ızen´ımi. Na zaˇc´atku p´arov´an´ı je nutn´e zadat na obou zaˇr´ızen´ıch stejn´ y k´ od tzv. PIN. Tento k´od slouˇz´ı jednak k potvrzen´ı souhlasu obou stran s komunikac´ı a je tak´e pouˇzit k vytv´aˇren´ı kl´ıˇc˚ u. V´ ysledkem p´ arov´ an´ı je 128 bitov´ y kl´ıˇc, kter´ y je uloˇzen v obou zaˇr´ızen´ıch a slouˇz´ı k ˇsifrov´ an´ı prob´ıhaj´ıc´ı synchronizace. Tento kl´ıˇc je vygenerov´an kombinac´ı dvou n´ahodn´ ych ˇc´ısel a adres obou zaˇr´ızen´ı.
14
V´ıce informac´ı o p´ arov´ an´ı a zabezpeˇcen´ı pˇrenosu pˇres Bluetooth lze nal´ezt na str´ank´ ach [3].
3.5.2
Zabezpeˇ cen´ı
Zabezpeˇcen´ı dat je v dneˇsn´ı dobˇe velmi d˚ uleˇzit´ ym pojmem. Bezpeˇcnost Bluetooth m˚ uˇzeme rozdˇelit do dvou ˇc´ ast´ı. Za prv´e je to zabezpeˇcen´ı pˇrenosu dat a za druh´e zabezpeˇcen´ı proti neopr´avnˇen´emu pˇr´ıstupu ke sluˇzb´am adapt´eru. Zabezpeˇ cen´ı pˇ renosu dat Protoˇze pˇrenos dat prob´ıh´ a vzduchem, kde je moˇzn´e data odposlouch´avat, je d˚ uleˇzit´e, aby tato data byla, pˇri neopr´ avnˇen´em odposlechu neˇciteln´e. Z toho d˚ uvodu je nutn´e pˇren´aˇsen´ a data ˇsifrovat. Pro pouˇzit´ı ˇsifrov´ an´ı je tˇreba nejdˇr´ıve ustanovit bezpeˇcn´e spojen´ı mezi dvˇema zaˇr´ızen´ımi. Tento proces jiˇz byl vysvˇetlen v sekci vˇenovan´e p´arov´an´ı. Kl´ıˇc, kter´ y je vytvoˇren, je pouˇzit pr´ avˇe k zaˇsifrov´ an´ı prob´ıhaj´ıc´ı komunikace. Zabezpeˇ cen´ı sluˇ zeb zaˇ r´ızen´ı Pro znemoˇznˇen´ı zneuˇzit´ı adapt´eru je vyuˇzito nˇekolika vlastnost´ı Bluetooth. • Moˇznost zak´ azat nalezen´ı zaˇr´ızen´ı pˇri vyhled´av´an´ı. Takov´e zaˇr´ızen´ı se m˚ uˇze spojit s jin´ ymi, ale ostatn´ı zaˇr´ızen´ı ho pˇri vyhled´av´an´ı nenajdou. Nemohou se na nˇej tedy pˇripojit. • Moˇznost nastavit jednotliv´ ym sluˇzb´am, jak´e zaˇr´ızen´ı k n´ı sm´ı pˇristupovat. Existuj´ı celkem tˇri moˇznosti nastaven´ı. U sluˇzeb s nejvyˇsˇs´ım zabezpeˇcen´ım je vyˇzadov´ana autentizace i autorizace. Niˇzˇs´ı stupeˇ n zabezpeˇcen´ı vyˇzaduje jen autentizaci. Posledn´ı moˇznost´ı je nastavit sluˇzbu pˇr´ıstupnou pro vˇsechny.
15
Kapitola 4
Protokol OBEX Object Exchange Protocol je bin´arn´ı komunikaˇcn´ı protokol popisuj´ıc´ı pˇrenos dat mezi dvˇema zaˇr´ızen´ımi jednoduch´ ym a u ´ˇcinn´ ym zp˚ usobem. P˚ uvodnˇe byl navrˇzen pro pˇrenos dat pˇres infraˇcerven´ y port (IrDA), pozdˇeji byl vˇsak pouˇzit i pro pˇrenos dat v Bluetooth. Pro pouˇzit´ı tohoto protokolu mus´ı m´ıt Bluetooth adapt´er implementov´an Generic Object Exchange Profile. OBEX je zaloˇzen na komunikaci klient - server. Klient se pˇripoj´ı na server a pot´e poˇzaduje, nebo poskytuje data. Tento princip je podobn´ y jako u zn´amˇejˇs´ıho protokolu HTTP. Data jsou pos´ıl´ ana ve form´atu Big Endian, tedy nejv´ yznamnˇejˇs´ı bit je vpravo a nejm´enˇe v´ yznamn´ y bit je vlevo.
4.1
Form´ at pˇ r´ıkazu
Kaˇzd´ y pˇr´ıkaz, kter´ y je odesl´ an z klienta na server m´a pevnˇe dan´ y form´at, kter´ y je zobrazen v tabulce 4.1. Skl´ ad´ a se z Typu, kter´ y urˇcuje o jak´ y pˇr´ıkaz se jedn´a, d´ale z d´elky dat a samotn´ ych dat. V poloˇzce data m˚ uˇze obsahovat dalˇs´ı informace, kter´e maj´ı stejn´ y form´ at jako samotn´ y pˇr´ıkaz.
4.2
Operace protokolu OBEX
Kaˇzd´a operace zaˇc´ın´ a odesl´ an´ım poˇzadavku na server. Klient pot´e ˇcek´a na odpovˇed’. Dokud odpovˇed’ nedoraz´ı, nen´ı moˇzn´e pos´ılat poˇzadavek dalˇs´ı.
4.2.1
Operace Spojen´ı (Connect)
OBEX sezen´ı je ustanoveno pˇri prvn´ım poˇzadavku na pˇrenos objektu. Klient nejdˇr´ıve poˇsle poˇzadavek na spojen´ı, odpov´ıdaj´ıc´ı pˇr´ıkaz je v tabulce 4.2. Tento poˇzadavek je zpracov´ an na serveru, kter´ y odpov´ı posl´ an´ım odpovˇedi reprezentuj´ıc´ı u ´spˇech, jej´ı form´at je v tabulce 4.3. Pokud dojde k posl´ an´ı nˇejak´e jin´e odpovˇedi, znamen´a to ne´ uspˇech. Jakmile je spojen´ı ustanoveno, z˚ ust´ av´ a aktivn´ı dokud nen´ı zruˇseno nebo dokud nedojde k chybˇe. Typ
D´elka dat
Data
Tabulka 4.1: Form´at pˇr´ıkazu
16
Byt 0 Byty 1 a 2 0x80 poˇzadavek na spojen´ı D´elka poˇzadavku Byt 4 Byty 5 a 6 Flagy Maxim´aln´ı d´elka paketu
Byt 3 Verze OBEX Byt 7 aˇz nparametry Voliteln´e
Tabulka 4.2: Poˇzadavek na spojen´ı Byt 0 K´ od odpovˇedi Byt 4 Flagy
Byty 1 a 2 D´elka odpovˇedi Byty 5 a 6 Maxim´aln´ı d´elka paketu
Byt 3 Verze OBEX Byt 7 aˇz nparametry Voliteln´e parametry
Tabulka 4.3: Tvar odpovˇedi
4.2.2
Operace Odpojen´ı (Disconnect)
Operace odpojen´ı se skl´ ad´ a opˇet z poˇzadavku a odpovˇedi. Jejich form´aty jsou v tabulk´ ach 4.4 a 4.5.
4.2.3
Operace vloˇ zen´ı (Put)
Jakmile je ustanoveno spojen´ı, klient m˚ uˇze pos´ılat objekty na server. K tomu slouˇz´ı operace Put. Form´ at poˇzadavku na tuto operaci a odpovˇed’ na nˇej je v tabulk´ach 4.6 a 4.7. Poˇcet poˇzadavk˚ u na operaci Put z´ avis´ı na velikosti objektu a tak´e na velikosti paketu. Kaˇzd´ y poˇzadavek mus´ı b´ yt servrem potvrzen.
4.2.4
Operace staˇ zen´ı (Get)
Pˇri operaci Get je staˇzen soubor ze serveru. Tato operace je velmi podobn´a operaci Put. Rozd´ıl je jen v k´ odu operace, kter´ y je 0x03 a 0x83 pro fin´aln´ı paket.
4.2.5
Operace nastaven´ı cesty (SetPath)
Tato operace umoˇzn ˇuje mˇenit aktu´aln´ı adres´aˇr na serveru. M´a nˇekolik parametr˚ u urˇcuj´ıc´ıch, kter´ ym smˇerem se budeme pohybovat. ID spojen´ı obsahuje hodnotu, kter´a je vr´acena pˇri operaci pˇripojov´ an´ı. Konstanty jsou vˇzdy nulov´e, pˇr´ıznaky se mˇen´ı dle smˇeru pohybu. Form´at poˇzadavku popisuje tabulka 4.8. • Pohybujeme se dopˇredu. Poloˇzka Flagy m´a hodnotu 0x02. • Vrac´ıme se na u ´roveˇ n rodiˇce. Poloˇzka Flagy m´a hodnotu 0x03. Byt 0 0x81
Byty 1 a 2t D´elka paketu
Byt 3 Voliteln´e parametry
Tabulka 4.4: Poˇzadavek na odpojen´ı
17
Byt 0 0xA1
Byty 1 a 2t D´elka paketu
Byt 3 Voliteln´e parametry
Tabulka 4.5: Tvar odpovˇedi Byt 0 0x02 (0x82 pokud se jedn´ a o z´avˇereˇcn´ y paket)
Byty 1 a 2t D´elka paketu
Byt 3 Voliteln´e parametry
Tabulka 4.6: Poˇzadavek na operaci Put • Skok do koˇrenov´eho adres´ aˇre.Poloˇzka Flagy m´a hodnotu 0x02 a poloˇzka se jm´enem je pr´ azdn´ a. • Vytvoˇren´ı adres´ aˇre. Poloˇzka Flagy m´a hodnotu 0x00 a poloˇzka se jm´enem obsahuje jm´eno vytv´ aˇren´eho adres´ aˇre. Jakmile server obdrˇz´ı poˇzadavek na zmˇenu cesty, pokus´ı se ho prov´est. Podle v´ ysledku ’ operace poˇsle odpovˇed zpˇet klientovi. N´asleduj´ıc´ı tabulka zobrazuje moˇzn´e odpovˇedi.
4.2.6
Operace pˇ reruˇ sen´ı (Abort)
Operace Abort ukonˇc´ı aktu´ alnˇe prov´adˇenou operaci.
4.3
Profily vyuˇ z´ıvaj´ıc´ı protokol OBEX
Protokol OBEX je vyuˇz´ıv´ an v nˇekolika dalˇs´ıch profilech, kter´e urˇcuj´ı jeho uplatnˇen´ı. Tyto profily jsou: • Object Push Profile slouˇz´ı pro pˇrenos objekt˚ u, jako jsou napˇr´ıklad vizitky. • Synchronization Profile slouˇz´ı k synchronizaci kontakt˚ u, pozn´amek apod. mezi dvˇema zaˇr´ızen´ımi. • Basic Printing Profile umoˇzn ˇuje tisk kr´atk´ ych text˚ u, jako jsou emaily, vizitky a textov´e zpr´ avy pˇr´ımo z mobiln´ıch zaˇr´ızen´ı. • Basic Imaging Profile umoˇzn ˇuje tisk, pˇrenos a zmˇenu nˇekter´ ych parametr˚ u u obr´azk˚ u. • File Transfer Profile umoˇzn ˇuje pˇrenos soubor˚ u mezi dvˇema zaˇr´ızen´ımi. Tento profil je podrobnˇe pops´ an v n´ asleduj´ıc´ı kapitole. Ne vˇsechny zde vyjmenovan´e profily mus´ı zaˇr´ızen´ı, jeˇz m´a implementov´an protokol OBEX, podporovat. Byt 0 K´ od odpovˇedi
Byty 1 a 2t D´elka paketu
Byt 3 Voliteln´e parametry
Tabulka 4.7: Tvar odpovˇedi 18
0x85
D´elka paketu
Flagy
Konstanty
ID spojen´ı Jm´eno sloˇzky
Tabulka 4.8: Tvar poˇzadavku na zmˇenu cesty K´od 0xA0 0xC4 0xC1
Popis ´ ech Uspˇ Poˇzadovan´ y adres´ aˇr neexistuje. U n´avratu zpˇet znaˇc´ı, ˇze jsme jiˇz v koˇrenov´em adres´ aˇri Proch´ azen´ı adres´ aˇr˚ u je zak´az´ano. Adres´aˇr je jen pro ˇcten´ı pˇri vytv´aˇren´ı adres´aˇre Tabulka 4.9: Tvar poˇzadavku na zmˇenu cesty
4.3.1
File Transfer Profile
File Transfer Profile umoˇzn ˇuje operace se soubory na serveru. Nejˇcastˇeji tento profil podporuj´ı zaˇr´ızen´ı jako PDA, notebooky a klasick´e PC. St´ale ˇcastˇeji se vˇsak objevuje i v mobiln´ıch telefonech. Profil poskytuje tˇri moˇznosti vyuˇzit´ı: • Zobrazen´ı adres´ aˇr˚ u na serveru a jejich proch´azen´ı. • Pˇrenos soubor˚ u ze serveru na klienta a naopak. • Manipulaci ze soubory na serveru. Umoˇzn ˇuje mazat a vytv´aˇret soubory a sloˇzky.
19
Kapitola 5
V´ yvoj aplikac´ı pro Windows Mobile V´ yvoj aplikac´ı pro Microsoft Windows Mobile je velmi podobn´ y v´ yvoji pro klasick´ y Microsoft Windows. Aplikaˇcn´ı rozhran´ı obsahuje obdobn´e funkce jako u klasick´eho win32 win API. Rozd´ıly jsou jen v absenci nˇekter´ ych funkc´ı, kter´e nebyly implementov´any. Napˇr´ıklad nˇekter´e funkce pro pr´ aci s adres´ aˇri. Dalˇs´ım rozd´ılem jsou velmi omezen´e zdroje, kter´e m´ a program k dispozici, oproti klasick´e PC platformˇe. Pˇredevˇs´ım se jedn´a o velikost pamˇeti a u ´loˇzn´eho prostoru. S t´ımto omezen´ım je potˇreba poˇc´ıtat a pˇrizp˚ usobit jim n´avrh programu.
5.1
Softwarov´ e poˇ zadavky
U n´asleduj´ıc´ıch poˇzadavk˚ u se pˇredpokl´ad´a v´ yvoj pod operaˇcn´ım syst´emem Microsoft Windows XP a novˇejˇs´ı. U starˇs´ıch verz´ı nebo pod jin´ ym operaˇcn´ım syst´emem nemus´ı b´ yt tyto poˇzadavky dostaˇcuj´ıc´ı pro v´ yvoj aplikac´ı. Jednotliv´e poˇzadavky: • Windows XP a vyˇsˇs´ı • Nˇekter´e v´ yvojov´e prostˇred´ı od Microsoftu: Visual Studio nebo eMbedded Visual C++ • Software Development Kit (SDK) pro pˇr´ısluˇsn´ y c´ılov´ y operaˇcn´ı syst´em. V pˇr´ıpadˇe pouˇzit´ı Visual Studia 2005 a vyˇsˇs´ı je jiˇz SDK pro Windows Mobile 2003 jako voliteln´ a poloˇzka pˇri instalaci.
5.2
V´ yvojov´ a prostˇ red´ı
V t´eto kapitole jsou pops´ ana v´ yvojov8 prostˇred´ı. Zm´ınˇena jsou pouze v´ yvojov´a prostˇred´ı od firmy Microsoft. • eMbedded Visual Tools 3.0 je starˇs´ı v´ yvojov´e prostˇred´ı urˇcen´e pro v´ yvoj pro operaˇcn´ı syst´em Windows Mobile 2002. Obsahuje grafick´e rozhran´ı, integrovan´ y pˇrekladaˇc a lad´ıc´ı n´ astroje. • eMbedded Visual C++ 4.0 je odlehˇcenou verz´ı Visual Studia. Obsahuje moˇznosti eMbedded Visual Tools, kter´e obohacuje o nˇekolik funkc´ı, napˇr´ıklad n´astroj Just in Time debuger, kter´ y umoˇzn ˇuje ladˇen´ı programu i v pˇr´ıpadˇe, ˇze nebyl spuˇstˇen z v´ yvojov´eho prostˇred´ı. 20
• Visual Studio 2003 a vyˇsˇs´ı je plnohodnotn´e v´ yvojov´e prostˇred´ı, kter´e nen´ı zamˇeˇreno jen na v´ yvoj pro operaˇcn´ı syst´em Windows Mobile, ale i pro klasick´e Windows.
5.2.1
Ladˇ en´ı
Nalezen´ı chyb v programu je velmi d˚ uleˇzit´a ˇc´ast v procesu v´ yvoje. Ve zm´ınˇen´ ych v´ yvojov´ ych prostˇred´ıch je nˇekolik n´ astroj˚ u, kter´e tuto ˇcinnost usnadˇ nuj´ı. Nejd˚ uleˇzitˇejˇs´ım z tˇechto n´astroj˚ u je bezpochyby integrovan´ y debugger, kter´ y umoˇzn´ı krokov´an´ı k´odu, v´ ypis hodnot promˇenn´ ych a jejich modifikaci. Souˇc´ ast´ı kaˇzd´eho SDK je i emul´ator pˇr´ıstroje s pˇr´ısluˇsn´ ym operaˇcn´ım syst´emem, kter´ y umoˇzn ˇuje t´emˇeˇr plnohodnotnou n´ahradu fyzick´eho pˇr´ıstroje. Probl´em nast´av´a v pˇr´ıpadˇe, ˇze v programu potˇrebujeme pracovat s perifern´ımi zaˇr´ızen´ımi, nebo s nˇekter´ ymi integrovan´ ymi moduly jako jsou GPS, Bluetooth nebo GSM. Stoprocentn´ı emulace zat´ım nen´ı dostupn´ a. Dalˇs´ı moˇznost´ı je program spustit pˇr´ımo na existuj´ıc´ım zaˇr´ızen´ı. Pro tento u ´ˇcel je nutn´ y program ActiveSync, kter´ y zajist´ı pˇrenos dat mezi v´ yvojov´ ym prostˇred´ım a pˇr´ıstrojem.
5.3
Zdroje informac´ı a dokumentace
Z´akladn´ım zdrojem informac´ı pro v´ yvoj jsou zdroje poskytovan´e firmou Microsoft na serveru MSDN [6], kde se nalch´ az´ı dokumentace knihoven funkc´ı, n´astin postup˚ u, a tak´e pˇr´ıklady jiˇz hotov´eho k´ odu. Existuje mnoˇzstv´ı dalˇs´ı str´anek zab´ yvaj´ıc´ı se touto problematikou, napˇr. The Code Project [5], kde se nach´az´ı velk´e mnoˇzstv´ı zdrojov´ ych k´od˚ u.
21
Kapitola 6
Rozbor probl´ emu C´ılem je navrhnout aplikaci, kter´ a bude schopn´a synchronizovat adres´aˇre mezi Pocket PC a serverem. Synchronizace bude prob´ıhat pomoc´ı technologie Bluetooth a protokolu OBEX. Aplikace bude urˇcena pro operaˇcn´ı syst´em Microsoft Windows Mobile 5.0 nebo Microsoft Windows Mobile 6.0.
6.1
Komunikace
Pro pˇrenos dat byla zvolena technologie Bluetooth a funkce, kter´e poskytuje File Transfer Profile. Podrobnˇejˇs´ı popis tˇechto technologi´ı byl pˇredmˇetem pˇredchoz´ıch kapitol.
6.2
OBEX FTP a jeho omezen´ı
OBEX FTP slouˇz´ı k pˇrenosu soubor˚ u mezi serverem a klientem. Umoˇzn ˇuje tak´e zobrazit strukturu adres´ aˇre a pˇreruˇsit aktu´alnˇe prov´adˇenou operaci. Podrobnosti o moˇznostech tohoto profilu jsou v kapitole o protokolu OBEX.
6.2.1
Informace o souboru na serveru
Informace o struktuˇre adres´ aˇre jsou ze serveru posl´any jako odpovˇed’ na poˇzadavek Folder Browsing. Odpovˇed´ı je dokument ve form´atu XML. Zde je uveden pˇr´ıklad takov´eho dokumentu, kter´ y je z´ısk´ an z adres´ aˇre, kter´ y obsahuje jeden adres´aˇr Directory a jeden soubor File.dat.
<parent-folder /> Kromˇe jm´ena souboru a oznaˇcen´ı, zda se jedn´a o adres´aˇr, nebo soubor, je zde jeˇstˇe nˇekolik parametr˚ u. • size ud´ av´ a velikost souboru v bytech. 22
• modified je ˇcas posledn´ı zmˇeny souboru. • create je ˇcas, kdy byl soubor vytvoˇren. • accesed je ˇcas posledn´ıho pˇr´ıstupu do souboru. Nˇekter´e implementace serveru mohou pos´ılat i dalˇs´ı poloˇzky, napˇr´ıklad pˇr´ıstupov´a pr´ ava k soubor˚ um a typ m´edia, na kter´em jsou data uloˇzena, nebo naopak nemus´ı pos´ılat ˇcas zmˇeny a posledn´ıho pˇr´ıstupu.
6.2.2
Omezen´ı
Vzhledem k mal´emu mnoˇzstv´ı funkc´ı je nutn´e sloˇzitˇejˇs´ı operace prov´est pomoc´ı v´ıce operac´ı jednoduˇsˇs´ıch. Vznik´ a zde prostor pro vznik chyb. Je nutn´e oˇsetˇrit situace, kdy se mezi jednotliv´ ymi operacemi vyskytne probl´em a nebude moˇzn´e dokonˇcit celou zam´ yˇslenou u ´lohu. Mezi tyto operace patˇr´ı napˇr´ıklad operace zmˇeny ˇc´asti souboru, nebo pˇrejmenov´ an´ı souboru, u kter´ ych je nutn´ y pˇrenos na klienta a pot´e, po u ´pravˇe, zpˇet na server. V ide´ aln´ım pˇr´ıpadˇe je pˇri nemoˇznosti kompletn´ıho dokonˇcen´ı proveden okamˇzit´ y n´avrat do p˚ uvodn´ıho stavu na obou stran´ach, tedy jak na klientovi, tak na serveru. Tato moˇznost vˇsak vˇetˇsinou nen´ı dosaˇziteln´ a. Je tedy nutn´e uloˇzit dostateˇcn´e informace, aby bylo moˇzn´e pˇri dalˇs´ım pˇr´ıstupu nekompletn´ı operaci rozpoznat a zabr´anit pˇrenosu neplatn´ ych dat.
6.3
Synchronizace
Hlavn´ım u ´kolem aplikace je porovn´an´ı zadan´ ych adres´aˇr˚ u. V pˇr´ıpadˇe, ˇze jsou adres´ aˇre rozd´ıln´e, aplikace pˇrenese soubory tak, aby tyto rozd´ıly odstranil. Kontrola mus´ı probˇehnout pˇri nalezen´ı zaˇr´ızen´ı a pot´e se mus´ı periodicky opakovat ve stanoven´ ych ˇcasov´ ych intervalech, dokud se zaˇr´ızen´ı nach´ az´ı v dosahu.
6.3.1
Porovn´ an´ı soubor˚ u
Prvn´ı operac´ı pˇri samotn´e synchronizaci je porovn´an´ı dvou soubor˚ u. Pˇri porovn´an´ı se zjiˇst’uje, ve kter´em souboru doˇslo ke zmˇenˇe.
6.3.2
Konfliktn´ı stav
Pˇri konfliktu soubor˚ u m´ a stejn´ y soubor na serveru i na klientovi jin´ y obsah. Nen´ı tedy moˇzn´e pˇren´est jeden soubor bez toho, aby byla vylouˇcena moˇznost ztr´aty dat. Tyto stavy je potˇreba detekovat a ˇreˇsit.
6.3.3
Souˇ casn´ y pˇ r´ıstup v´ıce zaˇ r´ızen´ı
Pokud se o pˇr´ıstup k serveru snaˇz´ı v jednom okamˇziku v´ıce klient˚ u, mus´ı b´ yt zajiˇstˇeno, aby nedoˇslo k souˇcasn´emu pˇr´ıstupu do jednoho adres´aˇre. Pokud by k t´eto situaci doˇslo, mohlo by to zp˚ usobit nekonzistentn´ı stav adres´aˇre, pˇri kter´em by ˇc´ast soubor˚ u, kter´a z˚ ustala nezmˇenˇena, byla starˇs´ı verze, a ˇc´ ast, kter´a se nahr´ala z klienta, byla verze novˇejˇs´ı. Vzniku tohoto stavu je nutn´e zabr´ anit.
23
6.3.4
Chybov´ e stavy
V pr˚ ubˇehu synchronizace m˚ uˇze doj´ıt k situac´ım, pˇri kter´ ych nebude moˇzn´e operaci dokonˇcit. M˚ uˇze doj´ıt ke ztr´ atˇe spojen´ı pˇri vypnut´ı zaˇr´ızen´ı, opuˇstˇen´ı dosahu sign´alu, nebo z nˇejak´eho jin´eho d˚ uvodu. Dalˇs´ı probl´em nastane v pˇr´ıpadˇe nedostatku m´ısta na disku pˇri pˇrenosu dat. Uˇzivatel m´ a tak´e moˇznost aplikaci ukonˇcit a znemoˇznit tak dokonˇcen´ı synchronizace. Pˇri vˇsech tˇechto pˇr´ıpadech mus´ı b´ yt zajiˇstˇeno, aby nedoˇslo ke ztr´atˇe dat, nebo pouˇz´ıv´ an´ı nekompletn´ıho souboru.
6.4
Konfigurace
Aplikace mus´ı umoˇzn ˇovat nˇekolik voliteln´ ych nastaven´ı. Pro nastaven´ı je nutn´e vytvoˇrit rozhran´ı, kter´e bude umoˇzn ˇovat jejich zmˇenu. Seznam voliteln´ ych nastaven´ı je uveden n´ıˇze. • Volba zaˇr´ızen´ı, se kter´ ymi m´a prob´ıhat synchronizace. • Nastaven´ı adres´ aˇr˚ u, ke kaˇzd´emu zaˇr´ızen´ı, se kter´ ymi m´a prob´ıhat synchronizace • Moˇznost nastavit logov´ an´ı chyb, informac´ı o pˇrenesen´ ych souborech • Nastaven´ı chov´ an´ı v pˇr´ıpadˇe konfliktu
24
Kapitola 7
Popis implementace Cel´ y projekt je rozdˇelen do dvou aplikac´ı. Prvn´ı aplikace m˚ uˇze bˇeˇzet na pozad´ı a zajiˇst’uje synchronizaci soubor˚ u a druh´ a aplikace slouˇz´ı ke konfiguraci pˇrenos˚ u, jak byla pops´ana v sekci o popisu konfigurace v pˇredchoz´ı kapitole. Obˇe aplikace jsou implementov´any za pouˇzit´ı programovac´ıho jazyka C++ s vyuˇzit´ım v´ yvojov´eho prostˇred´ı Microsoft Visual Studio 2005 a SDK pro Windows Mobile 5.0.
7.1 7.1.1
Bluetooth Rozhran´ı pro OBEX
V SDK pro Windows Mobile jsou k dispozici rozhran´ı objekt˚ u, kter´e usnadˇ nuj´ı pr´aci s protokolem OBEX. Pˇrehled pouˇzit´ ych rozhran´ı je v tabulce 7.1.
7.1.2
Vyhled´ av´ an´ı zaˇ r´ızen´ı
K vyhled´ av´ an´ı zaˇr´ızen´ı je moˇzn´e pouˇz´ıt nˇekolik metod. Funkce IObex::StartDeviceEnum, kter´a je zde vyuˇzita, spust´ı vyhled´av´an´ı, kter´e bˇeˇz´ı neust´ale na pozad´ı. S vyuˇzit´ım rozhran´ı IObexSink je moˇzn´e pˇrepsat funkci IObexSink::Notify, kter´a je vol´ana vˇzdy pˇri ud´alosti na zaˇr´ızen´ı. Ud´ alost´ı je myˇsleno napˇr´ıklad objeven´ı zaˇr´ızen´ı, ztr´ata zaˇr´ızen´ı z dosahu, nebo zmˇena na vzd´ alen´em zaˇr´ızen´ı.
7.1.3
Pˇ ripojen´ı
Jedn´ım z parametr˚ u funkce Notify je i promˇenn´a PropertyBag, kter´a obsahuje informace o vzd´alen´em zaˇr´ızen´ı, s jejichˇz pomoc´ı je moˇzn´e zaˇr´ızen´ı identifikovat a pˇripojit se na nˇej. IObex IDeviceEnum IObexDevice IObexSink IHeaderCollection IPropertyBagEnum
Poskytuje prim´arn´ı rozhran´ı pro pˇr´ıstup k objektu OBEX. Rozhran´ı slouˇz´ı k vyhled´av´an´ı vzd´alen´ ych zaˇr´ızen´ı. Rozhran´ı slouˇz´ı k pˇrenosu dat z a na konkr´etn´ı zaˇr´ızen´ı. Rozhran´ı umoˇzn ˇuje nastavit ozn´amen´ı v pˇr´ıpadˇe ud´alosti na zaˇr´ızen´ı. Rozhran´ı slouˇz´ıc´ı k manipulaci s objekty hlaviˇcek. Rozhran´ı umoˇzn ˇuj´ıc´ı pˇr´ıstup k promˇenn´ ym tˇr´ıdy PropertyBag. Tabulka 7.1: Pˇrehled pouˇzit´ ych rozhran´ı
25
Pˇred samotn´ ym pˇripojen´ım je potˇreba sv´azat vzd´alen´e zaˇr´ızen´ı s rozhran´ım IObexDevice. To zajist´ı funkce IObex::BindToDevice. Pot´e je jiˇz moˇzn´e se pomoc´ı funkce IObexDevice::Connect pˇripojit.
7.1.4
Pˇ renos dat
K pˇrenosu dat je vyuˇzito rozhran´ı IObexDevice a to konkr´etnˇe funkce Put, pro pˇrenos dat na server, a Get, pro pˇrenos opaˇcn´ ym smˇerem. Pˇrenos dat je moˇzn´e pˇreruˇsit funkc´ı Abort.
7.2
Synchronizace
Postup pˇri synchronizaci je zn´ azornˇen na n´asleduj´ıc´ım diagramu. Jedn´a se o postup pˇri synchronizaci jednoho jiˇz pˇripojen´eho zaˇr´ızen´ı, ve kter´em je synchronizov´an jeden adres´ aˇr. V pˇr´ıpadˇe v´ıce zaˇr´ızen´ı s v´ıce adres´aˇri by byl postup obdobn´ y, jen by se opakoval v´ıcekr´ at. Postup synchronizace je zn´ azornˇen na obr´azku A.2.
7.2.1
Informace o synchronizaci adres´ aˇ re
Jeˇstˇe pˇredt´ım neˇz rozebereme porovn´an´ı soubor˚ u, je nutn´e popsat princip, jak´ ym jsou ukl´ad´any informace o jiˇz dokonˇcen´ ych synchronizac´ıch. Po probˇehnut´ı synchronizace adres´ aˇre je v nˇem uloˇzen soubor se strukturou, kter´a je zn´azornˇena v tabulce 7.1:
Obr´ azek 7.1: Struktura souboru s informacemi o adres´aˇri O kaˇzd´em souboru jsou zde uloˇzeny informace o posledn´ı zmˇenˇe, kter´a v nˇem probˇehla, a to jak na serveru, tak na klientovi. Tyto informace umoˇzn ˇuj´ı porovn´avat soubory pˇri synchronizaci a urˇcovat, u kter´ ych doˇslo ke zmˇenˇe, aniˇz by bylo nutn´e soubor stahovat. Postaˇc´ı n´ am tedy data, kter´ a n´ am poskytne server pˇri poˇzadavku na obsah adres´aˇre.
7.2.2
ˇ sen´ı porovn´ Reˇ an´ı souboru
Pro porovn´ an´ı soubor˚ u jsou implementov´any dva postupy. V´ ybˇer postupu, kter´ y bude pouˇzit, z´ aleˇz´ı na nˇekolika faktorech. V nˇekter´ ych pˇr´ıpadech mohou b´ yt dokonce pouˇzity oba. V´ıce o tˇechto postupech i o tom, v jak´ ych situac´ıch jsou pouˇzity je pops´ano v n´asleduj´ıc´ıch podkapitol´ ach. Porovn´ an´ı jiˇ z synchronizavan´ eho souboru Tento postup je ve vˇetˇsinˇe pˇr´ıpad˚ u pouˇzit jako prvn´ı. Z´akladem je soubor s informacemi o pˇredchoz´ı synchronizaci popsan´ y v sekci 7.2.1. Nejprve jsou z´ısk´any aktu´aln´ı informace o souborech na serveru a na klientovi v pˇr´ısluˇsn´em adres´aˇri. Tyto informace jsou pot´e
26
porovn´ av´ any s informace ze souboru s daty o synchronizaci. Pokud doˇslo v souboru ke zmˇenˇe, data se liˇs´ı a je moˇzn´e vyhodnotit, kter´ y soubor byl zmˇenˇen a prov´est pˇrenos. Bohuˇzel nˇekter´e pˇr´ıstroje, napˇr´ıklad mobiln´ı telefony, neukl´adaj´ı ˇcas posledn´ı zmˇeny v souboru, takˇze popsan´ y postup zde nelze pouˇz´ıt. Kontroln´ı souˇ cet Pˇredchoz´ı postup vˇsak m˚ uˇze selhat. Pokud nen´ı soubor s informacemi z pˇredchoz´ı synchronizace k dispozici, at’ uˇz z d˚ uvodu, ˇze se jedn´a o prvn´ı synchronizaci, nebo byl poˇskozen, je nemoˇzn´e jej aplikovat. V tomto pˇr´ıpadˇe je nutn´e soubor ze serveru st´ahnout a uloˇzit do doˇcasn´eho souboru. Pot´e je vypoˇcten kontroln´ı souˇcet u staˇzen´eho souboru a u souboru na klientovi. Kontroln´ı souˇcty jsou porovn´any a pokud se nerovnaj´ı, jsou soubory v konfliktu. Pokud se rovnaj´ı, jsou soubory identick´e a nen´ı tˇreba je pˇren´aˇset. Pro v´ ypoˇcet kontroln´ıho souˇctu byl pouˇzit algoritmus MD5, jehoˇz detailn´ı popis je k nalezen´ı napˇr´ıklad v dokumentu rfc 1321 [8] . Funkce pro v´ ypoˇcet je naps´ana v jazyce C a je vloˇzena do samostatn´e dynamick´e knihovny, kter´a mus´ı b´ yt distribuov´ana spolu s programem. Tento postup je vˇsak jiˇz ˇcasovˇe n´aroˇcnˇejˇs´ı, neˇz pˇredchoz´ı. Nav´ıc zde m˚ uˇze doj´ıt k probl´emu s nedostatkem m´ısta na disku. Soubor se vyskytuje na disku dvakr´at. Jednou v p˚ uvodn´ım m´ıstˇe a podruh´e jako doˇcasn´ y soubor. ˇ sen´ı konfliktu soubor˚ Reˇ u Program nen´ı schopen v pˇr´ıpadˇe konfliktu soubor˚ u vyhodnotit, kter´ y soubor se m´a pˇren´aˇset. Mus´ı b´ yt nastaveno pravidlo, jak se v tomto pˇr´ıpadˇe chovat. Moˇznosti nastaven´ı chov´ an´ı jsou pops´ any v uˇzivatelsk´e pˇr´ıruˇcce, kter´a je um´ıstˇena v pˇr´ıloze tohoto dokumentu. Vyhodnocov´ an´ı samostatn´ eho souboru V pˇr´ıpadˇe, ˇze se soubor nal´ez´ a na jednom ze zaˇr´ızen´ı, kter´e se synchronizuj´ı, je automaticky pˇrenesen na zaˇr´ızen´ı, na kter´em se nenach´az´ı.
7.2.3
Synchronizace v´ıce zaˇ r´ızen´ı
U kaˇzd´eho zaˇr´ızen´ı, kter´e se objev´ı v dosahu, je vyhodnoceno, zda se m´a doj´ıt k synchronizaci. Pokud ano, je vloˇzeno do fronty. Jednotliv´a zaˇr´ızen´ı ve frontˇe jsou postupnˇe synchronizov´ ana. Jakmile jsou synchronizov´ana vˇsechna zaˇr´ızen´ı, spust´ı se ˇcasovaˇc, kter´ y zajist´ı opˇetovn´e spuˇstˇen´ı synchronizace po poˇzadovan´e dobˇe. Pokud se zaˇr´ızen´ı vzd´ al´ı z dosahu sign´alu, nebo jinak odstranˇeno z viditelnosti klienta, dojde k jeho vyjmut´ı z fronty. Tak´e v pˇr´ıpadˇe, ˇze dojde pˇri synchronizaci k chybˇe je zaˇr´ızen´ı z fronty odstranˇeno. Uzamyk´ an´ı adres´ aˇ r˚ u Zamyk´ an´ı adres´ aˇre slouˇz´ı k zamezen´ı pˇr´ıstupu v´ıce klient˚ u k jednomu adres´aˇri na serveru. Prob´ıh´ a formou nahr´ an´ı souboru, jehoˇz existence je klientem testov´ana pˇred kaˇzd´ ym pokusem o pˇr´ıstup k adres´ aˇri. Z´amek je na server nahr´ an pˇred zaˇc´atkem pˇrenosu dat a pot´e je aktualizov´an pˇred pˇrenosem kaˇzd´eho souboru. Soubor obsahuje dvˇe informace. Prvn´ı z nich je odhad doby, po kterou bude trvat pˇrenos aktu´ alnˇe pˇren´aˇsen´eho souboru. Druh´a je k dispozici v pˇr´ıpadˇe, ˇze 27
je soubor na server nahr´ av´ an a je to jm´eno tohoto souboru. Slouˇz´ı v pˇr´ıpadˇe nedokonˇcen´eho pˇrenosu k identifikaci a n´ asledn´emu smazan´ı tohoto souboru. Postup vyhodnocen´ı, zda je adres´aˇr uzamˇcen, je na diagramu A.1.
7.2.4
Oˇ setˇ ren´ı chybov´ ych stav˚ u
U vˇsech pˇr´ıpad˚ u, kdy nedojde k dokonˇcen´ı synchronizace, je d˚ uleˇzit´e m´ıt moˇznost identifikovat soubor, kter´ y nebyl cel´ y pˇrenesen a tento kompletn´ı soubor smazat. Z d˚ uvodu identifikace je vˇzdy uloˇzeno jm´eno aktu´alnˇe pˇren´aˇsen´eho souboru do souboru v adres´aˇri, do kter´eho je soubor nahr´ av´ an. V pˇr´ıpadˇe, ˇze bude pˇrenos neoˇcek´avanˇe ukonˇcen bude nekompletn´ı soubor rozpozn´ an pˇri pˇr´ıˇst´ım pokusu o synchronizaci.
7.3
Konfigurace
Pro konfiguraci synchronizace je vytvoˇrena samostatn´a aplikace, pˇri jej´ıˇz implementaci byla pouˇzita knihovna MFC [7]. Pouˇzit´ı knihovny MFC pˇri programov´an´ı aplikac´ı popisuje kniha [2] Nastaven´ı je ukl´ ad´ ano do registr˚ u syst´emu Windows do kl´ıˇce: HKEY_CURRENT_USER\Software\ObexFTP synchronize\ObexConfig\ Z registru jsou nastaven´ı naˇcteny aplikac´ı pro synchronizaci. Nastaven´ı, kter´e zaˇr´ızen´ı synchronizovat a nastaven´ı adres´ aˇr˚ u na nich, jsou uloˇzeny v samostatn´ ych souborech.
7.4
Instalace
Pro vytvoˇren´ı instalaˇcn´ıho bal´ıˇcku byl zvolen soubor ve form´atu cab. Jedn´a se o speci´aln´ı typ archivu, kter´ y umoˇzn ˇuje uchovat vˇsechny potˇrebn´e informace o poˇzadovan´em um´ıstˇen´ı jednotliv´ ych soubor˚ u, kter´e obsahuje. Tak´e je moˇzn´e uloˇzit data, kter´a se maj´ı vloˇzit do registru operaˇcn´ıho syst´emu. Soubory typu cab jsou operaˇcn´ım syst´emem Windows Mobile podporov´ any a instalace z nich probˇehne automaticky.
28
Kapitola 8
Z´ avˇ er Byla vytvoˇrena aplikace, kter´ a umoˇzn ˇuje synchronizaci zadan´ ych adres´aˇr˚ u mezi serverem a klientem pomoc´ı technologie Bluetooth. Pˇri implementaci byly vyuˇzity znalosti z´ıskan´e v pr˚ ubˇehu studia, pˇredevˇs´ım z pˇredmˇet˚ u, kter´e se t´ ykaly programov´an´ı a algoritmizace.
8.1
Moˇ zn´ a rozˇ s´ıˇ ren´ı do budoucna
Program splˇ nuje poˇzadovanou funkˇcnost. I pˇresto je zde nˇekolik moˇznost´ı, jak dos´ahnout zv´ yˇsen´ı uˇzivatelsk´eho komfortu a vylepˇsen´ı schopnost´ı programu. V t´eto podobˇe je velmi nepˇresn´e porovn´av´an´ı ˇcasu posledn´ı zmˇeny v pˇr´ıpadˇe konfliktu ˇ nen´ı naˇcten ze serveru a pokud nejsou nastaven´ı stejn´a, nemus´ı b´ soubor˚ u. Cas yt vyhodnocen´ı spr´ avn´e. M˚ uˇze tedy doj´ıt k nahr´an´ı starˇs´ıho souboru i pˇri poˇzadavku na soubor novˇejˇs´ı. Dalˇs´ım moˇzn´ ym vylepˇsen´ım je moˇznost synchronizovat pouze jednotliv´e soubory, bez nutnosti synchronizovat cel´ y adres´aˇr. Pokud by mˇel b´ yt program pouˇzit pouze pro z´alohov´an´ı dat, bylo by to v souˇcasn´e konfiguraci velmi problematick´e. Pro tento u ´ˇcel by bylo nutn´e implementovat moˇznost pouze jednosmˇern´e synchronizace, aby nedoch´azelo k pˇrepisu soubor˚ u z m´ısta z´alohy na klienta.
8.2
Testov´ an´ı
Testov´ an´ı programu prob´ıhalo na operaˇcn´ım syst´emu Microsoft Windows Mobile 6.0 na pˇr´ıstroji E-ten X500. Jako server bylo pouˇzito nˇekolik zaˇr´ızen´ı: HP nx7100 s integrovan´ ym Bluetooth adapt´erem, Bluetooth adapt´er MSI BToes 2.0 a mobiln´ı telefony Nokia 3110c a Nokia 6234.
29
Literatura [1] Bluetooth Special Interest Group. Bluetooth specification version 1.1. 2002. [2] Wingo Scot Kruglinski David, Shepherd George. Programujeme v Microsoft Visual C++. Computer Press, 2002. ISBN 80-7226-362-5. [3] Wool Avishai Shaked Yaniv. Cracking the bluetooth pin. http://www.eng.tau.ac.il/∼yash/shaked-wool-mobisys05/. [4] WWW str´ anky. Bluetooth special interest group oficial site. http://www.bluetooth.com/bluetooth/. [5] WWW str´ anky. The code project. http://www.codeproject.com/KB/mobile/. [6] WWW str´ anky. Microsoft developer network. http://msdn2.microsoft.com/cs-cz/default(en-us).aspx. [7] WWW str´ anky. Microsoft fundation class. http://msdn2.microsoft.com/en-us/library/d06h2x6e(VS.80).aspx. [8] WWW str´ anky. Rfc 1321 - the md5 message-digest algorithm. http://www.faqs.org/rfcs/rfc1321.html.
30
Dodatek A
V´ yvojov´ e diagramy
Obr´ azek A.1: Diagram vyhodnocen´ı z´amku adres´aˇre
31
Obr´ azek A.2: Diagram algoritmu synchronizace
32
Dodatek B
Uˇ zivatelsk´ a pˇ r´ıruˇ cka B.1
Konfiguraˇ cn´ı aplikace
Tato aplikace slouˇz´ı ke konfiguraci synchronizace. Obsahuje ˇctyˇri panely, kaˇzd´ y z nich je zamˇeˇren na nastaven´ı spolu souvisej´ıc´ıch vlastnost´ı. Konfigurace je naˇc´ıt´ana pˇred kaˇzd´ ym pokusem o synchronizaci a pˇri startu aplikace pro synchronizaci.
B.1.1
Nastaven´ı vzd´ alen´ ych zaˇ r´ızen´ı
Obr´ azek B.1: Panel nastaven´ı zaˇr´ızen´ı Hlavn´ı panel obsahuje seznam zaˇr´ızen´ı, se kter´ ymi jiˇz klient nˇekdy nav´azal kontakt. Kaˇzd´a poloˇzka m´ a form´ at, kter´ y je na obr´azku B.1. Modr´a barva oznaˇcuje zaˇr´ızen´ı, kter´e je v dosahu, ˇcerven´ a to, kter´e nen´ı viditeln´e. Pro um´ıstˇen´ı zaˇr´ızen´ı do tohoto seznamu je nutn´e jej nejdˇr´ıve vyhledat. K tomuto u ´ˇcelu slouˇz´ı tlaˇc´ıtko vyhledat, kter´e jednak spust´ı Bluetooth, pokud jiˇz nen´ı spuˇstˇen´e a pak zaˇcne vyhled´avat zaˇr´ızen´ı v dosahu. Tlaˇc´ıtko Syn, slouˇz´ı k nastaven´ı zaˇr´ızen´ı do stavu synchronizovat, nebo nesynchronizovat. V pˇr´ıpadˇe, ˇze je zobrazeno p´ısmeno S, zaˇr´ızen´ı se bude s klientem synchronizovat. Zaˇr´ızen´ı je moˇzn´e ze seznamu odstranit tlaˇc´ıtkem smazat. Pˇr´ı zmˇenˇe v seznamu je nutn´e tento seznam uloˇzit tlaˇc´ıtkem Uloˇz. 33
Jm´eno
Adresa
P´ısmeno S, oznaˇcuj´ıc´ı, ˇze se m´a se zaˇr´ızen´ım synchronizovat Tabulka B.1: Poloˇzka se zaˇr´ızen´ım S: C:
Cesta na serveru Cesta na klientovi
Tabulka B.2: Cesty k adres´aˇr˚ um urˇcen´ ych k synchronizaci
B.1.2
Nastaven´ı adres´ aˇ r˚ u
Obr´ azek B.2: Panel nastaven´ı adres´aˇr˚ u k synchronizaci
Tato sekce slouˇz´ı k nastaven´ı cest, kter´e se maj´ı synchronizovat na konkr´etn´ım zaˇr´ızen´ı. Hlavn´ı panel obsahuje informace o aktu´alnˇe nastaven´ ych cest´ach ve form´atu zobrazen´em na obr´ azku B.2. Zaˇr´ızen´ı, o kter´em jsou informace zobrazeny, je vyb´ır´ano na pˇredchoz´ım panelu Zaˇr´ızen´ı. Novou cestu nastav´ıme pomoc´ı tlaˇc´ıtka Nov´ y, kter´e zobraz´ı dialog v´ ybˇeru cest, zobrazen´ y na obr´ azku B.4. Moˇznost je aktivn´ı pouze v pˇr´ıpadˇe, ˇze je vybr´ano zaˇr´ızen´ı na panelu nastaven´ı zaˇr´ızen´ı a toto zaˇr´ızen´ı je v dosahu. Dalˇs´ı dvˇe moˇznosti jsou Uloˇz a Smaˇz, kter´e slouˇz´ı k uloˇzen´ı souˇcasn´eho nastaven´ı a ke smaz´an´ı vybran´e poloˇzky. Obr´ azek B.3 zobrazuje dialog pro v´ ybˇer adres´aˇre na klientovi. Tlaˇc´ıtko Ok potvrzuje volbu, tlaˇc´ıtko Zpˇet vrac´ı na pˇredchoz´ı nab´ıdku a ruˇs´ı v´ ybˇer. Dialog umoˇzn ˇuje v´ ybˇer cest na serveru a na klientovi, kter´e se maj´ı synchronizovat. Horn´ı ˇc´ ast umoˇzn ˇuje vybrat cestu na klientovi. Doln´ı ˇc´ast slouˇz´ı k proch´azen´ı adres´aˇr˚ u na serveru. Jakmile jsou vybr´ any cesty, tak tlaˇc´ıtko OK potvrd´ı volbu. Tlaˇc´ıtkem Zpˇet se lze vr´atit na panel pro konfiguraci adres´aˇr˚ u.
34
Obr´ azek B.3: Dialog pro v´ ybˇer adres´aˇre na klientovi
B.1.3
Nastaven´ı obecn´ ych vlastnost´ı
• Nastaven´ı akce, kter´ a se m´a prov´est v pˇr´ıpadˇe konfliktu soubor˚ u na serveru a na klientovi. • Nastaven´ı adres´ aˇr˚ u, kter´e se maj´ı synchronizovat v pˇr´ıpadˇe, ˇze nejsou ˇz´adn´e nastaveny. • Posledn´ı volbou je cesta pro doˇcasn´e uloˇzen´ı staˇzen´eho souboru, v pˇr´ıpadˇe poˇzadavku na porovn´ an´ı obsahu souboru na klientovi a na serveru.
B.1.4
Nastaven´ı logu
Posledn´ım panelem je panel pro nastaven´ı logu. Na tomto panelu se nach´azej´ı n´asleduj´ıc´ı volby • Nastaven´ı souboru pro ukl´ ad´an´ı chybov´ ych hl´aˇsek. • Nastaven´ı souboru pro ukl´ ad´an´ı logu synchronizace. • Povolen´ı logu chyb. • Povolen´ı logu synchronizace. • Nastaven´ı zda ukl´ adat ˇcas vzniku ud´alosti do logu. • Nastaven´ı zda logovat i soubory, kter´e nejsou pˇren´aˇseny.
B.2
Synchronizaˇ cn´ı aplikace
Tato ˇc´ ast je po uˇzivatelsk´e str´ ance velmi jednoduch´a. Pˇri spuˇstˇen´ı aplikace je pouze nutn´e spustit sychronizaci tlaˇc´ıtkem START. V pr˚ ubˇehu synchronizace je moˇzn´e pˇreruˇsit pr´ avˇe prob´ıhaj´ıc´ı akci tlaˇc´ıtkem Zruˇsit, kter´e je um´ıstˇeno na dialogu indikace pr˚ ubˇehu pˇrenosu souboru. Aplikaci je moˇzn´e ukonˇcit tlaˇc´ıtkem KONEC. 35
Obr´ azek B.4: Dialog v´ ybˇeru cest k synchronizaci
Obr´ azek B.5: Panel nastaven´ı obecn´ ych vlastnost´ı
36
Obr´ azek B.6: Panel nastaven´ı logu
Obr´azek B.7: Obex Daemon
37
Dodatek C
Obsah CD Na CD se nach´ az´ı nˇekolik sloˇzek. Zde je popis jejich obsahu: • Instalacni balicek - obsahuje dva instalaˇcn´ı bal´ıˇcky pro Windows Mobile 6.0 a 2003 • md5DLLCE - obsahuje zdrojov´ y k´od funkci pro v´ ypoˇcet MD5 • ObexConfig - obsahuje zdrojov´ y k´od konfiguraˇcn´ı aplikace • ObexDaemon - obsahuje zdrojov´ y k´od synchronizaˇcn´ı aplikace • ObexInstall - obsahuje zdrojov´ y k´od pro vytvoˇren´ı instalaˇcn´ıho bal´ıˇcku • Spustitelne soubory - obsahuje spustiteln´e soubory pro WM 6.0 a WM 2003 • Technicka zprava - obsahuje technickou zpr´avu a jej´ı zdrojov´ y k´od
38