DE112008001168T5 - System und Verfahren zum gemeinschaftlichen Verwenden eines Druckers - Google Patents

System und Verfahren zum gemeinschaftlichen Verwenden eines Druckers Download PDF

Info

Publication number
DE112008001168T5
DE112008001168T5 DE112008001168T DE112008001168T DE112008001168T5 DE 112008001168 T5 DE112008001168 T5 DE 112008001168T5 DE 112008001168 T DE112008001168 T DE 112008001168T DE 112008001168 T DE112008001168 T DE 112008001168T DE 112008001168 T5 DE112008001168 T5 DE 112008001168T5
Authority
DE
Germany
Prior art keywords
printer
tunnel
client
server
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112008001168T
Other languages
English (en)
Inventor
Daniel Fort Collins Thero
Matthew D. Fort Collins Haines
William G. Fort Collins McCollom
Philip M. Fort Collins Walker
Gregory J. Fort Collins Lipinski
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112008001168T5 publication Critical patent/DE112008001168T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1296Printer job scheduling or printer resource handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1228Printing driverless or using generic drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • H04N1/00209Transmitting or receiving image data, e.g. facsimile data, via a computer, e.g. using e-mail, a computer network, the internet, I-fax
    • H04N1/00222Transmitting or receiving image data, e.g. facsimile data, via a computer, e.g. using e-mail, a computer network, the internet, I-fax details of image data generation or reproduction, e.g. scan-to-email or network printing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Computer And Data Communications (AREA)

Abstract

Ein System, das folgende Merkmale umfasst:
zumindest einen Clientcomputer (202A–202N);
einen Servercomputer (230), der mit dem zumindest einen Clientcomputer (202A–202N) über ein Netz (220) gekoppelt ist; und
einen Drucker (250), der mit dem Servercomputer (230) gekoppelt ist und durch den zumindest einen Clientcomputer (202A–202N) gemeinschaftlich verwendet wird, wobei der Drucker (250) durch jeden Clientcomputer (202A–202N) als ein lokaler Drucker wahrgenommen wird.

