Tietokantapohjainen synkronointi kämmentietokoneissa



Samankaltaiset tiedostot
Järjestelmänvalvontaopas

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI ( )

Seuraavat Windowsin käyttöjärjestelmäversiot tukevat Novell Filr -työpöytäsovellusta:

Nimettömien tietojen lähettäminen Lenovolle

Android. Sähköpostin määritys. Tässä oppaassa kuvataan uuden sähköpostitilin käyttöönotto Android Ice Cream Sandwichissä.

Googlen palvelut synkronoinnin apuna. Kampin palvelukeskus Jukka Hanhinen, Urho Karjalainen, Rene Tigerstedt, Pirjo Salo

1. päivä ip Windows 2003 Server ja vista (toteutus)

SALITE.fi -Verkon pääkäyttäjän ohje

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

HELIA 1 (14) Outi Virkki Tiedonhallinta

Pilvitallennus Google Drive 1

Office 365:n käyttäminen Android-puhelimessa

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Tiedostojen jakaminen turvallisesti

Tiedon varmentaminen mobiilissa ja langattomassa ympäristössä

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

EASY PILVEN Myynnin opas - Storage IT

VERKON ASETUKSET SEKÄ WINDOWSIN PÄIVITTÄMINEN

Visma Liikkuvan työn ratkaisut

ejuttu ohjeet kuinka sitä käytetään.

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Uutta Remote Support Platform 3.0 -versiossa

Nokia E5 ja Mail for Exchange

FuturaPlan. Järjestelmävaatimukset

(Acerin) Windows 8 tabletti henkilöstön työkäytössä Koonnut Hanna Frilander, Mobiilit ohjaajat hanke

Varmuuskopiointi ja palauttaminen Käyttöopas

Versiohallinta ja Subversion Maunu Tuomainen

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Windows 8.1:n vaiheittainen päivitysopas

Visma Econet -ohjelmat ActiveX on epävakaa -virheilmoituksen korjausohjeet

Maiju Mykkänen Susanna Sällinen

Varmuuskopiointi ja palauttaminen Käyttöopas

Projektinhallintaa paikkatiedon avulla

Tiedonsiirto- ja rajapintastandardit

Tietokanta (database)

DNA Netti. Sisältö. DNA Netti - Käyttöohje v.0.1

Microsoft Outlook Web Access. Pikaohje sähköpostin peruskäyttöön

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Outlook-synkronointi 08Q4

LAITTEISTOKOKOONPANON SELVITTÄMINEN JA AJURIEN ASENTAMINEN

HARJOITUS 3: Asennetaan Windows Vista koneeseen Windows 7 Professional upgrade ohjelmisto (Windows 7 käyttöjärjestelmän asennus)

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

Sovellusarkkitehtuurit

Garmin laitteiden ohjelmistopäivitys

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

JOHDANTO AirPrint on käytettävissä vain tulostimissa tai monitoimilaitteissa, jotka tukevat AirPrintiä. Huomaa

RATKI 1.0 Käyttäjän ohje

ANVIA ONLINE BACKUP ASENNUSOPAS 1(7) ANVIA ONLINE BACKUP ASENNUSOPAS 1.0

Kameran laiteohjelman päivittäminen

Uuden työ- tai mittavälineen luominen tietokantaan

lizengo Asennusopas Windows: in kopioiminen

TIETOKONE JA VERKOT IT PC & NETWORK SUPPORT TAITAJA 2001 LAHTI KÄYTTÖJÄRJESTELMIEN JA OHJELMISTOJEN ASENTAMINEN SEKÄ KONFIGUROINTI


Office ohjelmiston asennusohje

WR-R10- langattoman kauko-ohjaimen laiteohjelman päivittäminen

Webforum. Version 14.4 uudet ominaisuudet. Viimeisin päivitys:

Kameran laiteohjelman päivittäminen

Tikon Ostolaskujenkäsittely versio SP1

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Varmuuskopiointi ja palauttaminen Käyttöopas

Langattomien kauko-ohjainten WR-1/WR-R10 laiteohjelman päivittäminen

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Nettikalenterin tilausohjeet

Visma Nova Webservice Versio 1.1 /

Salasanojen turvallinen tallentaminen KeePass ohjelmalla

Pikaopas työjärjestystietojen viemiseen uuteen Outlook -kalenteriin

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

HYBRIDIEN INVAASIO. Tutkimus Euroopan liikkuvan työvoiman laitevalinnoista

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Motorola Phone Tools. Pikaopas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy

Järjestelmäarkkitehtuuri (TK081702)

Visual Case 2. Miika Kasnio (C9767)

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit

Larppa-laskutusohjelma v1.1 Ohje

Ohjelmistopäivitykset

Home Media Server. Home Media Server -sovelluksen asentaminen tietokoneeseen. Mediatiedostojen hallinta. Home Media Server

2. Koetilan palvelin. 4. Varatietokoneet ja -kuulokkeet. 6. Kokelaan tikkuja osallistujille, varapäätelaitteille ja varalle

Brother Image Viewer Android -opas

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen

Projektityö: Mobiiliajopäiväkirja. Mikko Suomalainen

Visma Software Oy

Palvelemme arkisin klo. 08:00-17:00

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

Office Synchronizer Julkaisutiedot. Versio 1.61

VERKKOKÄYTTÄJÄN OPAS. Tulostuslokin tallennus verkkoon. Versio 0 FIN

Pienyrityksen mobilisointi. Microsoft Office 365:n avulla PIENYRITYKSEN MOBILISOINTI MICROSOFT OFFICE 365:N AVULLA 1

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Yleinen ohjeistus Linux tehtävään

VIENET JULKAISUJÄRJESTELMÄLLÄ TOTEUTETTUJEN INTERNET-SIVUJEN YLLÄPITO-OHJE

Monikielinen verkkokauppa

Transkriptio:

