Was soll das Ganze?

Über die Termine und die Notwendigkeit einer TSE-Anbindung (fast) aller Kassen in Deutschland wurde schon genug geschrieben (mehr Infos dazu in den FAQ). Das wollen wir hier nicht wiederholen. Stattdessen geht es uns um konkrete Lösungsansätze, um eine einheitliche Schnittstelle für die Anbindung der TSE und um die Unterstützung für die Programmierer von Kassensystemen. Daneben möchten wir darauf hinweisen, daß es neben der TSE eine zweite, genauso wichtige Anforderung zu erfüllen gilt, den "DSFinV-K"-Export.

Wo liegt das Problem bei der TSE?

Der Gesetzgeber hat hier vergleichsweise hohe Hürden aufgestellt, denn es dürfen nur vom BSI zertifizierte TSE-Module verwendet werden. Diese gibt es aber (Stand Oktober 2020) nicht wie Sand am Meer. Außerdem verfügt jede TSE über eine eigene Firmware, die wiederum nur über ein vom Hersteller bereitgestelltes sogenanntes "SDK" (Software-Developement-Kit) angesprochen werden kann. Genau hier liegt aber das Problem, denn diese SDK's werden nur für einige wenige Programmiersprachen (meistens C und Java) geliefert. Wer also nun seine Kassenlösung mit einer anderen Sprache programmiert hat (z.B. PHP, Perl, VB, Delphi) steht vor dem Problem, entweder das SDK mühevoll zu adaptieren oder eine Anbindung mit einer der unterstützten Sprachen zu realisieren. Übrigens gibt es im SDK keine Funktionen, die es erlauben, die erzeugten Signaturen zu verifizieren oder die exportierten Daten zu visualisieren. Lediglich deren Erstellung und Export wird vom SDK unterstützt.

Gibt es eine Lösung?

Ja, die gibt es, dank unserer Middleware, die wir für die SwissBit-TSE entwickelt haben. Diese erlaubt es Ihnen, die TSE an einer beliebigen Stelle im Netzwerk zu plazieren und allen Kassen am Standort zugänglich zu machen. Gleichzeitig entfällt damit die Einbindung eines SDK in die Kassensoftware, denn die Middleware läßt sich wie ein normaler (Web-)Server im Internet per Socketverbindung ansprechen. Zudem verfügt unsere Middleware auch über die Möglichkeit, eigene und fremde Signaturen zu prüfen, sowie die Messages und die exportierten Daten (auch Fremddaten) zu visualisieren. Wir nennen diese Lösung deshalb TSE-Server-Suite.

Was genau ist unsere TSE-Server-Suite?

Die TSE-Server-Suite besteht aus zwei Softwarekomponenten

  • dem TSE-Server
    Der TSE-Server stellt einen Daemon/Service bereit, damit die Kasse einfach und transparent mit der TSE kommunizieren kann. Während sich der TSE-Server um die gesamten Feinheiten der Anbindung der TSE kümmert, erfolgt die Anbindung der Kasse an den TSE-Server über standardisierte Schnittstellen (Sockets). Bei der TSE-Server-Suite wird vom Kassensystem aus eine ganz normale Socketverbindung geöffnet. Über diese Verbindung werden simple Textnachrichten als Befehle gesendet. Somit kann man den TSE-Server von jeder Programmiersprache aus, egal ob C, Java, Android, PHP, Perl, Python, VB, Delphi, Ruby, ansprechen, ja man kann sogar nicht unterstützte Betriebssysteme, wie z.B. WindowsXP oder MacOS oder völlig andere Plattformen (ARM, RISC) ankoppeln.
  • dem TSE-Admin-Programm
    Das TSE-Admin-Programm wird für den täglichen Betrieb der TSE nicht benötigt. Es dient vielmehr dazu, die TSE zu verwalten (Inbetriebnahme, Export, Daten löschen etc.). Es muß unter Linux mit Adminrechten (root) gestartet werden und erlaubt es, sämtliche Funktionen der TSE anzusteuern, die das SDK bereitstellt (u.a. den Tar-Export und das Ändern von PIN/PUK). Ein weiteres Highlight des TSE-Admin-Programms ist die Visualisierung der TSE-Messages und die Validierung von Signaturen. Dabei können sowohl eigene, als auch fremde Messages und Signaturen verarbeitet werden.

Weiter zur TSE ...