(57)【特許請求の範囲】
【請求項１】
少なくとも一つの記憶装置と少なくとも一つのコンピュータシステムとを包含するコンポーネントを有する分散システムで用いる方法であって、分散ファイルシステムが、各々明確な名前が一つのファイルシステム構成だけを参照するファイルシステム構成の名前の分散名前スペースとファイルシステム構成にファイルを記憶する方法において、
前記ファイルシステム構成における前記記憶装置にファイルを記憶し、
ディレクトリサービスエントリが前記分散名前スペースにおいて名付けられるように、前記ファイルを記憶する前記ファイルシステム構成における前記記憶装置に前記ディレクトリサービスエントリを記憶し、
少なくとも幾つかの前記ディレクトリサービスエントリが、前記分散システムにおいて前記ファイルシステム構成をどの様に突き止めるかに関する情報を保持し、
第１のファイルシステム構成に記憶された情報を利用して、第２のファイルシステム構成を突き止める少なくとも一つのディレクトリサービスエントリを記憶する記憶装置における第１のファイルシステム構成に対してアクセスする、
ステップを有することを特徴とする方法。
【請求項２】
前記記憶装置に記憶されたファイルシステム構成にアクセスするためのコードを含むオペレーティングシステムを記憶装置に記憶するステップを更に有し、
少なくとも一つのディレクトリサービスエントリを記憶する記憶装置における第１のファイルシステム構成にアクセスする前記ステップが更に、
前記記憶装置に記憶されたファイルシステム構成にアクセスするために、前記分散システムで前記コードを実行して、前記第１のファイルシステム構成に記憶された情報を利用して前記第２のファイルシステム構成を突き止めるために少なくとも一つのディレクトリサービスエントリを記憶する前記記憶装置に記憶された前記第１のファイルシステム構成にアクセスするステップを更に有することを特徴とする請求項１に記載の方法。
【請求項３】
前記分散システムで前記記憶装置に記憶された前記ファイルシステム構成にアクセスする前記オペレーティングシステムに含まれた前記コードを実行して、ファイルを記憶する前記ファイルシステム構成の１つにアクセスするステップを更に有することを特徴とする請求項２記載の方法。
【請求項４】
ディレクトリサービスエントリを記憶する前記ステップは、各ディレクトリサービスエントリがプロパティを備えた別々のオブジェクトにカプセル化されたオブジェクトとして、前記記憶装置に、前記ディレクトリサービスエントリを記憶し、ファイルを記憶する前記ステップは、プロパティを備えたオブジェクトとして、前記記憶装置に、前記ファイルを記憶し、前記方法は、
クエリ機構を前記分散システムに提供し、
前記ディレクトリサービスエントリにてプロパティの第１の照会を実行するために前記クエリ機構を利用し、
前記ファイルでプロパティの第２の照会を実行するために前記クエリ機構を利用する、
ステップをさらに有することを特徴とする請求項１に記載の方法。
【請求項５】
ディレクトリサービスエントリを記憶する前記ステップは、各ディレクトリサービスエントリが別々のオブジェクトにカプセル化されるように、ディレクトリサービスエントリを前記記憶装置に記憶し、ファイルを記憶する前記ステップは、オブジェクトとして前記ファイルを前記記憶装置に記憶し、前記方法は、
少なくとも一つのディレクトリサービスエントリオブジェクトでファンクションを実行するためにアプリケーションプログラミングインターフェースを呼び出し、
ファイルを保持した少なくとも一つの前記オブジェクトでファンクションを実行するために前記アプリケーションプログラミングインターフェースを呼び出す、
ステップをさらに有することを特徴とする請求項１に記載の方法。
【請求項６】
前記分散システムは、第１及び第２のドメインを含むドメインに論理的に区分けされたリソースを有し、前記各ドメインは、少なくとも一つのコンピュータシステムを含み、ディレクトリサービスエントリを記憶する前記ステップは、各ドメインの選択されたコンピュータシステムにディレクトリサービスエントリの少なくとも一つのセットを記憶し、ファイルを記憶する前記ステップは、前記選択されたコンピュータシステムではない第２のドメインのコンピュータシステムにファイルを記憶し、前記方法は、
（ａ）前記第２のドメインにおいてディレクトリサービスエントリにアクセスするために、前記第１のドメインからリクエストを生成させるステップと、
（ｂ）前記ステップ（ａ）に応答して、前記第２のドメインに記憶されたファイルにアクセスするために前記第１のドメインにおけるコンピュータシステムからリクエストを生成させるステップと、
（ｃ）前記ステップ（ｂ）に応答して、前記第２のドメインにおいて選択されたマシンのディレクトリサービスエントリにアクセスするステップと、
（ｄ）前記第２のドメインの選択されたマシンのディレクトリサービスエントリにアクセスすることにより得られた情報を利用して選択されたコンピュータシステムではない第２のドメインのコンピュータに記憶されたファイルにアクセスするステップと、
をさらに有することを特徴とする請求項１に記載の方法。
【請求項７】
前記第２のドメインのディレクトリサービスエントリにアクセスするステップが更に、前記第１のドメインの代わりに活動する、前記第２のドメインでのエージントにより、前記第２のドメインのディレクトリサービスエントリにアクセスするステップを有することを特徴とする請求項６に記載の方法。
【請求項８】
前記分散システムは、前記記憶装置の一つを含む、リソースを有し、前記ディレクトリサービスエントリを記憶する前記ステップは、
第１のタイプのディレクトリサービスエントリを前記記憶装置に記憶し、前記第１のタイプのディレクトリサービスエントリが、リソースを記述したプロパティ値を保持し、
第２のタイプのディレクトリサービスエントリを前記記憶装置に記憶し、前記第２のタイプのディレクトリサービスエントリが、分散システム内のリソースをどの様に突き止めるのかに関する情報を保持し、単一の機構が、リソースのプロパティ値を照会するために第１のタイプのディレクトリサービスエントリと、前記分散システム内のリソースを突き止めるための第２のタイプのディレクトリサービスエントリの両方にアクセスするように使用されることを特徴とする請求項１に記載の方法。
【請求項９】
前記分散システムは、リソースを突き止めるためのロケータサービスを含む分散セキュリティシステムを更に備え、
ディレクトリサービスエントリを記憶する前記ステップは、前記分散システムの構造に関する情報を含むディレクトリサービスエントリを記憶し、前記方法は、
システムの初期化で、前記ディレクトリサービスエントリを突き止めるための前記分散セキュリティシステムのロケータサービスを使用し、
分散システムに包含された分散システムの構造に関する情報を得るために突き止められたディレクトリサービスエントリにアクセスし、
前記分散システムに関する分散名前スペースを構築するために前記ディレクトリサービスエントリを含む前記分散システムの構造に関する情報を利用する、
ステップをさらに有することを特徴とする請求項１に記載の方法。
【請求項１０】
前記分散システムは、セキュリティシステムを有し、前記方法は、
前記分散システム内のものを突き止めるためのセキュリティシステムの一部としてロケータサービスを提供し、
前記ディレクトリサービスエントリの選択された一つを突き止めるためのリクエストに応じて、前記ロケータサービスを使用する前記選択されたディレクトリサービスエントリを突き止める、
ステップを更に有することを特徴とする請求項１に記載の方法。
【請求項１１】
前記選択されたディレクトリサービスエントリが、いったん突き止められたならば、前記選択されたディレクトリサービスエントリにアクセスするステップを更に有することを特徴とする請求項１０に記載の方法。
【請求項１２】
前記分散システムは、前記記憶装置に記憶されたオブジェクトを操作するアプリケーションプログラムインターフェースを有し、前記方法は、
前記記憶装置に記憶されたディレクトリサービスオブジェクトを操作するためのリクエストをクライアントから受信し、
前記リクエストに応答して、
クライアントに代わってディレクトリサービスオブジェクトを操作するためにエージェントを活性化させ、
前記活性化されたエージェントの管理下で、前記ディレクトリサービスオブジェクトを操作するアプリケーションプログラミングインターフェースを呼び出すステップを有し、
クライアントが前記活性化されたエージェントを介して前記ディレクトリサービスオブジェクトを操作することを特徴とする請求項１に記載の方法。
【請求項１３】
秘密の表示を、前記ディレクトリサービスエントリの選択された一つに記憶するステップであって、前記秘密の表示は、前記選択されたディレクトリサービスエントリにアクセスする資格のあるユーザのみが知っている表示であるステップと、
前記選択されたディレクトリサービスエントリに記憶された前記秘密の表示を用いて、前記選択されたディレクトリサービスエントリにアクセスすることを試みるユーザが前記選択されたディレクトリサービスエントリにアクセスする資格があるか否かを判定するステップと
を更に有することを特徴とする請求項１に記載の方法。
【請求項１４】
ユーザについての確認情報を前記ディレクトリサービスエントリに記憶する前記ステップは、ユーザに対するパスワードを前記ディレクトリサービスエントリに記憶するステップを更に有することを特徴とする請求項１３に記載の方法。
【請求項１５】
ユーザについての確認情報を前記ディレクトリサービスエントリに記憶する前記ステップは、ユーザに対する資格照明を前記ディレクトリサービスエントリに記憶するステップを更に有することを特徴とする請求項１３に記載の方法。
【請求項１６】
請求項１に記載の方法を実行する分散システムであって、
プロセッサと、
記憶装置の分散セットと、
記憶装置のセットにおけるファイルシステム構成にファイルを記憶するための分散ファイルシステムと、
各々明確な名前が一つのファイルシステム構成だけを参照する、ファイルシステム構成を名前管理する分散名前スペースを提供する手段と、
ディレクトリサービスエントリが分散名前スペースによって名付けられ、記憶装置のセットにファイルを記憶するように使用されるように、同じファイルシステム構成に、分散ファイルシステムの構成を記述するディレクトリサービスエントリを記憶する手段と、
を有することを特徴とする分散システム。
【請求項１７】
ファイルを記憶するための前記手段が、前記記憶装置にオブジェクトとしてファイルを記憶し、
ディレクトリサービスエントリを記憶するための前記手段が、前記記憶装置のオブジェクトに前記ディレクトリサービスエントリを記憶することを特徴する請求項１６に記載の分散システム。
【請求項１８】
前記記憶されたファイルが前記コンピュータシステムのプロセスに対して可視状態であり、各々明確な名前が一つの記憶されたファイルだけを参照するように、前記記憶装置における前記記憶されたファイルの名前を、前記分散名前スペースに記憶し、
前記分散名前スペースに記憶されたファイルの名前を、ファイルのグループに論理的に区分けし、
ファイルの各グループに関し、関連したディレクトリサービスエントリのセットをファイルとして前記記憶装置に記憶し、前記ディレクトリサービスエントリが記憶されたファイルの位置を記述し、
ファイルの各グループに関し、関連したディレクトリサービスエントリの名前を、前記記憶装置に記憶された分散名前スペースにおけるグループに加える、
ステップを更に有することを特徴とする請求項１に記載の方法。
【請求項１９】
関連するディレクトリサービスエントリのセットをファイルとして、ファイルの各グループに関して前記記憶装置に記憶する前記ステップが更に、
ファイルの各グループに関して、関連するディレクトリサービスエントリのセットをオブジェクトとして、前記記憶装置に記憶するステップを有することを特徴とする請求項１８に記載の方法。
【請求項２０】
前記ディレクトリサービスエントリに保持されたディレクトリサービス情報を得るために、プロセスの一つにおけるディレクトリサービスエントリの一つを突き止めるステップを更に有することを特徴とする請求項１８に記載の方法。
【請求項２１】
各グループに関して関連したディレクトリサービスエントリのセットを前記記憶装置に記憶する前記ステップが更に、前記記憶装置におけるセキュリティエントリを、各グループに関するディレクトリサービスエントリとして前記記憶装置に記憶するステップを有することを特徴とする請求項１８に記載の方法。
【請求項２２】
ファイルを前記記憶装置に記憶する前記ステップが更に、ハードウェアコンポーネントの一つを形作る記憶装置に少なくとも一つのファイルを記憶するステップを有することを特徴とする請求項１８に記載の方法。
【請求項２３】
ファイルを前記記憶装置に記憶する前記ステップが更に、プロセスの一つに関する命令を保持する記憶装置に少なくとも一つのファイルを記憶するステップを有することを特徴とする請求項２２に記載の方法。
【請求項２４】
前記分散システムのファイルに関するツリー構造分散名前スペースを、前記記憶装置の少なくとも１つに記憶し、前記分散名前スペースがドメインに論理的に区分けされ、前記各ドメインが前記ツリー構造分散名前スペースのサブツリー構造を備え、
各ドメインに関するディレクトリサービスエントリのドメインセットを前記記憶装置の少なくとも１つに記憶し、前記ディレクトリサービスは、前記ドメインのツリー構造分散名前スペースのサブツリーと前記ドメインのリソースとを記述した情報を保持し、
選択されたデータ処理システムの一つに関するディレクトリサービスエントリのローカルセットを、前記選択されたデータ処理システムの記憶装置に記憶し、前記ディレクトリサービスエントリのローカルセットが、ディレクトリサービスエントリのドメインセットの少なくとも一部を包含し、
前記データ処理システムの選択された一つでディレクトリ情報を得るために、ディレクトリサービスエントリのローカルセットを使用し、
前記データ処理システムの選択された一つで前記ディレクトリサービスエントリのローカルセットに変化を局所的に作る、
ステップを更に有することを特徴とする請求項１に記載の方法。
【請求項２５】
前記ディレクトリサービスエントリのドメインセットが、前記ディレクトリサービスエントリのローカルセットに対して成された変化を含むように、前記ディレクトリサービスエントリのドメインセットと前記ディレクトリサービスエントリのローカルセットとを矛盾のないようにさせるステップを更に有することを特徴とする請求項２４に記載の方法。
【請求項２６】
各ドメインに関するディレクトリサービスエントリのドメインセットを前記記憶装置の少なくとも１つに記憶する前記ステップが更に、各ドメインに関するオブジェクトとして前記ディレクトリサービスエントリのドメインセットを前記記憶装置の少なくとも１つに記憶するステップを有することを特徴とする請求項２４に記載の方法。
【請求項２７】
前記ディレクトリサービスエントリのローカルセットを選択されたデータ処理システムの記憶装置に記憶するステップが更に、オブジェクトとしてディレクトリサービスエントリのローカルセットを前記選択されたデータ処理システムの記憶装置に記憶するステップを有することを特徴とする請求項２４に記載の方法。
【請求項２８】
各ディレクトリサービスエントリが別々のオブジェクトにカプセル化されるようなオブジェクトとして、ディレクトリサービスエントリのセットを、分散記憶装置に記憶し、各ディレクトリサービスエントリオブジェクトがプロパティを保持し、
選択されたディレクトリサービスエントリオブジェクトから少なくとも一つのプロパテ
ィを抽出するために、前記ディレクトリサービスエントリのセットの照会を実行し、
前記選択されたディレクトリサービスエントリから抽出されたプロパティを大域カタログに記憶する、
ステップを更に有することを特徴とする請求項１に記載の方法。
【請求項２９】
前記分散システムにわたって前記大域カタログを複製するステップを更に有することを特徴とする請求項２８に記載の方法。
【請求項３０】
前記大域カタログの一部として、各ディレクトリサービスエントリに対するリンクを、前記選択されたディレクトリサービスエントリに記憶するステップを更に有し、
前記リンクが、前記選択されたディレクトリサービスエントリへのアクセスを有効にさ
せることを特徴とする請求項２８に記載の方法。
【請求項３１】
少なくとも一つの記憶装置と少なくとも一つのコンピュータシステムとを包含するコンポーネントを備える分散システムであって、分散ファイルシステムが、各々明確な名前が一つのファイルシステム構成だけを参照するファイルシステム構成の名前の分散名前スペースとファイルシステム構成にファイルを記憶する分散システムにおいて、
前記ファイルシステム構成における前記記憶装置にファイルを記憶する手段と、
ディレクトリサービスエントリが前記分散名前スペースにおいて名付けられるように、前記ファイルを記憶する前記ファイルシステム構成における前記記憶装置に前記ディレクトリサービスエントリを記憶する手段と、
少なくとも幾つかの前記ディレクトリサービスエントリが、前記分散システムにおいて前記ファイルシステム構成をどの様に突き止めるかに関する情報を保持する手段と、
第１のファイルシステム構成に記憶された情報を利用して、第２のファイルシステム構成を突き止める少なくとも一つのディレクトリサービスエントリを記憶する記憶装置における第１のファイルシステム構成に対してアクセスする手段と
を備えることを特徴とする分散システム。
【請求項３２】
前記記憶装置に記憶されたファイルシステム構成にアクセスするためのコードを含むオペレーティングシステムを記憶装置に記憶する手段を更に備え、
少なくとも一つのディレクトリサービスエントリを記憶する記憶装置における第１のファイルシステム構成にアクセスする前記手段が更に、
前記記憶装置に記憶されたファイルシステム構成にアクセスするために、前記分散システムで前記コードを実行して、前記第１のファイルシステム構成に記憶された情報を利用して前記第２のファイルシステム構成を突き止めるために少なくとも一つのディレクトリサービスエントリを記憶する前記記憶装置に記憶された前記第１のファイルシステム構成にアクセスする手段を更に備えることを特徴とする請求項３１に記載の分散システム。
【請求項３３】
前記分散システムで前記記憶装置に記憶された前記ファイルシステム構成にアクセスする前記オペレーティングシステムに含まれた前記コードを実行して、ファイルを記憶する前記ファイルシステム構成の１つにアクセスする手段を更に備えることを特徴とする請求項３２記載の分散システム。
【請求項３４】
ディレクトリサービスエントリを記憶する前記手段は、各ディレクトリサービスエントリが別々のオブジェクトにカプセル化されるように、ディレクトリサービスエントリを前記記憶装置に記憶し、ファイルを記憶する前記手段は、オブジェクトとして前記ファイルを前記記憶装置に記憶し、前記分散システムは、
少なくとも一つのディレクトリサービスエントリオブジェクトでファンクションを実行するためにアプリケーションプログラミングインターフェースを呼び出す手段と、
ファイルを保持した少なくとも一つの前記オブジェクトでファンクションを実行するために前記アプリケーションプログラミングインターフェースを呼び出す手段と
をさらに備えることを特徴とする請求項３１に記載の分散システム。
【請求項３５】
前記分散システムは、前記記憶装置の一つを含む、リソースを有し、前記ディレクトリサービスエントリを記憶する前記手段は、
第１のタイプのディレクトリサービスエントリを前記記憶装置に記憶する手段であって、前記第１のタイプのディレクトリサービスエントリが、リソースを記述したプロパティ値を保持する手段と、
第２のタイプのディレクトリサービスエントリを前記記憶装置に記憶する手段であって、前記第２のタイプのディレクトリサービスエントリが、分散システム内のリソースをどの様に突き止めるのかに関する情報を保持する手段とを備え、
単一の機構が、リソースのプロパティ値を照会するために第１のタイプのディレクトリサービスエントリと、前記分散システム内のリソースを突き止めるための第２のタイプのディレクトリサービスエントリの両方にアクセスするように使用されることを特徴とする請求項３１に記載の分散システム。
【請求項３６】
前記記憶装置に記憶されたオブジェクトを操作するアプリケーションプログラムインターフェースと、
前記記憶装置に記憶されたディレクトリサービスオブジェクトを操作するためのリクエストをクライアントから受信する手段と、
前記リクエストに応答する手段と、
クライアントに代わってディレクトリサービスオブジェクトを操作するためにエージェントを活性化させる手段と、
前記活性化されたエージェントの管理下で、前記ディレクトリサービスオブジェクトを操作するアプリケーションプログラミングインターフェースを呼び出す手段とを備え、
クライアントが前記活性化されたエージェントを介して前記ディレクトリサービスオブジェクトを操作することを特徴とする請求項３１に記載の分散システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は一般にデータ処理システムに関し、特にディレクトリサービスのファイルシステムサービスとの統一に関する。
【０００２】
【従来の技術】
従来のオペレーティングシステムは一般に、ファイルシステムサービスとディレクトリサービスを独立したサブシステムで提供し、各々のサブシステムは別々のツールの集合と別々の名前スペースを必要としていた。その結果、それらの別々のサブシステムを維持するオーバーヘッドは非常に大きくなっていた。
【０００３】
【発明が解決しようとする課題】
従って本発明の目的は従来技術のその限界を克服することである。
【０００４】
【課題を解決するための手段】
本発明の１つの態様では、分散システムは少なくとも１つの記憶装置を含む構成要素を有している。特定の論理構造でファイルを記憶装置に記憶するこの分散システムで本発明の方法を実施する。記憶装置にはファイルを記憶する論理構造と同一の論理構造でディレクトリエントリをも記憶する。少なくとも一部のディレクトリエントリは分散システムで論理構造をどの様に探索するかに関する情報を保持する。論理構造の第１のものは記憶装置を通してアクセスする。論理構造の第１のものは少なくとも１つのディレクトリエントリを記憶し、そこに記憶した情報は第２の論理構造を探索するのに使用する。
【０００５】
【実施例】
本発明の実施例はディレクトリサービスをファイルシステムと統一するものである。本発明の実施例では、ディレクトリサービスエントリと他の種類のファイルはすべて分散名前スペースを共有し、同一アプリケーション・プログラム・インターフェイス（ＡＰＩ）で操作する「オブジェクト」となる。本発明の実施例では、ファイルとディレクトリサービスエントリの両方をオブジェクトとして扱うことで生じる機密問題を解決する方法を提供する。ディレクトリサービスエントリはファイルシステムの名前スペースに記憶し、ファイルシステムに対して名前サービスを提供する。
【０００６】
上述したように、本発明の実施例はディレクトリサービスエントリ並びにシステム内の他のファイルをオブジェクトとして扱う。それでも当業者は本発明はオブジェクト向け環境で実施する必要がないことが分かるであろう。本発明の別の実施例では、ディレクトリサービスエントリはオブジェクトとしてよりもファイル（システム内の他のファイルと同様に）として扱うことができる。
【０００７】
図１は本発明の実施例を実施する分散システム10のブロック図である。当業者には図１に示す分散システム10は単に例示的なもので、本発明を実施するのに他の分散システムを用いることができることが理解されよう。更に本発明は単一プロセッサシステムで実施することもできる。分散システム10にはコンピュータシステム12Ａ、12Ｂ、12Ｃ、12Ｄ、12Ｅが含まれている。コンピュータシステム12Ａ、12Ｂ、12Ｃ、12Ｄ、12Ｅはローカルエリアネットワーク（ＬＡＮ）などのネットワーク14で相互接続する。
【０００８】
図２はコンピュータシステム12Ａを更に詳細に示すブロック図である。他のコンピュータシステム12Ｂ、12Ｃ、12Ｄ、12Ｅはコンピュータシステム12Ａと同一構成を持つ必要はない。コンピュータシステム12Ａにはメモリ18とディスク記憶装置20にアクセスする中央演算処理装置（ＣＰＵ）16が含まれている。更にコンピュータシステム12Ａはキーボード22、マウス24、映像ディスプレイ26などのいくつかの入出力装置を含んでいる。図２に示すコンピュータシステム12Ａの構成要素は単に例示的なもので、他の構成要素を代わりに用いることができることを理解すべきである。
【０００９】
コンピュータシステム12Ａのメモリ18はオブジェクト向けソフトウエアシステム28のコピーを保持している。コンピュータシステム12Ｂ、12Ｃ、12Ｄ、12Ｅ（図１）も同様にこのオブジェクト向けソフトウエアシステム28のコピーを保持することができる（しかし全てのコンピュータシステムがオブジェクト向けソフトウエアシステムのコピーを保持する必要はない）。ディレクトリサービスのファイルシステムとの統一は、オブジェクト向けソフトウエアシステム28を通して実現する。オブジェクト向けソフトウエアシステム28はファイルシステム、ディレクトリサービス及び機密システムを含んでいる。ファイルシステムは、共通譲渡人に譲渡され、その内容をここに参照として明示的に組み込んだ「分散ファイルシステム」の名称の同時係属出願でより詳細に記述されている。
【００１０】
本発明の実施例を完全に理解するために、最初に特定の概念を見直すのが有用であろう。そのような１つの概念が「オブジェクト」の概念である。オブジェクトとはデータを保持するデータ構造を含む論理構造であり、そのデータ構造で保持されるデータ上で作動する機能を含めることができる。オブジェクトはデータ（属性情報など）だけを保持でき、データを操作するコードは含まない。オブジェクトはファイルデータ及びファイル挙動を単一の論理エンティティに要約するのに有用な構造である。本発明の実施例では、オブジェクトのデータ構造は属性ないし属性の集合を保持する。
【００１１】
オブジェクトは「クラス」に編成する。オブジェクトクラスは類似の属性と共通の挙動を有するオブジェクトのグループである。各々のオブジェクトはクラスのメンバであり、オブジェクトクラスのインスタンスを構成する。クラスの全てのメンバは少なくともオブジェクトクラスに対して定義された属性を含むが、それらの属性の値はオブジェクトクラスのオブジェクト間で変化することがある。
ディレクトリサービスエントリは分散システム10の他のオブジェクトとそれらのクラスにより区別する。
【００１２】
本発明の実施例で利用する他の概念は「インターフェイス」の概念である。インターフェイスとは１組の論理的に関係した機能の指定された集合である。インターフェイスは１組の機能の特徴（パラメータなど）をリストする。インターフェイスは機能を実施するコードを提供せず、むしろ機能を実施するコードはオブジェクトにより提供される。インターフェイスの機能を実施するコードを提供するオブジェクトはインターフェイスを「支援する」という。インターフェイスを支援するオブジェクトにより与えられるコードはインターフェイス内で提供される特徴に従ったものでなければならない。Ｃ++プログラミング言語では、インターフェイスは１組の仮想機能からなる。
【００１３】
本発明の実施例を理解するにはいくつかの追加の概念を検討する必要がある。
それらの概念は本発明の実施例で採用する管理モデルに関連している。この管理モデルでは、分散システム10は論理的にいくつかの「ドメイン」に区分される。ドメインとはユーザ、サービス、オブジェクト、マシンを含む自己充足的な資源の集合である。図３は３つだけのドメイン30Ａ、30Ｂ、30Ｃを有する分散システムの単純化した例である。ドメインは資源の分散システム内の論理装置への基準化（即ち新しい資源のシステムへの追加）と密封とを容易にするために設ける。
ドメインは管理、命名、機密のための単一のエンティティと見られる。各々のドメインはそれ自身の管理及び機密ポリシーを実施する。資源の密封によりドメインは他のドメインに関して自律的に作用することができる。
【００１４】
上記の説明から分散システム10を通していくつかのオブジェクトが存在することが分かる。図４は分散名前スペース33の１例を示したものである。この図は分散システム10の構成要素を示すための図３と混同しないようにする必要がある。
分散名前スペース33は論理的なツリー状の構造である。分散名前スペース33には各々のドメイン35Ａ、35Ｂ、35Ｃ、35Ｄの一部であるオブジェクト37の名前が含まれる。各々のドメイン内のオブジェクトの集合は分散名前スペース33のサブツリーである別のドメイン名前スペースを示す。
【００１５】
「ボリューム」はシステムにより記憶されるオブジェクトの論理的な区分であるファイルシステム構成概念である。各々のボリュームはオブジェクトのグループを保持している。各々のボリュームはそれと関連したボリュームオブジェクトを有している。ボリュームオブジェクトは経路名を実際のボリュームと関連付ける。各々のドメインはドメインに対してローカルな名前スペースを定義する（即ちどのボリュームがドメインに対してローカルか）それ自身のボリュームオブジェクトを有している。
【００１６】
各々のボリュームオブジェクトはボリュームのエントリ経路を記憶する（即ちボリュームの名前スペースのルートに対する論理的経路名）。更に各々のボリュームオブジェクトは同一ドメイン内の他のボリュームのエントリ経路並びにすぐ上位ないし下位のドメインのエントリ経路を記憶する。エントリ経路はボリューム及び隣接ボリュームの名前スペースをトラバースする際に有用である。
【００１７】
図５はドメイン30Ｃ（図３）に含まれるものをより詳細に示している。図５は分散名前スペース33を示すためのものである図４と混同しないようにすべきである。図５はドメイン内に含まれる構成要素を示している。図５のドメイン30Ｃ内に示されるエンティティは単に例示的なもので各々のドメインがそれらの構成要素を含まなければならないことを意味するものではない。しかし各々のドメインは少なくとも１つのドメインコントローラを含んでいる。ドメイン30Ｃにはドメインコントローラ34Ａとドメインコントローラ34Ｂの２つのドメインコントローラが含まれている。ドメインコントローラはドメインコントローラ資源の使用可能性を増し、ロードバランスを提供するために備えている。各々のドメインコントローラ34Ａと34Ｂは区分されたマシンである。ドメインコントローラ34Ａ、34Ｂの役割は、以下に詳細に説明する。ドメイン30Ｃは更にワークステーション36Ａ、36Ｂを含んでいる。またドメイン30Ｃにはプリンタ38が映像ディスプレイ42と共に備えられている。またファイルサーバ40とファイル44Ａ、44Ｂ、44Ｃが含まれている。
【００１８】
図６はドメインコントローラ34Ａのいくつかの主要な機能的構成要素を示すブロック図である。各々のドメインコントローラはそれらの機能的構成要素並びに追加構成要素を含んでいる。ドメインコントローラ34Ａはディレクトリサービスエントリ46の集合を含んでいる。各々のＤＳエントリは属性情報を保持する別々のオブジェクトである。大域カタログ（ＧＣ）52がディレクトリサービスエントリ46内に備えられている。大域カタログ52は後に詳細に説明する。ディレクトリサービス（ＤＳ）サーバ47もドメインコントローラ34Ａ内に設けられている。ＤＳサーバ47はディレクトリサービスエントリ46へのアクセスを仲介する責任を持っている。主要配分センタ（ＫＤＣ）48がドメインコントローラ34Ａ内に設けられていてドメイン内の機密を維持する役割をする。サービスとオブジェクトを探索するロケータ50が主要配分センタ48の一部として含まれている。主要配分センタ48の役割とロケータ50の役割は後に詳細に説明する。最後に分散ファイルシステムマネジャ49がドメインコントローラ34Ａ内に設けられている。これはファイルシステム及びドメイン内の様々なボリュームに付いての知識を管理する責任を有している。
【００１９】
ディレクトリサービスエントリ46は分散システム10内の他のオブジェクトと同様のオブジェクトである。ディレクトリサービスエントリ46は２種類で得ることができる。第１の種類は分散システム10（図１）の構造を記述する。この種類のディレクトリサービスエントリは例えばオブジェクトのグループがどこに記憶されているかを指定することができる。第２の種類のディレクトリサービスエントリはプリンタなどの資源を記述する。第２の種類のディレクトリサービスエントリは関連資源の属性を記憶する。そのような資源は次に関連ディレクトリサービスエントリに保持されている属性に対して照会することで捜し出すことができる。
【００２０】
上述したように、ディレクトリサービスエントリ46は大域カタログ52を含んでいる。大域カタログ52はディレクトリサービスエントリ46内に記憶されている選択属性の値をコピーすることで作製され、それらは他のドメイン内の類似の集合と、本出願の共通譲渡人に譲渡され、その内容をここに明示的に参考として取り入れている「複製機能」の名称の同時係属出願に記載されているような複製機能を用いて併合される。大域カタログ52は、各々の行64がディレクトリサービスエントリ（図７のＤＳエントリ１、ＤＳエントリ２、ＤＳエントリ３を参照）を示し、各々の列66が関連ディレクトリサービスエントリの属性（図７の「名前」、「メールボックス」、「電話」など）を示す（図７に示すような）表である。大域カタログ52には更に大域カタログ用に属性情報が得られたディレクトリサービスエントリに対するリンク65が含まれている。ディレクトリサービスエントリに対するリンクはディレクトリサービスエントリに「束縛」するためにあだ名に変換することができる。この文脈のあだ名は、ワシントン州レッドモンドのマイクロソフト社により確立されたマクロソフト・オブジェクト・リンク及び組み込み方式バージョン２プロトコルで定義されたものと同様である。大域カタログは特殊な種類の要約カタログである。要約カタログは本出願と共通の譲渡人に譲渡された「要約カタログ」の名称の係属出願に詳述されている。この係属出願はここに参考として明示的に組み込んでいる。
【００２１】
大域カタログ52はドメインに渡ってそれを複製することで分散システム10のドメイン間で共有する。大域カタログ52はそれがリストするディレクトリサービスエントリ46の早い探索や走査を可能にするために編成する。大域カタログ52は所望の情報を保持するディレクトリサービスエントリ46を探索する必要なくディレクトリ情報にアクセス可能にする。大域カタログ52はまたディレクトリサービスエントリを直接的に探索する別の早くて低コストの方法を提供する。
【００２２】
ディレクトリサービスエントリ46には分散システムの本人とサービスを示すエントリが含まれている。本人はオブジェクトへのアクセスが与えられるあるいはアクセス制御決定に影響を与えるステートメントを作製できるユーザなどのエンティティである。ディレクトリサービスエントリ46には更にユーザに対するパスワードや資格証明を含む顧客情報が含まれる。オブジェクト向けソフトウエアシステム28（図２）は、サーバからのサービスを要求する顧客により活動が生じる顧客／サーバモデルを採用している。ディレクトリサービスエントリ46はシステムのディレクトリサービスを実施する責任を有している。ディレクトリサービスエントリ46の主要な役割の１つはユーザ及びプログラムが分散システム10内でサービスなどの事柄を見つけることができるようにすることである。
【００２３】
図８はディレクトリサービスエントリ（大域カタログ52を含む）をどの様に利用して分散システム10内のものを見つける助けをするかの代替方法を示す流れ図である。ディレクトリサービスエントリ46は分散システム10の各々のドメインコントローラ内の良く知られた位置に記憶されている。そうすることでユーザやプログラムはシステムの分散名前スペース33（図４）内のどこでディレクトリサービスエントリ46を探せば良いか分かる。従ってディレクトリサービスエントリ46を使用することに対する１つの方法はディレクトリサービスエントリに付いて分散名前スペース33を走査することである（図８のステップ68）。ディレクトリサービスエントリ46の各々は名前を分散名前スペース33内に持つ別々のオブジェクトである。そのような走査によりユーザないしプログラムは所望の情報を得ることができる（図８のステップ74）。
【００２４】
ディレクトリサービスエントリはオブジェクトであるので、それらは直接照会できる属性情報を保持している。オブジェクト向けソフトウエアシステム28（図２）はオブジェクトの照会を可能にするいくつかの標準化インターフェイスを支援している。従ってディレクトリサービスエントリ46を用いて分散システム10内の事柄を見つける第２の別の方法は、ディレクトリサービスエントリを直接照会することである（図８のステップ70）。その照会でユーザないしプログラムが所望する適切な情報が回答される（ステップ74）。そのような照会はシステム内の他のオブジェクトに対しても行うことができる。
【００２５】
ディレクトリサービス名前スペースをナビゲートないしディレクトリサービスエントリ46を照会することによる走査は面倒なタスクとなり得る。例えば分散システム10は多数のドメインを含み、各々のドメインに付いて名前スペースを訪れることは時間がかかったり高く付き、あるいは断路器や区分により不可能となることがある。その結果、ディレクトリサービスエントリ46を直接的に用いずむしろ大域カタログ52を利用することがより実際的あるいは必要なことがしばしばある。大域カタログ52は全てのドメインにわたるオブジェクトに付いての情報を含んでおり、照会と走査の両方を支援するように編成されている。従って第３の別の方法は、大域カタログ52を用いて（即ち走査ないし照会して）（ステップ72）、所望の情報を得ることである（ステップ74）。
【００２６】
上述したように、本発明の実施例はディレクトリサービスエントリ46が分散名前スペース33内で見えるオブジェクトである自己参照システムを提供するが、分散名前スペースを構築する情報をも提供する。ディレクトリサービスエントリ46はオブジェクトであるので、照会などの標準化動作をそれらに対して行うことができる。更にディレクトリサービスエントリ46はオブジェクトに密封されているので、標準化ＡＰＩを利用してそれらのオブジェクトを操作することができる。
従ってＡＰＩを複製してファイルシステム及びディレクトリサービスシステム用の別々のツールを提供する必要はない。更にディレクトリサービスエントリはオブジェクトであるので、それらの照会を可能にする属性を持ち、有用な追加情報を保持することができる。更にまた、同様の複製メカニズムを利用して、全ての他のオブジェクトを複製するのに使用するように大域カタログ52を含むディレクトリユーザエントリを複製することができる。ディレクトリサービスエントリ46はディレクトリサービスエントリ上で作動するクラス専用コードで他のオブジェクトと区分する。
【００２７】
ディレクトリサービスエントリ46が分散名前スペース内にあると想定すると、システム初期化中にどの様に分散名前スペースが構築されるかという疑問が生じる。オブジェクト向けソフトウエアシステム28の機密システムは、分散名前スペースを構築できるようにシステム初期化でディレクトリサービスエントリ46の探索を可能にする。特にシステムブートルーチンは図５に示すようなロケータ50を含んでいる。このロケータを利用して分散システム10を通してディレクトリサービスエントリ46を探索する。
【００２８】
図９はディレクトリサービスエントリ46を探索するのに行うステップの流れ図である。図９に示すステップはシステム初期化中だけでなくディレクトリサービスエントリ46を探索するために他の時点でも行うことができる。例えば図９のステップは局所に保持されたディレクトリサービス情報が旧くなり更新する必要がある、あるいはアドミニストレータがディレクトリサービスエントリ46の探索を望む場合に行うことができる。
【００２９】
分散システム10内の各々の顧客はロケータ50を含んでいる。ディレクトリサービスエントリはドメインコントローラ上で探索する。ロケータ50はドメインコントローラを探索するために同報及びリモートプロシージャコール（ＲＰＣ）プロトコルの組合せを使用し、それにより顧客はディレクトリサービスエントリを見つけることができる（ステップ76）。要求には、ドメインコントローラ上で実行する主要配分センタ48と顧客間で共有する共有機密を顧客が知っていることを示す情報がある。要求の確認はそのような共有機密を利用して行う。従ってステップ78で、ドメインコントローラの主要配分センタ48は顧客を確認する。上記の説明からディレクトリサービスエントリ46が各々の顧客の確認情報を保持することを想起する価値がある。顧客と主要配分センタ48は、顧客が共有機密を証すことなく知識を実証することが可能になる確認プロトコル（例えばカベロス）に加わる。共有機密の実証された知識が十分であれば、応答がロケータに返答される（ステップ80）。その応答は顧客が主要配分センタ48にアクセスでき、それによりディレクトリサービスエントリ46へのアクセスを得ることができるように主要配分センタ48に付いての十分なアドレス情報を提供する。顧客用のロケータ50は次に受信した応答を顧客に提供する（ステップ82）。応答内のアドレス情報は次に後に使用するために記憶される（ステップ84）。
【００３０】
ディレクトリサービスをファイルシステムと統一することで生じる別の複雑な問題はディレクトリサービスエントリ46を他の種類のオブジェクトから保護することである。本発明の実施例のディレクトリサービスエントリの保護は少なくとも２つの方法で実現する。第１に信頼されたマシンだけがディレクトリサービスエントリに対するアクセスを得ることができる。図８に関して上述したように、要求当事者はディレクトリサービスエントリへのアクセスを得るために供給機密の知識を実証しなければならない。第２に要求当事者はディレクトリサービスエントリの記憶装置への直接的なアクセスを得ず、むしろ（リモートプロシージャコールを通して呼ばれた）リモートエージェントが要求当事者に代わって活動する。エージェントは遠隔的に起動されて要求当事者のために活動する（即ち顧客からの全ての要求はこの実際のオブジェクトにアクセスするエージェントに送られる）。そのようにすることで、要求当事者がディレクトリサービスエントリあるいはディレクトリサービスエントリを保持しているドメインコントローラ上の他の保護情報に害を与えることはなくなる。アクセス制御リスト（ＡＣＬ）を用いて誰（即ちどの顧客）が何の目的（例えば読み取りアクセス、書き込みアクセスなど）でディレクトリサービスエントリにアクセスできるかを制御する。
【００３１】
分散システム10は図５に示したワークステーション36Ａなどのいくつかの別々のマシンを含むことができる。ネットワークないしドメインコントローラがない場合にマシンが別個に走行できるようにするそれぞれ別々のマシン上の一定の局所的に関連したディレクトリサービスエントリを備えることが有用である。図10はディレクトリサービスエントリのドメイン及びマシン集合を維持するために本発明の実施例で行われるステップを示した流れ図である。ディレクトリサービスエントリを局所マシン上に持つことから生じる複雑な問題は、ディレクトリサービスエントリのドメイン集合とディレクトリサービスエントリのマシン集合の間の一貫性を維持することである。ディレクトリサービスエントリのドメイン集合はマシンを含むドメインに備える（ステップ86）。ディレクトリサービスエントリのマシン集合はまたマシンに備える（ステップ88）。ディレクトリサービスエントリのマシン集合はドメインディレクトリサービスエントリの名前が透明な複製者であり、マシンに特有のものである。ディレクトリサービスエントリのマシン集合の構造は、ディレクトリサービスエントリのドメイン集合の構造を反映している。ディレクトリサービスエントリのマシン集合はマシンがスタンドアロンないし切り離された環境でブートし、作業するのに必要な全てのデータを保持している。２つの類似したディレクトリサービスエントリの集合を維持する際の１つの困難な問題は、ディレクトリサービスエントリの集合の間でどの様に一貫性を維持するかである。本発明の実施例では、ディレクトリサービスエントリの集合の１つが変化すると（ステップ90）、ディレクトリサービスエントリの集合を調停しなければならない（ステップ92）。調停はオブジェクト向けソフトウエアシステム28の複製メカニズムにより行う。適切な複製メカニズムは、本発明の共通譲渡人に譲渡され、その内容を明示的にここに組み込んだ「複製機能」の名称の同時係属出願に記載されている。複製機能によりディレクトリサービスエントリの集合の１つに為された変更をディレクトリサービスエントリの他の集合に対して行う。
【００３２】
本発明をその実施例に関して説明したが、当業者には添付した特許請求項で定義した本発明から逸脱せずに様々な変更を広く詳細に行うことができることが理解されよう。例えば本発明はオペレーティングシステムで実施する必要はなく、むしろ本発明はオペレーティングシステムから別の図形ユーザインターフェイスあるいはその他のコードで実施することができる。更に上述したように本発明はオブジェクト向け環境で実施する必要はない。
【図面の簡単な説明】
【図１】本発明の実施例を実施する分散システムのブロック図である。
【図２】図１の分散システムのためのコンピュータシステムのより詳細なブロック図である。
【図３】本発明の実施例にしたがってドメインに区分した分散システムを例示する図である。
【図４】本発明の実施例による分散名前スペースを例示する図である。
【図５】本発明の実施例の分散システムの例示的なドメインのブロック図である。
【図６】図５のドメインコントローラのより詳細なブロック図である。
【図７】図６の大域カタログのより詳細な図である。
【図８】本発明の実施例でディレクトリサービス情報を得るために行うステップを示した流れ図である。
【図９】ディレクトリサービスエントリをロケータサービスを用いて位置づけする場合に本発明の実施例により行われるステップを例示する流れ図である。
【図１０】本発明の実施例でディレクトリサービスオブジェクトのマシン集合とディレクトリサービスオブジェクトのドメイン集合の取り扱いを例示した流れ図である。
【図１】
0003696639.tif 000002
【図２】
0003696639.tif 000003
【図３】
0003696639.tif 000004
【図４】
0003696639.tif 000005
【図５】
0003696639.tif 000006
【図６】
0003696639.tif 000007
【図７】
0003696639.tif 000008
【図８】
0003696639.tif 000009
【図９】
0003696639.tif 000010
【図１０】
0003696639.tif 000011