TIETOKANNAT NYT! -SEMINAARI, SYKSY 2006 1 Tietokantapohjainen kämmentietokoneissa Markku Manner, Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Abstrakti Kämmentietokoneiden synkronoinnissa on useita ongelmia nykypäivänä. Useimmat protokollat ovat suljettuja kaupallisia ohjelmia, joiden spesifikaatioita ei ole julkaistu. Nämä ohjelmat myös olettavat käyttäjän synkronoivan tiedot aina samojen koneiden kesken. Nykypäivänä ihmiset ovat tottuneet käyttämään tietokoneita eri paikoissa, esimerkiksi hotellin aulassa, joten tämän hetken ohjelmat eivät sovellu kyseiseen tarkoitukseen. Kyseinen ongelma on havaittu ja siihen on tarjolla erilaisia ratkaisuja. Avainsanat Tietokanta,, kämmentietokone I. JOHDANTO Kämmentietokoneiden käyttö on lisääntynyt runsaasti viime vuosina. Erityisesti Palm ja PocketPC kämmentietokoneet ovat kasvattaneet suosioitaan. Ihmiset pitävät kämmentietokoneissa kalenterimerkintöjä ja muita muistiinpanoja. Tämän myötä kämmentietokoneiden pöytäkoneiden kanssa on tullut suosituksi. Käyttäjä siirtävät tietoja kyseisten koneiden välillä riippuen minne teki viimeisen merkinnän esimerkiksi kokouksesta. Ihmiset säilyttävät kämmentietokoneissa myös eri mediatiedostoja kuten MP3-musiikkitiedostoja. Näitä yritetään myös synkronoinnissa siirtää koneiden välillä. Ongelmana ei ole varsinaisesti kämmentietokoneet vaan niiden protokollien toteutukset. Nykypäivän protokollat ovat suurimmaksi osaksi kaupallisia ja niiden spesifikaatioita ei ole julkistettu. Kyseiset protokollat toimivat myös ainoastaan kyseisen valmistajan tuotteiden kanssa eivätkä ole erityisen kehittyneitä. Useimmilla on ongelmia hoitaa useamman pöytätietokoneen kanssa ja ne vaativat esiasennetun ohjelman. Nykypäivän ihmiset liikkuvat paljon ja käyttävät usein tietokoneita eri paikoissa. Kyseiset protokollat eivät tue erityisen hyvin liikkuvan ihmisen tarpeita eivätkä ole erityisen tehokkaita suurien tietomäärien synkronoinnissa. Ongelmia ilmaantuu myös kun käytetään useita eri tietokoneita synkronoinnissa. Kyseisen ongelman ratkaisemiseksi eri tahot ovat aloittaneet suunnittelun yhteisen protokollan toteuttamiseksi. Tarkoitus olisi tehdä toteutus, jonka avulla voisi synkronoida usean, mahdollisesti kaikkien, eri valmistajien kämmentietokoneet ilman esiasennettuja ohjelmia rajoittamassa toimintaa. Yksi toteutus, joka on helposti laajennettavissa tukemaan eri protokollia, on Edison [1]. Edison toteuttaa tietokantapohjaisen synkronoinnin eri valmistajien kämmentietokoneille, mikä on tehokkaampi ja käytännöllisempi kuin kaupalliset toteutukset. Luvussa II käydään läpi muutama esimerkki miten voidaan toteuttaa, jonka jälkeen luvussa III käydään läpi miten tietokantoja voitaisiin hyödyntää synkronoinnin toteuttamisessa. Luvussa IV esitellään Edison eli eräs tietokantapohjainen protokolla kämmentietokoneille, jonka tarkotus olisi ratkaista käyttäjien synkronoimisen rajoittaminen muutamaan tietokoneeseen. Ja vielä ennen luvussa VI olevaa yhteenvetoa on luvussa V lyhyt katsaus Edison:n kaltaiseen työhön. II. SYNKRONOINTI NYKYPÄIVÄNÄ Seuraavaksi esitellään muutama ratkaisu kämmentietokoneiden in tietokoneiden kanssa. Ensiksi esitellään Palm:n ratkaisu in ja tämän jälkeen SyncML. A. Synkronointi Palm:ssa Palm Operating System (PalmOS) on lyhenne Palm:n kehittämälle kämmentietokoneiden käyttöjärjestelmälle [3]. PalmOne on Palm:n oma kämmentietokone. Useat eri valmistajat valmistavat PalmOS kämmentietokoneita. Palm on kehittänyt HotSync-prosessin jonka avulla PalmOne kämmentietokoneita voidaan synkronoida pöytätietokoneiden kanssa [3]. Synkronointia varten Palm on kehittänyt Palm Desktop ohjelman, jonka avulla voidaan HotSync-protokollaa käyttää synkronoinnissa. Taulussa I on esitelty HotSync protokollan logiikka. HotSync protokollassa kämmentietokone sekä palvelin, eli synkronoinnin kohteena oleva tietokone, pitävät tallella metatietoja. Kyseiset tiedot ilmaisevat mitkä tiedostot ovat muuttuneet, poistettu tai lisätty sitten viimeisen synkronoinnin. Eli molemmilla on tietoa eri tiedostojen tiloista. HotSync on alunperin suunniteltu yhden käyttäjän PalmOne kämmentietokoneen ja pöytäkoneen väliseen in. Tämän takia HotSync ei toimi erityisen hyvin useamman pöytäkoneen ja PalmOne kämmentietokoneen väliseen in, vaikka tämä kyllä onnistuu. HotSync protokollalla voidaan synkronoida useampi PalmOne kämmentietokone saman pöytäkoneen kanssa [3], mutta tämä on altis käyttäjän virheille. PalmOne kämmentietokoneita voi synkronoida Palm Desktop:n lisäksi Microsoft Outlook:n kanssa. Jos kämmentietokone synkronoidaan Outlook:n kanssa niin päätös, minkä Outlook käyttäjän kanssa synkronoidaan, tehdään ensimmäisellä kerralla. Tämä tietenkin on hieman riski-altista, koska jos pöytäkone on monen henkilön yhteisessä käytössä, niin on mahdollista, että virheen sattuessa käyttäjä on synkronoinut tietonsa väärän käyttäjän tietoja kohtaan.

