(57)【要約】【課題】  ファイアーウォールの外部から内部にジョブを送信すること。【解決手段】  クラウドサーバーは、停止期間でない場合に、接続要求を管理サーバーに送信する接続要求部４７５と、中継装置から接続要求に含まれる接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に第１通信セッションを確立する確立要求受信部４７７と、第１通信セッションが確立された後に、制御対象装置によってジョブが実行された結果を取得することことに応じて、停止期間でないことを条件に第１通信セッションを切断し、停止期間の場合には停止期間が終了した後に第１通信セッションを切断するクラウド側切断部４７９と、停止期間にジョブが生成される場合、停止期間が開始する前に確立された第１の通信セッションを介してジョブを制御対象装置に送信するジョブ送信部４６１とを備える。【選択図】        図８
2016105230.tif 000002
【特許請求の範囲】
【請求項１】
ファイアーウォールの外部に配置されたクラウドサーバーおよび管理サーバーと、ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置と、を備えた情報処理システムであって、
前記クラウドサーバーは、前記管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得手段と、
前記中継装置との間で第１の通信セッションを確立するクラウド側セッション確立手段と、
前記制御対象装置に実行させるジョブを生成するジョブ生成手段と、
前記第１の通信セッションを介して、前記生成されたジョブを前記制御対象装置に送信するジョブ送信手段と、を備え、
前記クラウド側セッション確立手段は、前記停止期間でない場合に、接続先のアドレス情報と、前記制御対象装置を識別するための接続元のアドレス情報とを含む接続要求を、前記管理サーバーに送信する接続要求手段と、
前記接続要求が送信された後に、前記管理サーバーから転送された前記接続要求を受信する前記中継装置から前記接続要求に含まれる前記接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に前記第１の通信セッションを確立する確立要求受信手段と、
前記第１の通信セッションが確立された後に、前記制御対象装置によってジョブが実行された結果を取得することことに応じて、前記停止期間でないことを条件に前記第１の通信セッションを切断し、前記停止期間の場合には前記停止期間が終了した後に前記第１の通信セッションを切断するクラウド側切断手段と、を含み、
前記ジョブ送信手段は、前記停止期間に前記ジョブが生成される場合、前記停止期間が開始する前に確立された前記第１の通信セッションを介して、前記停止期間に生成されたジョブを前記制御対象装置に送信する、情報処理システム。
【請求項２】
前記管理サーバーは、前記中継装置からの要求に基づいて、前記中継装置との間で通信するための常時セッションンを確立するサーバー側確立手段と、
前記クラウドサーバーから前記接続要求を受信することに応じて、前記接続要求を前記中継装置に前記常時接続セッションを介して送信するトンネル接続要求手段と、を備え、
前記中継装置は、前記管理サーバーとの間で前記常時接続セッションを確立する常時接続セッション確立手段と、
前記管理サーバーから前記常時接続セッションを介して前記接続要求が受信されることに応じて、前記接続要求に含まれる前記接続先のアドレス情報を用いて前記クラウドサーバーとの間で前記第１通信セッションを確立する第１セッション確立手段と、
前記管理サーバーから受信された前記接続要求に含まれる前記接続元のアドレス情報で特定される前記制御対象装置との間で第２通信セッションを確立する第２セッション確立手段と、
前記第１通信セッションと前記第２通信セッションとを用いて、前記クラウドサーバーと前記制御対象装置との間の通信を中継する中継手段と、を備えた、情報処理システム。
【請求項３】
前記ジョブ送信手段は、前記停止期間に前記ジョブが複数生成される場合、前記第１通信セッションを介して、前記停止期間に生成された前記複数のジョブを前記制御対象装置に順に送信する順次送信手段を含む、請求項１または２に記載の情報処理システム。
【請求項４】
前記制御対象装置は複数あり、
前記接続要求手段は、前記停止期間でない場合は、前記複数の制御対象装置のうち前記ジョブを実行させる制御対象装置を識別するためのアドレス情報を接続元のアドレス情報として含む接続要求を、前記管理サーバーに送信し、
前記クラウド側セッション確立手段は、さらに、前記第１通信セッションを確立している間、前記第１通信セッションを識別するためのセッション識別情報と前記接続元のアドレス情報とを関連付ける接続状態関連付手段を、含み、
前記ジョブ送信手段は、前記停止期間に生成されたジョブを実行する装置として定められた制御対象装置のアドレス情報と同じ接続元のアドレス情報が前記接続状態関連付手段により関連付けられたセッション識別情報が存在することを条件に、当該セッション識別情報で特定される前記第１通信セッションを介して、前記停止期間に生成されたジョブを送信する、請求項１〜３のいずれかに記載の情報処理システム。
【請求項５】
前記クラウドサーバーは、前記接続状態関連付手段により１つの装置識別情報に複数のセッション識別情報が関連付けられている場合、前記複数のセッション識別情報のうちから選択された１つ以外のセッション識別情報で特定される第１通信セッションを切断する切断手段を、さらに備えた請求項４に記載の情報処理システム。
【請求項６】
ファイアーウォールの外部に配置されたクラウドサーバーおよび管理サーバーと、ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置と、を備えた情報処理システムであって、
前記中継装置は、前記管理サーバーとの間で常時接続セッションを確立する常時接続セッション確立手段と、
前記管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得手段と、
前記管理サーバーが前記クラウドサーバーから受信する接続要求であって、接続元のアドレス情報および接続先のアドレス情報を含む接続要求を前記管理サーバーから前記常時接続セッションを介して受信することに応じて、前記受信された接続要求に含まれる前記接続先のアドレス情報を用いて前記クラウドサーバーとの間で第１通信セッションを確立する第１セッション確立手段と、
前記第１通信セッションが確立されることに応じて、前記接続要求に含まれる接続元のアドレス情報および接続先のアドレス情報を含む通信履歴を記憶する通信履歴記憶手段と、
前記受信された接続要求に含まれる前記接続元のアドレス情報で特定される前記制御対象装置との間で前記第２通信セッションを確立する第２セッション確立手段と、
前記第１通信セッションと前記第２通信セッションとを用いて、前記クラウドサーバーと前記制御対象装置との間の通信を中継する中継手段と、
前記停止期間が開始することに応じて、前記通信履歴に含まれる接続元のアドレス情報を含む再確立要求を、前記通信履歴に含まれる接続先のアドレス情報で特定される前記クラウドサーバーに送信し、前記クラウドサーバーとの間で第３通信セッションを確立し、前記停止期間が終了するまで前記第３通信セッションを維持する第３セッション確立手段と、
前記停止期間が開始することに応じて、前記通信履歴に含まれる接続元のアドレス情報で特定される前記制御対象装置との間で第４通信セッションを確立する第４セッション確立手段と、を備え、
前記中継手段は、前記第３セッション確立手段により前記第３通信セッションが確立されている間、前記第３通信セッションと前記第４通信セッションとを用いて、前記クラウドサーバーと前記制御対象装置との間の通信を中継し、
前記クラウドサーバーは、前記中継装置との間で第１通信セッションを確立するクラウド側セッション確立手段と、
前記制御対象装置に実行させるジョブを生成するジョブ生成手段と、
前記第１通信セッションを介して、前記生成されたジョブを前記制御対象装置に送信するジョブ送信手段と、を備え、
前記クラウド側セッション確立手段は、接続先のアドレス情報と、前記制御対象装置を識別するための接続元のアドレス情報を含む接続要求を、前記管理サーバーに送信する接続要求手段と、
前記接続要求が送信された後に、前記管理サーバーから転送された前記接続要求を受信する前記中継装置から前記接続要求に含まれる前記接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に前記第１通信セッションを確立する確立要求受信手段と、
前記第１通信セッションが確立された後に、前記制御対象装置によってジョブが実行された結果を取得することことに応じて、前記第１通信セッションを切断するクラウド側セッション切断手段と、
前記中継装置から前記再確立要求が受信されることに応じて、前記中継装置との間で前記第３通信セッションを確立する再確立手段と、を含み、
前記ジョブ送信手段は、前記第３通信セッションが確立されている場合、前記第３通信セッションを介して、前記生成されたジョブを前記制御対象装置に送信する停止期間送信手段を、含む、情報処理システム。
【請求項７】
前記停止期間送信手段は、前記第３通信セッションが確立されている間に複数の前記ジョブが生成される場合、前記第３通信セッションを介して、前記停止期間に生成された前記複数のジョブを前記制御対象装置に順に送信する、請求項６に記載の情報処理システム。
【請求項８】
前記制御対象装置は複数あり、
前記クライドサーバーは、さらに、前記中継装置との間で前記第３通信セッションを確立することに応じて、前記第３通信セッションを識別するためのセッション識別情報と前記複数の制御対象装置のうち前記前記中継装置から受信される前記再接続要求に含まれる接続元のアドレス情報とを関連付ける接続状態関連付手段を、含み、
前記ジョブ送信手段は、前記第３通信セッションが確立されている間に前記ジョブが生成される場合、前記複数の制御対象装置のうちから前記生成されたジョブを実行する制御対象装置のアドレス情報と同じ接続元のアドレス情報と前記接続状態関連付手段により関連付けられたセッション識別情報が存在することを条件に、当該セッション識別情報で特定される前記第３通信セッションを介して、前記生成されたジョブを送信する、請求項６または７に記載の情報処理システム。
【請求項９】
前記第３セッション確立手段は、接続元のアドレス情報と接続先のアドレス情報とが同じ複数の通信履歴に対して１つの再確立要求を送信する、請求項６〜８のいずれかに記載の情報処理システム。
【請求項１０】
ファイアーウォールの外部に配置されたクラウドサーバーであって、
ファイアーウォールの外部に配置された管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得手段と、
ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置との間で第１通信セッションを確立するクラウド側セッション確立手段と、
前記制御対象装置に実行させるジョブを生成するジョブ生成手段と、
前記第１通信セッションを介して、前記生成されたジョブを前記制御対象装置に送信するジョブ送信手段と、を備え、
前記クラウド側セッション確立手段は、前記停止期間でない場合に、接続先のアドレス情報と、前記制御対象装置を識別するための接続元のアドレス情報とを含む接続要求を、前記管理サーバーに送信する接続要求手段と、
前記接続要求が送信された後に、前記管理サーバーから転送された前記接続要求を受信する前記中継装置から前記接続要求に含まれる前記接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に前記第１通信セッションを確立する確立要求受信手段と、
前記第１通信セッションが確立された後に、前記制御対象装置によってジョブが実行された結果を取得することことに応じて、前記停止期間でないことを条件に前記第１通信セッションを切断し、前記停止期間の場合には前記停止期間が終了した後に前記第１通信セッションを切断するクラウド側切断手段と、を含み、
前記ジョブ送信手段は、前記停止期間に前記ジョブが生成される場合、前記停止期間が開始する前に確立された前記第１通信セッションを介して、前記停止期間に生成されたジョブを前記制御対象装置に送信する、クラウドサーバー。
【請求項１１】
ファイアーウォールの外部に配置されたクラウドサーバーで実行される装置制御方法であって、
ファイアーウォールの外部に配置された管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得ステップと、
ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置との間で第１通信セッションを確立するクラウド側セッション確立ステップと、
前記制御対象装置に実行させるジョブを生成するジョブ生成ステップと、
前記第１通信セッションを介して、前記生成されたジョブを前記制御対象装置に送信するジョブ送信ステップと、を含み、
前記クラウド側セッション確立ステップは、前記停止期間でない場合に、接続先のアドレス情報と、前記制御対象装置を識別するための接続元のアドレス情報とを含む接続要求を、前記管理サーバーに送信する接続要求ステップと、
前記接続要求が送信された後に、前記管理サーバーから転送された前記接続要求を受信する前記中継装置から前記接続要求に含まれる前記接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に前記第１通信セッションを確立する確立要求受信ステップと、
前記第１通信セッションが確立された後に、前記制御対象装置によってジョブが実行された結果を取得することことに応じて、前記停止期間でないことを条件に前記第１通信セッションを切断し、前記停止期間の場合には前記停止期間が終了した後に前記第１通信セッションを切断するクラウド側切断ステップと、を含み、
前記ジョブ送信ステップは、前記停止期間に前記ジョブが生成される場合、前記停止期間が開始する前に確立された前記第１通信セッションを介して、前記停止期間に生成されたジョブを前記制御対象装置に送信するステップを含む、装置制御方法。
【請求項１２】
ファイアーウォールの外部に配置されたクラウドサーバーおよび管理サーバーと、ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置と、を備えた情報処理システムで実行される装置制御方法であって、
前記中継装置に、前記管理サーバーとの間で常時接続セッションを確立する常時接続セッション確立ステップと、
前記管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得ステップと、
前記管理サーバーが前記クラウドサーバーから受信する接続要求であって、接続元のアドレス情報および接続先のアドレス情報を含む接続要求を前記管理サーバーから前記常時接続セッションを介して受信することに応じて、前記受信された接続要求に含まれる前記接続先のアドレス情報を用いて前記クラウドサーバーとの間で第１通信セッションを確立する第１セッション確立ステップと、
前記第１通信セッションが確立されることに応じて、前記接続要求に含まれる接続元のアドレス情報および接続先のアドレス情報を含む通信履歴を記憶する通信履歴記憶ステップと、
前記受信された接続要求に含まれる前記接続元のアドレス情報で特定される前記制御対象装置との間で前記第２通信セッションを確立する第２セッション確立ステップと、
前記第１通信セッションと前記第２通信セッションとを用いて、前記クラウドサーバーと前記制御対象装置との間の通信を中継する中継ステップと、
前記停止期間が開始することに応じて、前記通信履歴に含まれる接続元のアドレス情報を含む再確立要求を、前記通信履歴に含まれる接続先のアドレス情報で特定される前記クラウドサーバーに送信し、前記クラウドサーバーとの間で第３通信セッションを確立し、前記停止期間が終了するまで前記第３通信セッションを維持する第３セッション確立ステップと、
前記停止期間が開始することに応じて、前記通信履歴に含まれる接続元のアドレス情報で特定される前記制御対象装置との間で第４通信セッションを確立する第４セッション確立ステップと、を実行させ、
前記中継ステップは、前記第３セッション確立ステップにおいて前記第３通信セッションが確立されている間、前記第３通信セッションと前記第４通信セッションとを用いて、前記クラウドサーバーと前記制御対象装置との間の通信を中継するステップを含み、
前記クラウドサーバーに、前記中継装置との間で第１通信セッションを確立するクラウド側セッション確立ステップと、
前記制御対象装置に実行させるジョブを生成するジョブ生成ステップと、
前記第１通信セッションを介して、前記生成されたジョブを前記制御対象装置に送信するジョブ送信ステップと、を実行させ、
前記クラウド側セッション確立ステップは、接続先のアドレス情報と、前記制御対象装置を識別するための接続元のアドレス情報を含む接続要求を、前記管理サーバーに送信する接続要求ステップと、
前記接続要求が送信された後に、前記管理サーバーから転送された前記接続要求を受信する前記中継装置から前記接続要求に含まれる前記接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に前記第１通信セッションを確立する確立要求受信ステップと、
前記第１通信セッションが確立された後に、前記制御対象装置によってジョブが実行された結果を取得することことに応じて、前記第１通信セッションを切断するクラウド側セッション切断ステップと、
前記中継装置から前記再確立要求が受信されることに応じて、前記中継装置との間で前記第３通信セッションを確立する再確立ステップと、を含み、
前記ジョブ送信ステップは、前記第３通信セッションが確立されている場合、前記第３通信セッションを介して、前記生成されたジョブを前記制御対象装置に送信する停止期間送信ステップを、含む、装置制御方法。
【請求項１３】
ファイアーウォールの外部に配置されたクラウドサーバーを制御するコンピューターで実行される装置制御プログラムであって、
ファイアーウォールの外部に配置された管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得ステップと、
ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置との間で第１通信セッションを確立するクラウド側セッション確立ステップと、
前記制御対象装置に実行させるジョブを生成するジョブ生成ステップと、
前記第１通信セッションを介して、前記生成されたジョブを前記制御対象装置に送信するジョブ送信ステップと、を前記コンピューターに実行させ、
前記クラウド側セッション確立ステップは、前記停止期間でない場合に、接続先のアドレス情報と、前記制御対象装置を識別するための接続元のアドレス情報とを含む接続要求を、前記管理サーバーに送信する接続要求ステップと、
前記接続要求が送信された後に、前記管理サーバーから転送された前記接続要求を受信する前記中継装置から前記接続要求に含まれる前記接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に前記第１通信セッションを確立する確立要求受信ステップと、
前記第１通信セッションが確立された後に、前記制御対象装置によってジョブが実行された結果を取得することことに応じて、前記停止期間でないことを条件に前記第１通信セッションを切断し、前記停止期間の場合には前記停止期間が終了した後に前記第１通信セッションを切断するクラウド側切断ステップと、を含み、
前記ジョブ送信ステップは、前記停止期間に前記ジョブが生成される場合、前記停止期間が開始する前に確立された前記第１通信セッションを介して、前記停止期間に生成されたユーザーによる操作に基づいてジョブを前記制御対象装置に送信するステップを含む、装置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理システム、クラウドサーバー、装置制御方法および装置制御プログラムに関し、特に、ファイアーウォールの外部のクラウドサーバーからファイアーウォールの内部の装置を制御する情報処理システム、その情報処理システムに含まれるクラウドサーバー、その情報処理システムで実行される装置制御方法およびそのクラウドサーバーで実行される装置制御プログラムに関する。
【０００２】
インターネットに接続されたクラウドサーバーが提供するサービスを利用して、ローカルエリアネットワークに接続された複合機（以下「ＭＦＰ」という）を制御する場合がある。例えば、クラウドサーバーに記憶されたデータを、ＭＦＰにプリントさせる場合である。しかしながら、ＭＦＰは、ローカルエリアネットワーク（以下「ＬＡＮ」という）に接続されている場合が多く、そのＬＡＮは、インターネットとファイアーウォールを介して接続される。このため、クラウドサーバーからＭＦＰに対するアクセスは、ファイアーウォールによって遮断される場合がある。
【０００３】
特開２００６−１９１６５９号公報には、第１の情報処理装置と第２の情報処理装置との間におけるトンネル通信に関する情報であるトンネル通信情報を管理するトンネル管理装置が、そのトンネル通信情報に基づいて、トンネル通信の維持に関する情報である維持情報を、第１の情報処理装置に送信すると、第１の情報処理装置は、トンネル管理装置から受け付けた維持情報に基づいて、第２の情報処理装置との間のトンネル通信を制御する情報システムが記載されている。
【０００４】
しかしながら、従来の情報処理システムにおいては、トンネル管理装置が第１の情報処理装置と第２の情報処理装置との間のトンネル通信を制御するので、トンネル管理装置がメンテナンス等で停止する場合に、トンネル通信を制御できない場合があるといった問題がある。
【特許文献１】特開２００６−１９１６５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、管理サーバーがサービスを提供しない間にファイアーウォールの外部から内部にジョブを送信することが可能な情報処理システムを提供することである。
【０００６】
この発明の他の目的は、管理サーバーがサービスを提供しない間にファイアーウォールの内部にジョブを送信することが可能なクラウドサーバーを提供することである。
【０００７】
この発明のさらに他の目的は、管理サーバーがサービスを提供しない間にファイアーウォールの内部にジョブを送信することが可能な装置制御方法を提供することである。
【０００８】
この発明のさらに他の目的は、管理サーバーがサービスを提供しない間に、ファイアーウォールの外部から内部にジョブを送信することが可能な装置制御方法を提供することである。
【０００９】
この発明のさらに他の目的は、管理サーバーがサービスを提供しない間にファイアーウォールの内部にジョブを送信することが可能な装置制御プログラムを提供することである。
【課題を解決するための手段】
【００１０】
上述した目的を達成するためにこの発明のある局面によれば、情報処理システムは、ファイアーウォールの外部に配置されたクラウドサーバーおよび管理サーバーと、ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置と、を備えた情報処理システムであって、クラウドサーバーは、管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得手段と、中継装置との間で第１の通信セッションを確立するクラウド側セッション確立手段と、制御対象装置に実行させるジョブを生成するジョブ生成手段と、第１の通信セッションを介して、生成されたジョブを制御対象装置に送信するジョブ送信手段と、を備え、クラウド側セッション確立手段は、停止期間でない場合に、接続先のアドレス情報と、制御対象装置を識別するための接続元のアドレス情報とを含む接続要求を、管理サーバーに送信する接続要求手段と、接続要求が送信された後に、管理サーバーから転送された接続要求を受信する中継装置から接続要求に含まれる接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に第１の通信セッションを確立する確立要求受信手段と、第１の通信セッションが確立された後に、制御対象装置によってジョブが実行された結果を取得することことに応じて、停止期間でないことを条件に第１の通信セッションを切断し、停止期間の場合には停止期間が終了した後に第１の通信セッションを切断するクラウド側切断手段と、を含み、ジョブ送信手段は、停止期間にジョブが生成される場合、停止期間が開始する前に確立された第１の通信セッションを介して、停止期間に生成されたジョブを制御対象装置に送信する。
【００１１】
この局面に従えば、管理サーバーがサービスの提供をしない期間を示す停止期間を取得し、停止期間でない場合に、接続先のアドレス情報と、制御対象装置を識別するための接続元のアドレス情報とを含む接続要求を、管理サーバーに送信し、管理サーバーから転送される接続要求を受信する中継装置から接続要求に含まれる接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に第１通信セッションを確立し、第１通信セッションが確立された後に、制御対象装置によってジョブが実行された結果を取得することことに応じて、停止期間でないことを条件に第１通信セッションを切断するが、停止期間の場合には停止期間が終了した後に第１通信セッションを切断し、停止期間にジョブが生成される場合、停止期間が開始する前に確立された第１通信セッションを介して、停止期間に生成されたジョブを制御対象装置に送信する。このため、管理サーバーがサービスを提供しない間に、ファイアーウォールの外部から内部にジョブを送信することが可能な情報処理システムを提供することができる。
【００１２】
好ましくは、管理サーバーは、中継装置からの要求に基づいて、中継装置との間で通信するための常時セッションンを確立するサーバー側確立手段と、クラウドサーバーから接続要求を受信することに応じて、接続要求を中継装置に常時接続セッションを介して送信するトンネル接続要求手段と、を備え、中継装置は、管理サーバーとの間で常時接続セッションを確立する常時接続セッション確立手段と、管理サーバーから常時接続セッションを介して接続要求が受信されることに応じて、接続要求に含まれる接続先のアドレス情報を用いてクラウドサーバーとの間で第１通信セッションを確立する第１セッション確立手段と、管理サーバーから受信された接続要求に含まれる接続元のアドレス情報で特定される制御対象装置との間で第２通信セッションを確立する第２セッション確立手段と、第１通信セッションと第２通信セッションとを用いて、クラウドサーバーと制御対象装置との間の通信を中継する中継手段と、を備える。
【００１３】
この局面に従えば、クラウドサーバーは、ファイアーウォールの外部の管理サーバーに接続要求を送信すれば、ファイアーウォールの内部の中継装置との間で第１通信セッションを確立し、中継装置は制御対象装置と第２通信セッションを確立し、第１通信セッションと第２通信セッションを用いてクラウドサーバーと制御対象装置との間の通信を中継する。このため、クラウドサーバーは、ファイアーウォールの外部の管理サーバーに、ファイアーウォールの内部の制御対象装置のアドレス情報を含む接続要求を送信すれば、ファイアーウォールの内部の制御対象装置にジョブを送信することができる。
【００１４】
好ましくは、ジョブ送信手段は、停止期間にジョブが複数生成される場合、第１通信セッションを介して、停止期間に生成された複数のジョブを制御対象装置に順に送信する順次送信手段を含む、請求項１または２に記載の情報処理システム。
【００１５】
この局面に従えば、管理サーバーがサービスを提供しない停止期間に複数のジョブが生成される場合、第１通信セッションを介して、複数のジョブを制御対象装置に順に送信するので、複数のジョブを制御対象装置に送信することができる。
【００１６】
好ましくは、制御対象装置は複数あり、接続要求手段は、停止期間でない場合は、複数の制御対象装置のうちジョブを実行させる制御対象装置を識別するためのアドレス情報を接続元のアドレス情報として含む接続要求を、管理サーバーに送信し、クラウド側セッション確立手段は、さらに、第１通信セッションを確立している間、第１通信セッションを識別するためのセッション識別情報と接続元のアドレス情報とを関連付ける接続状態関連付手段を、含み、ジョブ送信手段は、停止期間に生成されたジョブを実行させる制御対象装置のアドレス情報と同じ接続元のアドレス情報が接続状態関連付手段により関連付けられたセッション識別情報が存在することを条件に、当該セッション識別情報で特定される第１通信セッションを介して、停止期間に生成されたジョブを送信する。
【００１７】
この局面に従えば、第１通信セッションを確立している間、第１通信セッションのセッション識別情報と接続元のアドレス情報とを関連付け、停止期間に生成されたジョブを実行させる制御対象装置のアドレス情報と同じ接続元のアドレス情報と関連付けられたセッション識別情報が存在することを条件に、そのセッション識別情報で特定される第１通信セッションを介して、ジョブを送信する。このため、停止期間に生成されたジョブを複数の制御対象装置のうちそのジョブを実行する装置として定められた制御対象装置にジョブを送信することができる。
【００１８】
好ましくは、クラウドサーバーは、接続状態関連付手段により１つの装置識別情報に複数のセッション識別情報が関連付けられている場合、複数のセッション識別情報のうちから選択された１つ以外のセッション識別情報で特定される第１通信セッションを切断する切断手段を、さらに備える。
【００１９】
この局面に従えば、１つの装置識別情報に複数のセッション識別情報が関連付けられている場合、複数のセッション識別情報のうちから選択された１つ以外のセッション識別情報で特定される第１通信セッションを切断するので、１つの装置識別情報で識別される制御対象装置に１つの第１通信セッションでジョブを送信することができる。その結果、ネットワーク資源を有効に利用することができる。
【００２０】
この発明の他の局面によれば、情報処理システムは、ファイアーウォールの外部に配置されたクラウドサーバーおよび管理サーバーと、ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置と、を備えた情報処理システムであって、中継装置は、管理サーバーとの間で常時接続セッションを確立する常時接続セッション確立手段と、管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得手段と、管理サーバーがクラウドサーバーから受信する接続要求であって、接続元のアドレス情報および接続先のアドレス情報を含む接続要求を管理サーバーから常時接続セッションを介して受信することに応じて、受信された接続要求に含まれる接続先のアドレス情報を用いてクラウドサーバーとの間で第１通信セッションを確立する第１セッション確立手段と、第１通信セッションが確立されることに応じて、接続要求に含まれる接続元のアドレス情報および接続先のアドレス情報を含む通信履歴を記憶する通信履歴記憶手段と、受信された接続要求に含まれる接続元のアドレス情報で特定される制御対象装置との間で第２通信セッションを確立する第２セッション確立手段と、第１通信セッションと第２通信セッションとを用いて、クラウドサーバーと制御対象装置との間の通信を中継する中継手段と、停止期間が開始することに応じて、通信履歴に含まれる接続元のアドレス情報を含む再確立要求を、通信履歴に含まれる接続先のアドレス情報で特定されるクラウドサーバーに送信し、クラウドサーバーとの間で第３通信セッションを確立し、停止期間が終了するまで第３通信セッションを維持する第３セッション確立手段と、停止期間が開始することに応じて、通信履歴に含まれる接続元のアドレス情報で特定される制御対象装置との間で第４通信セッションを確立する第４セッション確立手段と、を備え、中継手段は、第３セッション確立手段により第３通信セッションが確立されている間、第３通信セッションと第４通信セッションとを用いて、クラウドサーバーと制御対象装置との間の通信を中継し、クラウドサーバーは、中継装置との間で第１通信セッションを確立するクラウド側セッション確立手段と、制御対象装置に実行させるジョブを生成するジョブ生成手段と、第１通信セッションを介して、生成されたジョブを制御対象装置に送信するジョブ送信手段と、を備え、クラウド側セッション確立手段は、接続先のアドレス情報と、制御対象装置を識別するための接続元のアドレス情報を含む接続要求を、管理サーバーに送信する接続要求手段と、接続要求が送信された後に、管理サーバーから転送された接続要求を受信する中継装置から接続要求に含まれる接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に第１通信セッションを確立する確立要求受信手段と、第１通信セッションが確立された後に、制御対象装置によってジョブが実行された結果を取得することことに応じて、第１通信セッションを切断するクラウド側セッション切断手段と、中継装置から再確立要求が受信されることに応じて、中継装置との間で第３通信セッションを確立する再確立手段と、を含み、ジョブ送信手段は、第３通信セッションが確立されている場合、第３通信セッションを介して、生成されたジョブを制御対象装置に送信する停止期間送信手段を、含む。
【００２１】
この局面に従えば、中継装置は、管理サーバーがサービスの提供をしない期間を示す停止期間を取得し、接続要求を管理サーバーから受信することに応じて、クラウドサーバーとの間で第１通信セッションを確立し、接続要求に含まれる接続元のアドレス情報および接続先のアドレス情報を含む通信履歴を記憶し、停止期間が開始することに応じて、通信履歴に含まれる接続元のアドレス情報を含む再確立要求をクラウドサーバーに送信し、クラウドサーバーとの間で第３通信セッションを確立し、停止期間が開始することに応じて、制御対象装置との間で第４通信セッションを確立し、第３通信セッションが確立されている間、第３通信セッションと第４通信セッションとを用いて、クラウドサーバーと制御対象装置との間の通信を中継する。一方、クラウドサーバーは、中継装置から再確立要求が受信されることに応じて、中継装置との間で第３通信セッションを確立し、第３通信セッションが確立されている場合、第３通信セッションを介して、ジョブを制御対象装置に送信する。このため、管理サーバーがサービスを提供しない間に、ファイアーウォールの外部から内部にジョブを送信することが可能な情報処理システムを提供することができる。
【００２２】
好ましくは、停止期間送信手段は、第３通信セッションが確立されている間に複数のジョブが生成される場合、第３通信セッションを介して、停止期間に生成された複数のジョブを制御対象装置に順に送信する。
【００２３】
この局面に従えば、第３通信セッションが確立されている間に複数のジョブが生成される場合、第３通信セッションを介して、複数のジョブを制御対象装置に順に送信するので、複数のジョブを制御対象装置に送信することができる。
【００２４】
好ましくは、制御対象装置は複数あり、クライドサーバーは、さらに、中継装置との間で第３通信セッションを確立することに応じて、第３通信セッションを識別するためのセッション識別情報と複数の制御対象装置のうち中継装置から受信される再接続要求に含まれる接続元のアドレス情報とを関連付ける接続状態関連付手段を、含み、ジョブ送信手段は、第３通信セッションが確立されている間にジョブが生成される場合、複数の制御対象装置のうちから生成されたジョブを実行する制御対象装置のアドレス情報と同じ接続元のアドレス情報と接続状態関連付手段により関連付けられたセッション識別情報が存在することを条件に、当該セッション識別情報で特定される第３通信セッションを介して、生成されたジョブを送信する。
【００２５】
この局面に従えば、第３通信セッションを確立すると、第３通信セッションのセッション識別情報と再接続要求に含まれる接続元のアドレス情報とを関連付け、第３通信セッションが確立されている間にジョブが生成される場合、ジョブを実行する制御対象装置のアドレス情報と同じ接続元のアドレス情報と関連付けられたセッション識別情報が存在することを条件に、そのセッション識別情報で特定される第３通信セッションを介して、ジョブを送信する。このため、複数の制御対象装置のうちジョブを実行する装置として定められた制御対象装置にジョブを送信することができる。
【００２６】
好ましくは、第３セッション確立手段は、接続元のアドレス情報と接続先のアドレス情報とが同じ複数の通信履歴に対して１つの再確立要求を送信する。
【００２７】
この局面に従えば、１つの接続元のアドレス情報で特定される制御対象装置と１つの接続先のアドレス情報で特定されるクラウドサーバーとの間で１つの第３通信セッションが確立されるので、１つの装置識別情報で識別される制御対象装置に１つの第３通信セッションでジョブを送信することができる。その結果、ネットワーク資源を有効に利用することができる。
【００２８】
この発明のさらに他の局面に従えば、クラウドサーバーは、ファイアーウォールの外部に配置されたクラウドサーバーであって、ファイアーウォールの外部に配置された管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得手段と、ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置との間で第１通信セッションを確立するクラウド側セッション確立手段と、制御対象装置に実行させるジョブを生成するジョブ生成手段と、第１通信セッションを介して、生成されたジョブを制御対象装置に送信するジョブ送信手段と、を備え、クラウド側セッション確立手段は、停止期間でない場合に、接続先のアドレス情報と、制御対象装置を識別するための接続元のアドレス情報とを含む接続要求を、管理サーバーに送信する接続要求手段と、接続要求が送信された後に、管理サーバーから転送された接続要求を受信する中継装置から接続要求に含まれる接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に第１通信セッションを確立する確立要求受信手段と、第１通信セッションが確立された後に、制御対象装置によってジョブが実行された結果を取得することことに応じて、停止期間でないことを条件に第１通信セッションを切断し、停止期間の場合には停止期間が終了した後に第１通信セッションを切断するクラウド側切断手段と、を含み、ジョブ送信手段は、停止期間にジョブが生成される場合、停止期間が開始する前に確立された第１通信セッションを介して、停止期間に生成されたジョブを制御対象装置に送信する。
【００２９】
この局面に従えば、管理サーバーがサービスを提供しない間にファイアーウォールの内部にジョブを送信することが可能なクラウドサーバーを提供することができる。
【００３０】
この発明のさらに他の局面に従えば、装置制御方法は、ファイアーウォールの外部に配置されたクラウドサーバーで実行される装置制御方法であって、ファイアーウォールの外部に配置された管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得ステップと、ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置との間で第１通信セッションを確立するクラウド側セッション確立ステップと、制御対象装置に実行させるジョブを生成するジョブ生成ステップと、第１通信セッションを介して、生成されたジョブを制御対象装置に送信するジョブ送信ステップと、を含み、クラウド側セッション確立ステップは、停止期間でない場合に、接続先のアドレス情報と、制御対象装置を識別するための接続元のアドレス情報とを含む接続要求を、管理サーバーに送信する接続要求ステップと、接続要求が送信された後に、管理サーバーから転送された接続要求を受信する中継装置から接続要求に含まれる接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に第１通信セッションを確立する確立要求受信ステップと、第１通信セッションが確立された後に、制御対象装置によってジョブが実行された結果を取得することことに応じて、停止期間でないことを条件に第１通信セッションを切断し、停止期間の場合には停止期間が終了した後に第１通信セッションを切断するクラウド側切断ステップと、を含み、ジョブ送信ステップは、停止期間にジョブが生成される場合、停止期間が開始する前に確立された第１通信セッションを介して、停止期間に生成されたジョブを制御対象装置に送信するステップを含む。
【００３１】
この局面に従えば、管理サーバーがサービスを提供しない間にファイアーウォールの内部にジョブを送信することが可能な装置制御方法を提供することができる。
【００３２】
この発明のさらに他の局面によれば、装置制御方法は、ファイアーウォールの外部に配置されたクラウドサーバーおよび管理サーバーと、ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置と、を備えた情報処理システムで実行される装置制御方法であって、中継装置に、管理サーバーとの間で常時接続セッションを確立する常時接続セッション確立ステップと、管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得ステップと、管理サーバーがクラウドサーバーから受信する接続要求であって、接続元のアドレス情報および接続先のアドレス情報を含む接続要求を管理サーバーから常時接続セッションを介して受信することに応じて、受信された接続要求に含まれる接続先のアドレス情報を用いてクラウドサーバーとの間で第１通信セッションを確立する第１セッション確立ステップと、第１通信セッションが確立されることに応じて、接続要求に含まれる接続元のアドレス情報および接続先のアドレス情報を含む通信履歴を記憶する通信履歴記憶ステップと、受信された接続要求に含まれる接続元のアドレス情報で特定される制御対象装置との間で第２通信セッションを確立する第２セッション確立ステップと、第１通信セッションと第２通信セッションとを用いて、クラウドサーバーと制御対象装置との間の通信を中継する中継ステップと、停止期間が開始することに応じて、通信履歴に含まれる接続元のアドレス情報を含む再確立要求を、通信履歴に含まれる接続先のアドレス情報で特定されるクラウドサーバーに送信し、クラウドサーバーとの間で第３通信セッションを確立し、停止期間が終了するまで第３通信セッションを維持する第３セッション確立ステップと、停止期間が開始することに応じて、通信履歴に含まれる接続元のアドレス情報で特定される制御対象装置との間で第４通信セッションを確立する第４セッション確立ステップと、を実行させ、中継ステップは、第３セッション確立ステップにおいて第３通信セッションが確立されている間、第３通信セッションと第４通信セッションとを用いて、クラウドサーバーと制御対象装置との間の通信を中継するステップを含み、クラウドサーバーに、中継装置との間で第１通信セッションを確立するクラウド側セッション確立ステップと、制御対象装置に実行させるジョブを生成するジョブ生成ステップと、第１通信セッションを介して、生成されたジョブを制御対象装置に送信するジョブ送信ステップと、を実行させ、クラウド側セッション確立ステップは、接続先のアドレス情報と、制御対象装置を識別するための接続元のアドレス情報を含む接続要求を、管理サーバーに送信する接続要求ステップと、接続要求が送信された後に、管理サーバーから転送された接続要求を受信する中継装置から接続要求に含まれる接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に第１通信セッションを確立する確立要求受信ステップと、第１通信セッションが確立された後に、制御対象装置によってジョブが実行された結果を取得することことに応じて、第１通信セッションを切断するクラウド側セッション切断ステップと、中継装置から再確立要求が受信されることに応じて、中継装置との間で第３通信セッションを確立する再確立ステップと、を含み、ジョブ送信ステップは、第３通信セッションが確立されている場合、第３通信セッションを介して、生成されたジョブを制御対象装置に送信する停止期間送信ステップを、含む。
【００３３】
この局面に従えば、管理サーバーがサービスを提供しない間に、ファイアーウォールの外部から内部にジョブを送信することが可能な装置制御方法を提供することができる。
【００３４】
この発明のさらに他の局面によれば、装置制御プログラムは、ファイアーウォールの外部に配置されたクラウドサーバーを制御するコンピューターで実行される装置制御プログラムであって、ファイアーウォールの外部に配置された管理サーバーがサービスの提供をしない期間を示す停止期間を取得する停止期間取得ステップと、ファイアーウォールの内部に配置され、ファイアーウォールの内部に配置された制御対象装置と接続された中継装置との間で第１通信セッションを確立するクラウド側セッション確立ステップと、制御対象装置に実行させるジョブを生成するジョブ生成ステップと、第１通信セッションを介して、生成されたジョブを制御対象装置に送信するジョブ送信ステップと、をコンピューターに実行させ、クラウド側セッション確立ステップは、停止期間でない場合に、接続先のアドレス情報と、制御対象装置を識別するための接続元のアドレス情報とを含む接続要求を、管理サーバーに送信する接続要求ステップと、接続要求が送信された後に、管理サーバーから転送された接続要求を受信する中継装置から接続要求に含まれる接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合に第１通信セッションを確立する確立要求受信ステップと、第１通信セッションが確立された後に、制御対象装置によってジョブが実行された結果を取得することことに応じて、停止期間でないことを条件に第１通信セッションを切断し、停止期間の場合には停止期間が終了した後に第１通信セッションを切断するクラウド側切断ステップと、を含み、ジョブ送信ステップは、停止期間にジョブが生成される場合、停止期間が開始する前に確立された第１通信セッションを介して、停止期間に生成されたユーザーによる操作に基づいてジョブを制御対象装置に送信するステップを含む。
【００３５】
この局面に従えば、管理サーバーがサービスを提供しない間にファイアーウォールの内部にジョブを送信することが可能な装置制御プログラムを提供することができる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施の形態の１つにおける情報処理システムの全体概要の一例を示す図である。
【図２】ゲートウェイ装置のハードウェア構成の概要の一例を示すブロック図である。
【図３】ＭＦＰのハードウェア構成の概要の一例を示すブロック図である。
【図４】本実施の形態における管理サーバーのハードウェア構成の概要の一例を示すブロック図である。
【図５】本実施の形態におけるクラウドサーバーのハードウェア構成の概要の一例を示すブロック図である。
【図６】管理サーバーが備えるＣＰＵの機能の一例を示すブロック図である。
【図７】ゲートウェイ装置が備えるＣＰＵの機能の一例を示すブロック図である。
【図８】クラウドサーバーが備えるＣＰＵの機能の一例を示すブロック図である。
【図９】中継処理の流れの一例を示すフローチャートである。
【図１０】トンネル接続支援処理の流れの一例を示すフローチャートである。
【図１１】装置制御処理の流れの一例を示すフローチャートである。
【図１２】変形例における管理サーバー３００が備えるＣＰＵ３０１の機能の一例を示す図である。
【図１３】変形例におけるゲートウェイ装置が備えるＣＰＵの機能の一例を示すブロック図である。
【図１４】変形例におけるクラウドサーバーが備えるＣＰＵの機能の一例を示すブロック図である。
【図１５】変形例における中継処理の流れの一例を示すフローチャートである。
【図１６】停止期間中継処理の流れの一例を示すフローチャートである。
【図１７】変形例における装置制御処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００３７】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００３８】
図１は、本発明の実施の形態の１つにおける情報処理システムの全体概要の一例を示す図である。図１を参照して、情報処理システム１は、管理サーバー３００と、クラウドサーバー４００と、中継装置として機能するゲートウェイ（Ｇ／Ｗ）装置２００と、複合機であるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００，１００Ａ，１００Ｂと、を含む。管理サーバー３００、クラウドサーバー４００、およびゲートウェイ装置２００それぞれは、インターネット５に接続されており、インターネット５を介して互いに通信可能である。さらに、管理サーバー３００、クラウドサーバー４００、およびゲートウェイ装置２００それぞれは、インターネット５に接続された他のコンピューターと通信可能である。
【００３９】
ゲートウェイ装置２００は、さらに、ローカルエリアネットワーク（ＬＡＮ）３と接続されており、そのＬＡＮ３に、ＭＦＰ１００，１００Ａ，１００Ｂが接続されている。ゲートウェイ装置２００は、ＬＡＮ３に接続されたＭＦＰ１００，１００Ａ，１００Ｂと通信可能である。さらに、ゲートウェイ装置２００およびＭＦＰ１００，１００Ａ，１００Ｂそれぞれは、ＬＡＮ３に接続された他のコンピューターと通信可能である。
【００４０】
ゲートウェイ装置２００は、ファイアーウォール機能を有し、ファイアーウォールの内部のＬＡＮ３と、ファイアーウォールの外部のインターネット５とを接続する。ゲートウェイ装置２００は、インターネット５に接続された管理サーバー３００およびクラウドサーバー４００から、ＬＡＮ３に接続されたＭＦＰ１００，１００Ａ，１００Ｂへのアクセスを制限する。ゲートウェイ装置２００が有するファイアーウォール機能は、特に限定するものではないが、パケットに含まれるアドレスに基づいて通信の許可または不許可を判定するパケットフィルター型のファイアーウォール機能である。なお、アプリケーション層のプロトコルのレベルで外部との通信を代替し、制御するアプリケーション型のファイアーウォール機能であってもよい。なお、ゲートウェイ装置２００が配置される位置は、ファイアーウォールの内部である。
【００４１】
本実施の形態における情報処理システム1においては、ファイアーウォールの外部のインターネット５に接続されたクラウドサーバー４００が、ファイアーウォールの内部のＬＡＮ３に接続されたＭＦＰ１００，１００Ａ，１００Ｂのいずれかを制御することを可能にする。クラウドサーバー４００は、ファイアーウォールの内部のＬＡＮ３に接続されたパーソナルコンピューター（以下「ＰＣ」という）からアクセスされて、そのＰＣを操作するユーザーによる指示にしたがってサービスを提供するための処理を実行する場合と、ファイアーウォールの外部のインターネット５に接続されたＰＣからアクセスされて、そのＰＣを操作するユーザーによる指示にしたがってサービスを提供するための処理を実行する場合と、がある。ここでは、一例として、クラウドサーバー４００が、それが提供するサービスに基づく処理を実行し、その結果得られるデータに対してＭＦＰ１００に処理を実行させる場合を例に説明する。この場合、クラウドサーバー４００はＭＦＰ１００に処理を実行させるための制御コマンドを送信する。
【００４２】
クラウドサーバー４００がＭＦＰ１００に送信する制御コマンドが、ゲートウェイ装置２００のファイアーウォールを通過するようにするために、ゲートウェイ装置２００は、クラウドサーバー４００とＭＦＰ１００との間でトンネル接続を確立する。トンネル接続を確立する技術は、種々の方法があるが、ここでは、管理サーバー３００がトンネル接続を支援する方法を例に説明する。
【００４３】
ゲートウェイ装置２００は、予め記憶された管理サーバー３００のネットワークアドレスを用いて管理サーバー３００との間で通信セッションの確立を要求する。ゲートウェイ装置２００は、ファイアーウォールの内部であり、管理サーバー３００は、ファイアーウォールの外部なので、ファイアーウォールを通過する通信セッションが確立される。この通信セッションを、以下、常時接続セッションという。
【００４４】
ゲートウェイ装置２００は、管理サーバー３００との間で常時接続セッションを確立すると、ＬＡＮ３に接続されたＭＦＰ１００，１００Ａ，１００Ｂそれぞれを識別するための装置識別情報を管理サーバー３００に常時接続セッションを介して送信する。管理サーバー３００においては、ゲートウェイ装置２００に接続されたＭＦＰ１００，１００Ａ，１００Ｂを認識する。
【００４５】
次に、クラウドサーバー４００が管理サーバー３００との間で、通信セッションを確立する。ここで、クラウドサーバー４００と管理サーバー３００との間で確立される通信セッションをグローバルセッションという。管理サーバー３００は、ゲートウェイ装置２００から受信されたＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報を受信しているので、クラウドサーバー４００を操作するユーザーに対して、トンネル接続が可能な装置としてＭＦＰ１００，１００Ａ，１００Ｂのうちからいずれかを選択させる。ここでは、クラウドサーバー４００を操作するユーザーによって、トンネル接続する装置としてＭＦＰ１００が選択される場合を例に説明する。
【００４６】
クラウドサーバー４００は、クラウドサーバー４００を操作するユーザーによって、トンネル接続する装置としてＭＦＰ１００が選択される場合、ＭＦＰ１００のアドレス情報と、クラウドサーバー４００のアドレス情報とを含む接続要求を管理サーバー３００に送信する。ＭＦＰ１００のアドレス情報は、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とを含む。クラウドサーバー４００のアドレス情報は、クラウドサーバー４００のネットワークアドレスと、クラウドサーバー４００が実行するジョブのジョブＩＤと、を含む。ここでは、クラウドサーバー４００のアドレス情報を、ＭＦＰ１００からクラウドサーバー４００にアクセスするためのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）としている。ＵＲＬには、例えば「ｈｔｔｐｓ://ｗｗｗ.ｅｘａｍｐｌｅ.ｃｏｍ/ｐｒｉｎｔ＿ｓｅｒｖｉｃｅ？ｊｏｂ＿ｉｄ=ｊ００１２３：６０００１」のように、クラウドサーバー４００のネットワークアドレス（ドメイン名）、ウェブページの識別子、クラウドサーバー４００が実行するジョブの識別子（ジョブＩＤ）、および待ち受けポートのポート番号などが含まれる。待ち受けポートとして、所定の範囲のポートのうち未使用のものが用いられる。また、ジョブＩＤとして、ユニークなＩＤが発行される。クラウドサーバー４００が実行するジョブは、クラウドサーバー４００が提供するサービスのうちクラウドサーバー４００を操作するユーザーによって指定されたサービスに対応するジョブである。クラウドサーバー４００のアドレス情報であるＵＲＬが、ジョブＩＤを含むため、そのＵＲＬにアクセスしてきた装置をジョブＩＤにより特定されるジョブと対応付けることができる。換言すれば、クラウドサーバー４００を操作するユーザーによって指定されたサービスを実行するジョブを、接続要求をした装置、ここではＭＦＰ１００と対応付けることができる。
【００４７】
管理サーバー３００は、クラウドサーバー４００から接続要求を受信する場合、接続要求に含まれるＭＦＰ１００のアドレス情報に含まれるゲートウェイ装置２００の装置識別情報に基づいてゲートウェイ装置２００を特定し、接続要求をゲートウェイ装置２００に常時接続セッションを介して転送する。この場合、接続要求を、常時接続セッションに対応するプロトコルに応じてカプセル化して送信する。
【００４８】
ゲートウェイ装置２００は、さらに、管理サーバー３００から接続要求を受信すると、接続要求に含まれるクラウドサーバー４００のアドレス情報に基づいて、クラウドサーバー４００との間で通信セッションを確立する。ここで、ゲートウェイ装置２００とクラウドサーバー４００との間で確立される通信セッションを第１通信セッションという。これにより、ファイアーウォールを通過するトンネル接続が完了する。
【００４９】
ゲートウェイ装置２００は、管理サーバー３００から接続要求を受信すると、接続要求に含まれるＭＦＰ１００のアドレス情報に含まれるＭＦＰ１００の装置識別情報に基づいてＭＦＰ１００を特定し、ＭＦＰ１００との間で通信セッションを確立する。ここで、ゲートウェイ装置２００とＭＦＰ１００との間で確立される通信セッションを第２通信セッションという。
【００５０】
ゲートウェイ装置２００は、クラウドサーバー４００との間で確立された第１通信セッションと、ＭＦＰ１００との間で確立された第２通信セッションとを用いて、クラウドサーバー４００とＭＦＰ１００との間の通信を中継する。例えば、第１通信セッションと、第２通信セッションとを接続することによって、クラウドサーバー４００とＭＦＰ１００との間の通信を中継する。
【００５１】
なお、トンネル接続の方法は、これに限定されることなく、他の方法を用いてもよい。
【００５２】
クラウドサーバー４００が提供するサービスは、例えば、クラウドサーバー４００がＭＦＰ１００のプログラムのバージョンを管理し、バージョンアップに基づくアップデートを実行するプログラム管理サービス、クラウドサーバー４００をファイルサーバーとして機能させるサービス、画像データに対して画像処理を実行するサービスを含む。画像処理は、限定するものではないが、例えば、写真が表された画像データを先鋭化、スムージング等の処理を実行する処理であってもよいし、文字が表された画像データを文字認識する処理であってもよいし、言語を他の言語に翻訳する処理であってもよい。
【００５３】
ＭＦＰ１００，１００Ａ，１００Ｂのハードウェア構成および機能は同じなので、ここでは特に言及しない限りＭＦＰ１００を例に説明する。
【００５４】
図２は、ゲートウェイ装置のハードウェア構成の概要の一例を示すブロック図である。図２を参照して、本実施の形態におけるゲートウェイ装置２００は、ゲートウェイ装置２００の全体を制御するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＣＰＵ２０１が実行するためのプログラム等を記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＣＰＵ２０１の作業領域として用いられるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、データを不揮発的に記憶するフラッシュメモリ２０４と、第１通信部２０５と、第２通信部２０６と、外部記憶装置２０９と、を含む。
【００５５】
第１通信部２０５は、ゲートウェイ装置２００をインターネット５に接続するための通信インターフェース（Ｉ／Ｆ）である。第２通信部２０６は、ゲートウェイ装置２００をＬＡＮ３に接続するための通信インターフェース（Ｉ／Ｆ）である。
【００５６】
フラッシュメモリ２０４は、ＣＰＵ２０１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＣＰＵ２０１は、フラッシュメモリ２０４に記録されたプログラムを、ＲＡＭ２０３にロードして実行する。外部記憶装置２０９は、ゲートウェイ装置２００に着脱自在であり、プログラムを記憶したＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  ＲＯＭ）２０９Ａが装着可能である。ＣＰＵ２０１は、外部記憶装置２０９を介してＣＤ−ＲＯＭ２０９Ａにアクセス可能である。ＣＰＵ２０１は、外部記憶装置２０９に装着されたＣＤ−ＲＯＭ２０９Ａに記録された中継プログラムを、ＲＡＭ２０３にロードして実行することが可能である。
【００５７】
なお、ＣＰＵ２０１が実行するプログラムとして、フラッシュメモリ２０４またはＣＤ−ＲＯＭ２０９Ａに記録されたプログラムについて説明したが、インターネット５に接続された他のコンピューターが、フラッシュメモリ２０４に記憶されたプログラムを書換えたプログラム、または、追加して書き込んだ新たなプログラムであってもよい。さらに、ゲートウェイ装置２００が、インターネット５に接続された他のコンピューターからダウンロードしたプログラムでもよい。ここでいうプログラムは、ＣＰＵ２０１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００５８】
なお、ＣＰＵ２０１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ２０９Ａに限られず、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥＰＲＯＭ）などの半導体メモリであってもよい。
【００５９】
図３は、ＭＦＰのハードウェア構成の概要の一例を示すブロック図である。図３を参照して、ＭＦＰ１００は、メイン回路１１０と、原稿を読み取るための原稿読取部１３０と、原稿を原稿読取部１３０に搬送するための自動原稿搬送装置１２０と、原稿読取部１３０が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、画像が形成された用紙を処理する後処理部１５５と、ユーザーインターフェースとしての操作パネル１６０とを含む。
【００６０】
後処理部１５５は、画像形成部１４０により画像が形成された１以上の用紙を並び替えて排紙するソート処理、パンチ穴加工するパンチ処理、ステープル針を打ち込むステープル処理を実行する。
【００６１】
メイン回路１１０は、ＣＰＵ１１１と、通信インターフェース（Ｉ／Ｆ）部１１２と、ＲＯＭ１１３と、ＲＡＭ１１４と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１５と、ファクシミリ部１１６と、ＣＤ−ＲＯＭ１１８が装着される外部記憶装置１１７と、を含む。ＣＰＵ１１１は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０、後処理部１５５および操作パネル１６０と接続され、ＭＦＰ１００の全体を制御する。
【００６２】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＲＡＭ１１４は、ＣＰＵ１１１がプログラムを実行する際の作業領域として用いられる。また、ＲＡＭ１１４は、原稿読取部１３０から連続的に送られてくる読取データ（画像データ）を一時的に記憶する。
【００６３】
操作パネル１６０は、ＭＦＰ１００の上面に設けられ、表示部１６１と操作部１６３とを含む。表示部１６１は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等の表示装置であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部１６３は、複数のキーからなるハードキー部１６７を備え、キーに対応するユーザーの操作による各種の指示、文字、数字などのデータの入力を受け付ける。操作部１６３は、表示部１６１上に設けられたタッチパネル１６５をさらに含む。
【００６４】
通信Ｉ／Ｆ部１１２は、ＭＦＰ１００をＬＡＮ３に接続するためのインターフェースである。ＣＰＵ１１１は、通信Ｉ／Ｆ部１１２を介して、ＬＡＮ３に接続された装置との間で通信し、データを送受信する。さらに、通信Ｉ／Ｆ部１１２は、ゲートウェイ装置２００を介して、インターネットに接続されたコンピューター、例えば、管理サーバー３００、クラウドサーバー４００と通信が可能である。
【００６５】
ファクシミリ部１１６は、公衆交換電話網（ＰＳＴＮ）に接続され、ＰＳＴＮにファクシミリデータを送信する、またはＰＳＴＮからファクシミリデータを受信する。ファクシミリ部１１６は、受信したファクシミリデータを、ＨＤＤ１１５に記憶する、または画像形成部１４０に出力する。画像形成部１４０は、ファクシミリ部１１６により受信されたファクシミリデータを用紙にプリントする。また、ファクシミリ部１１６は、ＨＤＤ１１５に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。
【００６６】
外部記憶装置１１７は、ＣＤ−ＲＯＭ１１８が装着される。ＣＰＵ１１１は、外部記憶装置１１７を介してＣＤ−ＲＯＭ１１８にアクセス可能である。ＣＰＵ１１１は、外部記憶装置１１７に装着されたＣＤ−ＲＯＭ１１８に記録されたプログラムをＲＡＭ１１４にロードして実行する。なお、ＣＰＵ１１１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ１１８に限られず、光ディスク（ＭＯ／ＭＤ／ＤＶＤ）、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリであってもよい。
【００６７】
また、ＣＰＵ１１１は、ＨＤＤ１１５に記憶されたプログラムをＲＡＭ１１４にロードして実行するようにしてもよい。この場合、ＬＡＮ３またはインターネット５に接続された他のコンピューターが、ＭＦＰ１００のＨＤＤ１１５に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、ＭＦＰ１００が、ＬＡＮ３またはインターネット５に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ１１５に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ１１１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００６８】
図４は、本実施の形態における管理サーバーのハードウェア構成の概要の一例を示すブロック図である。図４を参照して、管理サーバー３００は、管理サーバー３００の全体を制御するためのＣＰＵ３０１と、ＣＰＵ３０１が実行するためのプログラムを記憶するＲＯＭ３０２と、ＣＰＵ３０１の作業領域として使用されるＲＡＭ３０３と、データを不揮発的に記憶するＨＤＤ３０４と、ＣＰＵ３０１をインターネット５に接続する通信部３０５と、情報を表示する表示部３０６と、ユーザーの操作の入力を受け付ける操作部３０７と、外部記憶装置３０９と、を含む。
【００６９】
外部記憶装置３０９は、ＣＤ−ＲＯＭ３０９Ａが装着される。ＣＰＵ３０１は、外部記憶装置３０９を介してＣＤ−ＲＯＭ３０９Ａにアクセス可能である。ＣＰＵ３０１は、外部記憶装置３０９に装着されたＣＤ−ＲＯＭ３０９Ａに記録されたプログラムをＲＡＭ３０３にロードして実行する。なお、ＣＰＵ３０１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ３０９Ａに限られず、光ディスク、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリであってもよい。
【００７０】
また、ＣＰＵ３０１が実行するプログラムは、ＣＤ−ＲＯＭ３０９Ａに記録されたプログラムに限られず、ＨＤＤ３０４に記憶されたプログラムをＲＡＭ３０３にロードして実行するようにしてもよい。この場合、インターネット５に接続された他のコンピューターが、管理サーバー３００のＨＤＤ３０４に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、管理サーバー３００が、インターネット５に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ３０４に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ３０１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００７１】
図５は、本実施の形態におけるクラウドサーバーのハードウェア構成の概要の一例を示すブロック図である。図５を参照して、クラウドサーバー４００は、クラウドサーバー４００の全体を制御するためのＣＰＵ４０１と、ＣＰＵ４０１が実行するためのプログラムを記憶するＲＯＭ４０２と、ＣＰＵ４０１の作業領域として使用されるＲＡＭ４０３と、データを不揮発的に記憶するＨＤＤ４０４と、ＣＰＵ４０１をインターネット５に接続する通信部４０５と、情報を表示する表示部４０６と、ユーザーの操作の入力を受け付ける操作部４０７と、外部記憶装置４０９と、を含む。
【００７２】
外部記憶装置４０９は、ＣＤ−ＲＯＭ４０９Ａが装着される。ＣＰＵ４０１は、外部記憶装置４０９を介してＣＤ−ＲＯＭ４０９Ａにアクセス可能である。ＣＰＵ４０１は、外部記憶装置４０９に装着されたＣＤ−ＲＯＭ４０９Ａに記録されたプログラムをＲＡＭ４０３にロードして実行する。なお、ＣＰＵ４０１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ４０９Ａに限られず、光ディスク、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリであってもよい。
【００７３】
また、ＣＰＵ４０１が実行するプログラムは、ＣＤ−ＲＯＭ４０９Ａに記録されたプログラムに限られず、ＨＤＤ４０４に記憶されたプログラムをＲＡＭ４０３にロードして実行するようにしてもよい。この場合、インターネット５に接続された他のコンピューターが、クラウドサーバー４００のＨＤＤ４０４に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、クラウドサーバー４００が、インターネット５に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ４０４に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ４０１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００７４】
図６は、管理サーバーが備えるＣＰＵの機能の一例を示すブロック図である。図６に示す機能は、管理サーバー３００が備えるＣＰＵ３０１が、ＲＯＭ３０２、ＨＤＤ３０４またはＣＤ−ＲＯＭ３０９Ａに記憶されたプログラムを実行することにより、ＣＰＵ３０１に形成される機能である。図６を参照して、管理サーバー３００が備えるＣＰＵ３０１は、サーバー側確立部３５１と、グローバル確立部３５３と、を含む。
【００７５】
サーバー側確立部３５１は、通信部３０５を制御して、ゲートウェイ装置２００との間で通信セッションを確立する。ここで確立する通信セッションは、常時接続セッションである。サーバー側確立部３５１は、ゲートウェイ装置２００から通信セッションの確立要求を受信することに応じて、通信セッションを確立する。サーバー側確立部３５１は、装置識別情報受信部３７１と、トンネル接続要求部３７３と、接続結果受信部３７５と、装置情報管理部３７７と、課金部３７８と、を含む。
【００７６】
装置識別情報受信部３７１は、ゲートウェイ装置２００との間で確立された常時接続セッションを介して、ゲートウェイ装置２００からＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報を受信し、受信される装置識別情報と、ゲートウェイ装置２００の装置識別情報と、をグローバル確立部３５３に出力する。ゲートウェイ装置２００の機能の詳細は後述するが、ゲートウェイ装置２００は、管理サーバー３００との間で常時接続セッションが確立されると、ＬＡＮ３に接続された装置、ここでは、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれに対応する装置識別情報を送信する。ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報は、限定するものではないが、ＭＦＰ１００，１００Ａ，１００ＢそれぞれにＬＡＮ３において割り当てられたローカルＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスである。ゲートウェイ装置２００の装置識別情報は、限定するものではないが、インターネット５においてゲートウェイ装置２００に割り当てられたグローバルＩＰアドレスである。
【００７７】
グローバル確立部３５３は、通信部３０５を制御して、ファイアーウォールの外部に位置するコンピューターとの間で通信セッションを確立する。ここでは、クラウドサーバー４００との間で通信セッションを確立する場合を説明する。ここで確立される通信セッションは、グローバルセッションである。グローバル確立部３５３は、通信部３０５を制御して、クラウドサーバー４００から通信セッションの確立要求を受信することに応じて、クラウドサーバー４００との間でグローバルセッションを確立する。グローバル確立部３５３は、装置識別情報通知部３８１と、接続要求受信部３８３と、接続確認部３８５と、停止期間通知部３８７と、を含む。
【００７８】
装置識別情報通知部３８１は、装置識別情報受信部３７１からゲートウェイ装置２００の装置識別情報と、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報とが入力される。装置識別情報通知部３８１は、グローバルセッションを介して、クラウドサーバー４００にゲートウェイ装置２００の装置識別情報と、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報とを送信する。
【００７９】
接続要求受信部３８３は、クラウドサーバー４００がグローバルセッションを介して送信する接続要求を受信し、受信された接続要求を、サーバー側確立部３５１に出力する。
【００８０】
接続要求は、ＭＦＰ１００のアドレス情報と、クラウドサーバー４００のアドレス情報とを含む。ＭＦＰ１００のアドレス情報は、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とを含む。クラウドサーバー４００のアドレス情報は、ＭＦＰ１００からクラウドサーバー４００にアクセスするためのＵＲＬである。ＵＲＬには、クラウドサーバー４００のアドレス（ドメイン名）、ウェブページの識別子、クラウドサーバー４００が実行するジョブの識別子（ジョブＩＤ）、および待ち受けポートのポート番号が含まれる。
【００８１】
トンネル接続要求部３７３は、接続要求受信部３８３から接続要求が入力されることに応じて、常時接続セッションを介して、トンネル接続要求をゲートウェイ装置２００に送信する。トンネル接続要求は、常時接続セッションにより定まるプロトコルに適合するように接続要求をカプセル化したパケットとして送信される。トンネル接続要求を受信するゲートウェイ装置２００は、ＭＦＰ１００との間で通信セッションを確立し、その結果を示すトンネル接続結果を返信する。
【００８２】
接続結果受信部３７５は、常時接続セッションを介して、ゲートウェイ装置２００が送信するトンネル接続結果を受信する。トンネル接続結果は、ＭＦＰ１００のアドレス情報を含み、トンネル接続に成功したことを示す情報と、トンネル接続に失敗したことを示す情報とのいずれかを含む。トンネル接続に失敗する場合は、例えば、ＭＦＰ１００に電源が投入されていない場合、ＭＦＰ１００が通信できないトラブル状態の場合等である。接続結果受信部３７５は、トンネル接続結果をグローバル確立部３５３および装置情報管理部３７７に出力する。
【００８３】
装置情報管理部３７７は、ＭＦＰ１００，１００Ａ，１００Ｂごとに装置状態情報をＨＤＤ３０４に記憶する。装置状態情報は、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれのアドレス情報と、トンネル接続の成功または失敗のいずれかを示す接続可否と、を関連付けたデータである。装置情報管理部３７７は、接続結果受信部３７５からトンネル接続結果が入力されることに応じて、ＨＤＤ３０４に記憶された装置状態情報を更新する。トンネル接続結果がトンネル接続に成功したことを示す情報を含むならば、ＨＤＤ３０４に記憶されている装置状態情報のうち、トンネル接続結果に含まれるアドレス情報と同じアドレス情報を含む装置状態情報の接続可否を、トンネル接続に成功したことを示す情報で更新することにより、装置状態情報を更新する。また、トンネル接続結果がトンネル接続に失敗したことを示す情報を含むならば、ＨＤＤ３０４に記憶されている装置状態情報のうち、トンネル接続結果に含まれるアドレス情報と同じアドレス情報を含む装置状態情報の接続可否を、トンネル接続に失敗したことを示す情報で更新する。
【００８４】
課金部３７８は、常時接続セッションを介して、ゲートウェイ装置２００が送信する実績情報を受信する。実績情報は、ＭＦＰ１００，１００Ａ，１００Ｂいずれかのアドレス情報と、その装置が実行した処理の処理識別情報と、処理量と、を含む。課金部３７８は、実績情報を受信すると、実績情報に基づいて課金情報を生成し、生成された課金情報をＨＤＤ３０４に記憶する。課金情報は、ＭＦＰ１００，１００Ａ，１００Ｂいずれかのアドレス情報と、その装置が実行した処理に対して課される料金とを含む。例えば、ＭＦＰ１００がプリント処理を実行する場合を例に説明する。この場合の一例として、ＭＦＰ１００がプリント処理を実行する場合における用紙１枚当たりの単価が定められており、実績情報が、ＭＦＰ１００のアドレス情報と、プリント処理の処理識別情報と、処理量としてプリント枚数とを含む場合を例に説明する。課金部３７８は、実績情報に含まれるプリント枚数に単価を乗算して算出される料金を算出し、ＭＦＰ１００のアドレス情報と、算出された料金とを含む課金情報とを生成し、ＨＤＤ３０４に記憶する。
【００８５】
グローバル確立部３５３の接続確認部３８５は、接続結果受信部３７５から入力されるトンネル接続結果がトンネル接続に成功したことを示す情報を含む場合には、グローバルセッションを介してクラウドサーバー４００に接続が成功したことを示す信号を送信する。クラウドサーバー４００においては、クラウドサーバー４００のユーザーに接続が成功したことを示すメッセージを表示するなどして、接続が成功したことを通知することができる。接続確認部３８５は、接続結果受信部３７５から入力されるトンネル接続結果がトンネル接続に失敗したことを示す情報を含む場合には、グローバルセッションを介してクラウドサーバー４００に接続が失敗したことを示すエラー信号を送信する。クラウドサーバー４００においては、クラウドサーバー４００のユーザーに接続が失敗したことを示すメッセージを表示するなどして、接続が失敗したことを通知することができる。
【００８６】
停止期間通知部３８７は、管理サーバー３００がサービスの提供を停止する停止期間を、クラウドサーバー４００に通知する。管理サーバー３００がサービスの提供を停止する期間は、例えば、管理サーバー３００がプログラムのバージョンアップする場合におけるバージョンアップする期間、管理サーバー３００をメンテナンスする場合におけるメンテナンス中の期間であり、管理サーバーが機能しなくなる期間である。停止期間通知部３８７は、グローバル確立部３５３によってクラウドサーバー４００との間でグローバルセッションが確立された段階で、停止期間をクラウドサーバー４００に送信してもよいし、任意のタイミングで、クラウドサーバー４００に停止期間を送信するようにしてもよい。
【００８７】
図７は、ゲートウェイ装置が備えるＣＰＵの機能の一例を示すブロック図である。図７に示す機能は、ゲートウェイ装置２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、フラッシュメモリ２０４またはＣＤ−ＲＯＭ２０９Ａに記憶された中継プログラムを実行することにより、ＣＰＵ２０１に形成される機能である。図７を参照して、ゲートウェイ装置２００が備えるＣＰＵ２０１は、接続装置情報取得部２６１と、実績情報収集部２６２と、常時接続セッション確立部２５１と、第１セッション確立部２５９と、第２セッション確立部２６３と、中継部２７０と、を含む。
【００８８】
また、ＣＰＵ２０１は、第１通信制御部２５０と、第２通信制御部２６０と、を含む。第１通信制御部２５０は、第１通信部２０５を制御し、インターネット５に接続されたコンピューターとの間の通信を制御する。第１通信制御部２５０は、常時接続セッション確立部２５１と、第１セッション確立部２５９と、中継部２７０の一部と、を含む。
【００８９】
第２通信制御部２６０は、第２通信部２０６を制御し、ＬＡＮ３に接続されたＭＦＰ１００，１００Ａ，１００Ｂとの間の通信を制御する。第２通信制御部２６０は、接続装置情報取得部２６１と、実績情報収集部２６２と、第２セッション確立部２６３と、中継部２７０の一部と、を含む。
【００９０】
接続装置情報取得部２６１は、ファイアーウォールの内側のＬＡＮ３に接続された装置の装置識別情報を取得する。接続装置情報取得部２６１は、所定のタイミングで、ＬＡＮ３に接続された装置を探索し、検出される装置の装置識別情報を取得する。所定のタイミングは、任意に定めることができるが、例えば、ゲートウェイ装置２００に電源が投入された時点、または、予め定められた時とすればよい。ここでは、ＬＡＮ３に接続された装置としてＭＦＰ１００，１００Ａ，１００Ｂを検出する場合を例に説明する。接続装置情報取得部２６１は、第２通信部２０６を制御してＬＡＮ３に接続された装置として検出されるＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報を取得する。ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報は、例えば、ローカルＩＰアドレスである。接続装置情報取得部２６１は、取得された装置識別情報を常時接続セッション確立部２５１に出力する。
【００９１】
実績情報収集部２６２は、ファイアーウォールの内側のＬＡＮ３に接続された装置の実績情報を取得する。実績情報は、ＭＦＰ１００，１００Ａ，１００Ｂいずれかの装置識別情報と、その装置が実行した処理の処理識別情報と、処理量と、を含む。実績情報収集部２６２は、第２通信部２０６を制御してＬＡＮ３に接続された装置として検出されるＭＦＰ１００，１００Ａ，１００Ｂそれぞれから送信される実績情報を受信する場合、実績情報を送信してきた装置に受信確認を返信するとともに、受信された実績情報を常時接続セッション確立部２５１に出力する。換言すれば、実績情報収集部２６２は、管理サーバー３００に代わって、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれから実績情報を受信する。
【００９２】
常時接続セッション確立部２５１は、接続装置情報取得部２６１からＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報が入力される。常時接続セッション確立部２５１は、第１通信部２０５を制御して、管理サーバー３００に通信セッションの確立要求を送信し、管理サーバー３００との間で通信セッションを確立する。ここで確立される通信セッションは、常時接続される常時接続セッションである。常時接続セッションは、特に限定するものではないが、例えば、ＸＭＰＰ（ｅＸｔｅｎｓｉｂｌｅ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｐｒｏｔｏｃｏｌ）に基づくメッセージセッションである。フラッシュメモリ２０４に管理サーバー３００のグローバルＩＰアドレスが予め記憶されており、常時接続セッション確立部２５１は、フラッシュメモリ２０４に記憶されているグローバルＩＰアドレスを用いて管理サーバー３００に通信セッションの確立要求を送信し、管理サーバー３００と所定のネゴシエーションをすることによって常時接続セッションを確立する。管理サーバー３００がサービスを停止する場合、常時接続セッションが切断されるが、常時接続セッション確立部２５１は、常時接続セッションが切断された後は、管理サーバー３００との間で通信セッションを確立されるまで、所定時間間隔で、管理サーバー３００に通信セッションの確立要求を送信し、常時接続セッションの確立を試みる。
【００９３】
常時接続セッション確立部２５１は、装置識別情報送信部２５３と、実績情報転送部２５４と、トンネル接続要求受信部２５５と、接続結果送信部２５７と、を含む。装置識別情報送信部２５３は、管理サーバー３００にファイアーウォール内部のＬＡＮ３に接続された装置を通知するために、接続装置情報取得部２６１から入力されるＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報を、常時接続セッションを介して管理サーバー３００に送信する。
【００９４】
実績情報転送部２５４は、実績情報収集部２６２から実績情報が入力される。実績情報転送部２５４は、実績情報収集部２６２から実績情報が入力されることに応じて、実績情報を常時接続セッションを介して管理サーバー３００に送信する。実績情報転送部２５４は、常時接続セッションが確立されていない場合、実績情報収集部２６２から入力される実績情報を次に常時接続セッションが確立されるまでＲＡＭ２０３に一時記憶し、次に常時接続セッションが確立されることに応じて、ＲＡＭ２０３に一時記憶された実績情報を、常時接続セッションを介して管理サーバー３００に送信する。
【００９５】
トンネル接続要求受信部２５５は、常時接続セッションを介して、管理サーバー３００からトンネル接続要求を受信する。トンネル接続要求は、管理サーバー３００がクラウドサーバー４００から受信した接続要求を含む。接続要求は、接続元のアドレス情報と、接続先のアドレス情報とを含む。ここでは、接続元のアドレス情報をＭＦＰ１００のアドレス情報とし、接続先のアドレス情報をクラウドサーバー４００のアドレス情報とする場合を例に説明する。ＭＦＰ１００のアドレス情報は、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とを含む。クラウドサーバー４００のアドレス情報は、ＭＦＰ１００からクラウドサーバー４００にアクセスするためのＵＲＬである。
【００９６】
トンネル接続要求受信部２５５は、トンネル接続要求を受信することに応じて、トンネル接続要求を識別するための接続識別情報とトンネル接続要求に含まれる接続先のアドレス情報とを第１セッション確立部２５９に出力し、トンネル接続要求を識別するための接続識別情報と接続元のアドレス情報とを第２セッション確立部２６３に出力し、接続結果の送信指示を接続結果送信部２５７に出力する。
【００９７】
第１セッション確立部２５９は、トンネル接続要求受信部２５５から接続識別情報と接続先のアドレス情報とが入力されることに応じて、第１通信部２０５を制御して、接続先のアドレス情報を用いて確立要求を送信する。ここでは、接続先のアドレス情報は、クラウドサーバー４００のアドレス情報なので、第１セッション確立部２５９は、確立要求をクラウドサーバー４００に送信し、クラウドサーバー４００との間で通信セッションを確立する。確立要求は、具体的には、トンネル接続要求受信部２５５から入力されるクラウドサーバー４００のアドレス情報であるＵＲＬを含むＧＥＴコマンドである。第１セッション確立部２５９は、クラウドサーバー４００のアドレス情報であるＵＲＬを含むＧＥＴコマンドを送信することによって、ＵＲＬで特定されるクラウドサーバー４００との間で、ＨＴＴＰトンネルの通信セッションを確立する。ここで確立する通信セッションは、第１通信セッションである。第１セッション確立部２５９は、第１通信セッションを確立すると、第１通信セッションを識別するためのセッション識別情報と接続識別情報とを中継部２７０および接続結果送信部２５７に出力する。
【００９８】
第２セッション確立部２６３は、トンネル接続要求受信部２５５から接続識別情報と接続元のアドレス情報とが入力されることに応じて、第２通信部２０６を制御して、接続元のアドレス情報を用いて確立要求を送信する。ここでは、接続元のアドレス情報はＭＦＰ１００のアドレス情報なので、第２セッション確立部２６３は、ＭＦＰ１００に確立要求を送信し、ＭＦＰ１００との間で通信セッションを確立する。ここで確立される通信セッションは第２通信セッションである。第２通信セッションは、特に限定するものではないが、ＬＡＮ３において用いられる通信プロトコルに準じた通信セッションであればよい。第２セッション確立部２６３は、第２通信セッションを識別するためのセッション識別情報と接続識別情報とを中継部２７０に出力する。
【００９９】
第２セッション確立部２６３は、第２通信セッションが確立され、ＭＦＰ１００の装置情報を取得する場合、接続要求のＭＦＰ１００のアドレス情報と、トンネル接続に成功したことを示す情報とを含むトンネル接続結果を、接続結果送信部２５７に出力する。第２セッション確立部２６３は、第２通信セッションが確立されない場合、接続要求のＭＦＰ１００のアドレス情報と、トンネル接続に失敗したことを示す情報とを含むトンネル接続結果を、接続結果送信部２５７に出力する。第２セッション確立部２６３によって第２通信セッションが確立されない場合は、ＭＦＰ１００に電源が投入されていない場合、または、ＭＦＰ１００が通信できないトラブルが発生している場合等である。
【０１００】
接続結果送信部２５７は、トンネル接続要求受信部２５５から接続結果の送信指示が入力された後に、第１セッション確立部２５９から第１通信セッションのセッション識別情報が入力され、かつ第２セッション確立部２６３からトンネル接続結果が入力される場合、トンネル接続結果を管理サーバー３００に常時接続セッションを介して送信する。
【０１０１】
中継部２７０は、第１セッション確立部２５９から第１通信セッションのセッション識別情報と接続識別情報が入力され、第２セッション確立部２６３から第２通信セッションのセッション識別情報と接続識別情報が入力される。中継部２７０は、第１セッション確立部２５９により確立された第１通信セッションと、第２セッション確立部２６３により確立された第２通信セッションとを用いて、クラウドサーバー４００とＭＦＰ１００との間の通信を中継する。中継部２７０は、それぞれに対応する接続識別情報が同じ第１通信セッションのセッション識別情報と第２通信セッションのセッション識別情報とを対応付け、対応付けられた２つのセッション識別情報で特定される第１通信セッションと第２通信セッションとを用いて、トンネル接続要求に含まれる接続先のアドレス情報と接続元のアドレス情報でそれぞれ特定される２つの装置間の通信を中継する。これにより、第１セッション確立部２５９によって複数の第１通信セッションが確立され、第２セッション確立部２６３により複数の第２通信セッションが確立される場合でも、トンネル接続要求に含まれる接続先のアドレス情報と接続元のアドレス情報でそれぞれ特定される２つの装置間の通信の中継が可能となる。
【０１０２】
例えば、トンネル接続要求に含まれる接続先のアドレス情報がクラウドサーバー４００のアドレス情報で、接続元のアドレス情報がＭＦＰ１００のアドレス情報の場合、中継部２７０は、クラウドサーバー４００との間で確立された第１通信セッションと、ＭＦＰ１００との間で確立された第２通信セッションを用いて通信を中継するので、クラウドサーバー４００とＭＦＰ１００との間でデータの送受信が可能となる。中継部２７０は、第１通信セッションと第２通信セッションとを関連付け、第１通信セッションを介してクラウドサーバー４００から受信されるデータを、第２通信セッションを介してＭＦＰ１００に送信し、第２通信セッションを介してＭＦＰ１００から受信されるデータを、第１通信セッションを介してクラウドサーバー４００に送信する。
【０１０３】
図８は、クラウドサーバーが備えるＣＰＵの機能の一例を示すブロック図である。図８に示す機能は、クラウドサーバー４００が備えるＣＰＵ４０１が、ＲＯＭ４０２、ＨＤＤ４０４またはＣＤ−ＲＯＭ４０９Ａに記憶された制御プログラムを実行することにより、ＣＰＵ４０１に形成される機能である。図８を参照して、クラウドサーバー４００が備えるＣＰＵ４０１は、停止期間取得部４５１と、アクセス元特定部４５３と、出力先指定受付部４５５と、ジョブ生成部４５７と、セッション決定部４５９と、ジョブ送信部４６１と、実行結果受信部４６３と、クラウド側セッション確立部４７１と、を含む。
【０１０４】
停止期間取得部４５１は、管理サーバー３００から停止期間を取得する。通信部４０５が管理サーバー３００から停止期間を受信すると、受信された停止期間を取得する。
【０１０５】
アクセス元特定部４５３は、クラウドサーバー４００にアクセスするアクセス元を特定する。クラウドサーバー４００は、インターネット５またはＬＡＮ３に接続されたＰＣからアクセスを受け付ける。例えば、クラウドサーバー４００が提供するサービスに対して、アクセス元としてユーザーを登録する場合、予め登録されたユーザーのユーザー識別情報とパスワードとの組をＨＤＤ４０４に記憶しておく。クラウドサーバー４００は、ＰＣからアクセスがあると、ログイン画面をＰＣに送信し、そのＰＣから受信されるユーザー識別情報とパスワードとの組がＨＤＤ４０４に記憶されている場合に、アクセス元のユーザーを特定する。また、クラウドサーバー４００が提供するサービスに対して、アクセス元として装置を登録する場合、その装置の装置識別情報をＨＤＤ４０４に記憶しておく。クラウドサーバー４００は、アクセスしてきた装置の装置識別情報がＨＤＤ４０４に記憶されている場合に、アクセスしてきた装置をアクセス元として特定する。
【０１０６】
アクセス元特定部４５３は、アクセス元を特定する場合、そのアクセス元を識別するためのアクセス元識別情報を、ジョブ生成部４５７および出力先指定受付部４５５に出力する。アクセス元識別情報は、アクセス元としてユーザーを特定する場合には、そのユーザーが操作するＰＣを識別するための装置識別情報であり、アクセス元として装置を特定する場合には、その装置を識別するための装置識別情報である。装置識別情報は、ここでは、ネットワークアドレスとしている。また、アクセス元特定部４５３は、複数のアクセス元を特定する場合、複数のアクセス元をそれぞれ識別するための複数のアクセス元識別情報を、ジョブ生成部４５７および出力先指定受付部４５５に出力する。
【０１０７】
ジョブ生成部４５７は、アクセス元特定部４５３からアクセス元識別情報が入力される。ジョブ生成部４５７は、アクセス元識別情報で特定されるアクセス元から受信される操作に従って、ジョブを生成する。例えば、アクセス元としてユーザーが特定される場合に、そのユーザーがＰＣを用いてクラウドサーバー４００に、データとプリント指示を送信する場合、受信されたデータをプリントするためのジョブを生成する。ジョブ生成部４５７は、生成されたジョブをジョブ送信部４６１に出力するとともに、アクセス元識別情報とそのジョブを特定するためのジョブＩＤとの組を出力先指定受付部４５５に出力する。ジョブ生成部４５７は、アクセス元特定部４５３から複数のアクセス元識別情報が入力される場合、複数のアクセス元識別情報でそれぞれ特定される複数のアクセス元それぞれから受信される操作に従って、複数のアクセス元にそれぞれ対応する複数のジョブを生成する。ジョブ生成部４５７は、複数のジョブをジョブ送信部４６１に出力するとともに、複数のアクセス元識別情報それぞれについて、そのアクセス元識別情報と対応するジョブのジョブＩＤとの組を出力先指定受付部４５５に出力する。
【０１０８】
クラウド側セッション確立部４７１は、通信部４０５を制御して、管理サーバー３００との間でグルーバルセッションを確立する。クラウド側セッション確立部４７１は、確立したグローバルセッションのセッション識別情報を出力先指定受付部４５５に出力する。
【０１０９】
出力先指定受付部４５５は、アクセス元特定部４５３からアクセス元識別情報が入力され、クラウド側セッション確立部４７１からグルーバルセッションのセッション識別情報が入力され、ジョブ生成部４５７からアクセス元識別情報とジョブＩＤとの組が入力される。出力先指定受付部４５５は、アクセス元識別情報で特定されるアクセス元から受信される操作に従って、出力先を特定する。出力先指定受付部４５５は、通信部４０５を制御して、クラウド側セッション確立部４７１から入力されるセッション識別情報で特定されるグローバルセッションを介して、ゲートウェイ装置２００の装置識別情報と、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報と、を受信する。出力先指定受付部４５５は、ゲートウェイ装置２００と、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかと、を選択可能な装置選択画面を、通信部３０５を制御して、アクセス元特定部４５３から入力されるアクセス元識別情報で特定されるアクセス元のＰＣに送信する。出力先指定受付部４５５は、アクセス元のＰＣからゲートウェイ装置２００と、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかと、を選択する操作を受信することに応じて、選択された装置を出力先として特定する。例えば、ＰＣを操作するユーザーが、装置選択画面に従って、ゲートウェイ装置２００とＭＦＰ１００とを選択する操作をＰＣに入力すれば、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とを選択する操作を受信するので、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とで定まるＭＦＰ１００を出力先として特定する。出力先は、ジョブＩＤで特定されるジョブを実行させる装置である。以下、ジョブＩＤで特定されるジョブを実行させる装置を、ジョブＩＤに対応する出力先という。
【０１１０】
出力先指定受付部４５５は、アクセス元特定部４５３から複数のアクセス元識別情報が入力される場合、ジョブ生成部４５７からアクセス元識別情報とジョブＩＤとの組が複数入力される。出力先指定受付部４５５は、複数の組ごとに、その組に含まれるアクセス元識別情報で特定されるアクセス元から受信される操作に従って、出力先を特定する。従って、出力先指定受付部４５５は、複数のアクセス元識別情報にそれぞれ対応する複数のジョブＩＤごとに、そのジョブＩＤに対応する出力先を特定する。
【０１１１】
なお、出力先指定受付部４５５は、ゲートウェイ装置２００の装置識別情報と、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報とを、管理サーバー３００から予め受信してＨＤＤ４０４に記憶しておくようにしてもよい。また、ゲートウェイ装置２００の装置識別情報と、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報とを、クラウドサーバー４００を管理する管理者が入力するようにして、それらをＨＤＤ４０４に記憶しておくようにしてもよい。
【０１１２】
停止期間取得部４５１により取得された停止期間に基づいて、管理サーバー３００がサービスを提供している期間が特定される。現在日時に基づいて、現在日時が停止期間に含まれる期間でなければ、停止期間でない期間である。以下、現在日時が停止期間でない場合と、現在日時が停止期間の場合とに分けて説明する。
【０１１３】
＜現在日時が停止期間でない場合＞
出力先指定受付部４５５は、停止期間でない場合、ジョブＩＤに対応する出力先を特定することに応じて、特定した出力先のアドレス情報と、ジョブＩＤとを含む接続指示をクラウド側セッション確立部４７１に出力する。出力先指定受付部４５５は、複数のジョブＩＤにそれぞれに対応する複数の出力先を特定する場合、複数のジョブＩＤごとに、そのジョブＩＤに対応する出力先のアドレス情報と、そのジョブＩＤとを含む接続指示をクラウド側セッション確立部４７１に出力する。ここでは、アクセス元特定部４５３によって出力先にＭＦＰ１００が選択され、出力先のアドレス情報が、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とを含む場合を例に説明する。
【０１１４】
クラウド側セッション確立部４７１は、トンネル接続部４７３と、クラウド側切断部４７９と、接続状態関連付部４８１と、を含む。トンネル接続部４７３は、接続要求部４７５と、確立要求受信部４７７と、を含む。
【０１１５】
接続要求部４７５は、出力先指定受付部４５５から接続指示が入力されることに応じて、接続指示に含まれるジョブＩＤに基づいて接続先のアドレス情報を決定し、接続指示に含まれる出力先のアドレス情報を接続元のアドレス情報に決定し、接続先のアドレス情報と接続元のアドレス情報とを含む接続要求を、通信部４０５を制御して、管理サーバー３００にグローバルセッションを介して送信する。接続元のアドレス情報は、出力先のアドレス情報であり、ここでは、ＭＦＰ１００のアドレス情報である。ＭＦＰ１００のアドレス情報は、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とを含む。接続先のアドレス情報は、クラウドサーバー４００のアドレス情報であり、ジョブＩＤを含む。クラウドサーバー４００のアドレス情報は、ＭＦＰ１００からクラウドサーバー４００にアクセスするためのＵＲＬである。ＵＲＬには、クラウドサーバー４００のネットワークアドレス（ドメイン名）、ウェブページの識別子、接続指示に含まれるジョブＩＤ、および待ち受けポートのポート番号が含まれる。接続要求部４７５は、接続要求を送信することに応じて、接続先のアドレス情報および接続元のアドレス情報を、確立要求受信部４７７に出力する。接続要求部４７５は、出力先指定受付部４５５から複数の接続指示が入力される場合、複数の接続指示にそれぞれ対応する複数の接続要求を、グローバルセッションを介して管理サーバー３００に送信する。接続要求部４７５は、出力先指定受付部４５５から複数の接続指示が入力される場合、複数の接続指示にそれぞれ対応する、接続先のアドレス情報および接続元のアドレス情報の組を、確立要求受信部４７７に出力する。
【０１１６】
確立要求受信部４７７は、接続要求部４７５から接続先のアドレス情報および接続元のアドレス情報が入力された後に、通信部４０５を制御して、接続先のアドレス情報と同じアドレス情報を含む確立要求を受信することに応じて、その確立要求を送信してきた装置との間で、通信セッションを確立する。上述したように、確立要求は、管理サーバー３００に送信される接続要求を受信するゲートウェイ装置２００から送信される。ここでは、接続先のアドレス情報を、クラウドサーバー４００のアドレス情報としており、クラウドサーバー４００のアドレス情報を、ジョブＩＤを含むＵＲＬとしている。この場合の確立要求は、クラウドサーバー４００のアドレス情報であるＵＲＬを含むＧＥＴコマンドとしている。確立要求受信部４７７は、確立要求を送信してきたゲートウェイ装置２００との間で通信セッションを確立する。ここで、ゲートウェイ装置２００との間で確立される通信セッションは第１通信セッションである。また、確立要求であるＧＥＴコマンドに含まれるＵＲＬは、ジョブＩＤを含むので、確立要求がジョブ生成部４５７によって生成されたジョブの何れに対応する確立要求であるかを判別することが可能である。確立要求受信部４７７は、ゲートウェイ装置２００との間で確立された第１通信セッションのセッション識別情報と、接続先のアドレス情報に含まれるジョブＩＤと、接続元のアドレス情報と、の組を、ジョブ送信部４６１および接続状態関連付部４８１に出力する。
【０１１７】
確立要求受信部４７７は、接続要求部４７５から接続先のアドレス情報および接続元のアドレス情報の組が複数入力される場合、複数の組ごとに、その組に含まれる接続先のアドレス情報と同じアドレス情報を含む確立要求を受信することに応じて、その確立要求を送信してきた装置との間で、第１通信セッションを確立し、その第１通信セッションのセッション識別情報と、その組に含まれる接続先のアドレス情報に含まれるジョブＩＤと、その組に含まれる接続元のアドレス情報とを、ジョブ送信部４６１および接続状態関連付部４８１に出力する。
【０１１８】
接続状態関連付部４８１は、確立要求受信部４７７から第１通信セッションのセッション識別情報と、ジョブＩＤと、接続元のアドレス情報と、の組が入力されることに応じて、第１通信セッションのセッション識別情報と、接続元のアドレス情報とを関連付ける。具体的には、接続状態関連付部４８１は、第１通信セッションのセッション識別情報と、接続元のアドレス情報とを含む出力先関連付情報をＨＤＤ４０４に記憶する。また、接続状態関連付部４８１は、第１通信セッションのセッション識別情報と、接続元のアドレス情報との組をセッション決定部４５９に出力する。
【０１１９】
ジョブ送信部４６１は、確立要求受信部４７７から第１通信セッションのセッション識別情報と、ジョブＩＤと、接続元のアドレス情報と、の組が入力され、ジョブ生成部４５７からジョブが入力される。ジョブ送信部４６１は、確立要求受信部４７７から入力される第１通信セッションのセッション識別情報と、ジョブＩＤと、接続元のアドレス情報との組のうちからジョブ生成部４５７から入力されるジョブのジョブＩＤを含む組を特定し、特定した組に含まれるセッション識別情報を特定する。ジョブ送信部４６１は、通信部３０５を制御して、ジョブ生成部４５７から入力されるジョブを、特定されたセッション識別情報で特定される第１通信セッションを介して、ゲートウェイ装置２００に送信する。ジョブ送信部４６１は、ジョブを送信することに応じて、ジョブＩＤとセッション識別情報との組を実行結果受信部４６３に出力する。
【０１２０】
ジョブ送信部４６１は、確立要求受信部４７７から第１通信セッションのセッション識別情報と、ジョブＩＤと、接続元のアドレス情報と、の組が複数入力される場合、ジョブ生成部４５７から複数のジョブＩＤが入力される。ジョブ送信部４６１は、ジョブ生成部４５７から入力される複数のジョブごとに、そのジョブのジョブＩＤを含む組を複数の組のうちから特定し、特定した組に含まれるセッション識別情報を特定する。ジョブ送信部４６１は、通信部３０５を制御して、ジョブ生成部４５７から入力されるジョブを、そのジョブＩＤに対して特定されたセッション識別情報で特定される第１通信セッションを介して、ゲートウェイ装置２００に送信する。ジョブ送信部４６１は、ジョブを送信することに応じて、そのジョブのジョブＩＤとセッション識別情報との組を実行結果受信部４６３に出力する。
【０１２１】
ジョブ送信部４６１によってゲートウェイ装置２００に第１通信セッションを介して送信されるジョブは、ゲートウェイ装置２００によって第１通信セッションを介して受信され、第２通信セッションを介して、ＭＦＰ１００に送信される。ＭＦＰ１００においては、ゲートウェイ装置２００から受信されるジョブを実行し、実行結果をゲートウェイ装置２００に送信する。ゲートウェイ装置２００においては、ＭＦＰ１００から第２通信セッションを介して受信される実行結果を、第１通信セッションを介してクラウドサーバー４００に送信する。
【０１２２】
実行結果受信部４６３は、ジョブ送信部４６１からジョブＩＤとセッション識別情報との組が入力されることに応じて、通信部４０５を制御して、セッション識別情報で特定される第１通信セッションを介して実行結果を受信する。実行結果はジョブＩＤを含む。実行結果受信部４６３は、ジョブ送信部４６１から入力されるジョブＩＤと同じジョブＩＤを含む実行結果を受信することに応じて、クラウド側セッション確立部４７１に切断指示を出力する。切断指示は、実行結果に含まれるジョブＩＤと組になるセッション識別情報を含む。
【０１２３】
クラウド側切断部４７９は、実行結果受信部４６３から切断指示が入力されることに応じて、切断指示に含まれるセッション識別情報で特定される第１通信セッションを切断する。ただし現在日時が停止期間内の場合、クラウド側切断部４７９は、切断指示に含まれるセッション識別情報で特定される第１通信セッションを切断しない。クラウド側切断部４７９は、第１通信セッションを切断することに応じて、消去指示を接続状態関連付部４８１に出力する。切断指示は、切断した第１通信セッションのセッション識別情報を含む。さらに、クラウド側切断部４７９は、ＨＤＤ４０４に記憶されている出力先関連付情報のうちに、同一の接続元のアドレス情報を含む複数の出力関連付情報が存在する場合、同一の接続元のアドレス情報を含む複数の出力関連付情報のうちから１つを選択し、選択されなかった１以上の出力関連付情報に含まれるセッション識別情報で特定される第１通信セッションのすべてを切断する。１つの接続元のアドレス情報で特定される装置に対して１つの第１通信セッションが存在すればジョブを送信することができるからである。これにより、ネットワーク資源を有効に利用することができる。
【０１２４】
接続状態関連付部４８１は、クラウド側切断部４７９から消去指示が入力されることに応じて、消去指示に含まれるセッション識別情報で特定される第１通信セッションと接続元のアドレス情報との関連付を解消する。具体的には、接続状態関連付部４８１は、ＨＤＤ４０４に記憶されている出力先関連付情報のうち、切断指示に含まれるセッション識別情報と同じセッション識別情報を含む出力先関連付情報を削除する。
【０１２５】
＜現在日時が停止期間の場合＞
出力先指定受付部４５５は、停止期間の場合、ジョブＩＤに対応する出力先を特定することに応じて、特定した出力先のアドレス情報と、ジョブＩＤとを含む接続指示をセッション決定部４５９に出力する。出力先指定受付部４５５は、複数のジョブＩＤにそれぞれに対応する複数の出力先を特定する場合、複数のジョブＩＤごとに、そのジョブＩＤに対応する出力先のアドレス情報と、そのジョブＩＤとを含む接続指示をセッション決定部４５９に出力する。ここでは、アクセス元特定部４５３によって出力先にＭＦＰ１００が選択され、出力先のアドレス情報が、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とを含む場合を例に説明する。
【０１２６】
セッション決定部４５９は、出力先指定受付部４５５から接続指示が入力されることに応じて、ＨＤＤ４０４に記憶されている出力先関連付情報のうちから、接続元のアドレス情報が接続指示に含まれる出力先のアドレス情報と同じ出力先関連付情報を抽出し、抽出した出力先関連付情報に含まれる第１通信セッションのセッション識別情報、接続指示に含まれるジョブＩＤおよび出力先のアドレス情報の組をジョブ送信部４６１に出力する。セッション決定部４５９は、出力先指定受付部４５５から複数の接続指示が入力される場合、複数の接続指示ごとに、ＨＤＤ４０４に記憶されている出力先関連付情報のうちから、接続元のアドレス情報が、その接続指示に含まれる出力先のアドレス情報と同じ出力先関連付情報を抽出し、抽出した出力先関連付情報に含まれる第１通信セッションのセッション識別情報、接続指示に含まれるジョブＩＤおよび出力先のアドレス情報の組をジョブ送信部４６１に出力する。
【０１２７】
ジョブ送信部４６１は、セッション決定部４５９から第１通信セッションのセッション識別情報と、ジョブＩＤと、出力先のアドレス情報と、の組が入力され、ジョブ生成部４５７からジョブが入力される。ジョブ生成部４５７は、セッション決定部４５９から入力される第１通信セッションのセッション識別情報と、ジョブＩＤと、出力先のアドレス情報との組のうちからジョブ生成部４５７から入力されるジョブのジョブＩＤを含む組を特定し、特定した組に含まれるセッション識別情報を特定する。ジョブ送信部４６１は、通信部３０５を制御して、ジョブ生成部４５７から入力されるジョブを、特定されたセッション識別情報で特定される第１通信セッションを介して、ゲートウェイ装置２００に送信する。ジョブ送信部４６１は、ジョブを送信することに応じて、ジョブＩＤとセッション識別情報との組を実行結果受信部４６３に出力する。
【０１２８】
ジョブ送信部４６１は、ジョブ生成部４５７から複数のジョブが入力される場合がある。この場合、ジョブ送信部４６１は、セッション決定部４５９から第１通信セッションのセッション識別情報と、ジョブＩＤと、接続元のアドレス情報と、の組が複数入力される。ジョブ送信部４６１は、ジョブ生成部４５７から入力される複数のジョブごとに、そのジョブのジョブＩＤを含む組を複数の組のうちから特定し、特定した組に含まれるセッション識別情報を特定する。ジョブ送信部４６１は、通信部３０５を制御して、ジョブ生成部４５７から入力されるジョブを、そのジョブＩＤに対して特定されたセッション識別情報で特定される第１通信セッションを介して、ゲートウェイ装置２００に送信する。ジョブ送信部４６１は、ジョブを送信することに応じて、そのジョブのジョブＩＤとセッション識別情報との組を実行結果受信部４６３に出力する。
【０１２９】
ジョブ送信部４６１は、順次送信部４６５を含む。順次送信部４６５は、ジョブ生成部４５７から複数のジョブが入力される場合、複数のジョブそれぞれに対して、第１通信セッションのセッション識別情報を特定する。順次送信部４６５は、複数のジョブそれぞれに対してセッション識別情報を関連付ける。そして、順次送信部４６５は、同一のセッション識別情報が関連付けられたジョブが複数の場合、通信部４０５を制御して、複数のジョブを順に、それらのジョブに関連付けられたセッション識別情報で特定される第１通信セッションを介して送信する。出力先指定受付部４５５において受け付けられた出力先のアドレス情報で特定される装置との間では、１つの第１通信セッションしか確立されていない。このため、複数のジョブを単一の通信セッションで送信するために、複数のジョブを並列して送信するのではなく、順に送信する。
【０１３０】
ジョブ送信部４６１によってゲートウェイ装置２００に第１通信セッションを介して送信されるジョブは、ゲートウェイ装置２００によって第１通信セッションを介して受信され、第２通信セッションを介して、ＭＦＰ１００に送信される。ＭＦＰ１００においては、ゲートウェイ装置２００から受信されるジョブを実行し、実行結果をゲートウェイ装置２００に送信する。ゲートウェイ装置２００においては、ＭＦＰ１００から第２通信セッションを介して受信される実行結果を、第１通信セッションを介してクラウドサーバー４００に送信する。実行結果はジョブＩＤを含む。
【０１３１】
実行結果受信部４６３は、ジョブ送信部４６１からジョブＩＤとセッション識別情報との組が入力されることに応じて、通信部４０５を制御して、セッション識別情報で特定される第１通信セッションを介して実行結果を受信する。実行結果受信部４６３は、ジョブ送信部４６１から入力されるジョブＩＤと同じジョブＩＤを含む実行結果を受信することに応じて、クラウド側セッション確立部４７１に切断指示を出力する。
【０１３２】
クラウド側切断部４７９は、現在日時が停止期間の場合は、実行結果受信部４６３から切断指示が入力されても、切断指示に含まれるセッション識別情報で特定される第１通信セッションを切断しない。
【０１３３】
クラウド側切断部４７９は、現在日時が停止期間を経過することに応じて、第１通信セッションの全てを切断する。具体的には、クラウド側切断部４７９は、現在日時が停止期間を経過すると、ＨＤＤ４０４に記憶されている出力先関連付情報を順に読出し、読み出した出力先関連付情報に含まれるセッション識別情報で特定される第１通信セッションを切断する。クラウド側切断部４７９は、第１通信セッションを切断することに応じて、消去指示を接続状態関連付部４８１に出力する。
【０１３４】
接続状態関連付部４８１は、現在日時が停止期間の場合、ＨＤＤ４０４に記憶された出力先関連付情報それぞれにおいて、出力先関連付情報に含まれるセッション識別情報で特定される第１通信セッションを介して、所定時間間隔でダミー信号を送信する。これにより、第１通信セッションを維持する。ダミー信号は、ゲートウェイ装置２００を介して、第１通信セッションと組になる第２通信セッションを介して、出力先関連付情報で特定される装置、例えば、ＭＦＰ１００に送信されるので、ゲートウェイ装置２００によって第１通信セッションが切断されることがなく、また、ゲートウェイ装置２００およびＭＦＰ１００によって第１通信セッションと組になる第２通信セッションが切断されることがない。
【０１３５】
また、接続状態関連付部４８１は、クラウド側切断部４７９から消去指示が入力されることに応じて、ＨＤＤ４０４に記憶された出力先関連付情報のうち、消去指示に含まれるセッション識別情報で特定される出力先関連付情報を消去する。
【０１３６】
図９は、中継処理の流れの一例を示すフローチャートである。中継処理は、ゲートウェイ装置２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、フラッシュメモリ２０４またはＣＤ−ＲＯＭ２０９Ａに記憶された中継プログラムを実行することにより、ＣＰＵ２０１により実行される処理である。図９を参照して、ゲートウェイ装置２００が備えるＣＰＵ２０１は、第１通信部２０５を制御して管理サーバー３００との間で常時接続セッションを確立する（ステップＳ０１）。フラッシュメモリ２０４に記憶されている管理サーバー３００のグローバルＩＰアドレスを用いて管理サーバー３００に通信セッションの確立要求を送信し、管理サーバー３００と所定のネゴシエーションをすることによって常時接続セッションを確立する。常時接続セッションは、特に限定するものではないが、例えば、ＸＭＰＰに基づくメッセージセッションである。
【０１３７】
次のステップＳ０２においては、ファイアーウォールの内側のＬＡＮ３に接続された装置を検索する。ＬＡＮ３にブロードキャストで問い合わせを送信し、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれから返信される装置識別情報を取得することによって、ＭＦＰ１００，１００Ａ，１００Ｂを検索する。装置識別情報は、限定するものではないが、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれに対してＬＡＮ３において割り当てられたローカルＩＰアドレスである。
【０１３８】
次のステップＳ０３においては、ステップＳ０２において検索されたＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報を、ステップＳ０１において確立された常時接続セッションを介して管理サーバー３００に送信し、処理をステップＳ０４に進める。これにより、管理サーバー３００は、ゲートウェイ装置２００に接続されたＭＦＰ１００，１００Ａ，１００Ｂを認識することができる。
【０１３９】
ステップＳ０４においては、常時接続セッションを介して管理サーバー３００から、トンネル接続要求を受信したか否かを判断する。トンネル接続要求を受信したならば、処理をステップＳ０５に進めるが、そうでなければ処理をステップＳ１２に進める。
【０１４０】
ステップＳ０５においては、トンネル接続要求から接続元のアドレス情報を抽出する。そして、接続元のアドレス情報に基づいて接続元の装置を特定する（ステップＳ０６）。ここでは、トンネル接続要求が、接続元のアドレス情報としてＭＦＰ１００のアドレス情報を含み、接続先のアドレス情報としてクラウドサーバー４００のアドレス情報を含む場合を例に説明する。この場合、ＭＦＰ１００を接続元の装置に特定する。
【０１４１】
次のステップＳ０７においては、第２通信部２０６を制御して、接続元の装置に特定されたＭＦＰ１００との間で第２通信セッションを確立する。ステップＳ０６において、接続元の装置に特定されたＭＦＰ１００に通信セッションの確立要求を送信し、ＭＦＰ１００との間で第２通信セッションを確立する。第２通信セッションを確立したならば、処理をステップＳ０８に進めるが、ＭＦＰ１００との間で第２通信セッションを確立できなければ処理をステップＳ１４に進める。ＭＦＰ１００との間で第２通信セッションを確立できない場合は、例えば、ＭＦＰ１００に電源が投入されていない場合、ＭＦＰ１００が通信できないトラブル状態の場合等である。ステップＳ１４においては、ＭＦＰ１００の装置識別情報と、トンネル接続に失敗したことを示す情報とを含むトンネル接続結果を、常時接続セッションを介して管理サーバー３００に送信し、処理をステップＳ１５に進める。
【０１４２】
ステップＳ０８においては、ＭＦＰ１００のアドレス情報と、トンネル接続に成功したことを示す情報とを含むトンネル接続結果を、常時接続セッションを介して管理サーバー３００に送信し、処理をステップＳ０９に進める。
【０１４３】
ステップＳ０９においては、ステップＳ０４において受信されたトンネル接続要求から接続先のアドレス情報を抽出する。ここでは、トンネル接続要求が、接続先のアドレス情報としてクラウドサーバー４００のアドレス情報を含むので、クラウドサーバー４００のアドレス情報を抽出する。次のステップＳ１０においては、第１通信部２０５を制御して、接続先のアドレス情報を用いて、クラウドサーバー４００との間で第１通信セッションを確立する。ステップＳ０９において抽出されたクラウドサーバー４００のアドレス情報で示されるアドレスにアクセスすることによって、クラウドサーバー４００との間で第１通信セッションを確立する。
【０１４４】
ステップＳ１１においては、第１通信セッションと第２通信セッションとを用いて、クラウドサーバー４００とＭＦＰ１００との間の通信を中継する。例えば、クラウドサーバー４００からＭＦＰ１００にデータが送信される場合、クラウドサーバー４００から第１通信セッションを介してデータを受信し、受信されたデータをクラウドサーバー４００に代わってＭＦＰ１００に第２通信セッションを介して送信する。また、ＭＦＰ１００から実行結果を第２通信セッションを介して受信する場合、実行結果を、クラウドサーバー４００にＭＦＰ１００に代わって第１通信セッションを介して送信する。実行結果は、接続元がＭＦＰ１００であることを示す情報を含む。
【０１４５】
一方、ステップＳ１２においては、ステップＳ１０において確立された第１通信セッションが切断されたか否かを判断する。第１通信セッションが切断されたならば処理をステップＳ１３に進めるが、そうでなければ処理をステップＳ１５に進める。ステップＳ１３においては、ステップＳ１２において切断された第１通信セッションと対になる第２通信セッションを切断し、処理をステップＳ１５に進める。切断された第１通信セッションと対になる第２通信セッションは、ステップＳ１１において、切断された第１通信セッションと接続された第２通信セッションである。ステップＳ１５においては、電源がＯＦＦになったか否かを判断する。電源がＯＦＦになったならば処理を終了するが、そうでなければ処理をステップＳ０４に戻す。
【０１４６】
図１０は、トンネル接続支援処理の流れの一例を示すフローチャートである。トンネル接続支援処理は、管理サーバー３００が備えるＣＰＵ３０１が、ＲＯＭ３０２、ＨＤＤ３０４またはＣＤ−ＲＯＭ３０９Ａに記憶されたプログラムを実行することにより、ＣＰＵ３０１により実行される処理である。図１０を参照して、ＣＰＵ３０１は、常時接続セッションの確立要求を受信したか否かを判断する（ステップＳ３０１）。通信部３０５が、ゲートウェイ装置２００から常時接続のための通信セッションの確立要求を受信したか否かを判断する。常時接続セッションの確立要求を受信したならば処理をステップＳ３０２に進めるが、そうでなければ処理をステップＳ３０４に進める。
【０１４７】
ステップＳ３０２においては、ゲートウェイ装置２００との間で常時接続セッションを確立し、処理をステップＳ３０３に進める。ステップＳ３０３においては、常時接続セッションを介して、ゲートウェイ装置２００からＭＦＰの装置識別情報を取得する。ここでは、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報を取得する場合を例に説明する。
【０１４８】
ステップＳ３０４においては、グローバルセッションの確立要求を受信したか否かを判断する。通信部３０５が、ファイアーウォールの外部に位置するクラウドサーバー４００からグローバルセッションの確立要求を受信したか否かを判断する。グローバルセッションの確立要求を受信したならば処理をステップＳ３０５に進めるが、そうでなければ処理をステップＳ３０１に戻す。ステップＳ３０５においては、クラウドサーバー４００との間でグローバルセッションを確立し、処理をステップＳ３０６に進める。
【０１４９】
ステップＳ３０６においては、接続要求をクラウドサーバー４００から受信したか否かを判断する。接続要求を受信するまで待機状態となり（ステップＳ３０６でＮＯ）、接続要求を受信したならば（ステップＳ３０６でＹＥＳ）、処理をステップＳ３０７に進める。
【０１５０】
ステップＳ３０７においては、トンネル接続要求をゲートウェイ装置２００にステップＳ３０１において確立された常時接続セッションを介して送信する。トンネル接続要求は、接続要求を、常時接続セッションにより定まるプロトコルに適合するようにカプセル化したパケットである。トンネル接続要求を受信するゲートウェイ装置２００は、ＭＦＰ１００との間で第２通信セッションを確立し、その結果としてトンネル接続結果を返信する。
【０１５１】
ステップＳ３０８においては、ゲートウェイ装置２００からトンネル接続結果を常時接続セッションを介して受信したか否かを判断する。トンネル接続結果を受信するまで待機状態となり（ステップＳ３０８でＮＯ）、トンネル接続結果を受信したならば（ステップＳ３０８でＹＥＳ）、処理をステップＳ３０９に進める。トンネル接続結果は、トンネル接続に成功したことを示す情報と接続元のアドレス情報とを含むトンネル接続結果と、トンネル接続に失敗したことを示す情報と接続元のアドレス情報とを含むトンネル接続結果とを含む。
【０１５２】
ステップＳ３０９においては、接続要求を送信してきた装置、ここではクラウドサーバー４００にトンネル接続結果を通知する。具体的には、ステップＳ３０５において確立されたグローバルセッションを介して、トンネル接続結果を送信する。ステップＳ３１０においては、ステップＳ３０５において確立されたグローバルセッションを切断し、処理を終了する。
【０１５３】
図１１は、装置制御処理の流れの一例を示すフローチャートである。図１１に示す装置制御処理は、アクセス元が１つの場合にＣＰＵ４０１により実行される処理を示しているが、アクセス元が複数の場合には、ＣＰＵ４０１は、アクセス元の数それぞれに対して、図１１に示す装置制御処理を実行する。装置制御処理は、クラウドサーバー４００が備えるＣＰＵ４０１がサービスを提供するためのプログラムを実行することにより、そのＣＰＵ４０１により実行される処理である。ここでは、クラウドサーバー４００が実行する処理のうち、クラウドサーバー４００がＭＦＰ１００に処理を実行させる処理を主に示している。図１１を参照して、クラウドサーバー４００が備えるＣＰＵは、停止期間を取得する（ステップＳ４０１）。通信部４０５が管理サーバー３００から停止期間を受信すると、その停止期間を取得する。
【０１５４】
次のステップＳ４０２においては、アクセス元を特定したか否かを判断する。アクセス元を特定するまで待機状態となり（ステップＳ４０２でＮＯ）、アクセス元を特定したならば（ステップＳ４０２でＹＥＳ）、処理をステップＳ４０３に進める。アクセス元は、クラウドサーバーを操作するユーザーが操作するＰＣである。通信部４０５が、インターネット５またはＬＡＮ３に接続されたＰＣからアクセスを受け付けると、ＰＣをアクセス元として特定する。例えば、ログイン画面をＰＣに送信し、そのＰＣから受信されるユーザー識別情報とパスワードとの組がＨＤＤ４０４に予め記憶されている場合に、そのＰＣをアクセス元として特定する。また、アクセスしてきた装置の装置識別情報がＨＤＤ４０４に予め記憶されている場合に、アクセスしてきた装置をアクセス元として特定する。
【０１５５】
次のステップＳ４０３においては、出力先を特定する。アクセス元のＰＣを操作するユーザーにより特定される装置を出力先に特定する。具体的には、管理サーバー３００から、ゲートウェイ装置２００の装置識別情報と、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報と、を受信し、受信されたゲートウェイ装置２００の装置識別情報と、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの装置識別情報との組を出力先の候補として予めＨＤＤ４０４に記憶している。ＣＰＵ４０１は、ゲートウェイ装置２００と、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかと、を選択可能な装置選択画面を、通信部３０５を制御して、ステップＳ４０２で特定されたアクセス元に送信し、アクセス元のＰＣからゲートウェイ装置２００と、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかと、を選択する操作を受信すると、選択された装置を出力先として特定する。例えば、ＰＣを操作するユーザーが、装置選択画面に従って、ゲートウェイ装置２００とＭＦＰ１００とを選択する操作をＰＣに入力すれば、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とを選択する操作を受信するので、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とで定まるＭＦＰ１００を出力先として特定する。以下、ＭＦＰ１００が出力先に特定される場合を例に説明する。
【０１５６】
そして、現在日時が停止期間外か否かを判断する（ステップＳ４０４）。現在日時が停止期間でなければ処理をステップＳ４０５に進めるが、現在日時が停止期間内であれば処理をステップＳ４１８に進める。ステップＳ４０５においては、出力先関連付情報がＨＤＤ４０４に記憶されているか否かを判断する。出力先関連付情報は、後述するステップＳ４１７においてＨＤＤ４０４に記憶される。出力先関連付情報がＨＤＤ４０４に記憶されていれば処理をステップＳ４０６に進めるが、そうでなければステップＳ４０６をスキップして、処理をステップＳ４０７に進める。ステップＳ４０６においては、ＨＤＤ４０４に記憶されている出力先関連付情報の全てを削除し、処理をステップＳ４０７に進める。現在日時が停止期間でなければ、管理サーバー３００がサービスを提供しているため、管理サーバー３００を経由して出力先との間でトンネル接続すればよいからである。
【０１５７】
ステップＳ４０７においては、ステップＳ４０３において出力先に特定された装置を管理する管理サーバー３００との間でグローバルセッションを確立するための確立要求を、通信部３０５を制御して管理サーバー３００に送信する。出力先に特定された装置を管理する装置は、出力先に特定された装置の装置識別情報を送信してきた装置であり、ここでは、管理サーバー３００である。次のステップＳ４０８においては、管理サーバー３００とネゴシエーションすることによって、管理サーバー３００との間の通信セッションとしてグローバルセッションを確立する。なお、この場合、管理サーバー３００は、管理サーバー３００に登録されたユーザーであることを認証するために認証情報を要求し、認証に成功することを条件に、通信セッションであるグローバルセッションを確立するようにしてもよい。これにより、ファイアーウォールの内部のＭＦＰ１００，１００Ａ，１００Ｂに対してアクセス可能なユーザーを、管理サーバー３００に登録されたユーザーに制限することができる。
【０１５８】
次のステップＳ４０９においては、接続要求を管理サーバー３００に、ステップＳ４０８において確立されたグローバルセッションを介して送信する。接続要求は、接続元のアドレス情報としてＭＦＰ１００のアドレス情報と、接続先のアドレス情報としてＵＲＬを含む。ＵＲＬは、クラウドサーバー４００のネットワークアドレス（ドメイン名）、ウェブページの識別子、クラウドサーバー４００が実行するジョブの識別子（ジョブＩＤ）、および待ち受けポートのポート番号を含む。
【０１５９】
次のステップＳ４１０においては、通信セッションの確立要求を受信したか否かを判断する。ここでの確立要求は、ステップＳ４０９において管理サーバー３００に送信した接続要求に対応する。ステップＳ４０９において管理サーバー３００に送信した接続要求は、接続元のアドレス情報と接続先のアドレスとを含む。接続先のアドレス情報は、クラウドサーバー４００のアドレス情報であり、ＵＲＬとしている。また、確立要求は、接続要求に含まれる接続先のアドレス情報を含む。ここでは、確立要求は、クラウドサーバー４００のＵＲＬへのアクセスとしている。このため、ステップＳ４１０においては、ステップＳ４０９において管理サーバー３００に送信した接続要求に対応する確立要求として、ゲートウェイ装置２００から受信する通信セッションの確立要求を受信する。通信セッションの確立要求を受信するまで待機状態となり（ステップＳ４１０でＮＯ）、通信セッションの確立要求を受信したならば（ステップＳ４１０でＹＥＳ）、処理をステップＳ４１１に進める。
【０１６０】
ステップＳ４１１においては、通信セッションの確立要求に対応する第１通信セッションを確立し、処理をステップＳ４１２に進める。通信セッションの確立要求を送信してきた装置、ここではゲートウェイ装置２００との間で第１通信セッションを確立する。
【０１６１】
ステップＳ４１２においては、ジョブを第１通信セッションを介して送信する。ジョブの送信先はゲートウェイ装置２００であるが、上述したように第１通信セッションを介して送信されるジョブは、ゲートウェイ装置２００とＭＦＰ１００との間で確立された第２通信セッションを介して、ゲートウェイ装置２００によってＭＦＰ１００に送信される。このため、ジョブは実際にはＭＦＰ１００に送信される。
【０１６２】
次のステップＳ４１３においては、実行結果を第１通信セッションを介して受信したか否かを判断する。実行結果を受信するまで待機状態となり（ステップＳ４１３でＮＯ）、実行結果を受信したならば（ステップＳ４１３でＹＥＳ）、処理をステップＳ４１４に進める。
【０１６３】
ステップＳ４１４においては、現在日時が停止期間外か否かを判断する。現在日時が停止期間でなければ処理をステップＳ４１５に進めるが、現在日時が停止期間内であれば処理をステップＳ４１６に進める。ステップＳ４１５においては、ステップＳ４１１において確立した第１通信セッションを切断し、処理をステップＳ４０２に戻す。
【０１６４】
ステップＳ４１６においては、ステップＳ４１１において確立した第１通信セッションとステップＳ４０３において出力先に特定された装置とを関連付ける。ここでは、ステップＳ４１１において確立した第１通信セッションのセッション識別情報と、ステップＳ４０３において出力先に特定された装置のアドレス情報とを含む出力先関連付情報を生成する。そして、生成された出力先関連付情報をＨＤＤ４０４に記憶し（ステップＳ４１７）、処理をステップＳ４１７Ａに進める。
【０１６５】
ステップＳ４１７Ａにおいては、所定時間間隔で第１通信セッションを介してダミー信号を送信する設定をし、処理をステップＳ４０２に戻す。停止期間内に、第１通信セッションを介してダミー信号を所定時間間隔で送信するようにし、第１通信セッションの相手先の装置によって第１通信セッションが切断されないようにするためである。
【０１６６】
一方、ステップＳ４１８においては、ステップＳ４０３において出力先に特定された装置に対応する出力先関連付情報がＨＤＤ４０４に記憶されているか否かを判断する。具体的には、ＨＤＤ４０４に記憶されている出力先関連付情報のうちから、ステップＳ４０３において出力先に特定された装置のアドレス情報を含む出力先関連付情報を抽出できたならば処理をステップＳ４１９に進めるが、そうでなければ処理をステップＳ４２８に進める。ステップＳ４２８においては、エラーとして処理をステップＳ４０２に戻す。例えば、ステップＳ４０２においてアクセス元に特定された装置に、出力先に接続できない旨を通知するメッセージを送信する。
【０１６７】
ステップＳ４１９においては、ステップＳ４０３において出力先に特定された装置に対応する第１通信セッションを特定する。ステップＳ４１８において抽出された出力先関連付情報に含まれるセッション識別情報で特定される第１通信セッションを特定する。
【０１６８】
そして、ステップＳ４１９において特定された第１通信セッションを介して送信中のジョブが存在するか否かを判断する（ステップＳ４２０）。送信中のジョブが存在するならば、処理をステップＳ４２１に進めるが、そうでなければ処理をステップＳ４２２に進める。別のアクセス元に対して装置制御処理が実行される場合に、同じ第１通信セッションを介してジョブが送信される場合があるからである。ステップＳ４２１においては、処理対象のジョブを送信する順番を最後に設定し、処理をステップＳ４２３に進める。ステップＳ４２２においては、処理対象のジョブを、ステップＳ４１９において特定された第１通信セッションを介して送信し、処理をステップＳ４２３に進める。
【０１６９】
ステップＳ４２３においては、ステップＳ４１９において特定された第１通信セッションを介して実行結果を受信したか否かを判断する。実行結果を受信するまで待機状態となり（ステップＳ４２３でＮＯ）、実行結果を受信したならば（ステップＳ４２３でＹＥＳ）、処理をステップＳ４２４に進める。
【０１７０】
ステップＳ４２４においては、ステップＳ４２１において送信順が割り当てられたジョブの内に、未だ送信されていないジョブが存在するか否かを判断する。未送信のジョブが存在すれば、処理をステップＳ４２５に進めるが、そうでなければ処理をステップＳ４２６に進める。ステップＳ４２５においては、送信順が最も先のジョブを、ステップＳ４１９において特定された第１通信セッションを介して送信し、処理をステップＳ４２３に戻す。
【０１７１】
ステップＳ４２６においては、現在日時が停止期間外か否かを判断する。現在日時が停止期間でなければ処理をステップＳ４２７に進めるが、現在日時が停止期間内であれば処理をステップＳ４０２に戻す。ステップＳ４２７においては、ステップＳ４１９において特定された第１通信セッションを切断し、処理をステップＳ４０２に戻す。
【０１７２】
以上説明したように、本実施の形態におけるクラウドサーバー４００は、管理サーバー３００がサービスの提供をしない期間を示す停止期間を取得し、停止期間でない場合に、接続先のアドレス情報としてクラウドサーバー４００のアドレス情報と、接続元のアドレス情報としてＭＦＰ１００のアドレス情報とを含む接続要求を、管理サーバー３００に送信し、管理サーバー３００から転送される接続要求を受信するゲートウェイ装置２００から接続要求に含まれる接続先のアドレス情報と同じアドレス情報を含む確立要求を受信する場合にゲートウェイ装置２００との間で第１通信セッションを確立し、第１通信セッションが確立された後に、ＭＦＰ１００に送信したジョブが実行された結果をＭＦＰ１００から取得することことに応じて、停止期間でないことを条件に第１通信セッションを切断するが、停止期間の場合には停止期間が終了した後に第１通信セッションを切断する。また、クラウドサーバー４００は、停止期間にアクセス元のユーザーが特定される場合、第１通信セッションを介して、停止期間に特定されたユーザーによる操作に基づいてジョブをＭＦＰ１００に送信する。このため、管理サーバー３００がサービスを提供しない停止期間の間は、停止期間の前に確立した第１通信セッションを用いて、ＭＦＰ１００にジョブを送信することができる。換言すれば、管理サーバー３００がサービスを提供しない間に、ファイアーウォールの外部のクラウドサーバー４００からファイアーウォールの内部のＭＦＰ１００にジョブを送信することができる。
【０１７３】
また、クラウドサーバー４００は、ファイアーウォールの外部の管理サーバー３００に接続要求を送信すれば、ファイアーウォールの内部のゲートウェイ装置２００との間で第１通信セッションを確立し、ゲートウェイ装置２００は制御対象装置であるＭＦＰ１００と第２通信セッションを確立し、第１通信セッションと第２通信セッションを用いてクラウドサーバー３００とＭＦＰ１００との間の通信を中継する。このため、クラウドサーバー４００は、ファイアーウォールの外部の管理サーバー３００に、ファイアーウォールの内部のＭＦＰ１００のアドレス情報を含む接続要求を送信すれば、ファイアーウォールの内部のＭＦＰ１００にジョブを送信することができる。
【０１７４】
また、クラウドサーバー４００は、管理サーバー３００がサービスを提供しない停止期間に複数のユーザーが特定される場合、第１通信セッションを介して、複数のユーザーによる操作にそれぞれ基づいた複数のジョブをＭＦＰ１００に順に送信するので、複数のジョブをＭＦＰ１００に送信することができる。
【０１７５】
また、クラウドサーバー４００は、第１通信セッションを確立している間、第１通信セッションのセッション識別情報とＭＦＰ１００，１００Ａ，１００Ｂのうちからユーザーにより指定された出力先関連付情報をＨＤＤ４０４に記憶し、停止期間にユーザーが特定される場合、特定されたユーザーによりＭＦＰ１００，１００Ａ，１００Ｂのうちから指定された装置のアドレス情報と関連付けられたセッション識別情報が存在することを条件に、換言すれば、ユーザーにより指定されたアドレス情報を含む出力先関連付情報がＨＤＤ４０４に記憶されていることを条件に、そのセッション識別情報で特定される第１通信セッションを介して、ユーザーによる操作に基づいたジョブを送信する。このため、停止期間にＭＦＰ１００，１００Ａ，１００Ｂのうちからユーザーにより選択された制御対象装置にジョブを送信することができる。
【０１７６】
また、クラウドサーバー４００は、ＨＤＤ４０４に記憶されている出力先関連付情報によって、１つのアドレス情報に複数のセッション識別情報が関連付けられている場合、複数のセッション識別情報のうちから選択された１つ以外のセッション識別情報で特定される第１通信セッションを切断するので、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれに１つの第１通信セッションでジョブを送信することができる。その結果、ネットワーク資源を有効に利用することができる。
【０１７７】
＜変形例＞
上述した情報処理システム１においては、クラウドサーバー４００は、管理サーバー３００を経由して、ゲートウェイ装置２００との間で第１通信セッションと確立し、ＭＦＰ１００との間でトンネル接続するようにし、そのトンネル接続が確立されている間に、管理サーバー３００がサービスを提供しない状態になると、そのサービスを提供しない停止期間の間だけトンネル接続を維持するようにした。したがって、停止期間が開始される前にトンネル接続されて確立されている第１通信セッションのみが維持される。
【０１７８】
変形例における情報処理システム１においては、ゲートウェイ装置２００において、停止期間が開始する前にトンネル接続された通信履歴を記憶しておき、停止期間が開始すると、通信履歴に基づいてトンネル接続を再構築し、停止期間の間だけ再構築したトンネル接続を維持するようにしたものである。以下、変形例における情報処理システム１について、上述した情報処理システム１と異なる点を主に説明し、重複する説明は繰り返さない。
【０１７９】
図１２は、変形例における管理サーバー３００が備えるＣＰＵ３０１の機能の一例を示す図である。図１２を参照して、図６に示した機能と異なる点は、グローバル確立部３５３から停止期間通知部３８７が削除された点、サーバー側確立部３５１に停止期間通知部３７９が追加された点である。その他の機能は図６に示した機能と同じなので、ここでは説明を繰り返さない。停止期間通知部３７９は、管理サーバー３００がサービスの提供を停止する停止期間を、ゲートウェイ装置２００に通知する。停止期間通知部３７９は、サーバー側確立部３５１によってゲートウェイ装置２００との間で常時接続セッションが確立された段階で、停止期間をゲートウェイ装置２００に送信する。なお、停止期間通知部３７９は、任意のタイミングで、例えば、ゲートウェイ装置２００からの要求に応じて、停止期間を送信するようにしてもよい。
【０１８０】
図１３は、変形例におけるゲートウェイ装置が備えるＣＰＵの機能の一例を示すブロック図である。図１３を参照して、図７に示した機能と異なる点は、通信履歴記憶部２８３が追加された点、第１通信制御部２５０に停止期間取得部２８１および第３セッション確立部２８５が追加された点、第２通信制御部２６０に第４セッション確立部２８７が追加された点、実績情報転送部２５４が実績情報転送部２５４Ａに変更された点、である。その他の機能は、図７に示した機能と同じである。
【０１８１】
停止期間取得部２８１は、管理サーバー３００から停止期間を取得する。第１通信部２０５が管理サーバー３００から停止期間を受信すると、受信された停止期間を取得する。停止期間取得部２８１は、取得された停止期間を、実績情報転送部２５４Ａ、第３セッション確立部２８５および第４セッション確立部２８７に出力する。なお、停止期間取得部２８１は、常時接続セッションを介して停止期間を受信してもよいし、別のセッションを確立して停止期間を受信してもよい。
【０１８２】
実績情報転送部２５４Ａは、停止期間取得部２８１から停止期間が入力され、実績情報収集部２６２から実績情報が入力される。実績情報転送部２５４Ａは、現在日時が停止期間内でない場合、実績情報収集部２６２から実績情報が入力されることに応じて、常時接続セッションを介して管理サーバー３００に実績情報を送信する。実績情報転送部２５４Ａは、現在日時が停止期間内の場合、実績情報収集部２６２から入力される実績情報を次に常時接続セッションが確立されるまでＲＡＭ２０３に一時記憶し、現在日時が停止期間を経過すると、次に常時接続セッションが確立されることに応じて、ＲＡＭ２０３に一時記憶された実績情報を、常時接続セッションを介して管理サーバー３００に送信する。
【０１８３】
通信履歴記憶部２８３は、トンネル接続要求受信部２５５がトンネル接続要求を管理サーバー３００から受信するごとに、トンネル接続要求に含まれる接続要求を取得する。接続要求は、接続元のアドレス情報と、接続先のアドレス情報とを含む。通信履歴記憶部２８３は、接続要求に基づいて通信履歴を生成し、生成された通信履歴を第３セッション確立部２８５および第４セッション確立部２８７に出力する。例えば、通信履歴記憶部２８３は、通信履歴をフラッシュメモリ２０４に記憶することにより、通信履歴を第３セッション確立部２８５および第４セッション確立部２８７に出力する。ただし、通信履歴記憶部２８３は、トンネル接続要求に含まれる接続元のアドレス情報と接続先のアドレス情報とが同じ通信履歴が既にフラッシュメモリ２０４に記憶されている場合には、その通信履歴をフラッシュメモリ２０４に記憶しない。通信履歴は、接続要求に含まれる接続元のアドレス情報と、接続先のアドレス情報と、を含む。ここでは、接続要求が、接続元のアドレス情報としてＭＦＰ１００のアドレス情報を含み、接続先のアドレス情報としてクラウドサーバー４００のアドレス情報を含む場合を例に説明する。接続要求に含まれるクラウドサーバー４００のアドレス情報は、第１セッション確立部２５９が第１通信セッションを確立するために用いる。接続要求に含まれるＭＦＰ１００のアドレス情報は、第２セッション確立部２６３が第２通信セッションを確立するために用いる。したがって、通信履歴は、中継部２７０によって、第１通信セッションと第２通信セッションを用いてクラウドサーバー４００とＭＦＰ１００との間の通信を中継したことを示す。
【０１８４】
第３セッション確立部２８５は、停止期間取得部２８１から停止期間が入力され、通信履歴記憶部２８３から通信履歴が入力される。第３セッション確立部２８５は、停止期間が開始することに応じて、第１通信部２０５を制御して、通信履歴に含まれる接続先のアドレス情報、ここではクラウドサーバー４００のアドレス情報に基づいて、クラウドサーバー４００のネットワークアドレスを特定し、クラウドサーバー４００に確立要求を送信し、クラウドサーバー４００との間で通信セッションを確立する。以下、第３セッション確立部２８５がクラウドサーバー４００に送信する確立要求を、再確立要求という。再確立要求は、通信履歴に含まれる接続元のアドレス情報、ここではＭＦＰ１００のアドレス情報を含む。ここで、第３セッション確立部２８５がクラウドサーバー４００との間で確立する通信セッションを第３通信セッションという。第３セッション確立部２８５は、第３通信セッションを確立すると、第３通信セッションを識別するためのセッション識別情報と通信履歴を識別するための履歴識別情報との組を中継部２７０に出力する。第３セッション確立部２８５は、第３通信セッションを確立した後、停止期間が終了するまで、第３通信セッションを維持し、停止期間が終了すると、第３通信セッションを切断する。具体的には、第３セッション確立部２８５は、現在日時が停止期間内の場合、所定時間間隔で、第３通信セッションを介してダミー信号をクラウドサーバー４００に送信する。クラウドサーバー４００は、ダミー信号を受信している間は、第３通信セッションを切断しないので、停止期間の間は第３通信セッションが維持される。
【０１８５】
第３セッション確立部２８５は、通信履歴記憶部２８３から複数の通信履歴が入力される場合、停止期間が開始することに応じて、第１通信部２０５を制御して、複数の通信履歴ごとに、その通信履歴に含まれる接続先のアドレス情報、ここではクラウドサーバー４００のアドレス情報に基づいて決定されるクラウドサーバー４００のネットワークアドレスを用いて再確立要求を送信し、クラウドサーバー４００との間で複数の第３通信セッションを確立し、第３通信セッションを識別するためのセッション識別情報と通信履歴を識別するための履歴識別情報との組を中継部２７０に出力する。第３セッション確立部２８５は、複数の第３通信セッションを確立した後、停止期間が終了するまで、複数の第３通信セッションを維持し、停止期間が終了すると、複数の第３通信セッションの全てを切断する。
【０１８６】
第４セッション確立部２８７は、停止期間取得部２８１から停止期間が入力され、通信履歴記憶部２８３から通信履歴が入力される。第４セッション確立部２８７は、停止期間が開始することに応じて、第２通信部２０６を制御して、通信履歴に含まれる接続元のアドレス情報、ここではＭＦＰ１００のアドレス情報を用いて、ＭＦＰ１００に通信セッションの確立要求を送信し、ＭＦＰ１００との間で通信セッションを確立する。ここで第４セッション確立部２６３がＭＦＰ１００との間で確立する通信セッションを第４通信セッションという。第４通信セッションは、特に限定するものではないが、ＬＡＮ３において用いられる通信プロトコルに準じた通信セッションであればよい。第４セッション確立部２８７は、第４通信セッションを識別するためのセッション識別情報と通信履歴の履歴識別情報との組を中継部２７０に出力する。第４セッション確立部２８７は、第４通信セッションを確立した後、停止期間が終了するまで、第４通信セッションを維持し、停止期間が終了すると、第４通信セッションを切断する。具体的には、第４セッション確立部２８７は、現在日時が停止期間内の場合、所定時間間隔で、第４通信セッションを介してダミー信号を、通信履歴に含まれる接続元のアドレス情報で特定される装置、ここではＭＦＰ１００に送信する。ＭＦＰ１００は、ダミー信号を受信している間は、第４通信セッションを切断しないので、停止期間の間は第４通信セッションが維持される。
【０１８７】
第４セッション確立部２８７は、通信履歴記憶部２８３から複数の通信履歴が入力される場合、停止期間が開始することに応じて、第２通信部２０６を制御して、複数の通信履歴ごとに、その通信履歴に含まれる接続元のアドレス情報を用いて、第４通信セッションを確立し、第４通信セッションを識別するためのセッション識別情報と通信履歴の履歴識別情報との組を中継部２７０に出力する。第４セッション確立部２８７は、複数の第４通信セッションを確立した後、停止期間が終了するまで、複数の第４通信セッションを維持し、停止期間が終了すると、複数の第４通信セッションのすべてを切断する。
【０１８８】
中継部２７０は、第３セッション確立部２８５から第３通信セッションのセッション識別情報と履歴識別情報の組が入力され、第４セッション確立部２６３から第４通信セッションのセッション識別情報と履歴識別情報の組が入力される。中継部２７０は、通信履歴記憶部２８３によって複数の通信履歴が記憶される場合には、第３セッション確立部２８５から第３通信セッションのセッション識別情報と履歴識別情報の組が通信履歴の数だけ入力され、第４セッション確立部２６３から第４通信セッションのセッション識別情報と履歴識別情報の組が通信履歴の数だけ入力される。中継部２７０は、履歴識別情報が同じ第３通信セッションと第４通信セッションとを関連付ける。
【０１８９】
例えば、第１の通信履歴が、接続先のアドレス情報としてクラウドサーバー４００のアドレス情報と、接続元のアドレス情報としてＭＦＰ１００のアドレス情報とを含む場合、第３セッション確立部２８５は第１の通信履歴に基づいてクラウドサーバー４００と第３通信セッションを確立し、第４セッション確立部２８５は第１の通信履歴に基づいてＭＦＰ１００と第４通信セッションを確立する。また、第２の通信履歴が、接続先のアドレス情報としてクラウドサーバー４００のアドレス情報と、接続元のアドレス情報としてＭＦＰ１００Ａのアドレス情報とを含む場合、第３セッション確立部２８５は第２の通信履歴に基づいてクラウドサーバー４００と第３通信セッションを確立し、第４セッション確立部２８５は第２の通信履歴に基づいてＭＦＰ１００Ａと第４通信セッションを確立する。
【０１９０】
中継部２７０は、第１の通信履歴に基づいてクラウドサーバー４００と確立した第３通信セッションと、第１の通信履歴に基づいてＭＦＰ１００と確立した第４通信セッションとを用いて、クラウドサーバー４００とＭＦＰ１００との通信を中継する。第１の通信履歴に基づいてクラウドサーバー４００と確立した第３通信セッションを介してクラウドサーバー４００から受信されるデータを、第１の通信履歴に基づいてＭＦＰ１００と確立した第４通信セッションを介してＭＦＰ１００に送信し、第１の通信履歴に基づいてＭＦＰ１００と確立した第４通信セッションを介してＭＦＰ１００から受信されるデータを、第１の通信履歴に基づいてクラウドサーバー４００と確立した第３通信セッションを介してクラウドサーバー４００に送信する。また、中継部２７０は、第２の通信履歴に基づいてクラウドサーバー４００と確立した第３通信セッションと、第２の通信履歴に基づいてＭＦＰ１００Ａと確立した第４通信セッションとを用いて、クラウドサーバー４００とＭＦＰ１００Ａとの通信を中継する。第２の通信履歴に基づいてクラウドサーバー４００と確立した第３通信セッションを介してクラウドサーバー４００から受信されるデータを、第２の通信履歴に基づいてＭＦＰ１００Ａと確立した第４通信セッションを介してＭＦＰ１００Ａに送信し、第２の通信履歴に基づいてＭＦＰ１００Ａと確立した第４通信セッションを介してＭＦＰ１００Ａから受信されるデータを、第２の通信履歴に基づいてクラウドサーバー４００と確立した第３通信セッションを介してクラウドサーバー４００に送信する。中継部２７０が、クラウドサーバー４００と、ＭＦＰ１００またはＭＦＰ１００Ａとの間で通信を中継することにより、クラウドサーバー４００とＭＦＰ１００との間、またはクラウドサーバー４００とＭＦＰ１００Ａとの間でデータの送受信が可能となる。
【０１９１】
図１４は、変形例におけるクラウドサーバーが備えるＣＰＵの機能の一例を示すブロック図である。図１４を参照して、図８に示した機能と異なる点は、停止期間取得部４５１が削除された点、出力先指定受付部４５５、ジョブ送信部４６１、セッション決定部４５９、クラウド側セッション確立部４７１が、出力先指定受付部４５５Ａ、ジョブ送信部４６１Ａ、セッション決定部４５９Ａ、クラウド側セッション確立部４７１Ａに変更された点である。クラウド側セッション確立部４７１Ａは、クラウド側セッション確立部４７１の接続情報関連付部４８１が接続状態関連付部４８１Ａに変更された点、再確立部４９１が追加された点である。その他の機能は図８に示した機能と同じなのでここでは説明を繰り返さない。
【０１９２】
出力先指定受付部４５５Ａは、アクセス元特定部４５３からアクセス元識別情報が入力され、クラウド側セッション確立部４７１からグルーバルセッションのセッション識別情報が入力され、ジョブ生成部４５７からアクセス元識別情報とジョブＩＤとの組が入力される。出力先指定受付部４５５Ａは、アクセス元識別情報で特定されるアクセス元から受信される操作に従って、出力先を特定する。出力先指定受付部４５５Ａは、ゲートウェイ装置２００と、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかと、を選択可能な装置選択画面を、通信部３０５を制御して、アクセス元特定部４５３から入力されるアクセス元識別情報で特定されるアクセス元のＰＣに送信する。出力先指定受付部４５５は、アクセス元のＰＣからゲートウェイ装置２００と、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかと、を選択する操作を受信することに応じて、選択された装置を出力先として特定する。
【０１９３】
出力先指定受付部４５５は、アクセス元特定部４５３から複数のアクセス元識別情報が入力される場合、ジョブ生成部４５７からアクセス元識別情報とジョブＩＤとの組が複数入力される。出力先指定受付部４５５は、複数の組ごとに、その組に含まれるアクセス元識別情報で特定されるアクセス元から受信される操作に従って、出力先を特定する。従って、出力先指定受付部４５５は、複数のアクセス元識別情報にそれぞれ対応する複数のジョブＩＤごとに、そのジョブＩＤに対応する出力先を特定する。
【０１９４】
出力先指定受付部４５５Ａは、ジョブＩＤに対応する出力先を特定することに応じて、特定した出力先のアドレス情報と、ジョブＩＤとを含む接続指示をクラウド側セッション確立部４７１およびセッション決定部４５９Ａに出力する。出力先指定受付部４５５Ａは、複数のジョブＩＤにそれぞれに対応する複数の出力先を特定する場合、複数のジョブＩＤごとに、そのジョブＩＤに対応する出力先のアドレス情報と、そのジョブＩＤとを含む接続指示をクラウド側セッション確立部４７１およびセッション決定部４５９Ａに出力する。ここでは、アクセス元特定部４５３によって出力先にＭＦＰ１００が選択され、出力先のアドレス情報が、ゲートウェイ装置２００の装置識別情報とＭＦＰ１００の装置識別情報とを含む場合を例に主に説明する。
【０１９５】
再確立部４９１は、通信部３０５を制御して、再確立要求を受信することに応じて、再確立要求を送信してきた装置との間で、通信セッションを確立する。再確立部４９１が受信する再確立要求は、送信先のアドレス情報を含むのに対して、確立要求受信部４７７が受信する確立要求は送信先のアドレス情報を含まない点で異なる。また、確立要求受信部４７７が、接続要求部４７５から接続先のアドレス情報および接続元のアドレス情報が入力された後に、確立要求を受信することに応じて、確立要求を送信してきた装置との間で、通信セッションを確立する。これに対して、再確立部４９１は、接続要求部４７５から接続先のアドレス情報および接続元のアドレス情報が入力されることなく、換言すれば、接続要求部４７５が管理サーバー３００にトンネル接続を要求しない場合に、再確立要求を受信することに応じて、再確立要求を送信してきた装置との間で、通信セッションを確立する点で異なる。再確立要求は、接続要求に含まれる接続元のアドレス情報を含む。ここでは、再確立要求がゲートウェイ装置２００から送信される場合、再確立部４９１は、ゲートウェイ装置２００との間で通信セッションを確立する。ここで、ゲートウェイ装置２００との間で確立される通信セッションは第３通信セッションである。再確立部４９１は、ゲートウェイ装置２００との間で確立された第３通信セッションのセッション識別情報と、再確立要求に含まれる接続元のアドレス情報との組を、接続状態関連付部４８１Ａに出力する。
【０１９６】
再確立部４９１は、複数の再確立要求を受信する場合、複数の再確立要求ごとに、その再確立要求を送信してきた装置との間で、第３の通信セッションを確立する。再確立部４９１は、複数の再確立要求にそれぞれ対応する複数の第３通信セッションを確立する場合、複数の再確立要求ごとに、その再確立要求に対応して確立した第３通信セッションのセッション識別情報と、その再確立要求に含まれる接続元のアドレス情報との組を、接続状態関連付部４８１Ａに出力する。
【０１９７】
接続状態関連付部４８１Ａは、再確立部４９１から第３通信セッションのセッション識別情報と、接続元のアドレス情報との組が入力されることに応じて、第３通信セッションのセッション識別情報と、接続元のアドレス情報とを関連付け、第３通信セッションのセッション識別情報と、接続元のアドレス情報との組をセッション決定部４５９Ａに出力する。具体的には、接続状態関連付部４８１Ａは、第３通信セッションのセッション識別情報と、接続元のアドレス情報とを含む出力先関連付情報をＨＤＤ４０４に記憶する。接続状態関連付部４８１Ａは、再確立部４９１から第３通信セッションのセッション識別情報と、接続元のアドレス情報との組が複数入力される場合、複数の組それぞれに対応する出力先関連付情報をＨＤＤ４０４に記憶する。
【０１９８】
セッション決定部４５９Ａは、出力先指定受付部４５５から接続指示が入力されることに応じて、ＨＤＤ４０４に記憶されている１以上の出力先関連付情報のうちから、接続元のアドレス情報が接続指示に含まれる出力先のアドレス情報と同じ出力先関連付情報を抽出し、抽出した出力先関連付情報に含まれる第３通信セッションのセッション識別情報、接続指示に含まれる出力先のアドレス情報およびジョブＩＤの組をジョブ送信部４６１Ａに出力する。セッション決定部４５９は、出力先指定受付部４５５から複数の接続指示が入力される場合、複数の接続指示ごとに、ＨＤＤ４０４に記憶されている出力先関連付情報のうちから、接続元のアドレス情報が、その接続指示に含まれる出力先のアドレス情報と同じ出力先関連付情報を抽出し、抽出した出力先関連付情報に含まれる第３通信セッションのセッション識別情報、その接続指示に含まれる出力先のアドレス情報およびジョブＩＤの組をジョブ送信部４６１に出力する。
【０１９９】
ジョブ送信部４６１Ａは、セッション決定部４５９Ａから第３通信セッションのセッション識別情報と、ジョブＩＤと、出力先のアドレス情報と、の組が入力されることなく、確立要求受信部４７７から第１通信セッションのセッション識別情報と、ジョブＩＤと、出力先のアドレス情報と、の組が入力される場合、確立要求受信部４７７から入力される第１通信セッションのセッション識別情報と、ジョブＩＤと、出力先のアドレス情報との組のうちからジョブ生成部４５７から入力されるジョブのジョブＩＤを含む組を特定し、特定した組に含まれるセッション識別情報を特定する。ジョブ送信部４６１は、通信部３０５を制御して、ジョブ生成部４５７から入力されるジョブを、特定されたセッション識別情報で特定される第１通信セッションを介して、ゲートウェイ装置２００に送信する。ジョブ送信部４６１は、ジョブを送信することに応じて、ジョブＩＤとセッション識別情報との組を実行結果受信部４６３に出力する。
【０２００】
ジョブ送信部４６１Ａは、停止期間送信部４６５Ａを含む。停止期間送信部４６５Ａは、セッション決定部４５９Ａから第３通信セッションのセッション識別情報と、ジョブＩＤと、出力先のアドレス情報と、の組が入力される場合、セッション決定部４５９から入力される第３通信セッションのセッション識別情報と、ジョブＩＤと、出力先のアドレス情報との組のうちからジョブ生成部４５７から入力されるジョブのジョブＩＤを含む組を特定し、特定した組に含まれるセッション識別情報を特定する。停止期間送信部４６５Ａは、通信部３０５を制御して、ジョブ生成部４５７から入力されるジョブを、特定されたセッション識別情報で特定される第３通信セッションを介して、ゲートウェイ装置２００に送信する。停止期間送信部４６５Ａは、ジョブを送信することに応じて、ジョブＩＤとセッション識別情報との組を実行結果受信部４６３に出力することなく、第３通信セッションを介して実行結果を受信する。
【０２０１】
停止期間送信部４６５Ａは、セッション決定部４５９Ａから第３通信セッションのセッション識別情報と、ジョブＩＤと、出力先のアドレス情報と、の組が１以上入力された後に、ジョブ生成部４５７から複数のジョブが入力される場合がある。停止期間送信部４６５Ａは、ジョブ生成部４５７から複数のジョブが入力される場合、複数のジョブそれぞれに対して、第３通信セッションのセッション識別情報を特定する。停止期間送信部４６５Ａは、複数のジョブそれぞれに対してセッション識別情報を関連付ける。そして、停止期間送信部４６５Ａは、同一のセッション識別情報が関連付けられたジョブが複数の場合、通信部４０５を制御して、複数のジョブを順に、それらのジョブに関連付けられたセッション識別情報で特定される第３通信セッションを介して送信する。出力先指定受付部４５５において受け付けられた出力先の装置識別情報で特定される装置との間では、１つの第３通信セッションしか確立されていない。このため、複数のジョブを単一の通信セッションで送信するために、複数のジョブを並列して送信するのではなく、順に送信する。
【０２０２】
停止期間送信部４６５Ａによってゲートウェイ装置２００に第３通信セッションを介して送信されるジョブは、ゲートウェイ装置２００によって第３通信セッションを介して受信され、第４通信セッションを介して、ＭＦＰ１００に送信される。ＭＦＰ１００においては、ゲートウェイ装置２００から受信されるジョブを実行し、実行結果をゲートウェイ装置２００に送信する。ゲートウェイ装置２００においては、ＭＦＰ１００から第４通信セッションを介して受信される実行結果を、第３通信セッションを介してクラウドサーバー４００に送信する。
【０２０３】
図１５は、変形例における中継処理の流れの一例を示すフローチャートである。変形例における中継処理は、ゲートウェイ装置２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、フラッシュメモリ２０４またはＣＤ−ＲＯＭ２０９Ａに記憶された変形例における中継プログラムを実行することにより、ＣＰＵ２０１により実行される処理である。図１５を参照して、図９に示した中継処理と異なる点は、ステップＳ０１とステップＳ０２との間にステップＳ０１Ａが追加された点、ステップＳ０３とステップＳ０４との間にステップＳ０３Ａが追加された点、ステップＳ１１とステップＳ１５との間にステップＳ１１Ａが追加された点、ステップＳ２０が追加された点である。その他の処理は、図９に示した中継処理と同じなのでここでは説明を繰り返さない。
【０２０４】
図１５を参照して、ステップＳ０１Ａにおいては、停止期間を取得する。第１通信部２０５が管理サーバー３００から停止期間を受信すると、その停止期間を取得する。ステップＳ０３Ａにおいては、停止期間が開始したか否かを判断する。現在の日時がステップＳ０１Ａにおいて取得された停止期間の開始日時ならば停止期間が開始したと判断する。停止期間が開始したならば処理をステップＳ２０に進めるが、そうでなければ処理をステップＳ０４に進める。
【０２０５】
ステップＳ２０においては、停止期間中継処理を実行し、処理をステップＳ１５に進める。ステップＳ１１Ａにおいては、通信履歴を記憶する。通信履歴は、ステップＳ０４において受信されたトンネル接続要求に含まれる接続要求に含まれる接続元のアドレス情報と接続先のアドレス情報とを含む。ただし、接続要求に含まれる接続元のアドレス情報と接続先のアドレス情報と同じ接続元のアドレス情報と接続先のアドレス情報とを含む通信履歴が既に記憶されている場合には、通信履歴を記憶することなく、処理をステップＳ１５に進める。
【０２０６】
図１６は、停止期間中継処理の流れの一例を示すフローチャートである。停止期間中継処理は、図１５のステップＳ２０において実行される処理である。ステップＳ２０において停止期間中継処理が実行される前の段階で、フラッシュメモリ２０４に通信履歴が記憶されている。図１６を参照して、ＣＰＵ２０１は、フラッシュメモリ２０４に記憶されている通信履歴のうちから１つを処理対象に選択する（ステップＳ２１）。そして、選択された通信履歴に基づいて第３通信セッションおよび第４通信セッションが確立されているか否かを判断する（ステップＳ２２）。具体的には、選択された通信履歴に含まれる接続先のアドレス情報と同じアドレス情報を用いて後述するステップＳ２４において第３通信セッションが確立されており、かつ、選択された通信履歴に含まれる接続元のアドレス情報と同じアドレス情報を用いて後述するステップＳ２５において第４通信セッションが確立されているか否かを判断する。そのような第３通信セッションおよび第４通信セッションが確立されていれば処理をステップＳ２７に進めるが、そのような第３通信セッションおよび第４通信セッションが確立されていなければ処理をステップＳ２３に進める。
【０２０７】
ステップＳ２３においては、履歴情報に含まれる接続先のアドレス情報に基づいて再確立要求を送信する。接続先のアドレス情報がクラウドサーバー４００のアドレス情報であれば、クラウドサーバー４００のアドレス情報からクラウドサーバー４００のネットワークアドレスを決定し、第１通信部２０５を制御して、クラウドサーバー４００に再確立要求を送信する。再確立要求は、ステップＳ２１において選択された通信履歴に含まれる接続元のアドレス情報を含む。
【０２０８】
次のステップＳ２４においては、再確立要求を送信した装置、ここではクラウドサーバー４００との間で第３通信セッションを確立し、処理をステップＳ２５に進める。ステップＳ２５においては、履歴情報に含まれる接続元のアドレス情報に基づいて確立要求を送信し、確立要求を送信した装置との間で第４通信セッションを確立する。接続元のアドレス情報がＭＦＰ１００のアドレス情報であれば、第２通信部２０６を制御して、ＭＦＰ１００との間で第４通信セッションを確立する。また、接続元のアドレス情報がＭＦＰ１００Ａのアドレス情報であれば、第２通信部２０６を制御して、ＭＦＰ１００Ａとの間で第４通信セッションを確立する。
【０２０９】
ステップＳ２６においては、第３通信セッションと第４通信セッションとを接続する。具体的には、第３通信セッションと第４通信セッションとを用いて、接続元のアドレス情報で特定される装置と接続先のアドレス情報で特定される装置との間の通信を中継する。例えば、ステップＳ２４において確立された第３通信セッションがクラウドサーバー４００との間で確立され、ステップＳ２５において確立された第４通信セッションがＭＦＰ１００との間で確立された場合、クラウドサーバー４００から第３通信セッションを介してデータを受信し、受信されたデータをクラウドサーバー４００に代わってＭＦＰ１００に第４通信セッションを介して送信する。また、ＭＦＰ１００から実行結果を第４通信セッションを介して受信する場合、実行結果を、クラウドサーバー４００にＭＦＰ１００に代わって第３通信セッションを介して送信する。実行結果は、ＭＦＰ１００のネットワークアドレスを含む。また、ステップＳ２４において確立された第３通信セッションがクラウドサーバー４００との間で確立され、ステップＳ２５において確立された第４通信セッションがＭＦＰ１００Ａとの間で確立された場合、クラウドサーバー４００から第３通信セッションを介してデータを受信し、受信されたデータをクラウドサーバー４００に代わってＭＦＰ１００Ａに第４通信セッションを介して送信する。また、ＭＦＰ１００Ａから実行結果を第４通信セッションを介して受信する場合、実行結果を、クラウドサーバー４００にＭＦＰ１００Ａに代わって第３通信セッションを介して送信する。実行結果は、ＭＦＰ１００Ａのネットワークアドレスを含む。
【０２１０】
ステップＳ２７においては、フラッシュメモリ２０４に記憶された通信履歴の内に処理対象に選択されていない通信履歴が存在するか否かを判断する。未処理の通信履歴が存在するならば処理をステップＳ２１に戻し、そのような通信履歴が存在しなければ処理をステップＳ２７Ａに進める。ステップＳ２７Ａにおいては、ダミー信号を送信し、処理をステップＳ２８に進める。ステップＳ２４において確立された第３通信セッションおよびステップＳ２５において確立された第４通信セッションそれぞれを介して、ダミー信号を送信する。第３通信セッションおよび第４通信セッションそれぞれの相手先の装置によって第３通信セッションおよび第４通信セッションが切断されないようにするためである。複数の第３通信セッションが確立されている場合には、複数の第３通信セッションのすべてにダミー信号を送信し、複数の第４通信セッションが確立されている場合には、複数の第４通信セッションのすべてにダミー信号を送信する。
【０２１１】
ステップＳ２８においては、停止期間が終了したか否かを判断する。停止期間が終了したならば処理をステップＳ２９に進めるが、停止期間が終了していなければ処理をステップＳ２７Ａに戻す。ステップＳ２９においては、ステップＳ２４において確立した第３通信セッションを切断する。複数の第３通信セッションが確立されている場合には、複数の第３通信セッションの全てを切断する。ステップＳ３０においては、ステップＳ２５において確立した第４通信セッションを切断し、処理を中継処理に戻す。複数の第４通信セッションが確立されている場合には、複数の第４通信セッションの全てを切断する。
【０２１２】
図１７は、変形例における装置制御処理の流れの一例を示すフローチャートである。図１７に示す装置制御処理は、アクセス元が１つの場合にＣＰＵ４０１により実行される処理を示しているが、アクセス元が複数の場合には、ＣＰＵ４０１は、アクセス元の数それぞれに対して、図１７に示す装置制御処理を実行する。図１７を参照して、ＣＰＵ４０１は、アクセス元を特定したか否かを判断する（ステップＳ４３１）。アクセス元を特定したならば（ステップＳ４３１でＹＥＳ）、処理をステップＳ４３２に進めるが、そうでなければ処理をステップＳ４４１に進める。次のステップＳ４３２においては、出力先を特定する。アクセス元のＰＣを操作するユーザーにより特定される装置を出力先に特定する。以下、ＭＦＰ１００が出力先に特定される場合を例に説明する。
【０２１３】
そして、ステップＳ４３２において出力先に特定された装置を管理する管理サーバー３００との間でグローバルセッションを確立するための確立要求を、通信部３０５を制御して管理サーバー３００に送信する（ステップＳ４３３）。出力先に特定された装置を管理する装置は、出力先に特定された装置の装置識別情報を送信してきた装置であり、ここでは、管理サーバー３００である。次のステップＳ４３４においては、管理サーバー３００との間の通信セッションとしてグローバルセッションを確立したか否かを判断する。グローバルセッションを確立したならば処理をステップＳ４３５に進めるが、そうでなければ処理をステップＳ４４７に進める。グローバルセッションを確立できない場合は、例えば、管理サーバー３００がサービスの提供を停止している停止期間の場合である。
【０２１４】
次のステップＳ４３５においては、接続要求を管理サーバー３００に、ステップＳ４３３において確立されたグローバルセッションを介して送信する。ここでは、接続要求は、接続元のアドレス情報としてＭＦＰ１００のアドレス情報と、接続先のアドレス情報としてクラウドサーバー４００のアドレス情報を含む場合を例に説明する。クラウドサーバー４００のアドレス情報は、ＵＲＬであり、クラウドサーバー４００のネットワークアドレス（ドメイン名）、ウェブページの識別子、クラウドサーバー４００が実行するジョブの識別子（ジョブＩＤ）、および待ち受けポートのポート番号を含む。
【０２１５】
次のステップＳ４３６においては、通信セッションの確立要求を受信したか否かを判断する。ここでの確立要求は、ステップＳ４３５において管理サーバー３００に送信した接続要求に対応する。ステップＳ４３５において管理サーバー３００に送信した接続要求は、接続先のアドレス情報としてクラウドサーバー４００のアドレス情報を含む。ここでは、確立要求は、クラウドサーバー４００のアドレス情報をＵＲＬとしているので、そのＵＲＬへのアクセスである。このため、ステップＳ４３６においては、ステップＳ４３５において管理サーバー３００に送信した接続要求に対応する確立要求として、ゲートウェイ装置２００から受信する通信セッションの確立要求を受信する。通信セッションの確立要求を受信するまで待機状態となり（ステップＳ４３６でＮＯ）、通信セッションの確立要求を受信したならば（ステップＳ４３６でＹＥＳ）、処理をステップＳ４３７に進める。
【０２１６】
ステップＳ４３７においては、通信セッションの確立要求に対応する第１通信セッションを確立し、処理をステップＳ４３８に進める。通信セッションの確立要求を送信してきた装置、ここではゲートウェイ装置２００との間で第１通信セッションを確立する。
【０２１７】
ステップＳ４３８においては、ジョブを第１通信セッションを介して送信する。ジョブの送信先はゲートウェイ装置２００であるが、上述したように第１通信セッションを介して送信されるジョブは、ゲートウェイ装置２００とＭＦＰ１００との間で確立された第２通信セッションを介して、ゲートウェイ装置２００によってＭＦＰ１００に送信される。このため、ジョブは実際にはＭＦＰ１００に送信される。
【０２１８】
次のステップＳ４３９においては、実行結果を第１通信セッションを介して受信したか否かを判断する。実行結果を受信するまで待機状態となり（ステップＳ４３９でＮＯ）、実行結果を受信したならば（ステップＳ４３９でＹＥＳ）、処理をステップＳ４４０に進める。ステップＳ４４０においては、ステップＳ４３７において確立した第１通信セッションを切断し、処理をステップＳ４３１に戻す。
【０２１９】
ステップＳ４４１においては、通信部４０５がゲートウェイ装置２００から再確立要求を受信したか否かを判断する。再確立要求を受信したならば処理をステップＳ４４２に進めるが、そうでなければ処理をステップＳ４４５に進める。ステップＳ４４２においては、再確立要求を送信してきたゲートウェイ装置２００との間で第３通信セッションを確立する。そして、第３通信セッションと出力先とを関連付ける（ステップS４４３）。出力先は、再確立要求に含まれる接続元のアドレス情報で特定される装置である。具体的には、第３通信セッションのセッション識別情報と接続元のアドレス情報とを含む出力先関連付情報を生成する。そして、出力先関連付情報をＨＤＤ４０４に記憶し（ステップＳ４４４）、処理をステップＳ４３１に戻す。
【０２２０】
一方、ステップＳ４４５においては、ステップＳ４４２において確立された第３通信セッションが切断されたか否かを判断する。ゲートウェイ装置２００が第３通信セッションを切断する場合がある。第３通信セッションが切断されたならば処理をステップＳ４４６に進めるが、そうでなければ処理をステップＳ４３１に戻す。ステップＳ４４６においては、ＨＤＤ４０４に記憶された出力先関連付情報のうち切断された第３通信セッションのセッション識別情報と含む出力先関連付情報をＨＤＤ４０４から削除し、処理をステップＳ４３１に戻す。
【０２２１】
処理がステップＳ４４７に進む場合、ステップＳ４３４において、管理サーバー３００との間でグローバルセッションが確立できない場合である。換言すれば、現在日時が、管理サーバー３００においてサービスが提供されない停止期間内の場合である。ステップＳ４４７においては、ステップＳ４３２において特定される出力先に対応する出力先関連付情報が存在するか否かを判断する。ＨＤＤ４０４に含まれる出力先関連付情報のうちから、ステップＳ４３２において特定される出力先の装置のアドレス情報と同じアドレス情報を含む出力先関連付情報を抽出し、そのような出力先関連付情報が抽出できたならば、処理をステップＳ４４８に進めるが、そうでなければ処理をステップＳ４５３に進める。ステップＳ４５３においては、エラーとして処理をステップＳ４３１に戻す。例えば、ステップＳ４３１においてアクセス元に特定された装置である出力先に接続できない旨を通知するメッセージを送信する。
【０２２２】
ステップＳ４４８においては、第３通信セッションを特定する。ステップＳ４４７において抽出された出力先関連付情報に含まれるセッション識別情報で識別される第３通信セッションを特定する。そして、ステップＳ４４８において特定された第３通信セッションを介して送信中のジョブが存在するか否かを判断する（ステップＳ４４９）。送信中のジョブが存在するならば、処理をステップＳ４５０に進めるが、そうでなければ処理をステップＳ４５４に進める。別のアクセス元に対して装置制御処理が実行される場合に、同じ第３通信セッションを介してジョブが送信される場合があるからである。ステップＳ４５０においては、処理対象のジョブを送信する順番を最後に設定し、処理をステップＳ４５１に進める。ステップＳ４５４においては、処理対象のジョブを、ステップＳ４４８において特定された第３通信セッションを介して送信し、処理をステップＳ４５１に進める。
【０２２３】
ステップＳ４５１においては、ステップＳ４４８において特定された第３通信セッションを介して実行結果を受信したか否かを判断する。実行結果を受信するまで待機状態となり（ステップＳ４５１でＮＯ）、実行結果を受信したならば（ステップＳ４５１でＹＥＳ）、処理をステップＳ４５２に進める。
【０２２４】
ステップＳ４５２においては、ステップＳ４４９において送信順が割り当てられたジョブの内に、未だ送信されていないジョブが存在するか否かを判断する。未送信のジョブが存在すれば、処理をステップＳ４５５に進めるが、そうでなければ処理をステップＳ４３１に戻す。ステップＳ４５５においては、送信順が最も先のジョブを、ステップＳ４４８において特定された第３通信セッションを介して送信し、処理をステップＳ４５１に戻す。
【０２２５】
以上説明したように変形例におけるゲートウェイ装置２００は、管理サーバー３００がサービスの提供をしない期間を示す停止期間を取得し、接続要求を管理サーバー３００から受信することに応じて、クラウドサーバー４００との間で第１通信セッションを確立し、接続要求に含まれる接続元のアドレス情報および接続先のアドレス情報を含む通信履歴を記憶し、停止期間が開始することに応じて、通信履歴に含まれる接続元のアドレス情報を含む再確立要求をクラウドサーバー４００に送信し、クラウドサーバー４００との間で第３通信セッションを確立し、停止期間が開始することに応じて、ＭＦＰ１００，１００Ａ，１００Ｂのうち通信履歴に含まれる接続元のアドレス情報で特定される装置、例えば、ＭＦＰ１００との間で第４通信セッションを確立し、第３通信セッションが確立されている間、第３通信セッションと第４通信セッションとを用いて、クラウドサーバー４００とＭＦＰ１００との間の通信を中継する。一方、クラウドサーバー３００は、ゲートウェイ装置２００から再確立要求が受信されることに応じて、ゲートウェイ装置２００との間で第３通信セッションを確立し、第３通信セッションが確立されている場合、第３通信セッションを介して、ジョブをＭＦＰ１００に送信する。このため、管理サーバー３００がサービスを提供しない間に、ファイアーウォールの外部のクラウドサーバー４００からファイアーウォールの内部のＭＦＰ１００，１００Ａ，１００Ｂにジョブを送信することができる。
【０２２６】
また、変形例におけるクラウドサーバー４００は、第３通信セッションが確立されている間に複数のユーザーが特定される場合、第３通信セッションを介して、複数のユーザーによる操作にそれぞれ基づいた複数のジョブをＭＦＰ１００，１００Ａ，１００Ｂのうちユーザーにより指定された装置、例えばＭＦＰ１００に順に送信するので、複数のジョブをＭＦＰ１００に送信することができる。
【０２２７】
また、変形例におけるゲートウェイ装置２００は、第３通信セッションを確立すると、第３通信セッションのセッション識別情報と、ＭＦＰ１００，１００Ａ，１００Ｂのうちユーザーにより指定された装置、例えばＭＦＰ１００のアドレス情報とを関連付けた出力先関連付情報をＨＤＤ４０４に記憶し、第３通信セッションが確立されている間にアクセス元のユーザーが特定される場合、特定されたユーザーにより指定されたＭＦＰ１００のアドレス情報と関連付けられたセッション識別情報が存在することを条件に、そのセッション識別情報で特定される第３通信セッションを介して、ユーザーによる操作に基づいたジョブを送信する。このため、ＭＦＰ１００，１００Ａ，１００Ｂのうちからユーザーにより選択された装置にジョブを送信することができる。
【０２２８】
また、変形例におけるゲートウェイ装置２００は、接続要求に含まれる接続元のアドレス情報および接続先のアドレス情報を含む通信履歴をＨＤＤ４０４に記憶するが、接続元のアドレス情報と接続先のアドレス情報とが同じ複数の通信履歴が存在する場合、複数の通信履歴に対して１つの再確立要求を送信する。このため、１つの接続元のアドレス情報で特定される装置、例えばＭＦＰ１００と１つの接続先のアドレス情報で特定されるクラウドサーバー４００との間で１つの第３通信セッションが確立されるので、クラウドサーバー４００を、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれと、１つの第３通信セッションで接続することができる。その結果、ネットワーク資源を有効に利用することができる。
【０２２９】
なお、上述した実施の形態においては、情報処理システム１について説明したが、図９に示した中継処理をゲートウェイ装置２００に実行させ、図１０に示したトンネル接続支援処理を管理サーバー３００に実行させ、図１１に示した装置制御処理をクラウドサーバー４００に実行させる装置制御方法、または、図１１に示した装置制御処理をクラウドサーバー４００を制御するＣＰＵ４０１に実行させる装置制御プログラムとして捉えることができるのは言うまでもない。また、図１５に示した中継処理をゲートウェイ装置２００に実行させ、図１６に示したトンネル接続支援処理を管理サーバー３００に実行させ、図１７に示した装置制御処理をクラウドサーバー４００に実行させる装置制御方法、または、図１５および図１６に示した中継処理をゲートウェイ装置２００を制御するＣＰＵ２０１に実行させる中継プログラムおよび図１７に示した装置制御処理をクラウドサーバー４００を制御するＣＰＵ４０１に実行させる装置制御プログラムとして捉えることができるのは言うまでもない。
【０２３０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２３１】
１  情報処理システム、３  ＬＡＮ、５  インターネット、１００，１００Ａ，１００Ｂ  ＭＦＰ、１１０  メイン回路、１１１  ＣＰＵ、１１２  通信Ｉ／Ｆ部、１１３  ＲＯＭ、１１４  ＲＡＭ、１１５  ＨＤＤ、１１６  ファクシミリ部、１１７  外部記憶装置、１１８  ＣＤ−ＲＯＭ、１２０  自動原稿搬送装置、１２０  原稿読取部、１３０  原稿読取部、１４０  画像形成部、１５０  給紙部、１５５  後処理部、１６０  操作パネル、１６１  表示部、１６３  操作部、１６５  タッチパネル、１６７  ハードキー部、２００  ゲートウェイ装置、２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  フラッシュメモリ、２０５  第１通信部、２０６  第２通信部、２０９  外部記憶装置、３００  管理サーバー、３０１  ＣＰＵ、３０２  ＲＯＭ、３０３  ＲＡＭ、３０４  ＨＤＤ、３０５  通信部、３０６  表示部、３０７  操作部、３０９  外部記憶装置、４００  クラウドサーバー、４０１  ＣＰＵ、４０２  ＲＯＭ、４０３  ＲＡＭ、４０４  ＨＤＤ、４０５  通信部、４０６  表示部、４０７  操作部、４０９  外部記憶装置、、２５０  第１通信制御部、２５１  常時接続セッション確立部、２５３  装置識別情報送信部、２５５  トンネル接続要求受信部、２５７  接続結果送信部、２５９  第１セッション確立部、２６０  第２通信制御部、２６１  接続装置情報取得部、２６３  第２セッション確立部、２７０  中継部、２８１  停止期間取得部、２８３  通信履歴記憶部、２８５  第３セッション確立部、２８７  第４セッション確立部、３５１  サーバー側確立部、３５３  グローバル確立部、３７１  装置識別情報受信部、３７３  トンネル接続要求部、３７５  接続結果受信部、３７７  装置情報管理部、３７９  停止期間通知部、３８１  装置識別情報通知部、３８３  接続要求受信部、３８５  接続確認部、３８７  停止期間通知部、４５１  停止期間取得部、４５３  アクセス元特定部、４５５  出力先指定受付部、４５７  ジョブ生成部、４５９，４５９Ａ  セッション決定部、４６１，４６１Ａ  ジョブ送信部、４６３  実行結果受信部、４６５  順次送信部、４６５Ａ  停止期間送信部、４７１，４７１Ａ  クラウド側セッション確立部、４７３  クラウド側セッション確立部、４７３  トンネル接続部、４７５  接続要求部、４７７  確立要求受信部、４７９  クラウド側切断部、４８１，４８１Ａ  接続状態関連付部、４９１  再確立部。
【図１】
2016105230.tif 000003
【図２】
2016105230.tif 000004
【図３】
2016105230.tif 000005
【図４】
2016105230.tif 000006
【図５】
2016105230.tif 000007
【図６】
2016105230.tif 000008
【図７】
2016105230.tif 000009
【図８】
2016105230.tif 000010
【図９】
2016105230.tif 000011
【図１０】
2016105230.tif 000012
【図１１】
2016105230.tif 000013
【図１２】
2016105230.tif 000014
【図１３】
2016105230.tif 000015
【図１４】
2016105230.tif 000016
【図１５】
2016105230.tif 000017
【図１６】
2016105230.tif 000018
【図１７】
2016105230.tif 000019