以下に、本願に係る特定装置、特定方法、及び特定プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る特定装置、特定方法、及び特定プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
(実施形態)
〔1.特定処理〕
まず、図1を用いて、実施形態に係る特定処理の一例について説明する。図1は、実施形態に係る特定処理の一例を示す図である。図1では、所定の記憶システムに格納されたデータ群に障害が発生した場合にその障害により影響を受ける範囲(以下、「影響範囲」ともいう)を特定する一例を示す。また、図1の例では、特定した影響範囲に基づいて、障害の発生についての連絡を要するデータ群の管理者の連絡先を特定する処理を示す。また、図1の例は、後述する記憶システムDB50(図7参照)に記憶されたデータ群を対象とする場合を示す。
図1の例では、特定装置100による特定処理を説明するために、データID「DG1−1」〜「DG4−3」等の14つのデータ群を図示する。なお、多数のデータ群が含まれてもよい。なお、ここでいうデータ群とは、例えば、共通する種別のデータであり、管理者が共通するデータを含むものとする。また、以下では、「データ群DG*(*は任意の数値を含む文字列)」と記載した場合、そのデータ群はデータID「DG*」により識別されるデータ群であることを示す。例えば、「データ群DG1−1」と記載した場合、そのデータ群はデータID「DG1−1」により識別されるデータ群である。
図1中の管理者情報記憶部122に示されるように、各データ群には、そのデータ群を管理する管理者が対応付けられる。例えば、図1中の管理者情報記憶部122に示すように、データ群DG1−1は、管理者M10−1により管理される。なお、図1の例では、説明を簡単にするために、このように「管理者M10−1」と記載した場合、その管理者は、管理者ID「M10−1」により識別される管理者であるものとする。例えば、以下では、「管理者M*(*は任意の数値を含む文字列)」と記載した場合、その管理者は管理者ID「M*」により識別される管理者であることを示す。例えば、「管理者M10−21」と記載した場合、その管理者は管理者ID「M10−21」により識別される管理者である。
また、以下では、管理者により利用される管理装置を管理装置M10−1等の管理者IDに対応する符号を付して説明する。例えば、このように「管理者装置M10−1」と記載した場合、その管理者装置は、管理者ID「M10−1」により識別される管理者が利用する管理者装置であるものとする。例えば、以下では、「管理者端末M*(*は任意の数値を含む文字列)」と記載した場合、その管理者端末は管理者ID「M*」により識別される管理者により利用される管理者端末であることを示す。例えば、「管理者端末M10−21」と記載した場合、その管理者端末は管理者ID「M10−21」により識別される管理者が利用する管理者端末である。
図1の例では、データ群間の依存関係に基づいて4つの階層にデータ群が分類される場合を示す。図1の例では、4つの階層には、データソース群であるデータ群DG1−1〜DG1−4等を含むデータソースDSに対応する階層が含まれる。例えば、図1に示すデータソースDSは、最上位の階層HR1(図4参照)であるものとする。例えば、図1に示すデータソースDSに含まれるデータ群は、データ群間において最上位の階層であり、他のデータ群に依存せずに生成されるデータ群であるものとする。例えば、データソースDSに含まれるデータ群DG1−1は、管理者装置M10−1が収集し、記憶システムDB50に格納したユーザのログ情報等、例えば集計や編集などを施していない生データである。例えば、データソースDSに含まれるデータ群DG1−1は、ユーザのウェブ上における行動情報に基づくログ情報であってもよい。例えば、データソースDSに含まれるデータ群DG1−1は、ユーザのウェブ上におけるコンテンツ閲覧に関する行動情報に基づくログ情報であってもよい。また、例えば、データソースDSに含まれるデータ群DG1−2は、ユーザの位置情報に基づくログ情報であってもよい。また、例えば、データソースDSに含まれるデータ群DG1−3は、ユーザへ配信された広告に関するログ情報であってもよい。
また、図1の例では、4つの階層には、中間データ群であるデータ群DG2−1〜DG2−3等を含む中間データIMに対応する階層が含まれる。例えば、図1に示す中間データIMは、最上位の階層HR1の下位の階層HR2(図4参照)であるものとする。例えば、図1に示す中間データIMに含まれるデータ群は、上位の階層であるデータソースDSに属するデータ群DG1−1〜DG1−4等に基づいて生成される中間データ群である。例えば、図1に示す中間データIMに含まれるデータ群は、後述するHadoop等に分散処理技術により編集や加工されたデータを含む。
また、図1中の各データ群に対応する四角形のノードに伸びる矢印は、各データ群間における依存関係を示す。
例えば、図1中のデータソース群であるデータ群DG1−1に対応するノードから、中間データ群であるデータ群DG2−1に対応するノードに伸びる矢印は、データ群DG2−1がデータ群DG1−1に依存することを示す。また、例えば、図1中のデータソース群であるデータ群DG1−2に対応するノードから、中間データ群であるデータ群DG2−1に対応するノードに伸びる矢印は、データ群DG2−1がデータ群DG1−2に依存することを示す。すなわち、図1の例では、中間データ群であるデータ群DG2−1は、データソース群であるデータ群DG1−1及びデータ群DG1−2に依存することを示す。例えば、データ群DG2−1は、データ群DG1−1及びデータ群DG1−2の情報を用いて生成された中間データ群であることを示す。例えば、データ群DG2−1は、管理者装置M10−21がデータ群DG1−1及びデータ群DG1−2の情報を用いて生成した中間データ群であることを示す。
また、例えば、図1中の中間データ群であるデータ群DG2−1に対応するノードから、提供データ群であるデータ群DG3−1に対応するノードに伸びる矢印は、データ群DG3−1がデータ群DG2−1に依存することを示す。このように、図1に示す有向矢印は、各データ群間の依存関係を示す。以下では、上述のような各データ群に関する依存関係や管理者に関する情報等を「リネージ情報」と総称する場合がある。なお、図1中の有向矢印により示される各データ群間の依存関係に関する情報は、各データ群を生成する際に各管理者が登録してもよいし、特定装置100等の情報処理装置が依存関係を自動的に解析し、リネージ情報記憶部121に格納してもよい。例えば、特定装置100は、管理者装置10が管理するデータ群の提供先や提供元に関する情報を取得し、取得した情報に基づいて、各データ群間の依存関係に関する情報を生成しリネージ情報記憶部121に格納してもよい。
このように図1において有向矢印によって示す各データ群間の依存関係は、例えば、図4に示すリネージ情報記憶部121中において、各データIDに対応付けて記憶される「提供元」は、対応するデータ群が依存するデータ群を示す。例えば、「提供元」は、対応するデータ群を生成するために用いられたデータ群を示す。例えば、図4に示すリネージ情報記憶部121に記憶されるデータID「DG2−1」により識別されるデータ群DG2−1は、「提供元」にデータ群DG1−1及びDG1−2が含まれる。
また、例えば、図4に示すリネージ情報記憶部121中において、各データIDに対応付けて記憶される「提供先」は、対応するデータ群が依存されるデータ群を示す。例えば、「提供先」は、対応するデータ群を用いて生成されるデータ群を示す。例えば、図4に示すリネージ情報記憶部121に記憶されるデータID「DG2−1」により識別されるデータ群DG2−1は、「提供先」にデータ群DG3−1及びDG3−2が含まれる。
ここから、図1に戻って説明を続ける。図1の例では、4つの階層には、提供データ群であるデータ群DG3−1〜DG3−3等を含む提供データPVに対応する階層が含まれる。例えば、図1に示す提供データPVは、階層HR2の下位の階層HR3(図4参照)であるものとする。例えば、図1に示す提供データPVに含まれるデータ群は、上位の階層である中間データIMに属するデータ群DG2−1〜DG2−3等に基づいて生成される提供データ群である。例えば、図1に示す提供データPVに含まれるデータ群は、中間データIMに属するデータ群DG2−1〜DG2−3等を用いて、KVS(Key-Value Store)等の方式に沿って編集や加工されたデータ群である。例えば、データ群DG3−1は、管理者装置M10−31がデータ群DG2−1及びデータ群DG2−2の情報を用いて生成した提供データ群であることを示す。
また、図1の例では、4つの階層には、サービスデータ群であるデータ群DG4−1〜DG4−3等を含む利用サービスSVに対応する階層が含まれる。例えば、図1に示す利用サービスSVは、階層HR3の下位の階層HR4(図4参照)であるものとする。例えば、図1に示す利用サービスSVに含まれるデータ群は、上位の階層である提供データPVに属するデータ群DG3−1〜DG3−3等に基づいて提供されるサービスにおけるデータ群である。例えば、図1に示す利用サービスSVに含まれるデータ群は、提供データPVに属するデータ群DG3−1〜DG3−3等を用いて、ユーザへ提供されるサービスにおいて用いられるデータ群である。例えば、データ群DG4−1は、管理者装置M10−41がデータ群DG3−1及びデータ群DG3−2の情報を用いて、サービスとして提供するデータ群であることを示す。例えば、データ群DG4−1は、管理者装置M10−41がデータ群DG3−1及びデータ群DG3−2の情報を用いて、電子商取引サービスにおいて提供するデータ群であってもよい。また、例えば、データ群DG4−2は、検索サービス等の種々のサービスにおいて提供するデータ群であってもよい。
ここから、特定システム1において、一のデータ群に障害が発生した場合の特定処理について説明する。
まず、図1の例では、特定装置100は、中間データIMに含まれる中間データ群であるデータ群DG2−1に障害が発生したことを特定する(ステップS11)。例えば、特定装置100は、記憶システムDB50からデータ群DG2−1に障害が発生したことを示す情報(以下、「障害発生情報」ともいう)を取得することにより、データ群DG2−1に障害が発生したことを特定する。図1の例では、特定装置100は、障害の発生元であるデータ群DG2−1を影響範囲リストEL11に追加する。
特定装置100は、障害の発生に応じて、障害の影響範囲を特定する。例えば、特定装置100は、リネージ情報記憶部121に記憶された各データ群間の依存関係に関する情報に基づいて、障害の影響範囲を特定する。
特定装置100は、データ群DG2−1の提供元に関する情報に基づいて、データ群DG2−1の上位の階層において提供範囲となるデータ群を特定する。図1の例では、特定装置100は、データ群DG2−1に向かう矢印が接続されるデータ群DG1−1を影響範囲として特定する(ステップS12−1)。具体的には、特定装置100は、図4に示すリネージ情報記憶部121中のデータ群DG2−1の「提供元」に含まれるデータ群DG1−1を影響範囲として特定する。なお、図1に示す例では、障害の発生元であるデータ群DG2−1と発生元以外の影響範囲に含まれるデータ群とを異なるハッチングを付して図示する。図1の例では、特定装置100は、影響範囲に特定したデータ群DG1−1を影響範囲リストEL11に追加する。
また、図1の例では、特定装置100は、データ群DG2−1に向かう矢印が接続されるデータ群DG1−2を影響範囲として特定する(ステップS12−2)。具体的には、特定装置100は、図4に示すリネージ情報記憶部121中のデータ群DG2−1の「提供元」に含まれるデータ群DG1−2を影響範囲として特定する。図1の例では、特定装置100は、影響範囲に特定したデータ群DG1−2を影響範囲リストEL11に追加する。
また、図1の例では、特定装置100は、データ群DG1−1及びデータ群DG1−2に向かう矢印がないため、データ群DG1−1及びデータ群DG1−2よりも上位の階層の特定を終了する。具体的には、特定装置100は、図4に示すリネージ情報記憶部121中のデータ群DG1−1及びデータ群DG1−2の「提供元」には、データ群に関する情報がないため、データ群DG1−1及びデータ群DG1−2よりも上位の階層の特定を終了する。
また、図1の例では、特定装置100は、データ群DG2−1から伸びる矢印が接続されるデータ群DG3−1を影響範囲として特定する(ステップS13−1)。具体的には、特定装置100は、図4に示すリネージ情報記憶部121中のデータ群DG2−1の「提供先」に含まれるデータ群DG3−1を影響範囲として特定する。図1の例では、特定装置100は、影響範囲に特定したデータ群DG3−1を影響範囲リストEL11に追加する。
また、図1の例では、特定装置100は、データ群DG2−1から伸びる矢印が接続されるデータ群DG3−2を影響範囲として特定する(ステップS13−2)。具体的には、特定装置100は、図4に示すリネージ情報記憶部121中のデータ群DG2−1の「提供先」に含まれるデータ群DG3−2を影響範囲として特定する。図1の例では、特定装置100は、影響範囲に特定したデータ群DG3−2を影響範囲リストEL11に追加する。
また、図1の例では、特定装置100は、データ群DG3−1及びデータ群DG3−2から伸びる矢印を辿ることにより、さらに障害の影響箇所を特定する。
図1の例では、特定装置100は、データ群DG3−1やデータ群DG3−2から伸びる矢印が接続されるデータ群DG4−1を影響範囲として特定する(ステップS14−1)。また、図1の例では、特定装置100は、データ群DG3−2から伸びる矢印が接続されるデータ群DG4−2を影響範囲として特定する(ステップS14−2)。図1の例では、特定装置100は、データ群DG3−1から伸びる矢印が接続されるデータ群DG4−3を影響範囲として特定する(ステップS14−3)。図1の例では、特定装置100は、影響範囲に特定したデータ群DG4−1〜データ群DG4−3を影響範囲リストEL11に追加する。
そして、特定装置100は、影響範囲に含まれるデータ群の管理者への連絡手段を特定する(ステップS15)。例えば、特定装置100は、管理者情報記憶部122に記憶されたリネージ情報に基づいて、管理者の連絡先を特定する(ステップS15)。
図1中の管理者情報記憶部122に示す「データID」は、データ群を識別するための識別情報を示す。図1中の管理者情報記憶部122に示す「管理者」は、対応するデータ群の管理者を示す。また、図1中の管理者情報記憶部122に示す「連絡先」は、対応する管理者への連絡手段を示す。
例えば、図1に示す例では、データ群DG1−1の管理者M10−1への連絡手段は、「M10−1@xxx.jp」であることを示す。また、例えば、図1に示す例では、データ群DG1−2の管理者M10−2への連絡手段は、「yy@xxx.com」であることを示す。
図1の例では、特定装置100は、管理者情報記憶部122中の「連絡先」を用いて、影響範囲に含まれるデータ群の管理者への連絡手段を特定する。具体的には、特定装置100は、管理者M10−1、M10−2、M10−21、M10−31、M10−32、M10−41、M10−42、M10−43への連絡手段を特定する。
その後、特定装置100は、特定した管理者の連絡先へ障害情報を送信する(ステップS16)。図1の例では、特定装置100は、管理者装置M10−1、M10−2、M10−21、M10−31、M10−32、M10−41、M10−42、M10−43へ障害情報を送信する。例えば、特定装置100は、特定した影響範囲のデータ群を管理する管理者装置M10に、障害が発生したデータ群を示す情報や、障害が発生したデータ群が提供元側であるか提供先側であるかを示す情報等を含む障害情報を送信する。
例えば、特定装置100から障害情報を取得した管理者装置M10は、障害情報に基づいて障害対応を行う。また、例えば、障害が発生したデータ群DG2−1の管理者M10−21は、障害が発生した原因等を調査したりする。例えば、障害が発生したデータ群DG2−1の提供元側である管理者M10−1、M10−2は、自身のデータ群が障害の発生に関係しているかを確認したりする。また、例えば、障害が発生したデータ群DG2−1の提供先側である管理者M10−31、M10−32、M10−41、M10−42、M10−43は、障害が発生したデータ群のデータを用いたサービスの提供等を停止したりする。このように、図1の例では、障害が発生したデータ群DG2−1及び、その上位の階層のデータ群DG1−1、DG1−2が原因調査の対象となる。また、図1の例では、障害が発生したデータ群DG2−1及び、その下位の階層のデータ群DG3−1、DG3−2、DG4−1、DG4−2が提供先となる。なお、特定装置100は、原因調査の対象として調査したデータ群DG1−1、DG1−2、DG2−1が原因ではなかった場合は、データ群DG3−1、DG3−2、DG4−1、DG4−2を原因調査の対象として、調査を行ってもよい。
上述したように、特定装置100は、障害が発生したデータ群がどのデータ群に影響を与えるかを特定したり、特定したデータ群を管理する管理者への連絡手段等を特定したりすることに要する時間の増大を抑制することができる。したがって、特定装置100は、依存関係があるデータ群に障害が発生した場合に、迅速な復旧作業を可能にすることができる。例えば、特定装置100は、各データ群間の依存関係を示すリネージ情報に基づいて、発生した障害の影響範囲を特定可能にすることにより、データベース(記憶システムDB50)の形式(記憶形式)に依らず、発生した障害の影響範囲を特定することができる。また、例えば、特定装置100は、影響範囲に含まれるデータ群を管理する管理者への連絡手段等を特定し、特定した連絡手段を用いて影響範囲に含まれるデータ群を管理する管理者へ障害の発生を通知することにより、障害の影響を受ける管理者が早期に障害に対処することを可能にすることができる。
〔1−1.データ群間の依存関係〕
なお、図1の例では、説明を簡単にするために、データ群間の依存関係が、図において隣接する階層間における依存関係のみである場合を示したが、データ群間の依存関係は種々の態様であってもよい。例えば、同じ階層間においても依存関係があってもよいし、どの階層間であっても依存関係があってもよいし、データ群間で相互に依存関係があってもよい。例えば、階層HR2に含まれるデータ群間においても依存関係があってもよい。また、例えば、階層HR4に含まれるデータ群が階層HR1に含まれるデータ群に直接依存関係があってもよい。なお、階層の概念なしにデータ群間の依存関係のみに基づく特定処理については、図10において説明する。
また、上述した例では、説明を簡単にするために、データの階層に関わらず障害発生の影響範囲を特定として説明したが、特定装置100は、「提供先」と「原因調査」の範囲の特定の2種類の影響範囲を特定してもよい。例えば、特定装置100は、データ群DG2−1及び、その下位の階層のデータ群DG3−1、DG3−2、DG4−1、DG4−2を「提供先」に関する影響範囲として特定してもよい。例えば、特定装置100は、データ群DG2−1及び、その上位の階層のデータ群DG1−1、DG1−2を「原因調査」に関する影響範囲として特定してもよい。このように、特定装置100は、原因調査の対象を絞り込むことができる。例えば、特定装置100は、「提供先」に関する影響範囲の特定処理を「原因調査」に関する影響範囲の特定処理よりも先に処理を行ってもよい。例えば、特定装置100は、データ群DG2−1に障害が発生した場合、データ群DG2−1の提供先となるデータ群DG3−1、DG3−2、DG4−1、DG4−2を影響範囲「提供先」として特定し、連絡等の各種処理を行ってもよい。そして、特定装置100は、データ群DG2−1の提供元となるデータ群DG1−1、DG1−2を影響範囲「原因調査」として特定し、調査や連絡等の各種処理を行ってもよい。このように、特定装置100は、各データが複雑な依存関係を有する場合であっても、リネージ情報を利用することにより、原因調査の範囲を障害が発生したデータ群が依存するデータ群に絞りこむことができる。これにより、特定装置100は、原因の特定に要する時間の増大を抑制することができる。例えば、特定装置100は、各管理者が管理するデータ群について、障害が発生したデータ群との相対的な依存関係に基づいて、各管理者へ送信する情報(障害情報)の内容を異ならせてもよい。例えば、特定装置100は、障害が発生したデータ群と、影響範囲に含まれる一の管理者が管理するデータ群との相対的な階層関係に基づいて、一の管理者へ送信する情報(障害情報)の内容を異ならせてもよい。例えば、特定装置100は、障害が発生したデータ群から見て、影響範囲に含まれる一の管理者が管理するデータ群が上流側(提供元側)であるか、下流側(提供先側)であるかに応じて、一の管理者へ送信する情報(障害情報)の内容を異ならせてもよい。
例えば、特定装置100は、データ群DG2−1の提供元側の管理者装置M10−1には、管理者装置M10−1が管理するデータ群DG1−1の提供先となるデータ群DG2−1において障害が発生したため、データ群DG1−1がデータ群DG2−1における障害の原因となっていないかどうかを確認することを促す情報等を含む障害情報を送信する。例えば、特定装置100は、データ群DG2−1の提供先側の管理者装置M10−41には、管理者装置M10−41が管理するデータ群DG4−1の提供元であるデータ群DG2−1において障害が発生したため、データ群DG4−1に影響がある可能性があるため、他のデータ群への情報提供やサービスの停止等を促す情報等を含む障害情報を送信する。このように、特定装置100は、障害情報の提供先が、障害が発生したデータ群から見て提供元側であるか、提供先側であるかに応じて、内容の異なる障害情報を送信してもよい。
また、例えば、特定装置100は、各管理者が管理するデータ群について、障害が発生したデータ群との相対的な依存関係に基づいて、各管理者へ情報(障害情報)を送信するタイミングを異ならせてもよい。例えば、特定装置100は、障害が発生したデータ群と、影響範囲に含まれる一の管理者が管理するデータ群との相対的な階層関係に基づいて、一の管理者へ情報(障害情報)を送信するタイミングを異ならせてもよい。例えば、特定装置100は、障害が発生したデータ群から見て、影響範囲に含まれる一の管理者が管理するデータ群が上流側(提供元側)であるか、下流側(提供先側)であるかに応じて、一の管理者へ情報(障害情報)を送信するタイミングを異ならせてもよい。
例えば、特定装置100は、データ群DG2−1の提供先側の管理者装置M10−41には、管理者装置M10−41が管理するデータ群DG4−1の提供元であるデータ群DG2−1において障害が発生したため、データ群DG4−1に影響がある可能性があるため、特定が完了し次第、障害情報を送信する。例えば、特定装置100は、データ群DG2−1の提供元側の管理者装置M10−1には、データ群DG1−1がデータ群DG2−1における障害の原因となっていないかどうかを確認することを促す情報等を含む障害情報を、データ群DG2−1の提供先側への送信後に送信してもよい。このように、特定装置100は、障害情報の提供先が、障害が発生したデータ群から見て提供元側であるか、提供先側であるかに応じて、異なるタイミングで障害情報を送信してもよい。
〔2.特定システムの構成〕
図2に示すように、特定システム1には、管理者装置M10と、記憶システムDB50と、特定装置100とが含まれる。管理者装置M10と、記憶システムDB50と、特定装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。図2は、実施形態に係る特定システムの構成例を示す図である。なお、図2に示すように特定システム1には、複数台の管理者装置M10や、複数台の特定装置100が含まれる。
例えば、特定システム1には、管理者装置M10−1、管理者装置M10−2、及び管理者装置M10−3に限らず、4つ以上の管理者装置M10が含まれてもよい。なお、管理者装置M10−1、管理者装置M10−2、及び管理者装置M100−3等を区別せずに説明する場合、管理者装置M10と記載する場合がある。また、特定システム1には、記憶システムDB50−1、記憶システムDB50−2、及び記憶システムDB50−3に限らず、4つ以上の記憶システムDB50が含まれてもよい。なお、記憶システムDB50−1、記憶システムDB50−2、及び記憶システムDB50−3等を区別せずに説明する場合、記憶システムDB50と記載する場合がある。
管理者装置M10は、各データ群の管理者によって利用される情報処理装置である。例えば、管理者装置M10は、記憶システムDB50にデータ群を格納したり、記憶システムDB50に記憶されたデータ群を用いてサービスを利用したりする情報処理装置(コンピュータ)である。管理者装置M10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。以下では、管理者装置M10を管理者と表記する場合がある。すなわち、以下では、管理者を管理者装置M10と読み替えることもできる。例えば、管理者装置M10−1を利用する管理者を管理者M10−1と記載する場合がある。
特定装置100は、一のデータ群に障害が発生した場合、取得したリネージ情報に基づいて、一のデータ群における障害により影響を受ける他のデータ群を特定する情報処理装置(コンピュータ)である。例えば、特定装置100は、管理者装置M10や記憶システムDB50から情報を取得する。なお、特定装置100は、リネージ情報記憶部121(図4参照)や管理者情報記憶部122(図5参照)に示すようなリネージ情報を生成してもよいし、外部の情報処理装置から取得してもよい。
記憶システムDB50は、各種のデータ群を記憶する記憶手段である。また、記憶システムDB50は、記憶したデータ群を管理者からの指令に応じて、管理者へ提供可能な記憶手段である。また、例えば、記憶システムDB50は、管理者が提供する種々のサービス提供システムから取得したログデータを処理し、ログデータを一のデータ群として記憶する記憶手段である。例えば、記憶システムDB50は、種々のサービス提供システムから取得したログデータから、管理者が管理するデータ群に対応する情報のみを抽出して、一のデータ群として記憶する。また、例えば、記憶システムDB50は、管理者がサービス提供の際に用いるデータの形式(フォーマット)に合わせたデータを一のデータ群として記憶する。例えば、記憶システムDB50は、KVS等の形式に合わせたデータを一のデータ群として記憶する。
例えば、記憶システムDB50は、管理者装置M10−1が収集したユーザのログ情報等をデータ群DG1−1として格納する。また、例えば、記憶システムDB50は、管理者装置M10−21がデータ群DG1−1やデータ群DG1−2から生成した中間データをデータ群DG2−1として格納する。また、例えば、記憶システムDB50は、管理者装置M10−31がデータ群DG1−1やデータ群DG1−2から生成した所定の形式(フォーマット)のデータ群をデータ群DG3−1として格納する。また、例えば、記憶システムDB50は、管理者装置M10−41がデータ群DG3−1やデータ群DG3−2を用いて提供されるサービスのデータ群をデータ群DG4−1として格納する。なお、各データ群は、複数の記憶システムDB50(例えば、記憶システムDB50−1、DB50−2等)に分散して格納されてもよいし、一の記憶システムDB50(例えば、記憶システムDB50−1等)に格納されてもよい。例えば、データ群DG1−2は、一の記憶システムDB50−2に格納されてもよい。また、例えば、データ群DG2−3は、複数の記憶システムDB50−1、DB50−3に分散して格納されてもよい。また、記憶システムDB50の詳細は後述する。
〔3.特定装置の構成〕
次に、図3を用いて、実施形態に係る特定装置100の構成について説明する。図3は、実施形態に係る特定装置の構成例を示す図である。図3に示すように、特定装置100は、通信部110と、記憶部120と、制御部130とを有する。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、所定のネットワークN(図2参照)と有線または無線で接続され、管理者装置M10との間で情報の送受信を行う。
(記憶部120)
記憶部120は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図3に示すように、リネージ情報記憶部121と管理者情報記憶部122と障害発生情報記憶部123とを有する。
(リネージ情報記憶部121)
実施形態に係るリネージ情報記憶部121は、データに関するリネージ情報を記憶する。例えば、リネージ情報記憶部121は、リネージ情報のうち、記憶システムDB50に記憶された各データ群の依存関係等の各種情報を記憶する。図4は、実施形態に係るリネージ情報記憶部の一例を示す図である。図4に示すように、リネージ情報記憶部121は、各記憶システムDB50から収集した収集情報として、「データID」、「提供元」、「提供先」、「階層」といった項目を有する。
「データID」は、データ群を識別するための識別情報を示す。「提供元」は、対応するデータ群が依存するデータ群を示す。例えば、「提供元」は、対応するデータ群を生成するために用いられたデータ群を示す。また、「提供先」は、対応するデータ群が依存されるデータ群を示す。例えば、「提供先」は、対応するデータ群を用いて生成されるデータ群を示す。また、「階層」は、各データ群間の依存関係に基づいて対応するデータ群がどの階層に属するかを示す。例えば、「階層」は、提供元となるデータ群がないデータ群の階層を階層「HR1」とし、その階層から提供先へ向かうにつれて階層「HR2」、「HR3」と「HR*」の「*(*は任意も数値)」の値が大きくなるものとする。なお、リネージ情報記憶部121は、「階層」の項目を有しなくてもよい。
例えば、図4に示す例では、データID「DG1−1」により識別されるデータ群(データ群DG1−1)は、提供元が「−」であり、データ群DG1−1を生成するために用いられたデータ群はないことを示す。例えば、図4に示す例では、データ群DG1−1は、提供先が「DG2−1」等であり、データ群DG1−1を用いて生成されるデータ群にはデータ群DG2−1が含まれることを示す。また、データ群DG1−1は、階層が「HR1」であることを示す。
なお、リネージ情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、リネージ情報記憶部121は、各データIDに対応付けて、データIDにより識別されるデータ群が記憶される記憶システムDB50を特定する情報を記憶してもよい。例えば、リネージ情報記憶部121は、各データIDにより識別されるデータ群の状況を記憶してもよい。例えば、リネージ情報記憶部121は、各データIDにより識別されるデータ群の状況が「正常」、「障害発生」、「影響範囲」等のどの状況であるかを示す情報を記憶してもよい。また、例えば、リネージ情報記憶部121は、各データIDにより識別されるデータ群が生成された日時や利用可能になった日時等を示す情報を記憶してもよい。
(管理者情報記憶部122)
実施形態に係る管理者情報記憶部122は、データの管理者に関する各種情報を記憶する。例えば、管理者情報記憶部122は、リネージ情報のうち各データ群の管理者を示す情報や各管理者への連絡手段に関する情報を記憶する。図5は、実施形態に係る管理者情報記憶部の一例を示す図である。図5に示すように、管理者情報記憶部122は、データの管理者に関する情報として、「データID」、「管理者」、「連絡先」といった項目を有する。
「データID」は、データ群を識別するための識別情報を示す。「管理者」は、対応するデータ群の管理者を示す。また、「連絡先」は、対応する管理者への連絡手段を示す。なお、図5の例では、「連絡先」として、各管理者のメールアドレスが記憶される場合を示すが、「連絡先」は管理者への情報伝達が可能であれば、電話番号等の種々の情報であってもよい。
例えば、図5に示す例では、データID「DG1−1」により識別されるデータ群は、管理者端末M10−1を利用する管理者(管理者M10−1)が管理するデータ群であることを示す。また、管理者M10−1への連絡手段は、「M10−1@xxx.jp」であることを示す。
なお、管理者情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、管理者情報記憶部122は、各データIDに対応付けて、データIDにより識別されるデータ群が記憶される記憶システムDB50を特定する情報を記憶してもよい。例えば、管理者情報記憶部122は、各データIDにより識別されるデータ群の状況を記憶してもよい。例えば、管理者情報記憶部122は、各データIDにより識別されるデータ群の状況が「正常」、「障害発生」、「影響範囲」等のどの状況であるかを示す情報を記憶してもよい。また、例えば、管理者情報記憶部122は、各データIDにより識別されるデータ群が生成された日時や利用可能になった日時等を示す情報を記憶してもよい。
(障害発生情報記憶部123)
実施形態に係る障害発生情報記憶部123は、発生した障害に関する情報(障害発生情報)を記憶する。例えば、障害発生情報記憶部123は、記憶システムDB50において発生した障害に関する各種情報を記憶する。図6は、実施形態に係る障害発生情報記憶部の一例を示す図である。図6に示す障害発生情報記憶部123は、「障害ID」、「日時」、「障害発生データ」といった項目が含まれる。
「障害ID」は、発生した障害を識別するための識別情報を示す。「日時」は、対応する障害が発生した日時を示す。なお、図6の例では「日時」を抽象的な符号「日時DA11」等で図示するが、「日時」には、「2017年1月30日22時41分53秒」等の具体的な日時が記憶されてもよい。また、「障害発生データ」は、対応する障害が発生したデータ(データ群)を示す。
例えば、図6に示す例において、障害ID「TR11」により識別される障害は、データ群DG3−15において日時DA11に発生したことを示す。また、例えば、図6に示す例において、障害ID「TR12」により識別される障害は、データ群DG2−1において日時DA12に発生したことを示す。
なお、障害発生情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、管理者情報記憶部122は、各障害IDに対応付けて、障害が発生したデータ群が記憶される記憶システムDB50を特定する情報を記憶してもよい。
(制御部130)
制御部130は、コントローラ(controller)であり、例えば、CPUやMPU等によって、特定装置100内部の記憶部120などの記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。例えば、この各種プログラムは、インストールされている管理アプリケーション等の種々のプログラムが含まれる。また、制御部130は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現される。
図3に示すように、制御部130は、取得部131と、特定部132と、送信部133とを有し、以下に説明する管理処理の機能や作用を実現または実行する。例えば、制御部130は、特定処理を行うために用いる情報を管理する管理処理を行う。
(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、外部の情報処理装置から各種情報を取得する。例えば、取得部131は、管理者装置M10や記憶システムDB50から各種情報を取得する。例えば、取得部131は、記憶システムDB50から障害発生情報を取得する。また、例えば、取得部131は、リネージ情報記憶部121や管理者情報記憶部122や障害発生情報記憶部123等を含む記憶部120から各種情報を取得する。
例えば、取得部131は、複数のデータ群間における依存関係を示すリネージ情報を取得する。例えば、取得部131は、複数のデータ群の各々に対応する管理者への連絡手段に関する情報を含むリネージ情報を取得する。例えば、取得部131は、依存関係に応じて複数の階層に分類された複数のデータ群間における依存関係を示すリネージ情報を取得する。例えば、取得部131は、一の階層に属するデータ群に基づいて、一の階層よりも下位の階層に属するデータ群が生成されることを示すリネージ情報を取得する。
図1の例では、取得部131は、記憶システムDB50からデータ群DG2−1に障害が発生したことを示す障害発生情報を取得する。例えば、取得部131は、管理者装置10が管理するデータ群の提供先や提供元に関する情報を取得してもよい。
(特定部132)
特定部132は、各種情報を特定する。例えば、特定部132は、一のデータ群に障害が発生した場合、取得部131により取得されたリネージ情報に基づいて、一のデータ群における障害により影響を受ける他のデータ群を特定する。例えば、特定部132は、一のデータ群に障害が発生した場合、リネージ情報に基づいて、一のデータ群における障害により影響を受ける管理者への連絡手段を特定する。
例えば、特定部132は、一のデータ群に障害が発生した場合、一のデータ群が属する階層よりも上位の階層に属するデータ群であって、一のデータ群との依存関係を有するデータ群を特定する。例えば、特定部132は、一のデータ群に障害が発生した場合、一のデータ群が属する階層よりも下位の階層に属するデータ群であって、一のデータ群との依存関係を有するデータ群を特定する。例えば、特定部132は、一のデータ群に障害が発生した場合、一のデータ群から依存関係を辿ることにより、一のデータ群における障害により影響を受ける他のデータ群を特定する。例えば、特定部132は、管理者装置10から取得された管理者装置10が管理するデータ群の提供先や提供元に関する情報に基づいて、各データ群間の依存関係に関する情報を生成してもよい。また、例えば、特定部132は、生成した各データ群間の依存関係に関する情報をリネージ情報記憶部121(図4参照)に格納してもよい。例えば、特定部132は、データ群DG2−1は、データ群DG1−1やデータ群DG1−2が提供元であることを示す情報を生成し、生成した情報をリネージ情報記憶部121(図4参照)に格納してもよい。例えば、特定部132は、データ群DG2−1は、データ群DG3−1やデータ群DG3−2が提供先であることを示す情報を生成し、生成した情報をリネージ情報記憶部121(図4参照)に格納してもよい。
図1の例では、特定部132は、中間データIMに含まれる中間データ群であるデータ群DG2−1に障害が発生したことを特定する。例えば、特定部132は、記憶システムDB50からデータ群DG2−1に障害が発生したことを示す障害発生情報を取得することにより、データ群DG2−1に障害が発生したことを特定する。図1の例では、特定部132は、障害の発生元であるデータ群DG2−1を影響範囲リストEL11に追加する。
特定部132は、障害の発生に応じて、障害の影響範囲を特定する。例えば、特定部132は、リネージ情報記憶部121に記憶された各データ群間の依存関係に関する情報に基づいて、障害の影響範囲を特定する。
特定部132は、データ群DG2−1の提供元に関する情報に基づいて、データ群DG2−1の上位の階層において提供範囲となるデータ群を特定する。図1の例では、特定部132は、データ群DG2−1に向かう矢印が接続されるデータ群DG1−1を影響範囲として特定する。具体的には、特定部132は、図4に示すリネージ情報記憶部121中のデータ群DG2−1の「提供元」に含まれるデータ群DG1−1を影響範囲として特定する。
また、図1の例では、特定部132は、データ群DG2−1に向かう矢印が接続されるデータ群DG1−2を影響範囲として特定する。具体的には、特定部132は、図4に示すリネージ情報記憶部121中のデータ群DG2−1の「提供元」に含まれるデータ群DG1−2を影響範囲として特定する。図1の例では、特定部132は、影響範囲に特定したデータ群DG1−2を影響範囲リストEL11に追加する。
また、図1の例では、特定部132は、データ群DG2−1から伸びる矢印が接続されるデータ群DG3−1を影響範囲として特定する。具体的には、特定部132は、図4に示すリネージ情報記憶部121中のデータ群DG2−1の「提供先」に含まれるデータ群DG3−1を影響範囲として特定する。図1の例では、特定部132は、影響範囲に特定したデータ群DG3−1を影響範囲リストEL11に追加する。
また、図1の例では、特定部132は、データ群DG2−1から伸びる矢印が接続されるデータ群DG3−2を影響範囲として特定する。具体的には、特定部132は、図4に示すリネージ情報記憶部121中のデータ群DG2−1の「提供先」に含まれるデータ群DG3−2を影響範囲として特定する。図1の例では、特定部132は、影響範囲に特定したデータ群DG3−2を影響範囲リストEL11に追加する。
また、図1の例では、特定部132は、データ群DG3−1及びデータ群DG3−2から伸びる矢印を辿ることにより、さらに障害の影響箇所を特定する。特定部132は、データ群DG3−1やデータ群DG3−2から伸びる矢印が接続されるデータ群DG4−1を影響範囲として特定する。また、図1の例では、特定部132は、データ群DG3−2から伸びる矢印が接続されるデータ群DG4−2を影響範囲として特定する。図1の例では、特定部132は、データ群DG3−1から伸びる矢印が接続されるデータ群DG4−3を影響範囲として特定する。図1の例では、特定部132は、影響範囲に特定したデータ群DG4−1〜データ群DG4−3を影響範囲リストEL11に追加する。
そして、特定部132は、影響範囲に含まれるデータ群の管理者への連絡手段を特定する。例えば、特定部132は、管理者情報記憶部122に記憶されたリネージ情報に基づいて、管理者の連絡先を特定する。
図1の例では、特定部132は、管理者情報記憶部122中の「連絡先」を用いて、影響範囲に含まれるデータ群の管理者への連絡手段を特定する。具体的には、特定部132は、管理者M10−1、M10−2、M10−21、M10−31、M10−32、M10−41、M10−42、M10−43への連絡手段を特定する。
(送信部133)
送信部133は、各種情報を送信する。送信部133は、外部の情報処理装置へ種々の情報を送信する。例えば、送信部133は、管理者装置M10に各種情報を提供する。例えば、送信部133は、管理者装置M10に障害情報を提供する。
図1の例では、送信部133は、特定した管理者の連絡先へ障害情報を送信する。図1の例では、送信部133は、管理者装置M10−1、M10−2、M10−21、M10−31、M10−32、M10−41、M10−42、M10−43へ障害情報を送信する。例えば、送信部133は、特定した影響範囲のデータ群を管理する管理者装置M10に、障害が発生したデータ群を示す情報や、障害が発生したデータ群が提供元側であるか提供先側であるかを示す情報等を含む障害情報を送信する。
〔4.記憶システムの構成〕
次に、図7を用いて、実施形態に係る記憶システムDB50の構成について説明する。図7は、実施形態に係る記憶システムの構成の一例を示す図である。例えば、図7では、分散処理技術を用いたHadoopに基づく構成の記憶システムDB50が用いられた場合を示す。なお、記憶システムDB50は、図7に示すような分散型の記憶手段や、1つの装置からなる記憶装置等、どのような構成であってもよい。
例えば、記憶システムDB50−1、DB50−2、DB50−3ごとに異なる構成であってもよい。例えば、記憶システムDB50−1、DB50−3は、Hadoopに基づく構成の記憶システムであり、記憶システムDB50−2は、リレーショナルデータベース(関係データベース)に基づく構成の記憶システムであってもよい。すなわち、特定システム1の記憶システムDB50は、特定処理が適用可能な記憶システムであれば、どのような記憶システムであってもよい。なお、以下では、一の記憶システムDB50の構成として、Hadoopに基づく構成を採用した場合について説明する。
例えば、図7に示す記憶システムDB50は、HDFS(Hadoop Distributed File System :Hadoop分散ファイルシステム)やHadoopマップリデュースフレームワーク(Hadoop MapReduce Framework)等のモジュールにより構成される。例えば、記憶システムDB50は、マスタースレーブ型で構成される。図7に示す例では、記憶システムDB50には、マスターの役割を担当するマスターサーバ51と、スレーブの役割を担当する複数のスレーブサーバ52−1、52−2、52−3等が含まれる。なお、以下では、スレーブサーバ52−1、52−2、52−3等を区別しない場合、スレーブサーバ52と記載する。
例えば、マスターサーバ51は、記憶システムDB50全体のデータの流れをコントロールする機能を有する。例えば、マスターサーバ51は、NameNode(ネームノード)と称される。また、例えば、スレーブサーバ52は、DataNode(データノード)と称される。なお、マスターサーバ51や各スレーブサーバ52間は、通信可能に接続される。
例えば、記憶システムDB50は、各スレーブサーバ52の記憶部(例えばハードディスク)を束ねてHDFSを構成する。また、例えば、記憶システムDB50は、大きなファイル(例えばユーザ情報)を複数のブロック単位に分割して、それらを複数のスレーブサーバ52にまたがり格納する。例えば、ここでいうブロック単位は、64MB、128MB、256MB、またはそれ以上の単位、例えば所定値のGB(128GB等)であってもよい。なお、上記のブロック単位は例示であり、記憶システムDB50の処理能力や使用目的(使用するサービス)等に応じて適宜のサイズに設定されてもよい。また、例えば、記憶システムDB50は、複数のスレーブサーバ52を1つのストレージとして処理を行うことができる。これにより、記憶システムDB50は、情報の保存、すなわちデータの書き込み処理を高速化することができる。
また、例えば、記憶システムDB50は、ブロック単位に分割したデータをスレーブサーバ52に冗長化して保存する。例えば、記憶システムDB50は、ブロック単位に分割したデータの各々を複数のスレーブサーバ52に分散して保存する。例えば、記憶システムDB50は、ブロック単位に分割した1つのデータを3つのスレーブサーバ52に分散して保存する。これにより、記憶システムDB50は、例えば、スレーブサーバ52にハードウェア等の障害が発生してもデータが失われることなく処理を続行することができる。
上述のように構成された記憶システムDB50は、例えば、スレーブサーバ52の数を増やすことで、記憶システムDB50のパフォーマンス(性能)を向上させることができる。すなわち、記憶システムDB50は、上述のように構成されることにより、いわゆるスケールアウトが可能となる。また、記憶システムDB50は、上述のように構成されることにより、サービスを利用するユーザ数や負荷の増大に応じて、柔軟に性能や機能を向上させることができる。
〔5.特定処理のフロー〕
次に、図8を用いて、実施形態に係る特定装置100による特定処理の手順について説明する。図8は、実施形態に係る特定処理の一例を示すフローチャートである。
図8に示すように、特定装置100は、障害が発生した記憶システムDB50から障害発生情報を取得する(ステップS101)。例えば、特定装置100は、障害が発生した記憶システムDB50から、障害が発生したデータ群を識別する情報(例えば、データID等)を含む障害発生情報を取得する。
そして、特定装置100は、リネージ情報を取得する(ステップS102)。例えば、特定装置100は、リネージ情報記憶部121や管理者情報記憶部122からリネージ情報を取得する。
そして、特定装置100は、障害発生情報とリネージ情報とに基づいて障害の影響範囲を特定する(ステップS103)。例えば、特定装置100は、リネージ情報記憶部121に記憶された各データ群間の依存関係を示す情報に基づいて、障害の影響範囲を特定する。
そして、特定装置100は、影響範囲の管理者の連絡先を特定する(ステップS104)。例えば、特定装置100は、管理者情報記憶部122に記憶された各データ群の管理者の連絡手段を示す情報に基づいて、影響範囲の管理者の連絡先を特定する。
そして、特定装置100は、特定した影響範囲のデータ群を管理する管理者装置M10に障害情報を送信する(ステップS105)。例えば、特定装置100は、特定した影響範囲のデータ群を管理する管理者装置M10に、障害が発生したデータ群を示す情報や、障害が発生したデータ群が提供元側であるか提供先側であるかを示す情報等を含む障害情報を送信する。
〔6.特定処理のフロー〕
次に、図9を用いて、実施形態に係る特定システム1による特定処理の手順について説明する。図9は、実施形態に係る特定処理の一例を示すシーケンス図である。
図9に示すように、記憶システムDB50において障害が発生した場合(ステップS200)は、特定装置100は、障害が発生した記憶システムDB50から障害発生情報を取得する(ステップS201)。例えば、特定装置100は、障害が発生した記憶システムDB50から、障害が発生したデータ群を識別する情報(例えば、データIDや記憶システムDB50を識別する情報等)を含む障害発生情報を取得する。
そして、各記憶システムDB50から障害発生情報を取得した特定装置100は、リネージ情報に基づいて障害の影響範囲を特定する(ステップS202)。例えば、特定装置100は、リネージ情報記憶部121に記憶された各データ群間の依存関係を示す情報に基づいて、障害の影響範囲を特定する。
そして、特定装置100は、リネージ情報に基づいて影響範囲の管理者の連絡先を特定する(ステップS203)。例えば、特定装置100は、管理者情報記憶部122に記憶された各データ群の管理者の連絡手段を示す情報に基づいて、影響範囲の管理者の連絡先を特定する。
そして、特定装置100は、特定した影響範囲のデータ群を管理する管理者装置M10に障害情報を送信する(ステップS204)。例えば、特定装置100は、特定した影響範囲のデータ群を管理する管理者装置M10に、障害が発生したデータ群を示す情報や、障害が発生したデータ群が提供元側であるか提供先側であるかを示す情報等を含む障害情報を送信する。
そして、特定装置100から障害情報を取得した管理者装置M10は、障害情報に基づいて障害対応を行う(ステップS205)。例えば、管理者装置M10の管理者は、障害が発生したデータ群の提供元側である場合、自身のデータ群が障害の発生に関係しているかを確認したりする。また、例えば、管理者装置M10の管理者は、障害が発生したデータ群の提供先側である場合、障害が発生したデータ群のデータを用いたサービスの提供等を停止したりする。
〔7.特定処理の他の例〕
次に、図10を用いて、実施形態に係る特定システム1による他の特定処理の手順について説明する。図10は、実施形態に係る特定処理の他の一例を示す図である。なお、図10の説明は、図1の特定処理の説明を別の概念で説明するものであり、図1及び図10の特定処理は、同様の処理であってもよい。例えば、図10は、特定処理がプログラムとして実装された場合におけるコンピュータ上における具体的な処理を概念的に説明するものである。
図10の例では、特定処理の概念を説明するために、各データ群に対応するノードと矢印(エッジ)を含むグラフ空間SPを図示する。楕円で示すノード内に記載された「DG*(*は任意の数値を含む文字列)」は、そのノードに対応するデータ群がデータID「DG*」により識別されるデータ群であることを示す。例えば、ノード内に「DG5−1」と記載した場合、そのノードに対応するデータ群はデータID「DG5−1」により識別されるデータ群である。
また、図10における、各データ群に対応するノード間の矢印(エッジ)の接続の意味は図1と同様である。例えば、図10中のデータ群DG5−4に対応するノードから、データ群DG5−1に対応するノードに伸びる矢印は、データ群DG5−1がデータ群DG5−4に依存することを示す。例えば、図10中のデータ群DG5−4に対応するノードに向かって、データ群DG5−2に対応するノードから伸びる矢印は、データ群DG5−4がデータ群DG5−2に依存することを示す。
まず、図10の例では、特定装置100は、データ群DG5−1に障害が発生したことを特定する(ステップS51)。例えば、特定装置100は、記憶システムDB50からデータ群DG5−1に障害が発生したことを示す障害発生情報を取得することにより、データ群DG5−1に障害が発生したことを特定する。
そして、図10の例では、特定装置100は、データ群DG5−1を処理対象リストPT11−1に追加する(ステップS52)。そして、特定装置100は、処理対象リストPT11−1に含まれるデータ群を対象として処理を行う。図10の例では、特定装置100は、処理対象リストPT11−1に含まれるデータ群DG5−1を取得し、データ群DG5−1とエッジで接続されるデータ群を影響範囲として特定する。
図10の例では、特定装置100は、データ群DG5−1に向かう矢印が接続されるデータ群DG5−4を影響範囲として特定する(ステップS53−1)。また、図10の例では、特定装置100は、データ群DG5−1から伸びる矢印が接続されるデータ群DG5−6を影響範囲として特定する(ステップS53−2)。また、図10の例では、特定装置100は、データ群DG5−1から伸びる矢印が接続されるデータ群DG5−3を影響範囲として特定する(ステップS53−3)。
そして、図10の例では、特定装置100は、ステップS52において処理対象としたデータ群DG5−1を処理対象リストPT11−1から削除し、ステップS53−1〜S53−3で特定したデータ群DG5−4、DG5−6、DG5−3を処理対象リストPT11−1に追加することにより、処理対象リストPT11−2に更新する(ステップS54)。
また、図10の例では、特定装置100は、ステップS52において処理対象としたデータ群DG5−1を影響範囲リストEL51に追加する(ステップS55)。
その後、特定装置100は、ステップS54で処理対象リストPT11−2に追加したデータ群DG5−4、DG5−6、DG5−3を1つずつ対象として取得し、同様の処理を繰り返す。
例えば、特定装置100は、処理対象リストPT11−2に含まれるデータ群DG5−4を取得し、データ群DG5−4とエッジで接続されるデータ群を影響範囲として特定する。なお、この場合、特定装置100は、既に影響範囲リストEL51に追加済みのデータ群については、影響範囲として特定しなくてもよい。
例えば、図10の例では、特定装置100は、データ群DG5−4からデータ群DG5−1には、矢印が伸びるが、データ群DG5−1は既に影響範囲リストEL51に追加済みのデータ群であるため、処理対象のデータ群として処理対象リストPT11−2に追加しない。また、例えば、図10の例では、特定装置100は、データ群DG5−4にデータ群DG5−2から矢印が伸び、データ群DG5−2は未だ影響範囲リストEL51に追加されていないため、処理対象のデータ群として処理対象リストPT11−2に追加する。そして、特定装置100は、データ群DG5−4を影響範囲リストEL51に追加して処理を終了する。
このように、特定装置100は、特定処理を実行する際に、重複してデータ群を処理対象とすることを排除することにより、特定処理に要する処理時間の増大等を抑制することが可能となる。
〔8.効果〕
上述してきたように、実施形態に係る特定装置100は、取得部131と、特定部132とを有する。取得部131は、複数のデータ群間における依存関係を示すリネージ情報を取得する。特定部132は、一のデータ群に障害が発生した場合、取得部131により取得されたリネージ情報に基づいて、一のデータ群における障害により影響を受ける他のデータ群を特定する。
これにより、実施形態に係る特定装置100は、障害が発生したデータ群がどのデータ群に影響を与えるかを特定したり、特定したデータ群を管理する管理者への連絡手段等を特定したりすることに要する時間の増大を抑制することができる。したがって、特定装置100は、依存関係があるデータ群に障害が発生した場合に、迅速な復旧作業を可能にすることができる。
また、実施形態に係る特定装置100において、取得部131は、複数のデータ群の各々に対応する管理者への連絡手段に関する情報を含むリネージ情報を取得する。特定部132は、一のデータ群に障害が発生した場合、リネージ情報に基づいて、一のデータ群における障害により影響を受ける管理者への連絡手段を特定する。
これにより、実施形態に係る特定装置100は、障害が発生したデータ群がどのデータ群に影響を与えるかを特定したり、特定したデータ群を管理する管理者への連絡手段等を特定したりすることに要する時間の増大を抑制することができる。したがって、特定装置100は、依存関係があるデータ群に障害が発生した場合に、迅速な復旧作業を可能にすることができる。
また、実施形態に係る特定装置100において、取得部131は、依存関係に応じて複数の階層に分類された複数のデータ群間における依存関係を示すリネージ情報を取得する。
これにより、実施形態に係る特定装置100は、データ群間に複数の階層に分類された階層関係がある場合であっても、障害が発生したデータ群がどのデータ群に影響を与えるかを特定したり、特定したデータ群を管理する管理者への連絡手段等を特定したりすることに要する時間の増大を抑制することができる。したがって、特定装置100は、依存関係があるデータ群に障害が発生した場合に、迅速な復旧作業を可能にすることができる。
また、実施形態に係る特定装置100において、取得部131は、一の階層に属するデータ群に基づいて、一の階層よりも下位の階層に属するデータ群が生成されることを示すリネージ情報を取得する。
これにより、実施形態に係る特定装置100は、データ群間に生成における階層関係がある場合であっても、障害が発生したデータ群がどのデータ群に影響を与えるかを特定したり、特定したデータ群を管理する管理者への連絡手段等を特定したりすることに要する時間の増大を抑制することができる。したがって、特定装置100は、依存関係があるデータ群に障害が発生した場合に、迅速な復旧作業を可能にすることができる。
また、実施形態に係る特定装置100において、特定部132は、一のデータ群に障害が発生した場合、一のデータ群が属する階層よりも下位の階層に属するデータ群であって、一のデータ群との依存関係を有するデータ群を特定する。
これにより、実施形態に係る特定装置100は、一のデータ群に障害が発生した場合、一のデータ群が属する階層よりも下位の階層に属するデータ群であって、一のデータ群との依存関係を有するデータ群を特定することで、障害が発生したデータ群がどのデータ群に影響を与えるかを特定することに要する時間の増大を抑制することができる。したがって、特定装置100は、依存関係があるデータ群に障害が発生した場合に、迅速な復旧作業を可能にすることができる。
また、実施形態に係る特定装置100において、特定部132は、一のデータ群に障害が発生した場合、一のデータ群が属する階層よりも上位の階層に属するデータ群であって、一のデータ群との依存関係を有するデータ群を特定する。
これにより、実施形態に係る特定装置100は、一のデータ群に障害が発生した場合、一のデータ群が属する階層よりも上位の階層に属するデータ群であって、一のデータ群との依存関係を有するデータ群を特定することで、障害が発生したデータ群がどのデータ群に影響を与えるかを特定することに要する時間の増大を抑制することができる。したがって、特定装置100は、依存関係があるデータ群に障害が発生した場合に、迅速な復旧作業を可能にすることができる。
また、実施形態に係る特定装置100において、特定部132は、一のデータ群に障害が発生した場合、一のデータ群から依存関係を辿ることにより、一のデータ群における障害により影響を受ける他のデータ群を特定する。
これにより、実施形態に係る特定装置100は、一のデータ群に障害が発生した場合、一のデータ群から依存関係を辿ることにより、一のデータ群における障害により影響を受ける他のデータ群を特定することで、障害が発生したデータ群がどのデータ群に影響を与えるかを特定することに要する時間の増大を抑制することができる。したがって、特定装置100は、依存関係があるデータ群に障害が発生した場合に、迅速な復旧作業を可能にすることができる。
〔9.ハードウェア構成〕
上述してきた実施形態に係る特定装置100は、例えば図11に示すような構成のコンピュータ1000によって実現される。図11は、特定装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、所定のネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定のネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る特定装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から所定のネットワークNを介してこれらのプログラムを取得してもよい。
以上、本願の実施形態を図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔10.その他〕
また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。