Institut für Informatik | Sitemap | LMU-Portal
English
  • Startseite
  • Studieninteressierte
  • Studierende
  • Lehrveranstaltungen
    • Archiv
    • WS 2006/2007
      • AR
      • DM
      • FOTO
      • HS
      • IV3D
      • MMI1
        • Essays
      • MMN
      • OS
      • PEM
      • PMG
  • Forschung
  • Personen
  • Kontakt
  • Besucher
  • Jobs
  • FAQ
  • Intern

Context-Aware Applications, Computing in Context

Marcel Michelmann

Einleitung

Bei der zwischenmenschlichen Kommunikation spielt der Kontext eine bedeutende Rolle; abhängig von der Umgebungssituation und den Gefühlen ergeben sich verschiede Möglichkeiten, Gesagtes oder Getanes zu verstehen. Viele Dinge können erst durch die Einbeziehung des Gesprächsrahmens verstanden werden.

Bei der Kommunikation zwischen Menschen und Maschinen jedoch, kann dieser nur schwer miteinbezogen werden. Die meisten Programme verhalten sich statisch, unabhängig von äußeren Einflüssen. Um Informationen aus der Umwelt zu beziehen, könnte der Nutzer sie manuell eingeben - was sehr aufwändig wäre - oder das System ermittelt die Informationen selbstständig.

In dieser Arbeit soll zunächst erläutert werden, was Kontext genau bedeutet, und wie er kategorisiert werden kann. Darauffolgend wird erläutert, was Context-Aware Applications sind. Anschließend werden Beispiele für kontextbezogene Programme, sog. Context-Aware Applications, gegeben. Ferner wird erklärt, was es für Möglichkeiten gibt, den Kontext zu erfassen. Zum Abschluss kommt noch eine kurze Erläuterung, wieso bis jetzt so wenig Gebrauch von kontextsensitiven Anwendungen gemacht wird.

Was ist Kontext?

Nach Dey und Abowd [1] machen folgende Eigenschaften den Kontext aus: der Ort, an dem sich die jeweilige Person gerade befindet, andere Personen, die sich mit an jenem Ort befinden, die Umgebung (beispielsweise die Beleuchtung oder Umgebungsgeräusche) und das körperliche und emotionale Befinden, sowie der soziale Status derjenigen Person. Im Falle von Computeranwendungen könnte man generell sagen, dass der Kontext diejenigen Informationen sind, die die Situation beschreiben, und zwar abhängig davon, was für die Interaktion zwischen dem Benutzer und dem System von Bedeutung ist, also der "Zustand" einer Peron, eines Ortes, eines Gegenstandes, des Benutzers oder der Anwendung selbst.

Kontextinformationen können in vier Kategorien eingeteilt werden [1]: Ort (location), Identität (identity), Aktivität (activity) und Zeit (time). Mit den genannten vier Gruppen werden alle relevanten Informationen abgedeckt. Unter Identität versteht man beispielsweise Kontaktinformationen, also die Telefonnummer, die Adresse, die eMail-Adresse usw. einer Person; unter Ort wird spezifiziert, welche anderen Personen oder Objekte sich in der Nähe befinden, und was gerade für andere Tätigkeiten in der Umgebung stattfinden. Aktivität ist die Tätigkeit, die der Benutzer oder das System selbst gerade ausführen, und die Zeit ist die aktuelle Uhrzeit oder das Datum.

Kontextbezogene Anwendungen (Context-Aware Applications)

Kontextbezogene Anwedungen nutzen den Kontext, um damit dem Benutzer relevante Informationen oder Dienste anbieten zu können.

Schilit et. al [2] legen dazu zwei orthogonale Eigenschaften fest, die eine 2x2-Matrix mit vier Feldern aufspannen. Die zwei Fragen sind: 1. Soll die Anwendung (a) Informationen erhalten oder (b) einen Befehl ausführen? 2. Wird die Aufgabe (a) manuell oder (b) automatisch ausgeführt?

