(Google) Gears
Die Emazipation der webbasierten Anwendungen
von Tim Bautz
Webbasierte Anwendungen sind auf dem Vormarsch. Kein Wunder, immerhin können mittlerweile bereits 95 % der Funktionen von Desktopan-wendungen mit Webapplikationen nachgebildet werden. Dennoch haben serverbasierte Anwendungen immer noch einen entscheidenden Nachteil: Sie funktionieren nur, solange eine Netzwerkverbindung zum Server besteht. Ein Nachteil, der in Zeiten des mobilen Überall-Internets auf den ersten Blick vernachlässigbar erscheint. Es gibt jedoch Situationen, in denen eine offline verfügbare Anwendung sinnvoll erscheint: etwa im Flugzeug, in Gegenden ohne Mobilfunk- oder Wifi-Abdeckung oder für Anwendungen, die große, aber sich nicht oft ändernde Datenmengen vorhalten bzw. laden müssen.
Die letzte Meile
Je mehr Anwendungen mithilfe von Ajax Desktopanwendungen nachbilden, desto mehr rückt das Bedürfnis nach deren Offline-Fähigkeit in den Vordergrund.In diese Lücke stößt Google mit Gears – einer Entwicklung, die übrigens von einem Google-Mitarbeiter initiiert wurde, der seine Newsfeeds morgens auf dem Weg zur Arbeit lesen wollte. Gears macht dies heute möglich. Doch es bietet inzwischen noch weit mehr als die Überbrückung der offenen „letzten Meile”, die Offlineverfügbarmachung von Webapplikationen.
Technischer Überblick
Gears ist ein für verschiedene Plattformen verfügbares Plug-in, außer für Firefox auf verschiedenen Betriebssystemen auch für mobile Endgeräte. Derzeit besteht Gears aus folgenden Hauptkomponenten:
- Desktop-API
- Worker Pool
- Geolocation-API
- Database
- Local Server
Die Desktop-API ermöglicht es Gears-Anwendungen, Icons auf dem Desktop des Benutzers zu erstellen. Daneben kann vereinfacht auf Dateien zugegriffen werden: So können gleichzeitig mehrere Dateien ausgewählt werden. Ein nützliches Feature etwa für all jene, die schon einmal versucht haben, mehrere Dateien simultan in einer Webanwendung hochzuladen. Der Worker Pool bietet die Möglichkeit, Teile der Anwendungslogik im Hintergrund ausführen zu lassen. Normalerweise sind heutige Browser so schnell, dass Berechnungen seitens der Anwendung vom Benutzer nicht bemerkt werden. Es kommt jedoch vor, dass eine auf-wendige Rechenoperation durchgeführt werden oder ein Teil der Anwendung beispielsweise auf die Rückmeldung eines Webservers warten muss. An diesem Punkt „friert“ der Browser häufig ein. Der Worker Pool ermöglicht es nun, Teile der Anwendung im Hintergrund ablaufen zu lassen – ein „Einfrieren“ des Browsers wird so vermieden.
Die Geolocation-API versucht, die Position des Benutzers in einem Best-Effort-Ansatz zu bestimmen. Dazu werden sowohl GPS-Koordinaten (falls unterstützt, z. B. bei mobilen Endgeräten mit GPS-Empfänger) als auch Wifi-Daten oder IP-Einwahlknoten zur Eingrenzung des Benutzerstandorts herangezogen.
Beim Database-Modul von Gears handelt es sich um eine vollwertige SQLite- Datenbank, die von der Anwendung benutzt werden kann. Neben den üblichen Features von SQLite steht auch eine Volltext-Suchengine zur Verfügung.
Das Local-Server-Modul schließlich er-möglicht dem Endanwender einen „nahtlosen Übergang“ zwischen Online- und Offline-Modus der Anwendung.
Dazu bedient sich das Modul lokal um-gelenkter Netzwerkanfragen.
Sicherheitsaspekte
Möchte eine Anwendung Gears verwenden, muss der Benutzer zunächst um Erlaubnis gefragt werden. Dies ist notwendig, da die Features von Gears das Sandbox-Dogma des Browsers an einigen Stellen aufweichen (Zugriff auf Dateien, Zugriff auf Position des Benutzers) und somit ein potenzielles Sicherheitsrisiko darstellen. Gears ist daher so gestaltet, dass die Zustimmung des Benutzers vor der Verwendung des Plug-ins explizit eingeholt werden muss. Des Weiteren unterstützt Gears selbstverständlich die Same Origin Policy des Browsers. Bei der Same Origin Policy handelt es sich um eine prinzipielle Restriktion für alle Skripte, die im Kontext des Browsers ausgeführt werden: Jedes browserseitige (Java)Script darf ausschließlich den Server kontaktieren, von dem aus es ursprünglich in den Browser geladen wurde.
Wozu diese Restriktion? Man stelle sich eine Anwendung mit vertraulichen Daten vor, die Daten vom Benutzer unbemerkt auf einen fremden (dritten) Server kopieren könnte. Die mittlerweile leider sehr prominenten Cross-Site-Scripting(XSS)- Angriffe gehören übrigens genau zu dieser Thematik.
Roadmap
Für die Zukunft sind weitere Features von Gears geplant. Diese Features werden einen weiteren großen Schritt in der Evolution und Emanzipation von Webanwendungen darstellen.
Audio- und Video-API
Diese API gestattet das Encodieren von Audio- und Video-Dateien direkt auf dem Rechner des Anwenders. Auf diese Weise können Dateien vorab lokal erzeugt und begutachtet werden. Angesichts der gi-gantischen Anzahl von Mediendateien, die heutzutage in vielen Websites eingebettet sind, eine überaus sinnvolle Anwendung. Das derzeitige Anwendungsmodell für solche Seiten sieht wie folgt aus: Der Benutzer lädt Dateien hoch, die dann auf dem Server nachbearbeitet werden. Erst danach werden sie in die Seite eingebettet. Diese Vorgänge beanspruchen Bandbreite und Rechenleistung auf dem Server. Mithilfe dieser neuen API wird die gesamte Rechenleistung auf den Client verlagert, nur das Endergebnis wird auf den Server geladen.
Die Win-win-Situation ist offensichtlich:
- Der Benutzer gewinnt Zeit, da er nur eine kleinere Datei auf den Server laden muss.
- Der Seitenbetreiber spart Speicherplatz und Rechenleistung.
- Beide benötigen weniger Bandbreite zur Übertragung.
Imaging-API
Die Imaging-API ermöglicht es, Bilder offline zu bearbeiten:
- alle Grundoperationen, wie Vergrößern, Skalieren, Rotieren oder Abschneiden
- Farboperationen wie Affine Transformation, Farbtransformierungen, Konvolutionsmatrizen, Lookup Tables
- Speichern von Bildern entweder lokal oder auf eine entfernte URL
- Unterstützung der Formate BMP, PNG und JPEG
- Annotationen
- On-Screen Rendering
- Fotobearbeitungsalgorithmen (Rote-Augen-Entfernung, Freistellungstools)
- Unterstützung verschiedener Farbtiefen
Die Vorteile der Imaging-API kommen bei allen Anwendungen voll zum Zuge, die mit Fotobearbeitung zu tun haben.
Notification-API
Ein großes Manko aller browserbasierten Anwendungen: Sie laufen im Browser! Dies bedeutet, dass eine Anwendung sich nicht über „die Grenzen“ des Browsers hinaus bemerkbar machen kann. Minimiert der Benutzer das Browserfenster, hat eine Webanwendung keinerlei Chance, den Benutzer über interessante Ereignisse zu informieren, denn: Die Pop-up-Fenster einer Webanwendung werden immer innerhalb des Browserfensters dargestellt und wurden somit automatisch mitminimiert.
Die Gears-Notification-API wird daher ein Desktop-Benachrichtigungssystem für Webanwendungen zur Verfügung stellen.
Wird der Benutzer als nicht verfügbar betrachtet, werden eingehende Benach-richtigungen jedoch nicht dargestellt – etwa wenn der Bildschirm gesperrt wird oder eine Präsentation oder ein Video im Vollbildmodus dargestellt wird. Die Benachrichtigungen werden im Look and Feel in der für das jeweilige Betriebs-system gewohnten Weise dargestellt.
Unter Windows sehen die Benach-richtigungsfenster beispielsweise so aus
wie die Benachrichtigungen bei ein-gehenden E-Mails in Thunderbird.
Über diese APIs hinaus sind noch viele weitere interessante Features und Komponenten für Gears geplant. Eine vollständige Liste inklusive Diskussion
findet sich unter: http://code.google.com/p/gears/w/list?redir=1.
Zusammenfassung und Ausblick
In Kombination mit AJAX stellt Gears die Weichen für die Zukunft der server-
basierten Applikationen. Viele traditionelle Nachteile von Webanwendungen werden sukzessive beseitigt.
Auf diese Weise werden immer bessere, schnellere und optisch ansprechendere Applikationen möglich, ohne jedoch auf ein bestimmtes Betriebssystem auf der Benutzerseite festgelegt zu sein. Damit stellt Gears den „Missing Link“ – das fehlende letzte Bindeglied – dar und überbrückt die letzte Meile auf dem Weg zu besseren serverbasierten Applikationen.
Übrigens: Dieser Artikel wurde mithilfe von Google Gears geschrieben – genauer gesagt mit Google Docs, das neben der GWT-Technologie auch Gears „unter der Haube“ hat.
Gears zur Ansicht
Google Reader
(http://www.google.com/reader):
Der Newsfeedreader von Google, mithilfe von Gears können die 2.000
aktuellsten News offline gelesen werden.
Remember the Milk
(http://www.rememberthemilk.com/):
populäres Zeitmanagement-Tool
PassPack
(http://passpack.com/info/home/):
Online-Password-Manager zur effizienten Verwaltung von Zugangsdaten
MindMeister
(http://www.mind-meister.com/):
Online-Mindmapping-Tool mit großem Leistungsumfang
Buxfer
(http://www.buxfer.com/):
kostenloses Finanzmanagement-Tool für die private und geschäftliche Budgetplanung
Google Docs
(http://docs.google.com/):
professionelle Online-Office-Suite
Picasa Web Albums Mobile
(http://picasaweb.google.com/m):
mobiles Fotoalbum mit Offline-Unterstützung für Windows Mobile 6
MySpace
(http://www.myspace.com/):
Suche in Nachrichten, die Benutzer von anderen Benutzern erhalten haben
