Bruk av kontekstbevissthet i dynamiske omgivelser
Abstract
Bruk av dataprogrammer er ikke lenger begrenset til stasjonære PC-er, men er integrert i dagliglivet på en måte som for få år siden virket utenkelig. Denne trenden mot en allestedsnærværende datateknologi er økende. En av mange utfordringer som gjenstår i dette relativt nye forskningsfeltet, er å la applikasjoner tilpasse seg til den enkelte bruker ved å benytte seg av informasjon om den konteksten de er brukt i. Med kontekst menes her all informasjon som karakteriserer en situasjon som er relatert til interaksjonen mellom mennesker, applikasjoner og omgivelsene. Et kontekstbevisst system benytter kontekst til å tilby relevant informasjon og/eller tjenester til brukeren. Hvilken informasjon som er relevant, er avhengig av hvilke oppgaver systemet skal utføre. Kontekstbevisste systemer tilbyr en rikere og enklere interaksjon mellom systemet og brukeren. Likevel eksisterer det per i dag få applikasjoner som benytter seg av denne muligheten. En av grunnene til at bruk av kontekstbevissthet ikke er mer utbredt, er at det ikke finnes noen enkel måte å utvikle kontekstbevisste systemer på. For å lage et kontekstbevisst system må man implementere funksjonalitet for innsamling, representasjon og lagring av kontekstinformasjon, samt resonnering i denne informasjonen. Denne masteroppgaven presenterer derfor et verktøy som forenkler utviklingen av kontekstbevisste systemer. Vårt bidrag i retning av å øke bruken av kontekstbevissthet i applikasjoner er et generelt kontekstbevisst rammeverk som håndterer flere aspekter ved kontekstbevissthet i et flerbrukermiljø. Blant disse aspektene er oppfattelsen av og resonneringen i kontekstendringer. Kontekstinformasjonen lagres også i en database, slik at den senere kan hentes frem og analyseres for å finne mønstre i historikken. Disse mønstrene kan benyttes til å forbedre resonneringen ved senere kontekstendringer. Rammeverket tillater at flere applikasjoner kan koble seg til samtidig, og de kan derfor dele ressurser og kunnskap på en effektiv måte. Siden rammeverket har en modulær design, er det velegnet til utprøving av alternative metoder for å oppnå kontekstbevissthet. Rammeverket har et enkelt grensesnitt, og gjør det derfor enklere å utvikle kontekstbevisste systemer. Det kontekstbevisste rammeverket er testet sammen med en eksempelapplikasjon. Disse testene viser at rammeverket klarer å reagere på kontekstendringer, samt å finne relevante sammenhenger ut fra den lagrede konteksthistorikken selv om den inneholder en del støy. Ved å innføre ny funksjonalitet i historikkanalysen ble ytelsen kraftig forbedret, samtidig som resultatet kun inneholdt de sterkeste sammenhengene. Selv om rammeverket på ingen måte gir en fullstendig løsning på problematikken rundt utvikling av kontekstbevisste applikasjoner, viste testene at den valgte arkitekturen danner et godt grunnlag for utvikling av slike applikasjoner.