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