Das Wave-Protokoll

1244529752|%d.%m.%Y

Bevor im Laufe dieses Jahres der Google-Tsunami auf uns zurollen soll, ist es vielleicht keine schlechte Idee, sich vorab ein wenig mit der Substanz zu befassen, aus der die Welle bestehen wird. Das tun bereits einige, und sie organisieren sich über wavecamp.org. Auf waveprotocol.org können Interessierte auch schon Einblicke in das Wave-Protokoll werfen.

Das Protokoll, das mit vollem Namen Google Wave Federation Protocol heißt, beschreibt, wie Kommunikation beim Internet-Dienst Wave funktioniert. Denn Wave als Ganzes ist mit E-Mail, World Wide Web oder FTP vergleichbar. Allerdings wird es von den Endbenutzern nicht ganz so empfunden werden, da seine Client-Server-Struktur viel fließender modelliert ist. Die meisten werden es vermutlich erst mal als coolen, ins Facebook- und Twitter-Zeitalter passenden Instant Messenger mit mächtigen Zusatzfunktionen für Teamworking empfinden.

Zunächst einmal sollte man wissen, dass das Google Wave Federation Protocol keine völlige Neuentwicklung ist, sondern lediglich eine Erweiterung des Extensible Messaging and Presence Protocol (XMPP). Dieses Protokoll wird von der XMPP Standards Foundation entwickelt. Anfänglich hieß die Foundation noch Jabber Software Foundation. Sie geht also auf das Jabber-Projekt zurück. Jabber ist nichs anderes als der Versuch, einen offenen Internet-Standard als Alternative zu allseits beliebten, aber proprietären Lösungen wie ICQ zu schaffen.

Wer die Spezifikation des XMPP-Protokolls nachlesen möchte, kann das in den folgenden RFCs tun:

  • RFC 3920 beschreibt die Kern-Funktionen des Protokolls. Protokollvorgänge werden mit Hilfe von XML beschrieben.
  • RFC 3921 beschreibt die Anwendbarkeit des Protokolls für Instant Messaging. Es wird beschrieben, wie zentrale Instant-Messaging-Funktionen wie etwa das Signalisieren von Anwesenheit mit Hilfe von XMPP formuliert werden.
  • RFC 3922 beschreibt, wie sich die Protokoll-Vorgänge von XMPP in CPIM (Common Presence and Instant Messaging) übertragen lassen. CPIM ist ebenfalls ein offener Standard für Instant Messaging, jedoch eher im Bereich Mobilfunk und SIP angesiedelt.
  • RFC 3923 beschreibt, wie Kommunikation über das XMPP-Protokoll signiert und verschlüsselt wird, um Teilnehmern eine sichere Kommunikation zu ermöglichen.

Original-RFCs sind allerdings eher für Entwickler interessant. Zum Verständnis ist die kompakte, auf drei Webseiten verteilte, kenntnisreiche Einführung Verschlüsseltes & anonymisiertes IM per Jabber von Kai Billen wohl besser geeignet.

