网络服务器装置及其控制方法转让专利

申请号 : CN201410028273.7

文献号 : CN103973764B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 内川慎一

申请人 : 佳能株式会社

摘要 :

本发明涉及一种网络服务器装置及其控制方法。如果网络服务向网络服务器装置发送注册请求,且如果与从所述网络服务收到的URL相同的URL已经被注册在网络服务器装置的网络服务管理表中,那么在判定从所述网络服务收到的扩展判断条件与注册在所述网络服务管理表中的扩展判断条件不同之后,所述注册单元就在所述网络服务管理表中注册所述网络服务。

权利要求 :

1.一种网络服务器装置,包括:

接收单元,被配置为从网络服务接收注册请求,其中,所述注册请求包括:统一资源定位符URL与预定条件,以及经由网络接收HTTP请求,所述HTTP请求包括请求URL和用于通知网络服务关于该HTTP请求的信息的HTTP头;

注册单元,被配置为:在所收到的URL与在网络服务管理表中存储的URL匹配、且所收到的URL和所收到的预定条件的组合与在网络服务管理表中存储的URL和预定条件的组合不匹配的情况下,将所收到的URL与所收到的预定条件的组合以及用于调用与所述注册请求关联的所述网络服务的函数注册在所述网络服务管理表中;

其中,所述网络服务管理表能够通过针对与多个不同的网络服务相关联的URL存储多个不同的预定条件,来存储与多个不同的网络服务相关联的URL;

请求处理单元,被配置为:在请求URL和所收到的HTTP请求的HTTP头中的信息的组合与所述网络服务管理表中的URL和预定条件的组合匹配的情况下,利用与匹配的URL和预定条件的组合相关联的函数来调用用于处理所述HTTP请求的网络服务。

2.根据权利要求1所述的网络服务器装置,其中,在所收到的URL和所收到的预定条件的组合与在所述网络服务管理表中存储的URL和预定条件的组合相匹配的情况下,所述注册单元不注册已经发送了所述注册请求的所述网络服务,以及其中,在所述注册请求中包括的预定条件是在HTTP头中指定的信息。

3.根据权利要求1所述的网络服务器装置,其中,当所述注册单元注册已经发送了所述注册请求的所述网络服务时,所述注册单元确定所述网络服务的优先级,并根据所述优先级将所述网络服务注册在网络服务管理表中。

4.根据权利要求1所述的网络服务器装置,其中,当所述注册单元注册已经发送了所述注册请求的所述网络服务时,所述注册单元将对应于与所收到的在网络服务管理表中注册的URL相同的URL的已注册预定条件的数量与所收到的预定条件的数量进行比较,并且在所收到的预定条件的数量较大的情况下,所述注册单元就以较高的优先级在所述网络服务管理表中注册已经发送了所述注册请求的所述网络服务。

5.根据权利要求1所述的服务器装置,其中,为各个端口号存储网络服务管理表,以及,其中,所述注册单元基于所收到的URL识别所述网络服务的端口号,并为所识别的端口号在网络服务管理表中注册所述网络服务。

6.根据权利要求1所述的网络服务器装置,其中,已经发送了所述注册请求的所述网络服务是互联网打印协议IPP服务,以及,在来自所述IPP服务的所述注册请求中包括的预定条件是指示能够被网络服务接收的HTTP请求的方法是邮件POST的条件。

7.根据权利要求1所述的网络服务器装置,其中,所述网络服务器装置是打印机。

8.一种网络服务器装置的控制方法,所述方法包括:

从网络服务接收注册请求,其中,所述注册请求包括:URL与预定条件;

在所收到的URL与在网络服务管理表中存储的URL匹配、且所收到的URL和所收到的预定条件的组合与在网络服务管理表中存储的URL和预定条件的组合不匹配的情况下,将所收到的URL与所收到的预定条件的组合以及用于调用与所述注册请求关联的所述网络服务的函数注册在所述网络服务管理表中;

其中,所述网络服务管理表能够通过针对与多个不同的网络服务相关联的URL存储多个不同的预定条件,来存储与多个不同的网络服务相关联的URL;

经由网络接受HTTP请求,所述HTTP请求包括请求URL和用于通知网络服务关于该HTTP请求的信息的HTTP头;

在请求URL和所收到的HTTP请求的HTTP头中的信息的组合与所述网络服务管理表中的URL和预定条件的组合匹配的情况下,利用与匹配的URL和预定条件的组合相关联的函数来调用用于处理所述HTTP请求的网络服务。

