Bluetooth-kirjautumismenetelmiä InSitu-järjestelmässä Tuukka Puranen tupepura@cc.jyu.fi 8.3.2006 Tiivistelmä InSitu on Jyväskylän yliopiston adaptiivisen opetuksen tutkimusja kehitysprojekti. Sen käytännön toteutus pohjautuu langattomaan tietoliikenteeseen. Merkittävä osa tämänhetkisen suunnitelman verkkoinfrastruktuurista toteutetaan alkuvaiheessa Bluetooth-radioyhteydellä, ja tätä varten tuotetaan ohjelmaprototyyppejä. Työn tarkoituksena on tutkia keinoja yhteydenmuodostukseen langatonta verkkoa, erityisesti Bluetoothia, hyödyntävien laitteiden välillä sekä tarkastella näiden keinojen tehokkuutta. Tavoitteena on kehittää laajalle käyttötapausten joukolle menetelmiä verkon muodostukseen ja antaa perusteet näiden implementointiin. 1 Yhteydenmuodostus Bluetooth-verkoissa Bluetooth on lyhyen kantaman radiotekniikkaan perustuva langaton tiedonsiirtotekniikka. Tiedonsiirrossa käytetään hajaspektritekniikkaa ja menetelmänä taajuushyppelyä. Bluetoothin käytössä oleva taajuusalue on 2.400-2.4835 GHz. Varsinaiset radiokanavat f k määräytyvät Bluetooth-spesifikaation [1] mukaisesti kaavasta f k = 2402 MHz + k, k = 0,..., 78. (1) Bluetooth-liikenne perustuu neljälle fyysiselle kanavalle, joista kaksi on varattu varsinaiseen tiedonsiirtoon ja kaksi yhteydenmuodostukseen. Varsinaista fyysisistä kanavaa luonnehtii näennäis-satunnainen hyppiminen radiokanavien f k välillä. Tämän hyppimisen määrittää kussakin yhteydessä 1
isäntänä toimivan laitteen fyysinen osoite ja kello. Toinen tiedonsiirtokanava BPPC 1 käyttää kaikkia 79 taajuutta, kun taas toinen kanava APPC 2 voi jättää hyppytaulustaan pois esimerkiksi ruuhkaisimmat taajuudet, kuitenkin käyttäen näistä vähintään 20:ta [2]. Taajuushyppyjen tiheys tiedonsiirtokanavilla on enimmillään 1600 hyppyä sekunnissa. Bluetooth-laitteiden yhteydenmuodostuksessa on kaksi vaihetta: kysely (inquiry) ja yhdistäminen (paging) [3]. Yleensä ennen yhdistämistä on suoritettava kyselyprosessi, jossa kyselyn suorittaja etsii ympäriltään löydettävissä olevat Bluetooth-laitteet. Sekä kysely- että yhdistämisproseduurille on varattu oma fyysinen kanava, jota luonnehtii näennäis-satunnainen hyppiminen kaavan 1 määrittämien radiokanavien f k välillä. Kanavien luonteesta johtuen niillä käytetään spesifikaation [2] mukaisesti hyppyjen tiheytenä enimmillään 3200:aa sekunnissa. Kyselyvaiheessa kyselyä suorittava laite lähettää aktiivisesti kyselypyyntöjä. Laitteet, jotka on asetettu kyselytilaan kyselyn löydettäviksi, vastaavat kyselypyyntöön käyttäen samaa fyysistä kanavaa. Kyselyä suorittava laite iteroi kaikki kyselykanavan taajuudet, lähettää kyselypyynnön jokaiselle taajuudelle ja kuuntelee näiltä vastauksia [4]. Jokaiseen laitteeseen on tallennettu pääsykoodit eri tyyppisiin kyselyihin. Näillä voidaan rajoittaa kyselyn kattavuutta esimerkiksi eri laitetyyppeihin. Yhdistämisproseduuriin voidaan siirtyä, kun kyselyn tuloksena on saatu tieto löydettyjen laitteiden osoitteista ja kellosta. Yhdistävä laite iteroi yhdistämiselle varatun kanavan taajuuksien läpi lähettäen yhdistämispyynnön näille jokaiselle ja kuuntelee mahdollisia vastauksia. Yhdistämiskanavan pääsykoodi johdetaan yhdistävän laitteen osoitteesta. Yhdistävä laite voi käyttää tietoa yhdistettävän laitteen kellosta synkronoinnin ja siten yhteydenmuodostuksen nopeuttamiseen. Yhteys on muodostettu laitteiden välille, kun yhdistettävä laite on lähettänyt vastauksen yhdistämispyyntöön. Laitteilla on tällöin yhteinen fyysinen kanava ja keskenään synkronoidut kellot. Laitteet kuuluvat nyt määritelmän [3] mukaan samaan pikoverkkoon (piconet) ja ne voivat suorittaa tiedonsiirtoa keskenään. Yhdistävällä laitteella on nyt mahdollisuus suorittaa haku yhdistetyn laitteen palveluista ja avata johonkin näistä varsinainen sovellustason verkkoyhteys. 1 Basic Piconet Physical Channel 2 Adaptive Piconet Physical Channel 2
2 Järjestelmän arkkitehtuuri Yhteydenmuodostuksen kannalta merkittävät järjestelmän osat ovat palvelin reititin Bluetooth-antennimoduulit ja päätelaitteet. Päätelaitteet ovat tässä yhteydessä järjestelmään kirjautuvia Bluetoothlaitteita. 3 Järjestelmän verkkotopologia rakentuu antennimoduulien muodostamille pikoverkoille. Kukin antennimoduuli toimii yhden pikoverkon isäntälaitteena ja jokainen päätelaite on yhteydessä yhteen antennimoduuliin kuuluen näin sen verkkoon. Kuva 1: Järjestelmän radioverkko-osien fyysinen arkkitehtuuri. Kuvassa 1 esimerkiksi moduuli 3 sekä päätelaitteet C, D ja E muodostavat pikoverkon. Palvelin huolehtii varsinaisesta päätelaitteiden palvelusta ja toimii käyttöliittymänä palvelun palvelinpään käyttäjälle. Reititin puolestaan ohjaa ra- 3 Kaikkien päätelaitteiden ei tarvitse käyttää Bluetooth-teknologiaa, mutta tällöin ne ottavat yhteyden suoraan palvelimeen. 3
diomoduuleja, hallinnoi Bluetooth-yhteyksiä ja välittää viestejä palvelimen ja päätelaitteiden välillä 4. 3 Yhteydenmuodostus järjestelmässä Yhteydenmuodostus järjestelmään Bluetooth-radioverkkoa käyttäen tapahtuu teknisesti luvussa 1 esitetyllä periaatteella. Bluetooth-verkkojen perinteisestä ad hoc -tyyppisestä rakenteesta [5] hieman poiketen järjestelmän erityispiirteet tuovat jossain määrin enemmän mahdollisuuksia. Verkon muodostamista edesauttaa staattisten ja ennalta tunnettujen verkkoarkkitehtuurin osien olemassaolo. 3.1 Vaatimukset Verkkotekniikka asettaa rajoituksia pikoverkkojen koolle: kukin radiomoduuli voi hallinnoida korkeintaan seitsemää päätelaitetta. Päätelaitteet tulee tällöin määrätä keskitetysti kullekin moduulille ja samalla kunkin päätelaitteen etäisyys kustakin moduulista tulee olla riittävän lyhyt Bluetoothradioviestintään. Radioliikenteen määrä tulee pitää yhteydenmuodostuksen aikana riittävän vähäisenä, jotta samassa tilassa on mahdollista käyttää mahdollisimman suurta määrää päätelaitteita. Lisäksi esimerkiksi Philipsiltä [6] arvioidaan, että mahdolliset langattomat lähiverkot ja Bluetooth häiritsevät toisiaan. Kirjautumisajan tulee olla riittävän lyhyt, että useiden kymmenien päätelaiteiden muodostaman verkon rakentaminen onnistuu järkevässä ajassa 5. Järjestelmän tulee olla riittävän joustava tukeakseen dynaamista päätelaitteiden lisäystä ja poistoa missä tahansa vaiheessa. Lisäksi käyttäjäinteraktion tulee olla yksinkertainen. 3.2 Ratkaisumallit Ensimmäinen malli on kyselypohjainen yhteydenmuodostus Inquiry Based Connection, IBC. Palvelin asettaa reitittimen moduulit, tai osan niistä, suorittamaan kyselyä, jolloin moduulien kantaman päässä olevat päätelaitteet löydetään ja niihin voidaan muodostaa yhteys. Tämä edellyttää, että päätelaitteet julkaisevat sekä laitteen että asiakasohjelman löydettävissä olevana (discoverable) palveluna. Kysely on kuitenkin Siegemundin et al. [7] mukaan 4 Palvelin ja reititin voivat olla myös saman ohjelmiston eri osia, mutta tämänhetkisessä implementaatiossa ne sijaitsevat eri laitteilla ja eri alustoilla. 5 Korkeintaan kymmenien sekuntien kertaluokkaa. 4
hidas prosessi, sillä vaikka teoriassa [8] on mahdollista etsiä 255 laitteen löytymiseen asti, ei yhdellä kyselyllä löydetä näistä kaikkia. He mittasivat, että spesifikaation [9] suosittelemalla 10,24 sekunnin kyselyllä 50 laitteen joukosta saadaan vastauksia noin 20 eri laitteelta. Mikäli jo löydettyjä laitteita ei aseteta pois löydettävistä esimerkiksi muodostamalla niihin yhteys, on ongelmana samojen laitteiden löytyminen useassa peräkkäisessä haussa. Luvussa 1 esitetyt yhdistäminen ja palvelunetsintä eri kyselyjen välissä aiheuttavat kuitenkin ylimääräistä viivettä ja vaativat sovellustasolla enemmän työtä. Lisäksi jos hausta aiheutuvaa pyritään vähentämään käyttämällä hakua dynaamisesti laitteiden löytämistarpeen mukaan, tulee haun olla parametrisoitavissa ohjelmallisesti. Toisaalta haun aikavälin nostaminen lisää viivettä. Hakupohjaiset ratkaisut ovat päätelaitteen käyttäjille kuitenkin helpoin vaihtoehto: pääteohjelman käynnistäminen riittää aloittamaan yhteydenmuodostuksen. Toinen vaihtoehto on käyttää osoitepohjaista yhteydenmuodostusta Predefined Address Connection, PAC. Tässä mallissa jokaisesta verkkoon pyrkivästä laitteesta on tiedossa osoite. Kuten luvussa 1 todettiin, yhdistämiseen vaaditaan vain tieto laitteen osoitteesta. Näin ollen on suhteellisen suoraviivaista käydä läpi lista laitteiden osoitteista ja ottaa näihin yhteys. Yhdistämiseen vaadittu aika on sekunnin kertaluokkaa, eli se on huomattavasti IBC:tä nopeampi. Edellä mainittu pätee vain, jos kyseinen laite on radiomoduulin kantaman sisällä ja sen pääteohjelma on valmis yhteydenmuodostukseen. Jos laite ei ole tavoitettavissa, yhteydenmuodostusyritys katkeaa oletusarvoisesti [10] 5,12 sekunnin kuluttua. Ratkaisu sopiikin hyvin pienille verkoille tilanteissa, joissa on helppo kerätä laitteiden osoitteet ja varmistaa, että kaikki laitteet ovat valmiina yhteydenmuodostukseen. Pääasiassa tätä mallia on hyödynnetty nykyisen prototyypin testiympäristössä. Päätelaitteita on myös helppo lisätä dynaamisesti lähettämällä yhdistämispyyntö vain tiettyyn osoitteeseen. Tässä mallissa tarvittava osoitetietojen kerääminen ja ylläpito on käyttäjän kannalta ylimääräistä työtä. Kolmas tapa on perustaa verkon muodostus tunnetulle staattiselle verkon komponentille ja käyttää ilmoitusmoduulipohjaista yhteydenmuodostusta Notify Module Connection, NMC. Aikaisempiin malleihin verrattuna tässä yhteydenmuodostuksen aloitteen tekee päätelaite. Käyttäjällä on tiedossa ainakin yksi osoite niin sanottuun ilmoitusmoduuliin, kuvassa 1 esimerkiksi moduuli 1, jolla ei ole omaa pysyvää pikoverkkoa. Päätelaitteelle annetaan pyyntö ottaa yhteys tähän moduuliin, samaan tapaan kuin PAC-mallissa, ja kun yhteys on muodostettu, on palvelimella tieto laitteen olemassaolosta, sen osoitteesta ja kellosta. Tämän jälkeen yhteys katkaistaan ja muodostetaan uudelleen palvelimen puolelta jonkin toisen moduulin kautta. Menetelmä on hitaampi kuin PAC, mutta ei vaadi etukäteen tietoja verkon laitteista. 5
IBC PAC NMC MDC Nopeus Hidas Nopein Riittävä Mahdollisesti hidas Skaalautuvuus Dynaamisuus Liikenne Käytettävyys pienille verkoille Helpoin loppukäyttäjälle pienille verkoille Riittävän dynaaminen mahdollisesti keskisuurille Implementointi työlästä Ylimääräistä Ei ylimääräistä Vaatii käyttäjistä osoitetietokannan myös suurille verkoille Riittävän dynaaminen Hieman ylimääräistä Melko helppo käyttää Riittävän dynaaminen Ylimääräistä Helppo käyttää Taulukko 1: Yhteenveto eri menetelmien arvioiduista ominaisuuksista. Ensimmäinen yhteydenmuodostus vie saman ajan kuin PAC, mutta tämän lisäksi vaaditaan vielä toinen; joskin siinä voidaan käyttää hyväksi tietoa laitteen kellosta. Tämä ratkaisu on sekä dynaaminen että skaalautuva. Koska esimerkiksi Normanin [11] mukaan käyttäjän muistikuorma tulee minimoida, on neljäs tapa NMC:n käyttäjäystävällisempi versio, moduulikyselypohjainen yhteydenmuodostus Module Discovery Connection, MDC. Tämä malli on pääosin analoginen NMC:n kanssa, mutta tässä käyttäjän ei tarvitse tietää ilmoitusmoduulin osoitetta; päätelaite käyttää kyselyä tämän selvittämiseksi. Kysely on helpompi suorittaa kuin IBC-mallissa, sillä löydettäviä laitteita on huomattavasti vähemmän. Ongelman saattaa aiheuttaa liikenteen määrä, mikäli kaikki päätelaitteet käyttävät tätä mallia. 4 Yhteenveto Työssä esiteltiin neljä mahdollista menetelmää yhteydenmuodostukseen Bluetoothverkossa ja arvioitiin niiden sopivuutta erilaisiin käyttötilanteisiin. Yhteenveto on esitetty taulukossa 1. Näistä etenkin kyselyn sisältävillä on ongelmana kyselystä aiheutuva ylimääräinen liikenne. Kysely on kuitenkin käyttäjäystävällinen tapa toteuttaa yhteydenmuodostus. Toisaalta puhtaan kyselyn hitaus ja kattavuuden puute todennäköisesti pakottavat käyttämään osittaista 6
kyselyä tai jotain yleisesti tiedossa olevaa verkon komponenttia, kuten tunnettua kirjautumismoduulia, apuna verkon muodostuksessa. Kyselypohjaisissa malleissa on kuitenkin mahdollisuuksia parannuksiin. Jatkotutkimukselle on tarvetta ainakin kyselyn vaatiman liikenteen mittaamiseksi sekä eri mallien teoreettisten kirjautumisviiveiden verifioimiseksi. Viitteet [1] Bluetooth specification Version 2.0, volume 3, sivu 29, 4.11.2004. [2] Bluetooth specification Version 2.0, volume 3, sivut 70-75, 4.11.2004. [3] Bluetooth specification Version 2.0, volume 1, sivut 51-53, 4.11.2004. [4] Bluetooth specification Version 2.0, volume 1, sivut 37-38, 4.11.2004. [5] F. Forno, G. Malnati and G. Portelli: Design and implementation of a Bluetooth ad hoc network for indoor positioning, IEE Proc.-Softw., Vol. 152, No. 5, lokakuu 2005. [6] Philips: How 802.11b/g WLAN and Bluetooth Can Play, saatavilla pdf-muodossa verkosta <URL: http://www.semiconductors.philips.com/ acrobat_download/literature/9397/75013426.pdf>, syyskuu 2005. [7] F. Siegemund, M. Rohs: Rendezvous layer protocols for Bluetoothenabled smart devices, Springer-Verlag, London Limited, 2003. [8] Bluetooth specification Version 2.0, volume 3, sivu 400, 4.11.2004. [9] Bluetooth specification Version 2.0, volume 3, sivu 165, 4.11.2004. [10] Bluetooth specification Version 2.0, volume 3, sivu 385, 4.11.2004. [11] D. A. Norman: The Design of Everyday Things, ISBN 0-465-06710-7, Basic Books, New York, 1988. 7