(57)【特許請求の範囲】
【請求項１】
予め定義されたロールに基づいて、複数のユーザを管理する管理装置であって、
前記ロール毎にユーザの識別子をメンバとして格納しているデータベースから、検索条件に合致したロールに属するメンバを抽出する、ロール情報処理部と、
前記ロール情報処理部によって抽出された前記メンバをロールメンバ情報として格納する、メモリと、
前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を、メンバを種類に応じて前記データベースに格納する際の前記種類毎の格納形式、２以上のロールをネストして得られたネストロールに属するメンバを前記データベースに格納する際の格納形式、及び前記ロールメンバ情報の内容に基づいて、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうちのいずれかに決定する、格納形式決定部と、
を備えている、ことを特徴とする管理装置。
【請求項２】
前記ロールメンバ情報の内容として、抽出された前記メンバの種類毎の数、抽出された前記メンバのうち前記ネストロールに属しているメンバの数、前記検索条件に合致したロールのうち前記ネストロールに該当するロールの数、及び前記ネストロールに属しているメンバのうち２以上のロールに重複して属しているメンバの数が用いられる、請求項１に記載の管理装置。
【請求項３】
前記格納形式決定部が、更に、管理対象として有効である有効メンバに関する情報と、管理対象から除外される除外メンバに関する情報とを用いて、前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を決定する、請求項２に記載の管理装置。
【請求項４】
前記格納形式決定部が、
先ず、前記メンバについて予め設定されている条件と前記ロールメンバ情報の内容とに基づいて、前記第１の格納形式及び前記第２の格納形式のいずれかを暫定的に選択し、
次に、前記有効メンバの定義を用いて、抽出された前記メンバのうち前記有効メンバに該当するメンバを有効ロールメンバとして選択し、
更に、前記有効ロールメンバの数と前記暫定的に選択された格納形式とに基づいて、前記有効ロールメンバを前記メモリに格納する際の格納形式として、前記第１の格納形式及び前記第２の格納形式のいずれかを選択し、
そして、前記有効ロールメンバについて選択された格納形式と、予め設定された、前記除外メンバを前記メモリに格納する際の格納形式と、前記有効ロールメンバのうち前記除外メンバにも該当するメンバの数とを用いて、前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を決定する、請求項３に記載の管理装置。
【請求項５】
予め定義されたロールに基づいて複数のユーザを管理する際に用いられる方法であって、
（ａ）前記ロール毎にユーザの識別子をメンバとして格納しているデータベースから、検索条件に合致したロールに属するメンバを抽出する、ステップと、
（ｂ）前記（ａ）のステップで抽出された前記メンバをロールメンバ情報として、メモリに格納する際の格納形式を、メンバを種類に応じて前記データベースに格納する際の前記種類毎の格納形式、２以上のロールをネストして得られたネストロールに属するメンバを前記データベースに格納する際の格納形式、及び前記ロールメンバ情報の内容に基づいて、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうちのいずれかに決定する、ステップと、
を有している、ことを特徴とする格納形式の決定方法。
【請求項６】
コンピュータに、予め定義されたロールに基づいて複数のユーザを管理させるためのプログラムであって、
前記コンピュータに、
（ａ）前記ロール毎にユーザの識別子をメンバとして格納しているデータベースから、検索条件に合致したロールに属するメンバを抽出する、ステップと、
（ｂ）前記（ａ）のステップで抽出された前記メンバをロールメンバ情報として、メモリに格納する際の格納形式を、メンバを種類に応じて前記データベースに格納する際の前記種類毎の格納形式、２以上のロールをネストして得られたネストロールに属するメンバを前記データベースに格納する際の格納形式、及び前記ロールメンバ情報の内容に基づいて、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうちのいずれかに決定する、ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザをロールベースで管理する管理装置、特定のロールに属するユーザに関する情報をメモリに格納する際の格納形式を決定するための方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、企業などの種々のシステムで使用されるＩＤを集中管理するため、ロールベースの管理システムが提案されている（例えば、特許文献１参照。）。ロールベースの管理システムでは、ロール（役割）ごとに権限をグルーピングし、各ロールをユーザに割り当てることによって、ＩＤ管理が行われている。
【０００３】
また、ロールベースの管理システムでは、ロールに基づいて、ユーザの検索が行われ（「ロールメンバ検索処理」という）、そして、検索条件に合致したロールのユーザが、ロールメンバ情報として抽出される。
【０００４】
但し、ロールメンバ情報を取得するためには、都度、条件（クエリ）を指定して検索を行う必要があるため、ロールメンバ検索処理では、ＴＡＴ（Turn Around Time）が低下してしまう。そこで、ロールメンバ検索処理におけるＴＡＴの低下を防ぐために、管理システムでは、ロールメンバ情報（クエリの実行結果）をメモリ上にキャッシュすることが行われている。
【０００５】
また、より高速に検索結果をユーザに返却するため、キャッシュは、ロール毎の総ユーザ数分のビットマップによって作成されている。そして、キャッシュにおいて、条件に合致するユーザに対応するビットは「１」、それ以外のユーザに対応するビットは「０」として保持されている。
【０００６】
図１４は、従来からの管理システムを示すブロック図である。図１４に示すように、管理システム１００は、管理装置１１０と、ロール情報データベース１２０とを備えている。このうち、ロール情報データベース１２０は、ロール毎にユーザの識別子をメンバとして格納している。
【０００７】
管理装置１１０は、ロール情報処理部１１１と、ロール情報抽出処理部１１２と、メモリ１１３とを備え、実際には、サーバコンピュータによって構築されている。ロール情報処理部１１１は、ロール情報データベース１２０から、検索条件に合致したロールに属するメンバを抽出する。更に、ロール情報処理部１１１は、抽出したメンバを、ロールメンバ情報として、メモリ１１３に一時的に格納（キャッシュ）させる。
【０００８】
このとき、ロール情報処理部１１１は、既にメモリ１１３にキャッシュされているロールメンバ情報を上書きすることによって、又は、メモリ１１３にリフレッシュ処理を行った後に新たなロールメンバ情報を格納することによって、キャッシュを行う。図１４において、１３０は、キャッシュされているロールメンバ情報（以下「ロールメンバ情報キャッシュ」とする。）を示している。
【０００９】
ロール情報抽出処理部１１２は、メモリ１１３にアクセスすると、ロールメンバ情報キャッシュ１３０を抽出し、これから得られるロールメンバ情報を取得結果１４０として、出力する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００９−８７１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ところで、上述した従来の管理システムにおいては、ロールメンバ情報の格納形式として、ビットマップ形式が採用され、格納形式はビットマップ形式に固定されている。このため、メモリ１１３において、ロールメンバ情報キャッシュ１３０が占める記憶領域は、ロールメンバ情報の規模に比例して、即ち、ロール数及び総ユーザ数に比例して拡大することとなる。
【００１２】
更に、ロールメンバ情報の規模が大きくなりすぎると、メモリ１１３の記憶領域上に収まりきらない事態もある。そのため、ロールメンバ情報が大規模になる環境下では、ロールメンバ情報を全てメモリ１１３上に納めるようにするため、キャッシュする情報の量を減らす必要がある。
【００１３】
上記のような問題の解決手法としては、ロールメンバ情報のビットマップを圧縮することが考えられる。しかしながら、各ビットがロールとユーザとの関係をそのまま表現しているため、圧縮を行うと、これらの関係がわからなくなってしまう。言い換えると、検索に必要な情報は、ビットが１のユーザのみであるにも関わらず、ビットが０のユーザの情報であっても省略することができない。
【００１４】
一方、ロールメンバ情報の格納形式として配列形式を採用すれば、格納効率を向上することができるため、ロールメンバ情報の規模が大きくなりすぎた場合に、キャッシュがメモリ１１３の記憶領域上に収まりきらない事態の発生を抑制できる。しかし、格納形式が配列形式に固定されると、ロールメンバ情報の規模に拘わらず、ロール検索処理におけるＴＡＴが低下してしまう。
【００１５】
本発明の目的の一例は、上記問題を解消し、管理対象となるユーザとロールとの関係が表現された状態を維持しつつ、ＴＡＴの低下とメモリに格納される情報量の増大化とを抑制し得る、管理装置、格納形式の決定方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明の一側面における管理装置は、予め定義されたロールに基づいて、複数のユーザを管理する管理装置であって、
前記ロール毎にユーザの識別子をメンバとして格納しているデータベースから、検索条件に合致したロールに属するメンバを抽出する、ロール情報処理部と、
前記ロール情報処理部によって抽出された前記メンバをロールメンバ情報として格納する、メモリと、
前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を、メンバについて予め設定されている条件と前記ロールメンバ情報の内容とに基づいて、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうちのいずれかに決定する、格納形式決定部と、
を備えている、ことを特徴とする。
【００１７】
また、上記目的を達成するため、本発明の一側面における格納形式の決定方法は、予め定義されたロールに基づいて複数のユーザを管理する際に用いられる方法であって、
（ａ）前記ロール毎にユーザの識別子をメンバとして格納しているデータベースから、検索条件に合致したロールに属するメンバを抽出する、ステップと、
（ｂ）前記（ａ）のステップで抽出された前記メンバをロールメンバ情報として、メモリに格納する際の格納形式を、メンバについて予め設定されている条件と前記ロールメンバ情報の内容とに基づいて、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうちのいずれかに決定する、ステップと、
を有している、ことを特徴とする。
【００１８】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、予め定義されたロールに基づいて複数のユーザを管理させるためのプログラムであって、
前記コンピュータに、
（ａ）前記ロール毎にユーザの識別子をメンバとして格納しているデータベースから、検索条件に合致したロールに属するメンバを抽出する、ステップと、
（ｂ）前記（ａ）のステップで抽出された前記メンバをロールメンバ情報として、メモリに格納する際の格納形式を、メンバについて予め設定されている条件と前記ロールメンバ情報の内容とに基づいて、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうちのいずれかに決定する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１９】
以上の特徴により、本発明によれば、管理対象となるユーザとロールとの関係が表現された状態を維持しつつ、ＴＡＴの低下とメモリに格納される情報量の増大化とを抑制できる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の実施の形態における管理装置の構成を示すブロック図である。
【図２】図２は、本発明の実施の形態における管理装置の全体の動作について示すフロー図である。
【図３】図３は、図２に示したステップＡ２での処理を概念的に示す説明図である。
【図４】図４は、図２に示したステップＡ２を具体的に示すフロー図である。
【図５】図５は、図２に示したステップＡ４での処理を概念的に示す説明図である。
【図６】図６は、図２に示したステップＡ４を具体的に示すフロー図である。
【図７】図７は、図２に示したステップＡ５での処理を概念的に示す説明図である。
【図８】図８は、図２に示したステップＡ５を具体的に示すフロー図である。
【図９】図９は、中間ロールメンバの格納形式と有効ロールメンバの格納形式との関係を示す図である。
【図１０】図１０は、図２に示したステップＡ６での処理を概念的に示す説明図である。
【図１１】図１１は、図２に示したステップＡ６を具体的に示すフロー図である。
【図１２】図１２は、有効ロールメンバの格納形式と除外ロールメンバの格納形式との組み合わせと、最終的なロールメンバ情報の格納形式とを示す図である。
【図１３】図１３は、本発明の実施の形態における管理装置１０を実現するコンピュータの一例を示すブロック図である。
【図１４】図１４は、従来からの管理システムを示すブロック図である。
【発明を実施するための形態】
【００２１】
（発明の概要）
本発明は、ロールベースでユーザを管理する管理システムにおいて、検索条件に合致したロールに属するメンバを、ロールメンバ情報として、メモリに一時的に格納する際に、最適な格納形式を決定する。また、格納形式の決定は、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうち、いずれかを選択することによって行われる。第１の格納形式の例としては、ビットマップ形式が挙げられ、第２の格納形式の例としては、配列形式が挙げられる。
【００２２】
本発明では、格納形式の決定において、例えば、各ロールに属する静的メンバ、同じく動的メンバ、ネストされているロールに属するメンバ（ネストロールメンバ）、及び管理対象から例外的に除外されるメンバ（除外メンバ）、それぞれの格納形式、更に、それぞれのメンバの数等が用いられる。
【００２３】
具体的には、管理装置は、先ず、検索によって抽出された中間ロールメンバに対して、静的メンバ、動的メンバ、及びネストロールメンバそれぞれの各格納形式を入力として、メモリにおける格納形式の決定を試みる。ここで、中間ロールメンバとは、検索条件に合致したロールに属する全てのメンバであり、後述する有効メンバ及び除外メンバの全てを含む。また、ここで決定される中間ロールメンバの格納形式は、メモリに格納する際に適用される最終的な格納形式ではなく、暫定的な格納方式である。
【００２４】
そして、管理装置は、中間ロールメンバの格納形式を一意に決めることができる場合は、ロール格納形式管理テーブルに、決定した格納方式を登録し、更に、中間ロールメンバの格納形式の決定が済んでいるかどうかを示す決定判定フラグに、格納形式が決定済であることを示す値を返却する。一方、管理装置は、中間ロールメンバの格納形式を一意に決めることができない場合は、決定判定フラグに、格納形式が未決定であることを示す値を返却する。
【００２５】
次に、管理装置は、決定判定フラグの値から格納形式が未決定である場合は、静的メンバ、動的メンバ、ネストロールメンバそれぞれの数と、ネストロールの数と、２つ以上のロールに重複しているネストロールメンバの数との３つを入力として、中間ロールメンバの格納形式を決定する。
【００２６】
また、この決定において、管理装置は、例えば、静的メンバ、動的メンバ、ネストロールメンバのいずれかでもメンバの数が閾値よりも多い場合、ネストロールの数が閾値よりも多い場合、２つ以上のロールに重複しているネストロールメンバの数が少ない場合は、中間ロールメンバの格納形式をビットマップ形式とする。一方、管理装置は、これら以外の場合は、中間ロールメンバの格納形式を配列形式とする。なお、上記の各場合の判断は、静的メンバの数、動的メンバの数、各ネストロールメンバの数、ネストロールの数、重複しているメンバの数、の順に行うのが好ましい。
【００２７】
次に、管理装置は、有効メンバを特定可能な有効メンバマスクを用いて、中間ロールメンバとして抽出されたメンバの中から、有効メンバに該当するメンバ（以下、「有効ロールメンバ」とする。）を選択する。そして、管理装置は、中間ロールメンバの格納形式に基づいて、有効ロールメンバをメモリに格納する際の格納形式を決定する。
【００２８】
ここで、有効メンバとは、管理対象として有効なメンバを意味しており、有効メンバは、アカウントが有効なユーザを示している。また、有効メンバマスクは、全ユーザについて有効かどうかを特定する情報を有しており、通常、ビットマップ形式で保持されている。よって、中間ロールメンバの格納形式が配列形式に決定されている場合、有効ロールメンバをメモリに格納する際の格納形式は、有効メンバマスクの適用により、配列形式となる。
【００２９】
その後、管理装置は、有効ロールメンバの格納形式と、除外メンバをメモリに格納する際の格納形式とを入力として、最終的なロールメンバ情報の格納形式を決定する。ここで、除外メンバとは、管理対象から除外されるメンバを意味し、通常、管理者によって指定される。更に、中間ロールメンバとして抽出されたメンバのうち、除外メンバに該当するメンバを、「除外ロールメンバ」とする。
【００３０】
そして、管理装置は、例えば、有効ロールメンバの格納形式が配列形式の場合、除外ロールメンバの格納形式がビットマップ形式及び配列形式のいずれであっても、最終的な格納形式を配列形式とする。更に、管理装置は、有効ロールメンバの格納形式がビットマップ形式であり、除外ロールメンバの格納形式が配列形式である場合は、最終的な格納形式をビットマップ形式とする。一方、管理装置は、有効ロールメンバ及び除外ロールメンバともに格納形式がビットマップ形式の場合は、最終的な格納形式を一意には決定せず、例えば、有効ロールメンバのうち除外メンバにも該当するメンバの数と予め設定した閾値との比較結果に応じて、決定を行う。
【００３１】
このように、本発明では、ロールメンバ情報の格納形式は常に最適化される。よって、本発明によれば、ロールの数及びメンバの数が非常に大きい場合であっても、ロールメンバ検索処理の性能が劣化することはない。更に、ロールメンバ情報はメンバの状態が分かる形でメモリに格納される。
【００３２】
（実施の形態）
以下、本発明の実施の形態における管理装置、格納形式の決定方法、及びプログラムについて、図１〜図１２を参照しながら説明する。最初に、本実施の形態における管理装置の構成について図１を用いて説明する。図１は、本発明の実施の形態における管理装置の構成を示すブロック図である。
【００３３】
図１に示す管理システム５０は、図１４に示した管理システム１００と同様に、ロールベースの管理システムである。管理システム５０は、予め定義されたロールに基づいて複数のユーザを管理する管理装置１０と、ロール情報データベース２０とを備えている。
【００３４】
このうち、ロール情報データベース２０は、図１４に示したロール情報データベース１２０と同様に、ロール毎にユーザの識別子をメンバとして格納している。一方、本実施の形態において、管理装置１０は、図１４に示した管理装置１１０と異なる構成及び機能を有している。
【００３５】
図１に示すように、管理装置１０は、ロール情報処理部１１と、格納形式判断部１２と、メモリ１３と、ロール情報抽出処理部１４と、テーブル記憶部１５とを備えている。ロール情報処理部１１は、図１４に示したロール情報処理部１１１と同様に、ロール情報データベース２０から、検索条件に合致したロールに属するメンバを抽出する。
【００３６】
メモリ１３は、ロール情報処理部１１によって抽出されたメンバを、ロールメンバ情報として格納する。本実施の形態において、メモリ１３は、ロールメンバ情報を一時的に格納（キャッシュ）している。また、背景技術の欄において、図１４に示した例では、メモリは、ロールメンバ情報をビットマップ形式で格納するが、本実施の形態では、メモリ１１は、格納形式判断１２によって決定された格納形式で、ロール情報を格納する。
【００３７】
格納形式判断部１２は、ロールメンバ情報のメモリ１３での格納形式を、メンバについて予め設定されている条件とロールメンバ情報の内容とに基づいて、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうちのいずれかに決定する。
【００３８】
なお、先に述べたように、第１の格納形式としては、ビットマップ形式が挙げられ、第２の格納形式としては、配列形式が挙げられる。但し、本実施の形態において、第１の格納形式及び第２の格納形式は、これらに限定されるものではない。
【００３９】
また、図１において３０は、メモリ１３にキャッシュされているロールメンバ情報（ロールメンバ情報キャッシュ）を示している。ロール情報抽出処理部１４は、メモリ１３にアクセスすると、ロールメンバ情報キャッシュ３０を抽出し、これから得られるロールメンバ情報を取得結果４０として、出力する。テーブル記憶部１５は、後述する各テーブルを記憶している。
【００４０】
このように、管理装置１０では、状況に応じて、最適な格納形式が選択され、ロールメンバ情報は選択された格納形式でメモリ１３に格納される。つまり、管理装置１０においては、図１４に示した管理装置１１０と異なり、ロールメンバ情報のメモリへの格納方式がビットマップ形式に固定されていないので、ロールメンバ情報の規模に比例してメモリに求められるキャッシュ領域が拡大する事態の発生が抑制される。従って、管理装置１０によれば、管理対象となるユーザとロールとの関係が表現された状態を維持しつつ、ＴＡＴの低下とメモリ１３に格納される情報量の増大化とを抑制できる。
【００４１】
ここで、管理装置１０の構成について更に具体的に説明する。本実施の形態において、メンバについて予め設定されている条件としては、メンバを種類に応じてロール情報データベース２０に格納する際の種類毎の格納形式、及びネストロールメンバをロール情報データベース２０に格納する際の格納形式が挙げられる。
【００４２】
メンバの種類としては、例えば、静的メンバ及び動的メンバが挙げられる。具体的には、管理システム５０が、企業の社員の管理を目的としているのであれば、静的メンバとしては、人事情報に登録されないが業務を遂行するために権限を必要とする派遣社員、人事異動に影響を受けない運用管理者などが挙げられる。また、動的メンバとしては、「所属」が「経理部」のユーザ、「役職」が「課長」のユーザなどが挙げられ、動的メンバに該当するかどうかは、ユーザが持つ属性の値によって決定される。
【００４３】
ネストロールメンバとは、２以上のロールをネストして得られるネストロールに属するメンバをいう。例えば、ある企業において、社員Ａ及びＢが属している「第１システム部」と、社員Ｃ及びＤが属している「第２システム部」とがあり、これらに対応して、管理装置１０において、「第１システム部ロール」と、「第２システム部ロール」とが設定されているとする。そして、これら二つのロールによってネストロール（システムロール）を作成した場合、社員Ａ、社員Ｂ、社員Ｃ、社員Ｄは、ネストロールメンバとして設定される。
【００４４】
また、図１に示すように、本実施の形態では、静的メンバの格納形式、動的メンバの格納形式、ネストロールメンバの格納形式は、ロール格納形式管理テーブル３２に登録される。ロール格納形式管理テーブル３２は、後述する最終格納形式管理テーブル３３と共に、管理テーブル群３１を構成している。また、管理テーブル群３１は、テーブル記憶部１５に格納されている。
【００４５】
更に、本実施の形態において、ロールメンバ情報の内容としては、抽出されたメンバの種類毎の数（静的メンバの数、動的メンバの数）、抽出されたメンバのうちネストロールに属しているメンバの数、検索条件に合致したロールのうちネストロールに該当するロールの数、及びネストロールに属しているメンバのうち２以上のロールに重複して属しているメンバの数が挙げられる。また、これらの数は、格納形式判断部１２によって、ロールメンバ情報から取得され、テーブル記憶部１５に格納される。
【００４６】
具体的には、抽出されたメンバの種類毎の数、及び抽出されたメンバのうちネストロールに属しているメンバの数は、ロールメンバ数管理テーブル３４に登録されて、テーブル記憶部１５に格納される。また、検索条件に合致したロールのうちネストロールに該当するロールの数は、ネストロール数管理テーブル３５に登録されて、テーブル記憶部１５に格納される。更に、ネストロールに属しているメンバのうち２以上のロールに重複して属しているメンバの数は、重複度管理テーブル３６に登録されて、テーブル記憶部１５に格納される。
【００４７】
また、本実施の形態においては、格納形式決定部１２は、更に、管理対象として有効である有効メンバに関する情報、及び管理対象から除外される除外メンバに関する情報も用いて、ロールメンバ情報のメモリ１３での格納形式を決定する。有効メンバに関する情報としては、有効メンバの定義、又は有効メンバのリストが挙げられる。更に、除外メンバに関する情報としては、除外メンバの定義、又は除外メンバのリストが挙げられる。加えて、除外メンバに関する情報としては、除外メンバをメモリ１３に格納する際の格納形式も挙げられる。また、有効メンバに関する情報及び除外メンバに関する情報は、テーブル記憶部１５に予め格納されている。
【００４８】
具体的には、格納形式決定部１２は、先ず、検索によって抽出されたメンバを上述した中間ロールメンバとする。そして、格納形式決定部１２は、メンバについて予め設定されている条件とロールメンバ情報の内容とに基づいて、中間ロールメンバの格納形式として、第１の格納形式及び第２の格納形式のいずれかを選択する。選択された格納形式は、ロール格納形式管理テーブル３２に格納される。
【００４９】
次に、格納形式決定部１２は、有効メンバの定義を用いて、中間ロールメンバのうち有効メンバに該当するメンバ（有効ロールメンバ）を選択する。そして、格納形式決定部１２は、有効ロールメンバの数と中間ロールメンバの格納形式とに基づいて、有効ロールメンバをメモリ１３に格納する際の格納形式として、第１の格納形式及び第２の格納形式のいずれかを選択する。また、この場合も、選択された格納形式は、ロール格納形式管理テーブル３２に格納される。
【００５０】
その後、格納形式決定部１２は、有効ロールメンバについて選択された格納形式と、テーブル記憶部１５に格納されている除外メンバの格納形式と、有効ロールメンバのうち除外メンバにも該当するメンバ（除外ロールメンバ）の数とを用いて、ロールメンバ情報のメモリ１３での格納形式を最終的に決定する。最終的に決定された格納形式は、最終格納形式管理テーブル３３に格納される。
【００５１】
次に、本発明の実施の形態における管理装置１０の動作について図２〜図１２を用いて説明する。また、以下の説明においては、適宜図１を参酌する。更に、本実施の形態では、管理装置１０を動作させることによって、格納形式の決定方法が実施される。よって、本実施の形態における格納形式の決定方法の説明は、以下の管理装置１０の動作説明に代える。
【００５２】
先ず、図２に基づいて、管理装置１０の全体の動作について説明する。図２は、本発明の実施の形態における管理装置の全体の動作について示すフロー図である。なお、図２に示す各ステップについては、後に、図３〜図１２を用いて更に具体的に説明する。
【００５３】
図２に示すように、最初に、管理装置１０において、ロール情報処理部１１が、ロール情報データベース２０にアクセスし、検索条件に合致したロールに属するメンバ（中間ロールメンバ）を抽出する（ステップＡ１）。
【００５４】
次に、格納形式判断部１２が、ロール格納形式管理テーブル３２に登録されているデータを用いて、中間ロールメンバの格納形式を決定する（ステップＡ２）。ステップＡ２によって決定できたときは、格納形式判断部１２は、決定判定フラグに、格納形式が決定済であることを示す値を返却する。なお、決定判定フラグは、ロール格納形式管理テーブル３２に設定されている。また、中間ロールメンバの格納形式は、ロール格納形式管理テーブル３２に格納される。
【００５５】
次に、格納形式判断部１２は、ステップＡ２において中間ロールメンバの格納形式が決定されているかどうかを判断する（ステップＡ３）。具体的には、格納形式判断部１２は、決定判定フラグの値を取得し、取得した値から判断を行う。
【００５６】
ステップＡ３の判断の結果、中間ロールメンバの格納形式が決定されている場合は、格納形式判断部１２は、ステップＡ５を実行する。一方、ステップＡ３の判断の結果、中間ロールメンバの格納形式が決定されていない場合は、格納形式判断部１２は、ロールメンバ数管理テーブル３４、ネストロール数管理テーブル３５、及び重複度管理テーブル３６に登録されているデータを用いて、再度、中間ロールメンバの格納形式を決定する（ステップＡ４）。ステップＡ４の実行後も、格納形式判断部１２は、ステップＡ５を実行する。
【００５７】
次に、ステップＡ５では、格納形式判断部１２は、有効メンバの定義を用いてマスク処理を行い、そして、中間ロールメンバのうち有効メンバに該当するメンバ（有効ロールメンバ）を選択する。そして、格納形式判断部１２は、有効ロールメンバの格納形式を選択する。
【００５８】
なお、「有効メンバの定義」は、先に、発明の概要において述べた「有効メンバマスク」に相当する。以下、有効メンバの定義は、有効メンバマスクと記載する。また、具体的には、有効メンバマスクとしては、ユーザの識別子毎（メンバ毎）に、有効及び無効のいずれであるかを示す値が登録されたテーブルが用いられる。
【００５９】
次に、格納形式判断部１２は、有効ロールメンバについて選択された格納形式と、除外メンバの格納形式と、有効ロールメンバのうち除外メンバにも該当するメンバ（除外ロールメンバ）の数とを用いて、ロールメンバ情報のメモリ１３での格納形式を最終的に決定する（ステップＡ６）。
【００６０】
次に、ロール情報処理部１１は、ステップＡ６で決定された格納形式で、ロールメンバ情報をメモリ１３に格納させる（ステップＡ７）。その後、ロール情報抽出処理部１４は、メモリ１３にアクセスすると、ロールメンバ情報キャッシュ３０を抽出し、これから得られるロールメンバ情報を取得結果４０として出力する（ステップＡ８）。
【００６１】
続いて、図３及び図４を用いて、図２に示したステップＡ２を具体的に説明する。図３は、図２に示したステップＡ２での処理を概念的に示す説明図である。図４は、図２に示したステップＡ２を具体的に示すフロー図である。
【００６２】
図３に示すように、ステップＡ２の処理では、ロール格納形式管理テーブル３２に登録されている、静的メンバの格納形式、動的メンバの格納形式、ネストロールメンバの格納形式が入力に用いられる。そして、中間ロールメンバの格納形式の決定が試みられる。
【００６３】
具体的には、図４に示すように、最初に、格納形式判断部１２は、ロール格納形式管理テーブルを用いて、静的メンバの格納形式がビットマップ形式かどうかを判定する（ステップＡ２１）。ステップＡ２１の判定の結果、ビットマップ形式である場合は、格納形式判断部１２は、ステップＡ２５を実行する。
【００６４】
ステップＡ２１の判定の結果、ビットマップ形式でない場合は、格納形式判断部１２は、ロール格納形式管理テーブルを用いて、動的メンバの格納形式がビットマップ形式かどうかを判定する（ステップＡ２２）。ステップＡ２２の判定の結果、ビットマップ形式である場合は、この場合も、格納形式判断部１２は、ステップＡ２５を実行する。
【００６５】
ステップＡ２２の判定の結果、ビットマップ形式でない場合は、格納形式判断部１２は、ロール格納形式管理テーブルを用いて、ネストロールメンバの格納形式がビットマップ形式かどうかを判定する（ステップＡ２３）。ステップＡ２３の判定の結果、ビットマップ形式である場合は、この場合も、格納形式判断部１２は、ステップＡ２５を実行する。
【００６６】
一方、ステップＡ２３の判定の結果、ビットマップ形式でない場合は、静的メンバ、動的メンバ、及びネストロールメンバ全ての格納形式がビットマップ形式でないことから、格納形式判断部１２は、この時点では、中間ロールメンバの格納形式を選択できないと判断する。そして、格納形式判断部１２は、決定判定フラグの値に、格納形式が未決定であることを示す値を返却する（ステップＡ２４）。
【００６７】
また、ステップＡ２５が実行される場合、即ち、静的メンバ、動的メンバ、及びネストロールメンバの少なくとも一つの格納形式がビットマップ形式である場合は、格納形式判断部１２は、中間ロールメンバの格納形式をビットマップ形式に決定する。更に、決定判定フラグの値に、中間ロールメンバの格納形式が決定済みであることを示す値を返却する。
【００６８】
続いて、図５及び図６を用いて、図２に示したステップＡ４を具体的に説明する。図５は、図２に示したステップＡ４での処理を概念的に示す説明図である。図６は、図２に示したステップＡ４を具体的に示すフロー図である。
【００６９】
図５に示すように、ステップＡ４の処理では、ロールメンバ数管理テーブル３４、ネストロール数管理テーブル３５、及び重複度管理テーブル３６に登録されているデータが入力として用いられる。そして、ステップＡ２において中間ロールメンバの格納形式が未決定である場合、即ち、決定判定フラグの値が未決定であることを示す値である場合に、再度、別の処理によって、中間ロールメンバの格納形式が決定される。
【００７０】
具体的には、図６に示すように、最初に、格納形式判断部１２は、ロールメンバ数管理テーブル３４を用いて、静的メンバの数が、それに対応して設定された閾値以上であるかどうかを判定する（ステップＡ４１）。ステップＡ４１の判定の結果、閾値以上である場合は、格納形式判断部１２は、ステップＡ４７を実行する。
【００７１】
ステップＡ４１の判定の結果、閾値未満である場合は、格納形式判断部１２は、ロールメンバ数管理テーブル３４を用いて、動的メンバの数が、それに対応して設定された閾値以上であるかどうかを判定する（ステップＡ４２）。ステップＡ４２の判定の結果、閾値以上である場合は、格納形式判断部１２は、この場合も、ステップＡ４７を実行する。
【００７２】
ステップＡ４２の判定の結果、閾値未満である場合は、格納形式判断部１２は、ロールメンバ数管理テーブル３４を用いて、ネストロールメンバの数が、それに対応して設定された閾値以上であるかどうかを判定する（ステップＡ４３）。ステップＡ４３の判定の結果、閾値以上である場合は、格納形式判断部１２は、この場合も、ステップＡ４７を実行する。
【００７３】
ステップＡ４３の判定の結果、閾値未満である場合は、格納形式判断部１２は、ネストロール数管理テーブル３５を用いて、検索条件に合致したロールのうちネストロールに該当するロールの数が、それに対応して設定された閾値以上であるかどうかを判定する（ステップＡ４４）。
【００７４】
ステップＡ４４の判定の結果、閾値未満である場合は、格納形式判断部１２は、中間ロールメンバの格納形式を配列形式に決定する（ステップＡ４５）。一方、ステップＡ４４の判定の結果、閾値以上である場合は、格納形式判断部１２は、重複度管理テーブル３６を用いて、ネストロールに属しているメンバのうち２以上のロールに重複して属しているメンバの数が、それに対応して設定された閾値以上であるかどうかを判定する（ステップＡ４６）。
【００７５】
ステップＡ４６の判定の結果、閾値以上である場合は、格納形式判断部１２は、上述したステップＡ４５を実行する。一方、ステップＡ４６の判定の結果、閾値未満である場合は、格納形式判断部１２は、ステップＡ４７を実行する。
【００７６】
ステップＡ４７では、格納形式判断部１２は、中間ロールメンバの格納形式をビットマップ形式に決定する。
【００７７】
このように、ステップＡ４１〜Ａ４７が実行され、中間ロールメンバの格納形式が決定される。決定された中間ロールメンバの格納形式は、ロール格納形式管理テーブル３２に格納される。
【００７８】
なお、ステップＡ４１、ステップＡ４２、ステップＡ４３、ステップＡ４４、ステップＡ４６で用いられる閾値は、管理システムの規模などに応じて適宜設定され、特に限定されるものではない。例えば、閾値としては、判定対象となるメンバの１ロール当たりの所属数の平均値が挙げられる。また、この場合において、閾値が大きくなり過ぎると、処理時間のオーバーヘッドが発生する可能性があることから、例えば、管理対象となるユーザの数が１万人程度の大規模環境下においては、その１％にあたる１００程度を上記閾値の上限とするのが良い。
【００７９】
続いて、図７〜図９を用いて、図２に示したステップＡ５を具体的に説明する。図７は、図２に示したステップＡ５での処理を概念的に示す説明図である。図８は、図２に示したステップＡ５を具体的に示すフロー図である。図９は、中間ロールメンバの格納形式と有効ロールメンバの格納形式との関係を示す図である。
【００８０】
図７に示すように、ステップＡ５の処理では、中間ロールメンバの格納形式と、テーブル記憶部１５に予め格納されている有効メンバマスクとが、入力として用いられる。そして、格納形式判断部１２は、有効ロールメンバを特定し、更に、有効ロールメンバのメモリ１３での格納形式を選択する。
【００８１】
具体的には、図８に示すように、最初に、格納形式判断部１２は、中間ロールメンバの格納形式が配列形式かどうかを判定する（ステップＡ５１）。ステップＡ５１の判定の結果、配列形式である場合は、有効メンバマスクが有する情報によって中間ロールメンバが増えることはありえない。このため、格納形式判断部１２は、有効ロールメンバの格納形式として、配列形式を選択する（ステップＡ５４）。
【００８２】
一方、ステップＡ５１の判定の結果、配列形式でない場合（ビットマップ形式である場合）は、格納形式判断部１２は、中間ロールメンバのうち、有効メンバに該当するメンバの数が閾値以上であるかどうかを判定する（ステップＡ５２）。
【００８３】
具体的には、ステップＡ５２では、格納形式判断部１２は、中間ロールメンバに対して、有効メンバマスクを適用して、有効ロールメンバを選択し、有効ロールメンバの数を特定する。そして、格納形式判断部１２は、有効ロールメンバの数と、それに対応して設定された閾値とを比較し、判定を行う。
【００８４】
また、本実施の形態において、ステップＡ５２で示された判定が行われるのは、中間ロールメンバの格納形式がビットマップ形式である場合は、図９に示すように、有効ロールメンバの格納形式は、有効ロールメンバの数に応じて選択する必要があるからである。
【００８５】
ステップＡ５２の判定の結果、有効メンバに該当するメンバの数が閾値以上である場合、即ち、有効ロールメンバの数が多い場合は、格納形式判断部１２は、ステップＡ５４を実行し、有効ロールメンバの格納形式として、配列形式を選択する。
【００８６】
一方、ステップＡ５２の判定の結果、有効メンバに該当するメンバの数が閾値未満である場合、即ち、有効ロールメンバの数が少ない場合は、格納形式判断部１２は、有効ロールメンバの格納形式として、ビットマップ形式を選択する（ステップＡ５３）。
【００８７】
なお、ステップＡ５２で用いられる閾値は、図６に示したステップＡ４１、Ａ４２、Ａ４３、Ａ４４、Ａ４６で示した場合と同様に、管理システムの規模などに応じて適宜設定され、特に限定されるものではない。例えば、この場合の閾値としても、判定対象となる有効メンバの１ロール当たりの所属数の平均値が挙げられる。また、この場合においても、閾値が大きくなり過ぎると、処理時間のオーバーヘッドが発生する可能性があることから、例えば、管理対象となるユーザの数が１万人程度の大規模環境下においては、その１％にあたる１００程度を上記閾値の上限とするのが良い。
【００８８】
続いて、図１０〜図１２を用いて、図２に示したステップＡ６を具体的に説明する。図１０は、図２に示したステップＡ６での処理を概念的に示す説明図である。図１１は、図２に示したステップＡ６を具体的に示すフロー図である。図１２は、有効ロールメンバの格納形式と除外ロールメンバの格納形式との組み合わせと、最終的なロールメンバ情報の格納形式とを示す図である。
【００８９】
図１０に示すように、ステップＡ６の処理では、有効ロールメンバの格納形式と、テーブル記憶部１５に予め格納されている除外ロールメンバの格納形式とが、入力として用いられる。そして、格納形式判断部１２は、有効ロールメンバから除外メンバを除いた最終的なロールメンバの格納形式を決定し、決定した格納形式を、最終的に、ロールメンバ情報のメモリ１３での格納形式とする。
【００９０】
具体的には、図１１に示すように、最初に、格納形式判断部１２は、有効ロールメンバの格納形式が配列形式かどうかを判定する（ステップ６１）。ステップＡ６１の判定の結果、有効ロールメンバの格納形式が配列形式である場合は、除外ロールメンバの格納形式が配列形式及びビットマップ形式のいずれであっても、最終的なロールメンバの格納形式は、配列形式となる（図１２参照）。よって、この場合、格納形式判断部１２は、ロールメンバ情報のメモリ１３での格納形式として、配列形式を選択する（ステップＡ６５）。
【００９１】
ステップＡ６１の判定の結果、有効ロールメンバの格納形式が配列形式でない場合（ビットマップ形式である場合）は、除外ロールメンバの格納形式が配列形式であるかどうかを判定する（ステップＡ６２）。ステップＡ６２の判定の結果、除外ロールメンバの格納形式が配列形式である場合は、図１２に示すように、格納形式判断部１２は、ロールメンバ情報のメモリ１３での格納形式として、ビットマップ形式を選択する（ステップＡ６４）。
【００９２】
一方、ステップＡ６２の判定の結果、除外ロールメンバの格納形式が配列形式でない場合（ビットマップ形式である場合）は、有効ロールメンバの格納形式と除外ロールメンバの格納形式とは共にビットマップ形式である。この場合は、図１２に示すように、それぞれに所属するメンバによって、最終的なロールメンバのメンバ数は変動するため、一意に格納形式を決めることができなくなる。
【００９３】
そのため、格納形式判断部１２は、有効ロールメンバのうち除外メンバにも該当するメンバ（除外ロールメンバ）の数が閾値以上であるかどうかを判定する（ステップＡ６３）。具体的には、格納形式判断部１２は、有効ロールメンバのうち除外メンバにも該当するメンバ（除外ロールメンバ）を特定し、特定したメンバの数と、それに対応して設定された閾値とを比較し、判定を行う。
【００９４】
ステップＡ６３の判定の結果、除外メンバに該当するメンバの数が閾値以上である場合、即ち、除外メンバの数が多い場合は、格納形式判断部１２は、ステップＡ６５を実行し、ロールメンバ情報のメモリ１３での格納形式として、配列形式を選択する。
【００９５】
一方、ステップＡ６３の判定の結果、除外メンバに該当するメンバの数が閾値未満である場合、即ち、除外メンバの数が少ない場合は、格納形式判断部１２は、ステップＡ６４を実行し、ロールメンバ情報のメモリ１３での格納形式として、ビットマップ形式を選択する。
【００９６】
なお、ステップＡ６３で用いられる閾値は、図６に示したステップＡ４１、Ａ４２、Ａ４３、Ａ４４、Ａ４６で示した場合と同様に、管理システムの規模などに応じて適宜設定され、特に限定されるものではない。例えば、この場合の閾値としても、判定対象となる除外メンバの１ロール当たりの所属数の平均値が挙げられる。また、この場合においても、閾値が大きくなり過ぎると、処理時間のオーバーヘッドが発生する可能性があることから、例えば、管理対象となるユーザの数が１万人程度の大規模環境下においては、その１％にあたる１００程度を上記閾値の上限とするのが良い。
【００９７】
以上、本実施の形態によれば、以下の第１〜第３の効果を得ることができる。第１の効果は、ロールメンバの状態がわかる形でロールメンバ情報を必要に応じて圧縮できる点である。その理由は、処理速度を優先した第１の格納形式と格納効率を優先した第２の格納形式との２つの格納形式を、各ロールのメンバ数に応じて切替えることができるからである。
【００９８】
第１の格納形式としては、ロールの条件に合致するユーザに対応したビットを１とし、それ以外のユーザに対応したビットを０とするビットマップ形式が挙げられる。また、第２の格納形式としては、条件に合致するユーザのキー属性を一意に特定できる配列形式が挙げられる。
【００９９】
第２の効果は、圧縮を行った場合であっても、ロールメンバの検索処理において性能劣化が生じにくく、ＴＡＴの低下を防ぐことができる点である。その理由は、状況に拘わらず、常に、メモリの圧縮効率（格納効率）のみを考慮すると、ロールメンバの検索処理の性能は低下してしまうが、本実施の形態では、メンバ数が多い場合など、必要に応じて、格納形式としてビットマップ形式も利用されるからである。
【０１００】
第３の効果は、最終的に抽出されるロールメンバ以外にも、静的メンバ、動的メンバ、除外ロールメンバなども抽出することができる点である。その理由は、最終的なロールメンバの導出過程で静的メンバ、動的メンバ、除外メンバなどの情報も保持され、これらの情報も、そのまま結果として出力されることが可能なためである。
【０１０１】
本発明の実施の形態におけるプログラムは、コンピュータに、図２に示すステップＡ１〜Ａ８、図４に示すステップＡ２１〜Ａ２４、図６に示すステップＡ４１〜Ａ４７、図８に示すステップＡ５１〜Ａ５４、図１１に示すステップＡ６１〜Ａ６５を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における管理装置と格納形式の決定方法とを実現することができる。
【０１０２】
この場合、コンピュータのＣＰＵ（Central Processing Unit）は、ロール情報処理部１１、格納形式判断部１２、及びロール情報抽出処理部１４として機能し、処理を行なう。また、コンピュータのメインメモリが、メモリ１３として機能する。更に、コンピュータに備えられたハードディスク等の記憶装置が、テーブル記憶部１５として機能する。
【０１０３】
ここで、実施の形態におけるプログラムを実行することによって、管理装置１０を実現するコンピュータについて図１３を用いて説明する。図１３は、本発明の実施の形態における管理装置１０を実現するコンピュータの一例を示すブロック図である。
【０１０４】
図１３に示すように、コンピュータ６０は、ＣＰＵ６１と、メインメモリ６２と、記憶装置６３と、入力インターフェイス６４と、表示コントローラ６５と、データリーダ／ライタ６６と、通信インターフェイス６７とを備える。これらの各部は、バス７１を介して、互いにデータ通信可能に接続される。
【０１０５】
ＣＰＵ６１は、記憶装置６３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ６２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ６２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体７０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス６７を介して接続されたインターネット上で流通するものであっても良い。
【０１０６】
また、記憶装置６３の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス６４は、ＣＰＵ６１と、キーボード及びマウスといった入力機器６８との間のデータ伝送を仲介する。表示コントローラ６５は、ディスプレイ装置６９と接続され、ディスプレイ装置６９での表示を制御する。データリーダ／ライタ６６は、ＣＰＵ６１と記録媒体７０との間のデータ伝送を仲介し、記録媒体７０からのプログラムの読み出し、及びコンピュータ６０における処理結果の記録媒体７０への書き込みを実行する。通信インターフェイス６７は、ＣＰＵ６１と、他のコンピュータとの間のデータ伝送を仲介する。
【０１０７】
また、記録媒体７０の具体例としては、ＣＦ（Compact Flash）及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【０１０８】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１５）によって表現することができるが、以下の記載に限定されるものではない。
【０１０９】
（付記１）
予め定義されたロールに基づいて、複数のユーザを管理する管理装置であって、
前記ロール毎にユーザの識別子をメンバとして格納しているデータベースから、検索条件に合致したロールに属するメンバを抽出する、ロール情報処理部と、
前記ロール情報処理部によって抽出された前記メンバをロールメンバ情報として格納する、メモリと、
前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を、メンバについて予め設定されている条件と前記ロールメンバ情報の内容とに基づいて、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうちのいずれかに決定する、格納形式決定部と、
を備えている、ことを特徴とする管理装置。
【０１１０】
（付記２）
前記メンバについて予め設定されている条件として、メンバを種類に応じて前記データベースに格納する際の前記種類毎の格納形式、及び２以上のロールをネストして得られたネストロールに属するメンバを前記データベースに格納する際の格納形式が用いられる、付記１に記載の管理装置。
【０１１１】
（付記３）
前記ロールメンバ情報の内容として、抽出された前記メンバの種類毎の数、抽出された前記メンバのうち前記ネストロールに属しているメンバの数、前記検索条件に合致したロールのうち前記ネストロールに該当するロールの数、及び前記ネストロールに属しているメンバのうち２以上のロールに重複して属しているメンバの数が用いられる、付記２に記載の管理装置。
【０１１２】
（付記４）
前記格納形式決定部が、更に、管理対象として有効である有効メンバに関する情報と、管理対象から除外される除外メンバに関する情報とを用いて、前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を決定する、付記３に記載の管理装置。
【０１１３】
（付記５）
前記格納形式決定部が、
先ず、前記メンバについて予め設定されている条件と前記ロールメンバ情報の内容とに基づいて、前記第１の格納形式及び前記第２の格納形式のいずれかを暫定的に選択し、
次に、前記有効メンバの定義を用いて、抽出された前記メンバのうち前記有効メンバに該当するメンバを有効ロールメンバとして選択し、
更に、前記有効ロールメンバの数と前記暫定的に選択された格納形式とに基づいて、前記有効ロールメンバを前記メモリに格納する際の格納形式として、前記第１の格納形式及び前記第２の格納形式のいずれかを選択し、
そして、前記有効ロールメンバについて選択された格納形式と、予め設定された、前記除外メンバを前記メモリに格納する際の格納形式と、前記有効ロールメンバのうち前記除外メンバにも該当するメンバの数とを用いて、前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を決定する、付記４に記載の管理装置。
【０１１４】
（付記６）
予め定義されたロールに基づいて複数のユーザを管理する際に用いられる方法であって、
（ａ）前記ロール毎にユーザの識別子をメンバとして格納しているデータベースから、検索条件に合致したロールに属するメンバを抽出する、ステップと、
（ｂ）前記（ａ）のステップで抽出された前記メンバをロールメンバ情報として、メモリに格納する際の格納形式を、メンバについて予め設定されている条件と前記ロールメンバ情報の内容とに基づいて、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうちのいずれかに決定する、ステップと、
を有している、ことを特徴とする格納形式の決定方法。
【０１１５】
（付記７）
前記（ｂ）のステップにおいて、前記メンバについて予め設定されている条件として、メンバを種類に応じて前記データベースに格納する際の前記種類毎の格納形式、及び２以上のロールをネストして得られたネストロールに属するメンバを前記データベースに格納する際の格納形式が用いられる、付記６に記載の格納形式の決定方法。
【０１１６】
（付記８）
前記（ｂ）のステップにおいて、前記ロールメンバ情報の内容として、抽出された前記メンバの種類毎の数、抽出された前記メンバのうち前記ネストロールに属しているメンバの数、前記検索条件に合致したロールのうち前記ネストロールに該当するロールの数、及び前記ネストロールに属しているメンバのうち２以上のロールに重複して属しているメンバの数が用いられる、付記７に記載の格納形式の決定方法。
【０１１７】
（付記９）
前記（ｂ）のステップにおいて、管理対象として有効である有効メンバに関する情報と、管理対象から除外される除外メンバに関する情報とを用いて、前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を決定する、付記８に記載の格納形式の決定方法。
【０１１８】
（付記１０）
前記（ｂ）のステップが、更に、
（ｂ１）前記メンバについて予め設定されている条件と前記ロールメンバ情報の内容とに基づいて、前記第１の格納形式及び前記第２の格納形式のいずれかを暫定的に選択する、ステップと、
（ｂ２）前記有効メンバの定義を用いて、抽出された前記メンバのうち前記有効メンバに該当するメンバを有効ロールメンバとして選択する、ステップと、
（ｂ３）前記有効ロールメンバの数と前記暫定的に選択された格納形式とに基づいて、前記有効ロールメンバを前記メモリに格納する際の格納形式として、前記第１の格納形式及び前記第２の格納形式のいずれかを選択する、ステップと、
（ｂ４）前記有効ロールメンバについて選択された格納形式と、予め設定された、前記除外メンバを前記メモリに格納する際の格納形式と、前記有効ロールメンバのうち前記除外メンバにも該当するメンバの数とを用いて、前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を決定する、ステップと、
を有している、付記９に記載の格納形式の決定方法。
【０１１９】
（付記１１）
コンピュータに、予め定義されたロールに基づいて複数のユーザを管理させるためのプログラムであって、
前記コンピュータに、
（ａ）前記ロール毎にユーザの識別子をメンバとして格納しているデータベースから、検索条件に合致したロールに属するメンバを抽出する、ステップと、
（ｂ）前記（ａ）のステップで抽出された前記メンバをロールメンバ情報として、メモリに格納する際の格納形式を、メンバについて予め設定されている条件と前記ロールメンバ情報の内容とに基づいて、処理速度を優先した第１の格納形式、及び格納効率を優先した第２の格納形式のうちのいずれかに決定する、ステップと、
を実行させるプログラム。
【０１２０】
（付記１２）
前記（ｂ）のステップにおいて、前記メンバについて予め設定されている条件として、メンバを種類に応じて前記データベースに格納する際の前記種類毎の格納形式、及び２以上のロールをネストして得られたネストロールに属するメンバを前記データベースに格納する際の格納形式が用いられる、付記１１に記載のプログラム。
【０１２１】
（付記１３）
前記（ｂ）のステップにおいて、前記ロールメンバ情報の内容として、抽出された前記メンバの種類毎の数、抽出された前記メンバのうち前記ネストロールに属しているメンバの数、前記検索条件に合致したロールのうち前記ネストロールに該当するロールの数、及び前記ネストロールに属しているメンバのうち２以上のロールに重複して属しているメンバの数が用いられる、付記１２に記載のプログラム。
【０１２２】
（付記１４）
前（ｂ）のステップにおいて、管理対象として有効である有効メンバに関する情報と、管理対象から除外される除外メンバに関する情報とを用いて、前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を決定する、付記１３に記載のプログラム。
【０１２３】
（付記１５）
前記（ｂ）のステップが、更に、
（ｂ１）前記メンバについて予め設定されている条件と前記ロールメンバ情報の内容とに基づいて、前記第１の格納形式及び前記第２の格納形式のいずれかを暫定的に選択する、ステップと、
（ｂ２）前記有効メンバの定義を用いて、抽出された前記メンバのうち前記有効メンバに該当するメンバを有効ロールメンバとして選択する、ステップと、
（ｂ３）前記有効ロールメンバの数と前記暫定的に選択された格納形式とに基づいて、前記有効ロールメンバを前記メモリに格納する際の格納形式として、前記第１の格納形式及び前記第２の格納形式のいずれかを選択する、ステップと、
（ｂ４）前記有効ロールメンバについて選択された格納形式と、予め設定された、前記除外メンバを前記メモリに格納する際の格納形式と、前記有効ロールメンバのうち前記除外メンバにも該当するメンバの数とを用いて、前記メモリにおいて前記ロールメンバ情報を格納する際の格納形式を決定する、ステップと、
を有している、付記１４に記載のプログラム。
【産業上の利用可能性】
【０１２４】
以上、本発明によれば、ロールベースの管理システムにおいて、管理対象となるユーザとロールとの関係が表現された状態を維持しつつ、ＴＡＴの低下とメモリに格納される情報量の増大化とを抑制できる。本発明は、ロールベースの管理システムにおいて有用である。
【符号の説明】
【０１２５】
１０  管理装置
１１  ロール情報処理部
１２  格納形式判断部
１３  メモリ
１４  ロール情報抽出処理部
１５  テーブル記憶部
２０  リール情報データベース
３０  ロールメンバ情報キャッシュ
３１  管理テーブル群
３２  ロール格納形式管理テーブル
３３  最終格納形式管理テーブル
４０  取得結果
５０  管理システム
６０  コンピュータ
６１  ＣＰＵ
６２  メインメモリ
６３  記憶装置
６４  入力インターフェイス
６５  表示コントローラ
６６  データリーダ／ライタ
６７  通信インターフェイス
６８  入力機器
６９  ディスプレイ装置
７０  記録媒体
７１  バス
１００  管理システム
１１０  管理装置
１１１  ロール情報処理部
１１２  ロール情報抽出処理部
１１３  メモリ
１３０  ロールメンバ情報キャッシュ
１４０  取得結果
【図１】
0005664117.tif 000002
【図２】
0005664117.tif 000003
【図３】
0005664117.tif 000004
【図４】
0005664117.tif 000005
【図５】
0005664117.tif 000006
【図６】
0005664117.tif 000007
【図７】
0005664117.tif 000008
【図８】
0005664117.tif 000009
【図９】
0005664117.tif 000010
【図１０】
0005664117.tif 000011
【図１１】
0005664117.tif 000012
【図１２】
0005664117.tif 000013
【図１３】
0005664117.tif 000014
【図１４】
0005664117.tif 000015