(57)【要約】【課題】ルールテーブルを効率的に生成することができるルールテーブル生成装置、生成方法および生成プログラムを提供する。【解決手段】本発明に係るルールテーブル生成装置は、ワークフローに基づき、業務プロセスの情報と、業務プロセスの各タスクにおいてアクセスするアクセス情報との入力を受け付ける入力部１０と、業務プロセスの情報を隣接行列に変換する隣接行列生成部３０と、隣接行列を束構造化して隣接行列テーブルを作成する隣接行列束構造化部２０と、業務プロセスの情報に基づき、各タスクに対応する隣接行列テーブルの各ノードと、アクセス情報との対応関係に係る対応表を作成する対応表作成部４０と、対応表を束構造化して対応表テーブルを生成する対応表束構造化部２５と、隣接行列テーブルと対応表テーブルとに基づいて、各ノードのアクセス権を算出するルールテーブル生成部１７０とを備える。【選択図】図２
2015153139.tif 000002
【特許請求の範囲】
【請求項１】
ワークフローに基づき、業務プロセスの情報と、該業務プロセスの各タスクにおいてアクセスするアクセス情報との入力を受け付ける入力部と、
前記業務プロセスの情報を隣接行列に変換する隣接行列生成部と、
前記隣接行列を束構造化して隣接行列テーブルを作成する隣接行列束構造化部と、
前記業務プロセスの情報に基づき、前記各タスクに対応する前記隣接行列テーブルの各ノードと、前記アクセス情報との対応関係に係る対応表を作成する対応表作成部と、
前記対応表を束構造化して対応表テーブルを作成する対応表束構造化部と、
前記隣接行列テーブルと前記対応表テーブルとに基づいて、前記各ノードのアクセス権を算出するルールテーブル生成部と
を備える、ルールテーブル生成装置。
【請求項２】
前記ルールテーブル生成部は、
前記隣接行列テーブルに基づいて、前記アクセス権の算出対象となる算出対象ノードを順次指定する算出対象ノード指定部と、
前記算出対象ノードのアクセス権を、前記算出対象ノードへ遷移する遷移前ノードの算出済みのアクセス権情報と、前記対応表テーブルに記載された前記算出対象ノードに対応する前記アクセス情報との論理和を計算することにより算出するアクセス権算出部と
を備える、請求項１に記載のルールテーブル生成装置。
【請求項３】
前記算出対象ノード指定部は、
前記隣接行列テーブルに基づいて、前記アクセス権を算出したノードから遷移する遷移先ノードを選択し、該遷移先ノードのうち前記アクセス権を算出していないノードの中の１つを算出対象候補ノードとして指定する次ノード探索部と、
前記隣接行列テーブルに基づいて、前記算出対象候補ノードの前記遷移前ノードを選択し、前記選択した遷移前ノードの全てについて前記アクセス権が算出されているとき、前記算出対象候補ノードを、前記算出対象ノードとして指定し、前記選択した遷移前ノードのいずれかについて前記アクセス権が算出されていないとき、前記アクセス権が算出されていない前記遷移前ノードの中の１つを、前記算出対象候補ノードとして指定しなおす戻るノード探索部と
を備える、請求項２に記載のルールテーブル生成装置。
【請求項４】
ルールテーブル生成装置におけるルールテーブル生成方法であって、
ワークフローに基づき、業務プロセスの情報と、該業務プロセスの各タスクにおいてアクセスするアクセス情報との入力を受け付けるステップと、
前記業務プロセスの情報を隣接行列に変換するステップと、
前記隣接行列を束構造化して隣接行列テーブルを作成するステップと、
前記業務プロセスの情報に基づき、前記各タスクに対応する前記隣接行列テーブルの各ノードと、前記アクセス情報との対応関係に係る対応表を作成するステップと、
前記対応表を束構造化して対応表テーブルを作成するステップと、
前記隣接行列テーブルと前記対応表テーブルとに基づいて、前記各ノードのアクセス権を算出するステップと
を含む、ルールテーブル生成方法。
【請求項５】
コンピュータに、
ワークフローに基づき、業務プロセスの情報と、該業務プロセスの各タスクにおいてアクセスするアクセス情報との入力を受け付けるステップと、
前記業務プロセスの情報を隣接行列に変換するステップと、
前記隣接行列を束構造化して隣接行列テーブルを作成するステップと、
前記業務プロセスの情報に基づき、前記各タスクに対応する前記隣接行列テーブルの各ノードと、前記アクセス情報との対応関係に係る対応表を作成するステップと、
前記対応表を束構造化して対応表テーブルを作成するステップと、
前記隣接行列と前記対応表テーブルとに基づいて、前記各ノードのアクセス権を算出するステップと
を実行させるためのルールテーブル生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報へのアクセス権を管理するルールテーブルを効率的に生成するルールテーブル生成装置、生成方法および生成プログラムに関する。
【背景技術】
【０００２】
情報への不正アクセスを防止するためのアクセス制御技術は、情報漏洩や不正利用等を防止するために必要不可欠な技術である。従来、情報へのアクセス制御は、情報を参照する利用者あるいは利用者の役職等の権限に対してアクセス権を設定することで行われていた（非特許文献１参照）。利用者単位にアクセス権を設定する従来のアクセス制御技術を以下に説明する。
【０００３】
図１３は、利用者単位にアクセス権を設定する従来のアクセス制御装置の構成を示す図である。アクセス制御装置１０００は、入力部１００１と、出力部１００２と、認証部１００３と、業務処理部１００４−１、１００４−２・・・１００４−Ｎと、アクセス権限チェック部１００５と、情報検索部１００６と、業務権限テーブルＴ１００１と、アクセス権限テーブルＴ１００２と、情報テーブルＴ１００３からなる。
【０００４】
入力部１００１は、外部からアクセス制御装置１０００への入力を行う。出力部１００２は、アクセス制御装置１０００での処理結果などを、アクセス制御装置１０００から外部に出力する。認証部１００３は、利用者ＩＤをもとに業務の実行権限を業務権限テーブルＴ１００１にてチェックする。
【０００５】
業務権限テーブルＴ１００１は、利用者ＩＤ毎に、実施できる業務ＩＤを対応付けるテーブルである。表１に業務権限テーブルＴ１００１の一例を示す。
【表１】
2015153139.tif 000003
【０００６】
業務処理部１００４−１、１００４−２・・・１００４−Ｎ（以下、特に区別しない場合は、業務処理部１００４と記載する）は、実行する業務毎に分かれており、入力部１００１からの指示に従って業務を実行する。各業務処理部１００４−１、１００４−２・・・１００４−Ｎは、情報種別コードが付与された情報を使用して業務を実行する。
【０００７】
アクセス権限チェック部１００５は、利用者ＩＤをもとに検索する情報種別コードへのアクセス権を、アクセス権限テーブルＴ１００２にてチェックする。
【０００８】
アクセス権限テーブルＴ１００２は、利用者ＩＤ毎に、アクセスできる情報種別コードを対応付けるテーブルである。表２にアクセス権限テーブルＴ１００２の一例を示す。
【表２】
2015153139.tif 000004
【０００９】
情報検索部１００６は、アクセス権の正当性が確認された後、情報テーブルＴ１００３から情報を検索する。
【００１０】
情報テーブルＴ１００３は、個人を特定する個人コードと、情報の種類を表す情報種別コードと、情報実体からなる。表３に情報テーブルＴ１００３の一例を示す。情報検索部１００６は、個人コード、情報種別コードにて情報テーブルＴ１００３を検索し、情報実体を取得する。
【表３】
2015153139.tif 000005
【００１１】
図１３を用いて従来のアクセス制御装置の処理手順を説明する。最初に、入力部１００１にて、アクセス制御装置１０００を利用する利用者の利用者ＩＤ、業務ＩＤおよび個人コードを入力し、認証部１００３に送る。認証部１００３では、入力部１００１で入力された利用者ＩＤ、業務ＩＤを用いて業務権限テーブルＴ１００１を検索し、一致するレコードがあれば、利用者ＩＤと個人コードを該当する業務ＩＤの業務処理部１００４に送る。一致するレコードがなければ、エラー信号を出力部１００２に送る。
【００１２】
次に、該当する業務ＩＤの業務処理部１００４では、認証部１００３から利用者ＩＤ、個人コードを受け取り、業務処理を実行する。業務処理において情報種別コードが付与された情報を使用する場合には、利用者ＩＤ、個人コード、情報種別コードをアクセス権限チェック部１００５に送る。アクセス権限チェック部１００５では、取得した利用者ＩＤと情報種別コードにてアクセス権限テーブルＴ１００２を検索する。一致するレコードがなければ、エラー信号を業務処理部１００４に送る。一致するレコードがあれば、個人コードおよび情報種別コードを情報検索部１００６に送る。
【００１３】
情報検索部１００６では、個人コードおよび情報種別コードにて情報テーブルＴ１００３を検索し、情報実体を取得し、業務処理部１００４に送る。業務処理部１００４では、アクセス権限チェック部１００５からエラー信号が返ってきた場合にはエラー信号を出力部１００２に送り、情報検索部１００６から情報実体が得られた場合には、業務処理を継続する。業務処理が終了した場合には、処理結果を出力部１００２に送る。最後に、出力部１００２では、得られた業務処理結果を外部に出力する。
【００１４】
上述した従来のアクセス制御装置では、業務権限テーブルＴ１００１およびアクセス権限テーブルＴ１００２に役職情報の項目を設け、入力部１００１で役職情報を入力させ、認証部１００３で役職情報を用いて実行する業務ＩＤをチェックし、アクセス権限チェック部１００５で役職情報を用いて情報種別コードをチェックすることで、役職によるアクセス権チェックが可能となっている。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】［online］、アクセス制御マトリックス、［平成２４年１０月１１日検索］、インターネット＜URL:http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/info_sec_tech/c-2-1.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１６】
従来のアクセス制御装置の場合、情報を参照する利用者あるいは利用者の役職等に対してアクセス権を設定していたため、アクセス権を有する利用者の意思に応じてアクセスが可能であった。このため、アクセス権を有する人が悪意を持つなどによる不正アクセスが可能であった。例えば公共分野では、申請業務において最初に利用者が情報を登録し、公共機関の職員が確認した後に処理が行われるが、従来のアクセス権の設定方法では、職員にアクセス権が設定されるため、申請業務以外の時にも利用者の情報にアクセスすることができてしまっていた。情報へのアクセスについては、事前に規則（条例、法令、等）により定められており、この規則通りにしか情報にアクセスできないようにする仕組みが要望されていた。
【００１７】
また、情報のアクセス権を規定するテーブルを、属人的な方法により設定する場合には、いくつかの問題が生じることとなるため、効率性が悪い。具体的には、かかるテーブルの設定が、手作業でアクセス権の定義を抽出して設定することにより行われている場合には、技術的な理解が必要となる上に、今日の巨大なシステム設計においては、業務に含まれるタスクの数が非常に多いため、テーブルの設定に要する作業は増大している。そのため、システム開発全体のコストのうち、テーブルの設定作業が占めるコストの割合も小さくない。また、かかるテーブル設定には、ヒューマンエラーによりバグが発生したりセキュリティホールが生じたりする等の不具合が起こるというリスクが存在する。
【００１８】
従って、かかる点に鑑みてなされた本発明の目的は、本来のアクセスすべき目的以外での情報へのアクセスを制限できるルールテーブルを効率的に生成することができるルールテーブル生成装置、生成方法および生成プログラムを提供することにある。
【課題を解決するための手段】
【００１９】
上述した諸課題を解決すべく、本発明に係るルールテーブル生成装置は、ワークフローに基づき、業務プロセスの情報と、該業務プロセスの各タスクにおいてアクセスするアクセス情報との入力を受け付ける入力部と、前記業務プロセスの情報を隣接行列に変換する隣接行列生成部と、前記隣接行列を束構造化して隣接行列テーブルを作成する隣接行列束構造化部と、前記業務プロセスの情報に基づき、前記各タスクに対応する前記隣接行列テーブルの各ノードと、前記アクセス情報との対応関係に係る対応表を作成する対応表作成部と、前記対応表を束構造化して対応表テーブルを作成する対応表束構造化部と、前記隣接行列テーブルと前記対応表テーブルとに基づいて、前記各ノードのアクセス権を算出するルールテーブル生成部とを備える。
【００２０】
また、本発明は上述したルールテーブル生成装置に実質的に相当する方法およびプログラムとしても実現し得るものであり、本発明の範囲にはこれらも包含されるものと理解されたい。
【００２１】
例えば、本発明に係るルールテーブル生成方法は、ルールテーブル生成装置におけるルールテーブル生成方法であって、ワークフローに基づき、業務プロセスの情報と、該業務プロセスの各タスクにおいてアクセスするアクセス情報との入力を受け付けるステップと、前記業務プロセスの情報を隣接行列に変換するステップと、前記隣接行列を束構造化して隣接行列テーブルを作成するステップと、前記業務プロセスの情報に基づき、前記各タスクに対応する前記隣接行列テーブルの各ノードと、前記アクセス情報との対応関係に係る対応表を作成するステップと、前記対応表を束構造化して対応表テーブルを作成するステップと、前記隣接行列テーブルと前記対応表テーブルとに基づいて、前記各ノードのアクセス権を算出するステップとを含む。
【００２２】
また、本発明に係るルールテーブル生成プログラムは、コンピュータに、ワークフローに基づき、業務プロセスの情報と、該業務プロセスの各タスクにおいてアクセスするアクセス情報との入力を受け付けるステップと、前記業務プロセスの情報を隣接行列に変換するステップと、前記隣接行列を束構造化して隣接行列テーブルを作成するステップと、前記業務プロセスの情報に基づき、前記各タスクに対応する前記隣接行列テーブルの各ノードと、前記アクセス情報との対応関係に係る対応表を作成するステップと、前記対応表を束構造化して対応表テーブルを作成するステップと、前記隣接行列テーブルと前記対応表テーブルとに基づいて、前記各ノードのアクセス権を算出するステップとを実行させる。
【発明の効果】
【００２３】
上記のように構成された本発明に係るルールテーブル生成装置、生成方法および生成プログラムによれば、業務プロセスの情報の入力によってルールテーブルを効率的に生成することができる。
【００２４】
また、ルールテーブルが自動的に作成されるため、ルールテーブルの生成に必要なコストを低減することができる。さらに、ヒューマンエラーに起因してバグが発生したりセキュリティホールが生じたりする等の不具合が起こるというリスクを低減することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係るルールテーブル生成装置が使用されるアクセス制御装置の構成を示す図である。
【図２】本発明の一実施形態に係るルールテーブル生成装置の概略的なブロック図である。
【図３】本発明の一実施形態に係るルールテーブル生成装置によりルールテーブルを生成するために使用されるワークフローの例を示す図である。
【図４】隣接行列の例を示す図である。
【図５】対応表の例を示す図である。
【図６】フラグ管理テーブルの例を示す図である。
【図７】ルールテーブル行列の例を示す図である。
【図８】ルールテーブル生成部におけるルールテーブル行列の生成手順の例を示すフローチャートである。
【図９】ルールテーブル行列の生成に伴うフラグ管理テーブルの遷移の例を示す図である。
【図１０】ルールテーブル行列の遷移の例の一部を示す図である。
【図１１】次ノード探索部における次ノードの探索方法の例を示すフローチャートである。
【図１２】戻るノード探索部における戻るノードの探索方法の例を示すフローチャートである。
【図１３】従来のアクセス制御装置の構成を示す図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施の形態について、図面を参照して説明する。
【００２７】
図１は、本発明の一実施形態に係るルールテーブル生成装置が使用されるアクセス制御装置の構成を示す図である。図１に示すアクセス制御装置１１００は、入力部１０１と、出力部１０２と、認証部１０３と、業務処理部１０４−１、１０４−２・・・１０４−Ｎと、ルール情報検索部１０５と、情報検索部１０６と、業務権限テーブルＴ１０１と、ルールテーブルＴ１６０と、情報テーブルＴ１０３とにより構成されている。ルール情報検索部１０５と情報検索部１０６は、情報と業務とを関連付けて管理し、アクセス権をチェックして情報を提供する情報管理部を構成する。また、アクセス制御装置１１００は、ルールテーブルＴ１６０において、ルールテーブル生成装置２００と接続されている。なお、本実施形態においては、ルールテーブル生成装置２００は、図１に示すようにアクセス制御装置１１００とは異なる独立した装置であるとして説明するが、ルールテーブル生成装置２００は、アクセス制御装置１１００内に含まれていてもよい。
【００２８】
入力部１０１は、外部からアクセス制御装置１１００への入力を行う。出力部１０２は、アクセス制御装置１１００での処理結果などをアクセス制御装置１１００から外部に出力する。認証部１０３は、利用者ＩＤにより業務の実行権限を業務権限テーブルＴ１０１にてチェックする。
【００２９】
業務権限テーブルＴ１０１は、利用者ＩＤ毎に、実施できる業務ＩＤを対応付けるテーブルである。表４に業務権限テーブルＴ１０１の一例を示す。
【表４】
2015153139.tif 000006
【００３０】
業務処理部１０４−１、１０４−２・・・１０４−Ｎ（以下、特に区別しない場合は、業務処理部１０４と記載する）は、実行する業務毎に分かれており、入力部１０１からの指示に従って業務を実行する。各業務処理部１０４−１、１０４−２・・・１０４−Ｎは、情報種別コードが付与された情報を使用して業務を実行する。業務処理部１０４では、名前や住所などの様々な情報を使用して業務を行うが、情報種別コードとは、この業務に利用される名前や住所などの情報の種類に付与したコードのことである。例えば、名前：１０、住所：２０、職業：３０、年収：４０、本籍地：５０などである。
【００３１】
ルール情報検索部１０５は、業務ＩＤをもとに検索する情報種別コードへのアクセス権を、ルールテーブルＴ１６０にてチェックする。
【００３２】
ルールテーブルＴ１６０は、業務ＩＤ毎に、アクセスできる情報種別コードを対応付ける（関連付ける）テーブルである。表５にルールテーブルＴ１６０の一例を示す。ルールテーブルＴ１６０は、例えば、規則（条例、法令、等）により定められた情報へのアクセス範囲をルールにて記述し管理する。ルールテーブルＴ１６０は、ルールテーブル生成装置２００により生成されるが、ルールテーブルＴ１６０の詳細な生成方法については後述する。
【表５】
2015153139.tif 000007
【００３３】
情報検索部１０６は、アクセス権の正当性が確認された後、情報テーブルＴ１０３から情報を検索する。
【００３４】
情報テーブルＴ１０３は、個人を特定する個人コードと、情報の種類を表す情報種別コードと、情報実体からなる。表６に情報テーブルＴ１０３の一例を示す。情報検索部１０６は、個人コード、情報種別コードにて検索し、情報実体を取得する。
【表６】
2015153139.tif 000008
【００３５】
次に、図１を用いて、アクセス制御装置１１００における処理手順を説明する。
【００３６】
最初に、入力部１０１にて、アクセス制御装置１１００を利用する利用者の利用者ＩＤ、業務ＩＤおよび個人コードを入力し、認証部１０３に送る（送信する）。認証部１０３では、入力部１０１で入力された利用者ＩＤ、業務ＩＤを用いて業務権限テーブルＴ１０１を検索し、一致するレコードがあれば、業務ＩＤと個人コードを該当する業務ＩＤの業務処理部１０４に送る。一致するレコードがなければ、エラー信号を出力部１０２に送る。
【００３７】
次に、該当する業務ＩＤの業務処理部１０４では、認証部１０３から業務ＩＤ、個人コードを受け取り、業務処理を実行する。業務処理において情報を必要とする場合には、情報に付与された情報種別コード、業務ＩＤ、個人コードをルール情報検索部１０５に送る。ルール情報検索部１０５では、取得した業務ＩＤと情報種別コードにてルールテーブルＴ１６０を検索する。一致するレコードがなければ、エラー信号を業務処理部１０４に返す。一致するレコードがあれば、個人コードおよび情報種別コードを情報検索部１０６に送る。
【００３８】
情報検索部１０６では、個人コードおよび情報種別コードにて情報テーブルＴ１０３を検索し、情報実体を取得し、業務処理部１１０４に送る。業務処理部１０４では、ルール情報検索部１０５からエラー信号が返ってきた場合にはエラー信号を出力部１０２に送り、情報検索部１０６から情報実体が得られた場合には、業務処理を継続する。業務処理が終了した場合には、処理結果を出力部１０２に送る。最後に、出力部１０２では、得られた業務処理結果を外部に出力する。
【００３９】
なお、業務処理部１０４にて、複数の情報が不足している場合（情報種別コードが付与された情報を複数使用する場合）には、ルール情報検索部１０５への情報要求を複数回実施する。
【００４０】
また、アクセス制御装置１１００は、リモートプロシージャーコールなどを利用することにより、入力部１０１、出力部１０２、認証部１０３、業務処理部１０４、業務権限テーブルＴ１０１を具備する端末装置と、ルール情報検索部１０５、情報検索部１０６、ルールテーブルＴ１６０、情報テーブルＴ１０３を具備する端末装置に分けることもできる。
【００４１】
図２は、本発明の一実施形態に係るルールテーブル生成装置２００の概略的なブロック図である。図２に示すように、ルールテーブル生成装置２００は、入力部１０と、隣接行列束構造化部２０と、対応表束構造化部２５と、隣接行列生成部３０と、対応表作成部４０と、隣接行列テーブルＴ１３０と、対応表テーブルＴ１４０と、フラグ管理テーブルＴ１５０と、ルールテーブル生成部１７０とを備える。また、ルールテーブル生成装置２００は、ルールテーブル生成部１７０のルールテーブル管理部７０において、ルールテーブルＴ１６０に接続されている。
【００４２】
ルールテーブル生成装置２００では、入力部１０が、業務プロセスの情報と、業務プロセスの各タスクにおいてアクセスするアクセス情報との入力を受け付ける。隣接行列生成部３０および隣接行列束構造化部２０は、入力された業務プロセスの情報に基づいて隣接行列テーブルＴ１３０を作成する。また、対応表作成部４０および対応表束構造化部２５は、入力されたアクセス情報に基づいて対応表テーブルＴ１４０を作成する。そして、ルールテーブル生成部１７０は、隣接行列テーブルＴ１３０と対応表テーブルＴ１４０とに基づいて、各ノードのアクセス権を算出する。
【００４３】
図３は、本発明の一実施形態に係るルールテーブル生成装置２００によりルールテーブルＴ１６０を生成するために使用されるワークフローの例を示す図である。本明細書においては、図３のワークフローで表される業務プロセスのルールテーブルＴ１６０を設定する方法について説明するが、ルールテーブルＴ１６０の生成対象となるワークフローは、図３に示すものに限られない。
【００４４】
図３において、ｆ１からｆ７はタスクを示し、各タスクを結ぶ矢印は、業務プロセスの順序を示す。図３のワークフローを参照すると、この業務は３通りのプロセスのいずれかにより行われる。３通りのプロセスは、ｆ１、ｆ２、ｆ３、ｆ５およびｆ７のタスクを順に行うプロセス、ｆ１、ｆ２、ｆ３、ｆ６およびｆ７のタスクを順に行うプロセス、またはｆ１、ｆ２、ｆ４およびｆ７のタスクを順に行うプロセスである。また、ｆ１からｆ７の各タスクにおいてアクセスするアクセス情報を、それぞれＳ１からＳ７とする。以下、図３に示すワークフローで表される業務プロセスと、各タスクにおけるアクセス情報とに基づき、ルールテーブル生成装置２００がルールテーブルＴ１６０を生成する方法について説明する。なお、本明細書において、アクセス権は、業務プロセスの各タスクにおける所定の情報にアクセスする権限をいう。また、アクセス権情報は、業務プロセスの各タスクにおけるアクセスする権限に関する情報をいう。また、ルールは、アクセス権に基づいて、所定の条件において情報を閲覧することが可能であるか否かを判定する規則である。
【００４５】
再び図２を参照する。入力部１０は、ワークフローに基づき、業務プロセスの情報と、業務プロセスの各タスクにおいてアクセスするアクセス情報との入力を受け付ける。業務プロセスの情報は、例えば、ワークフローをＢＰＭＮ（Business Process Modeling Notation：ビジネスプロセスモデリング表記法）によって記述した有向グラフとして入力される。有向グラフにおいては、ワークフローのタスクがノードとして、各タスクの実行順がエッジとして表現される。また、アクセス情報としては、各タスクｆ１からｆ７にそれぞれ対応付けられたアクセス情報が入力される。本明細書においては、アクセス情報を示すシンボルとして、アクセス情報をＳと表記する。すなわち、各タスクｆ１からｆ７には、それぞれアクセス情報をＳ１からＳ７がそれぞれ対応付けられる。
【００４６】
隣接行列生成部３０は、入力部１０から入力された業務プロセスの情報を隣接行列に変換する。ここで、隣接行列は、入力した有向グラフの遷移を表記したものである。図４は、隣接行列の例を示す図であり、図４（ａ）は、図３に示すワークフローを変換した結果の隣接行列を示す図である。隣接行列において、縦軸および横軸は各ノードｆ１からｆ７である。隣接行列において、ビット「１」が立てられた要素は、その要素の行のノードからその要素の列のノードへの遷移が存在することを示し、ビット「０」が立てられた要素は、その要素の行のノードからその要素の列のノードへの遷移が存在しないことを示す。例えば図４（ａ）のノードｆ１の行を参照すると、ノードｆ２の列にビット「１」が立てられており、これは、ノードｆ１からノードｆ２へ遷移することを示す。また、ノードｆ１の行において、ノードｆ２の列以外の列には、ビット「０」が立てられているため、ノードｆ１から遷移しないことを示す。同様に、ノードｆ２の行を参照すると、ノードｆ３およびノードｆ４の列にビット「１」が立てられ、それ以外の列にはビット「０」が立てられているため、ノードｆ２からは、ノードｆ３またはノードｆ４へ遷移し、それ以外のノードへは遷移しないことが理解される。
【００４７】
隣接行列束構造化部２０は、隣接行列生成部３０において生成された隣接行列を束構造化する。束構造は、仮想的な始まりと終わりをそれぞれ唯一に有する構造である。隣接行列束構造化部２０は、具体的には、隣接行列生成部３０で生成された隣接行列に、仮想的な始まりのノードｆ０と、仮想的な終わりのノードｆｅｎｄとを付加する。図４（ｂ）は、図４（ａ）の隣接行列を束構造化した隣接行列テーブルＴ１３０である。図４（ｂ）に示すように、ノードｆ０とノードｆｅｎｄとが隣接行列に付加されている。
【００４８】
対応表作成部４０は、入力部１０から入力された業務プロセスの情報に基づき、ノードとして表記されるタスクのそれぞれとアクセス情報との対応関係に係る対応表を作成する。具体的には、対応表作成部４０は、それぞれのノードとアクセス情報とを対応させた表を対応表として作成する。図５は、対応表の例を示す図であり、図５（ａ）は、図３に示すワークフローに基づいて対応表作成部４０が作成する対応表の例を示す図である。図５（ａ）を参照すると、例えばノードｆ１には情報Ｓ１が対応付けられている。同様に、ノードｆ２からｆ７についても、それぞれ情報Ｓ２からＳ７が対応付けられている。
【００４９】
対応表束構造化部２５は、対応表作成部４０において作成された対応表を束構造化する。具体的には、対応表束構造化部２５は、隣接行列束構造化部２０において付加されたノードｆ０およびノードｆｅｎｄにそれぞれ対応する、仮想的な始まりのノードｆ０と終わりのノードｆｅｎｄとを、対応表に付加する。図５（ｂ）は、図５（ａ）の対応表を束構造化した対応表テーブルＴ１４０である。図５（ｂ）に示すように、ノードｆ０とノードｆｅｎｄとが付加されている。ここで、ノードｆ０およびノードｆｅｎｄは仮想的なノードであるため、ノードｆ０およびノードｆｅｎｄにおいてアクセスする情報は存在しない。そのため、ノードｆ０およびノードｆｅｎｄについては、空集合を示す「０」が対応付けられる。
【００５０】
隣接行列テーブルＴ１３０は、隣接行列束構造化部２０において束構造化された隣接行列（ここでは、図４（ｂ）に示す隣接行列）である。隣接行列テーブルＴ１３０は、ルールテーブルＴ１６０を生成するときに使用される。
【００５１】
対応表テーブルＴ１４０は、対応表束構造化部２５において束構造化された対応表（ここでは、図５（ｂ）に示す対応表）である。対応表テーブルＴ１４０は、ルールテーブルＴ１６０を生成するときに使用される。
【００５２】
フラグ管理テーブルＴ１５０は、ルールテーブルＴ１６０の作成において使用されるテーブルであり、各ノードのアクセス権が算出されているか否かを示す。図６は、フラグ管理テーブルＴ１５０の例を示す図である。図６に示すように、フラグ管理テーブルＴ１５０では、各ノードｆに対してフラグを示す欄に「０」または「１」が格納されている。ノードｆについて「１」が格納されているとき、フラグが立てられており、アクセス権の算出がされたことを示す。一方、ノードｆについて「０」が格納されているとき、フラグが立てられておらず、アクセス権の算出がされていないことを示す。従って、図６に示すフラグ管理テーブルＴ１５０においては、ノードｆ０、ｆ１、ｆ２、ｆ３およびｆ５についてフラグが立てられているため、これらのノードについては、アクセス権の算出がされている。一方、ノードｆ４、ｆ６、ｆ７およびｆｅｎｄにはフラグが立てられていないため、これらのノードについては、アクセス権の算出がされていない。
【００５３】
ルールテーブルＴ１６０は、ルールテーブル生成部１７０により生成されるルールテーブル行列に基づいて生成される。図７は、ルールテーブル行列の例を示す図である。ルールテーブル行列において、縦軸はノードｆであり、横軸はアクセス情報Ｓである。ルールテーブル行列において、各要素には「０」または「１」が格納される。「０」が格納された要素は、その要素の行のノードｆにおいてその要素の列のアクセス情報Ｓにアクセスできないことを示し、「１」が格納された要素は、その要素の行のノードｆにおいてその要素の列のアクセス情報Ｓにアクセスできることを示す。すなわち、「１」が格納された要素が、各ノードにおけるアクセス権を示す。例えば、ノードｆ３の行を参照すると、アクセス情報Ｓ１、Ｓ２およびＳ３の列に「１」が格納されている。従って、ノードｆ３においては、アクセス情報Ｓ１、Ｓ２およびＳ３についてアクセスすることができ、アクセス情報Ｓ４、Ｓ５、Ｓ６およびＳ７についてアクセスすることができない。
【００５４】
ルールテーブル生成部１７０は、隣接行列読込部５０と、アクセス権算出部６０と、ルールテーブル管理部７０と、フラグチェック部８０と、フラグ設定部９０と、算出対象ノード指定部１８０とを備える。ルールテーブル生成部１７０は、各機能部を協働させてルールテーブル行列を生成し、ルールテーブル行列に基づきルールテーブルＴ１６０を生成する。
【００５５】
隣接行列読込部５０は、隣接行列テーブルＴ１３０を読み込む。
【００５６】
アクセス権算出部６０は、算出対象ノードのアクセス権を、算出対象ノードへ遷移する遷移前ノードの算出済みのアクセス権情報と、対応表テーブルＴ１４０に記載された算出対象ノードに対応するアクセス情報との論理和を計算することにより算出する。ここで、算出対象ノードとは、アクセス権の算出対象となるノードをいう。アクセス権算出部６０は、算出対象ノードを順次計算することにより、ルールテーブル行列を作成する。アクセス権算出部６０が行う算出の詳細な例については後述する。
【００５７】
ルールテーブル管理部７０は、ルールテーブルＴ１６０からルールテーブル行列を読み込んだり、ルールテーブルＴ１６０にルールテーブル行列に関する情報を書き込んだりする。
【００５８】
フラグチェック部８０は、フラグ管理テーブルＴ１５０所定のノードについて、フラグが立っているか否かを確認する。
【００５９】
フラグ設定部９０は、フラグ管理テーブルＴ１５０の所定のノードに対して、所定の条件においてフラグを立てる。
【００６０】
算出対象ノード指定部１８０は、隣接行列テーブルＴ１３０に基づいて、アクセス権の算出対象となる算出対象ノードを順次指定する。算出対象ノード指定部１８０は、次ノード探索部１００と、戻るノード探索部１１０と、終了判定部１２０とを備える。
【００６１】
次ノード探索部１００は、隣接行列読込部５０とフラグチェック部８０とから取得した情報に基づき、次ノードを探索する。具体的には、次ノード探索部１００は、隣接行列テーブルＴ１３０に基づいて、アクセス権を算出したノードから遷移する遷移先ノードを選択し、遷移先ノードのうちアクセス権を算出していないノードの中の１つを算出対象候補ノードとして指定する。なお、次ノードは、所定のノードから遷移するノードに係るノードである。探索方法については、後述する図１１の説明において詳述する。
【００６２】
戻るノード探索部１１０は、隣接行列読込部５０とフラグチェック部８０とから取得した情報に基づき、戻るノードを探索する。具体的には、戻るノード探索部１１０は、隣接行列テーブルＴ１３０に基づいて、算出対象候補ノードの遷移前ノードを選択し、選択した遷移前ノードの全てについてアクセス権が算出されているとき、算出対象候補ノードを、算出対象ノードとして指定し、選択した遷移前ノードのいずれかについてアクセス権が算出されていないとき、アクセス権が算出されていない遷移前ノードの中の１つを、算出対象候補ノードとして指定しなおす。戻るノードは、所定のノードへ遷移するノードに係るノードであって、アクセス権の算出がされていないノードである。探索方法については、後述する図１２の説明において詳述する。
【００６３】
終了判定部１２０は、フラグチェック部８０から取得した情報に基づき、アクセス権の算出を終了するか否かを判定する。具体的には、終了判定部１２０は、ノードｆｅｎｄにフラグが立っているときアクセス権の算出を終了すると判定し、ノードｆｅｎｄにフラグが立っていないとき、アクセス権の算出を終了しないと判定する。
【００６４】
次に、図８を参照して、ルールテーブル生成部１７０におけるルールテーブル行列の生成手順について説明する。ルールテーブル行列の生成開始時点において、フラグ管理テーブルＴ１５０には、図９（ａ）に示すように、フラグが立っておらず、すなわち、全てのノードｆについてフラグを示す欄に「０」が格納されている。また、ルールテーブル行列の生成開始時点において、ルールテーブル行列の全ての要素には、図１０（ａ）に示すように「０」が格納されている。
【００６５】
まず、フラグ設定部９０は、フラグ管理テーブルＴ１５０のノードｆ０にフラグを立てる（ステップＳ１０１）。すなわち、フラグ設定部９０は、図９（ｂ）に示すように、フラグ管理テーブルＴ１５０のノードｆ０に対応するフラグを示す欄に「１」を格納する。
【００６６】
次に、ルールテーブル生成部１７０は、次に算出対象ノードの候補としての算出対象候補ノードを指定する。具体的には、まず、次ノード探索部１００は、隣接行列読込部５０とフラグチェック部８０とから取得した情報に基づき、フラグを立てたノードｆｈ（ここではｈ＝０）の次ノードを探索する（ステップＳ１０２）。図１１は、次ノード探索部１００における次ノードの探索方法の例を示すフローチャートである。
【００６７】
次ノード探索部１００は、隣接行列読込部５０から取得した隣接行列テーブルＴ１３０を参照して、ノードｆｈの行においてビットが立っている列のノードを遷移先ノードとして選択する（ステップＳ２０１）。図４（ｂ）に示す隣接行列テーブルＴ１３０を参照すると、ノードｆ０の行においてビットが立っているのは、ノードｆ１の列である。従って、次ノード探索部１００はｆ１を選択する。
【００６８】
そして、次ノード探索部１００は、フラグチェック部８０から取得したフラグ管理テーブルＴ１５０を参照して、選択した遷移先ノードのうちフラグが立っていないノードを抽出する（ステップＳ２０２）。この段階で、ノードｆ１にはフラグが立っていないため、次ノード探索部１００はノードｆ１を抽出する。
【００６９】
そして、次ノード探索部１００は、抽出したノードのうち任意のノードを算出対象候補ノードｆｉとして指定する（ステップＳ２０３）。ここでは、抽出したノードが１つであるため、次ノード探索部１００は、ノードｆ１を算出対象候補ノードｆｉとして指定する。抽出したノードが複数のとき、次ノード探索部１００は、例えばノードｆの添え字が最も小さいノードまたは最も大きいノードを算出対象候補ノードｆｉとして指定することができる。なお、本明細書においては、次ノード探索部１００は、例えばノードｆの添え字が最も小さいノードを算出対象候補ノードｆｉとして指定するとして以下説明する。
【００７０】
再び図８を参照すると、次ノード探索部１００が算出対象候補ノードを指定した後、戻るノード探索部１１０が、隣接行列読込部５０とフラグチェック部８０とから取得した情報に基づき、算出対象候補ノードとして指定したノードｆｉの戻るノードｆｊを探索する（ステップＳ１０３）。ここでは、戻るノード探索部１１０は、ノードｆ１の戻るノードｆｊを探索する。
【００７１】
そして、戻るノード探索部１１０は、探索の結果、戻るノードｆｊが存在するか否かを判定する（ステップＳ１０４）。戻るノードｆｊが存在しない場合（ステップＳ１０４のＮｏ）、ルールテーブル生成部１７０は、ステップＳ１０６に進む。一方、戻るノードｆｊが存在する場合（ステップＳ１０４のＹｅｓ）、戻るノード探索部１１０は、ノードｆｊ＝ノードｆｉとする（ステップＳ１０５）。そして、戻るノード探索部１１０は、さらにノードｆｉの戻るノードｆｊを探索する（ステップＳ１０３）。
【００７２】
ここで、ステップＳ１０３からステップＳ１０５までの戻るノード探索部１１０が行う処理について、図１２を参照して、さらに詳細に説明する。図１２は、戻るノード探索部１１０における戻るノードの探索方法の例を示すフローチャートである。
【００７３】
戻るノード探索部１１０は、隣接行列読込部５０から取得した隣接行列テーブルＴ１３０を参照して、ノードｆｉの列においてビットが立っている行のノードを遷移前ノードとして選択する（ステップＳ３０１）。ここで、図４（ｂ）に示す隣接行列テーブルＴ１３０を参照すると、ノードｆ１の列においてビットが立っているのは、ノードｆ０の列である。従って、戻るノード探索部１１０はｆ０を選択する。
【００７４】
続いて、戻るノード探索部１１０は、フラグチェック部８０から取得したフラグ管理テーブルＴ１５０を参照して、選択した遷移前ノードのうちフラグが立っていないノードが存在するか否かを判定する（ステップＳ３０２）。ステップＳ３０２は、図８のステップＳ１０４に対応する。この段階で、ノードｆ０にはフラグが立っているため、戻るノード探索部１１０は、フラグが立っていないノードは存在しないと判定する（ステップＳ３０２のＮｏ）。フラグが立っていないノードが存在しない場合、戻るノードｆｊは存在しない（図８のステップＳ１０４におけるＮｏ）。このとき、ルールテーブル生成部１７０は、図８のステップＳ１０６に進む。
【００７５】
一方、戻るノード探索部１１０が、フラグが立っていないノードが存在すると判定したとき（ステップＳ３０２のＹｅｓ）、戻るノードｆｊが存在する（図８のステップＳ１０４におけるＹｅｓ）。このとき、戻るノード探索部１１０は、フラグ管理テーブルＴ１５０を参照して、選択したノードのうちフラグが立っていないノードを抽出する（ステップＳ３０３）。
【００７６】
そして、戻るノード探索部１１０は、抽出したノードのうち任意のノードを算出対象候補ノードｆｊとして指定しなおす（ステップＳ３０４）。抽出したノードが複数のとき、戻るノード探索部１１０は、例えばノードｆの添え字が最も小さいノードまたは最も大きいノードを算出対象候補ノードｆｊとして指定することができる。なお、本明細書においては、戻るノード探索部１００は、例えばノードｆの添え字が最も小さいノードを算出対象候補ノードｆｊとして決定するとして以下説明する。
【００７７】
戻るノード探索部１１０は、算出対象候補ノードｆｊを指定すると、ノードｆｊ＝ノードｆｉとする（ステップＳ３０５）。そして、戻るノード探索部１１０は、再びステップＳ３０１に戻り、隣接行列読込部５０から取得した隣接行列テーブルＴ１３０を参照して、ノードｆｉの列においてビットが立っている行の遷移前ノードを選択する。このようにして、戻るノード探索部１１０は、ステップＳ３０２において、フラグが立っていないノードが存在しないと判定するまで、このフローを繰り返す。フラグが立っていないノードが存在しないと判定されたときのノードｆｊが、算出対象ノードとして指定される。
【００７８】
再び図８を参照する。ステップＳ１０４において、ノードｆ１について戻るノードｆｊが存在しないと判定されたとき（ステップＳ１０４のＮｏ）、アクセス権算出部６０は、ルールテーブル管理部７０を介してルールテーブル行列の情報を取得し、対応表テーブルＴ１４０も参照して、算出対象ノードｆｉ（ここではｉ＝１）に遷移する遷移前ノードのアクセス権情報と、ノードｆｉにおけるアクセス情報との論理和を計算する（ステップＳ１０６）。ここで、ルールテーブル行列の情報を参照すると、ノードｆ１に遷移するノードｆ０のアクセス権情報は「０（空集合）」であり、図５（ｂ）に示す対応表テーブルＴ１４０を参照すると、ノードｆ１におけるアクセス情報はＳ１である。アクセス権算出部６０は、これらの論理和を計算することによって、ノードｆ１のアクセス権がアクセス情報Ｓ１であると算出する。
【００７９】
算出結果に基づいて、ルールテーブル管理部７０は、ルールテーブルＴ１６０のルールテーブル行列のｆ１の行にビットを立てる（ステップＳ１０７）。ここでは、具体的には、図１０（ａ）のｆ１の行においてＳ１の要素に「１」が格納される。このようにして、ノードｆ１のアクセス権が算出され、ルールテーブル行列が生成される。
【００８０】
そして、フラグ設定部９０は、フラグ管理テーブルＴ１５０のノードｆ１にフラグを立てる（ステップＳ１０８）。すなわち、この段階で、フラグ管理テーブルＴ１５０は、図９（ｃ）に示すように、ｆ０とｆ１とにフラグが立てられた状態となる。
【００８１】
そして、終了判定部１２０は、フラグ管理テーブルＴ１５０のノードｆｅｎｄにフラグが立っているか否かを判定する（ステップＳ１０９）。ノードｆｅｎｄにフラグが立っているとき（ステップＳ１０９のＹｅｓ）、ルールテーブル生成部１７０は、全てのノードｆのアクセス権が算出されたと判定して、フローを終了する。
【００８２】
ノードｆｅｎｄにフラグが立っていないとき（ステップＳ１０９のＮｏ）、次ノード探索部１００は、ノードｆｉ＝ノードｆｈとする。そして、ルールテーブル生成部１７０は、再びステップＳ１０２からこのフローを繰り返す。すなわち、ここでは、図９（ｃ）のように、ノードｆｅｎｄにフラグが立っていないため、次ノード探索部１００は、ノードｆ１の次ノードｆｉを探索する。
【００８３】
次ノード探索部１００は、隣接行列テーブルＴ１３０のノードｆ１の行においてビットが立っている列のノードｆ２を遷移先ノードとして選択する（ステップＳ２０１）。この段階で、フラグ管理テーブルＴ１５０を参照すると、遷移先ノードｆ２にはフラグが立っていないため、ステップＳ２０２においてノードｆ２が抽出され、ステップＳ２０３において、ノードｆ２が算出対象候補ノードｆｉとして決定される。
【００８４】
次に、戻るノード探索部１１０は、隣接行列テーブルＴ１３０のノードｆ２の列においてビットが立っている行の遷移前ノードｆ１を選択する（ステップＳ３０１）。フラグ管理テーブルＴ１５０を参照すると、この段階でノードｆ１にはフラグが立っているため、ステップＳ３０２において、戻るノード探索部１１０は、フラグが立っていないノードが存在しないと判定し（ステップＳ３０２のＮｏ）、ノードｆ２が算出対象ノードとして決定される。
【００８５】
そして、アクセス権算出部６０は、算出対象ノードｆ２に遷移する遷移前ノードｆ１のアクセス権情報と、ノードｆ２におけるアクセス情報との論理和を計算する（ステップＳ１０６）。ここで、ノードｆ１のアクセス権情報はアクセス情報Ｓ１であり、ノードｆ２におけるアクセス情報はＳ２である。アクセス権算出部６０は、これらの論理和を計算することによって、ノードｆ２のアクセス権がアクセス情報Ｓ１およびＳ２であると算出する。そして、算出結果に基づいて、ルールテーブル管理部７０は、ルールテーブルＴ１６０のルールテーブル行列のｆ２の行にビットを立てる（ステップＳ１０７）。ここでは、具体的には、図１０（ａ）のｆ２の行においてＳ１およびＳ２の要素に「１」が格納される。そして、フラグ設定部９０は、図９（ｄ）に示すように、フラグ管理テーブルＴ１５０のノードｆ２にフラグを立てる（ステップＳ１０８）。この段階でノードｆｅｎｄにフラグが立っていないため（ステップＳ１０９のＮｏ）、ノードｆ２＝ノードｆｉとして、再びステップＳ１０２に戻る。
【００８６】
図４（ｂ）に示す隣接行列テーブルＴ１３０を参照すると、ノードｆ２の行においては、ノードｆ３およびノードｆ４の列にビットが立っているため、次ノード探索部１００は、ステップＳ２０１において、ノードｆ３およびノードｆ４を遷移先ノードとして選択する。この段階で、遷移先ノードｆ３および遷移先ノードｆ４には、いずれもフラグが立っていないため、ステップＳ２０２において、ノードｆ３およびノードｆ４が抽出される。そして、次ノード探索部１００は、ステップＳ２０３において、ノードｆ３およびノードｆ４のうちｆ３を算出対象候補ノードｆｉとして指定する。
【００８７】
隣接行列テーブルＴ１３０のノードｆ３の戻るノードｆｊは存在しないため（ステップＳ１０４のＮｏ）、ノードｆ３が算出対象ノードとして決定される。アクセス権算出部６０は、算出対象ノードｆ３に遷移する遷移前ノードｆ２のアクセス権情報と、ノードｆ３におけるアクセス情報との論理和を計算する（ステップＳ１０６）。ここで、ノードｆ２のアクセス権情報はアクセス情報Ｓ１およびＳ２であり、ノードｆ３におけるアクセス情報はＳ３である。アクセス権算出部６０は、これらの論理和を計算することによって、ノードｆ３のアクセス権がアクセス情報Ｓ１、Ｓ２およびＳ３であると算出する。そして、算出結果に基づいて、ルールテーブル管理部７０は、ルールテーブルＴ１６０のルールテーブル行列のｆ３の行にビットを立てる（ステップＳ１０７）。ここでは、具体的には、図１０（ａ）のｆ３の行においてＳ１、Ｓ２およびＳ３の要素に「１」が格納される。そして、フラグ設定部９０は、図９（ｅ）に示すように、フラグ管理テーブルＴ１５０のノードｆ３にフラグを立てる（ステップＳ１０８）。この段階でノードｆｅｎｄにフラグが立っていないため（ステップＳ１０９のＮｏ）、ノードｆ３＝ノードｆｉとして、再びステップＳ１０２に戻る。
【００８８】
図４（ｂ）に示す隣接行列テーブルＴ１３０を参照すると、ノードｆ３の行においては、ノードｆ５およびノードｆ６の列にビットが立っているため、次ノード探索部１００は、ステップＳ２０１において、ノードｆ５およびノードｆ６を遷移先ノードとして選択する。この段階で、ノードｆ５およびノードｆ６には、いずれもフラグが立っていないため、ステップＳ２０２において、ノードｆ５およびノードｆ６が抽出される。そして、次ノード探索部１００は、ステップＳ２０３において、ノードｆ５およびノードｆ６のうちｆ５を算出対象候補ノードｆｉとして指定する。
【００８９】
隣接行列テーブルＴ１３０のノードｆ５の戻るノードｆｊが存在しないため（ステップＳ１０４のＮｏ）、ノードｆ５が算出対象ノードとして決定される。アクセス権算出部６０は、算出対象ノードｆ５に遷移する遷移前ノードｆ３のアクセス権情報と、ノードｆ５におけるアクセス情報との論理和を計算する（ステップＳ１０６）。ここで、ノードｆ３のアクセス権情報はアクセス情報Ｓ１、Ｓ２およびＳ３であり、ノードｆ５におけるアクセス情報はＳ５である。アクセス権算出部６０は、これらの論理和を計算することによって、ノードｆ５のアクセス権がアクセス情報Ｓ１、Ｓ２、Ｓ３およびＳ５であると算出する。そして、算出結果に基づいて、ルールテーブル管理部７０は、ルールテーブルＴ１６０のルールテーブル行列のｆ５の行にビットを立てる（ステップＳ１０７）。ここでは、具体的には、図１０（ａ）のｆ５の行においてＳ１、Ｓ２、Ｓ３およびＳ５の要素に「１」が格納される。この時点で、ルールテーブル行列は、図１０（ｂ）に示すように、ノードｆ１、ｆ２、ｆ３およびｆ５の行の要素にビットが立てられた状態となる。そして、フラグ設定部９０は、図９（ｆ）に示すように、フラグ管理テーブルＴ１５０のノードｆ５にフラグを立てる（ステップＳ１０８）。この段階でノードｆｅｎｄにフラグが立っていないため（ステップＳ１０９のＮｏ）、ノードｆ５＝ノードｆｉとして、再びステップＳ１０２に戻る。
【００９０】
次ノード探索部１００は、隣接行列テーブルＴ１３０のノードｆ５の行においてビットが立っている列のノードｆ７を遷移先ノードとして選択する（ステップＳ２０１）。この段階で、フラグ管理テーブルＴ１５０を参照すると、ノードｆ７にはフラグが立っていないため、ステップＳ２０２においてノードｆ７が抽出され、ステップＳ２０３において、ノードｆ７が算出対象候補ノードｆｉとして指定される。
【００９１】
次に、戻るノード探索部１１０は、隣接行列テーブルＴ１３０のノードｆ７の列においてビットが立っている行のノードｆ４、ｆ５およびｆ６を選択する（ステップＳ３０１）。フラグ管理テーブルＴ１５０を参照すると、この段階でノードｆ４およびｆ６にはフラグが立っていないため、ステップＳ３０２において、戻るノード探索部１１０は、フラグが立っていない遷移前ノードが存在すると判定する（ステップＳ３０２のＹｅｓ）。そして、戻るノード探索部１１０は、ノードｆ４およびノードｆ６を抽出し（ステップＳ３０３）、ｆ４を算出対象候補ノードｆｉとして指定しなおす（ステップＳ３０４）。そして、ノードｆ４＝ノードｆｉとする（ステップＳ３０５）。
【００９２】
再びＳ３０１に戻ると、戻るノード探索部１１０は、隣接行列テーブルＴ１３０のノードｆ４の列においてビットが立っている行のノードｆ２を遷移前ノードとして選択する（ステップＳ３０１）。ノードｆ２にはフラグが立っているため、戻るノード探索部１１０は、ステップＳ３０２において、戻るノード探索部１１０は、フラグが立っていないノードが存在しないと判定し（ステップＳ３０２のＮｏ）、ノードｆ４が算出対象ノードとして決定される。
【００９３】
そして、アクセス権算出部６０は、算出対象ノードｆ４に遷移する遷移前ノードｆ２のアクセス権情報と、ノードｆ４におけるアクセス情報との論理和を計算する（ステップＳ１０６）。ここで、ノードｆ２のアクセス権情報はアクセス情報Ｓ１およびＳ２であり、ノードｆ４におけるアクセス情報はＳ４である。アクセス権算出部６０は、これらの論理和を計算することによって、ノードｆ４のアクセス権がアクセス情報Ｓ１、Ｓ２およびＳ４であると算出する。そして、算出結果に基づいて、ルールテーブル管理部７０は、ルールテーブルＴ１６０のルールテーブル行列のｆ４の行にビットを立てる（ステップＳ１０７）。ここでは、具体的には、図１０（ｂ）のｆ４の行においてＳ１、Ｓ２およびＳ４の要素に「１」が格納される。そして、フラグ設定部９０は、図９（ｇ）に示すように、フラグ管理テーブルＴ１５０のノードｆ４にフラグを立てる（ステップＳ１０８）。この段階でノードｆｅｎｄにフラグが立っていないため（ステップＳ１０９のＮｏ）、ノードｆ４＝ノードｆｉとして、再びステップＳ１０２に戻る。
【００９４】
次ノード探索部１００は、隣接行列テーブルＴ１３０のノードｆ４の行においてビットが立っている列のノードｆ７を遷移先ノードとして選択する（ステップＳ２０１）。この段階で、フラグ管理テーブルＴ１５０を参照すると、ノードｆ７にはフラグが立っていないため、ステップＳ２０２においてノードｆ７が抽出され、ステップＳ２０３において、ノードｆ７が算出対象候補ノードｆｉとして指定される。
【００９５】
次に、戻るノード探索部１１０は、隣接行列テーブルＴ１３０のノードｆ７の列においてビットが立っている行のノードｆ４、ｆ５およびｆ６を選択する（ステップＳ３０１）。フラグ管理テーブルＴ１５０を参照すると、この段階でノードｆ６にはフラグが立っていないため、ステップＳ３０２において、戻るノード探索部１１０は、フラグが立っていない遷移前ノードが存在すると判定する（ステップＳ３０２のＹｅｓ）。そして、戻るノード探索部１１０はノードｆ６を抽出し（ステップＳ３０３）、ｆ６を算出対象候補ノードｆｉとして指定しなおす（ステップＳ３０４）。そして、ノードｆ６＝ノードｆｉとする（ステップＳ３０５）。
【００９６】
再びＳ３０１に戻ると、戻るノード探索部１１０は、隣接行列テーブルＴ１３０のノードｆ６の列においてビットが立っている行のノードｆ３を選択する（ステップＳ３０１）。ノードｆ３にはフラグが立っているため、戻るノード探索部１１０は、ステップＳ３０２において、戻るノード探索部１１０は、フラグが立っていない遷移前ノードが存在しないと判定し（ステップＳ３０２のＮｏ）、ノードｆ６が算出対象ノードとして決定される。
【００９７】
そして、アクセス権算出部６０は、算出対象ノードｆ６に遷移する遷移前ノードｆ３のアクセス権情報と、ノードｆ６におけるアクセス情報との論理和を計算する（ステップＳ１０６）。ここで、ノードｆ３のアクセス権情報はアクセス情報Ｓ１、Ｓ２およびＳ３であり、ノードｆ６におけるアクセス情報はＳ６である。アクセス権算出部６０は、これらの論理和を計算することによって、ノードｆ６のアクセス権がアクセス情報Ｓ１、Ｓ２、Ｓ３およびＳ６であると算出する。そして、算出結果に基づいて、ルールテーブル管理部７０は、ルールテーブルＴ１６０のルールテーブル行列のｆ６の行にビットを立てる（ステップＳ１０７）。ここでは、具体的には、図１０（ｂ）のｆ６の行においてＳ１、Ｓ２、Ｓ３およびＳ６の要素に「１」が格納される。そして、フラグ設定部９０は、図９（ｈ）に示すように、フラグ管理テーブルＴ１５０のノードｆ６にフラグを立てる（ステップＳ１０８）。この段階でノードｆｅｎｄにフラグが立っていないため（ステップＳ１０９のＮｏ）、ノードｆ６＝ノードｆｉとして、再びステップＳ１０２に戻る。
【００９８】
次ノード探索部１００は、隣接行列テーブルＴ１３０のノードｆ６の行においてビットが立っている列のノードｆ７を選択する（ステップＳ２０１）。この段階で、フラグ管理テーブルＴ１５０を参照すると、ノードｆ７にはフラグが立っていないため、ステップＳ２０２においてノードｆ７が抽出され、ステップＳ２０３において、ノードｆ７が算出対象候補ノードｆｉとして決定される。
【００９９】
次に、戻るノード探索部１１０は、隣接行列テーブルＴ１３０のノードｆ７の列においてビットが立っている行のノードｆ４、ｆ５およびｆ６を選択する（ステップＳ３０１）。フラグ管理テーブルＴ１５０を参照すると、この段階でノードｆ４、ｆ５およびｆ６にはいずれもフラグが立っているため、ステップＳ３０２において、戻るノード探索部１１０は、フラグが立っていない遷移前ノードが存在しないと判定し（ステップＳ３０２のＮｏ）、ノードｆ７が算出対象ノードとして決定される。
【０１００】
そして、アクセス権算出部６０は、算出対象ノードｆ７に遷移する遷移前ノードｆ４、ｆ５およびｆ６のアクセス権情報と、ノードｆ７におけるアクセス情報との論理和を計算する（ステップＳ１０６）。ここで、ノードｆ４のアクセス権情報はアクセス情報Ｓ１、Ｓ２およびＳ４であり、ノードｆ５のアクセス権情報はアクセス情報Ｓ１、Ｓ２、Ｓ３およびＳ５であり、ノードｆ６のアクセス権情報はアクセス情報Ｓ１、Ｓ２、Ｓ３およびＳ６である。また、ノードｆ７におけるアクセス情報はＳ７である。アクセス権算出部６０は、これらの論理和を計算することによって、ノードｆ７のアクセス権がアクセス情報Ｓ１からＳ７であると算出する。そして、算出結果に基づいて、ルールテーブル管理部７０は、ルールテーブルＴ１６０のルールテーブル行列のｆ７の行にビットを立てる（ステップＳ１０７）。ここでは、具体的には、図１０（ｂ）のｆ７の行においてＳ１からＳ７の要素に「１」が格納される。そして、フラグ設定部９０は、図９（ｉ）に示すように、フラグ管理テーブルＴ１５０のノードｆ７にフラグを立てる（ステップＳ１０８）。この段階でノードｆｅｎｄにフラグが立っていないため（ステップＳ１０９のＮｏ）、ノードｆ７＝ノードｆｉとして、再びステップＳ１０２に戻る。
【０１０１】
次ノード探索部１００は、隣接行列テーブルＴ１３０のノードｆ７の行においてビットが立っている列のノードｆｅｎｄを選択する（ステップＳ２０１）。この段階で、フラグ管理テーブルＴ１５０を参照すると、ノードｆｅｎｄにはフラグが立っていないため、ステップＳ２０２においてノードｆｅｎｄが抽出され、ステップＳ２０３において、ノードｆｅｎｄが算出対象候補ノードｆｉとして指定される。
【０１０２】
次に、戻るノード探索部１１０は、隣接行列テーブルＴ１３０のノードｆｅｎｄの列においてビットが立っている行のノードｆ７を選択する（ステップＳ３０１）。フラグ管理テーブルＴ１５０を参照すると、この段階でノードｆ７にはフラグが立っているため、ステップＳ３０２において、戻るノード探索部１１０は、フラグが立っていない遷移前ノードが存在しないと判定し（ステップＳ３０２のＮｏ）、ノードｆｅｎｄが算出対象ノードとして決定される。
【０１０３】
そして、アクセス権算出部６０は、算出対象ノードｆｅｎｄに遷移する遷移前ノードｆ７のアクセス権情報と、ノードｆ７におけるアクセス情報との論理和を計算する（ステップＳ１０６）。ここで、ノードｆ７のアクセス権情報はアクセス情報Ｓ１からＳ７である。また、ノードｆｅｎｄにおけるアクセス情報は「０（空集合）」である。アクセス権算出部６０は、これらの論理和を計算することによって、ノードｆｅｎｄのアクセス権がアクセス情報Ｓ１からＳ７であると算出する。そして、算出結果に基づいて、ルールテーブル管理部７０は、ルールテーブルＴ１６０のルールテーブル行列のｆｅｎｄの行にビットを立てる（ステップＳ１０７）。ここでは、具体的には、図１０（ｂ）のｆｅｎｄの行においてＳ１からＳ７の要素に「１」が格納される。このようにして、ルールテーブル行列は、図１０（ｃ）に示すように、全てのノードｆについて、ビットが立てられた状態となる。そして、フラグ設定部９０は、図９（ｊ）に示すように、フラグ管理テーブルＴ１５０のノードｆｅｎｄにフラグを立てる（ステップＳ１０８）。したがって、ステップＳ１０９において、終了判定部１２０は、ノードｆｅｎｄにフラグが立っていると判定する（ステップＳ１０９のＹｅｓ）。そしてルールテーブル生成部１７０は、図８のフローを終了する。そして、ルールテーブル生成部１７０は、生成したルールテーブル行列に基づいて、ルールテーブルＴ１６０を生成する。
【０１０４】
このようにして、ルールテーブル生成装置２００は、ルールテーブルＴ１６０を生成する。このようにルールテーブルＴ１６０を生成させるプログラムは、例えばルールテーブル生成装置２００における図示しない記憶部または外部の記憶媒体等に格納される。
【０１０５】
利用者が情報を閲覧しようとするとき、アクセス制御装置１１００は、上述のように生成されたルールテーブルＴ１６０を参照して、利用者が閲覧しようとする情報に対してアクセス権を有するか否かを判定することができる。
【０１０６】
以上のように、ルールテーブル生成装置２００は、業務プロセスの情報の入力に基づき自動的にルールテーブルＴ１６０を生成することができる。従って、ルールテーブルの生成に必要なコストを低減することができる。さらに、ヒューマンエラーに起因してバグが発生したりセキュリティホールが生じたりする等の不具合が起こるというリスクを低減することができる。このようにして本発明によって、効率的にルールテーブルを生成することができる。
【０１０７】
上述の実施形態は、代表的な例として説明したが、本発明の趣旨および範囲内で、多くの変更および置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０１０８】
例えば、各構成部、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部やステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。
【０１０９】
また、上述の実施形態において、アクセス情報をＳというシンボルとして表記したが、このアクセス情報Ｓが、アクセス情報の情報提供者（情報提供者コード）および情報の内容（情報種別コード）などの属性を有することは当然である。また、ｆというシンボルとして表記した各ノードは、業務の種別（業務ＩＤ）によって表現することも可能である。これらのコードおよびＩＤを使用することにより、ルールテーブルＴ１６０は、表７に示すようなテーブルとして作成することが可能である。
【表７】
2015153139.tif 000009
【０１１０】
表７において、ルールＩＤは、アクセス権に係るルールについて設定されたそれぞれ固有のＩＤである。また、業務ＩＤは各ノードｆを示すＩＤであり、情報提供者コードは、情報の提供者に対応付けられたそれぞれ固有のコードであり、情報種別コードは情報の内容に対応付けられたそれぞれ固有のコードである。表７を参照すると、例えば、「Ｒ０００１」というＩＤを有するルールでは、「Ｇ０１１０」という業務ＩＤを有するノードにおいて、「２５」というコードに対応する情報提供者から提供された「４０」というコードに対応する内容の情報を閲覧することができるというアクセス権があることを示している。
【符号の説明】
【０１１１】
１０  入力部
２０  隣接行列束構造化部
２５  対応表束構造化部
３０  隣接行列生成部
４０  対応表作成部
５０  隣接行列読込部
６０  アクセス権算出部
７０  ルールテーブル管理部
８０  フラグチェック部
９０  フラグ設定部
１００  次ノード探索部
１１０  戻るノード探索部
１２０  終了判定部
１７０  ルールテーブル生成部
１８０  算出対象ノード指定部
２００  ルールテーブル生成装置
１０００、１１００  アクセス制御装置
１０１、１００１  入力部
１０２、１００２  出力部
１０３、１００３  認証部
１０４、１００４  業務処理部
１０５、１００５  ルール情報検索部
１０６、１００６  情報検索部
Ｔ１０１、Ｔ１００１  業務権限テーブル
Ｔ１０３、Ｔ１００３  情報テーブル
Ｔ１３０  隣接行列テーブル
Ｔ１４０  対応表テーブル
Ｔ１５０  フラグ管理テーブル
Ｔ１６０  ルールテーブル
Ｔ１００２  アクセス権限テーブル
【図１】
2015153139.tif 000010
【図２】
2015153139.tif 000011
【図３】
2015153139.tif 000012
【図４】
2015153139.tif 000013
【図５】
2015153139.tif 000014
【図６】
2015153139.tif 000015
【図７】
2015153139.tif 000016
【図８】
2015153139.tif 000017
【図９】
2015153139.tif 000018
【図１０】
2015153139.tif 000019
【図１１】
2015153139.tif 000020
【図１２】
2015153139.tif 000021
【図１３】
2015153139.tif 000022