TIETOKANNAT NYT! -SEMINAARI, SYKSY 2006 2 Kämmentieto- Palvelimen tiedon Palm Desktop:n koneen tiedon tila tila toiminta Lisätty Ei tiedostoa Lisää tiedosto kämmentietokoneesta palvelimeen Ei tiedostoa Lisätty Lisää tiedosto palvelimesta kämmentietokoneeseen Poistettu Pysynyt ennallaan Poista tiedosto palvelimesta Pysynyt ennallaan Poistettu Poista tiedosto kämmentietokoneesta Ei tiedostoa Poistettu Älä tee mitään Poistettu Ei tiedostoa Älä tee mitään Poistettu Poistettu Älä tee mitään Poistettu Muuttunut Lähetä muuttunut tiedosto kämmentietokoneeseen Muuttunut Poistettu Lähetä muuttunut tiedosto palvelimeen Muuttunut Pysynyt ennallaan Päivitä palvelimen tiedosto kämmentietokoneen versiolla Pysynyt ennallaan Muuttunut Päivitä kämmentietokoneen tiedosto palvelimen versiolla Muuttunut Muuttunut Kopioi versiot edestakaisin ja säilytä molemmat versiot molemmissa koneissa, ilmoita käyttäjälle konfliktista TABLE I HOTSYNC:N SYNKRONOINTILOGIIKKA [1] HotSync mahdollistaa myös synkronoinnin Palm Desktopohjelman kanssa. Palm Desktop ei integroi eri käyttäjien tietoja keskenään, vaan tallettaa ne erilleen, mutta huoleton käyttäminen on altis eri käyttäjien tietojen integroimiselle. Jos useat eri henkilöt käyttävät samaa pöytäkonetta PalmOne kämmentietokoneiden in, heidän pitää jokaisella kerralla varmistaa, että oikea käyttäjä on valittu Palm Desktop:ssa. Palm Desktop:n oikeassa ylälaidassa on drop-down valikko, josta oikea käyttäjä pitää valita. Jos a suorittava henkilö ei valitse oikeata käyttäjätunnusta dropdown valikosta, niin PalmOne kämmentietokoneen tiedot integroituvat väärän henkilön tietoihin ja niin menetetään mahdollisesti dataa. Palm Desktop ei tosin mahdollista muiden kuin PalmOne kämmentietokoneiden synkronoinnin, joten jokaista eri valmistajan PalmOS kämmentietokonetta varten pitää olla oma ohjelma. Suurempi ongelma tulee kun yritää pitää useampaa kuin yhtä tietokonetta synkronoituna PalmOS kämmentietokoneen kanssa, esimerkiksi sekä työpaikan, että kodin tietokoneiden kanssa. Tällöin PalmOS kämmentietokone pitää synkronoida vain toisen koneen kanssa ja pitää toisessa tietokoneessa vain kopio PalmOS kämmentietokoneen sisällöstä. Tällöin käyttäjä ei voi tehdä muutoksia esimerkiksi kalenteriin kuin toisella tietokoneella, koska muuten synkronoinnissa tiedot menevät sekaisin. Esimerkiksi oletetaan, että käyttäjä X on aikaisemmin käyttänyt kotona sijaitsevaa tietokonetta vain varmuuskopiona PalmOS kämmentietokoneen ja työssä sijaitsevan tietokoneen kalenterimerkinnöille. X päättää asentaa kotitietokoneen uudestaan. Lopulta X asentaa myös Palm Desktop:n koneeseen ja päättää ottaa samantien varmuuskopion PalmOS kämmentietokoneen tiedoista. Jos X unohti asennuksen jälkeen konfiguroida Palm Desktop-ohjelman ot- Fig. 1. SyncML arkkitehtuuri [2] tamaan vain varmuuskopioita, niin synkronoinnin jälkeen X on synkronoinut PalmOS kämmentietokoneensa kahden eri tietokoneen välillä ja täten tiedot ovat menneet sekaisin. HotSync on myös tehoton protokolla kun kämmentietokonetta synkronoidaan useamman laitteen kanssa. HotSync protokolla poistaa muuttuneiden tiedostojen merkinnät synkronoinnin yhteydessä molemmista laitteista. Täten jos kämmentietokone synkronoidaan aina vain yhden tietyn koneen kanssa, niin kämmentietokoneen ja koneen metatiedot muuttuneista tiedostoista ovat aina ajantasalla. Tällöin synkronoinnin yhteydessä voidaan aina suorittaa nopea ja kopioida edestakaisin vain muuttuneet tiedot. Mutta jos kämmentietokone on ensiksi synkronoitu koneen A kanssa ja tämän jälkeen synkronoidaan koneen B kanssa, ei muuttuneiden tiedostojen merkintöihin voida luottaa. Kyseiset merkinnät ilmoittavat vain mitkä tiedot ovat muuttuneet sen jälkeen kuin kämmentietokone on viimeksi synkronoitu (tässä tapauksessa koneen A kanssa). Joten ei voida tietää mitkä tiedot ovat muuttuneet (kämmentietokoneessa tai koneessa B) sen jälkeen kuin viimeksi synkronoitiin koneen B kanssa. Täten ei riitä tutkia metatiedoista vain muuttuneiksi merkatut tiedot vaan joudutaan suorittamaan hidas. Hitaassa synkronoinnissa kopioidaan kaikki kämmentietokoneen ja tietokoneen in liittyvä tieto edestakaisin. Hitaan synkronoinnin viemä aika kasvaa lineaarisesti tiedon määrän nähden. B. SyncML SyncML on tarkoitettu standardiksi kämmentietokoneiden in ja ominaisuuksien jakamiseen koneiden välillä. SyncML käyttää DTD:a (Document Type Definition) määrittääkseen minkälaisella XML dokumenttityypillä kämmentietokoneen hoidetaan [2]. Tarkoituksena on myös välittää tietoa kämmentietokoneen ominaisuuksista, kuten muistin määrästä, toiselle osapuolelle. Kuvassa 1 on kuvattu SyncML:n toiminta-arkkitehtuuri. Kuvassa A on palvelun tuottava sovellus kuten palvelin, jonka kanssa kämmentietokoneen B olisi tarkoitus

