JP2001350796A - ディレクトリシステム - Google Patents

ディレクトリシステム

Info

Publication number
JP2001350796A
JP2001350796A JP2000173738A JP2000173738A JP2001350796A JP 2001350796 A JP2001350796 A JP 2001350796A JP 2000173738 A JP2000173738 A JP 2000173738A JP 2000173738 A JP2000173738 A JP 2000173738A JP 2001350796 A JP2001350796 A JP 2001350796A
Authority
JP
Japan
Prior art keywords
entry
link
directory
indirect
indirect link
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.)
Pending
Application number
JP2000173738A
Other languages
English (en)
Inventor
Kenta Shiga
賢太 志賀
Satoshi Kikuchi
菊地  聡
Nobuhiko Kawakami
順彦 川上
Toru Ohashi
徹 大橋
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000173738A priority Critical patent/JP2001350796A/ja
Publication of JP2001350796A publication Critical patent/JP2001350796A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】ディレクトリシステムにおいて、エントリに間
接的に関連付けられた他のエントリの検索の効率を向上
させる。 【解決手段】ディレクトリサーバ1は、ディレクトリク
ライアント2からのエントリ更新要求70を受信する
と、DB制御部6が更新内容を基にDB21のエントリ
テーブル16を更新する(DB更新処理74)。そし
て、間接リンク管理部9が、エントリテーブル16およ
びインデックステーブル17の更新内容に応じた間接リ
ンクテーブル20上のエントリ間の間接的な関連付けを
示す間接リンクの追加・変更・削除を、エントリ内に記
述されたエントリ間の直接的な関連付けを示す直接リン
クに基づいて行う(間接リンク管理処理1300)。デ
ィレクトリクライアント2からの検索要求時、ディレク
トリサーバ1の読み込み処理部10は、間接リンクテー
ブル20を利用してエントリに間接的に関連付けられた
他のエントリの検索を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディレクトリシス
テムに関し、特に、エントリ間のリンクに基づく検索を
効率化する技術に関する。
【0002】
【従来の技術】従来より、電子メールの送信相手の姓名
等から電子メールの宛先を検索して通知するディレクト
リサービスなどを提供するディレクトリシステムが知ら
れている。ここで、ディレクトリサービスに関する標準
として、CCITTの勧告であるX.500(ISO9
594)が挙げられる。X.500は、ディレクトリサ
ービスをクライアント−サーバ型の分散システム・アー
キテクチャとして規定しており、クライアント−サーバ
間の通信プロトコルとして、OSI(Open Systems Int
erconnection)の7レイヤ構造に従ったDAP(Direct
ory Access Protocol)を定めている。
【0003】X.500準拠のディレクトリサービス
は、木構造として階層管理されたデータモデルを有す
る。木の枝葉に相当する個所には、ディレクトリエント
リ(以降、「エントリ」と記す)が配置される。各々の
エントリは、同一の親エントリを持つエントリ間で一意
である相対名称(RDN:Relative Distinguisshed Na
me)と、木構造の根(ルート)からの経路を示す名称
(DN:Distinguished Name)で一意に識別される。
【0004】そして、一般的に、各々のエントリは、ユ
ーザのメールアドレスに加え、姓名や電話番号やFAX
番号や写真等の様々な情報を属性として記憶可能であ
る。
【0005】また、エントリは、必ず1つ以上のオブジ
ェクトクラスに属する。ここで、オブジェクトクラス
(以下、「クラス」と記す)とは、あるエントリに存在
しなければならない必須の属性、および、存在してもか
まわない属性の集合を定義する。
【0006】一方、インターネットにおける標準化機関
であるIETF(Internet Engineering Task Foce)
は、TCP/IPスタック上で動作するディレクトリ・
クライアント−サーバ間プロトコルとして、「LDA
P:Light Weight Directory Access Protocol(RFC
2251)」を標準化している。LDAPは、OSIス
タック上で動作するDAPに比べて低負荷であることが
大きな利点である。
【0007】さて、このようなLDAPを用いて、ユー
ザは、クライアント上のアプリケーションからX.50
0等のディレクトリサービスを提供するディレクトリサ
ーバにアクセスし、メールアドレス等の所望の情報の検
索や、エントリの追加・変更・削除や、DNの変更とい
ったディレクトリの更新を行うことができる。
【0008】ところで、X.500シリーズ勧告中の
X.521では、少なくとも1つのエントリをグループ
化するクラスとして、groupOfNamesおよびgroupOfUniqu
eNamesを規定している。そして、各々のクラスには、メ
ンバ属性(属性名は各々member、uniqueMember)が定義
されている。メンバ属性は、他エントリを指し示すポイ
ンタとしての役割を果たす。これらのクラスを用いるこ
とで、ディレクトリサーバ上に登録されたユーザ等を、
所属部署や役職など様々な視点で分類し、エントリをグ
ループ化することが可能である。このような特徴から、
これらのクラスに属するエントリをグループエントリと
呼ぶ。さらに、メンバ属性に他のグループエントリのD
Nを格納することにより、グループエントリを入れ子に
することも可能である。この時、あるグループエントリ
のメンバである他グループエントリを、サブグループエ
ントリと呼ぶ。メンバ属性のような、他エントリを示す
ポインタとして機能する属性値は、一般にリンクと呼ば
れる。
【0009】ここで、このようなリンクについて、以下
の説明で用いる表記法および用語を、図31を用いて説
明する。
【0010】最初に、図31(a)を用いて、エントリ
とリンクの表記法を説明する。
【0011】図中、矩形がエントリ、矢印がリンクを表
す。ディレクトリオブジェクトのメンバ属性のように、
リンクを表す属性をリンク属性と呼び、リンクにより関
連付けられた2エントリのうち、リンク属性を保持して
いるエントリをリンク元エントリ、リンク属性により指
し示される他方のエントリをリンク先エントリと呼ぶ。
図31(a)では、矢印の根元に接している矩形がリン
ク元エントリを表し、先端に接している矩形がリンク先
エントリを表す。したがって、リンクLのリンク元エン
トリはエントリA、リンク先エントリはエントリBとな
る。また、このようなリンクLのことを、エントリAか
らエントリBへのリンクと表現する。
【0012】次に、図31(b)を用いて、リンクのル
ープを説明する。図の通り、リンクのループとは、リン
クにより関連付けられた各エントリが環状をなす状態の
ことである。
【0013】さて、図32に、前述したメンバ属性によ
るリンクを適用したディレクトリ情報の例を示す。図3
2は、組織を基にしたグループエントリを登録した場合
における、ディレクトリ情報の構築例を示すしたもので
ある。
【0014】ここで、符号270は、personというクラ
ス(objectclass)に属するユーザエントリであり、符
号271および符号272は、groupOfNamesというクラ
スに属するグループエントリである。「山田太郎」を表
すユーザエントリ270は、DNが“uid=Yamada,ou=Pe
ople,o=ABC.com”であり、属性として一般名(cn)を保
持している。一方、「営業第一課」を表すグループエン
トリ271は、DNが“cn=Sales1,ou=Groups,o=ABC.co
m”であり、属性として一般名(cn)とメンバ属性(mem
ber)275を保持している。このメンバ属性275
は、ユーザエントリ270のDNを値として保持してお
り、「営業第一課」に「山田太郎」が所属していること
を表す。また、「営業第二課」を表すグループエントリ
273は、DNが“cn=Sales2,ou=Groups,o=ABC.com”
であり、グループエントリ271と同様のデータ構造を
持つ。
【0015】さらに、「営業部」を表すグループエント
リ272は、DNが“cn=Sales,ou=Groups,o=ABC.com”
であり、属性として一般名(cn)とメンバ属性(membe
r)276、277を保持している。このメンバ属性2
76、277は、各々、グループエントリ271、グル
ープエントリ273のDNを値として保持している。こ
れは、グループエントリ271およびグループエントリ
273は、グループエントリ272のサブグループエン
トリであり、「営業部」に「営業第一課」および「営業
第二課」が属していることを表す。
【0016】次に、リンクを用いたディレクトリ情報の
例として、上長を表すエントリへのリンクを用いたディ
レクトリ情報の例を図33に示す。
【0017】上長へのリンクを表す上長属性(manage
r)は、RFC1274で定義されている。図中、符号
280〜282は、共にユーザエントリである。ユーザ
エントリ280は、図32のユーザエントリ270と同
様、「山田太郎」を表す。「鈴木一郎」を表すユーザエ
ントリ281は、DNが“uid=Suzuki,ou=People,o=AB
C.com”であり、属性として一般名(cn)と上長属性(m
anager)285を保持している。この上長属性285
は、ユーザエントリ280のDNを値として保持してお
り、「山田太郎」が「鈴木一郎」の上長であることを表
す。同様に、「加藤次郎」を表すユーザエントリ282
は、DNが“uid=Katou,ou=People,o=ABC.com”であ
り、属性として一般名(cn)と上長属性(manager)2
86を保持している。この上長属性286は、ユーザエ
ントリ281のDNを値として保持しており、「鈴木一
郎」が「加藤次郎」の上長であることを表す。
【0018】さて、図32および図33で説明したよう
な様々なリンクを利用してディレクトリ情報が構築され
ている場合において、リンクによりあるエントリに直接
関連付けられているエントリの特定には、ディレクトリ
サービスの検索機能を利用できる。
【0019】たとえば、図32において「山田太郎」を
表すユーザエントリ270とメンバリンクにより関連付
けられたエントリを特定するためには、メンバ属性の値
がユーザエントリ270のDNと一致するグループエン
トリを検索すればよい。また、図33において「加藤次
郎」を表すユーザエントリ282と上長リンクにより関
連付けられたエントリの特定は、ユーザエントリ282
の上長属性286を読み込むことにより可能である。こ
のように、あるエントリとリンクにより直接関連付けら
れているエントリは、ディレクトリサービスの検索を1
回実行することにより特定可能である。
【0020】
【発明が解決しようとする課題】さて、前述のようなデ
ィレクトリシステムによれば、複数のリンクによって間
接的に関連付けられているエントリを特定する場合、デ
ィレクトリサービスの検索を複数回実行する必要があ
る。
【0021】たとえば、図32のようなディレクトリ情
報を用いて、「営業部」の「営業第一課」のユーザ「山
田太郎」の属する部を検索する場合、クライアントは、
「山田太郎」のDNとメンバ属性が一致するグループエ
ントリを検索する。その結果、グループエントリ271
が検索条件に合致するため、ユーザ「山田太郎」の所属
する課は、「営業第一課」であると特定できる。
【0022】しかし、ユーザ「山田太郎」を表すユーザ
エントリ270と、「営業部」を表すグループエントリ
272は直接リンクされていないため、すなわち、「営
業部」を表すグループエントリ272のメンバ属性27
6、277に「山田太郎」のDNは含まれていないた
め、この検索によっては、「営業部」を特定することが
できない。このため、さらに、クライアントは、特定し
た「営業第一課」とメンバ属性が一致するグループエン
トリを検索し、「営業部」を特定する必要がある。
【0023】同様のことが上長へのリンクに関しても当
てはまる。あるユーザの直属の上長は、ディレクトリサ
ービスの検索を一回実行することで特定可能である。た
とえば、図33のようなディレクトリ情報を持つディレ
クトリサービスを利用する場合、クライアントは、ユー
ザ「加藤次郎」を表すユーザエントリ282を検索し、
その上長属性286を読み込むことで、ユーザ「加藤次
郎」の上長はユーザ「鈴木一郎」であると特定できる。
【0024】しかし、ユーザ「加藤次郎」の全ての上長
を特定したい場合は、前記の検索を実行後、クライアン
トは、特定した「鈴木一郎」の情報を用いて、さらに、
その上長の検索を行うことが必要となる。
【0025】このように、間接的な関連を持つエントリ
を検索するために、ディレクトリ情報の再帰的な検索が
必要であり、クライアントの処理の複雑化や、処理負荷
の増大を招いていた。
【0026】そこで、本発明は、ディレクトリシステム
において、エントリ間の間接的な関連付けに基づく検索
の効率化を図ることを課題とする。
【0027】
【課題を解決するための手段】前記課題達成のために、
本発明のディレクトリシステムでは、現時点における、
複数のリンクを介したディレクトリエントリ間の関連
を、間接リンク情報として常時管理しておく。そして、
あるディレクトリエントリに複数のリンクを介して関連
する他ディレクトリエントリを、間接リンク情報に従っ
て検索する。
【0028】本発明によれば、上記の間接リンク情報を
用いることで、あるディレクトリエントリに間接的な関
連を持つエントリを検索することができる。したがっ
て、間接的な関連を持つエントリを検索するために、ク
ライアントのディレクトリ情報の再帰的な検索は不要で
ある。このため、クライアントの処理の複雑化や、処理
負荷の増大を避けることができる。また、本発明では、
検索要求とは無関係に、常時、複数のリンクを介したデ
ィレクトリエントリ間の関連を調べ、間接リンク情報と
して管理しているので、検索要求が発生した場合に、あ
るディレクトリエントリに複数のリンクを介して関連す
る他ディレクトリエントリを、間接リンク情報にしたが
って即座に検索することができる。したがって、検索性
能の劣化が生じることもない。
【0029】すなわち、本発明によれば、エントリ間の
間接的な関連づけに基づく検索の効率化を図ることがで
きる。
【0030】
【発明の実施の形態】以下、本発明の実施の形態を、L
DAPディレクトリサービスへの適用を例にとり説明す
る。ただし、本実施形態は、たとえばX.500ディレ
クトリサービスなど他のディレクトリサービスにも適用
可能である。
【0031】まず、本実施形態の説明において使用する
用語を定義する。
【0032】「直接リンク」とは、第1のエントリと当
該第1のエントリ内の記述により指し示される第2のエ
ントリとの間を関連付ける論理的な連結子を示すものと
する。また、「間接リンク」とは、連結可能な複数の直
接リンクにより、間に少なくとも1つの他エントリを挟
んで間接的に結び付けられた2つのエントリ間を関連付
ける論理的な連結子を示すものとする。ただし、第1の
直接リンクのリンク元と第2の直接リンクのリンク先が
同じエントリである場合にのみ、当該第1の直接リンク
と第2の直接リンクは連結可能とする。
【0033】具体的には、たとえば、上述の図32に示
したメンバリンクに関して、直接リンクと間接リンクと
の関係は、図1のように示される。
【0034】すなわち、ユーザエントリ270とグルー
プエントリ272との間には、直接リンク275、27
6による間接リンク290が存在する。そして、この場
合、この間接リンク290は、ユーザエントリ270が
間接的にグループエントリ272に所属していることを
示す。
【0035】また、たとえば、上述の図33に示した上
長リンクに関して、直接リンクと間接リンクとの関係
は、図2のように示される。
【0036】すなわち、ユーザエントリ280とユーザ
282との間には、直接リンク285、286による間
接リンク300が存在する。そして、この場合、間接リ
ンク300は、ユーザエントリ280が、ユーザエント
リ282の間接的な上長であることを示す。
【0037】次に、「間接リンク作成属性」とは、間接
リンクの要素として使用する直接リンクを規定する属性
を示す。たとえば、図1の間接リンク290の間接リン
ク作成属性はメンバ(member)であり、図2の間接リン
ク300の間接リンク作成属性は上長(manager)であ
る。
【0038】次に、図3に示すように、ある直接リンク
のリンク元がエントリAで、その直接リンクのリンク先
がエントリBである場合に、エントリBをエントリAの
「直接リンク先エントリ」と呼ぶ。また、ある直接リン
クのリンク先がエントリAで、その直接リンクのリンク
元がエントリDである場合に、エントリDをエントリA
の「直接リンク元エントリ」と呼ぶ。また、エントリC
のように、エントリAから直接リンク先エントリを少な
くとも2回以上再帰的に探索してゆくと達するエントリ
を、エントリAの「間接リンク先エントリ」と呼び、エ
ントリEのように、エントリAから直接リンク元エント
リを少なくとも2回以上再帰的に探索してゆくと達する
エントリを、エントリAの「間接リンク元エントリ」と
呼ぶ。
【0039】以下、本発明の第1の実施形態について説
明する。
【0040】まず、本発明の第1実施形態が適用された
ディレクトリシステムの機能構成を図4に示す。
【0041】図示するように、本実施形態が適用された
ディレクトリシステム140は、LAN等のネットワー
ク22を介して接続されたディレクトリサーバ1とディ
レクトリクライアント2とを有する。
【0042】ディレクトリサーバ1は、ディレクトリク
ライアント2との間で通信処理を実行する通信制御部3
と、通信制御部3を介して受信したアクセス要求を解析
するプロトコル解析部4と、アクセス制御情報に従って
ディレクトリ情報に対するアクセスの許可・禁止を決定
するアクセス制御部5と、データベース(DB)21
と、通信制御部3を介して受信したアクセス要求にした
がいDB21を検索・更新するDB制御部6と、間接リ
ンク作成属性の名称やアクセス制御情報をユーザに入力
させる画面を制御するユーザI/F制御部7と、間接リ
ンク管理部9と、間接リンク管理部9が使用するワーク
領域であるDN記憶領域15と、を有する。
【0043】ここで、DB21には、エントリ情報を記
憶するエントリテーブル16と、属性の索引を記憶する
1以上のインデックステーブル17と、アクセス制御情
報を記憶するACI(Access Control Information)テ
ーブル18と、間接リンクを記憶する間接リンクテーブ
ル20と、間接リンク作成属性の名称を記憶する間接リ
ンク作成属性名記憶領域8とが設けられる。属性毎に1
つのインデックステーブル17が作成される。DB制御
部6は、エントリテーブル16の更新内容にしたがって
インデックステーブル17を更新する。
【0044】間接リンク管理部9は、ディレクトリクラ
イアント2からの要求にしたがって、間接リンクテーブ
ル20が記憶している間接リンクを対象にした検索や、
間接リンクの読み込みを行う読み込み処理部10と、デ
ィレクトリクライアント2からのエントリの追加、変
更、DN変更(移動)および削除要求にしたがって、間
接リンクテーブル20を更新する追加処理部11、変更
処理部12および削除処理部13と、ディレクトリクラ
イアント2からエントリの追加、変更要求を受信した時
に、リンク先エントリの存在確認とリンクのループ検出
を行う確認処理部14と、を有する。
【0045】一方、ディレクトリクライアント2は、デ
ィレクトリサーバ1との間で通信処理を実行する通信制
御部3と、通信制御部3を介して受信したアクセス応答
を解析するプロトコル解析部4’と、間接リンクを検索
対象に加える場合や間接リンクを読み込む場合に、ディ
レクトリサーバ1へ送信する検索要求に特別な情報(後
に図9を用いて説明する)を付加する間接リンク検索部
141と、アプリケーションに特化したタスクを処理す
るタスク処理部142と、を有する。
【0046】次に、図5に、ディレクトリサーバ1のハ
ードウエア構成を示す。
【0047】図示するように、ディレクトリサーバ1
は、中央演算装置CPU26と、ハードディスク等の2
次記憶装置(以下、「磁気ディスク」という)25と、
主記憶装置メモリ(以下、「主メモリ」という)23と、
バス24と、表示装置などの出力装置(以下、「ディス
プレイ」という)27と、入力装置(キーボード29、
マウス28等)と、を有する。
【0048】このようなハードウエア構成において、図
4のDB21のエントリテーブル16、インデックステ
ーブル17、ACIテーブル18、間接リンクテーブル
20および間接リンク作成属性名記憶領域8は、磁気デ
ィスク25上にファイルとして格納される。
【0049】また、主メモリ23には、通信制御部3、
プロトコル解析部4、アクセス制御部5、DB制御部
6、ユーザI/F制御部7および間接リンク管理部9を
ディレクトリサーバ1上にプロセスとして実現するため
の、通信制御プログラム3a、プロトコル解析プログラ
ム4a、アクセス制御プログラム5a、DB制御プログ
ラム6a、ユーザI/F制御プログラム7aおよび間接
リンク管理プログラム9aが格納される。間接リンク管
理プログラム9aは、追加処理部11、変更処理部1
2、削除処理部13、確認処理部14および読込み処理
部10をディレクトリサーバ1上にプロセスとして実現
するための、追加処理プログラム11a、変更処理プロ
グラム12a、削除処理プログラム13a、確認処理プ
ログラム14aおよび読込み処理プログラム10aを備
える。また、主メモリ23には、DN記憶領域15も設
けられる。
【0050】上記の各プログラム3a〜9aは、あらか
じめ、もしくは、可搬型の記録媒体あるいはネットワー
クを介してディレクトリサーバ1に接続された他サーバ
から磁気ディスク25に格納され、必要に応じて主メモ
リ23に転送された後、CPU26で実行される。これ
により、図4に示すディレクトリサーバ1の各機能部を
ディレクトリサーバ1上に構築する。
【0051】次に、図6にディレクトリクライアント2
のハードウエア構成を示す。
【0052】図示するように、ディレクトリクライアン
ト2のハードウエア構成は、基本的にディレクトリサー
バ1のハードウエア構成と同じである。ただし、機能構
成の相違に応じて、以下の点が異なる。
【0053】すなわち、ディレクトリクライアント2の
主メモリ23には、通信制御部3、プロトコル解析部
4’、間接リンク検索部141およびタスク処理部14
2をディレクトリクライアント2上にプロセスとして実
現するための、通信制御プログラム3a、プロトコル解
析プログラム4’a、間接リンク検索プログラム141
aおよびタスク処理プログラム142aが格納される。
【0054】これらのプログラムは、あらかじめ、もし
くは、可搬型の記録媒体あるいはネットワークを介して
ディレクトリクライアント2に接続された他サーバから
磁気ディスク25に格納され、必要に応じて主メモリ2
3に転送された後、CPU26で実行される。これによ
り、図4のディレクトリクライアント2の各機能部をデ
ィレクトリクライアント2上に構築する。
【0055】次に、ディレクトリサーバ1上の、間接リ
ンク作成属性名記憶領域8、間接リンクテーブル20お
よびDN記憶領域15の内容を図7に示す。
【0056】図示するように、間接リンク作成属性名記
憶領域8は、上述の間接リンク作成属性の名称を少なく
とも1つ記憶する領域であり、一次配列構造をなす。こ
こで、符号56は、間接リンク作成属性名記憶領域に記
憶される情報の例である。なお、ここでは、間接リンク
作成属性名記憶領域8には、間接リンク作成属性の名称
を記憶するものとしているが、これに代えて、間接リン
ク作成属性のOID(Object Identifier)を記憶する
ようにしてもよい。OIDとは、全世界でオブジェクト
を一意に識別する情報である。
【0057】次に、間接リンクテーブル20は、間接リ
ンクを記憶する領域であり、間接リンク作成属性名62
と、リンク元エントリDN63と、リンク先エントリD
N64とを有する。間接リンクテーブル20は二次配列
構造をなす。間接リンクを1つ以上記憶可能である。こ
こで、符号65は、間接リンクテーブル20の記述内容
の例である。
【0058】最後に、DN記憶領域15は、間接リンク
管理部9のワーク領域であり、一次配列構造をなす。D
N記憶領域15は、エントリのDNを1つ以上記憶可能
である。DN記憶領域15は、通信制御部3が受信した
アクセス要求毎に、間接リンク管理部9が主メモリ23
にアロケートする。ここで、符号67は、DN記憶領域
15の記述内容の例である。
【0059】以下、このようなディレクトリシステムの
動作について説明する。
【0060】本実施形態のディレクトリシステムの動作
は、初期設定動作と、エントリ更新動作と、エントリ検
索動作とに大きく分けられる。
【0061】まず、初期設定動作について説明する。
【0062】この動作において、ディレクトリサーバ1
は、ユーザより間接リンク作成属性の設定や変更を受け
付ける。
【0063】すなわち、ディレクトリサーバ1は、ユー
ザから間接リンク作成属性登録の指示を受信すると、ユ
ーザI/F制御部7により図8に示す画面30をディス
プレイ27に表示する。ここで、画面30は、既に登録
されている間接リンク作成属性の名称を表示する領域3
1と、新たに登録する間接リンク作成属性の名称を入力
する領域32と、入力した情報を有効にするためのボタ
ン33と、入力中の情報を取り消すためのボタン34と
を含む。
【0064】ユーザは、キーボード29等を用いて領域
32に間接リンク作成属性の名称を表す文字列(図8で
はmember)を入力した後、ボタン33をマウス2
8でクリックすると、ユーザI/F制御部7により、領
域32に入力された文字列が間接リンク作成属性名記憶
領域8に格納される。なお、本実施形態では、説明の便
宜上、エントリテーブル16にエントリ情報が登録され
る前に、この間接リンク作成属性の登録を受け付けるも
のとする。
【0065】また、ディレクトリサーバ1は、ユーザか
ら既に登録されている間接リンク作成属性の取り消しの
指示を受信すると、ユーザI/F制御部7により、間接
リンク作成属性名記憶領域8を参照し、既に登録されて
いる属性名の一覧画面をディスプレイ27に表示する。
そして、ユーザが削除する間接リンク作成属性の名称を
選択したならば、ユーザI/F制御部7により、その選
択された属性の名称が間接リンク作成属性名記憶領域8
から削除される。また、間接リンクテーブル20内のレ
コードのうち、間接リンク作成属性名62が削除した属
性の名称と一致するレコードを全て削除する。
【0066】以上、初期設定動作について説明した。
【0067】次に、エントリ更新動作について説明す
る。
【0068】この動作において、ディレクトリサーバ1
は、ディレクトリクライアント2からの更新要求にした
がい、エントリテーブル16のエントリ情報やインデッ
クステーブル17の更新を行い、その更新内容に応じて
間接リンクテーブル20の間接リンクの追加・変更・削
除を行う。
【0069】図9に、エントリ更新動作におけるディレ
クトリクライアント2およびディレクトリサーバ1間の
通信シーケンスとディレクトリサーバ1の処理シーケン
スとを示す。
【0070】図示するように、ディレクトリサーバ1
は、通信制御部3を介してディレクトリクライアント2
からエントリ更新要求70を受信すると、先ず、プロト
コル解析処理71を行う。この処理71では、プロトコ
ル解析部4が、受信したエントリ更新要求を解析し、更
新するエントリのDNや更新内容等を得る。次に、アク
セス制御処理72に移行し、アクセス制御部5が、エン
トリ更新を許可するか否かを判断する。
【0071】処理72にて、エントリ更新が許可された
ならば、当該エントリ更新の更新種別が追加・変更の場
合にのみ、リンク確認処理1400に移行し、確認処理
部14が、間接リンク作成属性に関して、リンク先エン
トリの存在確認およびリンクのループ検出を行う。な
お、本実施形態では、リンク先エントリが存在しないリ
ンクやループを生じさせるリンクは不正なリンクとみな
す。したがって、処理1400にて、リンク先エントリ
が存在しない場合やリンクのループが検出された場合に
は、ディレクトリクライアント2へエラー情報73を送
信して、ディレクトリサーバ1での処理を終了させる。
また、処理72にて、エントリ更新が許可されなかった
場合も、同様に、ディレクトリクライアント2へエラー
情報を送信して、ディレクトリサーバ1での処理を終了
させる。
【0072】処理1400にて、リンク先エントリが存
在し且つリンクのループが検出されなかった場合は、D
B更新処理74に移行する。また、処理72にて許可さ
れたエントリ更新の更新種別が追加・変更以外の場合
は、処理1400を飛ばして直ちにDB更新処理74に
移行する。
【0073】DB更新処理74では、DB制御部6が、
プロトコル解析処理71にて得られた更新内容を基にD
B21のエントリテーブル16とインデックステーブル
17を更新する。それから、間接リンク管理処理130
0に移行し、間接リンク管理部9が、エントリテーブル
16の更新内容に応じた間接リンクの追加・変更・削除
を、間接リンクテーブル20に対して実行する。そし
て、最後に、ディレクトリクライアント2へ応答75を
送信する。
【0074】以下、このような動作の詳細について説明
する。
【0075】なお、プロトコル解析処理71、アクセス
制御処理72およびDB更新処理74の詳細は、従来の
ディレクトリシステムにおける処理と同様であるので省
略する。
【0076】先ず、図9で示したリンク確認処理140
0について説明する。
【0077】この処理1400は、不正なリンク(リン
ク先エントリが存在しないリンクやループを生じさせる
リンク)の登録を防止するための処理である。間接リン
ク管理部9の確認処理部14が、更新されるエントリを
対象エントリとして図10に示す手順を実行することに
より行う。
【0078】すなわち、確認処理部14は、先ず、間接
リンク作成属性名記憶領域8から間接リンク作成属性の
名称を全て読み込み、その数を変数Nmaxに格納する
(ステップS1401)。それから、以降の処理を間接
リンク作成属性毎に行うためのカウンタ変数としてNを
用意し、当該Nに初期値1を設定する(ステップS14
02)。以下の説明では、N番目の間接リンク作成属性
が表す属性で対象エントリに設定されている直接リンク
を直接リンクNと表記し、直接リンクNに基づいて作成
された間接リンクを間接リンクNと表記することとす
る。
【0079】次に、確認処理部14は、プロトコル解析
処理71から得た更新内容により特定される更新後の対
象エントリの属性から、直接リンクN(つまり、N番目
の間接リンク作成属性が表す属性で対象エントリに設定
されている直接リンク)を取り出す(ステップS140
3)。ここで、属性は1以上の値を格納可能なため、ス
テップS1403で取り出される直接リンクNは1以上
存在することもある。そこで、直接リンクの数を変数M
maxに格納する。もし、対象エントリが直接リンクN
を含まない場合(すなわちMmax=0の場合)は、ス
テップS1417以降の処理を行う(ステップS140
4)。
【0080】直接リンクNを読み込めた場合は、対象エ
ントリのDNをDN記憶領域15に格納する(ステップ
S1405)。これは、リンクのループを検出するため
の措置である。
【0081】以降の処理は、ステップS1403で読み
込んだ直接リンク毎に行う。そこでもう1つのカウンタ
変数としてMを用意し、当該Mに初期値1を設定する
(ステップS1406)。以下の説明では、M番目の直
接リンクNを直接リンクNMと表記することとする。
【0082】次に、確認処理部14は、第1の確認処理
として、直接リンクNMのリンク先エントリの存在確認
を行う。エントリテーブル16を検索し、直接リンクN
M、つまり、N番目の間接リンク作成属性が表す属性で
対象エントリに設定されている直接リンクNのうちM番
目の直接リンクNが指し示すエントリが、登録されてい
るか否か確認する(ステップS1407)。もし、存在
しない場合は(ステップS1408)、リンク先エント
リが存在しない旨のエラー情報を、ディレクトリクライ
アント2に送信し(ステップS1409)、それから、
ステップS1416以降の処理を実行する。
【0083】一方、ステップS1408でリンク先エン
トリが存在した場合は、第2の確認処理として、直接リ
ンクNのループの検出を行う。直接リンクNMが指し示
すエントリが、DN記憶領域15に既に格納済みか否か
を確認する(ステップS1410)。もし、格納済みで
ある場合は(ステップS1411)、直接リンクNに関
してループが検出された旨のエラー情報を、ディレクト
リクライアント2に送信し(ステップS1412)、そ
れからステップS1416以降の処理を実行する。
【0084】一方、ステップS1411で格納済みでな
い場合は、さらに、直接リンクNMのリンク先エントリ
を対象エントリとして、リンク確認処理1400を再帰
的に実行する(ステップS1413)。
【0085】ステップS1407〜ステップS1413
の処理は、全ての直接リンクNに対して実行される(ス
テップS1414、ステップS1415)。その後、確
認処理部14は、DN記憶領域15から、ステップS1
405にてDN記憶領域15に格納したDNを削除する
(ステップS1416)。
【0086】そして、ステップS1403〜ステップS
1416の処理を、ステップS1401で読み込んだ全
げての間接リンク作成属性に対して実行し(ステップS
1417、ステップS1418)、リンク確認処理14
00を終える。
【0087】次に、図9で示した間接リンク管理処理1
300の詳細を説明する。
【0088】この処理は、間接リンク管理部9が図11
に示す手順により行う。
【0089】すなわち、先ず、間接リンク管理部9は、
間接リンク作成属性名記憶領域8から間接リンク作成の
対象となる間接リンク作成属名を全て読み込み、その数
を変数Nmaxに格納する(ステップS1301)。そ
れから、ステップS1301で読み込んだ属性毎に以降
の処理を行うために、カウンタ変数Nを1に設定する
(ステップS1302)。
【0090】次に、間接リンク管理部9は、行ったエン
トリの更新種別(追加・変更・DN変更・削除)にした
がって処理を分岐する(ステップS1304)。追加の
場合は間接リンク追加処理1500を、DN変更の場合
は間接リンク変更処理1800を、そして、削除の場合
は、間接リンク削除処理1900を行う。
【0091】ここで、変更の場合は、変更されたエント
リの属性に対する更新種別(追加・置換・削除)にした
がって処理を分岐する(ステップS1305)。追加の
場合は間接リンク追加処理1500を、置換の場合は間
接リンク追加処理1500と間接リンク削除処理190
0を、そして、削除の場合は、間接リンク削除処理19
00を行う。
【0092】間接リンク管理部9は、ステップS130
4とステップS1305の処理を、ステップS1301
で読み込んだすべての間接リンク作成属性に対して行う
(ステップS1306、ステップS1307)。
【0093】次に、図11で示した間接リンク追加処理
1500の詳細について説明する。
【0094】この処理は、エントリの追加あるいは変更
によって、直接リンクが追加された場合(すなわち、間
接リンク作成属性が追加された場合)に、それを基に間
接リンクを作成する処理である。間接リンク管理部9の
追加処理部11が、図12に示す手順により行う。
【0095】図示するように、間接リンク追加処理15
00は、新規追加された直接リンクのリンク先エントリ
から直接リンクと間接リンクを収集するリンク収集処理
1600と、その収集結果に基づいて、対象エントリか
らの間接リンクと対象エントリの直接リンク元エントリ
および間接リンク元エントリからの間接リンクを再帰的
に追加するリンク伝播処理1700とを有する。
【0096】すなわち、追加処理部11は、更新種別が
エントリの追加の場合には、先ず、エントリテーブル1
6を検索し、追加されたエントリから直接リンクNを読
み込み、その数を変数Mmaxに格納する(ステップS
1501)。もし、直接リンクNが存在しない場合は
(ステップS1502)、間接リンク追加処理1500
を終了する。
【0097】一方、ステップS1502で直接リンクN
を読み込めた場合、リンク収集処理1600と、追加さ
れたエントリを対象としたリンク伝播処理1700とを
実行し、その後、以上の処理で使用したDN記憶領域1
5を初期化する(ステップS1504)、そして、間接
リンク追加処理1500を終了する。
【0098】一方、更新種別がエントリの属性の変更の
場合、追加処理部11は、ステップS1501で追加あ
るいは置換された直接リンクNを読み込む。また、リン
ク伝播処理1700での対象エントリが変更されたエン
トリとなる。この点以外は、更新種別が追加の場合と同
様である。
【0099】次に、図12のリンク収集処理1600の
詳細について説明する。
【0100】この処理では、図13に示すように、追加
処理部11は、先ず、カウンタ変数Mに初期値1を設定
する(ステップS1601)。
【0101】次に、エントリテーブル16を検索し、直
接リンクNMのリンク先エントリから直接リンクNをす
べて読み込む(ステップS1602)。また、間接リン
クテーブル20を検索し、直接リンクNMのリンク先エ
ントリをリンク元エントリとする間接リンクNをすべて
読み込む(ステップS1603)。そして、ステップS
1602とステップS1603にて読み込んだ全リンク
のリンク先エントリのDNを、DN記憶領域15に格納
する(ステップS1604)。
【0102】追加処理部11は、S1602〜S160
4の処理を全ての直接リンクNM(1≦M≦Mmax)
に対して実行し(ステップS1605、ステップS16
06)、その後、リンク収集処理1600を終了する。
【0103】次に、図12のリンク伝播処理1700の
詳細について説明する。
【0104】この処理では、図14に示すように、追加
処理部11は、先ず、対象エントリをリンク元とし、D
N記憶領域15に記憶されている各DNが指し示すエン
トリをリンク先とする間接リンクを登録する(ステップ
S1701)。すなわち、対象エントリからDN記憶領
域15に記憶されている各DNが指し示すエントリへの
間接リンクNを、間接リンクテーブル20に登録するた
め、間接リンク登録処理2600を実行する。
【0105】次に、エントリテーブル16を検索し、対
象エントリの直接リンク元エントリを全て読み込み、エ
ントリ数を変数Mmaxに格納する(ステップS170
2)。もし、直接リンク元エントリが存在しない場合
は、リンク伝播処理を終了する(ステップS170
3)。
【0106】ステップS1703で直接リンク元エント
リが存在した場合、追加処理部11は、エントリテーブ
ル16を検索して、対象エントリから直接リンクNを読
み込み、そのリンク先エントリのDN全てをDN記憶領
域15に格納する(ステップS1704)。
【0107】次に、カウンタ変数Mに初期値1を設定し
(ステップS1705)、ステップS1702で読み込
んだ直接リンク元エントリのうち、M番目の直接リンク
元エントリを対象エントリに設定して、リンク伝播処理
1700を再帰的に実行する(ステップS1706)。
ステップS1706の処理は、ステップS1702で読
み込んだ全ての直接リンク元エントリに関して行う(ス
テップS1707、ステップS1708)。
【0108】以上の処理を実行した後、DN記憶領域1
5から、ステップS1704でDN記憶領域15に格納
したDNを全て削除し(ステップS1709)、その
後、リンク伝播処理1700を終了する。
【0109】次に、図14で示した間接リンク登録処理
2600の詳細について説明する。
【0110】この処理では、図15に示すように、追加
処理部11は、追加対象の間接リンクと一致する直接リ
ンクあるいは間接リンクが既に存在しているか否かを確
認し、存在していない場合にのみ、追加対象の間接リン
クを登録する。ここで、2つの間接リンクのリンク元お
よびリンク先エントリが共に等しい場合に、それら2つ
の間接リンクが一致するものとする。
【0111】すなわち、間接リンク登録処理2600で
は、先ず、エントリテーブル16を検索して、追加対象
の間接リンクのリンク元エントリから直接リンクNを読
み込み、その直接リンクNのなかに、追加対象の間接リ
ンクと一致するものが存在するか否かを確認する(ステ
ップS2601)。もし、一致するものが存在する場合
(ステップS2602)、追加対象の間接リンクを登録
しないで、間接リンク登録処理2600を終了する。
【0112】ステップS2602で一致するものが存在
しなかった場合は、さらに、間接リンクテーブル20を
検索して、追加対象の間接リンクと一致する間接リンク
が既に存在するか否かを確認する(ステップS260
3)。もし、一致する間接リンクが既に登録されている
場合は(ステップS2604)、追加対象の間接リンク
を登録しないで、間接リンク登録処理2600を終了す
る。
【0113】そして、ステップS2604で一致するも
のが存在しなかった場合にのみ、間接リンクテーブル2
0に追加対象の間接リンクを追加する。この際、間接リ
ンク作成属性名62にはN番目の間接リンク作成属性の
名称を、リンク元エントリDN63にはリンク元エント
リのDNを、リンク先エントリDN64にはリンク先エ
ントリのDNを、各々設定する(ステップS260
5)。
【0114】以上の処理を実行後、間接リンク登録処理
2600を終了する。
【0115】ここで、以上の図12〜図15で説明した
間接リンク追加処理1500の動作の具体例を図16に
示しておく。図中、網掛けされた矩形は対象エントリを
表し、点線矢印は間接リンクを表す。
【0116】いま、エントリテーブル16に、エントリ
A、B、C、D、Eが登録され、エントリBからエント
リA、エントリDからエントリC、および、エントリE
からエントリCへの直接リンクが既に存在している状態
において、新たにエントリCからエントリBへの直接リ
ンクが追加されたものとする。この状態を、図16
(a)に示す。
【0117】この場合、先ず、追加処理部11は、図1
2に示す間接リンク追加処理1500のステップS15
01、S1502で、間接リンク作成の対象となる直接
リンクが追加されたと判断し、リンク収集処理1600
を実行する。
【0118】リンク収集処理1600では、図13のス
テップS1602にてエントリBからエントリAへの直
接リンクを読み込む。エントリBからの間接リンクは存
在しないため、ステップS1603では間接リンクは読
み込まれない。結果として、ステップS1604にて、
DN記憶領域15にエントリAのDNが格納される。こ
の状態を、図16(b)に示す。
【0119】次に、変更されたエントリCを対象エント
リとするリンク伝播処理1700を実行する。まず、図
14のS1701にて、リンク元エントリをエントリC
とし、リンク先エントリを間接リンク登録処理2600
でDN記憶領域15に登録されたエントリAとする間接
リンクを、間接リンクテーブル20に登録する。次に、
ステップS1702にて、エントリCの直接リンク元エ
ントリD、Eを読み込む。そして、ステップS1704
にて、エントリテーブル16を検索し、エントリCから
エントリBの直接リンクを読み込んで、エントリBのD
NをDN記憶領域15へ格納する。この状態を、図16
(c)に示す。
【0120】次に、対象エントリCの直接リンク元エン
トリDを対象エントリとして、リンク伝播処理1700
を再帰的に実行する。エントリDを対象としたリンク伝
播処理1700では、ステップS1701にて、DN記
憶領域15に格納されているエントリA、BのDNを基
に、エントリDからエントリBおよびエントリDからエ
ントリAへの間接リンクを、間接リンク登録処理260
0により登録する。この状態を、図16(d)に示す。
その後、ステップS1702、S1703にて、エント
リDの直接リンク元エントリは存在しないと判断し、エ
ントリDを対象としたリンク伝播処理1700を終了す
る。
【0121】次に、対象エントリCの直接リンク元エン
トリEを対象エントリとして、リンク伝播処理1700
を再帰的に実行する。まず、ステップS1701にて、
DN記憶領域15に格納されているエントリA、BのD
Nを基に、エントリEからエントリBおよびエントリE
からエントリAへの間接リンクを、間接リンク登録処理
2600により登録する。この状態を、図16(e)に
示す。その後、ステップS1702、S1703にて、
エントリEの直接リンク元エントリは存在しないと判断
し、エントリEを対象としたリンク伝播処理1700を
終了する。
【0122】そして、エントリCを対象としたリンク伝
播処理1700に戻り、全ての直接リンク元エントリに
関して処理を実行したと判断して(ステップS170
7)、DN記憶領域15から、エントリA、BのDNを
削除し(ステップS1709)、リンク伝播処理170
0を終了する。
【0123】それから、図12の間接リンク追加処理1
500に戻り、DN記憶領域15を初期化して(ステッ
プS1504)、間接リンク追加処理1500を終了す
る。この状態を、図16(f)に示す。
【0124】このようにして、エントリの更新に応じて
発生した新たな間接リンクが、間接リンクテーブル20
に登録されていくことになる。
【0125】さて、図11の間接リンク管理処理130
0における各処理の詳細説明に戻る。次は、間接リンク
管理処理1300中で行う間接リンク変更処理1800
の詳細について説明する。
【0126】この処理は、エントリのDN変更に伴い、
間接リンクテーブル20のリンク元エントリDN63お
よびリンク先エントリDN64を置換する処理である。
変更処理部12が、図17に示す手順によって行う。
【0127】すなわち、変更処理部12は、先ず、変数
Mmaxに間接リンクテーブル20のレコード数を設定
し、カウンタ変数Mに初期値1を設定する(ステップS
1801)。次に、間接リンクテーブル20の第Mレコ
ードを読み込み(ステップS1802)、当該レコード
の間接リンク作成属性名62とN番目の間接リンク作成
属性名が一致し、かつ、当該レコードのリンク元エント
リDN63と対象エントリの変更前のDNが一致するか
否かを確認する(ステップS1803)。もし、一致し
ない場合は(ステップS1804)、ステップS180
6以降の処理を実行する。一致した場合は(ステップS
1804)、当該レコードのリンク元エントリDN63
の値を、対象エントリの変更後のDNに置換する(ステ
ップS1805)。
【0128】次に、当該レコードのリンク先エントリD
N64に関して同様の処理を行う(ステップS1806
〜ステップS1808)。
【0129】以上の処理(ステップS1802〜ステッ
プS1808)を、間接リンクテーブル20の全レコー
ドに対して実行し(ステップS1810、S181
1)、間接リンク変更処理1800を終了する。
【0130】次に、図11の間接リンク管理処理130
0中で行う間接リンク削除処理1900の詳細について
説明する。
【0131】この処理は、間接リンク管理部9の削除処
理部13が、図18に示す手順によって行う。また、こ
の処理は、図示するように、更新対象エントリをリンク
元とする間接リンクのうち、未だ有効な間接リンクを特
定する有効間接リンク特定処理2000と、無効となっ
た間接リンクを削除する無効間接リンク削除処理220
0とを含む。
【0132】さて、削除処理部13は、先ず、変更され
たエントリの更新種別により処理を分岐する(ステップ
S1901)。更新種別が変更の場合は、変更されたエ
ントリを対象エントリに設定し、有効間接リンク特定処
理2000と、無効間接リンク特定処理2200とを実
行する。その後、DN記憶領域15を初期化して(ステ
ップS1904)、間接リンク削除処理1900を終了
する。
【0133】一方、更新種別が削除の場合は、先ず、エ
ントリテーブル16を検索して、削除されたエントリの
直接リンク元エントリを全て読み込み、エントリ数を変
数Lmaxに格納する(ステップS1905)。なお、
直接リンク元エントリが存在しない場合は、ステップ1
904でDN記憶領域15の初期化を行った後、間接リ
ンク削除処理1900を終了する。
【0134】次に、削除処理部13は、カウンタ変数L
を初期値1に設定し(ステップS1907)、L番目の
直接リンク元エントリを対象エントリに設定して、有効
間接リンク特定処理2000と無効間接リンク特定処理
2200とを実行する。これらの処理を、全ての直接リ
ンク元エントリに対して行う(ステップS1910、S
1911)。その後、DN記憶領域15を初期化して
(S1904)、間接リンク削除処理1900を終了す
る。
【0135】次に、図18で示した有効間接リンク特定
処理2000の詳細を説明する。
【0136】この処理は、図19に示す手順によって削
除処理部13が行う。
【0137】すなわち、削除処理部13は、先ず、間接
リンクテーブル20から、対象エントリをリンク元とす
る間接リンクNを全て読み込む(ステップS200
1)。もし、間接リンクが存在しなければ(ステップS
2002)、有効間接リンク特定処理2000を終了す
る。
【0138】一方、ステップS2002で間接リンクが
存在した場合は、今度は、エントリテーブル16から、
対象エントリの直接リンクNを全て読み込む(ステップ
S2003)。直接リンクNが存在しない場合は(ステ
ップS2004)、有効間接リンク特定処理2000を
終了する。
【0139】ステップS2004で直接リンクNが存在
した場合、その直接リンクNを検査対象リンクに設定し
(ステップS2006)、リンク整合性検査処理210
0を実行する。その後、有効間接リンク特定処理200
0を終了する。
【0140】次に、図19に示すリンク整合性検査処理
2100の詳細について説明する。
【0141】この処理は、直接リンク先エントリを再帰
的に探索することで、間接リンクが有効か否かを判断す
る処理である。図20に示す手順に従って削除処理部1
3が行う。
【0142】すなわち、削除処理部13は、先ず、変数
Mmaxを検査対象リンクの数に設定し、カウンタ変数
Mを初期値1に設定する(ステップS2101)。
【0143】次に、M番目の検査対象リンクが、図19
のステップS2001で読み込んだ間接リンクの何れか
と一致するか否かを確認する(ステップS2102)。
もし、一致した場合(ステップS2103)は、その間
接リンクは未だ有効である。そこで、DN記憶領域15
に、M番目の検査対象リンクのリンク先エントリのDN
を格納する(ステップS2104)。
【0144】次に、エントリテーブル16を検索して、
M番目の検査対象リンクのリンク先エントリの直接リン
クNを読み込む(ステップS2105)。もし、直接リ
ンクNが存在しない場合は(ステップS2106)、ス
テップS2108以降の処理を行う。ステップS210
6で直接リンクNが存在した場合は、読み込んだ直接リ
ンクNを検査対象リンクに設定して(ステップS210
7)、リンク整合性検査処理2100を再帰的に実行す
る。
【0145】ステップS2102〜ステップS2107
の処理を、全ての検査対象リンクに対して実行した後
(ステップS2108、S2109)、リンク整合性検
査処理2100を終了する。
【0146】次に、図18に示す無効間接リンク削除処
理2200の詳細について説明する。この処理は、削除
処理部13が図21に示す手順に従って行う。
【0147】ここで、無効間接リンク削除処理2200
が開始された時点で、DN記憶領域15には有効な間接
リンクのリンク先エントリのDNが格納されている。
【0148】そこで、削除処理部13は、先ず、ステッ
プS2201にて、間接リンクテーブル20を検索し、
対象エントリをリンク元とする間接リンクNを読み込
み、そのリンク先エントリDN64がDN記憶領域15
に格納されていない間接リンクを全て削除する。
【0149】次に、エントリテーブル16を検索し、対
象エントリの直接リンク元エントリを読み込み、エント
リ数を変数Mmaxに格納する(ステップS220
3)。もし、直接リンク元エントリが存在しない場合は
(ステップS2204)、無効間接リンク削除処理22
00を終了する。
【0150】一方、ステップS2204で、直接リンク
元エントリが存在した場合は、エントリテーブル16を
検索し、対象エントリの直接リンクNを読み込み、その
値をDN記憶領域15へ格納する(ステップS220
5)。そして、カウンタ変数Mに初期値1を設定する
(ステップS2206)。
【0151】次に、M番目の直接リンク元エントリを処
理対象エントリとして、有効間接リンク特定処理200
0と無効間接リンク削除処理2200を再帰的に実行す
る(ステップS2207)。その再帰的な実行を、全て
の直接リンク元エントリに対して行う(ステップS22
08、S2209)。ただし、無効間接リンク削除処理
2200から呼び出された、有効間接リンク特定処理2
000では、過去に処理対象エントリとなったエントリ
への直接リンクは、検査対象リンクから除外する。
【0152】最後に、DN記憶領域15から、ステップ
S2205でDN記憶領域15に格納した直接リンクN
を削除し(ステップS2210)、無効間接リンク削除
処理2200を終了する。
【0153】ここで、以上の図18〜図21で説明した
間接リンク削除処理2200の動作の具体例を、図22
に示しておく。
【0154】いま、エントリテーブル16に、エントリ
A、B、C、D、Eが登録され、エントリCからエント
リA、エントリDからエントリB、エントリDからエン
トリC、および、エントリEからエントリDへの直接リ
ンクが存在するところに、エントリDからエントリBへ
の直接リンクが削除されたものとする。この状態を、図
22(a)に示す。
【0155】この場合、先ず、削除処理部13は、図1
8に示す間接リンク削除処理1900のステップS19
01にて更新種別が変更であると判断し、対象エントリ
をエントリDとした有効間接リンク特定処理2000を
実行する。
【0156】有効間接リンク特定処理2000では、図
19のステップS2001にて、エントリDからエント
リAへの間接リンクを読み込む。さらに、ステップS2
003にて、エントリDからエントリCへの直接リンク
を読み込む。その後、ステップS2006で、この直接
リンクを検査対象リンクとしたリンク整合性検査処理2
100を実行する。
【0157】リンク整合性検査処理2100では、図2
0で示したように、先ず検査対象リンクのリンク先エン
トリ(エントリC)のDNと、間接リンクのリンク先エ
ントリ(エントリA)DN63とが一致しないと判断し
(ステップS2102、S2103)、エントリテーブ
ル16から検査対象リンクのリンク先エントリの直接リ
ンク(エントリCからエントリAへの直接リンク)を読
み込み(ステップS2105)、その直接リンクを検査
対象リンクとしたリンク整合性検査処理2100を再帰
的に実行する(ステップS2107)。
【0158】今回は、検査対象リンクのリンク先エント
リ(エントリA)のDNと、間接リンクのリンク先エン
トリDN63が一致するため(ステップS2102、S
2103)、DN記憶領域15にエントリAのDNを格
納する(ステップS2104)。その後、エントリAを
リンク元とする直接リンクは存在しないため(ステップ
S2105、S2106)、リンク整合性検査処理21
00を終了する。この状態を、図22(b)に示す。
【0159】次に、エントリDを対象エントリとする無
効間接リンク削除処理2200を実行する。図21に示
すように、先ず間接リンクテーブル20を検索し、エン
トリDからエントリAへの間接リンクを読み込む。エン
トリAのDNはDN記憶領域15に格納されているた
め、間接リンクは削除しない(ステップS2201)。
次に、エントリDの直接リンク元エントリEを読み込ん
だ後(ステップS2203)、対象エントリDの直接リ
ンク先エントリCのDNをDN記憶領域15に格納する
(ステップS2205)。この状態を、図22(c)に
示す。
【0160】それから、エントリEを対象エントリとし
た無効間接リンク削除処理2200を再帰的に実行する
(ステップS2207)。エントリEを対象エントリと
した無効間接リンク削除処理2200では、まず、間接
リンクテーブル20を検索し、エントリEからエントリ
A、エントリEからエントリBおよびエントリEからエ
ントリCへの間接リンクを読み込む。DN記憶領域15
には、エントリBのDNは格納されていないため、エン
トリEからエントリBへの間接リンクは削除する。この
状態を、図22(d)に示す。
【0161】次に、エントリEの直接リンク元エントリ
は存在しないため(ステップS2203、ステップS2
204)、エントリEを対象エントリとする無効間接リ
ンク削除処理2200を終了して、エントリDを対象エ
ントリとする無効間接リンク削除処理2200に戻る。
そして、全ての直接リンク元エントリに関して処理を実
行したため(ステップS2208)、DN記憶領域15
からエントリA,CのDNを削除し(ステップS221
0)、無効間接リンク削除処理2200を終了する。
【0162】それから、図18に示す間接リンク削除処
理1900に戻って、最後に、DN記憶領域15を初期
化して(ステップS1904)、間接リンク削除処理1
900を終了する。この状態を、図22(e)に示す。
【0163】このようにして、エントリの更新内容に応
じて無効となった間接リンクが削除されていくことにな
る。
【0164】以上、エントリ更新の動作について説明し
た。
【0165】以下、エントリ検索の動作の詳細について
説明する。
【0166】先ず、図23にエントリ更新動作における
ディレクトリクライアント2とディレクトリサーバ1と
の間の通信シーケンスとディレクトリサーバ1の処理シ
ーケンスを示す。
【0167】図示するように、ディレクトリサーバ1
は、ディレクトリクライアント2からのエントリ検索要
求110を受信すると、プロトコル解析処理71にて検
索条件や読み込む属性の名称等を取り出す。検索条件に
は、検索キーとなる属性の名称と、属性値が指定され
る。
【0168】次に、DB検索処理111にて検索条件と
合致するエントリの情報をDB21のエントリテーブル
16から読み込む。検索キーにリンク属性が指定された
場合、本処理では、従来同様、検索条件にて指定された
属性値をDNとして持つエントリの直接リンク元エント
リのみを読み込む。
【0169】その後、検索要求において、間接リンク検
索が指定されている場合は、間接リンク検索処理350
0にて、読み込み処理部10が間接リンクテーブル20
を探索して検索条件に合致するエントリを特定し、それ
らのエントリの情報を、DB21のエントリテーブル1
6から読み込む。本処理では、検索条件にて指定された
属性値をDNとして持つエントリの間接リンク元エント
リを読み込む。
【0170】次に、検索要求において間接リンクの読み
込みが指定されている場合、間接リンク読み込み処理2
500にて、読み込み処理部10がDB検索処理111
にて読み込んだ、あるいは、DB検索処理111および
間接リンク検索処理3500にて読み込んだエントリの
情報に、間接リンクの情報を付加する。すなわち、ここ
では、たとえば、DB検索処理111、あるいは、DB
検索処理111および間接リンク検索処理3500にて
読み込んだ各エントリを間接リンク元エントリとする間
接リンクの情報を付加する。
【0171】さらに、アクセス制御処理72にて、読み
込んだエントリ1つ1つに対して、そのエントリ情報を
ディレクトリクライアント2が参照可能か判断する。最
後に、ディレクトリクライアント2へ、エントリ情報
を、検索結果112として送信する。
【0172】以下、このような動作の詳細について説明
する。
【0173】なお、プロトコル解析処理71、DB検索
処理111およびアクセス制御処理72は、従来のディ
レクトリシステムにおける処理と同様であるので説明を
省略する。
【0174】先ず、ディレクトリクライアント2がエン
トリ検索要求110のときに、ディレクトリサーバ1に
間接リンクに関連して指定する情報について、図24を
用いて説明する。
【0175】図24において、符号120はLDAPに
よるアクセス要求および応答に付加情報を加えるための
LDAPコントロールと呼ばれるプロトコル要素であ
る。RFC2251で規定されている。このLDAPコ
ントロールを使用することにより、ディレクトリクライ
アント2が、拡張機能を利用する上で必要な情報を、L
DAPアクセス要求に付加してディレクトリサーバ1へ
送信したり、ディレクトリサーバ1が、拡張機能によっ
て得られた情報をディレクトリクライアント2へ送信し
たりすることが可能となる。
【0176】ここで、controlTypeには、LDAPコン
トロール種別を一意に識別するOIDが設定される。ま
た、criticalityには、ディレクトリサーバ1がcontrol
Typeで指定されたLDAPコントロールに対応していな
い場合に、受信したアクセス要求を処理するか否かを表
す値が設定される。また、controlValueには、送信する
付加情報がオクテット文字列として設定される。
【0177】間接リンク検索を指定した検索要求を発行
する場合、ディレクトリクライアント2の間接リンク検
索部141は、検索要求と共にディレクトリサーバ1へ
送信するLDAPコントロールのcontrolTypeに、間接
リンク検索を要求するLDAPコントロールであること
を示す所定のOIDを設定する。以下、このようなcont
rolTypeが設定されたLDAPコントロールを間接リン
ク検索コントロールと呼ぶ。間接リンク検索コントロー
ルでは、controlValueに、検索で考慮する間接リンクを
指定する1以上の識別子を設定する。ここでは、符号1
21に示すように、識別子として検索で考慮する間接リ
ンクの間接リンク作成属性の名称を設定するようにして
いる。
【0178】また、間接リンク読み込みを指定した検索
要求を発行する場合、ディレクトリクライアント2の間
接リンク検索部141は、検索要求と共にディレクトリ
サーバ1へ送信するLDAPコントロールのcontrolTyp
eに、間接リンク読み込みを要求するLDAPコントロ
ールであることを示す所定のOIDを設定する。以下、
このようなcontrolTypeが設定されたLDAPコントロ
ールを間接リンク読み込みコントロールと呼ぶ。間接リ
ンク読み込みコントロールでは、controlValueに、間接
リンク読み込みで考慮する間接リンクを指定する1以上
の識別子を設定する。ここでは、符号122に示すよう
に、識別子として間接リンク読み込みで考慮する間接リ
ンクの間接リンク作成属性の名称を設定するようにして
いる。
【0179】次に、図23で示した間接リンク検索処理
3500について説明する。
【0180】この処理は、間接リンク管理部9の読み込
み処理部10が、図25に示す手順に従って行う。
【0181】すなわち、読み込み処理部10は、先ず、
ディレクトリクライアント2から送信された検索要求
に、間接リンク検索コントロールが付加されているか否
かを確認する。付加されていないならば(ステップS3
502)、間接リンク検索処理3500を終了する。
【0182】一方、ステップS3502で付加されてい
る場合、間接リンク検索コントロールを解析し、contro
lValueに含まれる間接リンク作成属性の名称を取得し、
その後、その属性の数を変数Nmaxに格納する(ステ
ップS3503)。
【0183】そして、カウンタ変数Nを初期化し(ステ
ップS3504)、それから、controlValue中のN番目
の間接リンク作成属性の名称が、間接リンク作成属性名
記憶領域8に含まれているか否かを確認する(ステップ
S3505)。
【0184】もし、含まれる場合、間接リンクテーブル
20からN番目の間接リンク作成属性の名称を持つ間接
リンクを探索し、さらに、そのリンク先エントリDN6
4が、エントリ検索要求から読み出した検索条件にて指
定された属性値と一致するレコードを見つける。(ステ
ップS3506)。たとえば、検索キーが“menber=uid
=yamada,ou=People,o=ABC.com”ならば、リンク先エン
トリDN64の値が“uid=yamada,ou=People,o=ABC.co
m”であるレコードを見つける。次に、当該レコードの
リンク元エントリDN63を参照し、そのDNが指し示
すエントリの情報をエントリテーブル16から読み出す
(ステップS3507)。
【0185】ステップS3505〜S3507の処理
を、controlValue中の全ての間接リンク作成属性に関し
て実行し終えたら(ステップS3508、S350
9)、間接リンク検索処理3500を終了する。
【0186】次に、図23の間接リンク読み込み処理2
500について説明する。
【0187】この処理は、間接リンク管理部9の読み込
み処理部10が、図26に示す手順に従って行う。
【0188】図示するように、この処理では、先ず、デ
ィレクトリクライアント2から送信された検索要求に、
間接リンク読み込みコントロールが付加されているか否
かを確認する。付加されていないならば(ステップS2
501)、間接リンク読み込み処理2500を終了す
る。
【0189】一方、ステップS2501で付加されてい
る場合、DB検索処理111、あるいは、DB検索処理
111および間接リンク検索処理3500にて読み込ま
れたエントリの数を変数Nmaxに格納する(ステップ
S2502)。それから、間接リンク読み込みコントロ
ールを解析して、controlValueに含まれる間接リンク作
成属性の名称を取得し、取得した間接リンク作成属性の
名称の数を変数Mmaxに格納する(ステップS250
3)。
【0190】次に、カウンタ変数N、Mを共に1に設定
し、以下の処理を繰り返す(ステップS2504、S2
505)。ここで、NはDB検索処理111、あるい
は、DB検索処理111および間接リンク検索処理35
00にて読み込まれたエントリの番号を示し、Mはステ
ップS2503で得た間接リンク属性名称の番号を示
す。
【0191】先ず、間接リンクテーブル20からM番目
の間接リンク属性名称を持つ間接リンクを検索し、さら
に、その中からN番目のエントリをリンク元とする間接
リンクMを読み込む(ステップS2506)。間接リン
クMを読み込んだ後、当該間接リンクMの間接リンク作
成属性名62を属性名とし、リンク先エントリDN64
を属性値とする属性を、N番目のエントリのエントリ情
報に追加する(ステップS2507)。
【0192】そして、ステップS2506、S2507
の処理を、全ての間接リンクおよび全てのエントリに関
して実行する(ステップS2508〜S2511)。そ
して、全て実行し終えたら、間接リンク読み込み処理2
500を終了する。
【0193】以上、本発明の第1実施形態について説明
した。
【0194】本実施形態によれば、直接リンクがエント
リに登録された時点で、エントリ間の間接的な関連付け
情報である間接リンクの情報が作成され登録される。デ
ィレクトリクライアントからの間接リンクをも対象とす
る検索の要求の時には、ディレクトリサーバは、既に作
成されている間接リンクの情報をも用いて検索を行う。
したがって、ディレクトリサーバの検索効率や検索性能
を向上させることができる。
【0195】次に、本発明の第2実施形態について説明
する。
【0196】本実施形態は、上記の第1実施形態におい
て、間接リンク作成属性名記憶領域8や間接リンクテー
ブル20を、ディレクトリ情報に対するアクセス制御に
適用したものである。
【0197】まず、図4に示したACIテーブル18を
図27を用いて説明する。
【0198】図27に示すように、ACIテーブル18
は、ディレクトリ情報に対するアクセス制御情報を格納
するテーブルであり、アクセス先エントリDN132
と、アクセス元種別133と、アクセス元情報134
と、間接リンク適用フラグ135と、権限136と、ア
クセス許可フラグ137とを有する。また、ACIテー
ブル18は配列構造をなし、1以上のアクセス制御情報
を記憶可能である。
【0199】アクセス先エントリDN132は、アクセ
ス対象となるディレクトリ情報の範囲を指定する情報で
あり、アクセス先エントリDN132に格納されている
DNを持つエントリ以下の全エントリが、アクセス対象
となる。
【0200】アクセス元種別133およびアクセス元情
報134は、ディレクトリ情報に対する権限を与えるユ
ーザを指定する情報であり、アクセス元種別133が1
の場合、ディレクトリサービスに匿名で接続したユーザ
を指定する(アクセス元情報134には情報は格納され
ない)。アクセス元種別133が2の場合、正しく認証
された全ユーザを指定する(アクセス元情報134には
情報は格納されない)。アクセス元種別133が3の場
合、特定の認証済みユーザを指定する。この場合、その
ユーザに相当するユーザエントリのDNが、アクセス元
情報134に格納される。
【0201】また、アクセス元種別133が4の場合、
特定のグループに所属する認証済みユーザを、アクセス
ユーザに指定する。この場合、そのグループを表すグル
ープエントリのDNが、アクセス元情報134に格納さ
れる。ここでは、アクセス元種別が4の場合のアクセス
制御をグループによるアクセス制御と呼ぶ。
【0202】そして、アクセス元種別133が5の場
合、アクセス対象エントリとリンクにより関連付けられ
ているユーザエントリが表す認証済みユーザを指定す
る。この場合、そのリンク属性の名称がアクセス元情報
134に格納される。ここでは、アクセス元種別が5の
場合のアクセス制御をリンクによるアクセス制御と呼
ぶ。
【0203】間接リンク適用フラグ135は、アクセス
元種別が4か5の場合に有効な情報である。アクセス拒
否、許可の判断に間接リンクを考慮するか否かを指定す
る。1の場合は間接リンクを考慮し、0の場合は間接リ
ンクを無視する。
【0204】たとえば、アクセス元種別133が4の場
合、間接リンク適用フラグ135が0であれば、特定グ
ループに直接所属するユーザにのみ権限が与えられる。
間接リンク適用フラグ135が1であれば、特定グルー
プのサブグループのユーザにも権限が与えられる。
【0205】また、アクセス元種別133が5で且つア
クセス元情報134がmanagerである場合、間接リンク
適用フラグ135が0であれば、そのアクセス対象エン
トリの直属の上長にのみ権限が与えられる。間接リンク
適用フラグ135が1であれば、全ての上長に同一の権
限が与えられる。
【0206】権限136は、拒否あるいは許可される操
作の種別を指定する。書き込みを表すwrite、読み込み
を表すreadをカンマ区切りで列挙する。
【0207】アクセス許可フラグ137は、アクセスを
拒否するかそれとも許可するかを指定する情報である。
1の場合は、図27の符号132から符号136で指定
されたアクセスを許可する。0の場合は拒否する。
【0208】なお、図中、符号138は、ACIテーブ
ル18の情報例であり、“ou=People,o=ABC.com”以下
の全エントリに対する読み込みの権限を、グループエン
トリ“cn=Sales,ou=Groups,o=ABC.com”が表すグループ
に所属する全ユーザに対して与えることを表す。また、
間接リンク適用フラグ135を1とすることにより、前
記グループに直接所属するユーザと同等の権限を、前記
グループのサブグループエントリに所属するユーザにも
与えている。
【0209】以下、このようなディレクトリシステムの
アクセス制御の動作について説明する。
【0210】まず、ACIテーブル18の初期設定動作
について説明する。
【0211】この場合、ディレクトリサーバ1のユーザ
I/F制御部7が図28に示す画面40をディスプレイ
27に表示し、アクセス制御情報を図27に示す符号1
32から符号137の順番で受け付ける。
【0212】ここで、画面40は、アクセス元種別とし
て匿名ユーザを選択するボタン41と、認証済みの全ユ
ーザを選択するボタン43と、特定の認証済みユーザを
選択するボタン44と、選択するユーザを表すユーザエ
ントリのDNを入力する領域52と、グループに所属す
る認証済みユーザを選択するボタン45と、選択するグ
ループを表すグループエントリのDNを入力する領域5
3と、リンクにより指定された認証済みユーザを選択す
るボタン46と、選択するリンクのリンク属性の名称を
入力する領域54と、間接リンクを考慮することを指示
するボタン47と、間接リンクは考慮しないことを指示
するボタン48と、アクセス先エントリDN132を入
力する画面に遷移するためのボタン49と、権限136
およびアクセス許可フラグ137を入力する画面に遷移
するためのボタン50と、入力中のアクセス制御情報を
取り消すためのボタン51とを有する。
【0213】画面40のボタン41〜46は同時に2以
上を選択することはできない。ボタン47、48は、同
時に選択することはできない。また、領域52は、ボタ
ン44を選択にした場合にのみ、領域53はボタン45
を選択した場合にのみ、そして、領域54は、ボタン4
6を選択した場合にのみ、各々入力可能となる。さら
に、ボタン47、48は、ボタン45あるいはボタン4
6を選択した場合にのみ、選択可能となる。
【0214】ユーザは、キーボード29等を用いてボタ
ン41〜48を選択し、必要であれば領域52〜54へ
文字列を入力した後、ボタン50をマウス28でクリッ
クする。すると、ユーザI/F制御部7は、入力された
アクセス制御情報を、DB制御部6を利用してACIテ
ーブル18に登録する。
【0215】次に、ディレクトリクライアント2からア
クセス要求を受けた際のアクセス制御の動作について説
明する。
【0216】ディレクトリクライアント2のアクセス要
求を受けると、アクセス制御部5は、ACIテーブル1
8を探索し、アクセス要求対象エントリに関連するレコ
ードを特定する。アクセス要求対象エントリに関連する
レコードとは、アクセス先エントリDN132の値が、
ディレクトリルートからアクセス要求対象エントリに至
るまでの全てのエントリのうちのいずれかのエントリの
DNと一致するレコードである。そして、各レコードに
格納されているアクセス制御情報に基づいて、全てのレ
コードがディレクトリクライアント2のアクセス要求を
許可するか、それとも、いずれかのレコードが拒否する
かを判断し、全てが許可する場合にはアクセス要求に従
って、アクセス要求対象エントリへのアクセスを行う。
【0217】以下、アクセス要求対象エントリに関する
ACIテーブル18のアクセス元種別133が4、5の
時のグループによるアクセス制御処理とリンクによるア
クセス制御処理の詳細を説明する。なお、アクセス元種
別133が1、2および3の場合にけるアクセス制御処
理の動作は、従来と同様であるので説明を省略する。
【0218】では、先ず、グループによるアクセス制御
処理2300(アクセス元種別133が4の時)につい
て説明する。
【0219】図29は、グループによるアクセス制御処
理2300(アクセス元種別133が4の時)におい
て、アクセス要求対象エントリに関連するある1つのレ
コードがアクセス要求を許可しているか、それとも、拒
否しているかを判定する処理手順を示したものである。
【0220】最初に、当該レコードのアクセス元情報1
34が指し示すグループエントリのメンバ属性を、エン
トリテーブル16の検索により読み込む(ステップS2
301)。そして、メンバ属性の値と、ディレクトリサ
ーバ1に接続しているユーザを表すユーザエントリのD
Nとが一致するか否かを確認し(ステップS230
2)、一致すれば(ステップS2303)、当該レコー
ドのアクセス許可フラグ137を参照する(ステップS
2311)、当該フラグ137が1ならば、ステップS
2312にてアクセス許可と判断し、0ならばステップ
S2310にてアクセス拒否と判断する。
【0221】メンバ属性の値とユーザエントリのDNと
が一致しない場合、当該レコードの間接リンク適用フラ
グ135を参照する(ステップS2304)。当該フラ
グ135が0ならば(ステップS2305)、ステップ
S2310にてアクセス拒否と判断する。一方、当該フ
ラグ135が1ならば、間接リンクテーブル20を検索
し、アクセス元情報134が指し示すグループエントリ
をリンク元とする間接リンクであって、間接リンク作成
属性名62がメンバ属性の名称と一致する間接リンクを
読み込む(ステップS2306)。そして、間接リンク
のリンク先エントリDN64と、ディレクトリサーバ1
に接続しているユーザエントリのDNとが一致するか確
認し(ステップS2307)、一致したならば(ステッ
プS2308)、当該レコードのアクセス許可フラグ1
37を参照する(ステップS2311)、当該フラグ1
37が1ならばステップS2312にてアクセス許可と
判断し、0ならばステップS2310にてアクセス拒否
と判断する。
【0222】また、ステップS2308にて、間接リン
クのリンク先エントリDN64とディレクトリサーバ1
に接続しているユーザエントリのDNとが一致しないと
判定した場合、ステップS2310にてアクセス拒否と
判断する。
【0223】そして、ステップS2310あるいはステ
ップS2312にて、アクセスを許可するか、それと
も、拒否するかを判断した後、グループによるアクセス
制御処理2300を終了する。
【0224】次に、リンクによるアクセス制御処理23
00(アクセス元種別133が4の時)について説明す
る。
【0225】図30は、リンクによるアクセス制御処理
2400(アクセス元種別133が5の時)において、
アクセス要求対象エントリに関連するある1つのレコー
ドがアクセス要求を許可しているか、それとも、拒否し
ているかを判定する処理手順を示したものである。
【0226】この処理では、最初に、アクセス対象エン
トリをエントリテーブル16から探索し、探索したエン
トリのアクセス元情報134が指し示すリンク属性名称
のリンク属性を読み込む(ステップS2401)。そし
て、その属性値とディレクトリサーバ1に接続している
ユーザエントリのDNとが一致するか否かを確認し(ス
テップS2402)、一致するならば(ステップS24
03)、当該レコードのアクセス許可フラグ137を参
照する(ステップS2411)。当該フラグ137が1
ならばステップS2412にてアクセス許可と判断し、
0ならばステップS2410にてアクセス拒否と判断す
る。
【0227】一方、ステップS2403において、属性
値とユーザエントリのDNとが一致しない場合、当該レ
コードの間接リンク適用フラグ135を参照し(ステッ
プS2404)、当該フラグ135が0ならば(ステッ
プS2405)、ステップS2410にてアクセス拒否
と判断する。ステップ2405にて、当該フラグ135
が1ならば、間接リンクテーブル20を検索し、間接リ
ンク作成属性名62がアクセス元情報134のリンク属
性の名称と一致し、且つ、リンク元エントリDN63が
アクセス対象エントリのDNと一致する間接リンクを読
み込む(ステップS2406)。そして、間接リンクの
リンク先エントリDN64と、ディレクトリサーバ1に
接続しているユーザエントリのDNとが一致するか否か
を確認し(ステップS2407)、一致するならば(ス
テップS2408)、当該レコードのアクセス許可フラ
グ137を参照する(ステップS2411)。当該フラ
グ137が1ならばステップS2412にてアクセス許
可と判断し、0ならばステップS2410にてアクセス
拒否と判断する。
【0228】一方、ステップS2408において、間接
リンクのリンク先エントリDN64とディレクトリサー
バ1に接続しているユーザエントリのDNとが一致しな
いと判定した場合、ステップS2410にてアクセス拒
否と判断する。
【0229】ステップS2410あるいはステップS2
412にて、アクセスを許可するか、それとも、拒否す
るかを判断した後、リンクによるアクセス制御処理24
00を終了する。
【0230】以上、本発明の第2実施形態について説明
した。
【0231】以上のように本実施形態によれば、サブグ
ループも考慮したグループによるアクセス制御、及びリ
ンクによるアクセス制御を、間接リンクを考慮すること
で効率よく行うことができる。
【0232】なお、上記の各実施形態では、間接リンク
の情報を間接リンクテーブル20に記憶している。しか
し、間接リンクテーブル20とインデックステーブル1
7とを1つにまとめるようにしてもよい。
【0233】また、間接リンクの情報を直接リンクと同
様に、エントリテーブル16に格納してもよい。この場
合、直接リンクと区別するために、属性名に間接リンク
を示すタグを付加するとよい。たとえば、タグ“;vlin
k”を用いて間接リンクを表す場合、member属性を基に
作成する間接リンクは、member;vlink属性としてエント
リテーブル16に格納する。
【0234】また、上記の各実施形態では、ディレクト
リサーバ1が間接リンクの追加・変更・削除を行うとし
たが、前述のように間接リンクをエントリテーブル16
に格納する場合、ディレクトリクライアント2がこれを
行うようにしてもよい。この場合、ディレクトリクライ
アント2(ディレクトリサーバ利用アプリケーション)
に、ディレクトリ情報の更新内容を読み込む機能と、そ
の更新内容に基づき間接リンクの追加・変更・削除を行
うためのエントリ更新要求をディレクトリサーバ1に対
して発行する機能を具備するようにすればよい。
【0235】また、上記の各実施形態では、同種の直接
リンクに基づいて間接リンクを作成する場合について説
明したが、複数種類の直接リンクに基づいて1つの間接
リンクを作成してもよい。
【0236】また、以上の実施形態における間接リンク
検索処理3500では、検索キーで指定されたエントリ
の間接リンク元エントリを検索して提供したが、逆に、
検索キーで指定されたエントリの間接リンク先エントリ
を検索して提供したり、検索キーで指定されたエントリ
の間接リンク先エントリと間接リンク元エントリの双方
を検索して提供したりするようにしてもよい。また、同
様に、間接リンク読み込み処理2500では、検索した
エントリを間接リンク元エントリとする間接リンクの情
報を検索して提供したが、逆に、検索したエントリを間
接リンク先エントリとする間接リンクの情報を検索して
提供しり、検索したエントリを間接リンク先エントリと
する間接リンクと検索したエントリを間接リンク元エン
トリとする間接リンクの双方を検索して提供したりする
ようにしてもよい。
【0237】
【発明の効果】以上のように、本発明によれば、ディレ
クトリシステムにおいて、エントリ間の間接的な関連づ
けに基づく検索の効率化を図ることができる。
【図面の簡単な説明】
【図1】本発明の実施形態で対象とする間接リンクの例
を示す図である。
【図2】本発明の実施形態で対象とする間接リンクの例
を示す図である。
【図3】本発明の実施形態で用いる用語を解説した図で
ある。
【図4】本発明の実施形態に係るディレクトリシステム
の機能構成を示すブロック図である。
【図5】本発明の実施形態に係るディレクトリサーバの
ハードウエア構成を示すブロック図である。
【図6】本発明の実施形態に係るディレクトリクライア
ントのハードウエア構成を示すブロック図である。
【図7】本発明の実施形態において、DB21に設けら
れる間接リンク作成属性名記憶領域、間接リンクテーブ
ル、および、DN記憶領域の記憶内容を示す図である。
【図8】本発明の実施形態において、間接リンク作成属
性名称を受け付ける画面例を示した図である。
【図9】本発明の実施形態のエントリ更新動作を示すシ
ーケンス図である。
【図10】本発明の実施形態のリンク確認処理の処理手
順を示すフロー図である。
【図11】本発明の実施形態の間接リンク管理処理の処
理手順を示すフロー図である。
【図12】本発明の実施形態の間接リンク追加処理の処
理手順を示すフロー図である。
【図13】本発明の実施形態のリンク収集処理の処理手
順を示すフロー図である。
【図14】本発明の実施形態のリンク伝播処理の処理手
順を示すフロー図である。
【図15】本発明の実施形態の間接リンク登録処理の処
理手順を示すフロー図である。
【図16】本発明の実施形態の間接リンク追加処理の具
体例を示す図である。
【図17】本発明の実施形態の間接リンク変更処理の処
理手順を示すフロー図である。
【図18】本発明の実施形態の間接リンク削除処理の処
理手順を示すフロー図である。
【図19】本発明の実施形態における有効間接リンク特
定処理の処理手順を示すフロー図である。
【図20】本発明の実施形態のリンク整合性検査処理の
処理手順を示すフロー図である。
【図21】本発明の実施形態における無効間接リンク削
除処理の処理手順を示すフロー図である。
【図22】本発明の実施形態の間接リンク削除処理の具
体例を示す図である。
【図23】本発明の実施形態のエントリ検索動作を示す
シーケンス図である。
【図24】本発明の実施形態で用いるLDAPコントロ
ールの内容を示す図である。
【図25】本発明の実施形態の間接リンク検索処理の処
理手順を示すフロー図である。
【図26】本発明の実施形態における間接リンク読み込
み処理の処理手順を示すフロー図である。
【図27】本発明の実施形態において、DB21に設け
られるACIテーブルの内容を示す図である。
【図28】本発明の実施形態において、DB21に設け
られるACIテーブルの内容を受け付けるのに用いる画
面例を示す図である。
【図29】本発明の実施形態のグループによるアクセス
制御処理の処理手順を示すフロー図である。
【図30】本発明の実施形態のリンクによるアクセス制
御処理の処理手順を示すフロー図である。
【図31】ディレクトリシステムにおけるリンクに関わ
る用語を解説した図である。
【図32】ディレクトリシステムでのグループエントリ
を用いたディレクトリ情報例を示す図である。
【図33】ディレクトリシステムでの上長へのリンクを
用いたディレクトリ情報例を示す図である。
【符号の説明】
1…ディレクトリサーバ、2…ディレクトリクライアン
ト、3…通信制御部、4…プロトコル制御部、5…アク
セス制御部、6…DB制御部、7…ユーザI/F制御
部、8…間接リンク作成属性名記憶領域、9…間接リン
ク管理部、10…読み込み処理部、11…追加処理部、
12…変更処理部、13…削除処理部、14…確認処理
部、15…DN記憶領域、16…エントリテーブル、1
7…インデックステーブル、18…ACIテーブル、2
0…間接リンクテーブル、21…DB、22…LAN、
140…ディレクトリシステム、141…間接リンク検
索部、142…タスク処理部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 川上 順彦 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 大橋 徹 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア事業部内 Fターム(参考) 5B017 AA02 BA06 BB02 CA16 5B075 NK44 NK46 NK54 PP13 PP22 5B082 EA11 HA08

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】各ディレクトリエントリ内の記述によって
    各ディレクトリエントリ間にリンクが設定されているデ
    ィレクトリ情報を用いて、ディレクトリサービスを提供
    するディレクトリシステムであって、 現時点における、複数のリンクを介したディレクトリエ
    ントリ間の関連を、間接リンク情報として管理する間接
    リンク管理手段と、 ディレクトリエントリに複数のリンクを介して関連する
    他のディレクトリエントリを、前記間接リンク管理手段
    が管理する間接リンク情報に従って検索する間接リンク
    検索手段と、を有することを特徴とするディレクトリシ
    ステム。
  2. 【請求項2】請求項1記載のディレクトリシステムであ
    って、 前記間接リンク管理手段は、 ディレクトリエントリが更新された際に、現時点におけ
    る、複数のリンクを介したディレクトリエントリ間の関
    連の変更を調べ、その結果に従って管理している間接リ
    ンク情報の更新を行うことを特徴とするディレクトリシ
    ステム。
  3. 【請求項3】請求項1または2記載のディレクトリシス
    テムであって、 複数のリンクを介したディレクトリエントリ間の関連に
    依存せずに定まる、リソースと当該リソースに対するア
    クセス権限を与えるユーザとの対応が記述されたアクセ
    ス制御情報を記憶する記憶手段と、 前記記憶手段に記憶されたアクセス制御情報に従って、
    ユーザに付与するリソースへのアクセス権限を制御する
    アクセス制御手段と、をさらに有し、 前記ディレクトリ情報は、 個々のユーザに対応する複数のディレクトリエントリを
    含み、 前記アクセス制御手段は、 各リソースについて、当該リソースについてのアクセス
    制御情報に記述された対応より定まるユーザと、前記間
    接リンク管理手段が管理する間接リンク情報において当
    該ユーザに対応するディレクトリエントリに関連付けら
    れている他のディレクトリエントリに対応するユーザと
    に、当該リソースに対するアクセス権限を付与すること
    を特徴とするディレクトリシステム。
  4. 【請求項4】各ディレクトリエントリ内の記述によって
    各ディレクトリエントリ間にリンクが設定されているデ
    ィレクトリ情報を用いて、ディレクトリサービスを提供
    する方法であって、 現時点における、複数のリンクを介したディレクトリエ
    ントリ間の関連を、間接リンク情報として、常時管理
    し、 ディレクトリエントリに対する検索要求発生時に、当該
    ディレクトリエントリに複数のリンクを介して関連する
    他のディレクトリエントリを、その時点において管理さ
    れている間接リンク情報に従って検索することを特徴と
    するディレクトリサービス提供方法。
  5. 【請求項5】各ディレクトリエントリ内の記述によって
    各ディレクトリエントリ間にリンクが設定されているデ
    ィレクトリ情報を用いて、ディレクトリサービスを提供
    するためのプログラムが記憶された記憶媒体であって、 当該プログラムは、電子計算機によって読み取られ実行
    されることで、 現時点における、複数のリンクを介したディレクトリエ
    ントリ間の関連を、間接リンク情報として管理する間接
    リンク管理手段と、 ディレクトリエントリに複数のリンクを介して関連する
    他のディレクトリエントリを、前記間接リンク管理手段
    が管理する間接リンク情報に従って検索する間接リンク
    検索手段とを、前記電子計算機上に構築することを特徴
    とする記憶媒体。