Eine Anwendung, die Informationen manuell für den Benutzer bereitstellt (also 1a und 2a kombiniert), nennt man "proximate selection"-Anwendung, also grob übersetzt eine Anwendung, die (räumlich) naheliegende Auswahlmöglichkeiten bereitstellt. Dabei kann der Benutzer aus einer Liste von Objekten und Orten wählen, wobei Einträge, die für den Benutzer von hoher Relevanz sind, entweder speziell gekennzeichnet sind, oder in der Liste weiter oben gefunden werden können. Ein Beispiel dafür wäre eine mobile Anwendung, die etwas drucken möchte, wobei der User den Drucker selber auswählen kann; hierbei werden dann die Drucker, die sich in der Nähe befinden extra hervorgehoben. Schilit et. al [2] nennen dabei drei Arten von Objekten, die bei dieser Art von Anwendung interessant sein könnten; zum Einen wären da die Ein- und Ausgabegeräte von Computern, wie im obigen Beispiel die Drucker, aber auch andere Peripheriegeräte wie Monitore, Lautsprecher etc. Die zweite Art umfasst Objekte, mit denen man bereits interagiert, z.B. Personen, denen man ein Dokument schicken möchte. Die dritte Art sind keine Systemkomponenten mehr, sondern Orte wie Restaurants oder Tankstellen, aber auch Ein- oder Ausgänge von Gebäuden.

Bei einer Kombination von 1a und 2b spricht man von "automatic contextual reconfiguration". Dabei wird die Information automatisch generiert. Unter Rekonfiguration versteht man das Anschließen und Entfernen von Komponenten, z.B. von Clients an Servern, von Hardware oder sogar Software von Rechnern usw. Ein Anwendungsbeispiel, das in diesem Paper genannt wird, ist eine Art virtuelle Tafel; die Grundidee ist, dass für alle Personen in einem Raum die Tafelanschrift dieselbe ist. Die Benutzer haben ein mobiles Gerät, auf dem eine virtuelle Tafel installiert ist. Abhängig davon, in welchem Raum sie sich befinden, ist die Tafelanschrift eine andere, jedoch bei allen Personen im selben Raum die selbe.

Anwendungen, die Befehle des Benutzers manuell, abhängig vom Kontext ausführen (also eine Kombination von 1b und 2a darstellen), werden als "contextual information and commands"-Applikationen bezeichnet. Das sind beispielweise Anwendungen, die abhängig vom Ort, an dem man sich befindet, unterschiedliche Befehle bereitstellen. Z.B. werden, wenn man gerade in der Küche ist, Befehle angezeigt wie "Kaffee kochen", "Spülmaschine einschalten" usw., während im Büro Befehle wie "Rechner hochfahren" und "Licht dimmen" bereitgestellt werden können.

Die vierte und somit letzte Kombinationsmöglichkeit der vier Felder (1b und 2b) sind Anwendungen, die abhängig vom Kontext automatisch Befehle ausführen; sie nutzen sogenannte kontextgetriggerte Aktionen. Dabei kommen einfache if-then-else-Regeln zum Einsatz, um bei einer bestimmten Kombination von Umgebungsvariablen die richtige Aktion auszulösen. Eine Anwendung, die davon Gebrauch macht, ist der "Watchdog" (Wachhund). Hierbei werden Befehle der Form "badge location event-type action" eingesetzt, wobei badge eine Marke ist (also im Normalfall eine Person oder ein Gegenstand), und der event-type entweder die Ankunft in einem Raum, das Verlassen desselbigen oder das Fehlen eines Gegenstandes ist. Die ausgelöste Handlung ist z.B. das Abspielen eines Liedes beim Betreten des Raumes, das Schließen eines Dokumentes beim Verlassen des Raumes oder ähnliches.

Durch die Verschmelzung der oben genannten Klassifizierung in vier Arten mit der Kategorisierung von Pascoe [4], bei der (anders als Schilit et. al, bei der die Klassen von Context-Aware Applications beschreiben werden) die Grundeigenschaften der Context-Awareness beschrieben werden, erstellen Dey und Abowd [1] folgende drei Kategorien von kontextbezogenen Anwendungen: 1. Präsentation von Informationen, 2. automatische Ausführung eines Dienstes, 3. Markieren (Merken) des Kontextes für spätere Aufrufe.

Weitere Beispiele für Context-Aware Applications