TIETOKANNAT NYT! -SEMINAARI, SYKSY 2006 3 Synkronointi menetelmä kahdensuuntainen Hidas Asiakkaan yksisuuntainen Asiakkaan päivitys Palvelimen yksisuuntainen Palvelimen päivitys Palvelimen hälyttämä Kuvaus Normaali, jossa asiakas ja palvelin välittävät muuttuneita tietojaan keskenään. Asiakas lähettää muutoksensa ensiksi Kahdensuuntainen, jossa asiakas lähettää kaiken in liittyvän tiedon palvelimelle. Palvelin tutkii jokaisen kohdan erikseen verraten omiin tietohinsa Asiakas lähettää vain muuttuneet tietonsa palvelimelle Asiakas lähettää kaiken tietonsa ja palvelin vain päivittää kaiken omaan tietokantaansa Synkronointi tyyppi, jossa vain palvelin lähettää tietonsa asiakkaalle Palvelin lähettää kaiken tietonsa ja asiakas vain päivittää kaiken omaan tietokantaansa Synkronointi tyyppi, jossa palvelin hälyttää asiakaan tekemään tietynlaisen synkronoinnin palvelimen kanssa Asiakkaan tietokanta Palvelimen tietokanta LUID Tieto GUID Tieto 11 Auto 1010101 Auto 22 Pyörä 2121212 Pyörä 33 Rekka-auto 3232323 Rekka-auto 44 Kengät 4343434 Kengät Palvelimen reititystietokanta GUID LUID 1010101 11 2121212 22 3232323 33 4343434 44 TABLE III ESIMERKKI SYNCML:N PALVELIMEN JA ASIAKKAAN TIETOKANNOISTA [2] TABLE II SYNCML:N SYNKRONOINTI MENETELMÄT [2] synkronoida tiedot. A ja B käyttävät esimerkiksi HTTPprotokollaa yhteyden muodostamiseksi. Synkronointimoottori on tässä tapauksessa palvelimessa, mutta se voisi olla myös kämmentietokoneessa. Synkronointipalvelin ja asiakkaan agentit hoitavat varsinaisen kommunikaation SyncML protokollan mukaisesti. Kun asiakas ottaa yhteyden palvelimeen, niin moottori päättää mitä tietoja poistetaan, mitä muutetaan ja mitä lisätään. Tieto välitetään XML:llä asiakkaan ja palvelimen välillä. SyncML sallii myös binääri XML:n käytön tekstipohjaisen XML:n lisäksi. Tunnistamiseen tekstipohjaisen ASCII XML:n ja binääri XML:n välillä käytetään MIME tyyppejä. Tyyppi application/vnd.syncml-devinf+xml määrittää että käytetään ASCII XML ja tyyppi application/vnd.syncmldevinf+wbxml tarkoittaa binääri XML:a. Toista näistä on pakko käyttää. SyncML protokolla määrittää seitsemän eri tapaa hoitaa. Nämä vaihtoehdot on kuvattu taulussa II. Protokolla edellyttää asiakkaalta ja palvelimelta mahdollisuutta erottaa mitkä tiedot ovat muuttuneet viime kerran jälkeen. Jos käytetään useita laitteita saman tiedon in, niin laitteen pitää tallettaa kyseiset tiedot jokaista laitetta vastaan. Eli jos kämmentietokonetta A synkronoidaan palvelimien B ja C kanssa niin laitteen A pitää pystyä identifioimaan tarkasti versionumeroilla mitkä versiot tiedoista se on viimeksi antanut B:lle ja mitkä C:lle. Laitteen A on siten pidettävä kahdet kopiot muuttuneista tiedoista. Palvelimien pitää tallettaa lisätietoa verrattuna asiakkaaseen. Taulussa III on esimerkki palvelimen ja asiakkaan pitämistä tiedoista. Asiakkaan X tietokannassa on tunnisteet jokaiselle synkronoitavalle tiedolle (LUID). Palvelimella on eri tunnisteet samoille tiedoille (GUID), mutta tämän lisäksi palvelin ylläpitää tietoa, mitkä palvelimen omista tunnisteista vastaavat asiakkaan tunnisteita. Jos palvelimesta synkronoidaan uutta tietoa asiakkaalle, niin asiakas antaa aina tiedolle tunnisteen. Kun asiakas on antanut tiedolle tunnisteen, niin asiakas lähettää tämän palvelimelle ja palvelin sitten päivittää tunnisteen omiin tauluihin. Synkronointiyhteyden alussa sekä asiakas että palvelin lähettävät tiedot milloin laite on viimeksi synkronoitu ja oman näkemyksensä tämän hetken synkronoinnista. Tarkoituksena on, että palvelin pystyy tallettamaan asiakkaan näkemyksen tämän kerran synkronoinnista, jotta se pystyy ensi kerran varmistamaan, onko asiakas synkronoinnut itseään muiden kanssa tällä välin. Näin pystytään muun muassa välttymään ongelmalta, jos toisen laitteen kello on väärässä tai laite sijaitsee eri aikavyöhykkeellä. Jos tiedot eivät täsmää synkronoinnissa, niin palvelin ilmoittaa asiakkaalle aloittavansa hitaan synkronoinnin. Hitaassa synkronoinnissa kopioidaan kaikki tieto laitteiden välillä, kun muuten voidaan kopioida vain muuttuneet tiedot. Jos tiedot ovat muuttuneet sekä palvelimessa että asiakas laitteessa, niin synkronoinnin aikana tapahtuu tietojen konflikti. Tämän konfliktin selvittää moottori. Jos asiakas haluaa hoitaa konfliktin selvittämisen, niin palvelin ilmoittaa konfliktin sattuessa, että konflikti havaittiin ja jää odottamaan, että asiakas ratkaisee konfliktin. Kuvassa 2 on kuvattu prosessi SyncML asiakkaan ja palvelimen välillä. SyncML asiakas ja palvelin ottavat yhteyden toisiinsa. Tämän jälkeen käyttäjä aloittaa synkronoinnin, jolloin asiakas lähettää palvelimelle synkronoinnin aloitusviestin ja palvelin vastaa kyseiseen viestiin. Palvelimen vastauksen saavuttua aloitetaan varsinainen tietojen, kuten yllä on kuvattu. Mikäli kaikki menee suunnitellusti, niin lopuksi asiakas lähettää palvelimelle lopetusviestin. III. SYNKRONOINTI TIETOKANNAN AVULLA Liikkuvien kämmentietokoneiden ja muiden laitteiden tietojen ajantasaisuuden varmistamiseksi tietokantapohjaisissa ratkaisuissa, ovat transaktiot erittäin oleellisia. Nämä varmistavat, että joko kaikki halutut asiat ovat saatu suoritettua, tai sitten ne kaikki voidaan peruuttaa ja yrittää myöhemmin uudestaan. Näin vältytään ongelmilta, joita voisi sattua esimerkiksi, kun kesken tietojen päivityksen kämmentietokoneesta loppuu akku. Ilman transaktioita ei voitaisi tietää missä tilanteessa kämmentietokoneen tiedot oikeasti ovat. Transaktioiden käyttö langattoman verkon yli tarvitsee tarkemmat varmuustoimenpiteet kuin langallisessa

