(57)【特許請求の範囲】
【請求項１】
ネットワーク上に存在するメンバの属性情報を管理する情報管理装置であって、
検索条件によって定義されたグループに属している前記メンバを検索する、検索処理部と、
前記検索の結果を、前記グループそれぞれ毎に、ビットマップ形式によってインデックス情報として記憶する、検索結果記憶部と、
前記グループそれぞれ毎に、当該グループの前記定義に関連する属性を、グループ属性情報として記憶する、グループ属性記憶部と、
いずれかのグループに属している前記メンバの属性情報が変更された場合に、前記グループ属性情報に基づいて、変更された前記メンバの属性情報の属性と同一の属性に関連しているグループを選択し、そして、前記属性情報が変更されたメンバが、選択されたグループの定義を満たしているかどうかを判定し、判定の結果に応じて、前記インデックス情報における前記選択されたグループに対応する部分を更新する、検索結果更新処理部と、
を備えていることを特徴とする情報管理装置。
【請求項２】
いずれかの前記グループの定義が変更された場合に、定義が変更された前記グループにおける、変更された前記定義に関連する属性を特定し、特定した属性に基づいて、前記グループ属性情報を更新する、グループ属性更新処理部を、更に備えている、請求項１に記載の情報管理装置。
【請求項３】
前記検索処理部が、いずれかの前記グループの定義が変更された場合に、定義が変更されたグループについて、再度、前記メンバを検索し、検索結果に基づいて、前記インデックス情報を更新する、請求項１または２に記載の情報管理装置。
【請求項４】
前記検索結果記憶部が、前記グループそれぞれ毎に、全ての前記メンバに対応する１ビットの情報を割り当て、そして、当該グループに属しているメンバの前記１ビットの情報を１に設定し、当該グループに属していないメンバの前記１ビットの情報を０に設定することによって、前記インデックス情報を記憶しており、
前記検索結果更新処理部が、前記判定の結果、選択されたグループの定義を満たしていると判定したメンバについては、前記インデックス情報の対応する前記１ビットの情報を１に設定し、選択されたグループの定義を満たしていないと判定したメンバについては、前記インデックス情報の対応する前記１ビットの情報を０に設定する、
請求項１〜３のいずれかに記載の情報管理装置。
【請求項５】
ネットワーク上に存在するメンバの属性情報を管理するための方法であって、
（ａ）コンピュータによって、検索条件によって定義されたグループに属している前記メンバを検索する、ステップと、
（ｂ）前記コンピュータによって、前記検索の結果を、前記グループそれぞれ毎に、ビットマップ形式によってインデックス情報として記憶する、ステップと、
（ｃ）前記コンピュータによって、前記グループそれぞれ毎に、当該グループの前記定義に関連する属性を、グループ属性情報として記憶する、ステップと、
（ｄ）前記コンピュータによって、いずれかのグループに属している前記メンバの属性情報が変更された場合に、前記グループ属性情報に基づいて、変更された前記メンバの属性情報の属性と同一の属性に関連しているグループを選択する、ステップと、
（ｅ）前記コンピュータによって、前記属性情報が変更されたメンバが、前記（ｄ）のステップで選択されたグループの定義を満たしているかどうかを判定し、判定の結果に応じて、前記インデックス情報における前記選択されたグループに対応する部分を更新する、ステップと、
を有することを特徴とする情報管理方法。
【請求項６】
コンピュータによって、ネットワーク上に存在するメンバの属性情報を管理するためのプログラムであって、
前記コンピュータに、
（ａ）検索条件によって定義されたグループに属している前記メンバを検索する、ステップと、
（ｂ）前記検索の結果を、前記グループそれぞれ毎に、ビットマップ形式によってインデックス情報として記憶する、ステップと、
（ｃ）前記グループそれぞれ毎に、当該グループの前記定義に関連する属性を、グループ属性情報として記憶する、ステップと、
（ｄ）いずれかのグループに属している前記メンバの属性情報が変更された場合に、前記グループ属性情報に基づいて、変更された前記メンバの属性情報の属性と同一の属性に関連しているグループを選択する、ステップと、
（ｅ）前記属性情報が変更されたメンバが、前記（ｄ）のステップで選択されたグループの定義を満たしているかどうかを判定し、判定の結果に応じて、前記インデックス情報における前記選択されたグループに対応する部分を更新する、ステップと、
を実行させるプログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上に存在するリソースに関する情報を管理するための、情報管理装置、情報管理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ネットワークシステムにおいては、ユーザ、コンピュータ、プリンタなど多数のリソースが、ネットワーク上に分散している。このため、ネットワーク上に分散しているリソースの情報の登録及び検索を行うための仕組みとして、ディレクトリサービスが利用されている。また、ディレクトリサービスを提供するデータベースにアクセスするためのプロトコルとしては、多くの場合、ＬＤＡＰ（Lightweight Directory Access Protocol）が利用されている。
【０００３】
また、ＬＤＡＰｖ３に対して、検索条件によってメンバを定義できるグループの機能が提案されている。この機能は、所属するメンバの条件を、ldapURL形式(クエリ)で memberQueryURL属性に指定できるダイナミックグループと呼ばれるものである。
参照：http://tools.ietf.org/html/draft-haripriya-dynamicgroup-02
【０００４】
例えば、以下の定義に示すように、ｃ＝ＪＰ配下で、職位がマネージャである複数のユーザのグループを定義すれば、職位がマネージャであるユーザを検索することができる。
（定義）ldap:///c=JP??sub?(職位=マネージャ)
【０００５】
ところで、ダイナミックグループは、クエリによって定義されるグループであるため、ダイナミックグループのメンバを取得するためには、都度そのクエリを実行して、検索を行う必要がある。但し、都度クエリを実行すると、検索のＴＡＴ（Turn Around Time）は低下してしまう。そこで、クエリによる検索結果をインデックス的な情報としてキャッシュしておき、次に、ダイナミックグループのメンバの取得が行われる時は、そのインデックスの情報に基づいてメンバ情報を返却し、これによって検索の高速化を図ることが行われている。
【０００６】
ところで、このインデックスの情報としては、例えば、ビットマップインデックスを使用することができる。ビットマップインデックスでは、クエリの検索結果が保持されていなければならないため、クエリ自体が変わらなくても、一般のエントリ（メンバ）の属性が変わった場合は、保持されている検索結果は変更される必要がある。従って、ビットマップインデックスにおいては、キャッシュされたクエリの検索結果（以下、「検索結果キャッシュ」）をいかに効率よく更新するかが課題となる。つまり、更新のＴＡＴの向上が求められている。
【０００７】
上記課題を解決するための１つの方法としては、定期的に、全てのダイナミックグループの検索結果キャッシュを更新する方法が挙げられる。但し、上記の方法では、ダイナミックグループの検索結果キャッシュが更新されてから、次の更新までの間に、一般のエントリの属性が変更された場合に、ダイナミックグループのメンバを特定する情報（以下「メンバ情報」という。）に不整合が発生するという別の課題が発生してしまう。
【０００８】
この別の課題に対する解決策としては、更新の都度、ダイナミックグループの検索結果キャッシュを更新する方法が考えられる。但し、この方法では、ダイナミックグループの数が多くなると、検索結果キャッシュの情報を更新するのに時間がかかってしまうため、更新のＴＡＴが低下してしまう。この方法では、結局のところ、検索結果キャッシュを効率良く更新することは困難である。
【０００９】
一方、特許文献１は、このようなキャッシュを効率良く更新するための技術を開示している。具体的には、特許文献１に開示されたシステムでは、検索用キャッシュと、更新差分キャッシュ（挿入、削除、又は更新によって発生した差分のキャッシュ）とが準備される。そして、検索時に、これら２つのキャッシュ間において、タプルＩＤが一致するデータがマージされる。その後、適当なタイミングで、更新差分キャッシュの内容が検索用キャッシュに転送される。よって、特許文献１に開示された技術をＬＤＡＰに利用すれば、更新の都度、検索結果キャッシュを更新してもＴＡＴの低下が抑制されるとも考えられる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００９−２６３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、ＬＤＡＰは、リレーショナルデータベースのプロトコルと異なり、ダイナミックグループをクエリで定義しており、タプルＩＤの指定によるマージ処理には対応していない。このため、特許文献１に開示された技術をＬＤＡＰに利用してマージ処理を行う場合は、全ての更新をチェックする必要があり、結局のところ、更新のＴＡＴの向上は困難である。
【００１２】
また、特許文献１に開示された技術をＬＤＡＰに利用した場合であっても、エントリの属性情報が変更されると、基本的に全てのダイナミックグループについて検索結果キャッシュの情報を更新する必要がある。従って、この点からも、更新のＴＡＴの向上は困難である。
【００１３】
本発明の目的の一例は、上記問題を解消し、検索条件によって定義されたグループのメンバ情報における不整合の発生を抑制しつつ、検索結果キャッシュの更新処理時間の短縮化を図り得る、情報管理装置、情報管理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明の一側面における情報管理装置は、ネットワーク上に存在するメンバの属性情報を管理する情報管理装置であって、
検索条件によって定義されたグループに属している前記メンバを検索する、検索処理部と、
前記検索の結果を、前記グループそれぞれ毎に、ビットマップ形式によってインデックス情報として記憶する、検索結果記憶部と、
前記グループそれぞれ毎に、当該グループの前記定義に関連する属性を、グループ属性情報として記憶する、グループ属性記憶部と、
いずれかのグループに属している前記メンバの属性情報が変更された場合に、前記グループ属性情報に基づいて、変更された前記メンバの属性情報の属性と同一の属性に関連しているグループを選択し、そして、前記属性情報が変更されたメンバが、選択されたグループの定義を満たしているかどうかを判定し、判定の結果に応じて、前記インデックス情報における前記選択されたグループに対応する部分を更新する、検索結果更新処理部と、
を備えていることを特徴とする。
【００１５】
また、上記目的を達成するため、本発明の一側面における情報管理方法は、ネットワーク上に存在するメンバの属性情報を管理するための方法であって、
（ａ）検索条件によって定義されたグループに属している前記メンバを検索する、ステップと、
（ｂ）前記検索の結果を、前記グループそれぞれ毎に、ビットマップ形式によってインデックス情報として記憶する、ステップと、
（ｃ）前記グループそれぞれ毎に、当該グループの前記定義に関連する属性を、グループ属性情報として記憶する、ステップと、
（ｄ）いずれかのグループに属している前記メンバの属性情報が変更された場合に、前記グループ属性情報に基づいて、変更された前記メンバの属性情報の属性と同一の属性に関連しているグループを選択する、ステップと、
（ｅ）前記属性情報が変更されたメンバが、前記（ｄ）のステップで選択されたグループの定義を満たしているかどうかを判定し、判定の結果に応じて、前記インデックス情報における前記選択されたグループに対応する部分を更新する、ステップと、
を有することを特徴とする。
【００１６】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータによって、ネットワーク上に存在するメンバの属性情報を管理するためのプログラムであって、
前記コンピュータに、
（ａ）検索条件によって定義されたグループに属している前記メンバを検索する、ステップと、
（ｂ）前記検索の結果を、前記グループそれぞれ毎に、ビットマップ形式によってインデックス情報として記憶する、ステップと、
（ｃ）前記グループそれぞれ毎に、当該グループの前記定義に関連する属性を、グループ属性情報として記憶する、ステップと、
（ｄ）いずれかのグループに属している前記メンバの属性情報が変更された場合に、前記グループ属性情報に基づいて、変更された前記メンバの属性情報の属性と同一の属性に関連しているグループを選択する、ステップと、
（ｅ）前記属性情報が変更されたメンバが、前記（ｄ）のステップで選択されたグループの定義を満たしているかどうかを判定し、判定の結果に応じて、前記インデックス情報における前記選択されたグループに対応する部分を更新する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１７】
以上の特徴により、本発明における情報管理装置、情報管理方法、及びプログラムによれば、検索条件によって定義されたグループのメンバ情報における不整合の発生を抑制しつつ、検索結果キャッシュの更新処理時間の短縮化を図ることができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、本発明の実施の形態における情報管理装置の構成を示すブロック図である。
【図２】図２は、本発明の実施の形態において用いられるインデックス情報の一例を示す図である。
【図３】図３は、本発明の実施の形態において用いられるグループ属性情報の一例を示す図である。
【図４】図４は、本発明の実施の形態における情報管理装置の全体の動作を示すフロー図である。
【図５】図５は、本発明の実施の形態におけるメンバの属性情報の更新処理を示すフロー図である。
【図６】図６は、本発明の実施の形態における情報管理装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１９】
（実施の形態）
以下、本発明の実施の形態における、情報管理装置、情報管理方法、及びプログラムについて、図１〜図５を参照しながら説明する。最初に、図１を用いて、本実施の形態における情報管理装置の構成を説明する。図１は、本発明の実施の形態における情報管理装置の構成を示すブロック図である。
【００２０】
［情報管理装置の構成］
図１に示すように、本実施の形態における情報管理装置１００は、ＬＤＡＰ処理装置１０と、検索結果記憶部２０と、検索結果更新装置３０とを備えている。情報管理装置１００は、この構成により、ネットワーク（図１において図示せず）上に存在するメンバの属性情報を管理する。メンバには、ネットワーク上に存在するユーザオブジェクト、コンピュータオブジェクトなどが含まれる。
【００２１】
本実施の形態では、情報管理装置１００は、ＬＤＡＰサーバとして機能するサーバコンピュータである。情報管理装置１００は、ユーザが、クライアントコンピュータ（図１において図示せず）を介して操作を入力すると、操作に応じたディレクトリサービスを提供する。また、本実施の形態では、ＬＤＡＰ処理装置１０及び検索結果更新装置３０は、情報管理装置１００となるサーバコンピュータに組み込まれたプログラムによって構築されている。
【００２２】
図１に示すように、ＬＤＡＰ処理装置１０は、主に、検索処理部２０を備えている。検索処理部２０は、検索条件によって定義されたグループに属しているメンバを検索する。本実施の形態では、検索処理部２０は、ユーザが指定したクエリを実行し、クエリに定義されているグループのメンバを特定する。また、検索結果記憶部２０は、検索の結果を、グループ毎に、ビットマップ形式によってインデックス情報として記憶する。
【００２３】
また、図１に示すように検索結果更新装置３０は、主に、グループ属性記憶部３２と、検索結果更新処理部３３とを備えている。グループ属性記憶部３２は、グループ毎に、当該グループの定義に関連する属性を、グループ属性情報として記憶している。
【００２４】
検索結果更新処理部３３は、いずれかのグループに属しているメンバの属性情報が変更されると、まず、変更された属性情報の属性を特定する。具体的には、ユーザが、操作により、メンバの属性情報（例えば、職位の内容、所属先、ＩＤなど）を更新（追加、削除を含む）すると、検索結果更新処理部３３は、変更された属性情報の属性（例えば、職位、所属、ログインＩＤなど）を特定する。
【００２５】
続いて、検索結果更新処理部３３は、記憶されているグループ属性情報に基づいて、変更された属性情報の属性と同一の属性に関連しているグループを選択する。そして、検索結果更新処理部３３は、属性情報が変更されたメンバが、選択されたグループの定義を満たしているかどうかを判定し、判定の結果に応じて、インデックス情報における選択されたグループに対応する部分を更新する。
【００２６】
このような構成により、本実施の形態における情報管理装置１００では、メンバの属性情報が変更されても、全てのグループについて検索結果キャッシュを更新する必要はなく、更新は、関連するグループの対応する部分だけで済む。よって、情報管理装置１００によれば、検索結果キャッシュの更新処理時間の短縮化を図ることが可能となる。また、これにより、更新の都度、更新処理を実行できるので、グループのメンバ情報における不整合の発生が抑制される。
【００２７】
ここで、図２及び図３を用いて、本実施の形態における情報管理装置１００の構成を更に具体的に説明する。図２は、本発明の実施の形態において用いられるインデックス情報の一例を示す図である。図３は、本発明の実施の形態において用いられるグループ属性情報の一例を示す図である。
【００２８】
図１に示すように、本実施の形態では、ＬＤＡＰ処理装置１０は、検索処理部１２に加えて、プロトコル処理部１１と、更新処理部１３とを備えている。また、本実施の形態では、検索結果更新装置３０は、グループ属性記憶部３２及び検索結果更新処理部３３に加えて、グループ属性更新処理部３１を備えている。
【００２９】
また、本実施の形態では、インデックス情報は、キャッシュとして記憶されており、以下の説明では、「検索結果キャッシュ」とも言う。更に、本実施の形態では、「グループ」は、ＬＤＡＰで規定される「ダイナミックグループ」であり、以降の説明では、ダイナミックグループと表記する。
【００３０】
ＬＤＡＰ処理装置１０において、プロトコル処理部１１は、ユーザが、クライアントコンピュータを介して、操作を入力すると、入力された操作の解釈を行い、解釈結果に応じて、検索処理部１２または更新処理部１３に処理の実行を指示する。具体的には、プロトコル処理部１１は、ユーザが入力した操作が「検索」である場合は、検索処理部１２に、入力されたダイナミックグループに属しているメンバの検索を実行させる。また、プロトコル処理部１１は、ユーザが入力した操作が更新（追加、削除を含む。）である場合は、検索処理部１２及び更新処理部１３にその旨を通知する。
【００３１】
更新処理部１３は、更新によっていずれかのダイナミックグループの定義が変更された場合は、後述するグループ属性更新書部３１に処理を実行させる。一方、更新処理部１３は、更新によってメンバの属性情報が変更された場合は、検索結果更新処理部３３に、上述した処理を実行させる。
【００３２】
また、本実施の形態では、検索処理部１２は、更新によっていずれかのダイナミックグループの定義が変更された場合は、定義が変更されたダイナミックグループについて、再度、メンバを検索する。そして、検索処理部１２は、検索結果に基づいて、検索結果記憶部２０に記憶されているインデックス情報を更新する。ここで、図２を用いて、本実施の形態におけるインデックス情報について説明する。
【００３３】
図２の例では、検索結果記憶部２０は、ダイナミックグループ毎に、全てのメンバ（全エントリ）に対応する１ビットの情報を割り当てることによってインデックス情報を記憶している。そして、検索結果記憶部２０は、ダイナミックグループに属しているメンバの１ビットの情報を１に設定し、ダイナミックグループに属していないメンバの１ビットの情報を０に設定する。本実施の形態において、インデックス情報は、ビットの集合によって構成されており、各メンバがいずれのダイナミックグループの定義を満たしているかどうかを示している。
【００３４】
また、検索結果更新装置３０において、グループ属性更新処理部３１は、いずれかのダイナミックグループの定義が変更され、更新処理部１３からその旨の通知を受けると、定義が変更されたダイナミックグループにおける、変更された定義に関連する属性を特定する。そして、グループ属性更新処理部３１は、特定した属性に基づいて、グループ属性記憶部３２に記憶されているグループ属性情報を更新する。ここで、図３を用いて、本実施の形態におけるグループ属性情報について説明する。
【００３５】
図３の例では、グループ属性情報は、各ダイナミックグループの定義が関連している属性をテーブル形式で特定している。図３の例では、属性がダイナミックグループの定義と関連している場合は、ダイナミックグループを表す列の該当する欄に１が設定され、属性がダイナミックグループの定義と関連していない場合は、ダイナミックグループを表す列の該当する欄に０が設定される。具体的には、グループＡの定義が関連している属性は、「職位」である。グループＢの定義が関連している属性は、「所属」と「オフィスＩＤ」とである。グループＣの定義が関連している属性は「職位」と「オフィスＩＤ」とである。グループＤの定義が関連している属性は「オフィスＩＤ」である。
【００３６】
グループ属性情報が、図３の例である場合に、例えば、変更されたメンバの属性情報の属性が「職位」であるとすると、検索結果更新処理部３３は、「職位」に関連しているダイナミックグループ、即ち、グループＡとグループＣとを選択する。そして、検索結果更新処理部３３は、属性情報が変更されたメンバが、グループＡ及びグループＣの定義を満たしているかどうかを判定する。
【００３７】
また、本実施の形態では、判定の結果、選択されたダイナミックグループの定義を満たしていると判定したメンバについては、検索結果更新処理部３３は、図２に示したインデックス情報の対応する１ビットの情報（以下「ビット情報」とする。）を１に設定する。一方、判定の結果、選択されたダイナミックグループの定義を満たしていないと判定したメンバについては、検索結果更新処理部３３は、図２に示したインデックス情報の対応するビット情報を０に設定する。
【００３８】
［情報管理装置の動作］
次に、本発明の実施の形態における情報管理装置１００の動作について、図４及び図５を用いて説明する。また、本実施の形態では、情報管理装置１００を動作させることによって、情報管理方法が実施される。よって、本実施の形態における情報管理方法の説明は、以下の情報管理装置１００の動作説明に代える。
【００３９】
［全体動作］
最初に、図４を用いて、情報管理装置１００の全体の動作について説明する。図４は、本発明の実施の形態における情報管理装置の全体の動作を示すフロー図である。
【００４０】
図４に示すように、まず、ユーザからクライアントコンピュータを介して操作が入力されると、ＬＤＡＰ処理装置１０において、プロトコル処理部１１は、入力された操作の解釈を行い、入力された操作が更新であるかどうかを判定する（ステップＡ１）。
【００４１】
ステップＡ１の判定の結果、入力された操作が更新でない場合（新たなダイナミックグループを入力した検索である場合）は、プロトコル処理部１１は、検索処理部１２にその旨を通知する。そして、検索処理部１２は、新たなダイナミックグループの定義に従って、それに属するメンバの検索を実行する（ステップＡ６）。
【００４２】
ステップＡ６が実行されると、検索処理部１２は、検索結果記憶部２０に記憶されている検索結果キャッシュに、新たなダイナミックグループについての検索結果を示すビットマップを追加する。また、検索処理部１２は、検索結果をプロトコル処理部１１に返却する。その後、プロトコル処理部１１は、検索結果をユーザのクライアントコンピュータに送信する。また、ステップＡ６の実行後、情報管理装置１００における処理は一旦終了する。
【００４３】
一方、ステップＡ１の判定の結果、入力された操作が更新である場合は、プロトコル処理部１１は、更に、更新がダイナミックグループ自体の更新であるかどうかを判定する（ステップＡ２）。
【００４４】
ステップＡ２の判定の結果、更新がダイナミックグループ自体の更新でない場合、即ち、更新が、あるメンバの属性情報の変更（即ち、エントリの属性の変更）である場合は、プロトコル処理部１１は、その旨を、更新処理部１３に通知する。そして、更新処理部１３は、検索結果更新処理部３３に、検索結果記憶部２０に記憶されている検索結果キャッシュ（図２参照）において、該当するメンバのビット情報を更新させる（ステップＡ７）。なお、ステップＡ７については、図５を用いて後述する。また、ステップＡ７の実行後、情報管理装置１００における処理は一旦終了する。
【００４５】
一方、ステップＡ２の判定の結果、更新がダイナミックグループ自体の更新である場合、即ち、ユーザがダイナミックグループのエントリを定義し直した場合は、プロトコル処理部１１は、その旨を、検索処理部１２と更新処理部１３とに通知する。
【００４６】
これにより、検索処理部１２は、更新対象となったダイナミックグループのクエリを実行する（ステップＡ３）。続いて、検索処理部１２は、更新対象となったダイナミックグループの検索結果キャッシュを更新する（ステップＡ４）。具体的には、図２に示すように検索結果キャッシュはビットマップ形式で保持されているため、ステップＡ４では、更新対象となったダイナミックグループに対応するビットマップ全体が更新される。
【００４７】
次に、更新処理部１３は、グループ属性更新処理部３１を呼び出し、グループ属性更新処理部３１に、グループ属性記憶部３２に記憶されているグループ属性情報（図３参照）の更新を実行させる（ステップＡ４）。
【００４８】
具体的には、ステップＡ４では、グループ属性更新処理部３１は、更新対象となったダイナミックグループの変更された定義が関連している属性を特定し、特定した属性に基づいてグループ属性情報を更新する。なお、ステップＡ４は、ステップＡ２と同時に実行されていても良いし、ステップＡ２の実行前に実行されていても良い。また、ステップＡ２〜Ａ４が実行されると、情報管理装置１００における処理は一旦終了する。
【００４９】
［メンバの属性情報の更新処理］
続いて、図５を用いて、図４に示したステップＡ７について具体的に説明する。図５は、本発明の実施の形態におけるメンバの属性情報の更新処理理を示すフロー図である。
【００５０】
図５に示すように、ユーザ操作による更新が、あるメンバの属性情報の変更（あるエントリの属性の変更）である場合、まず、検索結果更新処理部３３は、変更された属性情報の属性を特定する（ステップＡ７１）。
【００５１】
次に、検索結果更新処理部３３は、グループ属性記憶部３２にアクセスして、グループ属性情報を取得する。そして、検索結果更新処理部３３は、グループ属性情報を参照して、更新対象となっている属性情報の属性と関連しているダイナミックグループのリストを取得する（ステップＡ７２）。具体的には、検索結果更新処理部３３は、図３に示すテーブルにおいて、更新対象となっている属性情報の属性が１に設定されているグループを特定し、特定したグループをまとめてリストを作成する。
【００５２】
次に、検索結果更新処理部３３は、リストで特定されるダイナミックグループそれぞれについて、ステップＡ７３〜Ａ７５を実行する。ステップＡ７３では、検索結果更新処理部３３は、属性情報が更新されたメンバが、処理対象となっているダイナミックグループの定義を満たしているかどうかを判定する。
【００５３】
ステップＡ７３の判定の結果、属性情報が更新されたメンバが、処理対象となっているダイナミックグループの定義を満たしている場合は、検索結果更新処理部３３は、ステップＡ７４を実行する。
【００５４】
ステップＡ７４では、検索結果更新処理部３３は、検索結果キャッシュにおける、処理対象となっているダイナミックグループのインデックス情報に、当該エントリの情報を追加する。具体的には、検索結果更新処理部３３は、処理対象となっているダイナミックグループのビットマップ（図２参照）において、属性情報が更新されたメンバに対応するビット情報を１に設定する。
【００５５】
一方、ステップＡ７３の判定の結果、属性情報が更新されたメンバが、処理対象となっているダイナミックグループの定義を満たしていない場合は、検索結果更新処理部３３は、ステップＡ７５を実行する。
【００５６】
ステップＡ７５では、検索結果更新処理部３３は、検索結果キャッシュにおける、処理対象となっているダイナミックグループのインデックス情報から、当該エントリの情報を削除する。具体的には、検索結果更新処理部３３は、処理対象となっているダイナミックグループのビットマップ（図２参照）において、属性情報が更新されたメンバに対応するビット情報を０に設定する。
【００５７】
ステップＡ７２で取得されたリストのダイナミックグループ全てについて、ステップＡ７３〜Ａ７５が実行されると、検索結果更新処理部３３における処理は終了する。その後、情報管理装置１００における処理も一旦終了する。
【００５８】
以上のように本実施の形態では、メンバの属性情報が更新された場合に、グループ属性情報に基づいて、更新に関連するダイナミックグループだけが処理の対象とされる。そして、この場合、ダイナミックグループの定義は実行されず、代わりに、更新後のメンバが、関連するダイナミックグループの定義を満たすかどうかの判定のみが行われる。このため、本実施の形態によれば、更新処理の高速化が図られるため、ダイナミックグループの数が多い場合でも、ダイナミックグループ以外の更新において、検索結果キャッシュの更新処理時間が抑えられる。
【００５９】
また、本実施の形態によれば、更新処理の高速化が図られるため、検索結果キャッシュをメンバの属性情報の更新の度に更新しても、更新処理時間がかかり過ぎることは抑制される。このため、ダイナミックグループの情報を、不整合なく高速に、ユーザのクライアントコンピュータに返却できる。
【００６０】
また、上述した例では、グループは、ＬＤＡＰで規定される「ダイナミックグループ」であったが、本実施の形態は、これに限定されるものではない。本実施の形態における「グループ」は、検索条件によって定義されていれば良い。
【００６１】
本発明の実施の形態におけるプログラムは、コンピュータ（サーバコンピュータ）に、図４に示すステップＡ１〜Ａ７、図５に示すステップＡ７１〜Ａ７５を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における情報管理装置１００と情報管理方法とを実現することができる。
【００６２】
この場合、コンピュータのＣＰＵ（Central Processing Unit）は、ＬＤＡＰ処理装置１０及び検索結果更新装置３０（グループ属性記憶部３２を除く）としてとして機能し、処理を行なう。また、本実施の形態では、コンピュータに備えられたハードディスク、メモリ等の記憶装置は、検索結果記憶部２０、及びグループ属性記憶部３２として機能する。
【００６３】
ここで、実施の形態におけるプログラムを実行することによって、情報管理装置１００を実現するコンピュータについて図６を用いて説明する。図６は、本発明の実施の形態における情報管理装置を実現するコンピュータの一例を示すブロック図である。
【００６４】
図６に示すように、コンピュータ１１０は、サーバコンピュータであり、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００６５】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００６６】
また、記憶装置１１３の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００６７】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash）及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【００６８】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１２）によって表現することができるが、以下の記載に限定されるものではない。
【００６９】
（付記１）
ネットワーク上に存在するメンバの属性情報を管理する情報管理装置であって、
検索条件によって定義されたグループに属している前記メンバを検索する、検索処理部と、
前記検索の結果を、前記グループそれぞれ毎に、ビットマップ形式によってインデックス情報として記憶する、検索結果記憶部と、
前記グループそれぞれ毎に、当該グループの前記定義に関連する属性を、グループ属性情報として記憶する、グループ属性記憶部と、
いずれかのグループに属している前記メンバの属性情報が変更された場合に、前記グループ属性情報に基づいて、変更された前記メンバの属性情報の属性と同一の属性に関連しているグループを選択し、そして、前記属性情報が変更されたメンバが、選択されたグループの定義を満たしているかどうかを判定し、判定の結果に応じて、前記インデックス情報における前記選択されたグループに対応する部分を更新する、検索結果更新処理部と、
を備えていることを特徴とする情報管理装置。
【００７０】
（付記２）
いずれかの前記グループの定義が変更された場合に、定義が変更された前記グループにおける、変更された前記定義に関連する属性を特定し、特定した属性に基づいて、前記グループ属性情報を更新する、グループ属性更新処理部を、更に備えている、付記１に記載の情報管理装置。
【００７１】
（付記３）
前記検索処理部が、いずれかの前記グループの定義が変更された場合に、定義が変更されたグループについて、再度、前記メンバを検索し、検索結果に基づいて、前記インデックス情報を更新する、付記１または２に記載の情報管理装置。
【００７２】
（付記４）
前記検索結果記憶部が、前記グループそれぞれ毎に、全ての前記メンバに対応する１ビットの情報を割り当て、そして、当該グループに属しているメンバの前記１ビットの情報を１に設定し、当該グループに属していないメンバの前記１ビットの情報を０に設定することによって、前記インデックス情報を記憶しており、
前記検索結果更新処理部が、前記判定の結果、選択されたグループの定義を満たしていると判定したメンバについては、前記インデックス情報の対応する前記１ビットの情報を１に設定し、選択されたグループの定義を満たしていないと判定したメンバについては、前記インデックス情報の対応する前記１ビットの情報を０に設定する、
付記１〜３のいずれかに記載の情報管理装置。
【００７３】
（付記５）
ネットワーク上に存在するメンバの属性情報を管理するための方法であって、
（ａ）検索条件によって定義されたグループに属している前記メンバを検索する、ステップと、
（ｂ）前記検索の結果を、前記グループそれぞれ毎に、ビットマップ形式によってインデックス情報として記憶する、ステップと、
（ｃ）前記グループそれぞれ毎に、当該グループの前記定義に関連する属性を、グループ属性情報として記憶する、ステップと、
（ｄ）いずれかのグループに属している前記メンバの属性情報が変更された場合に、前記グループ属性情報に基づいて、変更された前記メンバの属性情報の属性と同一の属性に関連しているグループを選択する、ステップと、
（ｅ）前記属性情報が変更されたメンバが、前記（ｄ）のステップで選択されたグループの定義を満たしているかどうかを判定し、判定の結果に応じて、前記インデックス情報における前記選択されたグループに対応する部分を更新する、ステップと、
を有することを特徴とする情報管理方法。
【００７４】
（付記６）
（ｆ）いずれかの前記グループの定義が変更された場合に、定義が変更された前記グループにおける、変更された前記定義に関連する属性を特定し、特定した属性に基づいて、前記（ｃ）のステップで記憶されているグループ属性情報を更新する、ステップを更に有する、付記５に記載の情報管理方法。
【００７５】
（付記７）
（ｇ）いずれかの前記グループの定義が変更された場合に、定義が変更されたグループについて、再度、前記メンバを検索し、検索結果に基づいて、前記（ｂ）のステップで記憶されているインデックス情報を更新する、ステップを更に有する、付記５または６に記載の情報管理方法。
【００７６】
（付記８）
前記（ｂ）のステップにおいて、前記グループそれぞれ毎に、全ての前記メンバに対応する１ビットの情報を割り当て、そして、当該グループに属しているメンバの前記１ビットの情報を１に設定し、当該グループに属していないメンバの前記１ビットの情報を０に設定することによって、前記インデックス情報を記憶し、
前記（ｅ）のステップにおいて、前記判定の結果、選択されたグループの定義を満たしていると判定したメンバについては、前記インデックス情報の対応する前記１ビットの情報を１に設定し、選択されたグループの定義を満たしていないと判定したメンバについては、前記インデックス情報の対応する前記１ビットの情報を０に設定する、
付記５〜７のいずれかに記載の情報管理方法。
【００７７】
（付記９）
コンピュータによって、ネットワーク上に存在するメンバの属性情報を管理するためのプログラムであって、
前記コンピュータに、
（ａ）検索条件によって定義されたグループに属している前記メンバを検索する、ステップと、
（ｂ）前記検索の結果を、前記グループそれぞれ毎に、ビットマップ形式によってインデックス情報として記憶する、ステップと、
（ｃ）前記グループそれぞれ毎に、当該グループの前記定義に関連する属性を、グループ属性情報として記憶する、ステップと、
（ｄ）いずれかのグループに属している前記メンバの属性情報が変更された場合に、前記グループ属性情報に基づいて、変更された前記メンバの属性情報の属性と同一の属性に関連しているグループを選択する、ステップと、
（ｅ）前記属性情報が変更されたメンバが、前記（ｄ）のステップで選択されたグループの定義を満たしているかどうかを判定し、判定の結果に応じて、前記インデックス情報における前記選択されたグループに対応する部分を更新する、ステップと、
を実行させるプログラム。
【００７８】
（付記１０）
（ｆ）いずれかの前記グループの定義が変更された場合に、定義が変更された前記グループにおける、変更された前記定義に関連する属性を特定し、特定した属性に基づいて、前記（ｃ）のステップで記憶されているグループ属性情報を更新する、ステップを更に前記コンピュータに実行させる、付記９に記載のプログラム。
【００７９】
（付記１１）
（ｇ）いずれかの前記グループの定義が変更された場合に、定義が変更されたグループについて、再度、前記メンバを検索し、検索結果に基づいて、前記（ｂ）のステップで記憶されているインデックス情報を更新する、ステップを更に前記コンピュータに実行させる、付記９または１０に記載のプログラム。
【００８０】
（付記１２）
前記（ｂ）のステップにおいて、前記グループそれぞれ毎に、全ての前記メンバに対応する１ビットの情報を割り当て、そして、当該グループに属しているメンバの前記１ビットの情報を１に設定し、当該グループに属していないメンバの前記１ビットの情報を０に設定することによって、前記インデックス情報を記憶し、
前記（ｅ）のステップにおいて、前記判定の結果、選択されたグループの定義を満たしていると判定したメンバについては、前記インデックス情報の対応する前記１ビットの情報を１に設定し、選択されたグループの定義を満たしていないと判定したメンバについては、前記インデックス情報の対応する前記１ビットの情報を０に設定する、
付記９〜１１のいずれかに記載のプログラム。
【産業上の利用可能性】
【００８１】
以上のように、本発明によれば、検索条件によって定義されたグループのメンバ情報における不整合の発生を抑制しつつ、検索結果キャッシュの更新処理時間の短縮化を図ることができる。よって、本発明は、検索条件によって定義されるグループの情報を、高速かつ不整合なく検索することが求められる分野、例えば、ディレクトリサービスなどに有用である。
【符号の説明】
【００８２】
１０  ＬＤＡＰ処理装置
１１  プロトコル処理部
１２  検索処理部
１３  更新処理部
２０  検索結果記憶部
３０  検索結果更新装置
３１  グループ属性更新処理部
３２  グループ属性記憶部
３３  検索結果更新処理部
１００  情報管理装置
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
0005673224.tif 000002
【図２】
0005673224.tif 000003
【図３】
0005673224.tif 000004
【図４】
0005673224.tif 000005
【図５】
0005673224.tif 000006
【図６】
0005673224.tif 000007