Schneller, interaktiver, besser gegen Spamangriffe: Mit Wave will Google einen Nachfolger für die E-Mail entwickeln, der keineswegs auf Google beschränkt sein soll.

Source : http://www.zeit.de/digital/internet/2009-12/google-wave-email

© ZEIT ONLINE

Google Wave sieht deutlich bunter aus als das herkömmliche Mailprogramm Google MailGoogle Wave sieht deutlich bunter aus als das herkömmliche Mailprogramm Google Mail

Ist es die Revolution der Kommunikation oder ein Rohrkrepierer? Mit Wave will Google einen Nachfolger für die E-Mail entwickeln. Nicht nur für Google allein, auch anderen Anbietern soll das Programm zur Verfügung stehen. Golem.de hat sich angeschaut, wie das funktionieren soll und was heute schon geht.

Entwickelt wird Google Wave von einem kleinen Entwicklerteam im australischen Sydney, geleitet von den Dänen Jens und Lars Rasmussen. Die beiden Brüder hatten einst das Unternehmen Where 2 Technologies gegründet, dessen Technik nach der Übernahme durch Google zur Basis von Google Maps wurde.

Was ist Google Wave?

Google Wave ist aus drei sehr unterschiedlichen Blickwinkeln zu betrachten: Zunächst einmal ist es ein Google-Produkt zur Kommunikation in Echtzeit. Zugleich aber ist Wave ein offenes Protokoll, das diese Kommunikation auch ohne die Verwendung von Googles Servern ermöglicht. Und letztendlich ist Wave eine Plattform, auf der Dritte eigene Applikationen aufsetzen können.

Google positioniert Wave als “E-Mail der Zukunft”, denn das System lässt sich ähnlich wie E-Mail nutzen. Texte können mit Anhängen versehen und an einen oder mehrere Nutzer geschickt werden. Der wesentliche Unterschied zur E-Mail: Alles passiert in Echtzeit. So ist Wave nicht nur schneller als E-Mail, sondern auch schneller als Instant Messaging, denn alle Mitglieder einer Wave können den anderen bereits beim Tippen zusehen. Wird der Inhalt einer Wave geändert oder diese kommentiert, wird dies in einer Art Posteingang angezeigt.

Das Wort Wave bezeichnet dabei eine komplette Diskussion mit allen Antworten und Kommentaren. Teile einer Diskussion nennt Google Wavelets, die wiederum aus Dokumenten zusammengesetzt sind. Dies können Textdokumente sein, auch Blips genannt, oder Binärdateien.

Der Wave-Editor ist als sogenannter “Shared Editor” umgesetzt. Alle Beteiligten können nicht nur sehen, was die anderen gerade eingeben, sondern sie können ihrerseits Änderungen vornehmen, noch bevor die Kommunikationspartner ihren Text abgeschickt haben.

Wave geht über die Kommunikation zwischen wenigen aber noch hinaus. Denn es erlaubt es, mit Public Waves eine Art Website oder Blog zu führen, allein oder mit anderen. Um eine Wave öffentlich zu machen, muss ihr lediglich der Nutzer “Public” hinzugefügt werden. In Zukunft soll es möglich sein, einzelnen öffentlichen Waves gezielt zu folgen.

Ein Rechtesystem gibt es in Wave derzeit nicht. Das bedeutet, dass alle Mitglieder eines Wavelet alles daran verändern können, es sei denn, ein Wavelet wurde nur zum Lesen oder nur zum Kommentieren freigegeben. Das soll sich aber in Zukunft ändern, Google plant hier ein entsprechendes Rechtesystem.

Auch soll es künftig möglich sein, Gruppen in Google Wave einzurichten. So wie heute der Nutzer Public einer Wave hinzugefügt werden kann, soll künftig auch Gruppen von Nutzern der Zugriff auf ein Wavelet eingeräumt werden können.

Wave ist als offenes System gestaltet, das Entwicklern die Möglichkeit bietet, mit Hilfe von APIs Erweiterungen zu entwickeln. Derzeit sind drei Arten von Erweiterungen vorgesehen: Gadgets sind Applikationen, an denen Nutzer teilnehmen oder die Nutzer verwenden können. Sie ähneln Facebook-Applikationen oder iGoogle-Gadgets, wobei sich Letztere gut als Basis für Wave-Gadgets eignen. Größter Unterschied: Wave-Gadgets können leicht mehrere Nutzer verbinden, womit sich beispielsweise Multiplayerspiele auf Basis von Wave realisieren lassen.