Doch wie hängt nun das Google Wave Federation Protocol mit alledem zusammen? An dieser Stelle setzt die Draft Protocol Spec von Google an, die den bezeichnenden Titel Google Wave Federation Protocol Over XMPP trägt. „Als XMPP-Erweiterung setzt dieses Protokoll einen bidirektionalen Stream voraus, der mit Hilfe der Kernfunktionen von XMPP etabliert wurde“, so das Dokument. Die Erweiterungen bestehen darin, das XML-Sprachrepertoire von XMPP so zu ergänzen, dass damit die von Google gewünschten, wave-spezifischen Konzepte umsetzbar sind:

  • Der Wave-Service erfordert Wave-Provider. Ein Wave-Provider kann jeder werden, der über einen Domainnamen verfügt und die Wave-Service-Software auf seinem ans Internet angebundenen Hostrechner installiert. Google selbst wird selbstverständlich als Wave-Provider auftreten. Es ist anzunehmen, dass aber auch Web-Hosting-Provider ihren Kunden anbieten werden, Waves zu starten. Außerdem können natürlich Firmen und Organisationen den Wave-Service auf ihren ans Internet angebundenen Servern installieren. Auch einer Installation auf Intranet-Servern steht nichts im Wege.
  • Benutzer des Wave-Services erhalten Teilnehmeradressen, die genauso aussehen wie E-Mail-Adressen: Benutzer@Domain-Name. Neben Einzelbenutzern können aber auch Benutzergruppen und Robots (Software-Agenten innerhalb von Wave) solche Teilnehmeradressen erhalten. Dadurch wird direkte Kommunikation zwischen Einzelpersonen und Gruppen, Gruppen und Gruppen sowie zwischen Menschen und Software-Agenten möglich.
  • Benutzer des Wave-Services können Waves starten. Waves sind größere Projekte, an denen normalerweise mehrere Wave-Teilnehmer beteiligt werden sollen, und in deren Verlauf es mehrere Konversationen geben wird. Konversationen innerhalb einer Wave werden als Wavelets bezeichnet. An den Wavelets einer Wave können Benutzer unterschiedlicher Wave-Provider beteiligt sein. Wenn sich die Teilnehmer einer Wave über mehrere Wave-Provider erstrecken, wird bei jedem Wave-Provider eine vollständige, in Echtzeit synchronisierten Kopie der gesamten Wave vorgehalten. Wave-Benutzer greifen immer auf die Kopie ihres Wave-Providers zu.
  • Jede Wave hat eine universell eindeutige ID (im Web spricht man von URIs), bestehend aus dem Domainnamen, wo sie gestartet wurde, und einer dort vergebenen, eindeutigen Zeichenkette. Jede einzelne Wave ist also ebenso eindeutig adressierbar wie eine bestimmte Website.
  • Ein Wavelet, also eine Konversation innerhalb einer Wave, besteht aus einer Liste von involvierten Teilnehmern und einer Liste von Dokumenten, die innerhalb dieser Konversation entstanden sind. Alle Dokumente haben innerhalb ihrer Wave eindeutige Namen und sind somit in Kombination mit ihrer Wave-ID universell adressierbar, ähnlich wie einzelne Webseiten.
  • Eine Form von Dokumenten sind kleine Richtext-Nachrichten, vergleichbar mit HTML-Mails oder formatierbaren Instant Messages. Dieser Dokumenttyp wird in der Wave-Terminologie als Blip bezeichnet. Zu allen Blips werden thread-basierte Informationen gespeichert, so dass grafisch nach Art thread-basierter Foren abbildbar ist, welcher Wavelet-Teilnehmer auf welchen anderen wann geantwortet hat. Daneben lassen sich auch Dokumente anlegen, die nicht der Diskussion dienen, sondern dem gemeinsamen Erarbeiten und Festhalten von Ergebnissen, Dokumentation usw. Das Wave-Protokoll erlaubt dabei das gleichzeitige Bearbeiten von Richtext in Echtzeit. Details dazu lassen sich in einem weiteren Google-Dokument mit dem Titel Google Wave Operational Transformation nachlesen.

Bevor wir uns nun in den unendlichen Tiefen weiterer Details verlieren, sollten wir diese Informationen aber besser erst mal verdauen. Endanwender haben auch eher Fragen wie „und wann kann ich das benutzen?“ oder „welche Software brauche ich dafür, kostet die was und muss ich mich bei Google anmelden dafür?“.

Um wenigstens noch auf diese Fragen einzugehen: laut Google soll Wave noch im Jahr 2009 verfügbar sein. Wann genau, darüber ist bislang nichts bekannt. Und zur zweiten Frage: früher oder später wird es voraussichtlich spezialisierte Clients für Wave geben. Aber zunächst mal läuft Wave direkt im Web-Browser ab. Es gibt also HTTP-Entry-Points für Wave. Damit der Browser die ganzen Echtzeit-Aktivitäten von Wave umsetzen kann, kommt neben Ajax allerdings intensiv HTML 5 zum Einsatz, da nur dort die erforderlichen fortgeschrittenen HTML-Basiselemente für eingebettetes Scripting existieren. Ein nicht-HTML5-fähiger Browser wird also Wave nicht oder nur mit Einschränkungen anzeigen können. In Fachkreisen wird Wave deshalb auch schon als „Motor für HTML5“ gefeiert.

Was die Kostenfrage betrifft, so ist zunächst mal klipp und klar zu sagen, dass Wave OpenSource ist. Es kann frei entsprechend den Details der verwendeten OpenSource-Lizenzform verwendet werden. Wave-Server können überall installiert werden. Es können auch eigene Software-Lösungen für Wave-Server oder Wave-Clients entwickelt werden. Es ist keine Anmeldung bei Google erforderlich, um Wave zu nutzen. Wahrscheinlich ist, dass sehr schnell alle großen Mailanbieter wie GMX, Yahoo usw. ihren E-Mail-Kunden anbieten werden, Wave über ihre bestehende Mailadresse zu nutzen. Sicherlich wird es auch Drittanbieter geben, die versuchen, über Wave Geld zu verdienen. Das betrifft jedoch lediglich separate Mehrwert-Dienste wie z.B. spezialisierte Software-Agenten, die in Wave integrierbar sind.

Weitere Informationen zu Wave innerhalb dieses Blogs:

Kommentare

Neuen Kommentar hinzufügen
oder Anmelden als Wikidot User
(wird nicht veröffentlicht)
- +
Sofern nicht anders angegeben, steht der Inhalt dieser Seite unter Lizenz Creative Commons Attribution-ShareAlike 3.0 License