Iplay Blue - Interaction Display with Bluetooth support

Werbung
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
Herunterladen