XMPP - Real Time Communication

Embed Size (px)

Citation preview

CS3

XMPP Real Time Communication

Dominic Lchinger

XMPP

IM

Real Time Web

AMQP

Protokoll

XML

Bot

Publish/Subscribe

Roaster

Jabber

Cloud

Push vs Polling

BOSH

XEP

Webhooks

PubSubHubbub

eJabberd

Client

Server

RFC 39203923

IETF

Gtalk

Facebook

Google Wave

Aufbau des Workshops

Geschichte

Funktionen von XMPP

Blick hinter Kullissen / Erweiterungen

Anwendungsbeispiel und Refenzen

Real Time Web mit XMPP

Diskussion

Kurze Geschichte von Instant Messaging

IM = sofortige Nachrichtenbermittlung

Proprietre Protokolle

ICQ (1996)

AOL IM (1997)

Yahoo! Messenger (1998)

MSN (1999)

Alle wollen auf IM Zug aufspringeMerkt schnell, dass nicht alle am gleichen Ort sindClients nur immer unter Windows

Strende Punkte

Nur Kommunikation zu Usern im gleichen System

Zentralisierte, bevollmchtigte Server

Client Software ist vorgegeben

Kein offenes Protokoll/Schnittstelle

Nette Nutzungsbedingungen

Versendete Informationen gehren den Firmen/Anbietern

eXtensible Messaging and Presence Protocol

erweiterbares Nachrichten- und AnwesenheitsprotokollIRC erwhnen

Geschicht von XMPP

Erste Entwrfe von Jeremie Miller (1998)

Erste offizielle Version des Jabber Server 'jabberd' (2000)

Grndung Jabber Software Foundation (2001)

Durch IETF als Internet-Standard verabschiedet (2004)

Ziel eine freie Alternative zu damals aufstrebenden proprietren Instant Messaging-Lsungen zu schaffen.Internet Engeneering Task Force (IETF)Im Jahr 2007 wurde die Jabber Software Foundation in XMPP Standards Foundation (XSF) umbenanntXMPP core => RFC 3920XMPP messaging & presence => RFC 3921

Eigenschaften von XMPP

Dezentralisiert

Offene Client-Server Architektur

XML Stream ber TCP/IP

Sicherheit ber TLS/SSL und SASL

Systemunabhngigkeit

Mehrfach-Anmeldung am Server

Erweiterbar durch XEP

Dezentralisiert

Single Point of FailureLogik ist meist auf dem ServerServer to Server CommunicationJede Domain kann Jabber Server sein, Identifikation ber JIDSkallierbarkeit

Einschub JID

IM = sofortige Nachrichtenbermittlung

[email protected]

[email protected]@[email protected]@foo.com

Bare Jabber IDNicht Full Jabber ID

Was? XMPP ist XML?Protokoll als Stream?

IM = sofortige Nachrichtenbermittlung

Start der Verbindung
XML-Stream

...

Verbindungsaufbau zu Server bar.com an Port 5222 oder 5223 (SSL)

Alle in UTF-8

Daten im Stream

broadcast point-to-point request-response (info/query)all basic message paradigms are covered

Wherefore art thou, Romeo?

away At the Cornershop

Choose a username and password to register.

Beispiele

Kritischer Blick auf XML

War grad hip!

Einfach zu lesen, parsen

Overhead (bis zu 80%)Komprimierbar

Weit verbreitet, viele Bibliotheken

Transport Layer SecuritySiehe Slide 14 OSI Schicht TCP Transport

Sicherheit

Verbindung ber TLS/SSL

SASL (Simple Authentication and Security Layer)Problem mit Untersttzung

End-to-End Signing and Object Encryption (RFC 3923)

PGP/GPG und OTR (Off-the-Record)

durch Erweiterugen

Transport Layer SecuritySiehe Slide 14 OSI Schicht TCP TransportXEP-0078: Non-SASL AuthenticationOTR inoffizielle; vertrauliche, nicht fr die ffentlichkeit bestimmte Nachrichtenvermittlung

Problem Sicherheit

Mehrfaches Anmelden

IM = sofortige Nachrichtenbermittlung

[email protected]/resource

broadcast point-to-point request-response (info/query)all basic message paradigms are covered

Mehrere Ressourcen

Prioritt setzenBeispiel Haus

Gateway / Transport zu anderen Diensten

Multi-Protokoll-Clients Logik bei ClientHier auf ServerDurch einen Umstieg verliert man seine Kontakte nichtMSN wird meistens wegen rechtlichen Problemen nicht angeboten

XEP
XMPP Extension Protocol

http://xmpp.org/extensions/

Erwhnenswerte XEP's

Jingle Peer-to-Peer-Sitzungen

Multi-User Chat (IRC)

BOSH (Bidirectional-streams Over Synchronous HTTP)

Publish/Subscribe

Datei-Transfer / XMPP XML-RPC

Presence Obtained via Kinesthetic Excitation (POKE)

Jingle VoIP von Google Talk (2005)

Wer setzt auf XMPP?

Google Talk + Jingle

Facebook Chat

Google Wave (Federation Protocol)

Apple iChat Server Snow Leopard

Cisco (Nachrichtenaustausch)

Oracle Beehive Collaboration

Was kann ich damit machen?

Chatten

Telefonieren

Dateien austauschen

Im Gruppen-Chat (MUJ) diskutieren

Mit einem Bot kommunizieren

Mich erinnern lassen

Gerte ansteuern

Beispiele

Client

Bot

Verfgbare Software

ServerEjabberd

Openfire

Client-Bibliotheken Xmpppy (Python)

Xmpphp (PHP

Smack (Java)

Verfgbare Software

ServerEjabberd

Openfire

Client-Bibliotheken Xmpppy (Python)

Xmpphp (PHP

Smack (Java)

Real Time Web

Push vs Polling

Diskussion

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso