Zum Inhalt springen

SEVENSTAX XMPP

SEVENSTAX XMPP ist eine Client-Implementation des Extensible Messaging and Presence Protocol (XMPP) für Embedded Systeme. Sollen Geräte über das Internet angesprochen werden, ist nahezu immer ein Server für die Kommunikation notwendig, da sich die eigentlichen Kommunikationspartner oft, nicht direkt adressierbar, hinter NAT-Routern und Firewalls verbergen. Nicht immer wird ein umfangreicher und komplexer Management Server mit Datenbank, Webfrontend, Admin-Backend, etc. benötigt. Oft wird einfach nur eine Verbindung zwischen der Software zur Bedienung eines Gerätes (PC-Applikation, Smartphone-App, etc.) und dem Gerät benötigt.
Hier bietet sich die Verwendung von XMPP an. XMPP realisiert einen ASCII-basierten Kommunikationskanal zwischen den Teilnehmern. XMPP-Server und XMPP-Client-Bibliotheken für PC oder Smartphones sind zahlreich am Markt fertig verfügbar. XMPP bietet außerdem bereits alle notwendigen Funktionen zur Authentifizierung der Nutzer und zur logischen "Kopplung" zwischen Gerät und Bedienungs-Software. Die für das Aufrechterhalten der Verbindung zwischen Client und Server zu übertragende Datenmenge wird bewusst besonders niedrig gehalten um den Traffic zu begrenzen. 

Folgende Komponenten umfasst das SEVENSTAX XMPP:

  • Extensible Messaging and Presence Protocol (XMPP) Client nach RFC 6120, 6121
  • Authentifizierung per SASL (PLAIN)
  • Registrierungshandshake mit Passwort 
  • Automatisches Management der Teilnehmerliste
  • XML Streaming-Parser& -Generator
  • Connect-Management-Applikation
  • Unterstützte Extensions:
    • XEP-0054 (vcard-temp)
    • XEP-0071 (XHTML-IM)
    • XEP-0092 (Software Version)
    • XEP-0153 (vCard-Based Avatars)
    • XEP-0166 (Jingle)
    • XEP-0332 (HTTP over XMPP transport)

Zur Entwicklungszeit kann bereits mit frei verfügbaren XMPP-Clients für PC und Smartphone (z.B. Pidgin) gearbeitet werden und ein Zugriff via Konsole auf das Embedded System erfolgen. Mit dem SEVENSTAX Network Virtual Terminal wird ein befehlsorientierter Zugriff realisiert und eine formatierte Textausgabe im Client erzeugt.