Durch diese drei Arten der "Context-Awareness" und die anfangs erläuterten vier Arten des Kontexts, ist es Dey und Abowd [1] möglich, bereits vorhandene kontextbezogene Anwendungen zu analysieren. Beispielsweise gibt es ein Programm, das Unterrichtsstunden im Klassenzimmer aufzeichnet. Dieses Programm, das Classroom 2000 heißt, enthält die Kontexttypen Ort und Zeit und ermöglicht es, sich den Kontext für spätere Zugriffe zu merken. Eine andere Anwendung, der Cyberguide, der ein elektronischer Reiseführer ist, enthält die Kontexttypen Identität und Ort. Diese Anwendung ermittelt auf Grund der persönlichen Präferenzen und des Ortes, an dem man sich im Moment befindet, eine Tour mit Sehenswürdigkeiten. Die Kontext wird hier somit verwendet, um Informationen zu präsentieren.

Weitere Anwendungen, die den Kontext miteinbeziehen, werden in [5] genannt: Eine Anzeigetafel, die anzeigt, welche Personen einer Forschungsgruppe sich gerade im Gebäude befinden; ein Display, das der Person, die gerade davorsteht, für sie wichtige Informationen anzeigt; eine Art Newsletter, die nur an jene Personen versandt wird, die sich gerade im Gebäude befinden. Diese zuletzt beschriebenen Applikationen bauen auf nachfolgendem Toolkit auf.

Sammeln und Generierung der Kontextinformationen

Wie werden die Informationen über den Kontext aufgenommen, um von der jeweiligen Anwendung weiterverarbeitet werden zu können?

Kontextinformationen werden durch sog. "context widgets" gesammelt, wobei für jede der vier Arten von Kontextinformationen (Ort, Identität, Aktivität und Zeit) eine eigene Art von context widget benötigt wird. Dazu haben Dey und Abowd [3] eine Sammlung von Hilfsmitteln, die sie "Context Toolkit" nennen, entworfen. Dabei war wichtig, dass es als Fundament für die Entwicklung weiterer kontextsensitiver Anwendungen verwendet werden kann. Ihr in Java implementiertes Toolkit besteht aus drei Komponenten: einer grafischen Oberfläche, Aggregatoren und einem Interpreter. Die grafische Oberfläche zeigt die gewonnenen Kontextinformationen an, wobei die für den Benutzer unnötigen Details nicht angezeigt werden. Die Informationen werden durch entsprechende Sensoren gewonnen. Die Aggregatoren werden in [3] als "meta-widgets" bezeichnet; sie vereinigen Kontextinformationen und halten die Komplexität transparent, verbergen also die Komplexität der gewonnenen Kontextinformationen. Der dritte Bestandteil des Context Toolkits ist der Interpreter. Er wandelt die Kontextinformationen in Informationen einer höheren Ebene um. Ein Beispiel für solch eine Umwandlung wäre folgende Situation: Über entsprechende Sensoren werden Informationen über die Personen, die sich im Raum befinden, und über den Ort aufgenommen. Aus diesen Informationen und aus der Geräuschkulisse kann dann geschlossen werden, dass gerade ein Meeting in diesem Raum stattfindet.

Was braucht man für Sensoren, um die für das context-aware computing so wichtigen Informationen zu erhalten? Für die Analyse der Geräuschkulisse bieten sich Mikrofone an. Um herauszufinden, um was für einen Ort es sich handelt, können zum einen Kameras verwendet werden, oder aber auch Systeme wie das Global Positioning System (GPS), wobei dann die Auswertung sehr komplex wird. Eine andere Möglichkeit ist es, die Orte mit Chips mit eindeutigen Kennungen zu versehen. Diese Methode kann auch zur Identifizierung und Lokalisierung von Personen oder Gegenständen verwendet werden.

