Your SlideShare is downloading. ×
XMPP - Real Time Communication
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

XMPP - Real Time Communication

4,129
views

Published on

Vortrag in Deutsch: …

Vortrag in Deutsch:
Einführung und detaillierte Betrachtung von XMPP. XMPP (Jabber) als freie Alternative zu den properitären IM-Protokollen wie MSN, OSCAR (ICQ, AOL) und Yahoo.

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,129
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
71
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • IM = sofortige Nachrichtenübermittlung
  • Alle wollen auf IM Zug aufspringe
    Merkt schnell, dass nicht alle am gleichen Ort sind
    Clients nur immer unter Windows
  • Versendete Informationen gehören den Firmen/Anbietern
  • erweiterbares Nachrichten- und Anwesenheitsprotokoll
    IRC erwähnen
  • Ziel eine freie Alternative zu damals aufstrebenden proprietären Instant Messaging-Lösungen zu schaffen.
    Internet Engeneering Task Force (IETF)
    Im Jahr 2007 wurde die Jabber Software Foundation in XMPP Standards Foundation (XSF) umbenannt
    XMPP core => RFC 3920
    XMPP messaging & presence => RFC 3921
  • Single Point of Failure
    Logik ist meist auf dem Server
    Server to Server Communication
    Jede Domain kann Jabber Server sein, Identifikation über JID
    Skallierbarkeit
  • IM = sofortige Nachrichtenübermittlung
  • Bare Jabber ID
    Nicht Full Jabber ID
  • IM = sofortige Nachrichtenübermittlung
  • Alle in UTF-8
  • <presence> broadcast
    <message> point-to-point
    <iq> request-response (info/query)
    all basic message paradigms are covered
  • Transport Layer Security
    Siehe Slide 14 OSI Schicht TCP → Transport
  • Transport Layer Security
    Siehe Slide 14 OSI Schicht TCP → Transport
    XEP-0078: Non-SASL Authentication
    OTR → inoffizielle; vertrauliche, nicht für die Öffentlichkeit bestimmte Nachrichtenvermittlung
  • IM = sofortige Nachrichtenübermittlung
  • <presence> broadcast
    <message> point-to-point
    <iq> request-response (info/query)
    all basic message paradigms are covered
  • Priorität setzen
    Beispiel Haus
  • Multi-Protokoll-Clients → Logik bei Client
    Hier auf Server
    Durch einen Umstieg verliert man seine Kontakte nicht
    MSN wird meistens wegen rechtlichen Problemen nicht angeboten
  • Jingle → VoIP von Google Talk (2005)
  • Transcript

    • 1. XMPP – Real Time CommunicationXMPP – Real Time Communication Dominic Lüchinger
    • 2. XMPP IM Real Time Web AMQP Protokoll XML Bot Publish/Subscribe Roaster Jabber Cloud Push vs PollingBOSH XEP Webhooks PubSubHubbub eJabberd Client Server RFC 3920–3923 IETF Gtalk Facebook Google Wave
    • 3. Aufbau des WorkshopsAufbau des Workshops ● GeschichteGeschichte ● Funktionen von XMPPFunktionen von XMPP ● Blick hinter Kullissen / ErweiterungenBlick hinter Kullissen / Erweiterungen ● Anwendungsbeispiel und RefenzenAnwendungsbeispiel und Refenzen ● Real Time Web mit XMPPReal Time Web mit XMPP ● DiskussionDiskussion
    • 4. Kurze Geschichte vonKurze Geschichte von Instant MessagingInstant Messaging
    • 5. Proprietäre ProtokolleProprietäre Protokolle ● ICQ (1996)ICQ (1996) ● AOL IM (1997)AOL IM (1997) ● Yahoo! Messenger (1998)Yahoo! Messenger (1998) ● MSN (1999)MSN (1999)
    • 6. Störende PunkteStörende Punkte ● Nur Kommunikation zu Usern imNur Kommunikation zu Usern im gleichen Systemgleichen System ● Zentralisierte, bevollmächtigteZentralisierte, bevollmächtigte ServerServer ● Client Software ist vorgegebenClient Software ist vorgegeben ● Kein offenes Protokoll/SchnittstelleKein offenes Protokoll/Schnittstelle ● Nette NutzungsbedingungenNette Nutzungsbedingungen
    • 7. eeXXtensibletensible MMessagingessaging andand PPresenceresence PProtocolrotocol
    • 8. Geschicht von XMPPGeschicht von XMPP ● Erste Entwürfe von Jeremie MillerErste Entwürfe von Jeremie Miller (1998)(1998) ● Erste offizielle Version des JabberErste offizielle Version des Jabber Server 'jabberd' (2000)Server 'jabberd' (2000) ● Gründung Jabber SoftwareGründung Jabber Software Foundation (2001)Foundation (2001) ● Durch IETF als Internet-StandardDurch IETF als Internet-Standard verabschiedet (2004)verabschiedet (2004)
    • 9. Eigenschaften von XMPPEigenschaften von XMPP ● DezentralisiertDezentralisiert ● Offene Client-Server ArchitekturOffene Client-Server Architektur ● XML Stream über TCP/IPXML Stream über TCP/IP ● Sicherheit über TLS/SSL und SASLSicherheit über TLS/SSL und SASL ● SystemunabhängigkeitSystemunabhängigkeit ● Mehrfach-Anmeldung am ServerMehrfach-Anmeldung am Server ● Erweiterbar durch XEPErweiterbar durch XEP
    • 10. DezentralisiertDezentralisiert
    • 11. Einschub JIDEinschub JID <Jabber Identifier><Jabber Identifier>
    • 12. useruser@@domain.chdomain.ch foo@bar.comfoo@bar.com foo2@bar.comfoo2@bar.com foo@sub.bar.comfoo@sub.bar.com bar@foo.combar@foo.com
    • 13. Was? XMPP ist XML?Was? XMPP ist XML? Protokoll als Stream?Protokoll als Stream?
    • 14. Start der VerbindungStart der Verbindung XML-StreamXML-Stream <stream:stream to="bar.com" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/strea ms" > ... </stream:stream> Verbindungsaufbau zu Server bar.com an Port 5222 oder 5223 (SSL)
    • 15. Daten im StreamDaten im Stream <stream> <presence> <show/> </presence> <message to="foo"> <body/> </message> <iq to="bar"> <query/> </iq> </stream>
    • 16. <message to="romeo@shakespeare.com" from="foo@bar.com/parl" type="chat"> <body> Wherefore art thou, Romeo? </body> </message>
    • 17. <presence type="available"> <show>away</show> <status>At the Cornershop</status> </presence>
    • 18. <iq id="reg" type="get"> <query xmlns="jabber:iq:register"/> </iq>
    • 19. <iq id="reg" type="result"> <query xmlns="jabber:iq:register"> <password/> <instructions> Choose a username and password to register. </instructions> <name/> <email/> <username/> </query> </iq>
    • 20. BeispieleBeispiele
    • 21. Kritischer Blick auf XMLKritischer Blick auf XML ● War grad hip!War grad hip! ● Einfach zu lesen, parsenEinfach zu lesen, parsen ● Overhead (bis zu 80%)Overhead (bis zu 80%) ● KomprimierbarKomprimierbar ● Weit verbreitet, viele BibliothekenWeit verbreitet, viele Bibliotheken
    • 22. SicherheitSicherheit ● Verbindung über TLS/SSLVerbindung über TLS/SSL ● SASL (Simple Authentication andSASL (Simple Authentication and Security Layer)Security Layer) ● Problem mit UnterstützungProblem mit Unterstützung ● End-to-End Signing and ObjectEnd-to-End Signing and Object Encryption (RFC 3923)Encryption (RFC 3923) ● PGP/GPG und OTR (Off-the-Record)PGP/GPG und OTR (Off-the-Record) ● …… durch Erweiterugendurch Erweiterugen
    • 23. Problem SicherheitProblem Sicherheit
    • 24. Mehrfaches AnmeldenMehrfaches Anmelden
    • 25. user@domain.ch/user@domain.ch/resourceresource
    • 26. Mehrere RessourcenMehrere Ressourcen
    • 27. Gateway / Transport zuGateway / Transport zu anderen Dienstenanderen Diensten
    • 28. XEPXEP XMPP Extension ProtocolXMPP Extension Protocol
    • 29. http://xmpp.org/extensions/http://xmpp.org/extensions/
    • 30. Erwähnenswerte XEP'sErwähnenswerte XEP's ● Jingle → Peer-to-Peer-SitzungenJingle → Peer-to-Peer-Sitzungen ● Multi-User Chat („IRC”)Multi-User Chat („IRC”) ● BOSH (Bidirectional-streams OverBOSH (Bidirectional-streams Over Synchronous HTTP)Synchronous HTTP) ● Publish/SubscribePublish/Subscribe ● Datei-Transfer / XMPP XML-RPCDatei-Transfer / XMPP XML-RPC ● Presence Obtained via KinestheticPresence Obtained via Kinesthetic Excitation (POKE)Excitation (POKE)
    • 31. Wer setzt auf XMPP?Wer setzt auf XMPP? ● Google Talk + JingleGoogle Talk + Jingle ● Facebook ChatFacebook Chat ● Google Wave (Federation Protocol)Google Wave (Federation Protocol) ● Apple iChat Server Snow LeopardApple iChat Server Snow Leopard ● Cisco (Nachrichtenaustausch)Cisco (Nachrichtenaustausch) ● Oracle Beehive CollaborationOracle Beehive Collaboration
    • 32. Was kann ich damit machen?Was kann ich damit machen? ● ChattenChatten ● TelefonierenTelefonieren ● Dateien austauschenDateien austauschen ● Im Gruppen-Chat (MUJ) diskutierenIm Gruppen-Chat (MUJ) diskutieren ● Mit einem Bot kommunizierenMit einem Bot kommunizieren ● Mich erinnern lassenMich erinnern lassen ● Geräte ansteuernGeräte ansteuern
    • 33. BeispieleBeispiele
    • 34. ClientClient
    • 35. BotBot
    • 36. Verfügbare SoftwareVerfügbare Software ● ServerServer ● EjabberdEjabberd ● OpenfireOpenfire ● Client-BibliothekenClient-Bibliotheken ● Xmpppy (Python)Xmpppy (Python) ● Xmpphp (PHPXmpphp (PHP ● Smack (Java)Smack (Java)
    • 37. Verfügbare SoftwareVerfügbare Software ● ServerServer ● EjabberdEjabberd ● OpenfireOpenfire ● Client-BibliothekenClient-Bibliotheken ● Xmpppy (Python)Xmpppy (Python) ● Xmpphp (PHPXmpphp (PHP ● Smack (Java)Smack (Java)
    • 38. Real Time WebReal Time Web
    • 39. Push vs PollingPush vs Polling
    • 40. DiskussionDiskussion