TIETOKANNAT NYT! -SEMINAARI, SYKSY 2006 4 Fig. 2. SyncML prosessi [2] verkossa. Langattomat verkot eivät ole yhtä luotettavia ja tämä epäluotettavuus vaikuttaa transaktioiden toteutukseen. Transaktiot koostuvat ACID periaatteen ominaisuuksista. Nämä ominaisuudet ovat atomisuus (Atomicity), konsistenttisuus (Consistency), isolaatio (Isolation), ja kestävyys (Durability). ACID periaatteen ominaisuuksien toiminta mobiilissa ympäristössä on hieman erilaista [5]. Liikkuvien laitteiden kanssa käytettävät transaktiot, mobiilitransaktiot, tarkoittavat transaktioita joiden suoritukseen kuuluu vähintään yksi mobiililaite. Mobiilitransaktio voidaan suorittaa kolmella eri tavalla suhteessa kämmentietokoneeseen ja palvelimeen [5]. 1. Kokonaisuudessaan tietokantapalvelimessa: mobiilitransaktio voidaan toteuttaa samalla tavalla kuin normaali transaktio, mutta tietokantapalvelimen pitää osata kämmentietokoneen yhteydenhallinta. 2. Tietokantapalvelimessa ja kämmentietokoneessa: mobiilitransaktio pitää voida toteuttaa osina vaikka yhteys menetettäisiin kesken transaktion. Tarvitaan kaksisuuntainen validointiprosessi. 3. Vain kämmentietokoneessa: tietokantapalvelimen pitää pystyä säilyttämään tietokanta eheässä tilassa. Kämmentietokone saa tehdä muutoksia vapaasti omiin tietoihin, mutta muuttuneet tiedot pitää päivittää tietokantapalvelimeen. Mobiilitransaktiot koostuvat toisistaan riippumattomista osista, jotka voivat toimia rinnakkain miten tahansa toisten mobiilitransaktioiden kanssa. Erilaiset transaktiotyypit voivat tukea eri tasoisesti päällekkäisyyttä. Mobiilitransaktiot voidaan jakaa neljään erilaiseen transaktioon: atomisiin, korvaamattomiin, ilmoittaviin ja yhteistyötä tukeviin transaktioihin [7]. Atomiset transaktiot ovat korvattavissa olevia. Korvattavissa olevan transaktion tekemät muutokset voidaan peruuttaa korvaavalla transaktiolla. Korvaamattomat transaktiot puolestaan saavat sitoutua milloin tahansa, mutta niitä ei voi korvata, joten ne eivät saa sitouttaa muutoksiaan eri objekteihin. Vasta lopuksi ne saavat sitouttaa muutokset kokonaisuudessaan. Ne voivat myös delegoida muille transaktioille oikeuden sitouttaa transaktio. Delegoinnissa transaktio antaa toiselle transaktiolle vastuun operaation suorittamisesta, sitouttamisesta tai peruuttamisesta. Ilmoittavat transaktiot voivat jakaa osan tuloksistaan toisen transaktion kanssa milloin tahansa suorituksen aikana. Esimerkiksi transaktiot voivat kysyä toisiltaan tulevatko nämä transaktiot muuttamaan jotain tiettyä arvoa transaktionsa aikana. Näin toiset transaktiot voivat saada uudempaa tietoa kuin mitä tietokannassa tällä hetkellä on. Yhteistyötransaktiot puolestaan jakavat kontrollin keskenään. Kun transaktiot delegoivat toisen transaktion jatkamaan tai toteuttamaan jotain operaatiota, niin delegoivat transaktiot jäävät odottamaan ja jatkavat suoritustaan myöhemmin. Yhteistyötransaktiot eivät voi toimia rinnakkain. On myös muita tapoja toteuttaa mobiilitransaktioita. Eri tavoin toteutettavat mobiilitransaktiot sopivat eri tilanteisiin. Yksikään näista ratkaisuista ei ole ehdottomasti paras [4]. Verkon ylitse käytettävät tietokantapohjaiset ratkaisut, kuten luvuissa IV ja V esitetyt, eivät ole yhtä tietoturvallisia ratkaisuja kuin nykypäivän markkinalliset ratkaisut, koska nämä palvelut ovat kaikkien ulottuvilla. Tietokantapohjaiset ratkaisut ovat toisaalta tehokkaampia ja kehittyneempiä. Edison on kehittäjiensä mukaan useita kertoja tehokkaampi ratkaisu kuin Palm:n nopea [1]. IV. EDISON Edison on tietokantapohjainen kämmentietokoneiden protokolla [1]. Edison käyttää hyväkseen relaatiotietokantojen tarjoamia toiminnallisuuksia, kuten transaktioita, jotta käyttäjien tiedot säilyttävät eheyden. Edison mahdollistaa myös sen, että käyttäjät voivat synkronoida laitteensa miltä tahansa tietoliikenneyhteyden omaavalta tietokoneelta. Tarkoituksena on toteuttaa protokolla, jossa ei ole samoja ongelmia kämmentietokoneen synkronoinnissa kuin mitä aikaisemmin esilteltiin luvussa I ja II. Aluksi luvussa IV-A kuvataan Edison:n toiminta yleiseltä kannalta ja luvussa IV-B Edison:n protokollan toiminta tarkemmin. A. Yleiskatsaus Kuvassa 3 on esitetty Edison:n toimintatopologia. Tietokantapalvelin sijaitsee kiinteän verkon yhteydessä ja pisteet ovat erilaisia tietokoneita tai verkkoasemia, joiden kautta kämmentietokoneet voidaan synkronoida tietokantapalvelimen kanssa. Kämmentietokoneet voivat olla erilaisin menetelmin kiinni pisteissä, esimerkiksi verkkojohdon välityksellä tai langattomasti. Tietokannassa säilytetään useiden käyttäjien kämmentietokoneiden tiedot ja metatiedot, jotta käyttäjät voisivat synkronoida laitteensa useasta eri paikasta, huolehtimatta menevätkö metatiedot sekaisin. Nämä metatiedot eivät voi mennä sekaisin, koska käyttäjä käyttäisi aina samaa tietokantapalvelinta eri paikoissa, joten samankaltaista ongelmaa ei tule kuin esimerkiksi aikaisemmin esitetty ongelma Palm:n HotSync-protokollan kanssa. Tietokannassa säilytetään käyttäjien synkronoimat tiedot eri tauluissa. Palvelin säilyttää jokaista kämmentietokoneen tietotyyppiä kohden, esimerkiksi nimiluetteloa tai kalenteria, varten oman taulun. Kyseisiin taulukoihin tallennetaan