Description

  • Hintergrund
  • Elektronische Drucker ermöglichen es, dass Text und Graphik auf Papier oder ein anderes Medium gedruckt wird. Der Text und die Graphik können Teil eines Dokuments oder einer anderen Datei sein. Da sich Computernetze stark vermehrt haben, wurde Hardware und Software entwickelt, um es mehreren Computern zu ermöglichen, zumindest einen Drucker gemeinschaftlich zu verwenden. Beispielsweise können mehrere Clienten und ein Drucker an einen Netzserver angeschlossen sein, der einen Druckertreiber aufweist. Der Druckertreiber handhabt Druckanforderungen von den mehreren Clienten.
  • Leider erzeugt eine Varianz bei den Betriebssystemen (BS), die auf den Clienten und in der Hardware/Software unterschiedlicher Drucker ausgeführt werden, laufend Kompatibilitätsprobleme. Somit ist das Einrichten eines Servers für die Verwendung mit einem bestimmten Drucker und/oder Clienten nicht unbedingt notwendigerweise anwendbar für andere Drucker oder Clienten. Außerdem sind viele Server absichtlich „kopflos” (ohne eine zweckgebundene menschliche Schnittstelle, wie z. B. einen Bildschirm, eine Tastatur oder eine Maus), so dass eine Modifikation der Serverfunktionalität für unerfahrene Nutzer schwierig ist.
  • Kurze Beschreibung der Zeichnungen
  • Für eine detaillierte Beschreibung beispielhafter Ausführungsbeispiele der Erfindung wird nun auf die beiliegenden Zeichnungen Bezug genommen. Es zeigen:
  • 1 stellt einen Computer gemäß Ausführungsbeispielen dar;
  • 2 stellt ein System gemäß Ausführungsbeispielen dar;
  • 3 stellt ein Verfahren gemäß Ausführungsbeispielen dar; und
  • 4 stellt ein weiteres Verfahren gemäß Ausführungsbeispielen dar.
  • Notation und Nomenklatur
  • In der folgenden Beschreibung und den Ansprüchen werden bestimmte Begriffe verwendet, um bestimmte Systemkomponenten zu bezeichnen. Wie es für einen Fachmann auf diesem Gebiet klar ist, können Computerfirmen Komponenten mit unterschiedlichen Namen bezeichnen. Dieses Dokument beabsichtigt nicht, zwischen Komponenten zu unterscheiden, die sich zwar vom Namen aber nicht von der Funktion her unterscheiden. In der folgenden Erörterung und in den Ansprüchen werden die Begriffe „enthalten” und „umfassen” auf offene Weise verwendet und sollten somit interpretiert werden als „enthalten, aber nicht begrenzt auf ...”. Außerdem ist der Begriff „koppeln” oder „koppelt” so gedacht, dass er entweder eine indirekte, eine direkte, eine optische oder eine drahtlose elektrische Verbindung bedeutet. Falls somit ein erstes Gerät mit einem zweiten Gerät koppelt, kann diese Verbindung durch eine direkte elektrische Verbindung, durch ein indirekte elektrische Verbindung über andere Geräte und Verbindungen, durch eine optische elektrische Verbindung oder durch eine drahtlose elektrische Verbindung sein.
  • Detaillierte Beschreibung
  • Die folgende Erörterung bezieht sich auf verschiedene Ausführungsbeispiele der Erfindung. Obwohl eines oder mehrere dieser Ausführungsbeispiele bevorzugt sein können, sollten hierin offenbarte Ausführungsbeispiele nicht als den Schutzbereich der Offenbarung, einschließlich der Ansprüche, begrenzend interpretiert oder anderweitig verwendet werden. Außerdem wird ein Fachmann auf diesem Gebiet verstehen, dass die folgende Beschreibung eine breite Anwendung findet, und die Erörterung jedes Ausführungsbeispiels ist nur darstellend für dieses Ausführungsbeispiel und soll den Schutzbereich der Offenbarung, einschließlich der Ansprüche, nicht auf dieses Ausführungsbeispiel begrenzen.
  • Wie es hierin offenbart ist, ermöglichen es Ausführungsbeispiele mehreren Clienten, einen Drucker durch ein Netz gemeinschaftlich zu verwenden. Anders ausgedrückt, der Drucker koppelt mit einem Server, der für mehrere Clienten zugreifbar ist. Bei zumindest einigen Ausführungsbeispielen ist ein „Druckertunnel” zwischen den Clienten und dem Drucker vorgesehen. Wie der Begriff hierin verwendet wird, ist ein Druckertunnel eine Kombination aus Hardware, Firmware und/oder Software, die bewirkt, dass der Server zumindest teilweise transparent wird bezüglich des Druckens. In diesem Zustand arbeitet jeder Client, als ob der Drucker lokal verbunden wäre. Der Druckertunnel handhabt vorzugsweise Konflikte zwischen Druckanforderungen von unterschiedlichen Clienten und ist kompatibel mit variierenden Clientbetriebssystemen, Clientdruckertreibern und Druckern.
  • Mit Bezugnahme auf die Zeichnungen und insbesondere auf 1 ist ein Computer 101 gemäß Ausführungsbeispielen der Offenbarung gezeigt. Der Computer 101 entspricht einem Clientcomputer oder einem Servercomputer. Bei zumindest einigen Ausführungsbeispielen ist der Servercomputer ein kopfloser Server. Wie er hierin verwendet wird, bezieht sich ein „kopfloser Server” auf eine Rechen- und/oder Speichervorrichtung ohne eine speziell zugewiesene menschliche Schnittstelle, wie z. B. einen Bildschirm, eine Tastatur oder eine Maus. Wie er gezeigt ist, umfasst der Computer 101 eine Mehrzahl von zentralen Verarbeitungseinheiten (CPUs, CPU = central processing unit) 102, 104, die mit einer Busbrückenvorrichtung gekoppelt sind, die in der Computerindustrie normalerweise als eine „Northbridge” („Nord-Brücke”) 108 bezeichnet wird. Die Northbridge 108 koppelt die CPUs 102, 104 mit dem Systemspeicher 106 und anderen Komponenten des Computers 101. Die Northbridge 108 hat einen wesentlichen Einfluss auf die Leistungsfähigkeit des Computers, da dieselbe die Geschwindigkeit definiert, mit der Daten zwischen den CPUs 102, 104 und dem Systemspeicher 106 fließen.
  • Wie es gezeigt ist, koppelt die Northbridge 108 mit einer Eingabe/Ausgabe-(Input/Output-, I/O-)Brücke 150 über eine „schnelle” serielle Busverbindung (verglichen mit einer Vorläuferbusverbindung) die bei einigen Ausfühungsbeispielen acht serielle Kommunikationskanäle (×8) umfasst. Dieser Bus kann eine proprietäre Chipsatzverbindung sein oder kann einem festgelegten Industriestandard entsprechen, wie z. B. PCI-Express. Bei zumindest einigen Ausführungsbeispielen koppelt die I/O-Brücke 150 mit PCI-Schlitzen 152, 154 über eine PCI-66/64-Kommunikationsschnittstelle. Die PCI-Schlitze 152, 154 können konfiguriert sein, um einfügbare/entfernbare PCI-Karten zu unterstützen, die die Funktionalität des Computers 101 verbessern.
  • Die Northbridge 108 koppelt auch mit einer I/O-Brücke 170 über eine andere „schnelle” Busverbindung (verglichen mit einer Vorläuferbusverbindung), die bei einigen Ausführungsbeispielen acht Kommunikationskanäle (×8) aufweist. Wie es gezeigt ist, koppelt die I/O-Brücke 170 mit einem SCSI-Modul 160 (SCSI = small Computer system interface = Kleincomputersystemschnittstelle) über einen PCI-Express-(PCI-E-)Kommunikationsbus. Das SCSI-Modul 160 unterstützt mehrere Speicherplatten 162, 164, 166 basierend auf einem SCSI-Kommunikationsprotokoll. Die I/O-Brücke 170 koppelt auch mit einer Netzschnittstellenkarte (NIC; NIC = network interface card) 124 über einen PCI-E-Kommunikationsbus. Die NIC 124 ermöglicht es dem Computer 101, mit anderen Computern oder Netzgeräten zu kommunizieren, basierend auf einem Netzkommunikati onsprotokoll, wie z. B. Ethernet oder TCP/IP (TCP/IP = Transmission Control Protocol/Internet Protocol = Übertragungssteuerungsprotokoll/Internetprotokoll). Die I/O-Brücke 170 koppelt auch mit PCI-E-Schlitzen 172 (z. B. über einen Kommunikationsbus, der bei einigen Ausführungsbeispielen vier Kommunikationskanäle (×4) aufweist). Die PCI-E-Schlitze sind konfiguriert, um einfügbare/entfernbare PCI-E-Karten zu unterstützen, die die Funktionalität des Computers 101 verbessern. Fachleute auf diesem Gebiet werden erkennen, dass die Breite der schnellen Busverbindungen sowie PCI-E-Verbindungen für Schlitze und Geräte basierend auf der erwarteten Bandbreite der verbundenen Geräte gewählt werden. Alternativ kann der unterstützte Speicherplattenlaufwerkschnittstellenbus ein SATA-Bus (serieller ATA-Bus) oder eine andere übliche Massenspeicherdatenbusarchitektur sein. Andere Verbindungen sowie andere Spurbreiten können durch den Systementwickler gewählt werden.
  • Wie es gezeigt ist, koppelt die Northbridge 108 auch mit einer Southbridge („Süd-Brücke”) 115 über eine Vorläuferkommunikationsbusverbindung. Diese Busverbindung kann eine proprietäre Chipsatzverbindung sein oder kann einem festgelegten Industriestandard entsprechen, wie z. B. PCI-Express. Bei zumindest einigen Ausführungsbeispielen umfasst die Southbridge 115 eine USB-Hoststeuerung 116, die mit USB-Peripheriegeräten koppelt und dieselben unterstützt, wie z. B. einer USB-Maus 117, einer USB-Tastatur 118 und einem USB-Drucker 119. Fachleute auf diesem Gebiet werden erkennen, dass diese Geräte durch USB-Verbinder gekoppelt sein können und optional sind. Die Southbridge 115 koppelt auch mit einem optischen Plattenlaufwerk 180 (z. B. einem CD-ROM- oder DVD-ROM-Laufwerk) und unterstützt dasselbe. Die Southbridge 115 koppelt auch mit einer Super-Eingabe/Ausgabe-(I/O-)Schnittstelle 174 über einen LPC-Bus (LPC = lowpin-count = geringe Anschlusszahl). Die Super-I/O (SIO) 124 koppelt mit und unterstützt einen Flash-ROM 176 sowie ein Diskettenlaufwerk 190, eine Vorläufertastatur 192, eine Vorläufermaus 194 und UARTS (UART = Universal Asynchronous Receiver/Transmitter = universeller synchroner-asynchroner Sender/Empfänger-Baustein) 196. Wie die oben erwähnten USB-Geräte liefert die SIO 174 Schnittstellen, an die die aufgezählten Vorläufergeräte angeschlossen werden können. Das Vorliegen einer physikalischen Vorläufertastatur und -maus muss für den ordnungsgemäßen Betrieb des Computers 101 nicht erforderlich sein.
  • Wie es gezeigt ist, koppelt die Southbridge optional mit einer Videokarte 112 und unterstützt dieselbe, die optional mit einem Bildschirm 113 koppelt. Falls der Computer 101 einem Client entspricht, könnten die Videokarte 112 und der Bildschirm 113 enthalten sein. Falls der Computer 101 einem Server entspricht, könnten die Videokarte 112 und der Bildschirm 113 nicht enthalten sein.
  • Die Southbridge 115 koppelt auch mit einem Netzadapter 114 über einen PCI-33/32-Kommunikationsbus und unterstützt denselben. Alternativ kann der Netzadapter 114 mit dem Host gekoppelt sein über eine andere geeignete Kommunikationsschnittstelle, wie z. B. PCI-Express, PCI-X, 66/64, LPC oder dergleichen. Der Netzadapter 114 ermöglicht es dem Computer 101, mit einem Drucker auf einem Netz zu kommunizieren.
  • Wie es in 1 gezeigt ist speichert die USB-Hoststeuerung 116 der Southbridge 115 einen USB-Stapel 126 mit einem Druckertunnel 128. Der USB-Stapel 126 und/oder der Druckertunnel 128 sind alternativ an einer anderen Stelle des Computers 101 gespeichert. Der USB-Stapel 126 kann in unterschiedliche Schichten aufgeteilt sein. Bei einigen Ausführungsbeispielen enthält eine untere USB-Stapelschicht den Hoststeuerungstreiber, der eine allgemeine Schnittstelle zu der USB-Hoststeuerungshardware und ihren Ablaufplanungseinrichtungen bereitstellt. Die untere USB-Stapelschicht unterstützt Funktionen, wie z. B. die Initialisierung der USB-Hoststeuerungshardware, Ablaufplanung von Übertragungen und Handhabung von abgeschlossenen und/oder fehlgeschlagenen Übertragungen. Jeder Hoststeuerungstreiber implementiert eine virtuelle Zentralstation (Hub), die Hardware-unabhängigen Zugriff zu den Registern bereitstellt, die die USB-Tore des Computers 101 steuern.
  • Eine mittlere USB-Stapelschicht handhabt Funktionen, wie z. B. USB-Geräteverbindung und -trennung, Basis-Initialisierung von USB-Geräten, Treiberauswahl, USB-Kommunikationskanäle und Ressourcenverwaltung. Diese mittlere USB-Stapelschicht steuert auch die Standardkanäle und USB-Geräteanforderungen, die über die Standardkanäle übertragen werden.
  • Eine obere USB-Stapelschicht enthält einzelne Treiber, die spezifische Geräte oder Klassen von Geräten unterstützen. Die obere USB-Stapelschicht unterstützt Protokolle, die für Nicht-Standard-Kommunikationskanäle verwendet werden. Die obere USB-Stapelschicht fügt auch Funktionalität hinzu, um USB-Geräte für das Betriebssystem oder andere Komponenten des Computers 101 verfügbar zu machen. Bei einigen Ausführungsbeispielen verlässt sich die obere USB-Stapelschicht auf eine USB-Treiberschnittstelle (USBDI; USBDI = USB driver interface), die durch die mittlere USB-Stapelschicht freigelegt wird. Bei zumindest einigen Ausführungsbeispielen ist der Druckertunnel 128 Teil der unteren USB-Stapelschicht.
  • Der Zweckmäßigkeit halber wird der Druckertunnel 128 beim Beschreiben von Ausführungsbeispielen hierin manchmal so beschrieben, dass derselbe ein Clientende und ein Serverende aufweist. Außerdem ist der Druckertunnel 128 hierin manchmal so beschrieben, dass derselbe einen Druckertunnelverwalter aufweist. Bei zumindest einigen Ausführungsbeispielen handhabt der Druckertunnelverwalter Konflikte zwischen überlappenden Druckanforderungen. Der Druckertunnelverwalter leitet auch Druckerstatusbenachrichtigungen oder Druckerausnahmen an zumindest einige der Clienten weiter. Bei einigen Ausführungsbeispielen arbeitet der Druckertunnelverwalter am Serverende des Druckertunnels 128. Bei alternativen Ausführungsbeispielen arbeitet der Druckertunnelverwalter an dem Clientende des Druckertunnels 128 oder einer Kombination aus Clientende und Serverende des Druckertunnels 128. Unabhängig von der Position des Druckertunnelverwalters können die Schritte des Druckertunnelverwalters durch das Clientende oder das Serverende des Druckertunnels 128 unterstützt werden.
  • Falls der Computer 101 einem Client entspricht, ist das Clientende des Druckertunnels 128 für mehrere Funktionen verantwortlich, einschließlich selektive Emulation eines USB-Druckers. Anders ausgedrückt, eine solche Emulation sollte bewirken, dass jeder Client in der Lage ist, Daten, die von einem Drucker in einem Netz empfangen werden, zu empfangen und zu erkennen, als ob sie von einem lokal verbundenen USB-Drucker empfangen werden. Die USB-Treiber, die durch den Computer 101 implementiert werden, um Daten von einem emulierten USB-Drucker zu interpretieren, sind mit bestehenden USB-Protokollen kompatibel (d. h. Entwerfen und Installieren neuer Druckertreiber zum Senden von Daten an und Empfangen von Daten von dem entfernten Drucker ist unnötig).
  • Bei zumindest einigen Ausführungsbeispielen bildet das Clientende oder das Serverende des Druckertunnels 128 eine Schnittstelle mit einem Kommunikationsbus, der sich von den seriellen Kommunikationsverbindungen unterscheidet, die in den USB-Protokollspezifikationen beschrieben sind (z. B. kann der Kommunikationsbus auf einem PCI-Protokoll (PCI = Peripheral Component Interconnect = Peripheriekomponentenverbindung) oder einem anderen Protokoll basieren). In solch einem Fall ist das Clientende oder das Serverende des Druckertunnels 128 in der Lage, Daten von einem Protokoll zu dem anderen und umgekehrt umzuwandeln.
  • Bei zumindest einigen Ausführungsbeispielen versorgt das Clientende des Druckertunnels 128 das Hostbetriebssystem mit „Heiß-Einsteck-”(hot plugging)Ereignissen über UHCI-Register (UHCI = Universal Host Controller Interface = universelle Hoststeuerungsschnittstelle), wie z. B. Torstatus- und Steuerregister „PORTSC1” und „PORTSC2”. In einer realen UHCI-Steuerung stellen die PORTSC1- und PORTSC2-Register physikalische verdrahtete Verbindungen zu USB-Geräten dar. Bei zumindest einigen hierin präsentierten Ausführungsbeispielen stellen diese Register jedoch Verbindungen zu virtuellen Geräten dar (keine tatsächlich Verdrahtungs- oder Busverbindungen sind beteiligt). Das Clientende des Druckertunnels 128 kann bestimmen, mit welchem Gerät der Computer 101 versucht zu kommunizieren, durch Untersuchen der Adresse in dem TD-Tokenfeld (TD = Transfer Descriptor = Übertragungsbeschreibungselement), und den Verbindungs- und Aktivierungsstatus der PORTSC-Register.
  • Bei zumindest einigen Ausführungsbeispielen ordnet das Clientende des Druckertunnels 128 einen virtuellen Drucker einem USB-Tor (z. B. PORTSC1) zu. Um den Computer 101 zu benachrichtigen, den virtuellen Drucker zu erkennen, wird ein Verbindungsbit (Bit 0) und möglicherweise ein Verbindungsänderungsbit (Bit 1) für das entsprechende Tor aktiviert. Ansprechend auf die aktivierten Verbindungsbits erfasst der Computer 101 den virtuellen Drucker und versucht, den virtuellen Drucker zu spezifizieren (d. h. eine Adresse zuzuweisen) und zu konfigurieren.
  • Anfangs (bevor dem virtuellen Drucker durch den USB-Treiber des Hostcomputers eine Adresse gegeben wurde) kann der virtuelle Drucker die Adresse „0” haben. In diesem Zustand ist die Kommunikation mit dem virtuellen Drucker basierend auf der Adresse allein problematisch, falls ein anderes USB-Gerät diese gleiche Adresse hat. Um jegliche Adressierungskonflikte zu überwinden, kann das Clientende des Druckertunnels 128 wählen, mit welchem Gerät es kommunizieren möchte durch Aktivieren oder Deaktivieren jedes PORTSC-Registers (Bit 2 der PORTSC-Register). Somit ist das Clientende des Druckertunnels 128 bei einigen Ausführungsbeispielen in der Lage, die Werte der Bits in den PORTSC-Registern zu bestimmen und Daten zu dem entsprechenden Gerät oder dem virtuellen Gerät zu übertragen. Sobald ein virtueller Drucker spezifiziert wurde (z. B. demselben eine andere USB-Adresse als 0 gegeben wird), kann das Tor für diesen virtuellen Drucker permanent oder vorübergehend (z. B. bis zu dem nächsten Zurücksetzereignis) spezifiziert werden, und das Clientende des Druckertunnels 128 ist in der Lage, den virtuellen Drucker unter Verwendung der zugeordneten Adresse desselben zu finden.
  • Wenn ein Clientcomputer eine Druckanforderung erzeugt, wird die Anforderung von einem lokalen Druckertreiber zu dem USB-Stapel 126 weitergeleitet. Das Clientende des Druckertunnels 128 sendet dann die Druckanforderung an die zugewiesene Adresse des virtuellen Druckers. Die Druckanforderung wird tatsächlich an das Serverende des Druckertunnels 128 gesendet und dann an einen Drucker, der mit dem Server gekoppelt ist. Bei einigen Ausführungsbeispielen sind das Clientende und das Serverende des Druckertunnels 128 in der Lage, Daten wie z. B. Druckanforderungen, Druckerstatusantworten, Druckerausnahmen und andere Daten einzukapseln/zu entkapseln (z. B. zu und von einem Netzprotokoll). Als ein Beispiel können Druckerdaten, die von einem Netz gesendet oder empfangen werden, neu paketiert werden zum Übertragen von getunnelten Mitteilungen/Paketen zwischen einem USB-Protokoll und einem Netzprotokoll (z. B. Ethernet mit TCP/IP). In einigen Fällen kapselt das Clientende des Druckertunnels 128 Druckanforderungen ein, und das Serverende des Druckertunnels 128 entkapselt die Druckanforderungen. Die Druckanforderungen werden dann zu einem Drucker weitergeleitet, der lokal mit dem Server gekoppelt ist. Außerdem kapselt in einigen Fällen das Serverende des Druckertunnels 128 Druckerstatusantworten oder Druckausnahmen ein, und das Clientende des Druckertunnels 128 entkapselt die Druckerstatusantworten oder Druckerausnahmen. Die Druckerstatusantworten oder Druckerausnahmen werden dann durch den lokalen Druckertreiber des empfangenden Clienten verarbeitet.
  • Bei zumindest einigen Ausführungsbeispielen handhabt der Druckertunnelverwalter mehrere Druckanforderungen. Überlappende Druckanforderungen könnten auf einer „Zuerst kommen, zuerst bedient werden-”(First-Come-First-Serve-)Basis oder einem anderen Handhabungsschema gehandhabt werden. Als ein Beispiel puffert der Druckertunnelverwalter bei einigen Ausführungsbeispielen überlappende Druckanforderungen und verarbeitet die Druckanforderungen sequentiell. Alternativ ist ein Client, der die Steuerung des Druckers innehat, in der Lage, das Senden von Druckanforderungen für einen eine Schwellenwertzeitdauer fortzusetzen, bevor die Steuerung des Druckers zu einem wartenden Client übertragen wird. In jedem Fall kann die Steuerung des Druckers von einem steuernden Client zu einem anderen Client übertragen werden, der darauf wartet, mit einer anstehenden Druckanforderungen fortzufahren. Während ein Client darauf wartet, dass eine aktuell anstehende Druckanforderung abgeschlossen wird, simuliert der Druckertunnelverwalter Standarddruckerverzögerungen (z. B. eine Druckeraufwärmverzögerung), um zu verhindern, dass ein wartender Client bestimmt, dass ein Druckerausfall aufgetreten ist. Diese Fähigkeit kann bei Ausführungsbeispielen sinnvoll sein, wo ein Druckertreiber eines Clienten mit Standardverzögerungsmitteilungen von einem lokalen Drucker kompatibel ist, aber nicht mit der gemeinschaftlichen Verwendung eines Druckers.
  • Bei zumindest einigen Ausführungsbeispielen sind der Druckertunnelverwalter und die jeweiligen Enden des Druckertunnels 128 in der Lage, eine Clientwahrnehmung der Druckerfahrung zu verwalten, durch Einstellen von Druckertreiberauszeiteinstellungen, Simulieren von Standarddruckerverzögerungen und Präsentieren von Statusmitteilungen, die für die verbleibende Verzögerung angemessen sind. Falls ein gegebener Clientdruckertreiber die gemeinschaftliche Verwendung eines Druckers nicht unterstützt, erzeugen die jeweiligen Enden des Druckertunnels 128 und der Druckertunnelverwalter die Illusion, dass der bestimmte Client exklusive Steuerung des Druckers hat (zumindest während des Druckens).
  • Ausführungsbeispiele von Clienten und Servern sind nicht auf den Computer 101 von 1 begrenzt. 1 stellt lediglich ein Ausführungsbeispiel dar. Alternative Ausführungsbeispiele variieren mit Bezugnahme auf Verarbeitung, Speicher, Verbindungen, Protokolle, Peripheriegeräte und andere Funktionsaspekte. Allgemein sollten Clientcomputer in der Lage sein, einen Standarddruckertreiber mit einer für die Verwendung mit einem lokalen Drucker (z. B. einem USB-Drucker) auszuführen. Clientcomputer unterstützen auch den Betrieb eines Druckertunnels, der es einem entfernten Drucker (d. h. einem Drucker, der an den Server angeschlossen ist) ermöglicht, für den Clientcomputer und den Druckertreiber des Clienten als ein lokaler Drucker zu erscheinen.
  • Allgemein sollten Servercomputer eine Schnittstelle bereitstellen zwischen Clienten mit lokalen Druckertreibern und einen kompatiblen Drucker. Bei zumindest einigen Ausführungsbeispielen verbindet ein Servercomputer mit mehreren Clienten über ein geeignetes Tor (z. B. ein Ethemet-Tor und/oder Hub). Der Servercomputer ist auch an einen Drucker angeschlossen über ein geeignetes Tor (z. B. ein USB-Tor). Bei einigen Ausführungsbeispielen stellt der Servercomputer keinen zentralisierten Druckertreiber bereit, da jeder Client einen lokalen Druckertreiber ausführt. Stattdessen unterstützt der Servercomputer den Betrieb eines Druckertunnels und eines Druckertunnelverwalters, um einen gemeinschaftlich verwendeten Drucker, der an den Server angeschlossen ist, als einen lokalen Drucker für jeden Client zu tarnen. Der Druckertunnelverwalter handhabt überlappende Druckanforderungen durch Simulieren von Standarddruckverzögerungen (durch die Clientdruckertreiber erkannt) und selektives Übertragen der Steuerung des Druckers von einem Client zu einem anderen, um es Clienten zu ermöglichen, abwechselnd anstehende Druckanforderungen zu verarbeiten. Das Clientende des Druckertunnels, das Serverende des Druckertunnels und der Druckertunnelverwalter könnten zusammen als eine einzige Entität angesehen werden, die die Aufgabe erfüllt, es zu ermöglichen, dass mehrere Clienten einen Drucker gemeinschaftlich verwenden, der an den Server angeschlossen ist, als ob der Drucker für jeden Client lokal wäre. Die hierin beschriebenen unterschiedlichen Funktionen für den Druckertunnel umfassen die Clienten und den Server in verschiedenen Mengen.
  • Wie es vorher erwähnt wurde, können zentralisierte Druckertreiber (z. B. auf dem Server) problematisch sein, da Aktualisierungen der Hardware, Firmware und/oder Software von Clientcomputern und Druckern auftreten können, und das Modifizieren eines Netzdruckertreibers auf einem kopflosen Server für unerfahrene Benutzer schwierig ist. Im Gegensatz dazu liefern der Druckertunnel und der Druckertunnelverwalter ausgewählte Funktionen (z. B. Tarnen eines Druckers, der an einen Server angeschlossen ist, als einen lokalen Drucker für jeden Client, und Handhaben von überlappenden Druckanforderungen von mehreren Clienten), von denen es sehr unwahrscheinlich ist, dass sich dieselben ändern, selbst wenn Clienten oder Drucker aktualisiert werden. In einigen Fällen können Aktualisierungen (z. B. der Drucker wird verändert) nur kleine Änderungen umfassen, die an der Serverseite implementiert werden (z. B. der Server wird konfiguriert, um einen neuen Drucker zu erkennen), ohne die Clienten zu beeinträchtigen. Obwohl der Druckertunnel in einer Geschäftsumgebung und selbst über große Entfernungen verwendet werden kann, ist der Druckertunnel besonders vorteilhaft in einer Heimumgebung, wo Benutzer häufig unerfahren sind. Anders ausgedrückt, einige Ausführungsbeispiele des Druckertunnels und des Druckertunnelverwalters sind als Teil eines Servers enthalten, der die Heimumgebung betrifft.
  • 2 zeigt ein System 200 gemäß Ausführungsbeispielen. Wie es gezeigt ist, umfasst das System 200 eine Mehrzahl von Clienten 202A bis 202N, die über ein Netz 220 und einen Server 230 mit einem Drucker 250 koppeln. Die Komponenten der Mehrzahl von Clienten 202A202N, das Netz 220, der Server 230 und der Drucker 250 wurden vereinfacht, um das Beschreiben von Ausführungsbeispielen zu ermöglichen. Bei verschiedenen Ausführungsbeispielen haben die Clienten 202A202N und der Server 230 mehr oder weniger der Komponenten, die für den Computer 101 in 1 beschrieben wurden.
  • In 2 umfasst der Drucker 250 einen Prozessor 252, der mit einem Systemspeicher 254 mit Druckersteuerbefehlen 256 gekoppelt ist. Bei zumindest einigen Ausführungsbeispielen ermöglicht ermöglichen es die Druckersteuerbefehle 226 dem Drucker 250, Dokumente und Bilder zu drucken, die von dem Server 230 empfangen werden. Nach Bedarf aktivieren die Druckerbefehlsteuerung 256 auch den Prozessor 252, um Wartungsbedarf, Fehlfunktionen oder Ausnahmezustände des Druckers 250 zu erfassen und nachfolgend Druckerwartungsanforderungen und Benachrichtigungen auszugeben (z. B. Papier leer, Tonerstand niedrig oder andere Benachrichtigungen). Der Prozessor 252 koppelt auch mit einer I/O-Schnittstelle 258, die es dem Drucker 250 ermöglicht, mit anderen Geräten zu kommunizieren, wie z. B. dem Server 230 und den Clienten 202A202N.
  • Eine darstellende Beschreibung jedes Clienten wird durch Beschreiben des Clienten 202A bereitgestellt. Wie es in 2 gezeigt ist, umfasst der Client 202A einen Prozessor 204A, der mit einem Systemspeicher 206A gekoppelt ist. Der Prozessor 204A koppelt auch in einer Netzschnittstelle 212A und einer Eingabe-/Ausgabeschnittstelle 214A.
  • Bei zumindest einigen Ausführungsbeispielen ist der Systemspeicher 206A ein computerlesbares Medium, das einen lokalen Druckertreiber 208A und einen Druckertunnel 210A speichert, die durch den Prozessor 204A ausführbar sind. Der Systemspeicher 206A entspricht zumindest einem von Sekundärspeicher, Nur-Lese-Speicher (ROM; ROM = read-only memory), Direktzugriffsspeicher (RAM; RAM = random access memory), oder einem anderen Speichermedium, das derzeit bekannt ist oder später entwickelt wird. Als ein Beispiel umfasst ein Sekundärspeicher ein oder mehrere Plattenlaufwerke oder Bandlaufwerke und wird für nichtflüchtige Speicherung von Daten und als eine Überlaufdatenspeichervorrichtung verwendet, falls der RAM nicht groß genug ist, um alle Arbeitsdaten zu halten. Ein Sekundärspeicher kann verwendet werden, um Programme zu speichern, die in den RAM geladen werden, wenn solche Programme für die Ausführung ausgewählt werden. Ein ROM wird verwendet, um Befehle und vielleicht Daten zu speichern, die während der Programmausführung gelesen werden. Ein ROM ist eine nichtflüchtige Speichervorrichtung, die typischerweise eine geringe Speicherkapazität aufweist im Vergleich zu der größeren Speicherkapazität von einem Sekundärspeicher. Ein RAM wird verwendet, um flüchtige Daten zu speichern, und eventuell, um Befehle zu speichern. Ein Zugriff sowohl auf einen ROM als auch einen RAM ist typischerweise schneller als auf einen Sekundärspeicher.
  • Der lokale Druckertreiber 208A unterstützt Drucken an einem lokalen Drucker und ist kompatibel mit einem spezifischen Drucker oder einer spezifischen Klasse von Druckern. Bei zumindest einigen Ausführungsbeispielen kann der lokale Druckertreiber 208A erfassen, wenn ein Drucker in die I/O-Schnittstelle 214A eingesteckt wird (d. h. Plug-and-Play-Schritte). Der lokale Druckertreiber 208A unterstützt auch verschiedene Funktionen, wie z. B. das Bereitstellen einer Nutzer/Druckerschnittstelle, Spool-Betrieb von Druckaufträgen, Anzeigen von Mitteilungen für einen Benutzer (z. B. Drucken eingeleitet, Drucken verzögert, Drucken gelöscht, verbleibende Zeit für einen Druckauftrag, Papier-Leer-Mitteilungen, Toner-Niedrig-Mitteilungen), Übertragen von Druckqualitätauswahlmöglichkeiten durch einen Benutzer an den Drucker oder andere Funktionen. Obwohl der Client 202A in der Lage ist, mit einem lokalen Drucker zu interagieren (z. B. Drucken an demselben und Empfangen von Mitteilungen von demselben), der mit der I/O-Schnittstelle 214A gekoppelt ist, basierend auf dem lokalen Druckertreiber 208A, ermöglicht es der Druckertunnel 210A dem Client 202A, mit einem entfernten Drucker (oder zumindest einem Drucker, der an einen Server angeschlossen ist anstatt an den Client 202A) zu interagieren.
  • Bei zumindest einigen Ausführungsbeispielen unterstützt der Druckertunnel 210A die Emulation eines virtuellen Druckers. Anders ausgedrückt, der Druckertunnel 210A bewirkt, dass der lokale Druckertunnel 208A mit einem entfernten Drucker interagiert, als ob der entfernte Drucker ein lokaler Drucker wäre, der mit der I/O-Schnittstelle 214A gekoppelt ist. Der Druckertunnel 210A kann die Emulation erreichen durch Einrichten einer virtuellen lokalen Druckeradresse und geeignetes Lenken oder Emulieren von Kommunikation zwischen dem lokalen Druckertreiber 208A und dem entfernten Drucker. Wenn ein entfernter Drucker verwendet wird, wird die Kommunikation zu und von der Netzschnittstelle 212A anstatt der I/O-Schnittstelle 214A gelenkt. Wie es für das Ausführungsbeispiel von 1 erwähnt wurde, entsprechen einige Ausführungsbeispiele des Druckertunnels 210A einem Teil eines USB-Stapels, obwohl andere Ausführungsbeispiele, die derzeit bekannt sind oder später entwickelt werden, möglich sind.
  • Wie es in 2 gezeigt ist, umfasst der Server 230 einen Prozessor 232, der mit einem Systemspeicher 234 gekoppelt ist. Der Prozessor 232 koppelt auch mit einer Netzschnittstelle 238 und einer I/O-Schnittstelle 240. Die Netzschnittstelle 238 ermöglicht es dem Server 230, mit dem Netz 220 zu kommunizieren und entspricht beispielsweise einer Ethernetschnittstelle. Die I/O-Schnittstelle 240 ermöglicht es dem Server 230, mit einem Peripheriegerät zu kommunizieren, wie z. B. dem Drucker 250, und entspricht beispielsweise einer USB-Schnittstelle. Bei zumindest einigen Ausfühungsbeispielen sind die I/O-Schnittstellen 214A214N gleich wie die I/O-Schnittstelle 240. Anders ausgedrückt, der Drucker 250 kann selektiv direkt mit dem Server 230 koppeln oder mit einem der Clienten 202A202N. Wenn der Drucker 250 direkt mit dem Server 230 gekoppelt ist, sind die Clienten in der Lage, den Drucker 250 durch den Server 230 gemeinschaftlich zu verwenden, selbst wenn die lokalen Druckertreiber 208A208N nur einen lokalen Drucker und keinen gemeinschaftlich verwendeten Drucker unterstützen.
  • Bei zumindest einigen Ausführungsbeispielen ist der Systemspeicher 234 des Servers 230 ein computerlesbares Medium, das einen Druckertunnelverwalter 236 speichert, der durch den Prozessor 202A ausführbar ist. Der Systemspeicher 234 entspricht zumindest einem von Sekundärspeicher, ROM, RAM oder einem anderen Speichermedium, das derzeit bekannt ist oder später entwickelt wird. Wenn er ausgeführt wird, lenkt der Druckertunnelverwalter 236 Druckanforderungen von den Clienten 202A202N zu dem Drucker 250. Das Druckanforderungshandhabungsschema des Druckertunnelverwalters 236 arbeitet auf einer „Zuerst kommen, zuerst bedient werden-”Basis oder einem anderen Schema. Unabhängig von dem Druckanforderungshandhabungsschema weist der Druckertunnelverwalter 236 selektiv die Steuerung des Druckers 250 jedem jeweiligen Clienten 202A202N zu, auf eine Weise, die es den Clienten 202A202N ermöglicht, Druckanforderungen unter Verwendung der lokalen Druckertreiber 208A208N auszuführen.
  • Bei zumindest einigen Ausführungsbeispielen handhabt ein Druckertunnelverwalter 236 eine nicht überlappende Druckanforderung durch Zuweisen der Steuerung des Druckers 250 zu dem Client, der die Druckanforderung sendet. Sobald die nicht überlappende Druckanforderung abgeschlossen ist, wird der Drucker 250 nicht einem der Clienten zugewiesen oder wird einem Standardclient zugewiesen. Falls eine überlappende Druckanforderung empfangen wird, puffert der Druckertunnelverwalter 236 die überlappende Druckanforderung, bis eine Druckanforderung, die derzeit verarbeitet wird, abgeschlossen ist. Die Steuerung des Druckers 250 kann von einem Client zu einem anderen übertragen werden, um es jedem Client zu ermöglichen, eine Druckanforderung abzuschließen. Während der Druckertunnelverwalter 236 eine Druckanforderung puffert, wird durch den Druckertunnelverwalter 236 eine Standarddruckverzögerung simuliert und an den lokalen Druckertreiber gesendet, dessen Druckanforderung gepuffert wird. Anders ausgedrückt, der lokale Druckertreiber erkennt eine Standarddruckverzögerung (z. B. eine Aufwärmverzögerung), erkennt aber keine Verzögerung durch gemeinschaftliche Verwendung des Druckers. Falls ein lokaler Druckertreiber in der Lage ist, eine Verzögerung durch gemeinschaftliche Verwendung eines Druckers zu erkennen, kann die Verzögerung durch gemeinschaftliche Verwendung eines Druckers als eine der Standardverzögerungen verwendet werden, die der Druckertunnelverwalter 236 verwendet, um zu bewirken, dass der lokale Druckertreiber abwartet, bis er an der Reihe ist, die Steuerung des Druckers 250 zu empfangen und dann eine Druckanforderung abzuschließen. Der Druckertunnelverwalter 236 minimiert vorzugsweise die Wartezeit für anstehende Druckanforderungen und verhindert, dass lokale Druckertreiber bestimmen, dass der Drucker 250 nicht verfügbar ist oder anderweitig ausgefallen ist (wenn der Drucker einfach gemeinschaftlich verwendet wird).
  • Bei zumindest einigen Ausführungsbeispielen arbeiten die Druckertunnel 210A210N und/oder der Druckertunnelverwalter 236, um Druckertreiberauszeiteinstellungen einzustellen, Standarddruckverzögerungen zu simulieren, Statusmitteilungen zu präsentieren, die für die verbleibende Verzögerung oder andere verwandte Funktionen geeignet sind. Falls ein lokaler Druckertreiber in der Lage ist, Druckanforderungen zu spoolen, sind die entsprechenden Druckertunnel und Druckertunnelverwalter 236 in der Lage, die Spooling-Kapazität zu beeinflussen, um eine Druckanforderung zu verzögern, ohne einen Ausnahmezustand zu erzeugen. Falls der Drucker 250 eine Ausnahmebenachrichtigung ausgibt (z. B. Toner niedrig), kann der Druckertunnelverwalter 236 die Ausnahmebenachrichtigung an den Clienten mit der aktuellen Steuerung des Druckers senden. Falls es keinen steuernden Clienten gibt, wenn die Ausnahmebenachrichtigung durch den Drucker 250 aktiviert wird, speichert oder löscht der Druckertunnelverwalter 236 die Ausnahmebenachrichtigung, bis ein Client eine Druckanforderung sendet und die Steuerung des Druckers 250 empfängt. Falls die Ausnahmebenachrichtigung gelöscht wird, müsste der Drucker 250 die Ausnahme erneut aktivieren. Bei einigen Ausführungsbeispielen sendet der Druckertun nelverwalter 236 Ausnahmebenachrichtigungen an alle Clienten 202A202N. Alternativ sendet der Druckertunnelverwalter 236 Ausnahmebenachrichtigungen an ausgewählte Clienten (z. B. ein Administrator des Servers 230 wählt die entsprechenden Clienten aus).
  • Gleichartig dazu, falls eine Druckerwartungsbenachrichtigung (z. B. Papier leer) während einer Druckanforderung ausgegeben wird, ist der Druckertunnelverwalter 236 in der Lage, die Druckerwartungsbenachrichtigung an den Client zu senden, der den Drucker 250 steuert. Zusätzlich oder alternativ sendet der Druckertunnelverwalter 236 die Druckerwartungsbenachrichtigung an zumindest einen der nicht steuernden Clienten.
  • Bei zumindest einigen Ausführungsbeispielen umfasst der Server 230 einen Heimserver, der physikalisch nahe zu den Clienten 202A202N ist (z. B. innerhalb des gleichen Hauses oder Gebäudes). Alternativ umfasst der Server 230 einen entfernten Server, der von den Clienten 202A202N entfernt ist. In jedem Fall ermöglicht es der Server 230 mehreren Clienten, an dem Drucker 250 zu drucken, basierend auf den lokalen Druckertreibern 208A208N, anstatt auf einem zentralisierten Druckertreiber. Als ein Beispiel kann der Server 230 ein Linuxbetriebssystem oder ein anderes Betriebssystem mit schwacher Druckertreiberunterstützung ausführen. In solch einem Fall ermöglicht das Verwenden des Druckertunnelschemas Flexibilität beim Entwerfen des Servers 230, ohne die gemeinschaftliche Verwendung des Druckers zu beeinträchtigen. Vorteilhafterweise hängt das Druckertunnelschema nicht von einem SMB-Protokoll (SMB = Server Message Block = Servermitteilungsblock) oder anderen Druckprotokollen ab, die für qualitativ hochwertige (teure) Drucker verwendet werden.
  • 3 stellt ein Verfahren 300 gemäß Ausführungsbeispielen dar. Das Verfahren 300 umfasst das Bereitstellen eins Druckertunnels, der mehrere Clienten über einen Server mit einem Drucker verbindet (Block 302). Wie es hierin beschrieben ist, ermöglicht es ein Druckertunnel einem entfernten Drucker, mit jedem lokalen Druckertreiber eines Clienten verwendet zu werden. Bei zumindest einigen Ausführungsbeispielen emuliert der Druckertunnel einen virtuellen Drucker, der für jeden Client eine virtuelle Adresse aufweist. Die virtuelle Adresse wird für Kommunikation zwischen dem Client und dem entfernten Drucker verwendet. Falls keine mehreren Druckanforderungen empfangen werden (Bestimmung Block 304) wird das Druckereigentum (Steuerung) selektiv zugewiesen, um es einem Clienten zu ermöglichen, eine nächste Druckanforderung zu verarbeiten (Block 306). Falls mehrere Druckanforderungen empfangen werden (Bestimmung Block 304) werden Druckanforderungskonflikte unter Verwendung von kompatiblen Druckerverzögerungen getarnt (Block 308). Anders ausgedrückt, während überlappende Druckanforderungen gepuffert werden, empfängt jeder wartende Client eine kompatible Druckerverzöge rungsbenachrichtigung anstatt eine „Drucker nicht verfügbar” oder ähnliche Mitteilung. Block 308 wird wiederholt, bis eine aktuelle Druckanforderung abgeschlossen wurde (Bestimmung Block 310). Sobald eine aktuelle Druckanforderung abgeschlossen wurde (Bestimmung Block 310) wird das Druckereigentum selektiv zugewiesen, um es einem Clienten zu ermöglichen, eine nächste Druckanforderung zu verarbeiten (306).
  • Das Verfahren 300 ermöglicht es einem Client, der einen lokalen Druckertreiber ausführt, einen Drucker gemeinschaftlich zu verwenden, der an einen Server angeschlossen ist. Druckertunnelfunktionen, die auf jedem Client und auf dem Netzserver laufen, ermöglichen es jedem Client, selektiv den Drucker zu steuern, ohne Druckanforderungskonflikte wahrzunehmen. Das Verfahren zum Auswählen eines Druckers, wenn es mehrere Druckanforderungen gibt, entspricht einem FIFO-Verfahren, einem Priorisierungsverfahren (z. B. der aktuelle Drucker-„Halter” erhält Priorität), oder einem anderen Verfahren. Alle Druckanforderungskonflikte werden als Druckverzögerungen getarnt, die mit Clientdruckertreibern kompatibel sind. Das Verfahren 300 könnte auch Prozesse umfassen zum selektiven Verteilen von Druckerwartungsanforderungen und Ausnahmezuständen von einen Drucker an zumindest einen der Clienten, die den Drucker gemeinschaftlich verwenden.
  • 4 stellt ein Verfahren 400 gemäß Ausführungsbeispielen dar. Wie es gezeigt ist, umfasst das Verfahren 400 die gleichen Blöcke wie das Verfahren 300 von 3. In 4 wird die Ausgabe von Block 306 in den Bestimmungsblock 304 eingegeben, anstatt in den Block 302, wie es für das Verfahren 300 dargestellt war. Anders ausgedrückt, das Verfahren 300 stellt dar, dass der Prozess des Bereitstellens eines Druckertunnels wiederholbar ist (d. h. neue Druckertunnel können gebildet werden) während das Verfahren 400 darstellt, dass ein Druckertunnel beibehalten werden kann.
  • Zusammenfassung
  • Ein System ist vorgesehen, wobei das System zumindest einen Clientcomputer (202A202N) und einen Servercomputer (230) umfasst, der mit dem zumindest einen Clientcomputer (202A202N) über ein Netz (220) gekoppelt ist. Das System weist auch einen Drucker (250) auf, der mit dem Servercomputer (230) gekoppelt ist und durch den zumindest einen Clientcomputer (202A202N) gemeinschaftlich verwendet wird. Der Drucker (250) wird durch jeden Clientcomputer (202A202N) als ein lokaler Drucker wahrgenommen.