Von einer so ähnlichen Methode wird in [6] Gebrauch gemacht. Harter, Hopper, Steggles, Ward und Webster haben eine sog. "Follow-me"-Anwendung entwickelt, bei der ermittelt wird, welche Person sich wo im Gebäude (repektive an welchem Arbeitsplatz) befindet, um genau an jenem Computer dann die Daten anzuzeigen, die für den jeweiligen Benutzer relevant sind. Dabei trägt jeder Benutzer eine sog. "Bat" (Fledermaus) bei sich, die zur Lokalisierung dieser Person dient. Diese Bats, die ungefähr die Größe eines Feuerzeug besitzen, bestehen aus einer kleinen Sende-/Empfangsanlage (einem "radio transceiver"), einer Kontrolleinheit und einem Ultraschall-Signalgeber (daher auch der Name "Fledermaus"). Dabei hat jedes dieser Geräte einen eigenen Identifier, um die einzelnen Personen, die diese Bats mit sich tragen, auseinander halten zu können. An den Decken der Räume sind Ultraschallempfänger angebracht, welche wiederum zu einem Netzwerk zusammengeschlossen sind. Eine Basisstation fungiert als Taktgeber, und veranlasst die Bats beim Empfang dieses Zeitsignals ein Ultraschallsignal abzugeben, welches dann von den Empfängern an den Decken empfangen wird. Durch die Messung der Zeit bis zum Eintreffen des Signals beim Empfänger an der Decke, kann die Entfernung zwischen Sender und Empfänger ermittelt werden. Wenn das Signal von mindestens drei Empfängern empfangen wird, kann die genaue Position des Bats im Raum bestimmt werden. In einem Versuchsaufbau wurden für zwei Räume und einen Flur mit insgesamt ca. 280 m³ Volumen zwei Basisstationen und 100 Empfänger verbaut.

Bedeutung kontextbezogener Anwendungen heutzutage

Bis jetzt hat man erst wenig von kontextabhängigen Anwendungen gehört. Obwohl es viele interessante Einsatzgebiete für solche Applikationen geben könnte, werden kaum Systeme und Programme für diesen Markt entwickelt. Das liegt daran, dass die meisten Anwendungen dieser Art von Grund auf neu konzipiert werden müssen. Anders als bei normalen Standardanwendungen greift die Modularisierung hier noch nicht richtig. D.h. hier kann nicht auf standardisierte Module, oder auf schon einmal verwendeten Programmcode zurückgegriffen werden; vielmehr muss hierbei, immer abhängig davon, wie die Kontextinformationen generiert werden, stets eine neue Hard- und Softwarelösung konzipiert werden. Das erschwert die Entwicklung ungemein, und zwar in Sachen Aufwand und auch in Sachen finanziellem Einsatz. Jedoch kann durch die immer größere Verfügbarkeit von und durch den Preisverfall bei den mobilen Endgeräten wie Handys, Smartphones und PDAs damit gerechnet werden, dass das context-aware Computing an Bedeutung gewinnen wird, denn Context-Aware Applications sind ja keineswegs Anwendungen, die man zuhause auf seinem heimischen Rechner laufen lässt, sondern vielmehr Anwendungen, die ganze Büros, ganze Gebäude oder sogar größere Gebiete mit einbeziehen.

Literaturangaben

1. Dey, Anind K., Abowd, Gregory D., Towards a Better Understanding of Context and Context-Awareness, z.B. http://www.it.usyd.edu.au/~bob/IE/99-22.pdf

2. Schilit, Bill N., Adams, Norman, Want, Roy, Context-Aware Computing Applications, 1st International Workshop on Mobile Computing Systems and Applications, 1994, S. 85-90, z.B. http://sandbox.xerox.com/want/papers/parctab-wmc-dec94.pdf

3. Dey, Anind K., Abowd, Gregory D., The Context Toolkit: Aiding the Development of Context-Aware Applications, z.B. http://www.cs.washington.edu/sewpc/papers/dey.pdf

4. Pascoe, J., Adding Generic Contextual Capabilities to Wearable Computers, 2nd International Symposium on Wearable Computers, 1998, S. 92-99

5. Salber, D., Dey, Anind K., Abowd, Gregory D., The Context Toolkit: Aiding the development of context-enabled applications, Proceedings of CHI'99, 1999, S. 434-441

6. Harter, Hopper, Steggles, Ward, Webster, The Anatomy of a Context-Aware Application, z.B. http://www.cs.utah.edu/classes/cs5961/docs/harter02.pdf

Nach oben
Impressum – Datenschutz – Kontakt  |  Letzte Änderung am 18.04.2007 von Richard Atterer (rev 1858)