(57)【要約】【課題】スクリプトを使用して、システムについてリクエストされた情報をクライアントに提供する。【解決手段】スクリプトを使用して、システムについてクライアントがリクエストした情報を提供するための方法及びシステムが記載されている。一実施形態において、１つか又は複数のスクリプトが、コンピュータシステムについての情報をリクエストする。トランスレータが、前記スクリプトから、そのシステムについての前記情報を受け取る。前記トランスレータは、そのシステムについての前記情報を、容易にアクセス可能なデータ構造で格納する。【選択図】図２
2005339559.tif 000002
【特許請求の範囲】
【請求項１】
スクリプトを使用して、システムについての情報を提供する方法であって、
１つか又は複数のコマンドプロバイダ（２４２、２４４、２４６、２４８）において、前記システム（２２２、２２４）についての前記情報をリクエストするステップ（３１２）と、
コマンドトランスレータプロバイダ（２４０）において、前記システム（２２２、２２４）についての前記情報を、前記１つか又は複数のコマンドプロバイダ（２４２、２４４、２４６、２４８）から受け取るステップ（３１４）と、
前記コマンドトランスレータプロバイダ（２４０）が、前記システム（２２２、２２４）についての前記情報を、容易にアクセス可能なデータ構造で格納するステップ（３１６）
とを含み、
前記１つか又は複数のコマンドプロバイダ（２４２、２４４、２４６、２４８）は、スクリプトであることからなる、方法。
【請求項２】
前記方法は、
前記システム（２２２、２２４）についての前記情報に対するリクエストを、クライアント（１７０）からオブジェクトマネージャ（２５０）において受け取るステップと、
前記オブジェクトマネージャ（２５０）において、前記リクエストされた情報を、コマンドトランスレータプロバイダ（２４０）から取得することを決定するステップ（３０８）と、
前記コマンドトランスレータプロバイダ（２４０）において、前記リクエストされた情報を、１つか又は複数のコマンドプロバイダ（２４２、２４４、２４６、２４８）のうちの第１のコマンドプロバイダ（２４２、２４４、２４６、２４８）から取得することを決定するステップ（３１０）
とを更に含み、
前記情報をリクエストするステップは、前記システム（２２２、２２４）に対する固有インターフェース（２３２、２３４、２３６、２３８）の前記第１のコマンドプロバイダ（２４２、２４４、２４６、２４８）における実行により、前記固有インターフェース（２３２、２３４、２３６、２３８）から、前記リクエストされた情報を含む出力を得ることによって前記情報をリクエストする、ステップを更に含み、
前記コマンドトランスレータプロバイダ（２４０）において前記情報を受け取るステップは、前記出力を共通フォーマットで受け取ることによって、前記情報を前記第１のコマンドプロバイダ（２４２、２４４、２４６、２４８）から受け取るステップを更に含み、
前記情報を格納するステップは、前記オブジェクトマネージャ（２５０）対して容易にアクセス可能なデータ構造で前記出力を格納することによって、前記情報を前記オブジェクトマネージャ（２５０）に提供するステップを更に含むことからなる、請求項１に記載の方法。
【請求項３】
前記コマンドトランスレータプロバイダ（２４０）は、前記情報を、共通情報モデリング（ＣＩＭ）によって画定される共通フォーマットで受け取る、請求項１に記載の方法。
【請求項４】
前記スクリプト（２４２、２４４、２４６、２４８）は、ｓｈ（ＰＯＳＩＸシェル又はＢｏｕｒｎｅシェル）、ｋｓｈ（Ｋｏｒｎシェル）、ｃｓｈ（Ｃシェル）、Ｐｅｒｌ、Ｊａｖａスクリプト、及び共通ゲートウェイインターフェース（ＣＧＩ）スクリプトからなるグループに基づくものである、請求項１に記載の方法。
【請求項５】
前記方法は、
前記リクエストされた情報をオブジェクトマネージャ（２５０）に提供するために、前記コマンドトランスレータプロバイダ（２４０）がどのクラスを使用することができるかを決定するステップ（３０４）と、
前記コマンドトランスレータプロバイダ（２４０）がどのクラスを使用することができるかを記載した第１の情報を格納するステップと、
前記リクエストされた情報を前記コマンドトランスレータプロバイダ（２４０）に提供するために、前記１つか又は複数のコマンドプロバイダ（２４２、２４４、２４６、２４８）がどのクラスを使用することができるかを決定するステップ（３０４）と、
前記１つか又は複数のコマンドプロバイダ（２４２、２４４、２４６、２４８）がどのクラスを使用できるかを記載した第２の情報を格納するステップと、
前記オブジェクトマネージャ（２５０）において、前記オブジェクトマネージャ（２５０）が前記リクエストを受け取った時に、前記第１の情報を解析することによって、前記リクエストされた情報を、前記コマンドトランスレータプロバイダ（２４０）から取得することを決定するステップ（３０８）と、
前記コマンドトランスレータプロバイダ（２４０）において、前記第２の情報を解析することによって、前記リクエストされた情報を、前記第１のコマンドプロバイダ（２４２、２４４、２４６、２４８）から取得することを決定するステップ（３１０）
とを更に含むことからなる、請求項１に記載の方法。
【請求項６】
コンピュータシステムについての情報を取得することを簡略化する方法であって、
前記コンピュータシステム（２２２、２２４）についての情報をリクエストする１つか又は複数のスクリプト（２４２、２４４、２４６、２４８）を作成するステップ（３０２）と、
前記コンピュータシステム（２２２、２２４）についての前記情報を、前記スクリプト（２４２、２４４、２４６、２４８）から受け取るためのトランスレータ（２４０）を作成するステップ（３０４）と、
前記トランスレータが、前記コンピュータシステム（２２２、２２４）についての前記情報を、容易にアクセス可能なデータ構造で格納するステップ（３１６）
とを含む、方法。
【請求項７】
前記１つか又は複数のスクリプト（２４２、２４４、２４６、２４８）は、前記コンピュータシステム（２２２、２２４）についての前記情報を、前記コンピュータシステム（２２２、２２４）に対して固有の、１つか又は複数のインターフェース（２３２、２３４、２３６、２３８）から取得する、請求項６に記載の方法。
【請求項８】
前記スクリプト（２４２、２４４、２４６、２４８）は、共通情報モデリング（ＣＩＭ）によって画定される共通フォーマットで前記トランスレータ（２４０）に前記情報を提供する、請求項６に記載の方法。
【請求項９】
前記方法は、
クラスを使用して互いに伝達し合うために、前記１つか又は複数のスクリプト（２４２、２４４、２４６、２４８）と前記トランスレータ（２４０）とを作成するステップ（３０２）と、
前記クラスに基づいて特定のスクリプト（２４２、２４４、２４６、２４８）から前記情報を取得するために、前記トランスレータ（２４０）を作成するステップ（３０２）
とを更に含み、
前記クラスは、前記コンピュータシステム（２２２、２２４）から取得される前記情報のタイプを表すことからなる、請求項６に記載の方法。
【請求項１０】
情報検索システムであって、
オブジェクトマネージャ（２５０）に対して通信可能に結合されるコマンドトランスレータプロバイダ（２４０）と、
前記コマンドトランスレータプロバイダ（２４０）に対して通信可能に結合される１つか又は複数のコマンドプロバイダ（２４２、２４４、２４６、２４８）と、
スクリプトを使用して前記システムについての情報を提供するための方法を実行するためのプロセッサ
とを備え、
前記方法は、
前記１つか又は複数のコマンドプロバイダが、前記コンピュータシステム（２２２、２２４）についての前記情報をリクエストするステップ（３１２）と、
前記コマンドトランスレータプロバイダ（２４０）が、前記コンピュータシステム（２２２、２２４）についての前記情報を、前記コマンドプロバイダ（２４２、２４４、２４６、２４８）から受け取るステップ（３１４）と、
前記コマンドトランスレータプロバイダ（２４０）が、前記コンピュータシステム（２２２、２２４）についての前記情報を、容易にアクセス可能なデータ構造で格納するステップ（３１６）
とを含み、
前記１つか又は複数のコマンドプロバイダ（２４２、２４４、２４６、２４８）は、スクリプトであることからなる、情報検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、システムについての情報を提供することに関し、特に、システムから情報を取得することの一部としてスクリプトを使用することに関する。
【背景技術】
【０００２】
往々にして、システムについての情報を取得するためのアプリケーションは、クライアントとサーバとを使用して実行される。例えば、そのシステムは、ネットワーキングシステム、電源、ディスクドライブと伝達し合うシステムなどである可能性がある。アプリケーションは、それらシステムについての情報を使用して、報告を読む人々に対して、それらシステムのステータスを報告することができる。例えばこの場合には、ディスクドライブの記憶容量が小さい可能性があり、この状態についての報告を行うことができる。アプリケーションは、システム上に発生している問題を修正するために、情報に基づいて処置を施すことさえできる。例えばこの場合には、ディスクドライブの記憶容量が小さい場合には、データをあるディスクドライブから別のディスクドライブへと移動させるよう処置を施すことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明によって、プロバイダが、オブジェクトマネージャとは異なる言語にコーディングされることが可能となる。本発明は、オブジェクトマネージャの品質に悪影響を及ぼすことなく、新規プロバイダを考慮する。本発明は、テスト中に、プロバイダを再コンパイル、リンク編集、及びインストールする、時間を浪費する処理を必要としない。
【課題を解決するための手段】
【０００４】
スクリプトを使用してシステムについての情報を提供するための方法とシステムとに関する本発明の実施形態が記載されている。一実施形態において、1つか又は複数のスクリプトが、コンピュータシステムについての情報をリクエストする。トランスレータ（又は変換機構）が、そのスクリプトからシステムについてのその情報を受け取る。トランスレータは、容易にアクセス可能なデータ構造で、システムについてのその情報を格納（記憶）する。
【発明の効果】
【０００５】
プロバイダは、オブジェクトマネージャの品質に悪影響を及ぼさず、プロバイダのテスト中において、再コンパイル、リンク編集、及びインストールする、といった時間を浪費する処理を必要せず、開発時間を節約することができる。
【実施例】
【０００６】
本明細書内に組み込まれ、且つ、その一部を形成する添付図面は、本発明の実施形態を図示し、その説明と共に、本発明の原理を説明する機能を果たす。
【０００７】
本記載において参照される図面は、特記される場合を除き、一定の縮尺で描かれているものとして理解されるべきではない。
【０００８】
［本発明を実施するための最良な状態］
本発明の様々な実施形態が、次に詳細に参照される。該実施形態の例は、添付図面内において図示されている。本発明は、これらの実施形態に関連して説明されるが、本発明は、本発明をこれら実施形態に限定することを意図しないことが理解されよう。それどころか、本発明は、添付の特許請求の範囲によって画定されるような本発明の思想及び範囲内に含まれることが可能な代替、修正、及び等価物を包含することを意図する。更に、以下の本発明の説明において、多くの特定の詳細事項が、本発明の完全な理解を提供するために記載される。場合によっては、本発明の態様を不必要に曖昧にさせないようにするために、周知の方法、手順、構成要素、及び回路が、詳細には説明されていない。
【０００９】
［システム及び機能の概要］
図１は、システムについての情報を取得するための従来技術のクライアント−サーバシステムのブロック図を示す。クライアント１７０は、アプリケーション１８０と、クエリ１９２、１９４とを含む。サーバ１１０は、オブジェクトマネージャ処理空間１６０と、システム１２２、１２４、１２６とを含む。オブジェクトマネージャ処理空間１６０が更にまた、オブジェクトマネージャ１５０と、プロバイダ（又は提供部）１３２、１３４、１３６とを含む。図１において示されるように、プロバイダ１３２はシステム１２２に結合され、プロバイダ１３４はシステム１２４に結合され、プロバイダ１３６はシステム１２６に結合される。
【００１０】
クライアント１７０におけるアプリケーション１８０は、クエリ１９２、１９４を使用してサーバ１１０からシステム１２２、１２４、１２６についての情報をリクエストすることができる。これらのクエリ１９２、１９４は、ＳＱＬ型のクエリとすることができる。オブジェクトマネージャ１５０は、クエリ１９２、１９４を受け取って、どのプロバイダ１３２、１３４、１３６が、クエリ１９２、１９４に応答してシステム１２２、１２４、１２６からのリクエストされた情報を取得するために適切であるかを決定する。例えば、システム１２２がネットワーキングシステムであり、且つ、そのネットワーキングシステムの転送速度をリクエストするクエリ１９２が仮に受け取られた場合には、オブジェクトマネージャ１５０は、そのリクエストされた情報を取得するために、プロバイダ１３２を使用する。同様に、システム１２４がディスクドライブシステムであり、且つ、そのディスクドライブシステムの記憶容量をリクエストするクエリ１９４が仮に受け取られた場合には、オブジェクトマネージャ１５０は、そのリクエストされた情報を取得するために、プロバイダ１３４を使用する。
【００１１】
典型的には、オブジェクトマネージャ１５０及びアプリケーション１８０か又はアプリケーション１８０の一部は、一企業で働いているプログラマによって組み込まれる可能性があるのに対し、プロバイダ１３２、１３４、１３６は、システム１２２、１２４、１２６を販売する各企業で働くプログラマによって組み込まれる。例を続けると、オブジェクトマネージャ１５０とアプリケーション１８０とは、システム監視ソフトウェアを販売する企業によって組み込まれる可能性があるのに対し、プロバイダ１３２は、ネットワークシステム、例えばシステム１２２を、販売する企業によって組み込まれる可能性がある。
【００１２】
図１において示される実施形態によれば、プロバイダ１３２、１３４、１３６は、オブジェクトマネージャ１５０と同じアドレス空間１６０内に常駐する。従って、プロバイダ１３２、１３４、１３６は、オブジェクトマネージャ１５０と同じ言語を使用してコーディングされる。システム１２２、１２４、１２６を組み込む企業に、オブジェクトマネージャ１５０がコーディングされる言語でプログラムすることができるプログラマがいない場合には、その企業は、オブジェクトマネージャ１５０と協働するプロバイダ１３２、１３４、１３６を組み込むことを望まない可能性がある。このことが、オブジェクトマネージャ１５０を担当する企業が達成することができるはずの市場シェアを低減させるであろう。
【００１３】
更に、オブジェクトマネージャ１５０は、プロバイダ１３２、１３４、１３６の品質に対する影響を受けやすい。例えば、プロバイダ１３２、１３４、１３６にメモリリークがある場合には、オブジェクトマネージャ１５０の性能が低下し、場合によっては、オブジェクトマネージャ１５０は、実行させられている時にある期間にわたってクラッシュするであろう。第２の例において、プロバイダ１３２、１３４、１３６は、記憶を参照するために初期化されていない変数を使用することができ、そのことがまた、オブジェクトマネージャ１５０の品質に悪影響を及ぼすであろう。
【００１４】
更に多くの企業が更に多くのシステムを提供するにつれて、オブジェクトマネージャ１５０は、新規のプロバイダによってテストされることが必要になるであろう。新規プロバイダをテストするためには、クライアント１７０は、クエリ１９２、１９４を発行するため、サーバ１１０に接続される必要がある。バグが新規プロバイダにおいて発見される度に、プロバイダ１３２、１３４、１３６は、再コンパイルされ、リンク編集され、及びサーバ１１０上にインストールされる必要があり、これは時間を浪費する処理である。
【００１５】
これらの理由及び他の理由から、プロバイダがオブジェクトマネージャと異なる言語でコーディングされることを考慮する方法及び／又はシステムは、価値がある。オブジェクトマネージャの品質に悪影響を及ぼすことなく新規プロバイダを考慮する方法及び／又はシステムもまた価値がある。テスト中にプロバイダを再コンパイルし、リンク編集し、及びインストールする、時間を浪費する処理を必要としない方法及び／又はシステムもまた価値がある。
【００１６】
図２は、本発明の実施形態による、スクリプトを使用してシステムについての情報を取得するための例示的なクライアント−サーバシステム２００のブロック図である。図２において示されるように、クライアント−サーバシステム２００は、既に本明細書において説明されたようなクライアント１７０と、サーバ２１０とを含む。サーバ２１０は、オブジェクトマネージャ２５０と、コマンドトランスレータプロバイダ２４０と、コマンドプロバイダ２４２、２４４、２４６、２４８と、固有インターフェース２３２、２３４、２３６、２３８と、システム２２２、２２４とを含む。オブジェクトマネージャ２５０とコマンドトランスレータプロバイダ２４０とは、処理空間２６０内に常駐する。
【００１７】
本発明の一実施形態によれば、コマンドプロバイダ２４２、２４４、２４６、２４８は、ｓｈ（ＰＯＳＩＸシェル又はＢｏｕｒｎｅシェル）か、ｋｓｈ（Ｋｏｒｎシェル）か、ｃｓｈ（Ｃシェル）か、Ｐｅｒｌか、Ｊａｖａスクリプトか、又は共通ゲートウェイインターフェース（ＣＧＩ）スクリプトのようなスクリプト言語を使用してコーディングされる。結果として、システム２２２、２２４を組み込む企業で働いているプログラマは、コマンドプロバイダ２４２、２４４、２４６、２４８を、各自が選んだ任意のスクリプト言語でコーディングすることができる。更に、コマンドプロバイダ２４２、２４４、２４６、２４８はスクリプトであるため、それらは素早くコーディングされることが可能で、それらコマンドプロバイダのデバッグ中にプログラマがそれらを修正する度に、それらが再コンパイルされ、リンク編集され、及び再インストールされることを必要としない。従って、コマンドプロバイダ２４２、２４４、２４６、２４８を組み込むことにおいて、かなりの量の時間が節約される。更に、コマンドプロバイダ２４２、２４４、２４６、２４８はスクリプトであるため、それらがオブジェクトマネージャ２５０と同じアドレス空間２６０内に常駐する必要がない。結果として、コマンドプロバイダ２４２、２４４、２４６、２４８の品質は、オブジェクトマネージャ２５０の品質に悪影響を及ぼさない。
【００１８】
別の実施形態によれば、コマンドプロバイダ２４２、２４４、２４６、２４８によって、システム２２２、２２４に固有のインターフェース２３２、２３４、２３６、２３８（以下、本明細書において「固有インターフェース」と呼ばれる）が、実行させられる。例えば、システム２２２は、ネットワーキングシステムとすることができ、固有インターフェース２３４は、ネットワーキングシステムが提供するＮｅｔｓｔａｔコマンドとすることができる。更に、Ｎｅｔｓｔａｔコマンドは、ネットワーキングシステムの転送速度及び／又はビットレートのような属性に対する値を提供することができる。
【００１９】
一実施形態によれば、オブジェクトマネージャ２５０は、システムについての情報のコレクタ（収集器）である。例えば、オブジェクトマネージャ２５０は、システム２２２、２２４についての情報を収集することができ、より明らかとなってくるであろうように、どの情報がクライアント１７０によってリクエストされるかに基づいて、収集された情報のどの部分をクライアント１７０に対して提供することができるかをフィルタリングすることができる。
【００２０】
図２におけるブロックは、図示された配置とは別様に配置されることが可能であり、本明細書において説明される特徴よりも多い数の特徴か又は少ない数の特徴を実施することができる。例えば、コマンドプロバイダ２４２、２４４、２４６、２４８を、２つ以上の固有インターフェースに対して通信可能に結合することができる。別の例において、オブジェクトマネージャ２５０は、下位互換性をもつことができる。この場合には、オブジェクトマネージャ２５０は、プロバイダ１３２、１３４、１３６（図１）、並びにコマンドトランスレータプロバイダ２４０（図２）のようなプロバイダと相互にやりとりすることができる。
【００２１】
［共通フォーマット］
一実施形態によれば、コマンドプロバイダ２４２、２４４、２４６、２４８は、システム２２２、２２４についての情報を、共通フォーマットで、コマンドトランスレータプロバイダ２４０に対して提供する。別の実施形態によれば、共通フォーマットは、デスクトップマネージメントタスクフォース（ＤＭＴＦ）からの共通情報モデリング（ＣＩＭ）仕様によって画定される。ＣＩＭに関する情報については、http://dmtf.orgを参照のこと。この場合には、共通フォーマットは、コマンドトランスレータプロバイダ２４０が、以下のように括弧でくくられた、コマンドプロバイダ２４２、２４４、２４６、２４８から受け取る、属性の値で続けて記された属性を、列挙することができる。
【００２２】
【表１】
2005339559.tif 000003
【００２３】
Ｎｅｔｓｔａｔコマンドの場合には、共通フォーマットは、以下の形態をとることができる。
【００２４】
【表２】
2005339559.tif 000004
【００２５】
別の実施形態によれば、共通フォーマットを、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張可能マークアップ言語（ＸＭＬ）、及びベクターマークアップ言語（ＶＭＬ）のような任意のマークアップ言語によって画定することができる。更に、共通フォーマットを、ＳＱＬ型データベースによって使用される言語のような任意のデータ定義言語（ＤＤＬ）によって画定することができる。
【００２６】
［システムの詳細な説明］
図２において示されるように、クライアント１７０におけるアプリケーション１８０は、クエリ１９２、１９４を使用してサーバ２１０からシステム２２２、２２４についての情報をリクエストすることができる。オブジェクトマネージャ２５０は、これらのクエリ１９２、１９４を受け取る。クエリ１９２、１９４に基づいて、オブジェクトマネージャ２５０は、コマンドトランスレータプロバイダ２４０が、クエリ１９２、１９４がリクエストした情報を取得することができるかどうかを決定する。コマンドトランスレータプロバイダ２４０（「トランスレータ」としても知られる）が情報を取得することが可能であると仮定すると、コマンドトランスレータプロバイダ２４０は、どのコマンドプロバイダ２４２、２４４、２４６、２４８がリクエストされた情報を取得することができるかを決定する。
【００２７】
コマンドプロバイダ２４２、２４４、２４６、２４８によって、固有インターフェース２３２、２３４、２３６、２３８が、実行させられて、システム２２２、２２４からの情報を取得する。一実施形態によれば、これらの固有インターフェース２３２、２３４、２３６、２３８は、システム２２２、２２４によってサポートされるコマンドか又はアプリケーションプログラマインターフェース（ＡＰＩ）とすることができる。コマンドトランスレータプロバイダ２４０は、コマンドプロバイダ２４４からリクエストされた情報を取得することが可能であることが決定されたと仮定すると、コマンドプロバイダ２４４によって、固有インターフェース２３４が実行させられて、システム２２２から情報を取得することができる。固有インターフェース２３４は、システム２２２から得られた情報を、コマンドプロバイダ２４４に提供する。コマンドプロバイダ２４４は、得られた情報をパーズ（又は解析）して、それをコマンドトランスレータプロバイダ２４０に提供する。
【００２８】
一実施形態によれば、コマンドプロバイダ２４２、２４４、２４６、２４８は、本明細書において説明されるように、システム２２２、２２４についての情報を、共通フォーマットで、コマンドトランスレータプロバイダ２４０に対して提供する。コマンドトランスレータプロバイダ２４０は、リクエストされた情報を共通フォーマットから取得して、そのリクエストされた情報を、容易にアクセス可能なデータ構造で、オブジェクトマネージャ２５０に対して提供する。オブジェクトマネージャ２５０は、クエリ１９２、１９４に応答して、リクエストされた情報を、そのデータ構造部からクライアント１７０に対して提供する。
【００２９】
一実施形態によれば、オブジェクトマネージャ２５０、コマンドトランスレータプロバイダ２４０、及びコマンドプロバイダ２４２、２４４、２４６、２４８は、クラスを用いて互いに伝達し合う。この場合には、オブジェクトマネージャ２５０は、コマンドトランスレータプロバイダ２４０が、情報をオブジェクトマネージャ２５０に提供するために、どのクラスを使用するかを記載した情報を、格納することができる。同様に、別の実施形態によれば、コマンドトランスレータプロバイダ２４０は、各コマンドプロバイダ２４２、２４４、２４６、２４８が、情報をコマンドトランスレータプロバイダ２４０に提供するために、どのクラスを使用するかを記載した情報を、格納することができる。
【００３０】
例を続けると、クラスは、値に対する属性を有するものと定義されることが可能であり、それはすなわち、Ｎｅｔｓｔａｔコマンドであり、例えば固有インターフェース２３４が、ネットワーキングシステム、例えばシステム２２２から、取得することができる。以下、本明細書において、このクラスを「Ｎｅｔｓｔａｔクラス」と呼ぶことにする。この場合には、オブジェクトマネージャ２５０は、それがＮｅｔｓｔａｔクラスを使用して、コマンドトランスレータプロバイダ２４０から転送速度の値を取得することができることを示す情報を格納することができる。更に、コマンドトランスレータプロバイダ２４０は、それがＮｅｔｓｔａｔクラスを使用して、固有インターフェース２３４から転送速度の値を取得することができることを示す情報を格納することができる。
【００３１】
アプリケーション１８０が、ネットワーキングシステムの転送速度をリクエストするクエリ１９２、１９４を発行した時には、オブジェクトマネージャ２５０は、その転送速度をコマンドトランスレータプロバイダ２４０から取得することができることを決定するために、その格納された情報を使用することができる。同様に、コマンドトランスレータプロバイダ２４０は、それが転送速度をコマンドプロバイダ２４４からリクエストすることができることを決定するために、その記憶されている情報を使用することができる。
【００３２】
一実施形態によれば、コマンドトランスレータプロバイダ２４０がリクエストされた情報をオブジェクトマネージャ２５０に提供するために使用するデータ構造は、更に詳細に後述されるように、クラスのインスタンスである。別の実施形態によれば、クラスのインスタンスを、表として実行することができる。
【００３３】
［動作の例］
図３は、本発明の実施形態による、スクリプトを使用してシステムについての情報を取得するためのフローチャート３００を示す。フローチャート３００において、特定のステップが開示されているが、そのようなステップは例示的なものである。すなわち、本発明の実施形態は、様々な他のステップか、又はフローチャート３００内に列挙されたステップの変形を実行することに非常に適している。フローチャート３００内のステップは、提示された順序とは異なる順序で実行されることが可能であり、フローチャート３００内の必ずしも全てのステップが実行される可能性があるわけではないことが理解される。フローチャート３００によって説明された実施形態のうちの全てか又は一部を、コンピュータシステムか又は同様の装置の例えばコンピュータ使用可能媒体に常駐するコンピュータ可読で且つコンピュータ実行可能な命令を使用して、実施することができる。
【００３４】
例示を目的として、フローチャート３００の説明は、図２において示される構造を参照するものとする。更に、例示を目的として、フローチャート３００の説明は、以下を仮定するものとする。すなわち、（１）システム２２２は、ネットワーキングシステムであり、システム２２４は、ディスクドライブＡ、Ｂ、及びＣと相互にやり取りするディスクドライブシステムである。（２）固有インターフェース２３４は、Ｎｅｔｓｔａｔコマンドであり、固有インターフェース２３６は、ディスクドライブについての情報を取得するためのＡＰＩ（本明細書において「ディスクドライブＡＰＩ」と呼ばれる）である。（３）アプリケーション１８０は、ディスクドライブシステムがサポートする全てのディスクドライブＡ、Ｂ、Ｃの記憶容量と、ネットワーキングシステムの転送速度とをリクエストするクエリ１９２を発行する。（４）オブジェクトマネージャ２５０は、下位互換性があり、従って、プロバイダ１３２、１３４、１３６、並びにコマンドトランスレータプロバイダ２４０と通信可能に結合される。
【００３５】
ステップ３０２において、一実施形態によれば、コマンドトランスレータプロバイダと、１つか又は複数のコマンドプロバイダとが作成される。別の実施形態によれば、例えば、監視ソフトウェアを販売する一企業で働くプログラマは、コマンドトランスレータプロバイダ２４０を作成することができ、ネットワーキングシステム及びディスクドライブシステムのようなシステム２２２、２２４を販売する各企業で働くプログラマは、コマンドプロバイダ２４４、２４６を作成することができる。更に別の実施形態によれば、コマンドプロバイダ２４４、２４６は、スクリプトを使用して作成される。
【００３６】
ステップ３０４において、オブジェクトマネージャ、コマンドトランスレータプロバイダ、及びコマンドプロバイダが、別の実施形態によれば、互いに伝達し合うためにそれらがどのクラスを使用するかを決定する。別の実施形態によれば、例えば、オブジェクトマネージャ２５０は、リクエストされた情報を提供するため、コマンドトランスレータプロバイダ２４０と、その他のプロバイダ１３２、１３４、１３６とがどのクラスを使用するかを決定するために、コマンドトランスレータプロバイダ２４０、及びその他のプロバイダ１３２、１３４、１３６と伝達し合う。例を続けると、コマンドトランスレータプロバイダ２４０と、オブジェクトマネージャ２５０とは、Ｎｅｔｓｔａｔクラスと、ディスクドライブＡＰＩが提供する値に対する属性を有する別のクラス（以下、本明細書において「ディスクドライブクラス」と呼ばれる）とを使用して伝達を行う。Ｎｅｔｓｔａｔクラスは、特に転送速度に対する属性を有することができ、ディスクドライブクラスは、特に記憶容量についての属性を有することができる。
【００３７】
更に別の実施形態によれば、オブジェクトマネージャ２５０は、コマンドトランスレータプロバイダ２４０と、その他のプロバイダ１３２、１３４、１３６とが、どのクラスを使用するかを記載した情報を格納する。この場合には、オブジェクトマネージャ２５０は、Ｎｅｔｓｔａｔクラスとディスクドライブクラスとを記載した情報と、並びに、これら２つのクラスをコマンドトランスレータプロバイダ２４０にマッピングする情報とを格納することができる。
【００３８】
更に、一実施形態によれば、コマンドトランスレータプロバイダ２４０は、コマンドプロバイダ２４２、２４４、２４６、２４８と伝達し合って、コマンドプロバイダ２４２、２４４、２４６、２４８がリクエストされた情報を提供するためにどのクラスを使用するかを決定する。この場合には、コマンドプロバイダ２４４は、Ｎｅｔｓｔａｔクラスを使用してコマンドトランスレータプロバイダ２４０と伝達し合うことができる。同様に、コマンドプロバイダ２４６は、ディスクドライブクラスを使用してコマンドトランスレータプロバイダ２４０と伝達し合うことができる。
【００３９】
別の実施形態によれば、コマンドトランスレータプロバイダ２４０は、コマンドプロバイダ２４２、２４４、２４６、２４８がどのクラスを使用するかを記載した情報を格納する。この場合には、コマンドトランスレータプロバイダ２４０は、Ｎｅｔｓｔａｔクラスとディスクドライブクラスとを記載した情報と、並びに、Ｎｅｔｓｔａｔクラスをコマンドプロバイダ２４４にマッピングし且つディスクドライブクラスをコマンドプロバイダ２４６にマッピングする情報とを格納することができる。
【００４０】
ステップ３０６において、更に別の実施形態によれば、オブジェクトマネージャは、１つか又は複数のシステムについての情報に対するリクエストを受け取る。例を続けると、アプリケーション１８０が、ディスクドライブシステム（システム２２４）がサポートする全てのディスクドライブの記憶容量と、ネットワーキングシステム（システム２２２）の転送速度とをリクエストするクエリ１９２を発行する。オブジェクトマネージャ２５０は、クエリ１９２を受け取る。
【００４１】
ステップ３０８において、一実施形態によれば、オブジェクトマネージャは、コマンドトランスレータプロバイダが、リクエストされた情報を取得することが可能であることを決定する。オブジェクトマネージャ２５０は、別の実施形態によれば、記憶されたクラスに基づいて、リクエストされた情報をコマンドトランスレータプロバイダ２４０から取得することを決定することができる。例えば、オブジェクトマネージャ２５０は、コマンドトランスレータプロバイダ２４０が、Ｎｅｔｓｔａｔクラスとディスクドライブクラスとに関係するシステム２２２、２２４についての情報を提供することを可能とする情報が、予め記憶されている。この場合には、リクエストされた情報（例えば、転送速度及び全てのディスクドライブの記憶容量）は、Ｎｅｔｓｔａｔクラスとディスクドライブクラスとに関係する。従って、オブジェクトマネージャ２５０は、ステップ３０４において記憶された情報を使用して、コマンドトランスレータプロバイダ２４０がリクエストされた情報を取得することが可能であることを決定することができる。
【００４２】
ステップ３１０において、別の実施形態によれば、コマンドトランスレータプロバイダは、どのコマンドプロバイダが、リクエストされた情報を取得することができるを選択する。更に別の実施形態によれば、コマンドトランスレータプロバイダ２４０は、記憶されたクラスに基づいて、どのコマンドプロバイダ２４２、２４４、２４６、２４８が、リクエストされた情報を得るかを決定する。例えば、コマンドトランスレータプロバイダ２４０は、ステップ３０４において記憶された情報を使用して、コマンドプロバイダ２４４が転送速度についての情報を提供することが可能であることを決定する。同様に、コマンドトランスレータプロバイダ２４０は、予め記憶された情報を使用して、コマンドプロバイダ２４６が全てのディスクドライブの記憶容量についての情報を提供することが可能であることを決定することができる。
【００４３】
ステップ３１２において、更に別の実施形態によれば、選択されたコマンドプロバイダが、システムについての情報をリクエストする。更に別の実施形態によれば、選択されたコマンドプロバイダ２４４、２４６によって、固有インターフェース２３４、２３６の実行が、固有インターフェース２３４、２３６からの出力をそれぞれ得ることができる。その出力は、特に、リクエストされた情報を含むことができる。例を続けると、固有インターフェース２３４からの出力は、転送速度を含むことができ、固有インターフェース２３６の出力は、ディスクドライブＡ、Ｂ、及びＣの記憶容量を含むことができる。
【００４４】
一実施形態によれば、コマンドプロバイダ２４４、２４６はそれぞれ、固有インターフェース２３４、２３６からの出力をパーズすることができ、転送速度及び記憶容量のような値を、表１において示されるフォーマットのような共通フォーマットで、コマンドトランスレータプロバイダ２４０に提供することができる。この場合には、コマンドプロバイダ２４４は、表１において示される出力のような出力を提供することができ、ここで、属性（表１の１行目）は、「転送速度」であり、その値（表１の１行目）は、転送速度の値である。同様に、コマンドプロバイダ２４６は、表１において示される出力のような出力を提供することができ、ここで、属性（表1の１行目）は、「記憶容量」であり、その値（表１の１行目）は、ディスクドライブＡ、Ｂ、Ｃの記憶容量の値である（以下、本明細書において「共通フォーマットでのＮｅｔｓｔａｔ出力」と呼ばれる）。アプリケーション１８０は、システム２２４がサポートする全てのディスクドライブに対する記憶容量をリクエストしたため、コマンドプロバイダ２４６は、ディスクドライブＡ、Ｂ、及びＣに対する３組の出力（以下、本明細書において「共通フォーマットでのディスクドライブ出力」と呼ばれる）を提供することができる。
【００４５】
ステップ３１４において、一実施形態によれば、コマンドトランスレータプロバイダは、システムについての情報をコマンドプロバイダから受け取る。例えば、コマンドトランスレータプロバイダ２４０は、コマンドプロバイダ２４４から共通フォーマットでのＮｅｔｓｔａｔ出力を受け取ることができ、ディスクドライブＡ、Ｂ、及びＣに対する、共通フォーマットでの３つのディスクドライブ出力を受け取ることができる。
【００４６】
ステップ３１６において、更に別の実施形態によれば、コマンドトランスレータプロバイダは、システムについての情報を、容易にアクセス可能なデータ構造で格納する。例えば、更に別の実施形態によれば、コマンドトランスレータプロバイダ２４０は、出力（例えば、共通フォーマットでのＮｅｔｓｔａｔ出力、及び共通フォーマットでの３つのディスクドライブ出力）を、オブジェクトマネージャ２５０が容易にアクセスすることができるデータ構造で格納することができる。そのデータ構造は、Ｎｅｔｓｔａｔクラス及びディスクドライブクラスのようなクラスのインスタンスとすることができる。
【００４７】
例を続けると、コマンドトランスレータプロバイダ２４０は、Ｎｅｔｓｔａｔクラスの1つのインスタンスを作成することができ、共通フォーマットでのＮｅｔｓｔａｔ出力からの値によって属性を初期化することができる。同様に、コマンドトランスレータプロバイダ２４０は、ディスクドライブクラスの３つのインスタンスを作成することができ、共通フォーマットでのディスクドライブ出力からの値によって属性を初期化することができる。
【００４８】
別の実施形態によれば、クラスのインスタンス内に格納された情報は、情報のタイプ（又は類型）である。例えば、Ｎｅｔｓｔａｔクラスのインスタンス内に格納された情報は、あるタイプの情報であるのに対し、ディスクドライブクラスのインスタンス内に格納された情報は、別のタイプの情報である。
【００４９】
オブジェクトマネージャ２５０は、一実施形態によれば、１つか又は複数のシステム２２２、２２４からの情報のコレクタとすることができる。例えば、この動作の例におけるオブジェクトマネージャ２５０は、システム２２２についてのＮｅｔｓｔａｔコマンドからの収集された情報と、システム２２４についてのディスクドライブＡＰＩからの情報とを有する。更に、別の実施形態によれば、オブジェクトマネージャ２５０は、どの情報をクライアント１７０がリクエストしたかに基づいて、収集した情報うちのどの部分が、クライアント１７０に提供されるかをフィルタリングすることができる。例えば、クライアント１７０が、ステップ３０６において、転送速度と、全てのディスクドライブについての記憶容量とをリクエストしたとする。オブジェクトマネージャ２５０は、Ｎｅｔｓｔａｔクラスの１つのインスタンスから転送速度を取り出すことができ、且つ、ディスクドライブクラスの３つのインスタンスから記憶容量を取り出すことができ、クエリ１９２に応答して、これらの値をクライアント１７０上のアプリケーション１８０に提供することができる。
【００５０】
［結論］
図１において示されるような従来技術において、プロバイダ１３２、１３４、１３６は、オブジェクトマネージャ１５０と同じ言語でコーディングされる。本発明の一実施形態によれば、コマンドプロバイダ２４２、２４４、２４６、２４８（図２）は、スクリプト言語を使用してコーディングされる。結果として、システム２２２、２２４を組み込む企業で働くプログラマは、彼らが選んだ任意のスクリプト言語でコマンドプロバイダ２４２、２４４、２４６、２４８をコーディングすることができる。
【００５１】
更に、コマンドプロバイダ２４２、２４４、２４６、２４８はスクリプトであるため、それらがオブジェクトマネージャ２５０と同じアドレス空間２６０内に常駐することを必要としない。結果として、コマンドプロバイダ２４２、２４４、２４６、２４８の品質は、オブジェクトマネージャ２５０の品質に対して悪影響を及ぼさない。
【００５２】
コマンドプロバイダ２４２、２４４、２４６、２４８はスクリプトであるため、それらを素早くコーディングすることができるのみならず、プログラマがそれらコマンドプロバイダをデバッグ中にそれらを修正する度に、それらが再コンパイルされ、リンク編集され、及び再インストールされることを必要としない。従って、開発時間が節約される。例えば、通常の従来技術のプロバイダ１３２、１３４、１３６は、組み込みに１週間かかる可能性があるが、類似した機能を有する本発明のコマンドプロバイダ２４２、２４４、２４６、２４８は、組み込みにたった１日しかかからない可能性がある。
【００５３】
更に、従来技術のプロバイダ１３２、１３４、１３６をテストするために、アプリケーション１８０は、クエリ１９２、１９４を発行することを必要とする。しかしながら、一実施形態によれば、コマンドプロバイダ２４２、２４４、２４６、２４８は、クライアント１７０上のアプリケーション１８０が無くてもテストされることが可能であり、他のコマンドプロバイダ２４２、２４４、２４６、２４８のような、及び更にはオブジェクトマネージャ２５０のような他のコードから独立してテストされることが可能である。例えば、スクリプト（例えば、コマンドプロバイダ２４４〜２４８）は、これらスクリプトを実行してその出力を詳細に調べることによってテストされることが可能である。従って、（オブジェクトマネージャ２５０か又はアプリケーション１８０のような）その他のコードが中断した場合に、コマンドプロバイダ２４２、２４４、２４６、２４８のテストが停止させられる必要がない。
【図面の簡単な説明】
【００５４】
【図１】システムについての情報を取得するための従来技術のクライアント−サーバシステムのブロック図を示す。
【図２】本発明の実施形態による、スクリプトを使用してシステムについての情報を取得するための例示的なクライアント−サーバシステムのブロック図である。
【図３】本発明の実施形態による、スクリプトを使用してシステムについての情報を取得するためのフローチャート３００を示す。
【符号の説明】
【００５５】
１７０  クライアント
２２２  システム、コンピュータシステム
２２４  システム、コンピュータシステム
２３２  固有インターフェース
２３４  固有インターフェース
２３６  固有インターフェース
２３８  固有インターフェース
２４０  コマンドトランスレータプロバイダ、トランスレータ
２４２  コマンドプロバイダ、スクリプト
２４４  コマンドプロバイダ、スクリプト
２４６  コマンドプロバイダ、スクリプト
２４８  コマンドプロバイダ、スクリプト
２５０  オブジェクトマネージャ
【図１】
2005339559.tif 000005
【図２】
2005339559.tif 000006
【図３】
2005339559.tif 000007