XMPP (Extensible Messaging and Presence Protocol) ist ein offenes, auf XML basierendes Kommunikationsprotokoll, das ursprünglich für Instant Messaging (IM) und Präsenzinformationen entwickelt wurde. Es wird häufig in Echtzeitanwendungen eingesetzt, die eine zuverlässige Kommunikation in Form von Nachrichten und Benachrichtigungen erfordern. XMPP ist besonders bekannt für seine dezentralisierte Architektur und seine Erweiterbarkeit, wodurch es sich für eine Vielzahl von Anwendungen eignet. =====Funktion===== XMPP basiert auf einem Client-Server-Modell und verwendet XML-Nachrichten für die Kommunikation zwischen den verschiedenen Teilnehmern. * Server: Jeder Teilnehmer eines XMPP-Netzwerks benötigt einen XMPP-Server, der als Vermittler für die Nachrichtenübertragung dient. Der Server sorgt dafür, dass Nachrichten an die richtigen Empfänger weitergeleitet werden. * Client: Der Client ist die Software, die der Benutzer verwendet, um mit anderen Benutzern über den XMPP-Server zu kommunizieren. Beliebte XMPP-Clients sind z.B. Pidgin, Psi, Adium, Conversations (für Android) und Monal (für iOS). Die grundlegende Kommunikation erfolgt über XML-Nachrichten, die standardisierte Tags wie , , (Information Query) verwenden. Ein Beispiel für eine einfache XMPP-Nachricht: Hello, Bob! =====Erweiterungen===== XMPP bietet eine Vielzahl von XMPP Extension Protocols (XEPs), die zusätzliche Funktionen bereitstellen. Einige der bekanntesten XEPs umfassen: * XEP-0045: Multi-User Chat (MUC), um Gruppenchats zu ermöglichen. * XEP-0085: Chat-Status, um zu zeigen, ob eine Person gerade tippt. * XEP-0198: Stream Management, das eine zuverlässige Nachrichtenübertragung gewährleistet. * XEP-0280: Message Archive Management, für die Archivierung von Nachrichten. =====Software===== Server: * ejabberd * Prosody * Openfire * Tigase Clients: * Gajim (Linux/Windows) * Conversations (Android) * Dino (Linux) * Movim (Webclient)