(57)【特許請求の範囲】
【請求項１】
複数のストレージノードに格納されたデータに対するアクセスを制御するデータアクセス制御装置において、
参照するデータを特定するための参照条件と参照要求とを受信すると、参照要求の送信を抑止するように指定されたストレージノードの識別情報と参照条件とが対応付けられた管理情報テーブルを格納する記憶手段を参照し、前記複数のストレージノードのうち、前記管理情報テーブルにおいて、受信した前記参照条件に対応付けられたストレージノードを除くストレージノードに対して、受信した前記参照条件と前記参照要求とを送信する送信処理部と、
前記送信処理部からの参照要求の送信先の各ストレージノードからの応答に基づいて、受信した前記参照条件に合致するデータが格納されていないストレージノードを判別し、判別されたストレージノードの識別情報を受信した前記参照条件と対応付けて前記管理情報テーブルに登録する登録処理部と、
を有することを特徴とするデータアクセス制御装置。
【請求項２】
前記送信処理部は、データの格納要求を受信すると、当該データを格納するストレージノードを決定し、決定したストレージノードの識別番号が前記管理情報テーブルに登録されている場合には、決定した前記ストレージノードについて参照要求の送信を抑止する状態を解除することを特徴とする請求項１記載のデータアクセス制御装置。
【請求項３】
前記送信処理部は、
データの格納要求を受信したとき、当該データを格納するストレージノードを決定して、決定した前記ストレージノードに対して当該データの格納要求を送信するとともに、決定した前記ストレージノードの識別番号が前記管理情報テーブルに登録されているかを判定し、登録されている場合には、当該データを記憶装置に一時的に蓄積するとともに、決定した前記ストレージノードの識別番号と参照条件との組み合わせに対応するデータが蓄積されていることを示す状態情報を、当該組み合わせに対応づけて前記管理情報テーブルに設定し、
参照条件と参照要求とを受信したとき、受信した当該参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせに対応する前記状態情報が設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信する、
ことを特徴とする請求項１記載のデータアクセス制御装置。
【請求項４】
前記送信処理部は、参照条件と参照要求とを受信したとき、受信した当該参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせに対応する前記状態情報が設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信するとともに、抽出した前記組み合わせについて参照要求の送信を抑止する状態を解除することを特徴とする請求項３記載のデータアクセス制御装置。
【請求項５】
前記送信処理部は、参照条件と参照要求とを受信したとき、受信した当該参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせに対応する前記状態情報が設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信するとともに、当該データを前記記憶装置から消去することを特徴とする請求項４記載のデータアクセス制御装置。
【請求項６】
前記送信処理部は、参照条件と参照要求とを受信したとき、受信した当該参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせに対応する前記状態情報が設定されている場合には、前記状態情報が設定された時刻以後に格納されたデータを前記記憶装置から選択し、選択したデータのいずれかを参照要求の送信元装置に送信することを特徴とする請求項４または５記載のデータアクセス制御装置。
【請求項７】
前記登録処理部は、前記送信処理部からの参照要求の送信先の各ストレージノードから受信した応答情報のうち、受信した前記参照条件に合致するデータが所定領域に格納されていない応答情報を判別し、判別した応答情報の送信元のストレージノードの識別情報を受信した前記参照条件と対応付けて前記管理情報テーブルに登録することを特徴とする請求項１〜６のいずれか１項に記載のデータアクセス制御装置。
【請求項８】
複数のストレージノードに格納されたデータに対するアクセスを制御するデータアクセス制御方法において、
コンピュータが、
参照するデータを特定するための参照条件と参照要求とを受信すると、参照要求の送信を抑止するように指定されたストレージノードの識別情報と参照条件とが対応付けられた管理情報が登録されている管理情報テーブルを参照し、前記複数のストレージノードのうち、前記管理情報テーブルにおいて、受信した前記参照条件に対応付けられたストレージノードを除くストレージノードに対して、受信した前記参照条件と前記参照要求とを送信し、
参照要求の送信先の各ストレージノードからの応答に基づいて、受信した前記参照条件に合致するデータが格納されていないストレージノードを判別し、判別されたストレージノードの識別情報を受信した前記参照条件と対応付けて前記管理情報テーブルに登録する、
ことを特徴とするデータアクセス制御方法。
【請求項９】
複数のストレージノードに格納されたデータに対するアクセスを制御するためのデータアクセス制御プログラムにおいて、
コンピュータに、
参照するデータを特定するための参照条件と参照要求とを受信すると、参照要求の送信を抑止するように指定されたストレージノードの識別情報と参照条件とが対応付けられた管理情報が登録されている管理情報テーブルを参照し、前記複数のストレージノードのうち、前記管理情報テーブルにおいて、受信した前記参照条件に対応付けられたストレージノードを除くストレージノードに対して、受信した前記参照条件と前記参照要求とを送信し、
参照要求の送信先の各ストレージノードからの応答に基づいて、受信した前記参照条件に合致するデータが格納されていないストレージノードを判別し、判別されたストレージノードの識別情報を受信した前記参照条件と対応付けて前記管理情報テーブルに登録する、
処理を実行させることを特徴とするデータアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
データアクセス制御装置、データアクセス制御方法およびプログラムに関する。
【背景技術】
【０００２】
近年、複数のストレージノードにデータを分散して格納するようにしたストレージシステムが知られている。このようなストレージシステムは、例えば、複数のストレージノードに対するアクセス要求を一括して受け付けるデータアクセス制御装置を備える。データアクセス制御装置は、データの格納要求を受けると、所定の論理に従ってデータの格納先のストレージノードを決定し、決定したストレージノードに対してデータを送信して、送信したデータの格納を要求する。また、データアクセス制御装置は、データの参照要求を受けると、要求されたデータが格納されているストレージノードに対して参照要求を送信し、その要求に応じて返信されたデータを参照要求元の装置に送信する。
【０００３】
データを分散して格納するシステムに関する技術の例として、要素データベースから検索されたデータを一時的に保存し、保存開始から一定時間内に同じデータの検索が要求された場合に、要素データベースからデータを取得せずに、保存しておいたデータを検索結果として出力するようにしたデータ検索装置がある。
【０００４】
また、他の例として、データ検索時にデータの属性にデータの所在情報を追加することで、検索後のデータ参照の際に、データの所在情報を問い合わせずにデータに直接アクセスできるようにしたデータアクセス装置がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２５２７８９号公報
【特許文献２】特開２００７−２００３４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のデータアクセス制御装置は、データの格納要求を受けたとき、所定の論理に従ってデータの格納先を振り分ける。例えば、データアクセス制御装置は、データのタイムスタンプや、データの格納を要求したユーザのユーザＩＤなどをキーとし、キーに基づいてデータの格納先を決定する。
【０００７】
データアクセス制御装置は、データの参照を要求する参照側装置から参照条件として上記のキーが指定された場合には、参照が要求されたデータが格納されているストレージノードを判別できる。しかしながら、データアクセス制御装置は、参照側装置から上記のキー以外の参照条件が指定された場合には、データが格納されているストレージノードを判別できない。この場合、データアクセス制御装置は、すべてのストレージノードに対して、指定された参照条件に合致するデータの参照を要求する。このような処理では、参照条件に合致するデータが格納されていないストレージノードにもデータの参照要求が送信されることになり、データアクセス制御装置と各ストレージノードとの間で無駄なトラフィックが発生するという問題がある。
【０００８】
１つの側面では、本発明は、複数のストレージノードとの間のデータ転送量を抑制することが可能なデータアクセス制御装置、データアクセス制御方法およびデータアクセス制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、複数のストレージノードに格納されたデータに対するアクセスを制御するデータアクセス制御装置が提供される。このデータアクセス制御装置は、次のような送信処理部および登録処理部を有する。送信処理部は、参照するデータを特定するための参照条件と参照要求とを受信すると、参照要求の送信を抑止するように指定されたストレージノードの識別情報と参照条件とが対応付けられた管理情報テーブルを格納する記憶手段を参照し、複数のストレージノードのうち、管理情報テーブルにおいて、受信した参照条件に対応付けられたストレージノードを除くストレージノードに対して、受信した参照条件と参照要求とを送信する。登録処理部は、送信処理部からの参照要求の送信先の各ストレージノードからの応答に基づいて、受信した参照条件に合致するデータが格納されていないストレージノードを判別し、判別されたストレージノードの識別情報を受信した参照条件と対応付けて管理情報テーブルに登録する。
【００１０】
また、１つの案では、上記のデータアクセス制御装置と同様の処理が実行されるデータアクセス制御方法およびデータアクセス制御プログラムが提供される。
【発明の効果】
【００１１】
１態様によれば、データアクセス制御装置、データアクセス制御方法およびデータアクセス制御プログラムにおいて、複数のストレージノードとの間のデータ転送量を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係るストレージシステムの構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの全体構成例を示す図である。
【図３】データ中継装置のハードウェア構成例を示す図である。
【図４】コンテンツが格納される際のメッセージの例およびその転送の流れを示す図である。
【図５】コンテンツが参照される際のメッセージの例およびその転送の流れを示す第１の図である。
【図６】コンテンツが参照される際のメッセージの例およびその転送の流れを示す第２の図である。
【図７】第２の実施の形態におけるデータ中継装置が備える機能の構成例を示すブロック図である。
【図８】状態管理テーブルに登録される情報の例を示す図である。
【図９】属性値に合致するコンテンツの参照処理例を示す第１のシーケンス図である。
【図１０】属性値に合致するコンテンツの参照処理例を示す第２のシーケンス図である。
【図１１】コンテンツの格納処理例を示す第１のシーケンス図である。
【図１２】コンテンツの格納処理例を示す第２のシーケンス図である。
【図１３】データ中継装置の処理例を示すフローチャートである。
【図１４】データ中継装置の処理例を示すフローチャートである。
【図１５】第３の実施の形態におけるデータ中継装置が備える機能の構成例を示すブロック図である。
【図１６】コンテンツ管理テーブルに登録される情報の例を示す図である。
【図１７】第３の実施の形態において状態管理テーブルに登録される情報の例を示す図である。
【図１８】コンテンツの格納処理例を示す第３のシーケンス図である。
【図１９】コンテンツの格納処理例を示す第４のシーケンス図である。
【図２０】属性値に合致するコンテンツの参照処理例を示す第３のシーケンス図である。
【図２１】コンテンツの削除処理例を示すシーケンス図である。
【図２２】データ中継装置の処理例を示すフローチャートである。
【図２３】データ中継装置の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、実施の形態について図面を参照して詳細に説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るストレージシステムの構成例および処理例を示す図である。図１に示すストレージシステムは、それぞれデータを格納することが可能な複数のストレージノード１１〜１３と、データアクセス制御装置２０とを含む。
【００１４】
ストレージノード１１〜１３のそれぞれは、データアクセス制御装置２０からの要求に応じて、自装置の管理下の記憶領域に格納されたデータの読み出しや、自装置の管理下の記憶領域に対するデータの格納を行う。ストレージノード１１〜１３のそれぞれは、例えば、データ格納サーバとして実現される。なお、本実施の形態では、ストレージノード１１，１２，１３には、識別情報（ノードＩＤ）としてそれぞれ「Ｎ１」，「Ｎ２」，「Ｎ３」が付与されているものとする。
【００１５】
また、ストレージノード１１〜１３のそれぞれは、自装置の管理下の記憶領域に格納されたデータから、データアクセス制御装置２０から通知された参照条件に合致するデータを検索して、データアクセス制御装置２０に送信することができる。参照条件とは、参照するデータを特定するための情報である。参照条件の例としては、参照するデータの属性などがある。
【００１６】
データアクセス制御装置２０は、ストレージノード１１〜１３に格納されたデータへのアクセスを一括して制御する装置である。例えば、データアクセス制御装置２０は、参照側装置３０からデータの参照要求を受信すると、参照を要求されたデータが格納されたストレージノードに対して、参照要求を送信する。データアクセス制御装置２０は、参照要求の送信先のストレージノードから送信されたデータを、参照側装置３０に送信する。
【００１７】
なお、データアクセス制御装置２０に接続されるストレージノードの数および参照側装置の数は、任意である。
データアクセス制御装置２０は、送信処理部２１と登録処理部２２とを有する。送信処理部２１および登録処理部２２は、管理情報テーブル２３を参照または更新可能になっている。管理情報テーブル２３は、例えば、データアクセス制御装置２０の内部の記憶装置に格納される。
【００１８】
管理情報テーブル２３には、参照要求の送信を抑止するように指定されたストレージノードの識別情報（ノードＩＤ）と参照条件とが、対応付けて登録される。
ここで、管理情報テーブル２３に登録される参照条件は、データアクセス制御装置２０がデータの格納場所を判別する処理に関係のない条件である。換言すると、データアクセス制御装置２０は、参照側装置３０から、管理情報テーブル２３に登録された参照条件とともに参照要求を受信した場合、参照を要求されたデータが格納されているストレージノードを判別することはできない。
【００１９】
送信処理部２１は、参照側装置３０から参照要求および参照条件を受信すると、管理情報テーブル２３を参照し、受信した参照条件が管理情報テーブル２３に登録されているかを判定する。送信処理部２１は、受信した参照条件が管理情報テーブル２３に登録されている場合、ストレージノード１１〜１３のうち、管理情報テーブル２３において受信した参照条件に対応付けられているストレージノードを除くストレージノードに対して、受信した参照条件と参照要求とを送信する。
【００２０】
登録処理部２２は、送信処理部２１からの参照要求の送信先の各ストレージノードからの応答に基づいて、送信処理部２１が受信した参照条件に合致するデータが格納されていないストレージノードを判別する。登録処理部２２は、判別されたストレージノードの識別情報を、送信処理部２１が受信した参照条件と対応付けて管理情報テーブル２３に登録する。
【００２１】
以下、送信処理部２１および登録処理部２２の処理例について、順を追って説明する。
参照側装置３０は、データアクセス制御装置２０に対して、参照条件「Ｃ１」と参照要求とを送信する（ステップＳ１）。送信処理部２１は、受信した参照条件「Ｃ１」が管理情報テーブル２３に登録されているかを判定する（ステップＳ２）。ここでは管理情報テーブル２３に参照条件「Ｃ１」が登録されていなかったものとすると、送信処理部２１は、ストレージノード１１〜１３のすべてに対して、参照条件「Ｃ１」と参照要求とを送信する（ステップＳ３）。
【００２２】
参照要求を受信したストレージノード１１〜１３のそれぞれは、参照条件「Ｃ１」に合致するデータを検索する。ここで、参照条件「Ｃ１」に合致するデータは、ストレージノード１３には格納されているものの、ストレージノード１１，１２には格納されていないものとする。この場合、ストレージノード１３は、参照要求に対する応答として、参照条件「Ｃ１」に合致するデータＡをデータアクセス制御装置２０に返信する（ステップＳ４）。なお、ストレージノード１１，１２は、例えば、受信した参照条件に合致するデータを含めていない応答情報をデータアクセス制御装置２０に返信する。
【００２３】
データアクセス制御装置２０の登録処理部２２は、送信した参照条件「Ｃ１」に合致するデータがストレージノード１３のみから返信されたことから、参照条件「Ｃ１」に合致するデータがストレージノード１１，１２には格納されていないことを認識することができる。登録処理部２２は、ストレージノード１１，１２のそれぞれのノードＩＤを、参照条件「Ｃ１」に対応付けて管理情報テーブル２３に登録する（ステップＳ５）。これとともに、登録処理部２２は、ストレージノード１３から受信したデータＡを、参照側装置３０に送信する（ステップＳ６）。
【００２４】
この状態から、例として、参照側装置３０がデータアクセス制御装置２０に対して、参照条件「Ｃ１」と参照要求とを送信したとする（ステップＳ１１）。なお、参照要求元の装置は参照側装置３０以外の他の装置であってもよい。
【００２５】
送信処理部２１は、受信した参照条件「Ｃ１」が管理情報テーブル２３に登録されているかを判定する（ステップＳ１２）。このとき、管理情報テーブル２３には参照条件「Ｃ１」が登録されている。このことから、送信処理部２１は、管理情報テーブル２３において参照条件「Ｃ１」に対応付けられているノードＩＤ「Ｎ１」，「Ｎ２」にそれぞれ対応するストレージノード１１，１２には参照要求を送信せず、残りのストレージノード１３に対してのみ、参照条件「Ｃ１」と参照要求とを送信する（ステップＳ１３）。
【００２６】
参照要求を受信したストレージノード１１は、参照要求に対する応答として、参照条件「Ｃ１」に合致するデータＡをデータアクセス制御装置２０に返信する（ステップＳ１４）。データアクセス制御装置２０の登録処理部２２は、ストレージノード１３から受信したデータＡを、参照側装置３０に送信する（ステップＳ１５）。
【００２７】
以上の処理では、送信処理部２１は、参照条件と参照要求とを受信したとき、管理情報テーブル２３を参照し、受信した参照条件に対応付けられたノードＩＤに対応するストレージノードに対する参照要求の送信を抑止する。これにより送信処理部２１は、受信した参照要求に合致するデータが格納されていないストレージノードに対して参照要求を送信しなくなるので、データアクセス制御装置２０とストレージノード１１〜１３との間のデータ転送量を抑制することができる。また、送信処理部２１からの参照要求の送信数が抑制されるので、送信処理部２１は、データアクセス制御装置２０の処理負荷を軽減することもできる。
【００２８】
さらに、データアクセス制御装置２０から受信した参照条件に合致するデータが格納されていないストレージノードが、そのデータを含めていない応答情報をデータアクセス制御装置２０に応答するように構成された場合には、ストレージノードからデータアクセス制御装置２０に返信される応答情報の数も抑制される。このため、データアクセス制御装置２０とストレージノード１１〜１３との間のデータ転送量をさらに抑制することができる。
【００２９】
〔第２の実施の形態〕
図２は、第２の実施の形態に係るストレージシステムの全体構成例を示す図である。
図２に示すストレージシステムは、データ中継装置１００と複数のデータ格納サーバ２００ａ〜２００ｃとを備える。このストレージシステムは、複数のストレージノードにデータが分散して格納される分散型のストレージシステムであり、データ格納サーバ２００ａ〜２００ｃは、それぞれストレージノードの一例である。なお、図２では例として３台のデータ格納サーバ２００ａ〜２００ｃを示すが、データ格納サーバの台数は任意である。
【００３０】
データ格納サーバ２００ａ，２００ｂ，２００ｃには、それぞれ記憶装置２０１ａ，２０１ｂ，２０１ｃが接続されている。データ格納サーバ２００ａは、データ中継装置１００からの要求に応じて、記憶装置２０１ａに対するデータの書き込みや、記憶装置２０１ａからのデータの読み出しを行う。データ格納サーバ２００ｂ，２００ｃも、データ格納サーバ２００ａと同様の機能を備える。
【００３１】
データ中継装置１００は、データ格納サーバ２００ａ〜２００ｃに対するアクセス要求を一括して受け付ける装置である。データ中継装置１００は、データ発生装置からのデータの格納要求に応じて、データ格納サーバ２００ａ〜２００ｃのいずれかに対してデータの格納を要求する。また、データ中継装置１００は、データ参照装置からの参照要求に応じて、データ格納サーバ２００ａ〜２００ｃのいずれかからデータを取得し、データ参照装置に送信する。
【００３２】
データ発生装置３００ａ，３００ｂは、例えば、データの格納を要求するユーザが操作する端末装置である。図２では例として２台のデータ発生装置３００ａ，３００ｂを示すが、データ発生装置の台数は任意である。
【００３３】
データ参照装置４００ａ，４００ｂは、例えば、データの参照を要求するユーザが操作する端末装置である。図２では例として２台のデータ参照装置４００ａ，４００ｂを示すが、データ参照装置の台数は任意である。
【００３４】
なお、データ発生装置とデータ参照装置は、例えば１台の装置として構成されてもよい。例えば、データの格納および参照のサービスが提供される場合、データ中継装置１００およびデータ格納サーバ２００ａ〜２００ｃがサービス提供者側の装置となり、データ発生装置とデータ参照装置は、サービスの提供を受けるユーザが使用する端末装置となる。この場合、データ発生装置とデータ参照装置は共通の端末装置として実現されてもよい。
【００３５】
逆に、データの参照サービスが提供される場合、データ中継装置１００、データ格納サーバ２００ａ〜２００ｃおよびデータ発生装置がサービス提供者側の装置となり、データ参照装置は、サービスの提供を受けるユーザが使用する端末装置となる。この場合、データ発生装置とデータ参照装置とは、個別の装置として実現される。
【００３６】
なお、図２の例では、データ中継装置１００は、ネットワーク５０１を通じてデータ格納サーバ２００ａ〜２００ｃに接続されている。また、データ中継装置１００は、ネットワーク５０２を通じてデータ発生装置３００ａ，３００ｂと接続されている。さらに、データ中継装置１００は、ネットワーク５０３を通じてデータ参照装置４００ａ，４００ｂと接続されている。ただし、ネットワーク５０１〜５０３のうちの２つあるいはすべては、共通化されていてもよい。
【００３７】
図３は、データ中継装置のハードウェア構成例を示す図である。
データ中継装置１００は、図３に示すようなコンピュータとして実現することができる。データ中継装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介して、ＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【００３８】
ＲＡＭ１０２は、データ中継装置１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００３９】
バス１０８に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６および通信インタフェース１０７がある。
【００４０】
ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、データ中継装置１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの他の種類の不揮発性記憶装置を使用することもできる。
【００４１】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａに表示させる。なお、モニタ１０４ａは、例えば、液晶ディスプレイである。
【００４２】
入力インタフェース１０５には、キーボード１０５ａ、マウス１０５ｂなどの入力装置が接続されている。入力インタフェース１０５は、入力装置からの出力信号をＣＰＵ１０１に送信する。
【００４３】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１０６ａに記録されたデータの読み取りを行う。光ディスク１０６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１０６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）などがある。
【００４４】
通信インタフェース１０７は、ネットワーク５０１〜５０３を通じて、他の装置との間でデータを送受信する。
以上のハードウェア構成により、本実施の形態のデータ中継装置１００が実現される。なお、データ格納サーバ２００ａ〜２００ｃ、データ発生装置３００ａ，３００ｂおよびデータ参照装置４００ａ，４００ｂについても、図３に示したようなコンピュータとして実現することができる。
【００４５】
次に、データ中継装置１００が送受信するメッセージの例を示すとともに、データ中継装置１００の基本的な動作について説明する。
図４は、コンテンツが格納される際のメッセージの例およびその転送の流れを示す図である。
【００４６】
データ格納サーバ２００ａ〜２００ｃは、データの実体である「データ値」を、「データ識別子」とともに記憶装置に格納する。データ識別子は、データに対して任意に設定されるラベルであり、例えば、ユーザＩＤ、タイムスタンプなどが用いられる。さらに、データ値には所定の属性値が付与されている。以下、データ識別子、データ値およびその属性値の組み合わせを「コンテンツ」と呼ぶ。
【００４７】
データ中継装置１００は、データ発生装置からデータ値とともに送信されたデータ識別子に基づいて、コンテンツの格納先とするデータ格納サーバを振り分ける。コンテンツの格納先の振り分け方法としては、例えば、データ識別子を基にハッシュ値の算出などの所定の計算によって振り分ける方法や、データ格納量に余裕のあるデータ格納サーバをコンテンツの格納先と決定するとともに、格納先とデータ識別子とをテーブルなどを用いて管理する方法などがある。
【００４８】
図４において、例えばデータ発生装置３００ａがデータの格納を要求する場合、データ発生装置３００ａは、データ中継装置１００に対して格納要求メッセージＭ１を送信する。格納要求メッセージＭ１には、「メッセージ種別」と「コンテンツ」の各項目が設けられ、メッセージ種別の項目には「格納要求」が設定される。コンテンツの項目には、コンテンツの内容、すなわち、データ識別子、データ値およびその属性値が設定される。図４の例では、データ識別値は「ｋｅｙ１」であり、データ値は「ｖａｌｕｅ１」であり、属性値は「ｘｘｘ」である。
【００４９】
データ中継装置１００は、受信した格納要求メッセージＭ１からデータ識別子「ｋｅｙ１」を抽出し、抽出したデータ識別子「ｋｅｙ１」に基づいて、データ値「ｖａｌｕｅ１」の格納先を決定する。格納先がデータ格納サーバ２００ａと決定されたものとすると、データ中継装置１００は、受信した格納要求メッセージＭ１のメッセージ種別およびコンテンツの各項目に設定されていた情報を含む格納要求メッセージＭ２を、データ格納サーバ２００ａに送信する。
【００５０】
格納要求メッセージＭ２を受信したデータ格納サーバ２００ａは、データ識別子「ｋｅｙ１」とデータ値「ｖａｌｕｅ１」とのペアを記憶装置２０１ａに格納した後、格納応答メッセージＭ３を返信する。格納応答メッセージＭ３には、「メッセージ種別」と「ステータス」の各項目が設けられ、メッセージ種別の項目には「格納応答」が設定される。ステータスの項目には、コンテンツの格納が正常に完了した場合には「ＯＫ」が設定され、コンテンツの格納が正常に完了しなかった場合には「ＮＧ」が設定される。
【００５１】
データ中継装置１００は、受信した格納応答メッセージＭ３のメッセージ種別およびステータスの各項目に設定されていた情報を含む格納応答メッセージＭ４を、データ発生装置３００ａに送信する。
【００５２】
なお、図示しないが、コンテンツの削除が要求される場合は、次のような動作が行われる。
データ発生装置３００ａは、コンテンツの削除を要求する場合、削除要求メッセージをデータ中継装置１００に送信する。削除要求メッセージには、メッセージ種別の項目に「削除要求」が設定され、コンテンツの項目にデータ識別子のみが設定される。データ中継装置１００は、削除要求メッセージに設定されたデータ識別子から、コンテンツが格納されているデータ格納サーバを判別する。データ中継装置１００は、判別したデータ格納サーバに対して、受信した削除要求メッセージのメッセージ種別およびコンテンツの各項目に設定されていた情報を含む削除要求メッセージを送信する。
【００５３】
データ格納サーバは、自装置に接続された記憶装置から、受信した削除要求メッセージに設定されているデータ識別子を含むコンテンツを削除する。データ格納サーバは、メッセージ種別の項目に「削除応答」と設定した削除応答メッセージをデータ中継装置１００に送信する。この削除応答メッセージには「ステータス」の項目が設けられ、ステータスの項目には、コンテンツの削除が正常に完了した場合には「ＯＫ」が設定され、コンテンツの削除が正常に完了しなかった場合には「ＮＧ」が設定される。データ中継装置１００は、受信した削除応答メッセージメッセージ種別およびステータスの各項目に設定されていた情報を含む削除応答メッセージを、データ発生装置３００ａに送信する。
【００５４】
図５は、コンテンツが参照される際のメッセージの例およびその転送の流れを示す第１の図である。データ中継装置１００は、データ参照装置から、参照条件としてデータ識別子の指定を受けることで、指定されたデータ識別子に対応するデータ値がどのデータ格納サーバに格納されているかを判別することができる。
【００５５】
図５において、例えばデータ参照装置４００ａがデータ識別子「ｋｅｙ１」を指定してデータの参照を要求する場合、データ参照装置４００ａは、データ中継装置１００に対して参照要求メッセージＭ１１を送信する。参照要求メッセージＭ１１には、「メッセージ種別」と「参照条件」の各項目が設けられ、メッセージ種別の項目には「参照要求」が設定される。また、この例では、参照条件の項目にはデータ識別子「ｋｅｙ１」が設定される。
【００５６】
データ中継装置１００は、受信した参照要求メッセージＭ１１からデータ識別子「ｋｅｙ１」を抽出し、抽出したデータ識別子「ｋｅｙ１」に基づいて、参照が要求されたデータ値が格納されているデータ格納サーバを特定する。データ値がデータ格納サーバ２００ａに格納されていると特定されたものとすると、データ中継装置１００は、受信した参照要求メッセージＭ１１のメッセージ種別および参照条件の各項目に設定されていた情報を含む参照要求メッセージＭ１２を、データ格納サーバ２００ａに送信する。
【００５７】
参照要求メッセージＭ１２を受信したデータ格納サーバ２００ａは、データ識別子「ｋｅｙ１」に対応付けられたデータ値「ｖａｌｕｅ１」を記憶装置２０１ａから読み出し、参照応答メッセージＭ１３を返信する。参照応答メッセージＭ１３には、「メッセージ種別」と「コンテンツ」の各項目が設けられ、メッセージ種別の項目には「参照応答」が設定される。コンテンツの項目には、指定されたデータ識別子「ｋｅｙ１」とともに、記憶装置２０１ａから読み出したデータ値「ｖａｌｕｅ１」が設定される。
【００５８】
データ中継装置１００は、受信した参照応答メッセージＭ１３のメッセージ種別およびコンテンツの各項目に設定されていた情報を含む参照応答メッセージＭ１４を、データ参照装置４００ａに送信する。
【００５９】
なお、参照応答メッセージＭ１３，Ｍ１４には、コンテンツの項目にデータ値の属性値が付与されていてもよい。
以上のように、データ中継装置１００は、データ参照装置から、参照条件としてデータ識別子の指定を受けることで、参照を要求されたデータが格納されている場所を判別できる。しかしながら、データ中継装置１００は、常にデータ識別子が指定された参照要求を受け付ける訳ではない。例えば、データ格納場所を判別可能にするデータ識別子はすべてのデータ参照装置が認識している訳ではないので、データ識別子を認識していないデータ参照装置は、データ識別子以外の参照条件を指定した参照要求を送信することがある。
【００６０】
以下、データ識別子以外の参照条件として、データ値の属性が指定された場合のデータ参照処理について、図６を用いて説明する。図６は、コンテンツが参照される際のメッセージの例およびその転送の流れを示す第２の図である。
【００６１】
参照条件としてデータ値の属性を指定して参照を要求する場合、データ参照装置４００ａは、参照要求メッセージＭ２１をデータ中継装置１００に送信する。参照要求メッセージＭ２１では、メッセージ種別の項目に「参照要求」が設定されるが、参照条件の項目には、データ識別子の代わりに、参照を要求するデータ値の属性値が設定される。図６の例では、参照要求メッセージＭ２１には参照条件として属性値「ｘｘｘ」が設定されている。
【００６２】
参照要求メッセージＭ２１を受信したデータ中継装置１００は、参照を要求されたデータ値の格納場所を特定できないことから、すべてのデータ格納サーバ２００ａ〜２００ｃに対して参照要求メッセージＭ２２ａ〜Ｍ２２ｃを送信する。参照要求メッセージＭ２２ａ〜Ｍ２２ｃには、参照要求メッセージＭ２１のメッセージ種別および参照条件の各項目に設定されていた情報が設定される。
【００６３】
データ格納サーバ２００ａ〜２００ｃのそれぞれは、参照条件として属性値が指定された場合に、自装置に接続されている記憶装置から、指定された属性値に合致するコンテンツを検索する機能を備える。
【００６４】
図６の例では、参照要求メッセージＭ２２ａを受信したデータ格納サーバ２００ａは、指定された属性値「ｘｘｘ」に合致するコンテンツとして、データ識別子「ｋｅｙ１」およびデータ値「ｖａｌｕｅ１」を含むコンテンツと、データ識別子「ｋｅｙ２」およびデータ値「ｖａｌｕｅ２」を含むコンテンツとを、記憶装置２０１ａから読み出す。データ格納サーバ２００ａは、データ識別子「ｋｅｙ１」およびデータ値「ｖａｌｕｅ１」を含むコンテンツと、データ識別子「ｋｅｙ２」およびデータ値「ｖａｌｕｅ２」を含むコンテンツとを設定した参照応答メッセージＭ２３ａを、データ中継装置１００に返信する。
【００６５】
また、図６の例では、参照要求メッセージＭ２２ｂを受信したデータ格納サーバ２００ｂは、指定された属性値「ｘｘｘ」に合致するコンテンツとして、データ識別子「ｋｅｙ３」およびデータ値「ｖａｌｕｅ３」を含むコンテンツを、記憶装置２０１ｂから読み出す。データ格納サーバ２００ｂは、データ識別子「ｋｅｙ３」およびデータ値「ｖａｌｕｅ３」を含むコンテンツを設定した参照応答メッセージＭ２３ｂを、データ中継装置１００に返信する。
【００６６】
一方、図６の例では、データ格納サーバ２００ｃに接続された記憶装置２０１ｃには、指定された属性値「ｘｘｘ」に合致するコンテンツが格納されていないものとする。この場合、データ格納サーバ２００ｃは、コンテンツの項目に、コンテンツがないことを示す「ｎｕｌｌ」を設定した参照応答メッセージＭ２３ｃを、データ中継装置１００に返信する。本実施の形態では、「ｎｕｌｌ」はすべての値が「０」であるものとする。
【００６７】
データ中継装置１００は、受信した参照応答メッセージＭ２３ａ〜Ｍ２３ｃに基づき、読み出されたコンテンツをマージした参照応答メッセージＭ２４を生成して、データ参照装置４００ａに送信する。参照応答メッセージＭ２４には、データ識別子「ｋｅｙ１」およびデータ値「ｖａｌｕｅ１」を含むコンテンツと、データ識別子「ｋｅｙ２」およびデータ値「ｖａｌｕｅ２」を含むコンテンツと、データ識別子「ｋｅｙ３」およびデータ値「ｖａｌｕｅ３」を含むコンテンツとが設定される。
【００６８】
ところで、上記の図６で説明したように、参照条件として属性値が指定された場合、データ中継装置１００は、参照が要求されたコンテンツの格納場所がわからないため、データ格納サーバ２００ａ〜２００ｃのすべてに対して参照要求メッセージを送信する。この処理では、該当するコンテンツが格納されていないデータ格納サーバ２００ｃに対しても参照要求メッセージが送信されてしまうので、ネットワーク５０１に余計なトラフィックが発生することになる。さらに、データ格納サーバ２００ｃは、コンテンツが設定されていない参照応答メッセージを送信するので、ネットワーク５０１にはさらに余計なトラフィックが発生することになる。
【００６９】
本実施の形態のデータ中継装置１００は、上記のような無駄なメッセージの送受信ができるだけ実行されないようにする機能を備える。これにより、データ中継装置１００は、参照条件として属性値が指定されたデータ参照が要求された場合のネットワーク５０１上のデータ転送量を抑制する。
【００７０】
図７は、第２の実施の形態におけるデータ中継装置が備える機能の構成例を示すブロック図である。
データ中継装置１００は、インタフェース処理部１１１、格納処理部１１２、参照処理部１１３、応答処理部１１４および状態管理部１１５を備える。インタフェース処理部１１１、格納処理部１１２、参照処理部１１３、応答処理部１１４および状態管理部１１５の各処理は、例えば、データ中継装置１００が備えるＣＰＵが所定のプログラムを実行することで実現される。また、データ中継装置１００の記憶装置（例えばＲＡＭ１０２）には、状態管理テーブル１２１が記録される。
【００７１】
インタフェース処理部１１１は、他の装置（すなわち、データ格納サーバ２００ａ〜２００ｃ、データ発生装置３００ａ，３００ｂおよびデータ参照装置４００ａ，４００ｂ）との間で、メッセージを送受信する。インタフェース処理部１１１は、例えば、他の装置から受信したメッセージを、格納処理部１１２、参照処理部１１３または応答処理部１１４に振り分ける。また、インタフェース処理部１１１は、格納処理部１１２、参照処理部１１３または応答処理部１１４からの指示に応じて、他の装置にメッセージを送信する。
【００７２】
格納処理部１１２は、データ発生装置からの格納要求に応じて、データ格納サーバにコンテンツの格納を要求するための処理を実行する。また、格納処理部１１２は、データ発生装置からの削除要求に応じて、データ格納サーバに格納されているコンテンツの削除を要求するための処理を実行する。
【００７３】
参照処理部１１３は、データ参照装置からの参照要求に応じて、データ格納サーバに格納されたコンテンツを参照するための処理を実行する。
応答処理部１１４は、データ格納サーバから送信された応答メッセージに応じた処理を実行する。
【００７４】
状態管理部１１５は、状態管理テーブル１２１への情報の登録、および状態管理テーブル１２１からの情報の読み出しを行う。格納処理部１１２、参照処理部１１３および応答処理部１１４は、状態管理部１１５を通じて、状態管理テーブル１２１への情報登録や、状態管理テーブル１２１からの情報の読み出しを行うことができる。
【００７５】
図８は、状態管理テーブルに登録される情報の例を示す図である。
状態管理テーブル１２１には、「サーバアドレス」および「参照条件」の各項目を有するレコードが登録される。サーバアドレスの項目には、データ格納サーバの位置を識別するための値が登録される。参照条件の項目には、データ参照装置から参照条件として指定された属性値が登録される。
【００７６】
この状態管理テーブル１２１は、参照要求の送信を抑止するデータ格納サーバを、参照条件と対応付けて管理するためのテーブル情報である。状態管理テーブル１２１の１つのレコードに登録されたサーバアドレスと参照条件との組み合わせは、参照要求の送信を抑止する制御状態に設定されている。データ中継装置１００の参照処理部１１３は、参照条件として属性値が指定されたとき、指定された属性値が状態管理テーブル１２１に登録されていた場合には、その属性値に対応付けられているデータ格納サーバに対する参照要求の送信を抑止する。
【００７７】
以下、参照要求の送信を抑止する制御状態を「抑止状態」と呼ぶ。一方、状態管理テーブル１２１に登録されていないサーバアドレスと参照条件との組み合わせについての制御状態を「非抑止状態」と呼ぶ。
【００７８】
次に、本実施の形態に係るストレージシステムの処理例について、シーケンス図を用いて説明する。なお、以下の各シーケンス図では、説明を簡単にするために、データ中継装置１００には２台のデータ格納サーバ２００ａ，２００ｂが接続されているものとする。
【００７９】
図９は、属性値に合致するコンテンツの参照処理例を示す第１のシーケンス図である。この図９は、抑止状態に設定されたデータ格納サーバがない場合の処理例を示す。
まず、データ参照装置４００ａは、参照条件として例えば属性値「ｘｘｘ」を指定した参照要求メッセージをデータ中継装置１００に送信する（ステップＳ３１）。データ中継装置１００は、状態管理テーブル１２１を参照し、制御状態をチェックする（ステップＳ３２）。具体的には、データ中継装置１００は、指定された属性値「ｘｘｘ」が状態管理テーブル１２１に登録されているか否かを判定する。
【００８０】
ここでは、属性値「ｘｘｘ」が状態管理テーブル１２１に登録されておらず、データ格納サーバ２００ａ，２００ｂのいずれも非抑止状態であるものとする。この場合、データデータ中継装置１００は、データ格納サーバ２００ａ，２００ｂのそれぞれに対して、参照条件として属性値「ｘｘｘ」を指定した参照要求メッセージを送信する（ステップＳ３３）。すなわち、データ中継装置１００は、データ参照装置４００ａから指定された属性値「ｘｘｘ」に合致するコンテンツの格納場所を判別できないことから、接続されたすべてのデータ格納サーバに対して参照要求メッセージを送信する。
【００８１】
ここで、属性値「ｘｘｘ」に合致するコンテンツは、データ格納サーバ２００ａに接続された記憶装置２０１ａには格納されているものの、データ格納サーバ２００ｂに接続された記憶装置２０１ｂには格納されていないものとする。
【００８２】
この場合、データ格納サーバ２００ａは、記憶装置２０１ａを参照して、属性値「ｘｘｘ」に合致するコンテンツを検索する（ステップＳ３４）。データ格納サーバ２００ａは、属性値「ｘｘｘ」に合致するコンテンツを記憶装置２０１ａから読み出し、読み出したコンテンツを含めた参照応答メッセージをデータ中継装置１００に送信する（ステップＳ３５）。
【００８３】
データ中継装置１００は、データ格納サーバ２００ａから受信した参照応答メッセージにおけるコンテンツの項目のデータサイズをチェックする（ステップＳ３６）。ここでは、データ中継装置１００は、コンテンツの項目のデータサイズが０より大きく、この項目にコンテンツが格納されていると判定する。この場合、データ中継装置１００は、状態管理テーブル１２１に対する登録処理を何ら行わない。
【００８４】
一方、データ格納サーバ２００ｂも、記憶装置２０１ａを参照して、属性値「ｘｘｘ」に合致するコンテンツを検索する（ステップＳ３７）。しかし、データ格納サーバ２００ｂは、属性値「ｘｘｘ」に合致するコンテンツを記憶装置２０１ｂから読み出すことができず、コンテンツを含まない参照応答メッセージをデータ中継装置１００に送信する（ステップＳ３８）。
【００８５】
データ中継装置１００は、データ格納サーバ２００ｂから受信した参照応答メッセージにおけるコンテンツの項目のデータサイズをチェックする（ステップＳ３９）。ここでは、データ中継装置１００は、コンテンツの項目のデータサイズが０であり、この項目にコンテンツが格納されていないと判定する。
【００８６】
この場合、データ中継装置１００は、データ格納サーバ２００ｂと属性値「ｘｘｘ」との組み合わせを抑止状態に変更する（ステップＳ４０）。具体的には、データ中継装置１００は、図８に示した状態管理テーブル１２１における上から２番目のレコードのように、データ格納サーバ２００ｂのサーバアドレスを示す「サーバ２」と、参照条件としての属性値「ｘｘｘ」とを対応付けたレコードを、状態管理テーブル１２１に登録する。
【００８７】
なお、データ格納サーバ２００ａ，２００ｂのそれぞれによる応答処理は、並行して実行される。このため、図９におけるステップＳ３４〜Ｓ３６の処理と、ステップＳ３７〜Ｓ４０の処理は、並列に実行される。
【００８８】
データ中継装置１００は、受信したコンテンツをマージして、参照応答メッセージを作成する（ステップＳ４１）。この例では、データ中継装置１００は、データ格納サーバ２００ａから受信したコンテンツを含めた参照応答メッセージを作成し、作成した応答メッセージをデータ参照装置４００ａに送信する（ステップＳ４２）。
【００８９】
次に、図１０は、属性値に合致するコンテンツの参照処理例を示す第２のシーケンス図である。この図１０は、上記の図９の処理が実行された後に、データ参照装置４００ａから再度、同じ属性値「ｘｘｘ」を指定した参照要求が送信された場合の処理例を示す。
【００９０】
データ参照装置４００ａは、参照条件として属性値「ｘｘｘ」を指定した参照要求メッセージをデータ中継装置１００に送信する（ステップＳ５１）。データ中継装置１００は、状態管理テーブル１２１を参照し、制御状態をチェックする（ステップＳ５２）。この例では、データ中継装置１００は、状態管理テーブル１２１から、属性値「ｘｘｘ」とデータ格納サーバ２００ｂのサーバアドレス「サーバ２」とを含むレコードを抽出し、データ格納サーバ２００ｂが抑止状態であると判定する。
【００９１】
データ中継装置１００は、抑止状態のデータ格納サーバ２００ｂを除く他のデータ格納サーバ（すなわち、データ格納サーバ２００ａ）に対して、参照条件として属性値「ｘｘｘ」を指定した参照要求を送信する（ステップＳ５３）。このとき、抑止状態のデータ格納サーバ２００ｂに対しては、参照要求が送信されない。
【００９２】
データ格納サーバ２００ａは、記憶装置２０１ａを参照して、属性値「ｘｘｘ」に合致するコンテンツを検索し（ステップＳ５４）、属性値「ｘｘｘ」に合致するコンテンツを記憶装置２０１ａから読み出す。データ格納サーバ２００ａは、読み出したコンテンツを含めた参照応答メッセージをデータ中継装置１００に送信する（ステップＳ５５）。
【００９３】
データ中継装置１００は、データ格納サーバ２００ａから受信した参照応答メッセージにおけるコンテンツの項目のデータサイズをチェックする（ステップＳ５６）。ここでは、データ中継装置１００は、コンテンツの項目のデータサイズが０より大きく、この項目にコンテンツが格納されていると判定するので、状態管理テーブル１２１に対する登録処理を何ら行わない。
【００９４】
データ中継装置１００は、データ格納サーバ２００ａから受信したコンテンツを含めた参照応答メッセージを作成し（ステップＳ５７）、作成した参照応答メッセージをデータ参照装置４００ａに送信する（ステップＳ５８）。
【００９５】
以上の図１０の処理によれば、データ中継装置１００は、図９の場合とは異なり、属性値「ｘｘｘ」に合致するコンテンツが格納されていないデータ格納サーバ２００ｂに対しては、参照要求を送信しない。このため、データ格納サーバ２００ｂから、コンテンツを含まない無駄な参照応答メッセージが送信されることもない。従って、ネットワーク５０１におけるデータ転送量を抑制することができる。
【００９６】
次に、図１１は、コンテンツの格納処理例を示す第１のシーケンス図である。この図１１は、コンテンツの格納先が非抑止状態である場合の処理例を示す。
まず、データ発生装置３００ａは、例えば、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を設定した格納要求メッセージをデータ中継装置１００に送信する（ステップＳ６１）。データ中継装置１００は、データ識別子「ｋｅｙ２」に基づいて、コンテンツの格納先を決定する（ステップＳ６２）。ここでは、データ中継装置１００は、コンテンツの格納先をデータ格納サーバ２００ｂと決定したものとする。
【００９７】
データ中継装置１００は、状態管理テーブル１２１を参照し、制御状態をチェックする（ステップＳ６３）。具体的には、データ中継装置１００は、格納先に決定したデータ格納サーバ２００ｂのサーバアドレスが、状態管理テーブル１２１に登録されているか否かを判定する。
【００９８】
ここでは、データ格納サーバ２００ｂのサーバアドレスが状態管理テーブル１２１に登録されておらず、データ格納サーバ２００ｂは非抑止状態であるものとする。この場合、データ中継装置１００は、データ格納サーバ２００ｂに対して、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を設定した格納要求メッセージを送信する（ステップＳ６４）。
【００９９】
格納要求メッセージを受信したデータ格納サーバ２００ｂは、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を含むコンテンツを、記憶装置２０１ｂの所定領域に格納する（ステップＳ６５）。データ格納サーバ２００ｂは、格納処理が正常に完了したことを示す格納応答メッセージをデータ中継装置１００に送信する（ステップＳ６６）。データ中継装置１００は、格納処理が正常に完了したことを示す格納応答メッセージをデータ発生装置３００ａに送信する（ステップＳ６７）。
【０１００】
図１２は、コンテンツの格納処理例を示す第２のシーケンス図である。この図１２は、コンテンツの格納先が抑止状態である場合の処理例を示す。
データ発生装置３００ａは、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を設定した格納要求メッセージをデータ中継装置１００に送信する（ステップＳ７１）。データ中継装置１００は、データ識別子「ｋｅｙ２」に基づいて、コンテンツの格納先を例えばデータ格納サーバ２００ｂと決定する（ステップＳ７２）。
【０１０１】
データ中継装置１００は、状態管理テーブル１２１を参照し、制御状態をチェックする（ステップＳ７３）。具体的には、データ中継装置１００は、格納先に決定したデータ格納サーバ２００ｂのサーバアドレスが、状態管理テーブル１２１に登録されているか否かを判定する。
【０１０２】
ここでは、データ格納サーバ２００ｂのサーバアドレスが状態管理テーブル１２１に登録されており、データ格納サーバ２００ｂは抑止状態であるものとする。この場合、データ中継装置１００は、データ格納サーバ２００ｂの制御状態を非抑止状態に変更する（ステップＳ７４）。
【０１０３】
具体的には、データ中継装置１００は、状態管理テーブル１２１から、データ格納サーバ２００ｂのサーバアドレスを含むすべてのレコードを消去する。例えば、図８の例のように、状態管理テーブル１２１に、データ格納サーバ２００ｂを示す「サーバ２」を含むレコードが３つ登録されていた場合、データ中継装置１００は、これらの３つのレコードを消去する。
【０１０４】
このステップＳ７４では、データ中継装置１００は、状態管理テーブル１２１における「サーバ２」を含むレコードのうち、受信した格納要求メッセージに含まれるデータ値の属性値を含むレコードのみを消去してもよい。ただし、この場合には、データ中継装置１００は、消去すべきレコードを判定するために、格納要求メッセージから属性値を取得し、取得した属性値をキーとして状態管理テーブル１２１を検索する必要がある。
【０１０５】
これに対して、「サーバ２」を含むすべてのレコードを消去することで、データ中継装置１００は、消去すべきレコードを判定するために格納先を決定するだけでよくなり、属性値の取得や、取得した属性値をキーとした検索を行う必要がない。従って、データ中継装置１００の処理負荷を軽減することができる。
【０１０６】
この後、データ中継装置１００は、データ格納サーバ２００ｂに対して、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を設定した格納要求メッセージを送信する（ステップＳ７５）。格納要求メッセージを受信したデータ格納サーバ２００ｂは、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を含むコンテンツを、記憶装置２０１ｂの所定領域に格納する（ステップＳ７６）。
【０１０７】
データ格納サーバ２００ｂは、格納処理が正常に完了したことを示す格納応答メッセージをデータ中継装置１００に送信する（ステップＳ７７）。データ中継装置１００は、格納処理が正常に完了したことを示す格納応答メッセージをデータ発生装置３００ａに送信する（ステップＳ７８）。
【０１０８】
なお、データ発生装置３００ａからデータ識別子「ｋｅｙ２」に該当するコンテンツの削除が要求された場合には、図１１および図１２の処理が次のように変形される。ステップＳ６１，Ｓ６４，Ｓ７１，Ｓ７５では、格納要求メッセージの代わりに、データ識別子「ｋｅｙ２」が指定された削除要求メッセージが送信される。ステップＳ６５，Ｓ７６では、データ格納サーバ２００ｂは、指定されたデータ識別子「ｋｅｙ２」を含むコンテンツを記憶装置２０１ｂから削除する。ステップＳ６６，Ｓ６７，Ｓ７７，Ｓ７８では、格納応答メッセージの代わりに削除応答メッセージが送信される。
【０１０９】
次に、図１３，図１４は、データ中継装置の処理例を示すフローチャートである。図１３，図１４の処理は、インタフェース処理部１１１がメッセージを受信するたびに実行される。なお、図１３，図１４では、参照条件としてデータ識別子が指定された場合の参照処理については省略する。
【０１１０】
［ステップＳ９１］データ中継装置１００は、メッセージを受信する。インタフェース処理部１１１は、受信したメッセージのメッセージ種別を判別する。
［ステップＳ９２］受信したメッセージが参照要求メッセージである場合、インタフェース処理部１１１は、受信したメッセージを参照処理部１１３に出力する。この後、ステップＳ９３の処理が実行される。一方、受信したメッセージが参照要求メッセージでない場合には、ステップＳ９５の処理が実行される。
【０１１１】
［ステップＳ９３］参照処理部１１３は、状態管理部１１５に対してデータ格納サーバごとの制御状態を問い合わせ、非抑止状態のデータ格納サーバがあるかを判定する。非抑止状態のデータ格納サーバが１台以上ある場合は、ステップＳ９４の処理が実行される。一方、非抑止状態のデータ格納サーバがない場合には、処理が終了される。
【０１１２】
具体的には、参照処理部１１３は、受信した参照要求メッセージで参照条件として指定された属性値を、状態管理部１１５に通知する。状態管理部１１５は、状態管理テーブル１２１から、通知された属性値を含むレコードを抽出する。状態管理部１１５は、抽出したレコードに含まれるサーバアドレスに対応するデータ格納サーバを、抑止状態のデータ格納サーバとして参照処理部１１３に通知する。
【０１１３】
［ステップＳ９４］参照処理部１１３は、インタフェース処理部１１１に対して、参照条件として属性値を指定した参照要求メッセージを、非抑止状態であると判定したデータ格納サーバへ送信するように指示する。インタフェース処理部１１１は、指示に応じて、非抑止状態であると判定されたデータ格納サーバに参照要求メッセージを送信する。
【０１１４】
［ステップＳ９５］受信したメッセージが格納要求メッセージである場合、インタフェース処理部１１１は、受信したメッセージを格納処理部１１２に出力する。この後、ステップＳ９６の処理が実行される。一方、受信したメッセージが参照要求メッセージでも格納要求メッセージでもない場合には、図１４のステップＳ１００の処理が実行される。
【０１１５】
［ステップＳ９６］格納処理部１１２は、受信された格納要求メッセージからデータ識別子を取得し、取得したデータ識別子に基づいて、コンテンツの格納先とするデータ格納サーバ（以下、「格納先サーバ」と呼ぶ）を特定する。
【０１１６】
［ステップＳ９７］格納処理部１１２は、格納先サーバの制御状態を状態管理部１１５に問い合わせ、制御状態が抑止状態か否かを判定する。このとき、状態管理部１１５は、格納先サーバのサーバアドレスを含むレコードが状態管理テーブル１２１に登録されている場合、格納先サーバが抑止状態であると格納処理部１１２に通知する。一方、状態管理部１１５は、格納先サーバのサーバアドレスを含むレコードが状態管理テーブル１２１に登録されていない場合、格納先サーバが非抑止状態であると格納処理部１１２に通知する。
【０１１７】
格納先サーバが抑止状態である場合には、ステップＳ９８の処理が実行される。一方、格納先サーバが非抑止状態である場合には、ステップＳ９９の処理が実行される。
［ステップＳ９８］格納処理部１１２は、状態管理部１１５に対して、格納先サーバを非抑止状態に変更するように指示する。状態管理部１１５は、状態管理テーブル１２１から、格納先サーバを含むレコードをすべて消去する。
【０１１８】
［ステップＳ９９］格納処理部１１２は、インタフェース処理部１１１に対して、格納要求メッセージを格納先サーバへ送信するように指示する。インタフェース処理部１１１は、指示に応じて、格納先サーバに対して格納要求メッセージを送信する。
【０１１９】
［ステップＳ１００］受信したメッセージが削除要求メッセージである場合、インタフェース処理部１１１は、受信したメッセージを格納処理部１１２に出力する。この後、ステップＳ１０１の処理が実行される。一方、受信したメッセージが参照要求メッセージ、格納要求メッセージおよび削除要求メッセージのいずれでもない場合には、ステップＳ１０４の処理が実行される。
【０１２０】
［ステップＳ１０１］格納処理部１１２は、受信された削除要求メッセージからデータ識別子を取得し、取得したデータ識別子に基づいて、削除が要求されたコンテンツが格納されているデータ格納サーバ（以下、「格納サーバ」と呼ぶ）を特定する。
【０１２１】
［ステップＳ１０２］格納処理部１１２は、格納サーバの制御状態を非抑止状態に変更するように状態管理部１１５に指示する。この時点では、状態管理テーブル１２１には、格納サーバのサーバアドレスを含むレコードが登録されている場合と、登録されていない場合とがあり得る。状態管理部１１５は、状態管理テーブル１２１に格納サーバのサーバアドレスを含むレコードが登録されている場合、これらのレコードを消去する。
【０１２２】
［ステップＳ１０３］格納処理部１１２は、インタフェース処理部１１１に対して、削除要求メッセージを格納サーバへ送信するように指示する。インタフェース処理部１１１は、指示に応じて、格納サーバに対して削除要求メッセージを送信する。
【０１２３】
［ステップＳ１０４］ステップＳ１００で「Ｎｏ」と判定された場合、データ中継装置１００が受信したメッセージは応答メッセージとなり、インタフェース処理部１１１は、受信したメッセージを応答処理部１１４に出力する。受信したメッセージが参照応答メッセージである場合、ステップＳ１０５の処理が実行される。一方、受信したメッセージが格納応答メッセージまたは削除応答メッセージである場合、ステップＳ１０９の処理が実行される。
【０１２４】
［ステップＳ１０５］応答処理部１１４は、受信した参照応答メッセージにおけるコンテンツの項目のデータサイズに基づいて、参照応答メッセージにコンテンツが含まれているかを判定する。コンテンツが含まれている場合には、ステップＳ１０７の処理が実行される。一方、コンテンツが含まれていない場合には、ステップＳ１０６の処理が実行される。
【０１２５】
［ステップＳ１０６］応答処理部１１４は、参照応答メッセージを送信したデータ格納サーバの制御状態を抑止状態に変更するように、状態管理部１１５に指示する。このとき、応答処理部１１４は、参照応答メッセージを送信したデータ格納サーバのサーバアドレスと、参照応答メッセージに対応する参照要求メッセージに参照条件として指定されていた属性値とを、状態管理部１１５に通知する。状態管理部１１５は、通知されたサーバアドレスと属性値とを含むレコードを状態管理テーブル１２１に登録する。
【０１２６】
［ステップＳ１０７］応答処理部１１４は、参照要求メッセージを送信したすべてのデータ格納サーバから参照応答メッセージを受信したかを判定する。参照要求メッセージを送信したすべてのデータ格納サーバから参照応答メッセージを受信した場合、ステップＳ１０８の処理が実行される。一方、参照要求メッセージを送信したデータ格納サーバの中に、参照応答メッセージを受信していないデータ格納サーバがある場合には、処理が終了される。
【０１２７】
［ステップＳ１０８］応答処理部１１４は、参照要求メッセージを送信したデータ格納サーバから受信したコンテンツをマージして、参照応答メッセージを生成し、生成した参照応答メッセージを参照要求元のデータ参照装置に送信する。
【０１２８】
［ステップＳ１０９］応答処理部１１４は、受信したメッセージが格納応答メッセージの場合は、格納応答メッセージを格納要求元のデータ発生装置に送信する。また、応答処理部１１４は、受信したメッセージが削除応答メッセージの場合は、削除応答メッセージを削除要求元のデータ発生装置に送信する。
【０１２９】
〔第３の実施の形態〕
第３の実施の形態におけるデータ中継装置は、第２の実施の形態におけるデータ中継装置１００に、データ格納サーバへの格納が要求されたコンテンツの一部をキャッシュする機能を付加したものである。データ中継装置１００は、参照条件として属性値が指定された参照要求を受信したとき、指定された属性値に合致するコンテンツがキャッシュされている場合には、キャッシュされているコンテンツを参照要求元に送信することで、データ格納サーバへ送信する参照要求の数を抑制する。
【０１３０】
図１５は、第３の実施の形態におけるデータ中継装置が備える機能の構成例を示すブロック図である。なお、図１５では、図７に対応する構成要素には同じ符号を付して示す。
図１５に示すデータ中継装置１００ａは、インタフェース処理部１１１、格納処理部１１２、参照処理部１１３、応答処理部１１４および状態管理部１１５に加えて、コンテンツ蓄積処理部１１６を備える。コンテンツ蓄積処理部１１６の処理は、例えば、データ中継装置１００ａが備えるＣＰＵが所定のプログラムを実行することで実現される。また、データ中継装置１００ａの記憶装置（例えば、ＨＤＤ）には、コンテンツ管理テーブル１２２が記録される。コンテンツ管理テーブル１２２は、コンテンツが一時的に蓄積されるキャッシュ部として機能する。
【０１３１】
コンテンツ蓄積処理部１１６は、コンテンツ管理テーブル１２２に対するコンテンツの登録や、コンテンツ管理テーブル１２２からのコンテンツの読み出し、および、コンテンツ管理テーブル１２２に登録されたコンテンツの消去を行う。
【０１３２】
図１６は、コンテンツ管理テーブルに登録される情報の例を示す図である。
コンテンツ管理テーブル１２２の各レコードには、データ識別子、データ値およびその属性値を含むコンテンツに対して、蓄積時刻が対応付けて登録される。蓄積時刻は、コンテンツがコンテンツ管理テーブル１２２に蓄積された時刻を示す。
【０１３３】
図１７は、第３の実施の形態において状態管理テーブルに登録される情報の例を示す図である。
第３の実施の形態において、状態管理テーブル１２１には、「サーバアドレス」および「参照条件」の各項目に加えて、「制御状態」および「状態変更時刻」の各項目をさらに有するレコードが登録される。制御状態の項目には、前述の「抑止状態」、または、コンテンツが蓄積されている状態を示す「蓄積状態」のいずれかが登録される。
【０１３４】
第３の実施の形態において、格納処理部１１２は、データ発生装置からコンテンツの格納が要求されたとき、状態管理テーブル１２１を参照する。格納処理部１１２は、コンテンツの格納先のデータ格納サーバを示すサーバアドレスを含むレコードが抑止状態に設定されている場合には、これらのレコードの制御状態を蓄積状態に変更するとともに、コンテンツをコンテンツ管理テーブル１２２に蓄積する。
【０１３５】
状態変更時刻の項目には、該当レコードの制御状態が抑止状態から蓄積状態に変更された時刻が登録される。
次に、本実施の形態に係るストレージシステムの処理例について、シーケンス図を用いて説明する。
【０１３６】
まず、データ中継装置１００ａが、データ参照装置４００ａから参照条件として属性値「ｘｘｘ」が指定された参照要求を受信し、属性値「ｘｘｘ」を含むレコードが状態管理テーブル１２１に登録されていない場合（すなわち、すべてのデータ格納サーバが非抑止状態である場合）の処理は、図９と同様である。ただし、ステップＳ４０では、データ中継装置１００ａは、コンテンツを送信しなかったデータ格納サーバ２００ｂのサーバアドレスを示す「サーバ２」を含むレコードを状態管理テーブル１２１に生成する。このとき、データ中継装置１００ａは、生成したレコードの参照条件の項目に属性値「ｘｘｘ」を、制御状態の項目に抑止状態を、それぞれ登録する。なお、制御状態の項目に抑止状態と登録されている場合、状態変更時刻の項目には何も登録されない。
【０１３７】
また、図９の処理後に、データ中継装置１００ａが、データ参照装置４００ａから再度、参照条件として属性値「ｘｘｘ」が指定された参照要求を受けた場合の処理は、図１０と同様である。この場合、図１０のステップＳ５２では、データ中継装置１００ａは、状態管理テーブル１２１から、サーバアドレスの項目にデータ格納サーバ２００ｂを示す「サーバ２」が、参照条件の項目に属性値「ｘｘｘ」が、制御状態の項目に抑止状態がそれぞれ登録されたレコードを抽出し、データ格納サーバ２００ｂが抑止状態であると判定する。
【０１３８】
なお、状態管理テーブル１２１において、指定された属性値「ｘｘｘ」に対応付けられたサーバアドレスの制御状態が蓄積状態である場合の参照処理手順については、後の図２０で説明する。
【０１３９】
次に、データ発生装置３００ａが、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を設定した格納要求メッセージをデータ中継装置１００ａに送信した場合の処理は、次のようになる。
【０１４０】
データ識別子「ｋｅｙ２」に基づく格納先サーバが非抑止状態である場合の処理は、図１１と同様である。一方、データ識別子「ｋｅｙ２」に基づく格納先サーバが抑止状態である場合には、次の図１８に示すような処理が実行される。
【０１４１】
図１８は、コンテンツの格納処理例を示す第３のシーケンス図である。
データ発生装置３００ａは、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を設定した格納要求メッセージをデータ中継装置１００ａに送信する（ステップＳ１２１）。データ中継装置１００ａは、データ識別子「ｋｅｙ２」に基づいて、コンテンツの格納先を例えばデータ格納サーバ２００ｂと決定する（ステップＳ１２２）。
【０１４２】
データ中継装置１００ａは、状態管理テーブル１２１を参照し、制御状態をチェックする（ステップＳ１２３）。具体的には、データ中継装置１００ａは、格納先に決定したデータ格納サーバ２００ｂのサーバアドレスを含むレコードを状態管理テーブル１２１から抽出し、抽出したレコードが抑止状態に設定されているかを判定する。
【０１４３】
ここでは、データ格納サーバ２００ｂのサーバアドレスを含むレコードが状態管理テーブル１２１に登録され、それらのレコードが抑止状態に設定されているものとする。この場合、データ中継装置１００ａは、受信した格納要求メッセージ内のコンテンツ、すなわちデータ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を含むコンテンツを、コンテンツ管理テーブル１２２に蓄積する（ステップＳ１２４）。このとき、データ中継装置１００ａは、蓄積したコンテンツに対応付ける蓄積時刻の項目に、現在の時刻を登録する。
【０１４４】
さらに、データ中継装置１００ａは、状態管理テーブル１２１のレコードのうち、データ格納サーバ２００ｂのサーバアドレスを含むすべてのレコードの制御状態を蓄積状態に変更する（ステップＳ１２５）。このとき、データ中継装置１００ａは、データ格納サーバ２００ｂのサーバアドレス「サーバ２」を含む各レコードの状態変更時刻の項目に、現在の時刻を登録する。
【０１４５】
このステップＳ１２５では、データ中継装置１００ａは、状態管理テーブル１２１における「サーバ２」を含むレコードのうち、受信した格納要求メッセージに含まれる属性値を含むレコードのみを消去してもよい。しかしながら、データ中継装置１００ａは、ステップＳ１２５において、「サーバ２」を含むすべてのレコードの制御状態を蓄積状態に変更することで、受信した格納要求メッセージから属性値を取得する必要がなくなり、処理負荷を軽減することができる。
【０１４６】
この後、データ中継装置１００ａは、データ格納サーバ２００ｂに対して、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を設定した格納要求メッセージを送信する（ステップＳ１２６）。データ格納サーバ２００ｂは、受信した格納要求メッセージに含まれるコンテンツを記憶装置２０１ｂの所定領域に格納する（ステップＳ１２７）。
【０１４７】
データ格納サーバ２００ｂは、格納処理が正常に完了したことを示す格納応答メッセージをデータ中継装置１００ａに送信する（ステップＳ１２８）。データ中継装置１００ａは、格納処理が正常に完了したことを示す格納応答メッセージをデータ発生装置３００ａに送信する（ステップＳ１２９）。
【０１４８】
以上の図１８の処理によれば、データ中継装置１００ａは、コンテンツの格納先が抑止状態に設定されているという限定的な条件が成立している場合のみ、格納するコンテンツをコンテンツ管理テーブル１２２にキャッシュする。これにより、コンテンツをキャッシュするための記憶領域を小さくすることができる。
【０１４９】
図１９は、コンテンツの格納処理例を示す第４のシーケンス図である。この図１９は、コンテンツの格納先が蓄積状態に設定されている場合の処理例である。
データ発生装置３００ａは、例えば、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ４」および属性値「ｘｘｘ」を設定した格納要求メッセージをデータ中継装置１００ａに送信する（ステップＳ１３１）。データ中継装置１００ａは、データ識別子「ｋｅｙ２」に基づいて、コンテンツの格納先をデータ格納サーバ２００ｂと決定する（ステップＳ１３２）。
【０１５０】
データ中継装置１００ａは、状態管理テーブル１２１を参照し、制御状態をチェックする（ステップＳ１３３）。具体的には、データ中継装置１００ａは、格納先に決定したデータ格納サーバ２００ｂのサーバアドレスを含むレコードを状態管理テーブル１２１から抽出し、抽出したレコードが抑止状態に設定されているかを判定する。
【０１５１】
ここでは、データ格納サーバ２００ｂのサーバアドレスを含むレコードが状態管理テーブル１２１に登録され、それらのレコードが蓄積状態に設定されているものとする。この場合、データ中継装置１００ａは、受信した格納要求メッセージ内のコンテンツ、すなわちデータ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ４」および属性値「ｘｘｘ」を含むコンテンツを、コンテンツ管理テーブル１２２に蓄積する（ステップＳ１３４）。このとき、データ中継装置１００ａは、蓄積したコンテンツに対応付ける蓄積時刻の項目に、現在の時刻を登録する。
【０１５２】
なお、データ中継装置１００ａは、ステップＳ１３４において、データ識別子「ｋｅｙ２」および属性値「ｘｘｘ」を含むコンテンツがコンテンツ管理テーブル１２２にすでに蓄積されている場合には、蓄積されているコンテンツに新たに受信したコンテンツを上書きする。例えば、図１８の処理後に図１９の処理が実行された場合、コンテンツ管理テーブル１２２には、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を含むコンテンツがすでに登録されている。この場合、データ中継装置１００ａは、コンテンツ管理テーブル１２２に登録されたデータ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ２」および属性値「ｘｘｘ」を含むコンテンツを、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ４」および属性値「ｘｘｘ」を含むコンテンツに更新する。
【０１５３】
この後、データ中継装置１００ａは、データ格納サーバ２００ｂに対して、データ識別子「ｋｅｙ２」、データ値「ｖａｌｕｅ４」および属性値「ｘｘｘ」を設定した格納要求メッセージを送信する（ステップＳ１３５）。データ格納サーバ２００ｂは、受信した格納要求メッセージに含まれるコンテンツを記憶装置２０１ｂの所定領域に格納する（ステップＳ１３６）。
【０１５４】
データ格納サーバ２００ｂは、格納処理が正常に完了したことを示す格納応答メッセージをデータ中継装置１００ａに送信する（ステップＳ１３７）。データ中継装置１００ａは、格納処理が正常に完了したことを示す格納応答メッセージをデータ発生装置３００ａに送信する（ステップＳ１３８）。
【０１５５】
次に、状態管理テーブル１２１において、指定された属性値「ｘｘｘ」に対応付けられたサーバアドレスの制御状態が蓄積状態である場合の参照処理手順について、図２０を用いて説明する。図２０は、属性値に合致するコンテンツの参照処理例を示す第３のシーケンス図である。
【０１５６】
データ参照装置４００ａは、参照条件として例えば属性値「ｘｘｘ」を指定した参照要求メッセージをデータ中継装置１００ａに送信する（ステップＳ１４１）。データ中継装置１００ａは、状態管理テーブル１２１を参照し、制御状態をチェックする（ステップＳ１４２）。この例では、データ中継装置１００ａは、状態管理テーブル１２１から、属性値「ｘｘｘ」とデータ格納サーバ２００ｂのサーバアドレス「サーバ２」とを含むレコードを抽出し、データ格納サーバ２００ｂが蓄積状態であると判定する。
【０１５７】
データ中継装置１００ａは、蓄積状態のデータ格納サーバ２００ｂを除く他のデータ格納サーバ（すなわち、データ格納サーバ２００ａ）に対して、参照条件として属性値「ｘｘｘ」を指定した参照要求を送信する（ステップＳ１４３）。このとき、蓄積状態のデータ格納サーバ２００ｂに対しては、参照要求が送信されない。
【０１５８】
なお、ステップＳ１４２では、状態管理テーブル１２１における属性値「ｘｘｘ」を含むレコードの中には、データ格納サーバ２００ｂ以外のサーバを示すアドレスが設定され、かつ抑止状態に設定されたレコードが存在する場合もある。この場合、データ中継装置１００ａは、ステップＳ１４３において、属性値「ｘｘｘ」を含み、かつ抑止状態に設定されたレコードに登録されたデータ格納サーバに対しても、参照要求を送信しない。
【０１５９】
データ格納サーバ２００ａは、記憶装置２０１ａを参照して、属性値「ｘｘｘ」に合致するコンテンツを検索し（ステップＳ１４４）、属性値「ｘｘｘ」に合致するコンテンツを記憶装置２０１ａから読み出す。データ格納サーバ２００ａは、読み出したコンテンツを含めた参照応答メッセージをデータ中継装置１００ａに送信する（ステップＳ１４５）。
【０１６０】
データ中継装置１００ａは、データ格納サーバ２００ａから受信した参照応答メッセージにおけるコンテンツの項目のデータサイズをチェックする（ステップＳ１４６）。ここでは、データ中継装置１００ａは、コンテンツの項目のデータサイズが０より大きく、この項目にコンテンツが格納されていると判定するので、状態管理テーブル１２１に対する登録処理を何ら行わない。
【０１６１】
また、データ中継装置１００ａは、コンテンツ管理テーブル１２２に蓄積されたコンテンツを参照し（ステップＳ１４７）、参照対象のコンテンツが蓄積されているかを判定する（ステップＳ１４８）。
【０１６２】
データ中継装置１００ａは、コンテンツ管理テーブル１２２の各レコードに登録されたデータ識別子を基に、ステップＳ１４２で蓄積状態であると判定したデータ格納サーバに格納されているコンテンツを含むレコードを判別する。例えば、コンテンツに付与されたデータ識別子が「ｋｅｙ２」であれば、そのコンテンツの格納先はデータ格納サーバ２００ｂである、というコンテンツ格納先の決定方法が採られる場合、データ中継装置１００ａはステップＳ１４８において、データ識別子「ｋｅｙ２」を含むレコードを判別する。
【０１６３】
さらに、データ中継装置１００ａは、判別したレコードから、参照要求メッセージで指定された属性値「ｘｘｘ」を含むレコードを抽出する。
以上の手順でレコードが抽出できた場合、データ中継装置１００ａは、抽出したレコードからコンテンツを読み出すとともに、そのレコードをコンテンツ管理テーブル１２２から消去する。さらに、データ中継装置１００ａは、状態管理テーブル１２１から、ステップＳ１４２で抽出された、属性値「ｘｘｘ」とデータ格納サーバ２００ｂのサーバアドレス「サーバ２」とを含むレコードを削除し、データ格納サーバ２００ｂの制御状態を非抑止状態に変更する。
【０１６４】
一方、上記の手順でレコードが抽出できなかった場合、データ中継装置１００ａは、ステップＳ１４２で抽出された、属性値「ｘｘｘ」とデータ格納サーバ２００ｂのサーバアドレス「サーバ２」とを含むレコードの制御状態を、抑止状態に変更する。
【０１６５】
なお、ステップＳ１４４〜Ｓ１４６の処理と、ステップＳ１４７，Ｓ１４８の処理は、並列に実行される。
この後、データ中継装置１００ａは、ステップＳ１４５でデータ格納サーバ２００ａから受信したコンテンツと、ステップＳ１４８でコンテンツ管理テーブル１２２から読み出したコンテンツとをマージして、参照応答メッセージを作成する（ステップＳ１４９）。データ中継装置１００ａは、作成した参照応答メッセージをデータ参照装置４００ａに送信する（ステップＳ１５０）。
【０１６６】
以上の図２０におけるステップＳ１４２，Ｓ１４３の処理では、データ中継装置１００ａは、指定された属性値に合致するコンテンツが格納されていないデータ格納サーバだけでなく、指定された属性値に合致するコンテンツが格納されているデータ格納サーバのうち、蓄積状態に設定されているデータ格納サーバに対しても、参照要求を送信しない。このため、ネットワーク５０１に転送されるデータ量をさらに抑制することができる。
【０１６７】
また、データ中継装置１００ａは、あるコンテンツを格納するデータ格納サーバの制御状態を蓄積状態に変更してから、参照対象が同じコンテンツであると推定される参照要求を最初に受信するまでの期間のみ、そのコンテンツをコンテンツ管理テーブル１２２にキャッシュする。データ中継装置１００ａは、このような限定的な期間のみコンテンツをキャッシュするようにしたことで、コンテンツのキャッシュ領域の容量を小さくすることができる。
【０１６８】
次に、コンテンツの削除処理について説明する。削除対象のコンテンツが格納されているデータ格納サーバの制御状態が非抑止状態および抑止状態である場合の処理は、第２の実施の形態と同様である。また、削除対象のコンテンツが格納されているデータ格納サーバの制御状態が蓄積状態である場合の処理は、次の図２１のようになる。
【０１６９】
図２１は、コンテンツの削除処理例を示すシーケンス図である。
データ発生装置３００ａは、例えば、データ識別子「ｋｅｙ２」を指定した削除要求メッセージをデータ中継装置１００ａに送信する（ステップＳ１６１）。データ中継装置１００ａは、データ識別子「ｋｅｙ２」に基づいて、コンテンツの格納場所をデータ格納サーバ２００ｂと特定する（ステップＳ１６２）。
【０１７０】
データ中継装置１００ａは、状態管理テーブル１２１を参照し、制御状態をチェックする（ステップＳ１６３）。具体的には、データ中継装置１００ａは、コンテンツが格納されているデータ格納サーバ２００ｂのサーバアドレスを含むレコードを状態管理テーブル１２１から抽出し、抽出したレコードが蓄積状態に設定されているかを判定する。
【０１７１】
ここでは、データ格納サーバ２００ｂのサーバアドレスを含むレコードが状態管理テーブル１２１に登録され、それらのレコードが蓄積状態に設定されているものとする。この場合、データ中継装置１００ａは、状態管理テーブル１２１から、データ格納サーバ２００ｂのサーバアドレスを含むすべてのレコードを消去して、データ格納サーバ２００ｂの制御状態を非抑止状態に変更する（ステップＳ１６４）。これとともに、データ中継装置１００ａは、コンテンツ管理テーブル１２２から、データ識別子「ｋｅｙ２」を含むすべてのコンテンツを消去する（ステップＳ１６５）。
【０１７２】
この後、データ中継装置１００ａは、データ格納サーバ２００ｂに対して、データ識別子「ｋｅｙ２」を指定した削除要求メッセージを送信する（ステップＳ１６６）。データ格納サーバ２００ｂは、データ識別子「ｋｅｙ２」を含むコンテンツを記憶装置２０１ｂから削除する（ステップＳ１６７）。
【０１７３】
データ格納サーバ２００ｂは、削除処理が正常に完了したことを示す削除応答メッセージをデータ中継装置１００ａに送信する（ステップＳ１６８）。データ中継装置１００ａは、削除処理が正常に完了したことを示す削除応答メッセージをデータ発生装置３００ａに送信する（ステップＳ１６９）。
【０１７４】
次に、図２２，図２３は、データ中継装置の処理例を示すフローチャートである。図２２，図２３の処理は、インタフェース処理部１１１がメッセージを受信するたびに実行される。
【０１７５】
なお、図２２，図２３では、図１３，図１４と同じ処理が実行される処理ステップには、同じ符号を付して示している。以下、図１３，図１４とは異なる処理についてのみ説明する。また、図１３，図１４と同様に、図２２，図２３では、参照条件としてデータ識別子が指定された場合の参照処理については省略する。
【０１７６】
図１３のステップＳ９２で、受信したメッセージが参照要求メッセージであると判定されると、図１３のステップＳ９３，Ｓ９４の代わりに、次のステップＳ１８１〜Ｓ１８７が実行される。
【０１７７】
［ステップＳ１８１］参照処理部１１３は、状態管理部１１５に対してデータ格納サーバごとの制御状態を問い合わせ、非抑止状態のデータ格納サーバがあるかを判定する。
具体的には、参照処理部１１３は、受信した参照要求メッセージで参照条件として指定された属性値を、状態管理部１１５に通知する。状態管理部１１５は、状態管理テーブル１２１から、通知された属性値を含むレコードを抽出する。状態管理部１１５は、抽出したレコードに含まれるサーバアドレスおよび制御状態の組み合わせを、参照処理部１１３に通知する。
【０１７８】
参照処理部１１３は、状態管理部１１５から通知されなかったサーバアドレスに対応するデータ格納サーバを、非抑止状態のデータ格納サーバと判定する。非抑止状態のデータ格納サーバが１台以上ある場合は、ステップＳ１８２の処理が実行される。一方、非抑止状態のデータ格納サーバがない場合には、ステップＳ１８３の処理が実行される。
【０１７９】
［ステップＳ１８２］参照処理部１１３は、インタフェース処理部１１１に対して、参照条件として属性値を指定した参照要求メッセージを、非抑止状態であると判定したデータ格納サーバへ送信するように指示する。インタフェース処理部１１１は、指示に応じて、非抑止状態であると判定されたデータ格納サーバに参照要求メッセージを送信する。
【０１８０】
［ステップＳ１８３］参照処理部１１３は、蓄積状態のデータ格納サーバがあるかを判定する。参照処理部１１３は、ステップＳ１８１において、状態管理部１１５から蓄積状態に設定されたサーバアドレスが通知された場合、通知されたサーバアドレスに対応するデータ格納サーバを、蓄積状態のデータ格納サーバと判定する。なお、このとき、参照処理部１１３は、コンテンツ管理テーブル１２２において通知されたサーバアドレスに対応付けられていた状態変更時刻を、コンテンツ蓄積処理部１１６から取得する。
【０１８１】
蓄積状態のデータ格納サーバが１台以上ある場合は、ステップＳ１８４の処理が実行される。一方、蓄積状態のデータ格納サーバがない場合には、処理が終了される。
［ステップＳ１８４］参照処理部１１３は、蓄積状態のデータ格納サーバのサーバアドレスと、参照条件として指定された属性値とをコンテンツ蓄積処理部１１６に通知し、通知した情報に対応するコンテンツがコンテンツ管理テーブル１２２に蓄積されているかを問い合わせる。このとき、参照処理部１１３は、ステップＳ１８３でコンテンツ蓄積処理部１１６を通じて取得した状態変更時刻も、状態管理部１１５に通知する。
【０１８２】
コンテンツ蓄積処理部１１６は、まず、コンテンツ管理テーブル１２２から、参照処理部１１３から通知された状態変更時刻以後の蓄積時刻が登録されたレコードを抽出する。これにより、内容を精査する対象のレコードを、制御状態が蓄積状態に遷移したタイミング以降に登録または更新されたレコードに絞ることができ、コンテンツ蓄積処理部１１６の処理負荷が軽減される。
【０１８３】
次に、コンテンツ蓄積処理部１１６は、コンテンツ管理テーブル１２２の各レコードに登録されたデータ識別子を基に、参照処理部１１３から通知されたサーバアドレスに対応するデータ格納サーバに格納されているコンテンツを含むレコードを、抽出したレコードの中から判別する。さらに、コンテンツ蓄積処理部１１６は、判別したレコードから、参照処理部１１３から通知された属性値を含むレコードを抽出する。
【０１８４】
以上の手順でレコードが抽出された場合、抽出されたレコードには参照処理部１１３が通知した情報に対応するコンテンツが含まれている。この場合、ステップＳ１８５の処理が実行される。一方、上記の手順でレコードが抽出されなかった場合、ステップＳ１８７の処理が実行される。
【０１８５】
［ステップＳ１８５］コンテンツ蓄積処理部１１６は、ステップＳ１８４で抽出したレコードからコンテンツを読み出し、所定の記憶領域（例えばＲＡＭ）に一時的に保存する。このとき保存されるコンテンツは、後のステップＳ２１１において参照処理部１１３によって読み出される。
【０１８６】
また、参照処理部１１３は、抽出されたレコードを消去するようにコンテンツ蓄積処理部１１６に指示する。コンテンツ蓄積処理部１１６は、ステップＳ１８４で抽出したレコードをコンテンツ管理テーブル１２２から消去する。
【０１８７】
［ステップＳ１８６］参照処理部１１３は、ステップＳ１８３で蓄積状態と判定されたデータ格納サーバのサーバアドレスと、指定された属性値とを状態管理部１１５に通知し、通知したサーバアドレスと属性値との組み合わせについての制御状態を非抑止状態に変更するように指示する。状態管理部１１５は、状態管理テーブル１２１から、通知されたサーバアドレスおよび属性値を含むレコードを消去する。
【０１８８】
以上のステップＳ１８５，Ｓ１８６の処理により、コンテンツ管理テーブル１２２に蓄積されたコンテンツは、１度読み出された時点でコンテンツ管理テーブル１２２から消去される。これにより、コンテンツ管理テーブル１２２の容量が増大する事態を回避することができる。
【０１８９】
［ステップＳ１８７］参照処理部１１３は、ステップＳ１８３で蓄積状態と判定されたデータ格納サーバのサーバアドレスと、指定された属性値とを状態管理部１１５に通知し、通知したサーバアドレスと属性値との組み合わせについての制御状態を抑止状態に変更するように指示する。状態管理部１１５は、状態管理テーブル１２１のレコードのうち、通知されたサーバアドレスおよび属性値を含むレコードの制御情報を、抑止状態に更新する。
【０１９０】
また、図１３のステップＳ９６の処理が実行された後、図１３のステップＳ９７，Ｓ９８の代わりに、次のステップＳ１９１〜Ｓ１９５の処理が実行される。
［ステップＳ１９１］格納処理部１１２は、格納先サーバの制御状態を状態管理部１１５に問い合わせ、制御状態が抑止状態か否かを判定する。このとき、状態管理部１１５は、格納先サーバのサーバアドレスを含むレコードが状態管理テーブル１２１に登録されており、そのレコードに制御状態として抑止状態が設定されている場合に、格納先サーバが抑止状態であると格納処理部１１２に通知する。
【０１９１】
格納先サーバが抑止状態である場合には、ステップＳ１９２の処理が実行される。一方、格納先サーバが抑止状態以外の制御状態である場合には、ステップＳ１９４の処理が実行される。
【０１９２】
［ステップＳ１９２］格納処理部１１２は、コンテンツ蓄積処理部１１６に対して、受信した格納要求メッセージに含まれているコンテンツを、現在の時刻とともにコンテンツ管理テーブル１２２に蓄積するように指示する。コンテンツ蓄積処理部１１６は、コンテンツ管理テーブル１２２にレコードを生成し、そのレコード内にコンテンツを格納するとともに、そのレコードの蓄積時刻の項目に現在の時刻を登録する。
【０１９３】
［ステップＳ１９３］格納処理部１１２は、状態管理部１１５に対して、格納先サーバの制御状態を蓄積状態に変更するように指示する。状態管理部１１５は、状態管理テーブル１２１のレコードのうち、格納先サーバを含むすべてのレコードにおける制御状態の項目を、蓄積状態に変更するとともに、これらのレコードにおける蓄積時刻の項目に、現在の時刻を登録する。
【０１９４】
［ステップＳ１９４］格納処理部１１２は、格納先サーバの制御状態が蓄積状態かを判定する。上記のステップＳ１９１において、参照処理部１１３からの問い合わせを受けた状態管理部１１５は、格納先サーバのサーバアドレスを含むレコードが状態管理テーブル１２１に登録されており、そのレコードに制御状態として蓄積状態が設定されている場合に、格納先サーバが蓄積状態であると格納処理部１１２に通知する。
【０１９５】
格納先サーバが蓄積状態である場合には、ステップＳ１９５の処理が実行される。一方、格納先サーバが蓄積状態以外の制御状態、すなわち非抑止状態である場合には、ステップＳ９９の処理が実行される。
【０１９６】
［ステップＳ１９５］格納処理部１１２は、コンテンツ蓄積処理部１１６に対して、受信した格納要求メッセージに含まれているコンテンツを、現在の時刻とともにコンテンツ管理テーブル１２２に蓄積するように指示する。コンテンツ蓄積処理部１１６は、コンテンツ管理テーブル１２２にレコードを生成し、そのレコード内にコンテンツを格納するとともに、そのレコードの蓄積時刻の項目に現在の時刻を登録する。なお、コンテンツ蓄積処理部１１６は、コンテンツ管理テーブル１２２に、蓄積を指示したコンテンツにおけるデータ識別子および属性値を含むレコードが登録されている場合には、そのレコードにおけるデータ値および蓄積時刻のみを更新する。
【０１９７】
また、図１４のステップＳ１０１とステップＳ１０２との間に、次のステップＳ２０１，Ｓ２０２の処理が実行される。
［ステップＳ２０１］格納処理部１１２は、状態管理部１１５に対して、ステップＳ１０１で特定された格納サーバの制御状態を問い合わせ、格納サーバが蓄積状態かを判定する。状態管理部１１５は、格納サーバのサーバアドレスを含むレコードを状態管理テーブル１２１から抽出し、抽出したレコードの制御状態を格納処理部１１２に通知する。なお、格納サーバのサーバアドレスを含むレコードが状態管理テーブル１２１に登録されていない場合もある。この場合、格納サーバは非抑止状態になっている。
【０１９８】
格納サーバが蓄積状態である場合、ステップＳ２０２の処理が実行される。一方、格納サーバが蓄積状態以外の制御状態である場合、ステップＳ１０２の処理が実行される。
［ステップＳ２０２］格納処理部１１２は、コンテンツ蓄積処理部１１６に対して、受信した削除要求メッセージで指定されたデータ識別子を含むすべてのレコードをコンテンツ管理テーブル１２２から消去するように指示する。コンテンツ蓄積処理部１１６は、コンテンツ管理テーブル１２２から、指定されたデータ識別子を含むすべてのレコードを消去する。これにより、指定されたデータ識別子を含むすべてのコンテンツが、コンテンツ管理テーブル１２２から消去される。
【０１９９】
また、図１４のステップＳ１０８の代わりに、次のステップＳ２１１が実行される。
［ステップＳ２１１］応答処理部１１４は、参照要求メッセージを送信したデータ格納サーバから受信したコンテンツと、ステップＳ１８５で所定の記憶領域に一時的に保存しておいた、コンテンツ管理テーブル１２２から読み出したコンテンツとをマージして、参照応答メッセージを生成する。応答処理部１１４は、生成した参照応答メッセージを参照要求元のデータ発生装置に送信する。
【０２００】
なお、上記の各実施の形態に示したデータアクセス制御装置、データ中継装置、データ格納サーバ、データ発生装置およびデータ参照装置のそれぞれの処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０２０１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２０２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２０３】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  複数のストレージノードに格納されたデータに対するアクセスを制御するデータアクセス制御装置において、
参照するデータを特定するための参照条件と参照要求とを受信すると、参照要求の送信を抑止するように指定されたストレージノードの識別情報と参照条件とが対応付けられた管理情報テーブルを格納する記憶手段を参照し、前記複数のストレージノードのうち、前記管理情報テーブルにおいて、受信した前記参照条件に対応付けられたストレージノードを除くストレージノードに対して、受信した前記参照条件と前記参照要求とを送信する送信処理部と、
前記送信処理部からの参照要求の送信先の各ストレージノードからの応答に基づいて、受信した前記参照条件に合致するデータが格納されていないストレージノードを判別し、判別されたストレージノードの識別情報を受信した前記参照条件と対応付けて前記管理情報テーブルに登録する登録処理部と、
を有することを特徴とするデータアクセス制御装置。
【０２０４】
（付記２）  前記送信処理部は、データの格納要求を受信すると、当該データを格納するストレージノードを決定し、決定したストレージノードの識別番号が前記管理情報テーブルに登録されている場合には、決定した前記ストレージノードについて参照要求の送信を抑止する状態を解除することを特徴とする付記１記載のデータアクセス制御装置。
【０２０５】
（付記３）  前記送信処理部は、
データの格納要求を受信したとき、当該データを格納するストレージノードを決定して、決定した前記ストレージノードに対して当該データの格納要求を送信するとともに、決定した前記ストレージノードの識別番号が前記管理情報テーブルに登録されているかを判定し、登録されている場合には、当該データを記憶装置に一時的に格納するとともに、決定した前記ストレージノードの識別番号と参照条件との組み合わせをキャッシュ状態に設定し、
参照条件と参照要求とを受信したとき、受信した当該参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信する、
ことを特徴とする付記１記載のデータアクセス制御装置。
【０２０６】
（付記４）  前記送信処理部は、参照条件と参照要求とを受信したとき、受信した当該参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信するとともに、抽出した前記組み合わせについて参照要求の送信を抑止する状態を解除することを特徴とする付記３記載のデータアクセス制御装置。
【０２０７】
（付記５）  前記送信処理部は、参照条件と参照要求とを受信したとき、受信した当該参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信するとともに、当該データを前記記憶装置から消去することを特徴とする付記４記載のデータアクセス制御装置。
【０２０８】
（付記６）  前記送信処理部は、参照条件と参照要求とを受信したとき、受信した前記参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、抽出した前記組み合わせが前記キャッシュ状態に設定された時刻以後に格納されたデータを前記記憶装置から選択し、選択したデータのいずれかを参照要求の送信元装置に送信することを特徴とする付記４または５記載のデータアクセス制御装置。
【０２０９】
（付記７）  前記登録処理部は、前記送信処理部からの参照要求の送信先の各ストレージノードから受信した応答情報のうち、受信した前記参照条件に合致するデータが所定領域に格納されていない応答情報を判別し、判別した応答情報の送信元のストレージノードの識別情報を受信した前記参照条件と対応付けて前記管理情報テーブルに登録することを特徴とする付記１〜６のいずれか１つに記載のデータアクセス制御装置。
【０２１０】
（付記８）  複数のストレージノードに格納されたデータに対するアクセスを制御するデータアクセス制御方法において、
コンピュータが、
参照するデータを特定するための参照条件と参照要求とを受信すると、参照要求の送信を抑止するように指定されたストレージノードの識別情報と参照条件とが対応付けられた管理情報が登録されている管理情報テーブルを参照し、前記複数のストレージノードのうち、前記管理情報テーブルにおいて、受信した前記参照条件に対応付けられたストレージノードを除くストレージノードに対して、受信した前記参照条件と前記参照要求とを送信し、
参照要求の送信先の各ストレージノードからの応答に基づいて、受信した前記参照条件に合致するデータが格納されていないストレージノードを判別し、判別されたストレージノードの識別情報を受信した前記参照条件と対応付けて前記管理情報テーブルに登録する、
ことを特徴とするデータアクセス制御方法。
【０２１１】
（付記９）  データの格納要求を受信すると、当該データを格納するストレージノードを決定し、決定したストレージノードの識別番号が前記管理情報テーブルに登録されている場合には、前記決定したストレージノードについて参照要求の送信を抑止する状態を解除する、
処理をさらに含むことを特徴とする付記８記載のデータアクセス制御方法。
【０２１２】
（付記１０）  データの格納要求を受信したとき、当該データを格納するストレージノードを決定して、決定した前記ストレージノードに対して当該データの格納要求を送信するとともに、決定した前記ストレージノードの識別番号と参照条件との組み合わせが前記管理情報テーブルに登録されているかを判定し、登録されている場合には、当該データを記憶装置に一時的に格納するとともに、決定した前記ストレージノードの識別番号と参照条件との組み合わせをキャッシュ状態に設定し、
参照条件と参照要求とを受信したとき、受信した前記参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信する、
処理をさらに含むことを特徴とする付記８記載のデータアクセス制御方法。
【０２１３】
（付記１１）  前記送信元装置にデータを送信する処理では、
参照条件と参照要求とを受信したとき、受信した前記参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信するとともに、抽出した前記組み合わせについて参照要求の送信を抑止する状態を解除する、
ことを特徴とする付記１０記載のデータアクセス制御方法。
【０２１４】
（付記１２）  前記送信元装置にデータを送信する処理では、
参照条件と参照要求とを受信したとき、受信した前記参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信するとともに、当該データを前記記憶装置から消去する、
ことを特徴とする付記１１記載のデータアクセス制御方法。
【０２１５】
（付記１３）  前記送信元装置にデータを送信する処理では、
参照条件と参照要求とを受信したとき、受信した前記参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、抽出した前記組み合わせが前記キャッシュ状態に設定された時刻以後に格納されたデータを前記記憶装置から選択し、選択したデータのいずれかを参照要求の送信元装置に送信する、
ことを特徴とする付記１１または１２記載のデータアクセス制御方法。
【０２１６】
（付記１４）  前記管理情報テーブルに登録する処理では、
参照要求の送信先の各ストレージノードから受信した応答情報のうち、受信した前記参照条件に合致するデータが所定領域に格納されていない応答情報を判別し、判別した応答情報の送信元のストレージノードの識別情報を受信した前記参照条件と対応付けて前記管理情報テーブルに登録する、
ことを特徴とする付記８〜１３のいずれか１つに記載のデータアクセス制御方法。
【０２１７】
（付記１５）  複数のストレージノードに格納されたデータに対するアクセスを制御するためのデータアクセス制御プログラムにおいて、
コンピュータに、
参照するデータを特定するための参照条件と参照要求とを受信すると、参照要求の送信を抑止するように指定されたストレージノードの識別情報と参照条件とが対応付けられた管理情報が登録されている管理情報テーブルを参照し、前記複数のストレージノードのうち、前記管理情報テーブルにおいて、受信した前記参照条件に対応付けられたストレージノードを除くストレージノードに対して、受信した前記参照条件と前記参照要求とを送信し、
参照要求の送信先の各ストレージノードからの応答に基づいて、受信した前記参照条件に合致するデータが格納されていないストレージノードを判別し、判別されたストレージノードの識別情報を受信した前記参照条件と対応付けて前記管理情報テーブルに登録する、
処理を実行させることを特徴とするデータアクセス制御プログラム。
【０２１８】
（付記１６）  データの格納要求を受信すると、当該データを格納するストレージノードを決定し、決定したストレージノードの識別番号が前記管理情報テーブルに登録されている場合には、前記決定したストレージノードについて参照要求の送信を抑止する状態を解除する、
処理を前記コンピュータにさらに実行させることを特徴とする付記１５記載のデータアクセス制御プログラム。
【０２１９】
（付記１７）  データの格納要求を受信したとき、当該データを格納するストレージノードを決定して、決定した前記ストレージノードに対して当該データの格納要求を送信するとともに、決定した前記ストレージノードの識別番号と参照条件との組み合わせが前記管理情報テーブルに登録されているかを判定し、登録されている場合には、当該データを記憶装置に一時的に格納するとともに、決定した前記ストレージノードの識別番号と参照条件との組み合わせをキャッシュ状態に設定し、
参照条件と参照要求とを受信したとき、受信した前記参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信する、
処理を前記コンピュータにさらに実行させることを特徴とする付記１５記載のデータアクセス制御プログラム。
【０２２０】
（付記１８）  前記送信元装置にデータを送信する処理では、
参照条件と参照要求とを受信したとき、受信した前記参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信するとともに、抽出した前記組み合わせについて参照要求の送信を抑止する状態を解除する、
ことを特徴とする付記１７記載のデータアクセス制御プログラム。
【０２２１】
（付記１９）  前記送信元装置にデータを送信する処理では、
参照条件と参照要求とを受信したとき、受信した前記参照条件とストレージノードの識別番号との組み合わせを前記管理情報テーブルから抽出し、抽出した組み合わせが前記キャッシュ状態に設定されている場合には、前記記憶装置に格納されたデータを読み出して参照要求の送信元装置に送信するとともに、当該データを前記記憶装置から消去する、
ことを特徴とする付記１８記載のデータアクセス制御プログラム。
【０２２２】
（付記２０）  前記管理情報テーブルに登録する処理では、
参照要求の送信先の各ストレージノードから受信した応答情報のうち、受信した前記参照条件に合致するデータが所定領域に格納されていない応答情報を判別し、判別した応答情報の送信元のストレージノードの識別情報を受信した前記参照条件と対応付けて前記管理情報テーブルに登録する、
ことを特徴とする付記１５〜１９のいずれか１つに記載のデータアクセス制御プログラム。
【符号の説明】
【０２２３】
１１〜１３  ストレージノード
２０  データアクセス制御装置
２１  送信処理部
２２  登録処理部
２３  管理情報テーブル
３０  参照側装置
【図１】
0005867161.tif 000002
【図２】
0005867161.tif 000003
【図３】
0005867161.tif 000004
【図４】
0005867161.tif 000005
【図５】
0005867161.tif 000006
【図６】
0005867161.tif 000007
【図７】
0005867161.tif 000008
【図８】
0005867161.tif 000009
【図９】
0005867161.tif 000010
【図１０】
0005867161.tif 000011
【図１１】
0005867161.tif 000012
【図１２】
0005867161.tif 000013
【図１３】
0005867161.tif 000014
【図１４】
0005867161.tif 000015
【図１５】
0005867161.tif 000016
【図１６】
0005867161.tif 000017
【図１７】
0005867161.tif 000018
【図１８】
0005867161.tif 000019
【図１９】
0005867161.tif 000020
【図２０】
0005867161.tif 000021
【図２１】
0005867161.tif 000022
【図２２】
0005867161.tif 000023
【図２３】
0005867161.tif 000024