Inhaltsverzeichnis 1 Einleitung 1 2 Anforderungen an das Präsentationssystem 2 2.1 Lokationssysteme im Überblick ........................................................2 2.1.1 Active Badge System ..................................................................2 2.1.2 Cricket System ............................................................................4 2.2 Analyse ..............................................................................................6 2.3 Anforderungsermittlung ....................................................................7 3 Designmodell 9 3.1 Drei-Schicht Modell ..........................................................................9 3.2 Interaktion zwischen den Modulen .................................................10 4 Implementierung 12 4.1 Cell-of-Origin Lokationssystem mit Smart-Its Particles.................12 4.2 Software Umgebung ........................................................................13 4.3 Implementierung der Präsentationsschicht......................................14 4.3.1 Benutzeroberfläche für Lokationsdatenmodell .........................14 4.3.2 Benutzeroberfläche für Lokationsbeschreibung und Lokationsbindungsdienst ..........................................................19 4.3.3 Benutzeroberfläche für die Präsentation der Lokationsinformation ................................................................21 4.4 Implementierung der Informationsbasis und der Schicht für Verarbeitung und Filtrierung ...........................................................24 5 Zusammenfassung 29 Literaturverzeichnis 30 1 Einleitung Eine Reihe von Lokationssystemen sind entwickelt wurden, um Anwendungen von Ubicomp zu unterstützen, wobei diese Anwendungen von der Lokationsinformation abhängig sind [1]. Bisherige verwendete Lokationssysteme in Ubicomp besitzen die folgenden Eigenschaften: 1. Jedes Lokationssystem hat seine eigene Benutzeroberfläche. 2. Die Benutzeroberfläche ist stets in das gesamte System integriert. Daher unterstützt die Benutzeroberfläche eines Lokationssystems die Präsentation der Lokationsinformation anderer Lokationssysteme nicht. In diesem Fall ist es schwierig, die Lokationsinformationen der verschiedenen Lokationssysteme auf eine ähnliche Weise darzustellen. Dies motiviert die Trennung von der Präsentation des Lokationsinformation vom Lokationssystem. Das Lokationssystem liefert nur noch Positionsdaten von Objekten in dem Lokationssystem eigenen Format. Die Präsentation geschieht unabhängig vom verwendeten Datenlieferanten und Format und erfolgt in einer für den Benutzer übersichtlichen Weise. Ziel dieser Studienarbeit ist es daher, ein Präsentationssystem zu entwerfen, das die Präsentation von Lokationsinformation verschiedener Lokationssysteme erlaubt. Das Präsentationssystem wird nicht für ein spezifisches Lokationssystem entwickelt, sondern soll sich an verschiedene Lokationssysteme anpassen können. Im Kapitel 2 werden zwei Lokationssysteme, nämlich das Active Badge Location System und das Cricket Location-Support System, vorgestellt und miteinander verglichen. Mit Hilfe von Vergleichen und Analysen werden die Anforderungen an das Präsentationssystem formuliert. Das Kapitel 3 beschreibt ein für das Präsentationssystem entworfene 3-Schicht Model. Im Kapitel 4 wird die konkrete Implementierung des Präsentationssystems betrachtet. Das Kapitel 5 fasst diese Arbeit zusammen. 1 2 Anforderungen an das Präsentationssystem In diesem Kapitel werden die Anforderungen an ein einheitliches Präsentationssystem formuliert. Dazu werden zwei typische Vertreter im folgenden detailliert vorgestellt. Anhand der Analyse der zwei Systeme werden die Anforderungen ermittelt. 2.1 Lokationssysteme im Überblick 2.1.1 Active Badge System Das von Olivetti Research Ltd. (ORL) entwickelte Active Badge System [2] ist in der Lage, durch die Ermittelung des Standorts von Badges seinen Träger in eine Umgebung zu verfolgen. Das Badge ist ein kleines elektronisches Gerät, welches eine eindeutige ID seines Besitzers per Infrarot periodisch sendet. Ortsfeste Sensorstationen empfangen die Information und geben sie an einen Server über das drahtgebundene Netzwerk weiter. Der Server bearbeitet die Daten und stellt diese dann einem Client zur Verfügung, der die Information auf eine anschauliche Weise darstellen kann. Das gesamte System wurde als 4-Schichten-Architektur implementiert. Abb. 2.1. veranschaulicht den Aufbau. Abbildung 2. 1:Vier-Schichten-Architektur des Active Badge Systems Netzwerk-Controller Der Netzwerkcontroller ist verantwortlich für die Abfrage der ortsfesten Sensorstation, von der als nächstes Sensordaten abgeholt werden sollen. 2 Repräsentation Dieses Schicht erzeugt ein geeignetes Format für die Repräsentation der aufgezeichneten Sensordaten. Diese werden in Tripel gepackt, die den Zeitstempel, die Lokation und die ID des Badges enthalten. Datenverarbeitung Da zahlreiche Daten in kurzer Zeit gesammelt werden, müssen diese Daten gefiltert und komprimiert werden. Beispielsweise ist es nicht notwendig, Positionsdaten eines Badges weiterzugeben, das seinen Aufenthaltsort nicht geändert hat. Es muss lediglich der Zeitpunkt der letzten Sichtung an dem Ort aktualisiert werden. Darstellungsschnittstelle Diese Schicht ist zuständig für die Darstellung der Lokationsinformationen, die die ersten drei Schichten liefern. Dies kann beispielsweise durch textliche Darstellungen geschehen, oder auch durch graphische Visualisierungen von Räumen und Menschen. Abb. 2.2 veranschaulicht die textliche Darstellung. Abbildung 2. 2:Textliche Darstellung der Lokationsinformation Ergänzend zur textlichen Darstellung wird noch ein Command Interpreter im System eingesetzt. Die in dem Command Interpreter ausführbare Befehle unterstützen den Benutzer bei Abfragen. Die benutzten Befehle sind, FIND (name) Gibt die aktuelle Lokation des bezeichneten Badges zurück. Falls der Standort des Badges vor kurzer Zeit geändert wurde, werden alle in den letzten fünf Minuten ermittelte Standorte zurückgegeben. WITH (name) Lokalisiert das bezeichnete Badge und stellt die Information anderer Badges, die in der selben Lokation liegen, zur Verfügung. 3 LOOK (location) Ermittelt welches Badge in der vorgegebenen Lage vorliegt. HISTORY (name) Erstellt einen Bericht über die Historie des Standorts des bezeichneten Badges während einen Stunden. 2.1.2 Cricket System Das Cricket System [3] ist ein Location-support System für innere, mobile und lokationsabhängige Anwendungen. In diesem System spielen zwei kleine verschiedenartige Gräte, nämlich „Beacon“ und „Listener“, wichtige Rollen. Durch die Zusammenarbeit der beiden stellen die Anwendungen ihren physikalischen Orte fest. Das Beacon ist ein kleines ortsfestes Gerät und liegt in einem geographischen Raum. Es ist zuständig für die Verbreitung der geographischen Information innerhalb des geographischen Raums. Hingegen hören die Listeners den Nachrichten des Beacons zu und leiten daraus ihre eigenen Standorte ab. Der Listener wird an Dienstesknoten (Drucker, TV usw.) und mobile Geräte angeschlossen. Sobald der Listener die Lokationsinformation bekommt, leitet er die Information an die Dienstesknoten oder die mobilen Geräte weiter. Nachdem die Dienstesknoten diese Information erhalten haben, melden sie sich bei einem Resource Discovery Dienst an. Die Applikationen von Benutzern melden sich nicht an, sofern sie nicht von anderen entdeckt werden wollen. Im von MIT Laboratory entwickelte Cricket System wurden noch das INS (Intentional Naming System ) [4] und ein Map Server eingesetzt. Das INS ist hier als ein Resource Discovery Dienst verwendet. Ein wesentlicher Begriff im INS ist der des virtuellen Raum. Der virtuelle Raum ist eine Ansammlung von Anwendungen oder Diensten. Jeder virtuelle Raum besitzt eine Reihe von Name Resolvers, die Anfragen von Namen der in dem virtuellen Raum exsistierten Einheiten beantworten. Jede Einheit ist durch einen Intentional Name, der eine hierarchische Ansammlung von Werten und Attributen der Einheit ist, beschrieben. Wir werden durch eine konkrete Anwendung des Cricket Systems, nämlich Floorplan, erklären, wie die Lokationsinformation verarbeitet und danach dem Benutzer präsentiert wird. Das Floorplan ist eine Navigationsanwendung, die einen Benutzer bei der Ermittlung seines Standorts in einem Gebäude helfen kann. Darüber hinaus werden die in der 4 Nähe des Benutzers vorhandene Dienste angezeigt. Diese werden bei der Bewegung des Benutzers immer dynamisch aktualisiert. Als Erstes werden Zimmer und Etage durch virtuelle Räume dargestellt. Jeder virtuelle Raum wird durch ein Zeichenkette identifiziert. Der Map Server enthält den Lageplan der Gebäude und die Abbildung zwischen den virtuellen Räumen und die dazugehörigen Koordinaten auf dem Lageplan. Jedes Beacon verbreitet den Namen des virtuellen Raums, in dem es sich befindet. Während ein Benutzer sich in dem Gebäude bewegt, kann der Listener die aktuelle Lokationsinformation, nämlich den Namen des virtuellen Raums, ausrechnen und holt dann die Koordinaten des virtuellen Raums von dem Map Server ab. Danach markiert der Floorplan diese Koordinaten auf dem vorher von dem Map Server heruntergeladenen Lageplan. Da die in einem virtuellen Raum vorhandenen Dienste sich bei dem INS angemeldet haben, kann der Listener durch das Abfragen des INS solche Dienste entdecken und auf dem Lageplan anzeigen. Abb.2.3 veranschaulicht das von dem Floorplan angezeigte aktuelle Bild. Abbildung 2. 3: Navigationsanwendung: Floorplan Aus diesem Bild ist zu erkennen, dass der Benutzer (dargestellt durch einen Punkt) sich jetzt im Zimmer 504 befindet. Einige Dienste (dargestellt durch die entsprechenden Symbole) sind ihn zur Verfügung gestellt, wie z.B. TV Dienst und MP3 Dienst. 5 2.2 Analyse Im letzten Abschnitt wurden zwei Lokationssysteme detailliert vorgestellt. Bei näherer Betrachtung der Systeme kann man dabei Unterschiede und Gemeinsamkeiten feststellen, wie die Lokationsinformation dargestellt und interpretiert wird. Die in dem Active Badge System definierte Lokationsinformation ist eine 3-Tupel mit (BadgeID, Lokation, Zeitstempel). Die gepackten Informationen werden zuerst verarbeitet und anschließend als Eingabe an die Darstellungsschnittstelle weitergegeben. Die Darstellungsschnittstelle des Active Badge Systems interpretiert die Informationen und präsentiert dem Benutzer dieses Ergebnis auf eine textliche Weise. Bei der Vorstellung des Active Badge System wurde auch ein Command Interpreter erwähnt. Dieser Command Interpreter soll als eine Benutzeroberfläche zur Präsentation der Lokationsinformationen betracht werden. Benutzer geben die Befehle in dem Command Interpreter ein, und dieser Command Interpreter zeigt verschiedene Information an, z.B. die aktuelle Lokation einer Badge oder alle Badges in einer Lokation. In dem Cricket System wird die geographische Lokation als ein virtueller Raum bezeichnet. Jeder virtuelle Raum wird durch eine Zeichenkette identifiziert. Der Listener hört die von Beacon verbreitete Information ab und rechnet die Lokationsinformation aus. Jedoch kann diese Lokationsinformation nicht ummittelbar an den Benutzer weitergegeben werden. Sie muss durch den Map Server interpretiert werden. Danach kann das Ergebnis dem Benutzer präsentiert werden. Beide erwähnten Lokationssysteme definieren eigene Formate der Lokationsinformation, wie z.B. die 3-Tupel im Active Badge System und der virtuelle Raum im Cricket System. Die Interpretation der Lokationsinformation ist unterschiedlich und wird durch verschiedene Module erledigt. Im Active Badge System ist eine Darstellungsschnittstelle zu diesem Zweck verwendet. Dagegen ist im Cricket Sytem ein Map Server verantwortlich für die Interpretation der Lokationsinformation. Die Präsentation der Lokationsinformation ist je nach Lokationssystem auf verschiedene Weise implementiert. Die Lokationsinformation im Active Badge System wird textlich präsentiert, und das Cricket System stellt die Lokationsinformation auf graphische Weise dar. Die beiden Systeme besitzen eigene Module, die das unterstützen. Im Active Badge System wird das Modul „Darstellungsschnittstelle“ genannt. Im Cricket System ist das Modul in der Anwendung „Floorplan“ eingebaut. Sowohl die Darstellungsschnittstelle des Active Badge System als auch das in dem „Floorplan“ eingebaute Modul müssen 6 von dem jeweiligen System direkt unterstützt werden. Im Cricket System wird es von dem Map Server unterstützt. Im Active Badge System übernehmen die darunter liegenden Schichten die Verantwortung dafür. Bei einer näheren Betrachtung der beide Systeme wird festgestellt, dass die Faktoren, die die Präsentation der Lokationsinformation eines Lokationssystems beeinflussen, im Wesentlichen folgenden drei Kategorien angehören: Das Format der Lokationsinformation: Es definiert die Syntax der Lokationsinformation. Die Interpretation der Lokationsinformation Der Entwurf des für die Präsentation der Lokationsinformation verantwortlichen Moduls: Je nach dem Entwurf des Moduls kann die Lokationsinformation auf graphische oder textliche Weise den Benutzern präsentiert werden. 2.3 Anforderungsermittlung In diesem Abschnitt wird nun analysiert, welche Anforderungen ein einheitliches Präsentationssystem erfüllen soll. Ziel des Entwurfs des Präsentationssystems ist die kohärente Darstellung verschiedener Lokationsinformation. Ein wichtiger Schritt davon ist die Separation des Präsentationsmoduls von dem übrigen Lokationssystem. Nur wenn das Präsentationsmodul nicht abhängig von einem spezifischen Lokationssystem ist, kann es als eine gemeinsame Benutzeroberfläche für die Präsentation der verschiedenen Lokationsinformation aus unterschiedlichen Lokationssystemen angewendet werden. Aufgrund der im Abschnitt 2.2 beschriebenen drei Faktoren ist die Trennung des Präsentationsmoduls von dem ganzen Lokationssystem nicht unkompliziert. Das vom Lokationssystem definierte Format der Lokationsinformation muss im Präsentationssystem sichtbar sein. Damit kann das Präsentationssystem die verschiedenen Formate der Lokationsinformation erkennen. Das Präsentationssystem muss in der Lage sein, die Lokationsinformation auf eigene Weise zu interpretieren. Die einheitliche Darstellung der Lokationsinformation ist sonst durch das Präsentationssystem unmöglich. Das Präsentationssystem soll zudem zusätzliche Funktionalitäten erlauben, die nicht unbedingt vom verwendeten Lokationssystem unterstützt werden. Dazu gehört das Verfolgen von mobilen Geräte. 7 Zusammenfassend ergeben sich die folgenden Anforderungen an das Präsentationssystem, Es kann verschiedene Lokationssystem unterstützen. Die Bedingung dafür lauten, Kompatibilität der verschiedenen Lokationsinformation. Fähigkeit zur Interpretation der Lokationsinformation Präsentation der aktuellen Lokationsinformation. Präsentation der historischen Lokationsinformation. 8 3 Designmodell 3.1 Drei-Schicht Modell Nachdem die Anforderungen an das Präsentationssystem festgelegt wurden, wird im folgenden ein 3-Schichten Modell vorgestellt. Abb. 3.1. verdeutlicht die Architektur des Modells. Abbildung 3. 1: Drei-Schicht Modell Informationsbasis: Diese Schicht ist zuständig für die Ansammlung der Information und das Ablegen der Daten. Sie beinhaltet folgende Module, Lokationsdatenmodell: Es definiert die Syntax der Lokationsinformation. Dieses Modell dient der Anpassung des Präsentationssystems an die verschiedenen Formate der Lokationsinformation. Lokationsbeschreibung: Sie beschreibt den von dem Lokationssystem abgedeckten Raum auf eine graphische Weise, z.B. ein Stadtplan oder ein Lageplan. Lokationsbindungsdienst: Der Lokationsbindungsdienst steht für die Interpretation der nach dem Lokationsdatenmodell gelieferte Daten zur Verfügung, wobei die Interpretation beschreibt, wie die Daten auf die Lokationsbeschreibung abgebildet werden sollen. LokationsDB: Die Lokationsinformation wird in einer Datenbank abgelegt, damit die Historie der Information abgefragt werden kann. Lokationssystem: Es ist ein beim Präsentationssystem angewendetes System, das die mobilen Geräte lokalisieren kann. 9 Verarbeitung und Filtrierung: Die von der Informationsbasis erhaltene Lokationsinformation wird in dieser Schicht verarbeitet. Bei Anforderung der Präsentationsschicht werden die Daten zweckmäßig filtriert. Präsentation: Die Benutzeroberflächen werden in dieser Schicht implementiert. Die Benutzeroberflächen sind zuständig für die Präsentation der Lokationsinformation und die Konfiguration der Module der Informationsbasis. 3.2 Interaktion zwischen den Modulen Die wichtigen Funktionalitäten der Module wurden im Abschnitt 3.1 vorgestellt. Hier werden die Zusammenarbeit der Module und der Zusammenhang zwischen den Module betrachtet. Dabei werden zwei Sichten auf das Präsentationssystem unterschieden. Sicht von der Verwaltung Abbildung 3. 2: Sicht von der Verwaltung Da das Präsentationssystem verschiedene Lokationssysteme unterstützen soll, muss das Modell die Möglichkeit bieten, das Präsentationssystem dem Lokationssystem entsprechend einzustellen. Das Lokationsdatenmodell ist abhängig von dem verwendeten Lokationssystem. Die Konfiguration des Lokationsdatenmodells muss auf dem entsprechenden Lokationssystem beruhen. Der Inhalt der Lokationsbeschreibung soll ausschließlich vom Präsentationssystem entschieden werden. Ein Beispiel dafür: die Lokationsbeschreibung kann ein Lageplan eines Gebäudes sein, falls das Präsentationssystem die Lokationsinformation innerhalb dieses Gebäudes anzeigen soll. Der Lokationsbindungsdienst hat die Aufgabe, eine Abbildung zwischen der Lokationsbe- 10 schreibung und das Lokationsdatenmodell herzustellen. Die Verwaltung dieser drei Module wird direkt durch die Benutzeroberflächen der Präsentationsschicht unterstützt. Sicht von der Anwendung Abbildung 3. 3: Sicht von der Anwendung Die von dem Lokationssystem erhaltene ursprüngliche Lokationsinformation wird in der Mittelschicht mit Hilfe des Lokationsdatenmodells und des Lokationsbindungsdienstes bearbeitet und gefiltriert. Die verarbeiteten Daten werden sowohl in der LokationsDB gespeichert als auch von der Präsentationsschicht aufgenommen. Die abgelegten Daten stehen der Präsentationsschicht für die Ermittelung der Historie der Lokationsinformation zur Verfügung. Die Lokationsbeschreibung wird vorher in die Präsentationsschicht geladen. Danach kann die Lokationsinformation auf der Lokationsbeschreibung markiert werden. 11 4 Implementierung In diesem Kapitel wird die Implementierung des Präsentationssystems aufgrund dem in Kapitel 3 beschriebenen Designmodell vorgestellt. Das hier implementierte Präsentationssystem wird zuerst für das von Smart-Its Particles[5] gestützte Cell-of-Origin Lokationssystem angewendet. Es ist allerdings aufgrund seines Designs auch für andere Lokationssysteme einsetzbar. 4.1 Cell-of-Origin Lokationssystem mit Smart-Its Particles Das Cell-of-Origin (CoO) ist eine Lokalisierungstechnik, die für die Ermittlung der Lokation eines mobilen Gerätes zuständig ist. Wenn ein mobiles Gerät mit einer Basisstation kommuniziert, wird die Lokation des mobilen Gerätes durch die Position dieser Basisstation festgelegt. Dieses Prinzip findet in modernen drahtlosen Kommunikationsnetzwerken, zum Beispiel im GSM Netz[6]. Wichtige Hardware Particle: Ein kleines mobiles Gerät, das Daten und die eigene ID senden kann. XBridge: Ein ortsfestes Gerät mit eigenen Lokationsinformationen, das Daten der Particle erweitert um diese Lokationsinformationen ins UDP Netzwerk schicken kann. 12 Topologie Abbildung 4.1: Topologie des Lokationssystem Das System lokalisiert die mobilen Geräte auf einen Raum. In jeden Raum wird eine XBridge gestellt. Alle XBridges werden an das Netzwerk angeschlossen. Die Particles kommunizieren mit einer XBridge. Die Lokationsinformation und die Daten der Particles werden in das UDP Paket gepackt und durch die XBridge ins Netzwerk gesendet. Lokationsdatenmodell Dieses Lokationssystem verwendet das RAUM[7] Modell zur Beschreibung der inneren Umgebung, z.B. die Büros eines Instituts. Das RAUM Modell stellt die Lokationen semantisch und geometrisch durch ein Benennungsschema dar, wobei das Benennungsschema eine hierarchische Struktur hat und in einem Baumdiagramm dargestellt werden kann. Jeder Knotenpunkt des Baumdiagramms repräsentiert eine Lokation. Der von der Wurzel bis zu dem Zielknoten entstandene Pfad beschreibt eine vollständige Lokation. 4.2 Software Umgebung Wir verwenden die Client/Server-Architektur als die Plattform, auf der das Präsentationssystem laufen kann. Daher ist die Implementierung des Präsentationssystem in zwei Teile aufgeteilt. Abb.4.2 verdeutlicht diese Aufteilung. 13 Abbildung 4.2: Client/Server-Architektur Das Präsentationssystem umfasst drei Java-Applets, die in jedem Browser mit Java Unterstützung laufen können. Außerdem verwenden wir Foxserv[8], eine Apache/mySql/PHP Installation für Windows Betriebssystem, um die ServerPlattform zu unterstützen. 4.3 Implementierung der Präsentationsschicht Die Implementierung der Präsentationsschicht besteht aus drei Benutzeroberflächen, die im Folgenden beschrieben werden. 4.3.1 Benutzeroberfläche für Lokationsdatenmodell Entsprechend dem von diesem Präsentationssystem unterstützten Lokationssystem ist hier das Lokationsdatenmodell auf das RAUM Modell geprägt. Das RAUM Modell in der Benutzeroberfläche wurde durch eine Baumstruktur repräsentiert. Durch die Benutzeroberfläche darf ein Administrator den Baum manipulieren. Die erlaubten Operationen sind, einen Baum erzeugen und löschen, einen Unterbaum oder ein Blatt löschen, Einen Knoten hinzuzufügen den Namen eines Knoten modifizieren. Die maximale Tiefe des Baums einstellen. 14 Zusätzlich können auch die Konfiguration von XBridges mit Lokationsinformation im RAUM-Format und das Suchen von aktuellen XBridges in dieser Benutzeroberfläche durchgeführt werden. Programmbeschreibung Diese Benutzeroberfläche ist durch Java Applet implementiert. Abb.4.3 verdeutlicht die unterschiedlichen Klassen des Programms und den Zusammenhang der Klassen. Abbildung 4. 3: Klassendiagramm Die Klasse „LocationTreeAdmin“ definiert das Aussehen der Benutzeroberfläche für die Manipulation des Lokationsdatenmodells und ist zuständig für die Behandlung der Ereignisse durch den Benutzer. Abb.4.4 verdeutlicht diese Benutzeroberfläche. 15 Abbildung 4. 4: Benutzeroberfläche des Lokationsbaums Die folgenden Abbildungen verdeutlichen die Manipulationen des Baums. Einen Knoten hinzufügen Abbildung 4. 5: Hinzufügen eines Knotens 16 Den Namen eines Knotens modifizieren Abbildung 4. 6: Verändern eines Knotens Knoten oder den Baum löschen Abbildung 4. 7: Löschen Die Tiefe beschränken Abbildung 4. 8: Beschränkung der Tiefe 17 Der Baum wird dauerhaft in der Datenbank gespeichert. Die Klasse „LocationTableDBHandler“ definiert die entsprechenden Methoden, mit denen die Klasse „LocationTree“ auf der Datenbank zugreifen kann. Die Klasse „LocationTree“ ist zuständig für die Veränderung des Aussehens des Baums auf der Benutzeroberfläche. Jede Veränderung des Baums wird durch die beiden Klassen ebenso in die Datenbank gespiegelt. Die Interaktion zwischen der Benutzeroberfläche und der Datenbank ist in Abb.4.9 angegeben. Abbildung 4. 9: Datenfluss bei Veränderung Die Konfiguration einer XBridge ist in Abb.4.10 veranschaulicht. Die vollständige Lokationsinformation eines Knotens ist der von der Wurzel bis zu diesem Knoten entstandene Pfad. Die XBridge ist durch die IP Adresse identifiziert. Abbildung 4. 10: Konfiguration einer XBridge 18 Durch die Kommunikation mit der XBridge wird die Lokationsinformation in der XBridge eingetragen. Wegen der Beschränkung der Sicherheit darf ein Applet ausschließlich mit dem Server, von dem dieses Applet kommt, kommunizieren. Daher wird die eigentliche Konfiguration nicht durch das Applet sondern durch den Server geschaffen. Die Klasse „PreconfigureXPort“ ist nur für folgende Operationen zuständig die Gültigkeit der IP Adresse zu prüfen die Lokationsinformation und die IP Adresse an den Server weiterzugeben. Wir werden die Implementierung des Servers im Abschnitt 4.4 vorstellen. 4.3.2 Benutzeroberfläche für Lokationsbeschreibung und Lokationsbindungsdienst Da das Von Smart-Its Particles gestützte Cell-of-Origin Lokationssystem derzeit nur im Rahmen von einer Etage verwendet wird, stellt diese Benutzeroberfläche die Lokationsbeschreibung als einen Lageplan der Etage dar. Die Benutzeroberfläche integriert einen Editor, mit dem der Lageplan bearbeitet werden kann. Um den Lokationsbindungsdienst zu erstellen, wird eine Tabelle in die Benutzeroberfläche eingebaut. Programmbeschreibung Diese Benutzeroberfläche ist durch Java Applet implementiert. Abb.4.11 verdeutlicht die Klassen des Programms und den Zusammenhang der Klassen. Abbildung 4. 11: Klassendiagramm Die Klasse „FloorplanAdmin“ definiert das Aussehen der Benutzeroberfläche. Abb.4.12 verdeutlicht die Benutzeroberfläche. 19 Abbildung 4. 12: Editor und Mapping Der Editor ist in der Klasse „DrawingManagement“ auf Basis von DnD (Drag and Drop) implementiert. Mit dem Editor kann ein einfacher Lageplan einer Etage erzeugt werden, wobei die Zimmer der Etage durch die Rechtecke in dem Lageplan repräsentiert werden. Wenn ein Benutzer das Bürosymbol mit der Maus zur Malerleinwand zieht und darauf positioniert, wird ein Rechteck auf der Malerleinwand erstellt. Die Größe und die Position des Rechtecks sind veränderbar. Mit der rechten Taste der Maus kann ein Rechteck radiert werden. Jedes Rechteck repräsentiert ein Zimmer auf der Etage. Die Klassen „MappingTable“ und „MappingTableModel“ sind zuständig für die Erstellung und die Verwaltung der Abbildungstabelle. Sobald ein Rechteck auf der Malereinwand erzeugt wird, wird eine neue Zeile in die Abbildungstabelle gleichzeitig hinzufügt. Das heißt, jede Zeile identifiziert genau ein Rechteck. Abb.4.13 verdeutlicht die Abbildungstabelle. 20 Abbildung 4. 13: Mapping Der Namen des Rechtecks kann in der ersten Spalte der Zeile eingegeben werden. Dementsprechend wird der in dem gemalten Rechteck angezeigte Name automatisch korrigiert. Das Element der zweiten Spalte einer Zeile ist als eine Liste gerendert, in dem die Blätter des im Abschnitt 4.3.1 erzeugten Baums aufgezählt werden. Wenn ein Benutzer ein Blatt von der Liste auswählt, entsteht in der Zeile eine Bindung zwischen dem Rechteck und einer Lokationsinformation. Die zwei Buttons, nämlich „Save“ und „Open“, stehen für die folgenden Funktionalitäten zur Verfügung, Der gemalte Lageplan und der definierte Lokationsbindungsdienst können in der Datenbank gespeichert werden. Die gespeicherten Daten können sich in dieser Benutzeroberfläche wieder aufladen, damit der Lageplan und der Lokationsbindungsdienst weiter editiert werden können. Diese zwei Funktionalitäten sind in der Klasse „FloorplanContentHandler“ implementiert. Mit der in dieser Klasse definierten Methode kann die Klasse „FloorplanAdmin“ auf die Datenbank zugreifen. 4.3.3 Benutzeroberfläche für die Präsentation der Lokationsinformation Die Hauptaufgabe der Benutzeroberfläche ist es, die Positionen der mobilen Geräte graphisch auf dem Lageplan anzuzeigen. Dabei können drei Merkmale der Präsentation zugeordnet werden, Präsentation der Lokationsinformation der letzten 60 Minuten. Aktuelle Positionen der mobilen Geräte. Die Historie der Lokationsinformation aller bekannten Geräte an einem Tag. 21 Programmbeschreibung Diese Benutzeroberfläche ist durch Java Applet implementiert. Abb.4.14 verdeutlicht die Klassen des Programms und den Zusammenhang der Klassen. Abbildung 4. 14: Klassendiagramm Die Klasse „Representation“ definiert das Aussehen der Benutzeroberfläche. Abb.4.15 verdeutlicht die Benutzeroberfläche. Diese Benutzeroberfläche besteht aus vier Teilen, nämlich dem „Active Scan“, dem „Review last hour“, dem „Legend“, dem Fenster des Displays und der „History“. Abbildung 4. 15: Repräsentation 22 Das „Active Scan“ ist zuständig für die Ermittlung der Lokationsinformation eines mobilen Gerätes oder aller Geräte. Ob die Ermittlung für ein Gerät oder alle Geräte durchgeführt wird, ist abhängig von dem eingegebenen ID. Wenn das ID "255.255 .255.255.255.255.255.255" lautet, werden alle Geräte ermittelt. Sonst wird nur das mit dem vorgegebenen ID identifizierte Gerät ermittelt. Abb.4.16 verdeutlicht das „Active Scan“. Abbildung 4. 16: Scan Wieder wegen der Beschränkung der Sicherheit kann das Applet die Ermittelung nicht allein erledigen. Die Klasse „PreScan“ ist dafür zuständig, Die eingegebene ID an den Server weiterzugeben. Die Ergebnisse von dem Server abzuholen. Der Server führt die Ermittlung durch und speichert die Ergebnisse in der Datenbank. Die ausführliche Implementierung dieses Vorgang wird im Abschnitt 4.4 beschrieben. Das „Review last hour“ ist zuständig für die Ermittlung der Lokationsinformation für alle Geräte innerhalb der letzten 60 Minuten. Jeder aufgezählte Zeitpunkt identifiziert einen Schnappschuss der Lokationsinformation in dem Moment. Wenn ein Zeitpunk ausgewählt ist, wird die entsprechende Lokationsinformation in dem Fenster des Displays angezeigt. Abb.4.17 verdeutlicht diesen Teil. Abbildung 4. 17: Benutzeroberfläche für den Rückblick Das Abholen der ersten sechzig nach den Zeitpunkten geordneten Lokationsinformationen wird durch die Klasse „SnapshotDBHandler“ durchgeführt. 23 Die „History“ steht der Abfrage der Lokationsinformation zur Verfügung. Abb.4.18 verdeutlicht diesen Teil. Abbildung 4. 18: Benutzeroberfläche für die Historie Ein Benutzer kann durch den Kalender ein Datum festlegen. Danach können alle Lokationsinformationen des Datums durch den Slider durchgeblättert werden. Der Slider wird durch drei Buttons gesteuert, und die Geschwindigkeit der automatischen SliderBewegung ist auf drei Stufen aufgeteilt. Sobald das Datum festgelegt wird, müssen die Lokationsinformationen von der Datenbank abgeholt werden. Diese Aufgabe ist durch die Klasse „SnapshotDBHandler“ erfüllt. Die Legende, in der Oberfläche als „Legend“ bezeichnet, und das Fenster des Displays sind zuständig für das Anzeigen der Lokationsinformation. Der Lageplan wird zuerst ins Fenster geladen. Die Position eines mobilen Geräts ist durch ein Farbkennzeichen auf dem Lageplan markiert. Die Legende interpretiert die Farbkennzeichen, d.h. welches mobile Gerät durch welches Farbkennzeichen repräsentiert wird (siehe Abb.4.13). 4.4 Implementierung der Informationsbasis und der Schicht für Verarbeitung und Filtrierung Die Informationsbasis wird unmittelbar durch die auf dem Server installierte Datenbank unterstützt. Das Lokationsdatenmodell, die Lokationsbeschreibung und der Lokationsbindungsdienst sind in der Datenbank gespeichert und können durch die im Abschnitt 4.3.1 und 4.3.2 beschriebenen Benutzeroberflächen manipuliert werden. Die in der LokationsDB gespeicherten Daten sind abhängig von der mittleren Schicht. 24 Daher bezieht sich die komplette Implementierung nur auf die mittlere Schicht und die Speicherung der verarbeiteten Daten. Zusätzlich wird die Kommunikation mit dem Client unterstützt, damit der Client Aufgaben, wie z.B. Konfiguration der XBridge und Anfrage der mobilen Geräte erledigen kann. Programmbeschreibung Zuerst erklären wir die Implementierung der mittleren Schicht und die Speicherung der Daten. Abb.4.19 verdeutlicht die Klasse des Programms. Abbildung 4. 19: Klassendiagramm Wenn ein mobiles Gerät mit der in der Nähe aufgestellte XBridge kommuniziert, werden die Lokationsinformation der XBridge und die ID des mobilen Geräts in das UDP Paket gepackt und durch die XBridge ins Netzwerk geschickt. Um die UDP Pakete einzufangen und zu bearbeiten, definieren wir zwei Klassen, nämlich „PacketOverhear“ und „LocationAnalyser“. Die Klasse „PacketOverhear“ ist eine Thread Klasse. Die Aufgabe dieses Thread ist das Netzwerk abzuhören. Sobald ein UDP Paket abgefangen wird, extrahiert das Thread die ID und die Lokationsinformation des mobilen Geräts. Die extrahierten Daten werden zusammen mit einem Zeitstempel in Form einer Datenstruktur, die durch die Klasse „PacketInfo“ definiert ist, gepackt. Danach wird das entsprechende „PacketInfo“ Objekt in den Puffer geschrieben. Der Vorgang der Kommunikation zwischen der XBridge und einem mobile Gerät ist nicht ausschließlich auf eine XBridge beschränkt. D.h. obwohl die Lokation eines 25 mobilen Geräts nicht geändert wird, kommuniziert das Gerät mal mit dieser XBridge mal mit einer anderen XBridge. Daher muss eine Entscheidung getroffen werden, welche Lokation richtig ist. Wir lösen dieses Problem mit Hilfe der Häufigkeit. D.h. in einem festgelegten Zeitraum wird diejenige Lokation akzeptiert, von der die meisten Pakete geschickt werden. Der durch die Klasse „PacketPool“ erstellte und verwaltete Puffer unterstützt die Ermittlung der Häufigkeit. Abb.4.20 verdeutlicht die Struktur. Abbildung 4. 20: Struktur des „Packet Pool“ Das angekommende „PacketInfo“ Objekt wird nach der ID des mobilen Geräts organisiert. Alle Pakete des selben Geräts sind weiter nach der Lokationsinformation organisiert. Falls jetzt ein „PacketInfo“ Objekt ankommt, wird zuerst die mit der ID identifizierte Tabelle durchsucht, ob die in dem „PacketInfo“ Objekt bezeichnete Lokation bereits in der Tabelle existiert. Wenn ja, wird der Zähler des „PacketInfo“ Objekts, das von dem Element „Location“ verwiesen ist, um eins hochgesetzt. Wenn nein, wird ein neues Element für die Lokation hinzufügt und verweist an das „PacketInfo“ Objekt. Der Zähler wird ebenso um eins hochgesetzt. Jede Minute werden die Daten des Puffers bearbeitet. Bei allen gespeicherten „PacketInfo“ Objekten vom der selben ID werden die Zähler miteinander verglichen. Jenes Objekt, das den maximalen Zähler enthält, wird als das gültige Ergebnis geliefert. Die Klasse „LocationAnalyser“ implemtiert ein Timer-task, das jede Minute einmal durchgeführt wird. Die Aufgabe des Timer-tasks besteht darin, die Daten vom Puffer abzuholen und den Puffer zu benachrichtigen, dass alle Daten des Puffers jetzt gelöscht werden können. Dann steht der Puffer wieder für die Ansammlung von Daten zur Verfügung. Die abgeholten Daten werden in Form eines Parameter an die Methode der Klasse „LocationSnapshot“ weitergeben, wobei diese Daten eine Reihe von 26 „PacketInfo“ Objekte sind. Jedes „PacketInfo“ Objekt repräsentiert nun ein mobiles Gerät und enthält seine Lokationsinformation und den Zeitstempel. Mit Hilfe der Klassen „OfficeDataDBHandler“ und „MappingDBhandler“ kann die durch den Lokationsbindungsdienst definierte Abbildung („office name“, „location“) in der Datenbank abgefragt werden. So wird für jedes mobile Gerät ein Schnappschuss erstellt. Der Schnappschuss enthält die folgenden Informationen, die ID des mobilen Geräts, die aktuelle Position( „office name“) des mobilen Geräts, den Zeitstempel. Die Schnappschüsse werden dann durch die Klasse „SnapshotDBHandler“ in der LokationsDB gespeichert. Nun erklären wir wie der Server dem Client dabei hilft, die XBridge zu konfigurieren und die mobilen Geräte abzufragen. Abb.4.21 verdeutlicht die Klassen des Programms. Abbildung 4. 21: Klassendiagramm Beim Server wird ein Port eröffnet. Das von der Klasse „ClientActionAgent“ implementierte Thread hört dem Port zu. Der Client erstellt eine Verbindung mit dem Port und sendet dem Server die Information. Die Information besteht aus zwei Teilen. Ein Teil ist der Name des Dienstes. Der andere ist der Parameter, den der Dienst braucht. Abb.4.22 verdeutlicht das Format der Information. 27 Abbildung 4. 22: Format der Information Das Thread empfängt die Information und analysiert sie. Falls sie „scan“ lautet, führt das Thread die Abfrage der mobilen Geräte durch, wobei die Abfrage durch das Helo/Oleh Scan implementiert ist. Die ID des abgefragten mobilen Geräts wird von dem Thread in ein UDP Paket gepackt und ins Netzwerk geschickt. Über das Netzwerk von XBridges erreicht dieses Paket die mobilen Geräte. Das befragte mobile Gerät beantwortet die Anfrage mit seiner ID und die XBridge leitet diese weiter in das UDP Netzwerk, wo sie vom Server wieder vom Netz genommen werden. Das Thread wartet 2 Sekunden, um die zurückgeschickten UDP Pakete anzusammeln. Durch die Analyse der in den UDP Pakete enthaltenen Lokationsinformationen der XBridge wird die Lokation des mobilen Gerät ermittelt. Das Thread sendet dann dem Client das Ergebnis vom „scan“ zurück. Falls die Bezeichnung des Dienstes „config“ lautet, kommuniziert das Thread mit der XBridge und konfiguriert die XBridge mit der Lokation, die aus einem 16 Byte Identifikator des Lokationsbaums und einer Beschreibung des Pfades im Lokationsbaums für die Position besteht. Ziel der Konfiguration ist es, die Lokationsinformation in die XBridge zu schreiben. Die XBridge bietet 44 Bytes zur Speicherung der semantischen und geometrischen Lokationsinformation an. Der Identifikator wird in den ersten 16 Bytes gespeichert. Die anschließenden 24 Bytes sind zuständig für die Speicherung der Beschreibung der Position. Die letzten 4 Bytes, die im RAUM Format die geometrische Lokation beschreiben, sind mit „0“ initialisiert. Das Cell-of-Origin System basierend auf den verwendeten XBridges kann die Lokation eines mobilen Gerätes nicht besser als die semantische Beschreibung der Lokation ermitteln. 28 5 Zusammenfassung Diese Arbeit hat eine generische Architektur für die Trennung der Darstellung der Lokationsinformation vom verwendeten Lokationssystem. vorgestellt. Auf der Architektur basierend wurde ein Präsentationssystem für das von Smart-Its Particles[5] gestützte Cell-of-Origin Lokationssystem entwickelt. Das entwickelte Präsentationssystem ist hilfreich für die Analyse der Lokationsdaten eines Lokationssystem. Die auf dem Server laufenden Programme sind Java Applikationen. Die Benutzeroberflächen des Präsentationssystems sind mit Java Applets implementiert. Daher lässt sich das Präsentationssystem in verteilten Umgebungen von mehreren Benutzern flexibel einsetzen. Bei dem Präsentationssystem gibt es noch einige Stellen, die in der Zukunft verbessert werden können, z.B. die Verwaltung der eingesetzten zentralen Datenbank, die für die Speicherung der Lokationsdaten zuständig ist. Die sollte die Last des Servers überwachen und die entsprechende Statistik erstellen können. Zusätzlich können neue Funktionalitäten in den graphischen Editor hinzufügt werden, damit der Benutzer bessere Lokationsbeschreibung erstellen kann. 29 Literaturverzeichnis [1] M. Addlesee, R. Curwen, S. Hodges, J. Newman, P. Steggles, A. Ward, and A. Hopper. Implementing a sentient computing system. IEEE Computer, 34(8):50.56, Aug. 2001. [2] WANT, R., HOPPER, A., FALCAO, V., AND GIBBONS, J. The Active Badge Location System. ACM Transactions on Information Systems 10, 1 (January 1992), 91–102. [3] Nissanka B. Priyantha, Anit Chakraborty, and Hari Balakrishnan The Cricket Location-Support System, Abstract, 2-6. MIT Laboratory for Computer Science Cambridge, MA 02139 [4] LILLEY, J. Scalability in an Intentional Naming System. Master’s thesis, Massachusetts Institute of Technology, May 2000. [5] TecO Smart-Its Particles. Available online: http://particles.teco.edu [Accessed: May 2004]. [6] GSM Association Permanent Reference Document SE.23. Location Based Services. Version 3.1.0, January 2003, Available online: http://www.gsmworld.com/documents/lbs/se23310.pdf [Accessed: 9/2004] [7]. Beigl, M. Zimmer, T. Decker, C.: A Location Model for Communicating and Processing of Context. Personal and Ubiquitous Computing Vol. 6 (5-6), 2002, 341357. [8] http://www.foxserv.net 30