Die zweite Art von Wave-Erweiterungen sind Robots. Diese Programme nehmen wie Nutzer an Wave teil und können so auf eingehende Informationen reagieren. Darüber lassen sich andere Dienste an Wave andocken, beispielsweise ein Import und Export von und nach Twitter. Robots können aber auch andere Aktionen ausführen, wenn sie entsprechende Daten erhalten. Naheliegend wäre hier ein Übersetzungsdienst oder die Anzeige von Aktienkursen als Reaktion auf einen Firmennamen.

Das dritte wesentliche Wave-API erweitert Wave nach außen und erlaubt es, Waves in bestehende Webseiten einzubetten. Aktuell bekommen zwar nur bei Wave angemeldete Nutzer die Inhalte einer eingebetteten Wave zu sehen, aber auch das will Google ändern. So soll auch eine anonyme Nutzung über Wave möglich werden.

Google will mit Wave eine moderne Kommunikationstechnik schaffen, die aktuelle Ideen aufgreift und diese frei von Altlasten neu kombiniert. Die heute übliche Trennung zwischen E-Mail, Instant Messaging und anderen Kommunikationsformen wird aufgehoben, alles landet in Echtzeit in einem zentralen Posteingang. Der Nutzer entscheidet, wie er mit den Informationen umgeht und ob er den Dienst eher als E-Mail oder zur Echtzeitkommunikation wie Instant Messaging, zum gemeinsamen Bearbeiten von Dokumenten, als RSS-Reader oder Twitter- beziehungsweise Blogalternative nutzt.

Das Wave-Team bei Google hat seine interne Kommunikation komplett von E-Mail auf Wave umgestellt. Das Team rücke dadurch enger zusammen, auch wenn nicht alle Mitglieder am gleichen Ort sind, erläutert die für Wave zuständige Produktmanagerin Stephanie Hannon. Vor allem für gemeinsame Notizen bei Meetings habe sich Wave bewährt. Da jeder notiert, was ihm wichtig ist, dies aber alle in einer gemeinsamen Wave tun, ist das Protokoll am Ende der Sitzung bereits fertig.

Ein ähnliches Anwendungsszenario drängt sich für Vorträge und Konferenzen auf. Sie könnten so live kommentiert werden, ähnlich wie das heute per Twitter geschieht. Bei Wave aber könnte das in einem gemeinsam erstellten Dokument mit Kommentaren mehrerer Zuhörer enden.

Auch das typischen Hin- und Herschicken von Office-Dokumenten soll Wave überflüssig machen. Da alle Beteiligten in einer Wave arbeiten können, entsteht ein Dokument, an dem jeder seine Änderungen vornimmt. Sie sind für alle anderen nachvollziehbar, denn Wave zeichnet nicht nur alle Änderungen auf und ordnet sie Nutzern zu, sondern erlaubt es auch, die Entstehung einer Wave im Nachhinein wiederzugeben.

Darüber hinaus soll Wave einige Probleme beseitigen, unter denen alte Kommunikationstechnologien wie E-Mail leiden. Dazu zählen beispielsweise gefälschte Absenderadressen, wie sie für Spam und Malware genutzt werden. Bei Wave soll es nicht mehr möglich sein, sich mit einer gefälschten Absenderadresse zu tarnen.

Wave ist aber zugleich eine Plattform zur Zusammenarbeit, auf der Webapplikationen realisiert werden können, die mehrere Nutzer gleichzeitig verwenden. Das kann ein Spiel sein, aber auch ein Editor, um Geschäftsprozesse gemeinsam zu modellieren, wie ihn beispielsweise SAP bereits auf Basis von Wave geschaffen hat.

Aktuell betreibt Google zwei Wave-Provider: Preview und Sandbox. Sandbox ist zum Testen gedacht und steht Entwicklern zur Verfügung. Auf der Wave-Preview sind hingegen echte Nutzer zugegen. Accounts vergibt Google per Einladung, wobei Wave-Nutzer ihrerseits Einladungen aussprechen können. Denn Wave ist ein Kommunikationswerkzeug, das für einen Nutzer nur dann sinnvoll ist, wenn er darüber andere Kommunikationspartner erreichen kann.

