CN102197364B - 用于在网络计算环境中管理打印机设置的系统和方法 - Google Patents
用于在网络计算环境中管理打印机设置的系统和方法 Download PDFInfo
- Publication number
- CN102197364B CN102197364B CN200980142664.9A CN200980142664A CN102197364B CN 102197364 B CN102197364 B CN 102197364B CN 200980142664 A CN200980142664 A CN 200980142664A CN 102197364 B CN102197364 B CN 102197364B
- Authority
- CN
- China
- Prior art keywords
- printer
- virtual printer
- machine
- virtual
- remote
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1205—Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1224—Client or server resources management
- G06F3/1228—Printing driverless or using generic drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
- G06F3/1289—Remote printer device, e.g. being remote from client or server in server-client-printer device configuration, e.g. the server does not see the printer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
Abstract
用于远程地管理与客户机(102A;102B)所连接的远程打印机(205A;205B)相关联的打印机设置的系统和方法。在服务器(106)上执行的虚拟打印机驱动程序(220)被用于产生和管理与客户机(102A;102B)所连接的远程打印机(205A;205B)相关联的虚拟打印机队列(225A;225B)。每个虚拟打印机队列(225A;225B)拦截在服务器(106)上执行的一个或多个应用所产生的打印请求,这些打印请求使虚拟打印驱动程序(220)从高速缓存存储器(227A;227B)检索打印机设置信息,或者向远程打印机(205A;205B)询问打印机设置信息。虚拟打印机驱动程序(220)检索打印机设置信息并使用所检索的打印机设置信息将虚拟打印机队列与远程打印机相关联。然后,虚拟打印机驱动程序(220)通过产生包含所检索的打印机设置和用户定义的打印机设置的图形接口来响应打印请求。
Description
技术领域
本申请总的涉及打印。本申请尤其涉及用于网络计算环境中管理打印机设置的系统和方法。
背景技术
在远程访问环境中实现打印所采用的解决方案包括概括与客户计算机所连接的打印机相关联的打印机设置,或者提供通用的打印机设置来代替用户指定的打印机设置。其他解决方案利用打印机驱动程序数据库来产生打印窗口并且格式化打印文件。还有其他解决方案可以使用通用的打印机驱动程序来创建打印窗口和打印文件。
发明内容
在一个方面,用于在网络计算环境中管理打印机设置的方法包括由网络计算环境中的第一机器执行应用。该方法包括由虚拟打印机驱动程序所管理的虚拟打印机队列拦截由网络计算环境中的第二机器经由所述应用所产生的第一打印请求。该方法包括由虚拟打印机驱动程序响应于第一打印请求的拦截,检索与第一远程打印机相关联的设置信息,所述第一远程打印机与第二机器通信。该方法包括由虚拟打印机驱动程序显示与第一远程打印机相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序响应于检索设置信息而动态地产生的。该方法包括由虚拟打印机队列拦截由网络计算环境中第三机器经由所述应用所产生的第二打印请求。该方法包括由虚拟打印机驱动程序响应于第二打印请求的拦截,检索与第二远程打印机相关联的设置信息,所述第二远程打印机与第三机器通信。该方法包括由虚拟打印机驱动程序显示与第二远程打印机相关联的第二图形接口,所述第二图形接口是由虚拟打印机驱动程序响应于检索与第二远程打印机相关联的设置信息而动态地产生的。
该方法可包括由虚打印机驱动程序检测与第一远程打印机相关联的至少一个打印机设置中的改变。该方法可包括由虚拟打印机驱动程序更新第一图形接口以显示所改变的打印机设置。该方法可包括由虚拟打印机驱动程序显示所更新的第一图形接口。该方法可包括由虚拟打印机驱动程序将虚拟打印机队列与第一远程打印机相关联。该方法可包括由虚拟打印机队列拦截由第二机器经由所述应用所产生的第三打印请求。而且,该方法可包括由虚拟打印机驱动程序显示与第一远程打印机相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序响应于第三打印请求的拦截而显示的。该方法可包括由虚拟打印机驱动程序向第二机器上的图形渲染引擎传输所检索的与第一远程打印机相关联的设置信息。
该方法可包括在网络计算环境中的宿主机器上执行虚拟打印机驱动程序。该方法可包括由虚拟打印机驱动程序根据所检索的打印机设置信息创建虚拟打印机队列。该方法可包括由虚拟打印机驱动程序使用所检索的打印机设置信息来识别与网络计算环境中的客户机相关联的多个远程打印机。该方法可包括由虚拟打印机驱动程序将虚拟打印机队列与客户机所连接的远程打印机相关联。在将第一远程打印机与虚拟打印机队列相关联的过程中,该方法可包括由虚拟打印机驱动程序映射到第一远程打印机的路径。该方法可包括由虚拟打印机驱动程序询问第二机器所连接的第一远程打印机。
该方法可包括由虚拟打印机驱动程序检索与第一远程打印机相关联的打印机设置信息,所述打印机设置信息是在询问第一远程打印机期间所产生的。这个方法可包括由虚拟打印机驱动程序创建与第一远程打印机相关联的第一虚拟打印机队列。这个方法可包括由虚拟打印机驱动程序显示与第一远程打印机相关联的第一图形接口,所述第一图形接口包括所检索的与第一远程打印机相关联的打印机设置信息。这个方法可包括由虚拟打印机驱动程序向第二机器上的图形渲染引擎传输所检索的与第一远程打印机相关联的设置信息。
在又一方面,用于在网络计算环境中管理打印机设置的方法包括由网络计算环境中的第一机器执行应用。该方法包括由虚拟打印机驱动程序所管理的虚拟打印机队列拦截由网络计算环境中的第二机器经由所述应用所产生的第一打印请求。该方法包括由虚拟打印机驱动程序响应于第一打印请求的拦截,检索与第一远程打印机相关联的设置信息,所述第一远程打印机与第二机器通信。该方法包括由虚拟打印机驱动程序显示与第一远程打印机相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序响应于检索设置信息而动态地产生的。该方法包括由虚拟打印机驱动程序拦截中断第二机器对所述应用的访问的事件。该方法可包括由虚拟打印机驱动程序检索与第一远程打印机相关联的打印机设置信息。该方法包括由虚拟打印机驱动程序显示与第一远程打印机相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序响应于与第一远程打印机相关联的设置信息的检索而显示的。
该方法可包括拦截在第二机器和所述应用之间的连接超时。这个方法可包括拦截在第二机器和所述应用之间的网络中断。这个方法可包括拦截断开第二机器到所述应用的连接和重新将第二机器连接到所述应用的用户请求。而且,该方法可包括拦截由网络计算环境中第三机器经由所述应用所产生的第二打印请求,其后紧跟着由第二机器经由所述应用所产生的第三打印请求。
又一方面,用于在网络计算环境中管理打印机设置的系统包括在网络计算环境中的执行应用的第一机器。该系统包括在第一机器上执行的虚拟打印机队列,用于拦截第二机器经由所述应用所产生的第一打印请求,并且拦截第三机器经由所述应用所产生的第二打印请求。该系统包括在第一机器上执行的虚拟打印机驱动程序,用于管理虚拟打印机队列。而且,虚拟打印机驱动程序响应于虚拟打印机队列对第一打印请求的拦截,从第二机器所连接的第一远程打印机检索与第一远程打印机相关联的设置信息。虚拟打印机驱动程序响应于所检索的与第一远程打印机相关联的设置信息,动态产生与第一远程打印机相关联的第一图形接口。虚拟打印机驱动程序显示与第一远程打印机相关联的第一图形接口。虚拟打印机驱动程序响应于虚拟打印机队列对第二打印请求的拦截,从第三机器所连接的第二远程打印机检索与第二远程打印机相关联的设置信息。虚拟打印机驱动程序响应于所检索的与第二远程打印机相关联的设置信息,动态产生与第二远程打印机相关联的第二图形接口。虚拟打印机驱动程序显示与第二远程打印机相关联的第二图形接口。
虚拟打印机驱动程序可检测与第一远程打印机相关联的至少一个打印机设置中的改变。虚拟打印机驱动程序可更新与第一远程打印机相关联的第一图形接口来显示所改变的打印机设置。虚拟打印机驱动程序可显示所更新的与第一远程打印机相关联的第一图形接口。而且,虚拟打印机驱动程序可将虚拟打印机队列与第一远程打印机相关联。虚拟打印机驱动程序可显示与第一远程打印机相关联的第一图形接口,所述第一图形接口是响应于虚拟打印机队列对第三打印请求的拦截而被显示的,所述第三打印请求是由第一机器经由所述应用而产生的。虚拟打印机驱动程序向第一机器上的图形渲染引擎传输所检索的与第一远程打印机相关联的设置信息。
虚拟打印机可根据所检索的与第一远程打印机相关联的打印机设置信息创建虚拟打印机队列。虚拟打印机可至少部分地基于所检索的与第一远程打印机相关联的打印机设置信息,识别与客户计算设备相关联的多个远程打印机。虚拟打印机可将虚拟打印机队列与客户计算设备所连接的远程打印机相关联。而且,用于将第一远程打印机与虚拟打印机队列相关联的虚拟打印机驱动程序可映射从虚拟打印机队列到第一远程打印机的路径。
虚拟打印机驱动程序可询问第二机器所连接的第一远程打印机。虚拟打印机驱动程序可检索与第一远程打印机相关联的打印机设置信息,所述打印机设置信息是在询问第一远程打印机期间所产生的。虚拟打印机驱动程序可创建与第一远程打印机相关联的第一虚拟打印机队列。而且,虚拟打印机驱动程序可显示与第一远程打印机相关联的第一图形接口,所述第一图形接口包括所检索的打印机设置信息。虚拟打印机驱动程序可向第二机器上的图形渲染引擎传输所检索的与第一远程打印机相关联的设置信息。
仍在又一个方面所示以及下面所描述的,包括在其上具有指令的计算机可读介质,当所述指令被执行时,提供用于在网络计算环境中管理打印机设置的方法。被包含在计算机可读介质中是用于执行虚拟打印机驱动程序的指令,虚拟打印机驱动程序被部分地配置为管理虚拟打印机队列。计算机可读介质包括用于由虚拟打印机队列拦截由第二机器经由在网络计算环境中的第一机器上执行的应用所产生的第一打印请求的指令。计算机可读介质包括用于由虚拟打印机驱动响应于第一打印请求的拦截,从第一远程打印机检索与第一远程打印机相关联的设置信息的指令。而且,计算机可读介质包括用于由虚拟打印机驱动程序显示与第一远程打印机相关联的第一图形接口的指令,所述第一图形接口是由虚拟打印机驱动程序响应于所检索的设置信息而动态地产生的。计算机可读介质包括用于由虚拟打印机队列拦截由第三机器经由应用所产生的第二打印请求的指令。计算机可读介质包括用于由虚拟打印机驱动响应于第二打印请求的拦截,从第二远程打印机检索与第二远程打印机相关联的设置信息的指令。计算机可读介质包括用于由虚拟打印机驱动程序显示与第二远程打印机相关联的第二图形接口的指令,所述第二图形接口是由虚拟打印机驱动程序响应于所检索的与第二远程打印机相关联的设置信息而动态地产生的。
计算机可读介质可包括用于由虚拟打印机驱动程序检测与第一远程打印机相关联的至少一个打印机设置中的改变的指令。计算机可读介质可包括用于由虚拟打印机驱动程序更新第一图形接口以显示所改变的打印机设置的指令。计算机可读介质可包括用于由虚拟打印机驱动程序显示所更新的第一图形接口的指令。计算机可读介质可包括用于将虚拟打印机队列与第一远程打印机相关联的指令。计算机可读介质可包括用于由虚拟打印机队列拦截由第二机器经由应用所产生的第三打印请求的指令。而且,计算机可读介质可包括用于由虚拟打印机驱动程序显示与第一远程打印机队列相关联的第一图形接口的指令,所述第一图形接口是由虚拟打印机驱动程序响应于第三打印请求的拦截而显示的。计算机可读介质可包括用于由虚拟打印机驱动程序向第二机器上的图形渲染引擎传输所检索的与第一远程打印机相关联的设置信息的指令。
计算机可读介质可包括用于在网络计算环境中的宿主机器上执行虚拟打印机驱动程序的指令。计算机可读介质可包括用于由虚拟打印机驱动程序根据所检索的与第一远程打印机相关联的打印机设置信息创建虚拟打印机队列的指令。计算机可读介质可包括用于由虚拟打印机驱动程序使用所检索的与第一远程打印机相关联的打印机设置信息来识别与客户机相关联的多个远程打印机的指令。而且,计算机可读介质可包括用于由虚拟打印机驱动程序将虚拟打印机队列与客户机所连接的第一远程打印机相关联的指令。将第一远程打印机与虚拟打印机队列相关联的指令可包括用于由虚拟打印机驱动程序映射到第一远程打印机的路径的指令。
计算机可读介质可包括用于由虚拟打印机驱动程序询问第二机器所连接的第一远程打印机的指令。计算机可读介质可包括用于由虚拟打印机驱动程序检索与第一远程打印机相关联的打印机设置信息的指令,所述打印机设置信息是在询问第一远程打印机期间所产生的。计算机可读介质可包括用于由虚拟打印机驱动程序创建与第一远程打印机相关联的第一虚拟打印机队列的指令。而且,计算机可读介质可包括用于由虚拟打印机驱动程序显示与第一远程打印机相关联的第一图形接口的指令,所述第一图形接口包括所检索的与第一远程打印机相关联的打印机设置信息。计算机可读介质可包括用于由虚拟打印机驱动程序向第二机器上的图形渲染引擎传输所检索的与第一远程打印机相关联的设置信息的指令。
附图说明
下面的附图描述了此处描述的系统和方法的示意性实施例。这些附图旨在说明此处描述的方法和系统,而不是对此处描述的方法和系统的限制。
图1A是说明具有与服务器通信的客户机的网络环境的实施例的框图;
图1B和图1C是说明用于实践此处描述的方法和系统的计算机器的实施例的框图;
图2A和图2B是说明具有与服务器和打印机通信的客户机的远程访问的,网络环境的实施例的框图;
图3A是说明网络环境的实施例的框图;
图3B-D是说明用于在网络环境中管理打印机设置的方法的实施例的流程图;
图4是说明用于在网络环境中管理打印机设置的方法的实施例的流程图;
图5是说明利用所保存的打印机设置的打印管理方法的实施例的流程图;
图6是说明利用所检索的打印机设置的打印管理方法的实施例的流程图;
图7是说明用于响应打印机设置改变的方法的实施例的流程图。
具体实施方式
图1A描述了计算环境101的一个实施例,该计算环境包括与一个或多个服务器106A-106N通信的一个或多个客户机102A-102N以及在客户机102A-102N和服务器106A-106N之间所安装的网络104。在又一个实施例中,计算环境101可以是网络计算环境。在一些实施例中,客户机102A-102N可被认为是单个客户机102或客户机102的一个组,而服务器106可被认为是单个服务器106或服务器106的一个组。在一个实施例中,单个客户机102可与不只一个服务器106通信,而在另一个实施例中,单个服务器106可与不只一个客户机102通信。仍在另一个实施例中,单个客户机102与单个服务器106通信。
在一些实施例中,计算环境中的客户机102可被称为下面术语中的任何一个:客户机102、客户端、客户计算机、客户设备、客户计算设备、客户节点、端点、端节点或第二机器。在一些实施例中,服务器106可被称为下列术语中的任何一个:服务器、服务器群、主计算设备或第一机器。
在一些实施例中,客户机102可以执行、操作或者以其它方式提供应用,该应用可为下列应用中的任何一个:软件、程序、可执行指令、web浏览器、基于web的客户机、客户机-服务器应用、瘦客户端计算客户机、ActiveX控件、Java小程序、与类似软IP电话的网络电话(VoIP)通信相关的软件、流式传输视频和/或音频的应用、促进实时数据通信的应用、HTTP客户机、FTP客户机、Oscar客户机、Telnet客户机或能够在客户机102上执行的任何其他类型和/或形式的可执行指令。其他实施例中可包括这样的计算环境101,该计算环境具有是基于服务器的或者基于远程的应用,和在服务器106上代表客户机102执行的应用。计算环境101的进一步的实施例包括服务器106,该服务器106被配置为使用瘦客户端或远程显示协议向客户机102显示输出图形数据,其中所使用的协议可以是下列协议的任何一个:由位于Ft.Lauderdale Florida的Citrix Systems公司制造的独立计算架构(ICA)协议;或由位于Washington,Redmond的Microsoft公司制造的远程桌面(RDP)协议。
在一些实施例中,计算环境101可包括不只一个服务器106A-106N,其中服务器106A-106N是:聚合在一起作为单个服务器106实体、逻辑上一起聚合到服务器群106中、地理上分散并且逻辑上一起聚合到服务器群106中的服务器106、或者互相之间位置接近的并且逻辑上一起聚合到服务器群106中。在一些实施例中,服务器群106中地理上分散的服务器106A-106N可使用WAN、MAN或LAN通信,其中不同地理区域可以被表征为:不同大陆、大陆的不同地区、不同国家、不同州、不同城市、不同校园、不同房间、或前述地理位置的任何组合。在一些实施例中,服务器群106可以作为单个实体被管理,而在其它实施例中,服务器群106可包括多个服务器群106。计算环境101可包括一起聚合到单个服务器群106的不只一个服务器,其中服务器群106是异构的,从而一个服务器106A-106N被配置为根据第一类型操作系统平台(例如,由Washington,Redmond的Microsoft公司制造的WINDOWSNT)操作,而一个或多个其他服务器106A-106N被配置为根据第二类型操作系统平台(如,Unix或Linux)操作;不只一个服务器106A-106N被配置为根据第一类型操作系统平台(例如WINDOWS NT)操作,而另一个服务器106A-106N被配置为根据第二类型操作系统平台(如,Unix或Linux)操作;或者不只一个服务器106A-106N被配置为根据第一类型操作系统平台(例如WINDOWS NT)操作,而不只一个其他的服务器106A-106N被配置为根据第二类型操作系统平台(如,Unix或Linux)操作。
在一些实施例中,计算环境101可包括服务器106或者不只一个服务器106,所述服务器106被配置为提供任一下列服务器类型的功能:文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器、防火墙、web服务器、应用服务器或主应用服务器、被配置为作为活动目录操作的服务器106、或者被配置为作为应用加速程序(application accelerationapplication)操作的服务器106,所述应用加速程序提供防火墙功能、应用功能、负载平衡功能、或者被配置作为服务器106操作的其他类型的计算机器。在一些实施例中,服务器106可以是包含远程认证拨入用户服务,从而服务器106是RADIUS服务器。在其中服务器106包括设备的计算环境101的实施例中,服务器106可以是由下列制造商的任何一个制造的设备:Citrix应用网络组、Silver Peak Systems公司、Riverbed Thechnology公司、F5 Networks公司、或Juniper NetWorks公司。一些实施例中包括具有下列功能的服务器106:第一服务器106A,其接收来自客户机102的请求、转发该请求到第二服务器106B,以及使用来自第二服务器106B的响应来对客户机102所产生的请求进行响应;获得对客户机102可用的应用列表和与寄载应用列表中所识别的应用的服务器106相关联的地址信息;使用web接口对客户机请求提供响应;直接与客户机102通信以向客户机102提供对所识别应用的访问;接收由服务器106上所识别的应用的执行所产生的输出数据,诸如显示数据。
服务器106可被配置为执行下列应用中的任何一个:提供瘦客户端计算和远程显示表示应用的应用、Citrix Systems公司的CITRIX ACCESS SUITE的任何部分,诸如METAFRAM、CITRIX PRESENTATION SERVER、CITRIXXENAPP、CITRIX XEND ESKTOP和/或Microsoft公司制造的MICROSOFT WINDOWS终端服务或由Citrix Systems公司开发的ICA客户端。另一个实施例中包括被配置为执行应用的服务器106,这样该服务器106可以工作为诸如下列应用服务器类型的应用服务器:提供电子邮件服务的邮件服务器,例如由Microsoft公司制造的MICROSOFT EXCHANGE;web或Internet服务器、桌面共享服务器,或协同服务器。仍在其他实施例中服务器106执行下列类型的所寄载的服务器应用的任何一个:Citrix Online Division公司提供的GOTOMEETING、位于California,Santa Clara的WebEx公司提供的WEBEX,或者Microsoft公司提供的Microsoft Office LIVE MEETING。
在一些实施例中,客户机102可以作为寻求访问服务器106提供的资源的客户机节点,或者作为向其他客户机102A-102N提供对所寄载的资源的访问的服务器106。计算环境101的一个实施例包括提供主节点功能的服务器106。客户机102和服务器106或者一些服务器106A-106N之间的连接可以通过下列方法来建立:客户机102和服务器群106中的服务器106A-106N之间直接通信;客户机102使用程序领域应用与服务器群106中的服务器106A-106N通信;客户机102使用网络104与服务器群106中的服务器106A-106N通信。计算环境101的一个实施例包括客户机102,该客户机102使用网络104来请求服务器群106中的服务器106A-106N所寄载的应用的执行,并使用网络104从服务器106A-106N接收代表应用执行的图形显示输出。在其他实施例中,主节点提供识别和提供与寄载所请求的应用的服务器106相关的地址信息所必需的功能。仍在其他实施例中,主节点可以是下列中的任何一个:服务器群106中的服务器106A-106N、连接到服务器群106但不被包含在服务器群106内的远程计算机器;连接到客户机102但不被包含在客户机102组内的远程计算机器;或者客户机102。
客户机102和服务器106之间的网络是连接,在所述连接上数据被在客户机102和服务器106之间传输。尽管图1中的图示描述了连接客户机102到服务器106的网络104,但其他实施例包括计算环境101,在该计算环境101中客户机102被安装在服务器106所作的同一网络。其他实施例可包括具有网络104的计算环境101,其中所述网络104可以是下列中的任何一个:局域网(LAN)、城域网(MAN)、广域网(WAN),包括位于客户机102和服务器106之间的多个子网104’的主网104、具有专用子网104’的主公共网104、具有公共子网104’的主专用网104或者具有专用子网104’的主专用网104。仍在进一步的实施例中网络104可以是任何的下列网络类型:点对点网络、广播网络、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光纤网络)网络、SDH(同步数字体系)网络、无线网络、有线网络、包括可能是红外信道或者卫星频带的无线链路的网络104、或者能够从客户机102向服务器106并且从服务器向客户机102传输数据以实现此处所描述的方法和系统的任何其他网络类型。网络104的拓扑在不同的实施例中可以不同,可能的网络拓扑包括:总线型网络拓扑、星型网络拓扑、环型网络拓扑、基于中继器的网络拓扑或者分层星型网络拓扑、或者能从客户机向服务器106传输数据并且从服务器向客户机102传输数据以实现此处所描述的方法和系统的任何其他网络拓扑。其他的实施例中包括使用协议在移动设备间通信的移动电话网络的网络104,其中,协议可以是下列协议的任何一个:AMPS、TDMA、CDMA、GSM、GPRS UMTS或可在移动设备间传输数据以实现此处所描述的方法和系统的任何其他协议。
图1B所示是计算设备100的实施例,其中如图1A所示的客户机102和服务器106可以被部署为和/或被执行在此处所描述和图示的计算设备100的任何实施例上。被包含在计算设备100中的系统总线150可以和下列组件通信:中央处理单元121、主存储器122、存储装置128、输入输出(I/O)控制器123、显示设备124A-124N、安装设备116和网络接口118。在一个实施例中存储装置128包括:操作系统、软件程序和客户机代理120。在一些实施例中,I/O控制器123还连接到键盘126和定位设备127。其他实施例中可包括连接到不只一个输入输出设备130A-130N的I/O控制器123。
图1C描述了计算设备100的一个实施例,其中如图1A所示的客户机102和服务器106可以被部署为和/或被执行在此处所描述和图示的计算设备100的任何实施例上。包含在计算设备100中的系统总线150可以和下列组件通信:桥170和第一I/O设备130A。在另一个实施例中,桥170还和主中央处理单元121通信,其中中央处理单元121可进一步与第二I/O设备130B、主存储器122和高速缓存存储器140通信。I/O端口、存储器端口103和主处理器被包含在中央处理单元121中。
在计算设备100的实施例中可包括被下列组件配置的任何一个表征的中央处理单元121:响应并处理从主存储器单元122取出的指令的逻辑电路;微处理器单元,诸如:由Intel公司制造的微处理器单元;由Motorola公司制造的微处理器单元;由Califirnia,Santa Clara的Transmeta公司制造的微处理器单元;诸如国际商业机器公司制造的RS/6000处理器;由Advanced Micro Devices公司制造的处理器;或逻辑电路的任何其他组合。仍在中央处理单元122的其他实施例可包括下列任何组合:微处理器、微控制器、具有单处理核的中央处理单元、具有两个处理核的中央处理单元或具有不只一个处理核的中央处理单元。
在计算设备100的一个实施例中包括通过也称为背侧总线的第二总线与高速缓存存储器140通信的中央处理单元,而在计算设备100的又一个实施例中包括使用系统总线150与高速缓存存储器140通信的中央处理单元121。在一些实施例中,本地系统总线150也被中央处理单元所使用来与多种类型的I/O设备130A-130N进行通信。在一些实施例中,本地系统总线150可以是下列类型总线的任何一个:VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。计算设备100的其他实施例中包括是与中央处理单元121通信的视频显示器124的I/O设备130A-130N。仍在计算设备100的其他形式中包括通过下列连接的任何一个连接到I/O设备130A-130N的处理器121,这些连接如下:。超传输(HyperTransport)、快速I/O或者InfiniBand。计算设备100的进一步的实施例包括处理器121,该处理器使用本地互连总线与一个I/O设备130A进行通信,并使用直接连接与第二I/O设备130B进行通信。
主存储器单元122和高速缓存存储器140的每一个被包括在计算设备100的一些实施例中。高速缓存存储器140在一些实施例中可以是下列类型存储器的任何一个:SRAM、BSRAM或EDRAM。其他实施例中包括的高速缓存存储器140和主存储器单元122,可以是下列类型存储器的任何一个:静态随机访问存储器(SRAM)、Burst(脉冲串)SRAM或SynchBurst SRAM(BSRAM)、动态随机访问存储器DRAM、快速页模式DRAM(FPM DRAM)、增强DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDO DRAM)、脉冲串扩展数据输出DRAM(BEDO DRAM)、增强型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、双数据传输率SDRAM(DDR SDRAM)、增强SRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接Rambus DRAM(DRDRAM)、铁电RAM(FRAM)或能过执行此处所描述的系统和方法的任何其他类型的存储器设备。在一些实施例中,主存储器单元122和/或高速缓存存储器140可包括一个或多个存储器设备,这些存储器设备能够存储数据并允许中央处理单元121直接访问任何存储位置。进一步的实施例包括可通过下列方式访问主存储器122的中央处理单元121,这些方式包括:系统总线150、存储器端口103、或允许处理器121访问存储器122的任何其他连接、总线或端口。
计算设备100的一个实施例支持下列安装设备116的任何一个:接收诸如3.5寸、5.25寸盘或ZiP盘的软盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、多种格式的磁带驱动器、USB设备、可引导介质、可引导CD、诸如KNOPPIX的用于GNU/Linux分发的可引导CD、硬盘驱动器或适于安装应用或软件的任意其它设备。在一些实施例中应用可包括客户机代理120或客户机代理120的任意部分。计算设备100还可以包括可以是一个或者多个硬盘驱动器或者独立磁盘冗余阵列的存储设备128,这里存储设备被配置为存储操作系统、软件、程序应用、或者至少客户机代理120的一部分。计算设备100的进一步实施例中包括用作存储设备128的安装设备116。
而且,计算设备100还可包括网络接口118以通过多种连接,包括但不限于标准电话线路、LAN或WAN链路(例如802.11,T1,T3、56kb、X.25、SNA、DECNET)、宽带连接(如ISDN、帧中继、ATM、千兆以太网、SONET上以太网(Ethernet-over-SONET))、无线连接、或上述任意或全部的一些组合,来连接到局域网(LAN)、广域网(WAN)或因特网。使用多种通信协议(例如TCP/IP、IPX、SPX、NetVIOS、Ehernet、ARCNET、SONET、SIDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE802.11、IEEE802.11aIEEE802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接)也可建立连接。计算设备100的一个形式包括可以通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS),或Citrix Systems公司制造的Gitrix网关协议的隧道协议来与其他计算设备100’通信的网络接口118。网络接口118的形式可以包括内置网络适配器、网络接口卡、PCMCIA网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算设备100连接到能够通信并执行这里所描述的方法和系统的网络的任意其它设备中的任何一个。
计算设备100的实施例包括下列I/O设备130A-130N的任何一个:键盘126、定位设备127、鼠标、触控板、光笔、轨迹球、话筒、绘图板、视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机、或可执行此处描述的方法和系统的任何其他输入/输出设备。在一些实施例中I/O控制器123可连接多个I/O设备130A-130N以便控制一个或多个I/O设备。I/O设备130A-130N的一些实施例被配置为提供存储或安装介质116,而其他实施例可为接收诸如由Twintech Industry公司制造的设备的USB闪存驱动线的USB存储设备提供通用串行总线(USB)。仍在其他实施例中I/O设备130可以是系统总线150和外部通信总线,如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线或串行连接SCSI总线之间的桥。
在一些实施例中,计算设备100可以连接多个显示设备124A-124N,在其他实施例中计算设备100可以连接单个显示设备124,而仍在其他实施例中计算设备100可以连接相同类型或形式的显示设备124A-124N或不同的类型或形式的显示设备。显示设备124A-124N的实施例可被如下方式支持和允许:一个或多个I/O设备130A-130N、I/O控制器123、I/O设备130A-130N和I/O控制器123的组合、能支持显示设备124A-124N的硬件和软件的任何组合、任意类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与显示设备124A-124N对接、通信、连接或使用显示设备。在一些实施例中,计算设备100可被配置为使用一个或多个显示设备124A-124N,这些配置包括:有多个连接器以与多个显示设备124A-124N对接;多个视频适配器且每个视频适配器与显示设备124A-124N中的一个或多个连接;有操作系统被配置用于支持多个显示设备124A-124N;使用被包含在计算设备100内部的电路和软件来连接并使用多个显示设备124A-124N;和在主计算设备100和多个次级计算设备上的执行软件来使主计算设备100能使用次级计算设备的显示设备作为用于主计算设备的显示设备124A-124N。仍在计算设备100的其它实施例中,可包括由多个次级计算设备提供的多个显示设备124A-124N并通过网络连接到主计算设备100。
在计算设备100的一些实施例中,可包括操作系统以便控制任务调度和对系统资源的访问。计算设备100的实施例可运行下列操作系统的任何一个:诸如WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT3.51、WINDOWS NT 4.0、WINDOWS CE、WINDOWS XP和WINDOWS VISTA的版本的MICROSOFT WINDOWS的操作系统;不同发行版本的Unix和Linux操作系统;由苹果计算机出品的MAC OS的任意版本;由国际商业机器公司出品的OS/2;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;任意用于移动计算设备的操作系统,或者能够在计算设备上运行且执行此处所述的操作的任意其它操作系统。计算设备100的一个实施例具有安装在其上的多个操作系统。
计算设备100可以体现为下列计算设备的任何一个:计算工作站、桌面计算机、膝上型或笔记本计算机、服务器、手持计算机、移动电话、便携通信设备、媒体播放设备、游戏系统、移动计算设备、笔记本、由苹果计算机公司出品的IPOD系列设备、由索尼公司出品的PLAYSTATION系列设备的任何一个、由Nintendo公司出品的Nintendo系列设备的任何一个;由微软公司出品的XBOX系列设备的任何一个或能够通信并有足够的处理器能力和存储容量以执行此处所述的方法和系统的任意其它类型和/或形式的计算或者电信或媒体设备。在其它实施例中,计算设备100可以是诸如下列移动设备的任何一个的移动设备:JAVA使能蜂窝电话或个人数据助理(PDA),诸如i55sr、i58sr,i85s,i88s,i90c,i95c1或im1100,以上这些均由摩托罗拉公司制造;由Kyocera公司制造的6035或7135;由Samsung电子有限公司制造的i300或i330;由Palm公司出品的Treo180、270、600、650、680、700p、700w或750智能电话;或能执行此处所述的方法和系统的任何其他移动计算设备。仍在其他实施例中,计算设备100可以是下列移动计算设备中的任何一个:黑莓(Blackberry)的任一系列,或由Research In MotionLimited公司出品的其他手持设备;由苹果计算机公司出品的iPhone;任何手持或智能电话;掌上电脑(Pocket PC);掌上电脑电话或支持MicrosoftWindows Mobile Software的任何其他手持移动设备。
图2A所示具有客户机102、服务器106和打印机205的计算环境101的实施例。网络104位于客户机102和服务器106之间,以及连接209位于客户机102和打印机205之间。图2B图示了包括客户机102、服务器106、被物理地连接的打印机205B和网络打印机205A的计算环境101的实施例。被物理地连接的打印机205B和网络打印机205A一起作为被包含在计算环境101中的一组打印机205。网络104位于客户机102和服务器106之间。另一个网络210位于客户机102和网络打印机205A之间;以及连接209位于客户机102和被物理地连接的打印机205B之间。计算环境101的其他实施例包括客户机102、服务器106和网络104,210的任何组合。
进一步参考图2A,在计算环境101的图示的实施例的更多细节中,客户机102通过网络与一个或多个服务器106通信,同时客户机102通过在客户机102和打印机205之间所安装的连接209与打印机205通信。在一些实施例中,连接209是诸如下列任何一个的线缆:串行线缆、并行线缆、USB线缆、火线线缆、以太线缆、或能够在打印机205和客户机102之间传输数据的任何其他物理线配置。在多个实施例中,连接209通过从客户机102向打印机205通过连接209发送打印命令和被格式化的文件来允许客户机102被连接到打印机205以打印文档。在又一个实施例中,连接209可以是此处所描述的任何类型的网络连接或网络,并且能够物理地或虚拟地将客户机102连接到打印机205。
参考图2B,计算环境101包括通过网络104与服务器106通信的客户机102。而且还包括这样的客户机102,其通过连接209与一组物理地连接的打印机205B通信,并且通过网络210与网络打印机205A通信。客户机102和物理连接的打印机205B之间所安装的连接209可体现为线缆,诸如串行线缆、并行线缆、USB线缆、火线线缆、以太网线缆、或能够在打印机205和客户机102之间传输打印机信息的任何其他物理线配置。在客户机102和网络打印机205A之间所安装的网络210的实施例可包括此处所描述的网络类型或配置的任何一个。一个实施例可包括计算环境101,其中,客户机102和服务器106之间所安装的网络104与客户机102和网络打印机205A之间所安装的网络基本上相同。又一个实施例包括计算环境101,其中,客户机102和服务器106之间所安装的网络104是与客户机102和网络打印机205A之间所安装的网络210基本上不同类型的网络或网络配置。进一步的实施例包括计算环境101,其中,客户机102与下列组合的任何一个通信:单个物理连接的打印机205B和一个或多个网络打印机205A;一个或多个物理连接的打印机205B和单个网络打印机205A;单个网络打印机205A;和单个物理打印机205B。计算环境101还可进一步实现为环境101,在该环境101中包括被配置为通过应用观察窗口(application viewing window)访问服务器106的客户机102,所述应用观察窗口是由使用表示服务器协议或其他远程观察应用的图形数据的传输所产生的。
在计算环境101的一个实施例中,客户机102通过第三计算设备(未示出)与网络打印机205A通信,所述第三计算设备位于远离客户机102和远离服务器106的位置。这个第三计算设备通过可以是此处所描述的任何类型的连接与网络打印机205A以及客户机102通信。在一些实施例中,客户机102和网络打印机205A之间通信是由从客户机102到第三远程计算设备再到网络打印机205A的通信路径上的通信所完成的。进一步的实施例可包括被包含在服务器106分组中的第三远程计算设备,或者一个实施例中,该第三远程计算设备与服务器106为同一计算设备。
图3A所显示的概念框图说明了计算环境101的又一个实施例。环境101中有第一客户机102A和第二客户机102B,其中客户机102A-102B都通过网络104与服务器106通信。每个客户机102A-102B包括与打印机驱动程序237A-237B通信的打印机队列230A-230B。每个客户机102A-102B与打印机205A-205B通信,同时每个打印机205A-205B与打印机驱动程序237A-237B通信。服务器106还包括图形渲染引擎232和虚拟打印机驱动程序220。与虚拟打印机驱动程序220通信的各个虚拟打印机队列225A-225B还与高速缓存存储器227A-227B通信并且利用高速缓存存储器227A-227B。在虚拟打印机队列225A-225B和它们相对应的打印机队列230A-230B之间所安装的是虚通道235。一个实施例中包括具有在网络104上所建立的虚通道235的环境101。一些实施例可包括环境101,在该环境101中客户机102A-102B没有打印机队列230A-230B和/或打印机驱动程序237A-237B,而是使用接收打印请求和管理打印的打印例程(未示出)。在一些实施例中,这些例程可驻留在客户机102A-102B上的操作系统中。
在一个实施例中,虚拟打印机驱动程序220位于服务器106上,并且可以创建和管理多个虚拟打印机队列225A-225B。在又一个实施例中,虚拟打印机驱动程序220在网络计算环境中的宿主机器106上执行。仍在又一个实施例中,根据所检索的打印机设置信息创建多个虚拟打印机队列225A-225B。仍在又一个实施例中,虚拟打印机驱动程序220可使用所检索的打印机设置信息来识别与网络计算环境中客户机102相关联的多个远程打印机。依旧在又一个实施例中,虚拟打印机驱动程序220可将多个虚拟打印机队列225A-225B与客户机102所连接的远程打印机相关联。在又一个实施例中,队列是虚拟打印机驱动程序220的一部分。
其他实施例中可包括能产生图形接口的虚拟打印机驱动程序220,所述图形接口表示与远程打印机205A-205B相关联的设置信息。在一个实施例中,虚拟打印机驱动程序220显示由能够访问所存储的打印机设置的第三虚拟对象所产生的图形接口。一个实施例包括虚拟打印机驱动程序220,该虚拟打印机驱动程序220管理虚拟打印机队列225A-225B的创建和销毁,并且提供虚拟打印机队列225A-225B和客户机102A-102B之间的接口。其他实施例包括虚拟打印机驱动程序220,该虚拟打印机驱动程序220响应于下列事件的任何一个询问客户机102A-102B所连接的远程打印机205A-205B,这些事件为:当计数机制达到预先确定的时间值时发生的超时;客户机102A-102B和服务器106之间的连接的创建或销毁;一个或多个虚通道235的创建或销毁;或者当应用请求未存储在高速缓存227A-227B中的打印机设置时,例如,当请求不同的设置或者由于远程打印机的改变导致设置过期时。打印机设置表示具体打印机的能力并且包括,例如纵向和横向选项,纸张尺寸和纸张来源,页面改变尺寸和页面次序调整,双面打印和页边距。一些打印机设置包括用于缺省打印作业的选项。在一些实施例中,询问可以由虚拟打印机驱动程序220执行,并且可包括任何下列活动:列举客户机102A-102B能打印到的远程打印机205A-205B的列表;列举客户机102A-102B当前连接的远程打印机205A-205B的列表;列举与客户机102A-102B所安装的打印机驱动程序237A-237B相对应的远程打印机205A-205B的列表;从远程打印机205A-205B检索打印机设置;从打印机驱动程序237A-237B检索打印机设置;从打印机队列230A-230B检索打印机设置;或者上述所提及的活动的任何组合。在其他实施例中,列举远程打印机205A-205B的列表能触发对远程打印机的询问和对打印机设置的检索。在一个实施例中,可在用户登录客户机102A-102B时初始化列举进程。在一些实施例中,列举进程可能超时或者被中断。当恢复列举进程时,可重新向远程打印机205A-205B询问设置信息。其他实施例包括具有应用或虚拟对象的虚拟打印机驱动程序220,所述应用或虚拟对象能够提供基本上与虚拟打印机队列225A-225B相同的功能,从而这个应用或虚拟对象可拦截打印请求、管理打印信息和根据所存储的打印机配置设置格式化打印机数据。在这个实施例中,虚拟打印机驱动程序220直接与高速缓存存储器227A-227B通信,并且不使用虚拟打印机队列225A-225B。尽管虚拟打印机驱动程序220驻留在服务器106上,但其他实施例包括驻留在远离服务器106和客户机102A-102B的第三计算设备(未示出)上的虚拟打印机驱动程序220。
在许多实施例中,虚拟打印机队列225A-225B与和客户机102A-102B通信的远程打印机205A-205B相关联。在这些实施例中,虚拟打印机队列225A-225B与在客户机102A-102B上所安装的打印机队列230A-230B起基本类似的作用,但不同之处在于它们是基于所检索的打印机设置和用户输入而动态地产生的。从操作系统的观点看,虚拟打印机队列代表所关联的远程打印机。所动态产生的虚拟打印机队列225A-225B是响应于时间或条件而产生以及其后被终止、维护或重新使用的打印机队列。在一些实施例中,虚拟打印机队列225A-225B是响应于应用被初始化而产生的并且继续与那个应用相关联。在一个实施例中,虚拟打印机队列225A-225B的生存期至少与所关联的应用的生存期一样长。因此应用在应用的生存期间看到打印机队列225A-225B的稳定集合并且与之交互。尽管打印机队列的打印机设置在应用的生存期间可以改变,但虚拟打印机队列的列举和虚拟打印机队列225A-225B的名称不会改变。提供打印机队列225A-225B的稳定集合能够通过动态地适应打印机队列225A-225B来提供稳定的接口以保护在服务器上执行的应用免受所关联的打印机中的变化的影响,从而支持应用和可利用的打印机。
在一些实施例中,虚拟打印机队列225A-225B具有与打印机队列230A-230B的特征基本相似的特征;在一些实施例中,虚拟打印机队列225A-225B具有与打印机驱动程序237A-237B的特征基本相似的特征。虚拟打印机队列225A-225B的特征可包括下列任何一项:拦截执行的应用所产生的打印请求的能力;根据远程打印机205A-205B的设置格式化将要被打印的信息的能力;管理和响应于所拦截的打印请求的能力;和将用户指定的设置应用到打印机数据的能力。虚拟打印机队列225A-225B能直接与客户机102A-102B上的打印机队列230A-230B通信,或在一些实施例中能通过虚拟打印机驱动程序220与打印机队列230A-230B通信。又一个实施例中包括通过虚通道235和网络104直接地或远程地与打印机队列230A-230B或打印机驱动程序237A-237B的任何一个通信的虚拟打印机队列225A-225B。其他实施例中包括与远程打印机205A-205B相关联的虚拟打印机队列225A-225B。在这个实施例中,当打印请求被发送到与服务器106通信的打印机205时,与引起该打印请求被发出的客户机102所连接的远程打印机205相关联的虚拟打印机队列225拦截该打印请求,并且进一步促使虚拟打印机驱动程序220向打印机队列230发送命令以及间接地向打印驱动237发送命令从而使与虚拟打印机队列相关联的远程打印机205执行打印请求。在一些实施例中,当虚拟打印机驱动程序220或另一个应用的任何一个发现远程打印机时、当创建虚拟打印机队列225A-225B时,或在当虚拟打印机队列225A-225B存在且远程打印机205A-205B已知时的另一时间点,可以创建虚拟打印机队列225A-225B和远程打印机205A-205B之间的关联。在一个实施例中,已经存在的动态的虚拟打印机队列225A-225B与一个或多个远程打印机205A-205B相关联,所述一个或多个远程打印机205A-205B又进一步地与单个客户机102A-102B相关联,使得当与单个客户机102A-102B相关联的虚拟打印机驱动程序220发现新的打印机时可以重新分配已经存在的虚拟打印机队列225A-225B。其他实施例还包括非动态地、而是静态地分配给打印机205A-205B或打印机队列230A-230B的虚拟打印机队列225A-225B。在一个实施例中,虚拟打印机驱动程序220与虚拟打印机队列225A-225B一起工作以拦截打印请求并将打印请求转发到虚拟打印机队列225A-225B,在其他实施例中在服务器106或者远离服务器106和客户机102A-102B的机器上执行第三应用拦截打印请求并将之转发到虚拟打印机队列225A-225B。一些实施例包括具有下述打印机队列230A-230B的特征的任何组合的虚拟打印机队列225A-225B。
在一些实施例中,高速缓存存储器227A-227B与虚拟打印机队列225A-225B通信。在一个实施例中,虚拟打印机队列225A-225B使用高速缓存存储器227A-227B来存储打印机设置和与远程打印机205A-205B相关联的其他数据,该远程打印机205A-205B与具体的虚拟打印机队列225A-225B相关联。高速缓存可以是单个仓库或者不只一个仓库。类似地,不同仓库可以被一个或多个虚拟打印机队列225A-225B共享。在一些实施例中,当虚拟打印机驱动程序220首次收到设置时,高速缓存存储器227A-227B将打印机设置存储在高速缓存227A-227B中。虚拟打印机队列225A-225B可从用户输入数据、远程打印机205A-205B、打印机驱动程序237A-237B、打印机队列230A-230B、虚拟打印机驱动程序220或任何其他信息源检索信息;在许多实施例中,这个信息被存储在高速缓存227A-227B中。在其他实施例中,高速缓存227A-227B中对虚拟打印机驱动程序220或服务器106上的任何其他虚拟对象或应用是可使用的。其他实施例包括将打印机设置在虚拟打印机队列225A-225B中分组而不是使用高速缓存227A-227B的虚拟打印机队列225A-225B。在一个实施例中,虚拟打印机驱动程序220被配置为将由虚拟打印机队列225A-225B所检索的信息存储在位于远离高速缓存存227A-227B位置的附属存储器中。其他实施例包括将打印机设置存储在位于计算机器上的存储仓库中的虚拟打印机队列225A-225B,其中所述计算机器与服务器106和/或客户机102A-102B相分离并且远离服务器106和/或客户机102A-102B。
在图示实施例中,参考图3A,客户机1 102A与一个打印机队列1 102A、一个打印机驱动程序237A和多台打印机105A(只显示了一台打印机)相关联。客户机1 102A中可提供代理(未示出)来接收来自服务器106的打印请求,并将该请求转发到打印机队列230A。在一个实施例中,只有一个与多个打印机相关联的虚拟打印机队列225A。缺省打印机设置对应缺省打印机的设置,但是当选择不同的打印机时,或当应用请求不同设置时,缺省打印设置是可以改变的。在又一个实施例中,在虚拟打印机队列225A保持活动期间,应用请求客户机2 102B上的打印机205B,或者,例如,用户登录到客户机2 102B来访问打印机205B。通过虚拟打印机驱动程序220在客户机2102B和虚拟打印机队列225A之间建立虚通道235。虚拟打印机队列225A向打印机队列230B询问与打印机205B相关联的打印机设置信息,并且动态地更新现有的虚拟打印机队列225A。因此,应用与单个稳定的虚拟打印机队列225A相接口。
进一步参考图3A,在一个实施例中,打印机队列230A-230B是客户机102A-102B上的应用或虚拟对象,所述应用或虚拟对象能够响应和管理由应用所产生的打印请求。打印机队列230A-230B与虚拟打印机队列225A-225B基本上相似,但不同之处在于它们是客户机102A-102B上的静态对象,所述静态对象能直接与远程打印机205A-205B通信并响应于在客户机102A-102B上执行的应用而不是在服务器106上执行的应用。实施例可包括打印机队列230A-230B,该打印机队列230A-230B拦截由应用所产生的打印请求、管理在客户机102A-102B上执行的一个或多个应用所产生的一个或多个打印请求,以及通过向远程打印机205A-205B传输格式化的数据来响应打印请求。在这个实施例中,用户设置和打印机设置信息由远程打印机205A-205B所使用以便根据所指定的设置信息来打印文档。打印机队列230A-230B具有与打印机驱动程序237A-237B接口来检索打印机设置、在打印机队列230A-230B和打印机205A-205B之间传输,以及进一步管理客户机102A-102B上的打印的能力。在一些实施例中,打印机队列230A-230B还能够产生和存储客户机102A-102B可用于打印的远程打印机205A-205B的列举。其他实施例包括可检索用户定义的打印机设置,存储所检索的用户定义的打印机设置以及利用所检索的设置来格式化打印机信息的打印机队列230A-230B。在一个实施例中,客户机102A-102B包括具有被配置为与打印机队列230A-230B起基本相似作用的应用的操作系统,其中客户机102A-102B不包括打印机队列230A-230B。在这个实施例中,客户机102A-102B上的应用可以是下列任何一个:一组例程、软件应用、操作系统组件、能够与操作系统接口的第三虚拟对象、或能够用与打印机队列230A-230B的方式基本类似的方式来便于在客户机102A-102B上打印的任何其他应用或虚拟对象。其他实施例可包括具有下列任意配置的客户机102A-102B,所述配置为:被配置为存储类似上文所描述的列表的打印机列表的打印机队列230A-230B,和被配置为存储类似上文所列举的打印机设置信息类型的打印机设置信息的单独的虚拟对象;被配置为存储类似上文所列举的打印机设置信息类型的打印机设置信息的打印机队列230A-230B,和被配置为存储类似上文所描述的列表的打印机列表的单独的虚拟对象;或者被配置为存储类似上文所描述的列表的打印机列表和类似上文所列举的打印机设置信息类型的打印机设置信息的任何一个或全部的在客户机102A-102B上执行的应用。一些实施例包括将远程打印机205A-205B识别为缺省打印机的打印机设置信息,而其他实施例中包括不在远程打印机205A-205B的列表中识别缺省打印机的打印机设置信息。在一个实施例中,打印机列表包括客户机102当前所连接的打印机设备,和客户机102能够向其打印的打印机设备。在又一个实施例中,该列表可包括客户机102A-102B所连接的打印机205A-205B,和客户机102A-102B能连接并向其打印的打印机205A-205B。
打印机驱动程序237A-237B被包含在客户机102A-102B中,并与打印机队列230A-230B相接口。在一个实施例中,包括打印机驱动程序237A-237B,用于通过将从打印机205A-205B向客户机102A-102B发送的打印机特定的设置、打印机指令、机器码和打印数据转换为能够被客户机102A-102B和打印机队列230A-230B读取和理解的格式以便于客户机102A-102B和打印机205A-205B之间的通信。一些实施例中包括具有位于打印机队列230A-230B和打印机驱动程序237A-237B之间的单独的应用或对象的客户机102A-102B,所述应用或对象能够进一步将从打印机驱动程序237A-237B发送的数据解释为能够被打印机队列230A-230B读取和理解的格式。在一些实施例中,打印机驱动程序237A-237B可根据驱动程序所与之关联的打印机205A-205B而不同。打印机驱动程序237A-237B的这些不同是由存在于不同打印机205A-205B之间的硬件配置和输出数据格式的不同而引起。
在一些实施例中,服务器106包括可与虚拟打印机驱动程序220、虚拟打印机队列225A-225B或高速缓存存储器227A-227B的任何一个通信的图形渲染引擎232。其他实施例中可包括不包含图形渲染引擎232的服务器106,或具有不与虚拟打印机驱动程序220、虚拟打印机队列225A-225B或高速缓存存储器227A-227B的一个或全部通信的图形渲染引擎232的服务器106。在一个实施例中,所包括的图形渲染引擎232接收来自虚拟打印驱动程序220的打印机设置信息并且使用所接收的设置信息根据远程打印机205A-205B的设置以及代表打印机205A-205B的设置和用户定义的设置的显示来格式化图形显示。其他实施例包括输出显示用户所选择的文档的打印预览屏幕的显示的图形渲染引擎232。在这个实施例中,图形渲染引擎232格式化打印预览屏幕的显示,从而该显示代表远程打印机205A-205B所打印的文档的布局,该远程打印机205A-205B对应于格式化打印预览显示所使用的打印机设置信息。在一个例子中,所接受的设置信息包括横向页面的方向设置,或在又一个例子中包括信纸大小的纸张设置。其中所接受的设置信息包括横向页面的方向设置的打印预览屏幕的示例显示是由图形渲染引擎232所产生的,并且其在横向布局的画布(canvas)上显示了所选择的文档的显示。尽管图形渲染引擎232在服务器106上,但在其他实施例中,图形渲染引擎232可以是被包含在服务器106所安装的操作系统内的应用,或者在其他实施例中,图形渲染引擎232是在远离服务器106的计算设备上执行的应用。
图3B所示的是管理打印请求的方法501,所述方法包括通过创建虚拟打印机队列225A-225B来响应打印请求,和进一步使用虚拟打印机驱动程序220询问远程打印机205A-205B(步骤503)。询问远程打印机205A-205B的结果是得到能够与第二机器通信的远程打印机205A-205B的列举(步骤506)。一旦虚拟打印机驱动程序220收到远程打印机205A-205B的列举,虚拟打印机驱动程序220就能检索打印机设置信息并且将所检索的打印机设置信息与虚拟打印机队列225A-225B相关联以及进一步将所检索的打印机设置信息存储在高速缓存存储器227A-227B中(步骤509)。该方法501还包括检测第二机器从第一机器的断开(步骤512),以及检测第三机器到第一机器的连接,其中第三机器上的用户引起在第一机器上执行的应用产生打印请求(步骤515)。先前所创建的虚拟打印机队列225A-225B拦截用户通过第三机器初始化的打印请求,并检索所缓存与虚拟打印机队列225A-225B相关联的的打印机设置(步骤518)。然后,虚拟打印机驱动程序220使用从高速缓存227A-227B所检索的打印机设置产生显示,并进一步向第三机器展示由此产生的显示(步骤521)。
进一步参考图3B,在更多的细节中,所创建的虚拟打印机队列225A-225B和虚拟打印机驱动程序220驻留在第一机器上。第一机器可以是服务器106或客户机102A-102B的任何一个。在一个实施例中,虚拟打印机驱动程序220通过创建虚拟打印机队列225A-225B来响应打印请求并询问与客户机102A-102B通信的远程打印机205A-205B(步骤503)。其他实施例包括方法501,其中虚拟打印机驱动程序220首先询问远程打印机205A-205B,然后创建虚拟打印机队列225A-225B。其他实施例中包括方法501,其中询问包括使远程打印机205A-205B返回打印机设置信息,以及使打印机队列230A-230B被配置为返回由远程打印机205A-205B所产生的打印机设置信息和包含用户定义的打印机设置的其他打印机设置信息。
列举能够与第二机器通信的打印机(步骤506)可以包括指定的缺省打印机。在一些实施例中,指定的缺省打印机与所创建的虚拟打印机队列225A-225B相关联;在其他实施例中,所列举的打印机205A-205B的一个被识别并与所创建的虚拟打印机队列225A-225B相关联。
在一个实施例中,当在询问期间所检索的设置被存储在与虚拟打印机队列225A-226B相关联的高速缓存存储器单元227A-227B中时,所创建的虚拟打印机队列225A-225B与所识别的远程打印机205A-205B相关联(步骤509)。其他实施例包括诸如下列所描述的关联的方法和和打印机设置存储的方法。
在一些实施例中,第二机器的断开(步骤512)和进一步的第三机器的重连接(步骤515)可包括结束在第二机器和第一机器之间进行的第一会话,并开始在第三机器和第一机器之间进行的另一个第一用户会话。其他实施例包括第二机器的断开和第三机器的连接,其中同一用户执行断开和连接。其他实施例还包括第二机器的断开和第三机器的连接,其中不同的用户执行断开和连接。在同一用户从第一机器断开第二机器,并将第三机器连接到第一机器的实施例中;当通过第二机器连接时对用户可利用的打印机设置在通过第三机器连接时的对用户仍然是可用的。类似地,当上文所描述的情形中用户是不同的时,通过第三机器所连接的第二用户可以访问与通过第二机器所连接的第一用户可利用的那些设置相同的打印机设置。第二机器可以是客户机102A-102B或服务器106的任何一个,而第三机器可以是客户机102A-102B或服务器106的任何一个。
图3C描述了用于在网络计算环境中管理打印设置的方法601的又一实施例。该方法包括由网络计算环境中的第一机器106执行应用(步骤603),由虚拟打印机驱动程序220所管理的虚拟打印机队列225A拦截由网络计算环境中的第二机器102A经由应用所产生的第一打印请求(步骤606)。而且,该方法包括由虚拟打印机驱动程序220响应于第一打印请求的拦截,检索与第一远程打印机205A相关联的设置信息,所述第一远程打印机205A与第二机器102A通信(步骤609),由虚拟打印机驱动程序220显示与第一远程打印机205A相关联的图形接口,所述第一图形接口是由虚拟打印机驱动程序220响应于检索设置信息而动态地产生的(步骤612),由虚拟打印机队列225A拦截网络计算环境中第三机器102B经由应用所产生的第二打印请求(步骤615),以及由虚拟打印机驱动程序220响应于第二打印请求的拦截,检索与第二远程打印机205B相关联的设置信息,所述第二远程打印机205B与第三机器102B通信(步骤618)。该方法还包括由虚拟打印机驱动程序220显示与第二远程打印机205B相关联的第二图形接口,所述第二图形接口是由虚拟打印机驱动程序220响应于检索与第二远程打印机205B相关联的设置信息而动态地产生的(步骤621)。
进一步参考图3C,在一个实施例中,该方法包括由网络计算环境中的第一机器106执行应用(步骤603)。在一些实施例中,第一机器106是服务器106。在一个实施例中,该应用与和图1B有关的上文所描述的软件相关联。在又一个实施例中,应用提供允许用户选择和修改打印作用设置的用户接口。在一些实施例中,用户接口提供与服务器106相关联的显示单元所显示的图形窗口。
虚拟打印机队列225A拦截网络计算环境中第二机器102A经由应用所产生的第一打印请求(步骤606)。虚拟打印机队列225A由虚拟打印机驱动程序220管理。在一个实施例中与第二机器102A相关联的虚拟打印机队列225A-225B可以存在或不存在。在存在虚拟打印机队列225A-225B的实施例中,虚拟打印机队列225A-225B被配置为拦截由应用所产生的打印请求。在一些实施例中,打印请求是由应用响应于用户的输入而产生的,例如当用户访问远离第二机器102A的服务器106上的应用以发出打印请求。
虚拟打印机驱动程序220响应于第一打印请求的拦截,检索与第一远程打印机相关联的设置信息,所述第一远程打印机与第二机器通信(步骤609)。在一个实施例中,从第二机器102A上的打印机队列230检索这些设置;而在又一个实施例中,直接从远程打印机205检索这些设置。仍在又一个实施例中,在询问第二机器102A所连接的远程打印机206期间检索设置。
虚拟打印机驱动程序220显示与第一远程打印机相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序响应于检索设置信息而动态地产生的(步骤612)。在一些实施例中,第一图形接口是在虚拟打印机队列225A-225B与远程打印机205A-205B相关联时由虚拟打印机驱动程序220动态地产生的。在一个实施例中,第一图形接口被显示在服务器106上。在又一个实施例中,第一图形接口可以被显示在任一客户机102A-B上。
虚拟打印机队列225拦截网络计算环境中第三机器经由应用所产生的第二打印请求(步骤615)。在一些实施例中,访问应用的用户成为与第三机器102B相关联的。用户从第三机器102B远程地访问应用,并且可以通过应用从第三机器102B初始化打印请求。
虚拟打印机驱动程序220响应于第二打印请求的拦截,检索与第二远程打印机相关联的设置信息,所述第二远程打印机与第三机器通信(步骤618)。当前与用户相关联的第三机器102B被连接到第二远程打印机205B。因此,与第二远程打印机205B相关联的设置信息被检索,以便将新的打印机能力与虚拟打印机队列225相关联。响应于检索与第二远程打印机205B相关联的设置信息,虚拟打印机驱动程序220显示与第二远程打印机相关联的第二图形接口,所述第二图形接口由虚拟打印机驱动程序动态地产生(步骤621)。从第三机器102B远程地访问应用的用户可以从第三机器102B查看所显示的图形接口。在其他实施例中,第二图形接口被显示在服务器106的显示单元上。
图3D描述了用于管理网络计算环境中的打印设置的方法701的实施例。该方法包括由网络计算环境中的第一机器106执行应用(步骤703),由虚拟打印机驱动程序220所管理的虚拟打印机队列225A拦截由网络计算环境中的第二机器102A经由应用所产生的第一打印请求(步骤706)。而且,该方法包括由虚拟打印机驱动程序220响应于第一打印请求的拦截,检索与第一远程打印机205A相关联的设置信息,所述第一远程打印机205A与第二机器102A通信(步骤709),由虚拟打印机驱动程序220显示与第一远程打印机205A相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序220响应于检索设置信息而动态地产生的(步骤712)。该方法包括由虚拟打印机驱动程序220拦截中断第二机器102A对所述应用的访问的事件(步骤715)。该方法包括由虚拟打印机驱动程序220检索与第一远程打印机205A相关联的打印机设置信息(步骤718)。该方法还包括由虚拟打印机驱动程序220显示与第一远程打印机205A相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序220响应于与第一远程打印机205A相关联的设置信息的检索而显示的(步骤721)。
进一步参考图3D,该方法包括由网络计算环境中的第一机器106执行应用(步骤703)。在一些实施例中,第一机器102A是服务器106。在一个实施例中,该应用与和图1B有关的上文所描述的软件相关联。在又一个实施例中,应用提供允许用户选择和修改打印作业设置的用户接口。在一些实施中,用户接口提供与服务器106相关联的显示单元所显示的图形窗口。
虚拟打印机队列225A拦截网络计算环境中第二机器102A经由应用所产生的第一打印请求(步骤706)。在一些实施例中,虚拟打印机队列225A由虚拟打印机驱动程序220管理。在一个实施例中,与第二机器102A相关联的虚拟打印机队列225A-225B可以存在或不存在。在存在虚拟打印机队列225A-225B的实施例中,虚拟打印机队列225A-225B被配置为拦截由应用所产生的打印请求。在一些实施例中,打印请求是由应用响应于用户的输入而产生的,例如当用户访问远离第二机器102A的服务器106上的应用以发出打印请求。
虚拟打印机驱动程序220响应于第一打印请求的拦截,检索与第一远程打印机205A相关联的设置信息,所述第一远程打印机与第二机器102A通信(步骤709)。在一个实施例中,从第二机器102A的打印机队列230A检索这些设置。在又一个实施例中,直接从远程打印机205A检索这些设置。仍在又一个实施例中,在询问第二机器102A所连接的远程打印机205A期间检索设置。
虚拟打印机驱动程序220显示与第一远程打印机205A相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序220响应于检索设置信息而动态地产生的(步骤712)。在一些实施例中,第一图形接口是在虚拟打印机队列225A-225B与远程打印机205A-205B相关联时由虚拟打印机驱动程序220动态地产生的。在一个实施例中,第一图形接口被显示在第一机器106上。在又一个实施例中,第一图形接口可以被显示在任何机器102A-102B上。
虚拟打印机驱动程序220拦截中断第二机器102A对应用的访问的事件(步骤715)。在一些实施例中,从第二机器102A访问应用的用户从应用断开,例如由于中断第二机器102A对应用的访问的事件。中断第二机器102A对应用的访问的事件,可以是引起第二机器102A和应用之间断开的任意形式或类型的事件。在一个实施例中,中断第二机器102A对应用的访问的事件是第二机器102A和应用之间连接超时。在又一个实施例中,中断第二机器102A对应用的访问的事件是第二机器102A和应用之间网络中断。仍在又一个实施例中,中断第二机器102A对应用的访问的事件是断开和重连接第二机器102A和应用的用户请求。仍在又一个实施例中,中断第二机器102A对应用的访问的事件是网络计算环境中第三机器102B经由所述应用所产生的第二打印请求,其后紧跟着由第二机器102A经由所述应用所产生的第三打印请求。
虚拟打印机驱动程序220检索与第一远程打印机205A相关联的打印机设置信息(步骤718)。在一个实施例中,虚拟打印机驱动程序220响应于中断对应用的访问的事件检索与第一远程打印机205A相关联的打印机设置信息。在又一个实施例中,虚拟打印机驱动程序220在中断对应用的访问的事件之后检索与第一远程打印机205A相关联的打印机设置信息。仍在又一个实施例中,虚拟打印机驱动程序220在将第二机器102A重连接到应用时检索与第一远程打印机205A相关联的打印机设置信息。仍在又一个实施例中,虚拟打印机驱动程序220在询问第一远程打印机205A期间检索打印机设置信息。在一些实施例中,检索与第一远程打印机205A相关联的打印机设置信息以便重建对虚拟打印机队列225A的打印机能力。
响应于检索与第一远程打印机205A相关联的设置信息,虚拟打印机驱动程序220显示与第一远程打印机205A相关联的第一图形接口(步骤721)。从第二机器102A远程地访问应用的用户可以从第二机器102A查看所显示的图形接口。在其他实施例中,第一图形接口被显示在服务器106的显示单元上。
图4描述了由虚拟打印机驱动程序220所使用的以响应打印请求的拦截的方法322的实施例。这个打印请求是由在第一机器106上执行的应用所产生的并且虚拟打印机驱动程序220通过显示表示与远程打印机205相关联的打印机设置的图形接口来响应该请求。过程322包括:用虚拟打印机驱动程序220拦截第一机器106上执行的应用所发送的打印请求(步骤320);用虚拟打印机驱动程序220询问第二机器102所连接的打印机205(步骤323);以及用虚拟打印机驱动程序220检索与远程打印机205相关联的打印机设置并将这些设置存储在与虚拟打印机队列225A-225B相关联的高速缓存存储器227A-227B中(步骤326)。而且,虚拟打印机驱动程序220将虚拟打印机队列225A-225B与对应的远程打印机205A-205B相关联(步骤327)、使用高速缓存227A-227B所存储的打印机设置信息动态地产生图形接口(步骤329)、在第一机器106上显示所动态地产生的图形接口(步骤332)、并且将所存储的打印机设置传输到第一机器102A上的图形渲染引擎232(步骤335)。在一个实施例中,进程322可以在如上文所述的计算环境101中执行。
进一步参考图4,更详细地,虚拟打印机驱动程序220拦截在第一机器106上执行的应用所产生的并且向与第一机器106相关联的打印机发送的打印请求。在这个实施例中,与客户机相关联的虚拟打印机队列225A-225B可以存在或不存在。在存在虚拟打印机队列225A-225B的实施例中,虚拟打印机队列225A-225B被配置为拦截由在第一机器106上执行的应用所产生的打印请求。实施例可包括这样的环境,其中打印请求是由应用响应于用户的输入而产生的,其中输入是在当用户通过第二机器102A上观察窗口控制第一机器106上的应用以发出打印请求时所产生的。
在一个实施例中,询问第二机器102A所连接的远程打印机205可响应于虚拟打印机驱动程序220拦截打印请求而发生。在这个实施例中,虚拟打印机驱动程序220响应不存在虚拟打印机队列225A-225B的系统配置,所以必须创建虚拟打印机队列225A-225B。在一些实施例中,虚拟打印机队列225A-225B的创建可以独立于远程打印机205A-205B的询问而发生。在其他实施例中,虚拟打印机队列225A-225B的创建在远程打印机205A-205B的询问之后发生或者基本上就在远程打印机205A-205B的询问之前发生。在由虚拟打印机队列225A-225B执行打印请求的拦截的实施例中,当超时事件或其他系统事件发生时、在没有打印机设置被存储在高速缓存227A-227B中时、或当指示远程打印机205A-205B应该被询问的命令被发送到虚拟打印机驱动程序220时,虚拟打印机驱动程序220可以询问远程打印机205A-205B。其他实施例中,虚拟打印机队列225A-225B能够拦截打印请求使得远程打印机205响应于下列事件的任何一个而被询问:远程观察应用的执行;响应于定时器所产生的系统事件;服务器/第一机器106向客户机/第二机器102发送的请求;客户机/第二机器102向服务器/第一机器106发送的请求;或者可触发对远程打印机205的询问的任何其他事件或条件。在一些实施例中,询问包括从虚拟打印机驱动程序220向在客户机102A-102B上的打印机队列230A-230B发送命令以便列举能够与客户机102A-102B通信的打印机205A-205B的列表。其他实施例中包括询问策略,该询问策略使虚拟打印机驱动程序220产生对打印机设置信息的请求,该请求被转发到打印机队列230A-230B。打印机队列230A-230B进而可以从高速缓存或其他存储器单元检索兼容的打印机或打印机设置信息的列表,或者进一步通过打印机驱动程序237A-237B从远程打印机205A-205B请求打印机设置信息。
在许多实施例中,当虚拟打印机驱动程序220询问远程打印机205时,虚拟打印机驱动程序220检索与远程打印机205相关联的打印机设置并将这些设置保存在高速缓存存储器227中(步骤326)。在一个实施例中,从第二机器102A上的打印机队列230检索这些设置;而在又一个实施例中,直接从远程打印机205检索这些设置。在一个实施例中,虚拟打印机驱动程序220将打印机设置信息存储在远离第一机器的存储器单元中,诸如远离第一机器和第二机器的第三计算机器上的存储器单元。
方法322包括将虚拟打印机队列225A-225B与远程打印机205A-205B相关联的虚拟打印机驱动程序220(步骤327)。在一些实施例中,虚拟打印机队列225A-225B与远程打印机205A-205B之间的关联是通将虚拟打印机驱动程序220所检索的打印机设置保存在高速缓存存储器227A-227B中而实现的。在这个实施例中,虚拟打印机驱动程序220将所检索的打印机设置转发给虚拟打印机队列225A-225B,以便虚拟打印机队列225A-225B可以将打印机设置保存在所关联的高速缓存存储器空间227A-227B中。其他实施例中包括将所检索的打印机设置保存在高速缓存存储器空间227A-227B中的虚拟打印机驱动程序220,该高速缓存存储器空间227A-227B对应于被虚拟打印机驱动程序220识别为当前与所询问的远程打印机205A-205B相关联的虚拟打印机队列225A-225B。仍在其他实施例中,虚拟打印机驱动程序220通过在虚拟打印机队列225A-225B中插入识别标志或其他识别对象以便将虚拟打印机队列225A-225B标记为与所询问的远程打印机205A-205B相关联,从而将所选择的或所创建的虚拟打印机队列225A-225B与远程打印机205A-205B相关联。仍在其他实施例中,虚拟打印机驱动程序220通过在数据库中插入记录来将所选择的或所创建的虚拟打印机队列225A-225B与远程打印机205A-205B相关联,其中所述记录包括指示所选择或所创建的虚拟打印机队列225A-225B目前与远程打印机205A-205B相关联的信息。一些实施例中虚拟打印机驱动程序220识别和选择已经存在的虚拟打印机队列225A-225B来与远程打印机205A-205B相关联,而在其他实施例中,虚拟打印机驱动程序220通过创建虚拟打印机队列225A-225B并将该虚拟打印机队列与远程打印机205A-205B相关联来响应指示虚拟打印机队列225A-225B不存在的系统反馈。仍在其他实施例中,所选择的或所创建的虚拟打印机队列225A-225B与被虚拟打印机驱动程序220所询问的远程打印机205A-205B所连接的客户会话、客户账户或客户机相关联。在其他实施例中,虚拟打印机驱动程序220通过映射从虚拟打印机队列225A-225B到远程打印机205A-205B的路径来将远程打印机205A-205B与虚拟打印机队列225A-225B相关联。
在许多实施例中,动态产生显示所检索的打印机设置的图形接口是在虚拟打印机队列225A-225B与远程打印机205A-205B相关联时由虚拟打印机驱动程序220完成的(步骤329)。在过程322的其他实施例中,在将虚拟打印机队列225A-225B与远程打印机205A-205B相关联之前执行图形接口的动态产生。图形接口的动态产生可以表示由虚拟打印机驱动程序220响应于系统或应用反馈所产生的图形接口,其中虚拟打印机驱动程序220响应于打印机设置信息的基本上实时的检索来基本上同时创建和更新图形接口,所述打印机设置信息可以从下列任何一个中检索:打印机队列230A-230B、虚拟打印机驱动程序220或者其他虚拟对象、应用或存储单元。
进一步参考图4,在一个实施例中,虚拟打印机驱动程序220在第一机器上显示所动态地产生的图形接口(步骤332),其中第一机器可以是客户机102A-102B或服务器106的任何一个。在又一个实施例中,虚拟打印机驱动程序220在第二机器上显示所动态地产生的图形接口,其中第二机器可以是客户机102A-102B或服务器106的任何一个。过程322的其他实施例可包括被配置为在第二机器102上显示所动态地产生的图形接口的独立计算架构。在一个实施例中,过程322包括将所存储的打印机设置转发到第一机器106上的图形渲染引擎232(步骤335)。一个实施例可包括过程322,一旦虚拟打印机驱动程序220在第一机器106上显示所动态地产生的图形接口,该过程322终止。
图5所示的是当第一机器106上执行的应用所产生的打印请求被虚拟打印机队列225A-225B拦截时开始的方法304的一个实施例。在一些实施例中,虚拟打印机驱动程序220通过从高速缓存存储器227A-227B检索所保存的对应于与第二机器102A-102B通信的打印机205A-205B的打印机设置来响应打印请求的拦截(步骤306)。在一个实施例中,从高速缓存存储器227A-227B检索打印机设置信息的步骤之后紧接着由虚拟打印机驱动程序220动态产生包含所检索的打印机设置的图形接口(步骤309)。在一个实施例中,虚拟打印机驱动程序220在第一机器上显示图形接口(步骤312)并将所检索的打印机设置转发到图形渲染引擎232(步骤315)。
在方法304的一个实施例中,使用虚拟打印机队列225A-225B来拦截在第一机器上执行的应用所产生的打印请求(步骤303)可包括使用虚拟打印机驱动程序220来防止打印请求转到第一机器的打印机队列230。第一机器可以是服务器106或客户机102A-102B的任何一个。方法304的一个实施例包括响应于第二机器所连接的输入设备所产生的应用命令来产生打印请求,并且由用户通过远程观察窗口控制对应用的访问。进一步的实施例包括诸如那些上文所描述的用于方法322的任何一个的拦截由应用所产生的打印请求的方法。
在一个实施例中,打印请求的拦截致使虚拟打印机驱动程序220从高速缓存存储器227A-227B检索所保存的与第二机器通信的远程打印机205A-205B所关联的打印机设置信息(步骤306)。一些实施例中,虚拟打印机队列225A-225B通过从所关联的高速缓存存储器227A-227B检索打印机设置信息并且将所检索的设置转发到虚拟打印机驱动程序220来响应打印请求的拦截。其他实施例中,虚拟打印机驱动程序220从第三机器检索打印机设置信息,所述第三机器与第一机器和第二机器通信,并且远离第一机器和第二机器。第二机器可以是服务器106或客户机102A-102B的任何一个。在一个实施例中,当虚拟打印机驱动程序220询问远程打印机205A-205B并且检索打印机设置信息时,产生打印机设置信息,而在又一个实施例中,打印机设置信息通过外部输入设备被直接输入到第一机器。
在一个实施例中,虚拟打印机驱动程序220使用所检索的打印机设置来动态地产生图形接口,其中动态产生意味着响应于新的打印机设置几乎同时产生新的图形接口(步骤309)。在一个实施例中,被包含在第一机器或远离第一机器和第二机器的第三机器的任何一个上的第三虚拟对象接收所检索的打印机设置信息并且产生图形接口。过程304的又一个实施例中可包括在第一机器上的第三虚拟对象,该第三虚拟对象被配置为接收所检索的打印机设置信息并且产生图形接口。在许多实施例中,虚拟打印机驱动程序220在产生图形接口后在第一机器上显示图形接口(步骤312)。在一个实施例中,被包含在第一机器或远离第一机器和第二机器的第三机器的任何一个上的第三虚拟对象接收所动态地产生的图形接口并且在第一机器上显示图形接口。过程304的又一个实施例中可包括在第一机器上的第三虚拟对象,该第三虚拟对象被配置为接收所动态地产生的图形接口并且在第一机器上显示图形接口。在一些实施例中,图形接口使用独立计算架构被显示在第二机器上,或者被显示在远离第一机器和第二机器的第三机器上。
进一步参考图5,在一些实施例中,一旦图形接口被显示,虚拟打印机驱动程序220可以将所检索的打印机设置转发到第一机器所安装的图形渲染引擎232。这个实施例可包括在第一机器上显示图形接口(步骤312)的方法304,而在又一个实施例可包括向远离第一机器和第二机器的第三机器上所安装的图形渲染引擎232转发所接收的打印机设置的虚拟打印机驱动程序220。在一个实施例中,图形渲染引擎232使用所检索的打印机设置来创建将要打印的文档的打印预览显示。在这个实施例中,打印预览显示还进一步被显示在第一机器上(未示出的步骤),或者在又一个实施例中,打印预览显示被显示在第二机器上(未示出的步骤)。
图6所示的是用来产生、检索和保存打印机设置信息的方法272的实施例。方法272的一个实施例包括在第一机器和第二机器之间建立远程连接的步骤(步骤250),和向第二机器查询和验证策略需求来确定是否为第二机器创建虚拟打印机队列225A-225B的步骤(步骤253)。在一个实施例中,虚拟打印机驱动程序220将询问是否允许虚拟打印机队列225A-225B(步骤256),以及如果不允许虚拟打印机队列225A-225B,则虚拟打印机驱动程序220阻止虚拟打印机队列225A-225B的创建(步骤259)。在一个实施例中,当虚拟打印机队列225A-225B被允许时,虚拟打印机驱动程序220通过询问与第二机器通信的远程打印机205A-205B(步骤262)来响应步骤250中远程连接的建立。在又一个实施例中,虚拟打印机驱动程序220从第二机器检索被配置为与第二机器通信的打印机205A-205B的列举(步骤265)。在一个实施例中,虚拟打印机驱动程序220在打印机列表中识别缺省打印机(步骤268)并且创建虚拟打印机队列225A-225B,虚拟打印机驱动程序220将该虚拟打印机队列225A-225B与缺省打印相关联(步骤271)。在一个实施例中,虚拟打印机驱动程序220检索与缺省打印机相关联的打印机设置(步骤274),并且虚拟打印机驱动程序220在高速缓存存储器140中保存所检索的打印机设置信息(步骤277)。
在方法272的一个实施例,当虚拟打印机驱动程序220检测到指示应该询问远程打印机205A-205B的系统状态时,虚拟打印机驱动程序220询问远程打印机205A-205B。虚拟打印机驱动程序220可检测远程打印机设置中的改变。一些实施例可包括虚拟打印机驱动程序220,当所述虚拟打印机驱动程序220确定在高速缓存227A-227B中没有存储打印机设置时,其询问远程打印机205A-205B。其他实施例中,当虚拟打印机驱动程序220确定不存在虚拟打印机队列225A-225B,或者不存在能够连接到客户机102A-102B并且从客户机102A-102B接收打印信息的打印机的列表时,虚拟打印机驱动程序220询问远程打印机205A-205B。仍在其他实施例中,当发生下列任何一个时:超时;第一机器和第二机器之间连接的建立或销毁;虚通道的建立或销毁;对请求所缓存的打印机设置的查询所返回的空指针;预先确定的触发事件;或其他条件,虚拟打印机驱动程序220询问远程打印机205A-205B。实施例可包括利用在第一机器或第二机器中的任一个上的虚拟对象,代替虚拟打印机驱动程序220,来决定是否应该询问远程打印机205A-205B的方法。
在一个实施例中,方法272可查询和验证第二机器的策略需求来确保可以创建虚拟打印机队列225A-225B并且将其与和第二机器通信的远程打印机相关联(步骤253)。其他实施例包括方法272,其中,不执行是否可以创建虚拟打印机队列225A-225B并且将其与和第二机器通信的远程打印机相关联的检查。在一个实施例中,虚拟打印机驱动程序220用于确定是否可以创建虚拟打印机队列,而其他实施例中,另一个虚拟对象或应用被用于确定是否可以创建虚拟打印机队列。
在一个实施例中,当确定不可以创建虚拟打印机队列225A-225B时,虚拟打印机驱动程序220为客户机102所连接的具体打印机205,或者为客户机102所连接的所有打印机205阻止虚拟打印机队列的创建。其他实施例中包括虚拟对象、应用或其他标志,所述虚拟对象、应用或其他标志能够阻止与具体打印机205,或者具体客户机102所关联的所有打印机205所关联的虚拟打印机队列225A-225B的创建。
进一步参考图6,当确定可以创建虚拟打印机队列225A-225B并且将其与远程打印机205相关联时,虚拟打印机驱动程序220接着询问客户机102所连接的远程打印机205(步骤262)。询问可包括上面所提及的方法、技术或策略的任何一个。尽管在一个实施例中虚拟打印机驱动程序220执行询问,但在其他实施例包括在服务器106或第一机器上的能执行该询问的另一个虚拟对象。
询问所产生的是被配置为与第二机器或客户机102通信并从第二机器或客户机102打印的打印机的列举。在一个实施例中,虚拟打印机驱动程序220被配置为从客户机102检索打印机的列举(步骤265)。一些实施例包括从打印机队列230A-230B检索列举的虚拟打印机驱动程序220,而其他实施例从高速缓存存储器单元或其他虚拟对象或驻留在客户机102A-102B上的存储仓库检索列举。仍在其他实施例中,客户机102A-102B被配置为通过应用或其他命令例程向网络上且使用虚通道的服务器106或第一机器传输所列举的打印机列表。
在许多实施例中,在询问期间所产生的所列举的打印机列表,指定某个所列出的打印机为缺省打印机。在一个实施例中,虚拟打印机驱动程序220搜索打印机列表来识别缺省打印机(步骤268)。其他实施例包括被配置为搜索打印机205的列举来识别缺省打印机的第一机器上的应用或虚拟对象。
在一个实施例中,虚拟打印机驱动程序220创建虚拟打印机队列225A-225B并且将虚拟打印机队列225A-225B与缺省远程打印机205A-205B相关联(步骤271)。又一个实施例可包括方法272,其中,虚拟打印机驱动程序220将虚拟打印机队列225A-225B与远程打印机205相关联,所述远程打印机205与所检索的设置相关联。进一步的实施例包括方法272,其中,虚拟打印机驱动程序220通过存储特定于缺省远程打印机205的打印机设置来将虚拟打印机队列225A-225B与缺省远程打印机205相关联(步骤271)。一个实施例可包括使用虚拟打印机驱动程序220创建虚拟打印机队列225A-225B并且将其与缺省打印机相关联的方法272,另一个实施例包括虚拟打印机驱动程序220将已经存在的虚拟打印机队列225A-225B与缺省打印机相关联的方法272。又一个实施例可包括方法272,其中,虚拟打印机驱动程序220在询问远程打印机205、打印机队列230A-230B或打印机驱动程序237A-237B之后,产生多个虚拟打印机队列225。在一个实施例中,多个虚拟打印机队列225A-225B可以与打印机的列举中所列出的每个打印机相关联。
在一些实施例中,由虚拟打印机驱动程序220检索缺省打印机设置可包括从打印机队列230检索这些设置(步骤274)。其他实施例可包括从与虚拟打印机队列225A-225B相关联的高速缓存存储器227A-227B检索这些设置,所述虚拟打印机队列225A-225B进一步与缺省远程打印机相关联,或者从第一机器、第二机器、或远离第一机器和第二机器的第三机器上的第三存储器单元检索这些设置。方法272的又一个实施例包括使用第一机器上的应用或其他虚拟对象来检索打印机设置。在多个实施例中,虚拟打印机驱动程序220可将所检索的缺省打印设置保存在高速缓存存储器140中(步骤277)。高速缓存存储器140可以是计算机上的高速缓存存储器140、与虚拟打印机队列225A-225B相关联的高速缓存存储器227A-227B,或其他存储器单元。在一个实施例中,所保存的打印机设置接着被虚拟打印机驱动程序220用于产生图形接口。在一个实施例中,设置可以不保存在高速缓存存储器中。
图7所示的是使用虚拟打印机驱动程序220来识别特定于远程打印机205A-205B的打印机设置(步骤362)的方法362的实施例。在多个实施例中,虚拟打印机驱动程序220可确定所检索的打印机设置是否已经改变(步骤363)。在一个实施例中,虚拟打印机驱动程序220利用所改变的打印机设置来动态地产生反映打印机设置中的改变的图形接口(步骤366)。在一个实施例中,虚拟打印机驱动程序220可在第一机器上显示由虚拟打印机驱动程序220所创建的图形接口(步骤369)。在大部分的实施例中,向第一机器上的图形渲染引擎232传输所更新的打印机设置可以使用虚拟打印机驱动程序220来实现(步骤372)。方法362的一个实施例可包括动态地更新在第一机器显示的现有的图形接口以便反映打印机设置中的变化。
在一个实施例中,虚拟打印机驱动程序220可通过首先向高速缓存存储器140查询与第二机器102所连接的远程打印机205相关联的打印机设置来响应打印机设置信息中的改变。其他实施例包括查询与虚拟打印机队列225A-225B相关联的高速缓存存储器227A-227B的虚拟打印机驱动程序220。在一个实施例中,虚拟打印机驱动程序220接着检查查询的响应并识别远程打印机的设置(步骤360)。在方法362的一个实施例中,在识别打印机设置之后,虚拟打印机驱动程序220检查第一图形接口来确定与远程打印机相关联的打印机设置是否已经被改变(步骤363)。在一个实施例中,虚拟打印机驱动程序220可动态地产生反映所改变的打印机设置的所更新的图形接口(步骤366)。在一个实施例中,虚拟打印机驱动程序220接着提取所更新的图形接口并且将该接口显示到第一机器的显示屏幕上(步骤369)。在一个实施例中,虚拟打印机驱动程序220将所更新的打印机设置转发到第一机器106上的图形渲染引擎232(步骤372)。第一机器可以是服务器106或客户机102A-102B的任何一个,而第二机器可以是服务器106或客户机102A-102B的任何一个。
下列的示意性实例展示了上文所讨论的方法和系统如何可被用于在网络计算环境中管理打印机设置。这个实例旨在示意但不限制本发明。
在上文所描述的方法和系统的一些实施例中,并参考图3A,第一客户机102A和第二客户机102B访问服务器106上运行的一个或多个应用。在一个实施例中,第一客户机102A连接到服务器106。应用在服务器106上启动,该应用由与客户机102A相关联的用户控制。
在一个实施例中,虚拟打印机驱动程序220在服务器106上创建虚拟打印机队列225A并且将其与在服务器106上执行的应用相关联。虚拟打印机队列225A也与第一客户机102A所连接的第一多个打印机205A相关联。虚拟打印机队列225A可以在从任何客户计算机首次远程访问应用时被创建并且和应用会话持续一样长的时间。在一些实施例中,虚拟打印机队列225A甚至即使在第一客户机102A或第二客户机102B从服务器106断开时持续。
在一些实施例中,虚拟打印机队列225A由虚拟打印机驱动程序220管理。在一个实施例中,虚拟打印机驱动程序220根据对第一和第二客户机102A-B所连接的所有打印机的打印机能力和选项的主动询问来调整从虚拟打印机队列225A提供给在服务器106上执行的应用的打印机能力和选项。在一个实施例中,第一和第二客户机102A-B可以间歇性地和在不同的时间段连接到服务器106。
在一些实施例中,当第一客户机102A被连接到服务器106时,虚拟打印机驱动程序220配置虚拟打印机队列225A以便将其与第一客户机102A所连接的第一打印机205A的能力和选项相关联。在一个实施例中,第一打印机205A是与第一客户机102A相关联的用户的首选打印机。管理虚拟打印机队列225A的虚拟打印机驱动程序220提供用户接口,该用户接口可以被显示在服务器106上执行的应用的窗口内。用户接口允许用户选择和修改打印作业设置,所述打印作业设置在与虚拟打印机队列225A关联的第一打印机205A的能力范围内。虚拟打印机驱动程序220通过询问第一打印机205A的能力和选项,并且通过连接第一客户机102A和服务器106的网络104与在第一客户机102A执行的软件代理交换消息来达到这一目的。在选择与第一打印机205A的能力一致的一个或多个打印作业选项后,应用可产生打印作业,该打印作业通过网络104被路由到第一客户机102A。打印作业在第一客户机102A上进行处理,然后转发到第一打印机205A来启动打印。
在一些实施例中,虚拟打印机驱动程序220所提供的用户接口允许用户选择、修改,以及打印到可连接到第一客户机102A的其他打印机205A’。当用户在用户接口中选择第二打印机205A’时,虚拟打印机驱动程序220重新配置虚拟打印机队列225A以便与第二打印机205′的特征相关联。用户接口允许用户选择与所动态地询问的第二打印机205A’的能力一致的打印选项,并且允许应用产生从服务器106向第一客户机102A路由的打印作业,其中在第一客户机102A上打印作业被处理并且被转发到第二打印机205A′。
在服务器106上执行的应用的生存期间内,第一客户机102A可以断开连接。这可能是由于第一客户机102A和服务器106之间的连接中的网络中断引起的,或者由从服务器106断开第一客户机102A的明确的用户请求引起的。在一个实施例中,如果第一客户机102A和服务器106之间的网络连接被快速地重建,则虚拟打印机驱动程序220可继续向在服务器106上执行的应用提供第一打印机205A的简档。在一些实施例中,如果断开连接是被明确地请求的或者如果网络中断超过了可配置的时间,虚拟打印机驱动程序220可以将虚拟打印机队列225A的简档配置为预选设定的状态。在一个实施例中,当网络连接被还原并且第一客户机102A重新连接到服务器106时,虚拟打印机队列225A可采用第一客户机102A上的用户缺省的打印机的简档。
在应用的生存期间内,第二客户机102B可连接到服务器106来访问应用。虚拟打印机驱动程序220可重新配置虚拟打印机队列225A以便将其与第二客户机102B所连接的第三打印机205B的能力和选项相关联。在一个实施例中,第三打印机205B是用于第二客户机102B的用户的缺省打印设备。虚拟打印机驱动程序220为虚拟打印机队列225A提供的用户接口可以被用于检索关联到第三打印机205B的打印选项。然后,打印作业被从服务器106路由到第二客户机102B、在第二客户机102B进行处理并被转发到第三打印机205B。用户接口还可允许用户选择第二客户机102B上的第四打印机205B’、修改打印选项以及产生打印作业,所述打印作业可被从服务器106发送到第二客户机102B、在第二客户机102B进行处理并被转发到第四打印机205B’。
在一个实施例中,用户可以与第二客户机102B重新关联,从第二客户机102B远程地访问应用。虚拟打印机队列225A拦截第二客户机102B经由应用所产生的第三打印请求。响应于第三打印请求的拦截,虚拟打印机驱动程序220显示与第一打印机205A相关联的用户接口,并且向第一客户机102A上的图形渲染引擎传输所检索的与第一打印机205A相关联的设置信息以用于显示。
在一些实施例中,如果用户通过断开与用户相关联的客户机和服务器106的连接来改变与虚拟打印机队列225A相关联的打印机,那么当与用户相关联的客户机重新连接到服务器106时,系统可代表用户还原这个关联。在其他实施例中,系统可支持多个虚拟打印机队列,每个虚拟打印机队列各自缺省地关联到首选打印机。
上文所描述的系统和方法可使用编程和/或工程技术被实现为方法、装置或产品以生成软件、固件、硬件或者上述软件、固件、硬件的任何组合。上文所描述的系统和方法可以被提供为一件或多件产品上或其中所包括的一个或多个计算机可读的程序。此处所使用的术语“产品”旨在包括从一个或多个下列设备可访问的和被嵌入一个或多个下列设备的代码或逻辑,下列设备为:计算机可读的设备、固件、可编程逻辑、存储设备(例如EEPROM,ROM,PROM,RAM,SRAM等)、硬件(例如集成电路芯片、现场可编程门阵列(FPGA)、应用专用集成电路(ASIC)等)、电子设备、计算机可读的非易失性存储单元(例如,CD-ROM、软盘、硬盘等)、通过网络传输线路、无线传输媒介、通过空间、无线电波、红外信号等传播的信号来提供对程序的访问的文件服务器。该产品可包括硬件逻辑以及嵌入在计算机可读介质中由处理器执行的软件或可编程代码。通常,计算机可读程序可以以任何编程语言实现,LISP、PERL、C、C++、PROLOG或诸如JAVA的任何字节码语言。软件程序可以作为目标代码存储在一个或多件产品上或其中。
已经描述了用于在网络计算环境中管理打印机设置的方法和系统的某些实施例,对本领域技术人员而言,显而易见可以使用包含所述实施例的概念的其他实施例。本发明应该不限于某些实施例,而是应由下列权利要求的精神和范围进行限制。
Claims (24)
1.一种用于在网络计算环境中管理打印机设置的方法,所述方法包括:
由网络计算环境中的第一机器执行应用;
由虚拟打印机驱动程序所管理的虚拟打印机队列拦截由网络计算环境中的第二机器经由所述应用所产生的第一打印请求;
由虚拟打印机驱动程序响应于第一打印请求的拦截,检索与第一远程打印机相关联的设置信息,所述第一远程打印机与第二机器通信;
由虚拟打印机驱动程序产生与第一远程打印机相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序响应于检索设置信息而动态地产生的;
由虚拟打印机队列拦截网络计算环境中的第三机器经由所述应用所产生的第二打印请求;
由虚拟打印机驱动程序响应于第二打印请求的拦截,检索与第二远程打印机相关联的设置信息,所述第二远程打印机与第三机器通信;以及
由虚拟打印机驱动程序产生与第二远程打印机相关联的第二图形接口,所述第二图形接口是由虚拟打印机驱动程序响应于检索与第二远程打印机相关联的设置信息而动态地产生的。
2.根据权利要求1的方法,还包括:
由虚拟打印机驱动程序检测与第一远程打印机相关联的至少一个打印机设置中的改变;
由虚拟打印机驱动程序更新第一图形接口以包括所改变的打印机设置;
由虚拟打印机驱动程序产生所更新的第一图形接口;以及
由虚拟打印机驱动程序将虚拟打印机队列与第一远程打印机相关联。
3.根据权利要求1的方法,还包括:
由虚拟打印机队列拦截由第二机器经由所述应用所产生的第三打印请求;
由虚拟打印机驱动程序产生与第一远程打印机相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序响应于第三打印请求的拦截而产生的;以及
由虚拟打印机驱动程序向第二机器上的图形渲染引擎传输所检索的与第一远程打印机相关联的设置信息。
4.根据权利要求1的方法,还包括:
在网络计算环境中的宿主机器上执行虚拟打印机驱动程序;
由虚拟打印机驱动程序根据所检索的打印机设置信息来创建虚拟打印机队列;
由虚拟打印机驱动程序使用所检索的打印机设置信息来识别与网络计算环境中的客户机相关联的多个远程打印机;以及
由虚拟打印机驱动程序将虚拟打印机队列与客户机所连接的远程打印机相关联。
5.根据权利要求2的方法,其中将第一远程打印机与虚拟打印机队列相关联还包括由虚拟打印机驱动程序映射到第一远程打印机的路径。
6.根据权利要求1的方法,还包括:
由虚拟打印机驱动程序询问第二机器所连接的第一远程打印机;
由虚拟打印机驱动程序检索与第一远程打印机相关联的打印机设置信息,所述打印机设置信息是在询问第一远程打印机的期间所产生的;
由虚拟打印机驱动程序创建与第一远程打印机相关联的第一虚拟打印机队列;以及
由虚拟打印机驱动程序产生与第一远程打印机相关联的第一图形接口,所述第一图形接口包括所检索的与第一远程打印机相关联的打印机设置信息。
7.根据权利要求6的方法,还包括:
由虚拟打印机驱动程序向第二机器上的图形渲染引擎传输所检索的与第一远程打印机相关联的设置信息。
8.一种用于在网络计算环境中管理打印机设置的方法,所述方法包括:
由网络计算环境中的第一机器执行应用;
由虚拟打印机驱动程序所管理的虚拟打印机队列拦截由网络计算环境中的第二机器经由所述应用所产生的第一打印请求;
由虚拟打印机驱动程序响应于第一打印请求的拦截,检索与第一远程打印机相关联的设置信息,所述第一远程打印机与第二机器通信;
由虚拟打印机驱动程序产生与第一远程打印机相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序响应于检索设置信息而动态地产生的;
由虚拟打印机驱动程序拦截中断第二机器对所述应用的访问的事件;
由虚拟打印机驱动程序检索与第一远程打印机相关联的打印机设置信息;以及
由虚拟打印机驱动程序产生与第一远程打印机相关联的第一图形接口,所述第一图形接口是由虚拟打印机驱动程序响应于与第一远程打印机相关联的设置信息的检索而产生的。
9.根据权利要求8的方法,其中拦截中断第二机器对所述应用的访问的事件还包括拦截第二机器和所述应用之间的连接超时。
10.根据权利要求8的方法,其中拦截中断第二机器对所述应用的访问的事件还包括拦截第二机器和所述应用之间的网络中断。
11.根据权利要求8的方法,其中拦截中断第二机器对所述应用的访问的事件还包括拦截断开和重连接第二机器和所述应用的用户请求。
12.根据权利要求8的方法,其中拦截中断第二机器对所述应用的访问的事件还包括拦截由网络计算环境中的第三机器经由所述应用所产生的第二打印请求,其后紧跟着由第二机器经由所述应用所产生的第三打印请求。
13.一种用于在网络计算环境中管理打印机设置的设备,所述设备包括:
用于由网络计算环境中的第一机器执行应用的装置;
用于由虚拟打印机驱动程序所管理的虚拟打印机队列拦截由网络计算环境中的第二机器经由所述应用所产生的第一打印请求的装置;
用于由虚拟打印机驱动程序响应于第一打印请求的拦截,检索与第一远程打印机相关联的设置信息的装置,所述第一远程打印机与第二机器通信;
用于由虚拟打印机驱动程序产生与第一远程打印机相关联的第一图形接口的装置,所述第一图形接口是由虚拟打印机驱动程序响应于检索设置信息而动态地产生的;
用于由虚拟打印机驱动程序拦截中断第二机器对所述应用的访问的事件的装置;
用于由虚拟打印机驱动程序检索与第一远程打印机相关联的打印机设置信息的装置;以及
用于由虚拟打印机驱动程序产生与第一远程打印机相关联的第一图形接口的装置,所述第一图形接口是由虚拟打印机驱动程序响应于与第一远程打印机相关联的设置信息的检索而产生的。
14.根据权利要求13的设备,其中用于拦截中断第二机器对所述应用的访问的事件的装置还包括用于拦截第二机器和所述应用之间的连接超时的装置。
15.根据权利要求13的设备,其中用于拦截中断第二机器对所述应用的访问的事件的装置还包括用于拦截第二机器和所述应用之间的网络中断的装置。
16.根据权利要求13的设备,其中用于拦截中断第二机器对所述应用的访问的事件的装置还包括用于拦截断开和重连接第二机器和所述应用的用户请求的装置。
17.根据权利要求13的设备,其中用于拦截中断第二机器对所述应用的访问的事件的装置还包括用于拦截由网络计算环境中的第三机器经由所述应用所产生的第二打印请求的装置,所述第二打印请求之后紧跟着由第二机器经由所述应用所产生的第三打印请求。
18.一种用于在网络计算环境中管理打印机设置的设备,所述设备包括:
用于由网络计算环境中的第一机器执行应用的装置;
用于由虚拟打印机驱动程序所管理的虚拟打印机队列拦截由网络计算环境中的第二机器经由所述应用所产生的第一打印请求的装置;
用于由虚拟打印机驱动程序响应于第一打印请求的拦截,检索与第一远程打印机相关联的设置信息的装置,所述第一远程打印机与第二机器通信;
用于由虚拟打印机驱动程序产生与第一远程打印机相关联的第一图形接口的装置,所述第一图形接口是由虚拟打印机驱动程序响应于检索设置信息而动态地产生的;
用于由虚拟打印机队列拦截网络计算环境中的第三机器经由所述应用所产生的第二打印请求的装置;
用于由虚拟打印机驱动程序响应于第二打印请求的拦截,检索与第二远程打印机相关联的设置信息的装置,所述第二远程打印机与第三机器通信;以及
用于由虚拟打印机驱动程序产生与第二远程打印机相关联的第二图形接口的装置,所述第二图形接口是由虚拟打印机驱动程序响应于检索与第二远程打印机相关联的设置信息而动态地产生的。
19.根据权利要求18的设备,还包括:
用于由虚拟打印机驱动程序检测与第一远程打印机相关联的至少一个打印机设置中的改变的装置;
用于由虚拟打印机驱动程序更新第一图形接口以包括所改变的打印机设置的装置;
用于由虚拟打印机驱动程序产生所更新的第一图形接口的装置;以及
用于由虚拟打印机驱动程序将虚拟打印机队列与第一远程打印机相关联的装置。
20.根据权利要求18的设备,还包括:
用于由虚拟打印机队列拦截由第二机器经由所述应用所产生的第三打印请求的装置;
用于由虚拟打印机驱动程序产生与第一远程打印机相关联的第一图形接口的装置,所述第一图形接口是由虚拟打印机驱动程序响应于第三打印请求的拦截而产生的;以及
用于由虚拟打印机驱动程序向第二机器上的图形渲染引擎传输所检索的与第一远程打印机相关联的设置信息的装置。
21.根据权利要求18的设备,还包括:
用于在网络计算环境中的宿主机器上执行虚拟打印机驱动程序的装置;
用于由虚拟打印机驱动程序根据所检索的打印机设置信息来创建虚拟打印机队列的装置;
用于由虚拟打印机驱动程序使用所检索的打印机设置信息来识别与网络计算环境中的客户机相关联的多个远程打印机的装置;以及
用于由虚拟打印机驱动程序将虚拟打印机队列与客户机所连接的远程打印机相关联的装置。
22.根据权利要求19的设备,其中,
用于将第一远程打印机与虚拟打印机队列相关联的装置还包括用于由虚拟打印机驱动程序映射到第一远程打印机的路径的装置。
23.根据权利要求18的设备,还包括:
用于由虚拟打印机驱动程序询问第二机器所连接的第一远程打印机的装置;
用于由虚拟打印机驱动程序检索与第一远程打印机相关联的打印机设置信息的装置,所述打印机设置信息是在询问第一远程打印机的期间所产生的;
用于由虚拟打印机驱动程序创建与第一远程打印机相关联的第一虚拟打印机队列的装置;以及
用于由虚拟打印机驱动程序产生与第一远程打印机相关联的第一图形接口的装置,所述第一图形接口包括所检索的与第一远程打印机相关联的打印机设置信息。
24.根据权利要求23的设备,还包括:
用于由虚拟打印机驱动程序向第二机器上的图形渲染引擎传输所检索的与第一远程打印机相关联的设置信息的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/267274 | 2008-11-07 | ||
US12/267,274 US8149431B2 (en) | 2008-11-07 | 2008-11-07 | Systems and methods for managing printer settings in a networked computing environment |
PCT/US2009/056780 WO2010053622A1 (en) | 2008-11-07 | 2009-09-14 | Systems and methods for managing printer settings in a networked computing environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102197364A CN102197364A (zh) | 2011-09-21 |
CN102197364B true CN102197364B (zh) | 2014-08-20 |
Family
ID=41786476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980142664.9A Active CN102197364B (zh) | 2008-11-07 | 2009-09-14 | 用于在网络计算环境中管理打印机设置的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8149431B2 (zh) |
EP (1) | EP2364472B1 (zh) |
CN (1) | CN102197364B (zh) |
HK (1) | HK1161394A1 (zh) |
WO (1) | WO2010053622A1 (zh) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8456668B1 (en) * | 2008-08-28 | 2013-06-04 | Google Inc. | Methods and systems for cross-process printing |
JP2010097454A (ja) * | 2008-10-17 | 2010-04-30 | Seiko Epson Corp | プリンタドライバ |
JP4743262B2 (ja) * | 2008-12-01 | 2011-08-10 | コニカミノルタビジネステクノロジーズ株式会社 | 印刷設定項目を設定するための印刷設定装置が実行する方法およびプログラム |
US8427675B2 (en) * | 2009-01-27 | 2013-04-23 | Ricoh Company, Ltd. | Automatically updating a printer driver with new printing device features |
DE102009010902A1 (de) * | 2009-03-02 | 2010-09-16 | SOFHA GmbH Gesellschaft für Soft- und Hardware | Verfahren und Anordnung zur Konfiguration eines Druckertreibers sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium |
US8526020B2 (en) * | 2009-03-06 | 2013-09-03 | Ricoh Company, Ltd. | Paper size support for a print system |
US8520225B2 (en) * | 2009-03-06 | 2013-08-27 | Ricoh Company, Ltd. | Print driver localization support from printing device to support multiple user profiles |
US20100225958A1 (en) * | 2009-03-06 | 2010-09-09 | Selvaraj Senthil K | Approach For Printing To Web Services-Enabled Printing Devices |
US8773687B2 (en) * | 2009-03-06 | 2014-07-08 | Ricoh Company, Ltd. | Driverless architecture for printing systems |
JP5338496B2 (ja) * | 2009-06-09 | 2013-11-13 | 株式会社リコー | 情報処理装置、プログラムおよび記録媒体 |
US8477346B2 (en) * | 2009-07-07 | 2013-07-02 | Xerox Corporation | Network based print driver configuration |
JP5455527B2 (ja) * | 2009-09-29 | 2014-03-26 | キヤノン株式会社 | 画像形成装置、該装置の制御方法、制御プログラム |
JP5663933B2 (ja) * | 2010-04-08 | 2015-02-04 | 富士ゼロックス株式会社 | カスタムインストーラの作成プログラム、カスタムインストーラの作成装置、カスタムインストーラの作成方法、インストールプログラム及びインストール装置 |
US8659775B2 (en) * | 2010-09-30 | 2014-02-25 | Konica Minolta Laboratory U.S.A., Inc. | Print shop management method for customizing print-on-demand driver |
US8619297B2 (en) * | 2011-01-28 | 2013-12-31 | Hewlett-Packard Development Company, L.P. | Printing using a profile based on printer capabilities |
US8549145B2 (en) * | 2011-02-08 | 2013-10-01 | Aventura Hq, Inc. | Pre-access location-based rule initiation in a virtual computing environment |
US20120212757A1 (en) * | 2011-02-23 | 2012-08-23 | Gaertner Joseph P | Multiple print protocol capability of a virtual printer in a print shop architecture |
JP2012174184A (ja) * | 2011-02-24 | 2012-09-10 | Canon Inc | 情報処理装置および情報処理装置の制御方法 |
JP5357206B2 (ja) * | 2011-04-28 | 2013-12-04 | シャープ株式会社 | コンピュータプログラム及び記憶媒体 |
JP5932244B2 (ja) * | 2011-06-01 | 2016-06-08 | キヤノン株式会社 | サーバー装置、情報処理装置、それらの制御方法、及び制御プログラム |
US9069498B2 (en) * | 2011-09-12 | 2015-06-30 | Microsoft Technology Licensing, Llc | Presenting devices as applications |
CN102368204A (zh) * | 2011-10-26 | 2012-03-07 | 苏州工业园区鑫海胜电子有限公司 | 基于互联网预览的文件打印方法 |
CN103358727B (zh) * | 2012-03-26 | 2017-09-19 | 精工爱普生株式会社 | 记录装置及记录装置的控制方法 |
US9170758B2 (en) * | 2012-04-25 | 2015-10-27 | Hewlett-Packard Indigo B.V. | Automatic load balancer for presses |
US20140211255A1 (en) * | 2013-01-30 | 2014-07-31 | Seiko Epson Corporation | Control system and control method of a control system |
CN104636091B (zh) * | 2013-11-07 | 2018-06-15 | 精工爱普生株式会社 | 打印控制系统 |
US10165130B2 (en) | 2014-02-13 | 2018-12-25 | Emerge Print Management, Llc | System and method for the passive monitoring and reporting of printer-related data on USB cables |
WO2015123509A1 (en) * | 2014-02-13 | 2015-08-20 | Emerge Print Management, Llc | System and method for the passive monitoring and reporting of printer-related data on usb cables |
JP6366373B2 (ja) * | 2014-06-13 | 2018-08-01 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
WO2015199737A1 (en) | 2014-06-27 | 2015-12-30 | Hewlett-Packard Development Company, L.P. | Message receipt through firewall |
JP2016045789A (ja) * | 2014-08-25 | 2016-04-04 | コニカミノルタ株式会社 | プリンタードライバー、設定提示方法及び設定提示装置 |
JP6413495B2 (ja) * | 2014-08-29 | 2018-10-31 | セイコーエプソン株式会社 | 情報処理方法、及び、記録システム |
US10268431B2 (en) * | 2014-12-16 | 2019-04-23 | Dover Europe Sàrl | Printer and method therein for printing information on at least one article |
JP6311666B2 (ja) * | 2015-07-01 | 2018-04-18 | コニカミノルタ株式会社 | 通信システム、管理サーバおよびプログラム |
CN105159629A (zh) * | 2015-09-24 | 2015-12-16 | 龚术伟 | 一种有线打印机无线打印系统及其操作方法 |
CN106933675A (zh) * | 2015-12-31 | 2017-07-07 | 华为技术有限公司 | 一种处理任务的方法、管理器、服务器及系统 |
JP6756177B2 (ja) * | 2016-07-20 | 2020-09-16 | コニカミノルタ株式会社 | 画像形成装置 |
US10187545B2 (en) * | 2016-09-07 | 2019-01-22 | Zih Corp. | Method and apparatus to communicate data associated with media processing devices |
JP6701523B2 (ja) * | 2016-09-29 | 2020-05-27 | ブラザー工業株式会社 | 携帯型印刷装置 |
JP6950295B2 (ja) * | 2017-06-21 | 2021-10-13 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置、プログラムおよび情報処理システム |
CN107943437A (zh) * | 2017-12-06 | 2018-04-20 | 高新现代智能系统股份有限公司 | 兼容多种打印机的打印方法、装置及存储介质 |
JP7175693B2 (ja) * | 2018-09-27 | 2022-11-21 | キヤノン株式会社 | 印刷装置、印刷装置の制御方法、及びプログラム |
US10795616B1 (en) * | 2019-05-28 | 2020-10-06 | Vmware, Inc. | Local printing of print data generated during nested remote desktop sessions |
EP3958108A4 (en) * | 2019-05-30 | 2022-05-18 | Huawei Technologies Co., Ltd. | METHOD, APPARATUS AND SYSTEM FOR PRINTING A DOCUMENT IN A VIRTUAL MACHINE USING A TERMINAL DEVICE |
US11042338B2 (en) * | 2019-11-08 | 2021-06-22 | Vmware, Inc. | Font processing during printer redirection in virtual desktop environments |
NL2025994B1 (en) * | 2020-07-03 | 2022-03-11 | Canon Production Printing Holding Bv | Document processing system and a method for a printing environment |
WO2022060364A1 (en) * | 2020-09-18 | 2022-03-24 | Hewlett-Packard Development Company, L.P. | Data visualization models and instruction models for rendering data visualization models |
US11494139B1 (en) | 2021-06-04 | 2022-11-08 | Vmware, Inc. | Print content auditing during printer redirection in virtual desktop environments |
JP2024007174A (ja) * | 2022-07-05 | 2024-01-18 | キヤノン株式会社 | 印刷サービスを提供するためのシステム及び方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1486466A (zh) * | 2000-11-14 | 2004-03-31 | 西姆德斯克技术公司 | 远程打印 |
CN1811694A (zh) * | 2005-01-26 | 2006-08-02 | 三星电子株式会社 | 按附加打印输出的请求调整复制份数的网络打印机及系统 |
CN101121359A (zh) * | 2007-09-14 | 2008-02-13 | 山东神思电子技术有限公司 | 二代身份证双面信息留存文档的制作方法 |
Family Cites Families (167)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4210910A (en) | 1979-01-15 | 1980-07-01 | Calspan Corporation | Decoder for a space retrodirective array |
US4941089A (en) | 1986-12-12 | 1990-07-10 | Datapoint Corporation | Input/output network for computer system |
CA1341310C (en) | 1988-07-15 | 2001-10-23 | Robert Filepp | Interactive computer network and method of operation |
US5146568A (en) | 1988-09-06 | 1992-09-08 | Digital Equipment Corporation | Remote bootstrapping a node over communication link by initially requesting remote storage access program which emulates local disk to load other programs |
US5315711A (en) | 1991-11-01 | 1994-05-24 | Unisys Corporation | Method and apparatus for remotely and centrally controlling a plurality of host processors |
US6400996B1 (en) | 1999-02-01 | 2002-06-04 | Steven M. Hoffberg | Adaptive pattern recognition based control system and method |
US6850252B1 (en) | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
US7006881B1 (en) | 1991-12-23 | 2006-02-28 | Steven Hoffberg | Media recording device with remote graphic user interface |
US6678864B1 (en) | 1992-02-25 | 2004-01-13 | Irving Tsai | Method and apparatus for linking designated portions of a received document image with an electronic address |
US5329619A (en) | 1992-10-30 | 1994-07-12 | Software Ag | Cooperative processing interface and communication broker for heterogeneous computing environments |
US5404527A (en) | 1992-12-31 | 1995-04-04 | Unisys Corporation | System and method for remote program load |
US7116781B2 (en) | 1993-11-18 | 2006-10-03 | Digimarc Corporation | Counteracting geometric distortions in watermarking |
US6681029B1 (en) | 1993-11-18 | 2004-01-20 | Digimarc Corporation | Decoding steganographic messages embedded in media signals |
US5841978A (en) | 1993-11-18 | 1998-11-24 | Digimarc Corporation | Network linking method using steganographically embedded data objects |
US7103197B2 (en) | 1993-11-18 | 2006-09-05 | Digimarc Corporation | Arrangement for embedding subliminal data in imaging |
US6122403A (en) | 1995-07-27 | 2000-09-19 | Digimarc Corporation | Computer system linked by using information in data objects |
US5862260A (en) | 1993-11-18 | 1999-01-19 | Digimarc Corporation | Methods for surveying dissemination of proprietary empirical data |
US5832119C1 (en) | 1993-11-18 | 2002-03-05 | Digimarc Corp | Methods for controlling systems using control signals embedded in empirical data |
US7113596B2 (en) | 1993-11-18 | 2006-09-26 | Digimarc Corporation | Embedding information related to a subject of an identification document in the identification document |
US7171016B1 (en) | 1993-11-18 | 2007-01-30 | Digimarc Corporation | Method for monitoring internet dissemination of image, video and/or audio files |
US5822436A (en) | 1996-04-25 | 1998-10-13 | Digimarc Corporation | Photographic products and methods employing embedded information |
US6022315A (en) | 1993-12-29 | 2000-02-08 | First Opinion Corporation | Computerized medical diagnostic and treatment advice system including network access |
US6206829B1 (en) | 1996-07-12 | 2001-03-27 | First Opinion Corporation | Computerized medical diagnostic and treatment advice system including network access |
US6968057B2 (en) | 1994-03-17 | 2005-11-22 | Digimarc Corporation | Emulsion products and imagery employing steganography |
CA2118201C (en) | 1994-10-14 | 2003-02-04 | Patrick M. Hayden | Photon windowing kernel |
US6879701B1 (en) | 1994-10-21 | 2005-04-12 | Digimarc Corporation | Tile-based digital watermarking techniques |
US6539336B1 (en) | 1996-12-12 | 2003-03-25 | Phatrat Technologies, Inc. | Sport monitoring system for determining airtime, speed, power absorbed and other factors such as drop distance |
US5682478A (en) | 1995-01-19 | 1997-10-28 | Microsoft Corporation | Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server |
US5819093A (en) | 1995-03-03 | 1998-10-06 | Sun Microsystems, Inc. | System and method for a distributed debugger for debugging distributed application programs |
US5689708A (en) | 1995-03-31 | 1997-11-18 | Showcase Corporation | Client/server computer systems having control of client-based application programs, and application-program control means therefor |
US6813366B1 (en) | 1995-05-08 | 2004-11-02 | Digimarc Corporation | Steganographic decoding with transform to spatial domain |
US6760463B2 (en) | 1995-05-08 | 2004-07-06 | Digimarc Corporation | Watermarking methods and media |
US6418324B1 (en) | 1995-06-01 | 2002-07-09 | Padcom, Incorporated | Apparatus and method for transparent wireless communication between a remote device and host system |
US6408331B1 (en) | 1995-07-27 | 2002-06-18 | Digimarc Corporation | Computer linking methods using encoded graphics |
US6580808B2 (en) | 1995-09-25 | 2003-06-17 | Digimarc Corporation | Method and apparatus for discerning image distortion by reference to encoded marker signals |
US5826027A (en) | 1995-10-11 | 1998-10-20 | Citrix Systems, Inc. | Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system |
US6081623A (en) | 1995-10-11 | 2000-06-27 | Citrix Systems, Inc. | Method for lossless bandwidth compression of a series of glyphs |
US6016535A (en) | 1995-10-11 | 2000-01-18 | Citrix Systems, Inc. | Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks |
US6381341B1 (en) | 1996-05-16 | 2002-04-30 | Digimarc Corporation | Watermark encoding method exploiting biases inherent in original signal |
US6314406B1 (en) | 1996-06-26 | 2001-11-06 | Telxon Corporation | Customer information network |
US6272556B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for migrating a client-server application (#5) |
US6570587B1 (en) | 1996-07-26 | 2003-05-27 | Veon Ltd. | System and method and linking information to a video |
US5828840A (en) * | 1996-08-06 | 1998-10-27 | Verifone, Inc. | Server for starting client application on client if client is network terminal and initiating client application on server if client is non network terminal |
US6166734A (en) | 1996-10-01 | 2000-12-26 | Diamond Multimedia Systems, Inc. | Portable interactive graphics display tablet and communications system |
US6084584A (en) | 1996-10-01 | 2000-07-04 | Diamond Multimedia Systems, Inc. | Computer system supporting portable interactive graphics display tablet and communications systems |
US6052120A (en) | 1996-10-01 | 2000-04-18 | Diamond Multimedia Systems, Inc. | Method of operating a portable interactive graphics display tablet and communications systems |
US5911044A (en) | 1996-11-08 | 1999-06-08 | Ricoh Company, Ltd. | Network image scanning system which transmits image information from a scanner over a network to a client computer |
US5987611A (en) | 1996-12-31 | 1999-11-16 | Zone Labs, Inc. | System and methodology for managing internet access on a per application basis for client computers connected to the internet |
US5909559A (en) | 1997-04-04 | 1999-06-01 | Texas Instruments Incorporated | Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width |
US5930804A (en) | 1997-06-09 | 1999-07-27 | Philips Electronics North America Corporation | Web-based biometric authentication system and method |
US6292827B1 (en) | 1997-06-20 | 2001-09-18 | Shore Technologies (1999) Inc. | Information transfer systems and method with dynamic distribution of data, control and management of information |
US6442549B1 (en) | 1997-07-25 | 2002-08-27 | Eric Schneider | Method, product, and apparatus for processing reusable information |
US5977972A (en) | 1997-08-15 | 1999-11-02 | International Business Machines Corporation | User interface component and method of navigating across a boundary coupled to a scroll bar display element |
US5877766A (en) | 1997-08-15 | 1999-03-02 | International Business Machines Corporation | Multi-node user interface component and method thereof for use in accessing a plurality of linked records |
WO1999010866A1 (en) | 1997-08-25 | 1999-03-04 | Imagicolor Corp | A system for distributing and controlling color reproduction at multiple sites |
US6321337B1 (en) | 1997-09-09 | 2001-11-20 | Sanctum Ltd. | Method and system for protecting operations of trusted internal networks |
US6704117B1 (en) | 1997-11-25 | 2004-03-09 | International Business Machines Corporation | System and method for server virtual printer device name negotiation for mobile print support |
US6108712A (en) * | 1998-05-05 | 2000-08-22 | International Business Machines Corp. | Client-server system with central application management and providing export agent capability for retrofitting existing hardware and applications into the system |
US6141699A (en) | 1998-05-11 | 2000-10-31 | International Business Machines Corporation | Interactive display system for sequential retrieval and display of a plurality of interrelated data sets |
US6300947B1 (en) | 1998-07-06 | 2001-10-09 | International Business Machines Corporation | Display screen and window size related web page adaptation system |
US6209088B1 (en) | 1998-09-21 | 2001-03-27 | Microsoft Corporation | Computer hibernation implemented by a computer operating system |
US6687874B2 (en) | 1998-10-05 | 2004-02-03 | Nexpress Solutions Llc | System for generating and maintaining field service publications |
US6601087B1 (en) | 1998-11-18 | 2003-07-29 | Webex Communications, Inc. | Instant document sharing |
AUPP773798A0 (en) | 1998-12-16 | 1999-01-21 | Silverbrook Research Pty Ltd | An image creation method and apparatus(CEP02) |
SG116488A1 (en) | 1998-12-16 | 2005-11-28 | Silverbrook Res Pty Ltd | Printer transfer roller with internal drive motor. |
US6631986B2 (en) | 1998-12-16 | 2003-10-14 | Silverbrook Research Pty Ltd | Printer transport roller with internal drive motor |
AUPP773898A0 (en) | 1998-12-16 | 1999-01-21 | Silverbrook Research Pty Ltd | An image creation method and apparatus(CEP01) |
US6249765B1 (en) | 1998-12-22 | 2001-06-19 | Xerox Corporation | System and method for extracting data from audio messages |
US6342901B1 (en) | 1998-12-22 | 2002-01-29 | Xerox Corporation | Interactive device for displaying information from multiple sources |
US6452923B1 (en) | 1998-12-31 | 2002-09-17 | At&T Corp | Cable connected wan interconnectivity services for corporate telecommuters |
US6760748B1 (en) | 1999-01-20 | 2004-07-06 | Accenture Llp | Instructional system grouping student terminals |
US6938051B1 (en) | 1999-02-26 | 2005-08-30 | Verizon Services Corp. | Method, storage medium and system for electronically viewing multi-page document while preserving appearance of printed pages |
CA2683191A1 (en) | 1999-03-02 | 2000-09-08 | Amway Corp. | Electronic commerce transactions within a marketing system |
US7032030B1 (en) | 1999-03-11 | 2006-04-18 | John David Codignotto | Message publishing system and method |
US7349391B2 (en) | 1999-03-19 | 2008-03-25 | F5 Networks, Inc. | Tunneling between a bus and a network |
US6338082B1 (en) | 1999-03-22 | 2002-01-08 | Eric Schneider | Method, product, and apparatus for requesting a network resource |
US7188138B1 (en) | 1999-03-22 | 2007-03-06 | Eric Schneider | Method, product, and apparatus for resource identifier registration and aftermarket services |
US6549949B1 (en) | 1999-08-31 | 2003-04-15 | Accenture Llp | Fixed format stream in a communication services patterns environment |
US6550057B1 (en) | 1999-08-31 | 2003-04-15 | Accenture Llp | Piecemeal retrieval in an information services patterns environment |
US6615253B1 (en) | 1999-08-31 | 2003-09-02 | Accenture Llp | Efficient server side data retrieval for execution of client side applications |
US6578068B1 (en) | 1999-08-31 | 2003-06-10 | Accenture Llp | Load balancer in environment services patterns |
US6496850B1 (en) | 1999-08-31 | 2002-12-17 | Accenture Llp | Clean-up of orphaned server contexts |
US6529909B1 (en) | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
US6571282B1 (en) | 1999-08-31 | 2003-05-27 | Accenture Llp | Block-based communication in a communication services patterns environment |
US6477580B1 (en) | 1999-08-31 | 2002-11-05 | Accenture Llp | Self-described stream in a communication services patterns environment |
US6640244B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
US6434568B1 (en) | 1999-08-31 | 2002-08-13 | Accenture Llp | Information services patterns in a netcentric environment |
US6339832B1 (en) | 1999-08-31 | 2002-01-15 | Accenture Llp | Exception response table in environment services patterns |
US6615199B1 (en) | 1999-08-31 | 2003-09-02 | Accenture, Llp | Abstraction factory in a base services pattern environment |
US6640238B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Activity component in a presentation services patterns environment |
US6640249B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Presentation services patterns in a netcentric environment |
US6502213B1 (en) | 1999-08-31 | 2002-12-31 | Accenture Llp | System, method, and article of manufacture for a polymorphic exception handler in environment services patterns |
US6636242B2 (en) | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
US6289382B1 (en) | 1999-08-31 | 2001-09-11 | Andersen Consulting, Llp | System, method and article of manufacture for a globally addressable interface in a communication services patterns environment |
US6442748B1 (en) | 1999-08-31 | 2002-08-27 | Accenture Llp | System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment |
US6601234B1 (en) | 1999-08-31 | 2003-07-29 | Accenture Llp | Attribute dictionary in a business logic services environment |
US6438594B1 (en) | 1999-08-31 | 2002-08-20 | Accenture Llp | Delivering service to a client via a locally addressable interface |
US6529948B1 (en) | 1999-08-31 | 2003-03-04 | Accenture Llp | Multi-object fetch component |
US6601192B1 (en) | 1999-08-31 | 2003-07-29 | Accenture Llp | Assertion component in environment services patterns |
US6539396B1 (en) | 1999-08-31 | 2003-03-25 | Accenture Llp | Multi-object identifier system and method for information service pattern environment |
US6842906B1 (en) | 1999-08-31 | 2005-01-11 | Accenture Llp | System and method for a refreshable proxy pool in a communication services patterns environment |
US6606660B1 (en) | 1999-08-31 | 2003-08-12 | Accenture Llp | Stream-based communication in a communication services patterns environment |
US6742015B1 (en) | 1999-08-31 | 2004-05-25 | Accenture Llp | Base services patterns in a netcentric environment |
US6715145B1 (en) | 1999-08-31 | 2004-03-30 | Accenture Llp | Processing pipeline in a base services pattern environment |
US6434628B1 (en) | 1999-08-31 | 2002-08-13 | Accenture Llp | Common interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patterns |
US6477665B1 (en) | 1999-08-31 | 2002-11-05 | Accenture Llp | System, method, and article of manufacture for environment services patterns in a netcentic environment |
US6332163B1 (en) | 1999-09-01 | 2001-12-18 | Accenture, Llp | Method for providing communication services over a computer network system |
US6668253B1 (en) | 1999-09-08 | 2003-12-23 | Reynolds & Reynolds Holdings, Inc. | Enterprise information management system and methods |
US6598087B1 (en) | 1999-09-08 | 2003-07-22 | Ge Capital Commercial Finance, Inc. | Methods and apparatus for network-enabled virtual printing |
US7128270B2 (en) | 1999-09-17 | 2006-10-31 | Silverbrook Research Pty Ltd | Scanning device for coded data |
EP1098244A3 (en) | 1999-11-02 | 2001-06-13 | CANAL + Société Anonyme | Graphical user interface |
US6556950B1 (en) | 1999-09-30 | 2003-04-29 | Rockwell Automation Technologies, Inc. | Diagnostic method and apparatus for use with enterprise control |
US6993456B2 (en) | 1999-09-30 | 2006-01-31 | Rockwell Automation Technologies, Inc. | Mechanical-electrical template based method and apparatus |
US6268853B1 (en) | 1999-09-30 | 2001-07-31 | Rockwell Technologies, L.L.C. | Data structure for use in enterprise controls |
US6606744B1 (en) | 1999-11-22 | 2003-08-12 | Accenture, Llp | Providing collaborative installation management in a network-based supply chain environment |
US7124101B1 (en) | 1999-11-22 | 2006-10-17 | Accenture Llp | Asset tracking in a network-based supply chain environment |
US6671818B1 (en) | 1999-11-22 | 2003-12-30 | Accenture Llp | Problem isolation through translating and filtering events into a standard object format in a network based supply chain |
US7130807B1 (en) | 1999-11-22 | 2006-10-31 | Accenture Llp | Technology sharing during demand and supply planning in a network-based supply chain environment |
US7587467B2 (en) | 1999-12-02 | 2009-09-08 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7917628B2 (en) | 1999-12-02 | 2011-03-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7167844B1 (en) | 1999-12-22 | 2007-01-23 | Accenture Llp | Electronic menu document creator in a virtual financial environment |
US7069234B1 (en) | 1999-12-22 | 2006-06-27 | Accenture Llp | Initiating an agreement in an e-commerce environment |
US6629081B1 (en) | 1999-12-22 | 2003-09-30 | Accenture Llp | Account settlement and financing in an e-commerce environment |
US6654032B1 (en) | 1999-12-23 | 2003-11-25 | Webex Communications, Inc. | Instant sharing of documents on a remote server |
US6571285B1 (en) | 1999-12-23 | 2003-05-27 | Accenture Llp | Providing an integrated service assurance environment for a network |
US6985901B1 (en) | 1999-12-23 | 2006-01-10 | Accenture Llp | Controlling data collection, manipulation and storage on a network with service assurance capabilities |
US6871346B1 (en) | 2000-02-11 | 2005-03-22 | Microsoft Corp. | Back-end decoupled management model and management system utilizing same |
US7096495B1 (en) | 2000-03-31 | 2006-08-22 | Intel Corporation | Network session management |
WO2001077809A1 (fr) | 2000-04-07 | 2001-10-18 | Seiko Epson Corporation | Controle d'imprimantes distribuees |
EP2267590A3 (en) | 2000-04-07 | 2011-04-06 | Seiko Epson Corporation | Control of distributed printing with multiple printers |
US7047424B2 (en) | 2000-04-12 | 2006-05-16 | Corente, Inc. | Methods and systems for hairpins in virtual networks |
US7028334B2 (en) | 2000-04-12 | 2006-04-11 | Corente, Inc. | Methods and systems for using names in virtual networks |
US7085854B2 (en) | 2000-04-12 | 2006-08-01 | Corente, Inc. | Methods and systems for enabling communication between a processor and a network operations center |
US7181766B2 (en) | 2000-04-12 | 2007-02-20 | Corente, Inc. | Methods and system for providing network services using at least one processor interfacing a base network |
US7181542B2 (en) | 2000-04-12 | 2007-02-20 | Corente, Inc. | Method and system for managing and configuring virtual private networks |
US6996628B2 (en) | 2000-04-12 | 2006-02-07 | Corente, Inc. | Methods and systems for managing virtual addresses for virtual networks |
US7028333B2 (en) | 2000-04-12 | 2006-04-11 | Corente, Inc. | Methods and systems for partners in virtual networks |
US7000012B2 (en) | 2000-04-24 | 2006-02-14 | Microsoft Corporation | Systems and methods for uniquely identifying networks by correlating each network name with the application programming interfaces of transport protocols supported by the network |
US7154638B1 (en) | 2000-05-23 | 2006-12-26 | Silverbrook Research Pty Ltd | Printed page tag encoder |
US6320934B1 (en) | 2000-06-26 | 2001-11-20 | Afp Imaging Corporation | Sensor characterization in memory |
US7092370B2 (en) | 2000-08-17 | 2006-08-15 | Roamware, Inc. | Method and system for wireless voice channel/data channel integration |
US7958185B2 (en) | 2000-09-18 | 2011-06-07 | Bentley Systems, Inc. | Spatial data enabled engineering, construction, and operations computer-aided design (CAD) project system, method and computer program product |
US6735601B1 (en) | 2000-12-29 | 2004-05-11 | Vmware, Inc. | System and method for remote file access by computer |
US6691301B2 (en) | 2001-01-29 | 2004-02-10 | Celoxica Ltd. | System, method and article of manufacture for signal constructs in a programming language capable of programming hardware architectures |
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 |
US7533409B2 (en) | 2001-03-22 | 2009-05-12 | Corente, Inc. | Methods and systems for firewalling virtual private networks |
US20050198379A1 (en) | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
US6873988B2 (en) | 2001-07-06 | 2005-03-29 | Check Point Software Technologies, Inc. | System and methods providing anti-virus cooperative enforcement |
US7546629B2 (en) | 2002-03-06 | 2009-06-09 | Check Point Software Technologies, Inc. | System and methodology for security policy arbitration |
US20040107360A1 (en) | 2002-12-02 | 2004-06-03 | Zone Labs, Inc. | System and Methodology for Policy Enforcement |
US20030084165A1 (en) | 2001-10-12 | 2003-05-01 | Openwave Systems Inc. | User-centric session management for client-server interaction using multiple applications and devices |
US7042879B2 (en) | 2001-11-02 | 2006-05-09 | General Instrument Corporation | Method and apparatus for transferring a communication session |
US7020635B2 (en) | 2001-11-21 | 2006-03-28 | Line 6, Inc | System and method of secure electronic commerce transactions including tracking and recording the distribution and usage of assets |
US6943905B2 (en) | 2001-12-20 | 2005-09-13 | Sharp Laboratories Of America, Inc. | Virtual print driver system and method |
US7124098B2 (en) | 2002-10-07 | 2006-10-17 | The Kroger Company | Online shopping system |
US6850943B2 (en) | 2002-10-18 | 2005-02-01 | Check Point Software Technologies, Inc. | Security system and methodology for providing indirect access control |
US7072807B2 (en) | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7159777B2 (en) | 2003-04-07 | 2007-01-09 | Silverbrook Research Pty Ltd | Transparent conveyor for check-out scanning |
WO2005043360A1 (en) | 2003-10-21 | 2005-05-12 | Green Border Technologies | Systems and methods for secure client applications |
US7436535B2 (en) | 2003-10-24 | 2008-10-14 | Microsoft Corporation | Real-time inking |
US20050091535A1 (en) | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Application identity for software products |
US20050091658A1 (en) | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Operating system resource protection |
US7716273B2 (en) | 2003-10-24 | 2010-05-11 | Microsoft Corporation | Systems and methods for projecting content from computing devices |
GB2414627A (en) | 2004-05-27 | 2005-11-30 | Hewlett Packard Development Co | Network administration |
US20060107269A1 (en) | 2004-11-17 | 2006-05-18 | International Business Machines Corporation | Virtual device hub |
KR100657325B1 (ko) | 2005-07-05 | 2006-12-14 | 삼성전자주식회사 | 복수의 화상형성장치 드라이버를 관리하는 서버의 가상드라이버 및 그 데이터 출력방법 |
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
-
2008
- 2008-11-07 US US12/267,274 patent/US8149431B2/en active Active
-
2009
- 2009-09-14 WO PCT/US2009/056780 patent/WO2010053622A1/en active Application Filing
- 2009-09-14 EP EP09792495.5A patent/EP2364472B1/en active Active
- 2009-09-14 CN CN200980142664.9A patent/CN102197364B/zh active Active
-
2012
- 2012-02-28 HK HK12102025.1A patent/HK1161394A1/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1486466A (zh) * | 2000-11-14 | 2004-03-31 | 西姆德斯克技术公司 | 远程打印 |
CN1811694A (zh) * | 2005-01-26 | 2006-08-02 | 三星电子株式会社 | 按附加打印输出的请求调整复制份数的网络打印机及系统 |
CN101121359A (zh) * | 2007-09-14 | 2008-02-13 | 山东神思电子技术有限公司 | 二代身份证双面信息留存文档的制作方法 |
Also Published As
Publication number | Publication date |
---|---|
US8149431B2 (en) | 2012-04-03 |
EP2364472B1 (en) | 2014-05-07 |
US20100118330A1 (en) | 2010-05-13 |
EP2364472A1 (en) | 2011-09-14 |
WO2010053622A1 (en) | 2010-05-14 |
HK1161394A1 (zh) | 2012-08-24 |
CN102197364A (zh) | 2011-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102197364B (zh) | 用于在网络计算环境中管理打印机设置的系统和方法 | |
AU2018201052B2 (en) | System for optimising distribution of processing an automated process | |
CN102202049B (zh) | 用于多虚拟机设备的网络策略实现 | |
CN100432980C (zh) | 网络设备的自动化批量配置 | |
CN102037710B (zh) | 用于远程处理多媒体插件调用的方法和系统 | |
CN102971722B (zh) | 用于创建和传送加密的虚拟盘的系统和方法 | |
US5842043A (en) | System for data access management of a network of dedicated processing, data, and interface machines combination of which performing functions of a general-purpose computer | |
CN104067231A (zh) | 使用虚拟交换代理控制网络接口 | |
CN100547545C (zh) | 用于网络边缘计算的应用拆分的方法和系统 | |
CN103916560A (zh) | 支持近场通信功能的图像形成装置和设置图像作业的方法 | |
JP4872631B2 (ja) | 印刷システム、印刷ジョブ制御装置および印刷ジョブ制御プログラム | |
CN107707622A (zh) | 一种访问桌面云虚拟机的方法、装置及桌面云控制器 | |
JP4755386B2 (ja) | 価格ラベルシステムおよび通信方法 | |
CN103733199A (zh) | 用于设计管理框架的移动app | |
CN107222575A (zh) | 实现工控设备间opc通信的方法 | |
EP3364299A1 (en) | System for optimising distribution of processing an automated process | |
EP1061445A2 (en) | Web-based enterprise management with transport neutral client interface | |
CN102378964A (zh) | 创建虚拟进程的进程内中介 | |
CN104881760A (zh) | Erp系统间的数据通讯方法、装置以及系统 | |
US11765242B2 (en) | File exchange system, communication support device, file exchange support device, file exchange method, and computer-readable non-transitory storage medium with program stored therein | |
JP2023069435A (ja) | ファイル交換システム、通信支援装置、ファイル交換方法、及び、プログラム | |
JP2023069438A (ja) | ファイル交換システム、ファイル交換支援装置、ファイル交換方法、及び、プログラム | |
JP6357256B1 (ja) | 中継装置及びプログラム | |
CN116962131A (zh) | 云计算资源变更的方法、装置、电子设备及介质 | |
JP2023069421A (ja) | アダプタ装置、ファイル交換システム、ファイル交換方法、及び、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |