-
Die
vorliegende Erfindung betrifft im Allgemeinen ein Drucksystem sowie
ein Verfahren zum Verwalten des Druckens von Aufträgen in einem Netzwerk.
-
Die
vorliegende Erfindung ist insbesondere auf ein Verfahren zum Prüfen des
Empfangs von Druckaufträgen,
die von einem oder mehreren Clients erteilt werden, sowie zum Vergeben
der Aufträge
an den ersten verfügbaren
Drucker, der in der Lage ist, den Druckauftrag zu drucken, gerichtet.
-
In
dem grundlegenden herkömmlichen Drucksystem 10 wird,
wie in 1 dargestellt, eine Client-Server-Architektur
eingesetzt, die drei Hauptbestandteile enthält: einen Client 20,
einen Server 40 und eine Ausgabevorrichtung 50.
Der Client 20 überträgt Druck-
und Verwaltungs-Anforderungen zu dem Server 40 und empfängt Rückmeldungen
von dem Server 40, die in Reaktion auf die gestellten Anforderungen
gegeben werden.
-
Der
Server 40 empfängt
diese Anforderungen von dem Client 20, führt die
erforderlichen Aktionen für
jede Anforderung aus und gibt die Rückmeldungen an den Client 20.
Eine derartige Anforderung von einem Client ist eine Druck-Anforderung,
d. h. eine Anforderung, eine oder mehrere Kopien eines oder mehrerer
Dokumente zu drucken, wobei für
die Ausgabe der gedruckten Seiten eines oder mehrere Merkmale genutzt
werden. Zu diesen Merkmalen können
einseitiges oder zweiseitiges Bedrucken, Heften oder Binden und
dergleichen gehören.
Daher stellt eine Druck-Anforderung eine Zusammenstellung eines
oder mehrerer zu druckender Dokumente sowie von Befehlen zum Drucken
dar. Der Server 40 fasst die in der von den Clienten erteilten
Druck-Anforderung angegebenen Dokumente zu einem Druckauftrag zusammen.
Der Server sendet den Druckauftrag und alle dazugehörigen verbundenen Auftrag-Steuerbefehle
zu der Ausgabevorrichtung 50.
-
Die
Ausgabevorrichtung 50 ist eine physische Vorrichtung bzw.
eine Hardwareeinrichtung, die in der Lage ist, Bilder von Dokumenten
wiederzugeben und die von dem Ser ver 40 empfangenen Druckaufträge als Ausdrucke
auszugeben. Die Ausgabevorrichtung 50 kann dann Rückmeldungen
bezüglich ihres
momentanen Zustandes bzw. des Status der empfangenen Druckaufträge an den
Server 40 senden. Die Ausgabevorrichtung 50 ist
normalerweise ein Drucker.
-
Bei
herkömmlichen
Dokument-Drucksystemen muss ein Benutzer den physischen Drucker
angeben, der zum Drucken eines bestimmten Auftrages oder zum Drucken
eines Dokumentes verwendet werden soll. Daher muss der Benutzer
die Attribute jedes verfügbaren
physischen Druckers im Netzwerk kennen, um zu entscheiden, welcher
Drucker am besten das/die gewünschte/n
Dokument/e drucken kann.
-
Wenn
eine Druck-Anforderung von dem Benutzer erteilt wird, wartet der
entsprechende Druckauftrag, bis der angegebene Drucker zum Drucken verfügbar ist.
Wenn bei dem angegebenen Drucker mehrere Druckaufträge auf den
Druck warten, ist es bei dem herkömmlichen Dokumenten-Drucksystem nicht
möglich,
einen oder mehrere der wartenden Druckaufträge zu anderen verfügbaren Druckern
umzuleiten, die in der Lage sind, einen oder mehrere dieser Aufträge zu drucken.
Des Weiteren muss, wenn neue Drucker zu dem Netzwerk hinzugefügt werden,
sich jeder Benutzer über
die Fähigkeiten
jedes neuen Druckers und die Druckadresse für jeden neu hinzugefügten Drucker
vergewissern, wobei dies voraussetzt, dass der Benutzer auch weiß, dass neue
Drucker hinzugefügt
worden sind. Daher können
neue hinzugefügte
Drucker bereits einige Zeit verfügbar
sein, ohne dass sie mit ihrer vollen Kapazität genutzt werden.
-
Obwohl
die Verwaltung von Druckaufträgen in
dem in 1 dargestellten System einfach ist, sind andere
vorhandene Drucksysteme recht kompliziert. Es gibt ein weiterentwickeltes
Drucksystem, wie es unter Bezugnahme auf 2 und 3 beschrieben wird.
Das höher
entwickelte Drucksystem ist für
die Situation geeignet, in der ein Benutzer einem einzelnen Drucker
oder einen logischen Drucker eine Druck-Anforderung erteilt, die
Ausgabe jedoch von einem von mehreren physischen Druckern erzeugt werden
kann. In dieser Konfiguration muss der Benutzer nicht vom Vorhandensein
jedes physischen Druckers in dem System Kenntnis haben. Des Weiteren
will ein Benutzer einen Auftrag nicht einem Drucker erteilen, wenn
die Anforderung durch die Ausgabevorrichtung nicht erfüllt werden
kann. In diesem Fall möchte
der Benutzer, dass das System die Anforderung zurückweist.
-
In
dieser Konfiguration bildet ein logischer Drucker die Druckeigenschaften
von einem von mehreren physischen Druckern ab. Wenn jedoch die Eigenschaften
aller zugehörigen
physischen Drucker durch den logischen Drucker abgebildet werden, kann
diese Abbildung fehlerhaft sein, da eine Druck-Anforderung Eigenschaften
enthalten kann, die auf die mehreren Drucker verteilt sind, während ein
einzelner physischer Drucker nicht die gesamte Druck-Anforderung
unterstützt.
-
Bei
diesem Typ Drucksystem treten zwei Probleme auf, die gelöst werden
müssen.
Eines der Probleme besteht darin, die Annahme der Druckaufträge zu bestätigen, die
von dem Client erteilt werden, und zwar insbesondere zu prüfen, ob
die Druck-Anforderungen des Druckauftrags von dem logischen Drucker
erfüllt
werden, und festzustellen, ob der Auftrag von einem der physischen
Drucker gedruckt werden kann, die zu dem logischen Drucker gehören. Das
zweite Problem, das gelöst
werden muss, besteht darin, wie der Server später feststellen kann, welcher
physische Drucker in der Lage ist, diesen Druckauftrag zu drucken.
Dieses zweite Problem wird als Auftragsabwicklung bezeichnet. Um
die Sache noch komplizierter zu machen, können alle physischen Drucker,
die mit dem Drucksystem verbunden sind, mehrere und dynamisch veränderliche
Fähigkeiten
haben. Dadurch ist es sehr kompliziert, festzustellen, ob das Drucksystem
den Druckauftrag annimmt, und später
festzustellen, welcher physische Drucker den Auftrag drucken kann.
Die vorliegende Erfindung löst,
wie weiter unten erläutert,
diese zwei Probleme.
-
US 5625757 beschreibt ein
vernetztes Drucksystem, in dem Druckaufträge auf einem Spooler gespeichert
werden und ein geeigneter Drucker zum Drucken jedes Druckauftrags
in Abhängigkeit von
den Eigenschaften des Druckauftrags ausgewählt wird.
-
Der
Vereinfachung und dem leichteren Verständnis dienen folgende Definitionen.
Es liegt auf der Hand, dass der Begriff "Spooler" sich auf eine Einheit bezieht, in der
Aufträge
von dem Client empfangen werden, und in der die Prüfung, die
Abwicklung und die Verwaltung stattfinden. Ein „Supervisor" ist eine Einheit,
in der Aufträge
von dem Spooler empfangen und zu den Ausgabevorrichtungen, wie beispielsweise
Druckern, gesendet werden. Ein logischer Drucker ist eine Abbildung
der Eigenschaften eines oder mehrerer dazugehöriger physischer Drucker. Ein
physischer Drucker ist eine Abbildung der Ausgabevorrichtung. Eine
Warteschlange dient als ein Zwischenspeicher für erteilte Aufträge. Eine
Warteschlange enthält
auch die Verbindung zwischen den logischen Druckern und den dazugehörigen physischen
Druckern. Ein Client schließlich
ist eine Einheit, von der Aufträge
erteilt werden. Der Begriff "Attribute" wird als Synonym
für die
Eigenschaften von Druckaufträgen,
Dokumenten, logischen Druckern und physischen Druckern verwendet.
-
Die
Erfindung, die im Detail in den beigefügten unabhängigen Ansprüchen 1 und
8 definiert ist, schafft eine Drucksystemvorrichtung sowie ein Verfahren
zum effektiven Verteilen von Druckfunktionen in einer vernetzten
Datenverarbeitungsumgebung.
-
Das
Drucksystem der Erfindung enthält
einen oder mehrere Clients, wobei jeder Clientdruck-Anforderungen
erteilen kann, einen Server, der die Druck-Anforderungen empfängt, die
Druckerfordernisse der Druck-Anforderungen (beispielsweise Heften,
zweiseitiges Drucken, Blätter
im Format 8,5 × 11)
extrahiert, Druckaufträge
aus den Druck-Anforderungen
erzeugt und die Druckauftrag-Erfordernisse in einer Datenbank speichert,
eine Datenbank, die Attribute der logischen Drucke, Attribute der
physischen Drucker eines Netzwerks und Attribute der Druckaufträge enthält, eine
Warteschlange, die Druckaufträge
speichert, die auf wenigstens einem Netzwerkdrucker gedruckt werden
können,
und wenigstens einen Drucker, der dem Server mitteilt, wenn er im
Leerlauf ist oder bereit ist, einen weiteren Druckauftrag zu drucken.
-
Das
Verfahren der vorliegenden Erfindung bewältigt die Verarbeitung von
Druck-Anforderungen während der
Phase der Auftragsannahme und der Phase der Auftragsabwicklung.
Die Phase der Auftragsannahme schließt das Empfangen von Druck-Anforderungen von
der anfordernden Seite, das Extrahieren von Druck-Erfordernissen
als Attribute, das Erzeugen von Druckaufträgen aus den Druck-Anforderungen,
und das Speichern der Druckauftrag-Attribute in einer Datenbank,
das Erzeugen einer Datenbankabfrage auf Basis der Druckauftrag-Attribute
und das Verwenden der Abfrage ein, um festzustellen, ob der Druckauftrag
von einem oder mehreren der zugehörigen physischen Drucker gedruckt
werden kann. Wenn der Auftrag angenommen ist, wird er in einer Warteschlange
gespeichert, und eine Datenbankabfrage auf Basis der Attribute eines
wartenden physischen Druckers für
jeden wartenden Drucker wird erzeugt, um festzustellen, ob der Auftrag
auf einem der wartenden Drucker gedruckt werden kann.
-
Auch
wenn ein physischer Drucker einen Auftrag zum Drucken anfordert,
wird eine Datenbankabfrage auf Basis der Attribute des wartenden physischen
Druckers erzeugt und verwendet, um festzustellen, welcher der verfügbaren Druckaufträge auf dem
verfügbaren
Drucker gedruckt werden kann. Einer der druckbaren Druckaufträge wird
dann dem wartenden physischen Drucker erteilt. Die letzten zwei
Beschreibungen beziehen sich auf Vorgänge, die während der Phase der Auftragsabwicklung durchgeführt werden.
-
Diese
und andere Merkmale und Vorteile der vorliegenden Erfindung werden
in der folgenden ausführlichen
Beschreibung der bevorzugten Ausführungen beschrieben bzw. gehen
aus ihr hervor.
-
Die
bevorzugten Ausführungen
der vorliegenden Erfindung werden ausführlich unter Bezugnahme auf
die folgenden Figuren beschrieben, wobei:
-
1 ein
Blockschaltbild eines herkömmlichen
Drucksystems ist;
-
2 ein
Blockschaltbild einer vereinfachten Version eines komplexen Drucksystems
ist;
-
3 ein
Blockschaltbild eines physischen Druckers und des entsprechenden
logischen Druckers für
diesen physischen Drucker ist;
-
4 ein
Blockschaltbild des physischen Druckers in 3 und drei
entsprechender logischer Drucker ist, die verschiedene Abstraktionen
des physischen Druckers beschreiben;
-
5 ein
Blockschaltbild von drei physischen Druckern und verschiedenen logischen
Druckern ist, die jeweils einem oder mehreren der physischen Drucker
entsprechen;
-
6 ein
Flussdiagramm ist, das ein Verfahren zum Einsetzen eines Auftrags
in die Druck-Warteschlange gemäß der vorliegenden
Erfindung darstellt;
-
7 ein
Flussdiagramm ist, das detaillierter ein Verfahren darstellt, mit
dem während
der Phase der Auftragsannahme festgestellt wird, ob ein Auftrag auf
dem Drucksystem in 2 gedruckt werden kann;
-
8 ein
Flussdiagramm ist, das ein Verfahren zum Auswählen und Ausgeben von Druckaufträgen aus
der Warteschlange an einen im Leerlauf befindlichen physischen Drucker
nach Einfügen
des Auftrags in die Warteschlange beschreibt;
-
9 ein
Flussdiagramm ist, das ein Verfahren darstellt, mit dem Druckaufträge aus der
Warteschlange ausgewählt
und an einen verfügbaren
physischen Drucker ausgegeben werden, wenn der physische Drucker
einen Auftrag anfordert; und
-
10 ein
Flussdiagramm ist, das ein Verfahren zum Neubewerten alter Druckaufträge darstellt.
-
Das
Drucksystem der vorliegenden Erfindung stellt eine Erweiterung des
herkömmlichen
Systems dar, da ein Serversystem anstelle eines einzelnen Servers
eingesetzt wird, die Erfindung kann jedoch auch in einem System
mit einem einzelnen Server eingesetzt werden. Das Drucksystem 100 kann, wie
in 2 dargestellt, auf einem Universalrechner 400 umgesetzt
werden.
-
Bei
dem Drucksystem 100 der vorliegenden Erfindung werden zwei
verschiedene Abstraktionen verwendet, um die Eigenschaften der mehreren
Ausgabevorrichtungen 500 anzuzeigen, die es unterstützt. Leistungseigenschaften,
die von einem Client 200 in einem Druckauftrag angefordert
werden können
und auf Eigenschaften der zugehörigen
physischen Drucker beruhen, werden verwendet, um einen oder mehrere
logische Drucker 412 zu konfigurieren. Eine oder mehrere
Warteschlangen 414 werden dann verwendet, um die logischen
Drucker 412 einem oder mehreren verschiedenen physischen Druckern 422 zuzuordnen.
-
Das
Serversystem 400 des Netzwerk-Drucksystems teilt seine
Funktionen zwischen zwei verschiedenen Servertypen, d. h. einem
Spooler 410 und einem Supervisor 420, auf. In
einer bevorzugten Ausführung
der vorliegenden Erfindung besteht das Serversystem aus einem Universalrechner.
Der Spooler 410 empfängt
Druck-Anforderungen von einem oder mehreren Clients 200,
und zwar entweder direkt oder über
eine beliebige andere Quelle von Druck-Anforderungen, wie beispielsweise
eine Speicherplatte 300. Die Druck-Anforderungen enthalten Druckdaten
für eines
oder mehrere Dokumente, sowie Druck-Anweisungen, d. h. einseitiges
oder zweiseitiges Drucken, Heften oder Binden, mehrere Kopien usw.
Der Spooler 410 kann auch Client-Verwaltungs-Anforderungen empfangen,
die für
den Spooler 410 oder für
Spooler-Elemente gelten, die die logischen Drucker 412,
Warteschlangen 414 und Druckaufträge enthalten. Der Spooler 410 wandelt die
Druck-Anforderungen in Druckaufträge um.
-
Der
Supervisor 420 führt
die Daten den verschiedenen Ausgabevorrichtungen 500 zu.
Der Supervisor 420 empfängt
die Druckaufträge
von dem Spooler 410, interpretiert die Druckaufträge bezüglich der
Druckanweisungen und -parameter, leitet die Druckdaten, Befehle
und Parameter zu der geeigneten Ausgabevorrichtung 500 und
verarbeitet etwaige Rückmeldungen,
die von der Ausgabevorrichtung 500 kommen. Ein einzelner
Spooler 410 kann mehrere Supervisor 420 unterstützen. Der
Supervisor 420 kann auch Client-Verwaltungs-Anforderungen
empfangen, die für
den Supervisor 420 oder Supervisor-Elemente gelten, die
die physischen Drucker 422 einschließen.
-
Ein
logischer Drucker 412 zeigt bestimmte Eigenschaften und
Fähigkeiten
eines oder mehrerer damit verbundener physischer Drucker 422 an.
Die logischen Drucker 412 sind eine Abstraktion der Druckerfähigkeiten
des Netzwerk-Drucksystems 100. Jeder physische Drucker 422 stellt
eine reale Ausgabevorrichtung 500 dar, die mit dem vernetzten
Drucksystem 100 verbunden ist. Attribute der logischen Drucker 412 und
der physischen Drucker 422 sind in einer Datenbank 600 gespeichert,
die mit dem vernetzten Drucksystem 100 verbunden ist. Die
Drucker-Attribute entsprechen den Druckauftrag-Attributen, die aus
Druck-Anforderungen extrahiert werden. Was den Druckauftrag angeht,
so stellen die Attribute Erfordernisse der Druck-Anforderung dar.
Was die Drucker angeht, so stellen die Attribute die Druckfähigkeiten
der Drucker dar.
-
In
einem vereinfachten Beispiel betrifft eines dieser Attribute "Fertigbearbeitungs"-Vorgänge,
die in einer Druck-Anforderung enthalten sein können, so beispielsweise Binden
oder Heften. Wenn eine Druck-Anforderung das Heften erforderlich
macht, zeigt das Fertigbearbeitungs-Attribut des Druckauftrags dies
an. Desgleichen können
einer oder mehrere physische Drucker des Systems in der Lage sein, Heften
auszuführen.
Daher zeigt das Fertigbearbeitungs-Attribut der physischen Drucker,
die Heften ausführen
können,
dies an. Um ein einfaches Beispiel anzuführen, enthält, wenn ein physischer Drucker,
der heften kann, in Leerlauf geht, die erzeugte Abfrage, das Heften
in dem Fertigbearbeitungs-Attribut. Wenn der Drucker im Leerlauf
auch Binden ausführen
kann, enthält
das Fertigbearbeitungs-Attribut sowohl die Heft- als auch die Bindefähigkeit.
Wenn die Attribute des im Leerlauf befindlichen Druckers mit den
Druckauftrag-Attributen unter Verwendung der Abfragefähigkeit
der Datenbank verglichen werden, wird festgestellt, dass der Druckauftrag
auf dem im Leerlauf befindlichen Drucker gedruckt werden kann, und
wird in die Liste druckbarer Druckaufträge eingeschlossen.
-
In
einem weiteren vereinfachten Beispiel ist ein Attribut zum Beschreiben
der Mediengröße bzw. Papiergröße vorhanden,
das beim Drucken des Auftrags verwendet wird. Wenn eine Druck-Anforderung Papier
in der Größe Legal
erforderlich macht, wird das Druckauftrag-Attribut, das der Mediengröße entspricht,
entsprechend eingestellt. Wenn ein im Leerlauf befindlicher physischer
Drucker auf Papier der Größe Letter
bzw. A4 drucken kann, ist sein Medien-Attribut in der Datenbank
entsprechend eingestellt. Dadurch passiert, wenn die Anfrage auf
Basis der Attribute des im Leerlauf befindlichen Druckers erzeugt
wird, und mit den Druckauftrag-Attributen verglichen wird, der Druckauftrag
den Vergleichsfilter nicht und bleibt daher als wartender Auftrag
in der Warteschlange.
-
In
dem System der vorliegenden Erfindung gibt es viele Druckauftrag-Attribute,
die in jeder Druck-Anforderung angegeben werden, sowie Drucker-Attribute.
Des Weiteren kann ein Drucker in der Lage sein, mehr als einen Typ
Erfordernis für
jedes seiner Attribute zu erfüllen.
Ein Drucker kann, wie oben erläutert
sein, in der Lage sein, Heften und Binden durchzuführen, auf
Medien der Größe Letter
und Legal zu drucken, zweiseitig und einseitig zu drucken usw. Bei
diesem Beispiel würde
die Anfrage Attribute enthalten, die so eingestellt sind, dass sie
diesen Fähigkeiten
entsprechen.
-
Wenn
eine Anfrage für
einen verfügbaren Drucker
mit den oben erwähnten
Fähigkeiten
erzeugt würde,
würde eine
Anfrage bezüglich
eines anhängigen
Druckauftrags gestellt. Die Anfrage würde die Drucker-Attribute mit
den Druckauftrag-Attributen anhängiger
Druckaufträge
vergleichen und feststellen, ob für jeden Druckauftrag Drucken
auf Papier der Größe Letter
oder Legal, Heften oder Binden oder zweiseitiges oder einseitiges
Dru cken erforderlich sind. Wenn ein Attribut eines Druckauftrags
auf eine Eigenschaft eingestellt ist, die in den in der Datenbank
gespeicherten Drucker-Attributen nicht enthalten ist, besteht der
Auftrag die Anfrage nicht und verbleibt in der Warteschlange. Wenn
hingegen alle der Druckauftrag-Attribute den Einstellungen der Drucker-Attribute
entsprechen, besteht der Druckauftrag die Anfrage und wird in eine
Liste druckbarer Aufträge
aufgenommen. Des Weiteren passiert, wenn der Druckauftrag ein bestimmtes
Attribut nicht erforderlich macht, wenn der Auftrag beispielsweise
keinen Fertigbearbeitungs-Vorgang
erforderlich macht, dieser ebenfalls den Filter.
-
Diese
Druckvorgänge
sind nur als Beispiel aufgeführt
und sind in keiner Weise auf die angegebenen beschränkt. Die
Abfragefähigkeiten
der Datenbank stellen das Mittel zum effektiven Verteilen der Druckaufträge an verfügbare Drucker
dar. Die Abfragefähigkeiten
sind aufgrund der großen
Menge an Attributen erforderlich, die zwischen den Druckauftrag-Erfordernissen
und Drucker-Fähigkeiten
verglichen werden müssen.
Des Weiteren können
sich diese Attribute dynamisch ändern,
so beispielsweise, wenn eine Person ein Fach für Papier der Größe Legal
entfernt und ein Fach für
Papier der Größe A4 einsetzt,
oder wenn ein Drucker keine Heftklammern mehr hat. In diesen Situationen
würden
die Drucker-Attribute in der Datenbank aktualisiert und in folgende
Anfragen eingeschlossen werden. Das gleiche gilt, wenn Druckauftrag-Attribute
modifiziert werden.
-
In
einer bevorzugten Ausführung
der vorliegenden Erfindung ist die Datenbank 600 auf dem Server 400 gespeichert.
Es liegt jedoch auf der Hand, dass die Datenbank nicht auf dem Server 400 gespeichert
sein muss, sondern auf jeder beliebigen Vorrichtung gespeichert
sein kann, auf die der Server 400 zugreifen kann.
-
Druckaufträge werden
den logischen Druckern 422 erteilt, um festzustellen, welche
Eigenschaften zu dem Druckauftrag gehören. Der Spooler 410 leitet
die Druckaufträge über eine
Warteschlange 414 zu dem speziellen Supervisor 420,
der einen physischen Drucker 422, der auf einem logischen Drucker 412 abgebildet
ist, über
die Warteschlange 414 unterstützt.
-
Die
Warteschlange 414 verbindet eine Gruppe von Druckaufträgen mit
einer Gruppe logischer Drucker 412 und einer Gruppe physischer
Drucker 414. Die eine bzw. die mehreren Warteschlangen 414 dienen
als Zwischenspeicherstation für
die Druckaufträ ge,
bis der Spooler 410 sie an den entsprechenden Supervisor 420 senden
kann. Ein logischer Drucker 412 kann nur mit einer Warteschlange 414 verbunden
werden und leitet Druckaufträge
in diese eine Warteschlange 414. Desgleichen ist ein physischer
Drucker 422 nur mit einer Warteschlange 414 verbunden
und empfängt
Druckaufträge
von dieser einen Warteschlange 414. Die Ausgabevorrichtung
ist mit einem physischen Drucker verbunden.
-
3 zeigt
eine einfache Konfiguration, in der das Netzwerk-Drucksystem 100 nur
einen logischen Drucker 412, eine Warteschlange 414 und
einen physischen Drucker 422 hat. In dieser Situation dient
der logische Drucker 412 lediglich als Darstellung des
physischen Druckers 422.
-
4 zeigt
eine Situation, in der mehrere logische Drucker 412 die
Warteschlange 414 speisen, die für lediglich einen physischen
Drucker 422 vorhanden ist. In diesem Fall stellen die logischen
Drucker 412 den Clients 200 verschiedene Vorgaben
für Druck-Anforderungen bereit,
die dem Server 410 erteilt werden.
-
5 zeigt
einen komplexen Fall, in dem mehrere logische Drucker 412 und
mehrere physische Drucker 422 vorhanden sind. Die logischen
Drucker 412 und die Warteschlangen 414 können je nach
den Eigenschaften der Druckaufträge
Druckaufträge
zu verschiedenen physischen Druckern 422 leiten. So würde beispielsweise
ein Druckauftrag, der die Ausgabe auf größerem Papier (beispielsweise Papier
der Größe Legal)
und zweiseitiges Drucken erforderlich macht, dem logischen Drucker 1 (LP1) erteilt.
Eine Warteschlange 1 (Q1) kann dann den Druckauftrag entweder
zu einem physischen Drucker 1 (PP1) oder einem physischen
Drucker 2 (PP2) leiten, da beide physische Drucker 422 auf
großes
Papier drucken können
und zweiseitiges Drucken unterstützen.
Daher kann ein Druckauftrag, der großes Papier erforderlich macht,
auf dem ersten verfügbaren
physischen Drucker 422 der physischen Drucker PP1 und PP2
gedruckt werden. Wenn andere Aufträge in der Warteschlange Q1
warten, so beispielsweise ein Druckauftrag, der Heften erforderlich
macht, kann die Warteschlange Q1 den Druckauftrag der großes Papier
erforderlich macht, zu dem physischen Drucker PP1 leiten, und den
Druckauftrag, der Heften erforderlich macht, zu dem physischen Drucker
PP2. Wenn der Druckauftrag, der Heften erforderlich macht, auf dem
physischen Drucker PP2 fertig gedruckt wird und der Druckauftrag,
der großes Papier
erforderlich macht, noch nicht zu einem physischen Drucker geleitet
worden ist, kann die Warteschlange Q1 diesen Druckauftrag zu dem
physischen Drucker PP2 leiten.
-
Es
liegt auf der Hand, dass die Verarbeitung und Verteilung von Druckaufträgen schwierig
wird, wenn die Konfiguration physische Drucker mit sich dynamisch ändernden
Eigenschaften hat. Die logischen Drucker, die die Fähigkeiten
aller damit verbundenen physischen Drucker abbilden, müssen in der
Lage sein, einen Druckauftrag zu prüfen, der dem logischen Drucker
erteilt wird. Schließlich
muss das System in der Lage sein, auf effektive Weise einen physischen
Drucker zu finden, der die speziellen Erfordernisse eines Druckauftrags
erfüllen
kann. Die vorliegende Erfindung betrifft den Einsatz einer Datenbank
und ihrer Abfragefähigkeiten,
um dieses Problem zu lösen.
-
Des
Weiteren liegt auf der Hand, dass die Beispiele in 2–5 lediglich
einige physische Drucker und ihre Eigenschaften aufführen. In
Wirklichkeit können
viele Drucker vorhanden sein, wobei jeder Drucker viele Eigenschaften
haben kann, von denen sich jede dynamisch ändern kann. Der Einsatz einer
Datenbank zum Speichern der Druckauftrag-Erforderniseigenschaften und der Drucker-Fähigkeiten
ermöglicht
es dem System, dynamische Abfragen zu erzeugen, und löst das Problem
der Druckauftrag-Verteilung auf effektive Weise.
-
6 stellt
ein Verfahren zum Ansprechen auf eine Druck-Anforderung dar, die
dem Netzwerk-Drucksystem 100 der vorliegenden Erfindung erteilt
wird. Wenn eine Druck-Anforderung
von einem der Clients 200 gesendet wird, der mit dem Server-System 400 verbunden
ist, beginnt die Steuerroutine in Schritt S100. In Schritt S200
wird die Druck-Anforderung
von dem Server 410 empfangen. In Schritt S300 wird von
dem Server 410 aus der Druck-Anforderung ein Druckauftrag
erzeugt. Dann stellt in Schritt S400 der Server 410 anhand
von Datenbankabfragen fest, ob der Druckauftrag annehmbar ist.
-
Wenn
der Druckauftrag zum Drucken auf dem vernetzten Drucksystem angenommen
werden kann, geht die Steuerung zu Schritt S600 über. Ansonsten springt die
Steuerung zu Schritt S1100 weiter.
-
In
Schritt S600 wird eine Positiv-Rückmeldung
zu dem Client 200 geleitet, der die Druck-Anforderung erzeugt
hat. Dann wird der Druckauftrag in Schritt S700 in eine Warteschlange 414 gestellt.
-
Dann
stellt in Schritt S800 der Server 410 fest, ob der angenommene
Druckauftrag auf einem im Leerlauf befindlichen physischen Drucker 422 gedruckt
werden kann, der zu der Warteschlange 414 gehört, in der
sich der Auftrag befindet. Ein im Leerlauf befindlicher physischer
Drucker ist ein physischer Drucker, der zuvor einen Auftrag angefordert hat,
wobei jedoch kein Auftrag für
diesen Drucker gefunden wurde. Wenn in Schritt S800 festgestellt
wird, dass der angenommene Druckauftrag auf einem im Leerlauf befindlichen
physischen Drucker 422 gedruckt werden kann, geht die Steuerung
zu Schritt S900 über.
Ansonsten springt die Steuerung zu Schritt S1000 weiter.
-
In
Schritt S900 wird der angenommene Druckauftrag auf dem im Leerlauf
befindlichen Drucker gedruckt. Die Steuerung springt dann zu Schritt S1300
weiter, bei dem die Steuerroutine abgebrochen wird. Im Unterschied
dazu verbleibt in Schritt S1000 der angenommene Druckauftrag in
der Warteschlange und wartet auf einen im Leerlauf befindlichen
physischen Drucker, der in der Lage ist, den Auftrag zu drucken.
Die Steuerung springt dann wieder zu Schritt S1300 weiter.
-
Wenn,
wie oben beschrieben, in Schritt S500 der Druckauftrag nicht angenommen
werden kann, springt die Steuerung zu Schritt S1100 weiter. In Schritt
S1100 wird der Druckauftrag abgewiesen. Dann wird in Schritt S1200
eine FEHLER-Meldung an den Client zurückgeführt. Die Steuerung geht dann
zu Schritt S1300 über.
-
7 stellt
ausführlicher
das Verfahren dar, mit dem festgestellt wird, ob ein Druckauftrag
zum Drucken auf dem vernetzten Drucksystem in Schritt S400 angenommen
werden kann. In Schritt S410 stellt der Server fest, ob der Auftrag
von dem logischen Drucker angenommen werden kann. Wenn der Druckauftrag
in Schritt S420 von dem logischen Drucker 412 angenommen
werden kann, geht die Steuerung zu Schritt S430 über. Ansonsten springt die
Steuerung zu Schritt S470 weiter.
-
In
Schritt S430 wird eine Datenbankabfrage erzeugt, die auf den Druck-Erfordernissen
bzw. -attributen des Druckauftrags basiert. Dann wird in Schritt S440
die Abfrage mit den physischen Druckern verglichen, die zu der Warteschlange
gehören,
um festzustellen, ob der Druckauftrag auf wenigstens einem der physischen
Drucker 422 gedruckt werden kann. Wenn der Druckauftrag
in Schritt S450 auf wenigstens einem physischem Drucker 422 gedruckt
werden kann, geht die Steuerung zu Schritt S460 über. Ansonsten springt die
Steuerung zu Schritt S470 weiter. In Schritt S460 wird, da der Druckauftrag
von dem logischen Drucker 412 angenommen werden kann und
von wenigstens einem zugehörigen
physischen Drucker 422 gedruckt werden kann, der Druckauftrag als
druckbar gekennzeichnet. Die Steuerung springt dann zu Schritt S480
weiter.
-
In
Schritt S470 wird, da der Druckauftrag entweder von dem logischen
Drucker 412 nicht angenommen werden konnte oder von einem
der zugehörigen
physischen Drucker 422 nicht gedruckt werden konnte, der
Druckauftrag als nicht druckbar gekennzeichnet. Die Steuerung geht
dann zu Schritt S480 über.
In Schritt S480 wird die Steuerung zu Schritt S500 in 6 zurückgeführt.
-
8 stellt
ausführlicher
das Verfahren von Schritt S800 dar, mit dem festgestellt wird, ob
ein angenommener Druckauftrag auf einem im Leerlauf befindlichen
physischen Drucker gedruckt werden kann. Beginnend in Schritt S800
geht die Steuerung zu Schritt S810 über, in dem die zu der Warteschlange 414 gehörenden im
Leerlauf befindlichen Drucker identifiziert werden. Dann wird in
Schritt S820 eine Datenbankabfrage erzeugt, die auf den Eigenschaften
der im Leerlauf befindlichen physischen Drucker 422 basiert.
Dann wird in Schritt S830 die Abfrage mit den wartenden Aufträgen in der
Warteschlange 414 verglichen. Ein Beispiel einer Abfrage
in normaler Sprache wäre
beispielsweise: "Nenne
mir alle wartenden Aufträge,
für die
Heften, zweiseitiges Drucken und Papier im Format 8,5 × 11 erforderlich
ist." Wenn in Schritt
S840 die Abfrage druckbare Aufträge
ergibt, geht die Steuerung zu Schritt S850 über. Ansonsten springt die
Steuerung zu Schritt S890 weiter.
-
In
Schritt S850 wird eine Liste druckbarer Aufträge aufgrund der Datenbank-Abfrage
zurückgeführt. Dann
wird in Schritt S860 ein druckbarer Auftrag zum Drucken auf dem
im Leerlauf befindlichen physischen Drucker 422 ausgewählt. Anschließend wird
der Druckauftrag in Schritt S870 als "aquiriert" gekennzeichnet. Dann wird in Schritt
S880 der Auftrag zu dem im Leerlauf befindlichen physischen Drucker 422 gesendet.
Die Steuerung geht dann zu Schritt S885 über, von wo aus die Steuerung
zu Schritt S900 zurückkehrt.
-
Wenn
in Schritt S840 keine Aufträge
auf den in Leerlauf befindlichen physischen Druckern gedruckt werden
können,
springt die Steuerung zu Schritt S890 weiter. Wenn in Schritt S890
ein weiterer physischer Drucker 422, der zu der Warteschlange 414 gehört, in Leerlauf
geht, kehrt die Steuerung zu Schritt S715 zurück. Wenn kein anderer physischer Drucker 422,
der zu der Warteschlange gehört,
im Leerlauf ist, geht die Steuerung zu Schritt S895 über, von
wo aus die Steuerung zu Schritt S1000 zurückkehrt.
-
Zur
gleichen Zeit, zu der die Druckaufträge empfangen und geprüft werden,
wie dies in den Schritten S100–S1300
dargestellt ist, informieren die Ausgabevorrichtungen 500 das
Netzwerk-Drucksystem 100, wenn sie zum Drucken zur Verfügung stehen. 9 stellt
dar, wie die druckbaren Druckaufträge, die in den Warteschlangen 414 gespeichert
sind, zum Drucken zu einer Ausgabevorrichtung 500 gesendet
werden. Das Drucksystem wird in Schritt S2000 initialisiert. In
Schritt S2100 sendet eine Ausgabevorrichtung 500 ein Signal,
das das Netzwerk-Drucksystem 100 informiert, dass sie zum
Empfangen und Drucken eines Druckauftrags zur Verfügung steht.
-
In
Schritt S2200 erzeugt das Netzwerk-Drucksystem 100 eine
Datenbankabfrage, die auf den Eigenschaften des anfordernden physischen Druckers 422 basiert.
Es wird eine Anfrage erzeugt, mit der angefragt wird, welche Druck-Erfordernisse des
wartenden Auftrags die Fähigkeiten
dieses physischen Druckers erforderlich machen bzw. von ihnen erfüllt werden
können.
Dann wird in Schritt 52300 die Datenbankabfrage verwendet,
um festzustellen, welche wartenden Druckaufträge auf dem anfragenden physischen
Drucker 422 gedruckt werden können. Wenn in Schritt S2400
Druckaufträge
auf dem verfügbaren
physischen Drucker 422 gedruckt werden können, geht
die Steuerung zu Schritt S2500 über.
Ansonsten springt die Steuerung zu Schritt S2900 weiter.
-
In
Schritt S2500 stellt die Warteschlange 414 eine Liste der
druckbaren Druckaufträge
bereit. Diese Liste könnte
mit jedem beliebigen bekannten Verfahren priorisiert werden. Dann
wird in Schritt S2600 einer der druckbaren Druckaufträge aus der
Liste druckbarer Druckaufträge
ausgewählt.
Danach wird in Schritt S2700 der Auftragsstatus des ausgewählten Druckauftrags
zu "akquiriert" geändert, so
dass der Auftrag in späteren
Anfra gen nicht mehr auftaucht. Dann wird in Schritt S2800 der ausgewählte Auftrag
an den physischen Drucker 422 gesendet und auf der entsprechenden
Ausgabevorrichtung 500 gedruckt. Die Steuerung springt
dann zu Schritt S2950 weiter.
-
In
Schritt S2900 wird, da kein derzeit in der Warteschlange 414 befindlicher
Druckauftrag auf der verfügbaren
Ausgabevorrichtung 500 gedruckt werden kann, der entsprechende
physische Drucker 422 als im Leerlauf befindlich gekennzeichnet.
Die Steuerung geht dann zu Schritt S2950 über.
-
Wenn
in Schritt S2950 das Netzwerk-Drucksystem 100 nicht angehalten
wurde, kehrt die Steuerung zu Schritt S2100 zurück, und das System wartet auf
das nächste
Drucker-Verfügbar-Signal.
Ansonsten geht die Steuerung zu Schritt S2995 über, in dem das System in den
Ruhezustand geht.
-
In
einer anderen bevorzugten Ausführung der
vorliegenden Erfindung kann das vernetzte Drucksystem 100 optional
eine Zeitüberwachung enthalten. 10 stellt
ein Verfahren zum Ausführen dieser
Zeitüberwachung
dar. Wenn die Zeitüberwachung
ausgeführt
wird, wird Schritt S650 (in 6 mit unterbrochenen
Linien dargestellt) integriert, wenn die Druck-Anforderungen in
die Warteschlange 414 gestellt werden. In diesem Fall wird,
statt Steuerweg L690 zu Schritt S700 zu durchlaufen, nachdem eine
OK-Meldung in Schritt 600 zu dem Client zurückgeführt wurde,
Steuerweg L610, der mit der unterbrochenen Linie dargestellt ist,
zu Schritt S650 durchlaufen. In Schritt S650 wird eine maximale
Zeit eingestellt, die der annehmbare Auftrag in der Warteschlange 414 bleiben
kann. Der Prozess geht dann auf dem Steuerweg L660 zu Schritt S700 über.
-
In 10 geht
beginnend in Schritt S3000 die Steuerung zu Schritt S3100 über, in
dem der Server 410 feststellt, ob irgendein wartender Auftrag
seine maximale Zeit in der Warteschlange 414 überschritten
hat, in der er keinem physischen Drucker zugeteilt wurde. Wenn in
Schritt S3200 keine Aufträge
in der Warteschlange 414 ihre maximale Zeit überschritten
haben, kehrt die Steuerung zu Schritt S3100 zurück. Wenn jedoch in Schritt
S3100 ein Auftrag seine maximale Zeit in der Warteschlange 414 überschritten
hat, geht die Steuerung zu Schritt S3500 über.
-
In
Schritt S3500 wird eine Datenbankabfrage erzeugt, die auf den Attributen
des Auftrags basiert, der die Zeit überschritten hat. Dann wird
in Schritt S3600 die Abfrage mit den physischen Druckern verglichen,
die zu der Warteschlange gehören,
um festzustellen, ob der Druckauftrag noch auf wenigstens einem
der physischen Drucker 422 gedruckt werden kann, die zu
der Warteschlange 414 gehören. Wenn in Schritt S3700
der Druckauftrag noch auf wenigstens einem der dazugehörigen physischen
Drucker gedruckt werden kann, geht die Steuerung zu Schritt S3800 über. Ansonsten
springt die Steuerung zu Schritt S3900 weiter.
-
In
Schritt S3800 wird der Auftrag zu der Warteschlange 414 zurückgeleitet,
und die maximale Zeit, die der Druckauftrag in der Warteschlange 414 bleiben
kann, wird zurückgesetzt.
Die Steuerung geht dann zu Schritt S4100 über. In Schritt S3900 wird,
da der Druckauftrag auf keinem der zu der Warteschlange 414 gehörenden physischen
Drucker 422 gedruckt werden kann, der Druckauftrag zurückgehalten.
Dann kann in Schritt S4000 eine Benachrichtigungsmitteilung an den
Benutzer gesendet werden, der den Auftrag erteilt hat, die anzeigt,
dass die Druck-Anforderung auf keinem der zugehörigen Drucker gedruckt werden
kann. Die Steuerung geht dann zu Schritt S4100 über.
-
Wenn
das Netzwerk-Drucksystem 100 nicht angehalten worden ist,
kehrt in Schritt S4100 die Steuerung zu Schritt S3100 zurück. Ansonsten
geht die Steuerung zu Schritt S4200 über, in dem das System in den
Ruhezustand übergeht.
-
Das
Netzwerk-Drucksystem 100 ist, wie in 2 dargestellt,
vorzugsweise auf einem programmierten Universalrechner ausgeführt. Das
Netzwerk-Drucksystem 100 kann jedoch auch auf einem speziellen
Rechner, einem programmierten Mikroprozessor oder Mikrocontroller
und peripheren IC-Elementen, einer ASIC- oder einer anderen integrierten
Schaltung, einer fest verdrahteten Elektronik- oder Logikschaltung,
wie beispielsweise einer Schaltung mit diskreten Elementen, einer
programmierbaren Logikvorrichtung, wie beispielsweise einer PLD,
einer PLA, einer FPGA oder PAL oder dergleichen, ausgeführt werden.
Im Allgemeinen kann jede beliebige Vorrichtung, auf der ein endlicher
Automat realisiert werden kann, der die in 6–9 dargestellten
Flussdiagramme ausführen
kann, eingesetzt werden, um das Netzwerk-Drucksystem 100 umzusetzen.