JP2000173738A 2000-06-09 2000-06-09 ディレクトリシステム Pending JP2001350796A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000173738A JP2001350796A (ja) 2000-06-09 2000-06-09 ディレクトリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000173738A JP2001350796A (ja) 2000-06-09 2000-06-09 ディレクトリシステム

Publications (1)

Publication Number Publication Date
JP2001350796A true JP2001350796A (ja) 2001-12-21

Family

ID=18675913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000173738A Pending JP2001350796A (ja) 2000-06-09 2000-06-09 ディレクトリシステム

Country Status (1)

Country Link
JP (1) JP2001350796A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013530442A (ja) * 2010-04-27 2013-07-25 シマンテック コーポレーション ディレクトリデータを解決するための技法
WO2014069582A1 (ja) * 2012-11-05 2014-05-08 日本電気株式会社 関連情報提示装置及び関連情報提示方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013530442A (ja) * 2010-04-27 2013-07-25 シマンテック コーポレーション ディレクトリデータを解決するための技法
WO2014069582A1 (ja) * 2012-11-05 2014-05-08 日本電気株式会社 関連情報提示装置及び関連情報提示方法
US20150302065A1 (en) * 2012-11-05 2015-10-22 Nec Corporation Related information presentation device, and related information presentation method
JP5963281B2 (ja) * 2012-11-05 2016-08-03 日本電気株式会社 関連情報提示装置及び関連情報提示方法
US10019493B2 (en) 2012-11-05 2018-07-10 Nec Corporation Related information presentation device, and related information presentation method

