SEVENSTAX RESTful Server

Das Representational State Transfer (REST) beschreibt einen Architekturstil für die Erstellung von verteilten Informationssystemen (Web-Services) im Internet.

Der SEVENSTAX RESTful Server nutzt diesen Architekturstil, um ein einfaches Application Programming Interface (API) für verteilte Applikationen im Netzwerk zur Verfügung zu stellen. Die verteilten Applikationen können aus Applikationen auf embedded Systemen und einer PC-Applikation bestehen. Die PC-Applikation kann direkt über die API mit den embedded Systemen kommunizieren. Es werden keine zusätzlichen proprietären anwendungsspezifischen Protokolle benötigt. Die PC-Applikation kann in Java, C#/.NET, C++, Basic, PHP, Python oder einer anderen Sprache geschrieben werden.

Das SEVENSTAX RESTful-Modul nutzt als Erweiterung des SEVENSTAX HTTP-Servers das Transportprotokoll HTTP über Port 80. Der SEVENSTAX RESTful-Server nutzt folgende HTTP-Methoden:

  • GET: es werden Daten vom Server angefordert
  • POST: es werden Daten zum Server übertragen

Die übertragenen Daten werden im XML-Format strukturiert. Dazu verwendet das RESTful-Modul den SEVENSTAX XML-Streaming-Parser und -Generator.

Durch REST wird eine vereinheitlichte Schnittstelle zwischen embedded Systemen und verteilten Applikationen zur Verfügung gestellt. Ein großer Vorteil ist, dass das Interface zwischen den Aufrufen zustandslos arbeitet. Die Software auf dem embedded System kann dadurch einfacher strukturiert werden. Ohne höheren Aufwand können auch mehrere Applikationen die RESTful-Schnittstelle nutzen.

SEVENSTAX XMPP

Das Extensible Messaging and Presence Protocol (XMPP) ist ein XML-basiertes offenes Protokoll, das überwiegend im Instant Messaging, zum Beispiel bei Jabber und Google Talk, eingesetzt wird. 

Für embedded Systeme eignet sich das Protokoll besonders zur Ferndiagnose und -konfiguration von Geräten hinter Firewalls. Durch die Vielzahl der verfügbaren freien und kommerziellen Clients kann ein Messenger von jedem PC und von vielen Handys genutzt werden. Embedded Systeme, die sich an einem XMPP-Server anmelden, können somit von einem beliebigen Client Daten entgegennehmen und Statusinformationen liefern.

Das SEVENSTAX XMPP ist ein XMPP-Client und besteht aus einem XMPP-Parser und einem XMPP-Generator. Der XMPP-Parser ist ein Streaming-Parser, der die einzelnen XML-Tags auswerten kann und während einer Session den Zustand einer Verbindung (offene Tags, Hierarchie, etc.) halten kann.

Der XMPP-Generator generiert aus Systeminformationen/Strings XML-Code und versendet diesen über XMPP. Standardkonform setzt das SEVENSTAX XMPP auf TCP auf und nutzt Port 5222.

Das XMPP-Modul bietet eine Zugriffskontrolle über eine automatische User-Registrierung. Die Registrierung wird über die XMPP-Subscription-Funktionalität abgebildet. Dabei werden die gegenseitigen Subscriptions der Clients (User, embedded System) vollständig synchron behandelt, so dass keine asynchronen Zustände entstehen können.

Der Client ist in der Lage, das gesamte eigene Profil vom Server zu beziehen. Daher können embedded Systeme ausgetauscht werden, ohne dass bestehende User-Registrierungen verloren gehen.

Über die XMPP-Keep-Alive-Mechanismen können Sessions über beliebig lange Zeiträume erhalten bleiben.

In Kombination mit dem SEVENSTAX NVT (Network Virtual Terminal) kann ein leistungsstarkes Kommandointerface angebunden werden.

Die effiziente SEVENSTAX-Implementation unterstützt folgende Funktionen:

  • Core-Funktionen entsprechend RFC 3920 und RFC 3921
  • Streaming XMPP-Parser und -Generator
  • Registrieren von Usern über XMPP-Subscription
  • Device-Status über „User Activity“ (XEP-0108, XEP-0163)
  • Senden von Keep-Alive-Messages
  • Software-Version nach XEP-0092
  • Senden von „application-level“ Pings nach XEP-0199