Dabei steht Google Wave noch ganz am Anfang. Immer wieder ist das System für Wartungsarbeiten abgeschaltet, manches funktioniert nicht und Google experimentiert mit unterschiedlichen Kommunikationsformen. Federation, die Kommunikation mit anderen Wave-Providern, ist derzeit nur in der Sandbox-Variante verfügbar. Einen Federation-Port für die Preview-Version will Google nach aktueller Planung in der ersten Jahreshälfte 2010 öffnen.

Auch das Wave-Protokoll ist noch nicht fertig. Es liegt nur als Entwurf vor, dem einige geplante Funktionen noch fehlen. Google setzt hier auf Kooperation, denn einen E-Mail-Nachfolger kann Google nicht allein etablieren, das ist dem Unternehmen bewusst.

Auf den ersten Blick wirkt Wave derzeit recht kompliziert, das gibt auch Stephanie Hannon im Gespräch mit Golem.de zu. Es gebe eine gewisse Lernkurve, so die Produktmanagerin. Dabei solle man nicht vergessen, dass Wave eben noch kein fertiges Produkt sei und sich vieles noch ändern kann und wird. Die offene Architektur von Wave solle es zudem erlauben, dass auch alternative Interfaces für Wave entstehen, die ihren Fokus auf andere Aspekte legen als die aktuelle Entwicklervorschau von Google Wave.

Wave speichert Änderungen an einem Dokument in Form einer geordneten Sequenz von Dokumentenänderungen, beispielsweise “Füge Zeichen A an der X. Stelle ein”. Wird diese Sequenz auf ein Startdokument angewandt, resultiert am Ende ein verändertes Dokument, was auch bei mehreren Nutzern gleichzeitig funktioniert, vorausgesetzt, das Startdokument ist bei allen identisch und es werden keine weiteren Änderungen vorgenommen.

Doch genau das soll Wave erlauben: das gleichzeitige Editieren eines Dokuments durch mehrere Nutzer. Der Schlüssel dazu heißt Operational Transforms (OT), ein Konzept, das rund 20 Jahre alt ist, von Google für Wave aber modifiziert wurde.

Operational Transforms

Wenn zwei Menschen parallel an einem Dokument arbeiten, stellen die Operational Transforms sicher, dass Änderungen bei beiden korrekt ankommen. Änderungen bei einem Nutzer werden dabei auf den aktuellen Stand des Dokuments bei einem anderen Nutzer angepasst. Fügt ein Nutzer ein Zeichen an der fünften Stelle ein, ein anderer hat aber das erste Zeichen gelöscht, so wird das entsprechende Zeichen bei diesem Nutzer an der vierten Stelle eingefügt. Die Operation wird also umgewandelt beziehungsweise transformiert.

Was bei zwei Nutzern noch recht einfach ist, wird bei vielen Nutzern nicht nur kompliziert, sondern auch zunehmend rechen- und speicherintensiv. Google begegnet diesem Problem, indem alle Veränderungen über einen Server laufen, der gewissermaßen den Takt vorgibt. Die Clients müssen auf eine Bestätigung des Servers warten, bevor sie weitere Änderungen schicken können. Der Server nimmt die Änderung entgegen, wendet diese auf das bei ihm vorliegende Dokument an und sendet die dafür notwendige Operational Transforms per Broadcast an alle angeschlossenen Clients.

Diese Abwandlung des ursprünglichen OT-Konzepts sorgt dafür, dass die Clients dem OT-Pfad des Servers folgen können und dieser letztendlich nur die von ihm selbst vorgenommenen Änderungen verwalten muss statt für jeden Client einen Satz an Änderungen.

Damit das Ganze nicht zu langsam wird, speichern die Clients Änderungen zwischen, während sie auf die Bestätigung des Servers warten. Sobald der Server Änderungen annimmt, werden diese im Paket gesendet. Der Nachteil dabei: Die Clients erhalten immer ein ganzes Paket an Änderungen, so dass sich Dokumente sprunghaft verändern können.

Da Wave nicht nur mit Googles Servern funktionieren soll, bedarf es eines Mechanismus, Veränderungen in Echtzeit zwischen unterschiedlichen Servern auszutauschen. Letztendlich soll jeder einen Wave-Provider genannten Server betreiben können – ganz gleich ob Unternehmen oder einzelne Nutzer -, so wie es heute bei E-Mail der Fall ist. Clients greifen immer über ihren Wave-Provider auf alle ihre Waves zu, wobei ein Wave-Provider lokal auf dem eigenen Rechner laufen kann oder verteilt auf mehrere Server bei einem Anbieter wie Google.