Similar Documents

Publication Publication Date Title
US10021057B2 (en) Relationship collaboration system
US6078866A (en) Internet site searching and listing service based on monetary ranking of site listings
US6947924B2 (en) Group based search engine generating search results ranking based on at least one nomination previously made by member of the user group where nomination system is independent from visitation system
US7437357B2 (en) Method and system for providing service listings in electronic yellow pages
US6212545B1 (en) Distributed searching system and searching apparatus for use in the distributed searching system
US6205472B1 (en) Method and apparatus for querying a user knowledge profile
US6732087B1 (en) Information storage, retrieval and delivery system and method operable with a computer network
US6496855B1 (en) Web site registration proxy system
US7814121B2 (en) Method and apparatus for constructing and maintaining a user knowledge profile
US7636719B2 (en) Contact schema
US7979411B2 (en) Relating people finding results by social distance
US6925462B2 (en) Database management system, and query method and query execution program in the database management system
US7702521B2 (en) Method for users of a network to provide other users with access to link relationships between documents
US20030004985A1 (en) Method and apparatus for classifying document information
JP2011100461A (ja) コンピュータベースの検索の拡張
US7203725B1 (en) Withdrawal of requests of target number of requests responses received
KR20000049840A (ko) 인터넷을 통한 구인 구직 서비스 방법
KR20000054312A (ko) 맞춤 웹정보 구축 제공 방법
WO2001055909A1 (en) System and method for bookmark management and analysis
JP3917686B2 (ja) データベース管理システム
JP2001350796A (ja) ディレクトリシステム
JP2002259610A (ja) 就職サポートシステム
JP2002116944A (ja) メンバシップ管理方法
JP2002269094A (ja) 情報提供システム、情報提供方法、情報提供用プログラムが記録された情報記録媒体及び情報提供用プログラム
US7174391B2 (en) Method for responding to site access