網絡設備、系統和方法
【專利摘要】本發明提供一種網絡設備、系統和方法。第一客戶機計算機向第二客戶機計算機作出經由第二客戶機計算機與服務器計算機建立推送通信的間接推送通信請求。在建立間接推送通信之后,第二客戶機計算機向第一客戶機計算機傳送使用推送通信從服務器計算機向第一客戶機計算機給出的指令。
【專利說明】網絡設備、系統和方法
【技術領域】
[0001]本發明涉及一種控制網絡上的服務器和網絡設備之間的通信的技術。
【背景技術】
[0002]在因特網環境下的客戶機/服務器系統中,由于防火墻,不能從作為各種打印服務的發送源的服務器向作為各種打印服務的執行源的客戶機側圖像形成設備發送數據。相應地,提出了一種輪詢式通信方法,其中,從客戶機側圖像形成設備向作為各種打印服務的發送源的服務器,作出關于有無命令的詢問。日本專利公開第2007-334612號公開了一種設備管理系統,其中,從被管理的設備接收到關于有無跨越防火墻的指令的詢問時,管理設備在接收到詢問時建立的會話中,作為對詢問的答復發送指令。
[0003]設想了以來自客戶機的初始通信(握手(Handshake))為起點,進行從因特網上的服務器(管理設備)到防火墻內的內網上的網絡設備的推送(Push)通信的通信方法(推送通信方法)。推送通信方法是使得能夠在沒有來自防火墻內的指令請求(HTTP請求等)的情況下,從管理設備提供指令的通信方法。推送通信方法例如包括稱為“WebSocket”的協議(RFC6455)。
[0004]管理設備通過以推送通信方法進行通信,能夠實時分發命令,這消除了在從網絡設備到管理設備的輪詢方案中,對有無命令的輪詢詢問的需要。換句話說,借助于推送通信,能夠消除在現有技術中出現的由輪詢的間隔產生的時間損失。
[0005]然而,推送通信具有在網絡設備和管理設備之間始終保持通信連接的特征。因此,在從成本等的觀點出發而設置網絡設備和管理設備之間的通信連接數量的上限的系統中,連接的數量容易達到上限值。因此,可能存在在網絡設備和管理設備之間無法建立推送通信(無法開始握手)的情況。
【發明內容】
[0006]本發明提供一種網絡設備,即使網絡設備和管理設備建立握手以開始推送通信失敗,該網絡設備也能夠接收管理設備使用推送通信而作出的指令。
[0007]根據本發明的一方面,提供了一種網絡設備,其經由防火墻與外部管理設備通信,所述網絡設備包括:接收單元,用于從其他網絡設備接收利用預定通信方法作為與所述管理設備的通信方法的請求,在所述預定通信方法中,不從所述防火墻內獲得指令請求,并允許來自所述管理設備的指令;以及傳送單元,用于向所述其他網絡設備,傳送在請求利用所述預定通信方法之后、使用所述預定通信方法從所述管理設備向所述其他網絡設備給出的指令。
[0008]通過以下參照附圖對示例性實施例的描述,本發明的其他特征將變得清楚。
【專利附圖】
【附圖說明】
[0009]圖1是示出本實施例的信息處理系統的示例性配置的圖。[0010]圖2A至2C是示出信息處理系統的示例性軟件配置的圖。
[0011]圖3是示出第一客戶機計算機進行的操作處理的示例的圖。
[0012]圖4是示出服務器計算機進行的操作處理的示例的圖。
[0013]圖5是示出第二客戶機計算機進行的操作處理的示例的圖。
[0014]圖6是示出第二客戶機計算機中的示例性日程(schedule)的圖。
[0015]圖7是示出第一客戶機計算機進行的操作處理的示例的圖。
【具體實施方式】
[0016](第一實施例)
[0017]圖1是示出本實施例的信息處理系統的示例性配置的圖。本實施例的信息處理系統是推送通信類型的客戶機服務器系統。推送通信是使得能夠在沒有來自防火墻內的指令請求的情況下,從服務器計算機100提供指令的預定通信方法。在本實施例中,使用WebSocket協議,作為推送通信協議。下文中,還將使用WebSocket協議的通信描述為WebSocket 通信。
[0018]圖1所示的信息處理系統包括第一客戶機計算機110、第一打印機130、第二客戶機計算機170、第二打印機180和服務器計算機100。第一和第二客戶機計算機是要經由網絡從服務器計算機100監視的網絡設備。第一和第二客戶機計算機經由防火墻160與服務器計算機100通信,服務器計算機100用作布置在防火墻160外部的管理設備。第一和第二客戶機計算機中的各個例如是諸如圖像形成設備、移動信息終端、客戶機PC等的網絡設備。
[0019]服務器計算機100經由WAN (廣域網)301通過防火墻160連接到第一和第二客戶機計算機。第一客戶機計算機110經由LAN (局域網)300連接到第二客戶機計算機170。第一打印機130連接到第一客戶機計算機110。此外,第二打印機180連接到第二客戶機計算機170。
[0020]服務器計算機100、第一客戶機計算機110和第二客戶機計算機170中的各個具有通用計算機配置。在下面的描述中,僅給出服務器計算機100、第一客戶機計算機110和第二客戶機計算機170的硬件配置中的一個的描述,省略對相同硬件配置的重復描述。
[0021]服務器計算機100包括CPU101、RAM102、R0M103、網絡I/F104、外部存儲器I/F105和外部存儲器106,其中,CPU是中央處理單元的縮寫,RAM是隨機存取存儲器的縮寫,ROM是只讀存儲器的縮寫。
[0022]CPUlOl基于存儲在R0M103或外部存儲器106中的應用程序等,執行處理。此外,CPUlOl對連接到系統總線107的設備進行總體控制。RAM102用作CPUlOl的主存儲器、工
作區等。
[0023]R0M103是用作存儲基本I/O程序等的存儲區的只讀存儲器。R0M103或外部存儲器106存儲用作CPUlOl的控制程序的操作系統程序(下文中稱為“OS”)等。此外,R0M103和外部存儲器106存儲在基于應用程序等進行處理時要使用的文件和其它各種數據。
[0024]網絡I/F104連接到網絡,用于進行網絡通信。外部存儲器I/F105控制對諸如硬盤(HD)等的外部存儲器106的訪問。外部存儲器106存儲引導程序、各種應用、用戶文件、編輯文件等。[0025]服務器計算機100在CPUlOl執行寫入R0M103或外部存儲器106的基本I/O程序和OS的狀態下運行。基本I/O程序已寫入R0M103中。此外,OS已寫入R0M103或外部存儲器106中。當接通計算機的電源時,通過基本I/O程序中的初始程序加載功能,將OS從R0M103或外部存儲器106寫到RAM102中,由此開始OS的操作。附圖標記107表示將設備彼此連接的系統總線。
[0026]第一客戶機計算機110 包括 CPU111、RAM112、R0M113、網絡 I/F114、鍵盤 I/F115 和鍵盤116。此外,第一客戶機計算機110包括顯示器I/F117、顯示器118、外部存儲器I/F119和外部存儲器120。
[0027]鍵盤I/F115控制來自鍵盤116和指示設備(未示出)的輸入。顯示器I/F117控制顯示器118上的顯示。CPUlll基于通過鼠標(未示出)等在顯示器118上指示的命令,打開各種登記的窗口,并且執行各種數據處理。
[0028]第一打印機130包括網絡1/^131、0?譏32、狀11133、1?011134、操作單元1/^135、操作單元136、打印機I/F137和打印機138。此外,第一打印機130包括外部存儲器I/F139和外部存儲器140。
[0029]使用網絡I/F131作為到第一客戶機計算機110的連接總線。CPU132基于控制程序等,經由連接到系統總線141的打印機I/F137,向打印機138輸出作為輸出信息的圖像信號。注意,控制程序存儲在R0M134、外部存儲器140等中。CPU132能夠經由網絡I/F131與計算機進行通信處理。使用這種布置,CPU132向第一客戶機計算機110通知第一打印機130中的信息等。此外,CPU132基于存儲在R0M134或外部存儲器140中的應用程序等,執行處理。
[0030]RAM133用作CPU132的主存儲器、工作區等。RAM133被配置為能夠通過連接到附加端口(未示出)的備件RAM來增加存儲器容量。注意,RAM133用于輸出信息展開區域、環境數據存儲區域、NVRAM (非易失性隨機存取存儲器)等。此外,外部存儲器140例如是硬盤(HD)等。R0M134或外部存儲.器140存儲CPU132的控制程序、在生成輸出信息時要使用的字體數據、要在第一打印機130上使用的信息等。操作單元I/F135用作與操作單元136的接口,并且向操作單元136輸出要顯示的圖像數據。
[0031]操作單元I/F135還接收用戶經由操作單元136輸入的信息。操作單元136對應于布置有操作開關、LED顯示器等的操作面板等。打印機I/F137向打印機138 (打印機引擎)輸出作為輸出信息的圖像信號。外部存儲器I/F139控制對諸如硬盤(HD)、USB存儲器、IC卡等的外部存儲器140的訪問。外部存儲器的數量不限于一個,而可以是至少一個或更多個。第一打印機130還可以被配置為能夠與存儲內置字體以及對選項字體卡和不同語言系統的打印機控制語言進行解釋的程序的多個外部存儲器連接。此外,第一打印機130還可以具有NVRAM (未示出),并且存儲來自操作單元136的打印機模式設置信息。附圖標記141表示將設備彼此連接的系統總線。
[0032]第二客戶機計算機170的配置與第一客戶機計算機110的配置相同,因此省略其說明。此外,第二打印機180的配置與第一打印機130的配置相同,因此省略其說明。
[0033]圖2A至2C是示出本實施例的信息處理系統的示例性軟件配置的圖。圖2A示出了服務器計算機100的軟件配置。在服務器計算機100中,應用205和各模塊中的各個是作為存儲在外部存儲器106中的文件存在的程序模塊。將應用205和各模塊加載到RAM102中來執行。
[0034]可以經由在外部存儲器106中設置的⑶-ROM(未示出)或網絡,將應用205添加到外部存儲器106的HD中。附圖標記200表示與客戶機計算機進行網絡通信的網絡模塊。
[0035]網絡模塊200 具有 TCP/IP 模塊 201、HTTP 模塊 202 和 WebSocket 模塊 203。TCP/IP模塊201使用TCP/IP協議進行網絡通信。HTTP模塊202使用TCP作為傳輸協議,并且使用HTTP協議進行網絡通信。
[0036]WebSocket模塊203使用TCP作為傳輸協議,并且使用WebSocket協議進行網絡通信。Web (網)服務器服務模塊204接收來自客戶機計算機110的HTTP請求,由此提供對HTTP響應進行響應的服務。
[0037]應用205將從客戶機計算機110發送的各種數據文件,轉換為由連接到客戶機計算機110的打印機130可打印的數據格式。各種數據文件是例如從Microsoft OfficeWORD/Excel/PowerPoint生成的數據文件。應用205向客戶機計算機110發送轉換為打印機130可打印的數據格式的數據文件。
[0038]作為例如響應于HTTP請求執行處理的程序,來實現應用205。應用205與Web服務器服務模塊204 —起,實現用于實現下面的處理的Web應用。Web應用接收來自客戶機計算機110的各種數據文件,并且將各種數據文件轉換為連接到客戶機計算機110的打印機130可打印的數據格式。
[0039]應用205具有繪制模塊206和通信管理模塊207。繪制模塊206對各種數據文件進行解釋。從用戶經由外部存儲器140提交各種數據文件。當無法以打印機130可打印的格式,對各種數據文件進行繪制時,從客戶機計算機110向服務器計算機100發送數據文件。接收到數據文件的繪制模塊206將數據文件,轉換為連接到客戶機計算機110的打印機130可打印的數據文件。通信管理模塊207對與使用WebSocket協議保持會話的客戶機計算機的連接進行管理。
[0040]圖2B是示出第一客戶機計算機110和第一打印機130的示例性軟件配置的圖。構成客戶機計算機110的各個模塊是作為存儲在ROMl 13或外部存儲器120中的文件存在的程序模塊。在執行時,通過使用OS或利用模塊的模塊,將各個模塊加載到RAM112中來執行。
[0041]網絡模塊210進行與服務器計算機100和網絡打印機130的網絡通信。網絡模塊210具有TCP/IP模塊21UHTTP模塊212和WebSocket模塊213。TCP/IP模塊211使用TCP/IP協議進行網絡通信。HTTP模塊212使用TCP作為傳輸協議,并且使用HTTP協議進行網絡通信。WebSocket模塊213使用TCP作為傳輸協議,并且使用WebSocket協議進行網絡通信。包含在應用214中的通信管理模塊215對與服務器計算機100的通信和與第一打印機130的通信進行管理。
[0042]接下來,對第一打印機130的軟件配置給出描述。在第一打印機130中,各個模塊作為存儲在R0M134或外部存儲器140中的文件而存在,并且在執行其時,將各個模塊加載到RAM133中來執行。網絡模塊220使用任意通信協議,與第一客戶機計算機110進行網絡通信。打印處理模塊222接收并控制從第一客戶機計算機110發送的打印作業,并且進行打印處理。數據接收模塊221接收用戶經由外部存儲器140輸入的數據文件,然后開始與該打印系統相對應的打印處理。[0043]圖2C示出了第二客戶機計算機170和第二打印機180的軟件配置。第二客戶機計算機170的軟件配置與上述第一客戶機計算機110的軟件配置相同。此外,第二打印機180的軟件配置與上述第一打印機170的軟件配置相同。作為圖2A至2C中的各個所示的應用或模塊,來實現本實施例的程序。
[0044]下面,對第一實施例的信息處理系統中的服務器計算機100、第一客戶機計算機110和第二客戶機計算機170的操作給出描述。
[0045]圖3是示出由第一客戶機計算機進行的操作處理的示例的流程圖。根據應用214的通信管理模塊215進行的控制,執行圖3所示的步驟中的處理。首先,在第一客戶機計算機上檢測握手開始事件的出現(步驟S301)。根據預先設置的定時、第一客戶機計算機110或第一打印機130的電源接通時以及來自外部設備的管理命令中的至少任意一個,嘗試進行握手。可以由用戶從諸如USB存儲器或IC卡的外部存儲器140輸入到外部存儲器I/F130的數據出現的定時,觸發握手開始事件。還可以由設置在第一打印機130中的接近傳感器(未示出)檢測到用戶靠近第一打印機130的定時,觸發握手開始事件。
[0046]接下來,在步驟S302中,HTTP模塊212確認因特網連接,并且確定是否能夠建立與服務器計算機100的通信(步驟S302)。更具體地,HTTP模塊212經由TCP/IP模塊211向服務器計算機100發送HTTP請求,并且確定是否能夠獲得HTTP響應。
[0047]當能夠從服務器計算機100獲得HTTP響應時,HTTP模塊212確定設備本身連接到因特網,因此能夠與服務器計算機100通信。當沒有從服務器計算機100獲得HTTP響應時,HTTP模塊212確定設備本身沒有連接到因特網,因此不能與服務器計算機100通信。雖然在步驟S302中的確定處理中,將是否能夠獲得對HTTP請求的HTTP響應設置為判斷基準,但是也可以使用任意其它通信方法,用于該確定處理。
[0048]當設備本身連接到因特網,并且能夠與服務器計算機100通信時,處理前進到步驟S303。當設備本身沒有連接到因特網,并且不能與服務器計算機100通信時,處理前進到步驟S305。
[0049]在步驟S303中,WebSocket模塊213經由TCP/IP模塊211向服務器計算機100作出WebSocket握手請求,并且等待來自服務器計算機100的響應。接下來,WebSocket模塊213確定與服務器計算機100的握手是否成功(步驟S304)。
[0050]當從服務器計算機100返回了握手響應時,WebSocket模塊213確定與服務器計算機100的握手成功。另一方面,當與服務器計算機100的握手失敗時,從被請求了 WebSocket通信的計算機返回HTTP錯誤代碼。因此,當從服務器計算機100返回HTTP錯誤代碼時,WebSocket模塊213確定與服務器計算機100的握手失敗。當與服務器計算機100的握手成功時,處理結束。當與服務器計算機100的握手失敗時,處理前進到步驟S305。
[0051]在步驟S305中,通信管理模塊215搜索屬于與設備本身所屬的區段相同的區段中的網絡并且正與服務器計算機100進行WebSocket通信的第二客戶機計算機170。然后,通信管理模塊215向搜索到的第二客戶機計算機170作出以下請求。通信管理模塊215請求經由第二客戶機計算機170與服務器計算機100的推送通信(請求間接推送通信)。間接推送通信是經由第二客戶機計算機170與服務器計算機100的推送通信。換句話說,間接推送通信請求是利用推送通信方法作為與服務器計算機100的通信方法的請求。
[0052]為了請求間接推送通信,通信管理模塊215如下搜索被請求推送通信的第二客戶機計算機170。當第一客戶機計算機110能夠與服務器計算機100通信(步驟S302:是),但是與服務器計算機100的握手失敗時,服務器計算機100例如執行以下處理。服務器計算機100向第一客戶機計算機通知正與服務器計算機100進行WebSocket通信并且屬于與第一客戶機計算機所屬的區段相同的區段的第二客戶機計算機。更具體來說,服務器計算機100通知第二客戶機計算機的地址信息。地址信息例如是IPv4網絡中的IP地址。
[0053]通信管理模塊215將與通知的地址信息相對應的第二客戶機計算機,設置為被請求間接推送通信的計算機。下面,參照圖4,對從服務器計算機100對當前處于WebSocket通信狀態的客戶機計算機的地址信息的通知給出描述。
[0054]為了第一客戶機計算機110經由第二客戶機計算機170與服務器計算機100建立間接推送通信,前提是正在運行以下處理。換句話說,為了第一客戶機計算機110與服務器計算機100建立間接推送通信,第二客戶機計算機170和服務器計算機100之間的握手必需已經開始,以建立WebSocket通信。
[0055]此外,當設備本身沒有連接到因特網,因此不能與服務器計算機100通信(步驟S302:否)時,在步驟S305中執行以下處理。通信管理模塊215通過廣播搜索正與服務器計算機100進行WebSocket通信并且屬于與設備本身所屬的區段相同的區段中的網絡的第二客戶機計算機170。然后,通信管理模塊215向搜索到的第二客戶機計算機170作出間接推送通信請求。然后,第二客戶機計算機170的通信管理模塊235接收間接推送通信請求。
[0056]即使當搜索到屬于與設備本身所屬的區段相同的區段中的網絡的第二客戶機計算機170時,也可能存在搜索到的第二客戶機計算機170不是正與服務器計算機100進行WebSocket通信的情況。在這種情況下,通信管理模塊215向搜索到的第二客戶機計算機170作出間接推送通信請求。
[0057]接收到間接推送通信請求的第二客戶機計算機170的通信管理模塊235響應于請求,使用WebSocket在第二客戶機計算機170和服務器計算機100之間新建立連接。然后,通信管理模塊235實現第一客戶機計算機110和服務器計算機100之間的間接推送通信。換句話說,在接收到間接推送通信請求之后,通信管理模塊235向第一客戶機計算機110傳送使用WebSocket從服務器計算機100向第一客戶機計算機110給出的指令。更具體來說,通信管理模塊235在使用WebSocket建立連接之后,向第一客戶機計算機110傳送指令。換句話說,在本實施例中,第二客戶機計算機170是對推送通信進行中介的代理服務器。
[0058]接下來,通信管理模塊215確定與服務器計算機100的間接推送通信是否成功(步驟S306)。當與服務器計算機100的間接推送通信成功時,通信管理模塊215開始間接推送通信(步驟S307)。通過進行步驟S307中的處理,第一客戶機計算機110能夠經由第二客戶機計算機170與服務器計算機100進行推送通信。例如,通信管理模塊215接收從第二客戶機計算機170傳送的、通過WebSocket通信從服務器計算機100給出的指令。然后,CPUlll (在圖1中示出)執行接收到的指令。
[0059]下面,對在從服務器計算機100給出的指令是打印指令時進行的示例性操作給出描述。第一客戶機計算機110將用戶經由外部存儲器I/F139和外部存儲器140輸入的數據文件發送至服務器計算機100,并且服務器計算機100開始使用繪制模塊206將數據文件轉換為第一打印機130可打印的數據格式。已經建立了第一計算機110和服務器計算機100之間的推送通信。因此,當服務器計算機100中由繪制模塊206進行的處理完成時,立即向第一客戶機計算機110發送被轉換為第一打印機130可打印的數據格式的文件。
[0060]當與服務器計算機100的間接推送通信失敗時,通信管理模塊215以推送通信方法之外的通信方法,開始與服務器計算機100的通信(步驟S308)。例如,當在步驟S302中的確定處理中確定能夠建立通過HTTP與服務器計算機100的通信時,通信管理模塊215通過HTTP進行輪詢式通信。然而,由于通信管理模塊215通過HTTP進行輪詢式通信,因此即使服務器計算機100中由繪制模塊206進行的處理完成,只要沒有從第一客戶機計算機110作出輪詢詢問,也中斷一系列打印處理。因此,可能不希望地出現在步驟S307中開始的間接推送通信中不會出現的時間損失。當步驟S302中的確定處理失敗時,通信管理模塊215還可以被適配為在第一打印機130的操作單元136上顯示錯誤狀態。
[0061]圖4是示出由服務器計算機進行的操作處理的示例的流程圖。設置在服務器計算機100中的WebSocket模塊203經由TCP/IP模塊201,接收在圖3所示的步驟S303中從第一客戶機計算機110發送的握手請求(步驟S401)。
[0062]接下來,通信管理模塊207確定是否能夠開始握手(步驟S402)。通信管理模塊207確定使用WebSocket協議的通信連接的數量是否達到了上限值。當通信連接的數量達到上限值時,通信管理模塊207確定無法開始握手。例如,當使用WebSocket協議的通信連接的數量沒有達到上限值時,通信管理模塊207確定能夠開始握手。本實施例的系統的管理員等預先基于合理的通信成本等,在通信管理模塊207中設置使用WebSocket協議的通信連接的數量的上限值。
[0063]當通信管理模塊207確定能夠開始握手時,處理前進到步驟S403。當通信管理模塊207確定不能開始握手時,處理前進到步驟S404。
[0064]在步驟S403中,通信管理模塊207開始與第一客戶機計算機110握手。在握手開始時的定時,建立第一客戶機計算機110和服務器計算機100之間的WebSocket通信。
[0065]在步驟S404中,通信管理模塊207執行以下處理。通信管理模塊207確定在與請求握手的第一客戶機計算機110所屬的區段相同的區段中,是否存在正在與服務器計算機建立WebSocket通信的第二客戶機計算機。
[0066]在步驟S404中,通信管理模塊207如下指定與第一客戶機計算機110所屬的區段相同的區段中的第二客戶機計算機170。例如,假設服務器計算機100根據IPv4進行網絡通信的情況。通信管理模塊207確定是否存在具有與第一客戶機計算機110的從第一到第三區段的IP地址相同的IP地址的第二客戶機計算機。也就是說,通信管理模塊207指定具有與第一客戶機計算機110的從第一到第三區段的IP地址相同的IP地址的第二客戶機計算機。然后,通信管理模塊207指定與第一客戶機計算機110所屬的區段相同的區段中的第二客戶機計算機。
[0067]當通信管理模塊207確定存在第二客戶機計算機170時,處理前進到步驟S406。當通信管理模塊207確定不存在第二客戶機計算機170時,處理前進到步驟S405。
[0068]在步驟S406中,通信管理模塊207向第一客戶機計算機110通知已經建立了WebSocket通信的第二客戶機計算機170的地址信息。通信管理模塊207例如使用IP地址作為地址信息。
[0069]在步驟S405中,通信管理模塊207向第一客戶機計算機110通知不存在已經建立了 WebSocket通信的第二客戶機計算機170。[0070]圖5是示出由第二客戶機計算機進行的操作處理的示例的流程圖。在該示例中,對由接收到來自第一客戶機計算機HO的間接推送通信請求的第二客戶機計算機170進行的操作處理給出描述。首先,設置在第二客戶機計算機170中的通信管理模塊235用作執行以下處理的第一確定單元。通信管理模塊235確定設備本身是否已經與服務器計算機100進行了握手,因此正在進行WebSocket通信(步驟S501)。當設備本身已經與服務器計算機100進行了握手,因此正在進行WebSocket通信時,處理前進到步驟S503。當設備本身沒有繼續與服務器計算機100進行WebSocket通信時,處理前進到步驟S502。
[0071]在步驟S503中,通信管理模塊235用作執行以下處理的第二確定單元。通信管理模塊235確認第二客戶機計算機170中的日程(步驟S503)。更具體來說,通信管理模塊235確認通信中斷的日程。
[0072]圖6是示出第二客戶機計算機中的示例性日程的圖。在該示例中,作為日程601設置了在第二客戶機計算機中安排的處理等(安裝、重新引導或者關閉)以及執行該處理等的日期和時間。預先將日程601存儲在存儲單元中。
[0073]返回參照圖5,在步驟S504中,通信管理模塊235基于在步驟S503中確認的日程,確定是否允許進行間接推送通信(步驟S504)。更具體來說,通信管理模塊235確定從步驟S503中的確認處理的開始時間到通信管理模塊235變得不能與服務器計算機100進行通信的時間的時間間隔,是否等于或大于閾值。例如由管理員預先設置閾值。當時間間隔等于或大于閾值時,通信管理模塊235確定允許進行間接推送通信,并且處理前進到步驟S505。當時間間隔小于閾值時,通信管理模塊235確定不允許進行間接推送通信,并且處理前進到步驟S502。
[0074]在步驟S502中,通信管理模塊235向第一客戶機計算機110通知第一客戶機計算機110不能經由第二客戶機計算機170與服務器計算機100進行推送通信。
[0075]在步驟S505中,通信管理模塊235使得第一客戶機計算機110能夠經由第二客戶機計算機170與服務器計算機100進行推送通信。更具體來說,通信管理模塊235在進行WebSocket通信的服務器計算機100和第一客戶機計算機110之間,建立通信路徑(用作通信路徑建立單元)。然后,通信管理模塊235向第一客戶機計算機110傳送由服務器計算機100發送的指令。
[0076]通過進行上述處理,即使第一客戶機計算機110和服務器計算機100建立握手以開始推送通信失敗,第一客戶機計算機110也能夠執行以下處理。第一客戶機計算機110能夠經由已經成功完成握手操作的第二客戶機計算機170,間接開始與服務器計算機100的推送通信。因此,即使客戶機和服務器之間的通信連接的數量達到了上限值,也能夠經由其他客戶機計算機,間接開始希望開始新的推送通信的客戶機計算機和服務器計算機之間的推送通信。
[0077]換句話說,根據本發明,即使網絡設備和管理設備建立握手以開始推送通信失敗,網絡設備也能夠經由其他網絡設備,接收管理設備使用推送通信作出的指令。因此,例如,即使網絡設備和管理設備之間的通信連接的數量達到了上限值,網絡設備也能夠實時接收從管理設備給出的指令。
[0078](第二實施例)
[0079]在第二實施例中,假定在與第一客戶機計算機110所屬的區段相同的區段中,存在多個第二客戶機計算機170的系統。
[0080]在第二實施例中,在圖4所示的步驟S406中,服務器計算機100向第一客戶機計算機110通知多個第二客戶機計算機的地址信息。在圖3所示的步驟S305中,第一客戶機計算機110選擇通知的地址信息中的一個,然后向與選擇的地址信息相對應的第二客戶機計算機作出間接推送通信請求。當請求失敗時,第一客戶機計算機110選擇通知的地址信息中的另一個,然后向與選擇的地址信息相對應的第二客戶機計算機作出間接推送通信請求。使用這種布置,存在高可能性第一客戶機計算機110能夠與服務器計算機100進行間接推送通信。
[0081]此外,服務器計算機100能夠掌握服務器計算機100和已經建立了 WebSocket通信的所有客戶機計算機之間的通信狀態。因此,例如,服務器計算機100可以優先選擇具有小通信業務量的第二客戶機計算機,作為被請求間接推送通信的客戶機計算機。使用這種布置,能夠實現通信資源的優化(分布)。
[0082](第三實施例)
[0083]在第三實施例中,第一客戶機計算機110在執行圖3所示的步驟S305中的處理的定時,執行以下處理。第一客戶機計算機110向第二客戶機計算機170通知與服務器計算機100建立間接推送通信所需的保持通信連接的時間(連接保持時間)。因此,在圖3所示的步驟S301中的握手開始事件中,通信管理模塊215基于經由外部存儲器140從用戶提交的數據文件的文件大小或者頁數,確定連接保持時間。
[0084]假設管理員預先限定了,從經由因特網向服務器計算機100發送數據文件,到月艮務器計算機100在推送通信中接收通過對數據文件進行繪制而獲得的繪制結果要花費的每頁所需的時間。例如,假設限定數據文件的每頁所需的連接保持時間是一分鐘。因此,當提交的數據文件由10頁構成時,第一客戶機計算機110請求第二客戶機計算機將10分鐘設置為連接保持時間。
[0085]在圖5所示的步驟S504中,通信管理模塊235基于在步驟S503中確認的日程和從第一客戶機計算機110通知的連接保持時間,確定是否允許進行間接推送通信。更具體來說,通信管理模塊235確定從開始圖5所示的步驟S503中的確認處理的開始時間、到通信中斷的時間的時間間隔,是否等于或大于連接保持時間。當該時間間隔等于或大于連接保持時間時,通信管理模塊235確定允許進行間接推送通信。
[0086]根據第三實施例,能夠在響應于處理的數據的量確保所需的連接保持時間的同時,實現間接推送通信。因此,當數據文件中的要處理的數據的量大,并且所需的連接保持時間長時,可以降低在處理期間失去與服務器計算機100的連接的風險。當數據文件中的要處理的數據的量小,并且所需的連接保持時間短時,存在高可能性允許進行圖5所示的步驟S504中的間接推送通信。
[0087](第四實施例)
[0088]在第四實施例中,第一客戶機計算機110請求第二客戶機計算機170在發生握手開始事件之后立即與服務器計算機100建立間接推送通信。當間接推送通信失敗時,第一客戶機計算機110直接向服務器計算機100作出握手請求。
[0089]圖7是示出第四實施例的由第一客戶機計算機進行的操作處理的示例的流程圖。圖7所示的步驟S701、步驟S702、步驟S703、步驟S704和步驟S708中的處理,與圖3所示的步驟S301、步驟S305、步驟S306、步驟S307和步驟S308中的處理相同。此外,圖1所示的步驟S705至S707中的處理與圖3所示的步驟S302至S304中的處理相同。
[0090]在第四實施例中,第一客戶機計算機110首先向第二客戶機計算機170作出間接推送通信請求(步驟S702)。當間接推送通信失敗時,第一客戶機計算機110嘗試向服務器計算機100作出WebSocket握手請求(步驟S706)。因此,存在降低的可能性第一客戶機計算機110向服務器計算機100作出握手請求,由此新產生通信連接。使用這種配置,可以減少諸如與服務器計算機100的連接的資源消耗。
[0091]本發明的各方面還能夠通過讀出并執行記錄在存儲裝置上的用于執行上述實施例的功能的程序的系統或設備的計算機(或諸如CPU或MPU的裝置)、以及由系統或設備的計算機例如讀出并執行記錄在存儲裝置上的用于執行上述實施例的功能的程序來執行步驟的方法來實現。鑒于此,例如經由網絡或者從用作存儲裝置的各種類型的記錄介質(例如計算機可讀介質)向計算機提供程序。
[0092]雖然參照示例性實施例對本發明進行了說明,但是應當理解,本發明不限于所公開的示例性實施例。所附權利要求的范圍符合最寬的解釋,以使其涵蓋所有這種變型、等同結構及功能。
[0093]本申請要求2012年5月23日提交的日本專利申請第2012-117225號的優先權,該申請的全部內容通過弓I用并入本文。
【權利要求】
1.一種網絡設備,其經由防火墻與外部管理設備通信,所述網絡設備包括: 接收單元,用于從其他網絡設備接收利用預定通信方法作為與所述管理設備的通信方法的請求,在所述預定通信方法中,不從所述防火墻內獲得指令請求,并允許來自所述管理設備的指令;以及 傳送單元,用于向所述其他網絡設備,傳送在請求利用所述預定通信方法之后、使用所述預定通信方法從所述管理設備向所述其他網絡設備給出的指令。
2.根據權利要求1所述的網絡設備,所述網絡設備還包括: 連接建立單元,用于響應于接收到的利用所述預定通信方法的請求,使用所述預定通信方法,與所述管理設備新建立連接, 其中,在建立從所述管理設備到所述其他網絡設備的連接之后,所述傳送單元傳送使用所述預定通信方法給出的所述指令。
3.根據權利要求1所述的網絡設備,所述網絡設備還包括: 第一確定單元,用于在所述接收單元接收到所述請求之后,確定所述網絡設備本身是否正使用所述預定通信方法與所述管理設備通信, 其中,在所述第一確定單元確定所述網絡設備本身正使用所述預定通信方法與所述管理設備通信的情況下,所述傳送單元向所述其他網絡設備傳送從正使用所述預定通信方法進行通信的所述管理設備給出的所述指令。
4.根據權利要求3所述的網絡設備,所述網絡設備還包括: 第二確定單元,用于在.確定所述網絡設備本身正使用所述預定通信方法與所述管理設備通信的情況下,基于所述網絡設備本身的日程,確定直到所述網絡設備本身不能與所述管理設備通信為止花費的時間,是否等于或大于預定閾值, 其中,在確定直到所述網絡設備本身不能與所述管理設備通信為止花費的時間,等于或大于預定閾值的情況下,所述傳送單元向所述其他網絡設備,傳送從正使用所述預定通信方法進行通信的所述管理設備給出的所述指令。
5.根據權利要求4所述的網絡設備,所述網絡設備還包括: 通信路徑建立單元,用于在確定直到所述網絡設備本身不能與所述管理設備通信為止花費的時間,等于或大于預定閾值的情況下,使用所述預定通信方法,在所述管理設備和所述其他網絡設備之間建立通信路徑, 其中,所述傳送單元使用所建立的通信路徑,向所述其他網絡設備傳送使用所述預定通信方法給出的所述指令。
6.根據權利要求4所述的網絡設備,其中,所述閾值是保持與所述管理設備的連接的連接保持時間,其中,從所述其他網絡設備通知所述連接保持時間,并且依據所述其他網絡設備要處理的數據的量確定所述連接保持時間。
7.根據權利要求1所述的網絡設備,其中,所述預定通信方法是WebSocket協議。
8.—種網絡設備,其經由防火墻與外部管理設備通信,所述網絡設備包括: 請求單元,用于向所述防火墻內的其他網絡設備作出利用預定通信方法作為與所述管理設備的通信方法的請求,在所述預定通信方法中,不從所述防火墻內獲得指令請求,并且允許來自所述管理設備的指令; 接收單元,用于接收使用所述預定通信方法從所述管理設備給出的、在請求利用所述預定通信方法之后從所述其他網絡設備傳送的指令;以及 執行單元,用于執行接收到的指令。
9.根據權利要求8所述的網絡設備,其中,所述其他網絡設備是對所述預定通信方法進行中介的代理服務器。
10.根據權利要求8所述的網絡設備,其中,在通過所述網絡設備本身使用所述預定通信方法與所述管理設備建立連接不成功的情況下,所述請求單元作出所述請求。
11.根據權利要求8所述的網絡設備,其中,在通過所述網絡設備本身使用所述預定通信方法與所述管理設備建立連接不成功的情況下,所述請求單元向正使用所述預定通信方法與所述管理設備通信的所述其他網絡設備,作出從所述管理設備通知的所述請求。
12.根據權利要求10所述的網絡設備,其中,根據預先設置的定時、所述網絡設備本身的電源接通時以及來自外部設備的管理命令中的至少任意一個,嘗試通過所述網絡設備本身使用所述預定通信方法與所述管理設備進行連接。
13.根據權利要求8所述的網絡設備,其中,在不允許通過接收到所述請求的所述其他網絡設備利用所述預定通信方法的情況下,嘗試通過所述網絡設備本身使用所述預定通信方法與所述管理設備進行連接。
14.根據權利要求8所述的網絡設備,所述網絡設備還包括: 確定單元,用于確定所述網絡設備本身是否能夠與所述管理設備通信;以及 搜索單元,用于在所述確定單元確定所述網絡設備本身不能與所述管理設備通信的情況下,搜索正使用所述預定通信方法與所述管理設備通信的所述其他網絡設備, 其中,所述請求單元向搜索到的所述其他網絡設備作出所述請求。
15.一種網絡設備中的方法,所述網絡設備經由防火墻與外部管理設備通信,所述方法包括: 接收步驟,從其他網絡設備接收利用預定通信方法作為與所述管理設備的通信方法的請求,在所述預定通信方法中,不從所述防火墻內獲得指令請求,并且允許來自所述管理設備的指令;以及 傳送步驟,向所述其他網絡設備,傳送在請求利用所述預定通信方法之后、使用所述預定通信方法從所述管理設備向所述其他網絡設備給出的指令。
16.根據權利要求15所述的方法,其中,所述預定通信方法是WebSocket協議。
17.—種網絡設備中的方法,所述網絡設備經由防火墻與外部管理設備通信,所述方法包括: 請求步驟,向所述防火墻內的其他網絡設備作出利用預定通信方法作為與所述管理設備的通信方法的請求,在所述預定通信方法中,不從所述防火墻內獲得指令請求,并且允許來自所述管理設備的指令; 接收步驟,接收使用所述預定通信方法從所述管理設備給出的、在請求利用所述預定通信方法之后從所述其他網絡設備傳送的指令;以及 執行接收到的指令。
18.—種系統,其包括: 管理設備;以及 網絡設備和代理服務器,所述網絡設備和代理服務器經由防火墻與設置在所述防火墻外部的所述管理設備通信, 其中,所述代理服務器包括: 第一接收單元,用于從所述網絡設備接收利用預定通信方法作為與所述管理設備的通信方法的請求,在所述預定通信方法中,不從所述防火墻內獲得指令請求,并且允許來自所述管理設備的指令;以及 傳送單元,用于向所述網絡設備,傳送在請求利用所述預定通信方法之后、使用所述預定通信方法從所述管理設備向所述網絡設備給出的指令;以及其中,所述網絡設備包括: 請求單元,用于向所述代理服務器作出利用所述預定通信方法作為與所述管理設備的通信方法的請求; 第二接收單元,用于接收使用所述預定通信方法從所述管理設備給出的、在請求利用所述預定通信方法之后從所述代理服務器傳送的指令;以及執行單元,用于執行接收到的指令。
19.一種系統中的方法,所述系統包括:管理設備;以及網絡設備和代理服務器,所述網絡設備和代理服務器經由防火墻與設置在所述防火墻外部的所述管理設備通信,所述方法包括: 請求步驟,所述網絡設備向所述代理服務器作出利用預定通信方法作為與所述管理設備的通信方法的請求,在所述預定通信方法中,不從所述防火墻內獲得指令請求,并且允許來自所述管理設備的指令; 第一接收步驟,所述代理服務器接收來自所述網絡設備的利用所述預定通信方法的請求; 傳送步驟,所述代理服務器向所述網絡設備,傳送在請求利用所述預定通信方法之后、使用所述預定通信方法從所述管理設備向所述網絡設備給出的指令; 第二接收步驟,所述網絡設備接收從所述代理服務器傳送的、使用所述預定通信方法從所述管理設備給出的指令;以及 執行步驟,所述網絡設備執行接收到的指令。
【文檔編號】H04L29/06GK103428198SQ201310187585
【公開日】2013年12月4日 申請日期:2013年5月20日 優先權日:2012年5月23日
【發明者】伊丹剛 申請人:佳能株式會社