Claims (10)

  1. Ein System, das folgende Merkmale umfasst: zumindest einen Clientcomputer (202A202N); einen Servercomputer (230), der mit dem zumindest einen Clientcomputer (202A202N) über ein Netz (220) gekoppelt ist; und einen Drucker (250), der mit dem Servercomputer (230) gekoppelt ist und durch den zumindest einen Clientcomputer (202A202N) gemeinschaftlich verwendet wird, wobei der Drucker (250) durch jeden Clientcomputer (202A202N) als ein lokaler Drucker wahrgenommen wird.
  2. Das System gemäß Anspruch 1, bei dem überlappende Druckanforderungen von dem zumindest einem Clientcomputer (202A202N) gehandhabt werden, um die Wahrnehmung von jedem Clientcomputer, dass der Drucker (250) ein lokaler Drucker ist, beizubehalten.
  3. Das System gemäß Anspruch 1, bei dem jeder Clientcomputer (202A202N) einen Prozessor (204) und einen Systemspeicher (206) mit einem lokalen Druckertreiber (208) und einer Druckertunnelanwendung (210) umfasst, wobei die Druckertunnelanwendung (210) bewirkt, dass Druckanforderungen von dem lokalen Druckertreiber (208) zu einer virtuellen lokalen Druckeradresse weitergeleitet werden.
  4. Das System gemäß Anspruch 3, bei dem die Druckertunnelanwendung (210) Teil eines Universeller-Serieller-Bus-(USB-)Stapels (126) ist.
  5. Das System gemäß Anspruch 1, bei dem der Servercomputer (230) einen Prozessor (232) und einen Systemspeicher (234) mit einem Druckertunnelverwalter (236) aufweist, wobei der Druckertunnelverwalter (236) bewirkt, dass überlappende Druckanforderungen gepuffert werden, und die Simulation von Standarddruckverzögerungen für Clientcomputer (202A202N) mit gepufferten Druckanforderungen bewirkt.
  6. Das System gemäß Anspruch 5, bei dem der Druckertunnelverwalter (236) die Steuerung des Druckers (250) selektiv einem der zumindest einen Clientcomputer (202A202N) zuweist.
  7. Ein Verfahren, das folgende Schritte umfasst: Bereitstellen eines Druckertunnels (210) zwischen zumindest einem Client (202A202N) und einem Drucker (250), der an einen Server (230) angeschlossen ist; und Ermöglichen, dass der zumindest eine Client (202A202N) den Drucker (250) über den Druckertunnel (210) gemeinschaftlich verwendet, als ob der Drucker (250) für jeden Client (202A202N) lokal wäre.
  8. Das Verfahren gemäß Anspruch 7, das ferner das Handhaben von überlappenden Druckanforderungen von den Clienten (202A202N) umfasst, ohne zu offenbaren, dass der Drucker (250) gemeinschaftlich verwendet wird.
  9. Das Verfahren gemäß Anspruch 7, das ferner das Puffer von überlappenden Druckanforderungen umfasst, und das Simulieren einer kompatiblen Druckverzögerungsmitteilung für Clienten (202A202N), deren Druckanforderungen gepuffert werden.
  10. Das Verfahren gemäß Anspruch 7, das ferner das Einrichten einer virtuellen lokalen Druckeradresse für jeden Clienten (202A202N) umfasst, wobei sich der Druckertunnel (210) für Kommunikation zwischen dem zumindest einen Client (202A202N) und dem Drucker (250) auf virtuelle lokale Druckeradressen verlässt.
