(57)【要約】【課題】  選択されたオブジェクトに関する情報の要求を生成するためのシステムおよび方法を提供する。【解決手段】  第１のクエリが、クライアント・コンピューティング・デバイスにおいて生成される。第１のクエリは、特定のオブジェクトに固有ではない一定の方式に従ったフォーマットで書かれる。第１のクエリが、クエリ変換システムにサブミットされ、クエリ変換システムが、第１のクエリを、オブジェクト階層における第１のオブジェクト・クラスに関連する第１のオブジェクト上での処理にふさわしくフォーマットされた、情報を求める要求に変換する。この要求は、第１のオブジェクトにおいて実行するために第１のオブジェクトにサブミットされる。この要求の結果は、クライアントに戻すことが可能である。【選択図】  図３
2004265421.tif 000002
【特許請求の範囲】
【請求項１】
選択されたオブジェクトの情報を求める情報要求を生成するための方法であって、
第１のクエリを構文解析して、複数のオブジェクト・クラスと、関連するオブジェクト・クラスにそれぞれが対応し、関連するオブジェクト・クラスにおいて選択されたオブジェクトをそれぞれが指定する複数のフィルタと、を識別するステップと、
各オブジェクト・クラスをオブジェクト階層におけるクラスに関連付けるステップと、
前記複数のフィルタに基づいて前記選択されたオブジェクトを識別するステップと、
前記第１のクエリを、前記オブジェクト階層における最上位オブジェクト・クラスに関連する第１のオブジェクト上での処理用にフォーマットされた、前記情報要求に変換するステップと、
前記情報要求を前記第１のオブジェクトにサブミットするステップと
を備えることを特徴とする方法。
【請求項２】
前記複数のフィルタに基づいて前記選択されたオブジェクトを識別するステップは、
（ａ）各フィルタを関連するオブジェクト・クラスにサブミットするステップと、
（ｂ）現行クラスを最低位オブジェクト・クラスに設定するステップと、
（ｃ）選択されたオブジェクトに対する要求を前記現行クラスに対応するオブジェクトに送るステップと、
（ｄ）次に高いオブジェクト・クラスが存在するかどうかを決定するステップと、
（ｅ）次に高いオブジェクト・クラスが存在する場合に、前記現行クラスを前記次に高いオブジェクト・クラスに設定し、前記ステップ（ｂ）に戻るステップと、
（ｆ）次に高いオブジェクト・クラスが存在しない場合に、前記対応するフィルタによって指定された前記現行オブジェクト・クラスにおける選択されたオブジェクトを識別するステップと、
（ｇ）現行の１組のオブジェクトを前記現行オブジェクト・クラスにおける前記識別されたオブジェクトであるように設定するテップと、
（ｈ）次に低いオブジェクト・クラスが存在するかどうかを決定するステップと、
（ｉ）次に低いオブジェクト・クラスが存在する場合、前記現行クラスを前記次に低いオブジェクト・クラスに設定し、前記現行の１組のオブジェクトを前記現行クラスに送り、前記対応するフィルタによって指定された前記現行の１組のオブジェクトの中に存在する前記現行オブジェクト・クラスにおけるオブジェクトを識別し、前記現行の１組のオブジェクトを前記対応するフィルタによって指定された前記現行の１組のオブジェクトの中に存在する前記現行クラスにおける前記オブジェクトであるように設定し、前記ステップ（ｈ）に戻るステップと、
（ｊ）次に低いオブジェクト・クラスが存在しない場合、前記現行の１組のオブジェクトを前記選択されたオブジェクトとして識別するステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項３】
各オブジェクトをオブジェクト階層におけるオブジェクト・クラスに関連付けるステップは、前記各オブジェクトを、構成ファイルの中で指定されたオブジェクト階層におけるオブジェクト・クラスに、関連付けるステップを備えることを特徴とする請求項１に記載の方法。
【請求項４】
第１のクエリを構文解析して複数のオブジェクト・クラスを識別するステップは、前記第１のクエリを構文解析してデータベース管理システム・クラス、データベース・クラス、およびデータ・テーブル・クラスを識別するステップを備えることを特徴とする請求項１に記載の方法。
【請求項５】
各オブジェクト・クラスをオブジェクト階層におけるクラスに関連付けるステップは、
前記データベース管理システム・クラスを前記オブジェクト階層における第１のオブジェクト・クラスに関連付けるステップと、
前記データベース・クラスを前記オブジェクト階層における第２のオブジェクト・クラスに関連付けるステップと、
前記データ・テーブル・クラスを前記オブジェクト階層における第３のオブジェクト・クラスに関連付けるステップと
を備えることを特徴とする請求項４に記載の方法。
【請求項６】
前記第１のクエリを前記情報要求に変換するステップは、前記第１のクエリを、前記データベース管理システム上での実行用にフォーマットされた第２のクエリに、変換するステップを備えることを特徴とする請求項４に記載の方法。
【請求項７】
前記第１のクエリを前記情報要求に変換するステップは、前記第１のクエリを前記選択されたオブジェクトのどのプロパティがディスカバリ可能であるかに関する要求に変換するステップを備えることを特徴とする請求項１に記載の方法。
【請求項８】
前記第１のクエリを選択されたオブジェクトに関する情報を求める情報要求に変換するステップは、前記第１のクエリを、前記選択されたオブジェクトの指定されたプロパティに関する情報を求める要求に、変換するステップを備えることを特徴とする請求項１に記載の方法。
【請求項９】
第１のクエリを構文解析して、複数のオブジェクト・クラスと、関連するオブジェクト・クラスにそれぞれが対応し、関連するオブジェクト・クラスにおいて選択されたオブジェクトをそれぞれが指定する複数のフィルタと、を識別するステップと、
各オブジェクト・クラスをオブジェクト階層におけるクラスに関連付けるステップと、
前記複数のフィルタに基づいて前記選択されたオブジェクトを識別するステップと、
前記第１のクエリを、前記オブジェクト階層における最上位オブジェクト・クラスに関連する第１のオブジェクト上での処理用にフォーマットされた、前記選択されたオブジェクトの情報を求める要求に変換するステップと、
前記要求を前記第１のオブジェクトにサブミットするステップと
を行うためのコンピュータ可読命令を記憶していることを特徴とするコンピュータ可読媒体。
【請求項１０】
前記複数のフィルタに基づいて選択されたオブジェクトを識別するステップは、
（ａ）各フィルタを関連するオブジェクト・クラスにサブミットするステップと、
（ｂ）現行クラスを最低位オブジェクト・クラスに設定するステップと、
（ｃ）選択されたオブジェクトに関する要求を前記現行クラスに対応するオブジェクトに送るステップと、
（ｄ）次に高いオブジェクト・クラスが存在するかどうかを決定するステップと、
（ｅ）次に高いオブジェクト・クラスが存在する場合に、前記現行クラスを前記次に高いオブジェクト・クラスに設定し、前記ステップ（ｂ）に戻るステップと、
（ｆ）次に高いオブジェクト・クラスが存在しない場合に、前記対応するフィルタによって指定された前記現行オブジェクト・クラスにおける選択されたオブジェクトを識別するステップと、
（ｇ）現行の１組のオブジェクトを前記現行オブジェクト・クラスにおける前記識別されたオブジェクトであるように設定するステップと、
（ｈ）次に低いオブジェクト・クラスが存在するかどうかを決定するステップと、
（ｉ）次に低いオブジェクト・クラスが存在する場合に、前記現行クラスを前記次に低いオブジェクト・クラスに設定し、前記現行の１組のオブジェクトを前記現行クラスに送り、前記対応するフィルタによって指定された前記現行の１組のオブジェクトの中に存在する前記現行オブジェクト・クラスにおけるオブジェクトを識別し、前記現行の１組のオブジェクトを前記対応するフィルタによって指定された前記現行の１組のオブジェクトの中に存在する前記現行クラスにおける前記オブジェクトであるように設定し、前記ステップ（ｈ）に戻るステップと、
（ｊ）次に低いオブジェクト・クラスが存在しない場合に、前記現行の１組のオブジェクトを前記選択されたオブジェクトとして識別するステップと
を備えることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１１】
各オブジェクトをオブジェクト階層におけるオブジェクト・クラスに関連付けるステップは、前記各オブジェクトを構成ファイルの中で指定された前記オブジェクト階層におけるオブジェクト・クラスに関連付けるステップを備える
ことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１２】
第１のクエリを構文解析して複数のオブジェクト・クラスを識別するステップは、前記第１のクエリを構文解析してデータベース管理システム・クラス、データベース・クラス、およびデータ・テーブル・クラスを識別するステップを備えることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１３】
各オブジェクト・クラスをオブジェクト階層におけるクラスに関連付けるステップは、
前記データベース管理システム・クラスを前記オブジェクト階層における第１のオブジェクト・クラスに関連付けるステップと、
前記データベース・クラスを前記オブジェクト階層における第２のオブジェクト・クラスに関連付けるステップと、
前記データ・テーブル・クラスを前記オブジェクト階層における第３のオブジェクト・クラスに関連付けるステップと
を備えることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
前記第１のクエリを、情報を求める要求に変換するステップは、前記第１のクエリを、前記データベース管理システム上での実行用にフォーマットされた第２のクエリに、変換するステップを備えることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１５】
前記第１のクエリを、情報を求める要求に変換するステップは、前記第１のクエリを前記選択されたオブジェクトのどのプロパティがディスカバリ可能であるかに関する要求に変換するステップを備えることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１６】
前記第１のクエリを、情報を求める要求に変換するステップは、前記第１のクエリを前記選択されたオブジェクトの指定されたプロパティに関する情報を求める要求に変換するステップを備えることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１７】
選択されたオブジェクトに関する情報を求める情報要求を生成するためのシステムであって、
コンピュータ実行可能命令を実行するように動作するプロセッサと、
第１のクエリを構文解析して、複数のオブジェクト・クラスと、関連するオブジェクト・クラスにそれぞれが対応し、関連するオブジェクト・クラスにおいて選択されたオブジェクトをそれぞれが指定する複数のフィルタと、を識別するステップ、
各オブジェクト・クラスをオブジェクト階層におけるクラスに関連付けるステップ、
前記複数のフィルタに基づいて前記選択されたオブジェクトを識別するステップ、
前記第１のクエリを、前記オブジェクト階層における最上位オブジェクト・クラスに関連する第１のオブジェクト上での処理用にフォーマットされた、前記情報要求に変換するステップ、および
前記情報要求を前記第１のオブジェクトにサブミットするステップ
を行うためのコンピュータ可読命令を記憶しているメモリと
を備えるクエリ変換システムと、
前記情報要求を処理する前記第１のオブジェクトと
を備えることを特徴とするシステム。
【請求項１８】
前記複数のフィルタに基づいて選択されたオブジェクトを識別するステップを行うためのコンピュータ実行可能命令は、
（ａ）各フィルタを関連するオブジェクト・クラスにサブミットするステップ、
（ｂ）現行クラスを最低位オブジェクト・クラスに設定するステップ、
（ｃ）選択されたオブジェクトに対する要求を前記現行クラスに対応するオブジェクトに送るステップ、
（ｄ）次に高いオブジェクト・クラスが存在するかどうかを決定するステップ、
（ｅ）次に高いオブジェクト・クラスが存在する場合に、前記現行クラスを前記次に高いオブジェクト・クラスに設定し、ステップ（ｂ）に戻るステップ、
（ｆ）次に高いオブジェクト・クラスが存在しない場合に、前記対応するフィルタによって指定された前記現行オブジェクト・クラスにおける選択されたオブジェクトを識別するステップ、
（ｇ）現行の１組のオブジェクトを前記現行オブジェクト・クラスにおける前記識別されたオブジェクトであるように設定するステップ、
（ｈ）次に低いオブジェクト・クラスが存在するかどうかを決定するステップ、
（ｉ）次に低いオブジェクト・クラスが存在する場合に、前記現行クラスを前記次に低いオブジェクト・クラスに設定し、前記現行の１組のオブジェクトを前記現行クラスに送り、前記対応するフィルタによって指定された前記現行の１組のオブジェクトの中に存在する前記現行オブジェクト・クラスにおけるオブジェクトを識別し、前記現行の１組のオブジェクトを前記対応するフィルタによって指定された前記現行の１組のオブジェクトの中に存在する前記現行クラスにおける前記オブジェクトであるように設定し、前記ステップ（ｈ）に戻るステップ、および
（ｊ）次に低いオブジェクト・クラスが存在しない場合に、前記現行の１組のオブジェクトを前記選択されたオブジェクトとして識別するステップ
を行うためのコンピュータ実行可能命令を備えることを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記オブジェクト階層を指定する構成ファイルをさらに備えることを特徴とする請求項１７に記載のシステム。
【請求項２０】
前記複数のオブジェクト・クラスは、データベース管理システム・クラス、データベース・クラス、およびデータ・テーブル・クラスを備えることを特徴とする請求項１７に記載のシステム。
【請求項２１】
前記データベース管理システム・クラスは、前記オブジェクト階層における第１のオブジェクト・クラスに関連付けられ、前記データベース・クラスは、前記オブジェクト階層における第２のオブジェクト・クラスに関連付けられ、前記データ・テーブル・クラスは、前記オブジェクト階層における第３のオブジェクト・クラスに関連付けられることを特徴とする請求項２０に記載のシステム。
【請求項２２】
前記情報要求は、前記データベース管理システム上での実行用にフォーマットされた第２のクエリであることを特徴とする請求項２０に記載のシステム。
【請求項２３】
前記情報要求は、前記選択されたオブジェクトのどのプロパティがディスカバリ可能であるかに関する要求であることを特徴とする請求項１７に記載のシステム。
【請求項２４】
前記情報要求は、前記選択されたオブジェクトの識別されたプロパティに関する情報を求める要求であることを特徴とする請求項１７に記載のシステム。
【請求項２５】
前記第１のクエリを生成するステップ、および
前記第１のオブジェクトから情報要求の結果を受け取るステップ
を行うためのクライアント・コンピューティング・デバイスをさらに備えることを特徴とする請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ記憶およびデータ操作（data storage and manipulation）の分野に関し、より具体的には、一定なフォーマット（uniform format）で書かれた第１のクエリを受け取り、その第１のクエリを、特定のオブジェクト上での実行用にフォーマットされた情報の要求に変換すること（translating）に関する。
【背景技術】
【０００２】
従来のデータ記憶システムでは、データは、「オブジェクト」の階層式集合の中に記憶される。例示的な従来技術のデータ記憶システムを図１に示している。図示するとおり、データ記憶システム１００は、データベース管理システム（ＤＢＭＳ；DataBase Management System）１１０、データベース１３０、およびデータ・テーブル１３２、１３４、１３６を含む。ＤＢＭＳ１１０は、ネットワーク１２０を介してデータベース１３０にアクセスを提供する。データベース１３０は、データ・テーブル１３２、１３４、１３６を含み、テーブル１３２、１３４、１３６は、１つまたは複数のコラム（列）（図示せず）を含む。そのようなオブジェクトの中に記憶されたデータに対してクエリを実行することに加えて、オブジェクト自体のプロパティに関する情報を収集することもしばしば、望ましい。例えば、そのようなプロパティは、データベース内で使用されているスペース、または利用可能なスペース、あるいはデータ・テーブルの作成日または行数（row count）とすることが可能である。そのような情報は、データベース管理およびクエリ最適化の様々な態様において役立つ。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のデータ記憶システムでは、そのような情報は、ＤＢＭＳにおいてクエリを実行することによって取り出すことができる。そのようなクエリの欠点は、そのクエリが、実行しようとする特定のＤＢＭＳに向けられたものでなければならないことである。例えば、そのようなクエリは、ＤＢＭＳの特定のバージョンに向けられたものでなければならない。したがって、そのようなクエリは、特定のＤＢＭＳのプログラミング要件の知識を必要とするため、多くの時間を要し、したがって、生成するのに高い費用がかかる。したがって、当技術分野では、特定のＤＢＭＳバージョンに固有ではなく、むしろ、複数のＤＢＭＳバージョンにわたって実行することができるそのようなクエリのための一定なフォーマット（uniform format）の必要性が存在する。また、そのような一定の方式に従うクエリ（uniform queries）が、例えば、オンライン解析処理（ＯＬＡＰ；on-line analytical processing）サーバまたは管理計測サーバ（management instrumentation server）などのサーバに拡張可能であることも所望される。
【０００４】
さらに、そのような一定の方式に従うクエリが、オブジェクトを、情報を要求することが可能なオブジェクトのプロパティをクエリが要求することができることを意味する「セルフ・ディスカバリ可能（self discoverable）」に、することができること、が望まれている。例えば、セルフ・ディスカバリ・クエリは、データ・テーブルに関してどのプロパティがディスカバリ可能であるかを要求することができ、そのクエリの結果により、作成日および行数（row count）がディスカバリ可能なプロパティであることを特定することが可能である。どのプロパティがディスカバリ可能であるかが分かると、フォローアップ・クエリが、特定のオブジェクト、または特定のグループのオブジェクトに関して、そのようなプロパティに関する情報を要求することが可能である。例えば、フォローアップ・クエリが、テーブルの行数を要求することが可能である。
【課題を解決するための手段】
【０００５】
したがって、選択されたオブジェクトに関する情報の要求を生成するためのシステムおよび方法が開示される。第１のクエリは、クライアント・コンピューティング・デバイスにおいて生成され、クエリ変換システムにサブミットされることが可能である。この第１のクエリは、特定のオブジェクトに固有ではない一体の（方式に従った）フォーマットで書かれる。この第１のクエリは、複数のオブジェクト・クラスおよび複数のフィルタを含む。各フィルタは、関連するオブジェクト・クラスに対応し、対応するオブジェクト・クラスにおける選択されたオブジェクトを指定する。
【０００６】
第１のクエリは、選択されたオブジェクトのディスカバリ可能なプロパティを要求するセルフ・ディスカバリ・クエリとすることが可能である。また、第１のクエリは、選択されたオブジェクトの指定されたプロパティに関する情報を要求するデータ要求クエリとすることも可能である。
【０００７】
クエリ変換システムは、第１のクエリを選択されたオブジェクトに関する情報を求める要求に変換する。例示的な変換プロセスでは、第１のクエリが構文解析されて、複数のオブジェクト・クラスおよび複数のフィルタが識別される。各オブジェクト・クラス（class of objects）は、オブジェクト階層におけるあるクラスに関連付けられる。選択されたオブジェクトは、その複数のフィルタに基づいて識別される。第１のクエリが、情報の要求に変換される。この要求は、オブジェクト階層における最上位オブジェクト・クラスに関連付けられた第１のオブジェクト上での実行用に（ふさわしく）フォーマットされる。この要求は、第１のオブジェクトにサブミットされる。
【０００８】
この要求は、第１のオブジェクトにおいて処理される。この要求の結果が、クライアント・コンピューティング・デバイスに送り返される。クライアント・コンピューティング・デバイスは、結果をユーザに表示することができ、結果をさらなる処理のためにメモリの中に記憶することができる。結果は、データベース管理およびクエリ最適化の様々な態様において使用することができる。
【０００９】
例示的な実施形態は、添付の図面を参照する以下の詳細な説明を読むことで、よりよく理解される。
【発明を実施するための最良の形態】
【００１０】
前述した目的を果たし、本発明の現行で好ましい例示的な実施形態に従って他の有益な特徴を提供するシステムおよび方法を以下に、図を参照して説明する。それらの図に関連して本明細書で提供する説明は、単に説明することだけを目的とし、本発明の範囲を限定することはまったく意図していないことが、当分野の技術者には容易に認められよう。説明全体で、それぞれの図における同様の要素を、同様の符号が指している。
【００１１】
コンピュータ環境
図２および以下の説明は、本発明、および／または本発明の部分を実装することが可能な適切なコンピューティング環境の簡単な一般的説明を提供することを目的としている。必須ではないが、本発明は、クライアント・ワークステーションまたはサーバなどのコンピュータによって実行されている、プログラム・モジュールなどのコンピュータ実行可能命令の一般的な文脈で説明する。一般に、プログラム・モジュールには、特定のタスクを実行する、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等が含まれる。さらに、本発明、および本発明の部分は、ハンドヘルド・デバイス、マルチプロセッサ・システム、マイクロ・プロセッサ・ベースの家庭用電化製品またはプログラマブル家庭用電化製品、ネットワークＰＣ、ミニ・コンピュータ、メインフレーム・コンピュータ等を含む他のコンピュータシステム構成で実施することも可能であることを理解されたい。また、本発明は、通信網を介してリンクされた遠隔の処理デバイスによって複数のタスクが行われる分散コンピューティング環境において実施することも可能である。分散コンピューティング環境では、プログラム・モジュールは、ローカルのメモリ記憶デバイスと遠隔のメモリ記憶デバイスの両方の中に配置することが可能である。
【００１２】
図２に示すとおり、例示的な汎用コンピューティング・システムは、処理ユニット２２１、システム・メモリ２２２、ならびにシステム・メモリ２２２から処理ユニット２２１までを含む様々なシステム構成要素を結合するシステム・バス２２３を含む従来のパーソナル・コンピュータ２２０等を含む。システム・バス２２３は、様々なバス・アーキテクチャのいずれかを使用するメモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれかとすることが可能である。システム・メモリ２２２は、読取り専用メモリ（ＲＯＭ）２２４およびランダム・アクセス・メモリ（ＲＡＭ）２２５を含む。始動中などにパーソナル・コンピュータ２２０内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力／出力システム２２６（ＢＩＯＳ）が、ＲＯＭ２２４の中に記憶されている。
【００１３】
パーソナル・コンピュータ２２０は、ハードディスク（図示せず）に対して読取りおよび書込みを行うためのハードディスク・ドライブ２２７、取外し可能な磁気ディスク２２９に対して読取りおよび書込みを行うための磁気ディスク・ドライブ２２８、およびＣＤ−ＲＯＭまたは他の光媒体などの取外し可能な光ディスク２３１に対して読取りおよび書込みを行うための光ディスク・ドライブ２３０をさらに含むことが可能である。ハードディスク・ドライブ２２７、磁気ディスク・ドライブ２２８、および光ディスク・ドライブ２３０は、それぞれ、ハードディスク・ドライブ・インターフェース２３２、磁気ディスク・ドライブ・インターフェース２３３、および光ディスク・ドライブ・インターフェース２３４でシステム・バス２２３に接続されている。以上のドライブ、および関連するコンピュータ可読媒体により、コンピュータ可読命令、データ構造、プログラム・モジュール、および他のデータの不揮発性ストレージがパーソナル・コンピュータ２２０に提供される。
【００１４】
本明細書で説明する例示的な環境は、ハードディスク、取外し可能な磁気ディスク２２９、および取外し可能な光ディスク２３１を使用しているが、コンピュータによってアクセス可能であるデータを記憶することができる他のタイプのコンピュータ可読媒体も、例示的な動作環境において使用することができることを理解されたい。そのような他のタイプの媒体には、磁気カセット、フラッシュ・メモリカード、デジタル・ビデオ・ディスク、ベルヌーイカートリッジ、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）等が含まれる。
【００１５】
オペレーティング・システム２３５、１つまたは複数のアプリケーション・プログラム２３６、他のプログラム・モジュール２３７、およびプログラムデータ２３８を含め、いくつかのプログラム・モジュールをハードディスク、磁気ディスク２２９、光ディスク２３１、ＲＯＭ２２４、またはＲＡＭ２２５に記憶することができる。ユーザは、キーボード２４０や、マウスなどのポインティング・デバイス２４２などの入力デバイスを介してパーソナル・コンピュータ２２０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、サテライト・ディッシュ、スキャナ等が含まれることが可能である。以上の入力デバイス、およびその他の入力デバイスは、しばしば、システム・バスに結合されたシリアル・ポート・インターフェース２４６を介して処理ユニット２２１に接続されるが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアルバス（ＵＳＢ）などの他のインターフェースで接続してもよい。また、モニタ２４７、または他のタイプの表示デバイスも、ビデオアダプタ２４８などのインターフェースを介してシステム・バス２２３に接続される。モニタ２４７に加えて、パーソナル・コンピュータは、通常、スピーカやプリンタなどの他の周辺出力デバイス（図示せず）も含む。図２の例示的なシステムは、ホストアダプタ２５５、スモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）バス２５６、およびＳＣＳＩバス２５６に接続された外部記憶デバイス２６２も含んでいる。
【００１６】
パーソナル・コンピュータ２２０は、遠隔コンピュータ２４９のような１つまたは複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境において動作することができる。遠隔コンピュータ２４９は、別のパーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、または他の一般的なネットワークノードとすることが可能であり、通常、パーソナル・コンピュータ２２０に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶デバイス２５０だけを図２に示している。図２に描いた論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）２５１およびワイド・エリア・ネットワーク（ＷＡＮ）２５２を含む。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【００１７】
ＬＡＮネットワーキング環境で使用される場合、パーソナル・コンピュータ２２０は、ネットワーク・インターフェースまたはネットワーク・アダプタ２５３を介してＬＡＮ２５１に接続される。ＷＡＮネットワーキング環境で使用される場合、パーソナル・コンピュータ２２０は、通常、インターネットなどのワイド・エリア・ネットワーク２５２を介して通信を確立するためのモデム２５４、または他の手段を含む。内部にあることも、外部にあることも可能なモデム２５４は、シリアル・ポート・インターフェース２４６を介してシステム・バス２２３に接続される。ネットワーク化された環境では、パーソナル・コンピュータ２２０に関連して描いたプログラム・モジュール、またはプログラム・モジュールの部分は、遠隔メモリ記憶デバイスの中に記憶することが可能である。図示したネットワーク接続は例示的であり、コンピュータ間で通信リンクを確立する他の手段も使用できることが認められよう。
【００１８】
本発明の例示的なシステムおよび方法
本発明にしたがってオブジェクト上で実行するクエリを生成するための例示的なシステムのブロック図を図３に示している。図示するとおり、このシステムは、クライアント・コンピューティング・デバイス３１０、クエリ変換システム（query translation system）３２０、データ記憶システム３００、および第１のオブジェクト３３０を含む。理解されるとおり、データ記憶システム（data storage system）３００は、任意の数の追加のオブジェクト（図示せず）を含むことが可能である。
【００１９】
概して、クライアント３１０は、特定のオブジェクトに固有でない一定の方式に従ったフォーマット（uniform format ）で書かれた第１のクエリを生成する。クライアント３１０は、第１のクエリをクエリ変換システム３２０にサブミットする。クエリ変換システム３２０は、第１のオブジェクト３３０上で処理を行うようにフォーマットされた情報要求（request for information）に、第１のクエリを変換する。クエリ変換システム３２０は、その要求を第１のオブジェクト３３０にサブミットする。第１のオブジェクト３３０が、その要求を処理し、第２のクエリの結果をクライアント３１０に戻すことができる。
【００２０】
図３に示すとおり、クライアント３１０は、第１のクエリを生成し、第１のクエリをクエリ変換システム３２０にサブミットする。第１のクエリは、特定のオブジェクトに固有ではない一定の方式に従ったフォーマットで書かれる。第１のクエリは、例えば、ＤＢＭＳ１１０、データベース１３０、およびデータ・テーブル１３２〜１３６を含む図１のデータ記憶システム１００内のオブジェクトのクラスなどの複数のオブジェクト・クラスを含む。各オブジェクトは、関連する１組のプロパティを有する。例えば、ＤＢＭＳは、名前（name）、識別子、およびバージョン(version)などのプロパティを有することが可能である。データベースは、サイズや可用なスペースなどのプロパティを有することが可能である。データ・テーブルは、作成日（creation date）や行数（row count）などのプロパティを有することが可能である。
【００２１】
第１のクエリは、複数のフィルタも含む。各フィルタは、関連するオブジェクト・クラスに対応し、その関連するオブジェクト・クラスにおける選択されたオブジェクトを指定する。フィルタは、そのフィルタの関連するオブジェクト・クラスにおけるすべてのオブジェクトが選択されることを意味する「空（empty）」とすることが可能である。
【００２２】
第１のクエリは、汎用クエリとすることも、または制限されたクエリとすることも可能である。汎用クエリは、空のフィルタ（empty filter）を含み、あるオブジェクト・クラスにおけるすべてのオブジェクトに関する情報を要求し、一方、制限されたクエリは、選択されたオブジェクトだけに関する情報を要求する。例示的な汎用クエリおよび制限されたクエリを以下に示す。  
汎用クエリ  
DBMS[@Version=8. 0]/Database[@Name='master']/Table  
制限されたクエリ  
DBMS[@Version=8. 0]/Database[@Name='master'],Table[@RowCount= 100]
前掲の例によれば、汎用クエリは、ＤＢＭＳバージョン「８．０」を介してアクセスされる「Ｍａｓｔｅｒ」という名前のデータベースに格納されたすべてのデータ・テーブルに関する情報を戻す。制限されたクエリは、ＤＢＭＳバージョン「８．０」を介してアクセスされる「マスタ」という名前のデータベースに格納された１００の行数を有するデータ・テーブルだけに関する情報を戻す。
【００２３】
第１のクエリは、選択されたオブジェクトに関する様々なタイプの情報を要求することが可能である。例えば、「セルフ・ディスカバリ」クエリは、選択されたオブジェクトに関してどのプロパティがディスカバリ可能であるかを要求する。さらに、「データ要求」クエリは、セルフ・ディスカバリ・クエリのフォローアップを行う（follow up）のに使用することができる。データ要求クエリは、選択されたオブジェクトの指定されたプロパティに関する情報を要求する。例えば、セルフ・ディスカバリ・クエリは、選択されたテーブルに関してどのプロパティがディスカバリ可能であるかを要求することが可能であり、セルフ・ディスカバリ・クエリの結果により、作成日および行数がディスカバリ可能なプロパティであることを特定することが可能である。その場合、データ要求クエリが、選択されたテーブルの行数を要求することができる。
【００２４】
第１のクエリがクライアント３１０において生成された後、その第１のクエリは、クエリ変換システム３２０にサブミットされる。例示的なクエリ変換システム３２０を、図４を参照して以下に詳細に説明する。一般に、クエリ変換システム３２０は、第１のクエリを、第１のオブジェクト３３０上で処理を行うようにフォーマットされた情報の要求に、変換する。例えば、第１のオブジェクト３３０が、構造化照会言語（Structured Query Language）（ＳＱＬ）で書かれたクエリを実行するＤＢＭＳである場合、クエリ変換システム３２０は、第１のクエリを、ＳＱＬで書かれた第２のクエリに変換する。
【００２５】
情報要求は、生成された後、第１のオブジェクト３３０における処理のために第１のオブジェクト３３０にサブミットされる。第１のオブジェクト３３０は、データ記憶システム３００内のオブジェクトに関する情報を求める要求（以下、情報を求める要求を。情報要求と記す）を処理することが可能なオブジェクトである。例えば、第１のオブジェクト３３０は、ＤＢＭＳ、オンライン解析処理（ＯＬＡＰ）サーバ、または管理計測サーバとすることが可能である。情報の要求が第１のオブジェクト３３０において実行された後、要求結果をクライアント３１０にサブミットすることが可能である。セルフ・ディスカバリ・クエリの場合、その結果は、選択されたオブジェクトのディスカバリ可能なプロパティを含む。データ要求クエリの場合、その結果は、選択されたオブジェクトの指定されたプロパティに関する情報を含む。例示的な第１のクエリ、および対応する結果を以下に示す。  
第１のクエリ：  
DBMS/Database [@Name= 'master']/Table [@name 'sales']  
Request properties: Name, Creation Date, Row Count  
結果：
【００２６】
【表１】
2004265421.tif 000003
【００２７】
前掲の例示的な結果は、選択された「販売」テーブルに関する指定されたプロパティ「名前、作成日、および行数」に関する情報を含む。
【００２８】
本発明による例示的なクエリ変換システムのブロック図を図４に示している。図示するとおり、例示的なクエリ変換システム３２０は、コア・モジュール４１０、ならびにＤＢＭＳ４２０、データベース４３０、およびデータ・テーブル４４０を含む複数のオブジェクトを含む。理解されるとおり、クエリ変換システム３２０は、システム３２０が構成されているデータ記憶システムに応じて追加のオブジェクトを含むように変更することができる。例えば、クエリ変換システム３２０が、ＤＢＭＳ１１０に接続されたオンライン解析処理（ＯＬＡＰ）サーバおよび／または計測管理サーバを含むデータ記憶システムに合わせて構成されている場合、クエリ変換システム３２０は、追加のＯＬＡＰサーバおよび／または計測管理サーバを含むように変更することができる。さらに、データ記憶システムがデータ・テーブルのコラム（columns）に対応する情報を含む場合、クエリ変換システム３２０は、追加のコラムを含むように変更することができる。
【００２９】
クエリ変換システム３２０は、コア・モジュール４１０において記憶された構成ファイル（configuration file）を使用して構成することができる。そのような構成ファイルは、好ましくは、拡張可能マークアップ言語（extensible markup language）（ＸＭＬ）で書かれる。構成ファイルは、データ記憶システム内のオブジェクト階層を指定する。あるオブジェクト・クラスがデータ記憶システムに追加された場合、追加されたオブジェクト・クラス、および対応するプロパティを含むように構成ファイルを編集することができる。クエリ変換システム３２０が構成されているデータ記憶システムに対応する例示的な構成ファイルを以下に示す。
【００３０】
【表２】
2004265421.tif 000004
【００３１】
本発明による選択されたオブジェクトに関する情報要求を生成するための例示的な方法の流れ図を図５に示している。一般に、第１のクエリは、クライアント３１０において生成することが可能である。第１のクエリは、特定のオブジェクトに固有ではない一定のフォーマットで書かれている。第１のクエリがクエリ変換システム３２０にサブミットされ、システム３２０が、第１のクエリを、第１のオブジェクト３３０上で処理を行うためにフォーマットされた情報要求に変換する。この要求は、第１のオブジェクト３３０において実行するために第１のオブジェクト３３０にサブミットされる。要求の結果を、クライアント３１０に戻すことが可能である。
【００３２】
図５に示すとおり、ステップ５１０で、クライアント３１０が、第１のクエリを生成する。第１のクエリは、特定のオブジェクトに固有ではない一定のフォーマットで書かれる。第１のクエリは、複数のオブジェクト・クラス、および複数のフィルタを含む。各フィルタは、関連するオブジェクト・クラスに対応し、対応するオブジェクト・クラスの中で選択されたオブジェクトを指定する。
【００３３】
第１のクエリは、選択されたオブジェクトのディスカバリ可能なプロパティを要求するセルフ・ディスカバリ・クエリとすることが可能である。第１のクエリは、選択されたオブジェクトの指定されたプロパティに関する情報を要求するデータ要求クエリとすることも可能である。
【００３４】
ステップ５１２で、クライアント３１０が、第１のクエリをクエリ変換システム３２０に送り、ステップ５１４で、第１のクエリが、クエリ変換システム３２０において受け取られる。
【００３５】
ステップ５１６で、クエリ変換システム３２０が、第１のクエリを構文解析して、複数のオブジェクト・クラス、および複数のフィルタを識別する。
【００３６】
ステップ５１８で、クエリ変換システム３２０が、各オブジェクト・クラスをオブジェクト階層におけるあるクラスに関連付ける。例えば、ＤＢＭＳクラス、データベース・クラス、およびデータ・テーブル・クラスを含む第１のクエリに関して、クエリ変換システム３２０は、ＤＢＭＳを第１のクラスに関連付けこと、データベースを第２のクラスに関連付けること、データ・テーブルを第３のクラスに関連付けることが可能である。オブジェクト階層は、好ましくはクエリ変換システム３２０に格納される構成ファイルの中で指定することが可能である。
【００３７】
ステップ５２０で、クエリ変換システム３２０は、複数のフィルタに基づいて選択されたオブジェクトを識別する。選択されたオブジェクトを識別するための例示的な方法を、図６を参照して以下に詳細に説明する。
【００３８】
ステップ５２２で、クエリ変換システム３２０が、第１のクエリを、ステップ５１８で第１のクラスに関連付けられたオブジェクトである第１のオブジェクト３３０上で実行するためにフォーマットされた情報要求に、変換する。
【００３９】
ステップ５２４で、クエリ変換システム３２０が、この情報要求を第１のオブジェクト３３０にサブミットし、ステップ５２６で、この情報の要求が、第１のオブジェクト３３０において受け取られる。ステップ５２８で、この情報の要求が、第１のオブジェクト３３０において処理される。ステップ５３０で、情報要求の結果が、クライアント３１０に送られ、ステップ５３２で、この結果が、クライアント３１０において受け取られる。クライアント３１０は、この結果をユーザに表示することができ、この結果をさらなる処理のためにメモリの中に記憶することができる。この結果は、データベース管理およびクエリ最適化の様々な態様において使用することができる。
【００４０】
本発明による選択されたオブジェクトを識別するための例示的な方法の流れ図を図６に示している。一般に、コア・モジュール４１０が、各フィルタを、その関連するオブジェクト・クラスに送る。次に、コア・モジュール４１０は、選択されたオブジェクトに関する要求を最低位オブジェクト・クラスに送る。最低位オブジェクト・クラスは、その要求が最高位オブジェクト・クラスに達するまで、順により高いクラスに要求を送る。最高位オブジェクト・クラスは、対応するフィルタにおいて指定された最高位オブジェクト・クラスにおける選択されたオブジェクトを識別する。最高位オブジェクト・クラスは、識別されたオブジェクトを、順に、より低いオブジェクト・クラスに送る。各より低いクラスは、前のより高いクラスから送られた識別されたオブジェクト上に存在するオブジェクト・クラス内で、選択されたオブジェクトを識別する。最後に、最低位クラスが、最低位オブジェクト・クラスで選択されたオブジェクトを識別し、識別されたオブジェクトをコア・モジュール４１０にサブミットする。
【００４１】
図６に示すとおり、ステップ６１０で、コア・モジュール４１０は、各フィルタをその対応するオブジェクト・クラス４２０、４３０、４４０にサブミットする。
【００４２】
ステップ６１２で、コア・モジュール４１０は、現行クラスを最低位オブジェクト・クラス４２０に設定する。ステップ６１４で、コア・モジュール４１０は、選択されたオブジェクトに関する要求を現行クラスに送る。ステップ６１６で、次に高いオブジェクト・クラスが存在するかどうかが決定される。例えば、現行クラスがデータ・テーブル４４０に設定されている場合、次に高いオブジェクト・クラスは、データベース４３０である。現行オブジェクト・クラスがＤＢＭＳ４２０である場合、次に高いオブジェクト・クラスは存在しない。
【００４３】
次に高いオブジェクト・クラスが存在する場合、ステップ６１８で、現行クラスが、次に高いオブジェクト・クラスに設定され、この方法は、ステップ６１４に戻る。
【００４４】
次に高いオブジェクト・クラスが存在しない場合、ステップ６２０で、現行オブジェクト・クラスは、対応するフィルタによって指定された現行クラスで、選択されたオブジェクトを識別する。例えば、第１のクエリ、「ＤＢＭＳ［＠バージョン＝８．０］」の場合、ＤＢＭＳクラス４２０に関する選択されたオブジェクトは、バージョン「８．０」であるすべてのＤＢＭＳである。
【００４５】
ステップ６２２で、現行の１組のオブジェクトが、識別されたオブジェクトに設定される。ステップ６２４で、次の低いオブジェクト・クラスが存在するかどうかが決定される。例えば、現行クラスがＤＢＭＳ４２０に設定されている場合、次に低いオブジェクト・クラスは、データベース４３０である。現行オブジェクト・クラスがデータ・テーブル４４０である場合、次に低いオブジェクト・クラスは存在しない。
【００４６】
次に低いオブジェクト・クラスが存在する場合、ステップ６２６で、現行クラスが、次に低いオブジェクト・クラスに設定される。ステップ６２８で、現行の１組のオブジェクトが、現行クラスに送られる。ステップ６３０で、現行オブジェクト・クラスが、現行の１組のオブジェクトの中に存在する、対応するフィルタによって指定された現行オブジェクト・クラスで、選択されたオブジェクトを識別する。例えば、第１のクエリ、"DBMS[@Version=8.0]/Database[@Name='master']”に関して、現行オブジェクト・クラスが、データベース・クラス４３０であり、現行の１組のオブジェクトが、バージョン「８．０」であるすべてのＤＢＭＳである場合、現行の１組のオブジェクトの中に存在する選択されたオブジェクトは、バージョン「８．０」であるＤＢＭＳ上に存在する「master」という名前のすべてのデータベースである。ステップ６３０の実行の後、この方法は、ステップ６２２に戻る。
【００４７】
次に低いオブジェクト・クラスが存在しない場合、ステップ６３２で、現行の１組のオブジェクトが、情報の要求に関する選択されたオブジェクトとして、識別される。
【００４８】
本発明を様々な図の好ましい実施形態に関連して説明してきたが、本発明を逸脱することなく、本発明と同じ機能を行うために、他の同様な実施形態を使用すること、または前述した実施形態に変更および追加を行うことができることを理解されたい。例えば、本発明をＤＢＭＳオブジェクト・モジュール、データベース・オブジェクト・モジュール、およびデータ・テーブル・オブジェクト・モジュールに関して説明したが、本発明は、任意の関連するオブジェクトに対応する任意の数のオブジェクト・モジュールを使用して実装することができる。したがって、本発明は、どの単一の実施形態にも限定されず、むしろ、特許請求による広がりと範囲において解釈されるべきものである。
【図面の簡単な説明】
【００４９】
【図１】例示的な従来技術のデータ記憶システムを示す図である。
【図２】本発明の態様および／または態様の部分を組み込むことが可能である汎用コンピュータシステムを示すブロック図である。
【図３】本発明によるオブジェクト上で実行するためのクエリを生成するための例示的なシステムを示すブロック図である。
【図４】本発明による例示的なクエリ変換システムを示すブロック図である。
【図５】本発明による選択されたオブジェクトに関する情報の要求を生成するための例示的な方法を示す流れ図である。
【図６】本発明による選択されたオブジェクトを識別するための例示的な方法を示す流れ図である。
【符号の説明】
【００５０】
３００  データ記憶システム
３１０  クライアント・コンピューティング・デバイス
３２０  クエリ変換システム
３３０  オブジェクト
【図１】
2004265421.tif 000005
【図２】
2004265421.tif 000006
【図３】
2004265421.tif 000007
【図４】
2004265421.tif 000008
【図５】
2004265421.tif 000009
【図６】
2004265421.tif 000010