共享打印机的系统和方法

文档序号:6477017阅读:271来源:国知局
专利名称:共享打印机的系统和方法
共享打印机的系统和方法
祖旦 冃豕
电子打印机使文本和图形能被打印在纸张或别的介质上。文本和图形可以 是文档或其它文件的一部分。随着计算机网络迅速发展,硬件和软件已发展至 允许多台计算机共享至少一台打印机。例如,多个客户机和一台打印机可连接 于具有打印机驱动器的网络服务器。打印机驱动器处理来自多台客户机的打印 请求。
遗憾的是,运行在客户机上的操作系统(os)和不同打印机的硬件/软件中
的差异产生现行的兼容性课题。因此,为使用特定打印机和/或客户机而设置 服务器不一定适用于其它打印机或客户机。另外,许多服务器是故意设置成"无 脑的"(没有例如监视器、键盘或鼠标的专用人机界面),因此服务器功能的 修改对没有经验的用户来说是困难的。
附图简述
为了详细说明本发明的示例性实施例,现在参照附图,在附图中-
图l示出根据实施例的计算机; 图2示出根据实施例的系统;
图3示出根据实施例的方法;以及
图4示出根据实施例的另一种方法。
注释和命名
在下面的说明书和权利要求书中使用某些术语来表示特定的系统部件。如 本领域内技术人员所理解的那样,计算机公司可用不同名称来称呼一个部件。 本文献无意对差异仅在名称而不在功能的部件之间作出区别。在下面的说明和 权利要求书中,术语"包括"和"包含"用于无穷尽形式,并因此应当解释成"包括但不局限于……"。另夕卜,术语"耦合"或"耦合至"旨在表示间接、 直接、光或无线的电连接。因此,如果第一装置耦合于第二装置,这种连接可 通过直接电连接、通过藉由其它装置和连接的间接电连接、通过光电连接或通 过无线电连接。
详细说明
下面的说明针对本发明的各实施例。尽管这些实施例中的一个或多个可能 是优选的,然而所披露的实施例不应当解释成或用于限制包括权利要求书的公 布范围。另外,本领域内技术人员可以理解,下面的说明具有宽泛适用性,且 任何实施例的说明仅为该实施例的示例,而不旨在宣布包括权利要求书的公布 范围局限于该实施例。
如本文描述的,实施例允许多个客户机在网络上共享一台打印机。换句话 说,打印机耦合于多台客户机可访问的服务器。在至少一些实施例中,在客户 机和打印机之间提供了 "打印隧道"。如本文中使用的,打印隧道是使服务器 关于打印变得至少部分透明的硬件、固件和/或软件的组合。在这种情况下,每 个客户机就像打印机本地连接那样工作。打印机隧道较佳地处理来自不同客户 机的打印请求之间的冲突并可与各种客户机操作系统、客户打印机驱动器和打 印机兼容。
现在参见附图,尤其是