DE112008001168T 2007-04-30 2008-04-28 System und Verfahren zum gemeinschaftlichen Verwenden eines Druckers Ceased DE112008001168T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/742,518 US8806013B2 (en) 2007-04-30 2007-04-30 Methods and systems for sharing a printer
US11/742,518 2007-04-30
PCT/US2008/061787 WO2008137386A1 (en) 2007-04-30 2008-04-28 Systems and methods for sharing a printer

Publications (1)

Publication Number Publication Date
DE112008001168T5 true DE112008001168T5 (de) 2010-04-01

Family

ID=39888286

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008001168T Ceased DE112008001168T5 (de) 2007-04-30 2008-04-28 System und Verfahren zum gemeinschaftlichen Verwenden eines Druckers

Country Status (6)

Country Link
US (1) US8806013B2 (de)
CN (1) CN101675422B (de)
BR (1) BRPI0809889A2 (de)
DE (1) DE112008001168T5 (de)
GB (1) GB2462953B (de)
WO (1) WO2008137386A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090303521A1 (en) * 2008-06-06 2009-12-10 Moschip Seminconductor Technology Limited Method and system for sharing of a usb printer to all clients
US8037191B2 (en) * 2008-11-10 2011-10-11 Cisco Technology, Inc. Low-level remote sharing of local devices in a remote access session across a computer network
TW201033810A (en) * 2009-03-03 2010-09-16 Asustek Comp Inc System for sharing and method for managing hardware apparatus
US9244866B2 (en) * 2010-04-30 2016-01-26 International Business Machines Corporation Remote access of peripheral device connected to serial bus
JP5143191B2 (ja) * 2010-06-30 2013-02-13 株式会社バッファロー 周辺装置を利用するためのシステム、サーバ装置、方法
US9891867B2 (en) * 2010-11-10 2018-02-13 Electronics For Imaging, Inc. Protocol for interaction between wireless devices and other devices
US9092164B2 (en) 2011-05-31 2015-07-28 Microsoft Technology Licensing, Llc Printing using a platform-independent driver
US20130201519A1 (en) * 2012-02-03 2013-08-08 Apple Inc. Bridging Non-Network Interfaces and Network Interfaces
WO2014120198A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Linking a roaming device to a network-enabled resource through a cloud service using an address obtained through a local interaction
US9092171B2 (en) * 2013-08-22 2015-07-28 Kabushiki Kaisha Toshiba Management apparatus for notifying error message and notification method using the same
CN104463550A (zh) * 2013-09-13 2015-03-25 株式会社东芝 通知错误消息的管理装置以及利用该装置的通知方法
JP5920299B2 (ja) * 2013-09-17 2016-05-18 コニカミノルタ株式会社 画像形成装置、遠隔制御方法、および遠隔制御プログラム
JP6665491B2 (ja) * 2015-11-05 2020-03-13 富士ゼロックス株式会社 遠隔操作端末装置、遠隔操作システム及びプログラム
WO2018009176A1 (en) 2016-07-06 2018-01-11 Hewlett-Packard Development Company, L.P. Printing device pool
CN106681672A (zh) * 2016-11-30 2017-05-17 刘家惠 办公自动化系统
US11863348B2 (en) * 2021-07-06 2024-01-02 Cisco Technology, Inc. Message handling between domains
CN113885816A (zh) * 2021-09-29 2022-01-04 广东天波信息技术股份有限公司 虚拟打印设备进行打印的方法、系统、设备和存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792477B1 (en) * 2000-05-18 2004-09-14 Microsoft Corporation Discovering printers and shares
US7190477B2 (en) * 2001-02-22 2007-03-13 Sharp Laboratories Of America, Inc. System and method for managing and processing a print job using print job tickets
US7552216B2 (en) * 2001-03-27 2009-06-23 Lexmark International, Inc. Method of sharing a printer
JP3832624B2 (ja) * 2001-05-29 2006-10-11 ノーリツ鋼機株式会社 プリンタ共有管理プログラムとプリンタ共有管理システム
US7253915B2 (en) * 2002-03-07 2007-08-07 Canon Kabushiki Kaisha Creating a locally managed instance of a network printer
US7586636B2 (en) * 2002-12-11 2009-09-08 Broadcom Corp. Printer resource sharing in a media exchange network
KR100432367B1 (ko) * 2003-04-30 2004-05-20 푸른정보기술(주) 네트웍/로컬/공유 프린터들의 관리 및 인쇄 제어시스템
US7804609B2 (en) * 2003-11-07 2010-09-28 Desktop Standard Corporation Methods and systems to connect network printers
KR100581523B1 (ko) * 2004-01-28 2006-05-22 삼성전자주식회사 로컬 프린터를 공통적으로 사용하는 네트워크 시스템 및그 방법
JP2006079138A (ja) 2004-09-07 2006-03-23 Ricoh Co Ltd ステータス取得方法、プリンタドライバ及び情報処理装置

