xmpp - real time communication
TRANSCRIPT
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
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]@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