Instant-Messaging-Server mit Jabber

Jabber im Detail

Bei Jabber handelt es sich um ein Instant-Messaging- und Presence-System, das sich von anderen IM-Lösungen in verschiedenen Punkten grundlegend unterscheidet. Jabber verwendet ein eigens für dieses IM-System entwickeltes Protokoll. Wenn Jabber-Clients sich auf einem Jabber-Server (temporär) angemeldet haben, kann ein direkter Nachrichtenaustausch zwischen zwei oder mehreren Clients erfolgen. Man bezeichnet die Verfügbarkeit eines Clients auch als Presence (Anwesenheit). Diese typische IM-Funktion kombiniert Jabber mit zwei Besonderheiten: Zum einen erlaubt das offene Protokoll die Kommunikation mit anderen Messaging-Systemen, zum anderen tauschen Client und Server XML-basierte Nachrichten aus.

Dabei bietet Jabber noch eine Besonderheit: Als erstes Instant-Messaging-System unterstützt Jabber das Instant Messaging and Presence Protocol (IMPP), das von der IMPP-Arbeitsgruppe der Internet Engineering Task Force (IETF) entwickelt wurde. IMPP stellt eine Architektur für den einfachen Nachrichtenaustausch und Hinweismeldungen bereit. Auch Fragen der Authentifizierung, Nachrichtenintegrität, Verschlüsselung und Zugriffskontrolle spielen eine Rolle.

Der Client kommuniziert in der Regel über Port 5222 mit dem Server. Die Grundfunktionen der Client-Software wie beispielsweise das Parsen von XML-Dokumenten mit den Jabber-XML-Elementen (<message/>, <presence/> oder <iq/>) stellen die Jabber-Client-Bibliotheken bereit. Der Vorteil für Unternehmen: Entwickler können ohne größeren Aufwand "eigene" Clients realisieren, die an die jeweiligen Anforderungen optimal angepasst sind.

XML ist integraler Bestandteil der Jabber-Architektur. Man hat sich für XML entschieden, da es sich dabei um das universellste Format handelt. So genannte XML-Streams sorgen für die Client-Server- beziehungsweise Server-Server-Kommunikation. Ein weiterer Vorzug von XML ist in diesem Zusammenhang, dass die Kommunikation mit anderen IM-Diensten oder Programmen wie AIM, ICQ oder IRC funktioniert. Man spricht diesbezüglich auch von Transportschnittstellen. Für alle wichtigen Dienste gibt es inzwischen entsprechende Interfaces.