Das Desktop-Internet
Noch existieren auf dem Rechner installierte Programme und Online-Dienste in weitgehend getrennten Sphären: Sie unterscheiden sich in Bedienbarkeit, Fähigkeiten und Programmiertechniken. Adobe, Microsoft, Google, Sun und andere arbeiten daran, diese Grenze aufzuweichen. Sie bahnen einer neuen Generation von Software den Weg und eröffnen Anwendern wie Programmierern ganz neue Möglichkeiten.
- Herbert Braun
Bisher verbinden nur ein paar schmale Stege das Internet und den lokalen Rechner. Der wichtigste davon ist der Browser, der schon jetzt ein Allzweckwerkzeug ist: Texte schreiben, E-Mails versenden, Newsfeeds lesen, Fotosammlungen verwalten, Musik hören und einiges mehr gehört auf vielen Rechnern zu den Aufgaben von Internet Explorer, Firefox und Co. Dazu kitzeln die Diensteanbieter mit Ajax und Flash das Äußerste aus den Webtechniken heraus.
Mit dieser leichten Ausrüstung wildern die Webentwickler immer erfolgreicher im Revier der Desktop-Anwendungen. Denn die Webdienste sind immer aktuell und von jedem ans Internet angeschlossenen Rechner aus verfügbar, man muss sie nicht erst mühsam installieren. Auch die Daten sind von überall zugänglich - ein entscheidendes Argument, wenn man abwechselnd zum Beispiel den Bürorechner, den privaten Laptop und auf Reisen das Internetcafé benutzt oder mit mehreren Leuten denselben Datenbestand bearbeitet. Für Kompatibilität mit allen aktuellen Browsern zu sorgen, fällt zwar vielen Webentwicklern offenbar schwer - aber es ist immer noch viel leichter, als Software für verschiedene Betriebssysteme zu programmieren.
Der Nebeneffekt, dass Internetdienste nicht nur Daten und Menschen, sondern auch Menschen untereinander in Kontakt bringen können, hat dem Phänomen Web 2.0 erst zum Durchbruch verholfen. Und schließlich geben sich viele Webdienste gegenüber Entwicklern besonders offen, indem sie ihre Schnittstellen für die Programmierung eigener Anwendungen, sogenannter Mashups, freilegen.
Dennoch gibt es Bereiche, in denen Webanwendungen nicht mit klassischer Software konkurrieren können. Trotz aller Fortschritte in der Benutzerfreundlichkeit kann der Online-Nutzer weder per Drag und Drop Daten von einer Anwendung in die andere schieben noch wie im Explorer ein Rechteck um eine Auswahl ziehen. Eine installierte Applikation kann die Hardware inklusive 3D-Beschleunigung nutzen, während die Webanwendung im Browser nur begrenzte Ressourcen hat. Die Leistungsfähigkeit des Servers steht außerhalb der Kontrolle des Benutzers - greifen zu viele gleichzeitig darauf zu, läuft unter Umständen nicht mehr viel. Eine Desktop-Anwendung dagegen bleibt immer verfügbar, auch im Zug oder wenn vor dem Haus gerade der Bagger das Telefonkabel durchgerissen hat - und selbst dann noch, wenn der Anbieter in Konkurs gegangen ist.
Je privater und wichtiger Daten sind, desto eher möchte man sie auch auf dem eigenen Rechner haben, statt sie einem anonymen Dienstleister anzuvertrauen. Webanwendungen können auf verschiedene Arten Daten speichern, von denen das althergebrachte HTTP-Cookie nur eine ist [1] - aber sie konnten bis vor kurzem weder lesend noch schreibend aufs lokale Dateisystem zugreifen.
Die Techniken, die dieser und die folgenden Artikel vorstellen, ermöglichen angepasste Web-Clients für bestimmte Dienste, die sich komfortabel installieren lassen, in Optik und Bedienung reinen Webanwendungen überlegen sind und auf lokale Dateien zugreifen können. Bei fehlender Internetverbindung können die in Adobe AIR oder Google Gears geschriebenen Programme Daten zwischenspeichern, um sie bei nächster Gelegenheit mit dem Server zu synchronisieren.
Völkerverständigung
Vielleicht noch wichtiger als dieses Mehr an Funktionen und Bedienkomfort ist der Vorteil, den das Zusammenwachsen von Online- und Offline-Welt den Anbietern bringt: Diese können nämlich ihre Anwendungen von einer einheitlichen Code-Grundlage mit geringem Aufwand auf verschiedene Plattformen portieren - die Programmversionen für Windows, Linux und Mac OS unterscheiden sich dann nur noch in ein paar Details vom Online-Dienst.
Anwendungen, die das Beste aus beiden Welten zusammenbringen, gibt es bereits. Google Earth saugt sich Daten aus dem Internet, benötigt aber für deren Verarbeitung vollen Hardware-Zugriff. Die Web-Office-Suite www.ThinkFree.com bietet neuerdings eine Desktop-Anwendung, die den Zugriff auf lokale Dateien ermöglicht, ohne die kollaborativen Fähigkeiten einer Webanwendung aufzugeben. Zu jedem besseren Webdienst gibt es ein API, mit dem ein fähiger Programmierer seinen eigenen Client stricken kann. Doch die hier vorgestellten Werkzeuge machen das Zusammenführen der Sphären viel leichter.
Die Lücken zwischen Online- und Offline-Welt schließen sich von allen Seiten zugleich. Die Webtechniken von Adobe und Microsofts Programmierwerkzeugen greifen in die jeweils andere Domäne über. Google entwickelt neue Werkzeuge für Webentwickler und bietet ebenso wie seine Konkurrenten angepasste Clients für Mobilgeräte. Und schließlich will auch die Java-Gemeinde wieder auf dem Gebiet mitmischen, für das diese Programmiersprache prädestiniert ist - denn das plattformunabhängige Java ist auf Desktops und Servern ebenso zu Hause wie als Webanwendung im Browser.
Spielkram?
Viele haben die ersten Vorboten dieser Bewegung nicht ernst genommen, denn diese brachten eher zweifelhaften Nutzen, aber viel bunte Grafik auf den Desktop. Die Rede ist von den Widgets, die inzwischen fast jeder Hersteller anbietet: Yahoo Konfabulator, Apple Dashboard, Google Gadgets, die in Vista enthaltenen Microsoft Gadgets, die des Opera-Browsers und viele andere Widget-Engines stillen gründlich das Bedürfnis der Anwender nach Analoguhren, Merkzetteln und aktuellen Börsenkursen.
Während Puristen über diesen Spielkram die Nase rümpften, ergriffen zahllose Webentwickler die Chance, erstmals lokale Anwendungen zu schreiben - denn alle diese Widget-Engines fußen auf den Webstandards XHTML, CSS und JavaScript.
Natürlich fühlen sich Widgets auch in ihrem ursprünglichen Biotop wohl und verzieren Websites, was sich unter anderem auf Windows Live (www.live.com), www.Netvibes.com oder www.Pageflakes.com bewundern lässt. Einige Sites wie www.YouOS.com enthalten anspruchsvolle Widgets wie Texteditoren oder Kommandozeilen-Interpretern und imitieren sogar die Oberfläche eines Betriebssystems [2]. Inzwischen arbeitet das W3C an einem Webstandard für Widgets [3].
Als Adobe seine „Adobe Integrated Runtime“ (AIR) [4] vorstellte, hielten das anfangs viele für eine weitere Widget-Engine. Den Unterschied in der Leistungsfähigkeit veranschaulicht zum Beispiel www.yourminis.de, das eine komplette Widget-Engine als AIR-Anwendung anbietet. Die Möglichkeit, Flash als die vielleicht mächtigste Webtechnik auf den Desktop zu bringen, könnte die Software-Landschaft nachhaltig verändern.
Frischluft von Adobe
Das Webdesigner-Werkzeug Flash, dem man anfangs kaum mehr als nervige Intro-Animationen zutraute, musste dazu einen langen Weg zurücklegen. Die wenigsten gestandenen Programmierer können sich dafür erwärmen, in der Flash-Autorenumgebung Movie-Clips auf einer Zeitleiste herumzuschieben. Erst OpenLaszlo und Adobe Flex mit ihren Werkzeugen auf Eclipse-Basis für XML-basierende und objektorientierte Entwicklung in MXML beziehungsweise ActionScript 3 weckten das Interesse dieser Zielgruppe am Small Web Format. Heute sprechen Flash-Entwickler lieber von Anwendungen als von Flash-Filmen.
AIR ist nicht der erste Versuch, die weit verbreiteten, schnellen und kleinen Vektor-Animationen auf den Desktop zu bringen. So packt die Anwendung Zinc eine SWF-Datei zusammen mit dem Flash-Player in eine ausfĂĽhrbare Datei - ein simpler Mechanismus, den der Hersteller MDM um Zusatzfunktionen wie Zugriff auf den CD-Brenner anreichert.
Vorläufer für Adobe AIR wurde jedoch Macromedia Central, eine kleine Laufzeitumgebung für Flash-Anwendungen auf dem lokalen Rechner, die freilich eher in einer Liga mit Konfabulator als mit der Java-Laufzeitumgebung zu spielen schien. Nach der Übernahme durch Adobe 2005 begannen die Arbeiten an Adobe Apollo, das später ebenso wie die zugehörigen Programmdateien AIR heißen sollte - rückwärts RIA, das von Macromedia geprägte Kürzel für „Rich Internet Applications“.
Die AIR-Laufzeitumgebung, die ab dem vierten Quartal 2007 in einer finalen Version vorliegen soll, umfasst den Flash Player 9 sowie eine HTML-Rendering-Engine. Adobe wählte WebKit, die Open-Source-Grundlage von Apples Webbrowser Safari, die nach Einschätzung von Adobe-Evangelist Mike Downey kleiner und sauberer programmiert ist als der Mozilla-Motor Gecko. AIR läuft derzeit unter Windows und Mac OS, die Linux-Variante verzögert sich voraussichtlich bis Anfang 2008.
Trotz aller Gemeinsamkeiten ist AIR kein Browser: Es ist nicht für das Auffinden und Anzeigen von Dokumenten gemacht, sondern hält sich als Anwendungsumgebung unsichtbar im Hintergrund. Adobe beteuert denn auch, dass es nicht darum geht, den Browser zu verdrängen - schließlich möchten die Nutzer auch nicht für jede kleine Webanwendung ein eigenes Programm-Icon, so Downey. In aller Bescheidenheit wolle Adobe nur die wenigen Anwendungen ersetzen, die man sich auch jetzt lokal installiert.
Von RIA zu AIR
Zum Beispiel eine Textverarbeitung. Buzzword, ein Projekt ehemaliger Lotus-Notes-Entwickler, sollte ursprünglich eine Webanwendung auf Flex-Grundlage werden, die Konkurrenten wie Google Docs alt aussehen lassen würde. Die Entwickler benötigten angeblich nur zwei Tage, um das Projekt auf AIR zu portieren und die Funktionen für den lokalen Dateizugriff zu implementieren. Leider gibt es bisher davon ebenso wenig eine öffentliche Beta wie von dem eBay-Client, den effectiveui.com entwickelt und der den Online-Flohmarkt für Käufer wie Verkäufer deutlich bequemer machen soll. Die meisten bisher publizierten Anwendungen tragen eher Demo-Charakter und lassen das Potenzial von AIR nur erahnen.
Jede AIR-Anwendung läuft in einem eigenen Thread. Das Einrichten einer Anwendung erfordert zwingend mehrere Bestätigungsklicks, was das Unterschieben bösartigen Codes ausschließen soll. Die Installationsdialoge zeigen auch an, ob das Programm signiert und damit besonders vertrauenswürdig ist.
Flash ist kein notwendiger Bestandteil von AIR-Anwendungen - auch HTML-Seiten und PDF-Dokumente verwandelt das AIR-SDK in Desktop-Anwendungen. Die Ausgabe durchläuft aber die Flash-Engine, sodass sich beispielsweise aus dem Web geholte Seiten mit Flash manipulieren lassen. Kurioserweise haben die Vorabversionen der Runtime noch Probleme mit Flash-Anwendungen, die in Webseiten eingebunden sind.
Entwickler können überwachen, ob der Benutzer online ist oder nicht, und die Programmfunktionen entsprechend anpassen. Eine SQLite-Datenbank-Engine gehört ebenfalls zum Paket. Um aus einer Anwendung ein AIR-Programm zu machen, beschreibt man sie in einer XML-Datei und veröffentlicht sie mit dem SDK-Tool ADT; bei der Fehlersuche hilft das Testwerkzeug ADL.
Als plattformübergreifende Laufzeitumgebung unterliegt AIR einigen Beschränkungen. So lassen sich betriebssystemspezifische Funktionen und Hardware-Grafikbeschleunigung bislang nicht nutzen. Auch Schnittstellen zu nativem Code, etwa zu C++-Bibliotheken, fehlen - sie würden dem Cross-Platform-Gedanken zuwiderlaufen.
Auf Kompatibilität legt Adobe viel Wert; der Software-Riese hat aus den Problemen gelernt, mit denen Java-Entwickler angesichts mehrerer inkompatibler Laufzeitumgebungen zu kämpfen haben. Dabei spielt Adobe wie schon bei Flash und PDF sein Monopol aus. An dramatische Weiterentwicklungen bei den offenen Webstandards und den Browsern glaubt Adobe-Mann Downey nicht: AIR sei die nächste Generation von webbasierender Software.
Den vollständigen Artikel finden Sie in c't 16/2007.
Literatur
[1] Herbert Braun, Jo Bager, Heimliche Akten, Gefahren und Chancen der Cookie-Alternativen, c't 6/07, S. 224
[2] Jo Bager, Startbahnen, Schneller zum Ziel mit individualisierbaren Startseiten, c't 18/06, S. 184
[4] Adobe AIR
| "Das Web als PC" | |
| Artikel zum Thema "Das Web als PC" finden Sie in der c't 16/2007: | |
| Webanwendungen verschmelzen mit lokaler Software | S. 90 |
| Offline-fähige Webanwendungen mit Google Gears | S. 96 |
| Microsoft Expression Studio | S. 100 |
| Windows Presentation Foundation fĂĽr den Desktop und das Web | S. 104 |
(heb)