9.根据权利要求8所述的方法,还包括:在所收到的URL和所收到的预定条件的组合与在所述网络服务管理表中存储的URL和预定条件的组合相匹配的情况下,不注册已经发送了所述注册请求的所述网络服务,以及其中,在所述注册请求中包括的预定条件是在HTTP头中指定的信息。

10.根据权利要求8所述的方法,还包括:当注册已经发送了所述注册请求的所述网络服务时,确定所述网络服务的优先级,并根据所述优先级将所述网络服务注册在网络服务管理表中。

11.根据权利要求8所述的方法,还包括:当注册已经发送了所述注册请求的所述网络服务时,将对应于与所收到的在网络服务管理表中注册的URL相同的URL的已注册预定条件的数量与所收到的预定条件的数量进行比较,并且在所收到的预定条件的数量较大的情况下,以较高的优先级在所述网络服务管理表中注册已经发送了所述注册请求的所述网络服务。

12.根据权利要求8所述的方法,其中,为各个端口号存储网络服务管理表,以及,其中,所述方法还包括:基于所收到的URL识别所述网络服务的端口号,并为所识别的端口号在网络服务管理表中注册所述网络服务。

13.根据权利要求8所述的方法,其中,已经发送了所述注册请求的所述网络服务是IPP服务,以及,在来自所述IPP服务的所述注册请求中包括的预定条件是指示能够被网络服务接收的HTTP请求的方法是邮件POST的条件。

14.根据权利要求8所述的方法,其中,所述网络服务器装置是打印机。

说明书 :

网络服务器装置及其控制方法

技术领域

[0001] 本发明涉及一种网络服务器装置及所述网络服务器装置的控制方法,所述网络服务器装置用于处理关于使用互联网打印协议(IPP,Internet printing protocol)服务的请求。

背景技术

[0002] 用于在一个网络服务器上运行多个网络服务的系统的数量在持续增加。例如,在打印机中,诸如设备设置及管理服务(下文称为“远程用户界面(UI))、IPP服务及设备上的网络服务(WSD,Web Services on Devices)等基于网络的打印服务都在一个网络服务器上运行。
[0003] 为了在一个网络服务器上运行多个网络服务,需要向各个网络服务分配唯一的统一资源定位符(URL,Uniform Resource Locator)。这是因为:当网络服务器接收到请求以使用在网络服务器上运行的网络服务时,所述网络服务器需要基于包含在请求数据的HTTP报头中的URL信息而确定应该将所述请求发送给哪个网络服务来执行。
[0004] 因此,需要将网络服务和URL一对一地关联起来。通常是要求系统被构造为向设备中所提供的各个网络服务分配唯一的URL。
[0005] 此外,日本专利申请特开2008-176789号公报描述了一种用于仅注册URL的应用路径以减少网络服务器上的负荷的技术。

发明内容

[0006] 根据本发明的一个方面,网络服务器装置包括:接收单元,被配置为从网络服务接收注册请求,其中,所述请求包括:用于识别所述网络服务的URL和扩展判断条件;注册单元,被配置为:如果与所收到的URL相同的URL已经被注册在网络服务管理表中,那么在判定所收到的扩展判断条件与注册在所述网络服务管理表中的扩展判断条件不同之后,所述注册单元就将所收到的URL与所收到的扩展判断条件间的对应以及用于调用所述网络服务的函数注册在所述网络服务管理表中,所述对应与所述函数彼此相关联作为已经发送所述注册请求的所述网络服务的信息;以及请求单元,被配置为:如果接收到请求,并且与包括在所述请求中的URL与扩展判断条件间的对应相同的对应被注册在所述网络服务管理表中的话,那么所述请求单元就利用与所述对应相关联而被注册的函数来调用用于处理所述请求的网络服务。
[0007] 根据下文对示例性实施方式的描述并结合附图,本发明的进一步特征将显而易见。

附图说明

[0008] 图1示出了根据本发明第一示例性实施方式的系统配置图。
[0009] 图2示出了网络服务器装置的硬件配置图。
[0010] 图3示出了网络服务器的内部模块的配置图。
[0011] 图4示出了网络服务的内部模块的配置图。
[0012] 图5A、5B、5C及5D均示出了网络服务管理表。
[0013] 图6的流程图示出了由网络服务注册单元执行的处理。
[0014] 图7的流程图示出了由网络服务注册处理单元执行的处理。
[0015] 图8的流程图示出了由网络服务判断单元执行的处理。
[0016] 图9A、9B及9C均示出了发送给网络服务器或各网络服务的请求数据。

具体实施方式

