wavelogoAm 28. Mai hat Google auf der I/O Conference sein neuestes Produkt namens »Google Wave« präsentiert, das sich derzeit noch in einer frühen Phase der Entwicklung befindet — die Freigabe ist für »später im Laufe des Jahres« angekündigt. Das Video der Präsentation hat mich kurz gesagt einfach umgehauen. Meiner Meinung nach hat Wave das Potential das Internet in ähnlicher Weise zu revolutionieren, wie die Erfindung des WWW vor 20 Jahren.

Im Folgenden möchte ich einen Überblick geben, was alles mit Wave möglich ist und warum diese Technik weitaus mehr ist, als man auf den ersten Blick ahnt.

Was ist Wave?

Wave ist eine mögliche Antwort auf die Frage »Wie würde E-Mail aussehen, wenn sie heute erfunden würde anstatt vor 40 Jahren?« Wave vereinigt eine Vielzahl von Kommunikationsformen, die wir heute im Internet kennen: E-Mail, Instant Messaging, Chat, Wikis, Blogs, RSS. Eine Wave stellt eine Nachricht bzw. ein Dokument dar, das auf einem Wave-Server gespeichert ist und auf das mit Hilfe eines speziellen Clients zugegriffen wird. Jeder Wave werden Benutzer zugeordnet, die auf den Inhalt zugreifen und diesen ändern können. Waves können neben Text, Bildern und Videos mit Hilfe von Extensions ganze Applikationen enthalten.

E-Mail und Instant Messaging

Das Eröffnen einer neuen Wave ist Vergleichbar mit dem Schreiben einer E-Mail. Ein User schreibt seinen Text und fügt einen oder mehrere Empfänger hinzu. Dem Empfänger wird diese Wave in seiner Inbox angezeigt und er kann seine Antwort unterhalb der ursprünglichen Nachricht platzieren oder auch einzelne Absätze kommentieren. Sobald sich der ursprüngliche Autor wieder mit dem Server verbindet, wird die Wave hervorgehoben und dadurch angezeigt, dass neue Inhalte vorhanden sind.

Sind die Anwender gleichzeitig angemeldet, können sie die Änderungen des jeweils anderen simultan sehen — auf Wunsch Zeichen für Zeichen. Auf diese Weise verschmelzen E-Mail, IM und Chat.

Zu jedem Zeitpunkt im Laufe der Unterhaltung können weitere User zu der Wave hinzugefügt werden. Diese haben die Möglichkeit mit Hilfe einer Replay-Funktion den gesamten Ablauf der bisherigen Kommunikation Schritt für Schritt zu verfolgen und nachzuvollziehen.

Neben Textnachrichten können Anwender auch Bilder in die Wave einfügen und so z.B. zusammen ein Fotoalbum vom gemeinsamen Urlaub erstellen. Der vorgestellte Google Wave-Client ermöglicht es, spezielle Funktionen auf alle eingebetteten Bilder anzuwenden. So können etwa alle Bilder mit einem Klick heruntergeladen oder in eine neue Wave exportiert werden.

Wiki und Collaboration

Benutzer können nicht nur ihre eigenen Nachrichten bearbeiten sondern auch fremde. Fasst man eine Wave nun als Dokument und nicht als Nachricht auf, erfüllt sie die Funktion eines Wikis und erlaubt die gemeinsame Arbeit an einem Text. In Echtzeit werden wieder alle Änderungen simultan allen angemeldeten Usern angezeigt, die in unmittelbarer Nähe zueinander stattfinden können. Mit den gleichen Funktionen wie oben beschrieben können Kommentare und Diskussionen über das Dokument quasi eingebettet werden. Diese »Sub-Waves« verhalten sich ihrerseits wieder wie Waves: so kann etwa die Liste der User, die eine solche Diskussion sehen können, auf eine Untermenge der User beschränkt werden, die das eigentliche Dokument bearbeiten. Mit Hilfe der Replay-Funktion soll es später möglich sein, alle Änderungen einer einzelnen Person oder auch alle Bearbeitungsschritte eines einzelnen Abschnitts gezielt nachvollziehen zu können.

Das fertige Dokument kann anschließend (auch ohne die enthaltenen Kommentare) als neue Wave exportiert werden. Besonders spannend ist hier die Ankündigung, dass es möglich sein soll, mehrere »Arbeits-Waves« in ein Masterdokument zu exportieren und die Änderungen von dort wieder die eigene Wave zu importieren — ganz ähnlich, wie es verteilte Versionsverwaltungssysteme wie git erlauben.

Einbettung in Websites und Blogs

