服務(wù)器裝置、系統(tǒng)及其控制方法
【專利摘要】服務(wù)器裝置從經(jīng)由互聯(lián)網(wǎng)連接的客戶端裝置接收詢問(wèn),并且發(fā)送第一條件信息作為其答復(fù),根據(jù)所述第一條件信息進(jìn)行初始通信,從而切換到無(wú)需所述客戶端裝置的請(qǐng)求而能夠從所述服務(wù)器裝置進(jìn)行指示的特定通信方式。
【專利說(shuō)明】服務(wù)器裝置、系統(tǒng)及其控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及經(jīng)由互聯(lián)網(wǎng)與客戶端裝置通信的服務(wù)器裝置、系統(tǒng)及其控制方法。
【背景技術(shù)】
[0002]傳統(tǒng)上,在客戶端/服務(wù)器系統(tǒng)中建立連接的方法當(dāng)中,存在基于通過(guò)接收側(cè)接收的連接請(qǐng)求來(lái)識(shí)別由發(fā)送側(cè)激活的安全協(xié)議(例如SSL),并且利用適當(dāng)?shù)膮f(xié)議來(lái)建立連接的方法。然后對(duì)消息進(jìn)行加密并且進(jìn)行通信。參照例如日本特表2009-508261號(hào)公報(bào)。
[0003]另外,提出了 Push(推送)通信方法,其中以來(lái)自客戶端的握手(handshake)為起點(diǎn),通過(guò)持續(xù)維持通信連接,來(lái)進(jìn)行從互聯(lián)網(wǎng)上的服務(wù)器到防火墻內(nèi)的內(nèi)部網(wǎng)絡(luò)上的客戶端的通信。參見例如互聯(lián)網(wǎng)工程任務(wù)組(Internet Engineering Task Force, IETF) RFC6455:WebSocket 協(xié)議(URL:http://tools.1etf.0rg/html/rfc6455)。
[0004]當(dāng)執(zhí)行Push通信、并且在客戶端與服務(wù)器之間持續(xù)維持通信連接時(shí),在服務(wù)器上,與進(jìn)行通信的客戶端的數(shù)量成比例地持續(xù)消耗諸如存儲(chǔ)器、CPU以及連接等的資源。從而,考慮服務(wù)器上的資源消耗效率,期望通過(guò)僅在Push通信變得必須之后進(jìn)行來(lái)自客戶端的握手,來(lái)建立通信連接,并且在Push通信已完成時(shí)釋放通信連接。
[0005]然而,利用傳統(tǒng)的在客戶端/服務(wù)器系統(tǒng)中建立連接的方法,無(wú)法從服務(wù)器向客戶端指示使得客戶端在進(jìn)行Push通信時(shí)發(fā)起握手。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供這樣一種方法,其中經(jīng)由互聯(lián)網(wǎng)在客戶端裝置與服務(wù)器裝置之間進(jìn)行通信,考慮到服務(wù)器裝置側(cè)的資源,能夠在適當(dāng)?shù)亩〞r(shí)切換到包括上述Push通信的特定通/[目方法。
[0007]根據(jù)本發(fā)明的一方面,提供一種經(jīng)由互聯(lián)網(wǎng)與客戶端裝置通信的服務(wù)器裝置,該服務(wù)器裝置包括:接收單元,其用于接收來(lái)自所述客戶端裝置的詢問(wèn);發(fā)送單元,其用于發(fā)送第一條件信息作為針對(duì)所接收的詢問(wèn)的答復(fù),根據(jù)所述第一條件信息進(jìn)行初始通信,從而切換到無(wú)需來(lái)自所述客戶端裝置的請(qǐng)求而能夠從所述服務(wù)器裝置進(jìn)行指示的特定通信方法;以及指示單元,其用于通過(guò)根據(jù)所述第一條件信息進(jìn)行與所述客戶端裝置的所述初始通信來(lái)切換到所述特定通信方法,并且通過(guò)所述特定通信方法對(duì)所述客戶端裝置作出發(fā)送指示。
[0008]根據(jù)本發(fā)明的另一方面,提供一種用于控制經(jīng)由互聯(lián)網(wǎng)與客戶端裝置通信的服務(wù)器裝置的控制方法,該控制方法包括以下步驟:接收來(lái)自所述客戶端裝置的詢問(wèn);發(fā)送第一條件信息作為針對(duì)所接收的詢問(wèn)的答復(fù),根據(jù)所述第一條件信息進(jìn)行初始通信,從而切換到無(wú)需來(lái)自所述客戶端裝置的請(qǐng)求而能夠從所述服務(wù)器裝置進(jìn)行指示的特定通信方法;以及通過(guò)根據(jù)所述第一條件信息進(jìn)行與所述客戶端裝置的所述初始通信來(lái)切換到所述特定通信方法,并且通過(guò)所述特定通信方法對(duì)所述客戶端裝置作出發(fā)送指示。
[0009]根據(jù)本發(fā)明的另一方面,提供一種具有客戶端裝置以及經(jīng)由互聯(lián)網(wǎng)與所述客戶端裝置通信的服務(wù)器裝置的系統(tǒng),其中,所述服務(wù)器裝置包括:接收單元,其用于接收來(lái)自所述客戶端裝置的詢問(wèn);發(fā)送單元,其用于發(fā)送第一條件信息作為針對(duì)所接收的詢問(wèn)的答復(fù),根據(jù)所述第一條件信息進(jìn)行初始通信,從而切換到無(wú)需來(lái)自所述客戶端裝置的請(qǐng)求而能夠從所述服務(wù)器裝置進(jìn)行指示的特定通信方法;以及指示單元,其用于通過(guò)根據(jù)所述第一條件信息進(jìn)行與所述客戶端裝置的所述初始通信來(lái)切換到所述特定通信方法,并且即使不存在來(lái)自所述客戶端裝置的請(qǐng)求也通過(guò)所述特定通信方法對(duì)所述客戶端裝置作出發(fā)送指示,并且其中,所述客戶端裝置包括:接收單元,其用于從所述服務(wù)器裝置接收所述第一條件信息;以及控制單元,其用于根據(jù)由所述接收單元接收的所述第一條件信息發(fā)起與所述服務(wù)器裝置的所述初始通信。
[0010]根據(jù)本發(fā)明的另一方面,提供一種系統(tǒng)的控制方法,該系統(tǒng)具有客戶端裝置以及經(jīng)由互聯(lián)網(wǎng)與所述客戶端裝置通信的服務(wù)器裝置,其中,所述服務(wù)器裝置執(zhí)行以下步驟:接收來(lái)自所述客戶端裝置的詢問(wèn);發(fā)送第一條件信息作為針對(duì)所接收的詢問(wèn)的答復(fù),根據(jù)所述第一條件信息進(jìn)行初始通信,從而切換到無(wú)需來(lái)自所述客戶端裝置的請(qǐng)求而能夠從所述服務(wù)器裝置進(jìn)行指示的特定通信方法;以及通過(guò)根據(jù)所述第一條件信息進(jìn)行與所述客戶端裝置的所述初始通信來(lái)切換到所述特定通信方法,并且即使不存在來(lái)自所述客戶端裝置的請(qǐng)求也通過(guò)所述特定通信方法對(duì)所述客戶端裝置作出發(fā)送指示,并且其中,所述客戶端裝置執(zhí)行以下步驟:從所述服務(wù)器裝置接收所述第一條件信息;以及根據(jù)接收的所述第一條件信息發(fā)起與所述服務(wù)器裝置的所述初始通信。
[0011]根據(jù)以下參照附圖對(duì)示例性實(shí)施例的描述,本發(fā)明的其他特征將變得清楚。
【專利附圖】
【附圖說(shuō)明】
[0012]包含在說(shuō)明書中并構(gòu)成說(shuō)明書的一部分的附圖例示了本發(fā)明的實(shí)施例,并且與文字說(shuō)明一起用來(lái)解釋本發(fā)明的原理。
[0013]圖1是用于例示Push通信型客戶端/服務(wù)系統(tǒng)的系統(tǒng)結(jié)構(gòu)和硬件結(jié)構(gòu)的框圖。
[0014]圖2是用于例示圖1中所示的系統(tǒng)的軟件結(jié)構(gòu)的框圖。
[0015]圖3A至圖31是用于例示數(shù)據(jù)庫(kù)服務(wù)器服務(wù)模塊內(nèi)的表結(jié)構(gòu)示例的圖。
[0016]圖4是用于描述根據(jù)第一實(shí)施例的用于接收請(qǐng)求的處理的流程圖。
[0017]圖5是用于例示根據(jù)第一實(shí)施例的握手控制信息的示例的圖。
[0018]圖6是用于描述用于登記握手發(fā)起時(shí)的處理的流程圖。
[0019]圖7是用于描述根據(jù)第二實(shí)施例的用于接收請(qǐng)求的處理的流程圖。
[0020]圖8是用于例示根據(jù)第二實(shí)施例的握手控制信息的示例的圖。
[0021]圖9是用于描述當(dāng)設(shè)置是否將進(jìn)行Close (斷開)處理時(shí)的處理的流程圖。
[0022]圖10是用于描述根據(jù)第三實(shí)施例的用于發(fā)起握手的處理的流程圖。
[0023]圖11是用于描述根據(jù)第三實(shí)施例的用于發(fā)送響應(yīng)的處理的流程圖。
【具體實(shí)施方式】
[0024]下文中將參照附圖詳細(xì)描述本發(fā)明的實(shí)施例。在以下實(shí)施例中,利用Push通信型客戶端/服務(wù)器系統(tǒng)的示例來(lái)給出說(shuō)明。注意,針對(duì)Push通信的協(xié)議,利用WebSocket的特定通信方法。
[0025]利用根據(jù)WebSocket的雙向通信,能夠通過(guò)Push從互聯(lián)網(wǎng)上的服務(wù)器裝置進(jìn)行命令發(fā)送。另外,即使不存在來(lái)自客戶端裝置的詢問(wèn)(請(qǐng)求),也能夠進(jìn)行命令發(fā)送,在進(jìn)行雙向通信時(shí),可以省略頭信息等,并且可以降低網(wǎng)絡(luò)上流通的數(shù)據(jù)量。然而,當(dāng)服務(wù)器裝置的資源稀少時(shí),存在服務(wù)器裝置難以管理多個(gè)客戶端裝置的問(wèn)題。
[0026][第一實(shí)施例]
[0027]首先,將利用圖1的框圖中所例示的Push通信型客戶端/服務(wù)器系統(tǒng)的系統(tǒng)結(jié)構(gòu)及硬件結(jié)構(gòu)來(lái)給出說(shuō)明。Push通信型客戶端/服務(wù)器系統(tǒng)提供客戶端計(jì)算機(jī)120、網(wǎng)絡(luò)打印機(jī)140、經(jīng)由LAN連接的防火墻160、以及經(jīng)由WAN連接的服務(wù)器計(jì)算機(jī)100。
[0028]注意,服務(wù)器計(jì)算機(jī)100和客戶端計(jì)算機(jī)120具有通用計(jì)算機(jī)(例如個(gè)人計(jì)算機(jī))的結(jié)構(gòu)。
[0029]另外,客戶端計(jì)算機(jī)120為諸如個(gè)人計(jì)算機(jī)或數(shù)字多功能外圍設(shè)備的圖像形成裝置。
[0030]在服務(wù)器計(jì)算機(jī)100上,CPU 101根據(jù)ROM 103或外部存儲(chǔ)器106中存儲(chǔ)的應(yīng)用程序執(zhí)行各種類型的處理。另外,CPU 101集中控制系統(tǒng)總線107上的各設(shè)備。RAM 102是CPU 101的主存儲(chǔ)器并用作工作區(qū)等。ROM 103是用作針對(duì)基本I/O程序等的存儲(chǔ)區(qū)的只讀存儲(chǔ)器。作為CPU101的控制程序的操作系統(tǒng)(下文中稱為0S)被存儲(chǔ)在ROM 103中或者存儲(chǔ)在外部存儲(chǔ)器106中。另外,在ROM 103中或在外部存儲(chǔ)器106中,存儲(chǔ)有在基于應(yīng)用程序和其他各種類型的數(shù)據(jù)的處理中使用的文件。
[0031]網(wǎng)絡(luò)I/F 104連接到網(wǎng)絡(luò)并控制網(wǎng)絡(luò)通信。外部存儲(chǔ)器I/F 105控制對(duì)外部存儲(chǔ)器106(其可以是硬盤(HD))的訪問(wèn)。外部存儲(chǔ)器106存儲(chǔ)引導(dǎo)程序、各種類型的應(yīng)用、用戶文件、編輯文件等。
[0032]客戶端計(jì)算機(jī)120在其中CPU 111執(zhí)行寫入到ROM 113或外部存儲(chǔ)器116中的基本I/o程序或0S的狀態(tài)下操作?;?/0程序被寫入到R0M113中,并且0S被寫入到ROM113或外部存儲(chǔ)器116中。當(dāng)客戶端計(jì)算機(jī)120的電源被打開時(shí),根據(jù)基本1/0程序的初始程序加載功能,0S從ROM 113或外部存儲(chǔ)器116被寫入到RAM 112中,并且0S的操作啟動(dòng)。系統(tǒng)總線117連接各個(gè)設(shè)備。
[0033]另外,在客戶端計(jì)算機(jī)120中,鍵盤I/F 121控制來(lái)自鍵盤122、指示設(shè)備(未示出)等的輸入。顯示I/F 123控制顯示器124的顯示。CPU 111基于利用顯示器124上的鼠標(biāo)光標(biāo)(未示出)指示的命令來(lái)打開各種登記的窗口,并且執(zhí)行各種數(shù)據(jù)處理。
[0034]在網(wǎng)絡(luò)打印機(jī)140中,網(wǎng)絡(luò)I/F 141連接到網(wǎng)絡(luò)并控制網(wǎng)絡(luò)通信。CPU142基于控制程序向經(jīng)由打印機(jī)I/F 147連接到系統(tǒng)總線151的打印機(jī)148輸出圖像信號(hào)作為輸出信息。注意,控制程序被存儲(chǔ)在ROM 144中或外部存儲(chǔ)器150中。
[0035]CPU 142被構(gòu)造為使得能夠進(jìn)行用于經(jīng)由網(wǎng)絡(luò)I/F 141與客戶端計(jì)算機(jī)120通信的處理,以及使得可以向客戶端計(jì)算機(jī)120通知網(wǎng)絡(luò)打印機(jī)140中的信息。另外,CPU 142基于ROM 144中或者外部存儲(chǔ)器150中存儲(chǔ)的應(yīng)用程序執(zhí)行處理。RAM 143是CPU 142的主存儲(chǔ)器,用作工作存儲(chǔ)器等,并且采用使得可以利用連接到擴(kuò)展端口(未示出)的可選RAM來(lái)擴(kuò)展存儲(chǔ)容量的結(jié)構(gòu)。注意,RAM 143用作輸出信息加載區(qū)域、環(huán)境數(shù)據(jù)存儲(chǔ)區(qū)域、NVRAM。在ROM 144中或者在外部存儲(chǔ)器150中,存儲(chǔ)CPU 142的控制程序、當(dāng)CPU 142生成輸出信息時(shí)使用的字體數(shù)據(jù)、以及在網(wǎng)絡(luò)打印機(jī)140上使用的信息。
[0036]操作單元I/F 145是與操作單元146的接口,其向操作單元146輸出要顯示的圖像數(shù)據(jù)。另外,操作單元I/F 145接收用戶經(jīng)由操作單元146輸入的信息。操作單元146對(duì)應(yīng)于操作屏,在該操作屏上布置有開關(guān)、LED顯示設(shè)備等。打印機(jī)I/F 147向打印機(jī)148 (打印機(jī)引擎)輸出圖像信號(hào)作為輸出信息。外部存儲(chǔ)器I/F(存儲(chǔ)器控制器)149控制對(duì)包括硬盤(HD)或1C卡等的外部存儲(chǔ)器150的訪問(wèn)。另外,關(guān)于外部存儲(chǔ)器150,外部存儲(chǔ)器的數(shù)量不限于1,而是提供至少一個(gè)外部存儲(chǔ)器,并且結(jié)構(gòu)可以為使得可以連接增加內(nèi)置字體的多個(gè)選項(xiàng)字體卡,或者存儲(chǔ)解釋不同打印機(jī)控制語(yǔ)言的語(yǔ)言相關(guān)的程序的外部存儲(chǔ)器。另外,可以存在存儲(chǔ)從操作單元146指示的打印機(jī)模式設(shè)定信息的NVRAM(未示出)。系統(tǒng)總線151連接各個(gè)設(shè)備。
[0037]接著,將利用圖2中所示的框圖來(lái)說(shuō)明Push通信型客戶端/服務(wù)器系統(tǒng)的軟件結(jié)構(gòu)。首先,例示服務(wù)器計(jì)算機(jī)100的軟件結(jié)構(gòu)。
[0038]在服務(wù)器計(jì)算機(jī)100中,應(yīng)用205以及模塊200、204、210存在為外部存儲(chǔ)器106中存儲(chǔ)的文件。這些是在執(zhí)行時(shí)通過(guò)0S以及通過(guò)利用OS的模塊的模塊加載到RAM 102中的程序模塊。另外,應(yīng)用205可以經(jīng)由⑶-R0M(未示出)或網(wǎng)絡(luò)被添加到外部存儲(chǔ)器106的HD中。
[0039]網(wǎng)絡(luò)模塊200進(jìn)行與客戶端計(jì)算機(jī)120的網(wǎng)絡(luò)通信。該網(wǎng)絡(luò)模塊200包括TCP/IP模塊201、HTTP模塊202以及WebSocket模塊203。TCP/IP模塊201通過(guò)TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)通信。HTTP模塊202用TCP作為傳輸協(xié)議并通過(guò)HTTP協(xié)議進(jìn)行網(wǎng)絡(luò)通信。WebSocket模塊203利用TCP作為傳輸協(xié)議并通過(guò)WebSocket協(xié)議進(jìn)行網(wǎng)絡(luò)通信。
[0040]Web服務(wù)器服務(wù)模塊204提供其中當(dāng)其接收到來(lái)自客戶端計(jì)算機(jī)120的HTTP請(qǐng)求時(shí)、用HTTP響應(yīng)答復(fù)的服務(wù)。另一方面,應(yīng)用205通過(guò)向客戶端計(jì)算機(jī)120發(fā)送指令來(lái)經(jīng)由客戶端計(jì)算機(jī)120管理網(wǎng)絡(luò)打印機(jī)140。另外,應(yīng)用205被實(shí)現(xiàn)為例如答復(fù)HTTP請(qǐng)求并執(zhí)行處理的程序。如上所述,應(yīng)用205連同管理客戶端計(jì)算機(jī)120和網(wǎng)絡(luò)打印機(jī)140的Web服務(wù)器模塊204 —起實(shí)現(xiàn)Web應(yīng)用。
[0041]在應(yīng)用205中,搜索模塊206對(duì)客戶端計(jì)算機(jī)120作出指令,使得其搜索連接LAN的網(wǎng)絡(luò)打印機(jī)140。另外搜索模塊206經(jīng)由網(wǎng)絡(luò)模塊200接收客戶端計(jì)算機(jī)120上傳的搜索網(wǎng)絡(luò)打印機(jī)140的結(jié)果。另外,搜索模塊206將接收的搜索結(jié)果存儲(chǔ)到稍后描述的數(shù)據(jù)庫(kù)服務(wù)器服務(wù)模塊210中。固件分配模塊207對(duì)客戶端計(jì)算機(jī)120作出指令,使得其對(duì)連接LAN的網(wǎng)絡(luò)打印機(jī)140分配固件。另外,固件分配模塊207經(jīng)由網(wǎng)絡(luò)模塊200接收客戶端計(jì)算機(jī)120上傳的對(duì)網(wǎng)絡(luò)打印機(jī)140的固件分配的結(jié)果。另外,固件分配模塊207將接收的固件分配結(jié)果存儲(chǔ)在稍后描述的數(shù)據(jù)庫(kù)服務(wù)器服務(wù)模塊210中。
[0042]設(shè)定信息分配模塊208對(duì)客戶端計(jì)算機(jī)120作出指令,使得其對(duì)連接LAN的網(wǎng)絡(luò)打印機(jī)140分配設(shè)定信息。另外,設(shè)定信息分配模塊208經(jīng)由網(wǎng)絡(luò)模塊200接收客戶端計(jì)算機(jī)120上傳的對(duì)網(wǎng)絡(luò)打印機(jī)140的設(shè)定信息分配的結(jié)果。另外,設(shè)定信息分配模塊208將接收的設(shè)定信息分配結(jié)果存儲(chǔ)在稍后描述的數(shù)據(jù)庫(kù)服務(wù)器服務(wù)模塊210中。握手控制信息管理模塊209進(jìn)行用于向客戶端計(jì)算機(jī)120請(qǐng)求發(fā)起WebSocket協(xié)議握手的握手控制信息的創(chuàng)建。注意,握手是用于切換到特定通信方法的初始通信,通過(guò)該特定通信方法,即使在不存在來(lái)自客戶端計(jì)算機(jī)120的請(qǐng)求的情況下,也能夠進(jìn)行對(duì)客戶端計(jì)算機(jī)120的指示。
[0043]數(shù)據(jù)庫(kù)服務(wù)器服務(wù)模塊210管理數(shù)據(jù)庫(kù),并且與來(lái)自其他模塊的請(qǐng)求一并進(jìn)行數(shù)據(jù)存儲(chǔ)和檢索。該數(shù)據(jù)庫(kù)服務(wù)器服務(wù)模塊210可以在與服務(wù)器計(jì)算機(jī)100單獨(dú)的設(shè)備上,如果能夠從應(yīng)用205訪問(wèn)的話。圖3A-3I中例示了數(shù)據(jù)庫(kù)服務(wù)器服務(wù)模塊210中的表結(jié)構(gòu)的示例。注意,圖3A-3I中所例示的表結(jié)構(gòu)僅為示例,可以適用不同的表結(jié)構(gòu)。
[0044]圖3A中的服務(wù)管理表300是管理與應(yīng)用205提供的網(wǎng)絡(luò)打印機(jī)管理服務(wù)相關(guān)的信息的表。由服務(wù)管理表300管理的信息例如是服務(wù)ID和服務(wù)名稱。這里,服務(wù)ID是唯一識(shí)別服務(wù)的ID。
[0045]圖3B中的客戶端計(jì)算機(jī)管理表301是管理服務(wù)器計(jì)算機(jī)100對(duì)其進(jìn)行Push通信的客戶端計(jì)算機(jī)120的信息的表。該客戶端計(jì)算機(jī)管理表301管理的信息是例如客戶端的客戶端ID、客戶端名稱及IP地址。這里,客戶端ID是唯一識(shí)別客戶端計(jì)算機(jī)120的ID。
[0046]圖3C中的客戶端計(jì)算機(jī)服務(wù)管理表302是管理通過(guò)客戶端計(jì)算機(jī)120進(jìn)行的網(wǎng)絡(luò)打印機(jī)管理服務(wù)的關(guān)聯(lián)信息的表。
[0047]圖3D中的打印機(jī)管理表303是管理客戶端計(jì)算機(jī)120搜索的網(wǎng)絡(luò)打印機(jī)140的信息的表。由該打印機(jī)管理表303管理的信息是例如打印機(jī)的打印機(jī)ID、打印機(jī)名稱、安裝位置、打印機(jī)的型號(hào)ID以及打印機(jī)的IP地址。這里,打印機(jī)ID是唯一識(shí)別網(wǎng)絡(luò)打印機(jī)140 的 ID。
[0048]圖3E中的客戶端計(jì)算機(jī)打印機(jī)管理表304是客戶端計(jì)算機(jī)120搜索并且管理要作為管理目標(biāo)的網(wǎng)絡(luò)打印機(jī)140的關(guān)聯(lián)信息的表。
[0049]圖3F中的設(shè)定信息管理表305是管理經(jīng)由客戶端計(jì)算機(jī)120的設(shè)定信息分配模塊228從設(shè)定信息分配模塊208分配給網(wǎng)絡(luò)打印機(jī)140的設(shè)定信息的表。由該設(shè)定信息管理表305管理的信息例如是設(shè)定信息ID、型號(hào)ID、SNMPvl設(shè)定、MIB訪問(wèn)設(shè)定、SNMPv3設(shè)定、管理密碼設(shè)定、安裝位置以及文件服務(wù)器URL。
[0050]這里設(shè)定信息ID是唯一識(shí)別設(shè)定信息的ID。SNMPvl設(shè)定是針對(duì)是否將網(wǎng)絡(luò)打印機(jī)140置于可以使用SNMPvl (簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議版本1)協(xié)議的狀態(tài)的設(shè)定。這里,SNMPvl是用于監(jiān)視/控制網(wǎng)絡(luò)打印機(jī)140的協(xié)議。MIB訪問(wèn)設(shè)定是與對(duì)網(wǎng)絡(luò)打印機(jī)140的MIB (管理信息庫(kù))的訪問(wèn)權(quán)限相關(guān)的設(shè)定,并且存在針對(duì)讀/寫、只讀以及不許可訪問(wèn)的設(shè)定。
[0051]SNMPv3設(shè)定是針對(duì)是否將網(wǎng)絡(luò)打印機(jī)140置于其中其可以使用SNMPv3(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議版本3)的狀態(tài)的設(shè)定。這里,SNMPv3是SNMP的最新版本,并且與vl安全性比較已被加強(qiáng)。管理密碼設(shè)定是當(dāng)根據(jù)初始設(shè)定遠(yuǎn)程管理網(wǎng)絡(luò)打印機(jī)140時(shí)需要的用于改變密碼的設(shè)定。這里,管理密碼設(shè)定出于安全性被加密并且被存儲(chǔ)在設(shè)定信息管理表305中。
[0052]圖3G中的固件管理表306是管理從固件分配模塊207經(jīng)由客戶端計(jì)算機(jī)120的固件分配模塊227分配給網(wǎng)絡(luò)打印機(jī)140的固件信息的表。通過(guò)固件管理表306管理的信息是例如固件ID、型號(hào)ID、固件版本、文件路徑以及發(fā)布日期/時(shí)間。這里,固件ID是唯一識(shí)別固件的ID。文件路徑是固件的實(shí)際文件被存儲(chǔ)的文件路徑。發(fā)布日期/時(shí)間是代表固件的發(fā)布計(jì)劃的日期/時(shí)間信息。
[0053]圖3H中的設(shè)定信息分配任務(wù)管理表307是管理進(jìn)行對(duì)網(wǎng)絡(luò)打印機(jī)140的設(shè)定信息分配的任務(wù)的表。通過(guò)該設(shè)定信息分配任務(wù)管理表307管理的信息例如是任務(wù)ID、打印機(jī)ID、設(shè)定信息ID、分配結(jié)果以及執(zhí)行日期/時(shí)間。任務(wù)ID是唯一識(shí)別設(shè)定信息分配任務(wù)的ID。
[0054]圖31中的固件分配任務(wù)管理表308是管理進(jìn)行對(duì)網(wǎng)絡(luò)打印機(jī)140的固件分配的任務(wù)的表。由該固件分配任務(wù)管理表308管理的信息例如是任務(wù)ID、打印機(jī)ID、固件ID、分配結(jié)果以及執(zhí)行日期/時(shí)間。這里,任務(wù)ID是唯一識(shí)別固件分配任務(wù)的ID。
[0055]接著,返回到圖2,將說(shuō)明客戶端計(jì)算機(jī)120的軟件結(jié)構(gòu)。注意,構(gòu)成客戶端計(jì)算機(jī)120的模塊的各個(gè)為作為文件存在、各自被存儲(chǔ)在R0M113中或外部存儲(chǔ)器116中的程序模塊。另外,各個(gè)模塊在執(zhí)行時(shí)通過(guò)OS以及通過(guò)利用OS的模塊的模塊被加載到RAM 112中。
[0056]網(wǎng)絡(luò)模塊220進(jìn)行與服務(wù)器計(jì)算機(jī)100、網(wǎng)絡(luò)打印機(jī)140的通信。網(wǎng)絡(luò)模塊220包括 TCP/IP 模塊 221、HTTP 模塊 222、以及 WebSocket 模塊 223。TCP/IP 模塊 221 通過(guò) TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)通信。HTTP模塊222利用TCP作為傳輸協(xié)議并且通過(guò)HTTP協(xié)議進(jìn)行網(wǎng)絡(luò)通信。WebSocket模塊223利用TCP作為傳輸協(xié)議并且通過(guò)WebSocket協(xié)議進(jìn)行網(wǎng)絡(luò)通信。
[0057]應(yīng)用224基于從服務(wù)器計(jì)算機(jī)100接收的指令來(lái)管理網(wǎng)絡(luò)打印機(jī)140。另外,應(yīng)用224將關(guān)于網(wǎng)絡(luò)打印機(jī)140的管理的結(jié)果上傳到服務(wù)器計(jì)算機(jī)100。在該應(yīng)用224中,握手控制信息管理模塊225接收/分析從服務(wù)器計(jì)算機(jī)100發(fā)送的握手控制信息。另外,根據(jù)由握手控制信息指定的定時(shí),握手控制信息管理模塊225通過(guò)WebSocket模塊223發(fā)起WebSocket協(xié)議的握手處理。搜索模塊226從服務(wù)器計(jì)算機(jī)100接收指令并且搜索LAN連接的網(wǎng)絡(luò)打印機(jī)140。
[0058]SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)、SLP(服務(wù)定位協(xié)議)是該搜索模塊226使用來(lái)進(jìn)行搜索的通信協(xié)議的示例。除那些以外,還可以使用諸如WS-Disc0very (Web服務(wù)動(dòng)態(tài)發(fā)現(xiàn))的通信協(xié)議。另外,搜索模塊226將針對(duì)網(wǎng)絡(luò)打印機(jī)140的搜索的結(jié)果經(jīng)由網(wǎng)絡(luò)模塊220上傳到服務(wù)器計(jì)算機(jī)100。
[0059]固件分配模塊227接收到來(lái)自服務(wù)器計(jì)算機(jī)100的指令并且向連接LAN的網(wǎng)絡(luò)打印機(jī)140分配固件。另外,固件分配模塊227將對(duì)網(wǎng)絡(luò)打印機(jī)140的固件分配的結(jié)果經(jīng)由網(wǎng)絡(luò)模塊220上傳給服務(wù)器計(jì)算機(jī)100。設(shè)定信息分配模塊228接收到來(lái)自服務(wù)器計(jì)算機(jī)100的指令并向連接LAN的網(wǎng)絡(luò)打印機(jī)140分配設(shè)定信息。另外,設(shè)定信息分配模塊228將對(duì)網(wǎng)絡(luò)打印機(jī)140的設(shè)定信息分配的結(jié)果經(jīng)由網(wǎng)絡(luò)模塊220上傳給服務(wù)器計(jì)算機(jī)100。
[0060]接著,將說(shuō)明網(wǎng)絡(luò)打印機(jī)140的軟件結(jié)構(gòu)。在網(wǎng)絡(luò)打印機(jī)140中,各個(gè)模塊作為ROM144或外部存儲(chǔ)器150中保存的文件存在,并且在執(zhí)行時(shí)被加載到RAM 143中并執(zhí)行。網(wǎng)絡(luò)模塊240使用任意通信協(xié)議來(lái)進(jìn)行與客戶端計(jì)算機(jī)120的網(wǎng)絡(luò)通信。打印處理模塊241進(jìn)行從客戶端計(jì)算機(jī)120發(fā)送的打印作業(yè)的接收和控制并且進(jìn)行打印處理。
[0061]固件管理模塊242進(jìn)行網(wǎng)絡(luò)打印機(jī)140的固件的管理。當(dāng)固件管理模塊242經(jīng)由網(wǎng)絡(luò)模塊240從客戶端計(jì)算機(jī)120上的固件分配模塊227接收到固件分配指令時(shí),固件管理模塊242用接收的固件替換網(wǎng)絡(luò)打印機(jī)140的固件。另外,固件管理模塊242將固件更新結(jié)果作為答復(fù)返回給客戶端計(jì)算機(jī)120上的固件分配模塊227。
[0062]設(shè)定信息管理模塊243進(jìn)行網(wǎng)絡(luò)打印機(jī)140的設(shè)定信息的管理。這里,設(shè)定信息例如是SNMPvl設(shè)定、MIB訪問(wèn)設(shè)定、SNMPv3設(shè)定、管理密碼設(shè)定或安裝位置。當(dāng)設(shè)定信息管理模塊243經(jīng)由網(wǎng)絡(luò)模塊240從客戶端計(jì)算機(jī)120上的設(shè)定信息分配模塊228接收到設(shè)定信息時(shí),設(shè)定信息管理模塊243用接收的設(shè)定來(lái)替換網(wǎng)絡(luò)打印機(jī)140的設(shè)定。另外,設(shè)定信息管理模塊243將設(shè)定信息更新結(jié)果作為答復(fù)返回給客戶端計(jì)算機(jī)120上的設(shè)定信息分配模塊228。
[0063]將利用圖4中例示的流程圖來(lái)說(shuō)明上述結(jié)構(gòu)中當(dāng)服務(wù)器計(jì)算機(jī)100接收到從客戶端計(jì)算機(jī)120發(fā)送的HTTP請(qǐng)求時(shí)的操作。執(zhí)行該處理的程序被存儲(chǔ)在ROM 103或外部存儲(chǔ)器106中,并且在執(zhí)行時(shí)被加載到RAM 102中。另外,通過(guò)CPU 101執(zhí)行該程序,實(shí)現(xiàn)通過(guò)該流程圖描述的處理。
[0064]在步驟S400中,HTTP模塊202經(jīng)由TCP/IP模塊201接收到來(lái)自客戶端計(jì)算機(jī)120的HTTP請(qǐng)求。在步驟S401中,握手控制信息管理模塊209確定是否應(yīng)用205正在請(qǐng)求握手。應(yīng)用205是否正在請(qǐng)求握手的確定可以基于數(shù)據(jù)庫(kù)服務(wù)器服務(wù)模塊210的表中存儲(chǔ)的值來(lái)被確定。
[0065]這里,可以考慮其中客戶端計(jì)算機(jī)120與固件分配服務(wù)通過(guò)客戶端計(jì)算機(jī)服務(wù)管理表302被關(guān)聯(lián),并且固件管理表306登記不久的計(jì)劃發(fā)布的情況。當(dāng)固件被發(fā)布時(shí),期望應(yīng)用205利用Push通信經(jīng)由客戶端計(jì)算機(jī)120盡快向網(wǎng)絡(luò)打印機(jī)140分配固件。從而,在該示例中,握手控制信息管理模塊209確定存在握手請(qǐng)求。
[0066]另外,作為另一示例,可以考慮其中被登記在設(shè)定信息分配任務(wù)管理表307和固件分配任務(wù)管理表308中的在指定時(shí)間段內(nèi)計(jì)劃執(zhí)行的任務(wù)的數(shù)量大于或等于預(yù)定數(shù)量的情況。在通常情況下,客戶端計(jì)算機(jī)120的應(yīng)用224周期性訪問(wèn)服務(wù)器計(jì)算機(jī)100(輪詢),并且客戶端計(jì)算機(jī)120獲取服務(wù)器計(jì)算機(jī)100中登記的任務(wù)信息并執(zhí)行任務(wù)。然而,在服務(wù)器計(jì)算機(jī)100上存在更多登記的任務(wù)的情況下,期望服務(wù)器計(jì)算機(jī)100通過(guò)Push通信指示客戶端計(jì)算機(jī)120執(zhí)行任務(wù)。這樣,在本示例中,握手控制信息管理模塊209確定存在握手請(qǐng)求。
[0067]另外,作為另一示例,可以考慮其中客戶端計(jì)算機(jī)120與設(shè)定分配服務(wù)在客戶端計(jì)算機(jī)服務(wù)管理表302中被新關(guān)聯(lián)的情況。在這種情況下,期望當(dāng)客戶端計(jì)算機(jī)120的應(yīng)用224新搜索網(wǎng)絡(luò)打印機(jī)140時(shí),立即通過(guò)Push通信向網(wǎng)絡(luò)打印機(jī)140分配初始化設(shè)定。這樣,在本示例中,握手控制信息管理模塊209確定存在握手請(qǐng)求。
[0068]如上所述,握手控制信息管理模塊209基于數(shù)據(jù)庫(kù)服務(wù)器服務(wù)模塊210的表中存儲(chǔ)的值來(lái)確定應(yīng)用205是否正在請(qǐng)求握手。注意,握手控制信息管理模塊209還可以基于數(shù)據(jù)庫(kù)服務(wù)器服務(wù)模塊210的表中存儲(chǔ)的值以外的信息來(lái)確定應(yīng)用205是否正在請(qǐng)求握手。在這種情況下,握手控制信息管理模塊209可以基于存儲(chǔ)器的資源消耗、服務(wù)器計(jì)算機(jī)100上的硬盤、以及/或擁塞的網(wǎng)絡(luò)帶寬條件來(lái)進(jìn)行確定。
[0069]在步驟S401中,在確定應(yīng)用205正在請(qǐng)求握手的情況下,處理進(jìn)行到步驟S402,并且當(dāng)不是該情況時(shí),處理進(jìn)行到步驟S408。在步驟S402中,握手控制信息管理模塊209確定應(yīng)用205請(qǐng)求的握手是否是通過(guò)客戶端計(jì)算機(jī)120上的事件的觸發(fā)被發(fā)起。在上述示例中,在當(dāng)固件被發(fā)布時(shí)通過(guò)Push通信初始分配固件的情況下,通過(guò)服務(wù)器計(jì)算機(jī)100上的固件發(fā)布來(lái)觸發(fā)發(fā)起握手。這樣,在步驟S402中,握手控制信息管理模塊209確定該握手不是通過(guò)客戶端計(jì)算機(jī)120上的事件觸發(fā)發(fā)起。
[0070]接著,在從服務(wù)器計(jì)算機(jī)100通過(guò)Push通信指示任務(wù)執(zhí)行的情況下,通過(guò)服務(wù)器計(jì)算機(jī)100上的登記任務(wù)的數(shù)量變得大于或等于預(yù)定數(shù)量來(lái)觸發(fā)發(fā)起握手。從而,在這種情況下,在步驟S402中,握手控制信息管理模塊209確定握手不由客戶端計(jì)算機(jī)120上的事件觸發(fā)發(fā)起。
[0071]最后,在初始化設(shè)定被分配給新搜索的網(wǎng)絡(luò)打印機(jī)140的情況下,如果客戶端計(jì)算機(jī)120搜索網(wǎng)絡(luò)打印機(jī)140,則要通過(guò)網(wǎng)絡(luò)打印機(jī)的發(fā)現(xiàn)來(lái)觸發(fā)發(fā)起握手。從而,在步驟S402中,握手控制信息管理模塊209確定通過(guò)客戶端計(jì)算機(jī)120上的事件來(lái)觸發(fā)發(fā)起握手。
[0072]在步驟S402中,在握手被確定為通過(guò)客戶端計(jì)算機(jī)120上的事件觸發(fā)發(fā)起的情況下,處理進(jìn)行到步驟S404,并且當(dāng)不是該情況時(shí)處理進(jìn)行到步驟S403。在步驟S403中握手控制信息管理模塊209確定應(yīng)用205請(qǐng)求的握手是否被周期性發(fā)起。在上述示例中,在當(dāng)固件被發(fā)布時(shí)固件最初通過(guò)Push通信分配的情況下,固件分配僅執(zhí)行一次。從而,在步驟S403中,握手控制信息管理模塊209確定握手不被周期性發(fā)起。
[0073]另一方面,在通過(guò)Push通信從服務(wù)器計(jì)算機(jī)100指示任務(wù)執(zhí)行的情況下,周期性指示任務(wù)執(zhí)行直到服務(wù)器計(jì)算機(jī)100上的登記任務(wù)的數(shù)量變得不足預(yù)定數(shù)量為止。從而,在這種情況下,在步驟S403中,握手控制信息管理模塊209確定周期性發(fā)起握手。
[0074]在步驟S403中,在確定周期性發(fā)起握手的情況下,處理進(jìn)行到步驟S405,并且當(dāng)不是該情況時(shí),處理進(jìn)行到步驟S406。在步驟S404、步驟S405或步驟S406中,握手控制信息管理模塊209生成握手控制信息。該握手控制信息的示例在圖5中例示。注意,在圖5中,例示了其中描述為XML格式的示例,但是也可以用其他格式進(jìn)行描述。另外,關(guān)于作為用于發(fā)起握手的觸發(fā)的第一條件,將在步驟S404到步驟S406中進(jìn)行說(shuō)明。
[0075]在步驟S404中,握手控制信息管理模塊209生成為了發(fā)起通過(guò)客戶端計(jì)算機(jī)120上的事件觸發(fā)的握手而指定的握手控制信息。為了發(fā)起通過(guò)客戶端計(jì)算機(jī)120上的事件觸發(fā)的握手而指定的握手控制信息的示例在圖5的500中被例示。在該示例中,作為握手發(fā)起的觸發(fā)的集合、類以及事件以XML格式被描述,并且描述當(dāng)網(wǎng)絡(luò)打印機(jī)被發(fā)現(xiàn)時(shí)發(fā)生該事件。
[0076]在步驟S405中,握手控制信息管理模塊209生成為了在指定時(shí)間后周期性發(fā)起握手而指定的握手控制信息。為了在指定時(shí)間量后周期性發(fā)起握手而指定的握手控制信息的示例在圖5的501中被例示。在該示例中,握手的發(fā)起時(shí)間、結(jié)束時(shí)間以及周期以XML格式描述,并且描述了在2012年4月I日O點(diǎn)開始12點(diǎn)結(jié)束以5分鐘間隔來(lái)發(fā)起握手。
[0077]在步驟S406中,握手控制信息管理模塊209生成為了僅在指定時(shí)間發(fā)起一次握手而指定的握手控制信息。為了僅在指定時(shí)間發(fā)起一次握手而指定的握手控制信息的示例在圖5的502中被例示。在該示例中,握手的發(fā)起時(shí)間以XML格式描述,并且描述了在2012年4月I日O點(diǎn)發(fā)起握手。
[0078]在步驟S407中,握手控制信息管理模塊209將在步驟S404到步驟S406的一者中生成的握手控制信息附加到由HTTP模塊202生成的HTTP響應(yīng)。這里,關(guān)于握手控制信息到HTTP響應(yīng)的附加,其可以被包括在例如HTTP頭或正文中。接著,在步驟S408中,HTTP模塊202將HTTP響應(yīng)發(fā)送到客戶端計(jì)算機(jī)120,并且該處理完成。
[0079]注意,給出了其中預(yù)定事件、計(jì)劃信息以及周期被預(yù)定為用于進(jìn)行WebSocket握手(初始化通信)的第一觸發(fā)條件的示例,但是本發(fā)明并不限于此。
[0080]接著,將利用圖6中描述的流程圖來(lái)說(shuō)明用于當(dāng)客戶端計(jì)算機(jī)120向服務(wù)器計(jì)算機(jī)100發(fā)送HTTP請(qǐng)求,并且基于接收的HTTP響應(yīng)登記握手發(fā)起時(shí)的操作。執(zhí)行該處理的程序被存儲(chǔ)在ROM 113中或外部存儲(chǔ)器116中,并且在執(zhí)行時(shí)被加載到RAM 112中。另外,通過(guò)CPU 111執(zhí)行該程序,實(shí)現(xiàn)通過(guò)該流程圖例示的處理。
[0081]在步驟S600中,HTTP模塊222經(jīng)由TCP/IP模塊221向服務(wù)器計(jì)算機(jī)100發(fā)送HTTP請(qǐng)求。在步驟S601中,HTTP模塊222經(jīng)由TCP/IP模塊221接收到從服務(wù)器計(jì)算機(jī)100發(fā)送的HTTP響應(yīng)。在步驟S602中,握手控制信息管理模塊225確定握手控制信息是否被附加到在步驟S601中接收的HTTP響應(yīng)。在握手控制信息被附加的情況下,處理進(jìn)行到步驟S603,并且在不被附加的情況下,處理在這里結(jié)束。
[0082]在步驟S603中,握手控制信息管理模塊225由HTTP響應(yīng)獲得握手控制信息。接著,在步驟S604中,握手控制信息管理模塊225確定獲得的握手控制信息是否描述了握手通過(guò)客戶端計(jì)算機(jī)120上的事件觸發(fā)發(fā)起。在確定結(jié)果為握手控制信息描述了握手是通過(guò)客戶端計(jì)算機(jī)120上的事件觸發(fā)發(fā)起的情況下,處理進(jìn)行到步驟S606,并且當(dāng)不是該情況時(shí),處理進(jìn)行到步驟S605。
[0083]在步驟S605中,握手控制信息管理模塊225確定獲得的握手控制信息是否描述了在指定時(shí)間后,握手被周期性發(fā)起。在確定結(jié)果為握手控制信息描述了在指定時(shí)間后,握手被周期性發(fā)起的情況下,處理進(jìn)行到步驟S607,并且當(dāng)不是該情況時(shí),處理進(jìn)行到步驟S608。在步驟S606、S607或步驟S608中,握手控制信息管理模塊225與WebSocket模塊223 —起登記握手的發(fā)起。
[0084]在步驟S606中,握手控制信息管理模塊225將握手發(fā)起登記到WebSocket模塊223,從而握手通過(guò)客戶端計(jì)算機(jī)120上的事件被觸發(fā)發(fā)起。另外,在步驟S607中,握手控制信息管理模塊225將握手發(fā)起登記到WebSocket模塊223,從而在指定時(shí)間后握手被周期性發(fā)起。另外,在步驟S608中,握手控制信息管理模塊225將握手發(fā)起登記到WebSocket模塊223,從而握手僅在指定時(shí)間被發(fā)起一次。
[0085]利用上述處理,當(dāng)進(jìn)行Push通信時(shí),能夠指示從而發(fā)起用于進(jìn)行從服務(wù)器計(jì)算機(jī)100到客戶端計(jì)算機(jī)120的Push通信的握手。這樣,在服務(wù)器計(jì)算機(jī)100與客戶端計(jì)算機(jī)120之間維持持續(xù)通信連接以進(jìn)行Push通信所經(jīng)歷的時(shí)間能夠被縮短。為此,服務(wù)器計(jì)算機(jī)100上的諸如存儲(chǔ)器和CPU使用以及連接等的資源的消耗能夠被抑制。
[0086][第二實(shí)施例]
[0087]在第一實(shí)施例中,通過(guò)僅用于在進(jìn)行Push通信時(shí)從服務(wù)器計(jì)算機(jī)100向客戶端計(jì)算機(jī)120指示握手發(fā)起,無(wú)需消耗必須外的更多服務(wù)器資源而實(shí)現(xiàn)Push通信。
[0088]在第二實(shí)施例中,將說(shuō)明如下處理,其中服務(wù)器計(jì)算機(jī)100自身檢查登記的Push通信任務(wù),并且如果該任務(wù)的執(zhí)行計(jì)劃間隔在固定時(shí)間段內(nèi),則作出WebSocket會(huì)話KeepAlive指令。利用該WebSocket會(huì)話KeepAlive指令,跳過(guò)Push通信結(jié)束后的Close處理,并且通過(guò)針對(duì)后續(xù)Push通信不關(guān)閉連接而繼續(xù)使用該連接,能夠削減CPU負(fù)荷和時(shí)間消耗。
[0089]因?yàn)榈诙?shí)施例的Push通信型客戶端/服務(wù)器系統(tǒng)的系統(tǒng)結(jié)構(gòu)以及硬件結(jié)構(gòu)/軟件結(jié)構(gòu)與第一實(shí)施例的圖1和圖2的相同,所以其說(shuō)明被省略。
[0090]首先,將利用圖7中所示的流程圖來(lái)描述當(dāng)服務(wù)器計(jì)算機(jī)100接收到從客戶端計(jì)算機(jī)120發(fā)送的HTTP請(qǐng)求時(shí)服務(wù)器計(jì)算機(jī)100的操作。注意,該說(shuō)明的一部分與第一實(shí)施例的圖4重復(fù),與圖4共同的處理步驟用類似的附圖標(biāo)記示出,其說(shuō)明被省略,以下將僅描述不同的部分。注意,執(zhí)行該處理的程序被存儲(chǔ)在ROM 103中或存儲(chǔ)在外部存儲(chǔ)器106中,并且在執(zhí)行時(shí)被加載到RAM 102中。另外,通過(guò)CPU 101執(zhí)行該程序,實(shí)現(xiàn)通過(guò)該流程圖例示的處理。
[0091]在步驟S700中,握手控制信息管理模塊209確定Push通信結(jié)束后的Close處理是否必要。這里,Push通信結(jié)束后的Close處理是否必要的確定例如是,計(jì)劃按照預(yù)定閾值時(shí)間段內(nèi)的間隔執(zhí)行的任務(wù)是否被登記到設(shè)定信息分配任務(wù)管理表307或固件分配任務(wù)管理表308的確定。然而,在Push通信結(jié)束并進(jìn)行Close處理后,結(jié)果是在僅僅短時(shí)間隔后必須進(jìn)行握手從而再次進(jìn)行Push通信,并且消耗服務(wù)器計(jì)算機(jī)100上的CPU資源。這里,在利用設(shè)定信息分配任務(wù)管理表307或固件分配任務(wù)管理表308來(lái)登記計(jì)劃按照預(yù)定閾值時(shí)間段內(nèi)的間隔來(lái)執(zhí)行的任務(wù)的情況下,因?yàn)榫S持連接更加有效,所以確定Push通信后的Close處理不必要。當(dāng)然,握手控制信息管理模塊209可以利用上述方法以外的方法來(lái)確定Push通信后的Close處理不必要。
[0092]在步驟S700中,在Close處理被確定為必要的情況下,處理進(jìn)行到步驟S701,并且當(dāng)不是該情況時(shí)處理進(jìn)行到步驟S702。在該步驟S701中,握手控制信息管理模塊209設(shè)置握手控制信息使得在Push通信結(jié)束后,將進(jìn)行Close處理。另一方面,在步驟S702中,握手控制信息管理模塊209設(shè)置握手控制信息使得在Push通信結(jié)束后,不進(jìn)行Close處理從而進(jìn)行 WebSocket 會(huì)話 KeepAl ive。
[0093]設(shè)置是否在Push通信結(jié)束后進(jìn)行Close處理的握手控制信息的示例在圖8中被例示。注意雖然圖8例示了其中以XML格式進(jìn)行描述的示例,但是也可以以其他格式來(lái)進(jìn)行描述。在圖8中,在close標(biāo)簽中描述是否在Push通信后進(jìn)行Close處理。圖8中的附圖標(biāo)記800、801和802表示分別對(duì)應(yīng)于第一實(shí)施例中說(shuō)明的圖5中所示第一條件500、501和502的第二條件。
[0094]接著,將利用圖9中所示的流程圖,說(shuō)明當(dāng)基于客戶端計(jì)算機(jī)120向服務(wù)器計(jì)算機(jī)100發(fā)送HTTP請(qǐng)求時(shí)接收的HTTP響應(yīng)、客戶端計(jì)算機(jī)120確定并設(shè)置是否要進(jìn)行Close處理時(shí)的操作。注意,因?yàn)樵撜f(shuō)明的一部分與第一實(shí)施例的圖6重復(fù),并且與圖6共同的處理步驟用類似的附圖標(biāo)記示出,其說(shuō)明被省略,并且以下將僅說(shuō)明不同部分。執(zhí)行該處理的程序被存儲(chǔ)在ROM 113中或存儲(chǔ)在外部存儲(chǔ)器116中,并且在執(zhí)行時(shí)被加載到RAM 112中。另夕卜,通過(guò)CPU 111執(zhí)行該程序,實(shí)現(xiàn)通過(guò)該流程圖例示的處理。
[0095]在步驟S900中,握手控制信息管理模塊225基于在步驟S603中獲得的握手控制信息來(lái)確定在Push通信結(jié)束后Close處理是否必要。這里,在確定Close處理必要的情況下,處理進(jìn)行到步驟S901,在確定不必要的情況下,處理進(jìn)行到步驟S902。在步驟S901中,握手控制信息管理模塊225設(shè)置使得,在步驟S606至步驟S608的一者中利用WebSocket模塊223登記的握手發(fā)起后要進(jìn)行的Push通信結(jié)束后,將進(jìn)行Close處理。
[0096]另一方面,在步驟S902中,握手控制信息管理模塊225設(shè)置使得,在步驟S606至步驟S608的一者中利用WebSocket模塊223登記的握手發(fā)起后要進(jìn)行的Push通信結(jié)束后,將跳過(guò)Close處理。
[0097]注意,在Push通信后將跳過(guò)Close處理的情況下,可以通過(guò)服務(wù)器計(jì)算機(jī)100和客戶端計(jì)算機(jī)120的任意一者進(jìn)行WebSocket通信的最后Close處理。例如,在從服務(wù)器計(jì)算機(jī)100進(jìn)行Close處理的情況下,服務(wù)器計(jì)算機(jī)100確定經(jīng)過(guò)了預(yù)定閾值時(shí)間段并且沒有登記計(jì)劃執(zhí)行的任務(wù),并且進(jìn)行Close處理。另一方面,在從客戶端計(jì)算機(jī)120進(jìn)行Close處理的情況下,當(dāng)經(jīng)過(guò)預(yù)定超時(shí)間隔時(shí),進(jìn)行Close處理。
[0098]根據(jù)上述處理,如果登記的Push通信任務(wù)的執(zhí)行計(jì)劃間隔在固定時(shí)間段內(nèi),服務(wù)器計(jì)算機(jī)100指示W(wǎng)ebSocket會(huì)話KeepAlive,并且跳過(guò)Push通信結(jié)束后的Close處理。因?yàn)檫@種情況,通過(guò)針對(duì)后續(xù)Push通信繼續(xù)使用連接,能夠削減服務(wù)器計(jì)算機(jī)100上的CPU負(fù)荷以及花費(fèi)的時(shí)間。
[0099][第三實(shí)施例]
[0100]在第二實(shí)施例中,如果Push通信任務(wù)的執(zhí)行計(jì)劃間隔在固定時(shí)間段內(nèi),服務(wù)器計(jì)算機(jī) 100 指不 WebSocket 會(huì)話 KeepAlive。
[0101]在第三實(shí)施例中,在指定時(shí)間或周期性執(zhí)行的握手發(fā)起被登記在客戶端計(jì)算機(jī)120上的情況下,在進(jìn)行握手發(fā)起之前,對(duì)服務(wù)器計(jì)算機(jī)100作出關(guān)于是否存在握手請(qǐng)求的詢問(wèn)。
[0102]因?yàn)榈谌龑?shí)施例中的Push通信型客戶端/服務(wù)器系統(tǒng)的系統(tǒng)結(jié)構(gòu)以及硬件結(jié)構(gòu)和軟件結(jié)構(gòu)與第一實(shí)施例的圖1和圖2的相同,所以其說(shuō)明被省略。
[0103]另外,因?yàn)楫?dāng)服務(wù)器計(jì)算機(jī)100接收到從客戶端計(jì)算機(jī)120發(fā)送的HTTP請(qǐng)求時(shí)的操作與第一實(shí)施例的圖4中的相同,所以其說(shuō)明被省略。
[0104]另外,因?yàn)楫?dāng)客戶端計(jì)算機(jī)120基于在向服務(wù)器計(jì)算機(jī)100發(fā)送HTTP請(qǐng)求之后接收的HTTP響應(yīng)登記握手發(fā)起時(shí)的操作與第一實(shí)施例的圖6的相同,所以其說(shuō)明被省略。
[0105]這里,將利用圖10中所示的流程圖來(lái)說(shuō)明用于當(dāng)客戶端計(jì)算機(jī)120基于握手請(qǐng)求發(fā)起指定時(shí)間或周期性執(zhí)行握手時(shí)的操作。執(zhí)行該處理的程序被存儲(chǔ)在ROM 113中或存儲(chǔ)在外部存儲(chǔ)器116中,并且在執(zhí)行時(shí)被加載到RAM 112中。另外,通過(guò)CPU 111執(zhí)行該程序,實(shí)現(xiàn)通過(guò)該流程圖例示的處理。
[0106]首先,在步驟S1000中,握手控制信息管理模塊225經(jīng)由網(wǎng)絡(luò)模塊220向服務(wù)器計(jì)算機(jī)100發(fā)送對(duì)獲得是否存在握手請(qǐng)求的請(qǐng)求。在步驟S1001中,握手控制信息管理模塊225接收到經(jīng)由網(wǎng)絡(luò)模塊220從服務(wù)器計(jì)算機(jī)100發(fā)送的響應(yīng)。接著,在步驟S1002中,握手控制信息管理模塊225基于接收的響應(yīng)確定是否存在握手請(qǐng)求。在握手控制信息管理模塊225確定存在握手請(qǐng)求的情況下,處理進(jìn)行到步驟S1003,并且WebSocket模塊223發(fā)起WebSocket協(xié)議握手。另一方面,在握手控制信息管理模塊225確定不存在握手請(qǐng)求的情況下,不發(fā)起握手而結(jié)束處理。
[0107]接著,將利用圖11中所示的流程圖來(lái)說(shuō)明當(dāng)服務(wù)器計(jì)算機(jī)100從客戶端計(jì)算機(jī)120接收到獲得是否存在握手請(qǐng)求的請(qǐng)求并且發(fā)送響應(yīng)時(shí)的操作。執(zhí)行該處理的程序被存儲(chǔ)在ROM 103中或存儲(chǔ)在外部存儲(chǔ)器106中,并且在執(zhí)行時(shí)被加載到RAM 102中。另外,通過(guò)CPU 101執(zhí)行該程序,實(shí)現(xiàn)通過(guò)該流程圖例示的處理。
[0108]首先,在步驟SllOO中,握手控制信息管理模塊209經(jīng)由網(wǎng)絡(luò)模塊200接收到獲得是否存在握手請(qǐng)求的請(qǐng)求。在步驟SllOl中,握手控制信息管理模塊209確定應(yīng)用205是否正在請(qǐng)求握手。例如利用在第一實(shí)施例的步驟S401(圖4)的說(shuō)明中描述的方法來(lái)進(jìn)行應(yīng)用205是否正在請(qǐng)求握手的確定。
[0109]這里,確定通過(guò)握手建立WebSocket會(huì)話是沒有必要的情況是,在服務(wù)器計(jì)算機(jī)100上不存在針對(duì)客戶端計(jì)算機(jī)120的緊急固件升級(jí)指令或者數(shù)量大于閾值的多個(gè)指令的情況。
[0110]在步驟SllOl中,在確定應(yīng)用205正在請(qǐng)求握手的情況下,處理進(jìn)行到步驟S1102,當(dāng)不是該情況時(shí)處理進(jìn)行到步驟S1103。在步驟S1102中,握手控制信息管理模塊209經(jīng)由網(wǎng)絡(luò)模塊200向客戶端計(jì)算機(jī)120發(fā)送存在握手請(qǐng)求的響應(yīng)。
[0111]另一方面,在步驟SI 103中,握手控制信息管理模塊209經(jīng)由網(wǎng)絡(luò)模塊200向客戶端計(jì)算機(jī)120發(fā)送不存在握手請(qǐng)求的響應(yīng)。
[0112]根據(jù)上述處理,在指定時(shí)間或周期性執(zhí)行的握手發(fā)起被登記在客戶端計(jì)算機(jī)120上的情況下,客戶端計(jì)算機(jī)120在發(fā)起握手前確認(rèn)服務(wù)器計(jì)算機(jī)100上的握手請(qǐng)求的存在。這樣,不必要的握手發(fā)起的數(shù)量能夠被減少,并且能夠避免必須外的服務(wù)器計(jì)算機(jī)100的資源(諸如連接)的更多消耗。
[0113]另外,在該實(shí)施例中,客戶端計(jì)算機(jī)120進(jìn)行針對(duì)是否預(yù)先需要握手的請(qǐng)求。然而,即使不進(jìn)行這類請(qǐng)求,在服務(wù)器計(jì)算機(jī)100確定沒必要的情況下,可以響應(yīng)于來(lái)自客戶端計(jì)算機(jī)120的針對(duì)握手的請(qǐng)求忽略或返回錯(cuò)誤。利用這種措施,能夠限制不必要的WebSocket會(huì)話的建立。
[0114][其他實(shí)施例]
[0115]本發(fā)明的各方面還可以通過(guò)讀出并執(zhí)行記錄在存儲(chǔ)設(shè)備上的用于執(zhí)行上述實(shí)施例的功能的程序的系統(tǒng)或裝置的計(jì)算機(jī)(或諸如CPU或MPU的設(shè)備)來(lái)實(shí)現(xiàn),以及通過(guò)由系統(tǒng)或裝置的計(jì)算機(jī)通過(guò)例如讀出并執(zhí)行記錄在存儲(chǔ)設(shè)備上的用于執(zhí)行上述實(shí)施例的功能的程序來(lái)執(zhí)行各步驟的方法來(lái)實(shí)現(xiàn)。鑒于此,例如經(jīng)由網(wǎng)絡(luò)或者從用作存儲(chǔ)設(shè)備的各種類型的記錄介質(zhì)(例如計(jì)算機(jī)可讀介質(zhì))向計(jì)算機(jī)提供程序。
[0116]雖然參照示例性實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但是應(yīng)當(dāng)理解,本發(fā)明并不限于所公開的示例性實(shí)施例。應(yīng)當(dāng)對(duì)所附權(quán)利要求的范圍給予最寬的解釋,以使其涵蓋所有這些變型例以及等同的結(jié)構(gòu)和功能。
[0117]本申請(qǐng)要求2012年5月10日提交的日本專利申請(qǐng)第2012-108912號(hào)的優(yōu)先權(quán),該申請(qǐng)的全部?jī)?nèi)容通過(guò)弓I用并入本文。
【權(quán)利要求】
1.一種經(jīng)由互聯(lián)網(wǎng)與客戶端裝置通信的服務(wù)器裝置,該服務(wù)器裝置包括: 接收單元,其用于接收來(lái)自所述客戶端裝置的詢問(wèn); 發(fā)送單元,其用于發(fā)送第一條件信息作為針對(duì)所接收的詢問(wèn)的答復(fù),根據(jù)所述第一條件信息進(jìn)行初始通信,從而切換到無(wú)需來(lái)自所述客戶端裝置的請(qǐng)求而能夠從所述服務(wù)器裝置進(jìn)行指示的特定通信方法;以及 指示單元,其用于通過(guò)根據(jù)所述第一條件信息進(jìn)行與所述客戶端裝置的所述初始通信來(lái)切換到所述特定通信方法,并且通過(guò)所述特定通信方法對(duì)所述客戶端裝置作出發(fā)送指/Jn ο
2.根據(jù)權(quán)利要求1所述的服務(wù)器裝置,其中,所述特定通信方法是WebSocket協(xié)議。
3.根據(jù)權(quán)利要求2所述的服務(wù)器裝置,其中,所述初始通信是WebSocket協(xié)議的握手。
4.根據(jù)權(quán)利要求1至權(quán)利要求3中的任意一項(xiàng)所述的服務(wù)器裝置,其中,所述第一條件信息包括觸發(fā)所述初始通信的執(zhí)行的事件、計(jì)劃信息和時(shí)間周期中的至少一者。
5.根據(jù)權(quán)利要求1至權(quán)利要求4中的任意一項(xiàng)所述的服務(wù)器裝置,其中,所述客戶端裝置是圖像形成裝置。
6.根據(jù)權(quán)利要求1至權(quán)利要求5中的任意一項(xiàng)所述的服務(wù)器裝置,該服務(wù)器裝置還包括: 斷開單元,其用于根據(jù)對(duì)應(yīng)于所述第一條件信息的第二條件信息來(lái)斷開通過(guò)所述特定通信方法進(jìn)行的通信。
7.根據(jù)權(quán)利要求6所述的服務(wù)器裝置,其中,在不存在要作為所述第二條件信息而被發(fā)送到所述客戶端裝置的指示的情況下,所述斷開單元斷開通過(guò)所述特定通信方法進(jìn)行的通信。
8.根據(jù)權(quán)利要求1至權(quán)利要求7中的任意一項(xiàng)所述的服務(wù)器裝置,該服務(wù)器裝置還包括: 控制單元,其用于在當(dāng)根據(jù)所述第一條件信息從所述客戶端裝置進(jìn)行所述初始通信時(shí)不存在要被發(fā)送到所述客戶端裝置的指示的情況下,進(jìn)行控制以不切換到所述特定通信方法。
9.一種用于控制經(jīng)由互聯(lián)網(wǎng)與客戶端裝置通信的服務(wù)器裝置的控制方法,該控制方法包括以下步驟: 接收來(lái)自所述客戶端裝置的詢問(wèn); 發(fā)送第一條件信息作為針對(duì)所接收的詢問(wèn)的答復(fù),根據(jù)所述第一條件信息進(jìn)行初始通信,從而切換到無(wú)需來(lái)自所述客戶端裝置的請(qǐng)求而能夠從所述服務(wù)器裝置進(jìn)行指示的特定通?目方法;以及 通過(guò)根據(jù)所述第一條件信息進(jìn)行與所述客戶端裝置的所述初始通信來(lái)切換到所述特定通信方法,并且通過(guò)所述特定通信方法對(duì)所述客戶端裝置作出發(fā)送指示。
10.根據(jù)權(quán)利要求9所述的控制方法,其中,所述特定通信方法是WebSocket協(xié)議。
11.根據(jù)權(quán)利要求9或權(quán)利要求10所述的控制方法,其中,所述第一條件信息包括觸發(fā)所述初始通信的執(zhí)行的事件、計(jì)劃信息和時(shí)間周期中的至少一者。
12.根據(jù)權(quán)利要求9至權(quán)利要求11中的任意一項(xiàng)所述的控制方法,該控制方法還包括: 根據(jù)對(duì)應(yīng)于所述第一條件信息的第二條件信息來(lái)斷開通過(guò)所述特定通信方法進(jìn)行的通信的步驟。
13.根據(jù)權(quán)利要求12所述的控制方法,其中,在所述斷開步驟中,在不存在要作為所述第二條件信息而被發(fā)送到所述客戶端裝置的指示的情況下,斷開通過(guò)所述特定通信方法進(jìn)行的通信。
14.根據(jù)權(quán)利要求9至權(quán)利要求13中的任意一項(xiàng)所述的控制方法,該控制方法還包括: 在當(dāng)根據(jù)所述第一條件信息從所述客戶端裝置進(jìn)行所述初始通信時(shí)不存在要被發(fā)送到所述客戶端裝置的指示的情況下,進(jìn)行控制以不切換到所述特定通信方法的步驟。
15.一種用于使計(jì)算機(jī)用作權(quán)利要求1至權(quán)利要求8中的任意一項(xiàng)的服務(wù)器裝置的各單元的程序。
16.一種具有客戶端裝置以及經(jīng)由互聯(lián)網(wǎng)與所述客戶端裝置通信的服務(wù)器裝置的系統(tǒng), 其中,所述服務(wù)器裝置包括: 接收單元,其用于接收來(lái)自所述客戶端裝置的詢問(wèn); 發(fā)送單元,其用于發(fā)送第一條件信息作為針對(duì)所接收的詢問(wèn)的答復(fù),根據(jù)所述第一條件信息進(jìn)行初始通信,從而切換到無(wú)需來(lái)自所述客戶端裝置的請(qǐng)求而能夠進(jìn)行從所述服務(wù)器裝置的指示的特定通信方法;以及 指示單元,其用于通過(guò)根據(jù)所述第一條件信息進(jìn)行與所述客戶端裝置的所述初始通信來(lái)切換到所述特定通信方法,并且即使不存在來(lái)自所述客戶端裝置的請(qǐng)求也通過(guò)所述特定通信方法對(duì)所述客戶端裝置作出發(fā)送指示,并且其中,所述客戶端裝置包括: 接收單元,其用于從所述服務(wù)器裝置接收所述第一條件信息;以及控制單元,其用于根據(jù)由所述接收單元接收的所述第一條件信息發(fā)起與所述服務(wù)器裝置的所述初始通信。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,所述特定通信方法是WebSocket協(xié)議。
18.根據(jù)權(quán)利要求16或權(quán)利要求17所述的系統(tǒng),其中,所述第一條件信息包括觸發(fā)所述初始通信的執(zhí)行的事件、計(jì)劃信息和時(shí)間周期中的至少一者。
19.根據(jù)權(quán)利要求16至權(quán)利要求18中的任意一項(xiàng)所述的系統(tǒng),其中,所述客戶端裝置是圖像形成裝置。
20.根據(jù)權(quán)利要求16至權(quán)利要求19中的任意一項(xiàng)所述的系統(tǒng),其中,所述服務(wù)器裝置還包括: 斷開單元,其用于根據(jù)對(duì)應(yīng)于所述第一條件信息的第二條件信息來(lái)斷開通過(guò)所述特定通信方法進(jìn)行的通信。
21.根據(jù)權(quán)利要求20所述的系統(tǒng),其中,在不存在要作為所述第二條件信息而被發(fā)送到所述客戶端裝置的指示的情況下,所述斷開單元斷開通過(guò)所述特定通信方法進(jìn)行的通?目。
22.根據(jù)權(quán)利要求16至權(quán)利要求21中的任意一項(xiàng)所述的系統(tǒng),其中,所述服務(wù)器裝置在當(dāng)根據(jù)所述第一條件信息從所述客戶端裝置進(jìn)行所述初始通信時(shí)不存在要被發(fā)送到所述客戶端裝置的指示的情況下,進(jìn)行控制以不切換到所述特定通信方法。
23.—種系統(tǒng)的控制方法,該系統(tǒng)具有客戶端裝置以及經(jīng)由互聯(lián)網(wǎng)與所述客戶端裝置通信的服務(wù)器裝置, 其中,所述服務(wù)器裝置執(zhí)行以下步驟: 接收來(lái)自所述客戶端裝置的詢問(wèn); 發(fā)送第一條件信息作為針對(duì)所接收的詢問(wèn)的答復(fù),根據(jù)所述第一條件信息進(jìn)行初始通信,從而切換到無(wú)需來(lái)自所述客戶端裝置的請(qǐng)求而能夠進(jìn)行從所述服務(wù)器裝置的指示的特定通信方法;以及 通過(guò)根據(jù)所述第一條件信息進(jìn)行與所述客戶端裝置的所述初始通信來(lái)切換到所述特定通信方法,并且即使不存在來(lái)自所述客戶端裝置的請(qǐng)求也通過(guò)所述特定通信方法對(duì)所述客戶端裝置作出發(fā)送指示,并且 其中,所述客戶端裝置執(zhí)行以下步驟: 從所述服務(wù)器裝置接收所述第一條件信息;以及 根據(jù)接收的所述第一條件信息發(fā)起與所述服務(wù)器裝置的所述初始通信。
【文檔編號(hào)】G06F13/00GK104272280SQ201380023983
【公開日】2015年1月7日 申請(qǐng)日期:2013年2月27日 優(yōu)先權(quán)日:2012年5月10日
【發(fā)明者】大橋俊夫 申請(qǐng)人:佳能株式會(huì)社