[0017] 存在这样的情况:即希望在一个网络服务器上运行的多个网络服务使用相同的URL。例如,规定了用于指定图像形成装置的路径“http://互联网协议(IP)地址/”和用于指定网络服务的包括一个IP地址的超文本传输协议(HTTP)路径以便简化用户的输入。如果用户知道该路径,那么用户就能利用路由路径(“/”)而使用该服务。这样,仅通过记住IP地址,用户就能使用网络服务,从而提供了较高的易用性。因此,一个URL被用于不同的网络服务,以便用户不用记住各个网络服务的URL。
[0018] 然而,由于上述技术提供了URL与网络服务之间的“一对多”的对应关系,因此,在对接收到的URL做出响应时,网络服务器无法识别出应该将请求发送给哪个网络服务。
[0019] 本发明涉及一种网络服务器装置,即使在一个网络服务器上运行具有相同URL的多个网络服务,所述网络服务器装置也能够允许网络服务器根据接收到的HTTP请求来识别出需要调用哪个网络服务。
[0020] 以下将参照附图详细描述本发明的各示例性实施方式、特征及各方面。
[0021] 在本发明的第一示例性实施方式中将会描述网络服务器功能,即使是在多个网络服务具有相同URL的情况下,所述网络服务器功能也能允许网络服务器识别出哪个网络服务应该处理请求。
[0022] 图1示出了根据第一示例性实施方式的网络服务器装置100和网络客户端装置300的整体配置图。
[0023] 在图1中,网络服务器装置100和网络客户端装置300通过网络200互相连接。网络200可以是因特网或局域网(LAN)。
[0024] 网络服务器装置100包括:用于网络通信的通信单元130、用于提供网络服务器功能的网络服务器120以及网络服务140、150、160及170。通过在网络服务器120上运行,各网络服务140、150、160及170提供服务。这里“服务”表示包含在诸如上述远程UI服务和IPP服务以及网络的分布式编写和版本控制(WebDAV,Web Distributed Authoring and Versioning)服务等网络服务中的功能。网络服务器120通过HTTP通信接收HTTP请求,并将所述请求分配给所述请求中指定的网络服务,以便所述网络服务提供服务。各网络服务140、150、160及170具有等同于例如通用网关接口(CGI,Common Gateway Interface)或小服务程序(Servlet)的功能。各网络服务140、150、160及170在网络服务器120中注册网络服务判断条件(扩展判断条件)。当网络服务器120接收到与任意一个扩展判断条件相对应的请求时,网络服务器120就向与所述条件相对应的网络服务分配所述请求。这样能够使得网络服务执行在HTTP请求中指定的处理以便提供服务。
[0025] 网络客户端装置300包括网络服务客户端320、330、340及350。网络服务客户端320、330、340及350包括例如:用于显示接收到的超文本标记语言(HTML)数据的网络浏览器、用于在网络服务的存储单元中存储数据或从网络服务的存储单元中获取数据的WebDAV客户端、用于利用网络服务提供的打印服务而打印数据的WSD打印以及HTTP客户端。各网络服务客户端320、330、340及350具有下述功能:利用HTTP与网络服务通信、请求网络服务执行处理、接收所请求的处理的结果以及向用户提供所接收到的结果。
[0026] 为了请求网络服务执行处理,各网络服务客户端320、330、340及350利用网络客户端装置300的通信单元310将HTTP请求发送给网络服务器120。当接收到所述请求后,网络服务器120分析所述请求的HTTP报头部分,并判断所述请求是否对应于网络服务140、150、160及170所注册的任一扩展判断条件。如果网络服务器120判定所述请求对应于所注册的任一扩展判断条件,那么网络服务器120就执行用于处理相应网络服务的功能。当网络服务器120执行用于处理网络服务的功能时,在必要时所述网络服务根据HTTP运行或所接收到的数据的HTTP主体部分而执行所请求的处理,从而提供所述服务。
[0027] 如图2所示,网络服务器装置100包括只读存储器(ROM)102和硬盘驱动器(HDD)103。网络服务器装置100中的通信单元130、网络服务器120以及网络服务140、150、160及
170被记录在ROM102和HDD103中,并由中央处理单元(CPU)101来执行。
[0028] 图2的框图示出了根据第一示例性实施方式的网络服务器装置100的硬件配置的示例。该图示出了具有打印机功能的网络服务器装置100作为代表示例。也就是说,网络服务器装置100为打印机。网络服务器装置100可以是具有扫描器功能的多功能外围设备(未示出)。具有存储服务器功能的网络服务器装置100包括CPU101。
[0029] CPU101通过执行存储在ROM102或HDD103中的程序而全面控制与系统总线104相连接的各个单元。随机存取存储器(RAM)111起到CPU101的主存储器及工作区域的功能。具有存储服务器功能的网络服务器装置100的控制单元105控制充当打印引擎的打印机106或HDD103。
[0030] 网络服务器装置100的CPU101通过执行存储在ROM102或HDD103中的程序而实现第一示例性实施方式的软件配置。非易失性随机存取存储器(NVRAM)107存储用于限定网络服务器装置100的操作的各种设置值。面板控制单元108控制操作面板109显示各种信息,并通过所述操作面板109接收来自用户的指令。网络接口控制单元110控制向/从网络200发送/接收数据。
[0031] 网络客户端装置300也具有图2所示的硬件配置。当CPU101执行存储在ROM102或HDD103中的程序时,图1所示的各软件均能运行。在第一示例性实施方式中,假定网络客户端装置300是信息处理装置,例如一般个人计算机和包括智能手机的移动终端,并且不具有诸如打印功能等图像形成功能。因此,所述网络客户端装置300是不包括打印机106或控制单元105的信息处理装置。
[0032] 图3示出了网络服务器120的内部模块。网络服务器120包括网络服务注册处理单元121,用于从各个网络服务140、150、160及170处接收网络服务注册请求。网络服务注册请求是用于在网络服务器120中注册各个网络服务140、150、160及170的请求。当各个网络服务140、150、160及170都被注册后,所注册的各个网络服务140、150、160及170能够执行由网络服务器120从网络服务客户端接收到的请求。网络服务注册处理单元121具有以下功能:在网络服务管理表122中记录扩展判断条件和用于调用各个网络服务140、150、160及170的处理函数。即使已经发送注册请求的网络服务140、150、160及170具有相同的URL,所述扩展判断条件也能被用来识别合适的网络服务。
[0033] 网络服务管理表122的结构如图5A、5B、5C和5D所示。在第一示例性实施方式中将要描述的一个示例中,假定为各个端口号生成所述网络服务管理表122,通过所述端口号来执行网络服务。例如,如果存在由传输控制协议(TCP)端口号80以及TCP端口号88所提供的网络服务的话,那么就生成两个网络服务管理表122,其中一个用于TCP端口号80而另一个用于TCP端口号88。为各个端口号生成网络服务管理表122可以允许网络服务器120以更快的方式找到合适的网络服务。
[0034] 请求(HTTP报头)接收单元123具有以下功能:通过网络接收发送给网络服务器120的请求的HTTP报头部分。网络服务判断单元124具有以下功能:分析由请求(HTTP报头)接收单元123接收到的HTTP报头信息,并根据在网络服务管理表122中注册的相应扩展判断条件而识别出合适的网络服务。
[0035] 网络服务执行单元125执行由网络服务判断单元124识别出的网络服务。网络服务执行单元125具有能够与所识别出的网络服务进行HTTP通信的功能。例如,这种HTTP通信功能能够接收HTTP主体部分,以及根据HTTP协议发送HTTP响应。
[0036] 图4示出了网络服务140的内部模块。网络服务注册单元141判断当启动网络服务140时所述网络服务140是有效还是无效。如果所述网络服务140有效,那么网络服务注册单元141就具有以下功能:请求网络服务注册处理单元121将URL、网络服务140的扩展判断条件以及用于网络服务140的处理函数进行注册。网络服务处理单元142具有执行网络服务
140的处理的功能。具体地,网络服务处理单元142执行由网络服务执行单元125调用的服务处理函数。网络服务处理单元142具有执行处理的功能,所述处理对各个网络服务来说是独一无二的。
[0037] 图6的流程图示出了由网络服务注册单元141执行的特定处理。网络服务注册单元141被存储在RAM111、ROM102及HDD103中的任意一个存储单元中,并由CPU101执行。在步骤S100中,在启动网络服务140时,网络服务注册单元141确认所述网络服务140的设置,并判断所述网络服务140是否有效。
[0038] 如果网络服务140无效(在步骤S100中为“无效”),那么就不需要将网络服务信息注册到网络服务器120中。因此,结束处理,而并不在网络服务器120中注册网络服务信息。如果网络服务140有效(在步骤S100中为“有效”),那么处理就推进至步骤S101。在步骤S101中,网络服务注册单元141确认将被注册在网络服务器120中的网络服务执行判断条件。更具体地,网络服务注册单元141判断是仅注册URL信息还是除URL信息外还要注册扩展判断条件。扩展判断条件可以是网络服务140特有的属性,或者可以由管理员为网络服务140设置。
[0039] 如果仅注册URL信息(在步骤S101中为“是”),那么在步骤S102中,网络服务注册单元141就注册URL信息和网络服务处理函数。如果除了URL信息外还有扩展判断条件(在步骤S101中为“否”),那么处理就推进至步骤S103。在步骤S103中,网络服务注册单元141在网络服务器120中注册URL信息、相应的扩展判断条件以及网络服务处理函数。
[0040] 这里将补充描述将被注册在网络服务器120中的上述URL信息。通常,URL表示由请求注解(RFC,Request For Comments)1738限定的格式。然而,将被注册在网络服务器120中的URL信息代表协议(HTTP/HTTPS)、提供服务的TCP端口号以及URL路径信息,而不是由RFC1738限定的信息。
[0041] 此外,任何在HTTP报头中指定的信息都可以用作扩展判断条件。例如,扩展判断条件可以是HTTP操作、HTTP报头的内容类型或用户代理、或者由RFC822定义的以“x-”开头并且作为应用程序的扩展的HTTP扩展报头信息。如果网络服务140在网络服务器120中注册扩展判断条件,那么即使URL信息相匹配,网络服务器120也不利用网络服务140的处理函数调用网络服务140,除非URL信息和扩展判断条件都匹配。或者,可以基于两个或更多的扩展判断条件而执行判断。例如,如果判定具有相同URL路径的另一个网络服务也具有相同的HTTP操作,那么就基于内容类型做进一步的判断。因此,除了URL之外,网络服务140还可以在网络服务器120中注册扩展判断条件。
[0042] 接下来将描述网络服务器120中的网络服务注册处理。
[0043] 网络服务注册处理单元121被存储在RAM111、ROM102和HDD103中的任一存储单元中,并由CPU101执行。这里将参照图5A、5B、5C及5D描述由网络服务注册处理单元121执行的如图7所示的处理流程。
[0044] 首先将描述图5A。图5A示出了以下状态。
[0045] 在图5A所示的网络服务管理表122中,远程UI服务150和WebDAV服务170被注册为具有TCP端口号80的服务。仅以“/”作为URL路径来注册远程UI服务150。仅以“/share”作为URL路径来注册WebDAV服务170。尽管网络服务器120提供了HTTP操作字段用于注册扩展判断条件,但是远程UI服务150和WebDAV服务170的字段都是空白。
[0046] 以下将描述图7所示的流程图,在所述流程图中,假定网络服务管理表122是如图5A所示,并且网络服务注册处理单元121接收到注册HTTP网络服务140(IPP服务)的请求。这里也假定HTTP网络服务140通过指定TCP端口号为“80”、URL路径为“/”、以及作为扩展判断条件之一的HTTP操作为“POST”而发送了注册请求。
[0047] 在步骤S200中,当从网络服务140处接收到网络服务注册请求后,网络服务注册处理单元121确认由网络服务注册单元141指定的URL信息的TCP端口号。
[0048] 在步骤S201中,网络服务注册处理单元121判断网络服务管理表122中是否存在与指定的TCP端口号相对应的网络服务管理表。如果不存在与指定的TCP端口号相对应的网络服务管理表(在步骤S201中为“否”),那么在步骤S206中,网络服务注册处理单元121就为指定的TCP端口号生成新的网络服务管理表。接下来,在步骤S207中,网络服务注册处理单元121在生成的网络服务管理表中注册指定的服务名称、URL路径以及扩展判断条件。然后结束处理。如果除了URL信息以外,网络服务140没有指定扩展判断条件,那么扩展判断条件的字段就是空白并被忽略。如果在扩展判断条件为空白字段的状态下而注册了一个网络服务,那么当URL路径相匹配时,所述网络服务就被识别为要对所发送的请求进行处理的网络服务。所述配置使得即使在扩展判断条件为空白字段的状态下注册了网络服务,并且包含在请求中的扩展判断条件与注册的扩展判断条件不匹配,也总是能够执行任一个注册的网络服务。
[0049] 这里,HTTP网络服务(IPP服务140)指定了TCP端口号80。如果网络服务注册处理单元121判定在网络服务管理表122中存在与TCP端口号80相对应的网络服务管理表(在步骤S201中为“是”),那么就检索图5A中所示的网络服务管理表122。在找到TCP端口号80的网络服务管理表122之后,接下来在步骤S202中,网络服务注册处理单元121判断在该网络服务管理表中是否注册了与网络服务注册请求相同的URL路径。也就是说,网络服务注册处理单元121确认是否注册了具有相同URL路径的网络服务。如果没有注册具有相同URL路径的网络服务(在步骤S202中为“否”),那么在步骤S207中,网络服务注册处理单元121就在网络服务管理表122的末尾注册这次将要被注册的新服务的信息。这里,由于IPP服务140具有URL路径“/”,因此所述URL路径与图5A中所示的网络服务管理表122的“No1”中注册的远程UI的URL路径相同。因此,网络服务注册处理单元121判定已经注册了与网络服务注册请求相同的URL路径(在步骤S202中为“是”),然后处理推进至步骤S203。
[0050] 如果注册了相同的URL路径(在步骤S202中为“是”),那么在步骤S203中,网络服务注册处理单元121利用扩展判断条件执行比较。在本示例中,由于网络服务器120中提供了HTTP操作作为扩展判断条件,因此网络服务注册处理单元121就将远程UI服务150的HTTP操作与将由IPP服务140注册的HTTP操作进行比较。如图5A所示,在远程UI服务150中没有指定HTTP操作。另一方面,IPP服务140指定了“POST”。上述比较的结果是,IPP服务140与远程UI服务150的扩展判断条件彼此不匹配(在步骤S203中为“否”),因此就允许注册IPP服务140。按照这样的方式,如果网络服务注册处理单元121判定接收到的扩展判断条件与在网络服务管理表122中对应于相同的URL而注册的扩展判断条件不匹配的话,那么就在网络服务管理表122中注册该网络服务140。当在网络服务管理表122中注册了该网络服务140时,如图
5B所示,URL、相应的扩展判断条件、网络服务处理函数以及网络服务名称就相互关联起来。
如果扩展判断条件的比较结果是:IPP服务140和远程UI服务150的扩展判断条件相互匹配(在步骤S203中为“是”),那么处理就推进至步骤S204。在步骤S204中,网络服务注册处理单元121不注册该网络服务140,然后处理结束。
[0051] 接下来将描述下述处理:确认各网络服务的注册优先级、然后在网络服务管理表122中实际注册该网络服务140。在步骤S205中,网络服务注册处理单元121将这次将被新注册的网络服务140的扩展判断条件的数量与具有相同URL路径的已注册网络服务150的扩展判断条件的数量进行比较。进行上述比较是因为:当网络服务判断单元124检索与请求的扩展判断条件相对应的网络服务时,所述网络服务判断单元124按照注册编号的升序顺序来确认网络服务管理表122中的网络服务,以判断是否存在与所述请求相对应的网络服务。因此,与具有相对较宽松条件的网络服务相比,具有较严格条件的网络服务需要以较小的注册编号注册在网络服务管理表122中。否则的话,可能首先检索到的是具有相对较宽松条件的网络服务,因为具有相对较宽松条件的网络服务的扩展判断条件的数量少于具有较严格条件的网络服务的扩展判断条件的数量。这样,由于具有较严格条件的网络服务的扩展判断条件的数量较大,可能会导致所述具有较严格条件的网络服务未被检索到。
[0052] 基于上述比较,向IPP服务140设置了一个扩展判断条件,而未向远程UI服务150设置扩展判断条件。在步骤S209中,由于IPP服务140需要被赋予比远程UI服务150更高的检索优先级,因此所述IPP服务140被插入,并被注册在注册编号为“No1”的位置。结果,远程UI服务150和WebDAV服务170的注册编号就从图5A所示的表中的注册编号变为图5B所示的表中的注册编号。如果将被新注册的网络服务140的扩展判断条件的数量少于或等于已注册的网络服务150的扩展判断条件的数量(在步骤S205中为“否”),那么处理就推进至步骤S208。在步骤S208中,网络服务注册处理单元121以紧跟着具有相同URL的网络服务150的注册编号之后的注册编号注册网络服务140。
[0053] 这里将描述的示例中,网络服务管理表122如图5C中所示,且HTTP服务140将要被注册。在图5C中,WSD打印服务160、远程UI服务150以及WebDAV服务170在网络服务管理表122中被注册为具有TCP端口号80的服务。以“/”为URL路径注册WSD打印服务160与远程UI服务150,而仅以“/share”为URL路径注册WebDAV服务170。在图5C所示的网络服务管理表122中,网络服务器120提供HTTP操作字段和内容类型字段作为扩展判断条件。针对WSD打印服务160,“POST”和“application/soap+xml”被分别指定为HTTP操作和内容类型。针对远程UI服务150和WebDAV服务170,没有指定扩展判断条件。
[0054] 在这样的状态下,假定HTTP网络服务(IPP服务)140通过指定TCP端口号为“80”、URL路径为“/”、HTTP操作为“POST”、以及内容类型为“application/ipp”已经发送了注册请求。在这种情况下,在图7所示的流程图的步骤S205中,网络服务注册处理单元121对将被新注册的网络服务140的扩展判断条件的数量与具有相同URL路径的已注册网络服务150和160的扩展判断条件的数量进行比较。结果是,由于HTTP操作和内容类型均被指定为IPP服务140和WSD打印服务160的扩展判断条件,因此其扩展判断条件的数量彼此相等。因此,IPP服务140被以紧跟着WSD打印服务160的注册编号之后的注册编号而注册,从而网络服务管理表122被更新为如图5D中所示。
[0055] 最后,将参照图8描述由网络服务判断单元124执行的处理。网络服务判断单元124被存储在RAM111、ROM102以及HDD103中的任一个存储单元中,并由CPU101来执行。网络服务判断单元124具有向各个网络服务分配请求的功能。
[0056] 在步骤S300中,在接收到对网络服务的请求后,请求接收单元123就请求网络服务判断单元124来判断所述网络服务。网络服务判断单元124从请求接收单元123处获取接收到HTTP请求的接收TCP端口号,并获取所接收到的请求的HTTP报头信息。网络服务判断单元124分析所述HTTP报头信息。
[0057] 在步骤S301中,网络服务判断单元124确认在网络服务管理表122中是否存在与接收的TCP端口号相对应的网络服务管理表。如果不存在与所述TCP端口号相对应的网络服务管理表(在步骤S301中为“否”),那么处理就推进至步骤S307。在步骤S307中,网络服务判断单元124判定相应的网络服务不存在。另一方面,如果存在与接收的TCP端口号相对应的网络服务管理表(在步骤S301中为“是”),那么处理就推进至步骤S302。在步骤S302中,网络服务判断单元124将服务检索开始位置设置为检测到的网络服务管理表中的注册编号的顶端处(即:注册编号“No1”)。
[0058] 在步骤S303中,网络服务判断单元124从所选择的网络服务管理表中的检索开始位置处检索与接收到的HTTP请求具有相同URL路径的任意一个己注册服务。如果不存在具有相同URL路径的己注册服务(在步骤S303中为“否”),那么接下来在步骤S307中,网络服务判断单元124就判定没有网络服务能处理所述请求。接下来,处理结束。如果网络服务判断单元124检测到具有相同URL路径的己注册服务(在步骤S303中为“是”),那么处理就推进至步骤S304。在步骤S304中,网络服务判断单元124确认检测到的网络服务的扩展判断条件是否与同所述请求一起被发送的扩展判断条件相匹配。如果这些扩展判断条件彼此不匹配的话(在步骤S304中为“否”),那么处理就推进至步骤S305。在步骤S305中,网络服务判断单元124在网络服务管理表122中将检索开始位置设置为下述网络服务的位置:该网络服务的注册编号为紧挨着这次被判定为不匹配的网络服务的注册编号之后的注册编号。然后,处理返回至步骤S303和S304,以便网络服务判断单元124继续检索具有相同URL路径和相匹配的扩展判断条件的网络服务。如果网络服务判断单元124判定所述扩展判断条件与被发送的扩展条件相匹配(在步骤S304中为“是”),那么接下来在步骤S306中,网络服务判断单元124就判定已经找到与所述请求相对应的网络服务。
[0059] 现在将参照图8中所示的流程图描述由网络服务判断单元124执行的处理的一个具体示例。在该处理中,网络客户端装置300发送请求给网络服务器120,并且网络服务判断单元124指定相应的网络服务。这里假定网络服务管理表122为如图5B所示。该处理中使用了图1所示的系统配置以及图9A、9B和9C中所示的对网络服务的请求数据的示例。
[0060] 为了让用户与网络服务(远程UI服务150)相连接,用户在网络服务客户端350(下文称为网络浏览器)的URL输入字段中输入远程UI服务150的URL信息。将要被输入的URL信息是例如“http://172.24.29.162/”。该URL信息不一定要输入在网络浏览器350的输入字段中。可以通过在网络浏览器350中选择被注册为书签的信息而输入所述URL信息。信息“172.24.29.162”表示网络服务器装置100的IP地址。“http://”与IP地址的组合使得各个网络服务客户端320、330、340及350能够访问网络服务器120。网络浏览器350基于所输入的URL信息而识别网络服务器120,并发送在图9A中示出的用于获取HTML数据的HTTP请求。在这种情况下,HTTP请求只包括HTTP报头,也就是说,HTTP主体没有被包含在所述HTTP请求中。
[0061] 当接收到图9A中示出的请求数据的HTTP报头后,请求接收单元123请求网络服务判断单元124识别相应的网络服务。网络服务判断单元124基于图8所示的网络服务判断处理而识别网络服务。根据来自网络浏览器350的请求(图9A),URL路径是“/”,且HTTP操作是“GET”。因此,作为检索图5B所示的网络服务管理表122的结果,网络服务判断单元124判定该请求为对注册编号为“No2”的远程UI服务150的处理请求。因此,执行远程UI服务150,并将处理结果作为响应提供给网络浏览器350。网络浏览器350从远程UI服务150处获取作为处理结果的HTML文件,并显示所接收到的HTML文件。
[0062] 此外,在另一个即将描述的具体示例中,用户要与IPP服务140相连接。IPP服务140是互联网打印协议,由RFC定义版本1.0、1.1、2.0、2.1以及2.2。IPP定义了用于确认打印机状态或能力、发出打印指定文档的指令以及确认作业状态的命令。这些命令被存储在HTTP的主体部分。换句话说,利用HTTP报头不能识别IPP的操作。
[0063] 如果用户使用IPP服务140来确认打印机能力信息,那么用户需要在IPP客户端340中指定IPP服务140的URL。可以由用户直接指定IPP服务140的URL。也可以利用组播域名系统(mDNS)及服务定位协议(SLP)等检索技术,通过网络检索IPP服务140的URL。基于检索结果,可以获取IPP服务140的URL。
[0064] 当用户检索并获得IPP服务140的URL信息或者直接在IPP客户端340中输入URL后,该用户就与指定的URL相连接。这里假定URL是例如“http://172.24.29.162/”。该URL与上述远程UI服务150的URL相同。在该状态下注册网络服务140会造成网络服务140和远程UI服务150将以相同的URL被注册。接下来,IPP客户端340发送如图9B所示的包括HTTP报头信息以及HTTP主体部分的请求,所述HTTP主体部分包括表明对IPP服务140的请求的细节的命令。
[0065] 当接收到图9B所示的请求数据的HTTP报头后,请求接收单元123请求网络服务判断单元124识别相应的网络服务。网络服务判断单元124基于图8所示的网络服务判断处理而识别网络服务。根据来自网络浏览器350的请求(图9B),URL路径是“/”,且HTTP操作是“POST”。因此,基于对图5B所示的网络服务管理表122的检索,网络服务判断单元124判定该请求为对注册编号为“No1”的IPP服务140的处理请求。接下来执行IPP服务140。IPP服务140通过接收包含在HTTP主体部分中的IPP请求数据而确认所述请求的细节。
[0066] 图9C示出了图9B中示出的IPP请求数据的数据格式。
[0067] IPP请求由RFC2910定义,且对IPP服务140的指令在“操作-id”字段中被指定。对IPP服务的指令是例如用于执行打印操作的打印作业请求或者用于获取打印机属性的“获得打印机属性”请求。在“操作-id”字段中指定的“0x0002”表示打印作业请求,而在“操作-id”字段中指定的“0x000B”表示“获得打印机属性”请求。
[0068] 当接收到图9C所示的格式的请求数据后,IPP服务140执行由包含在“操作-id”字段中的命令所指定的指令。例如,如果所述指令是用户获取打印机属性的“获得打印机属性”请求,那么IPP服务140就以打印机能力信息响应IPP客户端340。如果所述指令是打印作业请求,那么IPP服务140就接收包含在所述请求的数据字段中的打印数据,并促使打印机106基于所述打印数据执行打印。
[0069] 当IPP服务140完成图9B所示的IPP请求数据所指定的处理后,所述IPP服务140就通过将对所请求的处理的响应以按照IPP标准的格式存储在HTTP主体部分,从而将所述响应发送给IPP客户端340。
[0070] IPP客户端340从存储在所接收到的响应的HTTP主体部分中的数据获取请求结果,并结束与IPP服务140的通信。
[0071] 如上文所述,根据第一示例性实施方式,即使具有相同URL的多个网络服务在一个网络服务器上运行,所述网络服务器也能够基于接收到的HTTP请求而识别出要调用哪个网络服务。由于根据发送请求的各网络服务客户端不同所述HTTP请求可能会不同,因此网络服务器能从具有相同URL的多个网络服务中识别出所述网络服务。因此,用户只需要记住一个URL。这样就能允许执行各种各样的网络服务,同时又能保持易用性。
[0072] 下文将描述本发明的另一个示例性实施方式。上文描述的本发明的示例性实施方式是通过执行处理实现的,在该处理中,通过网络或各种存储介质向系统或装置提供用于实施上述示例性实施方式的功能的软件(程序),并且所述程序由所述系统或装置中的计算机(或CPU、微处理单元(MPU))读取并执行。
[0073] 因此,即使具有相同URL的多个网络服务在一个网络服务器上运行,所述网络服务器也能够基于接收到的HTTP请求而识别出要调用哪个网络服务。
[0074] 虽然已经结合示例性实施方式描述了本发明,应当认识到,本发明并不局限于公开的示例性实施方式。下列权利要求的范围应当适合最广泛的解释,以便囊括所有改动、等同结构和功能。