(57)【要約】【課題】クラウドシステムにおいてデータ処理性能を向上させる。【解決手段】中継サーバ２００のデータ処理部２３７は、クライアント機器１００から受信した受信データに対してデータ容量を削減する中間処理を実行して、終端サーバ３００Ａに送信する。データ処理部２３７は、クライアント機器が要求する処理の種別に応じた内容の中間処理を受信データに対して実行する。中間処理により容量の削減された第１の処理済データを終端サーバ３００に送信するので、クライアント機器と終端サーバとの間の転送速度を安価に向上させることができ、クラウドシステムにおけるデータ処理性能が向上する。【選択図】図１１
2016177444.tif 000002
【特許請求の範囲】
【請求項１】
クライアント機器と終端サーバとに接続される中継サーバであって、
前記クライアント機器との間、及び前記終端サーバとの間で夫々通信する通信手段と、
前記クライアント機器から送信される処理対象の電子データを、前記通信手段を介して受信する第１の受信手段と、
前記クライアント機器が要求する処理の種別に応じて、前記第１の受信手段で受信した前記電子データに対してデータの容量を削減する削減処理を実行するデータ処理手段と、
前記データ処理手段で前記削減処理がされた第１の処理済データを、前記通信手段を介して前記終端サーバに送信する送信手段と、
前記送信手段で送信した第１の処理済データに対して前記終端サーバが所定の処理を実行することにより得られた第２の処理済データを、前記終端サーバから前記通信手段を介して受信する第２の受信手段と、
前記第２の受信手段で受信した第２の処理済データと、前記第１の受信手段で受信した前記電子データとを合成する合成手段と
を有することを特徴とする中継サーバ。
【請求項２】
前記データ処理手段は、前記削減処理として、前記処理対象の電子データであるカラーの画像データに対して、モノクロの画像データに変換する処理を実行することを特徴とする請求項１に記載の中継サーバ。
【請求項３】
前記データ処理手段は、前記削減処理として、前記処理対象の電子データである画像データに対して、画像解像度を低下させる処理を実行することを特徴とする請求項１に記載の中継サーバ。
【請求項４】
前記データ処理手段は、前記削減処理として、前記処理対象の電子データである映像データに対して、時間解像度を低下させる処理を実行することを特徴とする請求項１に記載の中継サーバ。
【請求項５】
前記データ処理手段は、前記削減処理として、前記処理対象の電子データのｈａｓｈ値を算出する処理を実行することを特徴とする請求項１に記載の中継サーバ。
【請求項６】
前記データ処理手段は、前記削減処理として、前記処理対象の電子データである画像データに対して、該画像データの特徴量を算出する処理を実行することを特徴とする請求項１に記載の中継サーバ。
【請求項７】
前記終端サーバが前記中継サーバから受信した前記第１の処理済データに対して所定の処理を実行した結果、該第１の処理済データに異常が検知された場合に、
前記データ処理手段は、前記削減処理として、前記処理対象の電子データである未加工のデータから異常部分を含むデータを抽出する処理を実行することを特徴とする請求項１に記載の中継サーバ。
【請求項８】
クライアント機器と中継サーバとに接続される終端サーバであって、
前記クライアント機器との間、及び前記中継サーバとの間で夫々通信する通信手段と、
前記クライアント機器からの電子データのアップロードリクエストに基づいて、利用可能な前記中継サーバと前記終端サーバの中から該電子データのアップロード先とすべきサーバを判定する判定手段と、
前記判定手段で判定したサーバの情報を、前記通信手段を介して前記クライアント機器に送信する第１の送信手段と、
前記電子データのアップロード先とすべきサーバが前記中継サーバとして前記判定手段で判定されたとき、前記中継サーバが前記電子データに対してデータの容量を削減する削減処理を実行して得られた第１の処理済データを受信し、受信した第１の処理済データに対して所定の処理を実行して得た第２の処理済みデータを前記中継サーバに送信する第２の送信手段と
を備えることを特徴とする終端サーバ。
【請求項９】
前記判定手段は、前記クライアント機器が要求する処理の種別に基づいて、前記電子データのアップロード先とすべきサーバを判定することを特徴とする請求項８に記載の終端サーバ。
【請求項１０】
前記判定手段は、前記電子データのデータサイズに基づいて該電子データのアップロード先とすべきサーバを判定することを特徴とする請求項８に記載の終端サーバ。
【請求項１１】
前記判定手段は、前記クライアント機器の位置情報に基づいて、前記電子データのアップロード先とすべきサーバを判定することを特徴とする請求項８に記載の終端サーバ。
【請求項１２】
前記判定手段は、ユーザごとにあらかじめ設定された位置情報に基づいて、前記電子データのアップロード先とすべきサーバを判定することを特徴とする請求項８に記載の終端サーバ。
【請求項１３】
前記判定手段は、ユーザの利用履歴情報に基づいて、前記電子データのアップロード先とすべきサーバを判定することを特徴とする請求項８に記載の終端サーバ。
【請求項１４】
前記判定手段は、前記中継サーバの状態に基づいて、前記電子データのアップロード先とすべきサーバを判定することを特徴とする請求項８に記載の終端サーバ。
【請求項１５】
クライアント機器と中継サーバと終端サーバとが互いに接続された情報処理システムであって、
前記クライアント機器と前記中継サーバと前記終端サーバとの間で夫々通信する通信手段と、
前記クライアント機器からの電子データのアップロードリクエストに基づいて、利用可能な前記中継サーバと前記終端サーバの中から該電子データのアップロード先とすべきサーバを判定する判定手段と、
前記判定手段で判定したサーバの情報を、前記通信手段を介して前記クライアント機器に送信する送信手段と、
を備えたことを特徴とする情報処理システム。
【請求項１６】
クライアント機器と中継サーバと終端サーバとが互いに接続された情報処理システムであって、
前記クライアント機器と前記中継サーバと前記終端サーバとの間で夫々通信する通信手段と、
前記クライアント機器からの電子データのダウンロードリクエストに基づいて、該電子データを記憶している前記中継サーバと前記終端サーバの中から該電子データのダウンロード元とすべきサーバを判定する判定手段と、
前記判定手段で判定したサーバの情報を、前記通信手段を介して前記クライアント機器に送信する送信手段と、
を備えたことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継サーバ、終端サーバ、及び情報処理システムに関する。
【背景技術】
【０００２】
近年、ユーザが直接操作する情報処理装置（クライアント機器）においてアプリケーションプログラムを実行する代わりに、インターネットなどのネットワーク上で提供されているソフトウェアを利用して所望の処理結果を得るクラウドサービスが知られている。
クラウドサービスにおいて、クライアント機器はデータをその処理リクエストと共にクラウドサービスを提供する終端サーバに対して送信し、終端サーバは処理した結果をクライアント機器に対してレスポンスする。仮に、終端サーバがクライアント機器から遠隔地に設置されている場合には終端サーバからの応答時間が増大するため、データの転送時間が長くなる。
特許文献１には、クラウドサービスのようなネットワークを利用したデータ処理の応答性能を向上させるため、終端サーバで実行する処理と同様の処理を、近隣の中継サーバにおいても実行する情報処理システムが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし特許文献１に記載の発明では、中継サーバの処理能力によっては、クラウドシステムのデータ処理性能の向上を十分に図れないという問題がある。
本発明は上述の事情に鑑みてなされたものであり、データ処理性能を向上させることを目的とする。
【課題を解決するための手段】
【０００４】
上記の課題を解決するために、請求項１に記載の発明は、クライアント機器と終端サーバとに接続される中継サーバであって、前記クライアント機器との間、及び前記終端サーバとの間で夫々通信する通信手段と、前記クライアント機器から送信される処理対象の電子データを、前記通信手段を介して受信する第１の受信手段と、前記クライアント機器が要求する処理の種別に応じて、前記第１の受信手段で受信した前記電子データに対してデータの容量を削減する削減処理を実行するデータ処理手段と、前記データ処理手段で前記削減処理がされた第１の処理済データを、前記通信手段を介して前記終端サーバに送信する送信手段と、前記送信手段で送信した第１の処理済データに対して前記終端サーバが所定の処理を実行することにより得られた第２の処理済データを、前記終端サーバから前記通信手段を介して受信する第２の受信手段と、前記第２の受信手段で受信した第２の処理済データと、前記第１の受信手段で受信した前記電子データとを合成する合成手段とを有することを特徴とする。
【発明の効果】
【０００５】
本発明によれば、データ処理性能を向上させることができる。
【図面の簡単な説明】
【０００６】
【図１】本発明の一実施形態に係る情報処理システムのシステム構成図である。
【図２】機器とサーバの間のレイテンシを示す模式図である。
【図３】ＭＦＰのハードウェア構成の一例を示すブロック図である。
【図４】ＭＦＰの機能構成の一例を示すブロック図である。
【図５】サーバのハードウェア構成の一例を示すブロック図である。
【図６】中継サーバの機能構成の一例を示すブロック図である。
【図７】終端サーバの機能構成の一例を示すブロック図である。
【図８】モバイル機器の機能構成の一例を示すブロック図である。
【図９】ＯＣＲ処理の一例を示すシーケンス図である。
【図１０】ＯＣＲ処理の他の例を示すシーケンス図である。
【図１１】ファイルアップロード時の中継サーバの動作の一例を示したフローチャートである。
【図１２】クライアント機器から中継サーバにファイルをアップロードする場合の終端サーバの動作を示したフローチャートである。
【図１３】図１２のサブルーチン「最適アップロード先判定処理」を示すフローチャートである。
【図１４】印刷ファイルをモバイル機器からサーバにアップロードする場合の処理の一例を示すシーケンス図である。
【図１５】クラウド上に保存された印刷ファイルをダウンロードして印刷する場合の処理の一例を示すシーケンス図である。
【図１６】印刷ファイルアップロード時の中継サーバの動作の一例を示したフローチャートである。
【図１７】ＭＦＰがプリントファイルをダウンロードするときの中継サーバの動作の一例を示したフローチャートである。
【図１８】クライアント機器がサーバからファイルをダウンロードする場合の終端サーバの動作を示したフローチャートである。
【図１９】図１８のサブルーチン「ダウンロード元判定処理」を示したフローチャートである。
【発明を実施するための形態】
【０００７】
本発明は、クライアント機器と終端サーバとの間に中継サーバを配置し、クライアント機器から送信されるデータに対して中継サーバがデータ容量を削減する中間処理を実行して終端サーバに転送する点に特徴がある。
上記記載の本発明の特徴について、以下の図面を用いて詳細に解説する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
【０００８】
〔図１：システム構成図〕
図１は、本発明の一実施形態に係る情報処理システムのシステム構成図である。
情報処理システムは、米国（ＵＳ：第一国の一例）に設置された終端サーバ３００Ａと、日本国（ＪＰ：第二国の一例）に設置された画像形成装置等のＭＦＰ（Multifunction Peripheral）１００Ａ、ノートＰＣやスマートフォン等のモバイル機器１００Ｂ、中継サーバ２００、及び終端サーバ３００Ｂとを含んで構成されている。情報処理システムを構成する各装置は、夫々インターネットＮを介して接続されている。
【０００９】
終端サーバ３００ＡはクラウドサービスＡを提供するサーバであり、終端サーバ３００ＢはクラウドサービスＢを提供するサーバである。クラウドサービスＡとクラウドサービスＢは、互いに異なる運営者が運営しているものであってもよいし、同一の運営者が運営しているものであってもよい。また、クラウドサービスＡとクラウドサービスＢは、互いに認証連携されていることが望ましいが、認証連携されていなくともよい。
中継サーバ２００は、ＭＦＰ１００Ａやモバイル機器１００Ｂ等のクライアント機器とインターネットＮを介して接続されているが、これらはＬＡＮ（Local Area Network）によって接続されていてもよい。但し、中継サーバ２００に対してＭＦＰ１００Ａ等をＬＡＮのような小規模ネットワークによって接続するよりも、インターネットＮのような大規模ネットワークを介して接続した方が、より多くのＭＦＰ１００Ａ等（例えば日本全国に設置されたＭＦＰ等）によって中継サーバ２００を共有することが可能となる。従って、後者の方が中継サーバ２００の設置に係る費用をトータルでは安価に押さえることができて好適である。
なお、図中、終端サーバ３００Ａと終端サーバ３００Ｂを単一のサーバとして記載しているが、各サーバは複数のサーバ群によって構成されてもよい。また、終端サーバ３００Ａと終端サーバ３００Ｂにはファイアーウォール（Firewall）などのネットワーク機器や共有記憶装置なども含まれる。
中継サーバ２００は、ファイアーウォール（Firewall）などのネットワーク機器や共有記憶装置などのシステムと連携して動作する。また、図中、中継サーバ２００が複数台のサーバから構成されるように記載しているが、中継サーバ２００は単一のサーバから構成してもよい。
【００１０】
以下の説明においては、クライアント機器については主としてＭＦＰ１００Ａに基づいて説明するが、モバイル機器１００Ｂについても同様である。
【００１１】
〔表１：ＤＮＳ名対応表〕
2016177444.tif 000003
【００１２】
表１には、図１に示した各装置とＤＮＳ名（サーバの情報）の対応例を示している。
終端サーバＡ、Ｂ（終端サーバ３００Ａ、３００Ｂに対応）と中継サーバ（中継サーバ２００に対応）は、インターネット上でＤＮＳ名前解決できることを想定している。また、中継サーバは複数台のサーバで構成されていることを想定しているので、代表のＤＮＳ名「med.jp.example.com」により、複数の中継サーバを指すことができるものとしている。
なお、ＭＦＰについてはインターネット上で名前解決できる必要はない。例えば、ＭＦＰがある企業に設置されている場合、当該ＭＦＰについてはその企業内での名前解決ができればよく、さらには当該ＭＦＰにアクセスする手段としてＤＮＳ名を使わない場合は、名前解決できなくてもよい。
【００１３】
〔図２：機器間のレイテンシ〕
図２は、機器とサーバの間のレイテンシ（転送遅延：ＲＴＴ；Round-Trip Time；ラウンドトリップタイム）を示す模式図である。
レイテンシを変化させる要因には種々あるが、大多数は転送距離に基づくものである。レイテンシは転送距離に伴って変化し、転送距離が長くなるほど大きくなる。
図示するように、ＪＰ内での機器間の転送時間は１０［ｍｓ］と殆どレイテンシがない。一方、ＪＰとＵＳとの間で通信する場合は、２００［ｍｓ］と大きなレイテンシがある。
一般的に、一国内（例：ＵＳ内、ＪＰ内）で通信を行う場合は、他国との間（例：ＵＳ−ＪＰ間）で通信を行う場合よりもレイテンシは低くなる。しかし、ＵＳ内での通信は、ＪＰ内での通信に比べて転送距離が大きいため、一国内の通信であっても無視できないレイテンシとなる場合がある。
本発明の実施形態においては、ＭＦＰ１００Ａ等のクライアント機器からレイテンシの大きい終端サーバ３００Ａに対してデータを送信する場合に、レイテンシの小さい中継サーバ２００を中継する。中継サーバ２００はデータ容量を削減する処理を実行して、得られたデータを終端サーバに送信する。
【００１４】
〔処理時間とデータサイズと転送速度の関係〕
図１に示したＭＦＰ１００Ａ等のクライアント機器から中継サーバ２００を介して終端サーバ３００（３００Ａ又は３００Ｂ）に対して情報を転送し、終端サーバ３００にて処理した結果を、中継サーバ２００を介してＭＦＰ１００Ａが受信する場合を考える。この場合の、クライアント機器がデータを送信してから処理後のデータを受信するまでの処理時間は以下の通りである。
処理時間
＝（終端サーバでの処理時間）＋（中継サーバと終端サーバ間の転送時間）
＋（中継サーバでの処理時間）＋（クライアント機器と中継サーバの転送時間）
【００１５】
上記転送時間には情報のアップロードに要する時間とダウンロードに要する時間を含む。転送時間は以下のように算出される。
転送時間
＝（アップロード時間）＋（ダウンロード時間）
＝（アップロードデータ容量／アップロード転送速度）
＋（ダウンロードデータ容量／ダウンロード転送速度）
【００１６】
また、ＴＣＰ通信の場合の転送速度は以下のように算出される。
転送速度＝（TCP Window（登録商標） size）／（ノード間のレイテンシ（RTT））
【００１７】
TCP Window（登録商標） sizeにより変化する通信上の特徴、或いは通信環境によってTCP Window（登録商標） sizeが受ける制約は以下の通りである。
（１）TCP Window（登録商標） sizeを大きくすると転送速度を大きくできるが、パケットを消失したときの再送コストが高くなる。逆に言えば、TCP Window（登録商標） sizeを小さくすると、パケットを消失したときの再送コストは小さくなるが、転送速度が小さくなる。
（２）TCP Window（登録商標） sizeは、受信側のメモリ容量が小さい場合は大きくできない。
（３）TCP Window（登録商標） sizeは、モバイル機器による通信など、通信品質が安定しないときには大きくできない。
【００１８】
一般的に、TCP Window（登録商標） sizeはノイズの大きさなどの通信環境により変化し、ノイズが大きい通信環境（例えばモバイル機器による通信）では大きくできない。一方、レイテンシは、図２にて説明したように転送距離が大きくなると増大するため、転送距離が大きくなると転送速度が低下する。仮に、転送距離を一定とした場合に転送時間を短縮するには、転送するデータの容量を減らすことが有効である。
そこで、本発明の実施形態においては、中継サーバにおいて転送するデータの容量を削減する処理を実行して、データの転送時間を短縮する。
ここではＴＣＰについての説明としたが、一般的に、ＵＤＰなどの場合にも誤りの訂正のための機構をアプリケーションレイヤが担う必要があり、誤り訂正をする場合には、ＴＣＰのときと同様に転送速度はノード間のレイテンシが増加すると低下する。
【００１９】
〔図３：ＭＦＰのハードウェア構成〕
図３は、ＭＦＰのハードウェア構成の一例を示すブロック図である。
ＭＦＰ１００Ａ（画像形成装置）は、ＭＦＰにおける主たる制御動作を行うコントローラ１０１にオペレーションパネル１１３とファクスコントロールユニット１１６とプロッタ８１とスキャナ８２とその他のハードウェアリソース８３とが接続されて構成されている。
コントローラ１０１は、画像処理用途向けのＩＣであるＡＳＩＣ１０２にブリッジとしてのＮＢ１０５を介して一般制御用のＩＣであるＣＰＵ１０６が接続される。
ＮＢ１０５のＰＣＩバス９ａに、周辺デバイス等との接続を行うブリッジであるＳＢ１０８と、ネットワーク通信を制御するＮＩＣ１０９と、ＵＳＢディスクとして扱うことでデータを取り込むことができるＵＳＢ（Universal Serial Bus）ターゲット１１０と、ＩＥＥＥ802.11bインターフェースを提供するＩＥＥＥ802.11b  １１１ａと、ＩＥＥＥ1394インターフェースを提供するＩＥＥＥ1394  １１１ｂと、他のＵＳＢターゲット（例えば、ＵＳＢメモリ１１４ｄ）と接続し大容量の画像データの送受信を可能とするＵＳＢホスト１１４と、ＳＤ（Secure Digital memory card）カード等のメモリカード１１５ｄとの間でプログラムおよびデータの入出力を行うメモリカードインターフェース（Ｉ／Ｆ）１１５とが接続される。
ＡＳＩＣ１０２に記憶装置としてのローカルメモリ（ＭＥＭ−Ｃ）１０３とＨＤＤ（Hard Disk Drive）１０４とが接続され、ＮＢ１０５に記憶装置としてのシステムメモリ（ＭＥＭ−Ｐ）１０７が接続されて構成されている。
【００２０】
〔図４：ＭＦＰの機能構成〕
図４は、ＭＦＰの機能構成の一例を示すブロック図である。
ＭＦＰ１００Ａは、通信部１２１と、通信制御部１２２と、主制御部１２３と、記憶部１２４と、操作表示部１２５と、プロット部１２６と、スキャナ部１２７とを備える。
通信部１２１は、インターネットＮを介して中継サーバ２００や終端サーバ３００との間でデータを送受信する。通信部１２１は、図３のＮＩＣ１０９を利用して実現される。
通信制御部１２２は、通信部１２１を制御し、通信部１２１を介して受信したデータを主制御部１２３に転送する。通信制御部１２２は、図３のＣＰＵ１０６を利用して実現される。
主制御部１２３は、装置の各部の動作を制御する。主制御部１２３は、図３のＣＰＵ１０６を利用して実現される。
【００２１】
記憶部１２４は、主制御部１２３が実行する各種のプログラムを記憶し、また、プログラムの実行により発生したデータを記憶する。記憶部１２４は、ＭＥＭ−Ｃ１０３やＨＤＤ１０４を利用して実現される。
操作表示部１２５は、ユーザインターフェースであり、ユーザから各種のデータ入力を受け付けると共に、ユーザに対して各種のデータを表示する。操作表示部１２５は、オペレーションパネル１１３を利用して実現される。
プロット部１２６は、ＰＤＬファイル等の印刷データを印刷用紙に印刷する。プロット部１２６は、プロッタ８１を利用して実現される。
スキャナ部１２７は、原稿画像を読み取ってスキャンデータを生成する。スキャナ部１２７は、スキャナ８２を利用して実現される。
【００２２】
〔図５：サーバ、及びモバイル機器のハードウェア構成〕
図５は、サーバのハードウェア構成の一例を示すブロック図である。中継サーバと終端サーバのハードウェア構成は同一である。また、クライアント機器の一つであるノートＰＣ等のモバイル機器のハードウェア構成の主要部はサーバと同様であるため、代表的にサーバについてのみ説明する。
サーバ１１は、バスに接続された、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、ディスプレイ３２０が接続されたグラフィックボード３０５、キーボード・マウス３０６、メディアドライブ３０７、及び、ネットワーク通信部３０８を有する。
ＣＰＵ３０１はＨＤＤ３０４に記憶されたプログラムをＲＡＭ３０３に展開して実行し、各部位を制御して入出力を行ったり、データの加工を行ったりする。ＲＯＭ３０２にはＢＩＯＳやＯＳをＨＤＤ３０４からＲＡＭ３０３に読み出すスタートプログラムが記憶されている。
ＨＤＤ３０４は、不揮発性のメモリであればよくＳＳＤ（Solid State Drive）などでもよい。
ＨＤＤ３０４はＯＳ、デバイスドライバ、及び、後述する機能を提供するプログラムを記憶している。
ディスプレイ３２０にはプログラムが指示し、グラフィックボード３０５が作成したＧＵＩ画面が表示される。
【００２３】
キーボード・マウス３０６はユーザの操作を受け付ける入力装置である。
メディアドライブ３０７はコンパクトディスク、ＤＶＤ及びブルーレイディスクなどの光学メディアにデータを読み書きする。また、フラッシュメモリなどのメモリカードにデータを読み書きしてもよい。
ネットワーク通信部３０８は、例えばＬＡＮに接続するためのイーサネット（登録商標）カードである。ＴＣＰ／ＩＰ（ＵＤＰ／ＩＰ）やアプリケーション層のプロトコルの処理はＯＳやＨＤＤ３０４に記憶されたプログラムが行う。アプリケーション層のプロトコルは各種あるが、例えばＳＮＭＰ（Simple Network Management Protocol）、ＨＴＴＰ、ＦＴＰ、ＳＭＢ（Server Message Block）等がある。
ＨＤＤ３０４に記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルで、コンピュータで読み取り可能な記録メディアに記録して配布される。また、プログラムは、サーバからインストール可能な形式又は実行可能な形式のファイルで配布される。
ここでは、物理的なサーバ機器について記載しているが、サーバはもちろん、仮想サーバ（Virtual server）であってもよい。
【００２４】
〔図６：中継サーバの機能構成〕
図６は、中継サーバの機能構成の一例を示すブロック図である。
中継サーバ２００は、下流通信部２３１（第一通信部）と、上流通信部２３２（第二通信部）と、通信制御部２３３と、認証制御部２３４と、データ処理制御部２３５と、プログラム記憶部２３６と、データ処理部２３７と、データ記憶部２３８と、を備える。
下流通信部２３１は、インターネットＮを介してＭＦＰ１００Ａ等のクライアント機器との間でデータを送受信する。上流通信部２３２は、インターネットＮを介して終端サーバ３００との間でデータを送受信する。例えば、中継サーバ２００は、ＭＦＰ１００Ａ等のクライアント機器からのデータを下流通信部２３１において受信し、上流通信部２３２を介して終端サーバ３００等へデータを転送する。なお、説明の便宜上、下流通信部２３１と上流通信部２３２を分けて記載しているが、下流通信部２３１と上流通信部２３２が実現する各機能は、物理的、論理的に共用されていてもよい。下流通信部２３１と上流通信部２３２は、図５のネットワーク通信部３０８を利用して実現される。
通信制御部２３３は、下流通信部２３１と上流通信部２３２とを制御する。また、下流通信部２３１と上流通信部２３２が受信したデータを認証制御部２３４とデータ処理制御部２３５へ転送する。通信制御部２３３は、図５のＣＰＵ３０１を利用して実現される。
【００２５】
認証制御部２３４は、ＭＦＰ１００Ａと終端サーバ３００が正当なものであることを確認する。認証制御部２３４は、図５のＣＰＵ３０１を利用して実現される。
ＭＦＰ１００Ａの認証において、中継サーバ２００が認証のためのユーザ名、パスワードを保持している必要はない。中継サーバ２００は、終端サーバ３００が認証したことを判断できればよい。そのため、中継サーバ２００は、ＭＦＰ１００Ａから受信した認証チケットを終端サーバ３００に転送し、終端サーバ３００によって認証チケットが認証されたことを確認できれば処理を継続すると判断してよい。もちろん、中継サーバ２００がユーザ認証のためのユーザ名、パスワードを保持してもよい。
また、互いに認証連携していないクラウドサービス間（終端サーバＡと終端サーバＢとの間）に跨がって処理を行う必要がある場合は、中継サーバ２００が認証に必要なユーザ名やパスワード等をクラウドサービスに送信してログイン処理を実行するようにしてもよい。
【００２６】
データ処理制御部２３５は、認証済みのデータをどのように処理するかを決定する。データ処理制御部２３５は、決定した処理の内容に応じて必要なプログラムをプログラム記憶部２３６から読み出す。データ処理制御部２３５は、図５のＣＰＵ３０１を利用して実現される。
データ処理部２３７は、プログラム記憶部２３６から読み出されたプログラムを実行してデータを処理する。データ処理部２３７は、データを処理する過程で生成した中間データ、又はデータを処理した結果生成した最終データをデータ記憶部２３８に記憶させる。データ処理部２３７は、データ記憶部２３８に記憶させたデータの保存期限が超過する等、所定の削除条件に合致した場合に当該データをデータ記憶部２３８から削除する。データ処理部２３７は、図５のＣＰＵ３０１及びＲＡＭ３０３を利用して実現される。データ記憶部２３８は、図５のＲＡＭ３０３またはＨＤＤ３０４を利用して実現される。
プログラム記憶部２３６には、転送データ容量を削減するために必要な各種プログラムが記憶されている。転送データ容量を削減するプログラムは、例えば、カラー・モノクロ分離／合成プログラム、ＰＤＦ−ＰＤＬ変換プログラム等である（ＰＤＦ：Portable Document Format、ＰＤＬ：Page Description Language：ページ記述言語）。これらのプログラムにより、容量の削減されたデータが終端サーバ３００Ａに転送される。従って、転送するデータサイズを小さくできるので、全体の処理時間を短縮できる。プログラム記憶部２３６は、図５のＨＤＤ３０４を利用して実現される。
【００２７】
プログラム記憶部２３６に記憶されているプログラムは、終端サーバ３００Ａに記憶されているプログラムと同一であっもてよいし、異なっていてもよい。
例えば、終端サーバ３００Ａに記憶されているプログラムがサーバごとにライセンス利用料が発生するようなプログラムの場合は、ライセンスを保有する中継サーバを少なくした方が、ライセンス料金面でのサーバの維持コストを低くすることができる。なお、サーバごとにライセンス利用料が発生するようなプログラムの一例としては、ＯＣＲ処理プログラム、プレゼンテーションファイルからＰＤＦやＰＤＬを生成するプログラム等を挙げることができる（ＯＣＲ：光学文字認識：Optical Character Recognition）。
また、プログラム記憶部２３６に記憶されているプログラムは、終端サーバ３００Ａに記憶されているプログラムと同一の場合であっても、前者は必ずしも後者と同一の処理を実行するものである必要はない。
即ち、中継サーバの処理能力が終端サーバの処理能力に比べて劣る場合に、マシンパワーの必要な処理を中継サーバに実行させても処理時間の短縮は困難である。このような場合であっても、大きな処理能力を必要としない処理のみを中継サーバにて実行してデータ容量を削減すれば、データの転送時間を大幅に短縮できるので、総合的には処理時間を大きく短縮できる。なお、大きな処理能力を必要としない処理の一例としては、画像のカラー・モノクロ変換などが挙げられる。
【００２８】
〔図７：終端サーバの機能構成〕
図７は、終端サーバの機能構成の一例を示すブロック図である。終端サーバ３００は、中継サーバ２００と類似する構成を有する。
終端サーバ３００は、通信部３３１と、通信制御部３３３と、認証制御部３３４と、データ処理制御部３３５と、プログラム記憶部３３６と、データ処理部３３７と、データ記憶部３３８と、を備える。
通信部３３１は、インターネットＮを介してＭＦＰ１００Ａ等のクライアント機器、及び中継サーバ２００との間でデータを送受信する。通信部３３１は、図５のネットワーク通信部３０８を利用して実現される。
通信制御部３３３は、通信部３３１を制御すると共に、通信部３３１が受信したデータを認証制御部３３４とデータ処理制御部３３５へ転送する。通信制御部２３３は、図５のＣＰＵ３０１を利用して実現される。
認証制御部３３４は、ＭＦＰ１００Ａ等のクライアント機器が正当なものであることを確認する。終端サーバ３００は、クライアント機器の認証に必要なユーザ名、パスワードを保持している。認証制御部３３４は、中継サーバ２００から受信した認証チケットの正当性を確認して、中継サーバ２００に回答する。認証制御部３３４は、図５のＣＰＵ３０１を利用して実現される。
【００２９】
データ処理制御部３３５は、認証済みのデータをどのように処理するかを決定する。データ処理制御部３３５は、決定した処理の内容に応じて必要なプログラムをプログラム記憶部３３６から読み出す。データ処理制御部３３５は、図５のＣＰＵ３０１を利用して実現される。
データ処理部３３７は、プログラム記憶部３３６から読み出されたプログラムを実行してデータを処理する。データ処理部３３７は、データを処理する過程で生成した中間データ、又はデータを処理した結果生成した最終データをデータ記憶部３３８に記憶させる。データ処理部３３７は、データ記憶部３３８に記憶させたデータの保存期限が超過する等、所定の削除条件に合致した場合に当該データをデータ記憶部３３８から削除する。データ処理部３３７は、図５のＣＰＵ３０１及びＲＡＭ３０３を利用して実現される。データ記憶部３３８は、図５のＲＡＭ３０３を利用して実現される。
プログラム記憶部３３６には、ＯＣＲ処理プログラム、プレゼンテーションファイルからＰＤＦやＰＤＬを生成するプログラム、クライアント機器に利用させる中継サーバ（又は利用させない中継サーバ）を判定するアップロード先・ダウンロード元判定プログラム、その他の各種処理を実行するためのプログラムが記憶されている。プログラム記憶部２３６は、図５のＨＤＤ３０４を利用して実現される。
【００３０】
〔図８：モバイル機器の機能構成〕
図８は、モバイル機器の機能構成の一例を示すブロック図である。
クライアント機器となるモバイル機器１００Ｂは例えばノートＰＣやスマートフォンであり、通信部１２１、通信制御部１２２、主制御部１２３、記憶部１２４、操作入力部１３５、表示部１３７、表示制御部１３６等を備える。
通信部１２１は、インターネットＮを介して中継サーバ２００や終端サーバ３００との間でデータを送受信する。通信部１２１は、図５のネットワーク通信部３０８を利用して実現される。
通信制御部１２２は、通信部１２１を制御すると共に、通信部１２１が受信したデータを主制御部１２３へ転送する。通信制御部１２２は、図５のＣＰＵ３０１を利用して実現される。
主制御部１２３は、装置の各部の動作を制御する。主制御部１２３は、図５のＣＰＵ３０１を利用して実現される。
【００３１】
記憶部１２４は、主制御部１２３が実行する各種のプログラムを記憶し、また、プログラムの実行により発生したデータや、クラウドにアップロードするデータ等を記憶する。記憶部２３６は、図５のＲＡＭ３０３及びＨＤＤ３０４を利用して実現される。
操作入力部１３５は、クラウドにログインするためのユーザ名やパスワード等を入力するためのユーザインターフェースである。操作入力部１３５は、図５のキーボード・マウス３０６を利用して実現される。
表示部１３７は、サーバから受信した各種の情報等、ユーザに対して提示するべき情報を表示制御部１３６の制御に基づいて表示する。表示部１３７は、図５のディスプレイ３２０を利用して実現される。表示制御部１３６は、図５のＣＰＵ３０１及びディスプレイ３２０を利用して実現される。
【００３２】
〔表２：ファイルサイズ例〕
2016177444.tif 000004
【００３３】
表２は、実際のファイルサイズの一例を示している。
図示するように、スキャン文書においては、カラーＪＰＥＧやＯＣＲ済みＰＤＦに比べてモノクロＴＩＦＦやモノクロＯＣＲ結果のデータサイズの方が小さい。従って、例えば終端サーバ３００Ａに対してカラーＪＰＥＧデータを送信するよりも、モノクロＴＩＦＦに変換してから転送する方が、転送データ容量を小さくでき、全体の処理時間を短縮できると考えられる。
また、プレゼンテーション用文書においては、プレゼンテーションファイルや印刷用ＰＤＬに比べてＰＤＦのデータサイズの方が小さい。従って、終端サーバ３００Ａに対しては、プレゼンテーションファイルや印刷用ＰＤＬをＰＤＦに変換してから転送する方が、転送データ容量を小さくでき、全体の処理時間を短縮できると考えられる。
【００３４】
〔図９：ＯＣＲ処理のシーケンス図１（ＭＦＰに蓄積）〕
図９は、ＯＣＲ処理の一例を示すシーケンス図である。なお、この図には、クライアント装置であるＭＦＰからＯＣＲの実行命令を送信した場合に、処理結果をＭＦＰに返送する例を示している。
ステップＳ１０１において、ユーザは終端サーバ３００Ａに対する認証用のユーザ名とパスワードをＭＦＰ１００Ａの操作表示部１２５から入力する。
ステップＳ１０３において、ＭＦＰ１００Ａの通信部１２１は、ユーザから入力されたユーザ名及びパスワードを、認証リクエスト（要求）と共に終端サーバ３００Ａに送信する。ここではユーザ名とパスワードにより認証をしているが、当然、ＩＣカードでの認証や生体認証などの認証でもかまわない。
ステップＳ１０５において、認証リクエストを受信した終端サーバ３００Ａの認証制御部３３４は認証処理を実行して、認証リクエストに対するレスポンス（応答）を、通信部３３１を介してＭＦＰ１００Ａに送信する。認証に成功した場合、認証制御部３３４は認証チケットを発行し、レスポンスに認証チケットを含める。
【００３５】
ステップＳ１０７において、ＭＦＰ１００Ａは、通信部１２１を介して受信した認証結果を操作表示部１２５に表示させる。認証に成功した場合、ＭＦＰ１００Ａは終端サーバ３００Ａへのログイン後の画面を操作表示部１２５に表示させて、ユーザからの次の操作を受け付ける。
ステップＳ１０９において、ユーザはＭＦＰ１００Ａのスキャナ部１２７に原稿文書を配置し、ＯＣＲ処理を選択して画像をスキャニングする。本例の原稿文書はカラー文書であり、ＭＦＰ１００Ａの処理によりカラーのスキャンデータ（カラー画像データ）が得られる。
ステップＳ１１１において、ＭＦＰ１００Ａの主制御部１２３は、終端サーバ３００Ａに対して「カラーＯＣＲ」処理の場合のスキャンデータのアップロード先を、通信部１２１を介して問い合わせる。
【００３６】
ステップＳ１１３において、終端サーバ３００Ａのデータ処理制御部３３５は、アップロード先・ダウンロード元判定プログラムをプログラム記憶部３３６から読み出す。データ処理部３３７は読み出されたプログラムの実行によりアップロード先判定手段として機能する。データ処理部３３７は、データ処理の内容や、送信元ＭＦＰの位置情報等の判定条件に基づいて、スキャンデータのアップロード先を判定する。
ステップＳ１１５において、終端サーバ３００Ａのデータ処理部３３７は、通信部３３１を介してＭＦＰ１００Ａにスキャンデータのアップロード先を回答する。ここでは、ＭＦＰ１００ＡがＪＰにあることから、スキャンデータのアップロード先としてＪＰにある中継サーバ（mid.jp.example.com）を回答している。
ステップＳ１１７において、ＭＦＰ１００Ａの主制御部１２３は通信部１２１を介して、終端サーバ３００Ａによりアップロード先として指定された中継サーバ２００（mid.jp.example.com）に、カラーのスキャンデータ（カラーＪＰＥＧ、２０ＭＢ）と認証チケットを送信する。このとき、ＭＦＰ１００Ａは処理がカラーＯＣＲであること（POST/color_ocr）を中継サーバ２００に伝える。
【００３７】
ステップＳ１１９において、中継サーバ２００の下流通信部２３１は、ＭＦＰ１００Ａからカラーのスキャンデータと認証チケットを受信する。中継サーバ２００の認証制御部２３４は、受信した認証チケットが正当なものか否かを終端サーバ３００Ａに問い合わせる。
ステップＳ１２１において、終端サーバ３００Ａの認証制御部３３４は認証チケットが正当か否かを確認し、確認結果を中継サーバ２００に回答する。本例においては、認証チケットが正当であるため、以降のステップにおいて中継サーバ２００による処理が続行される。
ステップＳ１２３において、中継サーバ２００のデータ処理制御部２３５は、今回の処理がカラースキャンデータのＯＣＲ処理であることから、カラー・モノクロ分離／合成プログラムをプログラム記憶部２３６から読み出す。データ処理部２３７は読み出されたプログラムを実行して、カラースキャンデータのカラーデータとモノクロデータを分離する。なお、データ処理部２３７は、カラーデータを一時的にデータ記憶部２３８に記憶させておく。
【００３８】
ステップＳ１２５において、中継サーバ２００のデータ処理部２３７は上流通信部２３２を介して、カラースキャンデータから分離されたモノクロ画像データ（モノクロＴＩＦＦ、２ＭＢ）のみを終端サーバ３００Ａに認証チケットと共に送信する。終端サーバ３００Ａに送信されるモノクロ画像データはカラースキャンデータに比べて大幅に小さくなっているため、カラースキャンデータを転送する場合に比べて高速に転送される。
ステップＳ１２７において、終端サーバ３００Ａのデータ処理制御部３３５は、ＯＣＲ処理プログラムをプログラム記憶部３３６から読み出す。データ処理部３３７は読み出されたプログラムを実行して、中継サーバ２００から受信したモノクロ画像データに対してＯＣＲ処理を実行する。
ステップＳ１２９において、終端サーバ３００Ａのデータ処理部３３７は、通信部３３１を介してモノクロＯＣＲ処理の結果（中間データ）を中継サーバ２００に返却する。
【００３９】
ステップＳ１３１において、中継サーバ２００の上流通信部２３２はモノクロＯＣＲ処理の結果を受信する。データ処理部２３７は、カラー・モノクロ分離／合成プログラムを実行して、返却されたモノクロＯＣＲ結果とデータ記憶部２３８に一時的に記憶させたカラースキャンデータとを合成して、カラーＯＣＲ結果（最終データ）を生成する。
ステップＳ１３３において、中継サーバ２００のデータ処理部２３７は下流通信部２３１を介して、カラーＯＣＲ結果をＭＦＰ１００Ａに返却する。
ステップＳ１３５において、ＭＦＰ１００Ａの主制御部１２３は通信部１２１を介して受信したカラーＯＣＲ結果を記憶部１２４に蓄積する。ここでは、ＭＦＰ１００はリクエストに対するレスポンスをもってカラーＯＣＲ結果を得ているが、ポーリングにより定期的に中継サーバに問い合わせることでカラーＯＣＲ結果を得てもよい。
【００４０】
〔図１０：ＯＣＲ処理のシーケンス図２（クラウドサービスＢに蓄積）〕
図１０は、ＯＣＲ処理の他の例を示すシーケンス図である。なお、この図には、クライアント装置であるＭＦＰからＯＣＲの実行命令を送信した場合に、処理結果を終端サーバＢ（クラウドサービスＢ）に蓄積する例を示している。
以下、図９の処理と同様の処理には、同一のステップ番号を付してその説明を省略する。
まず、終端サーバ３００Ａ（クラウドサービスＡ）へのログイン処理として、ステップＳ１０１〜ステップＳ１０７までが実行される。
ステップＳ２０１において、ユーザはＭＦＰ１００Ａのスキャナ部１２７に原稿文書を配置し、ＯＣＲ処理とＯＣＲ結果のクラウドサービスＢへのアップロード処理を選択して画像をスキャニングする。本例の原稿文書はカラー文書であり、カラーのスキャンデータが得られる。
続いて、ステップＳ１１１〜Ｓ１１５の処理が実行される。
【００４１】
ステップＳ２０３において、ＭＦＰ１００Ａの主制御部１２３は通信部１２１を介して、終端サーバ３００Ａによりアップロード先として指定された中継サーバ２００（mid.jp.example.com）に、カラーのスキャンデータ（カラーＪＰＥＧ、２０ＭＢ）と認証チケットを送信する。このとき、ＭＦＰ１００Ａは、処理がカラーＯＣＲであり、最終蓄積先が終端サーバ３００Ｂ（クラウドサービスＢ）であること（POST/color_ocr_cloud_b）を中継サーバ２００に伝える。
続いて、ステップＳ１１９とＳ１２１の処理が実行される。
ステップＳ２０５において、中継サーバ２００の認証制御部２３４は、終端サーバ３００Ａによる認証結果（認証ＯＫ）をＭＦＰ１００Ａに送信する。
続いて、ステップＳ１２３〜Ｓ１３１の処理が実行される。
【００４２】
ステップＳ２０７において、中継サーバ２００のデータ処理部２３７は、上流通信部２３２を介してカラーＯＣＲ結果と認証チケットを終端サーバ３００Ｂに送信する。このとき、中継サーバ２００は、カラーＯＣＲ結果を蓄積する旨（POST /file_upload）を終端サーバ３００に伝える。
ステップＳ２０８において、終端サーバ３００Ｂの通信部３３１は、中継サーバ２００から認証チケットとカラーＯＣＲ結果を受信して認証制御部３３４に受け渡す。認証制御部３３４は、認証チケットが正当か否かを確認する。認証チケットが正当である場合、データ処理制御部３３５は、カラーＯＣＲ結果をデータ記憶部３３８に蓄積させる。
ステップＳ２０９において、終端サーバ３００Ｂのデータ処理制御部３３５は通信部３３１を介して、処理結果を中継サーバ２００に回答する。
【００４３】
〔図１１：ファイルアップロード時の中継サーバのフローチャート〕
図１１は、ファイルアップロード時の中継サーバの動作の一例を示したフローチャートである。このフローは、図９ではステップＳ１１９〜Ｓ１３３、図１０ではステップＳ１１９〜Ｓ２０７に対応する処理を示すものである。前提として、図９のステップＳ１１７、図１０のステップＳ２０３の処理により、クライアント機器（ここではＭＦＰ１００Ａ）から処理対象のデータを受信しているものとする。
ステップＳ３０１において、認証制御部２３４は、ＭＦＰ１００Ａから認証チケットを受領しているか否かを確認する。受領していない場合（ステップＳ３０１にてＮＯ）は、ステップＳ３１９の処理を実行する。受領している場合（ステップＳ３０１にてＹＥＳ）は、ステップＳ３０３の処理を実行する。
ステップＳ３０３において、認証制御部２３４は、上流通信部２３２を介して終端サーバ３００Ａに対して認証チケットと共に、当該認証チケットが正当な認証チケットであるか否かの確認リクエストを送信する。
【００４４】
ステップＳ３０５において、認証制御部２３４は、終端サーバ３００からの認証結果を判断する。認証ＮＧの場合（ステップＳ３０５にてＮＯ）は、ステップＳ３１９の処理を実行する。認証ＯＫの場合（ステップＳ３０５にてＹＥＳ）は、ステップＳ３０７の処理を実行する。
ステップＳ３０７において、中継サーバ２００ＭＦＰ１００Ａから受信したデータに対して、終端サーバ３００Ａへデータを送信するに当たっての前段階の中間処理（前中間処理）を実行する。このステップにおいてデータ処理制御部２３５は、クライアント機器から要求された処理の内容や、処理タイミングに応じて必要なプログラムをプログラム記憶部２３６から読み出す。データ処理部２３７は、読み出されたプログラムを実行して、ＭＦＰ１００Ａから受信したデータに対して必要な処理を実行する。また、データ処理部２３７は、中間処理の結果生成されたデータを必要に応じてデータ記憶部２３８に記憶させる。
【００４５】
ステップＳ３０９において、データ処理部２３７は上流通信部２３２を介して、中間処理によって得られたデータを終端サーバ３００Ａに送信する。
ステップＳ３１１において、データ処理制御部２３５は、終端サーバ３００Ａから受信した処理結果を判断する。処理失敗である場合（ステップＳ３１１にてＮＯ）は、ステップＳ３１９の処理を実行する。処理成功である場合（ステップＳ３１１にてＹＥＳ）は、ステップＳ３１３の処理を実行する。
ステップＳ３１３において、中継サーバ２００は、終端サーバ３００Ａから受信したデータに対して必要な中間処理（後中間処理）を実行する。このステップにおいてデータ処理制御部２３５は、クライアント機器から要求された処理の内容、終端サーバ３００Ａが実行した処理の内容、或いは処理タイミングに応じて必要なプログラムをプログラム記憶部２３６から読み出す。データ処理部２３７は、読み出されたプログラムを実行して、終端サーバ３００Ａから受信したデータに対して必要な処理を実行する。データ処理部２３７は、処理の結果生成した最終データをデータ処理制御部２３５に受け渡す。
【００４６】
ステップＳ３１５において、データ処理制御部２３５は、ステップＳ３１３による処理の結果生成された最終データを他の装置に転送する必要があるか否かを判断する。転送の必要がない場合（ステップＳ３１５にてＮＯ）は、必要に応じて最終データをデータ記憶部２３８に記憶させた後、処理を終了する。転送の必要がある場合（ステップＳ３１５にてＹＥＳ）は、ステップＳ３１７の処理を実行する。
ステップＳ３１７において、データ処理制御部２３５は、上流通信部２３２又は下流通信部２３１を介して、最終データをＭＦＰ１００Ａや他の終端サーバ３００Ｂへ送信する。
ステップＳ３１９において、下流通信部２３１は、ＭＦＰ１００Ａに対してエラーメッセージを送信する。
【００４７】
〔表３：処理種別と中間処理／最終処理内容の関係図〕
2016177444.tif 000005
【００４８】
表３は、クライアント機器又はクライアント機器として動作する終端サーバから中継サーバに対して要求される処理の種別と、中継サーバが実行する処理の実施タイミング及び処理内容の例を示した対応表である。本図には、図１１のステップＳ３０７、Ｓ３１３にて実行される中間処理と最終処理の一例を示す。なお、対応表において「処理の種別」は中継サーバのサービスを提供しているパスとして表現している。本図においては、各項目の対応関係をデータ記憶部に記憶させるテーブルの形式にて表現しているが、各項目をプログラムによる演算によって対応づけるようにしてもよい。また、「終端サーバへ送信前」の処理は中間処理を示し、「終端サーバから受信後」の処理は最終処理を示す。
【００４９】
クライアント機器であるＭＦＰから要求される処理の種別がカラー画像に対するＯＣＲ処理（処理によって生成される最終データの送信先がＭＦＰ又はクラウドサービスＢを提供する終端サーバＢ）である場合について説明する。この場合、ＭＦＰから中継サーバに対してカラー画像が送信される。中継サーバは、終端サーバＡへデータを送信する前のタイミングで、カラー画像に対してカラー・モノクロ変換処理とカラー・モノクロ分離処理を実行する。中継サーバはカラー画像データよりも容量の小さいモノクロ画像データを生成して、終端サーバＡに転送する。ＯＣＲ処理にはモノクロ画像があれば足りるので、中継サーバの処理により、終端サーバＡに転送するデータ容量を削減してデータ転送時間を短縮している。
また、終端サーバＡは、受信したモノクロ画像にＯＣＲ処理を施して、処理結果を中継サーバに転送する。中継サーバは、終端サーバＡからＯＣＲ結果を受信した後のタイミングで、ＯＣＲ結果にカラー画像を合成した最終データを生成して、ＭＦＰ又は終端サーバＢへ転送する。表２に示したように終端サーバＡが送信するＯＣＲ結果も、カラー画像にＯＣＲ結果を重畳したＰＤＦファイルに比べてデータ容量が小さいため、終端サーバＡ−中継サーバ間のデータ転送時間を大幅に短縮できる。
【００５０】
カラーＯＣＲ処理では、データ容量削減のために中継サーバがカラー・モノクロ分離処理を実行するが、中継サーバが図１１のステップＳ３０７，Ｓ３１３において実行する処理は、クライアント機器が要求する処理、即ちクラウド上で動作するアプリケーションの目的とタイミングに応じて変化する。
例えば、クライアント機器が中継サーバに対してテレビ会議システムに関する処理を要求する場合、中継サーバは、国内の通信相手に対しては画像解像度（画素数）と時間解像度（フレーム数）が共に高解像度となる映像データを配信する。一方で、海外の通信相手に対しては画像解像度（フレーム画像の画素数）又は時間解像度（フレーム数）を低解像度に変換した映像データを生成して終端サーバＡへ転送することが考えられる。このように、通信相手に対して送信する映像データが低解像度で十分な場合は、映像データを低解像度化することでデータ容量を大幅に削減し、転送時間を短縮できる。
例えば、クライアント機器が中継サーバに対して、送信する文書（データ）について存在時刻と非改ざん性を証明するタイムスタンプに関する処理を要求する場合、中継サーバは送信された文書からタイムスタンプの発行に必要なｈａｓｈ値を取得する。中継サーバは、文書を送信する代わりにデータ容量の小さいｈａｓｈ値を終端サーバＡに送信することによって、データ転送時間を短縮する。
【００５１】
同様に、例えば、クライアント機器が中継サーバに対して、送信する画像（データ）を元に、類似する画像の検索、又は、画像中の特定物の検索に関する処理等を要求する場合、中継サーバは送信された画像から画像の検索に必要な画像の特徴量を抽出する。中継サーバは、画像を送信する代わりにデータ容量の小さい特徴量を終端サーバＡに送信することによって、データ転送時間を短縮する。
或いは、クライアント機器が中継サーバに対して、送信するデータに関して異常検知を要求する場合、中継サーバは送信されたデータから異常の検知に必要な特徴量を抽出する。中継サーバは、データ容量の小さい特徴量を終端サーバＡに送信することによって、データ転送時間を短縮する。
更に、終端サーバＡが異常検知処理によりデータに異常を発見した場合、より詳細なデータ解析を実行するべく、終端サーバＡが中継サーバに対して中間処理実行前のデータを送信するように要求してもよい。この場合、中継サーバはクライアント機器から受信した未加工のデータをそのまま終端サーバＡへ送信してもよい。或いは、未加工のデータから異常部分を含む所定範囲のデータを抽出して送信してもよい。表３には、データの解析対象が映像データであり、異常が検知された前後１００秒間のデータを切り出して終端サーバＡへ送信する処理例を示している。
中継サーバに対して要求される処理が印刷中間ファイル蓄積である場合の例については、図１４以降で詳細に説明するため、ここでの説明は省略する。
【００５２】
このように、クラウド上で動作するアプリケーションに応じて、また、データの処理タイミング（既に施されているデータに対する処理の内容）に応じて最適な中間処理を実施することで、単純なデータ圧縮を実行するよりもデータ容量を削減できる。もちろん、データ容量の削減の際には、汎用的なアルゴリズムを適用して単純なデータ圧縮を実施してもよい。データ容量を削減することによって、終端サーバへのデータ転送時間を短縮することができるので、クラウドを利用する処理の総処理時間を短縮することができる。
また、中継サーバは、クライアント機器から受信したデータを終端サーバＡに転送する際に、クライアント機器から必要なデータの全てを受信した後に中間処理を実行し、処理後のデータを終端サーバＡに転送するようにしてもよい。或いは、中継サーバは、クライアント機器から必要なデータを受信しながら該データの中間処理を実行し、処理後のデータを順次終端サーバＡへ転送するように動作してもよい。もちろん、中継サーバが終端サーバＡから受信したデータを処理してクライアント機器に転送する場合も、上記と同様に動作してよい。
【００５３】
〔図１２：アップロード時の終端サーバＡのフローチャート〕
図１２は、クライアント機器から中継サーバにファイルをアップロードする場合の終端サーバの動作を示したフローチャートである。図１２のフローは、図９、図１０のステップＳ１１１〜Ｓ１１５に対応する処理を示したものである。
ステップＳ３３１において、認証制御部３３４は、クライアント機器（例えばＭＦＰ１００Ａ）から認証チケットを受領しているか否かを確認する。受領していない場合（ステップＳ３３１にてＮＯ）は、ステップＳ３３９の処理を実行する。受領している場合（ステップＳ３３１にてＹＥＳ）は、ステップＳ３３３の処理を実行する。
ステップＳ３３３において、認証制御部３３４は、認証チケットが正当なものであるか否かを判断する。認証チケットが正当でない場合（ステップＳ３３３にてＮＯ）は、ステップＳ３３９の処理を実行する。認証チケットが正当である場合（ステップＳ３３３にてＹＥＳ）は、ステップＳ３３５の処理を実行する。
【００５４】
ステップＳ３３５において、データ処理制御部３３５は、クライアント機器のＩＰアドレスに基づいて、クライアント機器の位置情報を取得する。
ステップＳ３５０において、データ処理部３３７は、サブルーチン「最適アップロード先判定処理」を実行する。サブルーチンの詳細については、図１３にて説明する。
ステップＳ３３７において、データ処理部３３７は、ステップＳ３５０の処理により得られた、データの最適なアップロード先の情報（サーバのＤＮＳ名）をクライアント機器に回答する。
ステップＳ３３９において、通信部３３１は、ＭＦＰ１００Ａに対してエラーメッセージを送信する。
【００５５】
〔処理内容によるアップロード先、ダウンロード元の判定〕
図１２のステップＳ３５０に示した最適アップロード先の判定方法について説明する。
【００５６】
〈表４：処理内容とアップロード先・ダウンロード元サーバの関連表〉
2016177444.tif 000006
【００５７】
表４に示すように、最適アップロード先又は最適ダウンロード元となるサーバは、クライアント機器が要求する処理内容に応じて終端サーバ又は複数の中継サーバの中から最適なサーバが判定される。
例えば、処理内容がスキャン−カラーＯＣＲであって、処理対象データの容量が小さい場合（例：５００ＫＢ未満）は、データ容量が小さく転送遅延が少ないことから、最適アップロード先は終端サーバ３００Ａ自身と判定される。処理内容が同じであっても、処理対象データの容量が大きい場合（例：５００ＫＢ以上）は、データ容量が大きく転送遅延が大きいことから、最適アップロード先は中継サーバと判定される。中継サーバが選択された場合、更に複数の中継サーバから最適な中継サーバが自動的に選択される。
【００５８】
以下、複数の中継サーバから最適な中継サーバを自動選択する方法について説明する。
【００５９】
〈表５：ＩＰアドレスと位置情報関連表〉
2016177444.tif 000007
【００６０】
最適アップロード先又は最適ダウンロード元となる中継サーバとして、データ送信元のＩＰアドレス（クライアント機器の物理的位置）に基づいて、データ送信元から近い場所に設置された中継サーバを選択することができる。
例えば、クライアント機器のＩＰアドレスが「192.0.2.3」の場合、クライアント機器の位置は、国：JP、都市：Tokyoであるので、仮に中継サーバがＪＰとＵＳにある場合は、ＪＰに設置された中継サーバを選択することができる。利用可能な中継サーバは複数が選択されてもよい。例えば、クライアント機器のＩＰアドレスが「203.0.113.5」（国：GB、都市：London）の場合には、ＪＰの中継サーバとＵＳの中継サーバの双方を選択することができる。
【００６１】
〈表６：ユーザごとの位置情報関連表〉
2016177444.tif 000008
【００６２】
最適アップロード先又は最適ダウンロード元となる中継サーバとして、ユーザが予め利用位置情報を登録している場合には、登録された利用位置情報に基づいて、当該位置から近い場所に設置された中継サーバを選択することができる。
例えば、ユーザＩＤ「user0001」のユーザについては、利用位置情報として「利用国：JP、利用都市：Tokyo」が登録されているので、仮に中継サーバがＪＰとＵＳにある場合は、ＪＰに設置された中継サーバを選択することができる。この場合も、利用可能な中継サーバは複数が選択されてもよい。また、ここでは絶対的に利用国、利用都市を登録しているが、ユーザの設定するタイムゾーン設定などから推定してもよい。
【００６３】
〈表７：ユーザごとの位置関係履歴表〉
2016177444.tif 000009
【００６４】
最適アップロード先又は最適ダウンロード元となる中継サーバとして、ユーザのサービス利用履歴データから、当該ユーザが多く利用している中継サーバがある場合は、最後に利用した中継サーバや利用頻度の高い中継サーバを選択することができる。この場合も、利用可能な中継サーバは複数が選択されてもよい。
例えば、ユーザＩＤ「user0003」のユーザについては、複数の国を拠点としてクラウドサービスを利用しているが、利用頻度はＵＳよりもＪＰの方が多いので、ＪＰに設置された中継サーバを選択することができる。
【００６５】
〈表８：中継サーバの状態表〉
2016177444.tif 000010
【００６６】
以上のようにして選択された中継サーバがメンテナンス中等の要因によりで利用できない場合は、他の中継サーバ又は終端サーバを選択することができる。
例えば、中継サーバとして「med.fr.example.com」（設置国：ＦＲ：仏国）が最適と判定されたが、当該中継サーバが定期メンテナンス中である場合には、当該中継サーバから最も近い他のｏｎｌｉｎｅな中継サーバ又は終端サーバを選択することができる。
【００６７】
〈表９：中継サーバの混雑度表〉
2016177444.tif 000011
【００６８】
更に、以上のようにして選択された中継サーバが非常に混雑していて、中継サーバでの処理に時間を要することが見込まれる場合は、他の中継サーバ又は終端サーバを選択することができる。
例えば、中継サーバとして「med.fr.example.com」（設置国：ＦＲ：仏国）が最適と判定されたが、当該中継サーバが非常に混雑している場合には、当該中継サーバから最も近い他の空いている中継サーバ又は終端サーバを選択することができる。この選択には複数の要素の値（混雑度、距離など）にそれぞれ重みをつけ、計算により求めることができる。
【００６９】
〈図１３：最適アップロード先判定処理〉
図１３は、図１２のサブルーチン「最適アップロード先判定処理」を示すフローチャートである。図１３のフローは、図９、図１０のステップＳ１１３に対応する処理を示したものである。なお、このサブルーチンはデータ処理制御部３３５がプログラム記憶部３３６に記憶されている「アップロード先・ダウンロード元判定プログラム」を読み出してデータ処理部３３７にて実行するものである。
【００７０】
ステップＳ３５１において、データ処理部３３７は、クライアント機器が要求する処理の内容（表４）に基づいてデータのアップロード先となるサーバを選択する。
ステップＳ３５３において、データ処理部３３７は、データのアップロード先として終端サーバが選択されているか否かを確認する。終端サーバが選択されている場合（ステップＳ３５３にてＹＥＳ）は、処理を終了する。終端サーバが選択されていない場合、即ち中継サーバを自動で選択する必要がある場合（ステップＳ３５３にてＮＯ）は、ステップＳ３５５の処理を実行する。
ステップＳ３５５において、データ処理部３３７は、送信元情報（表５）に基づいてアップロード先となる中継サーバを選択する。
【００７１】
ステップＳ３５７において、データ処理部３３７は、利用者設定があるか否かを確認する。利用者設定がある場合（ステップＳ３５７にてＹＥＳ）は、ステップＳ３５９の処理を実行する。利用者設定がない場合（ステップＳ３５７にてＮＯ）は、ステップＳ３６１の処理を実行する。
ステップＳ３５９において、データ処理部３３７は、利用者設定データ（表６）に基づいてアップロード先となる中継サーバを選択する。
ステップＳ３６１において、データ処理部３３７は、利用者履歴データが存在するか否かを確認する。利用者履歴データが存在する場合（ステップＳ３６１にてＹＥＳ）は、ステップＳ３６３の処理を実行する。利用者履歴データが存在しない場合（ステップＳ３６１にてＮＯ）は、ステップＳ３６５の処理を実行する。
【００７２】
ステップＳ３６３において、データ処理部３３７は、利用者履歴データ（表７）に基づいてアップロード先となる中継サーバを選択する。
ステップＳ３６５において、データ処理部３３７は、メンテナンス情報があるか否かを確認する。メンテナンス情報がある場合（ステップＳ３６５にてＹＥＳ）は、ステップＳ３６３の処理を実行する。メンテナンス情報がない場合（ステップＳ３６５にてＮＯ）は、ステップＳ３６５の処理を実行する。
ステップＳ３６７において、データ処理部３３７は、メンテナンス情報（表８）に基づいて中継サーバ又は終端サーバをアップロード先として選択する。
ステップＳ３６９において、データ処理部３３７は、中継サーバ混雑情報（表９）に基づいて中継サーバ又は終端サーバをアップロード先として選択する。
【００７３】
図９と図１０に示したフローチャートにおいては、終端サーバ３００Ａがアップロード先となるサーバを選択し、選択したサーバの情報（ＤＮＳ名）をクライアント機器であるＭＦＰ１００Ａに回答している。これは、終端サーバ３００Ａがクラウドサービス（ここではスキャンサービス）の終端サーバであり、且つ、ＭＦＰ１００Ａへデータのアップロード先を指示するコントロールサーバの２つの役割を併せ持っていることを示している。ただし、この２つの役割は同一のサーバに配置されている必要はなく、それぞれが別のサーバ上で動作していてもよい。
【００７４】
〔図１４：印刷ファイルのアップロード時のシーケンス図〕
図１４は、印刷ファイルをモバイル機器からサーバにアップロードする場合の処理の一例を示すシーケンス図である。このシーケンス図は、例えば、クラウド上に保存されたファイルをＭＦＰ等が印刷するに際して、印刷対象のファイルを事前にクライアント機器であるノートＰＣやスマートフォン等のモバイル機器からクラウド上にアップロードする場合の処理の一例を示している。
以下、図９及び図１０の処理と同様の処理には、同一のステップ番号を付してその説明を省略する。
【００７５】
まず、終端サーバ３００Ａ（クラウドサービスＡ）へのログイン処理として、ステップＳ１０１〜ステップＳ１０７までが実行される。
ステップＳ４０１において、ユーザはファイルを特定して、クラウドサービスへの印刷ファイルのアップロード処理を選択する。本例の印刷ファイルはプレゼンテーションファイルである。
ステップＳ４０３において、モバイル機器１００Ｂの主制御部１２３は、終端サーバ３００Ａに対して認証チケットと共に、処理対象となるプレゼンテーションファイルを送信する。このとき、モバイル機器１００Ｂは、処理が印刷対象ファイルのアップロードであること（POST /print_upload：データのアップロード要求）を終端サーバ３００に伝える。
ステップＳ４０５において、終端サーバ３００Ａの認証制御部３３４は認証チケットが正当か否かを確認する。認証チケットが正当でありファイルアップロードが成功した場合には、処理が成功したこと（ＯＫ）をモバイル機器１００Ｂに伝える。
ステップＳ４０７において、モバイル機器１００Ｂの表示制御部１３６は、通信部１２１を介して受信した処理結果を表示部１３７に表示させる。本処理においてモバイル機器１００Ｂは直接中継サーバ２００と通信することはなく、終端サーバ３００Ａにファイルをアップロードした段階でモバイル機器１００Ｂの処理は完了する。
【００７６】
ステップＳ４０９において、終端サーバ３００Ａのデータ処理制御部３３５は、アップロード先・ダウンロード元判定プログラムをプログラム記憶部３３６から読み出す。データ処理部３３７は読み出されたプログラムの実行によりアップロード先判定手段として機能する。データ処理部３３７は、モバイル機器１００Ｂの位置情報やユーザ情報等の判定条件に基づいて、印刷ファイルを印刷するＭＦＰ１００Ａの位置を予測し、当該位置のＭＦＰ１００Ａにとって最適な印刷ファイルのアップロード先（ＭＦＰ１００Ａから見て印刷ファイルのダウンロード元）となるサーバを判定する。この例では、ＪＰにある中継サーバ２００が選択されている。
ステップＳ４１１において、終端サーバ３００Ａのデータ処理部３３７は必要に応じて、アップロードされた印刷ファイルに対して中間処理を実行する。例えば、終端サーバ３００Ａが国を跨がって印刷ファイルを中継サーバ２００に対してアップロードする場合は、データ容量を削減して処理時間を短縮することが望ましい。ここで表２に示したように、プレゼンテーションファイル形式や印刷用ＰＤＬ形式よりも、ＰＤＦ形式の方がデータ容量を削減できる。そこで、データ処理部３３７はプレゼンテーションファイルをＰＤＦ形式のファイルに変換してデータ容量を削減する処理を実行する。なお、本ステップの処理は、例えば終端サーバ３００Ａと中継サーバ２００が同一国内に存在するなど、データ容量を削減する必要がないと判断される場合には、省略することができる。
【００７７】
ステップＳ４１３において、データ処理部３３７は、ステップＳ４０９にて判定した中継サーバ２００に対して中間処理後のＰＤＦファイルをアップロードする。このとき、データ処理部３３７は、ＰＤＬファイルを蓄積するように（POST /print_mid_file）中継サーバ２００に伝える。
ステップＳ４１５において、中継サーバ２００のデータ処理制御部２３５は、ファイルアップロードが成功した場合には、処理が成功したこと（ＯＫ）を終端サーバ３００Ａに伝える。
ステップＳ４１６において、終端サーバ３００Ａのデータ処理部３３７は、ファイルをアップロードしたサーバのリスト（アップロード先・ダウンロード元リスト）を更新して、データ記憶部３３８に記憶させる。
【００７８】
ステップＳ４１７において、中継サーバ２００は、終端サーバ３００Ａから受信したデータに対して最終処理（表３）を実施する。即ち、データ処理制御部２３５はプログラム記憶部２３６からＰＤＦ−ＰＤＬ変換プログラムを読み出す。データ処理部３３７は、読み出されたプログラムを実行して、受信したＰＤＦファイルをＰＤＬファイル（最終データ）に変換する。
ステップＳ４１９において、中継サーバ２００のデータ処理部２３７は、生成されたＰＤＬファイルをデータ記憶部２３８に記憶させる（表３参照）。
【００７９】
以上のように、終端サーバにてＰＤＦデータを生成して中継サーバに送信することで、終端サーバ−中継サーバ間で送受信されるデータの容量を削減でき、ファイルの転送時間と総処理時間を短縮できる。また、プレゼンテーションファイルからＰＤＦを介したとしても、品質を損なうことなくＰＤＬデータ等の印刷データを生成できる。上記処理において汎用的な処理を利用することによって、プログラムの利用ライセンスに関わる費用を抑制できる。
【００８０】
〔図１５：印刷ファイルのダウンロード時のシーケンス図〕
図１５は、クラウド上に保存された印刷ファイルをダウンロードして印刷する場合の処理の一例を示すシーケンス図である。このシーケンス図は、図１４に示した処理により、クラウド上に保存されたファイルをＭＦＰ等が印刷する場合の処理の一例を示している。
以下、図９、図１０、及び図１４の処理と同様の処理には、同一のステップ番号を付してその説明を省略する。
【００８１】
まず、終端サーバ３００Ａ（クラウドサービスＡ）へのログイン処理として、ステップＳ１０１〜ステップＳ１０７までが実行される。
ステップＳ５０１において、ユーザはＭＦＰ１００Ａの操作・表示部から、クラウド上に保存された印刷可能文書の一覧取得処理を選択する。
ステップＳ５０３において、ＭＦＰ１００Ａの主制御部１２３は、終端サーバ３００Ａに対して認証チケットを送信し、印刷可能文書の一覧を要求する（GET /printable_list）。
ステップＳ５０５において、終端サーバ３００Ａの認証制御部３３４は認証チケットが正当か否かを確認する。認証チケットが正当である場合は、ＭＦＰ１００Ａに対して印刷可能文書一覧を返す。
ステップＳ５０７において、ＭＦＰ１００Ａは、操作表示部１２５に終端サーバ３００Ａから受信した印刷可能文書一覧を表示する。
ステップＳ５０９において、ユーザは操作表示部１２５から、印刷可能文書一覧中のファイルを特定して、当該ファイルの印刷処理を選択する。
【００８２】
ステップＳ５１１において、ＭＦＰ１００Ａの主制御部１２３は、終端サーバ３００Ａに対して認証チケットを送信すると共に、ファイルＩＤを指定して印刷するべきファイルのダウンロード元（ファイルが保存されているサーバの場所）を問い合わせる（GET /download_src）。
ステップＳ５１３において、終端サーバ３００Ａは、ファイルのダウンロード元を判定する。即ち、終端サーバ３００Ａのデータ処理制御部３３５は、アップロード先・ダウンロード元判定プログラムをプログラム記憶部３３６から読み出す。データ処理部３３７は読み出されたプログラムの実行によりダウンロード元判定手段として機能する。データ処理部３３７はモバイル機器１００Ｂの位置情報やユーザ情報等の判定条件に基づいて、印刷ファイルを印刷するＭＦＰ１００Ａの位置を予測し、当該位置のＭＦＰ１００Ａにとって最適な印刷ファイルのダウンロード元となるサーバを判定する。この例では、ＪＰにある中継サーバ２００が選択されている。
【００８３】
ステップＳ５１５において、終端サーバ３００Ａのデータ処理制御部３３５は、通信部３３１を介してＭＦＰ１００Ａにファイルのダウンロード元の情報を回答する。ここでは、ＪＰにあるＭＦＰ１００Ａに対して、ＪＰにある中継サーバ（mid.jp.example.com）を回答している。
ステップＳ５１７において、ＭＦＰ１００Ａの主制御部１２３は、終端サーバ３００Ａから指定された中継サーバ２００に対して認証チケットを送信し、ファイル名を指定して、当該ファイルをＭＦＰ１００Ａに対して送信するように要求する（GET /print_file）。
ステップＳ５１９において、中継サーバ２００のデータ処理制御部２３５は終端サーバ３００Ａに対して、ＭＦＰ１００Ａから受信した認証チケットと、ダウンロード対象のファイルについて更新処理の有無を確認するリクエスト（GET /print_mid_file）を送信する。即ち、中継サーバ２００は、自装置に記憶されているファイルが最新のデータ内容のファイルか否かを確認する。
【００８４】
ステップＳ５２１において、終端サーバ３００Ａの認証制御部３３４は認証チケットの正当性を確認する。認証チケットが正当である場合、データ処理制御部３３５はファイル更新の有無を確認して、中継サーバ２００に応答する。この例ではファイルの更新がないので、更新されていない旨（Not Modified）のレスポンスを返す。なお、ファイルの更新がある場合、データ処理制御部３３５はデータ記憶部３３８に記憶されている対象ファイルを読み出して中継サーバ２００に送信する。
ステップＳ５２３において、中継サーバ２００のデータ処理制御部２３５は、データ記憶部２３８から対象ファイルを読み出す。ここで、図１４のステップＳ４０３においてモバイル機器１００Ｂから送信されたプレゼンテーションファイルは、ステップＳ４１１においてＰＤＦに変換され、更にステップＳ４１７においてＰＤＬに変換されている。従って、中継サーバ２００は、モバイル機器１００Ｂから送信されたファイルに対応するＰＤＬファイルをデータ記憶部２３８から読み出す。
【００８５】
ステップＳ５２５において、中継サーバ２００の下流通信部２３１は、データ記憶部２３８から読み出されたＰＤＬファイルをＭＦＰ１００Ａに対して送信する。
ステップＳ５２７において、ＭＦＰ１００Ａのプロット部１２６は、中継サーバ２００から受信したＰＤＬファイルを印刷する。ここで、受信したファイルは既に印刷形式（ＰＤＬ）に変換されているので、ＭＦＰ１００Ａはファイルを変換する等の特別な処理をすることなく、ファイルをそのまま印刷する。
ステップＳ５２９において、ＭＦＰ１００Ａは、印刷済み画面を操作表示部１２５に表示する。ユーザは、本シーケンスの一連の処理結果としての印刷物を得る。
【００８６】
〔図１６：印刷ファイルのアップロード処理に関わる中継サーバのフロー〕
図１６は、印刷ファイルアップロード時の中継サーバの動作の一例を示したフローチャートである。このフローは、図１４ではステップＳ４１３〜Ｓ４１９に対応する処理を示すものであり、中継サーバが終端サーバからファイルを受信するときのフローである。
このフローにおいて終端サーバ３００Ａは中継サーバ２００に対してクライアント機器として動作する。このため、まず中継サーバ２００は終端サーバ３００Ａを認証する処理を実行する。前提として、終端サーバ３００Ａから中継サーバ２００に対して認証用のデータが送信されているものとする。
【００８７】
ステップＳ６０１において、上流通信部２３２は、クライアントとしての終端サーバ３００Ａから認証用のデータを受信する。
ステップＳ６０３において、認証制御部２３４は、受信した認証用のデータが正当なものであるか否かを確認する。認証用のデータが正当なものである場合（ステップＳ６０３にてＹＥＳ）は、ステップＳ６０５の処理を実行する。認証用のデータが不当なものである場合（ステップＳ６０３にてＮＯ）は、ステップＳ６１７の処理を実行する。
ステップＳ６０５において、上流通信部２３２は、ＰＤＦファイルを受信する。
ステップＳ６０７において、通信制御部２３３は、ファイルの受信が正常に完了したか否かを確認する。正常に完了した場合（ステップＳ６０７にてＹＥＳ）は、ステップＳ６０９の処理を実行する。通信が途中で切断されるなど正常に完了しなかった場合（ステップＳ６０７にてＮＯ）は、ステップＳ６１７の処理を実行する。
【００８８】
ステップＳ６０９において、データ処理制御部２３５は、受信したファイルが正常か否かを確認する。正常である場合（ステップＳ６０９にてＹＥＳ）は、ステップＳ６１１の処理を実行する。異常である場合（ステップＳ６０９にてＮＯ）は、ステップＳ６１７の処理を実行する。
ステップＳ６１１において、データ処理制御部２３５は、正常なファイルの受信に成功したこと（ＯＫ）を終端サーバ３００Ａに送信する。また、通信制御部２３３は、終端サーバ３００Ａとの通信を終了する。
ステップＳ６１３において、データ処理制御部２３５は、プログラム記憶部２３６からＰＤＦ−ＰＤＬ変換プログラムを読み出す。データ処理部２３７は、読み出されたプログラムを実行して、受信したＰＤＦファイルをＰＤＬファイルに変換する。
【００８９】
ステップＳ６１５において、データ処理部２３７は、生成されたＰＤＬファイルをデータ記憶部２３８に蓄積する。
ステップＳ６１７において、上流通信部２３２は終端サーバ３００Ａに対してエラーメッセージを送信する。
ここで、中継サーバ２００がクライアントとしての終端サーバ３００Ａからのアクセスであると確認する処理（ステップＳ６０３）は、ＰＫＩ（公開鍵基盤：Public Key Infrastructure）の仕組みを用いてクライアント証明書を利用したものでもよいし、パスワードなどを利用したものでもよい。
【００９０】
〔図１７：印刷ファイルのダウンロード処理に関わる中継サーバのフロー〕
図１７は、ＭＦＰがプリントファイルをダウンロードするときの中継サーバの動作の一例を示したフローチャートである。このフローは、図１５のステップＳ５１７〜Ｓ５２５に対応する処理を示すものであり、クライアント機器に対して送信する対象ファイルに関して、中継サーバが終端サーバに更新の有無を確認するフローを示したものである。
ステップＳ６２１において、認証制御部２３４は、ＭＦＰ１００Ａから送信されたリクエストに認証チケットが含まれているか否かを確認する。認証チケットが含まれていない場合（ステップＳ６２１にてＮＯ）は、ステップＳ６２３の処理を実行する。認証チケットが含まれている場合（ステップＳ６２１にてＹＥＳ）は、ステップＳ６２５の処理を実行する。
ステップＳ６２３において、下流通信部２３１は、クライアント機器であるＭＦＰ１００Ａに対してエラーメッセージを送信する。
【００９１】
ステップＳ６２５において、データ処理制御部２３５は終端サーバ３００Ａに対して、ＭＦＰ１００Ａから受信した認証チケットと、ＭＦＰ１００Ａに送信する対象ファイルについて更新処理の有無を確認するリクエスト（GET /print_mid_file）を送信する。
ステップＳ６２７において、データ処理制御部２３５は、終端サーバ３００Ａからのレスポンスに基づいて対象ファイルの更新の有無を判断する。終端サーバ３００Ａからレスポンス「Not Modified」を受信したとき、即ちファイル更新がない場合（ステップＳ６２７にてＹＥＳ）は、ステップＳ６２９の処理を実行する。終端サーバ３００ＡからＰＤＦファイルを受信したとき、即ちファイル更新がある場合（ステップＳ６２７にてＮＯ）は、ステップＳ６３１の処理を実行する。
ステップＳ６２９において、データ処理制御部２３５は、データ記憶部２３８から対象ファイルのＰＤＬデータを読み出す。
【００９２】
ステップＳ６３１において、中継サーバ２００は、終端サーバ３００Ａから受信したＰＤＦファイルをＰＤＬ形式に変換する処理を実行する。即ち、データ処理制御部２３５は、プログラム記憶部２３６からＰＤＦ−ＰＤＬ変換プログラムを読み出す。データ処理部２３７は読み出されたプログラムを実行して、受信したＰＤＦファイルをＰＤＬファイルに変換する。
ステップＳ６３３において、データ処理制御部２３５は、得られたＰＤＬファイルが正常か否かを確認する。ＰＤＬファイルが正常である場合（ステップＳ６３３にてＹＥＳ）は、ステップＳ６３５の処理を実行する。ＰＤＬファイルにエラーがある場合（ステップＳ６３３にてＮＯ）は、ステップＳ６２３の処理を実行する。
ステップＳ６３５において、データ処理制御部２３５は、ＰＤＬファイルをＭＦＰ１００Ａに送信する。
【００９３】
本実施形態においては、中継サーバ２００が終端サーバ３００Ａに対してファイルの更新の有無を確認するものであるが、ファイルの更新という概念を持たないシステム（更新ではなくすべて新規の処理として扱うシステム）の場合は、本フローに示した処理を省略できる。
【００９４】
〔印刷ファイルのアップロード処理に関わる終端サーバＡのフロー〕
図１４のシーケンス図のステップＳ４０９のアップロード先判定処理の詳細について、図１３を参照しながら説明する。なお、ステップＳ４０９に関わる処理には「’」を付している。
ここで、ファイルのアップロード先のサーバとは、終端サーバからみたファイルのアップロード先のサーバのことであり、当該ファイルの内容を印刷するＭＦＰからみてファイルのダウンロード元となるサーバのことである。つまり、モバイル機器が送信したファイル（又はこのファイルを変換したファイル）の最終的な蓄積場所となるサーバを意味する。
また、本フローにおける「クライアント機器」とは「モバイル機器」である。
このフローはデータ処理制御部３３５がプログラム記憶部３３６に記憶されている「アップロード先・ダウンロード元判定プログラム」を読み出してデータ処理部３３７にて実行するものである。
【００９５】
ステップＳ３５１’において、データ処理部３３７は、クライアント機器（モバイル機器１００Ｂ）が送信したファイルの処理種別、及び処理の内容（表４）に基づいてデータのアップロード先となるサーバを選択する。例えば、モバイル機器１００Ｂが送信したファイルが印刷ファイルであり、当該ファイルがプレゼンテーションファイルである場合、データ処理部３３７は、データのアップロード先として中継サーバを選択する。また、モバイル機器１００Ｂが送信した印刷ファイルがＰＤＦファイルである場合は、データのアップロード先として終端サーバ３００Ａ自身を選択する。
ステップＳ３５３’において、データ処理部３３７は、データのアップロード先として終端サーバが選択されているか否かを確認する。終端サーバが選択されている場合（ステップＳ３５３’にてＹＥＳ）は、既にモバイル機器１００Ｂからデータを受信しており、アップロード先の判定を必要としないため、処理を終了する。終端サーバが選択されていない場合、即ち中継サーバを自動で選択する必要がある場合（ステップＳ３５３’にてＮＯ）は、ステップＳ３５５の処理を実行する。
【００９６】
ステップＳ３５５’において、データ処理部３３７は、クライアント機器の送信元を示す送信元情報（表５）に基づいてアップロード先となる中継サーバを選択する。
ステップＳ３５７’において、データ処理部３３７は、利用者設定があるか否かを確認する。利用者設定がある場合（ステップＳ３５７’にてＹＥＳ）は、ステップＳ３５９の処理を実行する。利用者設定がない場合（ステップＳ３５７’にてＮＯ）は、ステップＳ３６１’の処理を実行する。
ステップＳ３５９’において、データ処理部３３７は、利用者設定データ（表６）に基づいてアップロード先となる中継サーバを選択する。
ステップＳ３６１’において、データ処理部３３７は、利用者履歴データが存在するか否かを確認する。利用者履歴データが存在する場合（ステップＳ３６１’にてＹＥＳ）は、ステップＳ３６３’の処理を実行する。利用者履歴データが存在しない場合（ステップＳ３６１’にてＮＯ）は、ステップＳ３６５’の処理を実行する。
【００９７】
ステップＳ３６３’において、データ処理部３３７は、利用者履歴データ（表７）に基づいてアップロード先となる中継サーバを選択する。
ステップＳ３６５’において、データ処理部３３７は、メンテナンス情報があるか否かを確認する。メンテナンス情報がある場合（ステップＳ３６５’にてＹＥＳ）は、ステップＳ３６３’の処理を実行する。メンテナンス情報がない場合（ステップＳ３６５’にてＮＯ）は、ステップＳ３６５’の処理を実行する。
ステップＳ３６７’において、データ処理部３３７は、メンテナンス情報（表８）に基づいて中継サーバ又は終端サーバをアップロード先として選択する。
ステップＳ３６９’において、データ処理部３３７は、中継サーバ混雑情報（表９）に基づいて中継サーバ又は終端サーバをアップロード先として選択する。
【００９８】
なお、ファイルの送信元であるモバイル機器の物理的位置と、最終的に当該ファイルを印刷するＭＦＰの物理的位置とが異なる場合がありうる（例えば、印刷ファイルのアップロードはＪＰから実行され、ファイルの印刷処理はＵＳで実行されるような場合）。クラウドに送信されたファイルが終端サーバに蓄積される場合は特に問題とはならない。しかし、ファイルが中継サーバに蓄積される場合、仮にデータ処理部３３７によってＭＦＰからより遠方の中継サーバが選択されたとすると、印刷処理を実行する際のデータの転送時間が長くなり、かえって処理時間が長くなる虞がある。そこで、データ処理部３３７が中継サーバを選択するときには、ユーザの利用履歴情報等に基づいて、複数の中継サーバにファイルを分散してアップロードしてもよい。
【００９９】
〔図１８：印刷ファイルのダウンロード処理に関わる終端サーバＡのフロー〕
図１８は、クライアント機器がサーバからファイルをダウンロードする場合の終端サーバの動作を示したフローチャートである。図１８のフローは、図１５のステップＳ５１１〜Ｓ５１５に対応する処理を示したものである。
ステップＳ６４１において、認証制御部３３４は、クライアント機器（例えばＭＦＰ１００Ａ）から認証チケットを受領しているか否かを確認する。受領していない場合（ステップＳ６４１にてＮＯ）は、ステップＳ６４３の処理を実行する。受領している場合（ステップＳ６４１にてＹＥＳ）は、ステップＳ６４５の処理を実行する。
ステップＳ６４３において、通信部３３１は、ＭＦＰ１００Ａに対してエラーメッセージを送信する。
【０１００】
ステップＳ６４５において、認証制御部３３４は、認証チケットが正当なものであるか否かを判断する。認証チケットが正当でない場合（ステップＳ６４５にてＮＯ）は、ステップＳ６４３の処理を実行する。認証チケットが正当である場合（ステップＳ６４５にてＹＥＳ）は、ステップＳ６４７の処理を実行する。
ステップＳ６４７において、データ処理制御部３３５は、クライアント機器のＩＰアドレスに基づいて、クライアント機器の位置情報を取得する。
ステップＳ６５０において、データ処理部３３７は、サブルーチン「ダウンロード元判定処理」を実行する。サブルーチンの詳細については、図１９にて説明する。
ステップＳ６４９において、データ処理部３３７は、ステップＳ６５０の処理により得られた、データの最適なダウンロード元の情報（サーバのＤＮＳ名）をクライアント機器に回答する。
【０１０１】
〔図１９：終端サーバＡによるダウンロード元判定処理〕
図１９は、図１８のサブルーチン「ダウンロード元判定処理」を示したフローチャートである。なお、このサブルーチンはデータ処理制御部３３５がプログラム記憶部３３６に記憶されている「アップロード先・ダウンロード元判定プログラム」を読み出してデータ処理部３３７にて実行するものである。
【０１０２】
ステップＳ６５１において、データ処理部３３７は、クライアント機器がダウンロード要求するファイルのＩＤから、当該ＩＤを有するファイルのダウンロード元リストをデータ記憶部３３８から取得する。ここでダウンロード元リストは、ダウンロード対象のファイルを蓄積しているサーバのリストである。
ステップＳ６５３において、データ処理部３３７は、ダウンロード元リスト中のサーバが終端サーバのみか否かを確認する。終端サーバのみである場合（ステップＳ６５３にてＹＥＳ）は、ステップＳ６５５の処理を実行する。終端サーバのみでない場合（ステップＳ６５３にてＮＯ）、即ちダウンロード元リスト中に中継サーバが含まれている場合は、ステップＳ６５７の処理を実行する。
【０１０３】
ステップＳ６５５において、データ処理部３３７は、ダウンロード元サーバとして終端サーバ３００Ａを選択する。
ステップＳ６５７において、データ処理部３３７は、ダウンロード元リストに含まれる１又は複数の中継サーバの中に、クライアント機器であるＭＦＰ１００Ａまでの物理的距離が、ＭＦＰ１００Ａから終端サーバ３００Ａまでの物理的距離よりも近いものが存在するか否かを確認する。存在する場合、即ち、ＭＦＰ１００Ａまでの距離が終端サーバ３００よりも近い中継サーバ２００が少なくとも１つ存在する場合（ステップＳ６５７にてＹＥＳ）は、ステップＳ６５９の処理を実行する。存在しない場合、即ち、ＭＦＰ１００Ａから終端サーバ３００までの距離が最短である場合（ステップＳ６５７にてＹＥＳ）は、ステップＳ６５５の処理を実行する。
【０１０４】
ステップＳ６５９において、データ処理部３３７は、ＭＦＰ１００Ａまでの距離が終端サーバ３００よりも短い１又は複数の中継サーバ２００の中に利用可能な中継サーバがあるか否かを確認する。例えば表８に示したように、中継サーバがメンテナンス中である場合は、当該中継サーバからファイルをダウンロードすることができない。利用可能な中継サーバ２００が存在しない場合（ステップＳ６５９にてＮＯ）は、ステップＳ６５５の処理を実行する。利用可能な中継サーバ２００が存在する場合（ステップＳ６５９にてＹＥＳ）は、ステップＳ６６１の処理を実行する。
ステップＳ６６１において、データ処理部３３７は、ダウンロード元サーバとして上記各ステップの処理を実行することによって必要な条件を満たすと判定された１つの中継サーバ２００を選択する。
【０１０５】
〔効果〕
以上のように本実施形態によれば、クライアント機器が中継サーバの情報を保持している必要はないので、中継サーバの追加・廃止に柔軟に対応できる。
また、クライアント機器が要求する処理の内容に応じて最適アップロード先（又はダウンロード元）となるサーバを判定するので、より効果的にデータ容量を削減できる。仮に、データ容量が小さく、容量を削減する必要がない場合は中継サーバを介在させることによる処理の遅延を防止するため、クライアント機器から直接終端サーバにデータを送信するようにしてもよい。また、仮に、データ容量が比較的大きい場合に、処理能力の不足により中継サーバによる中間処理を実施しても効果的に処理時間を短縮できないと見込まれる場合には、クライアント機器から直接終端サーバにデータを送信するようにしてもよい。
また、クライアント機器の位置情報、ユーザが予め設定した位置情報、或いはユーザの中継サーバ利用履歴情報に基づいてデータアップロード先（又はダウンロード元）となるサーバを判定するので、より処理時間短縮効果の大きいサーバを選択できる。更に、中継サーバの状態（オンラインか否かや混雑具合）に基づいて最終的なデータのアップロード先（又はダウンロード元）となるサーバを判定するので、利用可能なサーバを確実に判定できる。
【０１０６】
〔本発明の実施態様、作用、効果のまとめ〕
〈第一の実施態様〉
クライアント機器１００と終端サーバ３００Ａとに接続される中継サーバ２００であって、クライアント機器との間、及び終端サーバとの間で夫々通信する通信手段（通信ネットワークＮ）と、クライアント機器から送信される処理対象の電子データを、通信手段を介して受信する第１の受信手段（下流通信部２３１）と、クライアント機器が要求する処理の種別に応じて、第１の受信手段で受信した電子データに対してデータの容量を削減する削減処理（例：カラー・モノクロ分離処理）を実行するデータ処理手段（データ処理部２３７）と、データ処理手段で削減処理がされた第１の処理済データ（例：モノクロ画像データ）を、通信手段を介して終端サーバに送信する送信手段（上流通信部２３２）と、送信手段で送信した第１の処理済データに対して終端サーバが所定の処理を実行することにより得られた第２の処理済データ（例：モノクロＯＣＲ処理の結果）を、終端サーバから通信手段を介して受信する第２の受信手段（上流通信部２３２）と、第２の受信手段で受信した第２の処理済データと、第１の受信手段で受信した電子データとを合成する合成手段（データ処理部２３７）と、を有することを特徴とする。
本態様によれば、クライアント機器から受信した電子データに対して、中継サーバがデータの容量を削減する中間処理を実行する。中継サーバは中間処理後の第１の処理済データを終端サーバに転送するので、クライアント機器と終端サーバとの間の転送速度を安価に向上させることができる。その結果、クラウドシステムにおけるデータ処理性能を向上させることができる。
【０１０７】
〈第二の実施態様〉
クライアント機器１００と中継サーバ２００とに接続される終端サーバ３００Ａであって、クライアント機器との間、及び中継サーバとの間で夫々通信する通信手段（通信ネットワークＮ）と、クライアント機器からの電子データのアップロードリクエストに基づいて、利用可能な中継サーバと終端サーバの中から電子データのアップロード先とすべきサーバを判定する判定手段（データ処理部２３７）と、判定手段で判定したサーバの情報を、通信手段を介してクライアント機器に送信する第１の送信手段（通信部３３１）と、電子データのアップロード先とすべきサーバが中継サーバとして判定手段で判定されたとき、中継サーバが電子データに対してデータの容量を削減する削減処理（例：カラー・モノクロ分離処理）を実行して得られた第１の処理済データを受信し、受信した第１の処理済データに対して所定の処理を実行して得た第２の処理済みデータ（例：モノクロＯＣＲ処理の結果）を中継サーバに送信する第２の送信手段（通信部３３１）と、を備えることを特徴とする。
本態様によれば、クライアント機器が中継サーバの情報を保持している必要がないため、中継サーバの追加・廃止に柔軟に対応できる。
【０１０８】
〈第三の実施態様〉
クライアント機器１００と中継サーバ２００と終端サーバ３００Ａとが互いに接続された情報処理システムであって、クライアント機器と中継サーバと終端サーバとの間で夫々通信する通信手段（通信ネットワークＮ）と、クライアント機器からの電子データのアップロードリクエストに基づいて、利用可能な中継サーバと終端サーバの中から電子データのアップロード先とすべきサーバを判定する判定手段（データ処理部３３７）と、判定手段で判定したサーバの情報を、通信手段を介してクライアント機器に送信する送信手段（通信部３３１）と、を備えたことを特徴とする。
本態様によれば、クライアント機器が中継サーバの情報を保持している必要がないため、クライアント機器をメンテナンスすることなく、中継サーバの追加・廃止が可能となり、システム運用が容易となる。
【０１０９】
〈第四の実施態様〉
クライアント機器１００と中継サーバ２００と終端サーバ３００Ａとが互いに接続された情報処理システムであって、クライアント機器と中継サーバと終端サーバとの間で夫々通信する通信手段（通信ネットワークＮ）と、クライアント機器からの電子データのダウンロードリクエストに基づいて、データを記憶している中継サーバと終端サーバの中から電子データのダウンロード元とすべきサーバを判定する判定手段（データ処理部３３７）と、判定手段で判定したサーバの情報を、通信手段を介してクライアント機器に送信する送信手段（通信部３３１）と、を備えたことを特徴とする。
本態様によれば、クライアント機器が中継サーバの情報を保持している必要がないため、クライアント機器をメンテナンスすることなく、中継サーバの追加・廃止が可能となり、システム運用が容易となる。
【符号の説明】
【０１１０】
１００Ａ…ＭＦＰ、１００Ｂ…モバイル機器、２００…中継サーバ、２３１…下流通信部、２３２…上流通信部、２３３…通信制御部、２３４…認証制御部、２３５…データ処理制御部、２３６…プログラム記憶部、２３７…データ処理部、２３８…データ記憶部、３００…終端サーバ、３３１…通信部、３３３…通信制御部、３３４…認証制御部、３３５…データ処理制御部、３３６…プログラム記憶部、３３７…データ処理部、３３８…データ記憶部
【先行技術文献】
【特許文献】
【０１１１】
【特許文献１】特許第５４８２３５３号公報
【図１】
2016177444.tif 000012
【図２】
2016177444.tif 000013
【図３】
2016177444.tif 000014
【図４】
2016177444.tif 000015
【図５】
2016177444.tif 000016
【図６】
2016177444.tif 000017
【図７】
2016177444.tif 000018
【図８】
2016177444.tif 000019
【図９】
2016177444.tif 000020
【図１０】
2016177444.tif 000021
【図１１】
2016177444.tif 000022
【図１２】
2016177444.tif 000023
【図１３】
2016177444.tif 000024
【図１４】
2016177444.tif 000025
【図１５】
2016177444.tif 000026
【図１６】
2016177444.tif 000027
【図１７】
2016177444.tif 000028
【図１８】
2016177444.tif 000029
【図１９】
2016177444.tif 000030