信息处理装置、中继服务器、信息中继方法、控制方法和通信系统的制作方法

文档序号:7799194阅读:149来源:国知局
信息处理装置、中继服务器、信息中继方法、控制方法和通信系统的制作方法
【专利摘要】本发明涉及信息处理装置、中继服务器、信息中继方法、控制方法和通信系统。信息处理装置能够与被连接到网络的特定固件信息传输装置和固件提供服务器通信,该信息处理装置包括:控制设备;和通信单元,该通信单元能够连接网络,其中,控制设备被配置成:执行通过连接获取特定固件信息的特定固件信息获取处理;执行基于被包括在通过特定固件信息获取处理获取的特定固件信息中的特定固件位置信息,从由特定固件位置信息指示的固件提供服务器获取特定固件的特定固件获取处理;并且执行将被包括在信息处理装置中并且对应于通过特定固件获取处理获取的特定固件的固件更新为所获取的特定固件的特定固件更新处理。
【专利说明】信息处理装置、中继服务器、信息中继方法、控制方法和通信系统

【技术领域】
[0001]本公开涉及一种具有固件的信息处理装置、具有中继信息处理装置和特定服务器之间的通信的功能的中继服务器、在中继服务器中使用的信息中继方法和信息中继程序、以及通信系统。

【背景技术】
[0002]已经提出用于具有网络访问功能的各种信息处理装置的各种固件更新方法。
[0003]在JP-A-11-272454中,公开了一种用于使用信息处理装置访问因特网、搜寻更新信息、访问具有通过搜索获得的统一资源定位符(URL)的网站、并且下载更新对象的软件的技术。


【发明内容】

[0004]在图像处理装置中自行地搜寻更新信息并且更新诸如固件的软件的方法可以使信息处理装置的处理负荷和用户的负荷增加,并且也不能够在适当的定时更新。
[0005]而且,近年来,针对使用云(在因特网上的各种资源)的消费者(信息处理装置)的各种特定服务已经被开发。作为特定服务的具体示例,能够考虑到特定供应商共同地管理来自于云侧的消费者的多个信息处理装置。
[0006]为了实现该特定服务,也能够预测将会需要将消费者的信息处理装置的一部分或者全部固件更新为专用于该特定服务的特定固件。在提供此特定服务的情况下,特别地,要求将作为特定服务提供对象的信息处理装置的固件适当地和有效地更新为所期待的特定固件。
[0007]本公开至少提供一种将能够访问网络的信息处理装置的固件适当地和有效地更新为所期待的固件的技术。
[0008]本公开的信息处理装置包括控制设备和能够连接网络的通信单元,并且能够通过通信单元与被连接到网络的特定固件信息传输装置和固件提供服务器通信。控制设备被配置成执行连接建立处理、特定固件信息获取处理、特定固件获取处理、以及特定固件更新处理。
[0009]连接建立处理是下述处理:在信息处理装置和特定固件信息传输装置之间,根据用于建立使能来自特定固件信息传输装置的服务器推送的会话的通信协议来建立会话,并且在所建立的会话中建立与特定固件信息传输装置的连接。特定固件信息获取处理是通过连接获取特定固件信息的处理,其中,特定固件信息来自特定固件信息传输装置且以信息处理装置为地址,包括指示预定特定固件的位置的特定固件位置信息,以将信息处理装置的固件更新为特定固件。特定固件获取处理是下述处理:基于被包括在通过特定固件信息获取处理获取的特定固件信息中的特定固件位置信息,从由特定固件位置信息指示的固件提供服务器获取特定固件。特定固件更新处理是将固件更新为所获取的特定固件的处理,该固件被包括在信息处理装置中并且对应于通过特定固件获取处理获取的特定固件。
[0010]根据被如上所述配置的本公开的信息处理装置,在信息处理装置和特定固件信息传输装置之间建立根据用于建立使能来自特定固件信息传输装置的服务器推送的会话的通信协议的连接。其后,当获取通过该连接从特定固件信息传输装置传输并且以信息处理装置为地址的特定固件信息时,信息处理装置基于被包括在特定固件信息中的特定固件位置信息获取特定固件并且从而将相对应的固件更新为所获取的特定固件。
[0011]因此,根据本公开的信息处理装置,能够基于由信息处理装置接收到的特定固件信息将信息处理装置的固件适当地和有效地更新为所期待的固件(特定固件)。
[0012]顺便提及,上述信息处理装置可以具有下述配置中的至少一个。
[0013]信息处理装置可以包括:第一存储器,该第一存储器被配置成存储信息,其中在通过特定固件信息获取处理获取特定固件信息的情况下,控制设备执行将获取的特定固件信息存储在第一存储器中的存储处理和接收固件的更新请求的更新请求接收处理,并且其中在通过更新请求接收处理接收到更新请求的情况下,控制设备基于被存储在第一存储器中的特定固件信息执行特定固件获取处理和特定固件更新处理。
[0014]信息处理装置可以包括:第二存储器,在该第二存储器中预先存储指示与信息处理装置的固件相对应的预定的嵌入式固件的位置的嵌入式固件位置信息,其中控制设备被配置成:在通过更新请求接收处理接收到更新请求的情况下,执行确定与作为更新请求的对象的固件相对应的特定固件信息是否已经被存储在第一存储器中的特定固件信息存在确定处理;在通过特定固件信息存在确定处理没有确定特定固件信息已经被存储在第一存储器中的情况下,执行从由与作为更新请求的对象的固件相对应并且被存储在第二存储器中的嵌入式固件位置信息指示的固件提供服务器获取嵌入式固件的第一嵌入式固件获取处理;并且执行将作为更新请求的对象的固件更新为通过第一嵌入式固件获取处理获取的嵌入式固件的第一嵌入式固件更新处理。
[0015]信息处理装置可以包括:第二存储器,在该第二存储器中预先存储指示与信息处理装置的固件相对应的预定的嵌入式固件的位置的嵌入式固件位置信息,其中,控制设备被配置成:执行通过该连接获取释放信息的释放信息获取处理,其中,释放信息来自特定固件信息传输装置且以信息处理装置为地址,并且指示将信息处理装置的特定固件返回到预定的嵌入式固件的需要;在通过释放信息获取处理获取释放信息的情况下,执行从由与被存储在第二存储器中的释放信息相对应的嵌入式固件位置信息指示的固件提供服务器获取嵌入式固件的第二嵌入式固件获取处理;并且执行将与释放信息相对应的特定固件更新为通过第二嵌入式固件获取处理获取的嵌入式固件的第二嵌入式固件更新处理。
[0016]在上述信息处理装置中,在通过释放信息获取处理获取释放信息的情况下,控制设备可以执行删除被存储在第一存储器中并且与释放信息相对应的特定固件的特定固件信息的特定固件信息删除处理。
[0017]在上述信息处理装置中,控制设备可以执行连续地或者间歇地保持在信息处理装置和特定固件信息传输装置之间的会话的会话保持处理。
[0018]在上述信息处理装置中,通信协议可以是BOSH上XMPP (XMPP over BOSH:extensible Messaging and Presence Protocol over Bidirect1nal-streams OverSynchronous HTTP:基于同步HTTP双向流上的可扩展通讯和表示协议)。
[0019]本公开的中继服务器包括控制设备和能够连接网络的通信单元,并且能够通过通信单元与被连接到网络的特定服务器和至少一个信息处理装置通信。控制设备被配置成,执行第一建立处理、第二建立处理、特定固件更新命令获取处理、以及第一特定固件信息传输处理。
[0020]第一建立处理是下述处理:响应于来自于信息处理装置的请求,当根据用于建立使能来自中继服务器的服务器推送的会话的第一通信协议来建立会话时,在中继服务器和信息处理装置之间建立第一连接。第二建立处理是下述处理:在中继服务器和特定服务器之间,根据不同于第一通信协议的第二通信协议来建立第二连接。特定固件更新命令获取处理是通过第二连接从特定服务器获取特定固件更新命令的处理,其中特定固件更新命令用于将至少一个信息处理装置的预定的更新对象装置的固件更新为预定的特定固件并且至少包括指示更新对象装置的装置信息和指示特定固件的位置的特定固件位置信息。第一特定固件信息传输处理是基于通过特定固件更新命令获取处理获取的特定固件更新命令,通过第一连接将至少包括特定固件位置信息的特定固件信息传输到更新对象装置的处理。
[0021]根据如上所配置的本公开的中继服务器,在中继服务器和信息处理装置之间建立第一连接,在中继服务器和特定服务器之间建立第二连接。其后,当通过第二连接从特定服务器获取特定固件更新命令时,中继服务器通过第一连接,基于特定固件更新命令将特定固件信息传输到作为更新对象的信息处理装置。
[0022]因此,根据本公开的中继服务器,能够基于来自于特定服务器的特定固件更新命令将信息处理装置的固件适当地和有效地更新为所期待的固件(特定固件)。
[0023]顺便提及,上述中继服务器可以具有下述配置中的至少一个。
[0024]中继服务器可以包括:存储器,该存储器被配置成存储信息,其中控制设备被配置成:在通过特定固件更新命令获取处理获取特定固件更新命令的情况下,执行基于特定固件更新命令来存储与装置信息相关联的特定固件信息的存储处理;并且在满足与一个信息处理装置有关的预定传输条件的情况下,执行通过第一连接将与该一个信息处理装置对应并且被存储在存储器中的特定固件信息传输到该一个信息处理装置的第二特定固件信息传输处理。
[0025]在上述中继服务器中,可以执行存储处理的条件和从信息处理装置到中继服务器执行用于根据第一通信协议的通信的连接的条件中的至少一个被设定为传输条件。
[0026]在上述中继服务器中,控制设备可以被配置成:执行通过第二连接从特定服务器获取特定固件释放命令的特定固件释放命令,其中,特定固件释放命令用于返回至少一个信息处理装置的预定的释放对象装置的特定固件,并且至少包括指示释放对象装置的装置信息;并且执行基于通过特定固件释放命令获取处理获取的特定固件释放命令,通过第一连接将表示需要将特定固件返回到嵌入式固件的释放信息传输到释放对象装置的释放信息传输处理。
[0027]在上述中继服务器中,控制设备可以被配置成:执行通过第二连接从特定服务器获取特定固件释放命令的特定固件释放命令获取处理,其中,特定固件释放命令用于返回至少一个信息处理装置的预定的释放对象装置的特定固件,并且至少包括指示释放对象装置的装置信息;并且在通过特定固件释放命令获取处理获取特定固件释放命令的情况下,基于特定固件释放命令,执行删除与释放对象装置相对应并且被存储在存储器中的特定固件信息的特定固件信息删除处理。
[0028]在上述中继服务器中,第一通信协议可以是BOSH上XMPP(extensible Messagingand Presence Protocol over Bidirect1nal-streams Over Synchronous HTTP:基于同步HTTP双向流上的可扩展通讯和表示协议)。
[0029]在上述中继服务器中,第二通信协议可以是HTTP (HyperText TransferProtocol:超文本传送协议)。
[0030]而且,由本公开的中继服务器中的控制设备执行的处理中的每一个能够被实现为用于使计算机执行相对应的处理的信息中继程序。
[0031]而且,本公开的中继服务器和信息处理装置两者被用于构造通信系统,从而其能够提供能够将信息处理装置的固件适当地和有效地更新为所期待的固件(特定固件)的通信系统。

【专利附图】

【附图说明】
[0032]从参考附图考虑的下面的详细描述中,本公开的前述和附加的特征和特性将会变得更加显而易见,其中:
[0033]图1是图示示例性实施例的特定服务提供系统的示例性配置的配置图;
[0034]图2A是图示被存储在多功能外围装置(MFP)的NVRAM中的固件状态表的说明图,并且图2B是图示被存储在MFP的ROM中的嵌入式固件信息的说明图;
[0035]图3A和图3B是图示被存储在中介服务器中的固件设定表和设备管理表的说明图;
[0036]图4A和图4B是图示示例性实施例的特定服务提供系统的操作示例的序列图;
[0037]图5是图示由业务服务器执行的服务处理的流程图;
[0038]图6是由图6A和图6B组成,是图示由中介服务器执行的中介服务器处理的流程图;
[0039]图7是图示由中介服务器执行的间隔定时器处理的流程图;
[0040]图8是由图8A和图8B组成,是图示由MFP执行的MFP处理的流程图。

【具体实施方式】
[0041]在下文中,将会参考附图描述本公开的适当的示例性实施例。本公开不受到下述示例性实施例的特定设备和结构等等的限制,并且在没有脱离本公开的范围的情况下能够应用各种方面。通过在能够实现本公开的目的的范围内省略下面示例性实施例的配置的一部分来配置的方面也是本公开的示例性实施例,并且通过适当地组合多个下面的示例性实施例来配置的方面也是本公开的示例性实施例。
[0042]( I)特定服务提供系统I的概述
[0043]如在图1中所示,本示例性实施例的特定服务提供系统I包括多个多功能外围装置(MFP) 10、个人计算机(PC) 18、路由器20、中介服务器30、业务服务器40、以及固件提供服务器50。
[0044]各个MFP10能够通过路由器20被连接到在因特网(云)5上存在的各种资源,并且在本示例性实施例中,各个MFP10至少被连接到中介服务器30和固件提供服务器50,使得它们能够相互执行数据通信。PC18能够通过路由器20被连接到因特网5,并且也能够通过路由器20执行与各个MFPlO的数据通信。
[0045]路由器20是用于中继在多个MFPlO和PC18之间的数据通信并且中继多个MFPlO和PC18与存在于因特网5上的各种资源的数据通信的已知的数据中继装置。路由器20具有诸如防火墙功能和地址转换功能(例如,NAT:网络地址转换)的各种功能。
[0046]如从路由器20中看到的,因特网5和被连接到因特网5的各种资源构成云。另一方面,路由器20、被连接到路由器20的MFPlO和PC构成作为所谓的局域网(LAN)的网络。在云侧上,中介服务器30、业务服务器40、以及固件提供服务器50被连接到因特网5。
[0047]通过路由器20,在LAN中的MFPlO和PC18中的每一个被连接到存在于云上的中介服务器30、业务服务器40、以及固件提供服务器50,使得它们能够执行数据通信。而且,甚至在云侧上,中介服务器、业务服务器40、以及固件提供服务器50能够通过因特网5相互执行数据通信。在此示例性实施例中,将会详细地描述在业务服务器40和中介服务器30之间的通信、在中介服务器30和各个MFPlO之间的通信、以及在各个MFPlO和固件提供服务器50之间的通信。
[0048]在路由器20中,防火墙功能是防止路由器20的内部的网络(LAN)被从外部(因特网(5)侧)攻击的功能。防火墙功能被用于监视在与外部的接口中流动的数据,并且检测和阻挡未经授权的访问。地址转换功能是一对一执行在仅在路由器20的内部的网络中使用的私人IP地址与在因特网5上的全球IP地址之间的转换的功能。
[0049]将会描述防火墙功能和地址转换功能的具体操作。作为示例,将会描述在任意一个MFPlO与中介服务器30或者固件提供服务器40之间建立连接的情况下由路由器执行的操作。取决于是否根据请求-响应类型协议,或者根据持续连接类型协议,建立了在MFPlO和通信方之间的连接,防火墙功能和地址转换功能的操作是不同的。
[0050]持续连接类型协议意指具有尽可能长地(连续地或者间歇地)保持连接(会话)使得能够在任意的定时从两侧执行通信的形式的协议。请求-响应类型协议意指,具有相对于请求传输响应的形式的协议。在本示例性实施例中,作为示例,BOSH上XMPP(eXtensibleMessaging and Presence Protocol over Bidirect1nal-streams Over SynchronousHTTP:基于同步HTTP双向流上的可扩展通讯和表示协议)被用作持续连接类型协议,并且HTTP (HyperText Transfer Protocol:超文本传送协议)被用作请求-响应类型协议。[0051 ] 具体地,在本示例性实施例中,主要通过根据持续连接类型的BOSH上XMPP的连接来执行在MFP10和中介服务器30之间的通信,并且主要通过根据请求-响应类型的HTTP的连接来执行在MFP10和固件提供服务器50之间的通信。也主要通过由HTTP的连接来执行在业务服务器40和中介服务器30之间的通信。
[0052]在中介服务器30和MFP10之间建立根据基于作为持续连接类型协议的BOSH上XMPP的XMPP会话请求的连接(在下文中,被称为XMPP连接)的情况下,路由器20的防火墙功能允许在中介服务器30和MFP10之间的所有的连接通过路由器20。而且,路由器20的地址转换功能执行与在中介服务器30和MFP10之间的所有通信有关的地址转换。路由器20识别保持XMPP会话的通信方,从而实现这些操作。因此,在使用XMPP连接的情况下,允许从中介服务器30到MFP10的请求信息经过路由器20。下面将会描述与图8A的步骤S610有关的用于建立XMPP会话的具体程序,并且从而在此没有描述。
[0053]在MFPlO和固件提供服务器50之间建立通过作为请求-响应类型协议的HTTP的连接(在下文中,被称为HTTP连接)的情况下,路由器20的防火墙功能允许从MFPlO到固件提供服务器50的请求信息和从固件提供服务器50到MFPlO的响应信息经过路由器20。然而,防火墙功能阻挡从固件提供服务器50到MFPlO的请求信息。这是因为存在来自于防火墙外部的请求信息可能包括用于未经授权的访问或者入侵的请求信息的风险。通过由路由器20的固件功能识别与从MFPlO传输到固件提供服务器50的请求信息有关的响应信息来实现此功能。
[0054]而且,路由器20的地址转换功能执行与从MFPlO到固件提供服务器50的请求信息和从固件提供服务器50到MFPlO的响应信息有关的地址转换。然而,地址转换功能不能够执行与从固件提供服务器50到MFPlO的请求信息有关的地址转换。因此,从固件提供服务器50到MFPlO的请求信息被阻挡。通过由路由器20识别与从MFPlO传输到固件提供服务器50的请求信息有关的响应信息来实现这些操作。
[0055]本示例性实施例的特定服务提供系统I是特定供应商能够使用以将特定服务提供给合同规定的消费者的系统。消费者使用多个MFP10,并且特定供应商从云侧共同地管理用于消费者的多个MFP10,作为特定服务。具体地,特定供应商能够管理各个MFPlO的可消费的商品的使用状态、置换和补给,并且将对于上述管理所需要的特定功能,或者消费者所期待的特定功能提供给各个MFPlO。
[0056]根据特定服务的内容,对于将消费者的各个MFPlO的一部分或者全部改变(更新)为对于相对应的消费者由用于该特定服务的通用嵌入式固件专门化的自定义固件来说将会是需要的。
[0057]因此,在本示例性实施例中,根据需要将自定义固件存储在固件提供服务器50中,并且将固件信息传输到消费者的各个MFPlO以表示来自于业务服务器40的自定义固件的位置(URL)、内容等等。当消费者的各个MFPlO从云侧接收固件信息时,基于固件信息,相对应的MFPlO能够访问固件提供服务器50的预定的URL并且能够下载自定义固件。
[0058]然而,在本示例性实施例中,固件信息没有从业务服务器40直接地传输到消费者的各个MFP10,而是通过中介服务器30间接地传输。即,来自于业务服务器40的固件信息作为包括固件信息的自定义固件指定命令被直接地传输到中介服务器30。当从业务服务器40接收自定义固件指定命令时,基于自定义固件指定命令,中介服务器30将固件信息传输到是传输对象的各个MFP10。
[0059]存在为何将中介服务器30插入在业务服务器40和消费者的各个MFPlO之间的各种原因,并且主要原因是用于使服务提供侧(特定供应商侧)能够容易地提供各种服务。当需要提供的特定服务的种类的数目增加时或者当作为特定服务提供对象的MFPlO的数目增加时,业务服务器40的负载增加,并且服务提供侧的负载增加。
[0060]而且,为了在必要时将各个MFPlO的固件更新为最新的自定义固件,期待使其能够将固件信息从业务服务器40立即地传输到所期待的MFP10。然而,因为各个MFPlO通过路由器20被连接到因特网5,路由器20变成障碍,并且因此难以从业务服务器40直接地访问各个MFP10。
[0061 ] 因此,在本示例性实施例中,保持基于XMPP会话的、在中介服务器30和各个MFP1之间的持续连接状态,使得必要时能够将数据从中介服务器30传输到各个MPF10。根据此配置,当业务服务器40将以预定MFPlO为地址的信息传输到中介服务器30时,通过XMPP会话,中介服务器30能够将必要的信息传输到处于持续连接状态的目的地MFP10。
[0062]即,因为将中介服务器30插入在业务服务器40和各个MFPlO之间,在没有关于各个MFPlO是处于什么状态(例如,各个MFPlO是否处于能够执行通信的状态)的情况下,业务服务器40能够容易地提供各种服务,不论作为特定服务提供对象的MFP的数目如何。
[0063](2)特定服务供应系统I的配置
[0064]将会详细地描述本示例性实施例的特定提供系统I的各种单元的配置和功能。
[0065](2-1) MFPlO 的配置
[0066]MFPlO具有诸如打印功能、扫描功能、复印功能、以及访问网络的功能的多个功能。如在图1中所示,MFPlO包括CPUll (控制设备的一个示例)、ROMl2, RAM13、非易失性RAM(NVRAM) 14、打印单元15、读取单元16、通信单元17等等。
[0067]在MFPlO中,CPUll根据被存储在R0M12和NVRAM14中的各种程序(包括下面要描述的各个固件)和数据控制在MFPlO内部的各个单元和各种算术运算。RAM13被用作从CPU12等等直接地访问的主存储器。打印单元15在诸如打印纸张的记录介质上形成(打印)图像。读取单元16具有图像传感器,并且读取文档的图像并且生成表示这些图像的图像数据。
[0068]通信单元17是用于将MFPlO与另一装置可通信地连接的网络接口。通信单元17使得MFPlO能够执行与PC18的数据通信和与云侧的数据通信。
[0069]NVRAM14是其中存储的内容是电气地可重写的非易失性存储器。被存储在NVRAM14中的各种程序包括对于MFPlO的操作所需要的固件。本示例性实施例的各个MFPlO被配置成具有被安装在其中的三种固件,并且基于这三种固件操作。三种固件分别与固件编号F1、F2、以及F3相关联。
[0070]在各个MPFlO的产品装运阶段,三种固件全部是通用嵌入式固件。即,已经作为默认嵌入了用于使得普通用户能够使用标准功能的通用固件,而不是专用于特定服务的消费者的自定义固件。
[0071]同时,当由特定供应商将MFPlO注册为特定服务的管理对象时,相对应的MFPlO的唯一的设备ID被指配,并且被设定(存储)在NVRAM14中。因为本示例性实施例的所有MFPlO是特定服务的管理对象,所以为各个MFPlO设定唯一的设备ID。
[0072]当MFPlO被注册为管理对象时,在MFPlO的NVRAM14中生成如在图2A中示出的固件状态表。可以通过在MFPlO等等上的用户的输入操作,或者可以通过特定供应商的直接操作或者远程操作,或者通过各种其它方法,来实现固件状态表的生成。
[0073]在MFPlO的NVRAM14中生成的固件状态表,是存储指示关于三种固件中的每一个,固件是否已经被改变为自定义固件的信息的表。在固件已经被改变为自定义固件的情况下,固件设定表也存储指示自定义固件的版本(固件版本)的信息和指示已经从其获取(下载)自定义固件的URL的信息,如在图2A中所示。
[0074]紧接在生成固件状态表之后,通常,因为所有的三种固件始终处于嵌入式固件状态下,因此所有的项目“URL”和“固件版本”是处于空白状态或者已经写入表示相对应的项目还没有被设定的数据的状态下。其后,当通过中介服务器30从业务服务器40接收到指示改变为自定义固件的需要的请求(具体地,下面要描述的服务器侧固件信息)时,MFPlO根据请求的内容更新固件状态表。具体地,当接收到指示变成用于固件编号的自定义固件的需要的请求时,固件版本和自定义固件的URL被重写。其后,对于已经被请求改变的固件,基于请求的内容,MFPlO访问URL,并且获取(下载)自定义固件,并且将相对应的固件更新为自定义固件。
[0075]而且,也可以通过中介服务器30从业务服务器40接收指示将自定义固件返回到嵌入式固件的需要的请求(下面要描述的服务器侧固件信息)。当接收到与特定固件有关的、指示将自定义固件返回到嵌入式固件的需要的请求时,MFPlO从固件状态表中删除被请求的固件的URL和固件版本。其后,对于需要返回到嵌入式固件的固件,基于被存储在R0M12中的嵌入式固件信息,MFPlO访问嵌入式固件的URL,并且下载嵌入式固件,并且执行对嵌入式固件的更新。
[0076]被存储在R0M12中的嵌入式固件信息是下述信息,其中对于各个固件(各个固件编号),已经设定了指示相对应的固件的嵌入式固件的位置的URL,如在图2B中所示。在MFPlO的产品装运阶段,嵌入式固件信息被存储在R0M12中。
[0077]其后,在需要将固件从自定义固件返回到嵌入式固件的情况下,或者在更新嵌入式固件的情况下,MFPlO能够基于被存储在R0M12中的嵌入式固件信息从被指定的URL下载最新的嵌入式固件,并且执行更新。
[0078]固件状态表的内容,即,各个固件编号的自定义固件的URL和固件版本作为MFP侧固件信息被传输到具有相对应的设备ID的MPF10。
[0079](2-2)固件提供服务器50的描述
[0080]在固件提供服务器50中,存储各个MPFlO的各个固件。在本示例性实施例中,对于各个MFPlO的各个固件,存储嵌入式固件和自定义固件两者。因此,必要时各个MFPlO通过HTTP访问固件提供服务器50的URL,从而下载必要的固件。
[0081]然而,不需要将所有的各种固件存储在一个固件提供服务器50中。只要能使用MFPlO访问和下载所期待的固件,能够适当地确定各个固件将会存储在何处。
[0082](2-3)业务服务器40的描述
[0083]从业务服务器40,将用于改变作为管理对象的MFPlO中的一个或者多个的固件等等的命令传输到中介服务器30。本命令的示例至少包括两种,S卩,用于将固件更新为自定义固件(即,用于将固件变成自定义固件)的自定义固件指定命令,和用于将固件从自定义固件返回到嵌入式固件的自定义固件释放命令。
[0084]自定义固件指定命令是命令,当通过特定供应商的操作员等等执行自定义固件指定操作时该命令被生成并且被传输到中介服务器30。自定义固件指定操作意指,用于指定已经存储了需要被更新到自定义固件的所期待的设备(MFPlO)的设备ID、更新对象的固件编号和固件版本、以及更新对象的自定义固件的固件提供服务器50的内部的URL的操作。
[0085]当通过操作员等等执行自定义固件指定操作时,业务服务器40基于通过自定义固件指定操作指定的各种信息生成自定义固件指定命令。自定义固件指定命令包括:用于将自定义固件指定命令是用于请求将固件更新为自定义固件的命令通知作为更新对象的各个MFPlO的设定命令、作为更新对象的(一个或者多个)MFPlO中的每一个的设备ID、更新对象的固件的固件编号、指示需要被更新的自定义固件的版本的固件版本、以及指示更新对象的固件的位置的URL (在本示例性实施例中的固件提供服务器50内部)。S卩,从业务服务器40传输的自定义固件指定命令是用于共同地指令对于需要将其固件更新为自定义固件的所有MFP进行更新所需要的更新指令和信息的命令。
[0086]自定义固件释放命令是当通过特定供应商的操作员等等执行自定义固件释放操作时被生成并且被传输到中介服务器30的命令。自定义固件释放操作意指需要将自定义固件更新为嵌入式固件的所期待的设备(MFPlO)的设备ID、和更新对象的固件编号的操作。
[0087]当由操作员等等执行自定义固件释放操作时,业务服务器40基于通过自定义固件释放操作指定的各种信息生成自定义固件释放命令。自定义固件释放命令包括:用于将自定义固件释放命令是用于将自定义固件更新为嵌入式固件(即,用于将固件从自定义固件改变成嵌入式固件)的命令通知作为更新对象的各个MFPlO的设定命令、作为更新对象的(一个或者多个)MFPlO中的每一个的设备ID、以及要更新的固件的固件编号。S卩,从业务服务器40传输的自定义固件释放命令是用于共同地指令对于需要将其固件更新为嵌入式固件的所有MFP进行更新所需要的更新指令和信息的命令。
[0088](2-4)中介服务器的配置
[0089]提供中介服务器30以中继从业务服务器40到作为特定服务提供对象的中介服务器30的各种命令,并且中介服务器30包括CPU31 (控制设备的一个示例)、R0M32、R0M33、硬盘驱动(HDD) 34、通信单元35等等。
[0090]CPU31执行被存储在R0M32和HDD34中的各种程序,从而实现诸如命令中继功能的上述功能。要由CPU31执行的各种程序、数据等等被存储在R0M32中。RAM33被用作从CPU31直接地访问的主存储器。
[0091]通信单元35是用于将中介服务器30与另一装置可通信地连接的网络接口。通信接口 35使得中介服务器30能够执行与各个MFPlO和业务服务器40的数据通信。
[0092]在HDD34中,已经安装了包括OS的各种软件。而且,在HDD34中,也存储了在图3A中示出的固件设定表和在图3B中示出的设备管理表。在初始状态下没有存储这些表,并且这些表通过执行与MFPlO或者业务服务器40的通信而被生成并且被存储。
[0093]为作为特定服务提供对象的各个设备(各个MPF10)单独地生成在图3A中示出的固件设定表。具体地,当第一次从业务服务器40传输用于MFPlO的自定义固件指定命令时,生成与MFPlO相对应的固件设定表。
[0094]如在图3A中所示,对于与MFPlO的设备ID相关联的三种固件中的每一种,固件设定表存储指示是否需要改变成自定义固件的信息。在需要更新为自定义固件的情况下,固件设定表还存储指示自定义固件的版本(固件版本)的信息和指示从其能够获取(下载)自定义固件的URL的信息。
[0095]每次从业务服务器40接收到用于固件设定表的上述命令中的任意一个,根据命令的内容来更新固件设定表的内容。例如,在接收到用于具有特定的设备ID的MFPlO的自定义固件指定命令和指示将具有固件编号Fl的固件更新为自定义固件的需要的自定义固件指定命令的情况下,被包括在自定义固件指定命令中的URL和固定版本作为与固件编号Fl相对应的URL和固件版本被写入(覆盖写入)在作为对象的MFPlO的固件设定表中。而且,例如,在接收到用于具有特定设备ID的MFPlO的自定义固件释放命令和指示将具有固件编号F2或者F3的固件从自定义固件返回到嵌入式固件的需要的自定义固件释放命令的情况下,从作为对象的MFPlO的固件设定表中删除与固件编号F2或者F3相对应的URL和固件版本。
[0096]根据需要,中介服务器30传输固件设定表的内容,S卩,各个固件编号的URL和固件版本,作为服务器侧固件信息。
[0097]关于作为特定服务提供对象的各个设备(各个MFP10),为各个设备(各个MFP10)单独地生成在图3B中示出的设备管理表。具体地,当第一次建立来自于MFPlO的XMPP连接时,生成与MFPlO相对应的设备管理表。
[0098]如在图3B中所示,关于相对应的MFP10,设备管理表具有与相对应的MFPlO的设备ID相关联的项目“间隔定时器的定时器值”和项目“状态”。
[0099]间隔定时器是被用于中介服务器30的CPU31根据程序执行定时的软件定时器,软件定时器具有初始值150,并且在预定的间隔(在本示例性实施例中,每I秒)将定时器值减少了 I。下面将会描述如何使用间隔定时器的定时器值。
[0100]状态是指示是否保持通过BOSH上XMPP在相对应的MFPlO和中介服务器30之间的会话(在下文中,被称为XMPP会话)的信息。根据来自于相对应的MFPlO的XMPP连接和间隔定时器的定时器值等等,设定“在线”(保持通过BOSH上XMPP的会话)或者“离线”(中断通过BOSH上XMPP的会话),下面将会描述。
[0101](3)特定服务提供系统I的示意性操作示例
[0102]随后,将会参考图4A和图4B描述本示例性实施例的特定服务提供系统I的操作示例。图4A和图4B的操作示例用于解释整体系统的操作,并且仅对应于整个系统的操作的一部分。
[0103]首先,将会参考图4A描述在MFPlO的激活之后,从业务服务器传输自定义固件指定命令的情况。如在图4A中所示,当通过电源激活MFPlO时,建立通过BOSH上XMPP的、到中介服务器30的会话(XMPP会话),使得建立XMPP连接。XMPP会话是使能来自中介服务器30的服务器推送的会话。
[0104]其后,当通过HTTP连接将自定义固件指定命令从业务服务器40传输到中介服务器30时,基于自定义固件指定命令,中介服务器30更新需要被更新为自定义固件的对象MFP的固件设定表的存储器内容(服务侧固件信息)。
[0105]例如,在作为自定义固件指定命令传输了其中已经将MFPlO指定为对象MFP(设备ID已经被指定)并且指示了将具有固件编号F2的固件更新为最新版本的自定义固件的需要的命令的情况下,在对象MFPlO的固件设定表中的固件编号F2的固件信息(URL和固件版本)被覆盖写入(或者重新写入)。
[0106]当基于从业务服务器40接收到的自定义固件指定命令更新对象MFP的固件设定表时,中介服务器30通过XMPP连接将更新的服务侧固件信息传输到对象MFP并且通过HTTP连接将传输完成响应传输到业务服务器40。
[0107]当通过XMPP从中介服务器30接收服务器侧固件信息时,MFPlO根据服务器侧固件信息更新MFP10的固件状态表的MFP侧固件信息。其后,关于更新对象的自定义固件,MFP10通过HTTP连接从固件提供服务器50请求更新对象的最新版本自定义固件,并且下载最新的版本自定义固件。在下载之后,MFPlO将更新对象的固件更新为被下载的自定义固件。
[0108]例如,在已经更新了在来自于中介服务器30的服务器侧固件信息中的关于固件编号F2的自定义固件的URL和固件版本的情况下,MFPlO访问与固件编号F2的固件有关的被更新的URL,下载被指定的固件版本的自定义固件,并且将固件编号F2的固件更新为被下载的自定义固件。
[0109]随后,将会参考图4B描述从业务服务器40传输自定义固件指定命令并且然后激活MFPlO的情况。如在图4B中所示,与图4A的情况相类似,当在激活对象MFPlO之前通过HTTP连接从业务服务器40传输自定义固件指定命令时,基于自定义固件指定命令,中介服务器30更新需要被更新为自定义固件的对象MFP的固件设定表的存储器内容(服务器侧固件信息)。
[0110]这时,因为在中间服务器30和对象MFPlO之间还没有建立XMPP会话,中介服务器30不能够将更新的服务器侧固件信息传输到对象MFP10。为此,在该情况下,中介服务器30通过HTTP连接将MFP离线响应传输到业务服务器40。其后,当激活对象MFP10,并且建立XMPP会话使得在对象MFPlO和中介服务器30之间建立XMPP连接时,中介服务器30通过XMPP连接将服务器侧固件信息传输到对象MFP10。在将服务器侧固件信息从中介服务器30传输到对象MFPlO之后的对象MFPlO的操作与图4A的相同。
[0111](4)通过业务服务器40的服务处理的描述
[0112]随后,将会参考图5描述由业务服务器40执行的服务处理。当图5的服务处理开始时,在步骤SllO中,业务服务器40确定是否已经发生任何事件。在已经发生事件的情况下,在步骤S120中,业务服务器40确定是否发生的事件是通过操作员等等对设备(具体地,作为特定提供对象的MFP10)的自定义固件指定操作。
[0113]在发生的事件是通过操作员等等的自定义固件指定操作的情况下,在步骤S130中,业务服务器40根据自定义固件指定操作的内容,通过HTTP请求将自定义固件指定命令传输到中介服务器30。在传输之后,当通过HTTP响应从中介服务器30接收响应(传输完成响应或者MFP离线响应)时,业务服务器40返回到步骤SI 10。
[0114]在步骤S120中确定发生的事件不是自定义固件指定操作的情况下,在步骤S150中,业务服务器40确定发生的事件是否是通过操作员等等对设备的自定义固件释放操作。在发生的事件是通过操作员等等的自定义固件释放操作的情况下,在步骤S160中,业务服务器40根据自定义固件释放操作的内容,通过HTTP请求将自定义固件释放命令传输到中介服务器30。在传输自定义固件释放命令之后,当在步骤S170中通过HTTP响应从中介服务器30接收到响应(传输完成响应或者MFP离线响应)时,业务服务器40返回到步骤S110。
[0115]在步骤S150中确定发生的事件不是自定义固件释放操作的情况下,业务服务器40在步骤S180中执行另一处理(根据发生的事件的处理),并且然后返回到步骤S110。
[0116](5)通过中介服务器30的中介服务器处理和间隔定时器处理的描述
[0117]随后,将会参考由图6A和图6B组成的图6描述由中介服务器30执行的中介服务器处理。当被供应电力并且中介服务器30的CPU31开始操作时,CPU31从HDD34读取用于图6的中介服务器处理的程序,并且执行所读取的程序。
[0118]当图6的中介服务器处理开始时,在步骤S210中,中介服务器30的CPU31启动间隔定时器。本示例性实施例的间隔定时器是软件定时器,并且具体地开始图7的间隔定时器处理。当指令其在中介服务器处理的步骤S210中启动间隔定时器时,中介服务器30的CPU31从HDD34读取用于图7的间隔定时器处理的程序,并且以预定的间隔(在本示例性实施例中每I秒)重复地执行程序。平行于中介服务器处理执行此间隔定时器处理。
[0119]当图7的间隔定时器处理开始时,在步骤S510中,对于所有生成的设备管理表,中介服务器30的CPU31将间隔定时器的定时器值减少I。如上所述,在初始状态下,在各个设备管理表中的间隔定时器的定时器值被设定为150。因此,当图7的间隔定时器处理开始时,每经过I秒,各个表的间隔定时器的定时器值从150顺序地减少到149、148、…。
[0120]在步骤S520中,对于间隔定时器的定时器值的值已经变成O的设备管理表,CPU31将状态设定成“离线”并且中断与相对应的MFP的XMPP连接。具体地,丢弃为了保持与相对应的MFP的XMPP会话而被确保的连接资源。即,在本示例性实施例中,在已经将通过XMPP的来自于MFPlO的访问执行预定的时间(在该示例性实施例中,150秒)的情况下,对于MFP10,CPU31确定相对应的MFPlO已经变成离线状态。
[0121]然而,如下面将会描述的,从各个MFPlO定期地(在本示例性实施例中,每120秒)传输XMPP存在通知,并且每次从MFPlO接收到XMPP存在通知,在(下面要描述的)步骤S410的处理中,中介服务器30将相对应的MFPlO的间隔定时器的定时器值的值设定(初始化)为150。因此,在从MFPlO定期地接收XMPP存在通知的同时,保持相对应的XMPP会话。而且,虽然由于任何因素,间隔定时器的定时器值的值已经变成0,并且相对应的MFPlO已经变成离线,其后,当从相对应的MFPlO接收到XMPP存在通知时,状态再次被设定为“在线”,并且间隔定时器的定时器值的值被初始化为150。
[0122]再次参考图6A,将会继续中介服务器处理的描述。当在步骤S201中间隔定时器启动时,在步骤S220中,CPU31确定是否已经发生任何事件。在已经发生事件的情况下,在步骤S230中,CPU31确定发生的事件是来自于MFPlO的XMPP连接(XMPP会话请求)。在发生的事件是来自于MFPlO的XMPP连接的情况下,CPU31建立与相对应MFPlO的XMPP连接(确保连接资源),并且然后进入步骤S240。
[0123]在步骤S240中,CPU31确定是否存在通过XMPP连接的相对应的MFPlO的设备管理表,即,在HDD34中是否已经生成相对应的MFPlO的设备管理表。在已经生成设备管理表的情况下,CPU31进入步骤S260。同时,在还没有生成设备管理表的情况下,CPU31在步骤S250中生成相对应的MFPlO的设备管理表,并且然后进入步骤S260。
[0124]在步骤S260中,CPU31将相对应的MFPlO的设备管理表的状态设定为“在线”。在步骤S270中,CPU31将相对应的MFPlO的设备管理表的间隔定时器的定时器值的值设定为150。
[0125]在步骤S280中,CPU31确定是否存在相对应的MFPlO的固件设定表,即,在HDD34中是否已经生成相对应的MFPlO的固件设定表。在还没有生成相对应的MFPlO的固件设定表的情况下,CPU31返回到步骤S220。同时,在已经生成相对应的MFPlO的固件设定表的情况下,在步骤S290中,CPU31通过XMPP将被包括在固件设定表中的服务器侧固件信息传输到相对应的MFP10,并且然后返回到步骤S220。在本说明书中,“通过XMPP ”意指“通过XMPP连接”,并且“通过HTTP”意指“通过HTTP连接”。
[0126]在步骤S230中确定发生的事件不是来自于MFPlO的XMPP连接的情况下,在步骤S300中,CPU31确定是否发生的事件是通过HTTP连接的来自于业务服务器40的HTTP请求。在发生的事件是来自于业务服务器40的HTTP请求的情况下,在步骤S310中,CPU31确定HTTP请求是自定义固件指定命令或者自定义固件释放命令。
[0127]在HTTP请求不是这些命令中的任意一个的情况下,在步骤S320中,CPU31执行另一处理,即,根据HTTP请求的处理,并且然后返回到步骤S220。
[0128]在HTTP请求是这些命令中的任意一个的情况下,CPU31对于由相对应的命令指定的各个对象MFPlO执行步骤S330至S390的一系列处理。即,虽然在图6中未示出,但是为通过HTTP从业务服务器40获取的自定义固件指定命令(或者自定义固件释放命令)中指定的一个或者多个对象MFPlO中的每一个单独地执行步骤S330至S390的一系列处理。
[0129]在步骤S330中,对于通过命令指定的MFPlO的一个对象MFP10,CPU31确定是否存在对象MFPlO的固件设定表。在存在对象MFPlO的固件设定表的情况下,CPU31进入步骤S350。同时,在没有生成对象MFPlO的固件设定表的情况下,CPU31在步骤S340中生成对象MFPlO的固件设定表,并且然后进入步骤S350。
[0130]在步骤S350中,CPU31根据来自于业务服务器40的命令的内容来更新对象MFPlO的固件设定表的服务器侧固件信息。例如,在通过自定义固件指定命令通知固件编号Fl或者F2的自定义固件的URL和固件版本的情况下,CPU31将被包括在固件设定表中的固件编号Fl或者F2的URL和固件版本重写为被通知的URL和固件版本。而且,例如,在通知指定固件编号Fl的自定义固件的自定义固件释放命令的情况下,CPU31删除被包括在固件设定表中的固件编号Fl的URL和固件版本。
[0131 ] 在步骤S360中,CPU31确定是否已经在设备管理表中将对象MFPlO设定为“离线”。在对象MFPlO已经被设定为“离线”的情况下,在步骤S390中,CPU31通过HTTP将与对象MFPlO有关的MFP离线响应返回到业务服务器40,并且然后返回到步骤S220。
[0132]在对象MFPlO已经被设定为“在线”的情况下,在步骤S370中,CPU31通过XMPP将被包括在固件设定表中的服务器侧固件信息传输到对象MFP10。其后,在步骤S380中,CPU31将与对象MFPlO有关的传输完成响应返回到业务服务器40,并且然后返回到步骤S220。
[0133]在步骤S300中确定发生的事件不是来自于业务服务器40的HTTP请求的情况下,在步骤S400中,CPU31确定发生的事件是否是从任何MFPlO接收到XMPP存在通知。通过XMPP从各个MFPlO定期地接收XMPP存在通知。在发生的事件不是从MFPlO接收到XMPP存在通知的情况下,在步骤S320中,CPU31执行另一处理,即,根据该事件的处理,并且然后返回到步骤S220。
[0134]在发生的事件是从MFPlO接收到XMPP存在通知的情况下,在步骤S410中,CPU31将相对应的MFPlO的设备管理表的间隔定时器的定时器值的值设定(即,初始化)成150,并且然后返回到步骤S220。而且,在步骤S410中,在相对应的MFPlO的设备管理表的状态是“离线”的情况下,CPU31也执行将状态改变成“在线”的处理。
[0135](6)通过MFPlO的MFP处理的描述
[0136]随后,将会参考由图8A和图8B组成的图8描述由MFPlO执行的MFP处理。当被供应电力并且MFPlO的CPUll开始操作时,CPUll从R0M12或者NVRAM14读取用于图8的MFP处理的程序,并且执行被读取的程序。
[0137]当图8的MFPlO处理开始时,在步骤S610中,MFPlO的CPUll建立与中介服务器的XMPP连接。具体地,CPUll通过作为持续连接类型协议的BOSH上XMPP建立在MFPlO和中介服务器30之间的XMPP会话,从而建立XMPP连接。
[0138]将会描述用于建立XMPP会话的具体程序。在相对应的MFPlO的电源从关闭状态变成接通状态时,MFPlO 将 BOSH (bidirect1nal-streams over synchronous HTTP (基于同步HTTP双向流)的缩写)的第一请求信号(即,HTTP请求)传输到中介服务器30。第一请求信号是用于请求中介服务器30传输要由XMPP会话使用的会话ID的信号。
[0139]在从MFPlO接收到第一请求信号的情况下,中介服务器30生成会话ID,并且将包括会话ID的响应信号传输到MFP10。
[0140]在从中介服务器30接收到响应信号的情况下,MFPlO将BOSH的第二请求信号(即,HTTP请求)传输到中介服务器30。第二请求信号包括与被包括在响应信号中的会话ID —致的会话ID。第二请求信号是用于请求中介服务器30建立XMPP会话的信号。
[0141]在从MFPlO接收到包括会话ID的第二请求信号的情况下,中介服务器30将指示“0K”的响应信号(即,HTTP响应)传输到MFP10。因此,MFPlO和中介服务器30执行诸如用于建立XMPP会话的认证信号和响应信号的各种信号的通信,从而建立XMPP会话。
[0142]在建立了 XMPP会话的情况下,MFPlO将BOSH的第三请求信号(即,HTTP请求)传输到中介服务器30。第三请求信号包括上述会话ID。第三请求信号是要成为用于传输包括需要从中介服务器30传输到MFPlO的数据(例如,设定命令)的响应信号的基础的信号。
[0143]在当从MFPlO接收到第三请求信号时,存在需要被传输到MFPlO的设定命令的情况下,中介服务器30将相对应的设定命令作为对第三请求信号的响应信号(B卩,HTTP响应)传输到MFP10。然而,在当从MFPlO接收到第三请求信号时,不存在需要被传输到MFPlO的设定命令时,中介服务器30不将任何设定命令传输到MFP10,直到从业务服务器40接收到设定命令。BOSH的请求信号具有比除了 BOSH之外的正常HTTP的请求信号的超时时间长的超时时间。因此,即使从当接收到第三请求信号时到传输设定命令时的时间长时,中介服务器30也能够在没有确定超时的情况下适当地传输设定命令。而且,在没有确定为超时的情况下,路由器20允许将设定命令从因特网侧(S卩,中介服务器30)传输到LAN侧(S卩,MFP10)。
[0144]在确定在MFPlO和中介服务器30之间已经建立XMPP会话的情况下,中介服务器30将设定命令作为对第三请求信号的响应信号传输到MFP10。相对应的响应信号不包括上述会话ID。然而,因为相对应的响应信号是对包括上述会话ID的第三请求信号(即,通过XMPP会话传送的第三请求信号)的响应信号,能够说,相对应的响应信号是通过XMPP会话传送的信号。
[0145]在步骤S620中,CPUll启动定时器。该定时器是软件定时器,每次经过预定的时间(在本示例性实施例中,每120秒),其生成定时器中断。
[0146]在步骤S630中,CPUll确定是否已经发生任何事件。在已经发生事件的情况下,在步骤S640中,CPUll确定是否发生的事件是定时器中断。在发生的事件是定时器中断的情况下,在步骤S650中,CPUll通过XMPP将XMPP存在通知传输到中介服务器30,并且然后返回到步骤S630。在发生的事件不是定时器中断的情况下,CPUll进入步骤S660。
[0147]在步骤S660中,CPUll确定发生的事件是否是来自于PC18的固件更新请求。在任意的定时,用户等等使能用PC18以指定任意一个MFPlO并且传输用于将所指定的MFPlO的固件的一部分或者全部更新为最新的版本的固件更新请求。在步骤S660中,CPUll确定发生的事件是否是来自于PC18的固件更新请求。
[0148]在步骤S660中确定发生的事件是来自于PC18的固件更新请求的情况下,在步骤S670中,对于被请求更新的固件,CPUll确定MFP侧固件信息是否已经被存储在固件状态表中。在已经存储了与被请求的固件有关的MFP侧固件信息的情况下,在步骤S680中,CPUll基于被存储的MFP侧固件信息(URL和固件版本),通过HTTP从固件提供服务器50下载被请求的固件的自定义固件,并且将被请求的固件更新为自定义固件。在还没有存储与被请求的固件有关的MFP侧固件信息的情况下,在步骤S690中,基于被存储在ROM12中的嵌入式固件信息(URL),CPUll通过HTTP从固件提供服务器50下载被请求的固件的嵌入式固件,并且将被请求的固件更新为嵌入式固件。在步骤S680或者S690中更新固件之后,CPUll返回到步骤S630。
[0149]在步骤S660中确定发生的事件不是来自于PC18的固件更新请求的情况下,在步骤S700中,CPUll确定发生的事件是否是通过XMPP从中介服务器30接收到服务器侧固件信息。在发生的事件不是从中介服务器30接收到服务器侧固件信息的情况下,在步骤S780中,CPUll执行另一处理,S卩,根据发生的事件的处理,并且然后返回到步骤S630。
[0150]在步骤S700中确定发生的事件是从中介服务器30接收到服务器侧固件信息的情况下,在步骤S710中,CPUll针对被存储在相对应的MFPlO的NVRAM14中的固件状态表的内容检查接收到的服务器侧固件信息。
[0151]在步骤S720中,基于在步骤S710中的检查结果,CPUll确定在MFP侧固件信息中是否存在需要被更新(覆盖写入)的任何项目,即,是否已经接收到指示与MFP侧固件信息的URL和固件版本不同的服务器侧固件信息。在存在需要被更新为不同的URL和不同的固件版本的项目的情况下,在步骤S730中,CPUll根据接收到的服务器侧固件信息更新固件状态表的MFP侧固件信息。
[0152]其后,在步骤S740中,对于被包括在三种固件中并且其MFP侧固件信息已经在步骤S730中被更新的固件,CPUl I基于被更新的MFP侧固件信息(被更新的URL和固件版本),通过HTTP从固件提供服务器50下载更新对象的固件的自定义固件,并且将固件更新为自定义固件。
[0153]在步骤S720中确定在MFP侧固件信息中不存在需要被更新(覆盖写入)的项目的情况下,在步骤S750中,基于在步骤S710中的检查结果,CPUll确定在MFP侧固件信息中是否存在需要被删除的任意项目,即,自定义固件的URL和固件版本已经被存储在MFP侧固件信息中并且在接收到的服务器侧固件信息中是否已经被删除。
[0154]在MFP侧固件信息中不存在需要被删除的项目的情况下,因为能够确定MFP侧固件信息的内容与接收到的服务器侧固件信息相同,CPUll返回到步骤S630。在MFP侧固件信息中存在需要被删除的项目的情况下,在步骤S760中,CPUll从MFP侧固件信息中删除相对应的项目(相对应的固件编号的URL和固件版本)。
[0155]其后,在步骤S770中,对于被包括在三种固件中并且已经从MFP侧固件信息中删除了其项目的固件,CPUll基于被存储在R0M12中的嵌入式固件信息,通过HTTP从固件提供服务器50下载嵌入式固件,并且执行对嵌入式固件的更新。在步骤S740或者S770中更新固件之后,CPUll返回到步骤S630。
[0156](7)示例性实施例的作用和其它
[0157]如上所述,在本示例性实施例的特定服务提供系统I中,在中介服务器30和各个MFPlO之间建立持续连接类型XMPP连接,并且在中介服务器30和业务服务器40之间建立请求-响应类型HTTP连接。其后,当通过HTTP连接将自定义固件指定命令或者自定义固件释放命令从业务服务器40传输到中介服务器时,中介服务器30通过XMPP连接,根据接收到的命令的内容将服务器侧固件信息传输到由接收到的命令指定的MFP10。当接收到以MFPlO为地址并且从中介服务器30传输的服务器侧固件信息时,根据服务器侧固件信息的内容,MFPlO执行自定义固件的更新。
[0158]具体地,当从业务服务器40传输指示具有特定固件编号的固件需要被更新为自定义固件的自定义固件指定命令,并且从中介服务器30传输根据该命令的服务器侧固件信息时,对于需要被改变的固件,MFPlO基于被包括在从中介服务器30接收到的服务器侧固件信息中的URL和固件版本来下载和更新自定义固件,并且更新为自定义固件。
[0159]因此,根据需要,从业务服务器40传输自定义固件指定命令,从而能够将作为特定服务提供对象的各个MFPlO的固件适当地和有效地更新为自定义固件。
[0160]而且,当从业务服务器40传输指示将具有特定固件编号的固件从自定义固件返回到嵌入式固件的需要的自定义固件释放命令,并且从中介服务器30传输根据该命令的服务器侧固件信息时,对于需要被返回到嵌入式固件的固件,MFPlO基于R0M12的嵌入式固件信息来下载嵌入式固件,并且更新为嵌入式固件。
[0161 ] 因此,根据需要从业务服务器40传输自定义固件释放命令,从而对于其自定义固件已经变成不必要的固件,能够在适当的定时有效地执行返回到嵌入式固件。
[0162]而且,每次从业务服务器40接收到自定义固件指定命令或者自定义固件释放命令,中介服务器30基于接收到的命令的内容重写各个MFPlO的固件设定表的内容(服务器侧固件信息)。因此,当在MFPlO和中介服务器30建立XMPP连接时,能够将这时最新的服务器侧固件信息传输到MFP10,并且使MFPlO的固件变成最新状态。
[0163]而且,甚至在各个MFPlO中,每次从中介服务器30接收到服务器侧固件信息,接收到的服务器侧固件信息的内容被反映到被包括在相对应的MFPlO的固件状态表中的MFP侧固件信息。因此,在存在从PC18接收到的固件更新请求的情况下,对于自定义固件,能够基于固件状态表的内容获取最新版本的自定义固件。
[0164]甚至在嵌入式固件中,嵌入式固件信息被预先存储在R0M12中。因此,在从PC18接收到固件更新请求的情况下,能够基于R0M12的嵌入式固件信息获取最新版本的嵌入式固件。
[0165]即,在MFPlO中,与自定义固件有关的固件状态表被存储在NVRAM14中并且根据来自于中介服务器30的服务器侧固件信息而被适当地更新,并且嵌入式固件信息被预先存储在R0M12中。因此,能够基于固件状态表和嵌入式固件信息保持用于特定服务的内容的各个MFPlO的固件,并且适当地享受特定服务。
[0166]而且,在各个MFP10和中介服务器30之间保持XMPP会话。其后,各个MFPlO能够实时响应来自于中介服务器30的服务器侧固件信息,并且将固件保持在所期待的最新状态。
[0167]而且,在本示例性实施例中,MFPlO对应于本公开的信息处理装置的示例,中介服务器30对应于本公开的中继服务器的示例,业务服务器40对应于本公开的特定服务器的示例,中介服务器30的HDD34对应于本公开的存储器的示例,MFPlO的NVRAM14对应于本公开的第一存储器的示例,并且MFPlO的R0M12对应于本公开的第二存储器的示例。此外,自定义固件对应于本公开的特定固件的示例,自定义固件的URL对应于本公开的特定固件位置信息的示例,嵌入式固件的URL对应于本公开的嵌入式固件位置信息的示例,设备ID对应于本公开的装置信息的示例,服务器侧固件信息对应于本公开的特定固件信息的示例,由MFPlO传输XMPP存在通知对应于本公开的通信保持处理的示例,自定义固件指定命令是本公开的特定固件更新命令的示例,并且自定义固件释放命令对应于本公开的特定固件释放命令的示例。此外,从中介服务器30传输到MFPlO以便于将固件返回到嵌入式固件并且已经从其删除与该固件相对应的URL和固件版本的服务器侧固件信息对应于本公开的释放信息的示例。
[0168][其它示例性实施例]
[0169](I)在从业务服务器40接收到各个命令的情况下,中介服务器30根据作为包括三种固件的信息的全部的信息的、接收到的命令,来传输服务器侧固件信息。然而,中介服务器30不需要传输三种固件的全部信息。
[0170]例如,在从业务服务器40传输指示关于具有固件编号Fl的固件,需要更新自定义固件的自定义固件指定命令的情况下,中介服务器30可以仅对于作为更新对象的固件编号Fl的自定义固件,将相对应的自定义固件的URL和固件版本传输到相对应的MFP10。
[0171 ] 而且,例如,在从业务服务器40接收到指示将具有固件编号Fl的固件从自定义固件返回到嵌入式固件的需要的自定义固件释放命令的情况下,中介服务器30可以仅对于需要被返回到嵌入式固件的固件编号Fl的固件,将指示将固件编号Fl的固件返回到嵌入式固件的需要的信息传输到相对应的MFP10。
[0172]结果,中介服务器30能够识别与自定义固件有关的业务服务器40的最新信息(即,哪个MFPlO的哪个固件需要被更新为自定义固件的哪个版本,或哪个MFPlO的哪个固件需要被返回到嵌入式固件)。只要根据需要能够将最新信息传输到各个MFP10,则能够适当地确定用于将各种信息保存和存储在中介服务器30中的具体方法和将各种信息传输到各个MFPlO的定时。
[0173]从MFP (10)侧的角度,只要其能够适当地通知相对应的MFPlO的哪一个固件需要被处理(是否需要将固件改变成自定义固件或者嵌入式固件,当需要将一个固件改变成自定义固件时能够在哪里获取自定义固件,等等),能够适当地确定相对应的MFPlO和中介服务器30的特定配置。
[0174](2)在上述示例性实施例中,已经描述各个MFPlO的固件的种类是三种的情况。然而,固件的种类的数目不限于此。固件的种类的数目可以是一种,或者可以是四种或者更多。
[0175](3)不需要将中介服务器30插入在业务服务器40和各个MFPlO之间。为了更新固件,可以将命令从业务服务器40直接传输到各个MFP10。然而,在该情况下,例如,需要通过使用各个MFPlO以持续地访问业务服务器40并获取命令,或者通过在各个MFPlO和业务服务器40之间建立XMPP会话,来适当地生能够将命令从业务服务器40直接地传输到各个MFPlO的情形。
【权利要求】
1.一种信息处理装置,包括: 控制设备;以及 通信单元,所述通信单元被配置成通过网络执行与特定固件信息传输装置和固件提供服务器的通信, 其中,所述控制设备被配置成: 执行建立处理,所述建立处理根据使能服务器推送的通信协议来建立在所述信息处理装置和所述特定固件信息传输装置之间的会话,并且在所建立的会话中,并且建立与所述特定固件信息传输装置的连接; 执行特定固件信息获取处理,所述特定固件信息获取处理通过所述连接来从所述特定固件传输装置获取特定固件信息,其中,所述特定固件信息至少包括指示特定固件的位置的特定固件位置信息,以将所述信息处理装置的固件更新为所述特定固件; 执行特定固件获取处理,所述特定固件获取处理基于包括在通过所述特定固件信息获取处理所获取的所述特定固件信息中的所述特定固件位置信息来从所述固件提供服务器获取由所述特定固件位置信息所指示的所述特定固件;并且 执行特定固件更新处理,所述特定固件更新处理将所述固件更新为所获取的特定固件,所述固件被包括在所述信息处理装置中并且与通过所述特定固件获取处理所获取的所述特定固件相对应。
2.根据权利 要求1所述的信息处理装置,进一步包括: 第一存储器,所述第一存储器被配置成存储信息, 其中,当通过所述特定固件信息获取处理来获取所述特定固件信息时,所述控制设备执行存储处理和更新请求接收处理,所述存储处理将所获取的特定固件信息存储在所述第一存储器中,所述更新请求接收处理接收所述固件的更新请求,并且 其中,当通过所述更新请求接收处理接收所述更新请求时,所述控制设备基于存储在所述第一存储器中的所述特定固件信息来执行所述特定固件获取处理和所述特定固件更新处理。
3.根据权利要求2所述的信息处理装置,进一步包括: 第二存储器,在所述第二存储器中预先存储嵌入式固件位置信息,所述嵌入式固件位置信息指示与所述信息处理装置的所述固件相对应的指定的嵌入式固件的位置, 其中,所述控制设备被配置成: 当通过所述更新请求接收处理接收所述更新请求时,执行特定固件信息存在确定处理,所述特定固件信息存在确定处理确定与作为所述更新请求的对象的固件相对应的所述特定固件信息是否已经被存储在所述第一存储器中; 当所述特定固件信息存在确定处理没有确定所述特定固件信息已经被存储在所述第一存储器中时,执行第一嵌入式固件获取处理,所述第一嵌入式固件获取处理从所述固件提供服务器获取由所述嵌入式固件位置信息所指示的所述嵌入式固件,所述嵌入式固件位置信息与作为所述更新请求的对象的所述固件相对应并且被存储在所述第二存储器中;并且 执行第一嵌入式固件更新处理,所述第一嵌入式固件更新处理将作为所述更新请求的对象的所述固件更新为通过所述第一嵌入式固件获取处理所获取的所述嵌入式固件。
4.根据权利要求2所述的信息处理装置,进一步包括: 第二存储器,在所述第二存储器中存储嵌入式固件位置信息,所述嵌入式固件位置信息指示与所述信息处理装置的所述固件相对应的指定的嵌入式固件的位置, 其中,所述控制设备被配置成: 执行释放信息获取处理,所述释放信息获取处理通过所述连接来获取释放信息,其中,所述释放信息从所述特定固件信息传输装置被传输到所述信息处理装置,并且指示将所述信息处理装置的所述特定固件返回为指定的嵌入式固件的需要; 在通过所述释放信息获取处理获取所述释放信息的情况下,执行第二嵌入式固件获取处理,所述第二嵌入式固件获取处理从所述固件提供服务器获取由所述嵌入式固件位置信息所指示的所述嵌入式固件,所述嵌入式固件位置信息与存储在所述第二存储器中的所述释放信息相对应;并且 执行第二嵌入式固件更新处理,所述第二嵌入式固件更新处理将与所述释放信息相对应的所述特定固件更新为通过所述第二嵌入式固件获取处理所获取的所述嵌入式固件。
5.根据权利要求4所述的信息处理装置, 其中,当所述释放信息获取处理获取所述释放信息时,所述控制设备执行特定固件信息删除处理,所述特定固件信息删除处理删除存储在所述第一存储器中并且与所述释放信息相对应的所述特定固件的所述特定固件信息。
6.根据权利要求1所 述的信息处理装置, 其中,所述控制设备执行会话保持处理,所述会话保持处理连续地或者间歇地保持在所述信息处理装置和所述特定固件信息传输装置之间的所述会话。
7.根据权利要求1所述的信息处理装置, 其中,所述通信协议是通过BOSH的XMPP,其中,所述通过BOSH的XMPP是通过同步HTTP双向流的可扩展消息收发和表示协议。
8.—种中继服务器,包括: 控制设备;以及 通信单元,所述通信单元被配置成通过网络执行与特定服务器和至少一个信息处理设备的通信, 所述控制设备被配置成: 响应于来自所述信息处理装置的请求,执行第一建立处理,所述第一建立处理在根据第一通信协议的会话的建立时,在所述中继服务器和所述信息处理装置之间建立第一连接,所述第一通信协议用于建立使能来自所述中继服务器的服务器推送的会话; 执行第二建立处理,所述第二建立处理在所述中继服务器和所述特定服务器之间建立根据不同于所述第一通信协议的第二通信协议的第二连接; 执行特定固件更新命令获取处理,所述特定固件更新命令获取处理通过所述第二连接来从所述特定服务器获取特定固件更新命令,其中,所述特定固件更新命令用于将所述至少一个信息处理装置的指定的更新对象装置的固件更新为特定固件,并且至少包括指示所述更新对象装置的装置信息和指示所述特定固件的位置的特定固件位置信息;以及 执行第一特定固件信息传输处理,所述第一特定固件信息传输处理基于通过所述特定固件更新命令获取处理所获取的所述特定固件更新命令,通过所述第一连接来将至少包括所述特定固件位置信息的特定固件信息传输到所述更新对象装置。
9.根据权利要求8所述的中继服务器,进一步包括: 存储器,所述存储器被配置成存储信息, 其中,所述控制设备被配置成: 当所述特定固件更新命令获取处理获取所述特定固件更新命令时,执行存储处理,所述存储处理基于所述特定固件更新命令来与所述装置信息相关联地存储所述特定固件信息;并且 当满足与一个信息处理装置有关的指定的传输条件时,执行第二特定固件信息传输处理,所述第二特定固件信息传输处理通过所述第一连接将所述特定固件信息传输到所述一个信息处理装置,所述特定固件信息与所述一个信息处理装置相对应并且被存储在所述存储器中。
10.根据权利要求9所述的中继服务器, 其中,所述传输条件是执行所述存储处理和执行从所述信息处理装置到所述中继服务器的用于根据所述第一通信协议的通信的连接中的至少一个。
11.根据权利要求8所述的中继服务器, 其中,所述控制设备被配置成: 执行特定固件释放命令获取处理,所述特定固件释放命令获取处理通过所述第二连接从所述特定服务器获取特定固件释放命令,其中,所述特定固件释放命令用于返回所述至少一个信息处理装置的指定的释放对象装置的所述特定固件,并且至少包括指示所述释放对象装置的装置信息;并且 执行释放信息传输处理,所述释放信息传输处理基于通过所述特定固件释放命令获取处理所获取的所述特定固件释放命令,通过所述第一连接来将释放信息传输到所述释放对象装置,所述释放信息表示将所述特定固件返回为所述嵌入式固件。
12.根据权利要求9所述的中继服务器, 其中,所述控制设备被配置成: 执行特定固件释放命令获取处理,所述特定固件释放命令获取处理通过所述第二连接从所述特定服务器获取特定固件释放命令,其中,所述特定固件释放命令用于返回所述至少一个信息处理装置的指定的释放对象装置的所述特定固件,并且至少包括指示所述释放对象装置的装置信息;并且 当所述特定固件释放命令获取处理获取所述特定固件释放命令时,执行特定固件信息删除处理,所述特定固件信息删除处理基于所述特定固件释放命令来删除所述特定固件信息,所述特定固件信息与所述释放对象装置相对应并且被存储在所述存储器中。
13.根据权利要求8所述的中继服务器, 其中,所述第一通信协议是通过BOSH的XMPP,其中,所述通过BOSH的XMPP是通过同步HTTP双向流的可扩展消息收发和表示协议。
14.根据权利要求8所述的中继服务器, 其中,所述第二通信协议是HTTP,其中,所述HTTP是超文本传送协议。
15.一种在中继服务器中使用的信息中继方法,所述中继服务器被配置成通过网络执行与特定服务器和至少一个信息处理装置的通信,所述方法包括:当建立根据使能来自所述中继服务器的服务器推送的第一通信协议的会话时,通过在所述中继服务器和所述信息处理装置之间建立的第一连接来从所述特定服务器获取特定固件更新命令,其中,所述特定固件更新命令用于更新所述至少一个信息处理装置的指定的更新对象装置的固件,并且至少包括指示所述更新对象装置的装置信息和指示所述特定固件的位置的特定固件位置信息;以及 基于所获取的所述特定固件更新命令,通过根据不同于所述第一通信协议的第二通信协议的第二连接,将至少包括所述特定固件位置信息的特定固件信息传输到所述更新对象>J-U ρ?α装直。
16.一种在包括在中继服务器中的计算机中执行的控制计算机的方法,所述计算机被包括在能够通过网络与特定服务器和至少一个信息处理装置进行通信的中继服务器中,所述方法包括: 当建立根据使能来自所述中继服务器的服务器推送的第一通信协议的会话时,响应于来自所述信息处理装置的请求,在所述中继服务器和所述信息处理装置之间建立第一连接; 在所述中继服务器和所述特定服务器之间建立根据不同于所述第一通信协议的第二通信协议的第二连接; 通过所述第二 连接从所述特定服务器获取特定固件更新命令,其中,所述特定固件更新命令用于将所述至少一个信息处理装置的指定的更新对象装置的固件更新为特定固件,并且至少包括指示所述更新对象装置的装置信息和指示所述特定固件的位置的特定固件位置信息;以及 基于通过所述特定固件更新命获取处理所获取的所述特定固件更新命令,通过所述第一连接来将至少包括所述特定固件位置信息的特定固件信息传输到所述更新对象装置。
17.—种通信系统,所述通信系统包括配置成通过网络执行与特定服务器和至少一个信息处理装置的通信的中继服务器,所述至少一个信息处理装置被配置成通过所述网络来执行与所述中继服务器和固件提供服务器的通信, 所述中继服务器被配置成: 响应于来自所述信息处理装置的请求,执行第一建立处理,所述第一建立处理在建立根据使能来自所述中继服务器的服务器推送的第一通信协议的会话时,在所述中继服务器和所述信息处理装置之间建立第一连接; 执行第二建立处理,所述第二建立处理在所述中继服务器和所述特定服务器之间建立根据不同于所述第一通信协议的第二通信协议的第二连接; 执行特定固件更新命令获取处理,所述特定固件更新命令获取处理通过所述第二连接来从所述特定服务器获取特定固件更新命令,其中,所述特定固件更新命令用于将所述至少一个信息处理装置的指定的更新对象装置的固件更新为特定固件,并且至少包括指示所述更新对象装置的装置信息和指示所述特定固件的位置的特定固件位置信息;并且执行特定固件信息传输处理,所述特定固件信息传输处理基于通过所述特定固件更新命令获取处理所获取的所述特定固件更新命令,通过所述第一连接来将至少包括所述特定固件位置信息的特定固件信息传输到所述更新对象装置,并且 所述信息处理装置被配置成:执行连接建立处理,所述连接建立处理在所述信息处理装置和所述中继服务器之间建立所述第一连接; 执行特定固件信息获取处理,所述特定固件信息获取处理通过所述第一连接来获取所述特定固件信息,所述特定固件信息从所述中继服务器被传送到所述信息处理装置; 执行特定固件获取处理,所述特定固件获取处理基于包括在通过所述特定固件信息获取处理所获取的所述特定固件信息中的所述特定固件位置信息,从由所述特定固件位置信息所指示的所述固件提供服务器获取所述特定固件;并且 执行特定固件更新处理,所述特定固件更新处理将包括在所述信息处理装置中并且与通过所述特定固件获取处理所获取的所述特定固件相对应的所述固件更新为所获取的特定固 件。
【文档编号】H04L29/06GK104052735SQ201410098138
【公开日】2014年9月17日 申请日期:2014年3月17日 优先权日:2013年3月15日
【发明者】大原清孝 申请人:兄弟工业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1