服务器装置、系统及其控制方法

文档序号:6533764阅读:112来源:国知局
服务器装置、系统及其控制方法
【专利摘要】服务器装置从经由互联网连接的客户端装置接收询问,并且发送第一条件信息作为其答复,根据所述第一条件信息进行初始通信,从而切换到无需所述客户端装置的请求而能够从所述服务器装置进行指示的特定通信方式。
【专利说明】服务器装置、系统及其控制方法

【技术领域】
[0001]本发明涉及经由互联网与客户端装置通信的服务器装置、系统及其控制方法。

【背景技术】
[0002]传统上,在客户端/服务器系统中建立连接的方法当中,存在基于通过接收侧接收的连接请求来识别由发送侧激活的安全协议(例如SSL),并且利用适当的协议来建立连接的方法。然后对消息进行加密并且进行通信。参照例如日本特表2009-508261号公报。
[0003]另外,提出了 Push(推送)通信方法,其中以来自客户端的握手(handshake)为起点,通过持续维持通信连接,来进行从互联网上的服务器到防火墙内的内部网络上的客户端的通信。参见例如互联网工程任务组(Internet Engineering Task Force, IETF) RFC6455:WebSocket 协议(URL:http://tools.1etf.0rg/html/rfc6455)。
[0004]当执行Push通信、并且在客户端与服务器之间持续维持通信连接时,在服务器上,与进行通信的客户端的数量成比例地持续消耗诸如存储器、CPU以及连接等的资源。从而,考虑服务器上的资源消耗效率,期望通过仅在Push通信变得必须之后进行来自客户端的握手,来建立通信连接,并且在Push通信已完成时释放通信连接。
[0005]然而,利用传统的在客户端/服务器系统中建立连接的方法,无法从服务器向客户端指示使得客户端在进行Push通信时发起握手。


【发明内容】

[0006]本发明提供这样一种方法,其中经由互联网在客户端装置与服务器装置之间进行通信,考虑到服务器装置侧的资源,能够在适当的定时切换到包括上述Push通信的特定通/[目方法。
[0007]根据本发明的一方面,提供一种经由互联网与客户端装置通信的服务器装置,该服务器装置包括:接收单元,其用于接收来自所述客户端装置的询问;发送单元,其用于发送第一条件信息作为针对所接收的询问的答复,根据所述第一条件信息进行初始通信,从而切换到无需来自所述客户端装置的请求而能够从所述服务器装置进行指示的特定通信方法;以及指示单元,其用于通过根据所述第一条件信息进行与所述客户端装置的所述初始通信来切换到所述特定通信方法,并且通过所述特定通信方法对所述客户端装置作出发送指示。
[0008]根据本发明的另一方面,提供一种用于控制经由互联网与客户端装置通信的服务器装置的控制方法,该控制方法包括以下步骤:接收来自所述客户端装置的询问;发送第一条件信息作为针对所接收的询问的答复,根据所述第一条件信息进行初始通信,从而切换到无需来自所述客户端装置的请求而能够从所述服务器装置进行指示的特定通信方法;以及通过根据所述第一条件信息进行与所述客户端装置的所述初始通信来切换到所述特定通信方法,并且通过所述特定通信方法对所述客户端装置作出发送指示。
[0009]根据本发明的另一方面,提供一种具有客户端装置以及经由互联网与所述客户端装置通信的服务器装置的系统,其中,所述服务器装置包括:接收单元,其用于接收来自所述客户端装置的询问;发送单元,其用于发送第一条件信息作为针对所接收的询问的答复,根据所述第一条件信息进行初始通信,从而切换到无需来自所述客户端装置的请求而能够从所述服务器装置进行指示的特定通信方法;以及指示单元,其用于通过根据所述第一条件信息进行与所述客户端装置的所述初始通信来切换到所述特定通信方法,并且即使不存在来自所述客户端装置的请求也通过所述特定通信方法对所述客户端装置作出发送指示,并且其中,所述客户端装置包括:接收单元,其用于从所述服务器装置接收所述第一条件信息;以及控制单元,其用于根据由所述接收单元接收的所述第一条件信息发起与所述服务器装置的所述初始通信。
[0010]根据本发明的另一方面,提供一种系统的控制方法,该系统具有客户端装置以及经由互联网与所述客户端装置通信的服务器装置,其中,所述服务器装置执行以下步骤:接收来自所述客户端装置的询问;发送第一条件信息作为针对所接收的询问的答复,根据所述第一条件信息进行初始通信,从而切换到无需来自所述客户端装置的请求而能够从所述服务器装置进行指示的特定通信方法;以及通过根据所述第一条件信息进行与所述客户端装置的所述初始通信来切换到所述特定通信方法,并且即使不存在来自所述客户端装置的请求也通过所述特定通信方法对所述客户端装置作出发送指示,并且其中,所述客户端装置执行以下步骤:从所述服务器装置接收所述第一条件信息;以及根据接收的所述第一条件信息发起与所述服务器装置的所述初始通信。
[0011]根据以下参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。

【专利附图】

【附图说明】
[0012]包含在说明书中并构成说明书的一部分的附图例示了本发明的实施例,并且与文字说明一起用来解释本发明的原理。
[0013]图1是用于例示Push通信型客户端/服务系统的系统结构和硬件结构的框图。
[0014]图2是用于例示图1中所示的系统的软件结构的框图。
[0015]图3A至图31是用于例示数据库服务器服务模块内的表结构示例的图。
[0016]图4是用于描述根据第一实施例的用于接收请求的处理的流程图。
[0017]图5是用于例示根据第一实施例的握手控制信息的示例的图。
[0018]图6是用于描述用于登记握手发起时的处理的流程图。
[0019]图7是用于描述根据第二实施例的用于接收请求的处理的流程图。
[0020]图8是用于例示根据第二实施例的握手控制信息的示例的图。
[0021]图9是用于描述当设置是否将进行Close (断开)处理时的处理的流程图。
[0022]图10是用于描述根据第三实施例的用于发起握手的处理的流程图。
[0023]图11是用于描述根据第三实施例的用于发送响应的处理的流程图。

【具体实施方式】
[0024]下文中将参照附图详细描述本发明的实施例。在以下实施例中,利用Push通信型客户端/服务器系统的示例来给出说明。注意,针对Push通信的协议,利用WebSocket的特定通信方法。
[0025]利用根据WebSocket的双向通信,能够通过Push从互联网上的服务器装置进行命令发送。另外,即使不存在来自客户端装置的询问(请求),也能够进行命令发送,在进行双向通信时,可以省略头信息等,并且可以降低网络上流通的数据量。然而,当服务器装置的资源稀少时,存在服务器装置难以管理多个客户端装置的问题。
[0026][第一实施例]
[0027]首先,将利用图1的框图中所例示的Push通信型客户端/服务器系统的系统结构及硬件结构来给出说明。Push通信型客户端/服务器系统提供客户端计算机120、网络打印机140、经由LAN连接的防火墙160、以及经由WAN连接的服务器计算机100。
[0028]注意,服务器计算机100和客户端计算机120具有通用计算机(例如个人计算机)的结构。
[0029]另外,客户端计算机120为诸如个人计算机或数字多功能外围设备的图像形成装置。
[0030]在服务器计算机100上,CPU 101根据ROM 103或外部存储器106中存储的应用程序执行各种类型的处理。另外,CPU 101集中控制系统总线107上的各设备。RAM 102是CPU 101的主存储器并用作工作区等。ROM 103是用作针对基本I/O程序等的存储区的只读存储器。作为CPU101的控制程序的操作系统(下文中称为0S)被存储在ROM 103中或者存储在外部存储器106中。另外,在ROM 103中或在外部存储器106中,存储有在基于应用程序和其他各种类型的数据的处理中使用的文件。
[0031]网络I/F 104连接到网络并控制网络通信。外部存储器I/F 105控制对外部存储器106(其可以是硬盘(HD))的访问。外部存储器106存储引导程序、各种类型的应用、用户文件、编辑文件等。
[0032]客户端计算机120在其中CPU 111执行写入到ROM 113或外部存储器116中的基本I/o程序或0S的状态下操作。基本1/0程序被写入到R0M113中,并且0S被写入到ROM113或外部存储器116中。当客户端计算机120的电源被打开时,根据基本1/0程序的初始程序加载功能,0S从ROM 113或外部存储器116被写入到RAM 112中,并且0S的操作启动。系统总线117连接各个设备。
[0033]另外,在客户端计算机120中,键盘I/F 121控制来自键盘122、指示设备(未示出)等的输入。显示I/F 123控制显示器124的显示。CPU 111基于利用显示器124上的鼠标光标(未示出)指示的命令来打开各种登记的窗口,并且执行各种数据处理。
[0034]在网络打印机140中,网络I/F 141连接到网络并控制网络通信。CPU142基于控制程序向经由打印机I/F 147连接到系统总线151的打印机148输出图像信号作为输出信息。注意,控制程序被存储在ROM 144中或外部存储器150中。
[0035]CPU 142被构造为使得能够进行用于经由网络I/F 141与客户端计算机120通信的处理,以及使得可以向客户端计算机120通知网络打印机140中的信息。另外,CPU 142基于ROM 144中或者外部存储器150中存储的应用程序执行处理。RAM 143是CPU 142的主存储器,用作工作存储器等,并且采用使得可以利用连接到扩展端口(未示出)的可选RAM来扩展存储容量的结构。注意,RAM 143用作输出信息加载区域、环境数据存储区域、NVRAM。在ROM 144中或者在外部存储器150中,存储CPU 142的控制程序、当CPU 142生成输出信息时使用的字体数据、以及在网络打印机140上使用的信息。
[0036]操作单元I/F 145是与操作单元146的接口,其向操作单元146输出要显示的图像数据。另外,操作单元I/F 145接收用户经由操作单元146输入的信息。操作单元146对应于操作屏,在该操作屏上布置有开关、LED显示设备等。打印机I/F 147向打印机148 (打印机引擎)输出图像信号作为输出信息。外部存储器I/F(存储器控制器)149控制对包括硬盘(HD)或1C卡等的外部存储器150的访问。另外,关于外部存储器150,外部存储器的数量不限于1,而是提供至少一个外部存储器,并且结构可以为使得可以连接增加内置字体的多个选项字体卡,或者存储解释不同打印机控制语言的语言相关的程序的外部存储器。另外,可以存在存储从操作单元146指示的打印机模式设定信息的NVRAM(未示出)。系统总线151连接各个设备。
[0037]接着,将利用图2中所示的框图来说明Push通信型客户端/服务器系统的软件结构。首先,例示服务器计算机100的软件结构。
[0038]在服务器计算机100中,应用205以及模块200、204、210存在为外部存储器106中存储的文件。这些是在执行时通过0S以及通过利用OS的模块的模块加载到RAM 102中的程序模块。另外,应用205可以经由⑶-R0M(未示出)或网络被添加到外部存储器106的HD中。
[0039]网络模块200进行与客户端计算机120的网络通信。该网络模块200包括TCP/IP模块201、HTTP模块202以及WebSocket模块203。TCP/IP模块201通过TCP/IP协议进行网络通信。HTTP模块202用TCP作为传输协议并通过HTTP协议进行网络通信。WebSocket模块203利用TCP作为传输协议并通过WebSocket协议进行网络通信。
[0040]Web服务器服务模块204提供其中当其接收到来自客户端计算机120的HTTP请求时、用HTTP响应答复的服务。另一方面,应用205通过向客户端计算机120发送指令来经由客户端计算机120管理网络打印机140。另外,应用205被实现为例如答复HTTP请求并执行处理的程序。如上所述,应用205连同管理客户端计算机120和网络打印机140的Web服务器模块204 —起实现Web应用。
[0041]在应用205中,搜索模块206对客户端计算机120作出指令,使得其搜索连接LAN的网络打印机140。另外搜索模块206经由网络模块200接收客户端计算机120上传的搜索网络打印机140的结果。另外,搜索模块206将接收的搜索结果存储到稍后描述的数据库服务器服务模块210中。固件分配模块207对客户端计算机120作出指令,使得其对连接LAN的网络打印机140分配固件。另外,固件分配模块207经由网络模块200接收客户端计算机120上传的对网络打印机140的固件分配的结果。另外,固件分配模块207将接收的固件分配结果存储在稍后描述的数据库服务器服务模块210中。
[0042]设定信息分配模块208对客户端计算机120作出指令,使得其对连接LAN的网络打印机140分配设定信息。另外,设定信息分配模块208经由网络模块200接收客户端计算机120上传的对网络打印机140的设定信息分配的结果。另外,设定信息分配模块208将接收的设定信息分配结果存储在稍后描述的数据库服务器服务模块210中。握手控制信息管理模块209进行用于向客户端计算机120请求发起WebSocket协议握手的握手控制信息的创建。注意,握手是用于切换到特定通信方法的初始通信,通过该特定通信方法,即使在不存在来自客户端计算机120的请求的情况下,也能够进行对客户端计算机120的指示。
[0043]数据库服务器服务模块210管理数据库,并且与来自其他模块的请求一并进行数据存储和检索。该数据库服务器服务模块210可以在与服务器计算机100单独的设备上,如果能够从应用205访问的话。图3A-3I中例示了数据库服务器服务模块210中的表结构的示例。注意,图3A-3I中所例示的表结构仅为示例,可以适用不同的表结构。
[0044]图3A中的服务管理表300是管理与应用205提供的网络打印机管理服务相关的信息的表。由服务管理表300管理的信息例如是服务ID和服务名称。这里,服务ID是唯一识别服务的ID。
[0045]图3B中的客户端计算机管理表301是管理服务器计算机100对其进行Push通信的客户端计算机120的信息的表。该客户端计算机管理表301管理的信息是例如客户端的客户端ID、客户端名称及IP地址。这里,客户端ID是唯一识别客户端计算机120的ID。
[0046]图3C中的客户端计算机服务管理表302是管理通过客户端计算机120进行的网络打印机管理服务的关联信息的表。
[0047]图3D中的打印机管理表303是管理客户端计算机120搜索的网络打印机140的信息的表。由该打印机管理表303管理的信息是例如打印机的打印机ID、打印机名称、安装位置、打印机的型号ID以及打印机的IP地址。这里,打印机ID是唯一识别网络打印机140 的 ID。
[0048]图3E中的客户端计算机打印机管理表304是客户端计算机120搜索并且管理要作为管理目标的网络打印机140的关联信息的表。
[0049]图3F中的设定信息管理表305是管理经由客户端计算机120的设定信息分配模块228从设定信息分配模块208分配给网络打印机140的设定信息的表。由该设定信息管理表305管理的信息例如是设定信息ID、型号ID、SNMPvl设定、MIB访问设定、SNMPv3设定、管理密码设定、安装位置以及文件服务器URL。
[0050]这里设定信息ID是唯一识别设定信息的ID。SNMPvl设定是针对是否将网络打印机140置于可以使用SNMPvl (简单网络管理协议版本1)协议的状态的设定。这里,SNMPvl是用于监视/控制网络打印机140的协议。MIB访问设定是与对网络打印机140的MIB (管理信息库)的访问权限相关的设定,并且存在针对读/写、只读以及不许可访问的设定。
[0051]SNMPv3设定是针对是否将网络打印机140置于其中其可以使用SNMPv3(简单网络管理协议版本3)的状态的设定。这里,SNMPv3是SNMP的最新版本,并且与vl安全性比较已被加强。管理密码设定是当根据初始设定远程管理网络打印机140时需要的用于改变密码的设定。这里,管理密码设定出于安全性被加密并且被存储在设定信息管理表305中。
[0052]图3G中的固件管理表306是管理从固件分配模块207经由客户端计算机120的固件分配模块227分配给网络打印机140的固件信息的表。通过固件管理表306管理的信息是例如固件ID、型号ID、固件版本、文件路径以及发布日期/时间。这里,固件ID是唯一识别固件的ID。文件路径是固件的实际文件被存储的文件路径。发布日期/时间是代表固件的发布计划的日期/时间信息。
[0053]图3H中的设定信息分配任务管理表307是管理进行对网络打印机140的设定信息分配的任务的表。通过该设定信息分配任务管理表307管理的信息例如是任务ID、打印机ID、设定信息ID、分配结果以及执行日期/时间。任务ID是唯一识别设定信息分配任务的ID。
[0054]图31中的固件分配任务管理表308是管理进行对网络打印机140的固件分配的任务的表。由该固件分配任务管理表308管理的信息例如是任务ID、打印机ID、固件ID、分配结果以及执行日期/时间。这里,任务ID是唯一识别固件分配任务的ID。
[0055]接着,返回到图2,将说明客户端计算机120的软件结构。注意,构成客户端计算机120的模块的各个为作为文件存在、各自被存储在R0M113中或外部存储器116中的程序模块。另外,各个模块在执行时通过OS以及通过利用OS的模块的模块被加载到RAM 112中。
[0056]网络模块220进行与服务器计算机100、网络打印机140的通信。网络模块220包括 TCP/IP 模块 221、HTTP 模块 222、以及 WebSocket 模块 223。TCP/IP 模块 221 通过 TCP/IP协议进行网络通信。HTTP模块222利用TCP作为传输协议并且通过HTTP协议进行网络通信。WebSocket模块223利用TCP作为传输协议并且通过WebSocket协议进行网络通信。
[0057]应用224基于从服务器计算机100接收的指令来管理网络打印机140。另外,应用224将关于网络打印机140的管理的结果上传到服务器计算机100。在该应用224中,握手控制信息管理模块225接收/分析从服务器计算机100发送的握手控制信息。另外,根据由握手控制信息指定的定时,握手控制信息管理模块225通过WebSocket模块223发起WebSocket协议的握手处理。搜索模块226从服务器计算机100接收指令并且搜索LAN连接的网络打印机140。
[0058]SNMP(简单网络管理协议)、SLP(服务定位协议)是该搜索模块226使用来进行搜索的通信协议的示例。除那些以外,还可以使用诸如WS-Disc0very (Web服务动态发现)的通信协议。另外,搜索模块226将针对网络打印机140的搜索的结果经由网络模块220上传到服务器计算机100。
[0059]固件分配模块227接收到来自服务器计算机100的指令并且向连接LAN的网络打印机140分配固件。另外,固件分配模块227将对网络打印机140的固件分配的结果经由网络模块220上传给服务器计算机100。设定信息分配模块228接收到来自服务器计算机100的指令并向连接LAN的网络打印机140分配设定信息。另外,设定信息分配模块228将对网络打印机140的设定信息分配的结果经由网络模块220上传给服务器计算机100。
[0060]接着,将说明网络打印机140的软件结构。在网络打印机140中,各个模块作为ROM144或外部存储器150中保存的文件存在,并且在执行时被加载到RAM 143中并执行。网络模块240使用任意通信协议来进行与客户端计算机120的网络通信。打印处理模块241进行从客户端计算机120发送的打印作业的接收和控制并且进行打印处理。
[0061]固件管理模块242进行网络打印机140的固件的管理。当固件管理模块242经由网络模块240从客户端计算机120上的固件分配模块227接收到固件分配指令时,固件管理模块242用接收的固件替换网络打印机140的固件。另外,固件管理模块242将固件更新结果作为答复返回给客户端计算机120上的固件分配模块227。
[0062]设定信息管理模块243进行网络打印机140的设定信息的管理。这里,设定信息例如是SNMPvl设定、MIB访问设定、SNMPv3设定、管理密码设定或安装位置。当设定信息管理模块243经由网络模块240从客户端计算机120上的设定信息分配模块228接收到设定信息时,设定信息管理模块243用接收的设定来替换网络打印机140的设定。另外,设定信息管理模块243将设定信息更新结果作为答复返回给客户端计算机120上的设定信息分配模块228。
[0063]将利用图4中例示的流程图来说明上述结构中当服务器计算机100接收到从客户端计算机120发送的HTTP请求时的操作。执行该处理的程序被存储在ROM 103或外部存储器106中,并且在执行时被加载到RAM 102中。另外,通过CPU 101执行该程序,实现通过该流程图描述的处理。
[0064]在步骤S400中,HTTP模块202经由TCP/IP模块201接收到来自客户端计算机120的HTTP请求。在步骤S401中,握手控制信息管理模块209确定是否应用205正在请求握手。应用205是否正在请求握手的确定可以基于数据库服务器服务模块210的表中存储的值来被确定。
[0065]这里,可以考虑其中客户端计算机120与固件分配服务通过客户端计算机服务管理表302被关联,并且固件管理表306登记不久的计划发布的情况。当固件被发布时,期望应用205利用Push通信经由客户端计算机120尽快向网络打印机140分配固件。从而,在该示例中,握手控制信息管理模块209确定存在握手请求。
[0066]另外,作为另一示例,可以考虑其中被登记在设定信息分配任务管理表307和固件分配任务管理表308中的在指定时间段内计划执行的任务的数量大于或等于预定数量的情况。在通常情况下,客户端计算机120的应用224周期性访问服务器计算机100(轮询),并且客户端计算机120获取服务器计算机100中登记的任务信息并执行任务。然而,在服务器计算机100上存在更多登记的任务的情况下,期望服务器计算机100通过Push通信指示客户端计算机120执行任务。这样,在本示例中,握手控制信息管理模块209确定存在握手请求。
[0067]另外,作为另一示例,可以考虑其中客户端计算机120与设定分配服务在客户端计算机服务管理表302中被新关联的情况。在这种情况下,期望当客户端计算机120的应用224新搜索网络打印机140时,立即通过Push通信向网络打印机140分配初始化设定。这样,在本示例中,握手控制信息管理模块209确定存在握手请求。
[0068]如上所述,握手控制信息管理模块209基于数据库服务器服务模块210的表中存储的值来确定应用205是否正在请求握手。注意,握手控制信息管理模块209还可以基于数据库服务器服务模块210的表中存储的值以外的信息来确定应用205是否正在请求握手。在这种情况下,握手控制信息管理模块209可以基于存储器的资源消耗、服务器计算机100上的硬盘、以及/或拥塞的网络带宽条件来进行确定。
[0069]在步骤S401中,在确定应用205正在请求握手的情况下,处理进行到步骤S402,并且当不是该情况时,处理进行到步骤S408。在步骤S402中,握手控制信息管理模块209确定应用205请求的握手是否是通过客户端计算机120上的事件的触发被发起。在上述示例中,在当固件被发布时通过Push通信初始分配固件的情况下,通过服务器计算机100上的固件发布来触发发起握手。这样,在步骤S402中,握手控制信息管理模块209确定该握手不是通过客户端计算机120上的事件触发发起。
[0070]接着,在从服务器计算机100通过Push通信指示任务执行的情况下,通过服务器计算机100上的登记任务的数量变得大于或等于预定数量来触发发起握手。从而,在这种情况下,在步骤S402中,握手控制信息管理模块209确定握手不由客户端计算机120上的事件触发发起。
[0071]最后,在初始化设定被分配给新搜索的网络打印机140的情况下,如果客户端计算机120搜索网络打印机140,则要通过网络打印机的发现来触发发起握手。从而,在步骤S402中,握手控制信息管理模块209确定通过客户端计算机120上的事件来触发发起握手。
[0072]在步骤S402中,在握手被确定为通过客户端计算机120上的事件触发发起的情况下,处理进行到步骤S404,并且当不是该情况时处理进行到步骤S403。在步骤S403中握手控制信息管理模块209确定应用205请求的握手是否被周期性发起。在上述示例中,在当固件被发布时固件最初通过Push通信分配的情况下,固件分配仅执行一次。从而,在步骤S403中,握手控制信息管理模块209确定握手不被周期性发起。
[0073]另一方面,在通过Push通信从服务器计算机100指示任务执行的情况下,周期性指示任务执行直到服务器计算机100上的登记任务的数量变得不足预定数量为止。从而,在这种情况下,在步骤S403中,握手控制信息管理模块209确定周期性发起握手。
[0074]在步骤S403中,在确定周期性发起握手的情况下,处理进行到步骤S405,并且当不是该情况时,处理进行到步骤S406。在步骤S404、步骤S405或步骤S406中,握手控制信息管理模块209生成握手控制信息。该握手控制信息的示例在图5中例示。注意,在图5中,例示了其中描述为XML格式的示例,但是也可以用其他格式进行描述。另外,关于作为用于发起握手的触发的第一条件,将在步骤S404到步骤S406中进行说明。
[0075]在步骤S404中,握手控制信息管理模块209生成为了发起通过客户端计算机120上的事件触发的握手而指定的握手控制信息。为了发起通过客户端计算机120上的事件触发的握手而指定的握手控制信息的示例在图5的500中被例示。在该示例中,作为握手发起的触发的集合、类以及事件以XML格式被描述,并且描述当网络打印机被发现时发生该事件。
[0076]在步骤S405中,握手控制信息管理模块209生成为了在指定时间后周期性发起握手而指定的握手控制信息。为了在指定时间量后周期性发起握手而指定的握手控制信息的示例在图5的501中被例示。在该示例中,握手的发起时间、结束时间以及周期以XML格式描述,并且描述了在2012年4月I日O点开始12点结束以5分钟间隔来发起握手。
[0077]在步骤S406中,握手控制信息管理模块209生成为了仅在指定时间发起一次握手而指定的握手控制信息。为了仅在指定时间发起一次握手而指定的握手控制信息的示例在图5的502中被例示。在该示例中,握手的发起时间以XML格式描述,并且描述了在2012年4月I日O点发起握手。
[0078]在步骤S407中,握手控制信息管理模块209将在步骤S404到步骤S406的一者中生成的握手控制信息附加到由HTTP模块202生成的HTTP响应。这里,关于握手控制信息到HTTP响应的附加,其可以被包括在例如HTTP头或正文中。接着,在步骤S408中,HTTP模块202将HTTP响应发送到客户端计算机120,并且该处理完成。
[0079]注意,给出了其中预定事件、计划信息以及周期被预定为用于进行WebSocket握手(初始化通信)的第一触发条件的示例,但是本发明并不限于此。
[0080]接着,将利用图6中描述的流程图来说明用于当客户端计算机120向服务器计算机100发送HTTP请求,并且基于接收的HTTP响应登记握手发起时的操作。执行该处理的程序被存储在ROM 113中或外部存储器116中,并且在执行时被加载到RAM 112中。另外,通过CPU 111执行该程序,实现通过该流程图例示的处理。
[0081]在步骤S600中,HTTP模块222经由TCP/IP模块221向服务器计算机100发送HTTP请求。在步骤S601中,HTTP模块222经由TCP/IP模块221接收到从服务器计算机100发送的HTTP响应。在步骤S602中,握手控制信息管理模块225确定握手控制信息是否被附加到在步骤S601中接收的HTTP响应。在握手控制信息被附加的情况下,处理进行到步骤S603,并且在不被附加的情况下,处理在这里结束。
[0082]在步骤S603中,握手控制信息管理模块225由HTTP响应获得握手控制信息。接着,在步骤S604中,握手控制信息管理模块225确定获得的握手控制信息是否描述了握手通过客户端计算机120上的事件触发发起。在确定结果为握手控制信息描述了握手是通过客户端计算机120上的事件触发发起的情况下,处理进行到步骤S606,并且当不是该情况时,处理进行到步骤S605。
[0083]在步骤S605中,握手控制信息管理模块225确定获得的握手控制信息是否描述了在指定时间后,握手被周期性发起。在确定结果为握手控制信息描述了在指定时间后,握手被周期性发起的情况下,处理进行到步骤S607,并且当不是该情况时,处理进行到步骤S608。在步骤S606、S607或步骤S608中,握手控制信息管理模块225与WebSocket模块223 —起登记握手的发起。
[0084]在步骤S606中,握手控制信息管理模块225将握手发起登记到WebSocket模块223,从而握手通过客户端计算机120上的事件被触发发起。另外,在步骤S607中,握手控制信息管理模块225将握手发起登记到WebSocket模块223,从而在指定时间后握手被周期性发起。另外,在步骤S608中,握手控制信息管理模块225将握手发起登记到WebSocket模块223,从而握手仅在指定时间被发起一次。
[0085]利用上述处理,当进行Push通信时,能够指示从而发起用于进行从服务器计算机100到客户端计算机120的Push通信的握手。这样,在服务器计算机100与客户端计算机120之间维持持续通信连接以进行Push通信所经历的时间能够被缩短。为此,服务器计算机100上的诸如存储器和CPU使用以及连接等的资源的消耗能够被抑制。
[0086][第二实施例]
[0087]在第一实施例中,通过仅用于在进行Push通信时从服务器计算机100向客户端计算机120指示握手发起,无需消耗必须外的更多服务器资源而实现Push通信。
[0088]在第二实施例中,将说明如下处理,其中服务器计算机100自身检查登记的Push通信任务,并且如果该任务的执行计划间隔在固定时间段内,则作出WebSocket会话KeepAlive指令。利用该WebSocket会话KeepAlive指令,跳过Push通信结束后的Close处理,并且通过针对后续Push通信不关闭连接而继续使用该连接,能够削减CPU负荷和时间消耗。
[0089]因为第二实施例的Push通信型客户端/服务器系统的系统结构以及硬件结构/软件结构与第一实施例的图1和图2的相同,所以其说明被省略。
[0090]首先,将利用图7中所示的流程图来描述当服务器计算机100接收到从客户端计算机120发送的HTTP请求时服务器计算机100的操作。注意,该说明的一部分与第一实施例的图4重复,与图4共同的处理步骤用类似的附图标记示出,其说明被省略,以下将仅描述不同的部分。注意,执行该处理的程序被存储在ROM 103中或存储在外部存储器106中,并且在执行时被加载到RAM 102中。另外,通过CPU 101执行该程序,实现通过该流程图例示的处理。
[0091]在步骤S700中,握手控制信息管理模块209确定Push通信结束后的Close处理是否必要。这里,Push通信结束后的Close处理是否必要的确定例如是,计划按照预定阈值时间段内的间隔执行的任务是否被登记到设定信息分配任务管理表307或固件分配任务管理表308的确定。然而,在Push通信结束并进行Close处理后,结果是在仅仅短时间隔后必须进行握手从而再次进行Push通信,并且消耗服务器计算机100上的CPU资源。这里,在利用设定信息分配任务管理表307或固件分配任务管理表308来登记计划按照预定阈值时间段内的间隔来执行的任务的情况下,因为维持连接更加有效,所以确定Push通信后的Close处理不必要。当然,握手控制信息管理模块209可以利用上述方法以外的方法来确定Push通信后的Close处理不必要。
[0092]在步骤S700中,在Close处理被确定为必要的情况下,处理进行到步骤S701,并且当不是该情况时处理进行到步骤S702。在该步骤S701中,握手控制信息管理模块209设置握手控制信息使得在Push通信结束后,将进行Close处理。另一方面,在步骤S702中,握手控制信息管理模块209设置握手控制信息使得在Push通信结束后,不进行Close处理从而进行 WebSocket 会话 KeepAl ive。
[0093]设置是否在Push通信结束后进行Close处理的握手控制信息的示例在图8中被例示。注意虽然图8例示了其中以XML格式进行描述的示例,但是也可以以其他格式来进行描述。在图8中,在close标签中描述是否在Push通信后进行Close处理。图8中的附图标记800、801和802表示分别对应于第一实施例中说明的图5中所示第一条件500、501和502的第二条件。
[0094]接着,将利用图9中所示的流程图,说明当基于客户端计算机120向服务器计算机100发送HTTP请求时接收的HTTP响应、客户端计算机120确定并设置是否要进行Close处理时的操作。注意,因为该说明的一部分与第一实施例的图6重复,并且与图6共同的处理步骤用类似的附图标记示出,其说明被省略,并且以下将仅说明不同部分。执行该处理的程序被存储在ROM 113中或存储在外部存储器116中,并且在执行时被加载到RAM 112中。另夕卜,通过CPU 111执行该程序,实现通过该流程图例示的处理。
[0095]在步骤S900中,握手控制信息管理模块225基于在步骤S603中获得的握手控制信息来确定在Push通信结束后Close处理是否必要。这里,在确定Close处理必要的情况下,处理进行到步骤S901,在确定不必要的情况下,处理进行到步骤S902。在步骤S901中,握手控制信息管理模块225设置使得,在步骤S606至步骤S608的一者中利用WebSocket模块223登记的握手发起后要进行的Push通信结束后,将进行Close处理。
[0096]另一方面,在步骤S902中,握手控制信息管理模块225设置使得,在步骤S606至步骤S608的一者中利用WebSocket模块223登记的握手发起后要进行的Push通信结束后,将跳过Close处理。
[0097]注意,在Push通信后将跳过Close处理的情况下,可以通过服务器计算机100和客户端计算机120的任意一者进行WebSocket通信的最后Close处理。例如,在从服务器计算机100进行Close处理的情况下,服务器计算机100确定经过了预定阈值时间段并且没有登记计划执行的任务,并且进行Close处理。另一方面,在从客户端计算机120进行Close处理的情况下,当经过预定超时间隔时,进行Close处理。
[0098]根据上述处理,如果登记的Push通信任务的执行计划间隔在固定时间段内,服务器计算机100指示WebSocket会话KeepAlive,并且跳过Push通信结束后的Close处理。因为这种情况,通过针对后续Push通信继续使用连接,能够削减服务器计算机100上的CPU负荷以及花费的时间。
[0099][第三实施例]
[0100]在第二实施例中,如果Push通信任务的执行计划间隔在固定时间段内,服务器计算机 100 指不 WebSocket 会话 KeepAlive。
[0101]在第三实施例中,在指定时间或周期性执行的握手发起被登记在客户端计算机120上的情况下,在进行握手发起之前,对服务器计算机100作出关于是否存在握手请求的询问。
[0102]因为第三实施例中的Push通信型客户端/服务器系统的系统结构以及硬件结构和软件结构与第一实施例的图1和图2的相同,所以其说明被省略。
[0103]另外,因为当服务器计算机100接收到从客户端计算机120发送的HTTP请求时的操作与第一实施例的图4中的相同,所以其说明被省略。
[0104]另外,因为当客户端计算机120基于在向服务器计算机100发送HTTP请求之后接收的HTTP响应登记握手发起时的操作与第一实施例的图6的相同,所以其说明被省略。
[0105]这里,将利用图10中所示的流程图来说明用于当客户端计算机120基于握手请求发起指定时间或周期性执行握手时的操作。执行该处理的程序被存储在ROM 113中或存储在外部存储器116中,并且在执行时被加载到RAM 112中。另外,通过CPU 111执行该程序,实现通过该流程图例示的处理。
[0106]首先,在步骤S1000中,握手控制信息管理模块225经由网络模块220向服务器计算机100发送对获得是否存在握手请求的请求。在步骤S1001中,握手控制信息管理模块225接收到经由网络模块220从服务器计算机100发送的响应。接着,在步骤S1002中,握手控制信息管理模块225基于接收的响应确定是否存在握手请求。在握手控制信息管理模块225确定存在握手请求的情况下,处理进行到步骤S1003,并且WebSocket模块223发起WebSocket协议握手。另一方面,在握手控制信息管理模块225确定不存在握手请求的情况下,不发起握手而结束处理。
[0107]接着,将利用图11中所示的流程图来说明当服务器计算机100从客户端计算机120接收到获得是否存在握手请求的请求并且发送响应时的操作。执行该处理的程序被存储在ROM 103中或存储在外部存储器106中,并且在执行时被加载到RAM 102中。另外,通过CPU 101执行该程序,实现通过该流程图例示的处理。
[0108]首先,在步骤SllOO中,握手控制信息管理模块209经由网络模块200接收到获得是否存在握手请求的请求。在步骤SllOl中,握手控制信息管理模块209确定应用205是否正在请求握手。例如利用在第一实施例的步骤S401(图4)的说明中描述的方法来进行应用205是否正在请求握手的确定。
[0109]这里,确定通过握手建立WebSocket会话是没有必要的情况是,在服务器计算机100上不存在针对客户端计算机120的紧急固件升级指令或者数量大于阈值的多个指令的情况。
[0110]在步骤SllOl中,在确定应用205正在请求握手的情况下,处理进行到步骤S1102,当不是该情况时处理进行到步骤S1103。在步骤S1102中,握手控制信息管理模块209经由网络模块200向客户端计算机120发送存在握手请求的响应。
[0111]另一方面,在步骤SI 103中,握手控制信息管理模块209经由网络模块200向客户端计算机120发送不存在握手请求的响应。
[0112]根据上述处理,在指定时间或周期性执行的握手发起被登记在客户端计算机120上的情况下,客户端计算机120在发起握手前确认服务器计算机100上的握手请求的存在。这样,不必要的握手发起的数量能够被减少,并且能够避免必须外的服务器计算机100的资源(诸如连接)的更多消耗。
[0113]另外,在该实施例中,客户端计算机120进行针对是否预先需要握手的请求。然而,即使不进行这类请求,在服务器计算机100确定没必要的情况下,可以响应于来自客户端计算机120的针对握手的请求忽略或返回错误。利用这种措施,能够限制不必要的WebSocket会话的建立。
[0114][其他实施例]
[0115]本发明的各方面还可以通过读出并执行记录在存储设备上的用于执行上述实施例的功能的程序的系统或装置的计算机(或诸如CPU或MPU的设备)来实现,以及通过由系统或装置的计算机通过例如读出并执行记录在存储设备上的用于执行上述实施例的功能的程序来执行各步骤的方法来实现。鉴于此,例如经由网络或者从用作存储设备的各种类型的记录介质(例如计算机可读介质)向计算机提供程序。
[0116]虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明并不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有这些变型例以及等同的结构和功能。
[0117]本申请要求2012年5月10日提交的日本专利申请第2012-108912号的优先权,该申请的全部内容通过弓I用并入本文。
【权利要求】
1.一种经由互联网与客户端装置通信的服务器装置,该服务器装置包括: 接收单元,其用于接收来自所述客户端装置的询问; 发送单元,其用于发送第一条件信息作为针对所接收的询问的答复,根据所述第一条件信息进行初始通信,从而切换到无需来自所述客户端装置的请求而能够从所述服务器装置进行指示的特定通信方法;以及 指示单元,其用于通过根据所述第一条件信息进行与所述客户端装置的所述初始通信来切换到所述特定通信方法,并且通过所述特定通信方法对所述客户端装置作出发送指/Jn ο
2.根据权利要求1所述的服务器装置,其中,所述特定通信方法是WebSocket协议。
3.根据权利要求2所述的服务器装置,其中,所述初始通信是WebSocket协议的握手。
4.根据权利要求1至权利要求3中的任意一项所述的服务器装置,其中,所述第一条件信息包括触发所述初始通信的执行的事件、计划信息和时间周期中的至少一者。
5.根据权利要求1至权利要求4中的任意一项所述的服务器装置,其中,所述客户端装置是图像形成装置。
6.根据权利要求1至权利要求5中的任意一项所述的服务器装置,该服务器装置还包括: 断开单元,其用于根据对应于所述第一条件信息的第二条件信息来断开通过所述特定通信方法进行的通信。
7.根据权利要求6所述的服务器装置,其中,在不存在要作为所述第二条件信息而被发送到所述客户端装置的指示的情况下,所述断开单元断开通过所述特定通信方法进行的通信。
8.根据权利要求1至权利要求7中的任意一项所述的服务器装置,该服务器装置还包括: 控制单元,其用于在当根据所述第一条件信息从所述客户端装置进行所述初始通信时不存在要被发送到所述客户端装置的指示的情况下,进行控制以不切换到所述特定通信方法。
9.一种用于控制经由互联网与客户端装置通信的服务器装置的控制方法,该控制方法包括以下步骤: 接收来自所述客户端装置的询问; 发送第一条件信息作为针对所接收的询问的答复,根据所述第一条件信息进行初始通信,从而切换到无需来自所述客户端装置的请求而能够从所述服务器装置进行指示的特定通?目方法;以及 通过根据所述第一条件信息进行与所述客户端装置的所述初始通信来切换到所述特定通信方法,并且通过所述特定通信方法对所述客户端装置作出发送指示。
10.根据权利要求9所述的控制方法,其中,所述特定通信方法是WebSocket协议。
11.根据权利要求9或权利要求10所述的控制方法,其中,所述第一条件信息包括触发所述初始通信的执行的事件、计划信息和时间周期中的至少一者。
12.根据权利要求9至权利要求11中的任意一项所述的控制方法,该控制方法还包括: 根据对应于所述第一条件信息的第二条件信息来断开通过所述特定通信方法进行的通信的步骤。
13.根据权利要求12所述的控制方法,其中,在所述断开步骤中,在不存在要作为所述第二条件信息而被发送到所述客户端装置的指示的情况下,断开通过所述特定通信方法进行的通信。
14.根据权利要求9至权利要求13中的任意一项所述的控制方法,该控制方法还包括: 在当根据所述第一条件信息从所述客户端装置进行所述初始通信时不存在要被发送到所述客户端装置的指示的情况下,进行控制以不切换到所述特定通信方法的步骤。
15.一种用于使计算机用作权利要求1至权利要求8中的任意一项的服务器装置的各单元的程序。
16.一种具有客户端装置以及经由互联网与所述客户端装置通信的服务器装置的系统, 其中,所述服务器装置包括: 接收单元,其用于接收来自所述客户端装置的询问; 发送单元,其用于发送第一条件信息作为针对所接收的询问的答复,根据所述第一条件信息进行初始通信,从而切换到无需来自所述客户端装置的请求而能够进行从所述服务器装置的指示的特定通信方法;以及 指示单元,其用于通过根据所述第一条件信息进行与所述客户端装置的所述初始通信来切换到所述特定通信方法,并且即使不存在来自所述客户端装置的请求也通过所述特定通信方法对所述客户端装置作出发送指示,并且其中,所述客户端装置包括: 接收单元,其用于从所述服务器装置接收所述第一条件信息;以及控制单元,其用于根据由所述接收单元接收的所述第一条件信息发起与所述服务器装置的所述初始通信。
17.根据权利要求16所述的系统,其中,所述特定通信方法是WebSocket协议。
18.根据权利要求16或权利要求17所述的系统,其中,所述第一条件信息包括触发所述初始通信的执行的事件、计划信息和时间周期中的至少一者。
19.根据权利要求16至权利要求18中的任意一项所述的系统,其中,所述客户端装置是图像形成装置。
20.根据权利要求16至权利要求19中的任意一项所述的系统,其中,所述服务器装置还包括: 断开单元,其用于根据对应于所述第一条件信息的第二条件信息来断开通过所述特定通信方法进行的通信。
21.根据权利要求20所述的系统,其中,在不存在要作为所述第二条件信息而被发送到所述客户端装置的指示的情况下,所述断开单元断开通过所述特定通信方法进行的通?目。
22.根据权利要求16至权利要求21中的任意一项所述的系统,其中,所述服务器装置在当根据所述第一条件信息从所述客户端装置进行所述初始通信时不存在要被发送到所述客户端装置的指示的情况下,进行控制以不切换到所述特定通信方法。
23.—种系统的控制方法,该系统具有客户端装置以及经由互联网与所述客户端装置通信的服务器装置, 其中,所述服务器装置执行以下步骤: 接收来自所述客户端装置的询问; 发送第一条件信息作为针对所接收的询问的答复,根据所述第一条件信息进行初始通信,从而切换到无需来自所述客户端装置的请求而能够进行从所述服务器装置的指示的特定通信方法;以及 通过根据所述第一条件信息进行与所述客户端装置的所述初始通信来切换到所述特定通信方法,并且即使不存在来自所述客户端装置的请求也通过所述特定通信方法对所述客户端装置作出发送指示,并且 其中,所述客户端装置执行以下步骤: 从所述服务器装置接收所述第一条件信息;以及 根据接收的所述第一条件信息发起与所述服务器装置的所述初始通信。
【文档编号】G06F13/00GK104272280SQ201380023983
【公开日】2015年1月7日 申请日期:2013年2月27日 优先权日:2012年5月10日
【发明者】大桥俊夫 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1