以下、本発明の実施形態を図面に基づいて説明する。
<1.第1実施形態>
<1−1.システム構成概要>
図1は、本発明の実施形態に係る通信システム1の概略構成を示す図である。図1に示すように、通信システム1は、複数のデバイス10(10a,10b,10c)と、複数のゲートウエイ30(30a,30b)とを備える。また、通信システム1は、管理サーバコンピュータ(以下、単に管理サーバとも称する)50と、クラウドサーバコンピュータ(以下、単にクラウドサーバとも称する)70と、クライアントコンピュータ(以下、単にクライアントとも称する)90とをさらに備える。
各要素10,30,50,70,90は、ネットワーク108を介して互いに接続されており、ネットワーク通信を実行することが可能である。なお、ネットワーク108は、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)、インターネットなどによって構成される。また、ネットワーク108への接続形態は、有線接続であってもよく或いは無線接続であってもよい。
複数のデバイス10および複数のゲートウエイ30は、企業内等に構築された或るLAN107の内部に設けられている。一方、管理サーバ50、クラウドサーバ70およびクライアント90は、LAN107の外部に設けられている。なお、クライアント90は、LAN107の内部に設けられていてもよい。
ここでは、デバイス10として、マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral)(MFPとも略称する)を例示する。MFPは、画像形成装置あるいは通信装置などとも称される。
また、ゲートウエイ30は、ここではデバイス10としてのMFPとは別のMFPに構築される。具体的には、ハードウエアとしてのMFP内に組み込まれたソフトウエア(プログラム)を実行することにより、ゲートウエイ30が実現される。
一方、管理サーバ50、クラウドサーバ70およびクライアント90は、いわゆるパーソナルコンピュータ等を用いて構築される。
この通信システム1においては、たとえば、クライアント90からクラウドサーバ70へと送出された印刷指令が、管理サーバ50およびゲートウエイ30を経由してデバイス10へと送信され、デバイス(MFP)10において印刷出力が行われる。
複数のゲートウエイ30は、複数のデバイス10とクラウドサーバ70との通信を中継する機能を有している。
管理サーバ50は、クラウドサーバ70と複数のゲートウエイ30との通信等を管理する装置である。管理サーバ50は、複数のデバイス10のうちの特定のデバイスに対するアクセス要求をクラウドサーバ70から受け付け、当該アクセス要求に応じて、複数のゲートウエイ30のいずれかに対してクラウドサーバ70とのトンネル接続要求を送信する。
<1−2.MFPの構成概要>
図2は、各MFPの構成を示す概略図である。MFPは、スキャナ機能、プリンタ機能、コピー機能およびデータ通信機能などを備える装置(複合機とも称する)である。
図2に示すように、MFPは、画像読取部2、印刷出力部3、通信部4、格納部5、入出力部6およびコントローラ9等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
画像読取部2は、MFPの所定の位置に載置された原稿を光学的に読み取って、当該原稿の画像データ(原稿画像とも称する)を生成する処理部である。
印刷出力部3は、対象画像に関する画像データに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
通信部4は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部4は、ネットワーク108を介したネットワーク通信が可能である。このネットワーク通信では、TCP/IP(Transmission Control Protocol / Internet Protocol)およびFTP(File Transfer Protocol)等の各種のプロトコルが利用され、当該ネットワーク通信を利用することによって、MFPは、所望の相手先(ゲートウエイ30、管理サーバ50およびクラウドサーバ70等)との間で各種のデータを授受することが可能である。
詳細には、ゲートウエイ(MFP)30の通信部4は、ゲートウエイ30と管理サーバ50との間に確立されたメッセージセッション(後述)を利用して、管理サーバ50と通信すること(特に管理サーバ50からのデータを受信すること)ができる。また、デバイス(MFP)10の通信部4は、ゲートウエイ30とクラウドサーバ70との間に確立されたトンネル接続(後述)を利用して、当該ゲートウエイ30を経由してクラウドサーバ70と通信すること(特にクラウドサーバ70からのデータを受信すること)もできる。なお、通信部4は、他の装置に対してデータ等を送信する送信部と、他の装置からデータ等を受信する受信部とを有する。
格納部5は、ハードディスクドライブ(HDD)および不揮発性メモリ等の格納装置で構成される。
入出力部6は、MFPに対する入力を受け付ける操作入力部6aと、各種情報の表示出力を行う表示部6bとを備えている。なお、入出力部6は、操作部とも称される。
コントローラ9は、MFPを統括的に制御する制御部であり、CPUと、各種の半導体メモリ(RAMおよびROM等)とを備えて構成される。
コントローラ9は、CPUにおいて、ROM(例えば、EEPROM等)内に格納されている所定のソフトウエアプログラム(単にプログラムとも称する)を実行することによって、各種の処理部を実現する。たとえば、ゲートウエイ30として動作するMFPのコントローラ9は、通信制御部41、情報収集部45、および動作制御部47(図3参照(後述))等を含む各種の処理部を実現する。また、デバイス10のみとして動作するMFPのコントローラ9も同様の処理部を有していても良いが、ゲートウエイ30として機能するための処理部を有していなくてもよい。なお、当該プログラムは、たとえば各種の可搬性の記録媒体(USBメモリ等)に記録され、当該記録媒体を介してMFPにインストールされればよい。あるいは当該プログラムは、ネットワーク108等を介してダウンロードされてMFPにインストールされるようにしてもよい。また、通信制御部41の一部(特にスリープ状態からの復帰に関連する処理部)等は、サブコントローラ8(図2参照)をも用いて実現される。
このゲートウエイ(MFP)30は、動作モードとして、合計3つのモード、詳細には通常モードおよび2段階のスリープモード(第1段階のスリープモード(簡易スリープモードとも称する)、および第2段階のスリープモード(ディープスリープモードとも称する))を有する。
これら3つのモードのうち、通常モードの消費電力が最も大きく、ディープスリープモードの消費電力が最も小さい。たとえば、簡易スリープモードにおいては、印刷出力部3および画像読取部2に対する電力供給が停止されるのに対して、ディープスリープモードにおいては、コントローラ(メインコントローラ)9等への電力供給も停止される。ディープスリープモードにおいては、通信部4の一部と、スリープからの復帰動作を制御する復帰制御部(復帰用通信制御部を含む)を有するサブコントローラ8とに対しては電力が供給され、その他の処理部に対する電力供給は停止される。ディープスリープモードにおいては、メッセージセッションを利用した通信動作、およびトンネル接続を利用した通信動作を行うことはできない。
<1−3.各要素の構成概要>
図3は、各要素30,50,70等の概略構成を示す図である。図3を参照して、これらの各要素について説明する。
<クラウドサーバ70>
クラウドサーバ70は、通信制御部81を備える。通信制御部81は、管理サーバ50との通信を実行する。また、通信制御部81は、各ゲートウエイ30との通信をトンネル通信(後述)を用いて実行する。
<管理サーバ50>
管理サーバ50は、通信制御部61、デバイス情報管理部65および解析部67などの各種の処理部を備える。
これら各種の処理部は、管理サーバ50のCPUにおいて、格納部(HDD等)に格納されている所定のソフトウエアプログラム(単にプログラムとも称する)を実行することによって実現される。なお、当該プログラムは、たとえば各種の可搬性の記録媒体(DVD−ROM等)に記録され、当該記録媒体を介して管理サーバ50にインストールされればよい。あるいは当該プログラムは、ネットワーク108等を介してダウンロードされて管理サーバ50にインストールされるようにしてもよい。
通信制御部61は、通信部54(通信用ハードウエア)と協働して、各種の通信動作を制御する。たとえば、通信制御部61は、クラウドサーバ70との通信を実行し、クラウドサーバ70からのアクセス要求を受信する。また、通信制御部61は、各ゲートウエイ30との通信をメッセージセッション(後述)を用いて実行する。なお、通信部54は、他の装置に対してデータ等を送信する送信部と、他の装置からデータ等を受信する受信部とを有する。
デバイス情報管理部65は、ゲートウエイ30から受信したデバイス情報(および当該デバイス情報を含む管理テーブル69)を管理する処理部である。管理テーブル69においては、各ゲートウエイ30と各ゲートウエイ30の配下のデバイスとの関係等が格納されている。なお、管理テーブル69は、管理サーバ50の格納部(HDD(ハードディスクドライブ)等)内に格納される。
解析部67は、クラウドサーバ70から受信したアクセス要求の内容を解析する処理部である。
<ゲートウエイ30>
各ゲートウエイ30は、それぞれ、通信制御部41、情報収集部45および動作制御部47などの各種の処理部を備える。これら各種の処理部は、ゲートウエイ30(MFP)のコントローラ9およびサブコントローラ8において、所定のプログラムを実行することによって実現される。
通信制御部41は、他の装置との通信を制御する処理部である。通信制御部41は、メッセージセッション通信制御部42とトンネル通信制御部43とを有する。
メッセージセッション通信制御部42は、管理サーバ50との通信をメッセージセッション(後述)を用いて実行する処理部である。メッセージセッション通信制御部42は、管理サーバ50との間にメッセージセッション(後述)を確立して、管理サーバ50との通信を実行する。メッセージセッション通信制御部42は、対管理サーバ通信部(あるいは管理サーバ通信部)とも称される。
トンネル通信制御部43は、クラウドサーバ70との通信をトンネル通信(後述)を用いて実行する処理部である。トンネル通信制御部43は、クラウドサーバ70との間にトンネル通信を確立して、クラウドサーバ70と特定のデバイス10との通信を中継する。トンネル通信制御部43は、対クラウドサーバ通信部(あるいはクラウドサーバ通信部)とも称される。
後述するように、メッセージセッションを利用することによって、LAN107の外部の装置(管理サーバ50)からLAN107の内部の装置(ゲートウエイ30)に対して、データを送信することが可能である。また、トンネル接続を利用することによって、LAN107の外部の装置(クラウドサーバ70)からLAN107の内部の装置(ゲートウエイ30およびデバイス10)に対して、データを送信することが可能である。
情報収集部45は、そのゲートウエイ30の配下に存在するデバイス10の情報を収集する処理部である。
動作制御部47は、自装置(ゲートウエイ30)の動作モードを制御する処理部である。具体的には、ゲートウエイ30を構成するMFPの上述の動作モード(通常モード、簡易スリープモードおよびディープスリープモード)が動作制御部47によって制御される。
<1−4.動作概要>
この実施形態においても、上述(図30参照)のように、LAN外部の管理サーバ50とLAN内部のゲートウエイ30との間に(ファイアフォールの例外としての)メッセージセッションを確立しておき、LAN外部のクラウドサーバ70から、当該管理サーバ50および当該ゲートウエイ30を経由して、LAN内部の画像形成装置にアクセスすることが行われ得る。以下では、まず、このような動作(基本動作)について説明する。
上述(図30参照)のように、ゲートウエイ30は、その起動時等において、予め指定された管理サーバ50との間に通信セッション(詳細には、メッセージセッション)(511,512)を確立する。その後、クラウドサーバ70から特定のデバイス10へのアクセス要求発生時において、管理サーバ50とゲートウエイ30(30b)との間の当該メッセージセッション(521)を利用することにより、管理サーバ50から当該ゲートウエイ30bにトンネル接続要求が送信される。当該ゲートウエイ30bは、当該トンネル接続要求に基づき、クラウドサーバ70との間にトンネル通信を確立する。そして、当該トンネル通信を用いてクラウドサーバ70から(ゲートウエイ30経由での)デバイス(画像形成装置)10へのアクセスが行われる。なお、このトンネル通信は、VPN(Virtual Private Network)による通信であるとも表現される。
より詳細には、まず、各ゲートウエイ30は、それぞれの起動時等において、予め指定された管理サーバ50に対してメッセージセッションの接続要求(確立要求)を送信する。これに応じて、管理サーバ50が当該確立要求を承認することによって、各ゲートウエイ30と管理サーバ50との間にメッセージセッション(511,521)がそれぞれ確立される。換言すれば、LAN107の内部のゲートウエイ30からLAN107の外部の管理サーバ50へのアクセスに応じて、メッセージセッションが確立される。なお、このようなメッセージセッション(通信セッション)としては、たとえば、「XMPP:eXtensible Messaging and Presence Protocol」)などのプロトコルを用いたものが例示される。また、各ゲートウエイ30は、各ゲートウエイ30の管理下のデバイス(画像形成装置)の情報(管理情報)等を管理サーバ50へ送信しておく。
そして、管理サーバ50とゲートウエイ30との間の当該メッセージセッションを利用して、クラウドサーバ70からデバイス(画像形成装置)10へのアクセスが行われ得る。
詳細には、クラウドサーバ70が特定のデバイス10bに対するアクセス(通信)を行いたい場合には、まず特定のデバイス10b向けのアクセス要求がクラウドサーバ70から管理サーバ50に送信される。
管理サーバ50は、特定のデバイス10に対応するゲートウエイ30(特定のデバイス10bをその配下に有する特定のゲートウエイ30b等)を管理情報に基づいて特定する。また、管理サーバ50は、特定されたゲートウエイ30に対して、トンネル接続要求を送信する。
たとえば、特定のデバイス10bに対するアクセス要求がクラウドサーバ70から管理サーバ50に送信された場合において、管理サーバ50は、特定のデバイス10bに対応するゲートウエイ(30b)を管理情報に基づいて特定する。管理サーバ50と(特定のデバイス10bに対応する)特定のゲートウエイ30bとの間にメッセージセッション521が確立されているときには、管理サーバ50は、当該特定されたゲートウエイ30bに対してトンネル接続要求を当該メッセージセッション521を介して送信する。「トンネル接続要求」は、クラウドサーバ70との間にトンネル接続を確立すべき旨の接続要求(確立要求)である。このように、管理サーバ50と特定のゲートウエイ30bとの間にメッセージセッション521が確立されているときには、当該トンネル接続要求は、管理サーバ50とゲートウエイ30bとの間の当該メッセージセッション521を利用して送信される。
トンネル接続要求を受信したゲートウエイ30は、当該トンネル接続要求に応答して、HTTP(Hypertext Transfer Protocol)セッション(より詳細には、HTTPS(Hypertext Transfer Protocol Secure)セッション)の確立要求をクラウドサーバ70に対して送信する。そして、クラウドサーバ70が当該確立要求を承認することによって、当該ゲートウエイ30とクラウドサーバ70との間に当該HTTPセッションによるトンネル接続(トンネル通信)が確立される。換言すれば、LAN107の内部のゲートウエイ30からLAN107の外部のクラウドサーバ70へのアクセスに応じて、トンネル接続(トンネル通信)が確立される。そして、このHTTPセッションによるトンネル通信を用いて、クラウドサーバ70は、ゲートウエイ30を経由してデバイス10へと各種のデータを送信することが可能である。このようなHTTP(HTTPS)セッションの確立要求は、トンネル接続の確立要求とも称される。なお、図30においては、砂地ハッチング付きの細長い矩形によって「トンネル通信」が模式的に示されている。
ところで、上述のように、管理サーバ50と各ゲートウエイ30との間でのメッセージセッションを常に維持し続ける技術(比較例に係る技術とも称する)においては、メッセージセッション(521等)を維持するための信号(「KeepAlive」パケット等)を継続的に送信することを要する(図30参照)。そのため、全てのゲートウエイ30の動作モードを所定の省電力モード(たとえば、「KeepAlive」パケットの送信動作の制御処理部(メインコントローラ9)に対する給電を停止するディープスリープモード等)に遷移させることができない、という問題が存在する。
そこで、この実施形態においては、複数のゲートウエイ30のうちの或るゲートウエイ30bを省電力モード(ディープスリープモード)に遷移させる(図6参照)とともに、管理サーバ50からのトンネル接続要求を当該ゲートウエイ30bの代わりに別のゲートウエイ30(たとえば30a)が受信する(図10参照)技術について説明する。
具体的には、クラウドサーバ70からのデバイス10bに対するアクセス要求が管理サーバ50にて受け付けられた場合において、管理サーバ50とデバイス10bに対応する特定のゲートウエイ30bとの間にメッセージセッションが確立されていないとき(図6および図7参照)には、管理サーバ50は、特定のゲートウエイ30bが省電力モードを有するものとみなして、次のような処理を行う。すなわち、図10に示すように、管理サーバ50は、トンネル接続要求をゲートウエイ30bの代わりに受信する別のゲートウエイ30a(代行ゲートウエイとも称する)と管理サーバ50との間のメッセージセッションを介して、当該トンネル接続要求を(ゲートウエイ30bに代えて)代行ゲートウエイ30aに対して送信する。
代行ゲートウエイ30aは、トンネル接続要求を管理サーバ50から受信すると、当該トンネル接続要求を特定のゲートウエイ30bに転送するとともに、特定のゲートウエイ30bを省電力モードから復帰させる。
特定のゲートウエイ30bは、省電力モードからの復帰後において、代行ゲートウエイ30aから受信したトンネル接続要求に基づき特定のゲートウエイ30bとクラウドサーバ70との間でトンネル接続を確立し、クラウドサーバ70と特定のデバイス10bとの通信を中継する。
以下、このような動作についてさらに詳細に説明する。
<1−5.ディープスリープモードへの遷移>
図4は、複数のゲートウエイ30(30a,30b)がそれぞれ管理サーバ50との間にメッセージセッション(511,521)を確立している状態を示す図である。このとき、ゲートウエイ30a,30bは、いずれも、通常モード(非省電力モード)で動作しているものとする。
各ゲートウエイ30と管理サーバ50との各メッセージセッションは、上述のように、各ゲートウエイ30の起動時に確立される。また、各ゲートウエイ30の起動時には、各ゲートウエイ30の管理下にいずれのデバイス10が存在するかに関する情報が各ゲートウエイ30(情報収集部45)によって取得される。そして、当該情報が各ゲートウエイ30から管理サーバ50に送信される。そして、当該情報を含む管理情報310が、管理サーバ50の管理テーブル69(69a)に格納される。
図11は、第1実施形態に係る管理テーブル69(69a)を示す図である。
図11に示されるように、管理情報310においては、複数のゲートウエイ30と複数のデバイス10との対応関係(支配関係ないし主従関係とも称する)が規定されている。具体的には、各ゲートウエイ30の配下に存在するデバイス10の情報が規定されている。たとえば、図11の管理情報310においては、ゲートウエイ30aの配下にはデバイス10aとデバイス10cとが存在し且つゲートウエイ30bの配下にはデバイス10bが存在する旨が規定されている。
管理サーバ50は、この管理情報310に基づいて、各デバイス10に対応するゲートウエイ30(各デバイス10を配下に有するゲートウエイ30)を決定することができる。たとえば、デバイス10aに対応するゲートウエイとしてゲートウエイ30aが決定され、デバイス10bに対応するゲートウエイとしてゲートウエイ30bが決定される。
図4の状態においては、デバイス10aに対応するゲートウエイ30aとの間のメッセージセッション511(管理サーバ50とゲートウエイ30aとの間のメッセージセッション)が存在する。したがって、クラウドサーバ70からのアクセス要求(デバイス10a向けのアクセス要求)が管理サーバ50に送信される場合には、当該メッセージセッション511を用いて、管理サーバ50はトンネル接続要求をゲートウエイ30aに送信することができる。ゲートウエイ30aは、当該トンネル接続要求に応答して、クラウドサーバ70との間でHTTPセッション(トンネル通信)を確立する。そして、当該トンネル通信を利用して、クラウドサーバ70からゲートウエイ30aの管理下のデバイス10aに向かう通信がゲートウエイ30a経由で実行され得る。
また同様に、図4の状態においては、デバイス10bに対応するゲートウエイ30bとの間のメッセージセッション521(管理サーバ50とゲートウエイ30bとの間のメッセージセッション)が存在する。したがって、クラウドサーバ70からのアクセス要求(デバイス10b向けのアクセス要求)が管理サーバ50に送信される場合には、当該メッセージセッション521を用いて、管理サーバ50はトンネル接続要求をゲートウエイ30bに送信することができる。ゲートウエイ30bは、当該トンネル接続要求に応答して、クラウドサーバ70との間でHTTPセッション(トンネル通信)を確立する。そして、当該トンネル通信を利用して、クラウドサーバ70からゲートウエイ30bの管理下のデバイス10bに向かう通信がゲートウエイ30b経由で実行され得る。
その後、図5のような動作が行われ、ゲートウエイ30bは省電力モードに遷移する。以下では、ゲートウエイ30bが省電力モード(ここでは、ディープスリープモード)による動作状態に遷移する際における通信システム1の動作について、図5および図6を参照しながら説明する。図5は、当該動作を示すタイミングチャートである。図6は、ゲートウエイ30bがディープスリープモードに遷移する際における通信システム1の動作を示す概念図である。
図5に示すように、ゲートウエイ30bにおいてディープスリープモードに遷移すべき旨が決定されると、ゲートウエイ30b(通信制御部41)は、ゲートウエイ30aに対して代行事前依頼(単に、代行依頼とも称する)を送信する(ステップS11)。この代行事前依頼は、ゲートウエイ30bがディープスリープモードに遷移した後にはゲートウエイ30b宛のトンネル接続要求をゲートウエイ30bに代わって受信(代行受信)することをゲートウエイ30aに依頼する指令である。また、ここでは、当該代行事前依頼は、当該トンネル接続要求をゲートウエイ30bに転送すべき旨をも含む。
ゲートウエイ30b(動作制御部47)は、この代行事前依頼をゲートウエイ30aに送信すると、自ら(ゲートウエイ30b)の動作モードをディープスリープ状態に遷移させる。また、これに伴い、ゲートウエイ30bと管理サーバ50との間のメッセージセッション521は切断される(図6参照)。このように、ゲートウエイ30bは、管理サーバ50との間でのメッセージセッションを有しない状態の省電力モード(ディープスリープモード)に遷移する。
一方、ゲートウエイ30aは、当該代行事前依頼をゲートウエイ30bから受信すると、管理サーバとの間の既存のメッセージセッション511とは別に新たなメッセージセッション513を管理サーバ50との間に生成する。具体的には、所定のプロトコル(ここでは「XMPP:eXtensible Messaging and Presence Protocol」)を用いて、管理サーバ50との間に代行用の新たなメッセージセッション513が確立される(図5のステップS12および図7参照)。詳細には、ゲートウエイ30aが管理サーバ50に対して新たなメッセージセッションの確立を要求し、管理サーバ50が当該要求を承認することによって、新たなメッセージセッションが確立される。
図7は、当該新たなメッセージセッション513が確立された様子を示す概念図である。後述するように、当該新たなメッセージセッション513を利用することにより、ゲートウエイ30b向けの要求信号(代行接続要求およびトンネル接続要求)が管理サーバ50からゲートウエイ30aに対して送信される。
このように、ゲートウエイ30aは、ゲートウエイ30bから代行事前依頼を受信すると、ゲートウエイ30bに関する代行用の新たなメッセージセッション513を管理サーバ50との間に生成して、ゲートウエイ30b向けのトンネル接続要求(後述)等を待機する。
また、ゲートウエイ30aは、代行事前依頼に基づく代行情報を管理サーバ50に転送し、管理サーバ50は、その格納部に当該代行情報を格納する。この代行情報には、両ゲートウエイ30a,30b相互間の代行関係に関する情報、たとえば、「ゲートウエイ30b向けのトンネル接続要求はゲートウエイ30aによって代行受信されること」などが含まれる。なお、当該代行情報は管理テーブル69(69a)に格納されてもよい。
<1−6.ディープスリープモードからの復帰>
つぎに、クラウドサーバ70からデバイス10bに対するアクセス要求が付与され、ゲートウエイ30bがディープスリープモード(スリープ状態)から通常モード(非スリープ状態)に復帰する際における通信システム1の動作について図8〜図10を参照しながら説明する。図8は、当該動作を示すタイミングチャートであり、図9は、当該動作の一部の動作(ゲートウエイ30aの動作)を示すフローチャートである。また、図10は、ゲートウエイ30bがディープスリープモードから復帰する際における通信システム1の動作を示す概念図である。
ユーザは、クライアント90のウエブブラウザ等を操作して、クラウドサーバ70上のクラウドアプリケーションにアクセスする。そして、クライアント90を用いたユーザ操作に応じて、クラウド印刷指示が当該クラウドアプリケーションを用いてクラウドサーバ70に対して付与される(図8のステップS31)。換言すれば、クラウド印刷指示(ジョブ指示とも称する)がクライアント90からクラウドサーバ70に送信される。当該クラウド印刷指示は、たとえば、クラウドサーバ70上に格納されている特定の電子文書(印刷対象データ)を特定のMFP(ここではデバイス10b)を用いて印刷すべき旨の印刷指示である。
クラウドサーバ70(通信制御部81)は、当該クラウドアプリケーションに対応するサーバとして予め登録されている管理サーバ50に対して、上記クラウド印刷指示に基づくアクセス要求を送信する(ステップS32)。このアクセス要求には、アクセス元のクラウドサーバ70の情報(IPアドレスの識別情報等)と、アクセス先のデバイス(ここではデバイス10b)の情報(装置IDの識別情報等)とが含まれる。
管理サーバ50(解析部67)は、クラウドサーバ70から受信した当該アクセス要求の内容を解析し、その解析結果に基づく処理を実行する。
このアクセス要求に基づくトンネル通信を中継すべきゲートウエイ30(たとえば30a)と管理サーバ50とのメッセージセッションが確立されている場合(アクセス要求に基づくトンネル通信を中継すべきゲートウエイ30が通常モードで動作中である場合等)には、上述と同様の動作が行われる。たとえば、管理サーバ50は、デバイス10aに対応するゲートウエイ30aとの間のメッセージセッション511を用いてトンネル接続要求をゲートウエイ30aに送信する。ゲートウエイ30aは、当該トンネル接続要求に応答して、クラウドサーバ70との間でHTTPセッション(トンネル通信)を確立する。そして、当該トンネル通信を利用して、クラウドサーバ70からゲートウエイ30aの管理下のデバイス10(たとえば10a)に向かう通信がゲートウエイ30a経由で実行され得る。
一方、このアクセス要求に基づくトンネル通信を中継すべきゲートウエイ30(たとえば30b)と管理サーバ50とのメッセージセッションが確立されていない場合(アクセス要求に基づくトンネル通信を中継すべきゲートウエイ30がスリープ中である場合等)には、「代行接続要求」が管理サーバ50から「代行ゲートウエイ」へと送信される(ステップS33)。「代行ゲートウエイ」は、特定のゲートウエイの動作の一部を代行するゲートウエイである。「代行ゲートウエイ」は、特定のゲートウエイ向けのトンネル接続要求を当該特定のゲートウエイに代わって受信(代行受信)するゲートウエイであるとも表現される。管理サーバ50は、ゲートウエイ30bの代行ゲートウエイを上述の代行情報に基づいて決定する。ここでは、ゲートウエイ30b向けのトンネル接続要求を当該ゲートウエイ30bに代わって受信(代行受信)するゲートウエイ(代行ゲートウエイ)として、ゲートウエイ30aが決定されるものとする。この場合、ステップS33において、「代行接続要求」が管理サーバ50からゲートウエイ30aへと送信される。「代行接続要求」は、本来のゲートウエイ30bに代わってトンネル接続要求を受信(代行受信)すべき旨の指令である。
また、管理サーバ50は、ゲートウエイ30aに対してトンネル接続要求をも送信する(ステップS34)。代行接続要求およびトンネル接続要求は、管理サーバ50とゲートウエイ30aとの間においてゲートウエイ30bの代行用に新たに予め確立されたメッセージセッション513を用いて、管理サーバ50からゲートウエイ30aへと送信される。なお、ここでは、代行接続要求およびトンネル接続要求が別個の接続要求として送信されるが、これに限定されない。たとえば、代行接続要求とトンネル接続要求との双方が1つの接続要求として纏めて送信されるようにしてもよい。また、代行接続要求は必ずしも送信されることを要しない。
図9に示すように、ゲートウエイ30aは、ゲートウエイ30bの代行用に管理サーバ50との間に予め確立されたメッセージセッション513(図7)を用いて代行接続要求およびトンネル接続要求を受信する(ステップS35,S37)と、ステップS39に進む。ステップS39では、ゲートウエイ30aは、ゲートウエイ30bに対してトンネル接続要求を送信する。
ゲートウエイ30bは、トンネル接続要求をゲートウエイ30aから受信すると、ディープスリープモードから通常モードへと復帰する(図8参照)。また、ゲートウエイ30bは、当該トンネル接続要求に応答して、クラウドサーバ70との間でHTTP(HTTPS)セッション(トンネル通信)を確立する(ステップS56)。詳細には、ゲートウエイ30bがクラウドサーバ70に対してトンネル通信の確立を要求し、クラウドサーバ70が当該要求を承認することによって、当該トンネル通信が確立される。なお、図10においては、砂地ハッチング付きの細長い矩形によって「トンネル通信」が模式的に示されている。
そして、当該トンネル通信を利用して、クラウドサーバ70からゲートウエイ30bの管理下のデバイス10bに向かう通信がゲートウエイ30b経由で実行され得る(ステップS57)。これにより、クラウドサーバ70は、スリープ状態から復帰したゲートウエイ30bを経由してデバイス10へと特定の電子文書(印刷対象データ等)を送信することが可能である。
なお、その後、所定の無操作時間が経過すると、ゲートウエイ30bは再びディープスリープモードに遷移する。
以上のような動作においては、管理サーバ50は、ゲートウエイ30bがディープスリープモードを有する状態にてゲートウエイ30bの管理下のデバイス10bに対するアクセス要求をクラウドサーバ70から受信すると、ゲートウエイ30bに代えて代行ゲートウエイ30aに対してトンネル接続要求を送信する。そして、代行ゲートウエイ30aは、トンネル接続要求を管理サーバ50から受信すると、当該トンネル接続要求をゲートウエイ30bに転送するとともに、ゲートウエイ30bをディープスリープモードから復帰させる。そして、ゲートウエイ30bは、ディープスリープモードから通常モードへの復帰後において、代行ゲートウエイ30aから受信したトンネル接続要求に基づきゲートウエイ30bとクラウドサーバ70との間でトンネル通信を確立し、クラウドサーバ70とデバイス10bとの通信を中継する。
これによれば、ゲートウエイ30bをディープスリープモードに遷移させた場合においても、管理サーバ50および代行ゲートウエイ30a等を介して、ゲートウエイ30bをディープスリープモードから復帰させることが可能である。したがって、ゲートウエイ30bがディープスリープモードを有している状態からでも、ゲートウエイ30bとクラウドサーバ70との間のトンネル接続(トンネル通信)を適切に確立することが可能である。
また、ゲートウエイ30bは、別の代行ゲートウエイ30aに代行処理を依頼し自装置(ゲートウエイ30b)をディープスリープモードに遷移させることができるので、ゲートウエイ30bの消費電力(ひいてはシステム1全体の消費電力)を更に低減することが可能である。
<2.第2実施形態>
第2実施形態は、第1実施形態の変形例である。以下では、第1実施形態との相違点を中心に説明する。
上記第1実施形態では、ディープスリープ中のゲートウエイ30bが代行ゲートウエイ30aからトンネル接続要求を受信すると、当該トンネル接続要求に応答して、ゲートウエイ30bは、ディープスリープモードから復帰するとともにゲートウエイ30bとクラウドサーバ70とのトンネル通信を直ちに確立している。なお、このようなトンネル通信の接続モードは、次述する別の接続モード(正規接続モード)よりも簡易な接続モードであるため、「簡易接続モード」とも称される。
しかしながら、本発明は、これに限定されない。たとえば、代行ゲートウエイ30aからトンネル接続要求を受信しディープスリープから復帰したゲートウエイ30bは、管理サーバ50との間にメッセージセッション521を再び生成するようにしてもよい(図14参照)。そして、ゲートウエイ30bは、当該メッセージセッション521を介して管理サーバ50から改めてトンネル接続要求を受け取り、当該トンネル接続要求に基づいてトンネル接続(トンネル通信)を確立するようにしてもよい。また、メッセージセッション521の再生成(再確立)の際には、ゲートウエイ30bがその配下のデバイス10を検索し、その検索結果を含む最新の情報がゲートウエイ30bによって取得され管理サーバ50に通知されることが好ましい。なお、このようなトンネル通信の確立モード(接続モード)は、「正規接続モード」とも称される。
この第2実施形態では、クラウドサーバ70とディープスリープから復帰したゲートウエイ30bとのトンネル通信が、上述の「正規接続モード」と「簡易接続モード」との両接続モードのうち、ユーザ設定によって指定された所定のモードによって実行される態様を例示する。
図12は、第2実施形態に係る通信システムにおける動作(ゲートウエイ30bのスリープからの復帰動作等)を示すタイミングチャートであり、図13は、当該通信システムにおける動作の一部の動作(ゲートウエイ30bの動作)を示すフローチャートである。また、図14は、第2実施形態に係る動作(より詳細には、ゲートウエイ30bがディープスリープモードから復帰する際における通信システム1の動作)を示す概念図である。
図12〜図14を参照しながら、ゲートウエイ30bがディープスリープモード(スリープ状態)から通常モード(非スリープ状態)に復帰する際における通信システム1の動作について説明する。
ステップS31〜S35,S37,S39においては、第1実施形態と同様の処理が実行される(図12および図14等参照)。
ゲートウエイ30bは、トンネル接続要求をゲートウエイ30aから受信すると、ディープスリープモードから通常モードへと復帰し、図13に示す動作を実行する。
具体的には、ステップS50においては、トンネル通信の確立モード(接続モード)として、「簡易接続モード」と「正規接続モード」との両モードのいずれがユーザ設定(ゲートウエイ30bにおけるユーザ設定)によって指定されているかが判定され、その判定結果に応じた分岐処理が行われる。
トンネル通信の接続モードとして、「簡易接続モード」が指定されている場合には、ステップS51aに進む。ステップS51aでは、簡易接続モードによる接続動作が実行される。簡易接続モードによる接続動作は、第1実施形態と同様であり、直ちにステップS56,S57の処理が行われる。
一方、トンネル通信の接続モードとして、「正規接続モード」が指定されている場合には、ステップS51bに進む。
ステップS51bでは、正規接続モードによる接続動作が実行される。
詳細には、まず、ゲートウエイ30b(情報収集部45)は、現時点でのその配下のデバイス10を検索し、その検索結果に基づき最新の情報(デバイス情報)を取得する(ステップS52)。これによれば、たとえば、ゲートウエイ30bのスリープ中にデバイス10bの電源がオフされデバイス10bは現時点にて正常動作していないことなどを含む最新の情報を取得することが可能である。
つぎに、ゲートウエイ30b(メッセージセッション通信制御部42)は、情報収集部45によって収集されたデバイス情報に基づき、デバイス10bが正常動作中である旨が判定されることを条件に、管理サーバ50と当該デバイス10bに対応するゲートウエイ30bとの間にメッセージセッション521(図14等参照)を新たに生成(確立)する(ステップS53)。そして、ゲートウエイ30bは、当該新たなメッセージセッション521を介してゲートウエイ30bの配下デバイスに関する最新の情報を管理サーバ50に通知する(ステップS54)。また、ゲートウエイ30bは、当該新たなメッセージセッション521を介して管理サーバ50から改めてトンネル接続要求(新たなトンネル接続要求)を受信する(ステップS55)。そして、ゲートウエイ30bは、当該トンネル接続要求に応じて、トンネル接続(トンネル通信)をクラウドサーバ70との間に確立する(ステップS56(S56b))。
そして、当該トンネル接続を利用して、クラウドサーバ70からゲートウエイ30bの管理下のデバイス10bに向かう通信がゲートウエイ30b経由で実行される(ステップS57)。ゲートウエイ30b(トンネル通信制御部43)は、当該トンネル接続を利用して、クラウドサーバ70とデバイス10bとの通信を中継する。これにより、クラウドサーバ70は、特定の電子文書(印刷対象データ等)を、スリープ状態から復帰したゲートウエイ30bを経由してデバイス10へと送信することが可能である。
なお、正常接続モードにおいて、デバイス10bが正常動作中ではない旨が判定されるときには、エラー情報が管理サーバ50(あるいはゲートウエイ30b)からクラウドサーバ70に対して送信される。
以上のような動作によれば、第1実施形態と同様の効果を得ることが可能である。
また特に、正規接続モードによる接続の際には、ゲートウエイ30bのスリープ中にデバイス10bの電源がオフされたことなどによって、デバイス10bは現時点では正常動作していないこと(現時点ではゲートウエイ30bの配下に存在しないこと)が知得されるので、適切なエラー対応処理を行うことが可能である。
また、簡易接続モードによる接続の際には、ゲートウエイ30bは、配下デバイスの検索処理および管理サーバ50との間でのメッセージセッションの再確立処理等を行わないため、処理を簡易化すること(ひいては処理の高速化)を図ることが可能である。
また、ユーザは、「簡易接続モード」と「正規接続モード」との両モードのいずれを用いるかを設定操作によって適宜選択することができるので、高い自由度を得ることが可能である。
なお、第2実施形態では、「正規接続モード」と「簡易接続モード」との両接続モードのうち、ユーザ設定によって指定された所定のモードによってトンネル通信が再確立される態様が例示されているが、これに限定されない。たとえば、常に「正規接続モード」によってトンネル通信が再確立されるようにしてもよい。
<3.第3実施形態>
第3実施形態は、第1実施形態の変形例である。以下では、第1実施形態との相違点を中心に説明する。
この第3実施形態においては、ゲートウエイ30a,30bの双方が共通のデバイス10(ここでは10b)を配下に有している状況を想定する(図17および図18参照)。
第3実施形態においては、クラウドサーバ70からデバイス10bに対するアクセス要求を管理サーバ50が受け付けると、管理サーバ50は、デバイス10bに対応するゲートウエイ30を両ゲートウエイ30a,30bの中から管理情報510に基づいて選択する。ここでは、ゲートウエイ30bが、デバイス10bに対応するゲートウエイとして選択されたものとする。
そして、管理サーバ50は、ゲートウエイ30bと管理サーバ50とのメッセージセッションが確立されていない旨を判定し、ゲートウエイ30b向けのトンネル接続要求を、管理サーバ50と代行ゲートウエイ30aとのメッセージセッション513を介して、代行ゲートウエイ30aに送信する。これに応じて、ゲートウエイ30aは、ゲートウエイ30b向けのトンネル接続要求を受信する。
次に、代行ゲートウエイ30aは、所定の条件を充足しているか否かに応じて、トンネル接続要求をゲートウエイ30bに転送するか否かを決定する。代行ゲートウエイ30aは、デバイス10bが自装置(代行ゲートウエイ30a)の配下にも存在することを知得しており、トンネル接続要求を自装置で処理するか否かを決定する。
ここでは、当該所定の条件として、ゲートウエイ30aのトンネル接続数が所定の上限値(たとえば、「2」)に既に到達しているか否かに関する判定結果が用いられるものとする。
そして、当該トンネル接続要求を最終的に受信したゲートウエイ30(30aあるいは30b)とクラウドサーバ70との間にトンネル接続が確立され、当該確立されたトンネル接続を介して、印刷対象データ等がクラウドサーバ70から送信対象デバイス10bに送信される。
図15は、第3実施形態に係る通信システムにおける動作の一部の動作(ゲートウエイ30aの動作)を示すフローチャートである。図16は、第3実施形態に係る通信システムにおける動作(ゲートウエイ30aのトンネル接続数が所定の上限値(最大値)に未だ到達していない場合の動作)を示すタイミングチャートである。また、図17および図18は、第3実施形態に係る動作(より詳細には、クラウドサーバ70からデバイス10bに対するアクセス要求が付与された際における通信システム1の動作)を示す概念図である。図17は、ゲートウエイ30aのトンネル接続数が所定の上限値(最大値)に既に到達している場合の動作を示しており、図18は、ゲートウエイ30aのトンネル接続数が所定の上限値(最大値)に未だ到達していない場合の動作を示している。
クラウドサーバ70からデバイス10bに対するアクセス要求が付与されると、第1実施形態と同様に、ステップS31,S32,S33,S34の動作が実行される(図16参照)。具体的には、管理サーバ50は、クラウドサーバ70からのデバイス10bに対するアクセス要求を受信すると、代行接続要求およびトンネル接続要求をゲートウエイ30aに対して送信する。すなわち、管理サーバ50は、ゲートウエイ30b向けのトンネル接続要求をゲートウエイ30aに送信する。
そして、ゲートウエイ30aは、図15に示す動作を実行する。
ゲートウエイ30aは、代行接続要求およびトンネル接続要求を受信すると、ステップS35,S37を経て、ステップS41に進む。
ステップS41では、ゲートウエイ30aのトンネル接続数が所定の上限値(たとえば、「2」)に既に到達しているか否かに関する判定し、その判定結果に基づく分岐処理が実行される。
クラウドサーバ70とゲートウエイ(代行ゲートウエイ)30aとの間に設けられた現在のトンネル接続数が所定の上限値(たとえば、「2」)に既に到達している場合には、ステップS42に進み、上記第1実施形態(図8参照)(あるいは第2実施形態(図12参照))と同様の処理が行われる。ここでは、簡単化のため、第1実施形態と同様の処理が行われるものとする。
具体的には、図17(図8等も参照)に示すように、ゲートウエイ30aは、管理サーバ50からのトンネル接続要求をゲートウエイ30bに転送し、ゲートウエイ30bをディープスリープモードから復帰させる(ステップS39)。そして、ゲートウエイ30bは、簡易接続モードにて、クラウドサーバ70との間でトンネル通信を確立し(ステップS56)、当該トンネル通信を利用して、クラウドサーバ70からゲートウエイ30bの管理下のデバイス10(たとえば10b)に向かう通信がゲートウエイ30b経由で実行される(ステップS57)。
一方、クラウドサーバ70と代行ゲートウエイ30aとの間に設けられた現在のトンネル接続数が所定の上限値に未だ到達していない場合には、ステップS43(図15)の処理が実行される。このステップS43においては、ステップS58,S59の処理(次述)が実行される。
具体的には、図16および図18に示すように、代行ゲートウエイ30aは、代行ゲートウエイ30aとクラウドサーバ70との間で新たなトンネル接続(トンネル通信)を確立し(ステップS58)、クラウドサーバ70とデバイス10bとの通信を中継する(ステップS59)。ステップS59では、当該新たなトンネル通信を利用して、クラウドサーバ70からゲートウエイ30aの管理下のデバイス10(たとえば10b)に向かう通信がゲートウエイ30a経由で実行される。
このように、代行接続要求およびトンネル接続要求が管理サーバ50からゲートウエイ30aに対して送信された場合であっても、ゲートウエイ30aは、トンネル接続要求を無条件にゲートウエイ30bに転送するのではない。ゲートウエイ30aは、トンネル接続要求をゲートウエイ30bに転送するか否かを状況に応じて変更する。
ゲートウエイ30aは、自らのリソースに余裕がある場合(ゲートウエイ30aとクラウドサーバ70との間のトンネル接続数が上限値未満である場合)には、図18のような動作を実行する。具体的には、ゲートウエイ30は、管理サーバ50からのトンネル接続要求をゲートウエイ30bに転送する代わりに、当該トンネル接続要求に基づきゲートウエイ30a自らがクラウドサーバ70との間にトンネル接続を確立して、ゲートウエイ30a自らがクラウドサーバ70とデバイス10bとの通信を中継する。端的に言えば、代行ゲートウエイ30a自らがゲートウエイ30bに代わって、トンネル接続によるクラウドサーバ70との通信処理をも行う。
これによれば、ゲートウエイ30aのリソースを有効に活用し、ゲートウエイ30bを出来る限りディープスリープモードに遷移させたままで維持することができるので、ゲートウエイ30bのディープスリープモードからの復帰に伴う電力消費を抑制することが可能である。
<4.第4実施形態>
第4実施形態は、第3実施形態の変形例である。以下では、第3実施形態との相違点を中心に説明する。
この第4実施形態においても、ゲートウエイ30a,30bの双方が共通のデバイス10(ここでは10b)を配下に有している状況を想定する。
第4実施形態においても、クラウドサーバ70からデバイス10bに対するアクセス要求を管理サーバ50が受け付けると、管理サーバ50は、デバイス10bに対応するゲートウエイ30を両ゲートウエイ30a,30bの中から管理情報510に基づいて選択する。ここでも、ゲートウエイ30bが、デバイス10bに対応するゲートウエイとして選択されたものとする。
そして、管理サーバ50は、ゲートウエイ30bと管理サーバ50とのメッセージセッションが確立されていない旨を判定し、ゲートウエイ30b向けのトンネル接続要求を、管理サーバ50と代行ゲートウエイ30aとのメッセージセッション513を介して、代行ゲートウエイ30aに送信する。これに応じて、ゲートウエイ30aは、ゲートウエイ30b向けのトンネル接続要求を受信する。
次に、ゲートウエイ30aは、所定の条件を充足しているか否かに応じて、トンネル接続要求をゲートウエイ30bに転送するか否かを決定する。そして、当該トンネル接続要求を最終的に受信したゲートウエイ30(30aあるいは30b)とクラウドサーバ70との間にトンネル接続が確立され、当該確立されたトンネル接続を介して、印刷対象データ等がクラウドサーバ70から送信対象デバイス10bに送信される。
ただし、この第4実施形態では、当該所定の条件として、代行ゲートウエイ30aのセキュリティレベルとゲートウエイ30bのセキュリティレベルとの大小関係に基づく判定結果を用いるものとする。
図19は、第4実施形態に係る通信システムにおける動作の一部の動作(ゲートウエイ30aの動作)を示すフローチャートである。
クラウドサーバ70からデバイス10bに対するアクセス要求が付与されると、第3実施形態(および第1実施形態等)と同様に、ステップS31,S32,S33,S34の動作が実行される(図16参照)。具体的には、管理サーバ50は、クラウドサーバ70からのデバイス10bに対するアクセス要求を受信すると、代行接続要求およびトンネル接続要求をゲートウエイ30aに対して送信する。
また、ゲートウエイ30aは、図19に示す動作を実行する。
ゲートウエイ30aが代行接続要求およびトンネル接続要求を受信すると、処理はステップS35,S37を経てステップS45に進む。
ステップS45では、代行ゲートウエイ30aのセキュリティレベルとゲートウエイ30bのセキュリティレベルとの大小関係が判定され、その判定結果に基づく分岐処理が実行される。
ここにおいて、各ゲートウエイ30a,30bのセキュリティレベルは、それぞれの配置等に応じて適宜に設定される。たとえば、比較的高い秘匿性を有する部署にゲートウエイ30が配置されている場合(ゲートウエイ30が比較的高い秘匿性を有する情報を管理する場合等)には、比較的高いセキュリティレベルが当該ゲートウエイ30に設定される。逆に、比較的低い秘匿性を有する部署にゲートウエイ30が配置されている場合(ゲートウエイ30が秘匿情報をほぼ扱わない場合等)には、比較的低いセキュリティレベルが当該ゲートウエイ30に設定される。
たとえば、ゲートウエイ30bのセキュリティレベルが「レベル3」に設定されており且つ代行ゲートウエイ30aのセキュリティレベルが「レベル5」に設定されているときには、代行ゲートウエイ30aのセキュリティレベルは、ゲートウエイ30bのセキュリティレベルよりも高いと判定される。ここでは、セキュリティレベルの数値が大きいほど、高いレベルのセキュリティが確保されることを示すものとする。
なお、ステップS45では、トンネル接続経路等に関するセキュリティ項目に関するセキュリティレベルが比較されることが好ましい。たとえば、トンネル接続経路自体の「暗号化強度」、および/またはトンネル接続経路に関する「証明書検証強度」等が比較されることが好ましい。一方、トンネル接続経路以外のセキュリティに関する項目(たとえば、PDFファイルの暗号化に関する「暗号化PDF設定」、あるいはゲートウエイ30のHDD(ハードディスクドライブ)の暗号化に関する「HDD暗号化」)は考慮されなくてもよい。
また、ゲートウエイ30aは、図19の動作に先立って、ゲートウエイ30aのセキュリティレベルとゲートウエイ30bのセキュリティレベルとを予め取得しているものとする。たとえば、ゲートウエイ30bとの通信等によって各セキュリティレベルが取得されればよい。
ステップS45において、代行ゲートウエイ30aのセキュリティレベルがゲートウエイ30bのセキュリティレベルより低いと判定される場合には、ステップS46に進み、上記第1実施形態(図8参照)(あるいは第2実施形態(図12参照))と同様の処理が行われる。ここでは、簡単化のため、第1実施形態と同様の処理が行われるものとする。
具体的には、図17(図8等も参照)に示す動作が行われる。詳細には、ゲートウエイ30aは、管理サーバ50からのトンネル接続要求をゲートウエイ30bに転送し、ゲートウエイ30bをディープスリープモードから復帰させる(ステップS39)。そして、ゲートウエイ30bは、簡易接続モードにて、クラウドサーバ70との間でトンネル通信を確立し(ステップS56)、当該トンネル通信を利用して、クラウドサーバ70からゲートウエイ30bの管理下のデバイス10(たとえば10b)に向かう通信がゲートウエイ30b経由で実行される(ステップS57)。
一方、代行ゲートウエイ30aのセキュリティレベルがゲートウエイ30bのセキュリティレベル以上である場合には、ステップS47(図19)の処理が実行される。このステップS47においては、ステップS58,S59の処理が実行される。
具体的には、図16および図18に示す動作が行われる。詳細には、代行ゲートウエイ30aは、代行ゲートウエイ30aとクラウドサーバ70との間で新たなトンネル接続(トンネル通信)を確立し(ステップS58)、クラウドサーバ70とデバイス10bとの通信を中継する(ステップS59)。ステップS59では、当該新たなトンネル通信を利用して、クラウドサーバ70からゲートウエイ30aの管理下のデバイス10(たとえば10b)に向かう通信がゲートウエイ30a経由で実行される。
このように、代行接続要求およびトンネル接続要求が管理サーバ50からゲートウエイ30aに対して送信された場合であっても、ゲートウエイ30aは、無条件にトンネル接続要求をゲートウエイ30bに転送するのではない。
ゲートウエイ30aは、自らのセキュリティレベルがゲートウエイ30bのセキュリティレベルに比較して遜色が無い場合(代行ゲートウエイ30aのセキュリティレベルがゲートウエイ30bのセキュリティレベル以上である場合)には、図18のような動作を実行する。具体的には、ゲートウエイ30aは、管理サーバ50からのトンネル接続要求をゲートウエイ30bに転送する代わりに、当該トンネル接続要求に基づきゲートウエイ30a自らがクラウドサーバ70との間にトンネル接続を確立して、ゲートウエイ30a自らがクラウドサーバ70とデバイス10bとの通信を中継する。端的に言えば、代行ゲートウエイ30a自らがゲートウエイ30bに代わって、トンネル接続によるクラウドサーバ70との通信処理をも行う。
これによれば、セキュリティレベルの低下を抑制しつつ、ゲートウエイ30bを出来る限りディープスリープモードに遷移させたままで維持することができるので、ゲートウエイ30bのディープスリープモードからの復帰に伴う電力消費を抑制することが可能である。
なお、第3実施形態および第4実施形態では、ゲートウエイ30bは、簡易接続モードにてクラウドサーバ70とトンネル接続する態様が主に例示されているが、これに限定されない。たとえば、第3実施形態および第4実施形態においても、ゲートウエイ30bは、正規接続モードにてクラウドサーバ70とトンネル接続するようにしてもよい(図14参照)。特に、第2実施形態と同様に、簡易接続モードと正規接続モードとのうちユーザにより選択されたモードによって、ゲートウエイ30bとクラウドサーバ70とがトンネル接続されるようにしてもよい。
<5.第5実施形態>
<5−1.概要>
第5実施形態は、第1実施形態の変形例である。以下では、第1実施形態との相違点を中心に説明する。
上記第1実施形態においては、ゲートウエイ30bがディープスリープモードに遷移する直前にゲートウエイ30bがゲートウエイ30aに対して代行事前依頼を送信する態様が例示されている(図5および図6参照)。
一方、第5実施形態においては、ゲートウエイ30bがゲートウエイ30aに対して代行事前依頼を送信しない態様を例示する。第5実施形態では、ゲートウエイ30aがLAN107内の他のゲートウエイ30(30b等)に関する管理情報を一定期間間隔で取得しておき、当該管理情報を管理サーバ50に随時転送して管理サーバ50に格納しておく。そして、管理サーバ50は、(最新の)当該管理情報に基づいて、ゲートウエイ30bの代行ゲートウエイを決定し、当該決定された代行ゲートウエイ(たとえば30a)に対して、トンネル接続要求を送信する。
<5−2.ディープスリープモードに遷移するまで>
図20は、第5実施形態に係る通信システムにおける動作(主にゲートウエイ30bがディープスリープモードに遷移する前の動作)を示すタイミングチャートである。図21は、第5実施形態に係る通信システムにおける動作の一部の動作(ゲートウエイ30aの動作)を示すフローチャートである。また、図22は、第5実施形態に係る動作(主にゲートウエイ30bがディープスリープモードに遷移する前の動作)を示す概念図である。さらに、図23は、管理サーバ50に格納される管理情報350の一例を示す図である。
第5実施形態においては、第1実施形態における図5の動作の代わりに図20の動作が行われる。具体的には、ゲートウエイ30bがディープスリープモードに遷移する前において、当該ゲートウエイ30bによる代行事前依頼処理が行われるのではなく、複数のゲートウエイ30を統括するゲートウエイ30a(統括ゲートウエイとも称する)(詳細にはその情報収集部45)が、他のゲートウエイ30(ゲートウエイ30bを含む)に関する管理情報を取得し、管理サーバ50に当該管理情報を送信する。
図21は、ゲートウエイ30aの当該動作を示すフローチャートである。
図21に示すように、ステップS21において、前回の検索時点から一定時間(たとえば、1分)が経過した旨が判定されると、ステップS22に進む。
ステップS22においては、ゲートウエイ30a(情報収集部45)は、LAN107内の他のゲートウエイ30(30b等)の存否を確認する検索指令(検索パケット)を送信する。また、ゲートウエイ30a(情報収集部45)は、当該検索指令に応答してLAN107内に存在することが確認された他の各ゲートウエイ30(30b等)に対して、各ゲートウエイ30に関する管理情報を返信すべき旨の管理情報送信要求を送信する(ステップS22)(図22も参照)。
各ゲートウエイ30は、ゲートウエイ30aからの検索指令を受信すると、LAN107内に自ら(各ゲートウエイ30自身)が存在する旨をゲートウエイ30aに返信する。また、各ゲートウエイ30は、ゲートウエイ30aからの管理情報送信要求を受信すると、各ゲートウエイ30の配下のデバイスに関する情報と、各ゲートウエイ30の代行ゲートウエイに関する情報とをゲートウエイ30aに送信する。
なお、ここでは、検索指令と管理情報送信要求との両指令が別個に送受信されているが、これに限定されず、検索指令と管理情報送信要求とに相当する1つの指令(信号)が送受信されるようにしてもよい。
ゲートウエイ30aは、各ゲートウエイ30からの情報(管理情報送信要求に対する応答)を受信する(ステップS23)と、各ゲートウエイ30からの当該情報を管理サーバ50に送信(転送)する(ステップS24)(図22も参照)。
これにより、各ゲートウエイ30からゲートウエイ30aに送信されてきた情報は、ゲートウエイ30aによって管理サーバ50に対して転送され、管理サーバ50内の管理テーブル69(69e)(図22参照)に追加されて格納される。
その後、ゲートウエイ30bは、適宜のタイミングでディープスリープモードに遷移する(図20参照)。
図23は、第5実施形態に係る管理テーブル69(69e)を示す図である。この管理テーブル69eには、管理情報350が格納されている。
図23に示されるように、管理情報350においては、複数のゲートウエイ30と複数のデバイス10との対応関係(支配関係ないし主従関係とも称する)が規定されている。詳細には、各ゲートウエイ30の配下に存在するデバイス10の情報が規定されている。たとえば、図23の管理情報350においては、ゲートウエイ30aの配下にはデバイス10aとデバイス10cとが存在し且つゲートウエイ30bの配下にはデバイス10bが存在する旨が規定されている。
また、管理情報350においては、複数のゲートウエイ30の相互間の代行関係(詳細には、各ゲートウエイを代行することが可能な別のゲートウエイ)も規定されている。たとえば、図23においては、ゲートウエイ30aは、ゲートウエイ30bを代行することが可能である旨が規定されている。
さらに、この管理情報350においては、各ゲートウエイ30が管理サーバ50との間にメッセージセッションを現時点で有しているか否かに関する情報も規定されている。図23では、ゲートウエイ30aは管理サーバ50との間にメッセージセッションを有している旨が規定されているとともに、ゲートウエイ30bは(ディープスリープ中であること等に起因して)管理サーバ50との間にメッセージセッションを有していない旨が規定されている。なお、メッセージセッションの有無に関する情報は、ゲートウエイ30から取得されることを要さず、管理サーバ50自身によって取得され管理テーブル69に格納されればよい。
このように、第5実施形態においては、ゲートウエイ30bがゲートウエイ30aに対して代行事前依頼を送信せずに、ゲートウエイ30bがディープスリープモードに遷移する。
また、ゲートウエイ30aは、ゲートウエイ30bに関する代行用の新たなメッセージセッション513(図7等参照)を生成しない。ゲートウエイ30aは、既存のメッセージセッション511を用いて、ゲートウエイ30a向けのトンネル接続要求とゲートウエイ30b向けのトンネル接続要求との双方を待機する。
<5−3.ディープスリープモードからの復帰>
つぎに、クラウドサーバ70からデバイス10bに対するアクセス要求が付与され、ゲートウエイ30bがディープスリープモード(スリープ状態)から通常モード(非スリープ状態)に復帰する際における通信システム1の動作について図24〜図26を参照しながら説明する。図24は、当該動作を示すタイミングチャートである。また、図25は、当該動作の一部の動作(管理サーバ50の動作)を示すフローチャートであり、図26は、当該動作の一部の動作(ゲートウエイ30aの動作)を示すフローチャートである。
図24に示すように、第1実施形態と同様にしてステップS31,S32が行われる。これに応じて、管理サーバ50は、図25のフローチャートの動作を実行する。
まず、管理サーバ50は、クラウド印刷指示に基づくアクセス要求(印刷出力先のデバイス10bに対するアクセス要求)をクラウドサーバ70から受信すると、ステップS71からステップS72に進む。
ステップS72においては、管理サーバ50は、アクセス先のデバイス10bに対応するゲートウエイとしてゲートウエイ30bを管理情報350(図23)に基づいて決定し、当該ゲートウエイ30bが管理サーバ50との間にメッセージセッションを有しているか否かを判定する。
当該ゲートウエイ30bが管理サーバ50との間にメッセージセッションを有している場合には、ゲートウエイ30bは非ディープスリープ状態(通常状態等)を有すると判定され、管理サーバ50は、ゲートウエイ30bに対して直接的にトンネル接続要求を送信する(ステップS73)。そして、ゲートウエイ30bとクラウドサーバ70との間にトンネル接続が確立され、当該トンネル接続を介してクラウドサーバ70からデバイス10bへのデータ送信等が行われる。
一方、ゲートウエイ30bが管理サーバ50との間にメッセージセッションを有していない場合には、ゲートウエイ30bがディープスリープ状態であるものと判定し、ステップS74に進む。
ステップS74では、ゲートウエイ30bに対して接続可能なゲートウエイ30であって管理サーバ50との間にメッセージセッションを有するゲートウエイ30(換言すれば、ゲートウエイ30bの有効な代行ゲートウエイ)が存在するか否かが管理情報350に基づいて判定される。また、管理サーバ50は、ゲートウエイ30bの有効な代行ゲートウエイ(特定のゲートウエイ30bに対応する有効な代行ゲートウエイ30a)を管理情報350に基づいて決定する。
ゲートウエイ30bの有効な代行ゲートウエイが存在しないと判定される場合には、管理サーバ50はエラー情報をクラウドサーバ70に送信する(ステップS75)。
ゲートウエイ30bの有効な代行ゲートウエイが存在すると判定される場合には、管理サーバ50は、当該代行ゲートウエイ30(ここでは30a)に対してゲートウエイ30b向けのトンネル接続要求を送信する(ステップS76)。換言すれば、管理サーバ50は、ゲートウエイ30bへの転送要求付きのトンネル接続要求をゲートウエイ30aに送信する。
ゲートウエイ30aは、当該ゲートウエイ30aと管理サーバ50との間に確立されている既存のメッセージセッション511(図22)を介して、管理サーバ50からのメッセージ(トンネル接続要求)を受信すると、ステップS64からステップS65に進む(図26参照)。ここでは、ゲートウエイ30a向けのメッセージを主に受け取るメッセージセッション511が、当該ゲートウエイ30aと管理サーバ50との間に既に確立されているものとする。既存の当該メッセージセッション511を用いてゲートウエイ30b向けのトンネル接続要求が受信される。
仮に、当該メッセージが自装置向けのメッセージ(具体的には、ゲートウエイ30a向けのトンネル接続要求)であると判定されると、ステップS65からステップS67に進む。ステップS67では、ゲートウエイ30aとクラウドサーバ70との間にトンネル接続が確立され、当該トンネル接続を介してクラウドサーバ70からデバイス10a(あるいは10c等)へのデータ送信等が行われる。
ここでは、当該メッセージが他のゲートウエイ30b向けのトンネル接続要求であると判定され、ステップS65からステップS66に進む。ステップS66では、第1実施形態と同様に、代行ゲートウエイ30aからゲートウエイ30bに対してトンネル接続要求が転送され(ステップS39)、ゲートウエイ30bがディープスリープ状態から通常状態に復帰する。そして、ゲートウエイ30bとクラウドサーバ70との間にトンネル接続が確立され(ステップS56(図24参照))、当該トンネル接続を介してクラウドサーバ70からデバイス10bへのデータ送信等が行われる(ステップS57)。なお、その後、所定の無操作時間が経過すると、ゲートウエイ30bは再びディープスリープモードに遷移する。
以上のような動作によっても、第1実施形態と同様の効果を得ることが可能である。
また特に、上記動作においては、複数のゲートウエイ30の相互間の代行関係(ゲートウエイ30aがゲートウエイ30bの代行ゲートウエイであること等を含む)がゲートウエイ30aによって予め取得され管理サーバ50に転送されて管理テーブル69に格納されている。そして、管理サーバ50は、クラウドサーバ70からのデバイス10bに対するアクセス要求を受け付けると、管理テーブル69内の管理情報350に基づいて、デバイス10bを配下に有するゲートウエイ(30b)を決定するとともに、当該ゲートウエイ30bの代行ゲートウエイはゲートウエイ30aである旨を決定する。そして、ゲートウエイ30bへの転送要求付きのトンネル接続要求が管理サーバ50から代行ゲートウエイ30aに送信される。この結果、トンネル接続要求が管理サーバ50から代行ゲートウエイ30aを経由してゲートウエイ30bに送信される。
このような動作によれば、ゲートウエイ30bは、ディープスリープモードに遷移する前に代行事前依頼を代行ゲートウエイ30aに送信することを要しない。
さらに特に、代行ゲートウエイ30aは、管理サーバ50との間に新たなメッセージセッションを生成することなく、管理サーバ50との間の既存のメッセージセッション511(ゲートウエイ30a向けのメッセージセッション)を用いて、ゲートウエイ30b向けのトンネル接続要求を待機し、当該トンネル接続要求を受信する(図22参照)。したがって、管理サーバ50とゲートウエイ30aとの間にゲートウエイ30b向けのメッセージセッション513(図7および図10参照)を新たに生成する場合に比べて、通信負荷を軽減し、ゲートウエイ30aおよび管理サーバ50のリソースを有効に利用することが可能である。より詳細には、ゲートウエイ30aおよび管理サーバ50におけるメモリ使用量を抑制することなどが可能である。
<6.第6実施形態>
第6実施形態は、第5実施形態と第2実施形態との組み合わせに係る変形例である。以下では、第5実施形態との相違点を中心に説明する。
この第6実施形態においては、管理サーバ50は、図25のフローチャートの動作に代えて、図27のフローチャートの動作を実行する。
ステップS71〜S75は、第5実施形態と同様である。
ステップS74において「YES」と判定されると、(ステップS76ではなく)ステップS77に進む。
ステップS77では、管理サーバ50は、トンネル通信の確立モード(接続モード)として、「簡易接続モード」と「正規接続モード」との両モードのいずれがユーザ設定によって指定されているかを判定し、その判定結果に応じた分岐処理を行う。なお、ゲートウエイ30bにおけるユーザ設定内容は、予め管理サーバ50に転送されて格納されているものとする。
管理サーバ50は、両モード(「簡易接続モード」および「正規接続モード」)のうちユーザにより設定されたモードによってトンネル接続要求に対する動作を実行すべき旨とトンネル接続要求をゲートウエイ30bに転送すべき旨とを伴うトンネル接続要求を、代行ゲートウエイ30aに対して送信する。
具体的には、トンネル通信の接続モードとして「簡易接続モード」が指定されている場合には、ステップS78に進む。ステップS78では、簡易接続モードによる接続動作を実行すべき旨の情報を伴って(当該情報が付与されて)、ゲートウエイ30b向けのトンネル接続要求が管理サーバ50から代行ゲートウエイ30aに対して送信される。その後、トンネル接続要求がゲートウエイ30aからゲートウエイ30bに転送され(ステップS66(図26))、ゲートウエイ30bにおいて「簡易接続モード」によるトンネル接続処理が実行される(ステップS56,S57)(図8および図10参照)。
一方、トンネル通信の接続モードとして、「正規接続モード」が指定されている場合には、ステップS79に進む。ステップS79では、正規接続モードによる接続動作を実行すべき旨の情報を伴って(当該情報が付与されて)、ゲートウエイ30b向けのトンネル接続要求が管理サーバ50から代行ゲートウエイ30aに対して送信される。その後、トンネル接続要求がゲートウエイ30aからゲートウエイ30bに転送され(ステップS66(図26))、ゲートウエイ30bにおいて「正規接続モード」によるトンネル接続処理が実行される(ステップS53,S54,S55,S56,S57)(図12および図14参照)。
以上のような動作によれば、第2実施形態および第5実施形態と同様の効果を得ることが可能である。
<7.第7実施形態>
第7実施形態は、第5実施形態と第3実施形態との組み合わせに係る変形例である。以下では、第5実施形態との相違点を中心に説明する。
この第7実施形態においては、第3実施形態と同様に、ゲートウエイ30a,30bの双方が共通のデバイス10(ここでは10b)を配下に有している状況を想定する(図17および図18参照)。なお、メッセージセッション513が確立されていない点においては、第5実施形態(図22参照)と共通し、第3実施形態(図17および図18参照)とは相違する。
第7実施形態においては、デバイス10bに対するアクセス要求を管理サーバ50がクラウドサーバ70から受け付けると、管理サーバ50は、デバイス10bに対応するゲートウエイ30を両ゲートウエイ30a,30bの中から管理情報530に基づいて選択する。ここでは、ゲートウエイ30bが、デバイス10bに対応するゲートウエイとして選択されたものとする。
そして、管理サーバ50は、当該ゲートウエイ30bと管理サーバ50とのメッセージセッションが確立されていない旨を判定する場合に、トンネル接続要求を代行ゲートウエイ30aに送信する。ただし、管理サーバ50は、所定の条件を充足しているか否かに応じて、トンネル接続要求をゲートウエイ30bに転送すべき旨を当該トンネル接続要求に付随させるか否かを決定する。第7実施形態における当該所定の条件は、第3実施形態における所定の条件と同様である。
ゲートウエイ30aの現在のトンネル接続数が所定の上限値に既に到達している場合には、ゲートウエイ30bに転送すべき旨を伴ってトンネル接続要求がゲートウエイ30aに送信される。換言すれば、管理サーバ50は、ゲートウエイ30bへの転送要求付きのトンネル接続要求をゲートウエイ30aに送信する。これに応じて、ゲートウエイ30aは、ゲートウエイ30bにトンネル接続要求を転送する。
一方、ゲートウエイ30aの現在のトンネル接続数が所定の上限値に未だ到達していない場合には、ゲートウエイ30bに転送すべき旨を伴わずにトンネル接続要求がゲートウエイ30aに送信される。
そして、当該トンネル接続要求を最終的に受信したゲートウエイ30(30aあるいは30b)とクラウドサーバ70との間にトンネル接続が確立され、当該確立されたトンネル接続を介して、印刷対象データ等がクラウドサーバ70から送信対象デバイス10bに送信される。
この第7実施形態においては、管理サーバ50は、図25のフローチャートの動作に代えて、図28のフローチャートの動作を実行する。
ステップS71〜S75は、第5実施形態と同様である。
ステップS74において「YES」と判定されると、(ステップS76ではなく)ステップS81に進む。
ステップS81では、管理サーバ50は、ゲートウエイ30aに対して現在のトンネル接続の接続数を返信すべき旨の指令を送信する。ゲートウエイ30aは、当該指令に応答して、ゲートウエイ30aの現在のトンネル接続数を管理サーバ50に返信する。当該指令およびその応答は、メッセージセッション511(図22参照)を介して送受信される。
ゲートウエイ30aにおける現在のトンネル接続数がゲートウエイ30から管理サーバ50へと送信されてくると、処理はステップS82からステップS83に進む。
ステップS83では、ゲートウエイ30aのトンネル接続数が所定の上限値(たとえば、「2」)に既に到達しているか否かが判定され、その判定結果に基づく分岐処理が実行される。
クラウドサーバ70とゲートウエイ(代行ゲートウエイ)30aとの間に設けられた現在のトンネル接続数が所定の上限値(たとえば、「2」)に既に到達している場合には、ステップS84の処理が実行される。ステップS84においては、管理サーバ50は、トンネル接続要求をゲートウエイ30bに転送すべき旨を伴って、トンネル接続要求を代行ゲートウエイ30aに対して送信する。すなわち、転送要求付きのトンネル接続要求がゲートウエイ30aに送信される。
その後、上記第1実施形態(図8参照)(あるいは第2実施形態(図12参照))と同様の処理が行われる。具体的には、図17(図8等も参照)に示すように、ゲートウエイ30aは、管理サーバ50からのトンネル接続要求をゲートウエイ30bに転送し、ゲートウエイ30bをディープスリープモードから復帰させる(ステップS39)。そして、ゲートウエイ30bは、簡易接続モード(あるいは正規接続モード)にて、クラウドサーバ70との間でトンネル通信を確立し(ステップS56)、当該トンネル通信を利用して、クラウドサーバ70からゲートウエイ30bの管理下のデバイス10(たとえば10b)に向かう通信がゲートウエイ30b経由で実行される(ステップS57)。
一方、クラウドサーバ70と代行ゲートウエイ30aとの間に設けられた現在のトンネル接続数が所定の上限値に未だ到達していない場合には、ステップS85(図28)の処理が実行される。ステップS85においては、管理サーバ50は、転送要求を伴わないトンネル接続要求をゲートウエイ30aに送信する。換言すれば、管理サーバ50は、ゲートウエイ30a自身で実行すべきトンネル接続要求をゲートウエイ30aに送信する。
その後、ステップS58,S59の処理が実行される。具体的には、図16および図18に示すように、ゲートウエイ30aは、ゲートウエイ30aとクラウドサーバ70との間で新たなトンネル接続(トンネル通信)を確立し(ステップS58)、クラウドサーバ70とデバイス10bとの通信を中継する(ステップS59)。ステップS59では、当該新たなトンネル通信を利用して、クラウドサーバ70からゲートウエイ30aの管理下のデバイス10(たとえば10b)に向かう通信がゲートウエイ30a経由で実行される。
このように、管理サーバ50は、転送要求を伴わないトンネル接続要求をゲートウエイ30aに対して送信してゲートウエイ30aとクラウドサーバ70との間でトンネル通信を確立させ、クラウドサーバ70と特定のデバイス10bとの通信をゲートウエイ30aに中継させることができる。
以上のような動作によれば、第3実施形態および第5実施形態と同様の効果を得ることが可能である。
<8.第8実施形態>
第8実施形態は、第5実施形態と第4実施形態との組み合わせに係る変形例である。以下では、第5実施形態との相違点を中心に説明する。
この第8実施形態においては、第4実施形態と同様に、ゲートウエイ30a,30bの双方が共通のデバイス10(ここでは10b)を配下に有している状況を想定する(図17および図18参照)。なお、メッセージセッション513が確立されていない点においては、第5実施形態(図22参照)と共通し、第4実施形態とは相違する。
第8実施形態においては、デバイス10bに対するアクセス要求を管理サーバ50がクラウドサーバ70から受け付けると、管理サーバ50は、デバイス10bに対応するゲートウエイ30を両ゲートウエイ30a,30bの中から管理情報530に基づいて選択する。ここでは、ゲートウエイ30bが、デバイス10bに対応するゲートウエイとして選択されたものとする。
そして、管理サーバ50は、ゲートウエイ30bと管理サーバ50とのメッセージセッションが確立されていない旨を判定する場合には、トンネル接続要求を代行ゲートウエイ30aに送信する。ただし、管理サーバ50は、所定の条件を充足しているか否かに応じて、トンネル接続要求をゲートウエイ30bに転送すべき旨を当該トンネル接続要求に付随させるか否かを決定する。第8実施形態における当該所定の条件は、第4実施形態における所定の条件と同様である。
代行ゲートウエイ30aのセキュリティレベルがゲートウエイ30bのセキュリティレベルより低いと判定される場合には、ゲートウエイ30bに転送すべき旨を伴ってトンネル接続要求がゲートウエイ30aに送信される。換言すれば、管理サーバ50は、ゲートウエイ30bへの転送要求付きのトンネル接続要求をゲートウエイ30aに送信する。これに応じて、ゲートウエイ30aは、ゲートウエイ30bにトンネル接続要求を転送する。
一方、代行ゲートウエイ30aのセキュリティレベルがゲートウエイ30bのセキュリティレベル以上であると判定される場合には、ゲートウエイ30bに転送すべき旨を伴わずにトンネル接続要求がゲートウエイ30aに送信される。
そして、当該トンネル接続要求を最終的に受信したゲートウエイ30(30aあるいは30b)とクラウドサーバ70との間にトンネル接続が確立され、当該確立されたトンネル接続を介して、印刷対象データ等がクラウドサーバ70から送信対象デバイス10bに送信される。
この第8実施形態においては、管理サーバ50は、図25のフローチャートの動作に代えて、図29のフローチャートの動作を実行する。
ステップS71〜S75は、第5実施形態と同様である。
ステップS74において「YES」と判定されると、(ステップS76ではなく)ステップS91に進む。
ステップS91では、代行ゲートウエイ30aのセキュリティレベルとゲートウエイ30bのセキュリティレベルとの大小関係が判定され、その判定結果に基づく分岐処理が実行される。
なお、各ゲートウエイ30のセキュリティレベルに関する情報は、ステップS23,S24(図20および図21参照)において、各ゲートウエイ30からゲートウエイ30aを介して管理サーバ50へと予め送信されているものとする。
代行ゲートウエイ30aのセキュリティレベルがゲートウエイ30bのセキュリティレベルより低いと判定される場合には、ステップS92の処理が実行される。ステップS92においては、管理サーバ50は、トンネル接続要求をゲートウエイ30bに転送すべき旨を伴って、トンネル接続要求を代行ゲートウエイ30aに対して送信する。すなわち、転送要求付きのトンネル接続要求がゲートウエイ30aに送信される。
その後、上記第1実施形態(図8参照)(あるいは第2実施形態(図12参照))と同様の処理が行われる。具体的には、図17(図8等も参照)に示すように、ゲートウエイ30aは、管理サーバ50からのトンネル接続要求をゲートウエイ30bに転送し、ゲートウエイ30bをディープスリープモードから復帰させる(ステップS39)。そして、ゲートウエイ30bは、簡易接続モード(あるいは正規接続モード)にて、クラウドサーバ70との間でトンネル通信を確立し(ステップS56)、当該トンネル通信を利用して、クラウドサーバ70からゲートウエイ30bの管理下のデバイス10(たとえば10b)に向かう通信がゲートウエイ30b経由で実行される(ステップS57)。
一方、代行ゲートウエイ30aのセキュリティレベルがゲートウエイ30bのセキュリティレベル以上である場合には、ステップS93(図29)の処理が実行される。ステップS93においては、管理サーバ50は、転送要求を伴わないトンネル接続要求をゲートウエイ30aに送信する。換言すれば、管理サーバ50は、ゲートウエイ30a自身で実行すべきトンネル接続要求をゲートウエイ30aに送信する。
その後、ステップS58,S59の処理が実行される。具体的には、図16および図18に示すように、ゲートウエイ30aは、ゲートウエイ30aとクラウドサーバ70との間で新たなトンネル接続(トンネル通信)を確立し(ステップS58)、クラウドサーバ70とデバイス10bとの通信を中継する(ステップS59)。ステップS59では、当該新たなトンネル通信を利用して、クラウドサーバ70からゲートウエイ30aの管理下のデバイス10(たとえば10b)に向かう通信がゲートウエイ30a経由で実行される。
以上のような動作によれば、第4実施形態および第5実施形態と同様の効果を得ることが可能である。
<9.変形例等>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
たとえば、上記各実施形態においては、ゲートウエイ30がMFPを用いて構築される態様が例示されているが、これに限定されず、ゲートウエイ30は他の装置(単機能プリンタあるいはパーソナルコンピュータ等)を用いて構築されてもよい。
また、上記各実施形態においては、デバイス10としてMFPが例示されているが、これに限定されず、デバイス10はその他の装置(単機能プリンタあるいはパーソナルコンピュータ等)であってもよい。