-
Diese
Erfindung bezieht sich auf ein Verfahren und ein System zum Drucken
von Netzdokumenten, insbesondere auf ein druckerbasiertes Vorab-Ripping
(RIPPING = Raster Image Processing = Rasterbildverarbeitung) und
Cache-Speichern von Netzdokumenten.
-
In
dem Maße,
wie die Computertechnologie fortschreitet, finden sich Computer
immer häufiger
in Privathaushalten, Unternehmen und andernorts, und ermöglichen
es Benutzern, eine zunehmend breite Vielfalt von Aufgaben zu erfüllen. In
dem Maße,
wie Computer immer mehr verbreitet sind, sind sie zudem auch stärker miteinander
verbunden. Lokale Netze sind mittlerweile in Unternehmen üblich und finden
sich immer häufiger
in Privathaushalten. Ferner sind diese lokalen Netze immer stärker mit
Weitverkehrsnetzen (z. B. dem Internet) verbunden, was eine Kommunikation
unter Computern in der ganzen Welt ermöglicht.
-
Eine
Aufgabe, die viele Benutzer oft gerne mit ihren Computern erfüllen, besteht
darin, Dokumente auszudrucken, die von anderen Quellen über das
Netz wiedererlangt werden. Beispielsweise kann es sein, daß Benutzer
auf Servercomputer zugreifen, um Dokumente wiederzuerlangen und
um diese Dokumente auf einem Drucker ausdrucken zu lassen, der entweder über ein
Netz oder direkt auch mit ihrem Computer gekoppelt ist. Angesichts
der Rechenleistung vieler moderner Computer können die zu druckenden Dokumente
jedoch ziemlich komplex sein und ein beträchtliches Maß an Zeit
erfordern, um an den Drucker (über
den Computer, der auf die Dokumente zugreift) übertragen zu werden, und sie
können
auch ein beträchtliches
Maß an
Zeit erfordern, um die Dokumente an dem Drucker tatsächlich zu verarbeiten,
um sie zu drucken. Um also die Zeitdauer, während der ein Benutzer auf
zu druckende Dokumente warten muß, zu verringern, wäre es vorteil haft, eine
Möglichkeit
bereitzustellen, die Druckgeschwindigkeit dieser Dokumente zu verbessern.
-
Merz,
T. beschreibt in „Generalüberholung" in iX 6/1997, Seiten
114 bis 119 das sogenannte „Pull-Printing". Ein Web-Ready-Drucker erhält hier nur
noch den URL des gewünschten
Dokuments, lädt dieses
selbst aus dem Netz, formatiert es und stellt es schließlich in
die druckerinterne Warteschlange.
-
Die
JP 11-134125 A beschreibt eine digitale Kopiervorrichtung, die ohne
Zwischenschaltung eines externen Prozessors auf das Internet zugreifen kann,
um einen Web-Pull-Druck-Auftrag durchzuführen, der auf einen WWW-Server
zugreift, die Daten von demselben herunterlädt und ausdruckt. Ein Anwender
gibt eine entsprechende Aufforderung zum Drucken in die Vorrichtung
ein, und sobald diese Aufforderung empfangen wird oder ein in der
Aufforderung spezifizierter Zeitpunkt eingetreten ist, greift die Vorrichtung
auf das Netz zu, um die zu druckenden Daten herunterzuladen.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren und ein
System zu schaffen, die die zum Drucken von Dokumenten, auf die über ein Netz
zugegriffen wird, benötigte
Zeit verringern und dennoch sicherstellen, das eine aktuelle Version
der Dokumente gedruckt wird.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und durch ein
System gemäß Anspruch
6 gelöst.
-
Hierin
ist ein druckerbasiertes Vorab-Ripping und Cache-Speichern von Netzdokumenten beschrieben.
-
Gemäß einem
Aspekt wird eine Anforderung, auf ein Netzdokument zuzugreifen,
empfangen. Eine Angabe bzw. Anzeige des Netzdokumentes, für das ein
Zugriff angefordert wird, wird anschließend vor einem Empfang einer
Anforderung, das Netzdokument zu drucken, an einen oder mehrere
Drucker weitergeleitet.
-
Gemäß einem
anderen Aspekt wird an einer Druckvorrichtung eine Angabe eines
Netzdokumentes empfangen, wobei die Angabe unabhängig von einer Anforderung,
das Netzdokument zu drucken, empfangen wird. Das angegebene Netzdokument wird
von einer Dokumentenquelle wiedererlangt, in ein druckbereites Format
konvertiert und in dem druckbereiten Format gesichert. Auf einen
Empfang einer Anforderung, das Netzdokument zu drucken, hin druckt
die Druckvorrichtung das Netzdokument unter Verwendung des gesicherten
Dokuments in dem druckbereiten Format.
-
Gemäß einem
anderen Aspekt wird ein Cache-Speicher von Netzdokumenten durch
die Druckvorrichtung unterhalten. Wenn eine Anforderung, ein Netzdokument
zu drucken, empfangen wird, wird eine Prüfung durchgeführt, ob
das Netzdokument in dem Cache-Speicher vorliegt. Falls die aktuelle
Version des Netzdokumentes in dem Cache-Speicher vorliegt, so wird das
Dokument von dem Cache-Speicher zum Drucken erhalten; andernfalls
wird das Dokument von einer entfernten Quelle zum Drucken erhalten.
-
Gemäß einem
weiteren Aspekt wird ein Protokoll, das Netzdokumente identifiziert,
auf die durch eine oder mehrere Client-Vorrichtungen zugegriffen wird,
durch die Druckvorrichtung unterhalten. Auf Verlangen druckt die
Druckvorrichtung das Protokoll, wobei eine Druckkopie von Netzdokumenten,
auf die zugegriffen wird, erstellt wird. Das Protokoll und die gedruckte
Druckkopie umfassen optional einen Zeitstempel, der einen ungefähren Zeitpunkt
in bezug darauf, wann auf das Netzdokument zugegriffen wurde, angibt.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 eine beispielhafte Umgebung,
in der ein Dokumenten-Vorab-Ripping und -Cache-Speichern eingesetzt
werden kann;
-
2 ein beispielhaftes System,
in dem ein druckerbasiertes Vorab-Ripping und Cache-Speichern von
Netzdokumenten durchgeführt
werden kann;
-
3 ein Flußdiagramm,
das einen beispielhaften Prozeß zum
Vorab-Erstellen von druckbereiten Dokumenten veranschaulicht;
-
4 ein Flußdiagramm,
das einen beispielhaften Prozeß zum
Unterhalten und Drucken eines Zugriffsprotokolls veranschaulicht;
-
5 ein weiteres beispielhaftes
System, in dem ein druckerbasiertes Cache-Speichern von Netzdokumenten
durchgeführt
werden kann;
-
6 ein Flußdiagramm,
das einen beispielhaften Prozeß zum
Drucken von Cache-gespeicherten Dokumenten veranschaulicht; und
-
7 einen beispielhaften Computer
in weiteren Einzelheiten.
-
Hierin
wird ein druckerbasiertes Vorab-Ripping und Cache-Speichern von Netzdokumenten
beschrieben. Netzdokumente (oder Teile derselben) werden durch einen
Drucker Cache-gespeichert,
was dem Drucker einen schnelleren Zugriff auf die Dokumente ermöglicht,
wenn eine Anforderung, eines der Dokumente zu drucken, empfangen
wird. Ferner können
druckbereite Versionen von Netzdokumenten durch den Drucker vorab
erstellt werden, so daß, wenn
anschließend
eine Druckanforderung, das Dokument zu drucken, empfangen wird,
das druckbereite Format für
das Dokument dem Drucker bereits zur Verfügung steht. Ferner kann eine
Aufzeichnung von Netzdokumenten, auf die zugegriffen wird, durch
den Drucker unterhalten werden, was ein problemloses Drucken einer
Liste von Netzdokumenten, auf die zugegriffen wird, ermöglicht.
-
1 veranschaulicht eine beispielhafte Umgebung 100,
bei der ein Vorab-Ripping und Cache-Speichern von Dokumenten eingesetzt
werden kann. Eine Client-Rechenvorrichtung 102 ist über ein Netz 112 mit
mehreren Server-Rechenvorrichtungen 104 und 106 sowie
mit mehreren Druckern 108 und 110 gekoppelt. Das
Netz 112 soll beliebige einer breiten Palette von herkömmlichen
Netztopologien und Typen (einschließlich verdrahteter bzw. drahtloser Netze)
darstellen, die beliebige einer breiten Palette von herkömmlichen
Netzprotokollen (einschließlich öffentlicher
bzw. eigener Protokolle) verwenden.
-
Die
Server 104 und 106 umfassen ein oder mehrere Netzdokumente 114 bzw. 116.
Die Server 104 und 106 und die auf denselben gespeicherten Netzdokumente 114 und 116 sind
für die Client-Rechenvorrichtung 102 über das
Netz 112 zugänglich. Die
Dokumente, auf die zugegriffen wird, können ferner durch die Client-Vorrichtung 102 an
dem Drucker 108 bzw. den Drucker 110 gedruckt
werden. Wie veranschaulicht ist, kann ein Drucker direkt mit der
Client-Vorrichtung 102 gekoppelt sein (beispielsweise Drucker 108),
oder auf ihn kann alternativ über
das Netz 112 durch die Vorrichtung 102 zugegriffen
werden (z. B. Drucker 110). Die Netzdokumente 114 und 116 umfassen
jeweils einen oder mehrere unterschiedliche Typen von Daten oder
Inhalt (z. B. Text, Video, statische Bilder usw.). Die Dokumente 114 und 116 können in
einem beliebigen einer Vielzahl von verschiedenen Formaten gespeichert
sein, und bei einem Ausführungsbeispiel
ist jedes Dokument 114 eine einzelne Datei (die wiederum
auf eine oder mehrere andere Dateien dem Namen nach Bezug nehmen
kann, von denen jede beim Drucken als Teil des Dokumentes enthalten
sein soll).
-
Die
Umgebung 100 kann verwendet werden, um einen oder mehrere
einer breiten Palette von unterschiedlichen Typen von Netzdokumenten
zu unterstützen.
Bei einem Ausführungsbeispiel
unterstützt
die Umgebung 100 das World Wide Web (oder einfach das Web),
das eine verteilte Sammlung von miteinander verknüpften, für Benutzer
betrachtbaren Dokumenten (üblicherweise
als Web-Dokumente oder Webseiten bezeichnet) ist, die über das
Internet zugänglich
sind. Man sollte jedoch beachten, daß eine einzige Webseite, obwohl
sie als eine „Seite" bezeichnet wird,
beim Ausdrucken mehrere Blätter
Papier (oder eines anderen Druckmediums) füllt. Das Web bezieht sich auch
auf die Client- und Server-Komponenten, die unter Verwendung von
standardisierten Internet-Protokollen
dem Benutzer einen Zugriff auf solche Dokumente liefern. Aktuell
ist das wichtigste Standardprotokoll, um es Anwendungen zu ermöglichen,
Web-Dokumente zu lokalisieren und wiederzuerlangen, das HyperText
Transport Protocol (HTTP), und die Webseiten werden unter Verwendung
einer standardmäßigen Markup-Sprache
wie beispielsweise HyperText Markup Language (HTML) oder extensible
Markup Language (XML – erweiterbare
Markup-Sprache) codiert. Alternativ können auch andere Protokolle
oder Sprachen verwendet werden. Bei einer beispielhaften Implementierung
ist jedes der Dokumente 114 und 116 eine Webseite,
ist jeder der Server 104 und 106 ein Web-Server
und kommuniziert die Client-Vorrichtung 102 unter Verwendung
von HTTP über
das Netz 112 mit den Servern 104 und 106.
-
Während eines
Betriebs kann der Client 102 auf eines oder mehrere Dokumente 114 und 116 zugreifen
(z. B. über
einen Web-Browser, der an dem Client 102 ausgeführt wird),
und anschließend
anfordern, daß das
Dokument, auf das zugegriffen wurde, an dem Drucker 108 (oder 110)
gedruckt wird. Bei einer Implementierung hat der Drucker 108 (oder 110) eine
Cache-gespeicherte Kopie des Dokuments, auf das zugegriffen wurde,
so daß das
Dokument nicht ansprechend auf die Druckanforderung an den Drucker 108 (oder 110)
gesendet werden muß.
Statt dessen kann der Drucker 108 (oder 110) das
Dokument, auf das zugegriffen wird, unter Verwendung der Cache-gespeicherten Kopie
drucken. Alternativ werden vielleicht lediglich ausgewählte Teile
des Dokuments, auf das zugegriffen wird (z. B. statische Teile,
wie nachfolgend ausführlicher
erörtert
wird) an dem Drucker 108 (oder 110) Cache-gespeichert
werden. Bei einer anderen Implementierung wurde das Dokument, auf
das zugegriffen wurde (oder ausgewählte Teile desselben) bereits
in ein druckbereites Format konvertiert und durch den Drucker 108 (oder 110)
gespeichert. Anschließend,
wenn die Druckanforderung für
das Dokument, auf das zugegriffen wurde, empfangen wird, weist der
Drucker 108 bereits eine druckbereite Version des Dokuments,
auf das zugegriffen wurde, auf und kann schnell beginnen, das Dokument
zu drucken.
-
Die
Drucker 108 und 110 und das Wort „Drucker", wie es hierin verwendet
wird, stellen beliebige einer breiten Palette von Druckvorrichtungen
dar, die in der Lage sind, eine Druckkopie von Daten zu erstellen.
Beispiele solcher Druckvorrichtungen umfassen Laserdrucker, Tintenstrahldruc ker,
Punktmatrixdrucker, Thermodrucker, Faxgeräte, Multifunktionsgeräte (Vorrichtungen,
die die Funktionalität
von zweien oder mehreren eines Druckers, eines Photokopierers, eines
Faxgeräts
und eines Scanners kombinieren) usw.
-
2 veranschaulicht ein beispielhaftes System 130,
in dem ein druckerbasiertes Vorab-Ripping und Cache-Speichern von
Netzdokumenten durchgeführt
werden kann. Das System 130 umfaßt einen Drucker 132 (der
beispielsweise der Drucker 108 oder 110 der 1 sein kann), eine Client-Vorrichtung 134 (die
beispielsweise der Client 102 der 1 sein kann) und eine Server-Vorrichtung 136 (die
beispielsweise der Server 106 der 1 sein kann). 2 wird unter Bezugnahme auf das Web und
auf Webseiten erörtert. 2 kann jedoch unter Verwendung
anderer Typen von Netzen, anderer Typen von Netzdokumenten und anderer
Typen von Protokollen analog arbeiten.
-
Während des
Betriebs ermöglicht
ein Web-Browser 138, der an der Client-Vorrichtung 134 ausgeführt wird,
einem Benutzer der Vorrichtung 134, auf die Server-Vorrichtung 136 zuzugreifen.
Die Server-Vorrichtung 136 umfaßt ein Webserver-Modul 140 und
eine oder mehrere Webseiten 142. Der Benutzer der Client-Vorrichtung 134 gibt
einen Identifizierer einer von Webseiten 142 in den Web-Browser 138 ein,
woraufhin der Browser 138 ansprechend darauf auf das Webserver-Modul 140 zugreift,
um die identifizierte Webseite 142 wiederzuerlangen und
die identifizierte Webseite 142 an der Client-Vorrichtung 134 anzuzeigen
(oder auf andere Weise zu präsentieren,
je nach dem Inhalt der Webseite). Eine bestimmte Webseite 142 kann
auf viele verschiedene Weisen identifiziert werden, beispielsweise
eine Verwendung einer bestimmten Internet-Adresse, die der Webseite
zugewiesen ist, Verwendung eines Einheitsressourcenlokators (URL – uniform
resource locator), der der Webseite entspricht, usw. Eine bestimmte
Webseite 142 kann durch einen Benutzer explizit definiert
werden (z. B. der Benutzer kann den URL oder die Internet-Adresse
der Webseite manuell eintippen), oder sie kann alternativ dazu durch
einen Benutzer auf implizite Weise identifiziert werden (z. B. Auswahl
eines Hyperlink, der einen Link mit der bestimmten Webseite 142 definiert).
-
Der
Web-Browser 138 umfaßt
ferner ein Benachrichtigungsmodul 144. Wenn eine Webseite 142 gegenüber dem
Browser 138 identifiziert wird, leitet das Benachrichtigungsmodul 144 eine
Angabe der Webseitenidentifizierung an den Drucker 132 weiter. Statt
ein Teil des Web-Browsers 138 zu sein, kann sich das Benachrichtigungsmodul 144 alternativ dazu
außerhalb
des Web-Browsers 138 befinden. Falls es sich außerhalb
des Browsers 138 befindet, kann das Benachrichtigungsmodul 144 durch
den Browser 138 über
die identifizierte Webseite 142 informiert werden (z. B.
eine von dem Browser 138 an das Modul 144 gesandte
Nachricht), oder alternativ dazu kann das Benachrichtigungsmodul 144 eine
Aktivität
in der Client-Vorrichtung 134 überwachen, um die Identität der Webseite
zu erfassen (z. B. Kommunikationen, die von dem Browser 138 gesandt
werden, überwachen).
Bei einer Implementierung ist das Benachrichtigungsmodul 144 als
ein eingebettetes virtuelles Gerät
implementiert.
-
Zusätzlich dazu,
daß ein
Benutzer die Angabe der Webseite eingibt, können auch andere Komponenten
oder Module der Client-Vorrichtung 134 eine Angabe einer
Webseite 142, auf die zugegriffen werden soll, eingeben.
Beispielsweise kann eine bestimmte Anwendung, die an der Client-Vorrichtung 134 ausgeführt wird,
entweder über
den Web-Browser 138 oder direkt auf eine Webseite 142 zugreifen. Das
Benachrichtigungsmodul 144 kann die Identität solcher
Webseiten, auf die zugegriffen wird, erfassen und den Drucker 132 von
derselben benachrichtigen.
-
Nachdem
sich das Benachrichtigungsmodul 144 einer identifizierten
Seite bewußt
ist, sendet es eine Angabe der identifizierten Seite an den Drucker 132.
Diese Angabe wird unabhängig
von einer etwaigen Anforderung, die Seite zu drucken, gesandt, die anschließend durch
einen Benutzer der Client-Vorrichtung 134 unterbreitet
und anschließend
an den Drucker 132 gesandt werden kann. Diese Benachrichtigung
kann die Webseite auf dieselbe Weise identifizieren, wie sie durch
den Benutzer (z. B. durch URL) identifiziert wird, oder kann sie
alternativ dazu in einem unterschiedlichen Format identifizieren.
Beispielsweise kann das Modul 144 die Identifizierung der
Webseite in ein durch den Drucker 132 bevorzugtes anderes
Format konvertieren.
-
In
Situationen, bei denen die Client-Rechenvorrichtung 134 mit
mehreren Druckern gekoppelt ist (z. B. Drucker 108 und 110 der 1), kann das Benachrichtigungsmodul 144 die
Angabe der identifizierten Seite an einen bestimmten der mehreren
Drucker senden (z. B. je nachdem, welcher Drucker an der Client-Vorrichtung 134 als
ein vorgegebener oder bevorzugter Drucker eingestellt ist). Alternativ
dazu kann die Angabe an mehrere Drucker gesandt werden (z. B. an
jeden Drucker, der gegenüber
einem Betriebssystem an der Client-Vorrichtung 134 identifiziert
ist). Bei manchen Betriebssystemen (z. B. bei vielen der von Microsoft
Corp., Redmond, WA, USA, erhältlichen
Windows®-Betriebssystemen)
ist ein Benutzer beispielsweise in der Lage, einen Satz von einem
oder mehreren Druckern, auf dem bzw. denen von dem Computer aus
gedruckt werden kann, zu installieren. In dieser Situation kann
jedem beliebigen dieser mehreren Drucker die Angabe der identifizierten
Seite von dem Benachrichtigungsmodul 144 gesandt werden.
-
Man
sollte beachten, daß das
Benachrichtigungsmodul 144 die Angaben an den Drucker 132 sendet,
wenn auf eine Webseite 142 zugegriffen wird, auch wenn
keine Anforderung, die Webseite, auf die zugegriffen wird, zu drucken,
eingegeben wurde (durch den Benutzer oder eine andere Komponente
oder ein anderes Modul). Somit kann der Drucker 132 mehrere
Angaben von Webseiten empfangen, für die niemals Druckanforderungen
empfangen werden oder erst nach einem längeren Zeitraum empfangen werden.
-
Der
Drucker 132 umfaßt
einen Prozessor 146, eine Eingabe-/Ausgabe-Schnittstelle (I-/O-Schnittstelle) 148,
einen Speicher 150 und eine optionale Massenspeichervorrichtung 152,
die über einen
Bus 159 miteinander gekoppelt sind. Die I-/O-Schnittstelle 148 ist
eine Schnittstelle, die es dem Drucker 132 ermöglicht, über ein
Netz mit dem Client 134 und dem Server 136 zu
kommunizieren. Der Prozessor 146 führt Anweisungen aus, die in dem
Speicher 150 und optional in der Massenspeichervorrichtung 152 gespeichert
sind. Der Speicher 150 stellt beliebige einer breiten Palette
von flüchtigen
bzw. nicht-flüchtigen
Speichern, beispielsweise RAM bzw. ROM, dar.
-
Der
durch einen typischen Drucker beim Drucken eines Dokuments durchgeführte Prozeß beinhaltet
ein Empfangen einer Druckanforderung und eines zu druckenden Dokuments
von dem Anforderer. Das Dokument wird in einem Prozeß, der als „Aufbereiten" bezeichnet wird,
in eine bestimmte Seitenbeschreibungssprache (PDL – Page description
language) konvertiert, die durch den Drucker unterstützt wird
(z. B. eine bestimmte PCL-Ebene (PCL = printer control language
= Druckersteuersprache), Postscript usw.). Dieses Aufbereiten wird üblicherweise an
der Rechenvorrichtung durchgeführt,
die den angeforderten Druck unterbreitet. Das aufbereitete Dokument
wird anschließend
in einem Prozeß,
der als „Ripping" bezeichnet wird,
in einen Satz von Hardware-bereiten Bits umgewandelt. Dieses Ripping wird üblicherweise
an dem Drucker durchgeführt. Diese
Hardware-bereiten Bits werden direkt an die Druckmaschine geliefert,
die die Aufbringung einer Drucksubstanz (z. B. Toner oder Tinte)
auf ein Druckmedium (z. B. Papier, Tuch, Transparent, usw.) auf direkte
oder indirekte Weise (z. B. über
ein Übertragungsband)
steuert, so daß die
Drucksubstanz gemäß den gerippten
Daten aufgebracht wird. Dieser Druckvorgang ist Fachleuten hinreichend
bekannt.
-
Der
Speicher 150 speichert eine Vorab-Drucksteuerung 156,
ein Browsing-Modul 158, eine Vorab-Aufbereitungsmaschine 160,
eine Vorab-Rippmaschine 162, eine Liste von vorabgerippten Dokumenten 164,
eine Druckmaschine 168, eine Drucksteuerung 170 und
ein optionales Zugriffsprotokoll 172. Diese Systemkomponenten 156 bis 172 sind
jeweils eine Reihe einer oder mehrerer durch den Prozessor 146 ausführbarer
Anweisungen. Angaben von Webseiten, auf die zugegriffen wird, werden
von dem Client 134 durch die Vorab-Drucksteuerung 156 empfangen.
Die Vorab-Drucksteuerung 156 verwaltet die Erstellung und
Speicherung von Dokumenten in einem druckbereiten Format. Der Begriff
druckbereites Format, wie er hierin verwendet wird, bezieht sich
auf ein Format, in dem das Dokument als Hardware-bereite Bits gesichert
ist, die direkt an eine Druckmaschine geliefert und durch die Druckmaschine
verwendet werden können,
um die Aufbringung einer Drucksubstanz auf das Druckmedium zu steuern.
-
Die
Vorab-Drucksteuerung 156 unterhält eine Aufzeichnung von druckbereiten
Dokumenten in einer Liste von druckbereiten Dokumenten 164.
Die druckbereiten Dokumente sind diejenigen, die zuvor durch den
Drucker 132 empfangen und in eine druckbereite Form konvertiert
wurden. Die druckbereiten Dokumente selbst sind in einem Druckbereite-Datei-Cache-Speicher 166 in
der Massenspeichervorrichtung 152 gespeichert. Alternativ
dazu kann der Cache-Speicher 166 in einem Speicher (z.
B. Speicher 150) oder in einer separaten Vorrichtung (z.
B. einem Netzlaufwerk), der bzw. die von dem Drucker 132 (nicht
gezeigt) entfernt ist, gespeichert sein.
-
Wenn
die Vorab-Drucksteuerung 156 eine Angabe darüber erhält, daß von dem
Client 134 auf eine Webseite zugegriffen wird, kommuniziert
sie die Angabe an das Browsing-Modul 158, das die Webseite
wiedererlangt. Dies kann auch ein Wiedererlangen von Dateien von
anderen Quellen (z. B. Bilddateien, auf die auf der Webseite verwiesen
wird) beinhalten. Wenn also durch eine Client-Vorrichtung 134 auf
eine Webseite zugegriffen wird, greift auch der Drucker 132 auf diese
Webseite zu. Bei einer Implementierung ist das Browsing-Modul 158 ein
eingebetteter Webserver.
-
Die
Webseitendaten werden durch das Browsing-Modul 158 empfangen
und in dem Speicher 150 gespeichert. Manche der Daten,
die als Teil einer Webseite empfangen werden, können einen Zeitstempel umfassen,
der angibt, wann die Webseite zum letzten Mal modifiziert wurde
(der Zeitstempel kann ein Teil der Seite sein, der beim Anzeigen
der Seite durch einen Browser angezeigt werden kann, oder er kann
alternativ in Steuerinformationen enthalten sein, die nicht angezeigt
werden). Die Steuerung 156 vergleicht die Webseite mit
der Liste von druckbereiten Dokumenten 164, um zu bestimmen,
ob in dem Cache-Speicher 166 bereits eine druckbereite Version
dieser Webseite gespeichert ist. Dieser Vergleich kann auf verschiedene
Weisen durchgeführt werden,
und bei einer Implementierung umfaßt die Liste 164 für jede Datei
in dem Cache-Speicher 166 den URL der Webseite, die der
Datei entspricht. Der von dem Client 134 empfangene URL
kann anschließend
mit den URLs in der Liste 164 verglichen werden, und falls
der empfangene URL in der Liste 164 existiert, so befindet
sich eine druckbereite Version des Dokuments bereits in dem Cache-Speicher 166. Alternativ
dazu kann die Bestimmung, ob eine druckbereite Version einer Webseite
bereits in dem Cache-Speicher 166 gespeichert ist, durchgeführt werden,
nachdem die Angabe der Webseite von dem Client 134 erhalten
wurde, jedoch vor einer Wiedererlangung der Webseite von dem Server 136 durch
das Browsing-Modul 158. Auch wenn die Webseite bereits
in dem Cache-Speicher 166 existiert, wird jedoch zumindest
ein Teil der Webseite immer noch von dem Server 136 wiedererlangt,
so daß die
Zeitstempel verglichen werden können,
wie unten erläutert
wird.
-
Falls
der von dem Client 134 empfangene URL in der Liste 164 existiert,
so wird eine Prüfung durchgeführt, ob
die von dem Server 136 empfangene Webseite modifiziert
wurde, seit die druckbereite Version der Webseite in dem Cache- Speicher 166 gesichert
wurde. Diese Prüfung
kann auf viele verschiedene Weisen durchgeführt werden, und bei einer Implementierung
umfaßt
die Liste 164 für
jede Datei in dem Cache-Speicher 166 einen Zeitstempel des
Zeitpunkts, zu dem die Datei zuletzt modifiziert wurde (oder, alternativ
dazu, einen Zeitstempel des Zeitpunktes, zu dem die Datei in dem
Cache-Speicher 166 gesichert wurde). Der Zeitstempel auf
der von dem Server 136 empfangenen Webseite kann somit
mit dem Zeitstempel in der Liste 164 verglichen werden,
und es kann eine Bestimmung durchgeführt werden, daß die Webseite
modifiziert wurde, seit die druckbereite Version in dem Cache-Speicher 166 gesichert
wurde, falls der von dem Server 136 empfangene Zeitstempel
neuer ist als der Zeitstempel in der Liste 164.
-
Falls
die Webseite modifiziert wurde, seit die druckbereite Version in
dem Cache-Speicher 166 gesichert wurde (so daß die druckbereite
Version in dem Cache-Speicher 166 überholt ist), oder falls keine
druckbereite Version der Webseite in dem Cache-Speicher 166 gesichert
ist, so geht die Vorab-Drucksteuerung 156 dazu über, eine
druckbereite Datei zu erstellen, die der von dem Server 136 empfangenen
Webseite entspricht. Falls die durch die Steuerung 156 erstellte
druckbereite Datei eine neuere Version einer bereits in dem Cache-Speicher 166 gespeicherten
druckbereiten Datei ist, so wird die vorherige druckbereite Datei
aus dem Cache-Speicher 166 entfernt,
und die neue druckbereite Datei wird zu dem Cache-Speicher 166 hinzugefügt.
-
Falls
eine neue druckbereite Datei erstellt werden soll, so stellt die
Vorab-Drucksteuerung 156 die Webseitendaten der Vorab-Aufbereitungsmaschine 160 zur
Verfügung.
Die Vorab-Aufbereitungsmaschine 160 konvertiert
die Webseitendaten in eine durch den Drucker 132 verwendete
Sprache (z. B. PCL, PostScript, usw.). Die Webseite, die in dieser vorabaufbereiteten
Sprache dargestellt ist, wird anschließend der Vorab-Rippmaschine 162 zur
Verfügung
gestellt. Die Vorab-Rippmaschine 162 konvertiert die vorabaufbereiteten Sprachdaten
in Hardware-bereite Bits, die wiederum der Steuerung 156 zur
Speicherung in dem Cache-Speicher 166 zur Verfügung gestellt
werden. Alternativ dazu ist bei manchen Implementierungen die Vorab-Rippmaschine 162 in
der Lage, Webseiten direkt in druckbereite Bits zu verarbeiten,
und bei derartigen Implementierungen muß der Drucker 132 nicht
die Vorab-Aufbereitungsmaschine 160 umfassen.
-
Die
Vorab-Drucksteuerung 156 empfängt die durch die Vorab-Rippmaschine 162 erstellten
Hardware-bereiten Bits und speichert die Hardware-bereiten Bits
als Datei in dem Druckbereite-Dateien-Cache-Speicher 166.
Die Steuerung 156 speichert ferner eine Angabe der Datei
in der Liste von druckbereiten Dokumenten (z. B. eine Angabe dessen,
wo sich die Datei in dem Cache-Speicher 166 befindet, bzw.
einen Namen/eindeutigen Identifizierer für die Datei) sowie einen Zeitstempel
für die
Datei (z. B. wann die der Datei entsprechende Webseite 142 zuletzt
modifiziert wurde oder wann die Datei in dem Cache-Speicher 166 gespeichert
wurde) und eine Identifizierung der Webseite 142 (z. B.
den URL der Webseite).
-
Durch
Erstellen einer druckbereiten Datei für eine Webseite 142 kann
der Drucker 132 ein Dokument schneller drucken, wenn eine
Druckanforderung, die Webseite zu drucken, empfangen wird, da die
Aufbereitungs- und Rippprozesse bereits durchgeführt wurden. Eine bei dem Drucker 132 von
der Client-Vorrichtung 134 empfangene Anforderung, eine
Webseite zu drucken, umfaßt
einen Zeitstempel (ursprünglich
durch den Client 134 von der Webseitenquelle empfangen),
der der Webseite 142 entspricht, für die ein Drucken angefordert
wird (und der angibt, wann die Webseite zuletzt modifiziert wurde). Die
Drucksteuerung 170 prüft
die Liste von druckbereiten Dokumenten 164, um zu bestimmen,
ob in dem Cache-Speicher 166 eine
der Webseite entsprechende druckbereite Datei existiert, und, falls
dem so ist, ob der als Teil der Druckanforderung empfangene Zeitstempel
neuer ist als der in der Liste 164 für das druckbereite Dokument
gespeicherte Zeitstempel. Falls in dem Cache-Speicher 166 eine
druckbereite Datei existiert und der als Teil der Druckanforderung empfangene
Zeitstempel nicht neuer ist als der in der Liste 164 für die druckbereite
Datei gespeicherte Zeitstempel, so erlangt die Drucksteuerung 170 die druckbereite
Datei von dem Cache-Speicher 166 wieder und stellt die
Datei der Druckmaschine 168 zum Drucken zur Verfügung. Falls
keine druckbereite Datei existiert oder falls der als Teil der Druckanforderung
empfangene Zeitstempel neuer ist als der Zeitstempel in der Liste 164 (was
angibt, daß die
druckbereite Version der Webseite überholt ist – das heißt, daß sie modifiziert
wurde, seit die druckbereite Datei für die Webseite erstellt wurde),
so verwaltet die Drucksteuerung 170 das Aufbereiten und
Ripping der als Teil der Druckanforderungen empfangenen Daten, statt
die druckbereite Datei in dem Cache-Speicher 166 zu verwenden.
-
In
Situationen, in denen keine Angabe für eine Webseite in bezug darauf,
wann die Webseite zuletzt modifiziert wurde, vorliegt (die Webseite
weist z. B. keinen Zeitstempel auf), so wird die Webseite nicht
vorab-gerippt und in dem Cache-Speicher 166 gespeichert.
Alternativ dazu kann die Webseite trotzdem vorab-gerippt und in
dem Cache-Speicher 166 gespeichert werden, und es können andere
Mechanismen verwendet werden, um zu bestimmen, ob die Cache-gespeicherte
Version die neueste Version ist. Beispielsweise kann der Cache-Speicher 166 eine nicht-gerippte
Version der Webseite sowie eine vorab-gerippte Version speichern.
Wenn eine Anforderung, die Webseite zu drucken, empfangen wird,
werden die als Teil der Druckanforderung empfangenen Daten anschließend verglichen
(z. B. Byte um Byte), um zu bestimmen, ob sie dieselben sind wie
(z. B. identisch sind mit der) Cache-gespeicherten nicht-gerippten
Version. Falls die beiden gleich sind, so kann die Cache-gespeicherte
gerippte Version zum Drucken verwendet werden. Falls die beiden nicht
gleich sind, verwaltet die Drucksteuerung 170 das Aufbereiten
und Ripping der als Teil der Druckanforderung empfangenen Daten,
statt die druckbereite Datei in dem Cache-Speicher 166 zu
verwenden.
-
Die
Vorab-Aufbereitungs- und Vorab-Rippmodule 160 und 162,
die für
den Vorab-Aufbereitungsprozeß verwendet
werden, können
andere Module sein als die für
ein normales Drucken (z. B. beim Drucken ohne Verwendung einer druckbereiten
Datei von dem Cache-Speicher 166) verwendeten Aufbereitungs- und Rippmodule oder
können
alternativ dazu dieselben Module sein.
-
Das
Zugriffsprotokoll 172 wird ebenfalls optional in dem Speicher 150 unterhalten.
Auf ein Empfangen einer Angabe, daß auf eine Webseite zugegriffen
wird, hin fügt
die Steuerung 156 die Angabe (z. B. URL) zu dem Zugriffsprotokoll 172 hinzu
und fügt
optional einen Zeitstempel (z. B. Datum und Uhrzeit) dessen, wann
die Benachrichtigung durch den Drucker 132 empfangen wurde,
hinzu. In dem Zugriffsprotokoll 172 können auch verschiedene andere
Informationen bezüglich
der Webseiten, auf die zugegriffen wird, gespeichert sein, beispielsweise
welche Webseiten gedruckt wurden, welches Format die Seiten aufweisen
(z. B. HTML oder ein anderes Format) und so weiter. Anschließend kann
durch einen Benutzer des Client 134 (z. B. über den
Browser 138) eine Anforderung „drucke Protokoll" eingegeben werden, die
an den Drucker 132 kommuniziert wird. Ansprechend darauf
druckt der Drucker 132 den Inhalt des Zugriffsprotokolls 172.
Somit kann der Benutzer der Client-Vorrichtung 134 ohne
weiteres eine Druckkopieaufzeichnung der Webseiten, auf die er von
der Vorrichtung 134 zugriff, sowie eine Liste derjenigen, auf
die zugegriffen wurde und die gedruckt wurden, erstellen.
-
Die
Steuerung 156 zeichnet optional eine Identität der Client-Vorrichtung
auf, von der die Benachrichtigung empfangen wird. Von der Client-Vorrichtung 134 an
den Drucker 132 gesendete Benachrichtigungen umfassen in
der Regel eine Identifizierung der Vorrichtung 134 als
Quelle der Benach richtigung (z. B. die Netzadresse der Client-Vorrichtung). Die
Steuerung 156 kann anschließend separate Teile des Protokolls 172 für verschiedene
Client-Vorrichtungen 134 unterhalten (womit sie ermöglicht,
daß verschiedene
Aufzeichnungen als Antwort auf eine Drucke-Protokoll-Anforderung
auf der Basis der Identifizierung der Client-Vorrichtung, die die
Drucke-Protokoll-Anforderung liefert, gedruckt werden). Alternativ
dazu können
von der Client-Vorrichtung 134 an den Drucker 132 gesendete
Benachrichtigungen auch eine Angabe des Benutzers umfassen, der derzeit
bei der Client-Vorrichtung 134 angemeldet
ist, und die Steuerung 156 kann getrennte Teile des Protokolls 172 für verschiedene
Benutzer unterhalten. Ein Benutzer verfügt somit über eine Aufzeichnung der Webseiten,
auf die er zugegriffen hat, die durch den Drucker 132 ausgedruckt
wurden, unabhängig davon,
welche Client-Vorrichtung(en) ein Benutzer gerade benutzt.
-
Die
Vorab-Drucksteuerung 156 kann konfiguriert sein, um zu
verschiedenen Zeiten zu arbeiten. Bei einer Implementierung ist
die Steuerung 156 konfiguriert, um zu Zeiten zu laufen
(und somit druckbereite Dateien erstellen zu lassen), in denen der
Drucker 132 nicht in Betrieb ist (z. B. zu den Zeiten,
zu denen der Drucker 132 nicht im Begriff ist, ein Dokument
zu drucken). Somit sollte die Geschwindigkeit, mit der Webseiten,
für die
es keine druckbereite Datei gibt, gedruckt werden, nicht nachteilig
beeinträchtigt werden,
um für
einen Benutzer spürbar
zu sein, jedoch sollte eine für
einen Benutzer spürbare
Verbesserung der Geschwindigkeit erfolgen, mit der Webseiten gedruckt
werden, für
die es eine druckbereite Datei gibt. Alternativ dazu können sowohl
der Prozeß der
Erstellung einer druckbereiten Datei als auch der Prozeß des Druckens
eines Dokuments gleichzeitig (z. B. durch Multi-Tasking) durchgeführt werden.
-
Bei
Implementierungen, bei denen die Steuerung 156 während der
Zeit läuft,
in der der Drucker 132 nicht in Betrieb ist, könnte das
Zugriffsprotokoll 172 als eine Warteschlange 172 von
Webseiten bzw. Webseitenangaben, die erstellt werden, benutzt werden.
Eine Angabe einer Webseitenzugriffsanforderung, die durch den Drucker 132 empfangen
wird, während
der Drucker 132 ein anderes Dokument druckt, wird in der
Warteschlange 172 gesichert. Anschließend, wenn der Drucker 132 nicht
in Betrieb ist, nimmt die Vorab-Drucksteuerung 156 eine
Webseitenangabe aus der Warteschlange 172 und stellt dem Browsing-Modul 158 die
Angabe zur Verfügung,
um die identifizierte Webseite wiederzuerlangen. Falls durch den
Drucker 132 eine Druckanforderung empfangen wird, während eine
druckbereite Datei für
den Cache-Speicher 166 erstellt wird, wird die Erstellung der
druckbereiten Datei vorübergehend
angehalten, bis der Druckvorgang abgeschlossen ist. Die Steuerung 156 kann
Webseitenangaben in einer Vielzahl verschiedener Reihenfolgen aus
der Warteschlange 172 nehmen, beispielsweise Zuerst-Hinein-Zuerst-Hinaus
(FIFO), Zuletzt-Hinein-Zuerst-Hinaus (LIFO), willkürlich usw.
Die Steuerung 156 kann ferner die durch den Drucker 132 empfangenen Druckanforderungen überwachen,
und falls eine Anforderung empfangen wird, eine Webseite zu drucken,
die derzeit in der Warteschlange 172 wartet, kann die Steuerung 156 diese
Webseite zum Zweck einer unmittelbaren Verarbeitung und eines unmittelbaren
Druckens aus der Warteschlange 172 herausnehmen (oder sie
alternativ dazu in der Warteschlange neu positionieren).
-
Der
Cache-Speicher 166 kann einen begrenzten Raum aufweisen,
und deshalb können
Situationen entstehen, in denen zusätzliche druckbereite Dokumente
in dem Cache-Speicher 166 gespeichert werden sollen, jedoch
in dem Cache-Speicher 166 nicht genügend Raum vorhanden ist, um
sowohl die zuvor in dem Cache-Speicher gespeicherten Seiten als
auch die neuen in dem Cache-Speicher zu speichernden Seiten unterzubringen.
In dem Cache-Speicher 166 kann Raum geschaffen werden,
indem ein oder mehrere druckbereite Dokumente aus dem Ca che-Speicher 166 entfernt
werden. Beim Bestimmen, welche(s) Dokument(e) aus dem Cache-Speicher 166 entfernt
werden sollen, können
beliebige einer Vielzahl von Kriterien angewendet werden, beispielsweise
das Alter des Dokuments (z. B. entferne Dokumente, die sich am längsten in
dem Cache-Speicher
befinden), wann das Dokument zuletzt gedruckt wurde (z. B. entferne
Dokumente, die in letzter Zeit nicht gedruckt wurden), Größe (z. B. entferne
sehr große
oder sehr kleine Dokumente zuerst) usw.
-
Webseiten
können
statisch oder dynamisch sein. Statische Webseiten sind Webseiten,
die feststehende Daten aufweisen, die sich weder auf der Basis dessen,
daß der
Benutzer oder die Vorrichtung die Webseite betrachtet, noch auf
der Basis der Eingaben in die Webseite ändern. Dynamische Webseiten
dagegen sind Webseiten, die sich auf der Basis dessen, daß der Benutzer
oder die Vorrichtung die Webseite betrachtet, oder auf der Basis
der Eingaben des Benutzers in die Webseite ändern können (z. B. auf der Basis eines
Eintrags des Benutzers von Daten auf Formularen, auf der Basis von
Position des Cursors des Benutzers auf der Webseite, von Links zu
Daten, die kontinuierlich aktualisiert werden (z. B. Börsenkurse,
Wettervorhersagen usw.) usw.). Dynamische Webseiten können auf
viele verschiedene Weisen erstellt werden, beispielsweise unter
Verwendung von Java Server Pages oder Active Server Pages. Zusätzliche
Informationen bezüglich
Java Server Pages sind von Sun Microsystems Inc., Palo Alto, Kalifornien,
erhältlich,
und weitere Informationen bezüglich
der Active Server Pages sind von Microsoft Corporation, Redmond,
Washington, erhältlich.
Obwohl sie als dynamische Webseiten bezeichnet werden, können dynamische
Webseiten einen oder mehrere statische Teile (z. B. bestimmte Blöcke von
Text oder Bildern, Rahmen oder Hintergründe, die sich nicht verändern, jedoch
andere Bereiche (beispielsweise Formularfelder für Dateneinträge), die
sich ändern).
-
Besonders
vorsichtig sein sollte man beim Vorab-Erstellen von druckbereiten
Versionen von dynamischen Webseiten, da sich der Inhalt der Webseite,
so wie er durch den Benutzer der Client-Vorrichtung betrachtet wird,
aufgrund der Beschaffenheit von dynamischen Webseiten geändert haben
kann, seit die Angabe der Webseite dem Drucker kommuniziert wurde.
Bei einer Implementierung werden dynamische Webseiten gefiltert,
und es werden keine druckbereiten Versionen von dynamischen Webseiten
erstellt. Dieses Filtern kann an der Client-Rechenvorrichtung durchgeführt werden,
so daß die
Angabe der Webseite nicht dem Drucker kommuniziert wird, oder kann
alternativ an dem Drucker durchgeführt werden, so daß jegliche
Angabe einer dynamischen Webseite, die an dem Drucker empfangen wird,
durch den Drucker einfach ignoriert wird. Dynamische Webseiten können auf
verschiedene Weisen identifiziert werden, beispielsweise durch das
Format des URL (z. B. gibt ein URL, der „.jsp" umfaßt, eine Java Server Page an,
und ein URL, der „.asp" umfaßt, gibt
eine Active Server Page an).
-
Alternativ
dazu kann das Vorab-Drucken auch lediglich auf die statischen Teile
einer Webseite angewandt werden, so daß die druckbereite Datei lediglich
den statischen Teil umfaßt.
Wenn eine Druckanforderung von der Client-Rechenvorrichtung empfangen wird, werden
die dynamischen Teile anschließend
aufbereitet und gerippt und dann mit der druckbereiten Version der
statischen Teile zum Zweck des Druckens kombiniert. Auf der Basis
der Art und Weise, auf die die dynamische Seite geschrieben ist,
können
die dynamischen und statischen Teile der Seite ohne weiteres identifiziert
werden (z. B. auf der Basis von Markierungen in dem Dokument, die
beschreiben, wie das Dokument angezeigt werden soll). Beispielsweise
kann eine dynamische Webseite ein Formular mit mehreren Feldern sein,
die durch den Benutzer ausgefüllt
werden müssen.
Das Blankoformular kann vorab-aufbereitet und vorab-gerippt und
als eine druckbereite Datei gesichert werden. Wenn die Druckanforderung
empfangen wird, werden die durch den Benutzer eingegebenen Daten
aus dem Formular anschließend
aufbereitet und gerippt und dann vor einem Drucken mit den druckbereiten
Daten kombiniert. Diese vorab-gerippten statischen Daten und die
neu gerippten, durch den Benutzer eingegebenen Daten können auf
viele verschiedene Weisen kombiniert werden. Beim Schwarz/Weiß-Drucken
(Monochrom-Drucken) können
die gerippten, durch einen Benutzer eingegebenen Daten beispielsweise
den Bits auf den statischen vorab-gerippten Daten überlagert
werden, und es kann eine bitweise logische UND-Operation durchgeführt werden, um den Wert jedes
Bits zu bestimmen. Anhand eines weiteren Beispiels können beim
Drucken in Farbe oder Schwarz/Weiß mit Schattierung (monochrom
mit Grauskalierung) die gerippten, durch den Benutzer eingegebenen
Daten den Bits der statischen vorab-gerippten Daten überlagert
werden, wobei die Werte aus den gerippten, durch den Benutzer eingegebenen
Daten jegliche Werte aus den statischen vorab-gerippten Daten ersetzen.
-
2 veranschaulicht den Vorab-Druckvorgang,
der durch Module in dem Drucker 132 durchgeführt wird.
Alternativ dazu kann der Drucker 132 in Verbindung mit
einem Druckserver, beispielsweise einer zweckgebundenen Druckservervorrichtung oder
einer Druckserveranwendung, die auf einem Servercomputer läuft, arbeiten.
Falls ein Druckserver verwendet wird, kann der hierin beschriebene
Vorab-Druckvorgang
an dem Druckserver statt an dem Drucker selbst durchgeführt werden
(z. B. können
die Steuerung 170 und die Maschinen 160 und 162 an dem
Druckserver implementiert sein, der sich außerhalb des Druckers 132 befindet).
-
3 ist ein Flußdiagramm,
das einen beispielhaften Prozeß zum
Vorab-Erstellen von druckbereiten Dokumenten veranschaulicht. Der
Prozeß der 3 wird durch eine Client-Rechenvorrichtung und
eine Druckvorrichtung, beispielsweise den Client 134 und
den Drucker 132 der 2,
durchgeführt. Der
Einfachheit der Erklärung
halber sind Handlungen, die durch die Client-Rechenvorrichtung durchgeführt werden,
auf der linken Seite der 3 veranschaulicht, während Handlungen,
die durch die Druckvorrichtung durchgeführt werden, auf der rechten
Seite der 3 veranschaulicht
sind.
-
Anfänglich wird
an der Client-Rechenvorrichtung eine Anforderung, zu einem Dokument
zu browsen, empfangen (Handlung 202). Die Client-Rechenvorrichtung
greift auf eine Quelle zu, um das Dokument wiederzuerlangen (Handlung 204).
Die Quelle des Dokuments kann der Server, der das Dokument beherbergt,
oder alternativ dazu ein Vermittler sein (z. B. ein Daten-Cache-Speicher
zwischen dem Client und dem Server). Zusätzlich zu einem Wiedererlangen
des Dokuments wird eine Angabe des Dokuments an den Drucker gesandt
(Handlung 206).
-
Der
Drucker empfängt
die Angabe des Dokuments, auf das durch die Rechenvorrichtung zugegriffen
wird (Handlung 208) und erlangt das Dokument ferner von
einer Quelle wieder (Handlung 210). Die Quelle, von der
der Drucker das Dokument wiedererlangt, kann dieselbe sein wie die
Quelle, von der die Client-Rechenvorrichtung das Dokument wiedererlangt,
oder kann alternativ dazu eine andere Quelle sein (z. B. kann eine
das Dokument von einem Cache-Speicher wiedererlangen, während die
andere das Dokument von einem Server, der das Dokument beherbergt,
wiedererlangt, oder eine kann zu einem anderen Server, der dasselbe
Dokument beherbergt, geroutet werden (z. B. um eine Überlastung
des ersten Servers zu vermeiden)). Bei manchen Ausführungsbeispielen
(beispielsweise bei einer direkten Verbindung mit dem Drucker) kann
der Drucker das Dokument direkt von der Rechenvorrichtung empfangen.
-
Nach
der Wiedererlangung prüft
der Drucker, ob eine aktuelle druckbereite Version des Dokuments existiert
(Handlung 212). Falls eine aktuelle druckbereite Version
existiert, endet der Prozeß (Handlung 214),
da kein neues druckbereites Dokument erstellt werden muß. Falls
jedoch keine aktuelle druckbereite Version existiert (z. B. es gibt
keine druckbereite Version, oder die druckbereite Version, die existiert,
ist überholt),
so wird das wiedererlangte Dokument in ein druckbereites Format
konvertiert (Handlung 216). Das Dokument in dem druckbereiten
Format wird anschließend
gesichert (Handlung 218).
-
Anschließend und
ohne Zusammenhang mit dem Senden der Angabe des Dokuments an den Drucker
bei Handlung 206 wird an der Client-Rechenvorrichtung eine
Anforderung, das Dokument zu drucken, empfangen (Handlung 220).
Diese Druckanforderung kann unmittelbar nachdem das Dokument in
die Rechenvorrichtung geladen wird (z. B. unmittelbar nachdem eine
Webseite einem Benutzer der Client-Rechenvorrichtung angezeigt wird) empfangen
werden, oder, alternativ dazu, einige Zeit später (z. B. Stunden, Tage, Wochen
usw. nachdem das Dokument zu der Client-Rechenvorrichtung wiedererlangt
wurde). Bevor die Druckanforderung bei Handlung 220 empfangen
wird, kann auf eine beliebige Anzahl (null oder mehr) zusätzlicher
Dokumente durch die Client-Rechenvorrichtung zugegriffen worden
sein.
-
Nachdem
sie empfangen wurde, wird die Druckanforderung an den Drucker gesandt
(Handlung 222). Die Druckanforderung kann das zu druckende
Dokument umfassen oder kann alternativ dazu lediglich eine Angabe
(z. B. URL) des zu druckenden Dokuments umfassen. Die Druckanforderung
wird an dem Drucker empfangen (Handlung 224), der prüft, ob eine
aktuelle druckbereite Version des Dokuments existiert (Handlung 226).
Falls eine aktuelle druckbereite Version existiert, erlangt der Drucker
das Dokument in einem druckbereiten Format wieder (Handlung 228)
und druckt das Dokument (Handlung 230). Falls jedoch keine
aktuelle druckbereite Version existiert (z. B. es gibt keine druckbereite Version
oder die druckbereite Version, die existiert, ist überholt),
so wird das zu druckende Dokument aufbereitet und gerippt (Handlung 232)
und gedruckt (Handlung 230). Alternativ dazu kann das Aufbereiten
durch die Client-Rechenvorrichtung statt durch den Drucker durchgeführt werden.
Ferner kann die gerippte Version des Dokuments durch den Drucker als
eine druckbereite Version des Dokuments gesichert werden, die verwendet
werden soll, falls nachfolgende Anforderungen, das Dokument zu drucken, empfangen
werden.
-
Alternativ
dazu können
die Handlungen 220 und 222 durch eine andere Client-Rechenvorrichtung als
die Vorrichtung, die die Handlungen 202, 204 und 206 durchführte, durchgeführt werden.
Somit kann das Dokument in einer druckbereiten Form durch den Drucker
zum Drucken verwendet werden, unabhängig davon, welche Vorrichtung
die Angabe ursprünglich
an den Drucker sandte, die bewirkte, daß der Drucker die druckbereite
Form erstellte. Man beachte ferner, daß die Handlungen 220 und 222 durch
eine Client-Rechenvorrichtung durchgeführt werden können, die
kein Benachrichtigungsmodul 144 der 2 umfaßt.
-
4 ist ein Flußdiagramm,
das einen beispielhaften Prozeß zum
Unterhalten und Drucken eines Zugriffsprotokolls veranschaulicht.
Der Prozeß der 4 wird durch eine Client-Rechenvorrichtung und
eine Druckvorrichtung, beispielsweise den Client 134 und
den Drucker 132 der 2,
durchgeführt. Der
Einfachheit der Erklärung
halber sind Handlungen, die durch die Client-Rechenvorrichtung durchgeführt werden,
auf der linken Seite der 4 veranschaulicht,
während
Handlungen, die durch die Druckvorrichtung durchgeführt werden,
auf der rechten Seite der 4 veranschaulicht
sind.
-
Anfänglich wird
an der Client-Rechenvorrichtung eine Anforderung, zu einem Dokument
zu browsen, empfangen (Handlung 240). Die Client-Rechenvorrichtung
greift auf eine Quelle zu, um das Dokument wiederzuerlangen (Handlung 242).
Die Quelle des Dokuments kann der Server, der das Dokument beherbergt,
oder alternativ dazu ein Vermittler sein (z. B. ein Daten-Cache-Speicher
zwischen dem Client und dem Server). Zusätzlich zu einem Wiedererlangen
des Dokuments wird eine Angabe des Dokuments (z.B. seines URL) an
den Drucker gesandt (Handlung 244).
-
Der
Drucker empfängt
die Angabe des Dokuments, auf das durch die Rechenvorrichtung zugegriffen
wird (Handlung 246) und sichert die Angabe in einem Protokoll
(Handlung 248). Bei Handlung 248 kann der Drucker
optional auch einen der Dokumentangabe zugeordneten Zeitstempel
sichern. Bei Handlung 248 kann der Drucker ferner Angaben
basierend auf der Client-Vorrichtung (z. B. verschiedene Protokolle
für verschiedene
Client-Vorrichtungen) oder basierend auf dem Benutzer (z. B. verschiedene Protokolle
für verschiedene
Benutzer, unabhängig davon,
welche Client-Vorrichtung er gegenwärtig benutzt) sichern.
-
Schließlich wird
eine Anforderung, das Protokoll zu drucken, an der Client-Vorrichtung
empfangen (Handlung 250), und einen Drucke-Protokoll-Anforderung
wird an den Drucker gesandt (Handlung 252). Der Drucker
empfängt
die Drucke-Protokoll-Anforderung
(Handlung 254) und druckt als Reaktion auf die Drucke-Protokoll-Anforderung
die Netzdokumentangaben in dem Protokoll aus (Handlung 256). Dieses
Drucken kann ein Drucken aller Angaben in dem Protokoll, lediglich
der Angaben in dem Protokoll, die durch den Drucker von derselben
Client-Vorrichtung, die die Drucke-Protokoll-Anforderung gesandt hat, empfangen wurden,
oder lediglich der Angaben in dem Protokoll, die durch den Drucker
von demselben Benutzer wie dem der Client-Vorrichtung zu dem Zeitpunkt,
zu dem die Drucke-Protokoll-Anforderung gesandt wurde, empfangen
wurden, umfassen.
-
Ferner
können
verschiedene Filter oder Suchparameter in Zusammenhang mit dem Protokoll,
das durch den Drucker unterhalten wird, verwendet werden. Als Teil
der Drucke-Protokoll-Anforderung
kann der Benutzer beispielsweise anfordern, daß lediglich Angaben in dem
Protokoll, die Zeitstempel in einem gewissen Bereich aufweisen,
gedruckt werden (z. B. lediglich die Protokolleinträge mit Zeitstempeln in
der letzten Stunde), oder er kann anfordern, daß lediglich Angaben in dem
Protokoll, die bestimmte Schriftzeichen umfassen, gedruckt werden (z.
B. lediglich URLs, die die Schriftzeichen „hp" umfassen) usw. Der Benutzer druckt
eventuell lediglich diejenigen Angaben, die tatsächlich gedruckt wurden, oder
diejenigen, die tatsächlich
durch einen bestimmten Benutzer oder eine Gruppe von Benutzern für einen
gegebenen Zeitrahmen, in einem spezifischen Dokumentformat oder
bezüglich
etwaiger anderer Kriterien, die durch den Anforderer auferlegt wurden,
gedruckt wurden.
-
5 veranschaulicht ein weiteres
beispielhaftes System 260, bei dem ein druckerbasiertes
Cache-Speichern von Netzdokumenten durchgeführt werden kann. Das System 260 ist ähnlich dem
System 130 der 2,
jedoch ist das Vorab-Drucken
in dem System 260 nicht veranschaulicht. Bei dem System 260 sind
die Webseiten vielmehr durch den Drucker im Cache-Speicher gespeichert,
so daß sie
nicht zum Zweck des Druckens an den Drucker transferiert werden
müssen.
-
Das
System 260 umfaßt
eine Client-Rechenvorrichtung 262, eine Server-Vorrichtung 264 und
einen Drucker 266. Der Client 262 umfaßt einen
Browser 268, analog zu dem Client 134 und dem
Browser 138 der 2 (jedoch
ohne das Benachrichtigungsmodul 144). Der Server 264 umfaßt ein Webserver-Modul 270 und
eine oder mehrere Webseiten 272, analog zu dem Server 136,
dem Modul 140 und den Webseiten 142 der 2. Der Drucker 266 umfaßt einen
Prozessor 274, eine I-/O-Schnittstelle 276, eine
optionale Massenspeichervorrichtung 278 und einen Speicher 280,
die über
einen Bus 282 miteinander gekoppelt sind, analog zu dem
Prozessor 146, der I-/O-Schnittstelle 148, der
Massenspeichervorrichtung 152, dem Speicher 150 und dem
Bus 154 der 2.
-
Die
Massenspeichervorrichtung 278 umfaßt einen Datei-Cache-Speicher 284 von
Webseiten. Der Cache-Speicher 284 umfaßt Kopien von ausgewählten der
Webseiten 272, die zum Drucken durch den Drucker 266 verwendet
werden können,
wodurch das Erfordernis, darauf zu warten, daß die Daten für die Druckseite,
die gedruckt werden muß,
von der Client-Vorrichtung 262 an den Drucker 266 kommuniziert
werden, abgemildert wird. Welche Webseiten ausgewählt dazu
auserwählt
werden, Kopien in dem Cache-Speicher 284 speichern zu lassen,
kann auf viele verschiedene Weisen bestimmt werden. Bei einer Implementierung
bestimmt ein Administrator (der z. B. für den Client 262 bzw.
Drucker 266 verantwortlich ist), welche Webseiten Kopien
in dem Cache-Speicher 284 speichern lassen sollen (z. B.
auf der Basis der Annahme des Administrators, auf welche Seiten
am wahrscheinlichsten zugegriffen wird, welche Seiten zum Herunterladen
von dem Client 262 zu dem Drucker 266 die längste Zeit
benötigen, usw.).
Alternativ dazu kann ein Modul des Speichers 280 (z. B.
ein Drucksteuerungsmodul) überwachen, welche
Webseiten durch den Drucker 266 am häufigsten gedruckt werden, und
Kopien dieser Webseiten in dem Cache-Speicher 284 aufbewahren.
-
Der
Speicher 280 umfaßt
eine Drucksteuerung 286, eine Liste von im Cache-Speicher
gespeicherten Dateien 288, eine Aufbereitungsmaschine 290,
eine Rippmaschine 292 und eine Druckmaschine 294.
Während
eines Betriebs wird eine Druckanforderung durch die Drucksteuerung 286 empfangen. Es
wird eine Prüfung
durchgeführt,
ob die Seite, für die
ein Drucken angefordert wird, in dem Cache-Speicher 284 gespeichert
ist, indem auf die Liste von im Cache-Speicher gespeicherten Dateien 288 zugegriffen
wird. Die Liste von im Cache-Speicher gespeicherten
Dateien 288 ist eine Aufzeichnung der in dem Cache-Speicher 284 gespeicherten
Webseiten (z. B. des URL für
die Webseite, des Dateinamens für
die Webseite, des Dateinamens bzw. Pfadnamens für ein Netzdokument usw.). Falls
eine Kopie der für
ein Drucken angeforderten Seite in dem Cache-Speicher 284 existiert,
verwendet die Drucksteuerung 286 die Kopie von dem Cache-Speicher 284 zum
Drucken. Falls jedoch keine derartige Kopie in dem Speicher 284 existiert,
so werden die von dem Client 262 empfangenen Daten zum
Drucken verwendet.
-
Unabhängig davon,
ob die Daten aus dem Cache-Speicher 284 oder aus dem Client 262 empfangen
werden, verwaltet die Drucksteuerung 286 die Aufbereitungsmaschine 290,
die Rippmaschine 292 und die Druckmaschine 294,
um eine Druckkopie der Webseiten zu drucken. Alternativ dazu kann
der Cache-Speicher 284 druckbereite
Versionen der Webseiten (z. B. vorab-aufbereitet und vorab-gerippt) speichern,
analog zu der obigen Erörterung
unter Bezugnahme auf 2 und 3.
-
Ferner
können
Situationen entstehen, in denen eine Kopie einer in dem Datei-Cache-Speicher 284 gespeicherten
Webseite sowohl statische als auch dynamische Teile umfaßt. In solchen
Situationen werden nur die statischen Teile in dem Cache-Speicher 284 gesichert,
und die dynamischen Teile werden von dem Client 262 empfangen.
-
Bei
einem Ausführungsbeispiel
ist sich der Client 262 des Datei-Cache-Speichers 284 bewußt und kommuniziert
somit Webseiten, die sich bereits in dem Cache-Speicher 284 befinden,
eventuell nicht an den Drucker 266. Beispielsweise kann
der Browser 268 eine Druckanforderung an den Drucker 266 senden
und anschließend
auf eine Angabe von der Drucksteuerung 286 warten, ob die
Daten für
die Webseite an den Drucker 266 gesendet werden müssen (auf
der Basis dessen, ob die Webseite in der Liste 288 identifiziert
ist). Im Fall dynamischer Daten kann der Browser 268 die
dynamischen Daten zusammen mit der Druckanforderung senden oder
alternativ dazu auf die Angabe von der Drucksteuerung 286 warten,
ob lediglich die dynamischen Daten gesendet werden müssen oder
ob sowohl die dynamischen als auch die statischen Daten gesendet
werden sollen.
-
Bei
einem anderen Ausführungsbeispiel
ist sich der Client 262 des Datei-Cache-Speichers 284 eventuell
nicht bewußt
und kommuniziert somit eventuell Webseiten an den Drucker 266,
ohne sich darum zu kümmern,
ob diese Seiten in dem Cache-Speicher 284 enthalten sind.
Obwohl der Client 262 Daten für die Webseiten an den Drucker 266 übermitteln kann, kann
die Drucksteuerung 286 bei diesem Ausführungsbeispiel auf ein Identifizieren
hin, daß eine Kopie
der Webseite in dem Cache-Speicher 284 enthalten ist, die
Daten, die von dem Client 262 empfangen werden, einfach
ignorieren (oder alternativ dazu lediglich die statischen Daten
ignorieren) und damit beginnen, die Webseite auf der Basis der Kopie
in dem Cache-Speicher 284 zu drucken, obwohl noch nicht
alle Daten von dem Client 262 empfangen wurden. Dies kann
Situationen entstehen lassen, in denen beispielsweise ein Drucker 266 ein
Drucken einer Webseite beendet hat, bevor der Client 262 alle Webseitendaten
an den Drucker 266 transferiert hat.
-
6 ist ein Flußdiagramm,
das einen beispielhaften Prozeß zum
Drucken von in einem Cache-Speicher gespeicherten Dokumenten veranschaulicht.
Der Prozeß der 6 wird durch eine Druckvorrichtung,
beispielsweise einen Drucker 266 der 5, durchgeführt.
-
Anfänglich wird
eine Druckanforderung empfangen (Handlung 302), und es
wird der Cache-Speicher geprüft,
um zu bestimmen, ob das Dokument, für das ein Drucken angefordert
wird, in dem Cache-Speicher vorliegt (Handlung 304). Falls
sich das Dokument nicht in dem Cache-Speicher befindet, wird das
Dokument von einer entfernten Quelle (z. B. dem Client, der ein
Drucken des Dokuments anfordert) zum Zweck des Druckens erhalten
(Handlung 306) und gedruckt (Handlung 314). Falls
sich das Dokument jedoch in dem Cache-Speicher befindet, wird eine
Prüfung
durchgeführt,
ob das Dokument dynamische Teile aufweist (Handlung 308).
Diese Prüfung kann
auf viele verschiedene Weisen durchgeführt werden, beispielsweise
auf der Basis dessen, ob der URL eine in Java Server Page oder Active
Server Page geschriebene Webseite angibt. Falls das Dokument keine
dynamischen Teile aufweist, wird das Dokument zum Drucken von dem
Cache-Speicher erhalten (Handlung 310) und gedruckt (Handlung 314). Falls
das Dokument jedoch dynamische Teile aufweist, so wird bzw. werden
der bzw. die statische(n) Teil(e) des Dokuments von dem Cache-Speicher erhalten,
und der bzw. die dynamische(n) Teil(e) wird bzw. werden zum Drucken
von einer entfernten Quelle erhalten (Handlung 312) und
gedruckt (Handlung 314).
-
7 veranschaulicht einen
beispielhaften Computer 350 in zusätzlichem Detail. Der Computer 350 kann
beispielsweise ein Client 102 oder ein Server 104 oder 106 der 1 sein. Der Computer 350 stellt
eine breite Palette von Rechenvorrichtungen, beispielsweise Desktop-Computer,
tragbare Computer, zweckgebundene Servercomputer, Multiprozessor-Rechenvorrichtungen,
persönliche
digitale Assistenten (PDAs – personal
digital assistants), in der Hand zu tragende oder stiftbasierte
Computer, mikrosteuerungsbasierte elektronische Vorrichtungen usw. dar.
-
Der
Computer 350 umfaßt
einen Prozessor 352, einen Speicher 354, eine
Massenspeichervorrichtung 356 und eine Eingabe-/Ausgabe-Schnittstelle
(I-/O-Schnittstelle) 358, die alle über einen Bus 360 gekoppelt
sind. Der Bus 360 stellt einen oder mehrere Busse in dem
Computersystem 350 dar, beispielsweise einen Systembus,
einen Prozessorbus, eine schnelle Graphikschnittstelle (AGP – accelerated graphics
port), einen PCI-Bus (PCI = peripheral component interconnect),
einen Universalserienbus (USB – universal
serial bus) und so weiter. Die Busarchitektur kann je nach Rechenvorrichtung
sowie je nach Hersteller variieren. Die I-/O-Schnittstelle 358 ist eine
oder mehrere herkömmliche
Schnittstellen, die es Komponenten des Computers 350 (z.
B. dem Prozessor 352) ermöglichen, über ein Netz mit anderen Rechenvorrichtungen
zu kommunizieren, Eingaben von einem Benutzer zu empfangen und einem Benutzer
Ausgaben zu präsentieren.
Die I-/O-Schnittstelle 358 kann beispielsweise ein oder mehrere
der folgenden umfassen: ein Modem, eine Netzschnittstellenkarte
(NIC – network
interface card), eine Tastatur, eine Cursorsteuervorrichtung (z. B.
eine Maus, ein Tastfeld, eine Rollkugel usw.), eine Anzeigevorrichtung,
Lautsprecher, ein Mikrophon und so weiter.
-
Der
Speicher 354 stellt einen flüchtigen bzw. nichtflüchtigen
Speicher dar, der verwendet wird, um Anweisungen und Daten zur Verwendung
durch den Prozessor 352 zu speichern. Üblicherweise werden Anweisungen
in einer Massenspeichervorrichtung 356 (oder einem nicht-flüchtigen
Speicher) gespeichert und zur Ausführung durch den Prozessor 352 in einen
flüchtigen
Speicher 354 geladen. Es können auch zusätzliche
Speicherkomponenten beteiligt sein, beispielsweise Cache-Speicher,
die sich in dem oder außerhalb
des Prozessors 352 befinden. Verschiedene Ausführungsbeispiele
der Erfindung können
zu unterschiedlichen Zeiten, bei beliebigen einer Vielzahl von computerlesbaren
Medien, die einen Teil des Computers 350 bilden oder durch
denselben lesbar sind, implementiert sein. Beispielsweise können solche
computerlesbaren Medien die Massenspeichervorrichtung 356,
der Speicher 354 oder ein Cache-Speicher, eine entfernbare
Platte (nicht gezeigt), auf die durch den Prozessor 352 oder
eine andere Steuerung des Computers 350 zugegriffen werden kann
(beispielsweise eine Magnetplatte oder eine optische Platte) und
so weiter sein.
-
Der
Computer 350 ist lediglich exemplarisch. Man sollte sich
darüber
im klaren sein, daß in
dem Computer 350 zusätzliche
Komponenten (nicht gezeigt) enthalten sein können und daß manche Komponenten, die in
dem Computer 350 veranschaulicht sind, nicht enthalten
sein müssen.
Beispielsweise können
in dem Computer 350 zusätzliche
Prozessoren oder Speichervorrichtungen, zusätzliche I-/O-Schnittstellen
und so weiter enthalten sein, oder die Massenspeichervorrichtung 356 ist
eventuell nicht enthalten.
-
Die
hierin gegebenen Erläuterungen
beziehen sich vorwiegend auf Softwarekomponenten und Module, die
durch eine Rechenvorrichtung ausgeführt werden können. Man
sollte sich jedoch darüber im
klaren sein, daß die
hierin beschriebenen Komponenten und Prozesse in Software, Firmware,
Hardware oder einer Kombination aus denselben implementiert sein
können.
Beispielsweise könnte
ein programmierbares logi sches Bauelement (PLD – programmable logic device)
oder eine anwendungsspezifische integrierte Schaltung (ASIC – application specific
integrated ciruit) konfiguriert oder ausgeführt sein, um verschiedene hierin
erörterte
Komponenten bzw. Prozesse zu implementieren.
-
Die
hierin gegebenen Erläuterungen
beziehen sich auf Druckvorgänge,
bei denen eine Drucksubstanz (beispielsweise Tinte oder Toner) auf
ein Druckmedium (beispielsweise Papier) aufgebracht wird. Alternativ
können
auch andere Druckvorgänge verwendet
werden, die Daten auf eine andere Weise drucken als die, bei der
eine Drucksubstanz auf ein Druckmedium aufgebracht wird, beispielsweise durch
die Beaufschlagung eines wärmeempfindlichen
Druckmediums mit Wärme
(z. B. bei einem Thermodrucker), die Beaufschlagung von lichtempfindlichen
Medien mit Licht, die Änderung
einer elektrischen Ladung (z. B. E-Papier) usw.
-
Die
obigen Erörterungen
beziehen sich auch auf Module eines Druckers, die Daten einem anderen Modul
zur Verfügung
stellen. Daten können
auf vielerlei Weisen zur Verfügung
gestellt werden, beispielsweise durch ein Senden einer Datenstruktur, die
die Daten umfaßt,
an ein anderes Modul (z. B. Weiterleiten des Moduls als Parameter
beim Aufrufen eines Prozesses oder einer Prozedur des Moduls), Senden
einer Angabe, wo die Webseitendaten angeordnet sind, an ein anderes
Modul (z. B. einen Zeiger auf die Daten in dem Speicher des Druckers),
Senden einer Angabe, daß die
Webseite an einer vorbestimmten Stelle zur Verfügung steht (beispielsweise an
einer bestimmten Adresse in dem Speicher des Druckers) und so weiter.