Webseiten-Werkzeuge

Benutzer-Werkzeuge


Line-Printer-Daemon

Die Drucker und Gateways des print2forms-Systems verfügen eingangsseitig über eine sogenannte RAW-Schnittstelle. Damit ist gemeint, daß ein Programm eine direkte, bidirektionale TCP/IP-Verbindung zum Drucker oder Gateway aufnehmen kann, über die die Druckdaten übertragen, und gemäß einem festgelegten Protokoll, zum Beispiel PJL oder SNMP, Druckerstati zurückgemeldet werden. Für Windows-Rechner, aber auch viele Host-Systeme wie i5/OS oder z/OS stellt diese Art der Übertragung wegen der Bidirektionalität eine exzellente Lösung dar.

Systeme wie Unix, AIX, Linux oder MAC-OS X bieten zwar ebenfalls RAW-Schnittstellen, diese sind aber der Ausnahmefall und benötigen zusätzlichen Verwaltungsaufwand. Die Standardlösung dieser Systeme zur Übertragung von Druckdaten ist die Nutzung des Protokolls LPR (Line Printer Requester) / LPD (Line Printer Daemon). Auch einige ERP-Systeme wie beispielsweise SAP/R3 nutzen dieses Protokoll direkt aus der Anwendung heraus.

Für solche Anwendungsfälle ist ein besonderes Gateway gedacht: der Line-Printer-Daemon. Seine Aufgabe besteht im Prinzip darin, auf dem Netzwerk unter Port 515 auf Verbindungsanforderungen zu warten und die übertragenen Daten an die Drucker oder Gateways zur Bearbeitung durch print2forms weiterzuleiten. Dabei läuft der LPR-Teil des Protokolls auf dem druckenden Rechner und der LPD-Teil des Protokolls läuft im print2forms.


Dabei gibt es zwei mögliche Szenarien: zum einen sind die übertragenen Daten direkt vom Drucker oder Gateway zu verarbeiten und können direkt weitergeleitet werden. Die Zuordnung einer Warteschlange zu einem bestimmten Drucker oder Gateway geschieht über den Namen der Warteschlange, der mit dem Namen des print2forms-Druckers oder des -Gateways übereinstimmen muss.



Im zweiten Fall werden Datenformate übertragen, die nicht direkt verwertbar sind. Hier bietet der Line-Printer-Daemon die Möglichkeit, mit Hilfe externer Skripte oder Programme, die Druckdaten erst aufzuarbeiten, bevor sie an den Konverter oder das Gateway weitergeleitet werden. Auch hier erfolgt die Zuordnung der Warteschlangen zu Druckern oder Gateways über deren Namen.



Ein Anwendungsfall für dieses Szenario ist beispielsweise, wenn Java-Applikationen PDF-Dateien als Druckdaten anliefern. Der Line-Printer-Daemon schreibt die empfangenen Daten in eine Datei, und übergibt diese zum Drucken dem Adobe Reader, der dann seinerseits die Druckdaten an den gewünschten print2forms-Drucker oder ein -Gateway weitergibt.


Da das LPR/LPD-Protokoll nicht bidirektional ist, werden der druckenden Anwendung natürlich auch keine Statusmeldungen bezüglich des Druckauftrags zurückübermittelt. Da der Line-Printer-Daemon so wie in diesen Fällen üblich, ein vollwertiges Spool-System darstellt, weiss die Applikation nicht einmal, ob und wann überhaupt gedruckt wurde.

Für jeden Konverter oder Gateway wird durch den Line-Printer-Daemon eine sogenannte Warteschlange angelegt, in der Druckaufträge auch dann gesammelt werden, wenn der zugehörige Drucker nicht betriebsbereit sein sollte. Dadurch entsteht automatisch eine zeitliche Entkopplung zwischen der Applikation und dem Druckprozess - die Applikation wird nicht ausgebremst, selbst wenn sie nicht über ein Spool-System druckt.

Daß der Line-Printer-Daemon immer nur auf dem Port 515 hört, bedeutet natürlich nicht, daß jeweils immer nur eine Druckdatei zu einer Zeit übertragen werden kann. Aktuell sind 16 gleichzeitige eingehende und bis zu 250 ausgehende Verbindungen möglich - entsprechend leistungsfähige Hardware und eine Windows-Server-Version vorausgesetzt.


Falls sich der druckende Rechner trotzdem für den Status eines Druckauftrages interessieren sollte, unterstützt der Line-Printer-Daemon auch das Windows/Unix/Linux-Kommando lpq, mit dem Statusinformationen zurückgelesen werden können.

print2forms/service/lineprinterdaemon.txt · Zuletzt geändert: 2019-01-02 16:51 (Externe Bearbeitung)