Marco Savini

Location Based Services auf dem Web


Geposted vonn Marco Savini am 07.10.2008, 22:01

In einem früheren Blogbeitrag habe ich über kontextabhängige mobile Anwendungen geschrieben. Auch habe ich klar festgehalten, dass Kontextabhängigkeit nicht nur die Ortung beinhaltet, sondern auch andere Merkmale für solche Anwendungen relevant sind.

Leider sind alle existierenden und kontextabhängigen mobile Anwendungen per Definition eigenständige Applikationen, die explizit auf dem mobilen Gerät heruntergeladen und installiert werden müssen. Ein wichtiger Vorteil des Webs, dessen einfache Verfüg- und Zugreifbarkeit, wird somit zunichte gemacht.

Das Web selbst in seiner jetzigen Form kann mit Informationen vom Client leider nicht viel anfangen. Ein Webserver, der eine Anfrage eines Browsers erhält (über einen HTTP Request), erhält höchstens Informationen zum verwendeten User Agent und noch etwas über Cookies, aber sonst praktisch nichts. Dabei wäre es doch äusserst sinnvoll, wenn (optionale und standardisierte) Werte übergeben würden, die z.B. die aktuelle Position des Aufrufers kennzeichnen.

Die Möglichkeiten, die sich daraus ergeben würden, sind vielfältig. Eine Webanwendung könnte dem Benutzer kontextabhängige Informationen zurückliefern. Das allgegenwärtige Beispiel von den sich in der Nähe befindlichen Restaurants ist wohl noch das trivialste Beispiel.

Betrachtet man den Ist-Zustand, wird mit den zurzeit verfügbaren Parametern schon äusserst intensiv gearbeitet. Gerade bei mobilen Geräten werden bei Webanfragen heutzutage auf verschiedenen Ebenen Transformationen durchgeführt, um das Resultat möglichst optimal für den Benutzer darstellen zu können. Die einfachste Form ist die Verwendung von angepassten CSS, welche die Darstellung so regeln, dass unwichtige Bereiche für kleine Bildschirme ausgeblendet werden (natürlich wird schlussendlich genausoviel HTML Code übetragen, aber Bandbreite ist nur ein Teilproblem vom mobilen Web, ein genauso wichtiger Aspekt ist die hohe Latenzzeit). Um dies zu bewerkstelligen, wird einfach der User Agent Parameter der Anfrage ausgewertet; aufgrund dieser Information hat die Serveranwendung Zugriff auf eine Fülle von weiteren Daten, wie z.B. die graphische Auflösung des Endgeräts oder die Anzahl darstellbarer Farben. Wenn man berücksichtigt, wie intensiv dieser einzelne Parameter bereits genutzt wird, kann man sich einfach ausmalen, was eine Anwendung auf einem Webserver mit weiteren Informationen machen könnte.

Dieser Beitrag soll nun kurz illustrieren, was für Möglichkeiten es bei der Ortung in Web-Anwendungen gibt. Viele nachfolgenden Erläuterungen basieren auf der Bachelorarbeit von Hamed Sekandary. Beginnen wir zuerst einmal mit dem umgekehrten Weg:

Ortung des Webservers

Daviel und Kaegi schlagen die Verwendung von Meta-Tags im HTML-Code vor. Das heisst, der Web-Anwendung gibt ihren eigenen Ort an den Browser. Nachfolgend ein Beispiel:

<head profile="http://geotags.com/geo">
    <meta name="geo.region" content="CH-DE" />
    <meta name="geo.placename" content="Biel/Bienne" />
    <meta name="geo.position" content="46.793914; 7.159128" />
</head>

So eine Angabe kann vielerlei bewirken. Der Browser auf dem Client kann solche Informationen interpretieren (z.B. über ein Plug-In) und so dem Benutzer die Möglichkeit geben, den Fahrplan zu diesem Ort herauszusuchen. Bei klassischen Kontaktseiten würde somit der obligate map.search.ch oder maps.google.com Verweis obsolet und der Benutzer kann ein und für alle mal angeben, dass er beispielsweise für sämtliche geographischen Angaben in erster Linie den SBB Fahrplan verwenden möchte. Ausserdem ist es durch die maschinelle Interpretierbarkeit auch möglich, dass diese Seite von einem Navigationssystem in einem Fahrzeug gelesen wird, welche den Fahrer gleich dorthin führt (oder ein Plug-In übermittelt die Zielkoordinaten über Bluetooth). Wie man sieht, ist die Angabe des Dienststandorts (anstelle des Benutzerstandorts) mitunter durchaus sinnvoll. Auch bei Tourismus-Aggregatoren kann so eine Angabe pro Hotel durchaus Sinn machen.

Übermittlung der aktuellen Position pro Anfrage

Interessanterweise auch von Daniel und Kaegi wird der umgekehrte Weg propagiert und beschrieben: Die Serveranwendung erhält pro Anfrage Informationen zum aktuellen Standort des Clients. Dazu muss die Anfrage im HTTP Protokoll erweitert werden, namentlich mit dem Geo-Position Parameter. Eine solche HTTP Anfrage könnte demnach z.B. folgendermassen aussehen:

Host: weather.example.com
Geo-Position: -10.28;60.84

Etliche weitere Parameter werden beschrieben, nachfolgend ein weiteres Beispiel:

Host: weather.example.com
Geo-Position: -10.28;60.84;120 epu=50

