(57)【要約】【課題】単一の継承構造を持つ情報における検索処理時間を短縮する。【解決手段】クラス毎にインスタンスデータを格納するインスタンスデータベースと、特定のクラスを継承する全てのクラス及び同一階層のクラスを特定可能なクラス継承コードと、各クラスのインスタンスデータのインスタンスデータベースにおけるアドレスと、を各クラス毎に対応付けるアドレス表を格納するアドレス管理手段と、アドレス表を参照し、検索要求から特定されるクラス継承コードに対応するアドレスを特定するデータ取得範囲特定手段と、インスタンスデータベースからデータ取得範囲特定手段により特定したアドレスよりインスタンスデータを取得して検索結果を生成するデータ検索手段と、を備える。【選択図】図１
2010165184.tif 000002
【特許請求の範囲】
【請求項１】
クラス毎にインスタンスデータを格納するインスタンスデータベースと、
特定のクラスを継承する全てのクラス及び同一階層のクラスを特定可能なクラス継承コードと、各クラスのインスタンスデータの前記インスタンスデータベースにおけるアドレスと、を各クラス毎に対応付けるアドレス表を格納するアドレス管理手段と、
前記アドレス表を参照し、検索要求から特定されるクラス継承コードに対応するアドレスを特定するデータ取得範囲特定手段と、
前記インスタンスデータベースから前記データ取得範囲特定手段により特定したアドレスよりインスタンスデータを取得して検索結果を生成するデータ検索手段と、を備えることを特徴とする検索装置。
【請求項２】
データ挿入要求に従って前記アドレス表を参照して挿入されるデータのクラス継承コードを特定し、前記データを挿入するアドレスを指定するデータ挿入領域特定手段と、
前記データ挿入領域特定手段にて指定されるアドレスにデータを挿入するデータ挿入手段と、を備えることを特徴とする請求項１記載の検索装置。
【請求項３】
前記クラス継承コードは、各クラスにDewey Order法を用いて番号付けされたコードであることを特徴とする請求項１又は２記載の検索装置。
【請求項４】
前記インスタンスデータベースは、各クラスのインスタンスデータを深さ優先順で連続したアドレスに格納していることを特徴とする請求項１から３のいずれか１項に記載の検索装置。
【請求項５】
前記クラス継承コードは、Dewey Order法を用いて番号付けを行い、全コードが同一の桁数となるよう０を付加して深さ優先順に番号付けされたコードであることを特徴とする請求項４記載の検索装置。
【請求項６】
前記格納アドレス管理手段は、ホストが複数存在する場合にホストを識別して前記ホストを一意に特定するホストコードを定義付けるホスト識別手段を有して、前記クラス継承コードを前記ホストコードとクラスの識別とを組み合わせたコードであり、
前記インスタンスデータベースは、各ホストの各クラス毎に領域を分けて前記インスタンスデータを格納することを特徴とする請求項１から５のいずれか１項に記載の検索装置。
【請求項７】
検索装置の行う検索方法であって、
特定のクラスを継承する全てのクラス及び同一階層のクラスを特定可能なクラス継承コードと、クラス毎にインスタンスデータを格納するインスタンスデータベースの各クラスのインスタンスデータの前記インスタンスデータベースにおけるアドレスと、を各クラス毎に対応付けるアドレス表を参照し、検索要求から特定されるクラス継承コードに対応するアドレスを特定するデータ取得範囲特定ステップと、
前記インスタンスデータベースから前記データ取得範囲特定ステップにて特定したアドレスよりインスタンスデータを取得して検索結果を生成するデータ検索ステップと、を備えることを特徴とする検索装置の検索方法。
【請求項８】
データ挿入要求に従って前記アドレス表を参照して挿入されるデータのクラス継承コードを特定し、前記データを挿入するアドレスを指定するデータ挿入領域特定ステップと、
前記データ挿入領域特定ステップにて指定されるアドレスにデータを挿入するデータ挿入ステップと、を備えることを特徴とする請求項７記載の検索装置の検索方法。
【請求項９】
前記クラス継承コードは、各クラスにDewey Order法を用いて番号付けされたコードであることを特徴とする請求項７又は８記載の検索装置の検索方法。
【請求項１０】
前記インスタンスデータベースは、各クラスのインスタンスデータを深さ優先順で連続したアドレスに格納していることを特徴とする請求項７から９のいずれか１項に記載の検索装置の検索方法。
【請求項１１】
前記クラス継承コードは、Dewey Order法を用いて番号付けを行い、全コードが同一の桁数となるよう０を付加して深さ優先順に番号付けされたコードであることを特徴とする請求項１０記載の検索装置の検索方法。
【請求項１２】
前記クラス継承コードは、ホストが複数存在する場合にホストを識別して前記ホストを一意に特定するホストコードを定義し、前記クラス継承コードを前記ホストコードとクラスの識別とを組み合わせたコードであり、
前記インスタンスデータベースは、各ホストの各クラス毎に領域を分けて前記インスタンスデータを格納していることを特徴とする請求項７から１１のいずれか１項に記載の検索装置の検索方法。
【請求項１３】
特定のクラスを継承する全てのクラス及び同一階層のクラスを特定可能なクラス継承コードと、クラス毎にインスタンスデータを格納するインスタンスデータベースの各クラスのインスタンスデータの前記インスタンスデータベースにおけるアドレスと、を各クラス毎に対応付けるアドレス表を参照し、検索要求から特定されるクラス継承コードに対応するアドレスを特定するデータ取得範囲特定処理と、
前記インスタンスデータベースから前記データ取得範囲特定処理にて特定したアドレスよりインスタンスデータを取得して検索結果を生成するデータ検索処理と、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、子孫クラスを含む情報を高速に検索可能な単一継承構造を持つ情報の検索装置、検索装置の検索方法及びプログラムに関する。
【背景技術】
【０００２】
データセンタや企業システムの運用管理においては、システムの構成情報を集めて格納する構成情報管理データベースにより管理者や管理ツールによる運用管理の効率化が期待できるため、構成情報管理データベースの重要性が高まっている。
【０００３】
一方、構成情報管理データベースに格納するデータは、共通の情報モデルにしたがって整理統合する必要があり、システムの障害管理や性能管理では、システムを構成する要素およびその依存関係を正確に把握する必要がある。
【０００４】
構成情報のモデルとして、近年ではオブジェクト指向型情報モデルが利用される。オブジェクト指向型情報モデルの特徴は、継承関係や関連構造を用いることで、情報間の関係を整理統合できる点にある。既存のモデルに基づいて継承を利用して独自の拡張モデルを定義することもできる。
【０００５】
オブジェクト指向型情報モデルの例としては、ＤＭＴＦ（Distributed management Task Force）で標準化が進められているＣＩＭ(Common Information Model)がある。ＣＩＭは単一の継承構造で定義され、多重継承の構造は持たない。一般的に、システム構成情報のモデルは単一継承構造の情報モデルで十分に表現できる。
【０００６】
オブジェクト指向型情報モデルの情報は継承関係を持つため、構成情報検索の際には継承関係を考慮した処理が必要となる。具体的には、検索対象のクラスが子クラスを持つ場合、その子クラスも検索する必要がある。
【０００７】
例えば、計算機を表すComputerSystemクラスと、仮想計算機を表すクラスとしてComputerSystemを継承したVirtualComputerSystemクラスが定義されているとする。ComputerSystemの全てのインスタンスを要求する検索処理では、その子クラスであるVirtualComputerSystemもComputerSystemの一つであるため、VirtualComputerSystemのインスタンスも結果に含まなければならない。
【０００８】
継承関係を考慮してデータベースを検索する従来の手法として、ユーザが継承関係を把握して問い合わせを行う方法や、継承関係を定義したデータを用意して問い合わせ処理を変換して実行する方法、特定の親クラスの下に子クラスをまとめて格納して検索する手法がある。ユーザが継承関係を把握して問い合わせを行う手法は、ユーザの手間が増え、効率が悪い。
【０００９】
そこで特許文献１では、階層型データベースに対する問い合わせで、データベースの階層構造を参照して検索対象となるクラスを特定し、各クラスに対する問い合わせ文を作成し、全ての問い合わせを実行して結果をまとめる手法を示している。本手法により、親クラスを指定するだけで、全ての子孫クラスに対する問い合わせ文が生成されて子孫クラスの情報を取得できることとなる。
【００１０】
また、特許文献２には、木構造中の個々の要素に行きがけ順で番号を付与し、付与した番号の順に、各要素に注目し、注目する要素からルート要素に至るパスを取得する手法について示されている。
【００１１】
また、特許文献３には、複数列を有するリレーショナルデータベースに対して、データベースの内容の特定の見方（ディメンジョン）を定義し、ディメンジョンの各属性（ディメンジョンメンバ）をデータベースの列にバインドすることで、データベース内の特定のデータ項目または特定の範囲のデータ項目を識別するための索引として振る舞わせ、データベースユーザが特定のデータ項目を求める場合に、対応するディメンジョンを使用して探索する手法について示されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００４−１７８０１４号公報
【特許文献２】特開２００３−２４８６７５号公報
【特許文献３】特開２００５−０１８７７８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献１の手法は、階層構造を参照するための手順と、全ての子クラスに対する問い合わせ文を生成する手順と、全ての子クラスに対して問い合わせを実行する手順とが必要となり、子孫クラスの数が多い場合には特に効率が悪い。また、受け付けた検索式を解釈して問い合わせ文を生成するための機能を設計して実装しなければならない。
【００１４】
また、特許文献２に記載されるように、木構造中の個々の要素に行きがけ順で番号を付与した場合には、行きがけ順で番号が付与されているだけであるために、同一階層の子孫ノードの集合や祖先ノードを特定することが困難である。
【００１５】
また、特許文献３に記載の技術においては、定義したディメンションをそれぞれ格納する必要があるため、子孫ノードが膨大な場合には該格納領域も多く必要となってしまう。
【００１６】
一方、親クラスの下に子孫クラスをまとめて格納することで、継承関係にあるインスタンスデータを検索する方法が考えられる。ＲＤＢ（リレーショナルデータベース）を利用する場合は、親クラスのテーブルを定義してそのテーブルに子孫クラスも格納する。この手法によれば、親クラスのテーブルに１回アクセスするだけで全ての子孫クラスの情報を取得できるが、親クラスの祖先クラスに対する検索には対応できない。また、子クラスを検索する場合は、親クラスや兄弟クラスを含む集合への問い合わせが必要となるため、効率が悪くなる。
【００１７】
そこで本発明は、上記問題点に鑑みてなされたもので、単一継承構造を有する情報における検索処理時間を短縮することを目的とする。
【課題を解決するための手段】
【００１８】
上記課題を解決するため、本発明における検索装置は、クラス毎にインスタンスデータを格納するインスタンスデータベースと、特定のクラスを継承する全てのクラス及び同一階層のクラスを特定可能なクラス継承コードと、各クラスのインスタンスデータのインスタンスデータベースにおけるアドレスと、を各クラス毎に対応付けるアドレス表を格納するアドレス管理手段と、アドレス表を参照し、検索要求から特定されるクラス継承コードに対応するアドレスを特定するデータ取得範囲特定手段と、インスタンスデータベースからデータ取得範囲特定手段により特定したアドレスよりインスタンスデータを取得して検索結果を生成するデータ検索手段と、を備えることを特徴とする。
【００１９】
また、本発明における検索装置の検索方法は、検索装置の行う検索方法であって、特定のクラスを継承する全てのクラス及び同一階層のクラスを特定可能なクラス継承コードと、クラス毎にインスタンスデータを格納するインスタンスデータベースの各クラスのインスタンスデータのインスタンスデータベースにおけるアドレスと、を各クラス毎に対応付けるアドレス表を参照し、検索要求から特定されるクラス継承コードに対応するアドレスを特定するデータ取得範囲特定ステップと、インスタンスデータベースからデータ取得範囲特定ステップにて特定したアドレスよりインスタンスデータを取得して検索結果を生成するデータ検索ステップと、を備えることを特徴とする。
【００２０】
また、本発明におけるプログラムは、特定のクラスを継承する全てのクラス及び同一階層のクラスを特定可能なクラス継承コードと、クラス毎にインスタンスデータを格納するインスタンスデータベースの各クラスのインスタンスデータの前記インスタンスデータベースにおけるアドレスと、を各クラス毎に対応付けるアドレス表を参照し、検索要求から特定されるクラス継承コードに対応するアドレスを特定するデータ取得範囲特定処理と、インスタンスデータベースからデータ取得範囲特定処理にて特定したアドレスよりインスタンスデータを取得して検索結果を生成するデータ検索処理と、をコンピュータに実行させる。
【発明の効果】
【００２１】
本発明により、単一継承構造を有する情報における検索処理時間を短縮することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施形態における機能ブロック図である。
【図２】第１の実施形態におけるクラス継承コードの例を示す図である。
【図３】第１の実施形態におけるアドレス表の例を示す図である。
【図４】第１の実施形態におけるインスタンスデータベースに格納されたデータの例を示す図である。
【図５】第１の実施形態におけるインスタンスデータベースへデータを挿入する処理の動作を示す流れ図である。
【図６】第１の実施形態におけるインスタンスデータベースからデータを取得する処理の動作を示す流れ図である。
【図７】本発明の第２の実施形態における機能ブロック図である。
【図８】第２の実施形態におけるクラス継承コードの例を示す図である。
【図９】第２の実施形態におけるアドレス表の例を示す図である。
【図１０】第２の実施形態におけるインスタンスデータベースへのデータ格納の例を示す図である。
【図１１】第２の実施形態におけるインスタンスデータベースへデータを挿入する処理の動作を示す流れ図である。
【図１２】第２の実施形態におけるインスタンスデータベースからデータを取得する処理の動作を示す流れ図である。
【図１３】本発明の第３の実施形態における機能ブロック図である。
【図１４】第３の実施形態におけるホスト識別コードおよびクラス継承コードの例を示す図である。
【図１５】第３の実施形態におけるアドレス表の例を示す図である。
【図１６】第３の実施形態におけるインスタンスデータベースへのデータ格納の例を示す図である。
【図１７】本発明の実施例の対象とするシステム構成情報のクラス定義とクラス継承コードを示す図である。
【図１８】本発明の実施例におけるアドレス表の一部を示す図である。
【図１９】本発明の実施例におけるインスタンスデータベースに格納されたインスタンスデータの一部を示す図である。
【図２０】本発明の実施例における入力される検索式を示した図である。
【図２１】本発明の実施例における出力結果を示す図である。
【発明を実施するための形態】
【００２３】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２４】
図１は、本発明の第１の実施形態における検索装置１の機能ブロック図である。検索装置１は、入力手段１０と、出力手段１１と、データ検索手段１２と、データ挿入手段１３と、格納アドレス管理手段１４と、インスタンスデータベース１５と、を有して構成される。
【００２５】
入力手段１０は、アプリケーションプログラムやユーザから検索要求やデータ挿入要求を受け取る。また、出力手段１１は、検索結果や挿入結果をアプリケーションプログラムや標準出力に出力させる。
【００２６】
データ検索手段１２は、データ取得範囲特定手段１２１とインスタンスデータ取得手段１２２とを含んで構成される。データ取得範囲特定手段１２１は、入力手段１０からの検索要求に従い、格納アドレス管理手段１４を参照して取得するデータのアドレスを特定する。インスタンスデータ取得手段１２２は、前記アドレスに基づいてインスタンスデータベース１５よりインスタンスデータの取得を行う。
【００２７】
データ挿入手段１３は、インスタンスデータ挿入手段１３１とデータ挿入領域特定手段１３２とを含んで構成される。データ挿入領域特定手段１３２は、入力手段１０からのデータ挿入要求に従い、格納アドレス管理手段１４を参照して挿入するデータのアドレスを特定する。また、インスタンスデータ挿入手段１３１は、インスタンスデータベース１５の前記アドレスに対してデータの挿入を行う。
【００２８】
格納アドレス管理手段１４は、アドレス表１４１とクラス継承コード定義１４２とを含んで構成される。アドレス表１４１は、クラス継承コードと、データの格納されているアドレスとを対応付けて格納している。次に、クラス継承コード定義１４２について具体例をあげて説明する。
【００２９】
クラス継承コードは各クラスを一意に識別するコードであると共に、子孫関係にあるクラスを計算によって判別可能なコードである。図２は、単一の継承構造を持つ情報モデルの定義例を示している。本例では親クラスであるクラスＡの子クラスとしてクラスＢとクラスＤが定義され、さらに、クラスＢの子クラスとしてクラスＣが定義されている。
【００３０】
図２にはDewey Order法に基づくクラス継承コードの一例を示している。Dewey Order法は、親クラスのコードのあとにセパレータ（ここではコロン"."）を続けて兄弟を識別するための値を付加するコード付け規則である。
【００３１】
例えば、全てのクラスの祖先であるクラスＡを1とすると、その子クラスであるクラスＢとクラスＤは１．１、１．２となり、クラスＢを継承するクラスＣは１．１．１とコード付けできる。クラスＢのコードを参照すれば、最初の２桁で１．１を有するコードから子クラスであるクラスＣを特定でき、クラスＡを参照すれば、最初に１を有するコードから全ての子孫クラスであるクラスＢ、クラスＣ、クラスＤを特定することができる。
【００３２】
上記性質を持つクラス継承コードを利用し、図１の各構成要素の動作の概要を説明する。入力手段１０が、検索要求を受け付けると、データ検索手段１２がインスタンスデータベース１５から検索対象のデータを取得する。この際、データ取得範囲特定手段１２１は、格納アドレス管理手段１４によってインスタンスデータベース１５からデータを取得するためのアドレスを取得し、インスタンスデータ取得手段１２２が指定されたアドレスにしたがってデータを取得する。
【００３３】
一方、入力手段１０が、データ挿入要求を受け付けた場合は、データ挿入手段１３がインスタンスデータベース１５にデータを挿入する。この際、データ挿入領域特定手段１３２は、格納アドレス管理手段１４によってインスタンスデータベース１５へデータを挿入するためのアドレスを特定し、インスタンスデータ挿入手段１３１が指定されたアドレスにデータを書き込む。検索結果や挿入結果は、出力手段１１を介してアプリケーションプログラムや標準出力に出力される。
【００３４】
図３は、アドレス表１４１の一例を示す図である。アドレス表１４１には、クラス名に対応したクラス継承コードと格納アドレスが格納される。例えば、クラスＡは、クラス継承コード１が付与され、アドレス５２に格納される。また、クラスＢは、クラス継承コード１．１が付与され、アドレス１１４に格納されていることを示している。
【００３５】
また、図４はインスタンスデータベース１５に格納されるデータの一例を示す図である。インスタンスデータベース１５には、各クラスごとに格納領域が割り当てられ、各クラスのインスタンスデータが格納される。例えば、アドレス５２にクラスＡに属するインスタンスデータが格納されており、アドレス１１４には、クラスＢに属するインスタンスデータが格納されている。
【００３６】
次に、図５及び図６のフローチャートを参照して本発明の実施形態における全体動作について詳細に説明する。まず、データの挿入手順について図５のフローチャートを参照して説明する。
【００３７】
入力手段１０が、ユーザやアプリケーションプログラムよりデータ挿入要求を受けとると（ステップ１０００）、データ挿入手段１３は、データ挿入要求を受け取り、要求中に記述されている挿入対象のクラスを特定する（ステップ１００１）。
【００３８】
データ挿入領域特定手段１３２は、格納アドレス管理手段１４を介して、要求されたクラスに対応するインスタンスデータベース１５の格納領域を特定する（ステップ１００２）。インスタンスデータ挿入手段１３１は、特定された格納領域を指定してインスタンスデータベース１５にデータを挿入する（ステップ１００３）。
【００３９】
データ挿入手段１３は、挿入結果を出力手段１１を介して要求先に出力する（ステップ１００４）。
【００４０】
次に、データ挿入手段を介して必要なデータを格納したインスタンスデータベース１５に対して、データを検索する手順について図６のフローチャートを参照して説明する。
【００４１】
入力手段１０が、ユーザやアプリケーションプログラムよりデータ検索要求を受け取ると（ステップ２０００）、データ検索手段１２は、データ検索要求を受け取り、要求中に記述されている検索対象のクラスを特定する（ステップ２００１）。なお、一般的には検索式の解析によって検索対象のクラスを判別する。
【００４２】
次に、データ取得範囲特定手段１２１は、検索対象のクラスおよびその子孫クラスが格納された領域を特定するため、アドレス表１４１を参照し、検索対象のクラスのエントリを特定する（ステップ２００２）。エントリに含まれるクラス継承コードを計算することで、検索対象クラスの全ての子孫クラスを特定し、これらのクラスが格納された領域のアドレスを取得する（ステップ２００３）。
【００４３】
例えば、図３の例でクラスＢが検索対象であった場合、クラスＢのクラス継承コードは"1.1"であるから、クラスＢの子孫クラスは"1.1"で始まるクラス継承コードを持つもので、クラスＣ"1.1.1"が検索対象に含まれることを特定できる。このように、クラス継承コードがアドレス表１４１の列に含まれるため、クラスＢとクラスＣのアドレスを特定できる。
【００４４】
特定したアドレス範囲を入力として、インスタンスデータ取得手段１２２は、インスタンスデータベース１５にアクセスしてデータを取得する（ステップ２００４）。データ検索手段１２は、取得したデータに検索処理を適用して検索結果を生成し、（ステップ２００５）検索結果を出力手段１１を介して要求先に出力する（ステップ２００６）。
【００４５】
本実施形態によれば、検索対象クラスの子孫クラスを格納するアドレスをクラス継承コードを利用して同時に特定できるように構成されているため、継承関係の定義情報を参照する必要がなく、子孫関係にあるクラスを含む情報検索を効率良く検索できる。
【００４６】
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。
【００４７】
図７は、本発明の第２の実施形態における検索装置１１１の機能ブロック図である。検索装置１１１は、入力手段１０と、出力手段１１と、データ検索手段２２と、データ挿入手段１３と、格納アドレス管理手段１４と、クラス継承コード順インスタンスデータベース１６と、を有して構成される。なお、第１の実施形態と同一部分については、同一の符号を記し詳細な説明は省略する。
【００４８】
データ検索手段２２は、データ取得範囲特定手段１２１とインスタンスデータ連続取得手段１２３とを含んで構成される。
【００４９】
本実施形態では、クラス継承コードとして、継承関係の深さ優先順でソート可能なコードを用いる。深さ優先順とは、木構造を深さ優先探索でたどる際の順番である。深さ優先順でクラスをソートすることで、特定のクラスの子孫クラスは全て特定のクラスのあとに連続して並ぶことになる。この性質を利用してインスタンスデータを格納することで、特定のクラスを継承する全ての子孫クラスを連続した領域に格納することができる。
【００５０】
図８は、ソート可能なクラス継承コードの一例を示している。図８に示すクラス階層では深さが４の木構造をなしているため、４桁の１０進コードを用いている。すなわち、第１の実施形態と同様に番号付けを行い、コロンを省略した形で同一桁数となるように上流クラスの数字の末尾に０を付加する。千の位はルートクラスを表し、百の位は深さ２の兄弟クラスを識別し、十の位は深さ３の兄弟クラスを識別し、一の位は深さ４の兄弟クラスを識別する。
【００５１】
例えば、クラスＢのクラス継承コードを参照すれば、千の位と百の位の値が特定でき、クラスＣ、クラスＤ、クラスＥが子孫クラスであることが特定できる。また、クラス継承コードを昇順でソートすれば、深さ優先順にクラスを並べることが可能となる。
【００５２】
また、同一階層に１０以上のクラスがあった場合には、該階層における１桁の数字の前に０を付加すれば昇順に並べることができる。すなわち、同一階層中に１０以上のクラスが存在する場合には、全体の桁数は、クラス階層深さの桁数より多くなる。
【００５３】
なお、ここではクラス継承コードをクラス階層深さの桁数を有する１０進コードとして説明を行ったが、第１の実施形態と同様に階層ごとにコロンを付与した形のままでも先頭の数字から順に並べていくことで同様に並べ替えることは可能である。
【００５４】
上記性質を持つクラス継承コードを利用した図７の各構成要素の動作の概要について説明する。
【００５５】
入力手段１０は、アプリケーションプログラムやユーザから検索要求やデータ挿入要求を受け取る。検索要求を受け付けた場合は、データ検索手段２２がクラス継承コード順インスタンスデータベース１６から検索対象のデータを取得する。この際、データ取得範囲特定手段１２１は格納アドレス管理手段１４によってクラス継承コード順インスタンスデータベース１６からデータを取得するためのアドレス範囲を取得し、インスタンスデータ連続取得手段１２２が指定された連続するアドレス範囲にしたがってデータを取得する。
【００５６】
一方、データ挿入要求を受け付けた場合は、データ挿入手段１３がクラス継承コード順インスタンスデータベース１６にデータを挿入する。この際、データ挿入領域特定手段１３２は格納アドレス管理手段１４によってクラス継承コード順インスタンスデータベース１６へデータを挿入するためのアドレスを特定し、インスタンスデータ挿入手段１３１が指定されたアドレスにデータを書き込む。検索結果や挿入結果は、出力手段１１を介してアプリケーションプログラムや標準出力に出力する。
【００５７】
図９は、本実施形態におけるアドレス表の一例を示す図である。アドレス表１４１には、クラス名に対応したクラス継承コードと格納アドレスが格納される。
【００５８】
図１０は、本実施形態におけるクラス継承コード順インスタンスデータベース１６に格納されるデータの一例を示す図である。クラス継承コード順インスタンスデータベース１６には、クラス継承コードの順番にしたがって連続したアドレスに各クラスのインスタンスデータが昇順に並べて格納される。
【００５９】
次に、図１１及び図１２のフローチャートを参照して本実施形態における全体の動作について詳細に説明する。
【００６０】
まず、データの挿入手順について図１１のフローチャートを参照して説明する。入力手段１０が、ユーザやアプリケーションプログラムよりデータ挿入要求を受け付けると（ステップ３０００）、データ挿入手段１３は、データ挿入要求を受け取り、要求中に記述されている挿入対象のクラスを特定する（ステップ３００１）。
【００６１】
データ挿入領域特定手段１３２は、格納アドレス管理手段１４を介して、要求されたクラスに対応するクラスコード順インスタンスデータベース１６の格納領域を特定する（ステップ３００２）。インスタンスデータ挿入手段１３１は、特定された格納領域を指定してクラスコード順インスタンスデータベース１６にデータを挿入する（ステップ３００３）。
【００６２】
データ挿入手段１３は挿入結果を出力手段１１を介して要求先に出力する（ステップ３００４）。
【００６３】
データ挿入手段を介して必要なデータを格納したクラスコード順インスタンスデータベース１６に対して、データを検索する手順について図１２のフローチャートを参照して説明する。
【００６４】
入力手段１０が、ユーザやアプリケーションプログラムよりデータ検索要求を受け付けると（ステップ４０００）、データ検索手段２２はデータ検索要求を受け取り、要求中に記述されている検索対象のクラスを特定する（ステップ４００１）。一般的には検索式の解析によって検索対象のクラスを判別する。
【００６５】
次に、データ取得範囲特定手段１２１は、検索対象のクラスおよびその子孫クラスが格納された領域を特定するため、アドレス表１４１を参照し、検索対象のクラスのエントリを特定する（ステップ４００２）。エントリに含まれるクラス継承コードを計算することで、検索対象クラスの全ての子孫クラスを特定し、これらのクラスが格納された領域のアドレスを取得する（ステップ４００３）。
【００６６】
例えば、図８の例でクラスＢが検索対象であった場合、クラスＢのクラス継承コードは"1100"であるから、クラスＢの子孫クラスは"11"で始まるクラス継承コードを持つもので、クラスＣ、クラスＤ、クラスＥが検索対象に含まれることを特定できる。また、図９のアドレス表１４１を参照することで、クラスＢの子孫クラスがアドレス範囲２４６から２４９の範囲に格納されていることを特定できる。
【００６７】
特定したアドレス範囲を入力として、インスタンスデータ連続取得手段１２３は、クラス継承コード順インスタンスデータベース１６にアクセスしてデータをまとめて取得する（ステップ４００４）。データ検索手段２２は、取得したデータに検索処理を適用して検索結果を生成し（ステップ４００５）、検索結果を出力手段１１を介して要求先に出力する（ステップ４００６）。
【００６８】
本実施形態によれば、継承構造を深さ優先順でソート可能なクラス継承コードを利用することで、子孫関係にあるクラスを連続した領域に格納するように構成されているため、検索対象のクラスの子孫クラスをデータベースから連続して参照することでディスクのアクセス効率を向上させることができる。
【００６９】
次に、本発明の第３の実施形態について図面を参照して詳細に説明する。
【００７０】
図１３は、本発明の第３の実施形態における検索装置２１１の機能ブロック図である。検索装置２１１は、第１および第２の実施の形態の構成と同様の構成を持ち、格納アドレス管理手段２４にさらにホストコード定義１４３を有する。また、インスタンスデータベース１５はホスト単位でインスタンスデータを分けて格納する、ホスト別インスタンスデータベース１７で置き換えられる。
【００７１】
特にシステム構成情報を管理するシステムにおいては、構成情報がどのホスト（コンピュータ）の情報であるかが重要であり、構成情報検索時には、特定のホストを指定して検索を行う場合が多い。そこで本構成を用いることで、構成情報の実体が存在するホストを識別子として用いて格納や検索を効率化することが可能となる。
【００７２】
まず、ホストを一意に特定するホストコードを定義する。なお、ここでの定義は、ホストを一意に特定できるコードであればどのようなものでも良い。次に、ホストコードとクラス継承コードを組み合わせ、特定のホストの特定のクラスを一意に決めるクラス継承コードを定義する。
【００７３】
図１４にホスト識別コードも含むクラス継承コードの例を示す。ホスト１とホスト２でそれぞれ同じ継承構造を持つ情報が定義されている場合、クラス継承コードの前にホストコードを追加する。例えば、ｈｏｓｔ２のクラスＢのコードはホストコードが２でクラス継承コードが1.1であるため、2.1.1で表される。
【００７４】
ホストコードも含むクラス継承コードによってインスタンスデータを格納する際のアドレス表１４１及びホスト別インスタンスデータベース１７の一例を図１５、図１６に示す。図１５は、アドレス表１４１を示し、図１６は、ホスト別インスタンスデータベース１７を示す。
【００７５】
本実施形態におけるアドレス表１４１は、図１５に示すようにクラス継承コード、クラス名、格納アドレスに加え、ホスト名を列に持つ。アドレス参照時には、ホスト名とクラス名を指定してエントリを特定し、クラス継承コードによって同じホスト上の子孫クラスの格納アドレスを特定する。
【００７６】
また、ホスト別インスタンスデータベース１７では、図１６に示すように各ホストの各クラスごとに格納領域を分けて格納する。すなわち、同じクラスのインスタンスであっても異なるホストの構成情報である場合は領域を分けて格納する。
【００７７】
このようなホスト識別子を含むクラス継承コードを用いてインスタンスデータを格納し、検索時にクラス継承コードを利用してインスタンスデータの格納領域を特定することで、特定のホストを対処とした構成情報の検索を高速化することができる。
【００７８】
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作について説明する。
【００７９】
図１７にオブジェクト指向モデルに基づくシステム構成情報定義と、継承構造を反映したクラス継承コードの定義を示す。システム構成情報モデルの標準であるＣＩＭはCIM_ManagedElementクラスをルートとした単一継承構造上に定義されている。図１７の例ではDewey Order法にしたがったクラス継承コードの例を示している。
【００８０】
ソフトウェアを表現するCIM_SoftwareElementは"1.13.1.22"というクラス継承コードが割り当てられており、このクラスを継承して、SPF_ReferenceMonitor、及びSPF_ResourceUtilizationControllerが定義されているとする。SPF_ReferenceMonitorは、さらにSPF_VirtualizationReferenceMonitorを子クラスとして持つとする。これらのクラスには"1.16.1.22"で始まるクラス継承コードが割り当てられる。
【００８１】
図１７のクラス定義にしたがって作成したアドレス表１４１とホスト別インスタンスデータベース１７の例を図１８（アドレス表１４１）と図１９（ホスト別インスタンスデータベース１７）に示す。
【００８２】
図１８に示すようにアドレス表１４１は、クラス継承コード、クラス名、格納アドレスの関係を保持する。また、図１９に示すように、ホスト別インスタンスデータベース１７には、各クラスのインスタンスデータがアドレス表１４１で指定された領域に格納されている。
【００８３】
この状態で、入力手段を介して図２０に示すような検索式を受け取った状況を考える。図２０に示す検索式はＣＩＭに対する標準的な検索言語であるＣＱＬ(CIM Query Language)に基づいている。CIM_SoftwareElementクラスの全てのインスタンスの名前を取得することを要求しているが、当然CIM_SoftwareElementクラスを継承するSPF_ReferenceMonitorクラスなども検索対象に含まれる。
【００８４】
従来システムでは、CIM_SoftwareElementクラスを継承するSPF_ReferenceMonitorやSPF_ResourceUtilizationController、SPF_VirtualizationReferenceMonitorクラスを継承構造を定義した情報を検索して特定し、それぞれ検索を実行する必要があったが、本実施形態では、次のような手順で検索を処理する。
【００８５】
まず、データ検索手段１２は検索式を解析し、検索対象のクラスCIM_SoftwareElementを特定する。次に、データ取得範囲特定手段１２１によって、図１８に示すアドレス表１４１が参照され、CIM_SoftwareElementのエントリを見つける。このエントリより、CIM_SoftwareElementに対応するクラス継承コードが"1.16.1.22"と判明する。
【００８６】
そこで、このクラス継承コードを含むエントリを調べると、"1.16.1.22.1"、"1.16.1.22.1.1"、"1.16.1.22.2"が見つかる。これらの情報を取得するためのアドレス範囲は35から38と特定できる。アドレス範囲を入力として、インスタンスデータ取得手段１２２は、ホスト別インスタンスデータベース１７にアクセスして図１９に示したインスタンスデータを取得する。データ検索手段１２は、取得した全てのインスタンスデータのName属性を取り出し、図２１に示す結果を出力する。
【００８７】
以上、実施の形態を説明したが、特許請求の範囲に定義された本発明の広範囲な趣旨および範囲から逸脱することなく、これら実施の形態や具体例に様々な修正および変更が可能である。
【産業上の利用可能性】
【００８８】
単一継承構造を持つオブジェクト指向情報モデルのデータを格納して検索する装置や、データを格納して検索するプログラムといった用途に適用可能である。また、単一継承構造の情報モデルによるシステム構成情報を格納して検索する装置や、システム構成情報を格納して検索するプログラムといった用途にも適用できる。
【符号の説明】
【００８９】
１    検索装置
１０    入力手段
１１    出力手段
１２    データ検索手段
１３    データ挿入手段
１４    格納アドレス管理手段
１５    インスタンスデータベース
１２１    データ取得範囲特定手段
１２２    インスタンスデータ取得手段
１３１    インスタンスデータ挿入手段
１３２    データ挿入領域特定手段
１４１    アドレス表
１４２    クラス継承コード定義
【図１】
2010165184.tif 000003
【図２】
2010165184.tif 000004
【図３】
2010165184.tif 000005
【図４】
2010165184.tif 000006
【図５】
2010165184.tif 000007
【図６】
2010165184.tif 000008
【図７】
2010165184.tif 000009
【図８】
2010165184.tif 000010
【図９】
2010165184.tif 000011
【図１０】
2010165184.tif 000012
【図１１】
2010165184.tif 000013
【図１２】
2010165184.tif 000014
【図１３】
2010165184.tif 000015
【図１４】
2010165184.tif 000016
【図１５】
2010165184.tif 000017
【図１６】
2010165184.tif 000018
【図１７】
2010165184.tif 000019
【図１８】
2010165184.tif 000020
【図１９】
2010165184.tif 000021
【図２０】
2010165184.tif 000022
【図２１】
2010165184.tif 000023