(57)【特許請求の範囲】
【請求項１】
データストアを構成する少なくとも一つの計算機のデータ管理方法であって、
前記少なくとも一つの計算機は、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有し、
前記データストアには、少なくとも一つの属性から構成されるデータブロックを複数含むシステム情報が、前記システム情報のデータ構造に依存しない形式で格納され、
前記メモリは、関連性を有する二つのシステム情報の識別情報、及び前記二つのシステム情報の関連付ける属性の対応関係によって定義されるアクセスパスを管理するレコードを含む関連性管理情報を格納し、
前記データ管理方法は、
前記プロセッサが、新規システム情報の登録要求を受け付ける第１のステップと、
前記プロセッサが、前記新規システム情報を前記データストアに格納する第２のステップと、
前記プロセッサが、前記データストアに格納されるシステム情報の中から、前記新規システム情報と関連性を有する第１のシステム情報を特定する第３のステップと、
前記プロセッサが、前記新規システム情報及び前記第１のシステム情報の識別情報と、前記新規システム情報及び前記第１のシステム情報を関連付ける属性の対応関係によって定義される第１のアクセスパスとを含むレコードを前記関連性管理情報に登録する第４のステップと、
前記プロセッサが、前記データストアに対するクエリを受け付けた場合、前記関連性管理情報に基づいて、前記クエリを、前記システム情報間の参照を行うための情報が付加されたクエリに変換する第５のステップと、
前記プロセッサが、前記変換されたクエリを実行する第６のステップと、を含むことを特徴とするデータ管理方法。
【請求項２】
請求項１に記載のデータ管理方法であって、
前記第３のステップは、
前記プロセッサが、前記新規システム情報に含まれる属性と、前記第１のシステム情報に含まれる属性とを比較することによって、同一視可能な属性を含むか否かを判定する第７のステップと、
前記プロセッサが、前記同一視可能な属性を含むと判定された場合、前記第１のシステム情報を前記新規システム情報と関連性を有するシステム情報として特定する第８のステップと、
前記プロセッサが、前記同一視可能な属性に基づいて前記第１のアクセスパスを生成する第９のステップと、を含むことを特徴とするデータ管理方法。
【請求項３】
請求項２に記載のデータ管理方法であって、
前記メモリは、前記データストアに格納される前記システム情報のデータブロックに含まれる属性を管理する属性管理情報を保持し、
前記第２のステップは、
前記プロセッサが、前記新規システム情報のデータブロックに含まれる属性を特定するステップと、
前記新規システム情報のデータブロックに含まれる属性を前記属性管理情報に設定するステップと、を含み、
前記第７のステップは、前記プロセッサが、前記属性管理情報に基づいて、前記新規システム情報に含まれる属性及び前記第１のシステム情報に含まれる属性を比較するステップを含むことを特徴とするデータ管理方法。
【請求項４】
請求項２に記載のデータ管理方法であって、
前記第３のステップは、
前記プロセッサが、前記関連性管理情報を参照して、前記第１のシステム情報と関連性を有する第２のシステム情報を特定するステップと、
前記第１のシステム情報及び前記第２のシステム情報を関連付ける属性の対応関係によって定義される第２のアクセスパスを取得するステップと、
前記プロセッサが、前記第１のアクセスパス及び前記第２のアクセスパスに基づいて、前記第１のシステム情報を介した前記新規システム情報と前記第２のシステム情報を関連付ける属性の対応関係によって定義される第３のアクセスパスを生成するステップと、
前記プロセッサが、前記新規システム情報及び前記第２のシステム情報の識別情報と、前記第３のアクセスパスとを含むレコードを前記関連性管理情報に設定するステップと、を含むことを特徴とするデータ管理方法。
【請求項５】
請求項４に記載のデータ管理方法であって、
前記第５のステップは、
前記プロセッサが、関連性を有するシステム情報の組合せを特定するステップと、
前記プロセッサが、前記関連性管理情報を参照して、前記特定されたシステム情報の組合せに対応するレコードを検索するステップと、
前記プロセッサが、前記検索されたレコードに含まれるアクセスパスに基づいて、前記クエリを変換するステップと、を含むことを特徴とするデータ管理方法。
【請求項６】
データストアを構成する計算機であって、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを備え、
前記データストアには、少なくとも一つの属性から構成されるデータブロックを複数含むシステム情報が、前記システム情報のデータ構造に依存しない形式で格納され、
前記メモリは、関連性を有する二つのシステム情報の識別情報、及び前記二つのシステム情報の関連付ける属性の対応関係によって定義されるアクセスパスを管理するレコードを含む関連性管理情報を格納し、
前記データストアを管理するデータ管理部と、
前記データストアに格納されるシステム情報間の関連性を解析することによって、前記関連性管理情報を更新する関連性解析部と、
前記関連性管理情報に基づいて、前記データ管理部が受け付けたクエリを、前記システム情報間の参照を行うための情報が付加されたクエリに変換する変換部と、を有し、
前記データ管理部は、
新規システム情報の登録要求を受け付けた場合、前記データストアに前記新規システム情報を格納し、前記関連性解析部に前記関連性管理情報の更新を指示し、
前記データストアに対するクエリを受け付けた場合、前記変換部に前記クエリの変換を指示し、前記変換部によって変換されたクエリを実行し、
前記関連性解析部は、
前記データストアに格納されるシステム情報の中から、前記新規システム情報と関連性を有する第１のシステム情報を特定し、
前記新規システム情報及び前記第１のシステム情報の識別情報と、前記新規システム情報及び前記第１のシステム情報を関連付ける属性の対応関係によって定義される第１のアクセスパスとを含むレコードを前記関連性管理情報に登録することを特徴とする計算機。
【請求項７】
請求項６に記載の計算機であって、
前記関連性解析部は、
前記新規システム情報に含まれる属性と、前記第１のシステム情報に含まれる属性とを比較することによって、同一視可能な属性を含むか否かを判定し、
前記同一視可能な属性を含むと判定された場合、前記第１のシステム情報を前記新規システム情報と関連性を有するシステム情報として特定し、
前記同一視可能な属性に基づいて前記第１のアクセスパスを生成することを特徴とする計算機。
【請求項８】
請求項７に記載の計算機であって、
前記メモリは、前記データストアに格納される前記システム情報のデータブロックに含まれる属性を管理する属性管理情報を保持し、
前記関連性解析部は、
前記新規システム情報のデータブロックに含まれる属性を特定し、
前記新規システム情報のデータブロックに含まれる属性を前記属性管理情報に設定し、
前記属性管理情報から取得された前記新規システム情報に含まれる属性及び前記第１のシステム情報に含まれる属性を比較することを特徴とする計算機。
【請求項９】
請求項７に記載の計算機であって、
前記関連性解析部は、
前記関連性管理情報を参照して、前記第１のシステム情報と関連性を有する第２のシステム情報を特定し、
前記第１のシステム情報及び前記第２のシステム情報を関連付ける属性の対応関係によって定義される第２のアクセスパスを取得し、
前記第１のアクセスパス及び前記第２のアクセスパスに基づいて、前記第１のシステム情報を介した前記新規システム情報と前記第２のシステム情報を関連付ける属性の対応関係によって定義される第３のアクセスパスを生成し、
前記新規システム情報及び前記第２のシステム情報の識別情報と、前記第３のアクセスパスとを含むレコードを前記関連性管理情報に設定する、ことを特徴とする計算機。
【請求項１０】
請求項９に記載の計算機であって、
前記変換部は、
関連性を有するシステム情報の組合せを特定し、
前記関連性管理情報を参照して、前記特定されたシステム情報の組合せに対応するレコードを検索し、
前記検索されたレコードに含まれるアクセスパスに基づいて、前記クエリを変換することを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｄａｔａ  Ｌａｋｅシステムにおけるデータ処理に関する。
【背景技術】
【０００２】
ビックデータ分野では、ＲＤＢ形式のデータ、Ｊｓｏｎ形式のデータ、及び表形式のデータ等の様々なデータ構造のデータを統合管理するＤａｔａ  Ｌａｋｅ方式が知られている（例えば、特許文献１参照）。ここで、Ｄａｔａ  Ｌａｋｅは、データの種別及びデータの大きさ等に依存することなく、多種多様なデータを格納するリポジトリを示す。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１４／０２８０３３３号明細書
【特許文献２】米国特許出願公開第２０１４／０１０８４６７号明細書
【特許文献３】特開２０１６−１４９４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
Ｄａｔａ  Ｌａｋｅ方式のシステムを用いることによってデータの管理は容易になる。しかし、データの検索処理等を行う場合、データ間の関連性が定義されたクエリを用いる必要がある。そのため、データの検索処理が複雑であるという問題がある。【０００５】
データの検索処理を効率化する手法として、簡易な操作によって分析が可能なＤａｔａ  Ｄｉｓｃｏｖｅｒｙツールが注目されている（例えば、特許文献２及び特許文献３参照）。特許文献２には、異なるデータテーブル間の関連性を抽出することによって、簡単なクエリでデータ検索することができることが記載されている。また、特許文献３には、「データベースに格納されたデータから、当該データベースのＤＢカラムのデータ依存関係や制約条件等を抽出する相関ルール分析装置であって、入力されたＤＢテーブルデータから、複数カラム間のデータの同時出現関係の情報を相関ルールとして抽出する手段と、抽出した相関ルールを特定の共通性に基づいて集約する手段と、集約された各相関ルールの出現頻度および組み合わせから、データ依存関係や制約条件としての有用性指標を算出する手段を有する。」ことが記載されている。【０００６】
データ管理及び検索処理の簡略化を両立するために、特許文献１と、特許文献２又は特許文献３とを組み合わせることが考えられる。しかし、特許文献２に記載の技術では、語彙の共通性に基づいてデータ間の関連性が抽出されているため、共通性のある語彙以外の関連性を特定するためにはデータ統合時に複雑なＥＴＬ（Ｅｘｔｒａｃｔ  Ｔｒａｎｓｆｏｒｍ  Ｌｏａｄ）ロジックの入力が必要となる。特許文献３に記載の技術は、データベースがＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ）であることが前提である。また、前述した組合せによって実現される発明では、相関ルール等の情報をクエリに使用することが記載されていない。【０００７】
本発明は、データ間の関連性が定義されていないデータの統合管理及びデータの検索処理を容易にすることを目的とする。
【課題を解決するための手段】
【０００８】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、データストアを構成する少なくとも一つの計算機のデータ管理方法であって、前記少なくとも一つの計算機は、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有し、前記データストアには、少なくとも一つの属性から構成されるデータブロックを複数含むシステム情報が、前記システム情報のデータ構造に依存しない形式で格納され、前記メモリは、関連性を有する二つのシステム情報の識別情報、及び前記二つのシステム情報の関連付ける属性の対応関係によって定義されるアクセスパスを管理するレコードを含む関連性管理情報を格納し、前記データ管理方法は、前記プロセッサが、新規システム情報の登録要求を受け付ける第１のステップと、前記プロセッサが、前記新規システム情報を前記データストアに格納する第２のステップと、前記プロセッサが、前記データストアに格納されるシステム情報の中から、前記新規システム情報と関連性を有する第１のシステム情報を特定する第３のステップと、前記プロセッサが、前記新規システム情報及び前記第１のシステム情報の識別情報と、前記新規システム情報及び前記第１のシステム情報を関連付ける属性の対応関係によって定義される第１のアクセスパスとを含むレコードを前記関連性管理情報に登録する第４のステップと、前記プロセッサが、前記データストアに対するクエリを受け付けた場合、前記関連性管理情報に基づいて、前記クエリを、前記システム情報間の参照を行うための情報が付加されたクエリに変換する第５のステップと、前記プロセッサが、前記変換されたクエリを実行する第６のステップと、を含むことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、計算機は、Ｄａｔａ  Ｌａｋｅ方式のシステムにおいて、システム情報の登録時にシステム情報間の関連性を特定し、クエリ実行時にシステム情報間の関連性に基づいてクエリを変換する。これによって、データの統合管理が容易となり、また、データの検索処理も容易となる。上記以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】実施例１の計算機システムの構成例である。
【図２】実施例１のデータ管理ノードのハードウェア構成及びソフトウェア構成を説明するブロック図である。
【図３Ａ】実施例１の現場データの一例を示す図である。
【図３Ｂ】実施例１の現場データの一例を示す図である。
【図３Ｃ】実施例１の現場データの一例を示す図である。
【図４】実施例１の業務データの一例を示す図である。
【図５】実施例１の属性管理情報の一例を示す図である。
【図６】実施例１の属性グループ管理情報の一例を示す図である。
【図７】実施例１の関連性管理情報の一例を示す図である。
【図８】実施例１のデータ管理モジュールがシステム情報の登録要求を受け付けた場合に実行する処理の一例を説明するフローチャートである。
【図９】実施例１の関連性解析モジュールが実行する属性管理情報の更新処理の一例を説明するフローチャートである。
【図１０】実施例１の関連性解析モジュールが実行する属性グループ管理情報の更新処理の一例を説明するフローチャートである。
【図１１】実施例１の関連性解析モジュールが実行する関連性管理情報の更新処理の一例を説明するフローチャートである。
【図１２】実施例１のデータ管理モジュールがクエリを受け付けた場合に実行する処理の一例を説明するフローチャートである。
【図１３】実施例１の変換モジュールが実行するクエリ展開処理の一例を説明するフローチャートである。
【図１４】実施例１のデータ管理モジュールがクエリを実行することによって出力される出力データの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、実施形態を説明する。なお、以後の説明では、「ＡＡＡテーブル」等の表現にて情報を説明することがあるが、これら情報はテーブル等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「ＡＡＡテーブル」等について「ＡＡＡ情報」と呼ぶことがある。各情報の内容を説明する際に、「番号」、「名称」という表現の識別情報が採用されるが、他種の識別情報が使用されて良い。以後の説明における「ＡＡＡ処理」は、「ＡＡＡプログラム」であってもよい。以後の説明における「処理」を主語とした説明は、プロセッサを主語とした説明としてもよい。処理の一部又は全ては、専用ハードウェアによって実現されてもよい。各種プログラムは、プログラム配布サーバや、計算機が読み取り可能な記憶媒体によって各計算機にインストールされてもよい。
【実施例１】
【００１２】
図１は、実施例１の計算機システム１０の構成例である。【００１３】
計算機システム１０は、現場システム１１０、業務システム１２０、分析システム１３０、及びデータ管理ノード１００から構成される。現場システム１１０、業務システム１２０、分析システム１３０、及びデータ管理ノード１００は、ネットワークスイッチ１４０を介して互いに接続される。【００１４】
なお、本発明は、装置間を接続するネットワークの種別に限定されず、また、装置間の接続形式に限定されない。また、現場システム１１０、業務システム１２０、分析システム１３０、及びデータ管理ノード１００は、二つ以上存在してもよい。【００１５】
本実施例では、データ管理ノード１００の記憶領域を用いてＤａｔａ  Ｌａｋｅが実現される。複数のデータ管理ノード１００を用いてＤａｔａ  Ｌａｋｅを実現する場合、複数のデータ管理ノード１００は分散クラスタ構成を取り、データが分散して配置される。ここで、Ｄａｔａ  Ｌａｋｅは、データの種別及びデータの大きさ等に依存することなく、多種多様なデータを格納するリポジトリを示す。【００１６】
データ管理ノード１００は、制御プログラム群１０１及び管理情報群１０２を含む。制御プログラム群１０１及び管理情報群１０２の詳細については、図２を用いて説明する。【００１７】
現場システム１１０は、任意の目的を達成するために運用されるシステムであり、一つ以上の計算機を含む。計算機は、データ通信モジュール１１１を実現するプログラムを実行し、また、現場データ１１２を保持する。なお、現場システム１１０に含まれる計算機は、当該システムが扱うデータのデータ構造を管理する構造情報等を保持してもよい。【００１８】
データ通信モジュール１１１は現場データ１１２を送信する。現場データ１１２は、現場システム１１０の運用状態を示すデータ等である。現場データ１１２は、例えば、複数の属性（フィールド）の列から構成されるレコードを複数含むテーブル形式のデータが考えられる。なお、本発明は現場データ１１２のデータ構造に限定されない。例えば、ＣＳＶ形式、リスト形式、及びセンサ情報のようなメッセージ形式のデータ構造でもよい。現場データ１１２の詳細は、図３Ａ、図３Ｂ、及び図３Ｃを用いて説明する。【００１９】
業務システム１２０は、現場システム１１０のデータ等を用いた業務処理を実行するシステムであり、一つ以上の計算機を含む。計算機は、データ通信モジュール１２１を実現するプログラムを実行し、また、業務データ１２２を保持する。なお、業務システム１２０に含まれる計算機は、当該システムが扱うデータのデータ構造を管理する構造情報等を保持してもよい。【００２０】
データ通信モジュール１２１は業務データ１２２を送信する。なお、データ通信モジュール１２１は、業務処理の結果であるログデータを送信してもよい。業務データ１２２は、業務処理に用いるデータ等である。業務データ１２２は、現場データ１１２と同様に、テーブル形式、ＣＳＶ形式、リスト形式、及びメッセージ形式のデータ構造が考えられる。業務データ１２２の詳細は、図４を用いて説明する。【００２１】
分析システム１３０は、現場データ１１２及び業務データ１２２を用いて所定の分析処理を実行するシステムであり、一つ以上の計算機を含む。計算機は、データ通信モジュール１３１を実現するプログラムを実行し、また、分析データ１３２を保持する。【００２２】
データ通信モジュール１３１は、分析処理の結果を含む分析データ等を送信する。分析データ１３２は、分析処理に用いるデータである。分析データ１３２は、現場データ１１２と同様に、テーブル形式、ＣＳＶ形式、リスト形式、及びメッセージ形式のデータ構造が考えられる。【００２３】
本実施例のＤａｔａ  Ｌａｋｅには、現場データ１１２、業務データ１２２、及び分析データ１３２が格納されるものとする。【００２４】
以下の説明では、Ｄａｔａ  Ｌａｋｅに格納される各システムの情報を区別しない場合、システム情報とも記載する。本実施例では、現場データ１１２、業務データ１２２、及び分析データ１３２がシステム情報に該当する。以下の説明では、Ｄａｔａ  Ｌａｋｅに格納される情報の管理単位のデータをデータブロックとも記載する。例えば、ＲＤＢに対応する現場データ１１２の場合、一つのレコードが一つのデータブロックに対応する。以下の説明では、「属性」は、一つのデータブロックを構成するカラム（フィールド）の識別情報を表すものとする。また、以下の説明では、「属性値」は、「属性」の具体的な値を表すものとする。【００２５】
ここで、データ管理ノード１００のハードウェア構成及びソフトウェア構成について説明する。図２は、実施例１のデータ管理ノード１００のハードウェア構成及びソフトウェア構成を説明するブロック図である。【００２６】
データ管理ノード１００は、ハードウェア構成として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、メモリ２０２、ネットワークインタフェース２０３、及び記憶装置２０４を有する。ＣＰＵ２０１、メモリ２０２、ネットワークインタフェース２０３、及び記憶装置２０４は、内部バス等によって互いに接続される。【００２７】
ＣＰＵ２０１は、データ管理ノード１００の各種処理を実行する演算装置であり、メモリ２０２に格納されるプログラムを実行する。ＣＰＵ２０１は、メモリ２０２に格納されるプログラムにしたがって処理を実行することによって、特定の機能を実現するモジュールとして動作する。以下の説明では、モジュールを主語に処理を説明する場合、ＣＰＵ２０１が当該モジュールを実現するプログラムを実行していることを示す。【００２８】
メモリ２０２は、データ管理ノード１００の主記憶装置であり、ＣＰＵ２０１が実行するプログラム及び各種データを格納する。本実施例では、メモリ２０２は、制御プログラム群１０１及び管理情報群１０２を格納する。メモリ２０２は、ＣＰＵ２０１が処理に使用するワークエリアを含む。【００２９】
ネットワークインタフェース２０３は、ネットワークを介して他の装置と接続するインタフェースである。本実施例では、データ管理ノード１００は、ネットワークインタフェース２０３を介して、ネットワークスイッチ１４０と接続する。【００３０】
記憶装置２０４は、データ管理ノード１００の副記憶装置であり、大容量データを格納する。記憶装置２０４は、例えばＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）ディスク、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ディスク、ＳＡＴＡディスク、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）ディスク、又はＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）ディスク等である。【００３１】
ここで、メモリ２０２に格納される制御プログラム群１０１及び管理情報群１０２について説明する。【００３２】
管理情報群１０２は、属性管理情報２２１、属性グループ管理情報２２２、関連性管理情報２２３、及びデータストア２２４を含む。【００３３】
属性管理情報２２１は、システム情報に含まれるデータブロックを構成する属性を管理する情報である。例えば、複数の属性に対応するカラム群から構成されるレコードを含むテーブルがデータストア２２４に格納される場合、属性管理情報２２１には、各カラムに関する情報が格納される。属性管理情報２２１の詳細は、図５を用いて説明する。【００３４】
属性グループ管理情報２２２は、二つのシステム情報を結合等する場合に用いられる属性の組合せを管理する情報である。属性グループ管理情報２２２の詳細は、図６を用いて説明する。【００３５】
関連性管理情報２２３は、システム情報間の関連性を管理する情報である。関連性管理情報２２３の詳細は、図７を用いて説明する。【００３６】
データストア２２４は、Ｄａｔａ  Ｌａｋｅを実現するストレージであり、現場システム１１０、業務システム１２０、及び分析システム１３０が扱う各種データを格納する。具体的には、データストア２２４は、現場データ１１２、業務データ１２２、及び分析データ１３２等を含むシステム情報群２２５を格納する。データストア２２４には、システム情報のデータ構造に依存しないデータ形式のデータが格納される。例えば、キーバリューストアをデータストア２２４として採用することが考えられる。【００３７】
本実施例のデータストア２２４は、データ管理ノード１００のメモリ２０２の記憶領域を用いて構成される。なお、データ管理ノード１００の記憶装置２０４の記憶領域を用いてデータストア２２４が構成されてもよい。データ管理ノード１００が複数存在する場合、各データ管理ノード１００のメモリ２０２又は記憶装置２０４の記憶領域を用いてデータストア２２４を実現する。【００３８】
制御プログラム群１０１は、データ管理モジュール２１１、関連性解析モジュール２１２、及び変換モジュール２１３を実現するプログラムを含む。なお、説明のわかりやすさのために複数のモジュールとして図示しているが、複数のモジュールを一つのモジュールにまとめてもよい。また、機能毎に任意の数のモジュールに分割してもよい。【００３９】
データ管理ノード１００が複数存在する場合、全てのデータ管理ノード１００に同一のプログラムが格納されていなくてもよい。例えば、一つのデータ管理ノード１００がデータ管理モジュール２１１を実現するプログラムを格納してもよい。関連性解析モジュール２１２及び変換モジュール２１３についても同様である。【００４０】
データ管理モジュール２１１は、データストア２２４を管理する。また、データ管理モジュール２１１は、データストア２２４に対するデータの書込処理及び読出処理等を制御する。【００４１】
データ管理モジュール２１１は、現場システム１１０から現場データ１１２を含む登録要求、業務システム１２０から業務データ１２２を含む登録要求、分析システム１３０から分析データ１３２を含む登録要求を受け付けた場合、所定のデータ形式に変換し、データストア２２４に格納する。また、データ管理モジュール２１１は、関連性解析モジュール２１２を呼び出す。【００４２】
データ管理モジュール２１１は、業務システム１２０から検索要求を受け付けた場合、変換モジュール２１３を呼び出す。【００４３】
関連性解析モジュール２１２は、システム情報間の関連性を解析する。関連性解析モジュール２１２は、解析結果に基づいて、属性管理情報２２１、属性グループ管理情報２２２、及び関連性管理情報２２３を生成し、又は、更新する。【００４４】
変換モジュール２１３は、関連性管理情報２２３等に基づいて、データストア２２４に対するクエリを変換する。【００４５】
次に計算機システム１０に含まれる情報について説明する。【００４６】
図３Ａ、図３Ｂ、及び図３Ｃは、実施例１の現場データ１１２の一例を示す図である。【００４７】
図３Ａは、現場データ１１２の一つであるセンサ情報３００である。センサ情報３００は、装置ＩＤ３０１、センサＩＤ３０２、センサ種別ＩＤ３０３、時刻３０４、及び値３０５から構成されるレコードを含む。【００４８】
センサ情報３００の一番目のレコードは、装置ＩＤ３０１が「ＥＱ００１」である装置が、センサＩＤ３０２が「Ｔ００１」かつセンサ種別ＩＤ３０３が「１」であるセンサを有し、当該センサが「２０１６／０６／１５：２４：２３」に計測した値が「４２」であることを示す。【００４９】
図３Ｂは、現場データ１１２の一つである辞書情報３１０の一例を示す図である。辞書情報３１０は、センサ種別ＩＤ３１１及びセンサ種別３１２から構成されるレコードを含む。【００５０】
辞書情報３１０の一番目のレコードは、センサ種別ＩＤ３１１が「１」であるセンサは「温度」を計測する温度センサであることを示す。【００５１】
図３Ｃは、現場データ１１２の一つである設定情報３２０の一例を示す図である。設定情報３２０は、センサ種別３２１、設定情報３２２、及び設定値３２３から構成されるレコードを含む。【００５２】
設定情報３２０の一番目のレコードは、温度センサに設定されている閾値の値が「４０」であることを示す。【００５３】
図４は、実施例１の業務データ１２２の一例を示す図である。【００５４】
装置情報４００は、業務データ１２２に含まれる。装置情報４００は、拠点４０１、装置ＩＤ４０２、及びセンサＩＤ４０３から構成されるレコードを含む。【００５５】
装置情報４００の一番目のレコードは、「東京」の拠点には、装置ＩＤが「ＥＱ００１」である装置が設置され、当該装置はセンサＩＤが「Ｔ００１」であるセンサを搭載していることを示す。【００５６】
図５は、実施例１の属性管理情報２２１の一例を示す図である。【００５７】
属性管理情報２２１は、ＩＤ５０１、データソース名５０２、属性名５０３、主キー５０４、及び複合キー５０５から構成されるレコードを含む。一つのレコードが、システム情報に含まれる一つのデータブロックを構成する一つの属性に対応する。【００５８】
ＩＤ５０１は、属性管理情報２２１に含まれるレコードを一意に識別するための識別情報である。データソース名５０２は、システム情報の識別情報である。属性名５０３は、システム情報に含まれるデータブロックを構成する属性の識別情報である。【００５９】
主キー５０４は、システム情報に含まれるデータブロックを一意に識別する主キーとなる属性であるか否かを示す値である。主キーとなる属性の主キー５０４には、所定の記号が格納される。なお、主キーとなる属性は一つでなくてもよい。【００６０】
複合キー５０５は、主キーとなる属性群、すなわち、複合キーを構成する属性の識別情報である。複合キー５０５には、レコードに対応する属性を含む属性群のうち、レコードに対応する属性以外の属性の識別情報が格納される。例えば、「Ｃ１」と「Ｃ２」、「Ｃ１」と「Ｃ３」、「Ｃ１」と「Ｃ４」、及び「Ｃ１」と「Ｃ５」のそれぞれが複合キーである場合、ＩＤ５０１が「Ｃ１」のレコードの複合キー５０５には、「Ｃ２」、「Ｃ３」、「Ｃ４」、及び「Ｃ５」が格納され、ＩＤ５０１が「Ｃ２」、「Ｃ３」、「Ｃ４」、及び「Ｃ５」のレコードには、「Ｃ１」が格納される。【００６１】
以下の説明では、主キー及び複合キーを区別しない場合、検索キーとも記載する。【００６２】
図６は、実施例１の属性グループ管理情報２２２の一例を示す図である。【００６３】
属性グループ管理情報２２２は、属性グループＩＤ６０１及びメンバ６０２から構成されるレコードを含む。【００６４】
属性グループＩＤ６０１は、属性グループ管理情報２２２に含まれるレコードを一意に識別するための識別情報である。【００６５】
メンバ６０２は、二つのシステム情報を結合する場合に用いられる属性の組合せの情報である。本実施例では、属性管理情報２２１のＩＤ５０１の組合せがメンバ６０２に格納される。【００６６】
図６に示す属性グループ管理情報２２２の一番目のレコードは、「Ｃ３」の値と「Ｃ６」の値が同一であるデータブロックを結合させることを示す。また、三番目のレコードは、「（Ｃ１，Ｃ２）」の値と「（Ｃ１２，１３）」の値とが同一であるデータブロックを結合させることを示す。【００６７】
図７は、実施例１の関連性管理情報２２３の一例を示す図である。【００６８】
関連性管理情報２２３は、第１データソース名７０１、第２データソース名７０２、及びアクセスパス７０３から構成されるレコードを含む。【００６９】
第１データソース名７０１及び第２データソース名７０２は、関連性があるシステム情報の識別情報である。第１データソース名７０１は、第２データソース名７０２に対応するシステム情報に含まれる外部キーに基づいてアクセスできるシステム情報の識別情報である。第２データソース名７０２は、第１データソース名７０１に対応するシステム情報に含まれる外部キーに基づいてアクセスできるシステム情報の識別情報である。第１データソース名７０１及び第２データソース名７０２には、データソース名５０２に設定された値と同一の値が設定される。【００７０】
アクセスパス７０３は、二つのシステム情報を関連付ける属性の対応関係によって定義されるパスの情報である。本実施例では、属性一致パス、属性群一致パス、及び踏み台一致パスの三種類のパスが存在する。【００７１】
属性一致パスは、一つのシステム情報に含まれる一つの属性と、他方のシステム情報に含まれる一つ属性との対応関係によって定義されるパスである。属性一致パスの場合、アクセスパス７０３には、一つのシステム情報に含まれる一つの属性と、他方のシステム情報に含まれる一つの属性との対応関係を示す情報が格納される。参照元となるシステム情報に含まれる属性が外部キーとして用いられる。【００７２】
図７の一番目及び二番目のレコードは、属性一致パスに対応するレコードである。例えば、一番目のレコードは、Ｃ３の値を外部キーとして用いて、Ｃ６の値が外部キーに一致するデータブロックを検索できることを示す。【００７３】
属性群一致パスは、一つのシステム情報に含まれる複数の属性と、他方のシステム情報に含まれる複数の属性との対応関係によって定義されるパスである。属性群一致パスの場合、アクセスパス７０３には、一つのシステム情報に含まれる属性群と、他方のシステム情報に含まれる属性群との対応関係を示す情報が格納される。【００７４】
図７の三番目のレコードは、属性群一致パスに対応するレコードである。三番目のレコードは、Ｃ１及びＣ２の値の組合せを外部キーとして用いて、Ｃ１２及びＣ１３の値の組合せが外部キーに一致するデータブロックを検索できることを示す。【００７５】
踏み台一致パスは、一つのシステム情報に含まれる属性と中継用のシステム情報に含まれる属性との対応関係、及び中継用のシステム情報に含まれる属性と他方のシステム情報に含まれる属性との対応関係によって定義されるパスである。踏み台一致パスの場合、二つ以上のパスが接続されたパスとなる。本実施例では、異なるパスの接続をセミコロンを用いて表す。セミコロンを用いて接続するパスは、属性一致パス又は属性群一致パスのどちらでもよい。なお、セミコロンを介して接続する属性は、同一のシステム情報に含まれる属性である。【００７６】
図７の四番目のレコードは、踏み台一致パスに対応するレコードである。四番目のレコードは、Ｃ３の値を第１の外部キーとして用いて、Ｃ６の値が第１の外部キーに一致する第１のデータブロックを検索し、第１のデータブロックのＣ７の値を第２の外部キーとして用いて、Ｃ８の値が第２の外部キーに一致する第２のデータブロックを検索できることを示す。なお、セミコロンを介して接続する属性Ｃ６、Ｃ７は、同一のシステム情報（辞書情報３１０）に含まれる属性である。【００７７】
図８は、実施例１のデータ管理モジュール２１１がシステム情報の登録要求を受け付けた場合に実行する処理の一例を説明するフローチャートである。【００７８】
データ管理モジュール２１１は、任意のシステムからシステム情報の登録要求を受け付ける（ステップＳ８０１）。以下の説明では、登録要求に基づいて登録するシステム情報をターゲットシステム情報とも記載する。【００７９】
データ管理モジュール２１１は、データストア２２４に登録要求に含まれるターゲットシステム情報を格納する（ステップＳ８０２）。なお、登録要求にはデータブロックが含まれてよい。データストア２２４へのデータの登録方法は公知の技術であるため詳細な説明を省略する。【００８０】
データ管理モジュール２１１は、ターゲットシステム情報に関するレコードが関連性管理情報２２３に登録されているか否かを判定する（ステップＳ８０３）。【００８１】
具体的には、データ管理モジュール２１１は、第１データソース名７０１及び第２データソース名７０２の少なくともいずれかにターゲットシステム情報の識別情報が設定されたレコードが存在するか否かを判定する。前述のレコードが存在しない場合、データ管理モジュール２１１は、ターゲットシステム情報に関するレコードが関連性管理情報２２３に登録されていないと判定する。【００８２】
ターゲットシステム情報に関するレコードが関連性管理情報２２３に登録されていると判定された場合、データ管理モジュール２１１は、処理を終了する。【００８３】
ターゲットシステム情報に関するレコードが関連性管理情報２２３に登録されていないと判定された場合、データ管理モジュール２１１は、関連性解析モジュール２１２に属性管理情報２２１の更新を指示する（ステップＳ８０４）。属性管理情報２２１の更新処理の詳細は、図９を用いて説明する。【００８４】
データ管理モジュール２１１は、関連性解析モジュール２１２から処理の完了を示す応答を受け付けた場合、関連性解析モジュール２１２に属性グループ管理情報２２２の更新を指示する（ステップＳ８０５）。属性グループ管理情報２２２の更新処理の詳細は、図１０を用いて説明する。【００８５】
データ管理モジュール２１１は、関連性解析モジュール２１２から処理の完了を示す応答を受け付けた場合、関連性解析モジュール２１２に関連性管理情報２２３の更新を指示する（ステップＳ８０６）。関連性管理情報２２３の詳細は、図１１を用いて説明する。【００８６】
データ管理モジュール２１１は、関連性解析モジュール２１２から処理の完了を示す応答を受け付けた場合、処理を終了する。【００８７】
なお、データストア２２４に一つもシステム情報が登録されていない場合、データ管理モジュール２１１は、ステップＳ８０４では初期化された属性管理情報２２１を生成し、ステップＳ８０５では初期化された属性グループ管理情報２２２を生成し、また、ステップＳ８０６では初期化された関連性管理情報２２３を生成する。【００８８】
図９は、実施例１の関連性解析モジュール２１２が実行する属性管理情報２２１の更新処理の一例を説明するフローチャートである。【００８９】
関連性解析モジュール２１２は、ターゲットシステム情報に含まれる属性を特定する（ステップＳ９０１）。【００９０】
具体的には、関連性解析モジュール２１２は、ターゲットシステム情報のデータ本体部分のデータ構造を解析し、ターゲットシステム情報のデータ本体部分に含まれる属性を特定する。また、関連性解析モジュール２１２は、ターゲットシステム情報のメタデータを解析し、ターゲットシステム情報のメタデータからターゲットシステム情報の識別情報を取得する。このとき、関連性解析モジュール２１２は、メタデータの属性も特定してもよい。【００９１】
例えば、ターゲットシステム情報のスキーマ定義情報に基づいて、ターゲットシステム情報のデータ構造を解析する方法が考えられる。なお、本実施例は、ターゲットシステム情報のデータ構造の解析方法に依存しない。【００９２】
次に、関連性解析モジュール２１２は、特定された属性を属性管理情報２２１に追加する（ステップＳ９０２）。【００９３】
具体的には、関連性解析モジュール２１２は、属性管理情報２２１に特定された属性の数だけレコードを追加し、追加されたレコードのＩＤ５０１にレコードの識別情報を設定する。関連性解析モジュール２１２は、追加されたレコードのデータソース名５０２にターゲットシステム情報の識別情報を設定する。関連性解析モジュール２１２は、追加された各レコードの属性名５０３に特定された属性の識別情報を設定する。【００９４】
次に、関連性解析モジュール２１２は、ターゲットシステム情報に主キーが存在するか否かを判定する（ステップＳ９０３）。【００９５】
具体的には、関連性解析モジュール２１２は、ターゲットシステム情報に含まれる各属性の属性値を参照し、データブロックを一意に識別可能な属性を特定する。例えば、関連性解析モジュール２１２は、重複する属性値が存在しない属性を主キーとして特定する。【００９６】
例えば、設定情報３２０がターゲットシステム情報である場合、センサ種別３２１及び設定値３２３のそれぞれの属性値には重複が発生しないため、センサ種別３２１及び設定値３２３のそれぞれが主キーとして特定される。【００９７】
ターゲットシステム情報に主キーが存在すると判定された場合、関連性解析モジュール２１２は、主キーとなる属性のレコードの主キー５０４に、主キーであることを示す値を設定する（ステップＳ９０４）。その後、関連性解析モジュール２１２は、処理の完了を示す応答をデータ管理モジュール２１１に出力し、処理を終了する。【００９８】
ターゲットシステム情報に主キーが存在しないと判定された場合、関連性解析モジュール２１２は、複合キーを特定する（ステップＳ９０５）。【００９９】
具体的には、関連性解析モジュール２１２は、属性の組合せを生成し、データブロックを一意に識別可能な属性の組み合わせを特定する。例えば、関連性解析モジュール２１２は、重複する属性値の組合せが存在しない属性の組合せを複合キーとして特定する。【０１００】
例えば、センサ情報３００がターゲットシステム情報である場合、装置ＩＤ３０１と他の属性との組合せによって、レコードを一意に識別できるため、装置ＩＤ３０１及び他の属性との組合せが複合キーとして特定される。なお、本実施例では、属性の組合せに含まれる属性の数が最小となる複合キーを特定するものとする。したがって、装置ＩＤ３０１及びセンサＩＤ３０２、装置ＩＤ３０１及びセンサ種別ＩＤ３０３、装置ＩＤ３０１及び時刻３０４、並びに、装置ＩＤ３０１及び値３０５がそれぞれ複合キーとして特定される。【０１０１】
次に、関連性解析モジュール２１２は、複合キーを構成する属性のレコードの複合キー５０５に値を設定する（ステップＳ９０６）。その後、関連性解析モジュール２１２は、処理の完了を示す応答をデータ管理モジュール２１１に出力し、処理を終了する。【０１０２】
具体的には、関連性解析モジュール２１２は、複合キーを構成する属性のレコードの複合キー５０５に当該レコードに対応する属性以外の属性の識別情報を設定する。以上の処理によって、図５に示すような属性管理情報２２１が生成される。【０１０３】
なお、システム情報の登録要求に主キー又は複合キーとなる属性を示す情報が含まれてもよい。この場合、関連性解析モジュール２１２は、当該情報に基づいて属性管理情報２２１を更新する。【０１０４】
図１０は、実施例１の関連性解析モジュール２１２が実行する属性グループ管理情報２２２の更新処理の一例を説明するフローチャートである。【０１０５】
関連性解析モジュール２１２は、データストア２２４に登録されたシステム情報の中から、ターゲットシステム情報と比較するシステム情報を一つ選択する（ステップＳ１００１）。以下の説明では、ターゲットシステム情報と比較するシステム情報をサブターゲットシステム情報とも記載する。【０１０６】
例えば、関連性解析モジュール２１２は、属性管理情報２２１のデータソース名５０２に基づいて、サブターゲットシステム情報を選択する。【０１０７】
次に、関連性解析モジュール２１２は、ターゲットシステム情報及びサブターゲットシステム情報のそれぞれの検索キーを比較する（ステップＳ１００２）。具体的には、以下のような処理が実行される。【０１０８】
関連性解析モジュール２１２は、ターゲットシステム情報及びサブターゲットシステム情報のそれぞれの検索キーが同一種類の検索キーであるか否かを判定する。すなわち、ターゲットシステム情報の検索キーが主キーである場合、関連性解析モジュール２１２は、サブターゲットシステム情報の検索キーが主キーであるか否かを判定する。【０１０９】
ターゲットシステム情報及びサブターゲットシステム情報のそれぞれの検索キーが同一種類の検索キーでないと判定された場合、各システム情報の検索キーが一致しないと判定する。この場合、関連性解析モジュール２１２は、ステップＳ１００３からステップＳ１００５の処理を実行することなく、ステップＳ１００６に進む。【０１１０】
ターゲットシステム情報及びサブターゲットシステム情報のそれぞれの検索キーが同一種類の検索キーであると判定された場合、関連性解析モジュール２１２は、各システム情報の検索キーに対応する属性の名称又は属性値を比較する。【０１１１】
次に、関連性解析モジュール２１２は、比較結果に基づいて、各システム情報の検索キーが同一であるか否かを判定する（ステップＳ１００３）。【０１１２】
例えば、属性の名称を比較する方法又は属性値の種別を比較する方法等が考えられる。属性値の名称が一致する場合、又は、属性値の種別が一致する場合、関連性解析モジュール２１２は、各システム情報の検索キーが同一であると判定する。【０１１３】
各システム情報の検索キーが同一でないと判定された場合、関連性解析モジュール２１２は、類語辞書等を用いて、属性の名称又は属性値の類似判定を行い、各システム情報の検索キーが類似する検索キーであるか否かを判定する（ステップＳ１００４）。なお、類似辞書等は、データ管理ノード１００が予め保持してもよいし、外部から入力されてもよい。【０１１４】
各システム情報の検索キーが類似しないと判定された場合、関連性解析モジュール２１２は、ステップＳ１００６に進む。【０１１５】
各システム情報の検索キーが同一であると判定された場合、又は、各システム情報の検索キーが類似すると判定された場合、関連性解析モジュール２１２は、属性グループ管理情報２２２にレコードを追加する（ステップＳ１００５）。その後、関連性解析モジュール２１２は、ステップＳ１００６に進む。【０１１６】
具体的には、関連性解析モジュール２１２は、属性グループ管理情報２２２にレコードを追加し、追加されたレコードの属性グループＩＤ６０１に識別情報を設定する。関連性解析モジュール２１２は、追加されたレコードのメンバ６０２に、各システム情報の検索キーを設定する。すなわち、同一視できる属性の組合せがメンバ６０２に設定される。検索キーが主キーである場合、各システム情報の主キーを対応付けた値がメンバ６０２に設定される。検索キーが複合キーである場合、各システム情報の複合キーを対応付けた値がメンバ６０２に設定される。【０１１７】
ステップＳ１００６では、関連性解析モジュール２１２は、データストア２２４に登録された全てのシステム情報について処理が完了したか否かを判定する（ステップＳ１００６）。【０１１８】
データストア２２４に登録された全てのシステム情報について処理が完了していないと判定された場合、関連性解析モジュール２１２は、ステップＳ１００１に戻り、同様の処理を実行する。【０１１９】
データストア２２４に登録された全てのシステム情報について処理が完了したと判定された場合、関連性解析モジュール２１２は、処理の完了を示す応答をデータ管理モジュール２１１に出力し、処理を終了する。【０１２０】
図１１は、実施例１の関連性解析モジュール２１２が実行する関連性管理情報２２３の更新処理の一例を説明するフローチャートである。【０１２１】
関連性解析モジュール２１２は、データストア２２４に登録されたシステム情報の中から、サブターゲットシステム情報を一つ選択する（ステップＳ１１０１）。ステップＳ１１０１の処理は、ステップＳ１００１の処理と同一である。【０１２２】
次に、関連性解析モジュール２１２は、属性管理情報２２１及び属性グループ管理情報２２２を参照して、ターゲットシステム情報及びサブターゲットシステム情報に関連するレコードを検索する（ステップＳ１１０２）。【０１２３】
具体的には、関連性解析モジュール２１２は、属性管理情報２２１のＩＤ５０１から、各システム情報に含まれる属性に割り当てられた識別情報を取得する。関連性解析モジュール２１２は、属性グループ管理情報２２２のメンバ６０２を参照して、ターゲットシステム情報に含まれる属性の識別情報、及び、サブターゲットシステム情報に含まれる属性の識別情報が設定されたレコードを検索する。【０１２４】
次に、関連性解析モジュール２１２は、検索結果に基づいて、ターゲットシステム情報及びサブターゲットシステム情報に関連するレコードが属性グループ管理情報２２２に存在するか否かを判定する（ステップＳ１１０３）。【０１２５】
ターゲットシステム情報及びサブターゲットシステム情報に関連するレコードが属性グループ管理情報２２２に存在しないと判定された場合、関連性解析モジュール２１２は、ステップＳ１１０５に進む。【０１２６】
ターゲットシステム情報及びサブターゲットシステム情報に関連するレコードが属性グループ管理情報２２２に存在すると判定された場合、関連性解析モジュール２１２は、関連性管理情報２２３にレコードを追加する（ステップＳ１１０４）。具体的には、以下のような処理が実行される。【０１２７】
関連性解析モジュール２１２は、関連性管理情報２２３にレコードを追加し、追加されたレコードの第１データソース名７０１にターゲットシステム情報の識別情報を設定し、また、追加されたレコードの第２データソース名７０２にサブターゲットシステム情報の識別情報を設定する。さらに、関連性解析モジュール２１２は、属性グループ管理情報２２２から検索されたレコードのメンバ６０２に設定された値に基づいて、追加されたレコードのアクセスパス７０３に値を設定する。【０１２８】
ここで、ステップＳ１１０４の処理の具体例を説明する。ここでは、ターゲットシステム情報がセンサ情報３００であり、また、サブターゲットシステム情報が辞書情報３１０であるものとする。【０１２９】
センサ情報３００に含まれる属性の識別情報は、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５であり、また、辞書情報３１０に含まれる属性の識別情報は、Ｃ６、Ｃ７である。この場合、属性グループ管理情報２２２には、Ｃ３及びＣ６が設定されたレコードが含まれる。したがって、関連性解析モジュール２１２は、第１データソース名７０１に「センサ情報」、第２データソース名７０２に「辞書情報」、並びに、アクセスパス７０３にＣ３及びＣ６を関連付けたパスを設定したレコードを関連性管理情報２２３に追加する。【０１３０】
データ管理ノード１００は、前述の処理によって追加されたレコードに基づいて、センサ情報３００のＣ３に対応する属性と、辞書情報３１０のＣ６に対応する属性との値が一致するレコードを結合することによって二つのシステム情報を結合できる。以上がステップＳ１１０４の処理の説明である。【０１３１】
ステップＳ１１０３の判定結果がＮＯの場合、又は、ステップＳ１１０４の処理が完了した後、関連性解析モジュール２１２は、データストア２２４に登録された全てのシステム情報について処理が完了したか否かを判定する（ステップＳ１１０５）。【０１３２】
データストア２２４に登録された全てのシステム情報について処理が完了していないと判定された場合、関連性解析モジュール２１２は、ステップＳ１１０１に戻り、同様の処理を実行する。【０１３３】
データストア２２４に登録された全てのシステム情報について処理が完了したと判定された場合、関連性解析モジュール２１２は、踏み台一致パスに対応するレコードの追加処理を開始する。【０１３４】
まず、関連性解析モジュール２１２は、関連性管理情報２２３に新たに追加されたレコードの中からターゲットレコードを一つ選択する（ステップＳ１１０６）。例えば、上のレコードから順に選択する方法が考えられる。【０１３５】
関連性解析モジュール２１２は、ターゲットレコードに設定されるシステム情報のいずれか一方を経由してアクセス可能なシステム情報を特定する（ステップＳ１１０７）。具体的には、以下のような処理が実行される。【０１３６】
関連性解析モジュール２１２は、ターゲットレコードの第１データソース名７０１及び第２データソース名７０２に設定されたシステム情報の識別情報を取得し、一つのシステム情報を起点システム情報に設定し、もう一方のシステム情報を中継システム情報に設定する。【０１３７】
関連性解析モジュール２１２は、第１データソース名７０１及び第２データソース名７０２のいずれかに中継システム情報の識別情報が格納されるレコードを検索する。関連性解析モジュール２１２は、起点システム情報及び中継システム情報を入れ替えて同様の処理を実行する。ただし、ターゲットレコードのアクセスパス７０３に設定されるパスの種類と同一種類のパスが設定されたレコードのみが検索対象となる。検索されたレコードの中継システム情報とは異なるシステム情報が踏み台システム情報となる。【０１３８】
前述の処理によって踏み台一致パスを特定することができる。すなわち、中継システム情報を介して、起点システム情報及び踏み台システム情報を関連付けたパスが踏み台一致パスとなる。なお、該当するレコードが存在しない場合、関連性解析モジュール２１２は、ステップＳ１１０８を実行せずに、ステップＳ１１０９に進む。以上がステップＳ１１０７の処理の説明である。【０１３９】
関連性解析モジュール２１２は、ステップＳ１１０７の処理結果に基づいて、関連性管理情報２２３に踏み台一致パスのレコードを追加する（ステップＳ１１０８）。【０１４０】
具体的には、関連性解析モジュール２１２は、特定された踏み台一致パスの数だけエントリを追加する。関連性解析モジュール２１２は、追加された各エントリの第１データソース名７０１及び第２データソース名７０２に、起点システム情報及び踏み台システム情報の識別情報を設定する。また、関連性解析モジュール２１２は、追加された各エントリのアクセスパス７０３に踏み台一致パスを設定する。【０１４１】
なお、踏み台一致パスは、ターゲットレコードのアクセスパス７０３に含まれる中継システム情報の属性と、検索されたレコードのアクセスパス７０３に含まれる中継システム情報の属性とをセミコロンで接続することによって生成できる。【０１４２】
次に、関連性解析モジュール２１２は、関連性管理情報２２３に新たに追加された全てのレコードについて処理が完了したか否かを判定する（ステップＳ１１０９）。【０１４３】
関連性管理情報２２３に新たに追加された全てのレコードについて処理が完了していないと判定された場合、関連性解析モジュール２１２は、ステップＳ１１０６に戻り、同様の処理を実行する。【０１４４】
関連性管理情報２２３に新たに追加された全てのレコードについて処理が完了したと判定された場合、関連性解析モジュール２１２は、処理の完了を示す応答をデータ管理モジュール２１１に出力し、処理を終了する。【０１４５】
ステップＳ１１０７の処理の実行後、関連性解析モジュール２１２は、踏み台システム情報を新たな中継システム情報に設定し、同様の処理を実行してもよい。具体的には、以下のように処理を変更すればよい。【０１４６】
関連性解析モジュール２１２は、第１データソース名７０１及び第２データソース名７０２に起点システム情報及び踏み台システム情報の識別情報が設定され、かつ、アクセスパス７０３に中継システム情報を経由する踏み台一致パスが設定された一時レコードを生成する。また、関連性解析モジュール２１２は、踏み台システム情報を新たな中継システム情報に設定し、ステップＳ１１０７と同一の処理を実行する。【０１４７】
該当するレコードが存在しない場合、関連性解析モジュール２１２は、ステップＳ１１０８に進み、一時レコードをそのまま関連性管理情報２２３に追加する。該当するレコードが存在する場合、関連性解析モジュール２１２は、検索されたレコードの数だけ一時レコードをコピーし、各レコードに検索されたレコードのシステム情報の識別情報を新たな踏み台システム情報の識別情報として登録する。また、関連性解析モジュール２１２は、検索されたレコードのアクセスパス７０３と、一時レコードのアクセスパス７０３とを接続することによって、一時レコードのアクセスパス７０３を更新する。【０１４８】
以後、同様のループ処理が繰り返し実行される。全てのループ処理が完了したあと、関連性解析モジュール２１２は、関連性管理情報２２３に生成された一時レコードを追加する。【０１４９】
前述した処理によって、複数のシステム情報を中継する踏み台一致パスを設定できる。なお、中継するシステム情報の数に上限を設けてもよい。【０１５０】
なお、ターゲットシステム情報と踏み台システム情報との間のパスが複数存在する場合、全てのパスをアクセスパス７０３に設定してもよいし、また、最短となるパスをアクセスパス７０３に設定してもよい。【０１５１】
ここで、具体例を用いてステップＳ１１０６からステップＳ１１０９までの処理を説明する。以下の説明では、センサ情報３００がターゲットシステム情報であり、関連性管理情報２２３には二番目のレコードのみが登録されているものとする。この場合、ステップＳ１１０１からステップＳ１１０５までの処理によって、一番目のレコード及び三番目のレコードが関連性管理情報２２３に登録される。【０１５２】
ステップＳ１１０６において、関連性解析モジュール２１２は、一番目のレコードをターゲットレコードに選択する。【０１５３】
ステップＳ１１０７において、関連性解析モジュール２１２は、センサ情報３００の識別情報及び辞書情報３１０のそれぞれの識別情報をキーとしてレコードを検索する。辞書情報３１０の識別情報をキーとした場合、二番目のレコードが検索される。したがって、関連性解析モジュール２１２は、設定情報３２０を踏み台システム情報として特定する。【０１５４】
なお、ターゲットレコードは属性一致パスに対応するレコードであるため、属性群一致パスに対応する三番目のレコードは検索対象にはならない。【０１５５】
ステップＳ１１０８において、関連性解析モジュール２１２は、一番目のレコードのアクセスパス７０３に含まれる辞書情報３１０の属性Ｃ６と、二番目のレコードのアクセスパス７０３に含まれる辞書情報３１０の属性Ｃ７とをセミコロンで接続することによって踏み台一致パスを生成する。関連性解析モジュール２１２は、レコードを追加し、追加されたレコードの第１データソース名７０１にセンサ情報３００の識別情報を設定し、追加されたレコードの第２データソース名７０２に設定情報３２０の識別情報を設定する。さらに、関連性解析モジュール２１２は、追加されたレコードのアクセスパス７０３に生成された踏み台一致パスを設定する。【０１５６】
ステップＳ１１０９において、関連性解析モジュール２１２は、処理していない踏み台システム情報が存在すると判定し、ステップＳ１１０６に戻る。三番目のレコードをターゲットレコードに設定した場合、条件を満たすレコードは存在しない。以上の処理によって、関連性管理情報２２３は、図７に示すような状態になる。【０１５７】
図１２は、実施例１のデータ管理モジュール２１１がクエリを受け付けた場合に実行する処理の一例を説明するフローチャートである。【０１５８】
データ管理モジュール２１１は、任意のシステムからクエリを受け付ける（ステップＳ１２０１）。【０１５９】
データ管理モジュール２１１は、変換モジュール２１３にクエリ展開処理の実行を指示する（ステップＳ１２０２）。クエリ展開処理の詳細は、図１３を用いて説明する。【０１６０】
データ管理モジュール２１１は、変換モジュール２１３から処理の完了を示す応答を受け付けた場合、変換されたクエリを実行する（ステップＳ１２０３）。クエリの実行方法は、公知の技術であるため説明を省略する。【０１６１】
データ管理モジュール２１１は、クエリの実行結果を出力データとして任意のシステムに送信する（ステップＳ１２０４）。【０１６２】
図１３は、実施例１の変換モジュール２１３が実行するクエリ展開処理の一例を説明するフローチャートである。図１４は、実施例１のデータ管理モジュール２１１がクエリを実行することによって出力される出力データの一例を示す図である。【０１６３】
変換モジュール２１３は、クエリを解析し、参照が必要なシステム情報の組合せを特定する（ステップＳ１３０１）。なお、参照が必要なシステム情報の組合せが存在しない場合、変換モジュール２１３は、データ管理モジュール２１１に処理の完了を示す応答を出力し、処理を終了する。この場合、クエリは変換されない。【０１６４】
変換モジュール２１３は、参照が必要なシステム情報の組合せの中からターゲット組合せを選択する（ステップＳ１３０２）。【０１６５】
変換モジュール２１３は、関連性管理情報２２３を参照し、ターゲット組合せに対応するシステム情報間の参照が可能か否かを判定する（ステップＳ１３０３）。【０１６６】
具体的には、変換モジュール２１３は、第１データソース名７０１及び第２データソース名７０２に設定された識別情報の組合せがターゲット組合せに一致するレコードが存在するか否かを判定する。前述の条件を満たすレコードが存在する場合、変換モジュール２１３は、ターゲット組合せに対応するシステム情報間の参照が可能であると判定する。【０１６７】
ターゲット組合せに対応するシステム情報間の参照が可能でないと判定された場合、変換モジュール２１３は、エラーを示す応答をデータ管理モジュール２１１に出力する（ステップＳ１３０４）。その後、変換モジュール２１３は処理を終了する。このとき、変換されたクエリは破棄される。データ管理モジュール２１１は、エラーを示す応答を受け取った場合、クエリの送信元にエラーメッセージを送信する。【０１６８】
ターゲット組合せに対応するシステム情報間の参照が可能であると判定された場合、変換モジュール２１３は、特定されたパスが踏み台一致パスであるか否かを判定する（ステップＳ１３０５）。【０１６９】
具体的には、変換モジュール２１３は、ステップＳ１３０３において検索されたレコードのアクセスパス７０３を参照して、特定されたパスが踏み台一致パスであるか否かを判定する。例えば、変換モジュール２１３は、アクセスパス７０３の値にセミコロンが含まれるか否かを判定する。【０１７０】
特定されたパスが踏み台一致パスではないと判定された場合、変換モジュール２１３は、受け付けたクエリを、ターゲット組合せに直接参照するための外部キーが設定されたクエリに変換する（ステップＳ１３０６）。その後、変換モジュール２１３は、ステップＳ１３０８に進む。例えば、外部キーに関するＯＮ句又はＷＨＥＲＥ句等が追加されたクエリに変換される。【０１７１】
具体的には、変換モジュール２１３は、特定されたパスに基づいて二つのシステム情報に含まれる属性の識別情報を特定し、特定された属性の識別情報を外部キーとするクエリを生成する。【０１７２】
特定されたパスが踏み台一致パスであると判定された場合、変換モジュール２１３は、受け付けたクエリを、中継システム情報を介してターゲット組合せに参照するための外部キーが設定されたクエリに変換する（ステップＳ１３０７）。その後、変換モジュール２１３は、ステップＳ１３０８に進む。具体的には、以下のような処理が実行される。【０１７３】
変換モジュール２１３は、特定されたパスに基づいて、ターゲット組合せに含まれる属性の識別情報、及び、中継システム情報に含まれる属性の識別情報を特定する。また、変換モジュール２１３は、中継システム情報に含まれる属性の識別情報に基づいて属性管理情報２２１を参照し、中継システム情報の識別情報を特定する。【０１７４】
変換モジュール２１３は、一つのシステム情報と中継システム情報との間の参照を行う第１クエリ、及び他のシステム情報と中継システム情報との間の参照を行う２クエリを結合したクエリを生成する。【０１７５】
なお、第１クエリは、一つのシステム情報及び中継システム情報のそれぞれに含まれる属性の識別情報を外部キーとして含み、第２クエリは、他のシステム情報及び中継システム情報のそれぞれに含まれる属性の識別情報を外部キーとして含む。以上がステップＳ１３０７の処理の説明である。【０１７６】
ステップＳ１３０８では、変換モジュール２１３は、特定された全ての組合せについて処理が完了したか否かを判定する（ステップＳ１３０８）。【０１７７】
特定された全ての組合せについて処理が完了していないと判定された場合、変換モジュール２１３は、ステップＳ１３０２に戻り、同様の処理を実行する。【０１７８】
特定された全ての組合せについて処理が完了したと判定された場合、変換モジュール２１３は、変換されたクエリを含む応答をデータ管理モジュール２１１に出力し（ステップＳ１３０９）、処理を終了する。【０１７９】
ここで、具体例を用いてクエリ展開処理を説明する。以下の説明では、Ｊｏｉｎ（センサ情報、設定情報）を含むクエリを受け付けたものとする。また、関連性管理情報２２３は、図７に示す状態であるものとする。【０１８０】
ステップＳ１３０１において、変換モジュール２１３は、センサ情報３００及び設定情報３２０の組合せを特定する。また、ステップＳ１３０２において、変換モジュール２１３は、センサ情報３００及び設定情報３２０の組合せをターゲット組合せとして選択する。【０１８１】
ステップＳ１３０３において、変換モジュール２１３は、第１データソース名７０１及び第２データソース名７０２に設定された識別情報の組合せがターゲット組合せに一致するレコードを検索する。ここでは、四番目のレコードが検索される。したがって、ステップＳ１３０３の判定結果はＹＥＳとなる。また、四番目のレコードのアクセスパス７０３には、踏み台一致パスが設定されているため、ステップＳ１３０５の判定結果はＹＥＳとなる。【０１８２】
ステップＳ１３０７では、変換モジュール２１３は、踏み台システム情報の属性の識別情報に基づいて属性管理情報２２１を参照することによって、辞書情報３１０が踏み台システム情報であることを特定する。そこで、Ｊｏｉｎ（センサ情報、設定情報）をＪｏｉｎ（Ｊｏｉｎ（センサ情報、辞書情報）、Ｊｏｉｎ（辞書情報、設定情報））に変換する。このとき、Ｊｏｉｎ（センサ情報、辞書情報）にはＣ３が外部キーとして指定され、Ｊｏｉｎ（辞書情報、設定情報）にはＣ７が外部キーとして指定される。【０１８３】
データ管理モジュール２１１は、前述のように変換されたクエリを実行することによって、図１４に示すような出力データを、クエリを送信したシステムに送信する。【０１８４】
前述したように、ユーザが辞書情報３１０を知らずに入力したクエリであっても、自動的にシステム情報間の関連性を補完したクエリに変換される。これによって、Ｄａｔａ  Ｌａｋｅ方式のシステムにおける検索処理が容易になる。【０１８５】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。【０１８６】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。【０１８７】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ等の広範囲のプログラム又はスクリプト言語で実装できる。【０１８８】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。【０１８９】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【図１】
0006668513.tif 000002
【図２】
0006668513.tif 000003
【図３Ａ】
0006668513.tif 000004
【図３Ｂ】
0006668513.tif 000005
【図３Ｃ】
0006668513.tif 000006
【図４】
0006668513.tif 000007
【図５】
0006668513.tif 000008
【図６】
0006668513.tif 000009
【図７】
0006668513.tif 000010
【図８】
0006668513.tif 000011
【図９】
0006668513.tif 000012
【図１０】
0006668513.tif 000013
【図１１】
0006668513.tif 000014
【図１２】
0006668513.tif 000015
【図１３】
0006668513.tif 000016
【図１４】
0006668513.tif 000017