Also Published As

Publication number Publication date
BRPI0809889A2 (pt) 2014-09-30
CN101675422A (zh) 2010-03-17
US8806013B2 (en) 2014-08-12
WO2008137386A1 (en) 2008-11-13
CN101675422B (zh) 2012-07-04
GB0919001D0 (en) 2009-12-16
GB2462953B (en) 2011-11-23
GB2462953A (en) 2010-03-03
US20080270525A1 (en) 2008-10-30

Similar Documents

Publication Publication Date Title
DE112008001168T5 (de) System und Verfahren zum gemeinschaftlichen Verwenden eines Druckers
DE112016000258B4 (de) Gruppieren von nichtflüchtigem speicher auf grundlage von hosts mithilfe von zugeordnetem netzwerkspeicher
DE102008030587B4 (de) Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem
DE112014000415B4 (de) Quantisierte Überlastbenachrichtigung in einem virtuellen Netzwerksystem
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE602005005151T2 (de) USB Endgeräte in Verbindung mit einem Anwendungsserver
DE112004002797B4 (de) Ausfallsicherung und Lastausgleich
DE10047266B4 (de) Verfahren und Vorrichtung zum Booten einer Workstation von einem Server
DE112013001749B4 (de) Link-Power-Management in einer l/O-Verbindung
DE102009031126A1 (de) Aktivieren der funktionalen Abhängigkeit in einem Multifunktionsgerät
DE112008002550T5 (de) Verfahren und System für virtuelle Schnittstellenkommunikation
DE112012003776T5 (de) Migration logischer Partitionen mit zustandsbehafteten Auslagerungsdatenverbindungen während des laufenden Betriebs unter Verwendung der Kontextherauslösung und -einfügung
DE112005001502T5 (de) Gemeinsame Benutzung einer physikalischen Vorrichtung durch mehrere Kunden
DE112012006227B4 (de) Systeme und verfahren für den remotezugriff auf den direkten speicher mit reduzierter latenzzeit
DE112008002416T5 (de) Gemeinsame Nutzung von Legacy-Geräten in einer Multithost-Umgebung
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE102022205478A1 (de) Busübergreifende speicherabbildung
DE112012002404B4 (de) Konfiguration und Management virtueller Netzwerke
DE102013020277A1 (de) Bit-timing-symmetrisierung
DE112009004075T5 (de) Selektives kommunizieren von daten eines peripheriegeräts zumehreren sendenden computern
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE112010004194T5 (de) Erleichterung der Datenverdichtung während des Kopierens
DE102014114585A1 (de) Verfahren zum Betreiben eines Bedienfelds für ein Produktionssystem sowie Steuervorrichtung für ein Produktionssystem
DE102005041312A1 (de) Speicherzugriff auf virtuelles Targetgerät

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final