(57)【特許請求の範囲】
【請求項１】
分散システム（１０）を動作させる方法であって、前記分散システム（１０）は、オブジェクトを記憶するメモリ装置（１６）と、プロセスを実行するプロセッサ（１４）と、内部状態を有する管理コンポーネントとを備え、前記方法は、前記プロセッサによる、
前記管理コンポーネントの前記内部状態を有するオブジェクトを前記メモリ装置（１６）に記憶するステップであって、該オブジェクトは前記分散ネームスペース（２８）において前記プロセスにとってアクセス可能であるインターフェースをサポートする、ステップと、
前記プロセスによって、前記管理コンポーネントの前記内部状態にアクセスするために前記オブジェクトのインターフェースを通じて前記オブジェクトにアクセスするステップと、
により特徴付けられる、分散ネームスペース（２８）のオブジェクトを前記プロセスに対してアクセス可能にするステップ
を備えることを特徴とする方法。
【請求項２】
前記オブジェクトは、前記オブジェクトにアクセスするためのインターフェースをサポートすることを特徴とする請求項１に記載の方法。
【請求項３】
前記オブジェクトは、前記オブジェクトがＩＵｎｋｏｗｎインターフェースと呼ばれる特定のインターフェースをサポートするかどうか問い合わせるためのインターフェースをサポートすることを特徴とする請求項１または請求項２に記載の方法。
【請求項４】
前記オブジェクトは、前記オブジェクトにモニカを結合すための、ＩＭｏｎｉｋｅｒインターフェースと呼ばれるインターフェースをサポートし、前記モニカは、オブジェクトへのポインタを含むことを特徴とする請求項１から請求項３に記載の方法。
【請求項５】
前記管理コンポーネントを管理するシステム管理オブジェクトを前記メモリ装置（１６）に記憶するステップをさらに備えることを特徴とする請求項１から請求項４に記載の方法。
【請求項６】
前記システム管理オブジェクトを使用して前記管理コンポーネントを管理するステップをさらに備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記プロセッサにより実行されるものとして、前記分散ネームスペースにオブジェクトの名前を組織化するためのネームサービスを提供するステップをさらに備えることを特徴とする請求項１から請求項６に記載の方法。
【請求項８】
前記管理コンポーネントを複数のサブコンポーネントに分割するステップであって、各サブコンポーネントが内部状態を有するステップと、
前記サブコンポーネントの各々の内部状態を前記メモリ装置（１６）内の別々のオブジェクトに記憶するステップであって、各オブジェクトが前記分散ネームスペース（２８）において前記プロセスにとってアクセス可能であるステップと
をさらに備えることを特徴とする請求項１から請求項７に記載の方法。
【請求項９】
前記管理コンポーネントの内部状態を記憶する前記オブジェクトを介して、前記サブコンポーネントの内部状態を記憶する前記オブジェクトがアクセスされうるように、前記管理コンポーネントの内部状態を記憶する前記オブジェクトに前記サブコンポーネントの内部状態を記憶するオブジェクトをカプセル化するステップをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
前記分散システム（１０）は、
内部状態を有する第２の管理コンポーネントをさらに備え、
前記方法は、
前記第２の管理コンポーネントの内部状態を有するオブジェクトを前記メモリ装置（１６）に記憶するステップであって、該オブジェクトは前記分散ネームスペース（２８）において前記プロセスにとってアクセス可能であるステップをさらに備えることを特徴とする請求項１から請求項８に記載の方法。
【請求項１１】
前記分散システム（１０）は、
前記プロセスが前記オブジェクトを記憶する処理システムとは異なる処理システム上で動作するように、
リモートプロシージャコール設備と、
前記プロセッサ（１４）を備え、前記プロセスが動作する第１のデータ処理システム（１１）と、
前記メモリ装置（１６）を備える第２のデータ処理システム（１１）とをさらに備え、
前記方法は、
前記プロセスにおいて前記コンポーネントの前記内部状態へのアクセスをリクエストするステップと、
アクセスをリクエストする前記ステップに応答して、前記プロセスの代わりに前記オブジェクトにアクセスするステップを実行するためのリモートプロシージャコール設備を使用してリモートプロシージャコールを実行するステップをさらに備えることを特徴とする請求項１から請求項１０に記載の方法。
【請求項１２】
前記管理コンポーネントはプログラムであり、
前記方法は、
前記分散ネームスペース（２８）においてアクセス可能である変数とするように、前記プログラムにおいて前記変数を宣言するステップと、
前記変数に値を割り当てるように前記プログラムを実行するステップと、前記変数の値を前記オブジェクトに記憶するステップとをさらに備えることを特徴とする請求項１から請求項１１に記載の方法。
【請求項１３】
前記変数は、カウンタであり、
前記プログラムを実行するステップは、所定の量ずつ前記変数を増加させるステップをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記プログラムを実行するステップは、前記プログラムの状態を特定する値を前記変数に割り当てるステップをさらに含むことを特徴とする請求項１２または請求項１３に記載の方法。
【請求項１５】
前記管理コンポーネントは、データ処理資源であり、
前記方法は、前記データ処理資源をオブジェクトとしてモデリングするステップをさらに備えることを特徴とする請求項１から請求項１０に記載の方法。
【請求項１６】
前記データ処理資源は、ハードウェアコンポーネントを含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記データ処理資源は、ソフトウェアコンポーネントを含むことを特徴とする請求項１５または請求項１６に記載の方法。
【請求項１８】
オブジェクトを記憶するメモリ装置（１６）と、
プロセスを実行するプロセッサ（１４）と、
内部状態を有する管理コンポーネントと、
前記管理コンポーネントの内部状態を有するオブジェクトを前記メモリ装置（１６）に記憶する手段であって、該オブジェクトは前記分散ネームスペース（２８）において前記プロセスにとってアクセス可能であるインターフェースをサポートする、手段と、
前記プロセスによって前記管理コンポーネントの内部状態にアクセスするために前記オブジェクトのインターフェースを通じて前記オブジェクトにアクセスする手段と、
により特徴付けられる、分散ネームスペース（２８）においてオブジェクトをプロセスに対しアクセス可能にする手段を備えることを特徴とする分散システム（１０）。
【請求項１９】
前記オブジェクトは、前記オブジェクトにアクセスするためのインターフェースをサポートすることを特徴とする請求項１８に記載の分散システム。
【請求項２０】
前記オブジェクトは、前記オブジェクトがＩＵｎｋｏｗｎインターフェースと呼ばれる特定のインターフェースをサポートするかどうか問い合わせるためのインターフェースをサポートすることを特徴とする請求項１８または請求項１９に記載の分散システム。
【請求項２１】
前記オブジェクトは、前記オブジェクトにモニカを結合するための、ＩＭｏｎｉｋｅｒインターフェースと呼ばれるインターフェースをサポートし、前記モニカは、オブジェクトへのポインタを含むことを特徴とする請求項１８から請求項２０に記載の分散システム。
【請求項２２】
前記管理コンポーネントを管理するシステム管理オブジェクトを前記メモリ装置（１６）に記憶する手段をさらに備えることを特徴とする請求項１８から請求項２１に記載の分散システム。
【請求項２３】
前記システム管理オブジェクトを使用して前記管理コンポーネントを管理する手段をさらに備えることを特徴とする請求項２２に記載の分散システム（１０）。
【請求項２４】
前記分散ネームスペースにオブジェクトの名前を組織化するためのネームサービスを提供する手段（２４）をさらに備えることを特徴とする請求項１８から請求項２３に記載の分散システム（１０）。
【請求項２５】
前記管理コンポーネントを複数のサブコンポーネントに分割する手段であって、各サブコンポーネントが内部状態を有する手段と、
前記サブコンポーネントの各々の内部状態を前記メモリ装置（１６）内の別々のオブジェクトに記憶する手段であって、各オブジェクトが前記分散ネームスペース（２８）において前記プロセスにとってアクセス可能である手段と
をさらに備えることを特徴とする請求項１８から請求項２４に記載の分散システム（１０）。
【請求項２６】
前記管理コンポーネントの内部状態を記憶する前記オブジェクトを介して、前記サブコンポーネントの内部状態を記憶する前記オブジェクトがアクセスされうるように、前記管理コンポーネントの内部状態を記憶する前記オブジェクトに前記サブコンポーネントの内部状態を記憶するオブジェクトをカプセル化する手段をさらに備えることを特徴とする請求項２５に記載の分散システム（１０）。
【請求項２７】
内部状態を有する第２の管理コンポーネントと、
前記第２の管理コンポーネントの内部状態を有するオブジェクトを前記メモリ装置（１６）に記憶する手段であって、該オブジェクトは前記分散ネームスペース（２８）において前記プロセスにとってアクセス可能である手段をさらに備えることを特徴とする請求項１８から請求項２６に記載の分散システム（１０）。
【請求項２８】
前記プロセスが前記オブジェクトを記憶する処理システムとは異なる処理システム上で動作するように、
リモートプロシージャコール設備と、
前記プロセッサ（１４）を備え、前記プロセスが動作する第１のデータ処理システム（１１）と、
前記メモリ装置（１６）を備える第２のデータ処理システム（１１）と、
前記プロセスにおいて前記コンポーネントの前記内部状態へのアクセスをリクエストする手段と、
アクセスをリクエストする前記手段に応答して、前記プロセスの代わりに前記オブジェクトにアクセスする手段を動作させるためのリモートプロシージャコール設備を使用してリモートプロシージャコールを実行する手段とをさらに備えることを特徴とする請求項１８から請求項２７に記載の分散システム（１０）。
【請求項２９】
前記管理コンポーネントはプログラムであり、
前記分散システム（１０）は、
前記分散ネームスペース（２８）においてアクセス可能である変数とするように、前記プログラムにおいて前記変数を宣言する手段と、
前記変数に値を割り当てるように前記プログラムを実行する手段と、
前記変数の値を前記オブジェクトに記憶する手段とをさらに備えることを特徴とする請求項１８から請求項２８に記載の分散システム。
【請求項３０】
前記変数は、カウンタであり、
前記プログラムを実行する前記手段は、所定の量ずつ前記変数を増加させる手段をさらに含むことを特徴とする請求項２９に記載の分散システム（１０）。
【請求項３１】
前記プログラムを実行する前記手段は、前記プログラムの状態を特定する値を前記変数に割り当てる手段をさらに含むことを特徴とする請求項２９または請求項３０に記載の分散システム（１０）。
【請求項３２】
前記管理コンポーネントは、データ処理資源であり、
前記分散システム（１０）は、前記データ処理資源をオブジェクトとしてモデリングする手段をさらに備えることを特徴とする請求項１８から請求項２８に記載の分散システム。
【請求項３３】
前記データ処理資源は、ハードウェアコンポーネントを含むことを特徴とする請求項３２に記載の分散システム。
【請求項３４】
前記データ処理資源は、ソフトウェアコンポーネントを含むことを特徴とする請求項３２または請求項３３に記載の分散システム。
【請求項３５】
基底オブジェクトモデルおよび内部状態を有する管理コンポーネント（２６）を有するオペレーティングシステム（２４）を備えるデータ処理システム（１０）において使用する、システム管理サービスを基底オブジェクトモデルに統合する方法であって、
基底オブジェクトモデルに準拠し、インターフェースをサポートするシステム管理オブジェクト（３２，３４）を提供するステップであって、前記システム管理オブジェクト（３２，３４）が、前記管理コンポーネント（２６）に関連付けられ、前記内部状態を記憶するステップと、
システム管理オブジェクト（３２，３４）をグローバルネームスペース（２８）においてプロセスに対しアクセス可能にするステップであって、前記プロセスは、前記基底オブジェクトモデルに準拠し、前記グローバルネームスペース（２８）を介して前記システム管理オブジェクト（３２，３４）にアクセスすることができるステップと、
前記グローバルネームスペースにおいて前記プロセスにとってアクセス可能である、前記インターフェースを通じた前記プロセスによる前記内部状態へのアクセスを有効にするステップと
を備えることを特徴とする方法。
【請求項３６】
基底オブジェクトモデルおよび内部状態を有する管理コンポーネント（２６）を有しシステム管理サービスを基底オブジェクトモデルに統合するためのオペレーティングシステム（２４）、を備えるデータ処理システム（１０）であって、
システム管理オブジェクト（３２，３４）が提供され、該システム管理オブジェクト（３２，３４）は、基底オブジェクトモデルに準拠してインターフェースをサポートし、該システム管理オブジェクト（３２，３４）は、管理コンポーネント（２６）に関係付けられ前記内部状態を記憶し、
前記システム管理オブジェクト（３２，３４）は、グローバルネームスペース（２８）においてプロセスに対しアクセス可能にされ、前記プロセスは、前記基底オブジェクトモデルに準拠し、前記グローバルネームスペース（２８）を通じて前記システム管理オブジェクト（３２，３４）にアクセスすることができ、
前記グローバルネームスペースにおいて前記プロセスにとってアクセス可能である前記インターフェースを通じて前記プロセスによる前記内部状態へのアクセスを有効にされることを特徴とするデータ処理システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、データ処理システム、更に言えば、基底システムオブジェクトモデル (underlying system object model) を備えたシステム管理サービスの統合 (integration)に関する。
【０００２】
【従来の技術】
システム管理機能がそれらの役割を適切に実行するよう、それらのシステム管理機能が管理するコンポーネントの内部状態は、複数の機能によって監視されなければならない。従来のシステムは、これらの管理コンポーネントの内部状態に対するアクセスを有してはいなかった。この結果、これらの従来装置にとって、これらのコンポーネントを管理することは度々困難なものとなっていた。ある従来装置は、内部状態情報に対する別個のフレームワークやアクセス技術を付加することによって、それらの管理コンポーネントについての情報に対するアクセスを増加させようと試みている。しかしながら、このような従来装置は、標準のユーザ可視システムインタフェース（user-visible system interfaces) やヒューマンインタフェースを通じて内部状態情報を一般的に利用可能とするようなものではなかった。
【０００３】
【発明の概要】
本発明の第１の特徴によれば、本発明の方法は、少なくとも１つのメモリデバイスと、プロセスを実行する複数のプロセッサとを有するような分散システムで実施される。この方法では、管理コンポーネントの内部状態がメモリデバイスの１つの、１つのオブジェクトとして表現される。このオブジェクトは、プロセッサ上のプロセスにとって可視（すなわち、アクセス可能）である。その後、このオブジェクトは、管理コンポーネントの内部状態を得るためにプロセスの１つのためにアクセスされる。管理コンポーネントは、単一のサブコンポーネント、若しくは複数のサブコンポーネントに区分けされる。各サブコンポーネントは、内部状態を有する。更に、この方法は、オブジェクトをそのコンポーネントに対するコンテナオブジェクトにカプセル化（encapsulating)する付加的な段階を含むこともできる。コンテナオブジェクトは、メモリデバイスの１つに記憶されており、プロセッサ上で実行されるプロセスにとって可視である。この方法は、管理するコンポーネントが複数であっても使用することができる。システム管理オブジェクトはメモリデバイスに記憶される。システム管理オブジェクトは管理コンポーネントを管理する。
【０００４】
本発明の他の特徴によれば、分散システムは、メモリデバイスと、プロセスを実行するプロセッサと、を含む。この分散システムはまた、内部状態を有した管理コンポーネントを含む。分散システムは、コンポーネントの内部状態をメモリデバイスにオブジェクトとして記憶する手段を含む。分散システムは、更に、オブジェクトを形成する手段を含んでおり、このオブジェクトは、プロセッサ上で実行されるプロセスによってアクセスされ得る。
本発明の他の特徴によれば、この方法は、リモートプロシージャコール設備と、第１のデータ処理システムと、第２のデータ処理システムとを有する分散システム上で実施される。第１のデータ処理システムは、プロセスを実行するプロセッサを含む。第２のデータ処理システムは、状態とメモリデバイスとを有するコンポーネントを含む。この方法では、オブジェクトは第２のデータ処理システムのメモリデバイスに記憶される。オブジェクトは、コンポーネントの状態を保持する。第１のデータ処理システムのプロセッサ上で実行中のプロセスは、オブジェクト内に保持されたコンポーネントの状態に対するアクセスをリクエストする。このリクエストに応答して、リモートプロシージャコールがリモートプロシージャコール設備を用いて実施され、オブジェクトに保持されたコンポーネントの状態に関する情報に対してのプロセスによってアクセスを得る。
【０００５】
本発明の他の特徴によれば、この方法は、ネームを有するオブジェクトを記憶する記憶デバイスと、状態を有するプログラムを実行するプロセッサと、オペレーティングシステムとを有する分散システムで実施される。オペレーティングシステムは、記憶デバイスに記憶されたオブジェクトのネームにグローバルネームスペースを提供するネームサービスを含む。この方法では、変数がプログラムで宣言される。この変数はグローバルネームスペースで利用することができる。プロセッサの１つでプログラムが実行されると、変数に値が割り当てられる。この値は、グローバルネームスペースにおいて可視であるようなオブジェクトに記憶される。この変数は、所定量でインクリメントされるカウンタや、所定の範囲でその値が変更されるメータや、プログラムに関する状態情報を保持する他の何らかの変数となり得る。
本発明の他の特報によれば、この方法は、データ処理資源や、少なくとも１つのメモリを有する分散システムで実施される。この方法では、ハードウエアコンポーネント、及び／又は、ソフトウエアコンポーネントを含むデータ処理資源が、ネームを有するオブジェクトとして設計される。ネームが付けられたオブジェクトはメモリデバイスに記憶される。ネームを有するシステム管理オブジェクトもまたメモリデバイスに記憶される。システム管理オブジェクトは、データ処理資源を管理するために使用される。
【０００６】
【実施例】
本発明の好ましい実施例は、基底システムオブジェクトモデルを有するシステム管理サービスを統合する。図１は、本発明の好ましい実施例を実施するための分散システム１０のブロック図を示す。当業者ならば、図１の分散システム１０は単に図示するためだけのものであって、本発明を他の分散システムで実施することも可能であることが分かるだろう。分散システム１０は、４つのデータ処理システム１１Ａ、１１Ｂ、１１Ｃ、１１Ｄを含む。データ処理システム１１Ａ、１１Ｂ、１１Ｃ、１１Ｄは、ローカルエリアネットワーク（ＬＡＮ）のようなネットワーク１２を介して互いに通信を行なう。
図２は、データ処理システム１１Ａのより詳細なブロック図を示す。以下の記述を簡単にするため、データ処理システム１１Ａ、１１Ｂ、１１Ｃ、１１Ｄは同様の構成を持つ。データ処理システム１１Ａは、中央処理装置（ＣＰＵ）１４と、メモリ１６と、キーボード１８と、マウス２０と、ビデオ表示装置２２を有する。メモリ１６は、オブジェクト指向オペレーティングシステム２４のコピーを保持する。オペレーティングシステム２４の別のコピーが、データ処理システム１１Ａ、１１Ｂ、１１Ｃ、１１Ｄの各々によって実行される（図１）。オペレーティングシステム２４は多数のサブシステムに分割される。このサブシステムには、システムのコンポーネントを管理することに応答することができるシステム管理サブシステムも含まれる。システム管理サブシステムが、以下の記述で中心となる。
【０００７】
本発明のより好ましい実施例がどのように動作するかを理解するには、先ず、ここで使用されているオブジェクト指向プログラミングの概念を理解することが必要である。好ましい実施例によって使用されている第１のオブジェクト指向概念は、「オブジェクト」の一般概念である。「オブジェクト」は、少なくとも２つの事項、即ち、オブジェクトの内部状態を特定するデータと、このデータ上で作用する機能との組合せであるエンティティである。オブジェクトは、データ構造と機能との組合せとして見ることもできる。これらの機能は、データ構造の要素にのみ作用するよう制限されている。
非常に関連した概念は、「インタフェース」の概念である。「インタフェース」は、ネーム（このネームはそのインタフェースの識別子である）付けされたユニットに構成された意味的に関連のある複数の機能の集合である（このネームは。定義によれば、インタフェースは例示（instantiation)を持たず（つまり、インタフェースは、インタフェースで識別された機能を実行するためのコードを含まない）、また、インタフェースは機能に対するシグネチャのセットを特定する。「例示」とは、オペレーションがオブジェクト上でインボウクされ得るよう、オブジェクトを表示するイン・メモリ構造を生成する処理のことをいう。オブジェクトがインタフェースを「支持する」と、そのオブジェクトは、インタフェースによって特定された機能にコードを与える。この結果、そのインタフェースを支持するオブジェクトは、そのインタフェースの機能を実施するコードの提供に応答することができる。提供されたコードは、インタフェースによって識別された機能のシグネチャに従わなければならない（つまり、コードは、インタフェースで識別されたものと同じパラメータと機能を有していなければならない）。故に、インタフェースを、オブジェクトが従う標準として見ることもできる。
【０００８】
好ましい実施例で用いられている他の概念は、「あだ名（moniker)」の一般概念である。「あだ名」は、オブジェクトに対する複合ネームであって、そのオブジェクトに対するポインタを含む。「あだ名」のより正式の定義は、ＩＭｏｎｉｋｅｒインタフェース（Microsoft OLE 2.0 プロトコルで特定されているような）を支持するオブジェクトである。ＩＭｏｎｉｋｅｒインタフェースは、あだ名をそのあだ名のポインタが指示するオブジェクトに結合する機能を含む。この結合はオブジェクトを実行状態とし、こうして、オブジェクトによって提供されたサービスがインボウクされる。本発明があだ名を用いる実施例に限定されるものでないことは明らかである。この好ましい実施例においてあだ名について記述したのは単に例示を行なうためである。
上述のように、本発明の好ましい実施例は、システム管理サブシステムを、オブジェクト指向オペレーティングシステム２４の基底オブジェクトモデルに統合する。言い換えれば、オペレーティングシステム１０が分散システム１０の複数のコンポーネントをオブジェクトとして設計し、システム管理サブシステムが複数のオブジェクトに統合されるのである。基底システムオブジェクトモデルを有するシステム管理サブシステムの統合は、システム管理機能へのアクセスに対する一体的なアプローチを提供する。更に、この統合は、オペレーティングシステム２４の他のサブシステムによって提供されるシステム管理サブシステムのツールの使用を容易にする。更にまた、この統合により、システム管理サブシステムは、オブジェクトとして設計された管理コンポーネントに関する内部状態情報に対するアクセスを容易に得ることができる。累積的な統合の結果、システム管理サブシステムに課された重荷は実質的に減少し、システム管理サブシステムに利用できるパワーは実質的に増大する。
【０００９】
システム管理は、本発明の好ましい実施例では、システム管理コンポーネントを構築することができるようにしてそれらのシステム管理コンポーネントを容易に管理できるようにすることにより、また、それらのシステム管理コンポーネントを管理するユーティリティを提供することにより、提供される。分散システム１０の各システムコンポーネントはオブジェクトとして設計されている。コンポーネントのサブシステムもまた、オブジェクトとして別個に設計することができる。システムコンポーネントは、それらのコンポーネントとサブコンポーネントとをグローバルネームスペースで可視であるようなオブジェクトにカプセル化することによって、管理可能とされる。サブシステムとコンポーネントは、状態情報を特定する特性を含む。状態情報はグローバル分散ネームスペースで可視であるようなオブジェクトに保持されているため、他のオブジェクトは状態情報に対するアクセスを得ることができる。更に、これらのコンポーネントとサブコンポーネントはオブジェクトとして設計されているため、それらは容易に配置され、またアクセスされる。一般に、各管理オブジェクトは、他のクライアントオブジェクトにサービスを提供するようなインタフェースを支持する。
【００１０】
【実施例】
好ましい実施例のシステム管理サブシステムのオペレーションは、おそらくは例を上げて説明するのが最も良いだろう。システム管理サブシステムは、データ処理システム１１Ａ、１１Ｂ、１１Ｃ、１１Ｄの１つ１つに隔離されているわけではなく、システム管理サブシステムの応答性をデータ処理システム１１Ａ、１１Ｂ、１１Ｃ、１１Ｄの間で共有し、データ処理システムはシステム管理を共同して実行する。図３に示されているように、システム管理機能を実行しているデータ処理システム１１Ａが、データ処理システム１１Ｂのメモリ１６’に遠隔的に保持されているファイルサーバ２６の状態についての付加的な情報を見つけ出そうとしていると仮定する。この例でシステム管理サブシステムが管理しようとしている管理コンポーネントはファイルサーバ２６である。ファイルサーバ２６の状態は、便利のため、多数のサブコンポーネントに区分けされている。特に、ファイルサーバ２６は、リクエストレシーバ、リクエストプロセッサ、および結果返却装置に区分けされている。リクエストレシーバは、ファイルサーバからサービスに関するリクエストを受け取るために応答する。リクエストプロセッサは、そのようなリクエストを処理するために応答することができ、結果返却装置は、そのサービスの結果をサービスをリクエストしたクライアントに戻すために応答することができる。
【００１１】
管理コンポーネントに含まれるサブコンポーネントのセットは同じままである必要はなく、サブコンポーネントは時間に対して動的に変化してもよいため、時間が進むにつれてサブコンポーネントは付加され、消去されることに注意すべきである。サブコンポーネントを階層的に構成してもよいことは明らかである。
データ処理システム１１ＢのＣＰＵ１４’は、ファイルサーバ２６とサブコンポーネントに関する情報を生成する。この情報は、図４に示されているように、ファイルサーバのためのオブジェクト３２と、このファイルサーバとそのサブコンポーネントに関する状態情報を保持するようなサブコンポーネントのためのオブジェクト３４Ａ、３４Ｂ、３４Ｃとを生成することにより、分散システム１０の他のコンポーネントに対しても利用可能とされる。これらのオブジェクト３２、３４Ａ、３４Ｂ、３４Ｃは、分散ネームスペース２８で可視である。分散システム１０のデータ処理システム１１Ａ、１１Ｂ、１１Ｃ、１１Ｄ（図１）は各々、分散ネームスペース２８のオブジェクトに対するアクセスを有する（図４）。分散ネームスペース２８は、データ処理システム１１Ａ、１１Ｂ、１１Ｃ、１１Ｄのそれぞれを設計するオブジェクト３０Ａ、３０Ｂ、３０Ｃ、３０Ｄも含む。
【００１２】
ファイルサーバオブジェクト３２は「コンテナ」である。コンテナは、他のオブジェクトを含むエンティティである。図４の例では、ファイルサーバオブジェクト３２が、ファイルサーバ２６の各サブコンポーネントのためのオブジェクト３４Ａ、３４Ｂ、３４Ｃを含むコンテナである。故に、管理コンポーネントは、管理オブジェクトのサブコンポーネントに対するオブジェクトを保持するようなコンテナオブジェクトとして設計されてもよい。
ファイルサーバオブジェクト３２は、分散ネームスペース２８の他のオブジェクトとは異なり、接合ポイントとして知られる特別なタイプのオブジェクトでもある。接合ポイントは、２つのネームスペースの間の接合として機能するオブジェクトである。ファイルサーバオブジェクト３２は、分散ネームスペースをサブコンポーネントオブジェクト３４Ａ、３４Ｂ、３４Ｃのネームスペースに接合する接合ポイントである。サブコンポーネント３４Ａ、３４Ｂ、３４Ｃに対するアクセスは、ファイルサーバコンテナオブジェクト３２を通じて行われる。サブコンポーネントオブジェクト３４Ａ、３４Ｂ、３４Ｃは各々、その構造を監視し且つ管理するためのインタフェースを支持する。更に、サブコンポーネントオブジェクト３４Ａ、３４Ｂ、３４Ｃは各々、そのオブジェクトに関連する各サブコンポーネントに関する状態情報を保持する。この状態情報は、サブコンポーネントオブジェクト３４Ａ、３４Ｂ、３４Ｃに記憶された適当なセットに保持されており、それはそこに含まれた状態情報を得るために質問されてもよい。
【００１３】
ファイルサーバオブジェクト３２のための接合ポイントは、ファイルサーバ３２のためにグローバルに唯一のＩＤ（ＧＵＩＤ）を記憶する。ＧＵＩＤは、分散ネームスペース２８のファイルサーバオブジェクト３２を唯一つに識別するために用いられる。更に、ファイルサーバ２６の「エージェント」のための現在のリモートプロシージャコール（ＲＰＣ）アドレスがファイルサーバオブジェクト３２に記憶される。エージェントは、オペレーティングシステム２４によって提供されるようなライブラリコードの本体であり、多数の目的のために機能する。この目的には、サブコンポーネント３４Ａ、３４Ｂ、３４Ｃを分散グローバルネームスペース２８で可視となるようにすることも含まれる。エージェントはまた、ファイルサーバとそのサブコンポーネントのためにリモートプロシージャコールを形成するリモートプロシージャコール（ＲＰＣ）サーバを提供する。ファイルサーバのような管理コンポーネントと、そのエージャントとの間には、直接の１対１対応が存在する。オペレーティングシステム２４は、ユーザに対して、新たなエージェントを形成することを可能とし、管理コンポーネントやサブコンポーネントのためのオブジェクトを形成することを可能とし、管理コンポーネントやサブコンポーネントのためのオブジェクトを消去することを可能とし、更に、管理コンポーネントやサブコンポーネント上のオペレーションに対して応答を与えることを可能とする、アプリケーションプログラムインタフェース（ＡＰＩ）を提供する。エージェントは、また、管理オブジェクトの所定の特性値を検索することもできるし、管理オブジェクトに保持された特性値を変更することもできる。
図４を参照して、データ処理システム１１Ａがリクエストプロセッササブコンポーネントオブジェクト３４Ｂに対するアクセスを要求していると仮定する。図５は、リクエストプロセッサオブジェクト３４Ｂに保持された状態情報に対するアクセスを得るために実行されるステップのフローチャートを示す。先ず、データ処理システム１１Ａが、リクエストプロセッササブコンポーネントオブジェクト３４Ｂに保持された状態情報に対するアクセスを要求する（図５のステップ４）。オペレーティングシステム２４（図２）は、リクエストプロセッササブコンポーネントオブジェクト３４Ｂがデータ処理システム１１Ｂに記憶されたオブジェクトであることに気付く。この結果、サブコンポーネント３４Ａ、３４Ｂ、３４Ｃに対するエージェントが、オペレーティングシステム２４の一部として提供されたＲＰＣ設備を用いて、データ処理システム１１Ｂ上に呼び出される。エージェントは、データをパッケージングし且つデータ処理システム１１Ｂに対するＲＰＣコールを形成するためのＲＰＣ設備を用いるような、ＲＰＣスタブルーチンをロードする。２セットのスタブルーチンがロードされる。
【００１４】
第１に、スタブルーチンの１つのセットがＲＰＣコールを形成するためにデータ処理システム１１Ａにロードされ、第２に、スタブルーチンの１つのセットがデータ処理システム１１Ａに対するコールバックを形成するためにデータ処理システム１１Ｂにロードされる（図５のステップ４２）。データ処理システム１１ＡのＲＰＣスタブルーチンが、エージェントのＲＰＣサーバをインボウクするために実行され、ＲＰＣコールを形成する（ステップ４４）。状態情報は、リクエストプロセッササブコンポーネントオブジェクト３４Ｂによって支持されたインタフェースのためのあだ名を最初に見つけることによって質問され、これによって、リクエストプロセッササブコンポーネントオブジェクトに保持された状態情報に質問することが可能とされる。あだ名は、ＱｕｅｒｙＩｎｔｅｒｆａｃｅ（）機能を用いて得られる。
分散ネームスペース２８の各オブジェクトは、定義により、ＩＵｎｋｎｏｗｎインタフェースを支持しなければならない（つまり、全てのオブジェクトが、ＩＵｎｋｎｏｗｎインタフェースを所有するインタフェースを支持する）。ＩＵｎｋｎｏｗｎインタフェースは、オブジェクトが特別なインタフェースを支持しているかどうかを質問するため、機能、ＱｕｅｒｙＩｎｔｅｒｆａｃｅ（）を含む。ＱｕｅｒｙＩｎｔｅｒｆａｃｅ（）機能は、機能を実施するため、コードに対するポインタを得る。一般に、オブジェクトによって支持されたインタフェースの一部である機能が呼び出されたときはいつでも、ＱｕｅｒｙＩｎｔｅｒｆａｃｅ（）機能が最初に呼び出されなければならない。
【００１５】
ＱｕｅｒｙＩｎｔｅｒｆａｃｅ（）を呼び出すことによって得られたあだ名は、リクエストプロセッササブコンポーネントオブジェクト３４Ｂ（図４）によって支持されたインタフェースの事例を指示する。その後、あだ名は、リクエストプロセッササブコンポーネントオブジェクト３４Ｂに保持された状態情報を質問するための機能をアクセスするために用いられる。
一旦データ処理システム１１Ｂにおいて状態情報が局部的に得られると、早期にロードされたＲＰＣスタブルーチンを用いて、データ処理システム１１Ａに対してコールバックが行われる（図５のステップ４８）。データ処理システム１１Ａは、その後、状態情報を受け取って、この状態情報をシステム管理機能のために使用する（図５のステップ５０）。
上述の例は、本発明の好ましい実施例がどのようにしてシステム管理作業を簡単にしているのかを示す。特に、本発明の好ましい実施例は、管理コンポーネントのための状態情報を分散ネームスペースで可視であるようなオブジェクトにカプセル化することによって、状態情報に対する遠隔アクセスを可能としている。更に、状態情報は基底システムオブジェクトモデルに統合されるため、状態情報を保持するオブジェクトは全てのオブジェクトタイプを利用することができるツールを用いて操作され且つ管理され得る。
【００１６】
本発明の好ましい実施例のオペレーティングシステム２４は、少なくとも２種類の「インストルメント」を提供する。インストルメントは変数であり、その値は分散ネームスペース２８において可視である。図６は、本発明の好ましい実施例においてインストルメントがどのように使用されるかを示すフローチャートである。先ず、アプリケーションプログラムで、変数がインストルメントとして宣言される（図６のステップ５２）。その後、アプリケーションプログラムは、その実行の間にインストルメントに値を割り当てる（ステップ５４）。インストルメントに割り当てられた値は、分散ネームスペース２８で可視であるような対応するオブジェクトにカプセル化される。故に、インストルメントの値は、対応するオブジェクトを質問することによって得ることができる。
インストルメントは、３つの種類で利用することができる。ユーザは、インストルメントのどの種類を自身が望んでいるのかを変数タイプ宣言で特定する。インストルメントの第１の種類はカウンタである。カウンタは、それがリセットされるまでその値を常に増加させる走行記録計に似た方法で動作する。同様に、インストルメントの第２の種類は、ある値の範囲の間で変動し得るメータと同じように動作するメータインストルメントである。
【００１７】
本発明の好ましい実施例は、状態情報を分散ネームスペース２８に配置するための付加的な機能も提供する。この機能は、ワークステイション管理エージェントとして知られている。ワークステイション管理エージェントは、ワークステイションの現在の状態を分散グローバルネームスペース２８に配置する。
本発明をその好ましい実施例を参照して記述してきたが、それにも係わらず、当業者ならば、特許請求の範囲で規定された本発明から逸脱することなくその形態や詳細を変更することができるだろう。例えば、本発明は、インタフェースやあだ名を使用せずに、他の代替の機能を使用することもできる。
【図面の簡単な説明】
【図１】本発明の好ましい実施例を実施する分散システムのブロック図。
【図２】図１の分散システムのデータ処理システムのブロック図。
【図３】図１の分散システムの２つのデータ処理システムをより詳細に示したブロック図。
【図４】本発明の好ましい実施例に従って発生された分散ネームスペースを示す図。
【図５】内部状態情報を図１の分散システムじゅうで共有することを可能とするために本発明の好ましい実施例によって実施される段階を示すフローチャート。
【図６】図１の分散システムでインストルメントを用いるために実施される段階を示すフローチャート。
【図１】
0003949180.tif 000002
【図２】
0003949180.tif 000003
【図３】
0003949180.tif 000004
【図４】
0003949180.tif 000005
【図５】
0003949180.tif 000006
【図６】
0003949180.tif 000007