JPH10154095A - 多数ディレクトリサービスに一様にアクセスするための方法及びシステム - Google Patents

多数ディレクトリサービスに一様にアクセスするための方法及びシステム

Info

Publication number
JPH10154095A
JPH10154095A JP9211148A JP21114897A JPH10154095A JP H10154095 A JPH10154095 A JP H10154095A JP 9211148 A JP9211148 A JP 9211148A JP 21114897 A JP21114897 A JP 21114897A JP H10154095 A JPH10154095 A JP H10154095A
Authority
JP
Japan
Prior art keywords
directory service
property
interface
class
oleds
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9211148A
Other languages
English (en)
Other versions
JP4197753B2 (ja
Inventor
Chuck Y Chan
ワイ チャン チャック
Krishna Ganugapati
ガヌガパッテイ クリシュナ
Margaret K Johnson
ケイ ジョンソン マーガレット
Steven G Judd
ジー ジュド スティーヴン
Stuart L S Kwan
エル エス クワン ステュアート
Colin Watson
ワトソン コリン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JPH10154095A publication Critical patent/JPH10154095A/ja
Application granted granted Critical
Publication of JP4197753B2 publication Critical patent/JP4197753B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 多数ディレクトリサービスに一様にアクセス
する。 【解決手段】 ディレクトリサービスが管理する情報の
タイプは、オブジェクトクラスで定義され、オブジェク
トクラスは、プロパティ(即ち、情報)を定義する。各
プロパティはプロパティ名とプロパティタイプを有す
る。スキーマブラウジングコンポーネントはプロパティ
名及びプロパティタイプの検索を制御する。名前解読コ
ンポーネントは、ディレクトリサービス内のオブジェク
トの識別子の受け取りとオブジェクトの捜し出しを制御
する。割り当てコンポーネントはディレクトリサービス
内に捜し出されたオブジェクトを表わすインメモリオブ
ジェクトに割り当てを制御する。拡張コンポーネントは
各ディレクトリサービスに新しいオブジェクトクラスと
プロパティの定義を制御する。ディレクトリサービスシ
ステムのクライアントは新しいオブジェクトクラスとプ
ロパティの定義に拡張コンポーネントを使用する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明はコンピュータベー
スのディレクトリサービスに関し、特に、ディレクトリ
サービスに一様にアクセスするための方法及びシステム
に関する。
【0002】
【従来の技術】コンピュータシステムは一般的には、コ
ンピュータシステム及びそのユーザに関する多量のデー
タをストアし且つ保持する。例えば、コンピュータシス
テムはコンピュータシステムのユーザの名前、電子メー
ルアドレス、及び、電話番号を保持する。コンピュータ
システムはまた、コンピュータシステムに接続された種
々のプリンタに関する情報も保持する。この情報は、プ
リンタ特性(例えば、レーザ及びカラー)及び各プリン
タを使用するのに許可された使用者の名前を含む。「ク
ライアント」として知られる種々の異なるタイプのコン
ピュータプログラムは、この情報にアクセスする必要が
ある。例えば、あるクライアントは、プリンタが書類を
カラーでプリントするのに使用されることができること
を判断するのに必要であるコンピュータプログラムであ
ってよい。別のクライアントは、例えば、新しく追加さ
れたプリンタに関する情報を反映するように、システム
管理者が情報を更新することができるコンピュータプロ
グラムであってよい。コンピュータシステムはかかる情
報を位置及びフォーマットの相違において伝統的にスト
アしてきた。例えば、プリンタに関する情報はコンフィ
ギュレーションファイルにストアされ、ユーザに関する
情報はデータベースにストアされてもよい。従って、一
般的には、クライアントを開発するプログラマはこの情
報にアクセスする仕方を知ることはもちろんとして、こ
の情報をどこで探すのかを知ることさえ困難であった。
【0003】幾らかのコンピュータシステムはこの情報
をストアし且つ保持するのに役立つようにディレクトリ
サービスを提供する。ディレクトリサービスはクライア
ントがネットワークにアクセスすることができるこの情
報のリポジトリを提供する。一般的には、ディレクトリ
サービスは情報が「オブジェクト」として保持されてい
るもの(例えば、ユーザ、プリンタ、又は、アクセスグ
ループ)を表わす。ディレクトリサービスはかかるオブ
ジェクトの階層をディレクトリに構成する。即ち、コン
テナオブジェクトと呼ばれるあるオブジェクトが、包含
されたオブジェクトと呼ばれる種々の他のオブジェクト
を包含する。例えば、共通アクセス権をリソースに対し
て共有するユーザを含むアクセスグループは、包含され
たオブジェクトであるユーザを包含するコンテナオブジ
ェクトである。ディレクトリサービスが情報を保持する
各オブジェクトは、クライアントがオブジェクトを識別
することができる一意的な識別子(例えば、名前)を有
する。ディレクトリサービスはコンピュータシステムに
関する情報を保持するように元来開発されたけれども、
それらはコンピュータシステムと関係が無い情報を保持
するのに使用されることができる。例えば、ディレクト
リサービスは飛行機の構成要素及びサブコンポーネント
のためのパーツリストを保持するために飛行機製造業者
によって使用されることができる。
【0004】図1はディレクトリサービスのサンプル階
層構造を図示する。各ブロックは特定の「オブジェクト
クラス」のオブジェクトを表わす。例えば、会社を表わ
すオブジェクトは「会社(Company)」と名付けられたオ
ブジェクトクラスを有する。各オブジェクトクラスはそ
のオブジェクトクラスオブジェクトのプロパティを定義
する。例えば、前記会社オブジェクトクラスはプロパテ
ィ「名前」及び「住所」を定義することができる。各オ
ブジェクトはオブジェクトクラスに関して定義された各
プロパティに関するプロパティ値を有する。例えば、会
社オブジェクトクラスのオブジェクトは名前プロパティ
に関してプロパティ値「MS」を有することができる。
ブロック101 は会社オブジェクトクラスのオブジェクト
に対応し、名前及び住所プロパティに関する値を有す
る。ブロック102 は部門オブジェクトクラスのオブジェ
クトに対応し、部門の名前(例えば、「システム(Syst
em)」)に関する値を有する。ブロック103 はユーザオ
ブジェクトクラスのオブジェクトに対応し、ユーザの電
子メールアドレスに関する値を有する。ディレクトリサ
ービスは階層的に構成されているので、各オブジェクト
をルートからオブジェクトまでのパスによって一意的に
識別することができる。例えば、オブジェクト102 はパ
ス「Company=MS\Division=Systems」によって一意的に
識別される。ディレクトリサービスは、ネームスペース
(namespace )と呼ばれる概念的有限空間を提供し、特
定の名前を解読することができる。ディレクトリサービ
スはディレクトリのオブジェクトのパスを明瞭に解読す
る。
【0005】種々のベンダはディレクトリサービスシス
テムを提供する。典型的には、各ベンダは、クライアン
トがそのディレクトリサービスにアクセスすることを可
能にするためにアプリケーションプログラミングインタ
ーフェース(API)を設計し且つインプリメントす
る。従って、各ディレクトリサービスシステムは、非常
に異なるAPIセットを有し、且つ、一般的に行われて
いる。クライアントが異なるディレクトリサービスシス
テムを使用する必要があるならば、例えば、クライアン
トはパーソナルコンピュータ及びメインフレームコンピ
ュータを含む環境で作動するので、クライアントのプロ
グラマは各ディレクトリサービスのAPIセットについ
て知る必要があり、APIセットの各々をサポートする
ようにクライアントを設計する必要がある。
【0006】各APIセットはベンダ固有であるけれど
も、一般的にはAPIセットは類似した機能性を提供す
る。一般的には、APIセットは、オブジェクトのプロ
パティ値にアクセスするためのファンクションと、新し
いオブジェクトクラスを定義するためのファンクション
とを含む。オブジェクトを処理するファンクションは、
例えば、OpenObject、ReadObject、WriteObject 、List
Object、CloseObject、CreateObject及びDereteObject
である。オブジェクトへの識別(例えば、パス)がファ
ンクションOpenObjectにパスされ、ファンクションOpen
Objectはそのオブジェクトを識別するハンドルをリター
ンする。このハンドルはオープンオブジェクトをディレ
クトリサービスに対して識別するためにクライアントに
よって続いて使用される。ファンクションOpenObjectは
オブジェクトを識別するために識別を使用し、次いで、
識別されたオブジェクトのプロパティを位置決めする。
オープンオブジェクト、及び、検索されるべきそのオブ
ジェクトのプロパティの名前のリストへのハンドルがフ
ァンクションReadObjectにパスされる。ファンクション
ReadObjectはそれらのプロパティに関して現在のプロパ
ティ値をリターンする。オープンオブジェクトと、プロ
パティ名及びプロパティ値ペアのリストへのハンドルが
ファンクションWriteObject にパスされる。ファンクシ
ョンWriteObject はペアのプロパティ値に対するオープ
ンオブジェクトにおいて各々名付けられたプロパティを
セットする。オープンオブジェクトへのハンドルがファ
ンクションListObjectにパスされ、ファンクションList
Objectはオープンオブジェクト内で収容された各オブジ
ェクトの識別を収容するリストをリターンする。オープ
ンオブジェクトへのハンドルがファンクションCloseObj
ect にパスされ、それがそのハンドルでもはやアクセス
することができないように、ファンクションCloseObjec
t はオブジェクトを閉じる。オブジェクトクラスがファ
ンクションCreateObjectにパスされ、ファンクションCr
eateObjectは、オープンオブジェクト内で収容されてい
るオブジェクトクラスのオブジェクトを作り、ハンドル
を包含されたオブジェクトにリターンする。オープンオ
ブジェクトへのハンドルがファンクションDeleteObject
にパスされ、ファンクションDeleteObjectはオープンオ
ブジェクトをそのコンテナオブジェクトから除去する。
【0007】オブジェクトクラスを定義するためのファ
ンクションは、CreateObjectClass、DeleteObjectClass
、CreateProperty、DeleteProperty、AddPropertyToOb
jectClass、DeletePropertyFromObjectClass 、及び、L
istPropertiesOfObjectClass である。新しいオブジェ
クトクラスの名前がファンクションCreateObjectClass
にパスされ、ファンクションCreateObjectClass は新し
いオブジェクトクラスを作る。いったんオブジェクトク
ラスが作られたら、次いで、クライアントはそのオブジ
ェクトクラスのオブジェクトを作ることができる。プロ
パティの名前及びプロパティタイプ(例えば、整数又は
列)がファンクションCreatePropertyにパスされ、ファ
ンクションCreatePropertyはそのプロパティタイプ(例
えば、「列」のプロパティタイプを有する「住所」のプ
ロパティ名)のプロパティを作る。オブジェクトクラス
の名前及びプロパティの名前がファンクションンAddPro
pertyToObjectClassにパスされ、ファンクションンAddP
ropertyToObjectClassは名付けられたオブジェクトクラ
スのプロパティとして名付けられたプロパティを加え
る。オブジェクトクラスの名前がファンクションListPr
opertiesOfObjectClass にパスされ、ファンクションLi
stPropertiesOfObjectClass はそのオブジェクトクラス
に加えられているプロパティのリストをリターンする。
ファンクションDeleteObjectClass 、DeleteProperty、
及び、DeletePropertyFromObjectClassはそれらの名前
によって示唆される振る舞いを行う。
【0008】下で説明する本発明はオブジェクト指向技
術を使用し、従って、周知のオブジェクト指向プログラ
ミング技術を提供する。(「オブジェクト」という用語
は、異なる文脈において使用された場合、多くの異なる
意味を有する。背景の残りでは、「オブジェクト」とい
う用語は、オブジェクト指向センスにおいては、インメ
モリデータ構造を指すために用いられる。)オブジェク
ト指向プログラミング言語の2つの共通の特徴は、デー
タ隠蔽に対するサポートと、データタイプ承継である。
データ隠蔽はファンクションとデータの割り当てを指
す。承継は、他のデータタイプに関してデータタイプを
宣言する能力を指す。C++言語では、データ隠蔽及び承
継はクラスの使用を介してサポートされる。クラスはユ
ーザ定義タイプである。クラス宣言はクラスのデータメ
ンバ及びファンクションメンバを記述する。ファンクシ
ョンメンバはまた、クラスのメソッドとして示される。
クラスのデータメンバ及びファンクションメンバは、フ
ァンクションがクラスのインスタンスで作動するように
一緒に割り当てられる。クラスのインスタンスはまた、
クラスのオブジェクトと呼ばれる。従って、クラスは、
類似のプロパティと共通の性質を有するオブジェクトの
グループに関して定義を設ける。
【0009】特定のタイプのオブジェクト(クラス)に
関してストレージを割り当てるために、オブジェクトが
例示される。いったん例示されたならば、データは特定
のオブジェクトのデータメンバに割り当てられることが
できる。また、いったん例示されたならば、特定のオブ
ジェクトのファンクションメンバはアクセスするために
呼び出されることができ、データメンバを操作する。従
って、この仕方では、ファンクションメンバはオブジェ
クトの性質をインプリメントし、オブジェクトはデータ
及び性質を単一のエンティティへ隠蔽するための構造を
提供する。承継の概念を支持するために、クラスは他の
クラスから(他のクラスの宣言に基づいて)導出されう
る。導出クラスは、そのベースクラスの特徴(データメ
ンバ及びファンクションメンバ)を承継するクラスであ
る。別のクラスの特徴を承継するクラスが導出クラスで
ある。別のクラスの特徴を承継しないクラスがプライマ
リ(ルート)クラスである。その特徴が別のクラスによ
って承継されるクラスがベースクラスである。導出クラ
スは種々のクラスの特徴を承継し、即ち、導出クラスは
種々のベースクラスを有しても良い。
【0010】クラスはまた、そのファンクションメンバ
がバーチャルであるかどうかを指定しうる。ファンクシ
ョンメンバがバーチャル手段であることを宣言すると
き、ファンクションを導出クラスにおいて同じ名前及び
タイプのファンクションによって無効にすることができ
る。バーチャルファンクションがインプリメンテーショ
ンを行うことなく宣言されるならば、次いで、それは純
粋バーチャルファンクションとして示される。純粋バー
チャルファンクションは純粋規則子「=0」で宣言され
たバーチャルファンクションである。クラスが純粋バー
チャルファンクションを指定するならば、次いで、ファ
ンクションメンバが呼び出される前に、いかなる導出ク
ラスもそのファンクションメンバに関してインプリメン
テーションを指定する必要がある。少なくとも1つの純
粋バーチャルファンクションメンバを包含するクラスが
アブストラクトクラスである。
【0011】図2は、オブジェクトを表わすのに使用さ
れる典型的なデータ構造を図示するブロック図である。
オブジェクトはオブジェクトの性質をインプリメントす
るインスタンスデータ(データメンバ)及びファンクシ
ョンメンバを有する。オブジェクトを表わすのに使用さ
れるデータ構造は、インスタンスデータ構造201 と、バ
ーチャルファンクションテーブル202 と、ファンクショ
ンメンバ203,204,205からなる。インスタンスデータ構
造201 はポインタをバーチャルファンクションテーブル
202 に含み、データメンバを含む。バーチャルファンク
ションテーブル202 はオブジェクトに関して定義された
各バーチャルファンクションメンバに関するエントリを
含む。各エントリは、対応するファンクションメンバを
インプリメントするコードとの関連を含む。このサンプ
ルオブジェクトのレイアウトは、ここに援用する「オブ
ジェクト指向プログラミング言語に関するコンパイラに
おけるバーチャルファンクション及びバーチャルベース
をインプリメントするための方法」と題する、米国特許
第5,297,284 号に説明されたモデルに従う。以下では、
オブジェクトをC++プログラミング言語によって定義さ
れたようなクラスのインスタンスとして説明する。当業
者には他のオブジェクトモデルが他のプログラミング言
語を使用して定義されることは明らかである。
【0012】オブジェクト指向技術を使用することの利
点は、これらの技術はオブジェクトを共有することを容
易にするために使用されることができることである。例
えば、例示されたオブジェクトのファンクションメンバ
(「サーバプログラム」)をインプリメントするプログ
ラムは、他のプログラム(「クライアントプログラ
ム」)を有するオブジェクトを共有することができる。
任意のクラスのオブジェクトがクライアントプログラム
で共有されることを可能にするために、オブジェクトが
コンパイル時間でクラス定義にアクセスさせるために、
クライアントプログラムの必要性なしにアクセスされる
ことができるインターフェースが定義される。インター
フェースは論理的に関連したファンクションメンバの名
付けられたセットである。C++では、インターフェース
はデータメンバを有しないアブストラクトクラスであ
り、そのバーチャルファンクションは全てピュアであ
る。従って、インターフェースは通信するために2つの
プログラムに関して発行されたプロトコルを提供する。
インターフェースは典型的には導出のために使用され、
即ち、プログラムはクラスを定義(インプリメント)
し、かかるクラスはクラスを導出するインターフェース
に関してインプリメンテーションを行う。その後、オブ
ジェクトはこれらの導出クラスのインスタンスとして作
られる。特定のインターフェースをインプリメントする
導出クラスから例示されたオブジェクトはインターフェ
ースを「サポート」すると言う。オブジェクトは、所望
の機能に依存する1又はそれ以上のインターフェースを
サポートする。
【0013】クライアントプログラムがオブジェクトを
共有することを望む場合、クライアントプログラムはオ
ブジェクト(導出クラスコード)に関してインターフェ
ースをインプリメントするコードにアクセスする必要が
ある。ワシントン州レッドモンドのマイクロソフトコー
ポレーションによって確立されたOLE2.01環境では、
導出クラスコード(または、クラスコードとして示され
る)にアクセスするために、各クラスインプリメンテー
ションは一意的なクラス識別子(「CLSID 」)が与えら
れる。OLE2.01は『インサイドOLE』第2版(マイ
クロソフトプレス発行、1995年、Kraig Brockschmidt
著)に記述されている。例えば、マイクロソフトコーポ
レーションによって開発されたスプレッドシートオブジ
ェクトをインプリメントするコードは「MSSpreadsheet
」というクラス識別子を有し、他の会社によって開発
されたスプレッドシートオブジェクトをインプリメント
するコードは「LTSSpreadsheet」というクラス識別子を
有する。クラスをインプリメントするコードに各CLSID
をマップする、各コンピュータシステムの保存性レジス
トリが保持される。典型的には、スプレッドシートプロ
グラムがコンピュータシステムにインストールされたと
き、保存性レジストリはスプレッドシートオブジェクト
のそのクラスの可用性を反映するために更新される。ス
プレッドシート開発者がスプレッドシートオブジェクト
によってサポートされるべきインターフェースによって
定義された各ファンクションメンバをインプリメントす
る限り、及び、保存性レジストリが保持されている限
り、クライアントプログラムは、サーバプログラムがイ
ンプリメントされたそれらを有すること或いはそれらが
どうやってインプリメントされているかに関係なく、共
有されたスプレッドシートオブジェクトのファンクショ
ンメンバにアクセスすることができる。
【0014】オブジェクトがあるインターフェースをサ
ポートし、他のインターフェースをサポートしないの
で、クライアントプログラムは、特定のオブジェクトが
特定のインターフェースをサポートするかどうかをラン
タイムで判断する必要がある。この判断を可能にするた
めに、全てのCOM オブジェクトは、ファンクションメン
バを含むIUnknownインターフェースと、オブジェクトに
関してインプリメントされたインターフェースを指示す
るQueryInterfaceとをサポートする。QueryInterfaceメ
ソッドは以下のように定義される:virtual HRESULT Qu
eryInterface(REFID iid, void**ppv)=0;(REFID タイ
プの)パラメータiid におけるインターフェース識別子
がQueryInterfaceメソッドにパスされ、QueryInterface
メソッドはパラメータppv においてポインタを指定され
たインターフェース「iid 」のインプリメンテーション
にリターンする。従って、QueryInterfaceメソッドは典
型的には、それが属するオブジェクトの使用可能な全て
のインターフェースについて知るためにコード化され
る。オブジェクトがそのインターフェースをサポートし
ないならば、次いで、QueryInterfaceメソッドは偽を返
す。タイプHRESULT は所定のステータスを指示する。
【0015】IUnknownインターフェースはまた、リファ
レンスカウントをインプリメントするのに使用されるメ
ソッドAddRef及びRelease を定義する。インターフェー
スに対して新しいリファレンスが作られるときはいつで
も、AddRefメソッドはオブジェクトのリファレンスカウ
ントを増加させるために呼び出される。リファレンスが
もはや必要とされないとき、Release メソッドはオブジ
ェクトのリファレンスカウントを減少させるために呼び
出され、リファレンスカウントがゼロにいたるとき、オ
ブジェクトは割り当て解除される。
【0016】
【課題を解決するための手段】本発明はOLEインター
フェースに関する定義と、複数のディレクトリサービス
に一様な仕方でアクセスすることができるプロバイダソ
フトウェアのためのモデルとを提供する。各ディレクト
リサービスプロバイダはそのディレクトリサービスのオ
ブジェクトに関する情報を管理する。ディレクトリサー
ビスがオブジェクトのために管理する情報のタイプはオ
ブジェクトのオブジェクトクラスによって定義される。
オブジェクトクラスは、ディレクトリサービスがそのオ
ブジェクトクラスのオブジェクトのために管理するプロ
パティ(即ち、情報)を定義する。各プロパティはプロ
パティ名とプロパティタイプを有する。ディレクトリサ
ービスは各オブジェクトのオブジェクトクラスによって
定義された各プロパティに関してプロパティ値を有す
る。ディレクトリサービスシステムはスキーマブラウジ
ング構成要素、名前解読構成要素、割り当て構成要素、
及び、拡張構成要素からなる。スキーマブラウジング構
成要素は、各ディレクトリサービスの各オブジェクトク
ラスの各プロパティのプロパティ名とプロパティタイプ
を検索することを制御する。ディレクトリサービスシス
テムのクライアントは、オブジェクトクラスのプロパテ
ィ名とプロパティタイプを検索するためにスキーマブラ
ウジング構成要素を使用する。名前解読構成要素は、オ
ブジェクトの一意的な識別子をディレクトリサービス内
に受け取ることと、オブジェクトをディレクトリサービ
ス内に配置することとを制御する。割り当て構成要素
は、ディレクトリサービスの配置されたオブジェクトを
表わすインメモリオブジェクトに対して割り当てること
を制御する。拡張構成要素は、各ディレクトリサービス
に関して新しいオブジェクトクラス及び新しいプロパテ
ィを定義することを制御する。ディレクトリサービスシ
ステムのクライアントは新しいオブジェクトクラス及び
新しいプロパティを定義するために拡張構成要素を使用
する。
【0017】
【発明の実施の形態】本発明は、種々の異なるディレク
トリサービスに均一にアクセスするためのフレームワー
クを提供する。好ましい実施形態では、OleDs と呼ばれ
るディレクトリサービスシステムは、クライアントが、
OleDs オブジェクト、属性及びインターフェースの単
一、共通のセットを使用するこれらの種々のディレクト
リサービスのコンテンツにアクセスすることを可能にす
るアーキテクチャを提供する。OleDs オブジェクトは、
ディレクトリサービスのオブジェクト及びディレクトリ
サービスのオブジェクトクラスに対応するインメモリデ
ータ構造である。OleDs オブジェクトがオブジェクトに
一致するとき、それはプロパティ値にアクセスするため
のインターフェースとそのオブジェクトのメソッドを提
供する。OleDs オブジェクトがオブジェクトクラスに対
応するとき、それはそのオブジェクトクラスの定義にア
クセスするためのインターフェースを提供する。ディレ
クトリサービスの各プロバイダは、APIセットの振る
舞いをそれらのOleDs インターフェースの振る舞いにマ
ップするディレクトリサービスに関してそれらのインタ
ーフェースのインプリメンテーションを提供する。この
方法では、OleDs アーキテクチャを使用するために開発
されたクライアントが、それらのAPIセットの違いに
かかわらず、それらのディレクトリサービスの各々にア
クセスすることができる。
【0018】OleDs は、「ネームスペース」("namespa
ces")コンテナと呼ばれるルートコンテナオブジェクト
内にあるすべてのディレクトリサービスを作る。図3
は、ネームスペースコンテナを図示する。ネームスペー
シズ(namespaces)コンテナ内のオブジェクトは種々の
ディレクトリサービスを表わす。OleDs はネームスペー
スコンテナ内に収容されたディレクトリサービスを列挙
するためのインターフェースを提供する。各々収容され
たディレクトリサービスはOleDs ネームスペースコンテ
ナオブジェクトによって表わされる。クライアントがデ
ィレクトリサービスの存在に気がつくようなインターフ
ェースを用いることができ、ディレクトリサービスのオ
ブジェクトクラスの定義を決定するためにそのスキーマ
にアクセスすることができる。スキーマはディレクトリ
サービスのオブジェクトクラスの定義を含む。インター
フェースがOleDs によって提供されるので、クライアン
トはコンパイルタイムで知られていないディレクトリサ
ービスの存在及びコンテンツをランタイムで発見するこ
とができる。
【0019】典型的には、各ディレクトリサービスはそ
のオブジェクトを名前付けするためにその独自の規定を
有するので、OleDs は、各オブジェクトを種々のディレ
クトリサービスに競合せずに一意的に識別する一様な名
前付け規定(ユニフォームネーミングコンベンション;
uniform naming convention )を提供する。一意的な識
別子はOleDs パスと呼ばれる。OleDs パスは、ディレク
トリサービスと、識別されたオブジェクトにアクセスす
るようにオープンにされている必要がある入れ子にされ
たコンテナオブジェクトのセットとを識別する文字列で
ある。OleDs は以下のようなフォーマットを有する: @NamespaceIdentifier!<namaspace path to object> 又は NamespaceIdentifier://<namespace path to object> 「NamespaceIdentifier 」はディレクトリサービスを一
意的に識別する。「! 」又は「: 」の後の列はディレク
トリサービス従属フォーマットである。即ち、各ディレ
クトリサービスはその独自フォーマットを定義すること
ができる。
【0020】OleDs は、OleDs パスによって定義された
オブジェクトに対応するOleDs オブジェクトにOleDs パ
スを割り当てるための割り当て機能を提供する。OleDs
パスがこの割り当てファンクションにパスされ、且つ、
割り当てファンクションはポインタをオブジェクトに対
応するOleDs オブジェクトにリターンする。OleDs オブ
ジェクトに割り当てるために、割り当て機能はOleDs パ
スからネームスペース識別子を解析する。割り当て機能
は、識別されたネームスペースにアクセスをインプリメ
ントするコード(例えば、ダイナミックリンクライブラ
リ)を検索するために、このネームスペース識別子を使
用する。(OleDs は、OleDs インターフェースのインプ
リメンテーションの位置を登録するディレクトリサービ
スプロバイダのためのレジストリを維持する。)次い
で、割り当て機能はOleDs パスをパスする検索されたコ
ードを呼び出す。呼び出されたコードは、識別されたオ
ブジェクトにアクセスし、且つ、OleDs インターフェー
スによって定義された性質をインプリメントするために
ディレクトリサービスのAPIセットを使用する。
【0021】OleDs は、各々のOleDs コンテナオブジェ
クト及びOleDs リーフオブジェクトとして、各ディレク
トリサービスのオブジェクトを作る。ディレクトリサー
ビスのコンテナオブジェクトにアクセスするために、デ
ィレクトリサービスのプロバイダによって提供されたイ
ンプリメンテーションを有するOleDs コンテナオブジェ
クトが、例示される。同様に、ディレクトリサービスの
リーフオブジェクトにアクセスするために、ディレクト
リサービスのプロバイダによって提供されたインプリメ
ンテーションを有するOleDs リーフオブジェクトが例示
される。各OleDs オブジェクトはディレクトリサービス
の対応するオブジェクトのプロパティにアクセスするた
めのインターフェースを公開する。各OleDs コンテナオ
ブジェクトはまた、インターフェースの収容されたオブ
ジェクトがクライアントによってアクセスされることが
できるインターフェースを公開する。
【0022】図4は、OleDs オブジェクトとそれらの対
応するディレクトリサービスのオブジェクトをとの間の
関係を図示する。各ディレクトリサービスプロバイダは
OleDs オブジェクトによって公開された各インターフェ
ースのインプリメンテーションを提供する。これらのイ
ンプリメンテーションはプロバイダのAPIセットの振
る舞いのマッピングをOleDs インターフェースの振る舞
いにもたらす。従って、各クライアントはOleDs インタ
ーフェースのプロバイダのインプリメンテーションを使
用する多数ディレクトリサービスに一様にアクセスする
ことができる。ディレクトリサービスのオブジェクトに
アクセスする際に、クライアントを助けるために、OleD
s は各ディレクトリサービスのスキーマを表わすための
モデルを定義する。概念的に、各ディレクトリサービス
は、各オブジェクトクラスに関してスキーマオブジェク
トを収容するスキーマコンテナオブジェクトを有しなが
ら調べられる。スキーマオブジェクトはオブジェクトク
ラスのプロパティを定義する。スキーマコンテナは、予
め決められた名前を「schema」のようなネームスペース
内に割り当てる。スキーマコンテナにアクセスするため
に、クライアントはスキーマのOleDs パス(例えば、
「@WinNTDS!Schema 」)をパスするOleDs 割り当て機能
を使用する。OleDs 割り当て機能はポインタをスキーマ
コンテナオブジェクトに対応するOleDs コンテナオブジ
ェクトにリターンする。クライアントは、収容されたス
キーマオブジェクトを列挙するためにOleDs コンテナオ
ブジェクトのインターフェースに使用することができ
る。この方法では、クライアントは種々のオブジェクト
クラスの定義をランタイムで決定することができる。更
に、クライアントはスキーマオブジェクトをスキーマコ
ンテナオブジェクトに加えることによって、追加のオブ
ジェクトクラスを定義することができる。
【0023】OleDs は、OleDs インターフェースの振る
舞いに対するディレクトリサービスAPIセットの振る
舞いのマッピングのインプリメンテーションを容易にす
るために、種々のオブジェクトクラスを予め定義する。
特に、OleDs は、組織的な機関及び国のような共通のコ
ンテナオブジェクト、及び、ユーザ又はリソースのよう
な共通のリーフオブジェクトに関するオブジェクトクラ
ス定義を提供する。OleDs はデフォルトネームスペース
又はディレクトリサービスの概念を定義する。デフォル
トネームスペースは、ネームスペースがOleDs パスに指
定されていない場合に、クライアントが使用するのを望
むネームスペースである。クライアント又はユーザのた
めのデフォルトネームスペースの識別は、典型的には、
クライアント又はユーザによって指標付けされたレジス
トリにストアされるべきである。
【0024】OleDs はまた、クライアントが新たに定義
したオブジェクトクラスのオブジェクトをディレクトリ
サービスに加えることを可能にするために、各プロバイ
ダによって実行されるデフォルトOleDs オブジェクトの
概念を定義する。典型的には、ディレクトリサービスプ
ロバイダは各オブジェクトクラスに関してOleDs オブジ
ェクトのインプリメンテーションをディレクトリサービ
ス内に提供する。例えば、プロバイダはコンピュータオ
ブジェクト及び会社オブジェクトのためのオブジェクト
クラスに関して異なるインプリメンテーションを提供し
うる。各インプリメンテーションは、プロパティが対応
するオブジェクトクラスに関して定義されていることを
知っており、プロパティの値を検索するAPIセットを
リクエストすることができる。しかし、クライアントが
新しいオブジェクトクラスをランタイムで定義するなら
ば、対応するインプリメンテーションはないであろう。
その結果、新しいオブジェクトクラスがそのディレクト
リサービスに関して定義される各プロバイダはまた、デ
フォルトOleDs オブジェクトのインプリメンテーション
を提供する。クライアントが、インプリメンテーション
がないオブジェクトに関するOleDs オブジェクトを例示
するためにリクエストするときはいつでも、デフォルト
OleDs オブジェクトは例示される。デフォルトOleDs オ
ブジェクトは、それが対応した、即ち、スキーマからオ
ブジェクトクラスの定義を検索するのに使用する、オブ
ジェクトクラスの名前を含む。この定義を使用するの
で、デフォルトOleDs オブジェクトはディレクトリサー
ビスの対応するオブジェクトにアクセスすることができ
る。
【0025】図3Aは、OleDs の階層構造を図示するブ
ロック図である。階層は、「ネームスペーシズ(Namesp
aces)」と呼ばれるルートコンテナを含む。ネームスペ
ーシズコンテナは各ディレクトリサービスのネームスペ
ースを論理的に包含する。図3BはOleDs のアーキテク
チャを図示するブロック図である。ディレクトリサービ
スの各プロバイダは、プロバイダのAPIセットの性質
をOleDs インターフェースの性質にマッピングすること
をインプリメントする。各OleDs コンテナオブジェクト
はディレクトリサービスにおいてコンテナオブジェクト
に対応し、各OleDs リーフオブジェクトはディレクトリ
サービスにおいてリーフオブジェクトに対応する。OleD
s は、OleDs オブジェクトに対してクライアントの早い
割り当てと遅い割り当ての両方を提供する。早い割り当
ては、クライアントのデベロッパが各オブジェクトのプ
ロパティの名前をコンパイル時間で知ることを意味す
る。従って、クライアントは、プロパティを「getting
」及び「putting 」するための方法(例えば、「ge
t_Address」又は「put_Name」)を直
接使用してこれらのプロパティから値にアクセスするよ
うにプログラムされることができる。各OleDs オブジェ
クトは(Ole 2.01で定義されている)IDispatch インタ
ーフェースを公開し、クライアントがランタイム(即
ち、遅い割り当て)でプロパティに割り当てることを可
能にする。
【0026】各OleDs オブジェクトはIOleDsインターフ
ェースを公開する。IOleDsインターフェースは、ディレ
クトリサービスにおいて、対応するオブジェクトのプロ
パティにアクセスするための方法と一緒にOleDs オブジ
ェクトの種々の属性を定義する。(以下においては、
「プロパティ(property)」という用語はディレクトリ
サービス内のデータを指し、「属性(attribute )」と
いう用語はOleDs オブジェクトに関してOleDs によって
定義されたデータを指す。)コンテナである各OleDs オ
ブジェクトはまた、IOleDsContainer インターフェース
を提供する。IOleDsContainer インターフェースは、コ
ンテナオブジェクトと、操作された収容されたオブジェ
クトに関する方法とに関係する種々の属性を定義する。
更に、各OleDs オブジェクトは、IOleDs<class> 又はIO
leDs<class>operations と名づけられたインターフェー
スを任意に提供することができ、ここで<class> はディ
レクトリサービスにおいて対応したオブジェクトのオブ
ジェクトクラスの名前に対応し、<class>operations は
オブジェクトで実行されることができるオペレーション
に対応する。例えば、ポイントキューオブジェクトが、
プリントジョブを休止させ、開始させ、及び、削除する
ようなオペレーションを有する。以下においては、これ
ら及び他のOleDs インターフェースの各々は、インター
フェースの所定の方法のサンプルインプリメンテーショ
ンの記述と一緒に定義される。
【0027】図4は、本発明を実施するために構成され
たコンピュータシステムのブロック図である。コンピュ
ータシステム400 は、メモリ401 と、中央処理装置402
と、I/O インターフェース403 と、記憶装置404 と、表
示装置405 とを含む。OleDsオブジェクトの種々のイン
プリメンテーションは、ディスクのようなコンピュータ
読み取り可能メモリにストアされる。これらのインプリ
メンテーションは実行するためにコンピュータメモリに
ロードされる。コンピュータメモリはクライアント406,
407 を含む。メモリはまた、3つのディレクトリサービ
スに関してOleDs オブジェクト408,411,414 のインプリ
メンテーションを含む。OleDs オブジェクトの各インプ
リメンテーションはディレクトリサービス409,412,415
の対応するAPIセットにアクセスする。これらのAP
Iセットは、下にあるディレクトリサービスに関してオ
ブジェクト410,413,416 のプロパティへのアクセスを行
う。更に、OleDs 自身は、割り当て機能のインプリメン
テーションと、ネームスペーシズコンテナと、ディレク
トリサービスの典型的なオブジェクトに対応する種々の
OleDs オブジェクトとを提供する。
【0028】OleDsGetObjectファンクション 図5は、OleDs の割り当て機能であるファンクションOl
eDsGetObjectの流れ図である。オブジェクト及びインタ
ーフェース識別子へのOleDs パスがファンクションOleD
sGetObjectにパスされ、ファンクションOleDsGetObject
はオブジェクトを表わすOleDs オブジェクトに関して識
別されたインターフェースにポインタを返す。ステップ
501 では、ファンクションはOleDs パスからネームスペ
ース識別子を解析する。ファンクションは、識別された
ネームスペースのプロバイダによって提供された構文解
析インターフェースのインプリメンテーションを配置す
るためにネームスペース識別子を使用する。ステップ50
2 では、ファンクションは、識別されたネームスペース
のプロバイダによってインプリメントされたParseDispl
ayNameクラスに関してクラスファクトリオブジェクトに
対してポインタを検索するために(OLE 2.0.1 で定義さ
れた)ファンクションCoGetClassObjectをコールする。
ファンクションは識別されたネームスペースに関してPa
rseDisplayNameクラスのクラス識別子を動的に生成す
る。例えば、構文解析されたネームスペースが「WinNTD
S 」ならば、次いで、クラス識別子は「CLSID_PDNWinN
TDS」であってよい。クラスファクトリオブジェクト
は、例示されるべきIParseDisplayName インターフェー
スを公開するParsedDisplayName のオブジェクトを例示
する。IParseDisplayName インターフェースは名前をリ
ターンすることができる方法をOleDs パスによって識別
されたオブジェクトに関するOleDs オブジェクトに提供
する。ステップ503 では、ファンクションは、IParseDi
splayName インターフェースの識別子をパスするメソッ
ドIClassFactory::CreateInstance を呼び出し、ポイン
タをIParseDisplayName インターフェースに受ける。メ
ソッドCreateInstanceは、動的に生成されたクラス識別
子によって識別されたクラスのインスタンスを作成す
る。ステップ504 では、ファンクションはOleDs パスを
パスするメソッドIParseDisplayName::ParseDisplayNam
e を呼び出す。メソッドParseDisplayNameはポインタを
OleDs パスによって識別されたオブジェクトに関する名
前(IMonikerインターフェース)に返す。ステップ505
では、ファンクションは、OleDs パスによって識別され
たオブジェクトを表わすOleDs オブジェクトに対してポ
インタを検索するために、メソッドIMoniker::BindToOb
jectを呼び出す。次いで、ファンクションはポインタを
OleDs オブジェクトに返す。
【0029】IOleDsインターフェース IOleDsインターフェースは各OleDs オブジェクトに共通
な属性及びメソッドを定義する。以下は、その属性及び
メソッドの記述を加えたインターフェースの定義であ
る: Interface IOleDs:IDispatch { HRESULT get Name(string*pName) HRESULT get Class(string*pClass); HRESULT get GUID (string*GUID); HRESULT get OleDsPath(string*pOleDsPath); HRESULT get Parent (string*pParentContainer); HRESULT get Schema (string*pSchemaClassObject); HRESULT Access(IOleDsAccess**ppComponentAccessControl); HRESULT PropAccess(string PropName, IOleDsAccess**ppComponent AccessControl); HRESULT GetInfo(variant vHints); HRESULT SetInfo(void); HRESULT Get(string Name,variant*pProp); HRESULT Put(string Name,variant Prop); }
【0030】 属性 名前 記述 名前(Name) コンテナオブジェクト内のこのオブジェクトの相対的な名前 OleDsPath このオブジェクトのOleDs パス クラス(Class) このオブジェクトのオブジェクトクラスのネーム GUID このオブジェクトクラスのオブジェクトに関する一意的識別子 Parent このオブジェクトのコンテナオブジェクトのOleDs パス Schema このオブジェクトクラスを表わすスキーマオブジェクトのOleDs パス メソッド 名前 記述 Access このオブジェクトのセキュリティパーミッションに一致するOleD s アクセスコントロールオブジェクトの(下で説明される)IOleDsAccessインタ ーフェースを得る。 PropAccess これのプロパティにアクセスコントロールを表わすOleDs アクセ スコントロール従属オブジェクトのIOleDsAccessインターフェースにポインタを 戻す。 GetInfo ディレクトリサービスからこのオブジェクトのプロパティ値を検 索し、それらをOleDs オブジェクトにストアする。vHintsパラメータによって、 クライアントが、検索されるべきファンクショナルセット又はプロパティを指示 することができるので、メソッドはネットワークアクセスを最適化することがで きる。 SetInfo このオブジェクトに変化を完遂(コミット)する。プロパティが このオブジェクトで変化しているならば、メソッドはプロパティ値をOleDs オブ ジェクトからディレクトリサービスに書込む。 Get OleDs オブジェクトから名前をつけられたプロパティに関する値 を検索する。 Put OleDs オブジェクトに名前をつけられたプロパティに関する値を セットする。
【0031】図6及び図7はIOleDsインターフェースの
メソッドのインプリメンテーションを図示する。図6は
メソッドIOleDs::GetInfo の流れ図である。このメソッ
ドはオブジェクトに関するプロパティをディレクトリサ
ービスからOleDs オブジェクトにロードする。OleDs は
コミットプロセス又はトランザクションプロセスを定義
し、オブジェクトのプロパティに対する更新が該コミッ
トプロセス又はトランザクションプロセスによって、
(メソッドPut を使用する)OleDs オブジェクトにのみ
ストアされ、クライアントが(メソッドSetInfo を使用
して)リクエストしたときにだけディレクトリサービス
にストアされる。OleDs オブジェクトが最初に例示され
たとき、例えば、ファンクションOleDsGetObjectが呼び
出されたとき、例示されたオブジェクトは典型的には、
ディレクトリサービスのAPIセットに対するオブジェ
クトを識別するハンドルを含む。ステップ601 では、メ
ソッドは、ハンドルをオブジェクトと、オブジェクトに
関するプロパティ名のリストとにパスさせるファンクシ
ョンReadObjectを呼び出す。ファンクションReadObject
はディレクトリサービスから名付けられたプロパティに
関する値を検索する。OleDs デフォルトオブジェクトに
関するメソッドGetInfo のインプリメンテーションで
は、メソッドは、このオブジェクトのオブジェクトクラ
スに関してスキーマオブジェクトからプロパティ名のリ
ストを検索する。ステップ702 乃至704 では、メソッド
ループは検索された値をOleDs オブジェクトにストアす
る。ステップ702 では、メソッドは次の値を選択して、
最初から始まる。ステップ703 では、すべての値が既に
選択されているならば、次いで、メソッドは戻り、代わ
りにメソッドはステップ704 に続く。ステップ704 で
は、メソッドは選択された値をOleDs オブジェクト内に
ストアし、次の値を選択すべくステップ702 にループす
る。
【0032】図7はメソッドIOleDs::Get の流れ図であ
る。メソッドはプロパティ名をパスし、パスされたプロ
パティのその値をOleDs オブジェクトから検索し、且
つ、戻す。
【0033】IOleDsContainer インターフェース IOleDsContainer インターフェースは、コンテナである
各OleDs オブジェクトに共通な属性及びメソッドを定義
する。以下は、その属性及びメソッドの記述を加えたイ
ンターフェースの定義である。 Interface IOleDsContainer:IDispatch { HRESULT get Count(long*pCount); HRESULT get NewEnum(IUnknown*ppEnum); HRESULT get Filter(Variant*pFiler); HRESULT put Filter(Variant Filter); HRESULT GetObject(string Class,string RelativeName,IOleDS ** ppNameObject); HRESULT Create (string Class,string RelativeName,IOleDS**ppNew Object); HRESULT Delete (string Class,String RelativeName); HRESULT CopyHere(string SourceObject,string NewName,IOleDs** ppNewObject); HRESULT MoveHere(string SourceObject,string NewName,IOleDs** ppNewObject); }
【0034】 属性 名前 記述 Filter 特定の目録に戻されるべきオブジェクトクラスに関するフィルタ の配列。フィルタが空ならば、次いで、すべてのオブジェクトクラスのすべての オブジェクトは戻される。各アレイエントリは以下のフォーマットを有する。 <FilterEntry>::=<ClassName> |<ClassName>.<PropName> |<ClassName>.<FuncSetName> |<ClassName>.<FuncSetName>.<PropName> |<GUID> |"Provider Specific String" Count フィルタをパスするコンテナ内のOleDs オブジェクトの数 _NewEnum 収容されたオブジェクトのエニュメレータ メソッド 名前 記述 GetObject オブジェクトのIOleDsインターフェースを、コンテナオブジェク ト内のオブジェクトクラス及び相対的な名前によって識別されるこのコンテナオ ブジェクトに戻す。 Create このコンテナオブジェクト内に指定されたオブジェクトクラス及 び相対的な名前のオブジェクトを作り、ポインタをIOleDsインターフェースに戻 す。オブジェクトは、メソッドIOleDs::SetInfo が呼び出されるまでディレクト リサービス内に実際には作られないので、委任されたプロパティはセットされる べきである。 Delete このコンテナオブジェクト内のオブジェクトクラスと相対的な名 前によって識別されたオブジェクトを削除する。 CopyHere 指定されたオブジェクトと同一である新しいオブジェクトをこの コンテナオブジェクトに作り、ポインタを新しいオブジェクトとのIOleDsインタ ーフェースに戻す。NewName は、存在するならば、新しいオブジェクトの名前を コンテナオブジェクト内に収容する任意のパラメータである。 MoveHere ソースオブジェクトがコピーの後で削除されることを除いて、メ ソッドCopyHereと同様である。
【0035】図8はメソッドIOleDsContainer::CopyHer
e の流れ図である。このメソッドは、指定されたソース
オブジェクトのコピーをこのコンテナオブジェクト内に
作る。ステップ801 では、メソッドは、コピーされるべ
きオブジェクトのオブジェクトクラスを決定する。ステ
ップ802 では、メソッドは、ファンクションCreateObje
ctを呼び出すことによって、オブジェクトを決定された
オブジェクトクラスのディレクトリサービスに作る。ス
テップ803 では、メソッドはオブジェクトクラスに関し
てスキーマオブジェクトに対するOleDs パスを検索す
る。ステップ804では、メソッドはOleDs パスをスキー
マオブジェクトにパスさせるファンクションOleDsGetOb
jectを呼び出し、ポインタをOleDs スキーマオブジェク
トのIOleDsインターフェースに対して検索する。ステッ
プ805 では、メソッドは、ポインタをIOleDsClass イン
ターフェースに対して検索するために、OleDs スキーマ
オブジェクトのメソッドIOleDs::QueryInterfaceを呼び
出す。IOleDsClass インターフェースは、このオブジェ
クトクラスに関して定義されたプロパティの名前を検索
することができるメソッドを提供する。ステップ806 で
は、メソッドは、このスキーマクラスの委任されたプロ
パティのリストを検索するために、メソッドIOleDsClas
s::GetMandatoryProperties を呼び出す。ステップ807
では、メソッドは、このクラスに関して追加のいかなる
プロパティをも検索するために、メソッドIOleDs::Prop
ertiesを呼び出す。ステップ808 乃至811 では、メソッ
ドループはプロパティの各値をソースOleDs オブジェク
トから宛先OleDs オブジェクトまでコピーする。ステッ
プ808 では、メソッドは次のプロパティを選択し、最初
から始まる。ステップ809 では、全てのプロパティが既
に選択されているならば、次いで、メソッドはステップ
812 に続き、他の場合は、メソッドはステップ810に続
く。ステップ810 では、メソッドは、選択されたプロパ
ティに関して値を検索するために、ソースOleDs オブジ
ェクトのメソッドIOleDs::Get を呼び出す。ステップ81
1 では、メソッドは検索された値を宛先IOleDsオブジェ
クトにストアし、次のプロパティを選択するためにステ
ップ808 にループする。ステップ812では、メソッドは
ソースOleDs オブジェクトの属性を宛先OleDs オブジェ
クトにコピーし、且つ、戻す。図9は、メソッドIOleD
s::Createの流れ図である。ステップ901 では、メソッ
ドは、オブジェクトクラスをパスするディレクトリサー
ビスのファンクションCreateObjectを呼び出し、ハンド
ルをそのオブジェクトクラスの新たに作られたオブジェ
クトに受ける。
【0036】IOleDsClass インターフェース IOleDsClass インターフェースは、オブジェクトクラス
の定義にアクセスを提供するために、OleDs スキーマに
よって公開される。以下は、その属性とメソッドの記述
を加えたインターフェースの定義である。 Interface IOleDsClass:IOleDs { HRESULT get PrimaryInterface(string*GUID); HRESULT get CLSID(string CLSID); HRESULT put CLSID(string CLSID); HRESULT get OID(string*OID); HRESULT put OID(string OID); HRESULT get Abstract(boolean*Abstract); HRESULT put Abstract(boolean Abstract); HRESULT get MandatoryProperties(Variant*Mandatory); HRESULT put MandatoryProperties(Variant Mandatory); HRESULT get DerivedFrom(Variant*pDerivedFrom); HRESULT put DerivedFrom(Variant DerivedFrom); HRESULT get Containment(Variant*pContainment); HRESULT put Containment(Variant Containment); HRESULT get Container(boolean*pContainer); HRESULT put Container(boolean Container); HRESULT get HelpFileName(string*pHelpFile); HRESULT put HelpFileName(string HelpFile); HRESULT get HelpFileContext(long*pHelpContext); HRESULT put HelpFileContext(long HelpContext); HRESULT Attributes(IOleDsCollection**ppAttributes) }
【0037】 属性 名前 記述 CLSID このオブジェクトクラスに関してOLE DSオブジェクトを 実行するコードのCLSID OID このオブジェクトクラスを定義するネームすぺーススペ シフィックオブジェクト識別子。これは、オブジェクトクラスに関してネームス ペーススペシフィックOIDsを要求するネームスペースのOLE DSを介してスキーマ エクステンションを可能にするように提供される。 Abstract このオブジェクトクラスがアブストラクトであるかどう か指示するブール値 MandatoryProperties ストレージに書き込まれるべきこのオブジェクトクラス に設定されなければならないプロパティのリスト Primary Interface このオブジェクトクラスのオブジェクトに関するプライ マリインターフェース識別子。これは、IOleDsUserをサポートすることによって 識別されるならば、例えば「user」クラスである該クラスを定義するインターフ ェースに関するIID である。 DriverdFrom このオブジェクトクラスが得られる即値スーパークラス を指示するOleDs パス列の配列 Container このオブジェクトクラスがコンテナであるかどうか決定 するプロパティ HelpFileName このオブジェクトクラスのオブジェクトについて更なる 情報を収容するヘルプファイルの名前 HelpFileContext このオブジェクトクラスで特定の情報を見つけることが できるHelpFileName内のContext ID メソッド 名前 記述 Attributes このプロパティの追加の属性[delete???] を説明するOleDs オブ ジェクトのコレクションを戻すIOleDsPropertyインターフェース OleDs はオブジェクトクラスの各プロパティに対応する
OleDs プロパティオブジェクトを定義する。OleDs プロ
パティオブジェクトはプロパティの定義を検索すること
ができるインターフェースを公開する。以下は、属性と
メソッドの記述を加えたインターフェースの定義であ
る。 Interface IOleDsProperty:IOleDs { HRESULT get OleDsNames(Variant*pOleDsNames); HRESULT get DsNames(Variant*pDsName); HRESULT get OID(string OID); HRESULT put OID(string*OID); HRESULT get Syntax(string*pSyntax); HRESULT put Syntax(string Syntax); HRESULT get MaxRange(long*pMaxRange); HRESULT put MaxRange(long MaxRange); HRESULT get MinRange(long*pMinRange); HRESULT put MinRange(long MinRange); HRESULT get MultiValued(long*pMultiValued); HRESULT put MultiValued(long MultiValued); HRESULT Attributes(IOleDsCollection**ppAttributes) }
【0038】 属性 名前 記述 OleDsNames OleDs がこのプロパティにアクセスすることができる名前を包含 するストリングの配列 DsNames 下にあるネームスペースがこのプロパティにアクセスすることが できる名前を包含するストリングの配列 OID このプロパティを定義するネームスペーススペシフィックオブジ ェクト識別子 Syntax このプロパティの構文を定義するスキーマシンタックスオブジェ クトの相対的なパス。現在のスキーマコンテナに関連している。 MaxRange プロパティに割り当てられた値の上限 MinRange プロパティに割り当てられた値の下限 Normal このプロパティが標準的に複製されるべきかどうか決定する値 MultiValued このプロパティがマルチバリュー(multi-value )であるかどう か決定する値 メソッド 名前 記述 Attributes このプロパティの追加の属性を説明するOLE DSオブジェクトのコ レクションを戻す。IOleDs<Class> インターフェース OleDs は、IOleDs<class> と名付けられたインターフェ
ースをサポートすることができる全てのオブジェクトク
ラスを定義し、ここで<class> はオブジェクトクラスの
名前である。このインターフェースはメソッドを有し、
オブジェクトクラスによってサポートされた各ファンク
ショナルセットはポインタをそのファンクショナルセッ
トに関してOlDsFunctionalSet オブジェクトに返す。 Interface IOleDsUser:IOleDs { HRESULT get BusinessInfo (IOleDs FS UserBusinessInfo**ppFuncSet); }:
【0039】OleDs オブジェクトクラス定義 OleDs はコンテナオブジェクトとリーフオブジェクトの
両方に関して種々のオブジェクトクラスを定義する。以
下のオブジェクトクラスをOleDs によってコンテナオブ
ジェクトに関して定義する: ネームスペーシズ(Namespaces) ネームスペース(Namespace ) 国(Country ) 地域(Locality) 組織(Organization) ドメイン(Domain) 組織ユニット(Organizational Unit ) コンピュータ(Computer) ファイルサービス(File Service) 以下のオブジェクトクラスをOleDs によってリーフオブ
ジェクトに関して定義する: ユーザ(User) グループ(Group ) エイリアス(Alias ) サービス(Service ) ポイントキュー(Point Queue ) ポイントジョブ(Point Job ) ポイントデバイスセッション(Point Device Session) リソース(Resource) ファイル共有(File Share) ネームスペーシズオブジェクトはネームスペースオブジ
ェクトのコンテナである。ネームスペーシズオブジェク
トのインプリメンテーションはOleDs の一部である。ネ
ームスペーシズオブジェクトはIOleDsネームスペーシズ
インターフェースを公開する。このインターフェースを
以下に示す。 Interface IOleDsNamespaces:IOleDs { get DefaultContainer(string *pDefault); set DefaultContainer(string Default); } ネームスペースオブジェクトは所定のネームスペースに
関する全てのOleDs オブジェクトのソースであるコンテ
ナオブジェクトである。国オブジェクトは国に関するプ
ロパティを有するコンテナオブジェクトである。地域オ
ブジェクトは地域(例えば、州)に関するプロパティを
有するコンテナオブジェクトである。以下は、地域オブ
ジェクトの特徴を得ることができ且つ設定することがで
きるインターフェースの定義である。 Interface IOleDsFSLocalityGeneralInfo:IDispatch { HRESULT get Description(string*Description); HRESULT put Description(string Description); HRESULT get LocalityName(string LocalityName); HRESULT put LocalityName(string LocalityName); HRESULT get PostalAddress(string*pPostalAddress); HRESULT put PostalAddress(string pPostalAddress); HRESULT get SeeAlso(VARIANT*pSeeAlso); HRESULT put SeeAlso(VARIANT Also); HRESULT Access(IOleDsAccess**ppFuncSetAccessControl); HRESULT PropAccess(string PropName, IOleDsAccess **ppPropAccess Control); } メソッド 名前 記述 Access アクセス制御をこのインターフェースに表わすポインタを、アク セスコントロール依存オブジェクトのIOleDsAccessインターフェースに戻す PropAccess PropNameによって指示されるとき、アクセス制御をこのインター フェースのプロパティに表わすポインタを、アクセスコントロール依存オブジェ クトのIOleDsAccessインターフェースに戻す
【0040】 属性 名前 記述 Description 地域を説明するテキスト LocalityName 地域名。地域名はコンテナが物理的に配置される地図エリアを定 義する。 PostalAddress 地域のメイン郵便アドレス SeeAlso このオブジェクトに対して検索されるべき他のディレクトリオブ ジェクトの名前の配列 OleDs 定義されたオブジェクトクラスの各々は、そのオ
ブジェクトクラスのオブジェクトに関するプロパティを
定義する。ドメインオブジェクトはコンピュータシステ
ムのドメインに対応し、且つ、ドメインオブジェクトに
関するプロパティ(例えば、パスワード)を備えたファ
ンクショナルセットを有する。組織ユニットオブジェク
トは会社のような構成要素に対応する。コンピュータオ
ブジェクトはドメインのコンピュータに対応する。ユー
ザオブジェクトは、ビジネス情報、アカウント制限、ア
カウント統計、及び、ユーザを説明するための他の情報
ファンクショナルセットを有する。ビジネス情報ファン
クショナルセットは、国、部、課、マネージャ、オフィ
スの場所のようなビジネスの説明に関するプロパティを
含む。アカウント制限ファンクショナルセットは、無能
力にされたアカウント、ユーザがログインすることがで
きる時間数、等のようなユーザのアカウントの一般的な
特徴を説明したプロパティを含む。アカウント統計ファ
ンクショナルセットは、パスワードが変更された最後の
時間及びユーザがアカウントにログインした最後の時間
のようなユーザのアカウントの統計を明記したプロパテ
ィを有する。他の情報ファンクショナルセットは、電子
メールアドレス、ホームディレクトリのような他のユー
ザ情報に関するプロパティを含む。
【0041】OleDs のクライアントの例 図10は、全てのネームスペーシズを表示するための手
順の流れ図である。この手順は、OleDs のクライアント
が全てのネームスペーシズの名前を検索する仕方を図示
する。ステップ1001では、手順は、OleDs ネームスペー
シズオブジェクトに関するクラス及びIClassFactory イ
ンターフェースに関するインターフェース識別子をパス
するファンクションCoGetClassObjectを呼び出す。ファ
ンクションはポインタをOleDs ネームスペーシズに関す
るクラスファクトリインターフェースに戻す。ステップ
1002では、手順は、IOleDsContainer インターフェース
に関してインターフェース識別子をパスしてメソッドIC
lassFactory::CreateInstance を呼び出す。メソッドは
OleDs ネームスペーシズオブジェクトのインスタンスを
作り、ポインタをIOleDsContainer インターフェースに
戻す。ステップ1003では、手順はネームスペーシズオブ
ジェクトに関してエニュメレータを検索するためにメソ
ッドIOleDsContainer::get_NewEnum を呼び出す。ステ
ップ1004乃至1008では、各ネームスペースを列挙してル
ープし、ネームスペースを表示する。ステップ1004で
は、手順はネームスペースオブジェクトに関してIUnkno
wnインターフェースに対してポインタを検索するために
メソッドIEnumerator::Next を呼び出す。ステップ1005
では、全てのネームスペーシズが既に列挙されてしまっ
ているならば、次いで、手順は戻り、それ以外は手順は
ステップ1006に続く。ステップ1006では、手順はネーム
スペースオブジェクトに関してIOleDsインターフェース
に対してポインタを検索するために、メソッドIUnknow
n::QueryInterfaceを呼び出す。ステップ1007では、手
順は、ネームスペースオブジェクトと関係している名前
を検索するために、メソッドIOleDs::get_Nameを呼び
出す。ステップ1008では、手順は検索された名前を表示
し、次いで、次のネームスペースオブジェクトを列挙す
るためにステップ1004にループする。
【0042】本発明を好ましい実施形態に関して説明し
てきたけれども、本発明をこの実施形態に限定すべきで
はない。本発明の精神内の変更は当業者にとって明らか
であろう。本発明の範囲を以下の特許請求の範囲に定義
する。
【図面の簡単な説明】
【図1】ディレクトリサービスのサンプル階層構造をを
図示する。
【図2】オブジェクトを表わすのに使用される典型的な
データ構造を図示する。
【図3A】OleDs の階層構造を図示する。
【図3B】ディレクトリサービスにおけるOleDs オブジ
ェクトとそれらに対応するオブジェクトとの間の関係を
図示する。
【図4】本発明を実施するために構成されたコンピュー
タシステムのブロック図である。
【図5】OleDs の割り当てファンクションである、ファ
ンクションOleDsGetObjectの流れ図である。
【図6】メソッドIOleDs::GetInfo の流れ図である。
【図7】メソッドIOleDs::Get の流れ図である。
【図8】メソッドIOleDsContainer::CopyHere の流れ図
である。
【図9】メソッドIOleDs::Createの流れ図である。
【図10】全てのネームスペースを表示するためのプロ
シージャの流れ図である。
【符号の説明】 400 コンピュータシステム 401 メモリ 402 中央処理装置 403 I/O インターフェース 404 記憶装置 405 表示装置 406,407 クライアント 408,411,414 OleDs オブジェクト 409,412,415 ディレクトリサービス 410,413,416 オブジェクト
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クリシュナ ガヌガパッテイ アメリカ合衆国 ワシントン州 98007 ベルビュー ノースイースト フォーティ サード プレイス 14635−1603 エヌ (72)発明者 マーガレット ケイ ジョンソン アメリカ合衆国 ワシントン州 98033 カークランド ワンハンドレッドアンドヒ ィフス アベニュー ノースイースト 4234 (72)発明者 スティーヴン ジー ジュド アメリカ合衆国 ワシントン州 98053 レッドモンド トウハンドレッドアンドナ インティーンス プレイス ノースイース ト 9232 (72)発明者 ステュアート エル エス クワン アメリカ合衆国 ワシントン州 98007 ベルビュー ワンハンドレッドアンドフォ ーティエイス アベニュー ノースイース ト 5031 アパートメント エフ205 (72)発明者 コリン ワトソン アメリカ合衆国 ワシントン州 98027 イサカ サウスイースト ダジィ ヒル ロード 26613

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 各々が、オブジェクトクラスによって定
    義される各オブジェクトのための情報に関連する情報を
    有し、各オブジェクトクラスが、それぞれプロパティ名
    とプロパティ形式とを有するプロパティを定義するもの
    であり、各オブジェクトのための前記情報が、そのオブ
    ジェクトクラスの各プロパティのためのプロパティ値で
    あるような、複数のディレクトリサービスへの一様なア
    クセスを与えるためのディレクトリサービスシステムで
    あって、 ディレクトリサービスのクライアントがオブジェクトク
    ラスのプロパティ名及びプロパティ形式を検索するため
    に使用する、各ディレクトリサービスの各オブジェクト
    クラスの各プロパティのプロパティ名及びプロパティ形
    式を検索するためのスキーマブラウジングコンポーネン
    トと、 ディレクトリサービス内のオブジェクトの一意的な識別
    子を受け取り、識別されたオブジェクトの前記情報を含
    むディレクトリサービスを識別し、識別されたディレク
    トリサービス内で該オブジェクトを探し出す名前解読コ
    ンポーネントと、 識別されたディレクトリサービス内で捜し出されたオブ
    ジェクトを表わすインメモリオブジェクトに割り当てる
    ための割り当てコンポーネントと、 該ディレクトリサービスシステムの顧客が新しいオブジ
    ェクトクラスと新しい特性を定義するために使用する、
    各ディレクトリサービスについて新しいオブジェクトク
    ラスと新しいプロパティを定義するための拡張コンポー
    ネントと、を備えるディレクトリサービスシステム。
  2. 【請求項2】 インメモリオブジェクトは、インメモリ
    オブジェクトが割り当てられるオブジェクトのプロパテ
    ィ値を検索するための予め定義されたインターフェース
    を提供する、請求項1に記載のディレクトリサービスシ
    ステム。
  3. 【請求項3】 インメモリオブジェクトが複数のオブジ
    ェクトを含むオブジェクトに割り当てられているとき、
    インメモリオブジェクトはこの含まれた複数のオブジェ
    クトのリファレンスを検索するための所定のインターフ
    ェースを提供する、請求項1に記載のディレクトリサー
    ビスシステム。
  4. 【請求項4】クライアントがオブジェクトクラスの定義
    のアクセスのために割り当てコンポーネントを使用し
    て、インメモリオブジェクトを例示する、請求項1に記
    載のディレクトリサービスシステム。
  5. 【請求項5】 各ディレクトリサービスを列挙するため
    のネームスペーシズインメモリオブジェクトを含む、請
    求項1に記載のディレクトリサービスシステム。
  6. 【請求項6】 各ディレクトリサービスをネームスペー
    スインメモリオブジェクトによって表わす、請求項6に
    記載のディレクトリサービスシステム。
  7. 【請求項7】 各々がオブジェクトを有し、各オブジェ
    クトがオブジェクト識別子とオブジェクトクラスとプロ
    パティ値とを有する、複数の異なったディレクトリサー
    ビスに一様な形でアクセスすることが出来るコンピュー
    タシステムであって、 前記複数のディレクトリサービスの各々について、 オブジェクト識別子を受け取り識別されたオブジェクト
    についてのリファレンスを返すことによって該ディレク
    トリサービスの1つのオブジェクトに割り当てる該割り
    当て機能と、各オブジェクトクラスの定義を検索するス
    キーマ機能とを有するアプリケーションプログラミング
    インターフェースと、 該ディレクトリサービスの前記アプリケーションプログ
    ラミングインターフェースとは独立した形でクライアン
    トが該ディレクトリサービスのオブジェクトにアクセス
    できる、各オブジェクトのプロパティ値にアクセスする
    ためのインターフェースと各オブジェクトクラスの定義
    にアクセスするためのインターフェースとを含む複数の
    予め定義されたインターフェースのインプリメンテーシ
    ョンと、 各ディレクトリサービスを列挙するためのネームスペー
    シズインターフェースと、 該ネームスペーシズインターフェースを使用するディレ
    クトリサービスを列挙し、この列挙されたディレクトリ
    サービスのための予め定義されたインターフェースのイ
    ンプリメンテーションを使用して、該ディレクトリサー
    ビスのオブジェクトのプロパティ値をアクセスし、該デ
    ィレクトリサービスとは独立した、ディレクトリサービ
    スブラウザと、を備えるコンピュータシステム。
  8. 【請求項8】 オブジェクトクラスの定義にアクセスす
    るためのインターフェースがオブジェクトクラスの定義
    をディレクトリサービスに加えるための方法を含む、請
    求項7に記載のコンピュータシステム。
  9. 【請求項9】 各ディレクトリサービスが、新しく加え
    られたオブジェクトクラスのオブジェクトに適応するよ
    うに、デフォルトインメモリオブジェクトのインプリメ
    ンテーションを提供する、請求項7に記載のコンピュー
    タシステム。
  10. 【請求項10】 各オブジェクトは一意的な識別子を有
    し、オブジェクトの識別子がパスされたとき、識別され
    たオブジェクトを包含し、そのオブジェクトのプロパテ
    ィ値をストアするためのインメモリデータ構造を生成す
    るディレクトリサービスを決定する割り当て機能を含
    む、請求項7に記載のコンピュータシステム。
  11. 【請求項11】 各々が、オブジェクトをアクセスする
    挙動を有するアプリケーションプログラミングインター
    フェースを備える、複数のディレクトリサービスにアク
    セスするための、コンピュータシステムにおける方法で
    あって、 複数のディレクトリサービスの各々について、該ディレ
    クトリサービスのオブジェクトにアクセスするための挙
    動を定める予め定義されたインターフェースのインプリ
    メンテーションをインストールし、この際に、該インプ
    リメンテーションは、前記アプリケーションプログラミ
    ングインターフェースの挙動から前記予め定義されたイ
    ンターフェースの挙動へのマッピングを与えるものと
    し、 オブジェクトの識別を受け取り、 この識別されたオブジェクトがどのディレクトリサービ
    スに含まれるか、を求め、 この求められたディレクトリサービスのための予め定義
    されたインターフェースのインストールされたインプリ
    メンテーションを使用して、識別されたオブジェクトを
    捜し出し、割り当てる、ことからなり、 クライアントは、各ディレクトリサービスについて、該
    ディレクトリサービスのための予め定義されたインター
    フェースの前記インプリメンテーションを使用して該デ
    ィレクトリサービスにアクセスすることが出来ることを
    特徴とする方法。
  12. 【請求項12】 各オブジェクトはオブジェクトクラス
    を有し、所定のインターフェースはオブジェクトクラス
    の定義をディレクトリサービスに加えることができる性
    質を定義する、請求項11に記載の方法。
  13. 【請求項13】 各オブジェクトはオブジェクトクラス
    を有し、所定のインターフェースはディレクトリサービ
    スのオブジェクトクラスの定義を検索することができる
    性質を定義する、請求項11に記載の方法。
  14. 【請求項14】 所定のインターフェースはディレクト
    リサービスに対してオブジェクトへの変更を完追するこ
    とができる性質を定義する、請求項11に記載の方法。
  15. 【請求項15】 各々が、ディレクトリサービスのオブ
    ジェクトにアクセスする挙動を有するアプリケーション
    プログラミングインターフェースを備える、複数のディ
    レクトリサービスに、 複数のディレクトリサービスの各々について、該ディレ
    クトリサービスのオブジェクトにアクセスするための挙
    動を定める予め定義されたインターフェースのインプリ
    メンテーションをインストールし、この際に、該インプ
    リメンテーションは、前記アプリケーションプログラミ
    ングインターフェースの挙動から前記予め定義されたイ
    ンターフェースの挙動へのマッピングを与えるものと
    し、 識別されるオブジェクトに関する情報を含むディレクト
    リサービスを提供し特定されたディレクトリサービス内
    での該オブジェクトへの経路を特定するオブジェクトの
    識別を受け取り、 特定されたディレクトリサービスを識別し、 該オブジェクトへの特定された経路を通る識別されたデ
    ィレクトリサービスの予め定義されたインターフェース
    のインプリメンテーションに、捜し出されたオブジェク
    トについてのリファレンスを戻す挙動を起こさせ、 この戻されたリファレンスに割り当てて識別されたオブ
    ジェクトに関する情報が得られるようにする、ことによ
    って、コンピュータシステムをアクセスさせるインスト
    ラクションを有するコンピュータ読取り可能な媒体。
  16. 【請求項16】 各オブジェクトはオブジェクトクラス
    を有し、所定のインターフェースはオブジェクトクラス
    の定義をディレクトリサービスに加えることができる性
    質を定義する、請求項15に記載のコンピュータ読取り
    可能媒体。
  17. 【請求項17】 各オブジェクトはオブジェクトクラス
    を有し、所定のインターフェースはディレクトリサービ
    スのオブジェクトクラスの定義を検索することができる
    性質を定義する、請求項15に記載のコンピュータ読取
    り可能媒体。
  18. 【請求項18】 所定のインターフェースはディレクト
    リサービスに対してオブジェクトへの変更を完追するこ
    とができる性質を定義する、請求項15に記載のコンピ
    ュータ読取り可能媒体。
JP21114897A 1996-07-01 1997-07-01 多数ディレクトリサービスに一様にアクセスするための方法及びシステム Expired - Lifetime JP4197753B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/674318 1996-07-01
US08/674,318 US5893107A (en) 1996-07-01 1996-07-01 Method and system for uniformly accessing multiple directory services

Publications (2)

Publication Number Publication Date
JPH10154095A true JPH10154095A (ja) 1998-06-09
JP4197753B2 JP4197753B2 (ja) 2008-12-17

Family

ID=24706140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21114897A Expired - Lifetime JP4197753B2 (ja) 1996-07-01 1997-07-01 多数ディレクトリサービスに一様にアクセスするための方法及びシステム

Country Status (5)

Country Link
US (2) US5893107A (ja)
EP (2) EP1460565B1 (ja)
JP (1) JP4197753B2 (ja)
CA (1) CA2209170C (ja)
DE (1) DE69730657T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272911A (ja) * 2003-03-07 2004-09-30 Microsoft Corp コンピューティング環境におけるオブジェクト内のフィールドのカスタマイズ

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185611B1 (en) * 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US5893107A (en) * 1996-07-01 1999-04-06 Microsoft Corporation Method and system for uniformly accessing multiple directory services
US6061726A (en) * 1997-05-27 2000-05-09 Novell, Inc. Dynamic rights assignment apparatus and method using network directory services
US6209036B1 (en) * 1997-06-06 2001-03-27 International Business Machines Corporation Management of and access to information and other material via the world wide web in an LDAP environment
DE19882605T1 (de) * 1997-08-11 2000-08-10 Seagate Technology Objektorientierte Datenspeichervorrichtung
US6134706A (en) * 1997-08-14 2000-10-17 International Business Machines Corporation Software business objects in a multi-level organizational structure
JP3808608B2 (ja) * 1997-10-20 2006-08-16 富士通株式会社 蓄積交換型電子会議システムにおけるオブジェクトの移動処理装置及び方法並びに移動処理プログラムを記録したコンピュータ読取可能な記録媒体
US6044467A (en) * 1997-12-11 2000-03-28 Sun Microsystems, Inc. Secure class resolution, loading and definition
US6044379A (en) * 1997-12-18 2000-03-28 Sun Microsystems, Inc. Method and apparatus for efficiently implementing multiple storage mechanism for name services associated with a computer system
US6026408A (en) * 1998-01-28 2000-02-15 Unisys Corp. Method for synchronizing the schema of a database with its representation in an object-oriented repository
US6862736B2 (en) 1998-02-06 2005-03-01 Microsoft Corporation Object manager for common information model
US6138122A (en) * 1998-03-02 2000-10-24 Agilent Technologies Modeling of internet services
US6317748B1 (en) * 1998-05-08 2001-11-13 Microsoft Corporation Management information to object mapping and correlator
US6961748B2 (en) 1998-10-27 2005-11-01 Murrell Stephen J Uniform network access
FR2785412B1 (fr) * 1998-10-30 2001-08-24 Bull Sa Creation dynamique de classes d'objets
US6477539B1 (en) * 1998-12-22 2002-11-05 Nortel Networks Limited Method and apparatus for interfacing a manager and a plant
US6609153B1 (en) 1998-12-24 2003-08-19 Redback Networks Inc. Domain isolation through virtual network machines
US6154741A (en) * 1999-01-29 2000-11-28 Feldman; Daniel J. Entitlement management and access control system
US7076476B2 (en) * 1999-03-02 2006-07-11 Microsoft Corporation Method and system for integrated service administration via a directory service
US6842903B1 (en) * 1999-05-19 2005-01-11 Sun Microsystems, Inc. System and method for providing dynamic references between services in a computer system
GB2351370A (en) * 1999-06-25 2000-12-27 Ibm Data processing with policed object union
US7058956B1 (en) * 1999-09-01 2006-06-06 Microsoft Corporation Directory services interface extensions with aggregatable software objects
US6622170B1 (en) 1999-09-10 2003-09-16 International Business Machines Corporation System and method for DEN/LDAP client database access with a backoff capability
US6604148B1 (en) * 1999-10-01 2003-08-05 International Business Machines Corporation Method, system, and program for accessing a network namespace
US7331058B1 (en) * 1999-12-16 2008-02-12 International Business Machines Corporation Distributed data structures for authorization and access control for computing resources
US6847959B1 (en) * 2000-01-05 2005-01-25 Apple Computer, Inc. Universal interface for retrieval of information in a computer system
US6484177B1 (en) * 2000-01-13 2002-11-19 International Business Machines Corporation Data management interoperability methods for heterogeneous directory structures
US6578035B1 (en) 2000-01-14 2003-06-10 Novell, Inc. Method for dynamic validation of a distributed database segment which yields a suitable successor
US6665674B1 (en) 2000-02-02 2003-12-16 Nortel Networks Limited Framework for open directory operation extensibility
US6760720B1 (en) 2000-02-25 2004-07-06 Pedestrian Concepts, Inc. Search-on-the-fly/sort-on-the-fly search engine for searching databases
US6873337B1 (en) * 2000-04-06 2005-03-29 Microsoft Corporation Application programming interface for changing the visual style
US20010048448A1 (en) * 2000-04-06 2001-12-06 Raiz Gregory L. Focus state themeing
US6753885B2 (en) * 2000-04-06 2004-06-22 Microsoft Corporation System and theme file format for creating visual styles
US20050091576A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
US6731927B1 (en) 2000-07-14 2004-05-04 Context Connect, Inc. System and method for context association
US7340048B2 (en) * 2000-07-14 2008-03-04 Context Connect Llc System and method for directory services and e-commerce across multi-provider networks
US7899173B2 (en) * 2000-07-14 2011-03-01 Context Connect, Llc Communication connectivity via context association, advertising sponsorship, and multiple contact databases
US7051114B1 (en) * 2000-11-01 2006-05-23 Cisco Technology, Inc. System and method for integrating directory servers
US7200627B2 (en) * 2001-03-21 2007-04-03 Nokia Corporation Method and apparatus for generating a directory structure
US7756835B2 (en) * 2001-03-23 2010-07-13 Bea Systems, Inc. Database and operating system independent copying/archiving of a web base application
US6721758B1 (en) 2001-03-30 2004-04-13 Novell, Inc. System and method for using schema attributes as meta-data in a directory service
US7581231B2 (en) 2001-07-10 2009-08-25 Microsoft Corporation Computing system and method for allowing plurality of applications written in different programming languages to communicate and request resources or services via a common language runtime layer
US7165239B2 (en) * 2001-07-10 2007-01-16 Microsoft Corporation Application program interface for network software platform
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7546602B2 (en) 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US20030035381A1 (en) * 2001-08-16 2003-02-20 Yihsiu Chen Network-based teleconferencing capabilities utilizing data network call set-up requests
US7519575B1 (en) * 2001-08-31 2009-04-14 Novell, Inc. Method and apparatus for presenting, searching, and viewing directories
EP1298526A1 (en) * 2001-09-26 2003-04-02 Sap Ag Communicating message with type, object and identifiers from business application to service application
US7448045B1 (en) * 2002-04-30 2008-11-04 Extreme Networks Method and apparatus to extend a program
US6947942B1 (en) 2002-05-30 2005-09-20 Taiwan Semiconductor Manufacturing Company, Ltd. Methods of managing user and computer objects in directory service
US20040167868A1 (en) * 2003-02-20 2004-08-26 Bea Systems, Inc. System and method for a virtual content repository
US7290052B2 (en) * 2003-06-19 2007-10-30 Microsoft Corporation System and method for enforcing quotas on object creation in a replicated directory service database
US7426734B2 (en) * 2003-10-24 2008-09-16 Microsoft Corporation Facilitating presentation functionality through a programming interface media namespace
US7716357B2 (en) * 2003-10-24 2010-05-11 Microsoft Corporation Service discovery and publication
US7721254B2 (en) * 2003-10-24 2010-05-18 Microsoft Corporation Programming interface for a computer platform
US7418507B2 (en) * 2003-12-18 2008-08-26 Microsoft Corporation Virtual resource serving of consolidated server shares
US7558799B2 (en) * 2004-06-01 2009-07-07 Microsoft Corporation Method, system, and apparatus for discovering and connecting to data sources
US7840615B2 (en) * 2004-08-05 2010-11-23 Siemens Enterprise Communications, Inc. Systems and methods for interoperation of directory services
US20060101091A1 (en) * 2004-10-22 2006-05-11 International Business Machines Corporation Recovering references in an extended model
US8185555B2 (en) 2004-10-22 2012-05-22 International Business Machines Corporation Model extension framework
US20060129526A1 (en) * 2004-12-14 2006-06-15 Sitze Richard A System, apparatus and method of providing at least one of a plurality of serivce providers of a service based on a context in which the service is to be used
US7979405B2 (en) * 2005-01-14 2011-07-12 Microsoft Corporation Method for automatically associating data with a document based on a prescribed type of the document
US7966286B2 (en) * 2005-02-14 2011-06-21 Microsoft Corporation Hierarchical management of object schema and behavior
US7653653B2 (en) * 2005-02-14 2010-01-26 Microsoft Corporation Dynamically configurable lists for including multiple content types
US7330855B2 (en) * 2005-05-25 2008-02-12 Microsoft Corporation Converting data between a front end schema node and a back end schema node
FR2888019A1 (fr) * 2005-07-04 2007-01-05 France Telecom Procede de construction d'une base de donnees d'annuaire, produit programme d'ordinateur et serveur correspondants
US7752205B2 (en) * 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7818344B2 (en) * 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US20070073674A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for providing federated events for content management systems
US7917537B2 (en) * 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US7483893B2 (en) * 2005-09-26 2009-01-27 Bae Systems, Inc. System and method for lightweight loading for managing content
US20070073673A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for content management security
US20070073784A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for type inheritance for content management
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7831948B2 (en) * 2006-02-02 2010-11-09 The Boeing Company Method and system for automatically generating schematics
US20070261045A1 (en) * 2006-05-05 2007-11-08 Dell Products L.P. Method and system of configuring a directory service for installing software applications
US7849069B2 (en) * 2006-06-21 2010-12-07 International Business Machines Corporation Method and system for federated resource discovery service in distributed systems
US8463852B2 (en) * 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US20080133533A1 (en) * 2006-11-28 2008-06-05 Krishna Ganugapati Migrating Credentials to Unified Identity Management Systems
US7797281B1 (en) 2007-01-12 2010-09-14 Symantec Operating Corporation Granular restore of data objects from a directory service
US20090019115A1 (en) * 2007-02-01 2009-01-15 Microsoft Corporation Communications server objects for configuration information access
DE102007057248A1 (de) * 2007-11-16 2009-05-20 T-Mobile International Ag Verbindungsschicht für Datenbanken
JP5538788B2 (ja) * 2008-09-29 2014-07-02 キヤノン株式会社 画像形成装置
US20130198171A1 (en) * 2012-01-26 2013-08-01 Microsoft Corporation Method and system for managing database object information
US9477698B2 (en) * 2012-02-22 2016-10-25 Salesforce.Com, Inc. System and method for inferring reporting relationships from a contact database
US9578130B1 (en) * 2012-06-20 2017-02-21 Amazon Technologies, Inc. Asynchronous and idempotent distributed lock interfaces
US20150242531A1 (en) * 2014-02-25 2015-08-27 International Business Machines Corporation Database access control for multi-tier processing
CN113158204B (zh) * 2021-04-09 2024-08-16 深圳市联软科技股份有限公司 一种docker容器访问控制宿主机的方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1252903A (en) * 1985-06-11 1989-04-18 Frank D. Bartocci Dynamic update of database directories using directed or undirected mechanisms
US5377323A (en) * 1991-09-13 1994-12-27 Sun Microsytems, Inc. Apparatus and method for a federated naming system which can resolve a composite name composed of names from any number of disparate naming systems
ATE187268T1 (de) * 1992-07-06 1999-12-15 Microsoft Corp Verfahren zur namensgebung und zur bindung von objekten
US5497463A (en) * 1992-09-25 1996-03-05 Bull Hn Information Systems Inc. Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system
US5805885A (en) * 1992-12-24 1998-09-08 Microsoft Corporation Method and system for aggregating objects
US5491817A (en) * 1993-05-25 1996-02-13 Bell Communications Research Inc. Linking system and method for accessing directory information about an object in one context when information in another context is known
US5485617A (en) * 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
US5548726A (en) * 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
US5689700A (en) * 1993-12-29 1997-11-18 Microsoft Corporation Unification of directory service with file system services
US5588147A (en) * 1994-01-14 1996-12-24 Microsoft Corporation Replication facility
US5911066A (en) * 1994-02-22 1999-06-08 Microsoft Corporation Data transfer utilizing a single functionally independent data transfer mechanism
US5600831A (en) * 1994-02-28 1997-02-04 Lucent Technologies Inc. Apparatus and methods for retrieving information by modifying query plan based on description of information sources
US5682532A (en) * 1994-05-02 1997-10-28 Microsoft Corporation System and method having programmable containers with functionality for managing objects
US5831606A (en) * 1994-12-13 1998-11-03 Microsoft Corporation Shell extensions for an operating system
US5682478A (en) * 1995-01-19 1997-10-28 Microsoft Corporation Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server
US5692180A (en) * 1995-01-31 1997-11-25 International Business Machines Corporation Object-oriented cell directory database for a distributed computing environment
US5893107A (en) * 1996-07-01 1999-04-06 Microsoft Corporation Method and system for uniformly accessing multiple directory services
US6016499A (en) * 1997-07-21 2000-01-18 Novell, Inc. System and method for accessing a directory services respository

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272911A (ja) * 2003-03-07 2004-09-30 Microsoft Corp コンピューティング環境におけるオブジェクト内のフィールドのカスタマイズ

Also Published As

Publication number Publication date
DE69730657D1 (de) 2004-10-21
US6360230B1 (en) 2002-03-19
DE69730657T2 (de) 2005-02-10
JP4197753B2 (ja) 2008-12-17
US5893107A (en) 1999-04-06
EP0817101B1 (en) 2004-09-15
EP1460565A1 (en) 2004-09-22
CA2209170C (en) 2006-02-07
CA2209170A1 (en) 1998-01-01
EP1460565B1 (en) 2017-08-02
EP0817101A3 (en) 1998-07-29
EP0817101A2 (en) 1998-01-07

Similar Documents

Publication Publication Date Title
US5893107A (en) Method and system for uniformly accessing multiple directory services
US6173289B1 (en) Apparatus and method for performing actions on object-oriented software objects in a directory services system
US5815703A (en) Computer-based uniform data interface (UDI) method and system using an application programming interface (API)
US5689701A (en) System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
JP4365142B2 (ja) プロパティをオブジェクトに関連付けするための、コンピュータ可読媒体、システム、および、方法
US7305409B2 (en) Data referencing within a database graph
US5617568A (en) System and method for supporting file attributes on a distributed file system without native support therefor
US7043481B2 (en) System, method and software for creating, maintaining, navigating or manipulating complex data objects and their data relationships
US5682532A (en) System and method having programmable containers with functionality for managing objects
EP0640913B1 (en) Multilingual standard resources
US7536409B2 (en) Having a single set of object relational mappings across different instances of the same schemas
CN100409215C (zh) 对个性化数据库与外部用户数据库的透明访问的方法
US6789086B2 (en) System and method for retrieving registry data
US8667508B2 (en) Method for providing stand-in objects
JP2001527243A (ja) オブジェクト指向アプリケーション内のクラスに対応するリレーショナル・データベース内のインデックスを生成するための方法及び装置
US8954461B2 (en) Systems and methods for object to relational mapping extensions
US20080288918A1 (en) Web service tool based on business object layer
US7107594B1 (en) Method and system for providing a version-independent interface to a computer resource
US7496926B2 (en) Method and apparatus to encapsulate a queue in a namespace
US6886172B2 (en) Method for mapping procedural C++ code to java object-oriented classes
JP2001527241A (ja) オブジェクト指向データ依存性に対応するデータベース内の記憶済み手続をロードするための方法及び装置
HK1069896A (en) Method and system for uniformly multiple directory services
CN100530181C (zh) 用于生成统一用户特征集的系统和方法
US7702648B1 (en) Localization of data represented by business entities
CN120086194A (zh) 一种低代码平台中实现应用内组件数据共享方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071015

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080115

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080916

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080930

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131010

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term