(57)【要約】【課題】ネットワークや単一の装置に負荷をできるだけ集中させることなく効率的にファイル保存処理を行う情報処理装置を提供することを目的とする。【解決手段】システム１０２は、ファイル保存をリクエストした外部装置１０１から、ファイルとファイルの保存多重度を受信して、情報処理装置１４０１がファイルを保存して、次に保存すべき他の情報処理装置１４０１にファイルを保存することを命令する処理を保存多重度分繰り返す。【選択図】  図１０
2015141622.tif 000002
【特許請求の範囲】
【請求項１】
ファイル保存をリクエストした外部装置から、ファイルと当該ファイルの保存多重度を受信する受信手段と、
情報処理装置が前記ファイルを保存して、次に保存すべき他の情報処理装置にファイルを保存することを命令する処理を前記保存多重度分繰り返す制御手段と、を備える
ことを特徴とするシステム。
【請求項２】
前記システムはファイルを保存する情報処理装置の優先度を示す優先度情報を有し、
前記制御手段は、前記ファイルが最先に保存される情報処理装置を特定し、
前記最先に保存される情報処理装置の次に前記ファイルが保存される他の情報処理装置として、前記優先度の順序に従って、前記最先に保存される情報処理装置の次の優先度の前記他の情報処理装置に保存することが前記最先に保存される情報処理装置によって命令される
ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記ファイルが保存される情報処理装置の優先度を、有効期限付きで管理する期限管理手段をさらに備える
ことを特徴とする請求項１または２に記載のシステム。
【請求項４】
前記ファイルが保存される情報処理装置の起動状態を管理する管理手段をさらに備え、
前記管理手段は、前記ファイルを保存する命令を受信した情報処理装置が前記ファイルを保存できない場合に、前記ファイルを保存できない前記情報処理装置を前記優先度情報から除外する
ことを特徴とする請求項２に記載のシステム。
【請求項５】
前記管理手段は、前記ファイルを保存する命令を受信した前記情報処理装置が前記ファイルを保存できない回数を管理し、
前記回数が閾値以上である場合に前記ファイルを保存する命令を受信した前記情報処理装置を前記優先度情報から除外する
ことを特徴とする請求項４に記載のシステム。
【請求項６】
前記管理手段は、前記回数が閾値以上である場合にエラーログを出力する
ことを特徴とする請求項５に記載のシステム。
【請求項７】
前記外部装置はロードバランサであり、前記受信手段は前記ロードバランサを介してラウンドロビンに前記ファイル保存のリクエストを受け付ける
ことを特徴とする請求項１乃至６のいずれか一項に記載のシステム。
【請求項８】
ファイル保存をリクエストした外部装置から、ファイルと当該ファイルの保存多重度を受信する受信工程と、
情報処理装置が前記ファイルを保存して、次に保存すべき他の情報処理装置にファイルを保存することを命令する処理を前記保存多重度分繰り返す制御工程と、を備える
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルを保存するシステムおよび制御方法に関する。
【背景技術】
【０００２】
ファイルを多重保存するシステムにおいて、保存要求がなされたファイルを負荷の低いファイルサーバに保存する技術が提案されている。特許文献１は、各ファイルサーバが自装置の負荷情報を他サーバに定期的に報告し、ファイルを保存する際は、負荷情報を参照することによって負荷が低いサーバを特定し、負荷の低いサーバに対してファイルを保存する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００―２０７３７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、ファイルと保存多重度を受信する情報処理システムを想定する。この情報処理システムは、例えば、クライアントからファイルと保存多重度を受信して、受信したファイルを指定された保存多重度で複数のファイルサーバに保存し、サーバの可用性を向上させるシステムである。
【０００５】
保存多重度に従って保存するファイルサーバを特許文献１が開示する技術に従って決定すると次のような問題が生じる。すなわち、特許文献１では各ファイルサーバが負荷状態を管理サーバに報告し、負荷の少ないサーバにファイルを保存する。保存されるファイルが細かい場合などは、各ファイルサーバの負荷の変化が激しいため、報告間隔を短くする必要があるが、報告間隔が短すぎる場合や、ファイルサーバ数が多い場合は管理サーバに負荷が集中するおそれがあった。
【０００６】
本発明は、ネットワークや単一の装置に負荷をできるだけ集中させることなく効率的にファイル保存処理を行う情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明に係るシステムは、ファイル保存をリクエストした外部装置から、ファイルと当該ファイルの保存多重度を受信する受信手段と、情報処理装置が前記ファイルを保存して、次に保存すべき他の情報処理装置にファイルを保存することを命令する処理を前記保存多重度分繰り返す制御手段と、を備える。
【発明の効果】
【０００８】
本発明の情報処理装置によれば、ネットワークや単一の装置に負荷を集中させることなく効率的にファイル保存処理を行うことが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態のクラウドシステムの全体構成例を示す図である。
【図２】クライアント端末、サーバコンピュータのハードウェア構成図である。
【図３】スキャンサーバのソフトウェア構成図である。
【図４】スキャン処理の一連のシーケンス図である。
【図５】タスクサーバのソフトウェア構成図である。
【図６】フローサーバ群のソフトウェア構成図である。
【図７】ファイル管理サービスサーバ群の全体構成を示す図である。
【図８】ファイル管理サービスのソフトウェア構成図である。
【図９】ファイル管理サーバ情報、ファイルパス情報の一例である。
【図１０】優先度決定の流れを表したフローチャートである。
【図１１】ファイル保存処理の一例である。
【図１２】本発明により得られる効果を説明する図である。
【図１３】実施例２における優先度情報の一例である。
【図１４】実施例２における優先度決定の流れを説明するフローチャートである。
【図１５】障害が発生した際の処理の流れを説明するフローチャートである。
【図１６】実施例３における課題を説明するための図である。
【図１７】実施例３におけるファイル管理サーバ情報の一例である。
【図１８】実施例３におけるエラーが発生した際のフローチャートである。
【図１９】実施例４におけるエラーが発生した際のフローチャートである。
【発明を実施するための形態】
【００１０】
最初に、ファイルを複製する製品として例えば、マイクロソフト社のＤｉｓｔｒｉｂｕｔｅｄ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（登録商標）（以下ＤＦＳ）に含まれるレプリケーション（複製）作成機能（以降、ＤＦＳレプリケーション機能）について検討する。ユーザは、ＤＦＳレプリケーション機能を利用する際に、事前にＡｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ（登録商標）（以下ＡＤ）に複数のサーバを登録しておく。そして、ＤＦＳレプリケーション機能を用いて、例えば「サーバＡに保存されたファイルはサーバＢに複製する」というような複製ルールを手動で作成し、全サーバがＡＤサーバを経由してこのルールを共有することで、ファイルのレプリケーションが可能となる。しかしながら、ＤＦＳレプリケーション機能は、１台が故障した場合に複製先が動的に切り替わらないため、ファイルの複製数が減少してしまう。その結果、指定された保存多重度でファイルを保存することができなくなるため、可用性が低下してしまう。この課題を解決するためには、複製ルールは固定ではなく、稼働中のサーバの中からファイルの保存先サーバを動的に選択する必要がある。
【００１１】
しかしながら、動的に保存先サーバの選択する場合のアルゴリズムによっては、ボトルネックが発生するため、パフォーマンスが低下するという課題がある。保存先サーバの選択アルゴリズムとして例えば、
（１）稼働中のファイルサーバの中から、容量が少ないサーバを選択する方法
（２）稼働中のファイルサーバの中から、ランダムにサーバを選択する方法
などが考えられる。
【００１２】
方法（１）については、各サーバの使用容量が均等に分散されるため、効率的にファイルサーバを利用することができる。一方で、全ファイルの容量とその保存先をデータベースなどで管理し、ファイル保存時は、毎回どのファイルサーバにどれだけ保存されているのかを計算する必要がある。また、ファイルサーバをスケールアウトする場合は、スケールアウト直後のサーバには他サーバに比べてファイルが少ないため、集中的にファイルが保存され、ディスクＩ／Ｏが集中する。
【００１３】
方法（２）については、稼働中のファイルサーバを取得する際のみ、データベースへのアクセスが発生するため、方法（１）ほどではないが、ある程度の負荷は集中する。また、ネットワーク負荷、ＣＰＵ及びメモリに関して考えた場合、長い期間でみると各サーバに均等にアクセスが分散するが、ある短い瞬間をみると１つのサーバに負荷が集中する可能性はある。従って、方法（１）、（２）のどちらのアルゴリズムを選択した場合でも、ボトルネックが存在するためシステムのパフォーマンス低下の原因となりうる。以降、このような課題を前提に解決しうる構成について説明する。
【００１４】
サーバコンピュータ側で各種処理を行う形態として、クラウドコンピューティングシステムやＳａａＳ（Software as a Service）という技術が提案されている。また、クラウドコンピューティングでは、多くのコンピューティング・リソースを利用し、データ変換やデータ処理を分散実行することで、多くのクライアントからの要求を同時に処理することが可能である。さらに、本明細書ではクラウドコンピューティングの特徴を生かすため、サーバでの一連の処理を細かく規定されたタスクの連結で実現し、それらを同時並行で処理することで、多数のジョブをスケーラブルに処理する方法について検討する。
【００１５】
ここで、タスクとは、本明細書において、ジョブを構成する処理内容又は処理内容を実現するためのソフトウェア上のプロセスを意味する。この際、ジョブ処理機構において、先頭のタスクが処理するべき一時ファイルや、各タスクにて処理された結果生成される一時ファイルは、可用性確保のために複数のファイルサーバにレプリケーションを作成することが考えられる。
【００１６】
１つ以上のタスクから構成されるジョブと、前記ジョブに関する情報や実行順序などを制御するジョブ管理サービスサーバを想定する。各タスクはそれぞれ複数のインスタンスを立ち上げることが可能であり、各インスタンスは非同期でジョブ管理サービスサーバからジョブを取得し、例えば黒点除去などの画像処理や共有フォルダへのデータ格納処理などを行う。各タスクで扱うバイナリデータはファイル管理サービスサーバ群が管理し、各タスクは必要に応じて処理すべきデータをファイル管理サービスサーバ群から取得し、処理結果を保存する。この、タスクの処理結果としてファイル管理サービスサーバ群に投入されるデータを、本明細書ではタスク処理結果データと呼ぶ。また、データはファイルに含まれる情報である。本明細書では、ジョブ管理サービスサーバにジョブを投入するアプリケーションをサービスアプリケーションと呼ぶ。
【００１７】
サービスアプリケーションは、ジョブ管理サービスサーバに対してジョブを投入すると同時に処理すべきデータをファイル管理サービスサーバ群に投入する。この、ジョブ投入と同時にファイル管理サービスサーバ群に投入されるデータを、本明細書では初期データと呼ぶ。また、データはファイルに含まれる情報である。
【００１８】
初期データやタスク処理結果データは、保存後にデータを取り出すことができるように、複数のファイルサーバに保存される。これによって、サーバに障害等が発生した場合でも、初期データやタスク処理結果データを取り出すことができるため、初期データに基づいて処理を再開することにより、システムの可用性向上に寄与する。
【００１９】
しかしながら、複数のファイルサーバに保存する際の保存先選択のアルゴリズムによっては、データベース、ネットワーク、ＣＰＵ又はディスクＩ／Ｏの１つ以上がボトルネックとなる。これにより、一時ファイル管理サービスサーバ群のパフォーマンスが低下する可能性がある。以降説明する実施例では、ファイルの保存先を、パフォーマンスを低下させることなく選択する方法について説明する。
【００２０】
（実施例１）
図１は、本実施形態の情報処理システムの全体構成を示す図である。本実施形態の情報処理システムは、クラウドシステムであって、クライアント端末１０６のユーザに画像処理サービスを提供する。図１中の情報処理システムは、スキャンサーバ１０１、フローサーバ群１０２、タスクサーバ１０３，１０４、クライアント端末１０６、画像形成装置１０７、クラウドサービスサーバ１０８を備える。
【００２１】
図１に示す構成は一例であり、タスクサーバ１０３，１０４、クライアント端末１０６、画像形成装置１０７、クラウドサービスサーバ１０８は、複数台接続されていることを仮定している。スキャンサーバ１０１乃至タスクサーバ１０４は、ネットワーク１１０を介して通信可能に接続されている。クライアント端末１０６および画像形成装置１０７と、スキャンサーバ１０１乃至タスクサーバ１０４とは、ネットワーク１１１およびネットワーク１１０を介して通信可能に接続されている。また、クラウドサービスサーバ群１０８とスキャンサーバ１０１乃至タスクサーバ１０４とは、ネットワーク１１２およびネットワーク１１０を介して通信可能に接続されている。
【００２２】
ネットワーク１１０乃至１１２は、例えば、インターネット等のＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれであり。またはこれらの組み合わせにより実現される、いわゆる通信ネットワークである。ＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略称である。ＷＡＮは、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略称である。ＡＴＭは、Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅの略称である。
【００２３】
ネットワーク１１０乃至１１２が、上述したＬＡＮ乃至データ放送用無線回線の組み合わせにより実現される通信ネットワークであってもよい。すなわち、ネットワーク１１０乃至１１２は、データの送受信が可能であればよい。この例では、本実施形態の情報処理システムは、クラウドシステムであるので、ネットワーク１１０、１１２は、インターネット、ネットワーク１１１は、企業内ネットワークやサービスプロバイダのネットワークである。
【００２４】
スキャンサーバ１０１、フローサーバ群１０２、タスクサーバ１０３，１０４は、サーバコンピュータ上にて仮想サーバによって実行されており、これらサービスサーバ群がユーザに対してクラウドサービスを提供する。また、クラウドサービスサーバ１０８はインターネット上に公開されており、クラウドサービスサーバ１０８もサーバコンピュータ上にて実行されている。
【００２５】
以降、本明細書で説明するサーバのそれぞれの機能は単体のサーバ又は単体の仮想サーバによって実現しても構わないし、あるいは複数のサーバや複数の仮想サーバによって実現しても構わない。あるいは複数のサーバが仮想サーバとして単体のサーバ上で実行されても構わない。
【００２６】
クライアント端末１０６は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、ＰＤＡ（パーソナルデータアシスタント）等から構成されるが、プログラムの実行環境が内蔵された携帯電話であってもよい。クライアント端末１０６では、Ｗｅｂブラウザ（インターネットブラウザ、ＷＷＷブラウザ、Ｗｏｒｌｄ Ｗｉｄｅ Ｗｅｂの利用に供するブラウザ）等のプログラムを実行する環境が内蔵されている。
【００２７】
図２は、クライアント端末、スキャンサーバ、フローサーバ群、タスクサーバを実現するサーバコンピュータのハードウェア構成図の例である。クライアント端末１０６、サーバコンピュータは、ＣＰＵ２０２、ＲＡＭ２０３、ＲＯＭ２０４、ＨＤＤ２０５を備える。ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。ＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。ＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称である。ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。また、クライアント端末１０６、サーバコンピュータは、ＮＩＣ２０９、キーボード２０７、ディスプレイ２０６、インタフェース２０８を備える。ＮＩＣは、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略称である。
【００２８】
ＣＰＵ２０２は、装置全体の制御を行う。ＣＰＵ２０２は、ＨＤＤ２０５に格納されているアプリケーションプログラム、ＯＳ等を実行し、ＲＡＭ２０３にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＯＳは、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略称である。ＲＯＭ２０４は、記憶手段であり、内部には、基本Ｉ／Ｏプログラム等の各種データを記憶する。ＲＡＭ２０３は、一時記憶手段であり、ＣＰＵ２０２の主メモリ、ワークエリア等として機能する。ＨＤＤ２０５は、外部記憶手段の一つであり、大容量メモリとして機能し、Ｗｅｂブラウザ等のアプリケーションプログラム、サーバ群のプログラム、ＯＳ、関連プログラム等を格納している。
【００２９】
ディスプレイ２０６は、表示手段であり、キーボード２０７から入力したコマンド等を表示したりする。インタフェース２０８は、外部装置Ｉ／Ｆであり、プリンタ、ＵＳＢ機器、周辺機器を接続する。キーボード２０７は指示入力手段である。システムバス２０１は、装置内におけるデータの流れを司る。ＣＰＵ２０２乃至インタフェース２０８は、システムバス２０１に接続されている。ＮＩＣ２０９は、インタフェース２０８およびネットワーク１１０乃至１１２を介して、外部装置とのデータのやり取りを行う。なお、図２中に示す装置構成は一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ２０４、ＲＡＭ２０３、ＨＤＤ２０５のうちのいずれであってもよい。ＣＰＵ２０２がＨＤＤ２０５に記憶されているプログラムに基づき処理を実行することによって、図８等に示されるようなソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。
【００３０】
図２（Ｂ）は、クライアント端末の構成例を示す図である。クライアント端末１０６は、Ｗｅｂブラウザ３０１を備える。Ｗｅｂブラウザ３０１は、スキャンサーバ１０１（図１）が提供するＷｅｂアプリケーションへのリクエストの送信と、レスポンスの表示等を行う。クラウドサービスを利用するユーザは、クライアント端末１０６のＷｅｂブラウザ３０１を利用して、クラウドサービスを利用する。
【００３１】
続いて、クラウドサービスを提供するスキャンサーバ１０１、フローサーバ群１０２、タスクサーバ１０３，１０４に関して説明する。
【００３２】
図３は、スキャンサーバ１０１のソフトウェア構成例を示す図である。スキャンサーバ１０１は、クラウドサービスにおけるスキャン機能の提供を行うサービスである。スキャンサーバ１０１は、Ｗｅｂアプリケーション５０１、ファイル保存ライブラリ５０２を備える。これら構成要素により各種処理が実行されることでスキャンサービスがユーザに提供される。
【００３３】
Ｗｅｂアプリケーション５０１は、スキャン機能を提供するアプリケーションプログラムを提供する。チケット作成部５１１はユーザがスキャンチケットを作成するための一連の機能を実現する。スキャンチケットには、画像形成装置１０７で原稿をスキャンする際の設定や、その後の処理フローの定義、各処理フローで実施されるタスクの為のパラメーター等が記録されている。
【００３４】
外部Ｉ／Ｆ５１４は、画像形成装置１０７上で動作するスキャンソフトウェア部（不図示）との通信を行う。スキャンソフトウェア部より、外部Ｉ／Ｆ５１４を通じて、チケット一覧部５１２の機能や、スキャン受信部５１３の機能へのアクセスを行う。チケット一覧部５１２は、画像形成装置１０７からの要求にしたがい、チケット管理部５１５に保存されているチケット情報に基づいて、チケットの一覧を生成して画像形成装置１０７に返す。
【００３５】
ファイル保存ライブラリ５０２は、フローサーバ群１０２にデータを保存する際に使用するライブラリである。詳細は後述する。スキャン受信部５１３は、画像形成装置１０７からスキャンチケットと画像データとを受信する。そして、スキャン受信部５１３は、受信したスキャンチケットと画像データをファイル保存部５２１に対して送信する。
【００３６】
次に、図４を用いて、スキャンジョブの投入までの流れを説明する。まずはスキャン処理についてスキャンチケットの作成とスキャンジョブの投入までの流れを説明する。Ｓ７０１で、チケット作成部５１１は、クライアント端末１０６のＷｅｂブラウザ３０１からスキャンチケット作成画面リクエストを受け取り、Ｓ７０２でスキャンチケット作成画面を生成しレスポンスを行う。Ｓ７０３で、ユーザがクライアント端末１０６のＷｅｂブラウザ３０１を用いて操作を行い、スキャンチケット作成リクエストを行う。これにより、ユーザはスキャンチケット作成と作成したスキャンチケットのチケット管理部５１５への保存を依頼する。チケット管理部５１５は、チケット情報を保存した後、Ｓ７０４でレスポンスを返す。
【００３７】
Ｓ７０５で、画像形成装置１０７のスキャンソフトウェア部は、外部Ｉ／Ｆ５１４を通じてチケット一覧部５１２に対して、チケット一覧取得を行う。画像形成装置１０７はスキャン・プリントの両機能を併せ持つ装置であっても、プリント機能のみを持つスキャン専用装置であってもよい。チケット一覧部５１２は、スキャンチケットの一覧をチケット管理部５１５を用いて生成し、生成したチケット一覧をスキャンソフトウェア部にレスポンスとして返す。レスポンスを受け取った画像形成装置１０７は、取得したチケット一覧をユーザインターフェース上に表示する。
【００３８】
Ｓ７０７で、ユーザは、画像形成装置１０７のユーザインターフェース上に表示されたチケットのいずれかを選択し、画像形成装置１０７に備え付けられたスキャン装置に紙を設置し、スキャンを実行する。これにより、スキャンソフトウェア部は、外部Ｉ／Ｆ５１４を通じてスキャン受信部５１３に対して、スキャンした画像データとスキャンチケットの送信を行う（Ｓ７０８）。
【００３９】
Ｓ７１４で、スキャンサーバ１０１は受信した画像データをフローサーバ群１０２に送信し、データ保存を依頼する。このとき、ファイル保存部５２１は、画像データと共に、保存多重度を含むファイル情報をフローサーバ群１０２に投入する。ファイル情報については後述する。これによってフローサーバ群１０２のファイル管理サービスサーバ群８０３はファイル（本実施例では画像データ）とファイルに関連するファイル情報を受信する。
【００４０】
フローサーバ群１０２は、画像データを正しく受信した後、Ｓ７１５にてスキャンサーバ１０１に、画像データを一意に表すＩＤ（ファイルグループＩＤ）を応答する。その後、Ｓ７１６で、スキャン受信部５１３は、ジョブ情報としてファイルグループＩＤ、スキャンチケット、テナントＩＤ、保存多重度をフローサーバ群１０２に送信する。ここでテナントＩＤとは、ジョブを投入したユーザが属するテナントを表す、テナントに対して一意のＩＤである。以上がスキャンサーバ１０１のシステム構成と、スキャンジョブの投入までの流れである。
【００４１】
図５は、タスクサーバの構成例を示す図である。この例では、タスクサーバ１０３の構成を説明する。タスクサーバ１０４の構成は、タスクサーバ１０３の構成と同様である。タスクサーバ１０３は、画像データに対してＯＣＲ処理を行い、ＯＣＲ結果のテキストデータを画像データに埋め込む処理を行う。また、タスクサーバ１０４は、クラウドサービスサーバ群１０８の中のストレージ機能を提供する特定のサービスに対して、画像データをアップロードし保管する処理を行う。
【００４２】
図５に示すように、タスクサーバ１０３は、タスク取得部１０１１、データ取得部１０１２、データ保存部１０１３、タスクステータス通知部１０１４、タスク処理部１０１５を備える。タスク取得部１０１１は、定期的にフローサービスサーバ群１０２に問い合わせを行い、タスクサーバ１０３にて処理可能なタスクを非同期で取得する。データ取得部１０１２は、タスク取得部１０１１が取得したタスクの情報に基づいて、フローサービスサーバ群１０２から、処理すべき画像データを取得する。タスク処理部１０１５は、データ取得部１０１２が取得した画像データに対して各種処理を行う。また、タスク処理部１０１５は、タスク処理部１０１５による処理結果をデータ保存部１０１３に渡す。データ保存部１０１３は、タスク処理部１０１５から受け取った処理結果をフローサービスサーバ群１０２に保存する。タスクステータス通知部１０１４は、定期的にフローサービスサーバ群１０２に状態通知を行う。状態通知は、タスクサーバがタスク処理中であることを知らせる通知である。
【００４３】
図６は、フローサービスサーバ群の構成例を示す図である。フローサービスサーバ群１０２は、ルート管理、ジョブ管理、ファイル管理を行うサービスサーバ群である。フローサービスサーバ群１０２は、ルート管理サービスサーバ群１２０１、ジョブ管理サービスサーバ群１２０２、ファイル管理サービスサーバ群１２０３を備える。ルート管理サービスサーバ群１２０１は、ルート情報を管理する。ジョブ管理サービスサーバ群１２０２は、ルート情報に基づいて、ジョブの処理を管理する。
【００４４】
ファイル管理サービスサーバ群１２０３は、ジョブ投入時のデータや各タスクの処理結果データの保存を管理する。具体的には、ファイル管理サービスサーバ群１２０３は、スキャンサーバ１０１やタスクサーバ（１０３,１０４）からの要求に応じて、ファイルを格納し、その格納先のパスを管理する。スキャンサーバ１０１は、タスクサーバからファイル取得要求があった場合には、保存したファイルのバイナリデータをタスクサーバに返却する。また、ファイル管理サービスサーバ群１２０３は、タスクサーバやジョブ管理サービスサーバ群１２０２からファイル削除の要求があった場合には、保存したファイルを削除する。一時ファイル管理サービスサーバ群１２０３の機能を利用することによって、スキャンサーバ１０１やタスクサーバは、ファイルの格納先のパスやファイルサーバの状態を気にすることなく、ファイルの保存、取得、削除を行うことができる。
【００４５】
続いて、ファイル管理サービスサーバ群１２０３について説明する。図７は、本実施形態の情報処理装置として機能するファイル管理サービスサーバ群１２０３の全体構成を示す図である。図７に示すファイル管理サービスサーバＡ１４０１乃至Ｘ１４０３は、ネットワーク１４１０を介して接続されている。ファイル管理サービスサーバＡ１４０１乃至Ｘ１４０３のサーバ数は自然数であればいくつでもよい。また、ネットワーク１４１０はネットワーク１１０と接続されている。ネットワーク１４１０はネットワーク１１０と同様のデータの送受信が可能な通信ネットワークである。
【００４６】
なお、ファイル管理サービスサーバＡ１４０１乃至Ｘ１４０３は１台又は複数台のサーバコンピュータ上にて仮想サーバとして実行されていてもよい。１台のサーバコンピュータ上で仮想サーバとして実行される場合、ネットワーク１４１０はサーバコンピュータ上のシステムバスによって実現される。
【００４７】
続いて図８を参照し、一時ファイル管理機能を提供するファイル管理サービスサーバＡ１４０１乃至Ｘ１４０３について説明する。各サーバＡ１４０１乃至Ｘ１４０３の構成は同様であるため、以下でファイル管理サービス１４０１を例に取って説明する。ファイル管理サービスサーバＡ１４０１は、Ｗｅｂアプリケーション部１５０１、バックエンド部１５０２、ＤＢ部１５３０、データ格納領域部１５４１を備える。ＤＢ部１５３０は、ファイル管理サーバ管理ＤＢ部１５３１、パス管理ＤＢ部１５３２を備える。これらの構成要素が各種処理を実行することでファイル管理サービスが提供される。有効期限保持部３５１および優先度情報保持部３５２については実施例１では使用しないため、実施例２で後述する。
【００４８】
ファイル管理サーバ管理ＤＢ部１５３１は、ファイルの格納先であるファイル管理サービスサーバＡ１４０１乃至Ｘ１４０３に関する情報を管理する。また、ファイル管理サーバ管理ＤＢ部１５３１は、保存先サーバ優先度決定部１５２２からリクエストを受け付けて各サーバに共通のＤＢにアクセスし、起動中のファイル管理サービスサーバの情報を取得する。図９（Ａ）は、ＤＢ部１５３１が管理するデータの例を示す。ＩＤ１６０１は、ファイル管理サービスサーバをファイル管理サービスサーバ群８０３内で一意に識別するための情報である。ホスト名１６０２は、ネットワーク１４１０上におけるファイル管理サービスサーバの一意のアドレスを示す。アクティブフラグ１６０３は、ホスト名１６０２に存在するファイル管理サービスサーバとの通信の可否を示す真偽値であり、通信可能な場合はＴｒｕｅ、通信不可能な場合はＦａｌｓｅを取る。共有フォルダ名１６０４は、ファイル管理サービスサーバＡ１４０１乃至Ｘ１４０３上に存在するフォルダである。データ格納領域部１５４１は共有フォルダ名１６０４が指すフォルダのことを示す。
【００４９】
パス管理ＤＢ部１５３２は、ファイル管理サービスサーバ群８０３が管理している、ファイル管理サービスサーバＡ１４０１乃至Ｘ１４０３のデータ格納領域部１５４１に保存された一時ファイルに関する情報をエントリとして管理する。一時ファイルとは、スキャンサーバ１０１から保存される初期データと、タスクサーバ１０３，１０４から保存されるタスク処理結果ファイルを指す。
【００５０】
図９（Ｂ）は、パス管理ＤＢ部１５３２で管理するエントリの例を示す。ファイルＩＤ１６１０は、ファイル管理サービスサーバＡ１４０１乃至Ｘ１４０３でエントリを一意に識別するための情報である。ファイルグループＩＤ１６１１は、各エントリを関連するジョブでグループ化するための情報である。従って、同一ジョブによって生成されたエントリは同一のファイルグループＩＤ１６１１を持つ。タスクＩＤ１６１２は、各エントリに対応する一時ファイルに関連するタスクを識別するタスクＩＤ、または初期データを表す「ｉｎｉｔ」のいずれかの値が入る。Ｎｏ１６１３は、各タスクによって生成された一時ファイルのファイル番号を示す。本実施例では、Ｎｏ１６１３は、スキャンサーバ１０１によって任意の番号が付与される。
【００５１】
パス１６１４は、各エントリに対応する一時ファイルの格納先のフルパスを示し、Ｗｅｂアプリケーション部１５０１がバックエンド部１５０２を通じてエンティティにアクセスする際に使用する。ホスト名１６１５は、各エントリに対応する一時ファイルの格納先のファイル管理サービスサーバのホスト名を示す。作成日１６１６は、一時ファイルをデータ格納領域部１５４１に格納が完了した時間を示す。有効期限１６１７は一時ファイルの有効期限を示し、有効期限１６１７を過ぎたエントリに対応する一時ファイルは削除される。テナントＩＤ１６１８は、一時ファイルを保存したユーザが所属するテナントのテナントＩＤを示す。
【００５２】
続いて、Ｗｅｂアプリケーション部１５０１が持つ各機能について説明する。Ｗｅｂアプリケーション部１５０１は、ファイル保存部１５１１とファイル取得部１５１２を備える。ファイル保存部１５１１は、スキャンサーバ１０１又はタスクサーバ１０３，１０４からのリクエストに応じてデータ格納領域部１５４１にファイルを指定された保存多重度で多重化して保存する機能を実現する。スキャンサーバ又はタスクサーバ１０３，１０４からのリクエストには、パス管理ＤＢ部１５３２のエントリとして管理されるタスクＩＤ１６１２、Ｎｏ１６１３、有効期限１６１７、テナントＩＤ１６１８など保存するファイルに関連する情報が含まれる。これらをまとめて本明細書ではファイル情報と呼ぶ。
【００５３】
次に、バックエンド部１５０２が持つ各機能について説明する。バックエンド部１５０２は、ファイル保存処理部１５２１、ファイル取得処理部１５２３、保存先サーバ優先度決定部１５２２を備える。ファイル保存処理部１５２１は、スキャンサーバ１０１又はタスクサーバ１０３，１０４から、ファイル保存部１５１１を介してファイル保存リクエストを受け取る。リクエストを受けたファイル保存処理部１５２１は、保存先サーバ優先度決定部１５２２に対して、ファイルの保存先となるデータ格納領域１５４１が属するファイル管理サービスサーバの優先度の取得リクエストを行う。本明細書では、ファイルの保存先となるデータ格納領域１５４１が属するファイル管理サービスサーバのことをファイル保存先サーバと呼ぶ。
【００５４】
図１０は、ファイル保存先サーバの優先度を決定するフローを表したフローチャートである。リクエストを受けた保存先サーバ優先度決定部１５２２は、Ｓ４１１にてファイル管理サーバ管理ＤＢ部１５３１からアクティブフラグ１６０３がＴｒｕｅのファイル保存先サーバを取得する。次に、保存先サーバ優先度決定部１５２２は、Ｓ４１１にて取得したファイル保存先サーバ一覧からＳ４１２にて円環状に優先度を設定する。円環状に優先度を決定する方法については後述する。優先度決定後、保存先サーバ優先度決定部１５２２は、ファイル保存処理部１５２１に対してファイル保存先サーバの優先度を応答する。
【００５５】
続いて、ファイル保存処理部１５２１は、ファイル保存先サーバの優先度の高い方から順に、指定された保存多重度分、ファイル保存先サーバを抽出して、抽出されたファイル保存先サーバのデータ格納領域部１５４１に対してファイル書込を行う。その後、パス管理ＤＢ部１５３２に対してファイル書込を行ったエントリを追加する。最後にファイル保存処理部１５２１は、ファイル保存部１５１１を介して呼出元のスキャンサーバ１０１又はタスクサーバ１０３，１０４に正常保存通知を応答する。
【００５６】
図１１を用いて、ファイル保存処理の流れ、円環状に優先度を決定する方法の具体例を説明する。ここでは、ファイル管理サービスサーバ群としてファイル管理サービスサーバＤ６１１乃至Ｇ６１４の４台のサーバが稼働している場合を想定する。また、スキャンサーバ１０１またはタスクサーバ１０３，１０４から一時ファイル管理サービスサーバ群に対する保存リクエストは、ＳＬＢ６２１によって各ファイル管理サービスサーバにリクエスト単位でラウンドロビンにアクセスが分散される。さらに保存リクエストは保存多重度２であると想定する。
【００５７】
図１１（Ａ）のＳ６３１で、スキャンサーバ１０１またはタスクサーバ１０３，１０４からロードバランサであるＳＬＢ６２１に保存リクエストが送信される。Ｓ６３２で、ＳＬＢ６２１はファイル管理サービスサーバＤ６１１に保存リクエストを送信する。Ｓ６３３で、ファイル管理サービスサーバＤ６１１のファイル管理サーバ管理ＤＢ１５３１は、保存先サーバ優先度決定部１５２２からリクエストを受付けて、起動中のファイル管理サービスサーバの情報を取得する。この情報は、起動中の複数の情報処理装置の配置順を含む。ファイル管理サービスサーバＤ６１１の保存先サーバ優先度決定部１５２２は、起動中の複数の情報処理装置の配置順を取得し、ファイルが最先に保存される情報処理装置として自装置を特定する。そして、保存先サーバ優先度決定部１５２２は自装置を基準として、ファイルが保存される情報処理装置の優先度を特定する。図１１（Ｂ）は、優先度情報６０１の例を示す。
【００５８】
優先度９１１は、ファイル保存処理部１５２１がファイル保存先サーバを決定する際に利用される。ホスト名９１２は、優先度９１１に対応するファイル保存先サーバのホスト名である。アクティブフラグ９１３は、ホスト名９１２に存在するファイル管理サービスサーバとの通信の可否を示す真偽値であり、通信可能な場合はＴｒｕｅ、通信不可能な場合はＦａｌｓｅが設定される。この例では、優先度９１１は、優先度が高い（優先度９１１が小さい）ファイル保存先サーバから順に、ＩＤ１６０１について「自分自身、自分より大きいサーバ（昇順）、自分より小さいサーバ（昇順）」となるように設定される。優先度を決定する際にＩＤ１６０１を用いたが、何を用いてもよく、また全ファイル管理サービスサーバが網羅されていればよい。
【００５９】
優先度決定後、ファイル管理サービスサーバＤ６１１上のファイル保存処理部１５２１は、優先度１のファイル管理サービスサーバＤ６１１に対してファイル保存処理Ｓ６３３を行う。次に、ファイル保存処理部１５２１は、優先度２のファイル管理サービスサーバＥ６１２に対してファイル保存処理を行う（Ｓ６３４）。ファイル保存処理では、保存リクエストを受付けたファイル管理サービスサーバＤ６１１がファイル管理サービスサーバＥ６１２に対してファイルの保存指示を行う。従って、多重度が３であれば、ファイル管理サービスサーバＤ６１１がファイル管理サービスサーバＥ６１２，Ｆ６１３にファイルの保存指示を行う。このようにファイル管理サービスサーバＤがファイルを保存して、次に保存すべき他のファイル管理サービスサーバにファイルを保存することを命令する一定処理が保存多重度分繰り返される。なお、通信エラーなどを考慮してファイル管理サービスサーバＥ６１２からのファイル保存完了通知を待ち、ファイル管理サービスサーバＦ６１３に保存指示が送信される構成としてもよい。
【００６０】
図１１（Ｃ）は、Ｓ６３１において保存リクエストがファイル管理サービスサーバＥ６１２に分散される場合の例を示す。優先度情報６５１は、このときファイル管理サービスサーバＦ６１３の保存先サーバ優先度決定部１５２２によって決定される優先度情報である。
【００６１】
優先度情報６０１と優先度情報６５１は、全てのファイル管理サービスサーバＤ６１１乃至Ｇ６１４を網羅しており、またそれぞれ１つずつ優先度がずれるように決定される。ファイル保存リクエストが、ＳＬＢ６２１によってファイル管理サービスサーバＦ６１３またはＧ６１４に分散された場合の優先度は省略するが、同様に全てのファイル管理サービスサーバＤ６１１〜Ｇ６１４が網羅される。また、それぞれ１つずつ優先度がずれるように決定される。「円環状に優先度を決定する」の「円環」とは、ファイル管理サーバＥ６１２→Ｆ６１３→Ｇ６１４→Ｄ６１１→Ｅ６１２…の円環のことであり、優先度１のファイル管理サービスサーバが決定すると、あとはこの円環の順に自動的に優先度が決定する。
【００６２】
ファイル保存リクエスト６３１の分散先によって、優先度が２つ以上ずれている場合や、そもそも順番がばらばらである場合は、１つのファイル保存先サーバに対して負荷が集中する可能性があるため、１つずつずれている方が望ましい。
【００６３】
図８に戻り、ファイル取得処理について説明する。ファイル取得処理部１５２３は、ファイル取得部１５１２を介して、タスクサーバ１０３，１０４からファイル取得リクエストを受け付ける。ファイル取得処理部１５２３は、ファイル取得リクエストを受け付けると、パス管理ＤＢ部１５３２からリクエストに含まれるファイル情報に対応するエントリを検索する。ファイル取得処理部１５２３は、リクエストに対応するエントリがパス管理ＤＢ部１５３２上に存在した場合、対応する一時ファイルをデータ格納領域から取得し、ファイル取得部１５１２を介して呼出元のタスクサーバ１０３，１０４に一時ファイルを返却する。
【００６４】
実施例１による効果の１つ目は、スキャンサーバ１０１又はタスクサーバ１０３，１０４からファイル保存を要求された場合であっても、ボトルネックができることによってパフォーマンスが低下することを防止できる点である。
【００６５】
本実施例１による効果の２つ目について図１２を用いて説明する。ファイル管理サービスサーバ群として、ファイル管理サービスサーバＨ８２１乃至Ｌ８２５が稼働している場合を想定する。ただし、図１２（Ａ）は、ファイル管理サービスサーバＬ８２５のみ障害で停止中である例を示す。またその時のファイル管理サービスサーバＪ８２３の保存先サーバ優先度決定部１５２２にて決定される優先度情報が優先度情報８４１である。一方、図１２（Ｂ）は、ファイル管理サービスサーバＬ８２５が図８（Ａ）に示す障害状態から復旧した状態である例を示す。その時のファイル管理サービスサーバＪ８２３の保存先サーバ優先度決定部１５２２にて決定される優先度情報が優先度情報８５１である。
【００６６】
ファイル管理サービスサーバＬ８２５が障害から復帰し、図１２（Ａ）から図１２（Ｂ）へと遷移する際や、スケールアウトする際は、優先度情報８４１の円環の途中にファイル管理サービスサーバＬ８２５を追加するだけでよい。また、スケールアウトによりファイル管理サービスサーバを増やした場合も同様に、増やしたサーバを円環の途中に入れるだけでよい。このように、ファイル管理サービスサーバの復旧やスケールアウトを簡単に行うことができる点が実施例１の２つ目の効果である。
【００６７】
（実施例２）
実施例１において、スキャンサーバ１０１又はタスクサーバ１０３，１０４からファイル保存部１５１１に対するファイル保存リクエストが大量に行われた場合を考える。このとき、保存先サーバ優先度決定部１５２２に対する優先度取得リクエストが大量に発生する、すなわち各装置の起動状態および非起動状態を管理するファイル管理サーバ管理ＤＢにアクセスが集中する。このためデータベースの負荷が上昇し、パフォーマンスが低下するという課題が存在する。
【００６８】
ファイル保存処理部１５２１がファイル保存部１５１１を介して、スキャンサーバ１０１又はタスクサーバ１０３，１０４からファイル保存リクエストを受け取った際の、実施例１との差は、保存先サーバ優先度決定部１５２２の優先度決定方法である。実施例２では、保存先サーバ優先度決定部１５２２がファイル保存先サーバの優先度を決定する方法を説明する。
【００６９】
図１３は、優先度情報保持部３５２が保持する優先度情報を示す。優先度情報保持部３５２はメモリ上に優先度情報９０１を保持し、有効期限保持部３５１は、優先度情報保持部３５２で保持されている優先度情報９０１の有効期限を保持する。つまり、優先度情報保持部３５２と有効期限保持部３５１は、ファイルが保存される情報処理装置の優先度を、有効期限付きで期限管理する。期限管理実施例１では、優先度情報９０１はファイル保存リクエスト毎にクリアされるのに対して、実施例２では、優先度情報９０１は保存処理毎にクリアされず、優先度情報保持部３５２に保持される。
【００７０】
続いて、保存先サーバ優先度決定部１５２２が、優先度を決定する手順を図１４に示すフローチャートを用いて説明する。保存先サーバ優先度決定部１５２２は、ファイル保存処理部１５２１から優先度取得リクエストを受け取ると、Ｓ１２０１にて、以下の処理を行う。つまり、保存先サーバ優先度決定部１５２２は、優先度情報保持部３５２でメモリ上に保持されている優先度情報が有効期限保持部３５１で保持されている期限内であるかどうかを確認する。
【００７１】
Ｓ１２０１にて有効期限内でないと判定された場合、保存先サーバ優先度決定部１５２２は、実施例１と同様にＳ１２１１にてファイル管理サーバ管理ＤＢ部１５３１からアクティブフラグ１６０３がＴｒｕｅのファイル保存先サーバを取得する。次に、Ｓ１２１２にて、保存先サーバ優先度決定部１５２２は、Ｓ１２１１にて取得したファイル保存先サーバ一覧からＳ１２１２にて円環状に優先度を設定する。
【００７２】
続いて、保存先サーバ優先度決定部１５２２は、Ｓ１２１３にて、優先度情報保持部３５２でメモリ上に保持されている優先度情報を、Ｓ１２１２にて設定した優先度情報に更新し、Ｓ１２１４にて有効期限保持部３５１の有効期限を延長する。例えば、有効期限は現在時刻から１分後などとして更新する。Ｓ１２１４の後、またはＳ１２０１にて有効期限内であると判定された場合、ファイル保存処理部１５２１は、優先度情報保持部３５２でメモリ上に保持している優先度情報９０１をそのまま返却する。
【００７３】
次に、ファイル保存処理部１５２１からファイル保存先サーバに対するファイル保存処理中にエラーが発生し、処理が失敗した場合の処理について図１５のフローチャートを用いて説明する。本明細書では、ファイル管理サーバ管理ＤＢ部１５３１で保持している各ファイル保存先サーバのアクティブフラグ１６０３をマスター情報と呼び、優先度情報保持部３５２にて保持しているアクティブフラグ９１３をテンポラリ情報と呼ぶことにする。
【００７４】
また、エラーが発生する場合とは、例えばファイル保存先サーバに障害が発生したために、ファイル保存処理部１５２１がファイル保存先サーバに対してファイルを保存することができなかった場合である。ファイル保存処理部１５２１は、自装置以外の情報処理装置にファイルを保存できない場合、ファイルを保存できない情報処理装置を非起動状態とし、当該非起動とした情報処理装置を配置順から除外する。具体的には、ファイル保存処理部１５２１は、ファイル保存中にエラーが発生すると、保存しようとしたファイル保存先サーバに障害が発生したと判断する。そして、Ｓ１３１１にてファイル保存処理部１５２１は、障害が発生したファイル保存先サーバに対応するサーバのマスター情報をＦａｌｓｅに変更する。さらに、ファイル保存処理部１５２１は、Ｓ１３１２にて保存先サーバ優先度決定部１５２２を介して、障害が発生したファイル保存サーバに対応するサーバのテンポラリ情報をＦａｌｓｅに変更する。
【００７５】
以上、ファイル保存部１５１１に対するファイル保存リクエストが集中した場合でも、有効期限内であれば、保存先サーバ優先度決定部１５２２は毎回ファイル管理サーバ管理ＤＢ部１５３１を参照しない。従って、実施例２により得られる効果は、ファイル管理サーバ管理ＤＢ部１５３１がボトルネックとなることなく、リクエストを捌ける点である。
【００７６】
（実施例３）
実施例２において、特定のファイル管理サービスサーバから別のファイル管理サービスサーバへの通信のみが出来ない場合を想定する。例えば、図１６に示すケースである。図１６（Ａ）は、ファイル管理サービスサーバＬ１７０１乃至Ｎ１７０３が稼働している状況を示す。この状況は、ファイアーウォール設定が誤っており、ファイル管理サービスサーバＬ１７０１からはファイル管理サービスサーバＭ１７０２へ通信できない例を示している。すなわち、図１６中の○印、×印はそれぞれ矢印の方向のファイル管理サービスサーバ間の通信がそれぞれ可能、不可能であることを示している。
【００７７】
図１６（Ａ）に示すファイル管理サーバ管理ＤＢ部１５３１の状態が図１６（Ｃ）であり、全てのサーバが稼働している状態である。この状態で、実施例２で説明したように処理が失敗した場合の処理に従うと、ファイル管理サービスサーバＭ１７０２が非起動状態になる。具体的には、ファイル管理サービスサーバＬ１７０１からファイル管理サービスサーバＭ１７０２に対する保存のみが出来ないため、ファイル管理サービスサーバＭ１７０２のアクティブフラグがＦａｌｓｅになる。この時のファイル管理サーバ管理ＤＢ部１５３１の状態が図１６（Ｄ）であり、各ファイル管理サービスサーバ間の通信状態を表したのが図１６（Ｂ）である。その結果、ファイル管理サービスサーバＭ１７０２、Ｎ１７０３の負荷上昇やデータ格納領域部１５４１の容量の圧迫を招く、という課題が存在する。
【００７８】
図１７は、本実施例における、ファイル管理サーバ管理ＤＢ部１５３１が保持する情報の例である。接続不可情報１０１１は、対応するファイル管理サービスサーバのファイル格納領域部１５４１へのファイル格納が失敗したファイル管理サービスサーバのＩＤ（識別情報）を紐付けて、かつカンマ区切りで保持している。本実施例では、この接続不可情報１０１１を用いて上記課題を解決する。
【００７９】
図１８は、あるファイル管理サービスサーバから別のファイル管理サービスサーバへのファイルの格納に失敗した場合の処理の流れを示す。ここでは、ファイル管理サービスサーバＡ１４０１（ＩＤ１６０１が０１）上のファイル保存処理部１５２１から、ファイル管理サービスサーバＢ１４０２（ＩＤ１６０１が０２）上のファイル格納領域部１５４１への格納に失敗した場合の処理の例を示す。ファイル保存処理部１５２１がエラー発生を検知すると、ファイル保存処理部１５２１は、Ｓ１１０１にて発生したエラーの種類を判定する。Ｓ１１０１にて例外の種類が通信エラーの場合、ファイル保存処理部１５２１は、Ｓ１１０２にて接続不可情報１０１１が有効期限内か否かを判定する。通信エラーとは、例えばタイムアウトなどである。本実施例では図示しないが、ファイル管理サーバ管理ＤＢ部１５３１は接続不可情報１０１１の有効期限を保持する。
【００８０】
Ｓ１１０２にて接続不可情報１０１１が有効期限外と判定された場合、ファイル保存処理部１５２１は、Ｓ１１０３にて、全ファイル管理サービスサーバの接続不可情報１０１１をクリアする。クリアする理由は、一定期間内（有効期限内）に全サーバから通信不可と判断されたファイル管理サービスサーバのみ、マスター情報をＦａｌｓｅにするためである。
【００８１】
Ｓ１１０３の後、又はＳ１１０２にて接続不可情報１０１１が有効期限内と判定された場合は、Ｓ１１０４にてＩＤ１６０１が０２であるファイル管理サービスサーバＢ１４０２の接続不可情報１０１１に０１を追加する。これは、ファイル管理サービスサーバＡ１４０１のファイル保存処理部１５２１から、ファイル管理サービスサーバＢ１４０２のファイル格納領域部１５４１へのファイル保存が、通信エラーの発生により失敗したことを示す。
【００８２】
続いてファイル保存処理部１５２１は、Ｓ１１０５にて、ＩＤ１６０２が０２のファイル管理サービスサーバＢ１４０２の接続不可情報１０１１が、稼働中のファイル管理サービスサーバを全て含むか否かを判定する。Ｓ１１０５にてファイル保存処理部１５２１が、接続不可情報１０１１が稼働中のファイル管理サービスサーバを全て含まないと判定した場合は、処理は終了する。Ｓ１１０５にてファイル保存処理部１５２１が、接続不可情報１０１１が稼働中のファイル管理サービスサーバを全て含むと判定した場合、及びＳ１１０１にて通信エラーでないと判定した場合には、処理はＳ１１０６に進む。Ｓ１１０６にて、ファイル保存処理部１５２１は、Ｓ１１０６にてＩＤ１６０１が０２のファイル管理サービスサーバＢ１４０２のマスター情報をＦａｌｓｅに変更する。
【００８３】
実施例３では、特定のファイル管理サービスサーバから別のファイル管理サービスサーバの通信のみが不可能だが、当該別のファイル管理サービスサーバが稼働中であった場合に、マスター情報がＦａｌｓｅになることを防止することができる。
【００８４】
（実施例４）
実施例３について、ファイル管理サービスサーバが稼働中であるにも関わらず、マスター情報がＦａｌｓｅになってしまうことを防止することができた。しかし、例えば運用ミスによりファイル管理サービスサーバＡ１４０１のファイアーウォール設定が誤っていたため、ファイル管理サービスサーバＢ１４０２への通信ができない場合などは、運用者は運用ミスに気づくことができない、という課題がある。
【００８５】
そこで実施例４では、接続不可情報１０１１に保持する文字列は｛０１：１０，０２：５，０３：４，…，Ｎ：７｝のように、各ファイル管理サービスサーバについて“ＩＤ１６０１”：“書込以外のエラーが発生した回数”をカンマ区切りでつなげたものにする。そして、接続不可情報１０１１の有効期限内に、１つ以上のファイル管理サービスサーバに対する書込エラーが発生した回数が閾値を超えた場合に、ファイル保存処理部１５２１は、エラーログを出力する。
【００８６】
図１９は、あるファイル管理サービスサーバから別のファイル管理サービスサーバへのファイルの格納に失敗した場合の処理の流れを示す。ここでは、ファイル管理サービスサーバＡ１４０１（ＩＤ１６０１が０１）上のファイル保存処理部１５２１から、ファイル管理サービスサーバＢ１４０２（ＩＤ１６０１が０２）上のファイル格納領域部１５４１への格納に失敗した例を示す。Ｓ１５０１〜Ｓ１５０３、Ｓ１５０５およびＳ１５０６は、実施例３にて説明した図１１におけるＳ１１０１〜Ｓ１１０３、Ｓ１１０５及びＳ１１０６は同様であるため省略する。
【００８７】
ファイル保存処理部１５２１は、Ｓ１５０４にて、ＩＤ１６０１が０２であるファイル管理サービスサーバＢ１４０２の接続不可情報１０１１において、以下の処理を行う。ファイル保存処理部１５２１は、ＩＤ１６０１が０１であるファイル管理サービスサーバＡ１４０１からのファイル保存時に、書込以外のエラーが発生した回数をインクリメントする。例えば、接続不可情報１０１１は｛０１：１｝から｛０１：２｝へとインクリメントされる。続いて、ファイル保存処理部１５２１は、Ｓ１５０７にて、特定のファイル管理サービスサーバから別の特定のファイル管理サービスサーバへの書き込みにおいて、書込以外のエラーが発生した回数が閾値以上のサーバがあるかどうかを判定する。Ｓ１５０７で書込以外のエラーが発生した回数が閾値以上のサーバが存在する場合、ファイル保存処理部１５２１は、Ｓ１５０８にてエラーログを出力する。
【００８８】
実施例４によって、例えば運用ミスによってファイル管理サービスサーバＡ１４０１のファイアーウォール設定が誤っていたため、ファイル管理サービスサーバＢ１４０２への通信ができない場合などでも、エラーログが出力される。従って、エラーログを監視することにより、ユーザに運用ミスを通知することができる。
【００８９】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2015141622.tif 000003
【図２】
2015141622.tif 000004
【図３】
2015141622.tif 000005
【図４】
2015141622.tif 000006
【図５】
2015141622.tif 000007
【図６】
2015141622.tif 000008
【図７】
2015141622.tif 000009
【図８】
2015141622.tif 000010
【図９】
2015141622.tif 000011
【図１０】
2015141622.tif 000012
【図１１】
2015141622.tif 000013
【図１２】
2015141622.tif 000014
【図１３】
2015141622.tif 000015
【図１４】
2015141622.tif 000016
【図１５】
2015141622.tif 000017
【図１６】
2015141622.tif 000018
【図１７】
2015141622.tif 000019
【図１８】
2015141622.tif 000020
【図１９】
2015141622.tif 000021