Kourtis Internet Solutions
KOURTIS INTERNET SOLUTIONS

Das Ende der Sprachbarriere: Protocol Buffers wird Open Source.

19. Juli 2008 – 13:35 Uhr

Der Suchmaschinenbetreiber Google sah sich bei der Implementierung seiner Software-Infrasturktur mit einem Problem konfrontiert, das alles andere als eine Seltenheit ist: So gut wie nie lassen sich alle anfallenden Aufgaben einer komplexen IT Umgebung auf mit nur exakt einer Software auf nur exakt einem Rechner lösen. Ein heterogenes Netz aus Software-Komponenten wird nötig.

Da diese von einander isoliert so gut wie nutzlos sind, existieren Protokolle, mit denen Daten über System- und Software-Grenzen hinaus über ein Netzwerk ausgetauscht werden können.

In der Regel kommt in solchen Fällen XML als das Format zum Einsatz, in dem die Daten ausgetauscht werden.

Für Google jedoch war XML keine Option: Schnell sollte sie sein, die Kommunikation im eigenen Rechnerverbund, die heute das Rückgrat des Suchmaschinenbetreibers bildet. Schnell – sowohl in der Entwicklung, als auch in der tatsächlichen Übertragung der Daten im Produktivbetrieb.

Zu diesem Zweck entwickelte Google eine „Protocol Buffers“ getaufte Infrastruktur: Diese Technologie erlaubt es, nach einem frei definierbaren Standard strukturierte Daten effizient zwischen verschiedenen Systemen auszutauschen, ohne dass dafür die spezifischen Nachrichtenformate in den verschiedenen Software-Elementen explizit bekannt sein müssen.

Bei Googles „Protocol Buffers“ beginnt alles mit einer so genannten .proto-Datei: Diese beschreibt die Formatierung einer bestimmten Nachricht. Eine solche, einmalig anzulegende, Beschreibungsdatei analysiert dann ein eigens zu diesem Zweck entwickelter Compiler, der jedoch keinen Binärcode ausgibt, sondern den zur Verarbeitung und Erstellung der Beschriebenen Nachrichten nötigen Programmcode. Die Ausgabe erfolgt dabei wahlweise in Java, C++ oder Python.

Google selbst setzt nach eigenen Angaben Protocol Buffers überall dort ein, wo viele Daten effizient und ohne Overhead zwischen verschiedenen Systemen verteilt werden müssen.

Zusätzlich zu der einfachen Erstellung des nötigen Quellcodes und der Effizienz in der Verarbeitung bietet Protocol Buffers noch den Vorteil, dass sich verschiedene Versionen eines Datenformats gleichzeitig nutzen lassen: Wir ein Datenformat erweitert, müssen nur die Systeme, die mit der Erweiterung gezielt umgehen sollen, aktualisiert werden. Alle anderen ignorieren die zusätzlichen› Informationen und arbeiten wie gewohnt weiter.

Weitere Details zu den als Open Source veröffentlichten Protocol Buffers 2.0 sowie Tutorials und die einige Quelltexte, die den Einstieg erleichtern, finden Sie bei Google Code.