15

Internet Web Applications (Subject) / 9) XMPP (Lesson)

3:22

This lesson was created by Sogn.

Learn lesson

Advertisement
  • Wie zeichnet sich Instant Messaging aus? Nachrichtenaustausch zwischen zwei oder mehr Personen findet near-real-time statt Mehr Personalisierung als bei herrkömmlichen Chats (zB. Präsenz) -> Online? Interagiert mit Sendern und Instant Inboxes Verteilung der Nachrichten durch Instant message protocol Presence Service -> Holt Präsenz-Informationen (Status, Adresse) und gibt diese an Entitäten weiter
  • Um was kümmert sich der Presence Service? Presence Service akzeptiert, speichert und verteilt Präsenzinformation. (online, offline, abwesend..) Er kommuniziert mit den Presenties, welche ihre Präsenzinformation angeben und mit Watchers, welche Informationen vom Presence Service bekommen. Dies kann entweder über Fetching (Intervall) oder Subscribing (Abonniert) stattfinden.
  • Wie läuft eine Verbindung über Instant Messaging ab? Client A startet eine Verbindung zum Instant Messaging Server Present Entity überträgt dessen Präsenzinformationen an den IM Server, checkt vll inbox User A requested Präsenzinformationen seiner anderen Kontakte User A speichert User B in seiner Kontaktliste, falls neu, was zu einer Subscription zu dessen Status Updates führt Client B verbindet sich und informiert den IM Server und bekommt ebenfalls Präsenzinformationen seiner anderen Kontakte Client A bekommt Statusupdate von Client B Client A sendet Message an die Inbox von Client B Instant Messaging Service checked ob Client B online ist, wenn nicht wird die Nachricht auf dem Server gespeichert, wenn doch wird die Adresse ermittelt und die Nachricht direkt weitergeleitet
  • Was ist das Extensible Messaging and Presence Protocol XMPP? Was sind dessen Ziele? XML Protokoll, zuständig für near-real-time messaging, Präsenz und Response Services, welche in Instant Messaging System benutzt werden können. Ziele: Dezentralisierung Sicherheit Erweiterbarkeit Simple Client Implementierung Interoperabilität
  • Auf welchen Konzepten basiert XMPP? XML Streams Container zum Austausch von XML Dokumenten zweier Instanzen TCP Connection, welche aus 2 Streams besteht (Client Server) XML Stanzas XML Elemente mit spezieller Semantik, Unit von XMPP Arten: Message (Chat Daten) , Presence (tauscht Präsenzinformationen aus) , IQ (fordert verschiedene Informationen get,set , zb. Kontaktliste)
  • Wie ist es möglich mit einem Account auf mehreren Geräten angemeldet zu sein? Nach der Anmeldung bei einem XMPP Server bekommt man eine JID zugewiesen. (user@server.com) Wenn sich der Client nun bei einem Server registriert, bindet er die Informationen über sein Endgerät (Resource) an seine JID (user@server.com/resource)
  • Welche message types gibt es? Normal Chat (IM Session) Groupchat Fehler
  • Wie läuft eine XMP Connection ab? 1) Aufbau der TCP Verbindung 2) Eröffne XML Stream vom Client zu Server 3) Eröffne XML Stream vom Server zum Client 4) Authentifizierung und optional Verschlüsselung 5) Wiederrum zweifacher Aufbau eines neuen , verschlüsselten, authentifizierten Streams 6) Resource(Endgerät) am Server registrieren 7) Session auf Server aufbauen um Instant Messaging zu aktivieren 8) Client fordert roster (Kontaktliste) 9) Austausch von XML Stanzas 10) Terminierung des XML Streams
  • Welche Ansätze gibt es neben dem klassischen Client Server und Server to Server noch? Jabber component protocol Serverless Messaging XMPP communication via HTTP (BOSH) oder Websockets
  • Was ist der Nachteil von TCP bei XMPP? Welcher Ansatz soll dies lösen? Verbindungsunterbrechungen führen zu XMPP Reconnects Verbindungsunterbrechungen bei Mobilgeräten, falls die App geschlossen wird (Strom sparen) Beschränkte Firewallkonfiguration Lösung: BOSH mit HTTP long-polling -> Bidirektionale Streams über HTTP
  • Advertisement
  • Vergleich von XMPP, XMPP via BOSH und XMPP mit Websockets! XMPP kein Overhead Verliert Verbindung bei Suspension Stream Kompression Kommt mit Firewalls mäßig aus XMPP BOSH Hoher Overhead Behält Verbindung bei Suspension HTML Kompression Kommt mit Firewalls hervorragend aus XMPP Websockets Geringer Overhead Verliert Verbindung bei Suspension WebSocket Kompression Kommt mit Firewalls gut aus
  • Welche Möglichkeiten gibt es mit zwei Instanzen in unterschiedlichen Instant Message Networks (ICQ) zu kommunizieren? Multiple protocol client Mehr als ein Account, einer je Netzwerk (Ein Protokoll) Protocol translation IM Netzwerk bietet Gateways für die Übersetzung von Protokollen an (XMPP transports)
  • Vor und Nachteile von XMPP? Dezentralisiert - Kein Single Point Failure Sicher - TLS, SASL, isolierter XMPP Server Erweiterbar - aufgrund von XML Flexible Weitverbreitet Protocol Overhead aufgrund XML Kein Default Client (Client kann bestimmte Extensions von XMPP unterstützen, welcher ein anderer nicht supportet)
  • Was ist serverless Messaging? Eine Extension für XMPP, welche keinen Server nutzt. Dies funktioniert mithilfe von Multicast DNS. Dabei gibt der Client selbst an, dass er über eine IP verfügbar ist. Dies sendet er dann einem lokalen Netzwerk. (Hauptbenutzung) Jeder Client kann diesen Client dann kontaktieren und kommunizieren.
  • Was ist Jingle? Eine weitere Extension von XMPP. Mit der Jingle genannten Erweiterung kann XMPP Peer-to-Peer-Sitzungen vereinbaren. Diese Funktion wird vor allem für IP-Telefonie (VoIP) genutzt und ist in der Aufgabenstellung von Session Initiation Protocol (SIP) sehr ähnlich.