Mit Hilfe der offenen API können Waves in Webseiten und Blogs integriert werden, wo sie sie dann ebenfalls weiterbearbeitet werden können. So wurde z.B. demonstriert, wie der automatisch generierte Blogeintrag kommentiert wurde und die Kommentare als Bestandteil der Wave wieder im Wave-Client angezeigt wurden. Auch der User, der den Kommentar geschrieben hat, gehört nun zu der Wave und kann diese seinerseits weiter verfolgen. Auf diese Weise könnte man Diskussionen zu Blogeinträgen folgen, ohne dass man auf Dutzenden von Blogs regelmäßig nach Antworten suchen müsste.

Mit Hilfe der APIs können aber auch umgekehrt Dienste in Wave importiert werden. So wurde mit Twave eine Anbindung an Twitter demonstriert, die die Twitter-Timeline als Wave dargestellt hat. Antworten innerhalb dieser Wave wurden automatisch wiederum bei Twitter als Tweets veröffentlicht.

Erweiterungen: Gadgets und Robots

Waves lassen sich auf zwei verschiedene Arten um Funktionen erweitern. So genannte Gadgets sind Applikationen, die in die Wave eingebettet werden. Auf der Keynote wurden als Beispiele unter anderem ein Gadget zur Durchführung von Abstimmungen und ein Schachspiel gezeigt. Auch hier steht eine offene API zur Verfügung, so dass die Art und Anzahl der verfügbaren Gadgets allein von der Phantasie der Entwickler abhängen wird.

Eine andere Art der Erweiterungen sind Robots. Diese unterscheiden sich von den Gadgets dadurch, dass sie serverseitig arbeiten. Robots werden wie User zu einer Wave hinzugefügt und haben alle Möglichkeiten diese zu manipulieren wie menschliche Benutzer. Als Beispiele wurden etwa eine Rechtschreibkorrektur (Spelly) und eine automatische Verlinkung von Text (Linky) gezeigt. Den Export einer Wave in ein Blog hat der Robot Bloggy übernommen.

Federation

Wave ist nicht als Google-Dienst konzipiert, der auf einem zentralen Server angeboten wird. Statt dessen soll sowohl das zugrunde liegende Protokoll als auch der Code des Wave-Servers als Referenzimplementierung veröffentlicht werden, so dass jeder in der Lage ist, seinen eigenen Wave-Dienst anzubieten. Waves können dann serverübergreifend verteilt und bearbeitet werden und zwar mit allen Funktionen inklusive der Übertragung von Änderungen in Echtzeit. Dabei werden die (Teil-)Waves nur an diejenigen Server übertragen, die notwendig sind damit alle User, die an dieser beteiligt sind, erreicht werden.

Durch das offene Protokoll ist man ebenfalls nicht auf den von Google vorgestellten Client in Form einer HTML5-Webapplikation festgelegt. Eine Vielzahl von möglichen Wave-Clients ist hier denkbar, die z.B. unterschiedliche Schwerpunkte bei der Interpretation von Waves setzen könnten. Wird Wave von den Internet-Nutzern angenommen, so ist zu erwarten, dass es zukünftig eine Reihe von Server- und Client-Produkten geben wird, auf die man zurückgreifen kann — so wie es bei E-Mail bereits der Fall ist.

Fazit

Es ist in dieser frühen Phase der Entwicklung noch schwer zu sagen, welche Möglichkeiten Wave bieten wird und wie diese von den Usern angenommen werden. Das Potential, das in dieser Technik steckt, ist jedoch enorm. Zwar sind sämtliche Funktionen bereits durch andere Dienste in der einen oder anderen Form bereits jetzt realisierbar, aber die nahtlose Verknüpfung ist in dieser Art noch nicht da gewesen. Die Tatsache, dass sämtliche Protokolle sowie der Code als Opensource veröffentlicht werden sollen, lädt alle Entwickler dazu ein, mit diesen neuen Möglichkeiten zu experimentieren und Dienste zu schaffen, von denen derzeit noch nicht einmal die Wave-Entwickler selbst träumen.

Natürlich ergeben sich auch eine ganze Reihe von Fragen, die in der Keynote noch nicht beantwortet wurden. Allem voran etwa Aspekte rund um die Sicherheit von Gadgets. Auch eine Wave als »Read-Only« markieren zu können, so dass diese nicht beliebig weiter bearbeitet werden kann, ist sicher eine Funktion, die sinnvoll wäre.

Ich für meinen Teil bin ausgesprochen beeindruckt und werde mich in der nächsten Zeit durch die bereits veröffentlichte API- und Protokoll-Dokumentation arbeiten. Ich habe das Gefühl, dies wird nicht mein letzter Blog-Artikel zum Thema Wave sein…

Links