CN110716700B - 打印服务器、控制方法和存储介质 - Google Patents
打印服务器、控制方法和存储介质 Download PDFInfo
- Publication number
- CN110716700B CN110716700B CN201910602143.2A CN201910602143A CN110716700B CN 110716700 B CN110716700 B CN 110716700B CN 201910602143 A CN201910602143 A CN 201910602143A CN 110716700 B CN110716700 B CN 110716700B
- Authority
- CN
- China
- Prior art keywords
- document
- server
- document information
- acquired
- 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
Images
Classifications
-
- 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/1209—Improving or facilitating administration, e.g. print management resulting in adapted or bridged legacy communication protocols, e.g. emulation, protocol extension
-
- 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/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
- G06F3/1254—Automatic configuration, e.g. by driver
-
- 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/1204—Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
-
- 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/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1212—Improving printing performance achieving reduced delay between job submission and print start
-
- 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
-
- 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/1236—Connection management
-
- 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/1237—Print job management
- G06F3/1267—Job repository, e.g. non-scheduled jobs, delay printing
-
- 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
-
- 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/1288—Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
本发明提供一种打印服务器、控制方法和存储介质。所述打印服务器包括:确定单元,其被构造为接收来自客户端的打印请求,从所述打印请求识别文档标识,并且确定是否获取了包括所述文档标识的文档信息;以及获取单元,其被构造响应于由所述确定单元进行的未获取所述文档信息的确定,通过向所述文档服务器发出查询来获取所述文档信息。
Description
技术领域
本发明涉及用于通过异步通信进行通信的打印服务器、控制方法和存储介质。
背景技术
近来,服务器用于在因特网上提供云服务的业务被广泛传播。这种业务包括以文件格式存储数据的存储服务以及提供数据库功能的数据库服务。另外,在打印系统中,需要在因特网上提供打印服务的打印服务器。
为了提高可重用性、可维护性和灵活性,组合有小型云服务的微服务架构正变为主流。在微服务架构中,小型服务的高度独立性(疏耦合(loose coupling))是一个重要的元素,并且应用发布/订阅消息传递模型(pub/sub messaging model)以实现高度独立性。
在发布/订阅消息传递模型中,发送消息的发布者和接收消息的订阅者通过在发布者和订阅者之间存在的主题(即,命名逻辑信道)交换信息。发布者发送信息而无需考虑接收侧,并且订阅者仅接收订阅者进行处理所需的信息的主题。因而,发布者和订阅者不需要知道彼此的服务。因此,能够降低发布者和订阅者之间的耦合度,进而能够实现异步通信。
日本特开2008-27344号公报讨论了一种方法,在该方法中,多个服务进行异步通信并相互协作,同时抑制系统处理效率的劣化。
发明内容
根据本发明的一方面,提供了一种打印服务器,所述打印服务器经由中介服务异步地获取从文档服务器发送的文档信息,基于所述文档信息获取文档数据,基于所述文档数据创建打印数据,并且将所述打印数据发送至打印机,所述打印服务器包括:确定单元,其被构造为接收来自客户端的打印请求,从所述打印请求识别文档标识,并且确定是否获取了包括所述文档ID的文档信息;以及获取单元,其被构造为用于响应于由所述确定单元进行的未获取所述文档信息的确定,通过向所述文档服务器发出查询来获取所述文档信息。
通过以下参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。
附图说明
图1是示出打印系统的网络构造的框图。
图2是打印服务器和打印机的硬件框图。
图3是打印系统的模块框图。
图4A是文档服务器的软件框图。图4B是打印服务器的软件框图。
图5示出消息发送处理的示例。
图6示出要由打印服务器和文档服务器管理的数据。
图7A是示出在根据第一示例性实施例的文档服务器接收来自外部装置的输入请求的情况下要进行的处理的流程图。图7B是示出在根据第一示例性实施例的打印服务器接收来自外部装置的打印请求的情况下要进行的处理的流程图。
图8A是示出在根据第二示例性实施例的文档服务器接收来自外部装置的输入请求的情况下要进行的处理的流程图。图8B是示出在当根据第二示例性实施例的打印服务器接收打印请求时未指定文档ID的情况下要进行的处理的流程图。
图9是示出在考虑当打印服务器接收来自外部装置的打印请求时未打印文档列表可能延迟的可能性的情况下要进行的处理的流程图。
具体实施方式
然而,在云服务中通过异步通信交换信息的情况下,可能发生诸如在因特网上的通信环境中延迟等的问题。特别是,在使用由第三方提供的服务发送或接收消息的情况下,接收侧对消息的接收也可能因服务中的故障等而延迟。
在用于管理文档的文档服务和用于管理打印的打印服务的情况下,打印服务通过异步通信确认已输入了文档。如果发生这种延迟,则可能在打印服务侧尚未接收到指示已输入了文档的信息的状态下接收到打印请求,使得不能进行文档打印。此外,在采用同步两种服务的构造的情况下,如果每次做出打印请求时都向文档服务发出查询,则调用服务的成本会增加,这会对打印处理的进行有很大影响。
本发明旨在提供一种如下功能:即使在文档服务和打印服务相互异步协作的系统中在异步通信中发生延迟,也能够打印输入文档。
文档服务和打印服务相互异步协作的系统可以提供如下功能:即使在异步通信中发生延迟也能够打印输入文档。
下面将参照附图描述本发明的示例性实施例。
<网络构造>
图1示出了根据本发明的示例性实施例的打印系统的网络构造。在图1中,假定多个打印机105和多个客户终端108经由本地网106连接。各个打印机105和各个客户终端108可以经由本地网106访问因特网107,并且还可以访问打印服务器101、文档服务器102、存储服务器103和认证服务器104中的各个服务器。
打印机105和客户终端108均经由有线或无线局域网(LAN)连接到网络。网络106和107的示例包括LAN、广域网(WAN)、电话线路、专用数字线路、异步传输模式(ATM)线路、帧中继线路、有线电视线路以及数据广播无线线路。网络106是所谓的通信网络并可以通过上述网络的组合来实现。任何网络可以用作网络106和107,只要该网络可以用于发送和接收数据即可。用于建立从客户终端108到打印服务器101和打印机105中的各个的通信的功能可以与用于建立从打印机105到打印服务器101、文档服务器102、存储服务器103和认证服务器104中的各个服务器的通信的功能不同。
例如,客户终端108是台式电脑、笔记本电脑、移动式电脑、个人数字助理(PDA)或具有内置程序可执行环境的移动电话。客户终端108具有内置程序可执行环境,诸如web浏览器(即,因特网浏览器、万维网(WWW)浏览器或用于万维网的浏览器)。
连同打印请求一起,打印服务器101从客户终端108的web浏览器接收用于识别预先输入到文档服务器102的文档的信息和用于识别输出目的地打印机105的信息。然后,打印服务器101向客户终端108的web浏览器返回包括执行打印指令的命令的响应。客户终端108的web浏览器向指定的打印机105发出接收到的用于执行打印指令的命令。在从客户终端108的web浏览器接收到打印命令时,打印机105从存储服务器103获取打印数据,并且执行打印。在打印机105使用集成电路(IC)卡进行拉式打印的情况下,打印服务器101可以接收来自打印机105的打印请求。
虽然第一示例性实施例针对各个服务器例示了包括一个装置的构造,但是可以配设多个装置。此外,打印服务器101、文档服务器102、存储服务器103和认证服务器104可以被构造为使得通过虚拟化使多个服务器用作单个服务器。
<打印服务器、文档服务器和打印机的硬件构造>
图2示出了打印服务器101、文档服务器102、存储服务器103和认证服务器104中的各个服务器的硬件构造,以及打印机105的硬件构造。除非另有说明,否则本发明可适用于单个装置或包括多个装置的系统,只要能够执行根据本发明的方面的功能即可。除非另有说明,否则本发明可适用于经由诸如LAN和WAN等的网络连接并进行处理的系统,只要能够执行根据本发明的方面的功能即可。假定组件通过系统总线219连接来描述第一示例性实施例。
中央处理单元(CPU)220是用于信息处理装置的控制设备,并且执行打印服务器101的应用程序、操作系统(OS)等。应用程序、OS等存储在存储设备224中。CPU 220进行控制以将执行程序所需的信息、文件等临时存储至随机存取存储器(RAM)222。此外,CPU 220执行例如打印服务器101中的应用程序中的用于将数据转换为打印数据的转换处理。
只读存储器(ROM)221是存储单元,并且存储诸如基本输入/输出(I/O)程序等的程序、在数据转换为打印数据的转换期间所使用的字体数据以及打印处理和数据转换处理所需的各种数据。RAM 222是临时存储单元,并且用作CPU 220的主存储器、工作区等。存储设备224是外部存储单元的示例。存储设备224用作大容量存储器,并且存储应用程序、OS等。经由网络控制器223与外部装置交换数据。
打印机105的硬件组件均连接到系统总线230。CPU 231控制整个装置,并且还以总体的方式控制对连接到系统总线230的各种设备的访问。CPU 231的控制处理是基于在ROM232中存储的控制程序、在经由盘控制器(DKC)235连接的外部存储器236中存储的控制程序和资源数据(即,资源信息)等的。RAM 233用作CPU 231的主存储器、工作区等,并且RAM 233被构造为使得可以使用连接到扩展端口(未示出)的可选RAM来扩展存储器容量。
外部存储单元240用作大容量存储器。操作面板(即,操作单元)239显示画面或接收通过画面来自用户的操作指令。另外,按钮和诸如液晶面板等的显示单元被布设为进行诸如打印机105的操作模式的设置、打印机105的操作状态的显示以及要打印的内容数据的指定等的操作。经由网络控制器234与外部装置交换数据。图2所示的打印引擎238使用已知的打印技术。优选的执行系统的示例包括采用电子照相方法(即,激光束方法)、喷墨方法以及升华(热传递)方法的打印引擎。光栅控制器237是将以页面描述语言(PDL)描述的打印数据转换为图像数据的控制器。设备接口(I/F)241是用于连接到外部装置的连接I/F,该外部设备可由通用串行总线(USB)等连接。
<系统构造>
图3是示出了根据本发明的示例性实施例的打印系统的框图。现在将参照打印系统的框图描述各个服务器、各个打印机和各个客户终端的操作。以CPU执行存储在各个装置的存储器中的程序的方式实现这些操作。
文档服务器102创建表示由其他服务或其他程序输入的文档数据的输入目的地的统一资源定位符(URL),并且向其他服务或其他程序返回URL。在本示例性实施例中,URL是表示存储服务器103中文档数据的上传目的地的URL。其他服务或其他程序将文档数据上传至存储服务器103中的URL。在接收到表示已从其他服务或其他程序上传了文档数据的信息时,文档服务器102将关于输入文档数据的打印文档信息620存储至数据库301。
虽然图3示出了用于打印服务器101和文档服务器102中的各个服务器的数据库301,但本示例性实施例是假定使用逻辑分区的数据库作为数据库301的情况。当然,也可以使用物理独立的数据库。此时,文档服务器102发送打印文档信息620作为消息。下面描述发送消息的方法。打印服务器101通过命名逻辑信道接收消息。在接收到来自web浏览器302的打印请求时,打印服务器101从存储服务器103获取与连同打印请求一起被接收的文档标识(ID)621相关联的文档数据,并且将获取的文档数据转换为打印数据。打印服务器101创建打印数据,创建存储服务器103上的下载URL,并且将打印数据上传至存储服务器103。
认证服务器104保持用于访问打印服务器101的认证信息。信息包括用户名、密码、认证令牌(token)和权限令牌。打印服务器101将在来自客户终端108的web浏览器302的请求中包括的认证令牌送到认证服务器104,并且验证认证令牌的有效性。在这种情况下,如果来自web浏览器302的请求未包括任何认证令牌,则打印服务器101将请求重定向到认证服务器104。
认证服务器104向web浏览器302返回登录画面。认证服务器104通过对在来自web浏览器302上显示的登录画面的登录请求中包括的用户名和密码与在认证服务器104中保持的用户名和密码比较来验证有效性。如果验证是成功的,则认证服务器104发出与用户相关联的认证令牌,并且连同认证令牌一起地向web浏览器302发出用于重定向到打印服务器101的响应。
web浏览器302向打印服务器101发出包括认证令牌的请求,接收来自打印服务器101的响应中的web画面,并显示web画面。认证服务器104发出使打印机105配设的拉式打印应用303访问打印服务器101所需的权限令牌。此外,当拉式打印应用303访问打印服务器101时,认证服务器104验证请求中包括的权限令牌的有效性。
拉式打印应用303向打印服务器101发出包括权限令牌的请求,并且获取下载URL。拉式打印应用303根据下载URL从存储服务器103获取打印数据,向打印装置控制单元304发出打印数据,并且进行打印。
<文档服务器消息发送>
将参照图5描述要由文档服务器102进行的消息发送处理。在本示例性实施例中,文档服务器102和打印服务器101使用应用程序接口(API)交换信息,并且使用使用了命名逻辑信道的异步消息来交换信息。
打印服务器101和文档服务器102可以通过调用对应服务器的API来使用由打印服务器101和文档服务器102中的对应服务器所释放的功能。然而,由于API的调用将负荷施加于已调用API的服务器,所以在除了下述的恢复处理以外的处理中,以尽可能避免调用API的方式构造第一示例性实施例。
文档服务器102为除文档服务器102所包括的服务以外的服务准备命名逻辑信道。在下文中,将命名逻辑信道称作主题。第一示例性实施例假定是在文档服务器102被配置为云服务时也创建主题501的情况。可选地,文档服务器102可以根据需要动态创建主题。第一示例性实施例还假定是在使用由第三方提供的云服务创建主题的情况。主题在云服务上有唯一的名称,并且其他服务(即,在本示例性实施例中的打印服务器101)使用该名称登记订阅。换言之,主题是中介服务并具有实现打印服务器101和文档服务器102之间异步通信所需的构造。
当文档服务器102向主题501发送作为消息的打印文档信息620时,向已登记了针对主题501的订阅的打印服务器101发出通知。打印服务器101将与接收到的消息有关的信息保持在数据库301中。因而,能够实现文档服务器102和打印服务器101之间的异步消息发送/接收处理。换言之,打印服务器101和文档服务器102通过主题501的功能相互间接通信,而不是相互直接通信,进而能够交换消息,而无需考虑各个装置的状态。
<主题通知>
将描述主题通知处理。第一示例性实施例假定是使用软件容器(softwarecontainer)发出通知的情况。在软件容器中,OS环境(仅需要的OS功能)被实现为针对各个孤立空间的处理。图5示意性示出了软件容器503。软件容器503均作为处理从物理机上的虚拟机(VM)的OS被启动,并且执行预先登记的代码。与启动整个OS的传统VM不同,在本示例性实施例中,仅需要在处理中启动主机OS上的处理,以便能够实现高速启动。然而,在使用软件容器的情况下,首先加载代码,这会导致成本增加,如果软件容器因扩展、软件容器自身的故障等而发生软件容器的重建,则可能会延迟执行。
在第一示例性实施例中,当打印服务器101登记针对主题501的订阅时,登记打印服务器101的软件容器502。当文档服务器102向主题501发送消息时,从主题501中调用软件容器502。当调用软件容器502时,软件容器502执行预定代码以确认接收到的消息,并且向打印服务器101发出接收到的消息的内容。假定主题501是要在VM上操作的OS上运行的软件函数。假定主题501和软件容器502分别在不同于文档服务器102和打印服务器101的装置中实现来描述第一示例性实施例。然而,主题501和软件容器502可以在同一装置中实现。
<文档服务器的软件构造>
图4A是示出了根据本发明的示例性实施例的文档服务器102的软件框图。文档服务器102的软件模块存储在图2所示的存储设备224中,并如上所述地加载到要由CPU 220执行的RAM 222中。将描述在文档服务器102接收外部请求的状态下、在文档服务器102中存储的各个软件模块的操作。
文档服务器102包括接收外部请求的web服务器401和管理文档信息的文档控制服务器402。web服务器401和文档控制服务器402是独立的程序,并且可以布设在独立的信息处理装置中。这些程序分别布设在各自连接到网络的信息处理装置中,并且这些程序相互通信。各个服务器被配置为具有单个构造或冗余构造(redundant configuration)。因此,可以使用多个信息处理装置构造各个服务器。这种构造也应用于下面要描述的打印服务器101的各个软件构造。
web服务器401接收来自其他服务、其他程序、打印机105或web浏览器302的文档输入请求。当请求接收单元403接收来自客户端的请求时,认证服务器查询单元404向认证服务器104发出令牌有效性验证请求。当确认了令牌的有效性时,请求接收单元403向文档控制服务器402发出来自客户端的请求。
当文档控制服务器402接收到文档数据输入请求时,文档控制服务器402使文档管理单元405创建文档信息600,并且将创建的文档信息600存储至数据库301。图6示出了包括文档信息600的各条信息。文档控制服务器402使消息发送单元406向上述主题501发送文档信息600。此时,打印服务器101接收经由消息接收单元417的消息,并保持该消息作为下面要描述的打印文档信息620。
文档信息600包括用于识别文档数据的文档ID 601、文档名称602、与认证令牌相关联的用户名603、用于将文档上传至存储服务器103的文档URL 604以及状态605。文档URL604包括文档ID 601。状态605包括诸如“接收中”、“未打印”、“待机中”、“等待打印”、“打印中”、“正常结束”、“错误结束”、“未知结束”等的状态。
文档控制服务器402将文档信息600的状态605改变为“接收中”并向web服务器401返回文档URL 604。然后,web服务器401向已发出请求的其他服务或其他程序返回文档URL604。其他服务或其他程序在将文档数据上传至存储服务器103完成时向文档服务器102发出上传完成通知。当文档服务器102在web服务器401上接收到该通知时,文档控制服务器402将文档信息600的状态605改变为“待机中”。
<打印服务器的软件构造>
图4B是示出了根据本发明的示例性实施例的打印服务器101的软件框图。打印服务器101的软件模块存储在图2所示的存储设备224中,并且由上述CPU 220将软件模块加载到RAM 222并执行软件模块。
打印服务器101包括接收外部请求的web服务器411、控制打印作业和打印处理的打印控制服务器412以及将文档数据转换为打印数据的转换服务器413。
web服务器411从其他服务器、其他程序、打印机105或web浏览器302接收打印请求和打印数据获取请求。当请求接收单元414接收来自作为客户端的各个装置的各个请求时,认证服务器查询单元415向认证服务器104发出令牌有效性验证请求。当确认令牌的有效性时,请求接收单元414向打印控制服务器412发出来自客户端的请求。
当打印控制服务器412接收到打印请求时,打印作业管理单元416响应于打印请求创建作业信息610,并且将创建的作业信息610存储至数据库301。打印请求包括用于打印的文档ID 612。与打印文档信息620中包括的文档ID 621相同,文档ID 612是已通知的作为来自文档服务器102的消息且预先被保持的信息。打印文档信息620还包括文档URL 622以及当接收文档输入时的接收日期/时间623。
由打印作业管理单元416创建的作业信息610包括用于识别打印作业的作业ID611、与认证令牌相关联的用户名613、打印接收日期/时间614以及转换状态615。打印作业管理单元416指令转换服务器413将文档数据转换为打印数据。
在接收到来自打印控制服务器412的打印数据转换指令时,转换服务器413的打印数据管理单元418根据文档URL 622从存储服务器103下载文档数据。然后,数据转换单元419将文档数据转换为打印数据并将打印数据上传至存储服务器103。
<在消息延迟时要进行的恢复处理>
除上面描述以外,将参照图7所示的流程图描述当来自文档服务器102的输入通知消息延迟时打印服务器101的恢复方法。上面参照图4A至图4B描述了处理的一部分,因而省略了其的描述。
图7A是示出了在文档服务器102接收到来自外部装置的输入请求的情况下要进行的处理的流程图。在步骤S701中,当文档服务器102接收到来自外部装置的文档输入请求时,文档服务器102使文档管理单元405创建文档信息600并将文档信息600存储至数据库301。在步骤S702中,消息发送单元406向上述主题501发送文档信息600。在步骤S704中,打印服务器101的消息接收单元417从文档服务器102接收文档信息600。在步骤S705中,打印作业管理单元416基于文档信息600创建打印文档信息620并将打印文档信息620存储至数据库301。打印文档信息620不是文档信息600自身,而仅是从文档信息600获取的打印服务器101进行打印处理所需的信息。
在步骤S703中,文档服务器102等待直至从外部装置接收到文档上传通知为止,并且当接收到文档上传通知时完成文档输入处理。虽然在流程图中未示出所有处理,但是在第一示例性实施例中,消息发送单元406在每次文档信息600的状态605改变时向主题发送文档信息600。
图7B是示出了在打印服务器101接收到来自外部装置的打印请求的情况下要进行的处理的流程图。在步骤S706中,当打印控制服务器412接收到打印请求时,打印作业管理单元416响应于打印请求来创建作业信息610并将作业信息610存储至数据库301。
在步骤S707中,打印作业管理单元416确认在打印文档信息620中是否存在打印请求中包括的文档ID 612。在步骤S708中,如果在打印文档信息620中存在文档ID 612(在步骤S708中的“是”),则处理前进到步骤S710。在步骤S710中,打印作业管理单元416进行打印处理。如果在打印文档信息620中不存在文档ID 612(在步骤S708中的“否”),则处理前进到步骤S709。在步骤S709中,打印作业管理单元416获取文档信息。上面描述了引用打印文档信息620的文档ID 612的构造。然而,如果存储接收到的文档信息600,则可以引用文档信息600。在任何情况下,在这种情况下要做的确定是,是否已获得包括在打印请求中指定的文档ID 612在内的文档信息600的确定。
在步骤S709中,打印作业管理单元416调用文档服务器102的API,获取与文档ID612相对应的文档信息600,并将文档信息600作为打印文档信息620保持。在步骤S710中,打印作业管理单元416使用打印文档信息620以指令转换服务器413将文档数据转换为打印数据。
通过上述处理,即使表示来自其他服务的文档输入的异步消息通知延迟,接收侧也会确定输入延迟,只有在这种情况下,才能获得文档信息。因而,即使在异步通信中发生延迟,也可以防止其他服务的API的调用,以便能够连续地进行打印处理。
<消息延迟时的恢复处理(如果未指定文档ID)>
在第一示例性实施例中,描述了当来自文档服务器102的输入通知消息延迟时要由打印服务器101进行的处理。在根据第一示例性实施例的方法中,当在打印请求中指定了文档ID 612时,可以检测到通知中的延迟并可以进行恢复。然而,在未指定文档ID 612的情况下,无法进行恢复。
假定以下的使用情况:其中,当打印机105使用IC卡进行拉式打印时,在用户没有进行文档的指定的情况下,所有未打印文档都被一次性打印出来。在这种情况下,虽然只使用来自用户的信息对打印请求进行处理是必要的,但是仅打印服务器101难以确定是否接收到了所有输入通知。例如,如果向文档服务器102输入三个文档,并且只向打印服务器101发出与两个文档相对应的消息通知,则打印服务器101只打印这两个文档。因此,用户无法获得期望的打印结果。
第二示例性实施例示出了一种方法,在该方法中,打印服务器101检测未指定文档ID 612的打印请求中的消息延迟。除非另有说明,附图中的附图标记和名称与第一示例性实施例中的附图标记和名称相同。
<未打印文档列表的发送>
图8A是示出了在文档服务器102接收到来自外部装置的输入请求的情况下要进行的处理的流程图。步骤S701到S704与第一示例性实施例中的步骤相同,因此省略了对其的描述。在步骤S801中,文档管理单元405基于文档信息600的用户名603创建未打印文档列表。如果未打印文档列表已经存在,则将目标文档ID 612添加到列表中。虽然未示出,但是未打印文档列表是仅包括与文档ID 612有关的信息的列表。在步骤S802中,消息发送单元406向上述主题发送未打印文档列表。在步骤S803中,打印服务器101的消息接收单元417将接收到的未打印文档列表存储至数据库301。
图8B是示出了在当打印服务器101接收到打印请求时、在打印请求中未指定文档ID 612的情况下要进行的处理的流程图。步骤S706到S710的处理与第一示例性实施例的处理相同,因此省略了对其的描述。
在步骤S804中,打印作业管理单元416确认在打印请求中是否未指定文档ID 612。在步骤S804中,如果在打印请求中指定了文档ID 612(在步骤S804中的“否”),则处理前进到步骤S707。如果未指定文档ID 612(在步骤S804中的“是”),则处理前进到步骤S805。
在步骤S805中,打印作业管理单元416基于已请求打印的用户的用户名613识别未打印文档列表。在步骤S806中,打印作业管理单元416确认针对未打印文档列表中描述的所有文档ID 612是否存在由文档ID 612识别的打印文档信息620。作为比较的结果,如果未打印文档列表中描述了文档ID 612但不存在打印文档信息620,则确定不存在文档信息(在步骤S708中的“否”),并且处理前进到步骤S709以获取文档信息。之后的步骤与第一示例性实施例中的步骤相同。
通过上述处理,即使不能识别要打印的文档,也可以检测在异步通信中是否发生了延迟,因而可以输出由用户期望的打印产品。
上述的第二示例性实施例示出了一种方法,在该方法中,即使接收到未指定文档ID 612的打印请求,打印服务器101也会检测消息的延迟。然而,由于根据第二示例性实施例的未打印文档列表也是异步消息,所以假定消息依赖于网络的状态等而延迟。下面将描述即使未打印文档列表被延迟也会检测通知的延迟的方法。除非另有说明,附图中的附图标记和名称与第一示例性实施例和第二示例性实施例中的附图标记和名称相同。
<消息延迟时的恢复处理(未打印文档列表被延迟)>
图9是示出了在考虑当打印服务器101接收到来自外部装置的打印请求时未打印文档列表可能延迟的可能性的情况下,要进行的处理的流程图。步骤S706到S710以及S804到S806的处理与第一示例性实施例和第二示例性实施例的处理相同,因而省略了对其的描述。
在步骤S901中,打印作业管理单元416确认是否存在已请求打印的用户的未打印文档列表。如果不存在未打印文档列表(在步骤S901中的“否”),则处理前进到步骤S902。在步骤S902中,打印作业管理单元416调用文档服务器102的API,并且获取未打印文档列表。
如果存在未打印文档列表(在步骤S901中的“是”),则处理前进到步骤S805。与根据第二示例性实施例的步骤S805相同,打印作业管理单元416基于已请求打印的用户的用户名613识别未打印文档列表。在步骤S904中,打印作业管理单元416确认消息接收单元417是否接收到新消息。在步骤S905中,当通知新文档时,即,当存在新文档信息时(在步骤S905中的“是”),处理前进到步骤S906。
在步骤S906中,打印作业管理单元416比较打印接收日期/时间614与打印文档信息620的接收日期/时间623。接收日期/时间623也是当在新文档通知中接收文档信息时的接收日期/时间。然而,可以使用当接收文档信息时的接收日期/时间,并且打印文档信息620的接收日期/时间623也是当实质上接收文档信息时的接收日期/时间。在步骤S907中,如果接收日期/时间623晚于打印接收日期/时间614,则打印作业管理单元416确定在接收到打印请求之后接收文档。
如果接收日期/时间623早于打印接收日期/时间614,则打印作业管理单元416确定在接收打印请求之前输入文档。因此,由于存在未打印文档列表的通知被延迟的可能性,所以从文档服务器102中获取最新的未打印文档列表。
通过上述的处理,即使各个用户的未打印文档列表的异步消息延迟,也可以检测延迟,并且用户还可以在由用户做出的打印请求中设置的时刻输出打印结果。
其他实施例
另外,可以通过读出并执行记录在存储介质(也可更完整地称为“非临时性计算机可读存储介质”)上的计算机可执行指令(例如,一个或更多个程序)以执行上述实施例中的一个或更多个的功能、并且/或者包括用于执行上述实施例中的一个或更多个的功能的一个或更多个电路(例如,专用集成电路(ASIC))的系统或装置的计算机,来实现本发明的实施例,并且,可以利用通过由所述系统或装置的所述计算机例如读出并执行来自所述存储介质的所述计算机可执行指令以执行上述实施例中的一个或更多个的功能、并且/或者控制所述一个或更多个电路执行上述实施例中的一个或更多个的功能的方法,来实现本发明的实施例。所述计算机可以包括一个或更多个处理器(例如,中央处理单元(CPU),微处理单元(MPU)),并且可以包括分开的计算机或分开的处理器的网络,以读出并执行所述计算机可执行指令。所述计算机可执行指令可以例如从网络或所述存储介质被提供给计算机。所述存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储器、光盘(诸如压缩光盘(CD)、数字通用光盘(DVD)或蓝光光盘(BD)TM)、闪存设备以及存储卡等中的一个或更多个。
其它实施例
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明并不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有这些变型例以及等同的结构和功能。
Claims (10)
1.一种打印服务器,所述打印服务器经由中介服务异步地获取从文档服务器发送的文档信息,基于所述文档信息获取文档数据,基于所述文档数据创建打印数据,并且将所述打印数据发送至打印机,所述打印服务器包括:
获取部,其用于经由所述中介服务异步地获取从所述文档服务器发送的文档信息;以及
确定部,其用于接收来自客户端的打印请求,从所述打印请求识别文档标识,并且确定是否经由所述中介服务从所述文档服务器已获取了包括所述文档标识的文档信息,
其中,所述获取部响应于由所述确定部进行的经由所述中介服务从所述文档服务器尚未获取所述文档信息的确定,通过调用与所述文档服务器相对应的API获取来自所述文档服务器的所述文档信息。
2.根据权利要求1所述的打印服务器,其中,所述打印服务器向所述中介服务登记作为订阅的软件容器,并且从所述中介服务调用的所述软件容器获取所述文档信息。
3.根据权利要求2所述的打印服务器,其中,所述软件容器是要在物理机上的虚拟机的操作系统上启动的处理。
4.根据权利要求1至3中任一项所述的打印服务器,其中,由所述确定部进行的确定是在基于获取的文档信息而创建的打印文档信息中是否包括文档标识的确定。
5.根据权利要求1所述的打印服务器,其中,除了所述文档信息之外,经由所述中介服务还异步地接收未打印文档列表,并且
其中,所述获取部响应于由所述确定部进行的未获取与所述未打印文档列表中描述的所述文档标识相对应的所述文档信息的确定,向所述文档服务器发出查询,并且获取非异步获取的文档信息。
6.根据权利要求5所述的打印服务器,其中,在从所述客户端接收到不包括文档标识的打印请求的情况下,获取所述未打印文档列表。
7.根据权利要求5所述的打印服务器,其中,所述获取部响应于由所述确定部进行的未获取未打印文档列表的确定,向所述文档服务器发出查询,并且获取非异步获取的未打印文档列表。
8.根据权利要求7所述的打印服务器,所述打印服务器还包括比较部,所述比较部用于比较所述打印请求的接收日期/时间与新获取的文档信息的接收日期/时间,
其中,在所述新获取的文档信息的接收日期/时间早于所述打印请求的接收日期/时间的情况下,所述获取部向所述文档服务器发出查询并获取最新的未打印文档列表。
9.一种打印服务器的控制方法,所述打印服务器经由中介服务异步地获取从文档服务器发送的文档信息,基于所述文档信息获取文档数据,基于所述文档数据创建打印数据,并且将所述打印数据发送至打印机,所述控制方法包括:
获取步骤,用于经由所述中介服务异步地获取从所述文档服务器发送的文档信息;以及
确定步骤,用于接收来自客户端的打印请求,从所述打印请求识别文档标识,并且确定是否经由所述中介服务从所述文档服务器已获取了包括所述文档标识的文档信息,
其中,在获取步骤中,响应于所述确定步骤中的经由所述中介服务从所述文档服务器尚未获取所述文档信息的确定,通过调用与所述文档服务器相对应的API获取来自所述文档服务器的所述文档信息。
10.一种存储介质,其存储用于打印服务器的程序,所述打印服务器经由中介服务异步地获取从文档服务器发送的文档信息,基于所述文档信息获取文档数据,基于所述文档数据创建打印数据,并且将所述打印数据发送至打印机,所述程序使所述打印服务器执行处理,所述处理包括:
获取步骤,用于经由所述中介服务异步地获取从所述文档服务器发送的文档信息;以及
确定步骤,用于接收来自客户端的打印请求,从所述打印请求识别文档标识,并且确定是否经由所述中介服务从所述文档服务器已获取了包括所述文档标识的文档信息,
其中,在获取步骤中,响应于所述确定步骤中的经由所述中介服务从所述文档服务器尚未获取所述文档信息的确定,通过调用与所述文档服务器相对应的API获取来自所述文档服务器的所述文档信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-133162 | 2018-07-13 | ||
JP2018133162A JP7086767B2 (ja) | 2018-07-13 | 2018-07-13 | プリントサーバー、制御方法、およびそのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110716700A CN110716700A (zh) | 2020-01-21 |
CN110716700B true CN110716700B (zh) | 2023-06-27 |
Family
ID=66951777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910602143.2A Active CN110716700B (zh) | 2018-07-13 | 2019-07-05 | 打印服务器、控制方法和存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10846033B2 (zh) |
EP (1) | EP3594800B1 (zh) |
JP (1) | JP7086767B2 (zh) |
CN (1) | CN110716700B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7433940B2 (ja) * | 2020-01-31 | 2024-02-20 | キヤノン株式会社 | 情報処理装置、印刷装置および当該情報処理装置の制御方法、プログラム |
JP2021170173A (ja) * | 2020-04-14 | 2021-10-28 | キヤノン株式会社 | 画像形成装置、その制御方法、及びプログラム |
CN112130783B (zh) * | 2020-09-23 | 2024-03-01 | 上海汉图科技有限公司 | 文件打印方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101078976A (zh) * | 2006-04-24 | 2007-11-28 | 株式会社理光 | 打印系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08123699A (ja) * | 1994-10-26 | 1996-05-17 | Hitachi Ltd | 並行処理方法、並行処理システム及び並行処理用プログラムの変換ツール |
JP2005050045A (ja) * | 2003-07-31 | 2005-02-24 | Canon Inc | 帳票データ作成装置及び方法 |
JP2008027344A (ja) | 2006-07-25 | 2008-02-07 | Nec Access Technica Ltd | オブジェクト間の非同期メッセージ管理方式および非同期メッセージ管理方法 |
JP5538879B2 (ja) * | 2009-12-28 | 2014-07-02 | キヤノン株式会社 | 端末装置及び印刷システムとデータ変換方法 |
JP5586985B2 (ja) * | 2010-02-22 | 2014-09-10 | キヤノン株式会社 | ネットワークシステム、ネットワークシステムの制御方法、及び、プログラム |
JP5730082B2 (ja) * | 2011-03-08 | 2015-06-03 | キヤノン株式会社 | プリントサーバ、印刷システム、制御方法、およびプログラム。 |
JP5800579B2 (ja) * | 2011-05-31 | 2015-10-28 | キヤノン株式会社 | 情報処理装置、印刷制御方法及びコンピュータプログラム |
JP2014142735A (ja) * | 2013-01-23 | 2014-08-07 | Canon Inc | 印刷システム、方法、及びプログラム |
JP6272117B2 (ja) * | 2014-04-14 | 2018-01-31 | キヤノン株式会社 | 印刷システム、印刷サーバー及び印刷制御方法とプログラム |
JP5768922B1 (ja) * | 2014-09-24 | 2015-08-26 | 富士ゼロックス株式会社 | 文書処理システム、プログラム、及び文書処理装置 |
JP6531450B2 (ja) * | 2015-03-20 | 2019-06-19 | 富士ゼロックス株式会社 | 画像形成装置、画像処理システム及び方法 |
JP6537390B2 (ja) * | 2015-07-30 | 2019-07-03 | キヤノン株式会社 | 画像形成装置、制御方法、およびプログラム |
JP6817751B2 (ja) * | 2016-09-07 | 2021-01-20 | キヤノン株式会社 | 情報処理システムその制御方法、印刷システム及びプログラム |
JP6825303B2 (ja) * | 2016-10-27 | 2021-02-03 | 富士ゼロックス株式会社 | 情報処理装置およびプログラム |
-
2018
- 2018-07-13 JP JP2018133162A patent/JP7086767B2/ja active Active
-
2019
- 2019-06-12 EP EP19179641.6A patent/EP3594800B1/en active Active
- 2019-06-18 US US16/445,074 patent/US10846033B2/en active Active
- 2019-07-05 CN CN201910602143.2A patent/CN110716700B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101078976A (zh) * | 2006-04-24 | 2007-11-28 | 株式会社理光 | 打印系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3594800A1 (en) | 2020-01-15 |
US20200019359A1 (en) | 2020-01-16 |
JP7086767B2 (ja) | 2022-06-20 |
JP2020013195A (ja) | 2020-01-23 |
US10846033B2 (en) | 2020-11-24 |
EP3594800B1 (en) | 2022-08-31 |
CN110716700A (zh) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5639441B2 (ja) | 情報処理装置、印刷装置、印刷データ処理方法およびプログラム | |
US8937730B2 (en) | System, image forming apparatus, server, and control method thereof | |
CN110716700B (zh) | 打印服务器、控制方法和存储介质 | |
US10802779B2 (en) | Print processing system and method having print server converts document data into print data and to store the print data into plural storage servers for printing at image processing apparatus | |
US20110261401A1 (en) | Server apparatus, and terminal apparatus | |
US8379257B2 (en) | System operating under web environment and method of controlling the same | |
US20220317951A1 (en) | Server system | |
US9798504B2 (en) | Image forming apparatus, control method, and storage medium | |
WO2015151526A1 (en) | Printer registration apparatus, display apparatus, and method for printer registration | |
KR102378268B1 (ko) | 정보 처리 장치, 정보 처리 장치를 제어하는 방법 및 저장 매체 | |
US10291815B2 (en) | Information processing apparatus capable of communicating with any of one or more servers according to a first protocol and a second protocol, information processing system including the information processing apparatus, and a method performed by the information processing apparatus | |
US9405490B2 (en) | Electronic apparatus, management server, print system and method of controlling printing including determining a plurality of storages to store print data | |
US20240012590A1 (en) | System and method for providing printing service | |
US11755265B2 (en) | Printing system, server system for setting information to permit registration of printing apparatus based on a registration request from a user | |
CN113542425B (zh) | 信息处理装置及信息处理装置的控制方法 | |
JP2015022682A (ja) | 印刷システム、方法、及びプログラム | |
US11086579B2 (en) | Server system having print notification and control method thereof | |
JP6127586B2 (ja) | 情報処理システムおよび情報処理方法 | |
CN111756867A (zh) | 通信装置及其控制方法 | |
JP2021026707A (ja) | クラウドプリントサービスの提供方法及びサーバ | |
US20240078280A1 (en) | Web browsing system, communication terminal, and control method thereof | |
JP2020038517A (ja) | 情報処理装置およびプログラム | |
US20240045915A1 (en) | Web browsing system, communication terminal, image generation server | |
US20240111822A1 (en) | Web browsing system, communication terminal, and control method for communication terminal | |
JP6369318B2 (ja) | 情報処理システム、機器、情報処理方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |