(57)【要約】【課題】ＬＤＡＰプロトコルにおけるリフェラル機能では、ディレクトリサーバが処理要求元クライアントから照会要求を受け、自ディレクトリ上に照会された情報が存在しない場合には、他のディレクトリサーバの参照先を処理要求元クライアントに返信し、処理要求元クライアントは当該参照先に再照会を行う。これにより、ネットワークトラフィックが増加する。【解決手段】照会対象のデータごとに、リフェラル情報が返信された返信回数を蓄積する。リフェラル情報の返信回数が一定回数を超えたデータについては、そのデータをリフェラル参照先ディレクトリサーバからコピーして取り込み、以降に同一の照会要求が発生した場合にリフェラル情報の返信を抑止する。【選択図】  図３
2009116496.tif 000002
【特許請求の範囲】
【請求項１】
情報照会要求データを受け付け、要求に合致するデータをディレクトリから検索し、要求されたデータが発見できなかった場合には、他のディレクトリサーバ装置の接続先を特定する情報を含む接続情報データを返信するディレクトリサーバ装置であって、
記憶部と、処理部と、を備え、
前記処理部は、
前記情報照会要求データにより要求されたデータごとに、前記接続情報データを返信した返信回数を前記記憶部に記憶させ、記憶された返信回数が所定の回数を超過した場合に、他のディレクトリサーバ装置のうちの一の接続先に接続して、前記情報照会要求データにより要求されたデータを取得し、前記情報照会要求データにより要求されたデータを前記記憶部に記憶させる、
ことを特徴とするディレクトリサーバ装置。
【請求項２】
請求項１に記載のディレクトリサーバ装置であって、
前記処理部は、
前記返信回数が所定の回数を超過した場合に、前記接続情報データにより前記一の接続先を特定し、前記一の接続先へ接続して、前記情報照会要求データにより要求されたデータを要求し、前記情報照会要求データにより要求されたデータを前記一の接続先から取得できた場合には前記情報照会要求データにより要求されたデータを前記記憶部に記憶させ、
前記情報照会要求データにより要求されたデータを前記一の接続先から取得できなかった場合には、前記要求されたデータを取得できるまで、接続した先から返信される接続情報データにより特定される接続先に接続して前記情報照会要求データにより要求されたデータを要求することを繰り返して、前記情報照会要求データにより要求されたデータを取得して前記記憶部に記憶させる、
ことを特徴とするディレクトリサーバ装置。
【請求項３】
請求項２に記載のディレクトリサーバ装置であって、
前記処理部は、
前記接続情報データを返信した返信回数を前記記憶部に記憶させる際に、前記接続情報データにより前記一の接続先を特定し、前記一の接続先へ接続して、前記情報照会要求データにより要求されたデータを識別する識別子を取得し、
前記情報照会要求データにより要求されたデータを識別する識別子を前記一の接続先から取得できなかった場合には、前記要求されたデータを識別する識別子を取得できるまで、接続した先から返信される接続情報データにより特定される接続先により特定される接続先に接続して前記情報照会要求データを識別する識別子を要求することを繰り返して、前記情報照会要求データにより要求されたデータを識別する識別子を取得して、
取得した前記識別子に対応するカウンタ情報記憶領域が前記記憶部にない場合には、前記記憶部に、取得した前記識別子に対応するカウンタ情報記憶領域を新たに作成し、
取得した前記識別子に対応するカウンタ情報記憶領域のカウンタ情報をカウントアップして更新することで返信回数を記憶させる、
ことを特徴とするディレクトリサーバ装置。
【請求項４】
請求項３に記載のディレクトリサーバ装置であって、
前記記憶部は、識別子と、前記識別子に対応するカウンタ情報記憶領域と、を記憶する第一の領域と、
ディレクトリ情報を記憶する第二の領域と、を備え、
前記処理部は、
前記返信回数を記憶させる際に、
取得した前記識別子に対応するカウンタ情報記憶領域が前記記憶部の前記第一の領域にない場合には、前記記憶部の前記第一の領域に、取得した前記識別子に対応するカウンタ情報記憶領域を新たに作成し、
取得した前記識別子に対応する前記記憶部の前記第一の領域のカウンタ情報をカウントアップして更新することで返信回数を記憶させ、
さらに、前記処理部は、
前記情報照会要求データにより要求されたデータを取得して前記記憶部に記憶させる際に、
前記記憶部の前記第二の領域に前記情報照会要求データにより要求されたデータを記憶させる、
ことを特徴とするディレクトリサーバ装置。
【請求項５】
請求項１に記載のディレクトリサーバ装置であって、
前記処理部は、
前記接続情報データを返信した返信回数を前記記憶部に記憶させる際に、前記接続情報データにより前記一の接続先を特定し、前記一の接続先へ接続し、前記情報照会要求データにより要求されたデータを識別する識別子と、接続先を特定する接続情報データと、を取得し、
前記情報照会要求データにより要求されたデータを識別する識別子と、接続先を特定する接続情報データと、を前記一の接続先から取得できなかった場合には、取得できるまで、接続した先から返信される接続情報データにより特定される接続先に接続して前記情報照会要求データを識別する識別子と、接続先を特定する接続情報データと、を要求することを繰り返して、前記情報照会要求データにより要求されたデータを識別する識別子と、接続先を特定する接続情報データと、を取得し、
取得した前記識別子に対応するカウンタ情報記憶領域が前記記憶部にない場合には、前記記憶部に、取得した前記識別子に対応するカウンタ情報記憶領域を新たに作成し、
取得した前記識別子に対応するカウンタ情報記憶領域のカウンタ情報をカウントアップして更新することで返信回数を記憶させ、
前記接続先を特定する接続情報データを前記カウンタ情報記憶領域に記憶させ、
前記記憶された返信回数が所定の回数を超過した場合に、前記カウンタ情報記憶領域に記憶された前記接続先を特定する接続情報データにより接続先を特定する、
ことを特徴とするディレクトリサーバ装置。
【請求項６】
コンピュータを、情報照会要求データを受け付け、要求に合致するデータをディレクトリから検索し、要求されたデータが発見できなかった場合には、他のディレクトリサーバ装置の接続先を特定する情報を含む接続情報データを返信する手段として機能させるディレクトリサーバプログラムであって、
前記コンピュータは、処理手段と、記憶手段と、を備え、
前記処理手段に、
前記情報照会要求データにより要求されたデータごとに、前記接続情報データを返信した返信回数を前記コンピュータの記憶手段に記憶させる処理と、
記憶された前記返信回数が所定の回数を超過した場合に、前記他のディレクトリサーバ装置のうちの一の接続先に接続して前記情報照会要求データにより要求されたデータを要求し、前記情報照会要求データにより要求されたデータを前記一の接続先から取得できた場合には前記情報照会要求データにより要求されたデータを記憶手段に記憶させる処理と、
前記情報照会要求データにより要求されたデータを前記一の接続先から取得できなかった場合には、前記要求されたデータを取得できるまで、接続した先から返信される接続情報データにより特定される接続先に接続して前記情報照会要求データにより要求されたデータを要求することを繰り返して、前記情報照会要求データにより要求されたデータを取得して前記記憶手段に記憶させる処理と、
を行わせることを特徴とするディレクトリサーバプログラム。
【請求項７】
情報照会要求データを受け付け、要求に合致するデータをディレクトリから検索し、要求されたデータが発見できなかった場合には、他のディレクトリサーバ装置の接続先を特定する情報を含む接続情報データを返信するディレクトリサーバ装置を複数備えるディレクトリサービスシステムであって、
前記ディレクトリサービスシステムが備えるディレクトリサーバ装置は、
記憶部と、処理部と、を備え、
前記処理部は、
前記情報照会要求データにより要求されたデータごとに、前記接続情報データを返信した返信回数を前記記憶部に記憶させ、記憶された返信回数が所定の回数を超過した場合に、他のディレクトリサーバ装置のうちの一の接続先に接続して前記情報照会要求データにより要求されたデータを要求し、前記情報照会要求データにより要求されたデータを前記一の接続先から取得できた場合には前記情報照会要求データにより要求されたデータを前記記憶部に記憶させ、
前記情報照会要求データにより要求されたデータを前記一の接続先から取得できなかった場合には、前記要求されたデータを取得できるまで、接続した先から返信される接続情報データにより特定される接続先に接続して前記情報照会要求データにより要求されたデータを要求することを繰り返して、前記情報照会要求データにより要求されたデータを取得して前記記憶部に記憶させる、
ことを特徴とするディレクトリサービスシステム。
【請求項８】
情報照会要求データを受け付け、要求に合致するデータをディレクトリから検索し、要求されたデータが発見できなかった場合には、他のディレクトリサーバ装置の接続先を特定する情報を含む接続情報データを返信するディレクトリサーバ装置を複数備えるディレクトリサービスシステムにおけるディレクトリサービス管理方法であって、
前記ディレクトリサービス管理方法で用いるディレクトリサーバ装置は、
記憶部と、処理部と、を備え、
前記処理部は、
前記情報照会要求データにより要求されたデータごとに、前記接続情報データを返信した返信回数を前記記憶部に記憶させるステップと、
記憶された返信回数が所定の回数を超過した場合に、他のディレクトリサーバ装置のうちの一の接続先に接続して前記情報照会要求データにより要求されたデータを要求し、前記情報照会要求データにより要求されたデータを前記一の接続先から取得できた場合には前記情報照会要求データにより要求されたデータを前記記憶部に記憶させるステップと、
前記情報照会要求データにより要求されたデータを前記一の接続先から取得できなかった場合には、前記要求されたデータを取得できるまで、接続した先から返信される接続情報データにより特定される接続先に接続して前記情報照会要求データにより要求されたデータを要求することを繰り返して、前記情報照会要求データにより要求されたデータを取得して前記記憶部に記憶させるステップと、を実行する、
ことを特徴とするディレクトリサービス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディレクトリサービスの技術に関する。
【背景技術】
【０００２】
特許文献１に示すように、従来のＬＤＡＰ（Lightweight Directory Access Protocol）プロトコルに基づくディレクトリサービスシステムでは、クライアントから要求されたデータが、あるディレクトリサーバ上で見つかった場合には、当該データの指定された属性情報についてクライアントへ返却する。クライアントから要求されたデータが、あるディレクトリサーバ上で見つからなかった場合には、ＬＤＡＰプロトコルに基づくリフェラル機能を用いてクライアントに他のディレクトリサーバへの接続情報データであるリフェラル情報を返却し、クライアントに他のディレクトリサーバへの再照会を行わせる。リフェラル情報を受け取ったクライアントは、リフェラル情報に従って他のディレクトリサーバへ再照会を行う。また、リフェラル機能を用いずに、または併用して、連鎖（チェーン）機能を用いて、ディレクトリサーバが他のディレクトリサーバに対して同様の要求を送信し、クライアントが行う再照会をディレクトリサーバで代行することも可能である。
【０００３】
【特許文献１】特開２００４−３１０５４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＬＤＡＰプロトコルに基づくリフェラル機能では、処理要求元クライアントに返信された他サーバへの接続情報（リフェラル情報）データを基に処理要求元クライアントが参照先のサーバに再び照会を行うことによりネットワークトラフィックが増加し、処理速度が低下するという問題があった。本発明は、ディレクトリサービスの検索におけるネットワークトラフィックの増加を抑える手段を提供する事を目的とする。
【課題を解決するための手段】
【０００５】
頻繁に照会される情報を複製する機能を持つディレクトリサーバ技術を提供する。
【０００６】
具体的には、情報照会要求データを受け付け、要求に合致するデータをディレクトリから検索し、要求されたデータが発見できなかった場合には、他のディレクトリサーバ装置の接続先を特定する情報を含む接続情報データを返信するディレクトリサーバ装置であって、記憶部と、処理部と、を備え、前記処理部は、前記情報照会要求データにより要求されたデータごとに、前記接続情報データを返信した返信回数を前記記憶部に記憶させ、記憶された返信回数が所定の回数を超過した場合に、他のディレクトリサーバ装置のうちの一の接続先に接続して、前記情報照会要求データにより要求されたデータを取得し、前記情報照会要求データにより要求されたデータを前記記憶部に記憶させる、ことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ディレクトリサービスシステムにおいて、要求された情報がサーバ上に存在しなかった場合に発生するリフェラル処理によるネットワークトラフィックの増加を抑えることができる。
【発明を実施するための最良の形態】
【０００８】
以下、本願発明の実施形態について、図１〜図７を用いて説明する。
【０００９】
まず、図１〜図５を用いて、実施形態の構成について説明する。
【００１０】
図１は、本発明の実施形態に係るディレクトリサービスシステム１についての概略を示す図である。本実施形態に係るディレクトリサービスシステム１は、ディレクトリに格納された情報の照会要求を行う処理要求元クライアント１００と、ディレクトリを保持してクライアントからの照会要求に対してディレクトリの照会処理を行うディレクトリサーバＡ２００、ディレクトリサーバＢ３００、ディレクトリサーバＣ４００と、これらを互いに接続することのできるネットワーク５００と、を有して構成される。処理要求元クライアント１００は、例えば、パーソナルコンピュータやＰＤＡ（Personal Digital Assistant）などであり、ディレクトリサーバＡ２００、ディレクトリサーバＢ３００、ディレクトリサーバＣ４００は、サーバ装置により構成される。ネットワーク５００は、例えばインターネットなどの公衆網や、ＬＡＮ（Local Area Network）等の通信網である。また、本実施例では、便宜的に処理要求元クライアントを１台、ディレクトリサーバを３台として説明を行っているが、通常、それ以上の台数の処理要求元クライアントおよび階層関係を持つ複数のディレクトリサーバを有して構成される。
【００１１】
次に、処理要求元クライアント１００について説明する。図２は、ディレクトリの照会処理を要求する処理要求元クライアント１００の機能構成図である。処理要求元クライアント１００は、ディレクトリサーバに対して照会要求を行うディレクトリ照会要求部１０１と、通信部１０２と、を有して構成される。ディレクトリ照会要求部１０１は、処理要求元クライアント１００内のユーザプログラム等から要求を受信し、通信部１０２を介してネットワーク５００に対して接続することでディレクトリに対して照会要求を送信し、ディレクトリからの応答を受信して得られた照会処理結果を処理要求元クライアント１００内のユーザプログラム等に対して返信する。
【００１２】
次に、ディレクトリサーバについて説明する。図３は、ディレクトリを保持するディレクトリサーバＡ２００の機能構成図である。ディレクトリサーバＡ２００は、リフェラル情報記憶処理部２０１と、ディレクトリ照会処理部２０２と、リフェラル情報返信部２０３と、リフェラル情報蓄積処理部２０４と、通信部２０５と、記憶部２０６と、を有して構成される。
【００１３】
リフェラル情報記憶処理部２０１は、ＬＤＡＰ（Lightweight Directory Access Protocol）プロトコルに基づいて、ディレクトリで管理するデータの種類に応じて他ディレクトリサーバの接続先を特定する接続情報となるリフェラル情報を記憶する機能部である。
【００１４】
ディレクトリ照会処理部２０２は、処理要求元クライアント１００からのディレクトリ照会要求と照会条件を通信部２０５を介して受信し、照会条件を基にディレクトリサーバＡ２００内のディレクトリの照会処理を行い、照会結果を処理要求元クライアント１００へ返却する機能部である。ディレクトリ照会処理部２０２は、照会結果を得られなかった場合には、リフェラル情報返信部２０３に処理を委譲する。また、後述するように、ディレクトリ照会処理部２０２は、処理結果を得られなかった場合には、続けて、リフェラル先のサーバに対して照会要求と照会条件を送信して照会結果を取得する処理を行う。
【００１５】
リフェラル情報返信部２０３は、ディレクトリ照会処理部２０２によって照会した結果、自ディレクトリサーバに該当する情報がない場合に他サーバへのアクセス情報を含むリフェラル情報をリフェラル情報記憶処理部２０１から取得して、取得したリフェラル情報を通信部２０５経由で処理要求元クライアント１００に返信する機能部である。
【００１６】
リフェラル情報蓄積処理部２０４は、リフェラル情報返信部２０３によりリフェラル情報を返信する都度、別のディレクトリサーバへ問い合わせる処理の結果得られる照会結果に含まれるデータの識別子毎に後述するカウント表記憶領域２０９を用いて照会回数をカウントし、所定のカウントを超えた照会結果についてリフェラル情報を基に照会し、照会結果のエントリを自ディレクトリサーバ内のディレクトリに追加する機能部である。
【００１７】
通信部２０５は、各機能部からの要求を受けてネットワーク５００に対して情報を送受信する機能部である。
【００１８】
記憶部２０６は、各機能部で使用するデータを記憶する記憶領域を有する部である。記憶部２０６は、リフェラル情報を返却する際に返却すべきリフェラル情報を記憶するリフェラル情報記憶領域２０７と、ディレクトリサービスを提供する際に必要となるディレクトリデータを格納するディレクトリ記憶領域２０８と、カウント表記憶領域２０９と、を有する。
【００１９】
次に、ディレクトリサーバに備わるリフェラル情報蓄積処理部２０４により用いられるカウント表記憶領域２０９について説明する。図４に、カウント表記憶領域２０９に格納されるカウント表データ４０を示す。カウント表データ４０は、識別子４１欄と、リフェラル情報内容４２欄と、照会処理蓄積回数４３欄とを有して構成される。
【００２０】
識別子４１欄は、照会処理の結果得られる照会結果に含まれるエントリを一意に識別する識別子であるDN（Distinguished Name）を記憶する。リフェラル情報内容４２欄は、他のディレクトリサーバのリソースにアクセスするためのリフェラル情報であるLDAPURL（LDAP Uniform Resource Locator）を記憶する。また、照会処理蓄積回数４３欄は、識別子４１欄に記憶された識別子により識別されるエントリが自ディレクトリサーバに存在しなかったために、リフェラル情報を返信した回数を記憶する。図４の例では、「sn=yamada,dc=example,dc=com」により識別される情報を２回照会され、その情報が存在するサーバへアクセスを行うための情報であるリフェラル情報は「ldap://serverb.example.com:389」である、ということを示している。
【００２１】
なお、このリフェラル情報は、リフェラル情報記憶処理部２０１に予め設定されたLDAPURLのうち、当該照会を受けたエントリに対応するものである。
【００２２】
図５は、処理要求元クライアント１００と、ディレクトリサーバＡ２００のハードウェアの概略構成を示す図である。
【００２３】
ディレクトリサーバＢ３００と、ディレクトリサーバＣ４００については、ディレクトリサーバＡ２００とほぼ同様の構成であるために、図５ではディレクトリサーバＡ，Ｂ，Ｃをまとめて説明する。
【００２４】
処理要求元クライアント１００は、処理装置１１１と、ＲＡＭ１１２と、ＲＯＭ１１３と、ネットワークＩＦ１１４と、を有する。
【００２５】
また、ディレクトリサーバＡ２００は、処理装置２１１と、ＲＡＭ２１２と、ディスク装置２１３と、ＲＯＭ２１４と、ネットワークＩＦ２１５と、を有する。
【００２６】
処理装置１１１は、処理要求元クライアント１００が必要とする演算を行う装置であり、プロセッサなどで実現される。
【００２７】
ＲＡＭ１１２に展開される命令コードは、ＲＯＭ１１３に記憶されたものでもよく、また、ネットワークＩＦ１１４を介して、ネットワーク５００上の装置あるいはインターネット等のネットワーク上の装置から取得されたものでもよい。
【００２８】
ＲＡＭ１１２は、処理装置１１１が実行する命令コードの展開を行う領域を有する。また、ＲＡＭ１１２は、後述するＲＯＭ１１３に記憶された処理要求元クライアント１００を動作させるソフトウェアや、ソフトウェアが必要とするデータの初期値、その他書き換えの必要がないデータなどを読み込み、命令コードの展開を行う領域に展開する。
【００２９】
ＲＯＭ１１３は、通常のＲＯＭ装置であり、処理要求元クライアント１００を動作させるソフトウェアや、ソフトウェアが必要とするデータの初期値、その他書き換えの必要がないデータなどを予め記録している。
【００３０】
ネットワークＩＦ１１４は、ディレクトリサーバＡ２００等ネットワーク５００に接続可能な機器との情報の送・受信を行う。
【００３１】
ネットワークＩＦ１１４を介して、処理要求元クライアント１００はネットワーク５００へ接続する。
【００３２】
処理装置２１１は、ディレクトリサーバＡ２００が必要とする演算を行う装置であり、プロセッサなどで実現される。
【００３３】
ＲＡＭ２１２あるいはディスク装置２１３は、処理装置２０１が実行する命令コードの展開を行うだけでなく、リフェラル情報記憶領域２０７と、ディレクトリ記憶領域２０８と、カウント表記憶領域２０９と、を記憶する領域を有する。また、ＲＡＭ２１２あるいはディスク装置２１３は、後述するＲＯＭ２１４に記憶されたディレクトリサーバＡ２００を動作させるソフトウェアや、ソフトウェアが必要とするデータの初期値、その他書き換えの必要がないデータなどを読み込み、命令コードの展開を行う領域に展開する。
【００３４】
ＲＯＭ２１４は、通常のＲＯＭ装置であり、ディレクトリサーバＡ２００を動作させるソフトウェアや、ソフトウェアが必要とするデータの初期値、その他書き換えの必要がないデータなどを予め記録している。
【００３５】
ネットワークＩＦ２１５は、ディレクトリサーバＢ３００や処理要求元クライアント１００等、ネットワーク５００に接続可能な機器との情報の送・受信を行う。
【００３６】
ネットワークＩＦ２１５を介して、ディレクトリサーバＡ２００はネットワーク５００へ接続する。
【００３７】
上述の図２のディレクトリ照会要求部１０１は、その処理を処理装置１１１がＲＡＭ１１２に展開された命令コードを実行することと、通信部１０２を介してネットワークＩＦ１１４を用いて通信を行うことと、により実現する。
【００３８】
同様に、図３のリフェラル情報記憶処理部２０１と、ディレクトリ照会処理部２０２と、リフェラル情報返信部２０３と、リフェラル情報蓄積処理部２０４と、は、その処理を処理装置２１１がＲＡＭ２１２，ディスク装置２１３またはＲＯＭ２１４に展開された命令コードを実行することと、通信部２０５を介してネットワークＩＦ２１５を用いて通信を行うことと、ＲＡＭ２１２あるいはディスク装置２１３により実現される記憶部２０６と、により実現される。
【００３９】
図４に示したカウント表４０は、ＲＡＭ２１２またはディスク装置２１３により実現される。
【００４０】
これらのハードウェア装置と各機能部の動作により、本願のディレクトリサービスシステム１を実現できる。
【００４１】
次に、本実施形態のディレクトリサービスシステム１による検索の動作について、図６を用いて説明する。
【００４２】
まず、ディレクトリサーバＡ２００が管理するディレクトリに所望のデータ（エントリ）が存在する場合の処理を説明する。図６に記載するように、ディレクトリサーバＡ２００内のディレクトリ照会処理部２０２は、処理要求元クライアント１００からの情報照会要求と、照会条件である属性情報を指定したフィルター式と、取得する属性情報と、を受け付ける（ステップ７０１）。ディレクトリ照会処理部２０２は、受け付けた情報照会要求とフィルター式と取得する属性情報を基に、ディレクトリサーバＡ２００内のディレクトリの照会処理を行う（ステップ７０２）。ディレクトリ照会処理部２０２は、フィルター式を満たすエントリがディレクトリサーバＡ２００内に見つかった場合（ステップ７０２で「存在する」）には、フィルター式を満たすエントリの属性情報を処理要求元クライアント１００に返信する（ステップ７０３）。
【００４３】
そして、処理を終了する（ステップ７０４）。
【００４４】
処理要求元クライアント１００は、返信されたエントリの属性情報を取得し、以降の処理を実施する。
【００４５】
次に、ディレクトリサーバＡ２００が管理するディレクトリに所望のエントリが存在しない場合の処理を説明する。
【００４６】
図６に示すように、ディレクトリサーバＡ２００内のディレクトリ照会処理部２０２は、処理要求元クライアント１００からのＬＤＡＰプロトコルに基づく情報照会要求と、フィルター式と、取得する属性情報を受け付ける（ステップ７０１）。
【００４７】
ディレクトリ照会処理部２０２は、受け付けた情報照会要求とフィルター式と取得する属性情報とを基に、ディレクトリサーバＡ２００内のディレクトリの照会処理を行う（ステップ７０２）。
【００４８】
しかし、ディレクトリ照会処理部２０２は、フィルター式を満たす情報をディレクトリサーバＡ２００内に見つけることができず（ステップ７０２で「存在しない」）、リフェラル情報返信部２０３に対して制御を受け渡す。リフェラル情報返信部２０３は、リフェラル情報記憶処理部２０１に対してリフェラル情報であるLDAPURLを要求する。リフェラル情報記憶処理部２０１は、他ディレクトリサーバ、例えばディレクトリサーバＢ３００へのアクセス情報となるLDAPURLをリフェラル情報記憶領域２０７から読み込み、リフェラル返信部２０３に対して提供する。リフェラル情報返信部２０３は、提供されたLDAPURLを処理要求元クライアント１００へ返信する（ステップ７０５）。
【００４９】
そして、リフェラル情報返信部２０３は、ディレクトリ照会処理部２０２に対して処理を実施するように指示して、リフェラル情報蓄積処理部２０４に対して、制御を受け渡す。ディレクトリ照会処理部２０２は、以下の処理を実施する。なお、以下の処理は、ＬＤＡＰプロトコルで定められた照会の連鎖処理を利用したものであってもよい。
【００５０】
ディレクトリ照会処理部２０２は、LDAPURLで示されるリフェラル先のサーバに対して、当該フィルター式をもとにDNを照会し、その結果、フィルター式を満たすエントリのDNを得る。当該リフェラル先のサーバが管理するディレクトリに所望のエントリが存在しない場合、第二のリフェラル情報が返されるので、第二のリフェラル先に再度当該フィルター式と取得する属性情報とを用いて照会し、その結果、フィルター式を満たすエントリのDNを得る。第二のリフェラル先に照会を行った結果、第三のリフェラル情報が返却されることがある。第二のリフェラル先のサーバが管理するディレクトリに所望のエントリが存在しない場合である。その場合には、リフェラル情報が返却されなくなるまで、あるいはnullデータが返却されるまで、第四のリフェラル先、第Ｎ（Ｎは２以上の自然数）のリフェラル先、に対して再照会を繰り返す。リフェラル情報蓄積処理部２０４は、ディレクトリ照会処理部２０２が実施する処理の結果に含まれるエントリがもつDNと、そのエントリを得るために使用したリフェラル情報を取得する（ステップ７０６）。
【００５１】
そして、リフェラル情報蓄積処理部２０４は、ステップ７０６で取得したDNと一致するカウント表記憶領域２０９の識別子４１を検索して、その照会処理蓄積回数４３欄に記憶された数を１だけインクリメントして記憶させ、ディレクトリデータの種類ごとに予め定めたディレクトリサーバに接続するためのLDAPURLをリフェラル情報内容４２に記憶させる（ステップ７０７）。
【００５２】
リフェラル情報蓄積処理部２０４は、インクリメントされた照会処理蓄積回数４３欄の値と所定の値とを比較し、所定の値以上でなければ（ステップ７０８で「規定値未満」）そのまま処理を終了する（ステップ７０９）。
【００５３】
インクリメントされた照会処理蓄積回数４３欄の値と所定の値とを比較した結果、所定の値以上であれば（ステップ７０８で「規定値以上」）、リフェラル情報蓄積処理部２０４は、リフェラル情報内容４２に記憶されたLDAPURLに従って他のディレクトリサーバＢ３００へ情報照会要求を行う（ステップ７１０）。その際、フィルター式には、識別子４１で特定される識別子を指定して、また、取得する属性情報をエントリ情報全体として、情報照会要求を行う。
【００５４】
ディレクトリサーバＢ３００は、ステップ７１０で受け付けた情報照会要求を基に自ディレクトリのエントリを検索し、検索結果を返信する。
【００５５】
検索の結果、該当するエントリが無い場合には、ディレクトリサーバＢ３００は、他のディレクトリサーバであるディレクトリサーバＣ４００の接続先を示すLDAPURLを返信する。
【００５６】
返信されたLDAPURLを受信したディレクトリサーバＡ２００のリフェラル情報蓄積処理部２０４は、受信したLDAPURLに記載された接続先であるディレクトリサーバＣ４００へ情報照会要求を行う。その際、フィルター式には、識別子４１で特定される識別子を指定して、また、取得する属性情報をエントリ情報全体として、情報照会要求を行う。
【００５７】
このようにリフェラル情報をたどり、エントリの情報を受け取るまで、またはリフェラル先の情報を得られなくなるまで、リフェラル先のディレクトリサーバに対して問い合わせを繰り返す。
【００５８】
そして、リフェラル情報蓄積処理部２０４は、上記他のサーバから返信されたエントリがあればそれを自ディレクトリに追加して記憶させる（ステップ７１１）。
【００５９】
そして、リフェラル情報蓄積処理部２０４は、カウント表記憶領域２０９から該当するDNを持ったレコードを削除して（ステップ７１２）処理を終了する（ステップ７１３）。
【００６０】
本実施形態における上記処理の結果、ステップ７１１により追加されたエントリについて処理要求元クライアント１００から照会があった場合には、自ディレクトリに照会情報を保持することとなるため、ディレクトリ照会処理部２０２は、LDAPURLであるリフェラル情報を返信することなく、照会されたエントリを提供することができるようになる。このことから、リフェラル情報による照会のネットワークデータ流量を抑制できるようになり、また、頻繁に利用されるデータを効率よく複製することが可能となる。
【００６１】
上記の実施形態は、本発明の好適な実施の一例であり、本発明はこれに限定されることは無い。例えば、上記実施形態では、処理要求元クライアントとしてパソコンあるいはＰＤＡを例に説明したが、これはその他ドメイン管理サーバ等各種サーバなど任意の機器でよく、パソコンあるいはＰＤＡに限定するものではない。
【００６２】
また例えば、図４に示したカウント表記憶領域２０９は、ディレクトリサーバごとに備えるものであるが、複数のディレクトリサーバで共有する記憶装置に記憶してもよい。その場合、図６のステップ７０８で規定値以上であると判定された場合に、ステップ７１０において、共有するディレクトリサーバ装置全てにおいて、リフェラル情報蓄積処理部２０４により情報照会要求が行われる。これにより、システム全体を通して照会されることの多いエントリを各ディレクトリサーバ装置に分散配置することができるようになり、検索の結果該当データが得られる可能性が高くなるため、リフェラル情報に基づくネットワークトラフィックが増大するのを未然に防ぐことができる。
【００６３】
また、さらなる変形例として、カウント表記憶領域２０９のカウント表データ４０のリフェラル情報内容４２欄に記憶するLDAPURLを、図６に示したステップ７０６において取得した、エントリを得るために使用した第Ｎのリフェラル情報であるLDAPURLとしても良い。具体的には、図６に示すフローチャートのステップ７０７において、リフェラル情報蓄積処理部２０４は、ステップ７０６で取得したDNと一致するカウント表記憶領域２０９の識別子４１を検索して、その照会処理蓄積回数４３欄に記憶された数を１だけインクリメントして記憶させ、ステップ７０６で取得したエントリを得るために使用した第Ｎのリフェラル情報であるLDAPURLをリフェラル情報内容４２に記憶させる（ステップ７０７）こととしてもよい。これにより、データが存在するディレクトリサーバに直接アクセスすることが可能となるため、さらなるトラフィックの削減を図ることができる。
【００６４】
なお、上記のディレクトリサービスシステム１は、システムとして取引対象とするだけでなく、各機器単位、またはその機器の動作を実現するプログラム部品単位、またはプログラム部品を記録した記憶媒体単位、で取引対象とすることも可能である。
【００６５】
また、上記の実施形態の変形例として、以下の実施形態がある。
【００６６】
上記の実施形態の変形例は、基本的な構成は上記実施形態と同様であるが、図７に示した処理フローに相違があるため、図７を用いて、処理フローを以下に説明する。
【００６７】
図７に示すように、ディレクトリサーバＡ２００が管理するディレクトリに所望のデータ（エントリ）が存在する場合の処理は、図６のステップ７０１からステップ７０４の処理と同様の処理フローとなる。ディレクトリサーバＡ２００が管理するディレクトリに所望のデータ（エントリ）が存在しない場合には、以下の処理フローを実施する。
【００６８】
ディレクトリサーバＡ２００内のディレクトリ照会処理部２０２は、処理要求元クライアント１００からのＬＤＡＰプロトコルに基づく情報照会要求と、フィルター式と、取得する属性情報を受け付ける（ステップ８０１）。
【００６９】
ディレクトリ照会処理部２０２は、受け付けた情報照会要求とフィルター式と取得する属性情報とを基に、ディレクトリサーバＡ２００内のディレクトリの照会処理を行う（ステップ８０２）。
【００７０】
しかし、ディレクトリ照会処理部２０２は、フィルター式を満たす情報をディレクトリサーバＡ２００内に見つけることができず（ステップ８０２で「存在しない」）、ディレクトリ照会処理部２０２は処理を開始するとともに、リフェラル情報蓄積処理部２０４に対して、制御を受け渡す。ディレクトリ照会処理部２０２は、リフェラル情報記憶処理部２０１に対してリフェラル情報であるLDAPURLを要求する。リフェラル情報記憶処理部２０１は、他ディレクトリサーバ、例えばディレクトリサーバＢ３００へのアクセス情報となるLDAPURLをディレクトリ照会処理部２０２に対して提供する（ステップ８０５）。
【００７１】
ディレクトリ照会処理部２０２は、LDAPURLで示されるリフェラル先のサーバに対して、当該フィルター式をもとにDNを照会し、その結果、フィルター式を満たすエントリのDNを得る。当該リフェラル先のサーバが管理するディレクトリに所望のエントリが存在しない場合、第二のリフェラル情報が返されるので、第二のリフェラル先に再度当該フィルター式と取得する属性情報とをもとに照会し、その結果、フィルター式を満たすエントリのDNを得る。第二のリフェラル先に照会を行った結果、第三のリフェラル情報が返却されることがある。その場合には、リフェラル情報が返却されなくなるまで、あるいはnullデータが返却されるまで、第四のリフェラル先、第五のリフェラル先、と、再照会を繰り返す。リフェラル情報蓄積処理部２０４は、ディレクトリ照会処理部２０２が実施する上記処理の結果に含まれるエントリがもつDNと、そのエントリを得るために使用したリフェラル情報を取得する（ステップ８０６）。
【００７２】
そして、リフェラル情報蓄積処理部２０４は、ステップ８０６で取得したDNと一致するカウント表４０の識別子４１を検索して、その照会処理蓄積回数４３欄に記憶された数を１だけインクリメントして記憶させ、ステップ８０６で取得したエントリを得るために使用したリフェラル情報であるLDAPURLをリフェラル情報内容４２に記憶させる（ステップ８０７）。
【００７３】
リフェラル情報蓄積処理部２０４は、インクリメントされた照会処理蓄積回数４３欄の値と所定の値とを比較し、所定の値以上でなければ（ステップ８０８で「規定値未満」）、ディレクトリ照会処理部２０２に対して、ステップ８０６で取得したエントリの属性情報を処理要求元クライアント１００に返信するよう指示し、処理を終了する（ステップ８０９）。
【００７４】
インクリメントされた照会処理蓄積回数４３欄の値と所定の値とを比較した結果、所定の値以上であれば（ステップ８０８で「規定値以上」）、リフェラル情報蓄積処理部２０４は、リフェラル情報内容４２に記憶されたLDAPURLに従って他のディレクトリサーバＢ３００へ情報照会要求を行う（ステップ８１０）。その際、フィルター式には、識別子４１で特定される識別子を指定して、また、取得する属性情報をエントリ情報全体として、情報照会要求を行う。
【００７５】
ディレクトリサーバＢ３００は、ステップ８１０で受け付けた情報照会要求を基に自ディレクトリのエントリを検索し、検索結果を返信する。
【００７６】
検索の結果、該当するエントリが無い場合には、ディレクトリサーバＢ３００は、他のディレクトリサーバであるディレクトリサーバＣ４００の接続先を示すLDAPURLを返信する。
【００７７】
返信されたLDAPURLを受信したディレクトリサーバＡ２００のリフェラル情報蓄積処理部２０４は、受信したLDAPURLに記載された接続先であるディレクトリサーバＣ４００へ情報照会要求を行う。その際、フィルター式には、識別子４１で特定される識別子を指定して、また、取得する属性情報をエントリ情報全体として、情報照会要求を行う。
【００７８】
このようにリフェラル情報をたどり、エントリの情報を受け取るまで、またはリフェラル先の情報を得られなくなるまで、リフェラル先のディレクトリサーバに対して問い合わせを繰り返す。
【００７９】
リフェラル情報蓄積処理部２０４は、上記他のサーバから返信されたエントリを自ディレクトリに追加して記憶させる（ステップ８１１）。
【００８０】
そして、リフェラル情報蓄積処理部２０４は、カウント表４０から該当するDNを持ったレコードを削除する（ステップ８１２）。
【００８１】
続いて、リフェラル情報蓄積処理部２０４は、ディレクトリ照会処理部２０２に対して、ステップ８０６で取得したエントリの属性情報を処理要求元クライアント１００に返信するよう指示し、処理を終了する（ステップ８１３）。
【００８２】
この変形例により、処理要求元クライアント１００は、ディレクトリサーバＡ２００のディレクトリに所望のエントリが存在しなかった場合でも、処理要求元クライアント１００はリフェラル情報を受信することなく、所望のエントリを受信できる。このことは、処理要求元クライアント１００からリフェラル先のディレクトリサーバに対する再照会を行うネットワークトラフィックを削減する効果がある。
【００８３】
以上が、本発明の実施形態である。
【図面の簡単な説明】
【００８４】
【図１】本発明におけるディレクトリサービスシステムの全体構成図である。
【図２】本発明における処理要求元クライアントの機能構成図である。
【図３】本発明におけるディレクトリサーバの機能構成図である。
【図４】本発明におけるカウント表記憶部を示す図である。
【図５】本発明における各機器のハードウェア構成図である。
【図６】本発明のリフェラル情報蓄積処理を示すフロー図である。
【図７】本発明の変形例であるリフェラル情報蓄積処理を示すフロー図である。
【符号の説明】
【００８５】
１：ディレクトリサービスシステム、４０：カウント表データ１００：処理要求元クライアント、１０１：ディレクトリ照会要求部、１０２：通信部、２００：ディレクトリサーバＡ、２０１：リフェラル情報記憶処理部、２０２：ディレクトリ照会処理部、２０３：リフェラル情報返信部、２０４：リフェラル情報蓄積処理部、２０５：通信部、２０６：記憶部、２０７：リフェラル情報記憶領域、２０８：ディレクトリ記憶領域、２０９：カウント表記憶領域、３００：ディレクトリサーバＢ、４００：ディレクトリサーバＣ、５００：ネットワーク
【図１】
2009116496.tif 000003
【図２】
2009116496.tif 000004
【図３】
2009116496.tif 000005
【図４】
2009116496.tif 000006
【図５】
2009116496.tif 000007
【図６】
2009116496.tif 000008
【図７】
2009116496.tif 000009