Universität des Saarlandes Fachrichtung 6.2: Informatik Sommersemester 2006 Prof. Dr. Dr. h. c. mult. Wolfgang Wahlster Fortgeschrittenenpraktikum Iplay Blue: Interaktive Displays mit Bluetoothbasierter Benutzererkennung Felix Schöttle Ohmstraße 1 66123 Saarbrücken Tel.: 0681 / 90 66 60 6 e-Mail: [email protected] Studiengang: Informatik (Diplom), 12. Semester Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle A III Inhaltsverzeichnis A Inhaltsverzeichnis ............................................................................................... III B Abbildungsverzeichnis ......................................................................................... V 1 Einleitung................................................................................................................ 1 2 Aufgabenstellung ................................................................................................... 3 3 Szenario................................................................................................................... 7 4 Designaspekte ......................................................................................................... 8 4.1 4.2 4.2.1 4.2.2 4.3 5 Funktionalität des Iplay Blue Systems............................................................... 11 5.1 5.1.1 5.1.2 5.1.3 5.2 5.3 6 7.1 7.2 7.3 IPLAY TASKS - KONTEXT-ABHÄNGIGE TODO-LISTE ...........................................................................11 Iplay Tasks - zu Hause ........................................................................................................................14 Iplay Tasks - im Supermarkt ...............................................................................................................15 Iplay Tasks - auf der Arbeit ................................................................................................................16 IPLAY AD - PERSONALISIERTE WERBUNG ............................................................................................16 WEITERE ANWENDUNGSBEISPIELE: PERSONALISIERTE FAHRPLAN-INFO .............................................18 Implementierung eines Frameworks (Iplay Blue)............................................ 19 6.1 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.4 6.4.1 6.4.2 6.4.3 6.5 6.6 7 ADAPTION DER PRÄSENTATION FÜR MEHRERE BENUTZER ....................................................................8 SCHUTZ DER PRIVATSPHÄRE .................................................................................................................9 Zuordnung durch Symbole statt Namen................................................................................................9 Verschleierung durch zusätzliche Informationen ...............................................................................10 ANPASSEN DES DESIGNS FÜR VERSCHIEDENE BENUTZERGRUPPEN .....................................................10 TECHNISCHE KOMPONENTEN ..............................................................................................................19 SYSTEMARCHITEKTUR .........................................................................................................................20 Public Displays...................................................................................................................................20 UbisWorld...........................................................................................................................................21 EventHeap ..........................................................................................................................................22 BlueScanner........................................................................................................................................24 Proman ...............................................................................................................................................25 BlueEventListener...............................................................................................................................25 DATENBANKANBINDUNGEN ................................................................................................................26 MySQL ................................................................................................................................................26 Iplay Blue-Zugriff auf Daten des Task Planers ..................................................................................26 Iplay Blue-Zugriff auf Daten von UbisWorld .....................................................................................27 Iplay Blue-Zugriff auf Daten des CyberShops ....................................................................................27 VERWENDETE PROGRAMMIERSPRACHEN ............................................................................................27 PHP ....................................................................................................................................................27 JAVA / Javascript ...............................................................................................................................28 SQL .....................................................................................................................................................29 ABLAUF DER BENUTZERERKENNUNG ..................................................................................................29 ABLAUF DER PRÄSENTATIONSGENERIERUNG ......................................................................................33 Anwendungsbeispiele .......................................................................................... 35 PHP-SKRIPT IPLAY TASKS ..................................................................................................................35 PHP-SKRIPT IPLAY AD ........................................................................................................................36 PHP-SKRIPT IPLAY PERSONAL PAGES .................................................................................................37 IV Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 8 Installation ............................................................................................................39 9 Ausblick.................................................................................................................40 C Literatur.................................................................................................................V D Anhang ................................................................................................................. VI Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle B V Abbildungsverzeichnis Abbildung 1: Displays in der Öffentlichkeit .............................................................................. 2 Abbildung 2: Web-basierte Benutzerschnittstelle des Task Planers .......................................... 4 Abbildung 3: CyberShop - Einkaufswagen................................................................................ 5 Abbildung 4: Prospekthalter....................................................................................................... 6 Abbildung 5: Titelzeile............................................................................................................. 11 Abbildung 6: Aufgabe mit Unteraufgaben............................................................................... 12 Abbildung 7: Iplay Tasks ......................................................................................................... 13 Abbildung 8: Orte für Notizen in Haushalten .......................................................................... 15 Abbildung 9: Iplay Ad.............................................................................................................. 17 Abbildung 10: Flugtafel ........................................................................................................... 18 Abbildung 11: Aufbau Iplay Blue ............................................................................................ 19 Abbildung 12: Panel PC ........................................................................................................... 21 Abbildung 13: Benutzermodell UbisWorld ............................................................................. 22 Abbildung 14: Senden und Empfangen von Events................................................................. 24 Abbildung 15: Client-Server Architektur................................................................................. 28 Abbildung 16: Java Codeschema ............................................................................................. 29 Abbildung 17: Interaktionsdiagramm Iplay Blue..................................................................... 30 Abbildung 18: Versuchsaufbau Iplay Blue am Lehrstuhl ........................................................ 31 Abbildung 19: Iplay Personal Pages ........................................................................................ 38 Abbildung 20: Klassendiagramm BlueEventListener..............................................................VI Abbildung 21: Klassendiagramm ShowPlannerWall............................................................. VII Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 1 1 Einleitung Im digitalen Zeitalter, in dem wir leben, sind elektronische Geräte immer preisgünstiger zu erwerben. Das hat die Folge, dass viele Menschen schon heute mit Digitalfoto- und Digitalvideokameras, Mobiltelefonen, Personal Digital Assistants, tragbaren Navigationsgeräten oder MP3-Playern ausgestattet sind (Donath A., 2006). So kann überall auf eine Menge von Informationen zurückgegriffen werden. Durch die Entwicklung der großen TFT- und Plasmabildschirme sind weitere Veränderungen in unseren Städten zu beobachten. Vielerorts sind die flachen und gut abzulesenden Public Displays anzutreffen. In vielen Kaufhäusern, Bahnhöfen, Flughäfen, etc. hängen diese an zentralen Punkten und dienen der Anzeige von Werbung oder Reiseinformationen (siehe Abbildung 1: Displays in der Öffentlichkeit). Selbst für den Heimgebrauch werden die Displays erschwinglich. Sie ersetzen zunehmend den Fernseher, oder dienen gar als digitaler Fotoständer. Auf der einen Seite führen diese neuen technischen Errungenschaften zu größerem technischen Komfort, da überall Informationen zur Verfügung stehen. Auf der anderen Seite bringt dies gleichzeitig ein Überangebot von Informationen mit sich. Ziel sollte es daher sein, die angebotenen Informationen derart zu sortieren, dass eine Person genau nur diejenigen Daten geliefert bekommt, die ihrem Interesse und Bedürfnis entsprechen. Das heißt, im Idealfall werden dem Menschen die Informationen dargeboten, die für ihn unter Berücksichtigung seines aktuellen Aufenthaltsortes und seiner persönlichen Situation nützlich oder erforderlich sind. Durch Verwendung bereits vor Ort vorhandener Technologien (wie z. B. TFT- und Plasmabildschirme) kann der Benutzer die Anzahl der mitzuführenden Geräte reduzieren und eine Überfrachtung mit zu vielen Funktionen der Geräte wird vermieden; die erforderliche Anzeige von Informationen wird dann von verfügbaren Public Displays übernommen, da an zentralen Standorten bereits digitale Anzeigetafeln vorhanden sind. Sowohl die Reduzierung der angebotenen Informationen auf das Wesentliche im Sinne von auf den jeweiligen Benutzer zugeschnittenen Daten als auch die Auslagerung der Anzeigefunktionalität auf am Ort vorhandene Geräte verfolgen das Ziel, den Benutzerkomfort zu erhöhen. Diesem Ziel näher zu kommen, ist Aufgabe dieser Arbeit und wird in den folgenden Kapiteln näher dargelegt. 2 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Abbildung 1: Displays in der Öffentlichkeit 1 1 In Anlehnung an: eYe Display B.V.: http://www.eye-display.nl, DAN WITT Präsentationstechnik GmbH & Co.KG: http://www.dan-witt.de. Abruf am 28.11.06. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 2 3 Aufgabenstellung Die Grundidee meiner Arbeit ist es, eine integrierte Lösung zu entwickeln, welche unterschiedliche Aufgaben miteinander verknüpft und in einer einzigen Software zusammenfügt. Die Erstellung eines solchen Frameworks beinhaltet es gleichzeitig, eine Schnittstelle zur Erweiterung des Programms bereitzustellen. Das Hauptaugenmerk der Arbeit und der Entwicklung einer entsprechenden Software liegt auf der Anzeige von Informationen unterschiedlichster Art, welche den Anwendern in personalisierter Form, orts- und uhrzeitgebunden präsentiert werden. Exemplarisch sollen zwei Anzeigemodi entwickelt werden, die auf bereits erfolgreich am Lehrstuhl von Prof. Dr. Dr. h. c. mult. Wolfgang Wahlster abgeschlossenen Projekten basieren. Folgende Auflistung gibt einen kleinen Überblick über die Funktionen der bereits entwickelten Systeme, welche einen Teil der Grundlage meiner Arbeit darstellen. Task Planer Beim Task Planer (Fickert O., 2005) handelt es sich um einen ubiquitären Terminplaner zur Erstellung und Verwaltung von hierarchisch geordneten Aufgaben und Terminen einzelner Benutzer oder Benutzergruppen. Ähnlich wie bei herkömmlichen Terminplanern, z. B. Microsoft Office Outlook, lassen sich Aufgaben und Termine in einen Kalender eintragen. Die Termine werden beim Task Planer über ein Web-Interface eingetragen (vgl. Abbildung 2: Webbasierte Benutzerschnittstelle des Task Planer). Zur Personalisierung der Termine verfügt jeder Benutzer über einen Account, mit dem er sich in seinen eigenen Kalender einloggt. Dort werden ihm seine Einträge sowohl in einer Kalenderansicht als auch in einer Baumstruktur, dem so genannten Aufgabenbaum, präsentiert. Durch Anklicken einzelner Einträge gelangt man zu einer Detailansicht, in der Daten gelöscht, geändert oder hinzugefügt werden können. Neben üblichen Angaben, wie Aufgabentitel, Detailbeschreibungen, End-, Startzeitpunkte oder Erinnerungen, lassen sich Orte und Zwecke der Aufgaben festlegen. Hierdurch lässt sich ein Ortsbezug der Aufgaben herstellen. Eine Besonderheit des Task Planers ist, dass Aufgaben mehreren Benutzern zugeteilt sein können (Benutzergruppen). Das ist Nützlich, wenn gemeinsame Projekte oder Aktivitäten geplant werden sollen, wie beispielsweise eine Gartenparty. Über die Funktion ‘Freunde einladen’ werden Aufgaben an andere Nutzer übertragen und erscheinen als Einträge in deren Aufgabenlisten. 4 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Abbildung 2: Webbasierte Benutzerschnittstelle des Task Planers 2 CyberShop Der CyberShop als futuristischer Supermarkt beschreibt ein intelligentes Zusammenspiel zwischen Einkaufsregal, Einkaufswagen und den dort hineingelegten Produkten (vgl. Abbildung 3: CyberShop - Einkaufswagen). Sobald ein Einkäufer einen Artikel aus dem Regal nimmt und in den Wagen legt, wird der Artikel über eine RFID-Kennung (RFID steht kurz für Radio Frequency Identification und wird in verschiedenen Bereichen zur Ersetzung des Strichcodes eingesetzt.) identifiziert. Am Einkaufswagen befindet sich ein Display, auf welchem detaillierte Informationen zu den erkannten Artikeln (Preis, Produktdetails wie Nährwertangaben usw.) angezeigt werden können. Liegen mehrere Produkte im Wagen, werden die Produkte als Liste angezeigt und der Gesamtpreis ausgegeben. 2 In Anlehnung an: Task Planer, Fortgeschrittenenpraktikum Oliver Fickert. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 5 Abbildung 3: CyberShop - Einkaufswagen 3 Sowohl der Task Planer als auch der CyberShop arbeiten mit je einer eigenen Datenbank, welche die in den Programmen verwendeten Informationen verwaltet. Zusätzlich werden Daten aus der UbisWorld-Ontologie verwendet. UbisWorld verwaltet Daten zu Benutzern, Orten, Zeiten usw. (Detailinformationen siehe 6.2.2 UbisWorld). Der Datenbankanschluss der bereits existierenden Lösungen ist Vorgabe für diese Arbeit; auch sie soll als Grundlage der Datenanzeige Informationen aus den genannten Datenbanken verwenden. Neben den schon entwickelten Funktionalitäten soll ein erhöhter Benutzerkomfort erreicht werden. Dazu soll die Software Zusatzoptionen bereitstellen, wie etwa die digitalisierte Variante eines Prospekthalters. Mit Hilfe von Benutzerdaten sollen dem Nutzer direkt nur die für ihn interessanten Angebote angezeigt werden. So müssen die Prospekte nicht mehr durchgearbeitet werden (vgl. Abbildung 4: Prospekthalter). 3 In Anlehnung an: CyberShop. 6 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Abbildung 4: Prospekthalter 4 Bluetooth-Technologie Technologische Grundlage meiner Arbeit ist die Bluetooth-Technologie. Bluetooth ist der Name für Kurzstreckenfunk nach dem Standard IEEE 802.15.1. Es arbeitet im ISM Band zwischen 2,4GHz und 2,485GHz. 5 Besondere Eigenschaften sind seine geringe Störanfälligkeit, sein niedriger Energieverbrauch und seine geringen Kosten. Deswegen wird Bluetooth vor allem bei mobilen Endgeräten für die Vernetzung im Nahbereich verwendet, wie beispielsweise die schnurlose Verbindung eines Headsets mit einem Mobiltelefon. Verschiedene Bluetooth-Leistungsklassen spezifizieren die Reichweite der jeweiligen Bluetoothgeräte. Klasse 3 ist für kurze Entfernungen bis zu einem Meter geeignet. Die am häufigsten verwendete Klasse zwei hat eine Reichweite bis zu 10 Metern. Mit Klasse 1 sind bis zu 100m überbrückbar. Darüber hinaus wird noch zwischen verschiedenen Bluetooth-Versionen unterschieden, die kompatibel zueinander sind. Je nach Bluetooth-Version sind Datentransferraten zwischen maximal unter 1Mbit/s bis zu 3 Mbit/s zu erreichen und gleichzeitige Verbindungen mit bis zu sieben Geräten möglich. Möchte man mit einem Bluetooth-fähigen Gerät Kontakt zu einem anderen aufnehmen, bedient man sich des Abfrageverfahrens. 6 Hierbei sendet das Gerät, das neue Geräte finden möchte (abfragendes Gerät), eine Abfrageanforderung. Das zu kontaktierende Gerät muss im sogenannten ‘sichtbaren’ Modus sein um gefunden werden zu können. Alle sichtbaren Geräte 4 5 6 In Anlehnung an: Hormann: http://www.hormann.cz/cz/cs/media/prospekte/prospekte_titel_2.jpg. Abruf am 13.09.06. Vgl. Bluetooth SIG: Bluetooth Basics. http://www.bluetooth.com/bluetooth. Abruf am 13.09.06. Vgl. Bluetooth SIG: Kommunikationstopologie. http://german.bluetooth.com/Bluetooth/Learn/Works/Communications_Topology.htm. Abruf am 30.09.06. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 7 im Empfangsbereich antworten dem abfragenden Gerät mit ihrer eindeutigen Bluetooth-ID, eine 48bit lange Seriennummer. 7 Da jedes Bluetooth-fähige Gerät eine eigene Bluetooth-ID besitzt, ähnlich der MAC-Adresse bei Netzwerkgeräten, lässt sich über diese Nummer jedes Gerät identifizieren. Verknüpft man die Bluetooth-IDs mit den Besitzern der Mobiltelefone, kann auch die Anwesenheit des Besitzers erfasst werden, was in diesem Projekt genutzt werden soll. 3 Szenario Bei einer ganz gewöhnlichen Familie Müller an einem Arbeitstag morgens in der Küche. Herr Müller sitzt am Kaffeetisch und frühstückt. Nachdem er seinen Kaffe ausgetrunken und sein Müsli fertig gegessen hat, geht er zum Kühlschrank, um die Milch dorthin zurückzustellen. Dabei schweift sein Blick noch über das Display, welches am Kühlschrank hängt. Dort stehen seine anstehenden Geschäftstermine darauf. Außerdem noch ein Vermerk, dass er sich um eine neue Kamera kümmern wollte, da seine letzte Woche den Geist aufgegeben hat. Bald darauf macht er sich auf den Weg zu seinem Arbeitsplatz. Beim Verlassen der Haustüre ruft ihm seine Frau noch hinterher: „Bring’ bitte noch Eier und Ketchup für die Kinder mit!“. „Mach ich Schneutzelchen! Aber schreib’ es bitte noch in den Planer!“, antwortet er und verlässt das Haus. Im Büro angekommen läuft er direkt in Richtung seines Zimmers. Im Flur seines Arbeitgebers befindet sich ein großer TFT-Bildschirm. Im Vorbeigehen nimmt er dort wahr, dass um 9.00Uhr ein Teammeeting geplant ist und er um 10.30Uhr ein Treffen mit einer Kundin hat. Kurz vor neun Uhr geht er los zum Meeting. Doch wo findet es noch mal statt? Er schlendert noch mal am Display vorbei. Darauf steht geschrieben: „Teammeeting in Raum 10.02“. Nach getaner Arbeit läuft er Richtung Supermarkt. Er weiß, dass seine Frau ihm aufgetragen hat dort noch etwas einzukaufen. Er überlegt und überlegt, doch kann er sich nicht mehr im Geringsten daran erinnern. Dort angekommen sieht er schon ein großes Public Display. Davor steht schon ein Mann und betrachtet die darauf vorgestellten Produkte. Herr Müller stellt sich dazu und sieht auf dem Display unter anderem Eier und Ketchup erscheinen. „Richtig!“, denkt er, „Genau das sollte ich mitbringen!“. Zusätzlich bekommt er das Sonderangebot einer Superkamera angezeigt, die 7 Vgl. SOREX Wireless Solutions GmbH: Bluetooth http://www.sorex-austria.com/index.php?mitte=bluetooth.htm& links=technology, Abruf am 13.09.06. 8 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle er schon immer haben wollte. „Na Wahnsinn!“, jubelt er vor Freude. „Das trifft sich ja gut!“. Er kauft alles und macht sich auf den Heimweg. 4 Designaspekte Das Design ist ein entscheidender Aspekt für die Benutzerfreundlichkeit einer Softwareanwendung. Daher ist es so zu gestalten, dass die Anwender die Software intuitiv bedienen können. Da die Informationen auf Public Displays (große Displays in der Öffentlichkeit, siehe auch 6.2.1 Public Displays) angezeigt werden sollen, stellt dies besondere Ansprüche an das Layout. Einerseits sollen mehrere Benutzer gleichzeitig Informationen am selben Ort über ein Anzeigemedium erhalten, andererseits muss gewährleistet sein, dass trotzdem deren Privatsphäre geschützt ist. Zudem soll insbesondere bei der Gestaltung des Designs auf Benutzerfreundlichkeit geachtet werden. Zum einen ist es wahrscheinlich, dass unterschiedliche Displays unterschiedliche Bildschirmauflösungen benutzen. Das setzt voraus, dass sich die Anzeige flexibel an verschiedene Displaygrößen anpassen kann. Zum anderen stehen den Benutzern an den Public Displays nur selten Maus oder sonstige Eingabegeräte zur Verfügung, mit denen sie interagieren können. Deswegen kommen Hyperlinks oder Scrollbalken nicht in Frage. Es steht nur eine einzige Anzeigeseite zur Verfügung auf der alle für den Benutzer wichtigen Informationen angezeigt werden müssen. Da es kaum möglich ist auf einer einzigen Displayseite alle Daten eines Benutzers, der beispielsweise 500 Einträge in seinem Profil hat, übersichtlich anzuzeigen, müssen die darzustellenden Informationen auf das Wichtigste reduziert werden. Hierzu sollen die Daten je nach Anzeigemodus auf Ortsbezogenheit gefiltert und nach ihrer Relevanz sortiert werden. Dadurch wird sichergestellt, dass dem User nur die für ihn wichtigen Informationen angezeigt werden. 4.1 Adaption der Präsentation für mehrere Benutzer Beim späteren Einsatz des Systems in der Öffentlichkeit ist davon auszugehen, dass die InfoPoints von mehreren Personen gleichzeitig frequentiert werden. Deswegen müssen die Designs auch auf den Mehrbenutzerbetrieb ausgelegt sein. Das bedeutet vor allem, dass das Bildschirmlayout so gestaltet sein muss, dass die Informationen mehrerer User problemlos Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 9 darauf angezeigt werden können. Dabei darf aber nicht die Übersichtlichkeit und Lesbarkeit verloren gehen. Zudem muss der Benutzer die für ihn bestimmten Informationen herausfinden können. Je nach Design soll zur Lösung dieser Problematik entweder das Display in verschiedene Bereiche aufgeteilt oder die Daten einzelner Benutzer vereint und mit schon oben beschriebenen Verfahren auf die entscheidenden Fakten reduziert werden. 4.2 Schutz der Privatsphäre Je nach Layout gibt es verschiedene Möglichkeiten, um die Anonymität der Benutzer zu bewahren. Zwei davon sind in den folgenden Unterkapiteln beschrieben. 4.2.1 Zuordnung durch Symbole statt Namen Damit Benutzer die für sie bestimmten Informationen erkennen können und gleichzeitig nicht sofort jeder, der einen Blick auf den Bildschirm wirft, die Daten bestimmten Personen zuordnen kann, muss ein entsprechendes Verfahren gewählt werden. Das Anzeigen des Namens des Benutzers würde sich hierzu nicht gut eignen. Der Benutzer könnte zwar seine Informationen herauslesen, jedoch ist hierbei der Datenschutz nicht gewährleistet. Falls beispielsweise nur ein einziger Benutzer seine Informationen abrufen würde, könnte jeder andere Passant seinen Namen zuordnen. Würde man hingegen die Informationen benutzerspezifisch mit bestimmten Farben oder Mustern hinterlegen, könnte die Privatsphäre gewahrt werden. Jedoch eignet sich diese Möglichkeit nicht bei vielen Benutzern, da nur eine begrenzte Anzahl optisch unterscheidbarer Farben und Muster zur Verfügung steht. Bei Mehrbenutzerbetrieb müssten sich viele Anwender folglich dieselben Markierungen teilen und könnten somit bei gleicher Farbstellung eigene Daten nicht von Daten anderer unterscheiden. Zudem verschlechtert sich durch die Verwendung vieler verschiedener Farben die Lesbarkeit und Übersichtlichkeit der Anzeige. Symbole hingegen sind relativ gut zu erkennen und sie können einfach den anzuzeigenden Informationen hinzugefügt werden, ohne dass die Lesbarkeit der Anzeige beeinträchtigt wird. Zudem geben sie nicht viel von der Persönlichkeit der zugeordneten Person preis, weswegen sie gut zur Kennzeichnung der Nutzerdaten verwendet werden können. 10 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 4.2.2 Verschleierung durch zusätzliche Informationen Eine andere Möglichkeit, die Privatsphäre zu waren besteht darin, weitere zufällige Informationen (neben den tatsächlich für den Benutzer bestimmten) anzuzeigen. Dies kann beispielsweise der Fall sein, wenn einem Käufer im Supermarkt auf einem Display sein persönlicher, digitaler Einkaufszettel ergänzt mit allgemeinen Produktangeboten angezeigt wird. Somit kann der vorbei gehende Passant die persönlichen Informationen dem jeweiligen Benutzer nicht zuordnen, da er nicht wissen kann, welche zufällig abgebildet sind und welche nicht. Der Benutzer selbst hingegen wird sich, wenn die Anzeige beispielsweise als Gedankenstütze dienen soll, allein durch das Sehen der Informationen an die von ihm erstellten Informationen erinnern und somit leicht die eigenen von den zufälligen Daten trennen können. 4.3 Anpassen des Designs für verschiedene Benutzergruppen Das Design wurde an zwei Benutzergruppen, die die Informationsanzeigeflächen unterschiedlich nutzen, angepasst. Die eine Gruppe besteht aus Personen, die im Vorbeigehen an einer der Anzeigen sich kurz die wichtigsten Informationen in Erinnerung rufen wollen. In der anderen Gruppe befinden sich Leute, die vor den Displays stehen bleiben und in Ruhe die dort angezeigten Daten bis ins kleinste Detail studieren. Beiden Gruppen muss mit einem einzigen Display genüge getan werden, da ja die Absicht des Nutzers für die Software nicht erkenntlich ist. Um beiden Gruppen gerecht zu werden, benutzt man eine einfache Technik, die auch in diesem Projekt angewendet werden soll: Man verwendet unterschiedlich große Darstellung je nachdem wie wichtig die Information für den Benutzer ist. Stellt man beispielsweise wichtige Daten groß dar, können diese auch gut von vorbeieilenden Nutzern aufgenommen werden. Hingegen bleiben diesen Personen kleiner angezeigte Informationen, beispielsweise Detailinformationen, verborgen. Hierzu muss der Passant vor dem Anzeigemedium stehen bleiben, bzw. noch näher herantreten, um sie zu erkennen, was der zweiten Benutzergruppe entgegenkäme. 11 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 5 Funktionalität des Iplay Blue Systems Gemäß der oben beschriebenen Aufgabenstellung (siehe 2 Aufgabenstellung) wurde der Iplay Blue entwickelt. Iplay Blue steht für ‘Interaktive Displays mit Bluetooth-basierter Benutzererkennung’. Das Funktionieren des Iplay Blues ist an zwei Voraussetzungen geknüpft. Zum Ersten muss jeder Anwender ein Mobiltelefon, einen PDA oder ein anderes mobiles Gerät mit sich führen, das Bluetooth besitzt und aktiviert hat, und zum Zweiten müssen dort, wo später Informationen erscheinen sollen, je ein InfoPoint aufgestellt sein: ein PC mit Bluetooth-Schnittstelle und angeschlossenem Anzeigemedium, beispielsweise einem TFT-Display (vgl. 6.1 Technische Komponenten). Sobald sich ein Benutzer einem InfoPoint nähert, werden ihm auf dem Anzeigemedium personenbezogene und kontextabhängige Informationen angezeigt. Die Benutzererkennung erfolgt über die Bluetooth-Schnittstelle des Mobiltelefons (siehe auch 6.5 Ablauf der Benutzererkennung). Werden mehrere Benutzer erkannt, werden die Informationen speziell für diese Personen aufbereitet und auf dem Display angezeigt. Wie oben bei den Designaspekten (s. 4.2.1 Zuordnung durch Symbole statt Namen) beschrieben wurde eine Zuordnung von Symbolen zu den Nutzern vorgenommen. Jeder Benutzer kann ein Icon in seinem Profil abspeichern, das dann beispielsweise in der Titelzeile erscheint, wenn der Benutzer am InfoPoint erkannt wurde. Diese Titelzeile (siehe Abbildung 5: Titelzeile) ist in jedem Design eingebettet. Neben den Benutzericons sind dort auch Ortsname und Zwecke des Standortes ablesbar. Abbildung 5: Titelzeile 8 Je nach Ort wird ein spezielles Design gewählt. Für einige Szenarien sind verschiedene Anzeigemodi entwickelt worden, die im Folgenden kurz vorgestellt werden. Andere Designs sind möglich und einfach in den Iplay Blue integrierbar. 5.1 Iplay Tasks - Kontext-abhängige ToDo-Liste In der Ansicht des Iplay Tasks werden die wichtigsten kontextrelevanten Informationen für den Benutzer in einer Liste angezeigt. Das Design soll einer intelligenten ToDo-Liste nahe 8 In Anlehnung an: Iplay Blue, Fortgeschrittenenpraktikum Felix Schöttle. 12 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle kommen mit der Besonderheit, dass die einzelnen Listeneinträge automatisch nach der Wichtigkeit sortiert und auch nur die für den aktuellen Standort relevanten Dinge angezeigt werden. Damit die Nutzer die für sie bestimmten Einträge finden, wurden zusätzlich zur Iconanzeige in der Titelzeile auch die Symbole den zugehörigen Aufgaben zugeordnet. Stehen zufälligerweise mehrere Personen vor dem Display, die sich eine Aufgabe teilen, so erscheinen an derselben Aufgabe die Symbole aller Beteiligten. Um dem Gesichtspunkt der verschiedenen Benutzergruppen zu genügen (s. 4.3 Anpassen des Designs für verschiedene Benutzergruppen) wurde unterschieden zwischen Informationen, die dem Benutzer direkt ins Auge fallen und Details, die nur durch näheres Betrachten zu erkennen sind. Die Titel der Aufgaben sind groß und fett gedruckt, um sie aus einiger Entfernung und im Vorbeigehen lesen zu können. Sie dienen als Gedächtnisstütze für rasch vorbeieilende Leute. Zur besseren Übersichtlichkeit sind zusammengehörige Aufgaben, wie beispielsweise die Listenpunkte einer Einkaufsliste, in einer gemeinsamen Box zusammengefasst (siehe Abbildung 6: Aufgabe mit Unteraufgaben). Detailinformationen zu einzelnen Aufgaben sind im Gegensatz zu den Titeln in kleiner Schrift unter der Aufgabe selber zu finden; Informationen, die dem Vorbeieilenden nicht auffallen und ihn somit auch nicht zusätzlich verwirren. Aus der Nähe sind diese Informationen jedoch lesbar; für Interessenten, die vor den Displays stehen bleiben. Abbildung 6: Aufgabe mit Unteraufgaben 9 9 In Anlehnung an: Iplay Blue, Fortgeschrittenenpraktikum Felix Schöttle. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 13 Zu jeder Aufgabe kann ein Endzeitpunkt eingetragen werden, an dem eine Aufgabe erledigt sein sollte. Dieser wird als Restzeitanzeige jeweils neben der Aufgabe abgebildet. Eine Färbung der Restzeitanzeige nach dem Ampelprinzip signalisiert dem Benutzer auch ohne die genaue Restzeit abzulesen die Dringlichkeit der Aufgabe. Grün bedeutet, dass noch reichlich Zeit zum Erledigen ist. Gelb zeigt an, dass diese Aufgabe demnächst erledigt werden sollte und eine rote Restzeitanzeige drückt aus, dass die Zeit schon überschritten worden ist. Die Aufgaben selbst werden in zwei Spalten sortiert nach ihrer Dringlichkeit angeordnet. Hierbei wird versucht die Displaygröße möglichst effizient auszunutzen. Eine Umbruchfunktion teilt, wenn nötig, eine nicht mehr in die Spalte passende Box auf und zeigt den Rest in der nächsten Spalte an (siehe Abbildung 7: Iplay Tasks). Abbildung 7: Iplay Tasks 10 Um zu verhindern, dass Aufgabenbeschreibungen viel Platz wegnehmen, sind verschiedene Kontrollmechanismen eingebaut. Sind mehr Aufgaben vorhanden, als angezeigt werden können, werden nur die wichtigsten angezeigt. Sind sehr lange Aufgabentitel eingetragen, werden diese notfalls abgeschnitten. Passen Detailinformationen nicht mehr in eine Zeile, so werden diese mit Hilfe von JavaScript als Laufschrift dargestellt. 10 In Anlehnung an: Iplay Blue, Fortgeschrittenenpraktikum Felix Schöttle. 14 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Einige denkbare Einsatzmöglichkeiten für diese Art von Datenrepräsentation sind in den folgenden Abschnitten beschrieben. 5.1.1 Iplay Tasks - zu Hause Für den Einsatz zu Hause eignet sich idealerweise ein großer Touchscreen, der an einem zentralen Ort der Wohnung angebracht ist, beispielsweise am Kühlschrank der Küche oder im Flur nähe der Telefonanlagen. Am besten dort, wo sonst analoge Erinnerungshilfen wie Pinnwand oder Kalender aufgehängt sind (vgl. Abbildung 8: Orte für Notizen in Haushalten). Da sich zu Hause hauptsächlich die Bewohner der Wohnung aufhalten und diese den InfoPoint gemeinsam benutzen, wäre es sinnvoll, hier ein Display als Übersichts- und Verwaltungsstation einzusetzen. Das bedeutet, dass hier alle Termine und Aufgaben ortsunabhängig angezeigt werden, sofern sie auf das Display passen. Gleichzeitig könnten hier auch neue Termine eingetragen werden und abgeschlossene Aufgaben entfernt werden. Es würde sich anbieten, diese InfoPoints mit Eingabegeräten auszustatten, zumindest mit einem Touchscreen, um Eingaben vornehmen zu können. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 15 Abbildung 8: Orte für Notizen in Haushalten 11 Als Editiermaske benutzen wir den Task Planer (siehe auch Kapitel 2 Aufgabenstellung). Um sich dort ohne umständliches Eingeben von Benutzername und Passwort über den Touchscreen einloggen zu können, wurden Quick-Login-Buttons in die Ansicht des Iplay Tasks eingefügt (vgl. Abbildung 5: Titelzeile). Klickt man auf den Quick-Login-Button, der mit seinem eigenen Icon versehen ist (mehr zu Icons in 4.2.1 Zuordnung durch Symbole statt Namen), gelangt man sofort angemeldet in den Task Planer. Diese Funktion stellt bezüglich der Datensicherheit eine Schwachstelle des Iplay Blue Systems dar. Dieses Risiko kann jedoch relativiert werden, da die Informationen, die eine Einkaufsliste bereitstellt, in der Regel nicht sensibel sind und auch in Form von Notizen auf analogen Erinnerungshilfen für jedermann einseh- und manipulierbar sind. Außerdem wird der Quick-Login-Button nur angezeigt, wenn sich der zugehörige Benutzer in der Nähe des InfoPoints aufhält, was wiederum das Verändern der Daten von Fremden erschwert. Insofern wurde der Button als komfortable Anmeldelösung in den Iplay Blue integriert. 5.1.2 Iplay Tasks - im Supermarkt Läuft ein Benutzer durch den Supermarkt, interessieren ihn hier hauptsächlich Informationen, die etwas mit seinem Einkauf zu tun haben. Deswegen werden ihm hier Dinge präsentiert, die 11 Eigene Erstellung. 16 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle unmittelbar in Bezug zum Aufenthaltsort (z. B. Einkaufszentrum) oder dessen Zweck (z. B. Einkaufen, aktuelle Angebote finden) stehen. Als angezeigte Daten eignen sich hier folglich primär die personenbezogenen Einkaufslisten. Da grundsätzlich davon auszugehen ist, dass mehrere Personen gleichzeitig ihre persönlichen Infos auf demselben Display abrufen möchten, muss die Anzeige auch dafür ausgelegt sein (siehe auch 4.1 Adaption der Präsentation für mehrere Benutzer). 5.1.3 Iplay Tasks - auf der Arbeit Ähnlich wie beim Supermarkt werden hier ausschließlich kontext-relevante Informationen dargeboten. Standardmäßig wird eine Homepage angezeigt, beispielsweise die Firmenhomepage der Arbeitsstelle. Somit wird verhindert, dass vorbeigehende Kunden Einblick in Firmeninterna erhalten. Treten Mitarbeiter vor den InfoPoint, werden ihnen sowohl ihre persönlichen anstehende Termine als auch Termine, die für alle Mitarbeiter gelten, z. B. Teammeetings oder Firmenfeiern, angezeigt. 5.2 Iplay Ad - personalisierte Werbung Diese Art der Anzeige ist insbesondere für den Einsatz im Einzelhandel, wie Einkaufszentren, Elektronikfachmärkten usw., geeignet. Sie soll die Funktion der sonst üblichen Werbeprospekte übernehmen und gleichzeitig den Aufwand des Nutzers passende Angebote zu finden erheblich verringern. Genau wie beim Iplay Tasks sind die hier angezeigten Informationen kontextbezogen. In einem Elektronikfachmarkt würden sinngemäß nur Elektronikartikel dargeboten. Im Gegensatz zum Design des Iplay Tasks sind in dieser Ansicht nur Produktbilder und deren Preise zu finden (vgl. Abbildung 9: Iplay Ad). Die auf dem Iplay Ad-Display dargestellten Artikel stammen zu einem Teil aus den allgemein beworbenen Angeboten eines Gewerbetreibenden und zum anderen Teil aus den persönlichen Einkaufslisten der Benutzer im Task Planer. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 17 Abbildung 9: Iplay Ad 12 Für den Einkäufer hat dieses System gleich zwei Nutzen: • Zunächst bleibt es dem Kunden erspart, den Werbekatalog eines Gewerbetreibenden genau zu studieren. Er bekommt stattdessen direkt die für ihn interessanten Produkte angezeigt. Beispiel: Hat ein Anwender in seiner Einkaufsliste einen Eintrag ‘Apfelsaft’, so kann er im Supermarkt über Iplay Ad die Information ‘Merziger Apfelsaft, € 0,95’ ersehen. • Der zweite Nutzen bezieht sich auf die Verschleierung persönlicher Daten des Kunden: Dadurch, dass sein persönlicher digitaler Einkaufszettel beispielsweise mit Werbeinformation eines Supermarkts angereichert ist, können weitere Passanten allgemeine, zufällig dazugewürfelte und persönliche Daten des Dateneigentümers nicht unterscheiden (vgl. Abschnitt 4.2.2 Verschleierung durch zusätzliche Informationen). 12 In Anlehnung an: Iplay Blue, Fortgeschrittenenpraktikum Felix Schöttle. 18 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 5.3 Weitere Anwendungsbeispiele: Personalisierte Fahrplan-Information Ein weiterer Einsatzbereich des Iplay Blue Systems wäre der Flughafen. Oft hat man als Abreisender, schwer mit Gepäck beladen, vergessen, an welchen Check-In Schalter man sich zu wenden hat. Auf den Anzeigetafeln stehen viele Flüge übereinander, die es einem sehr schwer machen, seinen eigenen Flug zu finden (vgl. Abbildung 10: Flugtafel). Wenn auch noch mehrere Flüge zum selben Bestimmungsort angezeigt werden, kann nur noch die Flugnummer den richtigen Flug identifizieren. Die ist dann meist nicht parat und um auf dem Flugticket nachzuschauen, müsste man erst das ganze Gepäck abstellen. Mit der personalisierten Fahrplan-Info könnte man vor ein kleines Display treten und bekäme dann, durch sein Mobiltelefon identifiziert, sofort seine gewünschten Fluginformationen angezeigt. Abbildung 10: Flugtafel 13 13 In Anlehnung an: Flughafen Dresden GmbH. http://www.dresden-airport.de/media/medienmaterial/flugtafel.jpg. Abruf am 11.12.06. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 6 19 Implementierung eines Frameworks (Iplay Blue) Im Folgenden werden die einzelnen Komponenten des Frameworks vorgestellt und deren zusammenwirken erklärt. Die dabei verwendeten PHP-Skript-Dateien, die die Darstellung auf den Displays realisieren, werden nachstehend zusammenfassend als ShowPlannerWall bezeichnet. Abbildung 11: Aufbau Iplay Blue 14 6.1 Technische Komponenten Zur Realisierung von Iplay Blue sind einige technische Komponenten notwendig. Diese sind in folgender Übersicht aufgeführt: • Jeder Benutzer trägt je ein Bluetooth-fähiges portables Gerät (Mobiltelefon / PDA) mit sich. 14 Eigene Erstellung. 20 • Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Zur Anzeige von Informationen müssen sogenannte InfoPoints aufgestellt sein. Ein InfoPoint ist wie folgt aufgebaut: Software: o Proman o BlueScanner o Internet Explorer 6 o Windows XP Hardware: o PC mit Display / Touchscreen oder Panel PC o Bluetoothschnittstelle / Bluetooth dongle o Internetzugang • Zudem müssen auf einem oder mehreren ständig laufenden Servern folgende Softwares installiert sein: o EventHeap o BlueEventListener o WebServer mit PHP und MySQL o ShowPlannerWall 6.2 Systemarchitektur 6.2.1 Public Displays Zur Anzeige der Daten werden Public Displays benötigt. Als Public Display ist jedes handelsübliche Display geeignet. Zur Anzeige der Informationen und Generierung der Layouts ist pro Display ein daran angeschlossener PC notwendig. Da sich diese Displays größtenteils in der Öffentlichkeit befinden, sollte die Hardware sehr robust und möglichst wartungsfrei sein. Diesen Kriterien genügen sogenannte PanelPCs (siehe Abbildung 12: Panel PC). Hierbei handelt es sich um PCs die komplett in ein TFT-Display integriert sind. Somit müssen keine anderen Hardwarekomponenten oder Kabel, wie beispielsweise PC-Gehäuse oder VGA-Kabel verstaut werden. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 21 Abbildung 12: Panel PC 15 6.2.2 UbisWorld “UbisWorld can be seen as a collection of concepts and models for location and time, for interaction and situation that are all prepared for ontological representation and data collection.”(Heckmann D., 2005) UbisWorld schafft mit Hilfe einer Datenbank ein virtuelles Abbild der realen Welt (Heckmann D., 2005). Orte, Personen und Dinge können genauso repräsentiert werden, wie auch Zeiten, Ereignisse und deren Eigenschaften und Besonderheiten. Hierzu bekommt jeder Teil der UbisWorld einen Eintrag mit einer eindeutigen ID, der sogenannten UbisWorld-URI. Die URI setzt sich zusammen aus einem Bezeichner, gefolgt von einem Punkt und einer Zahl, z. B. Corridor.405017. Die Bezeichner selbst dürfen durchaus mehrdeutig sein, denn durch das Anhängen einer eindeutigen Zahl wird auch die zusammengesetzte URI eindeutig. Einträge werden als ‘Statements’ abgelegt (siehe auch Abbildung 13: Benutzermodell UbisWorld). Ein ‘Statement’ besteht aus Subject, Auxiliary, Predicate, Range und Object, ähnlich aufgebaut wie ein einfacher Satz. Beispielsweise weist das Statement: ‘Felix (=Subject) has (=Auxiliary) BluetoothDeviceAdress (=Predicate) 7A3FE (=Object)’ dem Benutzer Felix eine Bluetooth Geräteadresse zu. Subjects beinhalten gewöhnlich einen Ort oder einen Benutzer. Predicates stellen die Relation zwischen Subject und Object dar. Im Object wird der Wert zum zugehörigen Predicate abgelegt. Der Range legt den Typ der als Object gespeicherten Daten fest. Durch Auxiliary werden Subject und Predicate sinnvoll verknüpft. 15 In Anlehnung an: Datasound Laboratories Ltd. http://212.69.206.200/photos/ppc_740X.jpg. Abruf am 27.10.06. 22 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Jeder kann über das Webinterface www.ubisworld.org Daten eingeben. Nötig ist hierfür ein Account, den man nach Registrierung auf der Webseite erhält. Mit der Registrierung erhält der Benutzer eine seiner Person zugeteilte eindeutige UbisWorld-URI, die ihn als Teil der UbisWorld verkörpert. UbisWorld wird im Iplay Blue verwendet, um Benutzerdaten abzugleichen, wie beispielsweise deren persönliches Usericon (vgl. 4.2.1 Zuordnung durch Symbole statt Namen), deren eingetragene Homepage und die Bluetooth-IDs ihrer Geräte herauszubekommen, sowie um die Zwecke (Purposes) von Orten bestimmen zu können. Abbildung 13: Benutzermodell UbisWorld 16 6.2.3 EventHeap Die EventHeap ist ein eigenständiges indirektes Kommunikationssystem für Softwaresysteme, das in Stanford entwickelt wurde (Brad J., 2003). Anstelle das Nachrichten vom Absender zum Empfänger direkt verschickt werden, kommunizieren die Applikationen über die 16 In Anlehnung an: UbisWorld. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 23 EventHeap. Alle Nachrichten, die sogenannten Events, werden an die Heap übermittelt und hier zwischengespeichert. Dort sind die Events von Anwendungen, die Zugang zur EventHeap haben, abrufbar. Diese Technik hat mehrere Vorteile gegenüber der direkten Kommunikation der Programme untereinander: • keine Verständigungsprobleme zwischen Applikationen, da protokollunabhängiges Kommunizieren über Events • einfache Erweiterbarkeit von Systemen durch neue Programme, da kein Abändern der Kommunikationsmethoden notwendig • kein Mehrfachversenden von Events erforderlich, wenn Nachrichten für mehr als einen Adressaten bestimmt sind: Heap speichert Events; von dort aus sind diese für alle daran angeschlossenen Applikationen verfügbar • kein Entstehen von Fehlern oder Verzögerungen beim Sender, wenn der Empfänger der Nachricht nicht erreichbar ist, da EventHeap als ‘Zwischenhändler’ fungiert Ein Event, zu Deutsch Ereignis, ist die Basiseinheit, die die Kommunikation zwischen Anwendungen, die auf dieselbe EventHeap zurückgreifen, realisiert. Jedes einzelne Event besteht aus einer Menge ungeordneter Felder. 17 Das Spezialfeld mit dem Namen ‘EventType’ muss immer vorhanden sein. Dieses Feld gibt dem Event seine Bedeutung, so dass es von anderen Programmen zugeordnet werden kann. Beispielsweise sendet der Proman Events mit ‘EventType’ ‘DisplayRegistration’. Jedes Feld besteht aus dem Typ der zu übermittelnden Nachricht, einem Namen, der den Inhalt des Feldes beschreibt und einem Wert, der die Botschaft an sich beinhaltet. Um die Events abzurufen abonniert die Anwendung, die die Nachrichten erhalten möchte Events mit den konkreten ‘EventTypes’. Dieses erhält automatisch die angeforderten Events zugestellt (Bartnik R., 2006). Zur Verdeutlichung der Funktionsweise wird in der folgenden Abbildung der im Fortgeschrittenenpraktikum ablaufende Nachrichtenverkehr zwischen BlueScanner, Proman, EventHeap und BlueEventListener verbildlicht: 17 Vgl. berliOS Developer: Event Heap Tutorial. http://media.informatik.rwth-aachen.de/istuff/ tutorial_eventheap.pdf. Abruf am 15.09.06. 24 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Abbildung 14: Senden und Empfangen von Events 18 Abbildung 14 zeigt die Programme BlueScanner und Proman, die je ein Event an die EventHeap senden. Die Events des BlueScanners sind vom Typ ‘RAWBLUETOOTH’, die des Proman tragen den ‘EventType’ ‘DisplayRegistration’. Zusätzlich zu den EventTypes werden die zu übermittelnden Daten gesendet. Der BlueEventListener hat sowohl Events vom ‘EventType’ ‘RAWBLUETOOTH’ als auch ‘DisplayRegistration’ abonniert und wird diese, sobald sie auf der EventHeap eingegangen sind, zugestellt bekommen. 6.2.4 BlueScanner Der BlueScanner wurde am Lehrstuhl in Java entwickelt und hat den Zweck Bluetoothgeräte aufzuspüren und bekannt zu machen. Er ist auf jedem PC eines InfoPoints installiert. In seiner Konfigurationsdatei ist der Standort des PCs als UbisWorld-URI eingetragen. Nach dem Start des Programms sendet es alle 15 Sekunden eine Bluetooth-Abfrage (vgl. 2 Aufgabenstellung). 18 Eigene Erstellung. 25 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Alle sichtbaren Bluetoothgeräte antworten auf diese Abfrage mit ihrer Bluetooth-ID. Die sammelt der BlueScanner und überträgt sie zusammen mit der eigenen UbisWorld-URI als Event (EventType: ‘RAWBLUETOOTH’) an die Heap (siehe 6.2.3 EventHeap). Von dort aus sind die Informationen für jedes Programm, das Zugriff auf den Heap hat, abrufbar. 6.2.5 Proman Mit Hilfe des Proman ist es möglich den Internet Explorer entfernter PCs zu steuern. Auf Computern, auf denen der Proman gestartet ist, können per TCP/IP z. B. URLs angezeigt oder das Browserfenster minimiert werden. Sobald ein Proman gestartet wird, sendet er die UbisWorld-URI seines Standortes zusammen mit einer IP-Adresse und einem Port als Event an die Heap (EventType: ‘DisplayRegistration’). Danach wartet er auf eingehende Kommandos. Über die in der Heap eingegangenen Informationen zu Port und IP lässt sich der Proman ansteuern. Der Proman nimmt eingehende Kommandos entgegen und führt sie auf dem Computer aus. Erhält er beispielsweise ein ‘browse’ mit einer URL als String, öffnet er mit Hilfe der Active-X Schnittstelle die URL im Internet Explorer. Auf jedem InfoPoint ist der Proman verfügbar. Er hat hier die Funktion, die aktuellen Informationen für die Benutzer auf den Displays, anzuzeigen. 6.2.6 BlueEventListener Der BlueEventListener stellt das Herzstück des Iplay Blues dar. Er steuert die Softwarekomponenten der InfoPoints und sorgt dafür, dass immer am richtigen Ort die richtigen Daten angezeigt werden. Der BlueEventListener hat Zugriff auf die EventHeap und kann hierüber Nachrichten des BlueScanners und Promans entgegen nehmen. Das iRos-Paket ermöglicht dem Java-Programm eine Verbindung mit der Heap aufzubauen. Über den MySQL-Treiber kann der BlueEventListener sich mit der UbisWorld-Datenbank verbinden und hierüber Benutzerinformationen beziehen. Der BlueEventListener ist auf einem zentralen Server installiert, der ununterbrochen läuft. Von dort aus regelt der BlueEventListener den Informationsaustausch zwischen den einzelnen InfoPoints. 26 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 6.3 Datenbankanbindungen 6.3.1 MySQL MySQL ist die im Moment am weitesten verbreitete Open-Source-SQL-Datenbank der Welt. MySQL unterliegt der GNU General Public License. Es stellt ein sehr vielfältiges relationales Datenbankmanagementsystem zur Verfügung, das vor allem in Verbindung mit PHP und dem Apache-Server verwendet wird. 19 Auch wir verwenden MySQL in dieser Konstellation. Ein Datenbankmanagementsystem ist notwendig, um Datenbanken zu verwalten, auf sie zuzugreifen, Informationen abzugreifen und hinzuzufügen. Eine Datenbank selbst stellt in diesem Zusammenhang den Speicher dar, in dem die eigentlichen Daten in strukturierter Form abgelegt sind; sie ist normalerweise Teil des Datenbankmanagementsystems. Werden die Daten anstelle in einem einzigen Speicher in mehreren untereinander verknüpften Tabellen innerhalb der Datenbank abgelegt, so spricht man von relationalen Datenbanken. Durch dieses Verfahren lassen sich Daten schneller und flexibler verarbeiten. Die zugehörigen Datenbankmanagementsysteme werden aus diesem Grund als relational bezeichnet. 20 6.3.2 Iplay Blue-Zugriff auf Daten des Task Planers Der Task Planer ist eine Online-Anwendung zur Verwaltung eines persönlichen Terminplaners. Die darin verwendeten Daten werden in einer MySQL-Datenbank verwaltet. Der Task Planer ist für den von mir entwickelten Iplay Blue insofern von Relevanz, da er die zur Anzeige notwendigen Daten für den Iplay Tasks und Iplay Ad zur Verfügung stellt. Dies bedeutet, dass zur Anzeige personen-, zweck- sowie ortsgebundener Daten durch den Iplay Blue eine Abfrage auf die gleiche Datenbank vorgenommen wird, welche die Basis des Terminplaners ist. Der Task Planer ist mit Hilfe einer relationalen MySQL-Datenbank realisiert. Verschiedene Tabellen speichern die Informationen, die für die Anzeige der richtigen Daten der User notwendig sind. In der Tabelle user sind die Zugangsdaten der Benutzer mit ihrer UbisWorld-URI und einer ID gespeichert. Mit Hilfe dieser ID können die den Benutzern zugeordneten Aufgaben als taskIDs in der Tabelle task_place gefunden werden. Über das Feld placeURI kann die Ortszugehörigkeit der Aufgaben über die dort eingetragene UbisWorld-URI bestimmt werden. Die 19 20 Vgl. o. V.: MySQL. http://de.wikipedia.org/wiki/Mysql. Abruf am 08.09.06. Vgl. MySQL AB: Was ist MySQL? http://dev.mysql.com/doc/refman/4.0/de/what-is.html. Abruf am 08.09.06. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 27 zu den taskIDs zugehörigen Aufgaben-Datensätze sind in der Tabelle task zu finden. Um Verknüpfungen zwischen Aufgaben und Unteraufgaben herzustellen, greift man auf die Tabelle task_subtask zurück. Hier sind die IDs der Hauptaufgaben mit den IDs vorhandener Teilaufgaben verknüpft. 6.3.3 Iplay Blue-Zugriff auf Daten von UbisWorld UbisWorld basiert ebenfalls auf einer MySQL-Datenbank die aus mehreren Tabellen besteht. Sowohl der BlueEventListener als auch der ShowPlannerWall greifen darauf zurück um Eigenschaften von Personen und Zwecke von Orten festzustellen. Hierzu werden die beiden Tabellen element_property und purpose benötigt. 6.3.4 Iplay Blue-Zugriff auf Daten des CyberShops Die Datenbank des CyberShops besteht aus einer Produktdatenbank, dessen Informationen genutzt werden, um die Anzeige des Iplay Ad zu gestalten. Die Tabelle ssa_products ist gefüllt mit verschiedenen Produkten, die es im CyberShop zu kaufen gibt. Zu jedem Produkt ist u. a. der Name, der Preis, sowie der Name der Bilddatei zu finden unter der das Bild des Produktes abgelegt ist. 6.4 Verwendete Programmiersprachen 6.4.1 PHP PHP gehört zu den Skriptsprachen und dient hauptsächlich zur Erstellung dynamischer Webseiten. Sie wurde von Rasmus Lerdorf 1994 entwickelt um die Zugriffe auf seinen OnlineLebenslauf protokollieren zu können. Er nannte sie ‘Personal Home Page Tools’ und stellte diese ins Internet zur freien Verfügung. Daraus entstand schnell der Name PHP. Danach wurde sie von Open-Source Programmierern weiterentwickelt und umbenannt in die rekursive Bezeichnung: ‘PHP Hypertext Preprocessor’ (Krause J., 2005). Wie den meisten Skriptsprachen fehlen auch PHP bestimmte Eigenschaften gegenüber ‘normaler’ Programmiersprachen, beispielsweise die explizite Typisierung von Variablen. PHP zeichnet sich aus durch die Unterstützung zahlreicher Datenbanken und Internet-Protokolle aus, sowie die Fülle von Bibliotheken, die PHP zur Verfügung stehen. 28 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle PHP läuft serverseitig. Das bedeutet, dass Browser des Clients bei Aufruf einer PHP Site dem Webserver eine Anfrage sendet. Daraufhin interpretiert der Server den PHP-Code und generiert hieraus Code, der für den Browser darstellbar ist. Meistens handelt es sich um HTMLCode (Hypertext Markup Language: Sprache, die zur Anzeige in Browsern verwandt wird). Der wird wiederum an den Browser des Clients zurückgesandt und dort angezeigt. Abbildung 15: Client-Server Architektur 21 6.4.2 JAVA / Javascript „A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, dynamic language.” 22 So lautet die kurze Beschreibung der Firma Sun Microsystems über die von ihnen entwickelte objektorientierte Programmiersprache JAVA. Sie wurde 1995 entwickelt und sollte eine Programmiersprache sein, die die Vorteile aller bisher verfügbaren Programmiersprachen vereint und deren Nachteile ausbügelt (Schwichtenberg G., 2005). Besonders zu erwähnen ist der Aspekt der Plattformunabhängigkeit (architecture neutral) (Flegel J., 2002). In Java geschriebener Quellcode wird nicht wie bei den meisten anderen Programmiersprachen direkt in plattformspezifischen Objektcode umgewandelt, sondern in den sogenannten Byte-Code. Mit der Java Virtual Machine, kurz JVM, die für fast jede Plattform existiert, wird der Code zur Laufzeit in Maschinenkommandos umgesetzt (Jeckle M, 2004). Somit können JAVA-Applikationen unabhängig von Hardware und Betriebssystem ausgeführt werden. 21 22 Vgl. o. V.: PHP. http://de.wikipedia.org/wiki/Php. Abruf am 12.09.06. Vgl. Sun Microsystems: The Java Language: An Overview. http://java.sun.com/docs/overviews/java/java-overview1.html. Abruf am 04.09.06 . 29 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Java Program Java APIs Java Virtual Machine Computer System Abbildung 16: Java Codeschema 23 JavaScript hat nicht viel mit Java zu tun. Die Syntax der Programmiersprache ist nur sehr stark an die von Java angelehnt, wodurch die Namensgebung zu erklären ist. JavaScript ist eine Skriptsprache, die vor allem auf Webseiten eingesetzt wird. JavaScript verwendet man, um Webseiten mehr Dynamik zu verleihen. Mit JavaScript lassen sich beispielsweise Benutzerinteraktionen abfangen und daraufhin bestimmte Aktionen ausführen. So kann beim Zeigen mit der Maus auf bestimmte Grafiken ein alternatives Bild eingeblendet werden (RollOver). Im Gegensatz zu PHP wird JavaScript clientseitig interpretiert, d.h. die Webbrowser müssen JavaScript-fähig sein, um den Quellcode ausführen zu können. 6.4.3 SQL SQL ist die Abkürzung für ‘Structured Query Language’ und ist eine populäre Abfragesprache, mit der Datenbankzugriffe ausgeführt werden. Viele Datenbankmanagementsysteme greifen auf diese Sprache zurück, was auch meist am Namenszusatz SQL erkennbar ist, z. B. MySQL. Andere Datenbankmanagementsysteme, die auch größtenteils den SQL-Befehlssatz verwenden, sind beispielsweise Microsoft SQL Server, Oracle oder PostgreSQL. 6.5 Ablauf der Benutzererkennung Der Ablauf ist zur besseren Lesbarkeit und zum besseren Verständnis auf einen Benutzer und einen InfoPoint beschränkt. Weitere User und InfoPoints sind möglich. 23 Eigene Erstellung. 30 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Abbildung 17: Interaktionsdiagramm Iplay Blue 24 1. Ein Benutzer passiert mit seinem Bluetooth-Gerät einen InfoPoint. Die Software BlueScanner sendet ununterbrochen alle 15 Sekunden einen Rundruf. Alle BT-Geräte, die auf sichtbar geschaltet sind, beantworten den Rundruf durch Übersenden der jeweiligen Bluetooth-Adresse. 2. Auf dem InfoPoint (Rechner) laufen Windows XP, Internet Explorer und Software Proman und BlueScanner. Sobald der Proman gestartet ist, sendet dieser das Event mit ‘EventType’ ‘DisplayRegistration’ an die EventHeap. In diesem Event enthalten sind folgende Informationen: IP-Adresse des entsprechenden InfoPoints, der Port des InfoPoints sowie der Standort (location) des InfoPoints als UbisWorld-URI. 3. Die Software BlueScanner sendet, sobald eine Antwort eines Bluetooth-fähigen Handys eingetroffen ist, das Event ‘RAWBLUETOOTH’ an die Heap. Darin enthalten sind folgende Informationen: Bluetooth-Adresse (als ID) und Standort des InfoPoints (location) als UbisWorld-URI. 24 Eigene Erstellung. 31 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Abbildung 18: Versuchsaufbau Iplay Blue am Lehrstuhl 25 4. Auf dem Server läuft die Software BlueEventListener (vgl. Abbildung 20: Klassendiagramm BlueEventListener). Der BlueEventListener sucht ununterbrochen nach Events des Typs ‘DisplayRegistration’(1) und ‘RAWBLUETOOTH’(2). Wird (1) gefunden, dann wird ein eigenes DisplayObjekt angelegt, sofern für den Eventsendenden Proman noch kein eigenes DisplayObjekt angelegt ist. Die Überprüfung erfolgt wie nun beschrieben: Es existiert eine Hash-Map, ein assoziatives Array: 25 Proman-Adresse als UbisWorld-URI DisplayObjekt zum Erreichen des Promans Corridor.4711 7889 Room.4712 7990 Eigene Erstellung. 32 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 5. Bei jedem neueintreffenden Event des Typs ‘DisplayRegistration’ wird in der Hash-Tabelle die Proman-Adresse als UbisWorld-URI mit der InfoPoint-location abgeglichen. Existiert bereits ein Eintrag, wird kein eigenes DisplayObjekt angelegt. Über das DisplayObjekt kann der Proman des entsprechenden Displays gesteuert werden. Das DisplayObjekt speichert zu der UbisWorld-Adresse des entsprechenden Promans die durch das Event übertragenen Informationen, also die IP-Adresse des InfoPoints und den Port des InfoPoints. Sobald der Proman eines InfoPoints für den BlueEventListener nicht mehr erreichbar ist (z. B. durch Programmabsturz), wird das DisplayObjekt gelöscht. Wird (2) empfangen, wird zunächst überprüft, ob in der Hash-Tabelle ein Eintrag für die InfoPoint-location existiert, welche mit der Information im Event ‘RAWBLUETOOTH’ übereinstimmt. Wenn ja, dann wird mit den Bluetooth-Adressen, welche durch das Event mitgeschickt werden, eine Abfrage an die UbisWorld-Datenbank übermittelt. Auf diese Weise kann der Bluetooth-Adresse ein Benutzer zugewiesen werden (die reale Person am InfoPoint wird identifiziert und einer User_URI mittels der UbisWorld-Datenbank zugeordnet). Bluetooth-ID USER_URI 8a13b12… FelixSchoettle.210272 Wenn nein, mangelt es an einem entsprechenden DisplayObjekt und es kann erst dann eine Aktion ausgeführt werden, wenn zu dem entsprechenden Proman der entsprechenden location des InfoPoints ein DisplayObjekt angelegt und in der Hash-Tabelle gelistet ist. Der BlueEventListener baut einen String zusammen mittels der erhaltenen Daten: User_URI und InfoPoint-location. Diese Informationen erweitern die URL des ShowPlannerWalls: http://helen.cs.uni-sb.de:8080/~felix/taskplaner/ show_planner.php?loc=405017&login1=210272&login2=210292&login3=210302. Der komplette String wird über das entsprechende DisplayObjekt an den Proman des jeweiligen InfoPoints geschickt. Ausnahme: Das Handy, welches die erste Information gesendet hat (Bluetooth-ID), entfernt sich aus dem Empfangsbereich eines InfoPoints. In diesem Fall sendet der BlueScanner ein neues Event der empfangenen Bluetooth-Adressen ohne dieses Handy. 33 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Der BlueEventListener baut daraus einen neue URL ohne das den Empfangsbereich verlassende Handy zusammen und schickt diese an den Proman. Somit werden keine Informationen mehr für den verschwundenen Nutzer angezeigt. 6. Der Proman, welcher durch das DisplayObjekt angesprochen wurde, ruft die zusammengesetzte URL mittels des Active-X Steuerelements im Internet Explorer auf. Die Anzeige der benutzer- und ortsrelevanten Daten wird durch das PHP-Skript realisiert. Alternativ: Der BlueEventListener schickt dir URL nicht direkt an den entsprechenden Proman, sondern schickt diese als Event, gekoppelt mit dem Bestimmungsort als UbisWorldURI, an die EventHeap. Der Präsentationsmanager, auch ein Projekt des Lehrstuhls, empfängt die Events und liefert die URLs an die richtigen Promans. Durch diese Technik wird der BlueEventListener von der direkten Kommunikation gelöst (Kommunikation nur über Heap). Dadurch können andere Programme, in Zeiten, in denen der Iplay Blue untätig ist (keine Benutzer in Reichweite), die InfoPoints zur Anzeige nutzen. 6.6 Ablauf der Präsentationsgenerierung Ausgangspunkt jeder Präsentation ist die Datei ‘show_planner.php’ der ShowPlannerWall (vgl. Abbildung 21 in Anhang D). Dieses Skript wird standardmäßig über die vom BlueEventListener aufgerufene URL mit verschiedenen Erweiterungen gestartet. Nach Aufruf des PHP-Skripts läuft folgendes Prozedere ab, unabhängig des Präsentationsmodus: 1. An die URL sind Parameter angehängt, die den Standort des InfoPoints, sowie die dort sich befindenden Benutzer, als UbisWorld-IDs enthalten. So könnte so eine URL aussehen: UW-ID Standort http://helen.cs.uni- UW-ID User sb.de:8080/~felix/taskplaner/show_planner.php?loc=405017&login1=210272& login2=210292&login3=210302 2. Die der URL mitgegebenen Parameter, d.h. die UbisWorld-ID mit den Standortinformationen, sowie die IDs der Benutzer, werden in Variablen gespeichert. 3. Die dem Standort zugeordneten Zwecke (Purposes) werden in der UbisWorld-Datenbank abgefragt. Dort befindet sich auch zu jedem registrierten Benutzer ein Eintrag mit seinen Benutzerdaten. Wird in den Daten eine BenutzerID wiedergefunden, wird das dem Benutzer zugeordnete Symbol, sofern vorhanden, ausgelesen. Aus Ortsname, Zwecken und 34 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Usericons wird ein Anzeigestring gebaut, der später als Titel der HTML-Site ausgegeben wird (siehe Abbildung 5: Titelzeile). 4. In der Tabelle tbl_taskview_design wird der Anzeigemodus für den Standort ausgelesen. Momentan existieren drei Anzeigemodi (siehe 7 Anwendungsbeispiele). 5. Eine Switch-Anweisung ruft die mit dem Anzeigemodus korrelierte Funktion auf. 6. Die jeweilige Funktion liefert zum Ende ihrer Laufzeit die gefundenen Daten in unterschiedlichen Formen zurück. Eine entsprechende Funktion der Datei ‘view.php’ wandelt die Daten in HTML-lesbaren Code um und speichert diesen in einem String ab. 7. Umschlossen von einem Standard HTML-Header und schließenden HTML-Body Elementen werden der HTML-Code aus den Strings in (3.) und (6.) im Browser angezeigt. Möchte man ein neues Design hinzufügen, so müssen die neuen Anzeigefunktionen einfach in das PHP-Skript integriert werden, beispielsweise mit ‘include’ der neuen Dateien. Die Einträge der tbl_taskview_design müssen um den neuen Modus erweitert werden. Schließlich muss noch die Switch-Anweisung angepasst werden, so dass die neuen Funktionen auch aufgerufen werden können. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 7 35 Anwendungsbeispiele In den folgenden Unterkapiteln werden die Funktionsweisen der implementierten Anzeigemodi erklärt. Alle Modi werden aus der Datei ‘show_planner.php’ gestartet (im Folgenden auch als ‘Hauptprogramm’ bezeichnet). Die erläuterten Funktionen und Klassen sind im Klassendiagramm der ShowPlannerWall (siehe Abbildung 21 in Anhang D) zu finden. 7.1 PHP-Skript Iplay Tasks Der Iplay Tasks ist ein möglicher Anzeigemodus des Iplay Blues (vgl. Abbildung 7: Iplay Tasks). Wenn in der tbl_taskview_design dieser Modus eingetragen ist (siehe 6.6 Ablauf der Präsentationsgenerierung), wird aus den Aufgaben und Terminen der Benutzer, die im Task Planer (vgl. 2 Aufgabenstellung) eingetragen sind, eine Webseite erstellt, die zur Anzeige im Browser verwendet wird. Wie im Einzelnen die Benutzeraufgaben strukturiert und in HTML-Tags verpackt werden, wird im Folgenden in Form einer Liste dargestellt: 1. Die in den Parametern der URL mitgelieferten Benutzer-UbisWorld-IDs werden in der Datei ‘show_planner.php’ verwendet, um sich am Task Planer anzumelden (vgl. Konstruktor LocalUserTasks in cls_localusertasks.php). 2. Mit Hilfe der Location-UbisWorld-ID werden die ortsbezogenen Aufgaben und Termine der vor den InfoPoints erkannten Nutzer einzeln ausgelesen. Jeder Eintrag wird in einem ‘task_object’ gespeichert (siehe auch Funktion LocalUserTasks::get_task_array(..) in cls_localusertasks.php). In dem Objekt sind Details zu der Aufgabe, wie beispielsweise Titel, Beschreibung oder auch Benutzerzugehörigkeit hinterlegt. Alle Objekte eines Benutzers werden wiederum in einem Array zusammengefasst. 3. Die Aufgaben aller erkannter Benutzer, die in Arrays gespeichert sind, werden durch die Funktion ‘show_common_tasks’ (vgl. Funktion show_common_tasks(..) in fkt_tasks.php) zu einem einzigen Array(*) zusammengefasst. Dabei werden mehrfach vorkommende Einträge, falls beispielsweise mehrere Benutzer an einer Aufgabe beteiligt sind, zu einer einzigen Aufgabe reduziert und gleichzeitig die Benutzerzugehörigkeit auf die beteiligten Personen ausgeweitet. 4. Aus den ‘task_objects’ des Arrays(*) wird nun ein Baum erstellt, der sogenannte ‘task_tree’ (vgl. Funktion array2tree(..) in fkt_tree.php). Die Baumstruktur der Aufgaben 36 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle und Termine ergibt sich aus den Daten, die im Task Planer eingetragen sind. Zu jeder Aufgabe lassen sich beliebig viele Unteraufgaben erstellen. Das ist sinnvoll um verschiedene Aufgaben zusammenfassen zu können, bei z. B. einer Einkaufsliste oder zum Planen von Partys. Die Baumstruktur wird benötigt, um die Aufgaben besser sortieren und später übersichtlicher anzeigen zu können 5. Die Einträge des ‘task_trees’ werden anschließend nach ihrer Dringlichkeit sortiert (vgl. Funktion sorting(..) in fkt_tree.php). Hierbei wird der ganze Baum rekursiv durchlaufen, sodass auch die Unterbäume sortiert sind. 6. Der sortierte Baum wird der Funktion ‘parse_html’ (vgl. Funktion parse_html(..) in view.php) übergeben. ‘Parse_html’ entnimmt dem ‘task_tree’ die Informationen über die eingetragenen Aufgaben und arbeitet diese zur Ausgabe in einem Webbrowser auf. Die Daten werden in HTML-konforme Sprache umgeformt, so dass sie auf der Website in Boxen angeordnet erscheinen (siehe auch 5.1 Iplay Tasks - Kontext-abhängige ToDoListe). Schließlich werden die erstellten HTML-Elemente als String an das Hauptprogramm zurückgeliefert. 7. Dort wird, wie oben beschrieben (6.6 Ablauf der Präsentationsgenerierung), der String, umfasst von anderen HTML-Seitenelementen, im Browser ausgegeben. 7.2 PHP-Skript Iplay Ad Das Skript des Iplay Ad (siehe Abbildung 9: Iplay Ad) wird ebenfalls von der ShowPlannerWall aus gestartet. Es wird ausgeführt, wenn in der tbl_taskview_design der entsprechende Modus für den aktuellen InfoPoint eingetragen ist. Wie auch der Iplay Tasks bezieht der Iplay Ad die anzuzeigenden Daten aus dem Task Planer. Da beide Modi hierzu auf dieselben Funktionen zurückgreifen, sind die dazu notwendigen Schritte (vgl. Schritte 1-3, 7.1 PHPSkript Iplay Tasks) in der Beschreibung unten ausgelassen. Das von der Funktion ‘show_common_tasks’ erhaltene Array(*), gefüllt mit den Benutzeraufgaben, den ‘task_objects’, wird nun wie folgt weiterverarbeitet: 1. Die Funktion ‘get_products’ (vgl. Funktion get_products(..) in fkt_cybershop.php) baut eine Verbindung zur CyberShop Datenbank auf und liest dort eingetragene Artikel mit Artikelnamen, Artikelpreis und Artikelabbildung aus. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 37 2. Das Array(*) wird durchlaufen und nach Produktnamen durchsucht, die auch in den Artikelnamen der Datenbank vorkommen. Bei einer Übereinstimmung wird der entsprechende Datenbank-Eintrag im Array ‘laarticlegalery’ gespeichert. 3. Die Anzahl der Einträge des Arrays wird an die Auflösung des Displays des jeweiligen InfoPoints angepasst. Je mehr Fläche zur Verfügung steht, desto mehr Artikel können angezeigt werden. Sind nicht genügend Artikel-Datensätze im Array vorhanden, um das Display auszufüllen, werden zusätzlich zufällig ausgewählte Artikel hinzugefügt. 4. Das Array wird ans Hauptprogramm zurückgegeben und dort von der Funktion ‘parse_shopping_html’ (vgl. Funktion parse_shopping_html in view.php) entgegengenommen. 5. Diese baut aus dem Array, ähnlich wie das Pendant beim Iplay Tasks ‘parse_html’, die auszugebenden HTML-Konstrukte. In einem String gespeichert werden diese wie beim Iplay Tasks an das Hauptprogramm übergeben. 6. Das Hauptprogramm gibt den String, wie auch schon oben beschrieben (siehe auch 6.6 Ablauf der Präsentationsgenerierung), umfasst von anderen HTML-Seitenelementen, im Browser aus. 7.3 PHP-Skript Iplay Personal Pages Der Iplay Personal Pages wurde entwickelt, um zu demonstrieren, dass neue Designs einfach in den Iplay Blue integrierbar sind. Diese Anzeige, losgelöst von Task Planer und CyberShop, zeigt bis zu vier Benutzern gleichzeitig, deren in UbisWorld eingetragene Homepage, an (siehe Abbildung 19: Iplay Personal Pages). Je nach Anzahl der erkannten Benutzer wird die Seite in ein, zwei, drei oder vier Bereiche geteilt in denen je eine der Webseiten angezeigt wird. 38 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Abbildung 19: Iplay Personal Pages 26 Dieser Anzeigemodus wird auch aus der ShowPlannerWall gestartet: 1. Wird in der tbl_taskview_design der Iplay Personal Pages Modus gefunden, wird die Funktion ‘get_user_homepages’ (vgl. Funktion get_user_homepages(..) in fkt_homepage.php) aufgerufen und die IDs, der vor dem InfoPoint gefundenen Benutzer, als Array mitgegeben. 2. Aus den UbisWorld-IDs der Nutzer sucht ‘get_user_homepages’ die UbisWorld-Datenbank nach eingetragenen URLs ab. 3. Die URLs werden in einem Array gespeichert und zurückgegeben. 4. Die Funktion ‘parse_homepage_html’ (vgl. Funktion parse_homepage_html(..) in view.php) nimmt die URLs aus dem Array entgegen und erstellt daraus wie auch 26 In Anlehnung an: Iplay Blue, Fortgeschrittenenpraktikum Felix Schöttle. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle 39 ‘parse_shopping_html’ (siehe 7.2 PHP-Skript Iplay Ad) und ‘parse_html’ (siehe 7.1 PHPSkript Iplay Tasks) HTML-konforme Sprachelemente. Die URLs im Array werden in der Website als Iframes eingebettet und je nach Anzahl der anzuzeigenden Seiten in der Größe angepasst. Die erstellten HTML-Konstrukte werden als String zurück ans Hauptprogramm gegeben. 5. Das Hauptprogramm gibt den String umschlossen von HTML-Header, Titelleiste und schließendem HTML-Body-Element aus. 8 Installation Um den Iplay Blue zu installieren sind folgende Schritte notwendig: Vorraussetzung ist, das auf dem zentralen Server PHP5, ein Webserver (z. B. Apache) Java Version 1.5.0, sowie die EventHeap installiert sind. Auf dem Server sollte sich die ShowPlannerWall, also die PHP-Skripte, in einem von außen zugänglichen Verzeichnis des WebServers befinden (beispielsweise ‘~/public_html/taskplaner/’). Die Skripte sind aus dem SVN-Repository des Lehrstuhls abrufbar (‘https://xantippe.cs.uni-sb.de/proj/taskplaner’). Die ShowPlannerWall muss Zugang zur Task Planer-, CyberShop- und UbisWorld-Datenbank haben (siehe Fickert O., 2005). Zugangsdaten zu den Datenbanken sind in der Datei ‘const.php’ einseh- und änderbar. Zusätzlich muss der BlueEventListener auf dem Server gestartet werden. Hierzu sollte das tarArchiv ‘blueeventlistener.tar’ in ein Verzeichnis des Servers extrahiert werden. Danach sollten sich die Datei ‘blueeventlistener.jar’ und das Startskript ‘start’ in dem Verzeichnis befinden, sowie im Unterverzeichnis ‘lib’ die Pakete ‘iROS.jar’ und ‘ mysql-connector-java-5.0.0beta-bin.jar’. Durch Aufruf des Startskripts wird der BlueEventListener gestartet und im Hintergrund laufen gelassen. Mit Hilfe von Parametern kann die Standardkonfiguration des BlueEventListeners geändert werden. ./start (Adresse EventHeap) (Port EventHeap) (Cycles before Remove) [(URL ShowPlannerWall)] Mit Hilfe der Parameter ‘Adresse EventHeap’ und ‘Port EventHeap’ kann die URL, unter der die EventHeap zu erreichen ist, geändert werden. Remove Cycles gibt an, nach wie vielen BlueScanner-Zyklen in denen ein Gerät nicht mehr gefunden wird, das Gerät aus der Liste der anzuzeigenden Geräte gelöscht werden soll. Optional kann eine andere URL angegeben werden, unter der die ShowPlannerWall gefunden werden kann. 40 Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Auf den InfoPoints muss sich das Programm Proman und BlueScanner befinden. Beide werden durch ihren Aufruf gestartet und sollten für einen Dauerbetrieb der InfoPoints in dessen Autostart eingefügt werden. In den Konfigurationsdateien der Programme (txt-Dateien) sind Parameter wie EventHeap, Standort-UbisWorldURI, usw. einzustellen. 9 Ausblick Mit der Entwicklung von Iplay Blue steht nun ein ortsbezogenes, personenspezifisches Erinnerungssystem zur Verfügung, das dem Benutzer das Leben erleichtern soll. Anstatt viele Funktionen in ein einziges mobiles Gerät zu integrieren, wurde hier auf die schon vorhandene Infrastruktur vor Ort gesetzt. Dem Benutzer bleiben somit große finanzielle Ausgaben erspart, da keine Neuanschaffungen getätigt werden müssen. Gleichzeitig sind keine langen Einarbeitungszeiten in das System notwendig, da der Nutzer die von ihm zur Identifikation verwendeten mobilen Endgeräte bereits kennt. Betrachtet man die in den Iplay Blue integrierten Anzeigemodi, so lässt sich leicht erkennen, dass diese noch vielfältig erweitert werden können. Diese Überlegungen sollen in der Zukunft fortgeführt werden und weitere darauf basierende Anwendungen entworfen werden. Insbesondere wäre die Einbindung von Navigationshinweisen in die Präsentation von Aufgaben durch die IPlay Task Komponente wünschenswert. Dadurch, dass im Taskplaner Aufgaben mit Orten assoziiert werden können, liegt es nahe, auf dem öffentlichen Display neben den Aufgabenbeschreibungen auch Hinweise zu präsentieren, die den Benutzer direkt zu den damit verbundenen Orten führen. Im Supermark könnten beispielsweise neben den Produktbezeichnungen Pfeile die Laufrichtung zu den entsprechenden Regalen anzeigen. Im Flughafen könnte neben den Abflugzeiten auch eine Wegbeschreibung zum Check-In Schalter bzw. zum Gate erscheinen. Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle C V Literatur Bartnik, Robert (2006): Weiterentwicklung einer Technologiebasis für interaktive Gruppenarbeitsräume. http://users.informatik.haw-hamburg.de/~ubicomp/arbeiten/diplom/bartnik.pdf. Abruf am 15.09.06. Donath, Andreas (2006): Mehr als 12 Millionen Deutsche planen Handy-Neukauf. http://www.golem.de/0605/45644.html. Abruf am 05.09.06 Fickert, Oliver (2005): Ein Ubiquitärer Aufgabenplaner für Benutzergruppen. Fortgeschrittenenpraktikum am Lehrstuhl für Künstliche Intelligenz Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster, Universität des Saarlandes, Saarbrücken Flegel, Jürgen, u.a. (2002): Was ist Java?. http://ddi.cs.uni-potsdam.de/HyFISCH/ Produzieren/SeminarDidaktik/OOP/Was_ist_Java.html. Abruf am 06.09.06 Geiger, Jörg (2006): Das Wichtigste zur Drahtlostechnik, gelesen bei Chip online. http://www.chip.de/artikel/c_druckansicht_12137428.html. Abruf am 13.09.06 Heckmann, Dominik (2006): Ubiquitous User Modeling. DISKI 297, Akademische Verlagsgesellschaft Aka GmbH, Berlin. ISBN 3-89838-297-4 Jeckle, Mario (2004): Was ist Java?. http://www.jeckle.de/vorlesung/java/script.html#kap1. Abruf am 06.09.06 Johanson, Brad (2003): Application Coordination Infrastructure for Ubiquitous Computing Rooms, Stanford University, Dissertation. http://graphics.stanford.edu/~bjohanso/dissertation/. Abruf am 12.09.06 Krause, Jörg (2005): PHP 5, Grundlagen und Profiwissen. Hanser Fachbuchverlag, 2. Auflage, ISBN 3-446-40334-5 Schwichtenberg, Günter (2005): JAVA-Grundzüge, Düsseldorf. http://www.hrz.unidortmund.de/Kurse/Java/Grundzuege.html. Abruf am 05.09.06 VI D Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Anhang Abbildung 20: Klassendiagramm BlueEventListener Fortgeschrittenenpraktikum Iplay Blue, Felix Schöttle Abbildung 21: Klassendiagramm ShowPlannerWall VII