説明

ディレクトリサーバ装置、ディレクトリサーバプログラム、ディレクトリサービスシステム、およびディレクトリサービス管理方法

【課題】LDAPプロトコルにおけるリフェラル機能では、ディレクトリサーバが処理要求元クライアントから照会要求を受け、自ディレクトリ上に照会された情報が存在しない場合には、他のディレクトリサーバの参照先を処理要求元クライアントに返信し、処理要求元クライアントは当該参照先に再照会を行う。これにより、ネットワークトラフィックが増加する。
【解決手段】照会対象のデータごとに、リフェラル情報が返信された返信回数を蓄積する。リフェラル情報の返信回数が一定回数を超えたデータについては、そのデータをリフェラル参照先ディレクトリサーバからコピーして取り込み、以降に同一の照会要求が発生した場合にリフェラル情報の返信を抑止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディレクトリサービスの技術に関する。
【背景技術】
【0002】
特許文献1に示すように、従来のLDAP(Lightweight Directory Access Protocol)プロトコルに基づくディレクトリサービスシステムでは、クライアントから要求されたデータが、あるディレクトリサーバ上で見つかった場合には、当該データの指定された属性情報についてクライアントへ返却する。クライアントから要求されたデータが、あるディレクトリサーバ上で見つからなかった場合には、LDAPプロトコルに基づくリフェラル機能を用いてクライアントに他のディレクトリサーバへの接続情報データであるリフェラル情報を返却し、クライアントに他のディレクトリサーバへの再照会を行わせる。リフェラル情報を受け取ったクライアントは、リフェラル情報に従って他のディレクトリサーバへ再照会を行う。また、リフェラル機能を用いずに、または併用して、連鎖(チェーン)機能を用いて、ディレクトリサーバが他のディレクトリサーバに対して同様の要求を送信し、クライアントが行う再照会をディレクトリサーバで代行することも可能である。
【0003】
【特許文献1】特開2004−310542号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
LDAPプロトコルに基づくリフェラル機能では、処理要求元クライアントに返信された他サーバへの接続情報(リフェラル情報)データを基に処理要求元クライアントが参照先のサーバに再び照会を行うことによりネットワークトラフィックが増加し、処理速度が低下するという問題があった。本発明は、ディレクトリサービスの検索におけるネットワークトラフィックの増加を抑える手段を提供する事を目的とする。
【課題を解決するための手段】
【0005】
頻繁に照会される情報を複製する機能を持つディレクトリサーバ技術を提供する。
【0006】
具体的には、情報照会要求データを受け付け、要求に合致するデータをディレクトリから検索し、要求されたデータが発見できなかった場合には、他のディレクトリサーバ装置の接続先を特定する情報を含む接続情報データを返信するディレクトリサーバ装置であって、記憶部と、処理部と、を備え、前記処理部は、前記情報照会要求データにより要求されたデータごとに、前記接続情報データを返信した返信回数を前記記憶部に記憶させ、記憶された返信回数が所定の回数を超過した場合に、他のディレクトリサーバ装置のうちの一の接続先に接続して、前記情報照会要求データにより要求されたデータを取得し、前記情報照会要求データにより要求されたデータを前記記憶部に記憶させる、ことを特徴とする。
【発明の効果】
【0007】
本発明によれば、ディレクトリサービスシステムにおいて、要求された情報がサーバ上に存在しなかった場合に発生するリフェラル処理によるネットワークトラフィックの増加を抑えることができる。
【発明を実施するための最良の形態】
【0008】
以下、本願発明の実施形態について、図1〜図7を用いて説明する。
【0009】
まず、図1〜図5を用いて、実施形態の構成について説明する。
【0010】
図1は、本発明の実施形態に係るディレクトリサービスシステム1についての概略を示す図である。本実施形態に係るディレクトリサービスシステム1は、ディレクトリに格納された情報の照会要求を行う処理要求元クライアント100と、ディレクトリを保持してクライアントからの照会要求に対してディレクトリの照会処理を行うディレクトリサーバA200、ディレクトリサーバB300、ディレクトリサーバC400と、これらを互いに接続することのできるネットワーク500と、を有して構成される。処理要求元クライアント100は、例えば、パーソナルコンピュータやPDA(Personal Digital Assistant)などであり、ディレクトリサーバA200、ディレクトリサーバB300、ディレクトリサーバC400は、サーバ装置により構成される。ネットワーク500は、例えばインターネットなどの公衆網や、LAN(Local Area Network)等の通信網である。また、本実施例では、便宜的に処理要求元クライアントを1台、ディレクトリサーバを3台として説明を行っているが、通常、それ以上の台数の処理要求元クライアントおよび階層関係を持つ複数のディレクトリサーバを有して構成される。
【0011】
次に、処理要求元クライアント100について説明する。図2は、ディレクトリの照会処理を要求する処理要求元クライアント100の機能構成図である。処理要求元クライアント100は、ディレクトリサーバに対して照会要求を行うディレクトリ照会要求部101と、通信部102と、を有して構成される。ディレクトリ照会要求部101は、処理要求元クライアント100内のユーザプログラム等から要求を受信し、通信部102を介してネットワーク500に対して接続することでディレクトリに対して照会要求を送信し、ディレクトリからの応答を受信して得られた照会処理結果を処理要求元クライアント100内のユーザプログラム等に対して返信する。
【0012】
次に、ディレクトリサーバについて説明する。図3は、ディレクトリを保持するディレクトリサーバA200の機能構成図である。ディレクトリサーバA200は、リフェラル情報記憶処理部201と、ディレクトリ照会処理部202と、リフェラル情報返信部203と、リフェラル情報蓄積処理部204と、通信部205と、記憶部206と、を有して構成される。
【0013】
リフェラル情報記憶処理部201は、LDAP(Lightweight Directory Access Protocol)プロトコルに基づいて、ディレクトリで管理するデータの種類に応じて他ディレクトリサーバの接続先を特定する接続情報となるリフェラル情報を記憶する機能部である。
【0014】
ディレクトリ照会処理部202は、処理要求元クライアント100からのディレクトリ照会要求と照会条件を通信部205を介して受信し、照会条件を基にディレクトリサーバA200内のディレクトリの照会処理を行い、照会結果を処理要求元クライアント100へ返却する機能部である。ディレクトリ照会処理部202は、照会結果を得られなかった場合には、リフェラル情報返信部203に処理を委譲する。また、後述するように、ディレクトリ照会処理部202は、処理結果を得られなかった場合には、続けて、リフェラル先のサーバに対して照会要求と照会条件を送信して照会結果を取得する処理を行う。
【0015】
リフェラル情報返信部203は、ディレクトリ照会処理部202によって照会した結果、自ディレクトリサーバに該当する情報がない場合に他サーバへのアクセス情報を含むリフェラル情報をリフェラル情報記憶処理部201から取得して、取得したリフェラル情報を通信部205経由で処理要求元クライアント100に返信する機能部である。
【0016】
リフェラル情報蓄積処理部204は、リフェラル情報返信部203によりリフェラル情報を返信する都度、別のディレクトリサーバへ問い合わせる処理の結果得られる照会結果に含まれるデータの識別子毎に後述するカウント表記憶領域209を用いて照会回数をカウントし、所定のカウントを超えた照会結果についてリフェラル情報を基に照会し、照会結果のエントリを自ディレクトリサーバ内のディレクトリに追加する機能部である。
【0017】
通信部205は、各機能部からの要求を受けてネットワーク500に対して情報を送受信する機能部である。
【0018】
記憶部206は、各機能部で使用するデータを記憶する記憶領域を有する部である。記憶部206は、リフェラル情報を返却する際に返却すべきリフェラル情報を記憶するリフェラル情報記憶領域207と、ディレクトリサービスを提供する際に必要となるディレクトリデータを格納するディレクトリ記憶領域208と、カウント表記憶領域209と、を有する。
【0019】
次に、ディレクトリサーバに備わるリフェラル情報蓄積処理部204により用いられるカウント表記憶領域209について説明する。図4に、カウント表記憶領域209に格納されるカウント表データ40を示す。カウント表データ40は、識別子41欄と、リフェラル情報内容42欄と、照会処理蓄積回数43欄とを有して構成される。
【0020】
識別子41欄は、照会処理の結果得られる照会結果に含まれるエントリを一意に識別する識別子であるDN(Distinguished Name)を記憶する。リフェラル情報内容42欄は、他のディレクトリサーバのリソースにアクセスするためのリフェラル情報であるLDAPURL(LDAP Uniform Resource Locator)を記憶する。また、照会処理蓄積回数43欄は、識別子41欄に記憶された識別子により識別されるエントリが自ディレクトリサーバに存在しなかったために、リフェラル情報を返信した回数を記憶する。図4の例では、「sn=yamada,dc=example,dc=com」により識別される情報を2回照会され、その情報が存在するサーバへアクセスを行うための情報であるリフェラル情報は「ldap://serverb.example.com:389」である、ということを示している。
【0021】
なお、このリフェラル情報は、リフェラル情報記憶処理部201に予め設定されたLDAPURLのうち、当該照会を受けたエントリに対応するものである。
【0022】
図5は、処理要求元クライアント100と、ディレクトリサーバA200のハードウェアの概略構成を示す図である。
【0023】
ディレクトリサーバB300と、ディレクトリサーバC400については、ディレクトリサーバA200とほぼ同様の構成であるために、図5ではディレクトリサーバA,B,Cをまとめて説明する。
【0024】
処理要求元クライアント100は、処理装置111と、RAM112と、ROM113と、ネットワークIF114と、を有する。
【0025】
また、ディレクトリサーバA200は、処理装置211と、RAM212と、ディスク装置213と、ROM214と、ネットワークIF215と、を有する。
【0026】
処理装置111は、処理要求元クライアント100が必要とする演算を行う装置であり、プロセッサなどで実現される。
【0027】
RAM112に展開される命令コードは、ROM113に記憶されたものでもよく、また、ネットワークIF114を介して、ネットワーク500上の装置あるいはインターネット等のネットワーク上の装置から取得されたものでもよい。
【0028】
RAM112は、処理装置111が実行する命令コードの展開を行う領域を有する。また、RAM112は、後述するROM113に記憶された処理要求元クライアント100を動作させるソフトウェアや、ソフトウェアが必要とするデータの初期値、その他書き換えの必要がないデータなどを読み込み、命令コードの展開を行う領域に展開する。
【0029】
ROM113は、通常のROM装置であり、処理要求元クライアント100を動作させるソフトウェアや、ソフトウェアが必要とするデータの初期値、その他書き換えの必要がないデータなどを予め記録している。
【0030】
ネットワークIF114は、ディレクトリサーバA200等ネットワーク500に接続可能な機器との情報の送・受信を行う。
【0031】
ネットワークIF114を介して、処理要求元クライアント100はネットワーク500へ接続する。
【0032】
処理装置211は、ディレクトリサーバA200が必要とする演算を行う装置であり、プロセッサなどで実現される。
【0033】
RAM212あるいはディスク装置213は、処理装置201が実行する命令コードの展開を行うだけでなく、リフェラル情報記憶領域207と、ディレクトリ記憶領域208と、カウント表記憶領域209と、を記憶する領域を有する。また、RAM212あるいはディスク装置213は、後述するROM214に記憶されたディレクトリサーバA200を動作させるソフトウェアや、ソフトウェアが必要とするデータの初期値、その他書き換えの必要がないデータなどを読み込み、命令コードの展開を行う領域に展開する。
【0034】
ROM214は、通常のROM装置であり、ディレクトリサーバA200を動作させるソフトウェアや、ソフトウェアが必要とするデータの初期値、その他書き換えの必要がないデータなどを予め記録している。
【0035】
ネットワークIF215は、ディレクトリサーバB300や処理要求元クライアント100等、ネットワーク500に接続可能な機器との情報の送・受信を行う。
【0036】
ネットワークIF215を介して、ディレクトリサーバA200はネットワーク500へ接続する。
【0037】
上述の図2のディレクトリ照会要求部101は、その処理を処理装置111がRAM112に展開された命令コードを実行することと、通信部102を介してネットワークIF114を用いて通信を行うことと、により実現する。
【0038】
同様に、図3のリフェラル情報記憶処理部201と、ディレクトリ照会処理部202と、リフェラル情報返信部203と、リフェラル情報蓄積処理部204と、は、その処理を処理装置211がRAM212,ディスク装置213またはROM214に展開された命令コードを実行することと、通信部205を介してネットワークIF215を用いて通信を行うことと、RAM212あるいはディスク装置213により実現される記憶部206と、により実現される。
【0039】
図4に示したカウント表40は、RAM212またはディスク装置213により実現される。
【0040】
これらのハードウェア装置と各機能部の動作により、本願のディレクトリサービスシステム1を実現できる。
【0041】
次に、本実施形態のディレクトリサービスシステム1による検索の動作について、図6を用いて説明する。
【0042】
まず、ディレクトリサーバA200が管理するディレクトリに所望のデータ(エントリ)が存在する場合の処理を説明する。図6に記載するように、ディレクトリサーバA200内のディレクトリ照会処理部202は、処理要求元クライアント100からの情報照会要求と、照会条件である属性情報を指定したフィルター式と、取得する属性情報と、を受け付ける(ステップ701)。ディレクトリ照会処理部202は、受け付けた情報照会要求とフィルター式と取得する属性情報を基に、ディレクトリサーバA200内のディレクトリの照会処理を行う(ステップ702)。ディレクトリ照会処理部202は、フィルター式を満たすエントリがディレクトリサーバA200内に見つかった場合(ステップ702で「存在する」)には、フィルター式を満たすエントリの属性情報を処理要求元クライアント100に返信する(ステップ703)。
【0043】
そして、処理を終了する(ステップ704)。
【0044】
処理要求元クライアント100は、返信されたエントリの属性情報を取得し、以降の処理を実施する。
【0045】
次に、ディレクトリサーバA200が管理するディレクトリに所望のエントリが存在しない場合の処理を説明する。
【0046】
図6に示すように、ディレクトリサーバA200内のディレクトリ照会処理部202は、処理要求元クライアント100からのLDAPプロトコルに基づく情報照会要求と、フィルター式と、取得する属性情報を受け付ける(ステップ701)。
【0047】
ディレクトリ照会処理部202は、受け付けた情報照会要求とフィルター式と取得する属性情報とを基に、ディレクトリサーバA200内のディレクトリの照会処理を行う(ステップ702)。
【0048】
しかし、ディレクトリ照会処理部202は、フィルター式を満たす情報をディレクトリサーバA200内に見つけることができず(ステップ702で「存在しない」)、リフェラル情報返信部203に対して制御を受け渡す。リフェラル情報返信部203は、リフェラル情報記憶処理部201に対してリフェラル情報であるLDAPURLを要求する。リフェラル情報記憶処理部201は、他ディレクトリサーバ、例えばディレクトリサーバB300へのアクセス情報となるLDAPURLをリフェラル情報記憶領域207から読み込み、リフェラル返信部203に対して提供する。リフェラル情報返信部203は、提供されたLDAPURLを処理要求元クライアント100へ返信する(ステップ705)。
【0049】
そして、リフェラル情報返信部203は、ディレクトリ照会処理部202に対して処理を実施するように指示して、リフェラル情報蓄積処理部204に対して、制御を受け渡す。ディレクトリ照会処理部202は、以下の処理を実施する。なお、以下の処理は、LDAPプロトコルで定められた照会の連鎖処理を利用したものであってもよい。
【0050】
ディレクトリ照会処理部202は、LDAPURLで示されるリフェラル先のサーバに対して、当該フィルター式をもとにDNを照会し、その結果、フィルター式を満たすエントリのDNを得る。当該リフェラル先のサーバが管理するディレクトリに所望のエントリが存在しない場合、第二のリフェラル情報が返されるので、第二のリフェラル先に再度当該フィルター式と取得する属性情報とを用いて照会し、その結果、フィルター式を満たすエントリのDNを得る。第二のリフェラル先に照会を行った結果、第三のリフェラル情報が返却されることがある。第二のリフェラル先のサーバが管理するディレクトリに所望のエントリが存在しない場合である。その場合には、リフェラル情報が返却されなくなるまで、あるいはnullデータが返却されるまで、第四のリフェラル先、第N(Nは2以上の自然数)のリフェラル先、に対して再照会を繰り返す。リフェラル情報蓄積処理部204は、ディレクトリ照会処理部202が実施する処理の結果に含まれるエントリがもつDNと、そのエントリを得るために使用したリフェラル情報を取得する(ステップ706)。
【0051】
そして、リフェラル情報蓄積処理部204は、ステップ706で取得したDNと一致するカウント表記憶領域209の識別子41を検索して、その照会処理蓄積回数43欄に記憶された数を1だけインクリメントして記憶させ、ディレクトリデータの種類ごとに予め定めたディレクトリサーバに接続するためのLDAPURLをリフェラル情報内容42に記憶させる(ステップ707)。
【0052】
リフェラル情報蓄積処理部204は、インクリメントされた照会処理蓄積回数43欄の値と所定の値とを比較し、所定の値以上でなければ(ステップ708で「規定値未満」)そのまま処理を終了する(ステップ709)。
【0053】
インクリメントされた照会処理蓄積回数43欄の値と所定の値とを比較した結果、所定の値以上であれば(ステップ708で「規定値以上」)、リフェラル情報蓄積処理部204は、リフェラル情報内容42に記憶されたLDAPURLに従って他のディレクトリサーバB300へ情報照会要求を行う(ステップ710)。その際、フィルター式には、識別子41で特定される識別子を指定して、また、取得する属性情報をエントリ情報全体として、情報照会要求を行う。
【0054】
ディレクトリサーバB300は、ステップ710で受け付けた情報照会要求を基に自ディレクトリのエントリを検索し、検索結果を返信する。
【0055】
検索の結果、該当するエントリが無い場合には、ディレクトリサーバB300は、他のディレクトリサーバであるディレクトリサーバC400の接続先を示すLDAPURLを返信する。
【0056】
返信されたLDAPURLを受信したディレクトリサーバA200のリフェラル情報蓄積処理部204は、受信したLDAPURLに記載された接続先であるディレクトリサーバC400へ情報照会要求を行う。その際、フィルター式には、識別子41で特定される識別子を指定して、また、取得する属性情報をエントリ情報全体として、情報照会要求を行う。
【0057】
このようにリフェラル情報をたどり、エントリの情報を受け取るまで、またはリフェラル先の情報を得られなくなるまで、リフェラル先のディレクトリサーバに対して問い合わせを繰り返す。
【0058】
そして、リフェラル情報蓄積処理部204は、上記他のサーバから返信されたエントリがあればそれを自ディレクトリに追加して記憶させる(ステップ711)。
【0059】
そして、リフェラル情報蓄積処理部204は、カウント表記憶領域209から該当するDNを持ったレコードを削除して(ステップ712)処理を終了する(ステップ713)。
【0060】
本実施形態における上記処理の結果、ステップ711により追加されたエントリについて処理要求元クライアント100から照会があった場合には、自ディレクトリに照会情報を保持することとなるため、ディレクトリ照会処理部202は、LDAPURLであるリフェラル情報を返信することなく、照会されたエントリを提供することができるようになる。このことから、リフェラル情報による照会のネットワークデータ流量を抑制できるようになり、また、頻繁に利用されるデータを効率よく複製することが可能となる。
【0061】
上記の実施形態は、本発明の好適な実施の一例であり、本発明はこれに限定されることは無い。例えば、上記実施形態では、処理要求元クライアントとしてパソコンあるいはPDAを例に説明したが、これはその他ドメイン管理サーバ等各種サーバなど任意の機器でよく、パソコンあるいはPDAに限定するものではない。
【0062】
また例えば、図4に示したカウント表記憶領域209は、ディレクトリサーバごとに備えるものであるが、複数のディレクトリサーバで共有する記憶装置に記憶してもよい。その場合、図6のステップ708で規定値以上であると判定された場合に、ステップ710において、共有するディレクトリサーバ装置全てにおいて、リフェラル情報蓄積処理部204により情報照会要求が行われる。これにより、システム全体を通して照会されることの多いエントリを各ディレクトリサーバ装置に分散配置することができるようになり、検索の結果該当データが得られる可能性が高くなるため、リフェラル情報に基づくネットワークトラフィックが増大するのを未然に防ぐことができる。
【0063】
また、さらなる変形例として、カウント表記憶領域209のカウント表データ40のリフェラル情報内容42欄に記憶するLDAPURLを、図6に示したステップ706において取得した、エントリを得るために使用した第Nのリフェラル情報であるLDAPURLとしても良い。具体的には、図6に示すフローチャートのステップ707において、リフェラル情報蓄積処理部204は、ステップ706で取得したDNと一致するカウント表記憶領域209の識別子41を検索して、その照会処理蓄積回数43欄に記憶された数を1だけインクリメントして記憶させ、ステップ706で取得したエントリを得るために使用した第Nのリフェラル情報であるLDAPURLをリフェラル情報内容42に記憶させる(ステップ707)こととしてもよい。これにより、データが存在するディレクトリサーバに直接アクセスすることが可能となるため、さらなるトラフィックの削減を図ることができる。
【0064】
なお、上記のディレクトリサービスシステム1は、システムとして取引対象とするだけでなく、各機器単位、またはその機器の動作を実現するプログラム部品単位、またはプログラム部品を記録した記憶媒体単位、で取引対象とすることも可能である。
【0065】
また、上記の実施形態の変形例として、以下の実施形態がある。
【0066】
上記の実施形態の変形例は、基本的な構成は上記実施形態と同様であるが、図7に示した処理フローに相違があるため、図7を用いて、処理フローを以下に説明する。
【0067】
図7に示すように、ディレクトリサーバA200が管理するディレクトリに所望のデータ(エントリ)が存在する場合の処理は、図6のステップ701からステップ704の処理と同様の処理フローとなる。ディレクトリサーバA200が管理するディレクトリに所望のデータ(エントリ)が存在しない場合には、以下の処理フローを実施する。
【0068】
ディレクトリサーバA200内のディレクトリ照会処理部202は、処理要求元クライアント100からのLDAPプロトコルに基づく情報照会要求と、フィルター式と、取得する属性情報を受け付ける(ステップ801)。
【0069】
ディレクトリ照会処理部202は、受け付けた情報照会要求とフィルター式と取得する属性情報とを基に、ディレクトリサーバA200内のディレクトリの照会処理を行う(ステップ802)。
【0070】
しかし、ディレクトリ照会処理部202は、フィルター式を満たす情報をディレクトリサーバA200内に見つけることができず(ステップ802で「存在しない」)、ディレクトリ照会処理部202は処理を開始するとともに、リフェラル情報蓄積処理部204に対して、制御を受け渡す。ディレクトリ照会処理部202は、リフェラル情報記憶処理部201に対してリフェラル情報であるLDAPURLを要求する。リフェラル情報記憶処理部201は、他ディレクトリサーバ、例えばディレクトリサーバB300へのアクセス情報となるLDAPURLをディレクトリ照会処理部202に対して提供する(ステップ805)。
【0071】
ディレクトリ照会処理部202は、LDAPURLで示されるリフェラル先のサーバに対して、当該フィルター式をもとにDNを照会し、その結果、フィルター式を満たすエントリのDNを得る。当該リフェラル先のサーバが管理するディレクトリに所望のエントリが存在しない場合、第二のリフェラル情報が返されるので、第二のリフェラル先に再度当該フィルター式と取得する属性情報とをもとに照会し、その結果、フィルター式を満たすエントリのDNを得る。第二のリフェラル先に照会を行った結果、第三のリフェラル情報が返却されることがある。その場合には、リフェラル情報が返却されなくなるまで、あるいはnullデータが返却されるまで、第四のリフェラル先、第五のリフェラル先、と、再照会を繰り返す。リフェラル情報蓄積処理部204は、ディレクトリ照会処理部202が実施する上記処理の結果に含まれるエントリがもつDNと、そのエントリを得るために使用したリフェラル情報を取得する(ステップ806)。
【0072】
そして、リフェラル情報蓄積処理部204は、ステップ806で取得したDNと一致するカウント表40の識別子41を検索して、その照会処理蓄積回数43欄に記憶された数を1だけインクリメントして記憶させ、ステップ806で取得したエントリを得るために使用したリフェラル情報であるLDAPURLをリフェラル情報内容42に記憶させる(ステップ807)。
【0073】
リフェラル情報蓄積処理部204は、インクリメントされた照会処理蓄積回数43欄の値と所定の値とを比較し、所定の値以上でなければ(ステップ808で「規定値未満」)、ディレクトリ照会処理部202に対して、ステップ806で取得したエントリの属性情報を処理要求元クライアント100に返信するよう指示し、処理を終了する(ステップ809)。
【0074】
インクリメントされた照会処理蓄積回数43欄の値と所定の値とを比較した結果、所定の値以上であれば(ステップ808で「規定値以上」)、リフェラル情報蓄積処理部204は、リフェラル情報内容42に記憶されたLDAPURLに従って他のディレクトリサーバB300へ情報照会要求を行う(ステップ810)。その際、フィルター式には、識別子41で特定される識別子を指定して、また、取得する属性情報をエントリ情報全体として、情報照会要求を行う。
【0075】
ディレクトリサーバB300は、ステップ810で受け付けた情報照会要求を基に自ディレクトリのエントリを検索し、検索結果を返信する。
【0076】
検索の結果、該当するエントリが無い場合には、ディレクトリサーバB300は、他のディレクトリサーバであるディレクトリサーバC400の接続先を示すLDAPURLを返信する。
【0077】
返信されたLDAPURLを受信したディレクトリサーバA200のリフェラル情報蓄積処理部204は、受信したLDAPURLに記載された接続先であるディレクトリサーバC400へ情報照会要求を行う。その際、フィルター式には、識別子41で特定される識別子を指定して、また、取得する属性情報をエントリ情報全体として、情報照会要求を行う。
【0078】
このようにリフェラル情報をたどり、エントリの情報を受け取るまで、またはリフェラル先の情報を得られなくなるまで、リフェラル先のディレクトリサーバに対して問い合わせを繰り返す。
【0079】
リフェラル情報蓄積処理部204は、上記他のサーバから返信されたエントリを自ディレクトリに追加して記憶させる(ステップ811)。
【0080】
そして、リフェラル情報蓄積処理部204は、カウント表40から該当するDNを持ったレコードを削除する(ステップ812)。
【0081】
続いて、リフェラル情報蓄積処理部204は、ディレクトリ照会処理部202に対して、ステップ806で取得したエントリの属性情報を処理要求元クライアント100に返信するよう指示し、処理を終了する(ステップ813)。
【0082】
この変形例により、処理要求元クライアント100は、ディレクトリサーバA200のディレクトリに所望のエントリが存在しなかった場合でも、処理要求元クライアント100はリフェラル情報を受信することなく、所望のエントリを受信できる。このことは、処理要求元クライアント100からリフェラル先のディレクトリサーバに対する再照会を行うネットワークトラフィックを削減する効果がある。
【0083】
以上が、本発明の実施形態である。
【図面の簡単な説明】
【0084】
【図1】本発明におけるディレクトリサービスシステムの全体構成図である。
【図2】本発明における処理要求元クライアントの機能構成図である。
【図3】本発明におけるディレクトリサーバの機能構成図である。
【図4】本発明におけるカウント表記憶部を示す図である。
【図5】本発明における各機器のハードウェア構成図である。
【図6】本発明のリフェラル情報蓄積処理を示すフロー図である。
【図7】本発明の変形例であるリフェラル情報蓄積処理を示すフロー図である。
【符号の説明】
【0085】
1:ディレクトリサービスシステム、40:カウント表データ100:処理要求元クライアント、101:ディレクトリ照会要求部、102:通信部、200:ディレクトリサーバA、201:リフェラル情報記憶処理部、202:ディレクトリ照会処理部、203:リフェラル情報返信部、204:リフェラル情報蓄積処理部、205:通信部、206:記憶部、207:リフェラル情報記憶領域、208:ディレクトリ記憶領域、209:カウント表記憶領域、300:ディレクトリサーバB、400:ディレクトリサーバC、500:ネットワーク