Zentraler Bestandteil eines Wave-Providers sind zum einen der Wave-Store, in dem alle Wavelet-Operationen gespeichert werden, zum anderen der Wave-Server, der die Wavelet-Operationen durch operationale Transformationen auflöst sowie Wavelet-Operations aus dem Wave-Store liest beziehungsweise in diesen hineinschreibt.

Wave-Nutzer erhalten eine eindeutige Wave-Adresse in der Form username@domain, wie es auch bei E-Mail heute der Fall ist. Im Fall von Google Wave werden Adressen in der Form username@googlewave.com vergeben.

Die einzelnen Waves erhalten ihrerseits eine eindeutige Wave-ID, die aus dem Domainnamen des Wave-Providers, bei dem die Wave erzeugt wurde, sowie einem ID-String besteht.

Dabei wird zwischen lokalen und Remote-Wavelets unterschieden. Remote-Wavelets werden bei anderen Providern gespeichert, lokal aber eine Kopie im Wave-Store abgelegt. Ändert ein Nutzer eine Remote-Wavelet, so reicht der eigene Wave-Provider diese Änderungen an den zuständigen Wave-Provider weiter.

Um Änderungen über mehrere Provider austauschen zu können, entwickelt Google das Google Wave Federation Protocol, das auch als Wave-Protokoll abgekürzt wird. Dabei handelt es sich um eine offene Erweiterung des XMPP-Protokolls, das einst für den Instant-Messaging-Dienst Jabber entwickelt wurde. Die komplette Kommunikation wird dabei von XMPP auf der Transportebene verschlüsselt.

Die Verschlüsselung bietet zugleich den Vorteil, dass sich sämtliche Endpunkte einer Kommunikation authentifizieren müssen. Das soll im Kampf gegen Spam helfen, da es, anders als beim heutigen E-Mail-System, nicht mehr möglich ist, Nachrichten ohne korrekte Absenderkennung zu übertragen, beziehungsweise kann ein Server nicht behaupten, dass eine Wavelet-Änderung von einem Nutzer eines anderen Wave-Providers stammt.

Abgewickelt wird die Kommunikation zwischen Wave-Providern über sogenannte Federation-Gateways und -Proxys. Das Federation-Gateway sendet die lokalen Wavelet-Operationen an andere Wave-Provider, so dass diese ihre an der Wavelet beteiligten Nutzer über die Änderungen informieren können. Der Federation-Proxy ist das Gegenstück zum Gateway und nimmt Wavelet-Operationen von außen auf, um sie über den jeweiligen Wave-Server den Nutzern des jeweiligen Wave-Providers zur Verfügung zu stellen.

Wave-Nachrichten können auch eingebettete Binäranhänge wie PDF-, ZIP- oder Bilddateien enthalten. Diese werden allerdings gänzlich anders behandelt als textbasierte Wave-Inhalte. Intern werden Anhänge durch eine XML-Datei repräsentiert, was auch Änderungen zulässt, beispielsweise um alle an einer Wave beteiligten Nutzer über den Uploadstatus zu informieren.

Für die Verwaltung der Anhänge ist ein spezieller Attachment-Server zuständig. Er kümmert sich um das Anlegen von Dateien sowie um Upload- und Downloadanfragen, erstellt Vorschaubilder, überprüft die Daten auf Malware und kümmert sich um die Kommunikation mit dem Attachment-Store. Dabei verhält sich der Attachment-Server wie ein HTTP-Server beziehungsweise ein RPC-Server oder Client, je nach Aufgabe. Google hat zudem eine Deduplikation eingebaut, um besonders große Dateien nur einmal speichern zu müssen, auch wenn sie mehrfach verwendet werden.

Googles Wave-Client arbeitet komplett webbasiert, so dass Nutzer Wave derzeit ausschließlich im Browser nutzen können. Das bedeutet aber nicht, dass nicht andere Anbieter auch native Wave-Clients entwickeln können. Als eines der ersten Unternehmen hat Novell mit Pulse ein neues Produkt auf der Basis von Wave angekündigt: Ein System, das ähnlich wie Google Wave E-Mail, das Erstellen von Dokumenten und Blogwerkzeuge miteinander vereint und das Wave-Protokoll unterstützt. Wie Google Wave läuft auch Pulse im Browser.

Google setzt bei seinem Wave-Client konsequent auf HTML5 und nutzt die damit einhergehenden neuen Möglichkeiten. Zum Teil eilt Google dabei der Spezifikation voraus und stellt die notwendigen Funktionen derzeit über Gears bereit, während an der Integration in HTML5 gearbeitet wird.