Der Wert 120 bezieht sich auf die aktuelle Höhe des Anfragers (welche von jedem GPS Gerät ermittelt wird) und der epu Parameter besagt, dass die wahre Position mit einer 95% Wahrscheinlichkeit sich innerhalb von 50m Radius zur angegebenen befindet.

Die daraus resultierenden Möglichkeiten sind äusserst vielfältig, interessant und gelegentlich auch gefährlich. Webanwendungen können nun so personalisiert werden, dass auch die aktuelle Position berücksichtigt wird. Das ist insbesondere bei mobilen Lösungen äusserst interessant!

Leider implementiert noch kein Browser dieses Tag, es existiert lediglich eine Auswahl von älteren speziell angepassten Browsern.

Übermittlung der aktuellen Position mit der PinPoint Architektur

Die wohl am weitesten fortgeschrittenen Überlegungen hat sich Jörg Roth (siehe Literatur) mit seiner PinPoint Architektur gemacht. Sie basiert auf einem lokal installierten Proxy, welche jede Anfrage des Web Browsers entgegennimmt und weiterleitet.

Bei der Weiterleitung wird sowohl die eigentliche Anfrage ausgeführt, wie auch die aktuelle Position und weitere Parameter ermittelt. Zusätzlich zur eigentlichen Anfrage, wird die Position auch noch semantisch bestimmt (d.h. sie wird für Menschen lesbar gemacht, z.B. „Parkweg 8, 2502 Biel/Bienne“). Der bei der ersten Anfrage zurückkommende HTML Code wird dann vom Proxy erweitert, wenn sich spezielle Tags darin befinden. Das ganze wird dann dem Browser zurückgegeben, welcher von der ganzen Sache nichts mitbekommen hat. Er erhält normales HTML, welches er dem Benutzer darstellt. Die Architektur wird nachfolgend abgebildet (aus Roth, 2002):

Der im Schritt (5) zurückgegebene HTML Code des Web Servers kann, wie erwähnt, spezielle Tags enthalten, welche dann im Schritt (6) gefüllt werden. Solche Tags sind z.B.:

  • __GPos__: Die aktuelle (numerische) Position
  • __GSemPos__: Die aktuelle (semantische) Position
  • __GScreenX__: Die horizontale Auflösung des Clients
  • etc.

Der Ansatz von Roth ist zwar ausgeklügelt, beschränkt jedoch die Möglichkeiten, die der serverseitig laufenden Anwendung gegeben wird. Auf der anderen Seite ist jedoch die Sicherheitsproblematik entschärft, da nicht mehr jede Anwendung weiss, wer sich wo befindet (obwohl sich dies leicht mit generierten Javascript und AJAX Aufrufen umgehen liesse).

Übermittlung der aktuellen Position mit dem Loki Browser Plugin

Dieser Ansatz basiert auf einem Browser Plugin, welches ähnlich wie bei der PinPoint Architektur die Anfragen abfängt. Davon existiert bereits eine Version für mobile Geräte.

Loki basiert auf der Ortung mittels WiFi (nicht GPS) und integriert sich mit verschiedenen Diensten wie z.B. Facebook oder Flickr, wie nachfolgendes Beispiel zeigt:

Fazit

Schlussendlich lässt sich sagen, dass der Ansatz von Roth mit der PinPoint Architektur am ausgeklügelsten ist und mit einer einzigen Zusatzinstallation auf dem Client bereits eine Fülle von weiteren serverseitigen Anwendungen ermöglicht. Jedoch ist der IETF Vorschlag von Daviel und Kaegi insofern am Interessantesten, weil er dem Entwickler einer Serveranwendung die volle Kontrolle ermöglicht und von einem Standardisierungsgremium vorgeschlagen wird. Leider ist es wohl noch ein weiter Weg, bis dieser Vorschlag Einzug findet in die alltäglichen Browser; ausserdem ist die Problematik der Sicherheit noch ungeklärt.

Literatur

  • Daviel, A., & Kaegi, F.A. (2007). Geographic Registration of HTML Documents. Internet Engineering Task Force (IETF), http://tools.ietf.org/html/draft-daviel-html-geo-tag-08.
  • Daviel, A., Kaegi, F.A., & Kofahl, M. (2007). Geographic Extension for HTTP Transactions. Internet Engineering Task Force (IETF), http://tools.ietf.org/html/draft-daviel-http-geo-header-05.
  • Roth, J. (2002). Context-aware Web Applications Using the PinPoint Infrastructure, IADIS International Conference on WWW/Internet (pp. 3-10). Lissabon, Portugal: IADIS Press.
  • Roth, J. (2003). Flexible Positioning for Location-Based Services. IADIS International Journal of WWW/Internet, 1(2), 18-32.
  • Roth, J. (2004). Novel Architectures for Location-based Services, Annual Meeting for Information Technology & Computer Science (pp. 5-8). Stuttgart, Germany.
  • Roth, J. (2005). In The Role of Semantic Locations for Mobile Information Access (Vol. 2, pp. 538-542). Paper presented at the Proceedings of the 35th Annual GI Conference – Mobiles Informationsmanagement und seine Anwendungen, Bonn, Germany.
0 Kommentare | Trackback Url

Kommentare
Ihr Kommentar zum Blog-Eintrag





Feedburner
aseantic RSS Feed
Feedburner RSS Feed
Add to Favorites
Add to Delicious
aseantic @ Facebook
Add to Technorati Favorites
Bookmark and Share
Creative Commons