TIETOKANNAT NYT! -SEMINAARI, SYKSY 2006 5 Fig. 3. Edison:n toiminta topologia [1] kaikkien eri käyttäjien tiedot, eli eri käyttäjille ei luoda omia tauluja. Koska eri käyttäjät voivat synkronoida tiedot saman palvelimen kanssa, voivat käyttäjät myös jakaa tietoja kyseisen palvelun kautta, esimerkiksi ajankohtatietoja yhteisistä kokouksista. Tällöin käyttäjät jakavat saman tiedon myös tietokannassa, eli jos käyttäjä A päivittää tiedon esimerkiksi jaetusta kokouksesta synkronoinnin yhteydessä tietokantaan, niin kun käyttäjä B synkronoi tietonsa, niin hänelle tulee myös uusin tieto kokouksesta. Jotta tietokannan tauluissa oleva tieto olisi myös ymmärrettävissä kämmentietokoneelle, ohjelmoijan pitää toteuttaa konvertointitoiminnallisuus tietokantapalvelimeen. Konvertointitoiminnallisuuden avulla tietokantapalvelin voi konvertoida tauluissa olevat tiedot kämmentietokoneen ymmärtämän syntaksin mukaiseksi, ja toistenpäin. Edison tallettaa tietokantaan myös synkronoinnin metatietoja erilliseen matriisiin. Kyseisissä matriiseissa jokaiselle erilliselle kämmentietokoneelle annetaan oma yksilöllinen tunniste, ja talletetaan jokaisesta synkronoidusta tiedosta kasvava tunnistenumero, eli versionumero, ja kyseinen synkronoitava tieto. Versionumeron avulla tietokanta pystyy tunnistamaan onko kämmentietokoneessa vai tietokannassa uusin tieto ja täten hoitamaan. Edison:n kanssa synkronoidessa on mahdollista päättää mitä tietoja halutaan synkronoida. Täten vältytään tilanteesta, jossa täyttäisi kämmentietokoneen rajallisen muistin kokonaisuudessaan. Edison voidaan konfiguroida tallettamaan jokaista kämmentietokonetta kohden tietoja, mistä kyseisen kämmentietokoneen käyttäjä on kiinnostunut ja täten rajaamaan mitä tietoja synkronoinnissa välitetään laitteiden välillä. B. Protokolla Synkronoinnin alkaessa kämmentietokone alustaa yhteyden jonkin pisteen kanssa ja lähettää oman tunnisteensa, joka on talletettu Edison:n tietokantaan. Synkronointipiste tarkistaa onko sillä talletettuna kyseistä tunnistetta ja siihen liittyviä tietoja, esimerkiksi kalenterimerkintöjä. Synkronointipisteiden ei tarvitse tallettaa mitään tietoja synkronoinnista vaan kaikki voidaan tallettaa tietokantapalvelimeen. Tämä ehkäisee ongelman, jossa käyttäjä olisi rajattu käyttämään yhtä tai muutamaa tietokonetta. Jos pisteellä on tietoja, niin se käyttää niitä, muuten tiedot haetaan tietokantapalvelimelta. Edison:n synkronoinnissa toteutetaan atomista a. Kyseisellä termillä tarkoitetaan, että synkronoinnin yhteydessä joko koko onnistuu, eli kaikki tieto viedään palvelimeen kämmentietokoneesta, ja / tai toisten päin, tai sitten epäonnistuu ja mitään tietoa ei viedä toiseen laitteeseen. Kun pisteellä on kämmentietokoneen matriisi, se synkronoi jokaisen valitun tiedon Edison:n tietokantapalvelimen kanssa. Synkronointi vaihe voidaan jakaa kolmeen kohtaan. 1) Synkronoinnin alustaminen: Kämmentietokone lähettää pisteelle informaation siitä, mitkä tiedot ovat muuttuneet, poistettu tai lisätty viimeisen synkronoinnin jälkeen. Synkronointipisteet keräävät nämä tiedot erilaisiin joukkoihin: poistettaviin, lisättäviin ja muutettaviin. Kun kyseiset tiedot on ryhmitelty, piste lähettää kyseiset tiedot yhdessä SYNC REQUEST viestissä tietokantapalvelimelle. Samalla lähetetään kämmentietokoneen tunniste ja matriisi. 2) Synkronoinnin suorittaminen: Kun tietokantapalvelin saa pisteeltä SYNC REQUEST viestin, niin aloitetaan transaktio, jossa ensimmäinen askel on tunnisteen versionumeron vertaaminen tietokannan sisältämään arvoon. Mikäli numero ei ole sama, on pisteellä ollut vanhaa tietoa, ja tietokantapalvelin lähettää takaisin SYNC ABORT viestin. SYNC ABORT viestissä on uusin versionumero ja muuttuneet tiedot. Synkronointi loppuu tällöin tähän. Jos numero on sama, jatkuu. Ensiksi tietokantapalvelin päivittää omiin tietoihin kaikki kämmentietokoneelta tulevat päivitetyt tiedot. Palvelin päivittää kyseisille tiedoille uuden numeron viittaamaan, että mikä versio tiedosta palvelimella on. Tämän avulla muut laitteet voivat synkronoidessaan saada uusimman tiedon palvelimelta, huomatessaan omaavansa vanhempaa tietoa. Palvelin kirjoittaa transaktiot ensiksi lokitiedostoihin, jotta voidaan varmistaa transaktioiden turvallinen toteutus ja tietojen eheyden säilyminen. Lokitiedostot myös mahdollistavat tietokannan tilan palautuksen järjestelmän kaatuessa. Jos transaktio peruutetaan jossain vaiheessa, lokitiedostojen avulla voidaan poistaa jo tehdyt muutokset, ja palvelin lähettää pisteelle SYNC ABORT viestin. Muuten tietokantapalvelin sitouttaa transaktion ja lähettää pisteelle SYNC COMMIT viestin. Yllä oleva toteutus varmistaa, että molemmilla on varmasti samat tiedot synkronoinnin päättyessä. Palvelin lähettää pisteelle vielä CACHE UPDATE viestin, jolloin piste voi tallettaa itselleen ajantasalla olevat tiedot, eli että kyseistä pistettä käytettiin viimeksi kyseisen kämmentietokoneen synkronoinnissa. Synkronointipisteen ei ole pakko tallettaa kyseisiä tietoja omaan muistiin. 3) Synkronoinnin vastausten tulkitseminen: Jos piste saa viestin SYNC ABORT niin se päivittää omat

