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