Wie funktioniert Slimprinter?

Die wesentliche Grundlage für das Zusammenspiel von Terminalserver und Clientcomputer bilden die virtuellen Kanäle (virtual channels) des rdp-Protokolls von Microsoft.

Auf der Seite des Terminalservers läuft eine Dienstkomponente, welche mit einem Prozess (Sessionserver) via Loopback per TCP/IP kommuniziert und in jeder Session als eine Instanz gestartet wird. Der Sessionserver stellt das serverseitige Ende eines virtuellen Kanals dar.

(Diese Komponenten werden durch den Serverinstaller auf em Server installiert)

Auf der Clientseite bildet eine DLL (Slimprin.dll) das andere Ende des virtuellen Kanals. Diese DLL wird beim Ausführen des Terminalienstclients (mstsc.exe) automatisch geladen und an die mstsc.exe gebunden.

(Der Clientinstaller stellt die benötigten Komponenten bereit)

Bei dem Aufbau einer rdp-Verbindung laufen folgende Vorgänge ab:

  1. Auf dem Client wird der Terminalserviceclient gestartet und die DLL Slimprin.dll an diesen gebunden. Die Anmeldemaske erscheint und nach erfolgreicher Authentifizierung wird auf dem Terminalserver die Session gestartet.
  2. Auf dem Terminalserver wird in der erstelleten Sesssion der Sessionserver gestartet. Der Sessionserver meldet sich am Serverdienst Slimprinter an. Steht keine freie Clientlizenz zur mehr zur Verfügung, wird der Sessionserver mit einer Meldung innerhalb der Session beendet. Ist der Serverdienst nicht erreichbar, wird der Sessionserver ebenfalls mit einer entsprechenden Meldung beendet.
  3. Der Sessionserver versucht über en virtuellen Kanal eine Init-Sequenz. an die Clientdll zu senden. Wird diese Sequenz von der Clientdll nicht beantwortet, wird der Sessionserver ohne jede Meldung beendet. Dadurch ist sichergestellt, dass Clients ohne Slimprinter-Installation in wie bisher gewohnter Art weiterarbeiten.
  4. Der Sessionserver fordert die Druckerkonfiguration des Clients an. Es werden alle für Slimprinter aktivierten Drucker (s.u. Clienteinrichtung) mit ihren am Client vorhandenen Einstellungen übermittelt.
  5. Der Sessionserver sendet an den Slimprinterdienst die Aufforderung die Drucker mit der gerade empfangenen Konfiguration zu erstellen.
  6. Der Slimprinterdienst erstellt die angeforderten Drucker.
  7. Die Initialisierung von Slimprinter ist abgeschlossen.

Wird ein Druckauftrag an einen erstellten Slimprinterdrucker gesendet, ist folgender Ablauf zu verfolgen:

  1. Der Druckauftrag wird vom Slimprinterdrucker gespoolt.
  2. Der Sessionserver wird über den anstehenden Spoolauftrag informiert. Der Sessionserver sendet die Initialiserung für den äquivalenten Clientdrucker. Das serverseitige Spoolfile wird komprimiert und via virtuellen Kanal zur Clientdll übertragen und von dieser dort dekomprimiert.
  3. Die Clientdll startet einen Druckthread und meldet dem Sessionserver wieder Bereitschaft (Für die Dauer dieses Vorgangs ist die Clientdll zum Sessionserver hin geblockt).
  4. Der Sessionserver gibt daraufhin den Befehl zum Löschen des serverseitigen Druckauftrags an den Slimprinterdienst.
  5. Der Slimprinterdienst löscht den Druckjob.

Was macht der Druckthread?

  1. Parameter der Initsequenz werden für den Clientdrucker übersetzt (Papierformatnummern, Schachtnummern etc.) und der Ausdruck gestartet
  2. Das übertragene und dekomprimierte Spoolfile wird analysiert, die Seiteninhalte (Metafile) werden auf den Clientdrucker übertragen und ggfs. zusätzliche Druckkommandos ausgeführt.
  3. Mit Ende des clientseitigen Druckjobs wird der Thread beendet (Alle Druckthreads sind sequentiell syncronisiert und werden nacheinander abgearbeitet).

Was passiert bei der Abmeldung eines Clienten?

  1. Mit dem Schliessen einer Sitzung beendet sich der Sessionserver automatisch und trennt dadurch seine TCP/IP-Verbindung zum Slimprinterdienst.
  2. Der Slimprinterdienst erkennt das Ende der Session n und löscht alle zu der Session n gehörenden Drucker.
Installation
a) Serverinstallation

Zur Serverinstallation ist der Serverinstaller SlimprintSvc.exe auszuführen. Der Installer installiert folgende Komponenten:

  1. Serverdienst
    1. Der Serverdienst wird installiert und gestartet
    2. Es werden Voreinstellwerte gesetzt, die mit dem Serverdienstcontroller geändert werden können.
  2. Sessionserver
    1. Der Sessionserver benötigt keine weiteren Einstellungen
  3. Serverdienstcontroller
    1. Der Serverdienstcontroller verwaltet die grundlegenden serverseitigen Einstellungen und
    2. ermöglicht die Eingabe des Lizenzcodes sowie zusätzlicher Clientlizenzen.
b) Clientinstallation