图1,图1示出根据本公布实施例的计算机101。 计算机101与客户机计算机或服务器计算机对应。在至少一些实施例中,服务 器计算机是无脑服务器(即没有例如监视器、键盘或鼠标的专用人机界面)。
如图所示,计算机101包括耦合于总线桥的多个中央处理单元(CPU)102、 104, 所述总线桥在计算机领域中一般被称为"北桥"108。北桥108使CPU 102、 104耦合于系统存储器106和计算机101的其它部件。北桥108对计算机的性 能具有显著影响,由于其限定了数据在CPU 102、 104和系统存储器106之间 流动时的速度。
如图所示,北桥108通过"快速"串行总线链路(相比旧式总线链路来说) 耦合于输入/输出(I/0)桥接器150,所述串行总线链路在一些实施例中具有八个 串行通信通道(X8)。该总线可以是专有的芯片组互连,也可与例如PCI Express
5的已建立工业标准一致。在至少一些实施例中,1/0桥接器150经由PCI 66/64 通信接口耦合于PCI狭槽152、 154。 PCI狭槽152、 154可配置成支持可插入/ 拆下的PCI卡,所述PCI卡增强了计算机101)的功能。
北桥108还通过另一 "快速"总线链路(相比旧有总线的链路而言)耦合 于1/0桥接器170,所述总线链路在一些实施例中具有八个通信信道(X8)。如 图所示,I/O桥接器170经由PCI Express (PCI-E)的总线通信耦合于小型计算机 系统接口(SCSI)模块160。 SCSI模块160基于SCSI通信协议支持若干存储盘 162、 164、 166。 I/O桥接器170还通过PCI-E通信总线耦合于网络接口卡 (NIC)124。 NIC 124允许计算机101基于例如带传输控制协议/互联网协议 (TCP/IP)的以太网与其它计算机或网络装置通信。1/0桥接器170还耦合于 PCI-E狭槽172 (例如经由在一些实施例中具有四个通信信道(X4)的通信总 线)。PCI-E狭槽配置成支持改善计算机101功能的可插入/或去除的PCI-E卡。 本领域内技术人员可以理解,狭槽和装置的快速总线链路宽度以及PCI-E连接 是基于所连接装置的预定带宽选择的。其它互连以及其它道宽可由系统设计者 选取。
如图所示,北桥108也经由旧式通信总线链路耦合于南桥115。该总线链 路可以是专有的芯片组互连或可与例如PCI-Express的已建立工业标准一致。 在至少一些实施例中,南桥115包括耦合于并支持例如USB鼠标117、 USB 键盘(KB)118和USB打印机119的USB外围设备的USB主机控制器116。本 领域内技术人员可以理解,这些设备可通过USB连接器耦合并且是任选的。 南桥115也耦合于并支持光盘驱动器180 (例如CD-ROM或DVD-ROM驱动 器)。南桥115也通过低引脚数(LPC)总线耦合于超级输入/输出(I/0)接口 174。 超级I/0(SIO)174耦合于并支持闪存ROM 176以及软盘驱动器190、旧式键盘 (KB)192、旧式鼠标194和通用异步接收器/发射器(UART)196。如同上面提到 的USB设备,SI0 174提供所列举的旧式设备连接的接口。旧式物理键盘或鼠 标对计算机101的正确操作而言可能是不需要的。
如图所示,南桥115可选择地耦合于并支持视频卡112,该视频卡112可 选择地耦合于监视器113。例如,如果计算机101与客户机对应,则可包括视 频卡112和监视器113。如果计算机101与服务器对应,则可排除视频卡112和监视器113。
南桥115还通过PCI 33/32通信总线耦合于并支持网络适配器114。代替 地,网络适配器114可通过例如PCI-Express、 PCI-X、 66/64、 LPC之类其它合 适的通信接口耦合于主机。网络适配器114允许计算机101与网络上的打印机 通信。
如图1所示,南桥115的USB主机控制器116存储具有打印机隧道128 的USB堆栈126。 USB堆栈126和/或打印机隧道128可交替地存储在计算机 101的不同位置。USB堆栈126可分割成不同的层。在一些实施例中,较低的 USB堆栈层包含主机控制器驱动器,它向USB主机控制器硬件及其调度设备 提供普通接口。较低的USB堆栈层支持许多功能,例如USB主机控制器硬件 初始化、传输调度和完成和/或失败的传输的处理。每个主机控制器驱动器采用 虚拟集线器,它提供对控制计算机101的USB端口的寄存器的硬件独立访问。
中间USB堆栈层处理例如USB设备连接和断开、USB设备的基本初始化、 驱动器选择、USB通信信道和资源管理的功能。该中间USB堆栈层也控制默 认信道以及通过该默认信道传输的USB设备请求。
较高USB堆栈层包含支持特定设备或多种设备的各个驱动器。高USB堆 栈层支持用于非默认通信信道的协议。较高USB堆栈层还添加功能以使USB 设备可用于操作系统(OS)或计算机101的其它部件。在一些实施例中,高USB 堆栈层依赖于由中间USB堆栈层露出的USB驱动器接口(USBDI)。在至少一 些实施例中,打印机隧道128是较低USB堆栈层的一部分。
为了便于描述实施例,打印机隧道128在本文中有时描述为具有客户机端 和服务器端。另外,打印机隧道128在本文中有时描述为具有打印机隧道管理 器。在至少一些实施例中,打印机隧道管理器处理交叠的打印请求之间的冲突。 打印机隧道管理器还将打印机状态通知或打印机异常发送至其中至少一台客 户机。在一些实施例中,打印机隧道管理器工作在打印机隧道128的服务器端。 在替换性实施例中,打印机隧道管理器工作在打印机隧道128的客户机端或打 印机隧道128的客户机端和服务器端两者的组合上。不管打 机隧道管理器的 位置如何,打印机隧道管理器的操作可由打印机隧道128的客户机端或服务器 端支持。如果计算机101与客户机对应,则打印机隧道128的客户机端负责包括 USB打印机的有选择仿真的若干功能。换句话说,这种仿真可使每台客户机能 接收和识别从网络上的打印机接收到的数据,就像从本地连接的USB打印机 接收那样。由计算机101实现以翻译来自所仿真USB打印机的数据的USB驱 动器是与己有USB协议兼容的(即设计和安装新打印机驱动器以发送数据至 和接收数据自远程打印机是不必要的)。
在至少一些实施例中,打印机隧道128的客户机端或服务器端与除USB
协议规范中描述的串行通信链路外的通信总线形成接口(例如该通信总线可基 于外设部件互连(PCI)协议或一些其它协议)。在这种情形中,打印机隧道128 的客户机端或服务器端能够将数据从一种协议转换成另一种协议,反之亦然。 在至少一些实施例中,打印机隧道128的客户机端通过例如端口状态的通 用主机控制器接口(UHCI)寄存器和控制寄存器"P0RTSC1"和"PORTSC2" 向主机操作系统(OS)提供热插拔事件。在真实的UHCI控制器中,P0RTSC1 和PORTSC2寄存器表征对USB设备的物理、有线链路。然而,在本文给出的 至少一些实施例中,这些寄存器表征对虚拟设备韵连接(没有引入实际的布线 或总线连接)。打印机隧道128的客户机端可通过检查传输标识符(TD)令牌字 段中的地址以及PORTSC寄存器的连接和启用状态来确定计算机101试图与哪 个设备通信。
在至少一些实施例中,打印机隧道128的客户机端使虚拟打印机关联于 USB端口 (例如P0RTSC1)。为了通知计算机101识别该虚拟打印机,对相 应端口宣布连接比特(比特0)和连接改变比特(比特1)。响应所宣布的连 接比特,计算机101检测该虚拟打印机并试图列出(即分配地址)并配置该虚 拟打印机。
起先(在虚拟打印机已由主计算机的USB驱动器给出地址前),虚拟打 印机可具有地址"零"。在这种状态下,单独基于地址与虚拟打印机的通信存 在问题,如果另一USB设备具有该相同地址的话。为了克服任何寻址冲突, 打印机隧道128的客户机端可通过启用或禁用每个PORTSC寄存器(PORTSC 寄存器的比特2)而选择与哪个设备通信。因此,在一些实施例中,打印机隧 道128的客户机端能够确定PORTSC寄存器中的比特值并将数据传至合适的设
8备或虚拟设备。 一旦已列出某一虚拟打印机(例如给出零以外的USB地址), 则可永久或暂时地启用该虚拟打印机的端口 (例如直到下一次重置事件为止)
且打印机隧道128的客户机端能使用其相关的地址找到虚拟打印机。
当客户机计算机产生打印请求时,该请求从本地打印机驱动器被送至USB 堆栈126。打印机隧道128的客户机端随后将打印请求送至该虚拟打印机被分 配的地址。打印请求实际发送至打印机隧道128的服务器端并随后发送至与该 服务器耦合的打印机。在一些实施例中,打印机隧道128的客户机端和服务器 端能够封装/拆装例如打印请求、打印机状态响应、打印机异常或其它数据的数 据(例如去往或来自网络协议)。例如,可重组送至或接收自网络的打印机数 据以在USB协议和网络协议(例如带TCP/IP的以太网)之间传递经通道的消 息/分组。在一些情形下,打印机隧道128的客户机端封装打印请求而打印机隧 道128的服务器端拆装该打印请求。打印请求随后被送至本地耦合于服务器的 打印机。另外,在一些情形下。打印机隧道128的服务器端封装打印机状态响 应或打印机异常,而打印机隧道128的客户机端拆装打印机状态响应或打印机 异常。随后通过接收客户机的本地打印机驱动器来处理打印机状态响应或打印 机异常。
在至少一些实施例中,打印机隧道管理器处理多个打印请求。交叠的打印 请求可基于先到先得或一些其它处理方案而处理。例如,在一些实施例中,打 印机隧道管理器缓冲交叠打印请求并按顺序处理这些打印请求。作为替代,享 有打印机控制权的客户机能够在将打印机控制传送给等待客户机前在阈值的 时间内连续发送打印请求。在任一情形下,打印机的控制可从控制客户机传送 至等待待决打印请求的另一客户机。当客户机等待当前待决的打印请求结束 时,打印机隧道管理器模拟标准打印机延时(例如打印机热机延时)以防止等 待的客户判断已发生打印机故障。这种能力在客户的打印机驱动器与来自本地 打印机的标准延时消息兼容但不共享打印机的实施例中是有用的。
在至少一些实施例中,打印机隧道管理器和打印机隧道128的各端能通过 调整打印机驱动器超时设定、模拟标准打印机延时并对剩下的延时给出相配的 状态消息而管理客户对打印经历的感知。如果给出的客户打印机驱动器不支持 打印机共享,则打印机隧道128的各端和打印机隧道管理器形成形成给定客户机对打印机具有独占控制的假象(至少在打印时是如此)。
客户机和服务器的实施例不局限于图1的计算机101。图1简单地示出一 个实施例。可代替实施例随着处理、存储器、互连、协议、外设和其它功能方 面而变化。 一般来说,客户机计算机应当能够执行标准打印机驱动器以用于本
地打印机(例如USB打印机)。客户机计算机也支持打印机隧道,以使远程
打印机(即连接于服务器的打印机)对客户机计算机和客户机打印机驱动器而 言看上去象本地打印机。
一般来说,服务器计算机应当在具有本地打印机驱动器的客户机和可兼容 打印机之间提供接口 。在至少一 些实施例中,服务器计算机通过合适的端口 (例 如以太网端口和/或集线器)连接于多台客户机。服务器计算机也通过合适的端
口 (例如USB端口)连接于打印机。在一些实施例中,由于每个客户机正在 执行本地打印机驱动器,服务器计算机不提供集中式打印机驱动器。相反,服 务器计算机支持打印机隧道和打印机隧道管理器的操作以将连接于服务器的 共享打印机对每个客户机掩饰成本地打印机。打印机隧道管理器通过模拟(由
客户打印机驱动器识别的)标准打印延时并有选择地将打印机控制从一台客户 机传至另一客户机以使客户机轮流处理待决的打印请求而处理交叠的打印请 求。连同打印机隧道的客户机端,打印机隧道的服务器端以及打印机隧道管理 器可视为一个实体,该实体完成允许多个客户机就像某一打印机在每台客户机 的本地那样共享连接于服务器的该打印机的任务。本文中针对打印机隧道描述 的不同功能涉及不同数量的客户机和服务器。
如前面提到的,由于客户机计算机和打印机上的硬件、固件和/或软件可 能发生更新并且对没有经验的使用者来说在无脑服务器上修改网络打印机驱 动器是困难的,因此集中式打印机驱动器(例如在服务器上)是成问题的。相 反,打印机隧道和打印机隧道管理器提供选择的功能(例如将连接于服务器的 打印机掩饰成每台客户机的本地打印机并处理来自多台客户机的交叠打印请 求),这些功能不可能改变,即谆发生客户机或打印机更新也好。在某些情形 下,更新(例如打印机改变)可能只涉及在服务器侧实现的较小改变(例如该 服务器被配置成识别新的打印机)而不会影响客户机。尽管打印机隧道可用于 商业环境和甚至长距离,然而打印机隧道在使用者经常缺乏经验的家庭环境中尤为有利。换句话说,打印机隧道和打印机隧道管理器的一些实施例可作为面 向家庭环境的服务器的一部分。
图2示出根据实施例的系统200。如图所示,系统200包括通过网络220 和服务器230耦合于打印机250的多台客户机202A —202N。多台客户机202A 一202N、网络220、服务器230和打印机250的部件已被简化以便于描述实施 例。在各实施例中,客户机202A—202N和服务器230具有比图1的计算机101 更多或更少的部件。 .
在图2中,打印机250包括耦合于具有打印机控制指令256的系统存储器 254的处理器252。在至少一些实施例中,打印机控制指令256允许打印机250 打印从服务器230接收到的打印文档和图像。根据需要,打印机控制指令256 还允许处理器252检测打印机250的服务需求、故障或异常情况并随后发布打 印机服务请求和通知(例如纸张用完、低墨粉或其它通知)。处理器252还耦 合于I/O接口 258,该I/O接口 258允许打印机250与例如服务器230和客户 机202A-202N的其它设备通信。
通过描述客户机202A而提供对每个客户机的典型描述。如图2所示,客 户机202A包括耦合于系统存储器206A的处理器204A。处理器204A也耦合 于网络接口 212A和输入/输出接口 214A。
在至少一些实施例中,系统存储器206A是存储可由处理器204A执行的 本地打印机驱动器208A和打印机隧道210A的计算机可读介质。系统存储器 206A与辅助存储器、只读存储器(ROM)、随机存取存储器(RAM)或当前己知 或将来研发的其它存储介质对应。例如,辅助存储器包括一个或多个盘驱动器 或磁带驱动器并用于数据的非易失存储并且如果RAM不够大则作为溢出数据 存储装置以保留所有工作数据。辅助存储器可用来存储当选择该程序执行时加 载入RAM的那些程序。ROM用来存储在程序执行期间读取的指令和可能数 据。ROM是相对于辅助存储器的较大存储容量而典型地具有小存储容量的非 易失存储器件。RAM用来存储易失数据并可能存储指令。对ROM和RAM的 访问 一般比辅助存储器更快。
本地打印机驱动器208A支持本地打印机的打印并可兼容于特定打印机或 特定类别的打印机。在至少一些实施例中,本地打印机驱动器208A可检测何时打印机被插入到I/0接口 214A中(即插即用操作)。本地打印机驱动器208A 也支持多种功能,例如提供用户/打印机接口、假脱机打印工作、向用户显示消 息(例如打印开始、打印延迟、打印取消、打印工作剩余时间、纸张用完消息、 低墨粉消息)、由用户将打印质量选择传至打印机或其它功能。尽管客户机 202A能基于本地打印机驱动器208A与耦合于I/O接口 214A的本地打印机相 互作用,然而打印机隧道210A允许客户机202A与远程打印机(或连接于服 务器而不是客户机202A的至少一台打印机)相互作用。
在至少一些实施例中,打印机隧道210A支持虚拟打印机的模拟。换句话 说,打印机隧道210A使本地打印机驱动器208A与远程打印机相互作用,就 像该远程打印机是耦合于I/O接口 214A的本地打印机那样。打印机隧道210A 可通过设置虚拟本地打印机地址和适当地开通或仿真本地打印机驱动器208A 和远端打印机之间的通信而完成仿真。当使用远程打印机时,开通至/自网络接 口 212A而不是I/0接口 214A的通信。如图1的实施例所提到的那样,打印机 隧道210A的一些实施例与USB堆栈的一部分对应,尽管当前已知或未来形成 的其它实施例也是可行的。
如图2所示,服务器230包括耦合于系统存储器234的处理器232。处理 器232也耦合于网络接口 238和I/O接口 240。网络接口 238允许服务器230 与网络220通信并对应于例如以太网接口。 1/0接口 240允许服务器230与例 如打印机250的外围设备通信并对应于例如USB接口 。在至少一些实施例中, I/O接口 214A-214N与I/O接口 240相同。换句话说,打印机250可选择地直 接耦合于服务器230或耦合于客户机202A-202N中的一个。当打印机250直接 耦合于服务器230时,客户机能通过服务器230共享打印机250,即使本地打 印机驱动器208A-208N仅支持本地打印机而不是共享的打印机。—
在至少一些实施例中,服务器230的系统存储器234是存储可由处理器 202A执行的打印机隧道管理器236的计算机可读介质。系统存储器234对应 于辅助存储器、ROM、、 RAM或当前已知或日后形成的其它存储介质中的至少 一种。在执行时,打印机隧道管理器236开通从客户机202A-202N至打印机 250的打印请求。打印机隧道管理器236的打印请求处理方案基于先到先得或 某些其它方案而运作。不管打印请求处理方案为何,打印机隧道管理器236有选择地将打印机250的控制分配给每个客户机202A-202N,以允许客户机 202A-202N使用本地打印机驱动器208A-208N执行打印请求。
在至少一些实施例中,打印机隧道管理器236通过将打印机250的控制分 配给发出打印请求的客户机而处理非交叠的打印请求。 一旦非交叠打印机请求 结束,打印机250不被分配给任何客户机或分配给默认客户机。如果接收到交 叠的打印请求,则打印机隧道管理器236对交叠的打印请求作出缓冲,直到当 前处理的打印请求完成为止。打印机250的控制可从一个客户机传至另一客户 机以使每个客户机完成打印请求。当打印机隧道管理器236缓冲打印请求时, 由打印机隧道管理器236模拟标准打印延时并将其送至正在缓冲其打印请求的 本地打印机驱动器。换句话说,本地打印机驱动器将识别标准打印延时(例如 热机延时),但不会识别打印机共享延时。如果本地打印机驱动器能识别打印 机共享延时,则打印机共享延时可用作其中一种标准延时,打印机隧道管理器 236使用这种延时来使本地打印机驱动器等待轮到其接收打印机250控制并随 后结束打印请求。打印机隧道管理器236较佳地使待决打印请求的等待时间减 至最小并防止本地打印机驱动器判定该打印机250不可用或已失效(当单纯共 享该打印机时)。
在至少一些实施例中,打印机隧道210A—210N和/或打印机隧道管理器 236可调整打印机驱动器超时设定,模拟标准打印机延时,给出适合剩余延时 或其它关联功能的状态消息。如果本地打印机驱动器能对打印请求作假脱机处 理,则相应打印机隧道和打印机隧道管理器236能调整假脱机能力以使打印请 求延时而不会形成异常状况。如果打印机250发布异常通知(例如低墨粉), 则打印机隧道管理器236能将异常通知发送给具有打印机当前控制的客户机。 如果当打印机250宣布异常通知时没有控制客户机,则打印机隧道管理器236 存储或丢弃异常通知,直到客户机发送打印请求并接收打印机250的控制为止。 如果异常通知被丢弃,则打印机250必须再次宣布异常。在一些实施例中,打 印机隧道管理器236将异常通知发送给所有客户机202A—202N。代替地,打 印机隧道管理器236将异常通知发送给所选择的客户机(例如服务器230的管 理员选择合适的客户机)。
同样,如果在打印请求过程中宣布打印机服务通知(例如纸张用完),则
13打印机隧道管理器236能将打印机服务通知发送给控制打印机250的客户机。作为附加或选择,打印机隧道管理器236将打印机服务通知发送给至少一个非控制客户机。
在至少一些实施例中,服务器230包括物理上靠近客户机202A-202N的家庭服务器(例如在同一房屋或建筑内)。代替地,服务器230包括位于客户机202A — 202N远端的远程服务器。在任一情形下,服务器230允许多台客户机基于本地打印机驱动器208A—208N而不是集中式打印机驱动器向打印机250发出打印命令。例如,服务器230可运行Linux操作系统或具有微弱打印机驱动器支持的其它操作系统。在这种情形下,使用打印机隧道方案允许在设计服务器230方面的灵活性而不危及打印机共享。较为有利地,打印机隧道方案不依赖于服务器信息块(SMB)协议或其它用于高端(昂贵)打印机的打印协议。
图3示出根据实施例的方法300。该方法包括提供将多台客户机通过服务器连接于打印机的打印机隧道(方框302)。如本文所述,打印机隧道允许用每台客户机的本地打印机驱动器使用一台远程打印机。在至少一些实施例中,打印机隧道对每台客户机仿真具有虚拟地址的虚拟打印机。该虚拟地址用于客户机和远程打印机之间的通信。如果没有接收到多个打印请求(判决框304),则选择地分配打印机机主(控制)以允许客户机处理下一打印请求(方框306)。如果接收到多个打印请求(判决框304),则使用可兼容的打印机延时来掩饰打印请求冲突(方框308)。换句话说,在缓冲交叠的打印请求时,每台等待的客户机接收兼容的打印机延时通知而不是"打印机不可用"或类似消息。重复方框308直到当前打印请求已结束(判决框310)。 一旦当前打印请求已结束(判决框310),有选择地分配打印机机主以使客户机处理下一打印请求(306)。
方法300允许运行本地打印机驱动器的客户机共享与服务器相连的打印机。运行在每台客户机和网络服务器上的打印机隧道功能允许每台客户机有选择地控制打印机而不会感觉到打印机请求冲突。当具有多个打印请求时选择打印机的方法对应于FIFO方法、优先分级方法(例如将优先级给予当前打印机"持有者")或其它一些方法。任何打印请求冲突均被掩饰成能够与客户机打印机驱动器兼容的打印延时。方法300还包括从打印机至共享打印机的至少一台客户机有选择地分配打印机服务请求和异常状况的过程。
图4示出根据实施例的方法400。如图所示,该方法400包括与图3的方法300相同的框图。在图4中,方框306的输出被输入到判定框304而不是方法300所示的方框302。换句话说,在方法300示出的过程中,提供打印机隧道是可重复的(即可形成新的打印机隧道),而方法400示出的打印机隧道是可维持的。
权利要求
1.一种系统,包括至少一台客户机计算机(202A-202N);通过网络(220)耦合于所述至少一台客户机计算机(202A-202N)的服务器计算机(230);以及耦合于所述服务器计算机(230)并由所述至少一台客户机计算机(202A-202N)共享的打印机(250),其中所述打印机(250)由每台客户机计算机(202A-202N)感知为本地打印机。
2. 如权利要求l所述的系统,其特征在于,来自所述至少一台客户机计算机(202A-202N)的交叠打印请求被处理以维持每台客户机计算机将所述打印机(250)视为本地打印机的感知。
3. 如权利要求1所述的系统,其特征在于,每台客户机计算机(202A-202N)包括处理器(204)和具有本地打印机驱动器(208)和打印机隧道应用(210)的系统存储器(206),其中所述打印机隧道应用(210)使来自所述本地打印机驱动器(208)的打印请求被转发至虚拟本地打印机地址。
4. 如权利要求3所述的系统,其特征在于,所述打印机隧道应用(210)是通用串行总线(USB)堆栈(126)的一部分。
5. 如权利要求l所述的系统,其特征在于,所述服务器计算机(230)包括处理器(232)和具有打印机隧道管理器(236)的系统存储器(234),其中所述打印机隧道管理器(236)使交叠的打印请求被缓冲并用经缓冲的打印请求对客户机计算机(202A-202N)导致标准打印延时模拟。
6. 如权利要求5所述的系统,其特征在于,所述打印机隧道管理器(236)有选择地将打印机(250)的控制分配给所述至少一台客户机计算机(202A-202N)中的一台。
7. —种方法,包括在至少一台客户机(202A-202N)和连接于服务器(230)的打印机(250)之间提供打印机隧道(210);以及使所述至少一 台客户机(202A-202N)通过所述打印机隧道(210)共享所述打印机(250),就像所述打印机(250)对于每台客户机(202A-202N)是本地的那样。
8. 如权利要求7所述的方法,其特征在于,还包括处理来自所述客户机(202A-202N)的交叠打印请求而不透露所述打印机(250)正被共享。
9. 如权利要求7所述的方法,其特征在于,还包括缓冲交叠的打印请求并对其打印请求正被缓冲的客户机(202A-202N)模拟兼容的打印延时消息。
10. 如权利要求7所述的方法,其特征在于,还包括为每台客户机(202A-202N)建立虚拟本地打印机地址,其中所述打印机隧道(210)依靠虚拟本地打印机地址以在所述至少一台客户机(202A-202N)和所述打印机(250)之间通信。
全文摘要
提供一种系统,该系统具有至少一台客户机计算机(202A-202N)和通过网络(220)耦合于至少一台客户机计算机(202A-202N)的服务器计算机(230)。该系统还具有耦合于服务器计算机(230)并由至少一台客户机计算机(202A-202N)共享的打印机(250)。该打印机(250)由每台客户机计算机(202A-202N)察觉为本地打印机。
文档编号G06F15/16GK101675422SQ200880014093
公开日2010年3月17日 申请日期2008年4月28日 优先权日2007年4月30日
发明者D·西洛, G·J·利平斯基, M·D·海恩斯, P·M·沃克, W·G·麦科洛姆 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1