(57)【要約】【課題】格納装置へのデータの格納に失敗した場合に、このデータを中継装置で保持することなく、格納装置へのデータの格納が可能な状態になったときに中継装置から格納装置にデータを再送する。【解決手段】中継装置３０は、クライアント装置２０を介して入力され、このクライアント装置２０から受信したデータを格納装置１０Ａ〜１０Ｃに転送する。中継装置３０は、格納装置１０Ｃへの転送によるデータの格納に失敗した場合には、格納装置１０Ｃへのデータの格納が可能な状態になったと判断されたときに、転送されたデータを格納する格納装置１０Ａ又は１０Ｂからこのデータを取得し、取得したデータを格納装置１０Ｃに転送する。【選択図】図７
2015099544.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置を介して入力され、当該クライアント装置から受信したデータを複数の格納装置に転送する第１の転送部と、
前記複数の格納装置に含まれる第１の格納装置への前記第１の転送部の転送による前記データの格納に失敗した場合には、当該第１の格納装置へのデータの格納が可能な状態になったと判断されたときに、前記複数の格納装置のうち前記第１の転送部により転送された前記データを格納する第２の格納装置から当該データを取得する取得部と、
前記取得部によって取得された前記データを前記第１の格納装置に転送する第２の転送部と
を備える中継装置。
【請求項２】
前記複数の格納装置は、前記第１の転送部により転送された前記データを格納する複数の第２の格納装置を含み、
前記取得部は、前記複数の第２の格納装置に格納された前記データの更新状況に応じて、前記複数の第２の格納装置から１の第２の格納装置を選択し、当該選択した１の第２の格納装置から前記データを取得する
請求項１に記載の中継装置。
【請求項３】
前記取得部は、前記複数の第２の格納装置から前記格納されたデータが最後に更新された日時を表す日時情報を取得し、当該取得した日時情報に基づいて、前記最後に更新された日時が最も古いデータを格納する１の第２の格納装置を前記複数の格納装置から選択する
請求項２に記載の中継装置。
【請求項４】
前記取得部は、前記複数の第２の格納装置から前記格納されたデータの容量を取得し、当該取得した容量に基づいて、前記第１の転送部により転送された前記データの容量との差異が最も小さいデータを格納する１の第２の格納装置を前記複数の第２の格納装置から選択する
請求項２に記載の中継装置。
【請求項５】
クライアント装置と、中継装置とを備え、
前記クライアント装置は、入力されたデータを前記中継装置に送信し、
前記中継装置は、
前記クライアント装置から受信したデータを複数の格納装置に転送する第１の転送部と、
前記複数の格納装置に含まれる第１の格納装置への前記第１の転送部の転送による前記データの格納に失敗した場合には、当該第１の格納装置へのデータの格納が可能な状態になったと判断されたときに、前記複数の格納装置のうち前記第１の転送部により転送された前記データを格納する第２の格納装置から当該データを取得する取得部と、
前記取得部によって取得された前記データを前記第１の格納装置に転送する第２の転送部とを備える
中継システム。
【請求項６】
コンピュータに、
クライアント装置を介して入力され、当該クライアント装置から受信したデータを複数の格納装置に転送するステップと、
前記複数の格納装置に含まれる第１の格納装置への転送による前記データの格納に失敗した場合には、当該第１の格納装置へのデータの格納が可能な状態になったと判断されたときに、前記複数の格納装置のうち前記転送されたデータを格納する第２の格納装置から当該データを取得するステップと、
前記取得されたデータを前記第１の格納装置に転送するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置、中継システム及びプログラムに関する。
【背景技術】
【０００２】
データの送信にエラーが発生したときに、データを再送する技術が知られている。例えば、特許文献１には、ファクリミリ装置間の画情報の送受信において、受信側ファクシミリ装置の話中又は接続不可を検出すると、ファクシミリ通信動作を中断し、受信側ファクシミリ装置が受信可能になった時点で、画情報を受信側ファクシミリ装置に送信することが記載されている。特許文献２には、サーバとクライアントとの間のデータの送受信を中継する中継処理装置において、サーバがダウンしている場合には、クライアントから受信したリクエストデータをキューに貯め、サーバがダウンから復帰した場合に、キューに貯めておいたリクエストデータをサーバに送信することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１２１６７２号公報
【特許文献２】特開２０１２−０６８９９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、格納装置へのデータの格納に失敗した場合に、このデータを中継装置で保持することなく、格納装置へのデータの格納が可能な状態になったときに中継装置から格納装置にデータを再送することを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に係る発明は、クライアント装置を介して入力され、当該クライアント装置から受信したデータを複数の格納装置に転送する第１の転送部と、前記複数の格納装置に含まれる第１の格納装置への前記第１の転送部の転送による前記データの格納に失敗した場合には、当該第１の格納装置へのデータの格納が可能な状態になったと判断されたときに、前記複数の格納装置のうち前記第１の転送部により転送された前記データを格納する第２の格納装置から当該データを取得する取得部と、前記取得部によって取得された前記データを前記第１の格納装置に転送する第２の転送部とを備える中継装置を提供する。
【０００６】
請求項２に係る発明は、請求項１に記載の中継装置において、前記複数の格納装置は、前記第１の転送部により転送された前記データを格納する複数の第２の格納装置を含み、前記取得部は、前記複数の第２の格納装置に格納された前記データの更新状況に応じて、前記複数の第２の格納装置から１の第２の格納装置を選択し、当該選択した１の第２の格納装置から前記データを取得する。
【０００７】
請求項３に係る発明は、請求項２に記載の中継装置において、前記取得部は、前記複数の第２の格納装置から前記格納されたデータが最後に更新された日時を表す日時情報を取得し、当該取得した日時情報に基づいて、前記最後に更新された日時が最も古いデータを格納する１の第２の格納装置を前記複数の格納装置から選択する。
【０００８】
請求項４に係る発明は、請求項２に記載の中継装置において、前記取得部は、前記複数の第２の格納装置から前記格納されたデータの容量を取得し、当該取得した容量に基づいて、前記第１の転送部により転送された前記データの容量との差異が最も小さいデータを格納する１の第２の格納装置を前記複数の第２の格納装置から選択する。
【０００９】
請求項５に係る発明は、クライアント装置と、中継装置とを備え、前記クライアント装置は、入力されたデータを前記中継装置に送信し、前記中継装置は、前記クライアント装置から受信したデータを複数の格納装置に転送する第１の転送部と、前記複数の格納装置に含まれる第１の格納装置への前記第１の転送部の転送による前記データの格納に失敗した場合には、当該第１の格納装置へのデータの格納が可能な状態になったと判断されたときに、前記複数の格納装置のうち前記第１の転送部により転送された前記データを格納する第２の格納装置から当該データを取得する取得部と、前記取得部によって取得された前記データを前記第１の格納装置に転送する第２の転送部とを備える中継システムを提供する。
【００１０】
請求項６に係る発明は、コンピュータに、クライアント装置を介して入力され、当該クライアント装置から受信したデータを複数の格納装置に転送するステップと、前記複数の格納装置に含まれる第１の格納装置への転送による前記データの格納に失敗した場合には、当該第１の格納装置へのデータの格納が可能な状態になったと判断されたときに、前記複数の格納装置のうち前記転送されたデータを格納する第２の格納装置から当該データを取得するステップと、前取得されたデータを前記第１の格納装置に転送するステップとを実行させるためのプログラムを提供する。
【発明の効果】
【００１１】
請求項１に係る発明によれば、格納装置へのデータの格納に失敗した場合に、このデータを中継装置で保持することなく、格納装置へのデータの格納が可能な状態になったときに中継装置から格納装置にデータを再送することができる。
請求項２に係る発明によれば、データの更新状況に応じて、格納装置に再送するデータを選択することができる。
請求項３に係る発明によれば、元のデータから変更が少ないデータを格納装置に再送することができる。
請求項４に係る発明によれば、元のデータから変更が少ないデータを格納装置に再送することができる。
請求項５に係る発明によれば、格納装置へのデータの格納に失敗した場合に、このデータを中継装置で保持することなく、格納装置へのデータの格納が可能な状態になったときに中継装置から格納装置にデータを再送することができる。
請求項６に係る発明によれば、格納装置へのデータの格納に失敗した場合に、このデータを中継装置で保持することなく、格納装置へのデータの格納が可能な状態になったときに中継装置から格納装置にデータを再送することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る中継システムの全体構成を示す図である。
【図２】クライアント装置のハードウェア構成を示す図である。
【図３】中継装置のハードウェア構成を示す図である。
【図４】トークン管理テーブルの一例を示す図である。
【図５】失敗情報テーブルの一例を示す図である。
【図６】中継システムの機能構成を示す図である。
【図７】中継システムの動作を示すシーケンス図である。
【発明を実施するための形態】
【００１３】
１．構成
（１）システム全体の構成
図１は、本実施形態に係る中継システム１の全体構成を示す図である。中継システム１は、格納装置１０Ａ、１０Ｂ及び１０Ｃと、複数のクライアント装置２０と、中継装置３０とを備える。なお、以下の説明では、格納装置１０Ａ、１０Ｂ及び１０Ｃを区別する必要がない場合には、これらを総称して「格納装置１０」という。
【００１４】
格納装置１０、クライアント装置２０及び中継装置３０は、インターネット等の通信回線２を介して接続される。なお、クライアント装置２０は、ＬＡＮ（Local Area Network）等の別の通信回線を介して通信回線２に接続されてもよい。
【００１５】
格納装置１０は、データを保存するサービスを提供する。このサービスは、いわゆるクラウドサービスであってもよい。格納装置１０にアクセスするには、格納装置１０にアクセスする権限を示すトークンが必要となる。
【００１６】
クライアント装置２０は、ユーザが格納装置１０から提供されるサービスを利用するときに用いられる。クライアント装置２０には、例えばパーソナルコンピュータ、タブレット型コンピュータ、画像処理装置等の装置が含まれる。この画像処理装置は、スキャナ機能の他、コピー機能、プリント機能、ファクシミリ機能等の複数の機能を有していてもよい。
【００１７】
中継装置３０は、クライアント装置２０と格納装置１０との間のデータのやり取りを中継する機能を有する。中継装置３０を中継してデータをやり取りすることにより、中継装置３０にログインするだけで、複数の格納装置１０から提供されるサービスの利用が実現される。
【００１８】
（２）クライアント装置２０のハードウェア構成
図２は、クライアント装置２０のハードウェア構成を示す図である。クライアント装置２０は、制御部２１と、通信部２２と、操作部２３と、表示部２４と、記憶部２５とを備える。
【００１９】
制御部２１は、例えばＣＰＵ（Central Processing Unit）とメモリとを備え、クライアント装置２０の各部を制御する。ＣＰＵは、メモリ又は記憶部２５に記憶されたプログラムを実行する。メモリは、例えばＲＯＭ（Read Only Memory）とＲＡＭ（Random Access Memory）とを備える。ＲＯＭは、予めプログラムやデータを記憶する。ＲＡＭは、プログラムやデータを一時的に記憶し、ＣＰＵがプログラムを実行する際の作業領域として用いられる。
【００２０】
通信部２２は、通信回線２に接続される通信用のインタフェースである。通信部２２は、通信回線２を介して中継装置３０と通信を行う。操作部２３は、例えば各種のキー又はタッチパネルを備え、ユーザの操作に応じた情報を制御部２１に入力する。表示部２４は、例えば液晶ディスプレイを備え、各種の情報を表示する。記憶部２５は、例えばハードディスク又はフラッシュメモリを備え、制御部２１により用いられる各種のプログラムやデータを記憶する。
【００２１】
なお、クライアント装置２０が画像処理装置である場合には、図２に示す構成の他に、画像読取部と画像形成部とを備えてもよい。画像読取部は、例えばイメージスキャナを備え、原稿の画像を読み取って画像データを生成する。画像形成部は、例えば電子写真方式のプリントエンジンを備え、画像データに応じた画像を用紙等の媒体に形成する。
【００２２】
（３）中継装置３０のハードウェア構成
図３は、中継装置３０のハードウェア構成を示す図である。中継装置３０は、制御部３１と、通信部３２と、記憶部３３とを備える。
【００２３】
制御部３１は、例えばＣＰＵとメモリとを備え、中継装置３０の各部を制御する。ＣＰＵは、メモリ又は記憶部３３に記憶されたプログラムを実行する。メモリは、例えばＲＯＭとＲＡＭとを備える。ＲＯＭは、予めプログラムやデータを記憶する。ＲＡＭは、プログラムやデータを一時的に記憶し、ＣＰＵがプログラムを実行する際の作業領域として用いられる。
【００２４】
通信部３２は、通信回線２に接続される通信用のインタフェースである。通信部３２は、通信回線２を介してクライアント装置２０や格納装置１０と通信を行う。記憶部３３は、例えばハードディスクを備え、制御部３１により用いられる各種のプログラムやデータを記憶する。また、記憶部３３は、トークンを管理するトークン管理テーブル３３１と、データの格納失敗に関する情報を管理する失敗情報テーブル３３２とを記憶する。
【００２５】
図４は、トークン管理テーブル３３１の一例を示す図である。トークン管理テーブル３３１には、ユーザＩＤと、トークンとが対応付けて格納される。ユーザＩＤは、中継装置３０を利用するユーザの識別情報である。トークンは、格納装置１０にアクセスする権限を示す情報である。トークンは、ユーザ毎に発行され、予めトークン管理テーブル３３１に格納される。
【００２６】
図５は、失敗情報テーブル３３２の一例を示す図である。失敗情報テーブル３３２には、データＩＤと、原因種別と、成功した格納装置１０のＩＤと、失敗した格納装置１０のＩＤと、登録日時とが対応付けて格納される。データＩＤは、格納に失敗したデータの識別情報である。原因種別は、格納に失敗した原因を示す情報である。成功した格納装置１０のＩＤは、データの格納に成功した格納装置１０の識別情報である。失敗した格納装置１０のＩＤは、データの格納に失敗した格納装置１０の識別情報である。図５に示す「ＳｅｒｖｉｃｅＡ」、「ＳｅｒｖｉｃｅＢ」及び「ＳｅｒｖｉｃｅＣ」というＩＤは、それぞれ、格納装置１０Ａ、１０Ｂ及び１０Ｃの識別情報である。登録日時は、データの格納に成功した格納装置１０にデータが格納された日時である。なお、中継装置３０から格納装置１０にデータを転送した日時が登録日時として用いられてもよい。
【００２７】
（４）システムの機能構成
図６は、中継システム１の機能構成を示す図である。中継装置３０は、第１の転送部３１１と、管理部３１２と、判断部３１３と、取得部３１４と、第２の転送部３１５という機能を有する。これらの機能は、例えば制御部３１のＣＰＵがプログラムを実行することにより実現される。第１の転送部３１１は、クライアント装置２０を介して入力され、このクライアント装置２０から受信したデータを複数の格納装置１０に転送する。判断部３１３は、複数の格納装置１０に含まれる第１の格納装置１０へのデータの格納に失敗したときに、第１の格納装置１０へのデータの格納が可能な状態になったか否かを判断する。取得部３１４は、判断部３１３により第１の格納装置１０へのデータの格納が可能な状態になったと判断されたときに、複数の格納装置１０のうち第１の転送部３１１により転送されたデータを格納する第２の格納装置１０からこのデータを取得する。第２の転送部３１５は、取得部３１４によって取得されたデータを第１の格納装置１０に転送する。
【００２８】
２．動作
次に、中継システム１の動作について説明する。中継システム１では、クライアント装置２０を介して入力されたデータが、中継装置３０を介して格納装置１０に格納される。このとき、中継装置３０は、クライアント装置２０を介して入力されたデータを、予め指定された複数の格納装置１０に送信するマルチセンドを行う。このマルチセンドは、例えばデータをバックアップする場合や他のユーザに公開する場合に有用である。
【００２９】
図７は、中継システム１の動作を示すシーケンス図である。ここでは、ユーザは、予め中継装置３０にログインしているものとする。この場合、中継装置３０のメモリには、このユーザのユーザＩＤが記憶される。このユーザＩＤは、ログインユーザのユーザＩＤとして用いられる。ここでは、「ユーザＵ１」というユーザＩＤがメモリに記憶されているものとする。
【００３０】
格納装置１０にデータを格納する場合、ユーザは、操作部２３を用いた操作により、格納装置１０に格納するデータを選択し、データの格納を指示する。このデータは、例えばクライアント装置２０で作成された文書データや表データであってもよいし、クライアント装置２０が画像処理装置である場合には、原稿の画像を読み取ることにより生成される画像データであってもよい。
【００３１】
ステップＳ１０１において、クライアント装置２０は、ユーザにより選択されたデータを含む格納要求を、通信部２２を介して中継装置３０に送信する。中継装置３０は、通信部３２を介してこの格納要求を受信する。
【００３２】
ステップＳ１０２において、中継装置３０の第１の転送部３１１は、クライアント装置２０から受信した格納要求を、通信部３２を介して予め指定された格納装置１０に転送する。ここでは、格納装置１０Ａ〜１０Ｃが予め指定されているものとする。
【００３３】
具体的には、第１の転送部３１１は、まずメモリに記憶されたログインユーザのユーザＩＤと対応付けて格納されたトークンをトークン管理テーブル３３１から読み出す。例えば、図４に示すように、ログインユーザのユーザＩＤ「ユーザＵ１」と対応付けて、格納装置１０ＡのトークンＡ１、格納装置１０ＢのトークンＢ１及び格納装置１０ＣのトークンＣ１が格納されている場合には、トークンＡ１、トークンＢ１及びトークンＣ１がトークン管理テーブル３３１から読み出される。
【００３４】
続いて、第１の転送部３１１は、トークン管理テーブル３３１から読み出したトークンを用いて格納装置１０Ａ〜１０Ｃにアクセスする。この例では、トークンＡ１、トークンＢ１及びトークンＣ１を用いて格納装置１０Ａ、１０Ｂ及び１０Ｃへのアクセスが行われる。ここで、格納装置１０Ａ及び１０Ｂへのアクセスは許可されるが、格納装置１０Ｃにはアクセスができない場合を想定する。この場合、格納装置１０Ａ及び１０Ｂには、格納要求が転送され、この格納要求に応じてデータが格納される。一方、格納装置１０Ｃへのデータの格納は失敗する。
【００３５】
データの格納に失敗する原因としては、例えばシステムダウン、トークンの有効期限切れ、ストレージフルがある。システムダウンとは、格納装置１０の動作が停止した状態をいう。トークンの有効期限切れとは、格納装置１０にアクセスするためのトークンの有効期限が切れた状態をいう。ストレージフルとは、格納装置１０のデータ格納容量が上限に達した状態をいう。
【００３６】
データの格納に失敗する原因は、例えばステップＳ１０２で転送された格納要求に応じて格納装置１０から送られてくる情報又は格納装置１０からの応答の有無に基づいて判定される。例えば格納装置１０から応答がない場合には、格納装置１０の動作が停止していると考えられる。この場合、データの格納に失敗した原因としてシステムダウンが判定される。また、格納装置１０からデータの格納容量が上限に達したことを示す情報が送られてきた場合には、データの格納に失敗した原因としてストレージフルが判定される。同様に、格納装置１０からトークンの有効期限が切れていることを示す情報が送られてきた場合には、データの格納に失敗した原因としてトークンの有効切れが判定される。ステップＳ１０２でデータの格納に失敗した場合、中継装置３０はステップＳ１０３に進む。
【００３７】
ステップＳ１０３において、管理部３１２は、データの格納失敗に関する情報を失敗情報テーブル３３２に格納する。具体的には、管理部３１２は、失敗情報テーブル３３２にレコードを追加して、格納に失敗したデータのＩＤと、その原因を示す原因種別と、データの格納に成功した格納装置１０のＩＤと、データの格納に失敗した格納装置１０のＩＤと、登録日時とをこのレコードに格納する。
【００３８】
例えば、「文書Ｄ１」というデータＩＤが付与されたデータの格納に失敗した場合には、図５に示す１行目のレコードのように、データＩＤとして「文書Ｄ１」が格納される。また、データの格納に失敗した原因がシステムダウンである場合には、図５に示す１行目のレコードのように、原因種別として「システムダウン」が格納される。また、格納装置１０Ａ及び１０Ｂへのデータの格納に成功し、格納装置１０Ｃへのデータの格納に失敗した場合には、図５に示す１行目のレコードのように、成功した格納装置１０のＩＤとして「ＳｅｒｖｉｃｅＡ」及び「ＳｅｒｖｉｃｅＢ」が格納され、失敗した格納装置１０のＩＤとして「ＳｅｒｖｉｃｅＣ」が格納される。また、格納装置１０Ａ及び１０Ｂへのデータの格納された日時が２０１３年１月１０日１０時００分である場合には、登録日時として「２０１３−０１−１０  １０：００」が格納される。
【００３９】
ステップＳ１０４において、判断部３１３は、データの格納に失敗した格納装置１０の状態又はトークン管理テーブル３３１に格納されたトークンの状態を監視し、データの格納が可能な状態に復旧したか否かを判断する。
【００４０】
例えば、データの格納に失敗した原因がシステムダウンである場合には、格納装置１０の稼動状態が監視され、格納装置１０が動作を開始したときに、データの格納が可能な状態に復旧したと判断される。また、データの格納に失敗した原因がストレージフルである場合には、格納装置１０のデータ格納容量が監視され、格納装置１０のデータ格納容量に空きが生じたときに、データの格納が可能な状態に復旧したと判断される。一方、データの格納に失敗した原因がトークンの有効期限切れである場合には、トークン管理テーブル３３１に格納されたトークンの状態が監視され、有効期限内の新たなトークンがトークン管理テーブル３３１に格納されたときに、データの格納が可能な状態に復旧したと判断される。
【００４１】
例えば、図５に示す１行目のレコードのように、原因種別「システムダウン」及び失敗した格納装置のＩＤ「ＳｅｒｖｉｃｅＣ」が格納されている場合には、システムダウンにより格納装置１０へのデータの格納に失敗しているため、格納装置１０Ｃの稼動状態が監視される。この稼動状態の監視は、例えば予め定められた時間間隔で格納装置１０Ｃに応答要求を送信し、格納装置１０Ｃからの応答の有無を確認することにより行われる。格納装置１０Ｃの動作が停止している間は、格納装置１０Ｃから応答がない。この場合、データの格納が可能な状態に復旧していないと判断される。一方、格納装置１０Ｃがシステムダウンから復旧し、動作を開始すると、中継装置３０からの応答要求に応じて格納装置１０Ｃから応答が返ってくる。この場合、データの格納が可能な状態に復旧したと判断される。なお、ステップＳ１０４の処理は、失敗情報テーブル３３２のレコード毎に、個別に行われる。
【００４２】
ステップＳ１０５において、取得部３１４は、復旧した格納装置１０が格納すべきデータを、そのデータの格納に成功した格納装置１０から取得する。
【００４３】
具体的には、取得部３１４は、失敗情報テーブル３３２に基づいて、データの格納に成功した格納装置１０をデータの取得先として選択する。例えば、図５に示す１行目のレコードのように、転送に成功した格納装置１０のＩＤ「ＳｅｒｖｉｃｅＡ」及び「ＳｅｒｖｉｃｅＢ」が格納されている場合には、格納装置１０Ａ及び１０Ｂのいずれかがデータの取得先として選択される。本実施形態では、例えば予め定められた条件を満たす方が選択されてもよいし、ランダムに選択されてもよい。ここでは、格納装置１０Ｂが選択されたものとする。
【００４４】
続いて、取得部３１４は、復旧した格納装置１０が格納すべきデータの取得要求を、通信部３２を介して選択された格納装置１０に送信する。例えば、図５に示す１行目のレコードのように、文書ＩＤ「文書Ｄ１」が格納されている場合には、このＩＤが付与されたデータの取得要求が格納装置１０Ｂに送信される。格納装置１０Ｂは、中継装置３０から受信した取得要求に応じて、「文書Ｄ１」というＩＤが付与されたデータを中継装置３０に送信する。中継装置３０は、通信部３２を介してこのデータを受信する。
【００４５】
ステップＳ１０６において、第２の転送部３１５は、ステップＳ１０５で取得したデータを含む格納要求を、通信部３２を介して復旧した格納装置１０に送信する。具体的には、第２の転送部３１５は、まずトークン管理テーブル３３１から、メモリに記憶されたログインユーザのユーザＩＤと対応付けて格納された、復旧した格納装置１０のトークンを読み出す。例えば、図４に示すように、ログインユーザのユーザＩＤ「ユーザＵ１」と対応付けて格納装置１０ＣのトークンＣ１が格納されている場合には、トークンＣ１がトークン管理テーブル３３１から読み出される。
【００４６】
続いて、第２の転送部３１５は、トークン管理テーブル３３１から読み出したトークンを用いて、復旧した格納装置１０にアクセスする。この例では、トークンＣ１を用いて格納装置１０Ｃへのアクセスが行われる。このとき、格納装置１０Ｃは、既にシステムダウンから復旧しているため、中継装置３０からのアクセスを許可する。
【００４７】
続いて、第２の転送部３１５は、ステップＳ１０５にて取得したデータを含む格納要求を、通信部３２を介して復旧した格納装置１０に送信する。この例では、「文書Ｄ１」というＩＤが付与されたデータを含む格納要求が格納装置１０Ｃに送信される。これにより、格納装置１０Ｃにこのデータが格納される。
【００４８】
以上説明した実施形態によれば、格納装置１０へのデータの格納に失敗した場合には、データの格納が可能な状態になったときに格納装置１０にデータが再送される。このとき、ユーザの操作によらずデータが再送されるため、データの再送に関わる煩雑な操作が必要ない。また、データの格納が可能な状態に復旧するまでの間、格納に失敗したデータが中継装置３０で保持されないため、中継装置３０にこのデータを保持するための格納場所を確保する必要がない。
【００４９】
３．変形例
上述した実施形態は、本発明の一例である。この実施形態は、以下のように変形してもよい。また、以下の変形例は、互いに組み合わせてもよい。
【００５０】
（１）ステップＳ１０２で格納装置１０Ａ及び１０Ｂに格納されたデータは、その後更新される場合があるが、ステップＳ１０６で復旧した格納装置１０Ｃに転送するデータは、更新されていない又は更新が少ないデータの方が好ましい。そこで、ステップＳ１０５でデータを取得するときに、格納装置１０に格納されたデータの更新状況に応じてデータの取得先が選択されてもよい。
【００５１】
例えば、取得部３１４は、データの格納に成功した格納装置１０が複数ある場合には、これらの格納装置１０に格納されたデータが最後に更新された日時に基づいて、データの取得先を選択してもよい。この場合、取得部３１４は、データの格納に成功した複数の格納装置１０から、取得対象となるデータが最後に更新された日時を表す日時情報を取得する。続いて、取得部３１４は、取得した日時情報に基づいて、最後に更新された日時が最も古いデータを格納する１の格納装置１０を選択する。これは、最後に更新された日時が最も古いデータは、更新されていない可能性が高いと考えられるからである。
【００５２】
例えば、格納装置１０Ａから取得した日時情報が「２０１３−０１−１０  １０：２０」であり、格納装置１０Ｂから取得した日時情報が「２０１３−０１−１０  １０：００」である場合には、格納装置１０Ｂに格納されたデータの方が最後に更新された日時が古いため、格納装置１０Ｂが選択される。この場合、ステップＳ１０５では、格納装置１０Ｂからデータが取得される。
【００５３】
もしくは、取得部３１４は、格納装置１０から取得した日時情報に基づいて、失敗情報テーブル３３２に格納された登録日時と同じ日時に最後に更新されたデータを格納する格納装置１０を選択してもよい。
【００５４】
または、取得部３１４は、データの格納に成功した格納装置１０が複数ある場合には、これらの格納装置１０に格納されたデータの容量に基づいて、データの取得先を選択してもよい。この場合、失敗情報テーブル３３２には、図５に示す情報に加えて、格納に失敗したデータの容量が格納される。取得部３１４は、データの格納に成功した複数の格納装置１０から、取得対象となるデータの容量を取得する。このデータの容量は、例えばファイルサイズである。続いて、取得部３１４は、取得した容量に基づいて、第１の転送部３１１により転送されたデータの容量との差異が最も小さいデータを格納する１の格納装置１０を選択する。これは、第１の転送部３１１により転送されたデータの容量との差異が最も小さいデータは、更新されていない可能性が高いと考えられるからである。
【００５５】
例えば、失敗情報テーブル３３２に格納されたデータの容量が「１１４ＫＢ」であり、格納装置１０Ａから取得されたデータの容量が「１５０ＫＢ」であり、格納装置１０Ｂから取得されたデータの容量が「１１４ＫＢ」である場合には、格納装置１０Ｂに格納されたデータの方が第１の転送部３１１により転送されたデータの容量との差異が小さいため、格納装置１０Ｂが選択される。この場合、ステップＳ１０５では、格納装置１０Ｂからデータが取得される。
【００５６】
もしくは、取得部３１４は、格納装置１０から取得したデータの容量に基づいて、失敗情報テーブル３３２に格納されたデータの容量と同じ容量のデータを格納する格納装置１０を選択してもよい。
【００５７】
（２）上述した実施形態において、クライアント装置２０の制御部２１により実行されるプログラム及び中継装置３０の制御部３１により実行されるプログラムは、インターネットなどの通信回線を介してダウンロードされてもよい。また、このプログラムは、磁気記録媒体（磁気テープ、磁気ディスクなど）、光記録媒体（光ディスクなど）、光磁気記録媒体、半導体メモリなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。
【符号の説明】
【００５８】
１…中継システム、１０…格納装置、２０…クライアント装置、３０…中継装置、３１１…第１の転送部、３１２…管理部、３１３…判断部、３１４…取得部、３１５…第２の転送部。
【図１】
2015099544.tif 000003
【図２】
2015099544.tif 000004
【図３】
2015099544.tif 000005
【図４】
2015099544.tif 000006
【図５】
2015099544.tif 000007
【図６】
2015099544.tif 000008
【図７】
2015099544.tif 000009