Zur Clientinstallation ist der Clientinstaller SlimClient.exe auszuführen. Der Installer installiert folgende Komponenten:

  1. Die Clientdll
    1. Die Clientdll wird in der Registrierung verankert und automatisch an mstsc.exe gebunden
  2. Die Clientverwaltung
    1. Unmittelbar nach der Installation wird die Clientverwaltung gestartet

             

    1. In den Zeilen der Tabelle werden sämtliche lokal installierte Drucker aufgelistet.
    2. In den Spalten der Tabelle können folgende Einstellungen getroffen werden:
    3. In der linken Spalte Auswahl sind die Drucker zu markieren, die in einer RDP-Sitzung verwendet werden sollen. Die angezeigten Druckernamen entsprechen den auf dem Client installierten.
    4. In der Spalte Treiber sind 3 Auswahlmöglichkeiten vorhanden:
      1. WIT Universal: Ein Universaltreiber für die meisten Papierformate und Auflösungen (auch geringe Auflösungen wie 72x72dpi, asymmetrische Auflösungen 360x180 dpi und Faxauflösungen)
      2. WIT Universal2: Ein Universaltreiber mit den Papiergrössen A0,A1,A2 zusätzlich, dafür ohne asymmetrische Auflösungen und einer maximalen Auflösung von 4800 dpi
      3. Originaltreiber: Hier wird der Originaltreiber des Druckers (muss auch auf den Terminalserver installiert sein!) verwendet. Diese Variante kann benutzt werden, wenn die Universaltreiber den Druckvorgang nicht unterstützen (z.B. Plotter)
    5. Die Spalte Privat entscheidet über die Sichtbarkeit des Druckers in einer Terminalserversitzung. Private Drucker sind nur für den Benutzer selbst, Hauptbenutzer und Administratoren sichtbar. Andernfalls ist der Drucker für jedermann sichtbar und benutzbar.
    6. In der Spalte Standard kann ein Drucker als Standarddrucker für die Terminalsession unabhängig vom lokalen Standarddrucker gesetzt werden.
    7. Besitzt ein Drucker mehrere Papierfächer, so kann in der Spalte Schächte eine Zuordnung zwischen den am lokalen Drucker vorhandenen und den in den Universaltreibern vorhandenen 3 Schächten getroffen werden.

            

    Verwendung bei explorerlosem Betrieb (es werden eine oder mehrer Anwendungen direkt mit den Terminalserviceclient gestartet)

    Da mit Beginn der Terminalsitzung der Sessionserver gestartet werden muß, gibt es bei explorerlosem Betrieb Probleme. Deshalb wird bei der Installation der Serverkomponente ein Hilfsprogramm ‚SlimBootstrap.exe’ mit installiert. Standardmäßig ist dieses Programm unter C:\Programme\Slimprinter zu finden. SlimBootstrap.exe sorgt für den Start des Sessionservers und startet weitere Programme, die in der Textdatei Proggis.txt (im selben Verzeichnis wie SlimBootstrap.exe) gespeichert sind (je Zeile ein Programmeintrag). Um für mehrere Benutzer unterschiedliche Konfigurationen zu ermöglichen, können weitere Textdateien mit unterschiedlichem Namen angelegt werden. Der zu verwendende Dateiname wird dann einfach als Parameter (nur durch ein Leerzeichen abgesetzt) an den Eintrag zu Slimbootstrap.exe angefügt. Ist zum Beispiel die Textdatei MyProgs.txt vorhanden wäre für die rdp-Verbindung als Programmstart C.\Programme\Slimprinter\Slimbootstrap.exe C:\Pfad\MyProgs.txt einzutragen.

    Innerhalb der Textdatei stehen dann je Zeile die kompletten Pfade mit auszuführender Datei jeweils in einer Zeile. In diesen zeilenweisen Einträgen sind folgende Platzhalter zulässig:

    "%USERNAME%"

    "%WINDIR%"

    "%USERDOMAIN%"

    "%USERPROFILE%"

    "%ALLUSERPROFILE%"

    "%APPDATA%"

    "%COMPUTERNAME%"

    "%COMSPEC%"

    "%HOMEDRIVE%"

    "%HOMEPATH%"

    "%LOGONSERVER%"

    "%OS%"

    "%TEMP%"

     "%TMP%"

    Das Programm Bootstrap.exe beendet sich selbst, wenn alle durch diesen Mechanismus gestarteten Programme beendet sind. Der Sessionserver wird beendet und die Sitzung geschlossen.

    Lizenzverwaltung

    Die Demoversion von Slimprinter kann durch die Eingabe eines zu der vorhandenen Seriennummer gültigen Lizenzcodes in eine Vollversion umgewandelt werden.

    In der Grundversion werden maximal 5 gleichzeitige Benutzer unterstützt. Die Anzahl der Clientdrucker ist dabei unbegrenzt. Soll die Version auf mehr gleichzeitige Benutzer erweitert werden, müssen zusätzliche Clientlizenzen installiert werden.

    Zusätzliche Clientlizenzen sind ebenfalls an die Serienummer gebunden.

    Clientlizenzen sind mit unterschiedlicher Clientanzahl erhältlich.

    Zum Eintragen einer Clientlizenz muss die Schaltfläche „Neue Lizenz“ geklickt werden und im Popupfenster der Lizenzschlüssel eingetragen werden.

     

    Programmupdates

    Programmupdates erscheinen in loser Folge auf der Website von Slimprinter.

    Die Updates sind generell einmal auf dem Server zu installieren. Ist ein Update der Clientsoftware erforderlich, wird dies unmittelbar bei der Herstellung  der rdp-Verbindung eingeleitet. Nach dem Update ist ein Neustart der rdp-Sitzung erforderlich, andernfalls werden keine Clientdrucker erstellt.

    Serverseitig wird das Clientupdate mit folgender Messagebox gemeldet:

    Clientseitig erscheint folgende Meldung: