信息處理裝置、中繼服務器、信息中繼方法、控制方法和通信系統的制作方法
【專利摘要】本發明涉及信息處理裝置、中繼服務器、信息中繼方法、控制方法和通信系統。信息處理裝置能夠與被連接到網絡的特定固件信息傳輸裝置和固件提供服務器通信,該信息處理裝置包括:控制設備;和通信單元,該通信單元能夠連接網絡,其中,控制設備被配置成:執行通過連接獲取特定固件信息的特定固件信息獲取處理;執行基于被包括在通過特定固件信息獲取處理獲取的特定固件信息中的特定固件位置信息,從由特定固件位置信息指示的固件提供服務器獲取特定固件的特定固件獲取處理;并且執行將被包括在信息處理裝置中并且對應于通過特定固件獲取處理獲取的特定固件的固件更新為所獲取的特定固件的特定固件更新處理。
【專利說明】信息處理裝置、中繼服務器、信息中繼方法、控制方法和通信系統
【技術領域】
[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日
【發明者】大原清孝 申請人:兄弟工業株式會社