TIETOKANNAT NYT! -SEMINAARI, SYKSY 2006 6 tietonsa viestin mukana tulevilla tiedoilla ja palaa takaisin vaiheeseen 1. Jos viesti on SYNC COMMIT piste lähettää saamansa tiedot atomisesti kämmentietokoneelle ja poistaa poistettavaksi merkityt tiedot. Kun kaikki tiedot on lähetetty kämmentietokoneelle, piste lähettää tietokantapalvelimelle SYNC END viestin. SYNC END viestillä piste ilmoittaa palvelimelle, että tiedot on turvallisesti päivitetty kämmentietokoneeseen. Tällöin palvelin voi turvallisesti sitouttaa muutokset ja tyhjentää lokitiedostosta kyseiseen in liittyvät lokimerkinnät. Synkronointi päättyy, kun palvelin lähettää pisteelle SYNC END REPLY viestin. Edison on helposti laajennettavissa uusille protokollille ja laitteille. Jotta Edison saadaan toimimaan uuden laitteen tai protokollan kanssa, ohjelmoijan tarvitsee vain määrittää taulut tietokantapalvelimeen (yksi taulu jokaista eri kämmentietokoneen synkronoitavaa tietotyyppiä kohden) ja toteuttaa kaksi eri metodia per taulu: doaction ja changesventries. Kyseiset metodit mahdollistavat tietojen konvertoimisen taulujen ja laitteen protokollan ymmärtämän syntaksin välillä. Edison:n laajentaminen tukemaan uutta laitetta vie Edison:n perehtyneeltä ohjelmoijalta arvioilta puolisen työpäivää [1]. V. MUITA TÖITÄ S.W. Lauzac ja P.K. Chrysanthis ovat suunnitelleet Edison:n kaltaisen toteutuksen. Heidän toteutuksessaan kämmentietokoneet käyttävät hyväkseen näkymiä suuremman tietokannan sisällöstä [6]. Tarkoituksena on säilyttää tietokanta kokonaisuudessaan langallisessa verkossa sijaitsevassa tietokantapalvelimessa. Kyseisestä tietokannasta useammat eri palvelimet säilyttävät kämmentietokoneille erilaisia näkymiä. Näin käyttäjien ei tarvitse, esimerkiksi työmatkalle, ottaa mukaan kaikkea tietoa (osa tarpeettomia kyseisellä matkalla) tai aina hakea toiselta puolelta maailmaa suurta määrää tietoa (joista osa olisi turhaa). Kuvassa 4 on kuvattu miten näkymien käyttäminen toimisi S.W. Lauzac:n ja P.K. Chrysanthis:n toteutuksessa [6]. Ylimpänä on tietokantapalvelimet ja niitä käyttäviä tietovarastoja. Tietokantapalvelimet ovat vastuussa tietovarastojen näkymien päivittämisestä. Näiden alapuolella ovat näkymiä säilyttäviä palvelimia. Nämä näkymäpalvelimet puolestaan säilyttävät käyttäjän pyytämän näkymän tietokantapalvelimen tai tietovarastojen tiedoista. Näkymäpalvelimet pyrkivät pitämään kämmentietokoneen käyttäjän pyytämät tiedot ajantasalla. Eli näkymäpalvelimet ovat käytännössä puskureita kämmentietokoneiden tarvitsemille tiedoille. Tietokantapalvelimet, tietovarastot ja näkymäpalvelimet sijaitsevat kaikki kiinteässä verkossa toisin kuin kämmentietokoneet. Kun käyttäjä tarvitsee päivityksen oman kämmentietokoneen tietoihin, niin se ottaa yhteyden näkymäpalvelimeen ja lataa sieltä vain ne tiedot, jotka käyttäjä oli pyytänyt säilytettäväksi näkymäpalvelimen puskurissa. Käyttäjä myös päivittää muuttuneet tiedot näkymäpalvelimeen. Näkymäpalvelin päivittää tiedot eteenpäin tietokantapalvelimeen. Näin kämmentietokoneessa Fig. 4. Yleinen arkkitehtuuri [6] ei koskaan tarvitse säilyttää turhaa tietoa, vaan ainoastaan, esimerkiksi kyseisellä työmatkalla, tarvittavat tiedot. VI. YHTEENVETO Nykypäivän ratkaisuissa on useita ongelmia. Protokollat ovat kaupallisia ja näiden spesifikaatioita ei ole julkaistu, joten niiden toiminnasta ei ole tarkkaa tietoa. Kyseiset ratkaisut eivät myöskään ole erityisen tehokkaita ja toimivat hyvin ainoastaan synkronoidessa kämmentietokone yhden tietokoneen kanssa. Kyseinen in käytettävä tietokone vaatii myös esiasennetun ohjelman. Nämä ratkaisut rajoittavat käyttäjien tehokasta kämmentietokoneen hyötykäyttöä. Tietokantapohjaisissa ratkaisuissa normaalit transaktiot eivät ole riittäviä mobiililaitteiden in. Mobiilitransaktiot ovat transaktioita joihin liittyy ainakin yksi kiinteän verkon ulottamattomissa oleva laite. Erilaisia mobiilitransaktioita on ainakin neljää erilaista: atomisia, korvaamattomia, ilmoittavia ja yhteistyötä tukevia transaktioita. Nämä soveltuvat eri tilanteisiin ja niillä on omat ominaisuutensa. Mobiilitransaktiot voidaan myös suorittaa eri paikoissa. Joko kaikki transaktiot suoritetaan kämmentietokoneessa, palvelimessa tai sitten transaktiot suoritetaan molemmissa. Jokaisella ratkaisulla on omat hyödyt ja heikkoudet. Erilaiset ratkaisut toimivat hyvin eri tilanteissa, joten ei ole yhtä parasta ratkaisua. Tietokantapohjaiset ratkaisut, kuten Edison ja S.W. Lauzac:n ja P.K. Chrysanthis:n näkymiin perustuva toteutus, pyrkivät toteuttamaan ratkaisuja, jotka eivät kärsi markkinallisten protokollien heikkouksista. Nämä ratkaisut eivät sido käyttäjää yhteen, tai muutamaan, koneeseen vaan mahdollistavat käyttäjän synkronoivansa tiedot miltä tahansa verkkoyhteyden omaalta koneelta. Kyseiset ratkaisut eivät vaadi esiasennettuja ohjelmia. Nämä verkkopohjaiset ratkaisut mahdollistavat myös käyttäjiä jakamaan tietojaan. Verkkopohjaiset ratkaisut eivät tosin ole yhtä tietoturvallisia kuin nykyiset markkinalliset ratkaisut, koska kyseisiin palveluihin pääsee käsiksi mistäpäin maailmaa vain. Kämmentietokoneiden synkronoinnin alalla on tehty paljon tutkimustyötä ja ollaan siirtymässä kehittyneempiin ratkaisuihin, jotka tukevat enemmän käyttäjien liikkumista maailman