【特許請求の範囲】
【請求項1】
情報照会要求データを受け付け、要求に合致するデータをディレクトリから検索し、要求されたデータが発見できなかった場合には、他のディレクトリサーバ装置の接続先を特定する情報を含む接続情報データを返信するディレクトリサーバ装置であって、
記憶部と、処理部と、を備え、
前記処理部は、
前記情報照会要求データにより要求されたデータごとに、前記接続情報データを返信した返信回数を前記記憶部に記憶させ、記憶された返信回数が所定の回数を超過した場合に、他のディレクトリサーバ装置のうちの一の接続先に接続して、前記情報照会要求データにより要求されたデータを取得し、前記情報照会要求データにより要求されたデータを前記記憶部に記憶させる、
ことを特徴とするディレクトリサーバ装置。
【請求項2】
請求項1に記載のディレクトリサーバ装置であって、
前記処理部は、
前記返信回数が所定の回数を超過した場合に、前記接続情報データにより前記一の接続先を特定し、前記一の接続先へ接続して、前記情報照会要求データにより要求されたデータを要求し、前記情報照会要求データにより要求されたデータを前記一の接続先から取得できた場合には前記情報照会要求データにより要求されたデータを前記記憶部に記憶させ、
前記情報照会要求データにより要求されたデータを前記一の接続先から取得できなかった場合には、前記要求されたデータを取得できるまで、接続した先から返信される接続情報データにより特定される接続先に接続して前記情報照会要求データにより要求されたデータを要求することを繰り返して、前記情報照会要求データにより要求されたデータを取得して前記記憶部に記憶させる、
ことを特徴とするディレクトリサーバ装置。
【請求項3】
請求項2に記載のディレクトリサーバ装置であって、
前記処理部は、
前記接続情報データを返信した返信回数を前記記憶部に記憶させる際に、前記接続情報データにより前記一の接続先を特定し、前記一の接続先へ接続して、前記情報照会要求データにより要求されたデータを識別する識別子を取得し、
前記情報照会要求データにより要求されたデータを識別する識別子を前記一の接続先から取得できなかった場合には、前記要求されたデータを識別する識別子を取得できるまで、接続した先から返信される接続情報データにより特定される接続先により特定される接続先に接続して前記情報照会要求データを識別する識別子を要求することを繰り返して、前記情報照会要求データにより要求されたデータを識別する識別子を取得して、
取得した前記識別子に対応するカウンタ情報記憶領域が前記記憶部にない場合には、前記記憶部に、取得した前記識別子に対応するカウンタ情報記憶領域を新たに作成し、
取得した前記識別子に対応するカウンタ情報記憶領域のカウンタ情報をカウントアップして更新することで返信回数を記憶させる、
ことを特徴とするディレクトリサーバ装置。
【請求項4】
請求項3に記載のディレクトリサーバ装置であって、
前記記憶部は、識別子と、前記識別子に対応するカウンタ情報記憶領域と、を記憶する第一の領域と、
ディレクトリ情報を記憶する第二の領域と、を備え、
前記処理部は、
前記返信回数を記憶させる際に、
取得した前記識別子に対応するカウンタ情報記憶領域が前記記憶部の前記第一の領域にない場合には、前記記憶部の前記第一の領域に、取得した前記識別子に対応するカウンタ情報記憶領域を新たに作成し、
取得した前記識別子に対応する前記記憶部の前記第一の領域のカウンタ情報をカウントアップして更新することで返信回数を記憶させ、
さらに、前記処理部は、
前記情報照会要求データにより要求されたデータを取得して前記記憶部に記憶させる際に、
前記記憶部の前記第二の領域に前記情報照会要求データにより要求されたデータを記憶させる、
ことを特徴とするディレクトリサーバ装置。
【請求項5】
請求項1に記載のディレクトリサーバ装置であって、
前記処理部は、
前記接続情報データを返信した返信回数を前記記憶部に記憶させる際に、前記接続情報データにより前記一の接続先を特定し、前記一の接続先へ接続し、前記情報照会要求データにより要求されたデータを識別する識別子と、接続先を特定する接続情報データと、を取得し、
前記情報照会要求データにより要求されたデータを識別する識別子と、接続先を特定する接続情報データと、を前記一の接続先から取得できなかった場合には、取得できるまで、接続した先から返信される接続情報データにより特定される接続先に接続して前記情報照会要求データを識別する識別子と、接続先を特定する接続情報データと、を要求することを繰り返して、前記情報照会要求データにより要求されたデータを識別する識別子と、接続先を特定する接続情報データと、を取得し、
取得した前記識別子に対応するカウンタ情報記憶領域が前記記憶部にない場合には、前記記憶部に、取得した前記識別子に対応するカウンタ情報記憶領域を新たに作成し、
取得した前記識別子に対応するカウンタ情報記憶領域のカウンタ情報をカウントアップして更新することで返信回数を記憶させ、
前記接続先を特定する接続情報データを前記カウンタ情報記憶領域に記憶させ、
前記記憶された返信回数が所定の回数を超過した場合に、前記カウンタ情報記憶領域に記憶された前記接続先を特定する接続情報データにより接続先を特定する、
ことを特徴とするディレクトリサーバ装置。
【請求項6】
コンピュータを、情報照会要求データを受け付け、要求に合致するデータをディレクトリから検索し、要求されたデータが発見できなかった場合には、他のディレクトリサーバ装置の接続先を特定する情報を含む接続情報データを返信する手段として機能させるディレクトリサーバプログラムであって、
前記コンピュータは、処理手段と、記憶手段と、を備え、
前記処理手段に、
前記情報照会要求データにより要求されたデータごとに、前記接続情報データを返信した返信回数を前記コンピュータの記憶手段に記憶させる処理と、
記憶された前記返信回数が所定の回数を超過した場合に、前記他のディレクトリサーバ装置のうちの一の接続先に接続して前記情報照会要求データにより要求されたデータを要求し、前記情報照会要求データにより要求されたデータを前記一の接続先から取得できた場合には前記情報照会要求データにより要求されたデータを記憶手段に記憶させる処理と、
前記情報照会要求データにより要求されたデータを前記一の接続先から取得できなかった場合には、前記要求されたデータを取得できるまで、接続した先から返信される接続情報データにより特定される接続先に接続して前記情報照会要求データにより要求されたデータを要求することを繰り返して、前記情報照会要求データにより要求されたデータを取得して前記記憶手段に記憶させる処理と、
を行わせることを特徴とするディレクトリサーバプログラム。
【請求項7】
情報照会要求データを受け付け、要求に合致するデータをディレクトリから検索し、要求されたデータが発見できなかった場合には、他のディレクトリサーバ装置の接続先を特定する情報を含む接続情報データを返信するディレクトリサーバ装置を複数備えるディレクトリサービスシステムであって、
前記ディレクトリサービスシステムが備えるディレクトリサーバ装置は、
記憶部と、処理部と、を備え、
前記処理部は、
前記情報照会要求データにより要求されたデータごとに、前記接続情報データを返信した返信回数を前記記憶部に記憶させ、記憶された返信回数が所定の回数を超過した場合に、他のディレクトリサーバ装置のうちの一の接続先に接続して前記情報照会要求データにより要求されたデータを要求し、前記情報照会要求データにより要求されたデータを前記一の接続先から取得できた場合には前記情報照会要求データにより要求されたデータを前記記憶部に記憶させ、
前記情報照会要求データにより要求されたデータを前記一の接続先から取得できなかった場合には、前記要求されたデータを取得できるまで、接続した先から返信される接続情報データにより特定される接続先に接続して前記情報照会要求データにより要求されたデータを要求することを繰り返して、前記情報照会要求データにより要求されたデータを取得して前記記憶部に記憶させる、
ことを特徴とするディレクトリサービスシステム。
【請求項8】
情報照会要求データを受け付け、要求に合致するデータをディレクトリから検索し、要求されたデータが発見できなかった場合には、他のディレクトリサーバ装置の接続先を特定する情報を含む接続情報データを返信するディレクトリサーバ装置を複数備えるディレクトリサービスシステムにおけるディレクトリサービス管理方法であって、
前記ディレクトリサービス管理方法で用いるディレクトリサーバ装置は、
記憶部と、処理部と、を備え、
前記処理部は、
前記情報照会要求データにより要求されたデータごとに、前記接続情報データを返信した返信回数を前記記憶部に記憶させるステップと、
記憶された返信回数が所定の回数を超過した場合に、他のディレクトリサーバ装置のうちの一の接続先に接続して前記情報照会要求データにより要求されたデータを要求し、前記情報照会要求データにより要求されたデータを前記一の接続先から取得できた場合には前記情報照会要求データにより要求されたデータを前記記憶部に記憶させるステップと、
前記情報照会要求データにより要求されたデータを前記一の接続先から取得できなかった場合には、前記要求されたデータを取得できるまで、接続した先から返信される接続情報データにより特定される接続先に接続して前記情報照会要求データにより要求されたデータを要求することを繰り返して、前記情報照会要求データにより要求されたデータを取得して前記記憶部に記憶させるステップと、を実行する、
ことを特徴とするディレクトリサービス管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−116496(P2009−116496A)
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願番号】特願2007−287104(P2007−287104)
【出願日】平成19年11月5日(2007.11.5)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】