Das betrifft beispielsweise das Unterstützen von Drag-and-Drop: Um einer Wave Bilder oder Dateien hinzuzufügen, werden diese einfach per Drag-and-Drop vom Desktop in die im Browser angezeigte Wave gezogen. Der Wave-Client lädt sie dann hoch. Damit das bei großen Bildern nicht zu lange dauert, kann Googles Wave-Client lokal verkleinerte Vorschauversionen erstellen, die vorab übertragen werden. So können die anderen Teilnehmer in eine Wave eingefügte Bilder schon nach kurzer Zeit sehen, auch wenn der Upload der eigentlichen Dateien noch im Hintergrund läuft.

Der Wave-Client kann dank HTML5 auch lokal im Cache gehalten werden und auf lokalen Speicher zugreifen. So werden Daten auf dem Rechner des Nutzers vorgehalten und müssen nicht ständig übertragen werden, was der Geschwindigkeit der Applikation sehr zuträglich ist.

Was sich mit einer schnellen Webapplikation machen lässt, zeigt beispielsweise die in Google Wave integrierte Rechtschreibkorrektur Spelly. Wie von nativen Applikationen bekannt, macht diese schon beim Tippen kontextbezogene Korrekturvorschläge und schlägt Wortvervollständigungen vor, die auch andere Teilnehmer einer Wave sehen können. Die eigentliche Rechtschreibkorrektur ist aber individuell auf den Nutzer angepasst.

Damit Wave zu einem Erfolg wird, setzt Google nicht nur auf ein offenes Protokoll, sondern will auch weite Teile der eigenen Wave-Implementierung als Open Source freigeben. Erste Wave-Komponenten sind bereits als Open Source verfügbar, bei anderen wird die Veröffentlichung noch etwas auf sich warten lassen.

Derzeit arbeitet Google beispielsweise daran, den Wave-Server als Open Source bereitzustellen, muss diesen dazu aber umbauen. Die aktuelle Implementierung nutzt einige Google-Komponenten, die nicht Open Source werden sollen; beispielsweise greift das System derzeit auf Technik der Google-Suche zurück. Bis Mitte 2010 soll der Server weitgehend Open Source sein und auch der Webclient wird als Open Source freigegeben, verspricht Google.

Google Wave ist kein fertiges Produkt, sondern ein Experiment, das Google in einem frühen Stadium externen Nutzern und vor allem Entwicklern zugänglich macht. Das Ziel, einen Nachfolger für E-Mail zu schaffen und das mit heute populären Methoden der Echtzeitkommunikation zu verbinden, ist hochgegriffen und verleitet dazu, schon heute ein Scheitern vorauszusagen. Blendet man aber die Details aus, muss man feststellen, dass Googles Herangehensweise zumindest nicht ganz verkehrt wirkt: Google schafft offene Protokolle und Schnittstellen, bemüht sich, andere Entwickler frühzeitig mit einzubeziehen und will die für Wave notwendige Software praktisch komplett als Open Source freigeben. Dabei verlässt sich Google nicht darauf, in jahrelanger Abstimmung einen Standard zu schaffen, der allen Bedürfnissen gerecht wird – und daran scheitert, sondern verfolgt mit seinem Produkt Google Wave den sicherlich notwendigen Alleingang, der dem Vorhaben eine gewisse Dynamik verleiht.

Spannend wird die Frage, wie Google Wave letztendlich eingeführt werden soll. Denkbar wäre eine Integration mit Google Mail, was dem Dienst einen Startvorteil in Form einer nennenswerten Nutzerbasis verschaffen würde, um dem bei neuen Kommunikationsdiensten üblichen Henne-Ei-Problem beizukommen.

Dabei sind die heute hakeligen Funktionen und Ähnliches kein ernsthafter Kritikpunkt, denn es ist davon auszugehen, dass das fertige Wave-Produkt anders wird als das, was heute zum Testen bereitsteht. Google ist dafür bekannt, vieles auszuprobieren und anhand von Nutzungsdaten zu entscheiden, welche Funktionen für die breite Masse freigeschaltet werden. Und Wave ist ganz explizit noch nicht für die breite Masse geeignet.

Wave-Erfinder Lars Rasmussen räumt ein: Entweder Wave funktioniert, oder es wird komplett scheitern. Das klingt nach einer realistischen Einschätzung.

(Der Originaltext erschien zuerst auf golem.de.)