TIETOKANNAT NYT! -SEMINAARI, SYKSY 2006 7 ympäri. Tosin milloin nämä ratkaisut tulevat varsinaiseen käyttöön, on ratkaisematon kysymys. LÄHTEET [1] Matthew Denny, Michael J. Franklin Edison: Database-Supported Synchronization for PDAs, Distributed and Parallel Databases, 15, 95-116, 2004 [2] SyncML http://www.syncml.com [3] Palm http://www.palm.com [4] M.H. Dunham, V. Kumar Impact of mobility on transaction management ACM International Workshop on Data Engineering for Wireless and Mobile Access, 1999 [5] P. Serrano-Alvarado, C.L. Roncacio, M, Adiba Mobile Transaction Supports for DBMS: An Overview http://citeseer.ist.psu.edu/serranoalvarado01mobile.html [6] S.W. Lauzac, P.K. Chrysanthis Utilizing versions of views within a mobile environment In Proceedings of the 9th International Conference on Computing and Information, 1998, http://citeseer.ist.psu.edu/weissmanlauzac98utilizing.html [7] P.K. Chrysanthis Transaction processing in a mobile computing environment IEEE Workshop on Advances in Parallel and Distributed Systems, 1993, http://citeseer.ist.psu.edu/chrysanthis93transaction.html