(57)【要約】【課題】作業を行う担当者に対するアクセス制御を行うと共に、ワークフローの遷移に伴い変化する動的な情報に基づくアクセス制御を行えるようにする。【解決手段】予め担当者の名前識別子と属性を表す主体テーブル５０と、属性間の上下関係を表す属性階層テーブル６０とを定義し、作業の状態が変化したとき、作業状態データを書きかえ、作業が終了したとき履歴テーブル７０を書きかえる。データの組み合せにより、作業を行えない担当者と、作業を行えない属性と、作業を行わなければならない担当者と、作業を行わなければならない属性とを指定するための制約を表す制約テーブル４０を定義する。ワークフローサーバ２０が、作業の担当者を割り当てるとき、セキュリティサーバ１０が履歴テーブル７０，作業状態テーブル８０，主体テーブル５０，属性階層テーブル６０，制約テーブル４０の各データの組み合せにより、禁止ユーザと禁止属性と強制ユーザと強制属性とを求め、アクセス許可判定と割り当て候補作成を行う。【選択図】　　　　図１
2004062720.tif 000002
【特許請求の範囲】
【請求項１】
複数の作業と、該複数の作業の流れと、該複数の作業の担当者とを定義し、該複数の作業の状態を制御し、該複数の作業に対して担当者を割り当て、該複数の作業の流れを管理するワークフローシステムにおける作業への担当者の割り当て対するアクセス許可判定方法であって、
過去の作業状態と、現在の作業状態と、作業の実行回数の１つ以上の組み合せをもとに、アクセス許可判定を行うことを特徴とするアクセス許可判定方法。
【請求項２】
請求項１記載のアクセス許可判定方法において、
前記過去の作業状態と、現在の作業状態と、作業の実行回数に加えて、担当者の属性と、該属性の階層の１つ以上の組み合せをもとに、アクセス許可判定を行うことを特徴とするアクセス許可判定方法。
【請求項３】
請求項２記載のアクセス許可判定方法において、
前記過去の作業状態と、現在の作業状態と、作業の実行回数と、担当者の属性と、該属性の階層の１つ以上の組み合せをもとに、作業を行えない担当者と、作業を行えない属性と、作業を行わなければならない担当者と、作業を行わなければならない属性と、をもとにアクセス許可判定を行うことを特徴とするアクセス許可判定方法。
【請求項４】
複数の作業と、該複数の作業の流れと、該複数の作業の担当者とを定義し、該複数の作業の状態を制御し、該複数の作業に対して担当者を割り当て、かつ該作業への担当者の割り当てに対しアクセス制御を行い、該複数の作業の流れを管理するセキュアワークフローシステムであって、
過去の作業状態を記憶する履歴記憶手段と、
現在の作業状態を記憶する状態記憶手段と、
担当者の割り当て規則である制約を記憶する制約記憶手段と、
該制約記憶手段から制約を取得する制約取得手段と、
前記履歴記憶手段と前記状態記憶手段とに記憶された情報の組み合せをもとに、前記制約取得手段により取得した制約に当てはまる対象を評価する制約評価手段と、
該制約評価手段により得られる評価をもとに、担当者の作業へのアクセス許可判定を行うアクセス許可判定手段とを具備することを特徴とするセキュアワークフローシステム。
【請求項５】
請求項４記載のセキュアワークフローシステムにおいて、
前記過去の作業状態を記憶する履歴記憶手段と、現在の作業状態を記憶する状態記憶手段と、担当者の割り当て規則である制約を記憶する制約記憶手段と、前記制約記憶手段から制約を取得する制約取得手段に加えて、
担当者の属性を記憶する属性記憶手段と、
担当者の属性階層を記憶する属性階層記憶手段と、
前記履歴記憶手段と、前記状態記憶手段と、前記属性記憶手段と，前記属性階層記憶手段に記憶された情報の組み合せをもとに、前記制約取得手段により取得した制約に当てはまる対象を評価する制約評価手段と、
該制約評価手段により得られる評価をもとに、担当者の作業へのアクセス許可判定を行うアクセス許可判定手段とを具備することを特徴とするセキュアワークフローシステム。
【請求項６】
複数の作業と、該複数の作業の流れと、該複数の作業の担当者とを定義し、該複数の作業の状態を制御し、該複数の作業に対して担当者を割り当て、該複数の作業の流れを管理するワークフローシステムにおける作業への割り当て可能な担当者の候補を作成する割り当て候補作成方法であって、
過去の作業状態と、現在の作業状態と、作業の実行回数の１つ以上の組み合せをもとに、割り当て可能な担当者の候補を作成することを特徴とする割り当て候補作成方法。
【請求項７】
請求項６記載の割り当て候補作成方法において、
前記過去の作業状態と、現在の作業状態と、作業の実行回数に加えて、担当者の属性と、該属性の階層の１つ以上の組み合せをもとに、割り当て可能な担当者の候補を作成することを特徴とする割り当て候補作成方法。
【請求項８】
請求項７記載の割り当て候補作成方法において、
前記過去の作業状態と、現在の作業状態と、作業の実行回数と、担当者の属性と、該属性の階層の１つ以上の組み合せをもとに、作業を行えない担当者と、作業を行えない属性と、作業を行わなければならない担当者と、作業を行わなければならない属性とをもとに、割り当て可能な担当者の候補を作成することを特徴とする割り当て候補作成方法。
【請求項９】
複数の作業と、該複数の作業の流れと、該複数の作業の担当者とを定義し、該複数の作業の状態を制御し、該複数の作業に対して担当者を割り当て、該作業への担当者の割り当てを行うための割り当て候補を作成し、該複数の作業の流れを管理するワークフローシステムであって、
過去の作業状態を記憶する履歴記憶手段と、
現在の作業状態を記憶する状態記憶手段と、
担当者の割り当て規則である制約を記憶する制約記憶手段と、
該制約記憶手段から制約を取得する制約取得手段と、
前記履歴記憶手段と、前記状態記憶手段とに記憶された情報の組み合せをもとに、前記制約取得手段により取得した制約に当てはまる対象を評価する制約評価手段と、
該制約評価手段により得られる評価をもとに、割り当て可能な担当者の候補を求める割り当て候補作成手段とを具備することを特徴とするセキュアワークフローシステム。
【請求項１０】
請求項９記載のセキュアワークフローシステムにおいて、前記過去の作業状態を記憶する履歴記憶手段と、現在の作業状態を記憶する状態記憶手段と、担当者の割り当て規則である制約を記憶する制約記憶手段と、該制約記憶手段から制約を取得する制約取得手段に加えて、
担当者の属性を記憶する属性記憶手段と、
担当者の属性階層を記憶する属性階層記憶手段と、
前記履歴記憶手段と、前記状態記憶手段と、前記属性記憶手段と、前記属性階層記憶手段とに記憶された情報の組み合せをもとに、前記制約取得手段により取得した制約に当てはまる対象を評価する制約評価手段と、
該制約評価手段により得られる評価をもとに、割り当て可能な担当者の候補を求める割り当て候補作成手段とを具備することを特徴とするセキュアワークフローシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の作業を連携して実行するようなワークフローシステムで、かつ機密保護機能を有するセキュリティシステムに関し、詳しくはワークフローシステム上の階層的な属性に基づくアクセス制御，作業の前後関係を考慮した履歴に基づくアクセス制御，および現在実行中の他作業の状態を考慮したカレント状態に基づくアクセス制御が可能なセキュアワークフローシステムに関する。
【０００２】
【従来の技術】
ワークフローとは仕事の発生から終了までの作業の流れを規定するものであり、誰が、どんな作業を、どういう順序で行うかがワークフローによって定義され、このワークフローに従って作業を遂行するシステムがワークフローシステムである。
図１４は、従来のワークフローシステムの構成例を示す図である。
ワークフローシステムについては、例えば、「ワークフロー　ビジネスプロセスの変革に向けて」（著者：戸田　保一，飯島　淳一，速水　治夫，堀内　正博，発行元：日科技連出版社）の１８ページから２１ページに記載されている。この文献における記載を図１４を参照して簡単に説明すると、以下のようである。
【０００３】
プロセス定義データ４２３では、作業の内容，開始および終了の条件，作業を実行する担当者，作業の順序関係などを定義する。ワークフロー制御データ４２４は、ワークフロー実行時にワークフローを制御するための情報である。作業データ４２５は、ワークフロー制御には直接関係しない、作業で生み出される成果物の情報である。また、処理制御部４２２は、プロセス定義データを解釈して、ワークフローの作業の状態を管理する。ユーザ割当部４２１は、作業が開始されるときに、プロセス定義データに定義されている作業を実行する担当者をもとに、該作業を実行するユーザの割り当てを行う。作業を実行する担当者が作業を終了すると、処理制御部４２２は、作業の終了を検知し、プロセス定義データ４２３の作業の順序関係などを解釈して、ワークフローの状態を進行させる。
【０００４】
しかしながら、上記文献に記載された方法では、作業を実行する担当者は、事前に定義されており、ワークフローの進行状況に伴う動的な定義はできない。
【０００５】
これに対して，作業データに対するアクセス制御方法として、例えば、特開平７−２８７６８８号公報に記載された「動的アクセス権変更方法及び動的アクセス権変更装置」がある。上記公報に記載されている動作は、アクセス権を動的に変更するが、変更するための定義は事前に設定された静的な定義情報によるものである。また、アクセス制御の対象は作業データに対するものであり、作業そのものに対するものではない。つまり、作業担当者が作業を行うこと自体を制御するものではない。
【０００６】
【発明が解決しようとする課題】
このように、ワークフローシステムにおいて、作業を実行する担当者に制限を設けることは、セキュリティ上重要なことであって、内容を機密にすることは勿論のこと、時々刻々変化するワークフローの作業の状態に応じた木目細かな制御を、動的に行ないたい場合がある。
さらに、作業を実行する担当者を直接指定する方法ではなく、例えば、会社組織の中の役職や住所等の様々な属性を指定して、担当者を割り当てたい場合がある。
さらに、担当者に対して作業を禁止するだけでなく、作業を強制したい場合がある。
【０００７】
上記要求の具体例を、図１１を用いて説明する。
図１１において、例えば、作業（１）２０１を実行する担当者は、該担当者の役職という属性の属性値が事務職の人でなければならない、という制限を設けたい場合がある。
また、例えば、作業（１）２０１が終了して、次の作業（２）２０２を実行する場合、作業（２）２０２を実行する担当者は、該担当者の役職という属性の属性値が、作業（１）２０２を実行した担当者の役職という属性の属性値の上位階層の属性値を持つ人、つまり、直属の上司でなければならない、という制限を設けたい場合がある。
【０００８】
また、例えば、作業（３）２０３と作業（４）２０４は同時に並行して実行される作業であるが、それらの作業（３）２０３と作業（４）２０４を同一の担当者が実行することはできない、という制限を設けたい場合がある。
また、例えば、繰り返し動作２０６が発生した場合に、２回目以降に作業（１）２０１を行う担当者は、１回目に作業（１）２０１を行った担当者でなければならない、という制限を設けたい場合がある。
【０００９】
本発明の目的は、上記のような課題を解決するものであって、作業データのみではなく、作業への担当者の割り当て対するアクセス制御を行うとともに、ワークフローの遷移に伴い変化する動的な情報に基づくアクセス制御をセキュアに実行することが可能なセキュアワークフローシステムおよびその動作方法を提供することである。
【００１０】
【課題を解決するための手段】
本発明のセキュアワークフローシステムは、複数の作業と、該複数の作業の流れと、該複数の作業の担当者とを定義し、該複数の作業の状態を制御し、該複数の作業に対して担当者を割り当て、該複数の作業の流れを管理する少なくとも１つのワークフローサーバと、前記ワークフローサーバからの呼び出しに応じて、作業への担当者の割り当てに対するアクセス制御を行う少なくとも１つのセキュリティサーバと、前記ワークフローサーバによって割り当てられた作業の担当者が、実際に作業を行う少なくとも一つのワークフロークライアントと、前記ワークフローサーバと、前記セキュリティサーバとの処理で使用されるワークフロー関連データとからなるワークフローシステムであって、前記ワークフロー関連データは、過去の作業状態を記憶する履歴データと、現在の作業状態を記憶する作業状態データと、担当者の属性を記憶する主体データと、担当者の属性階層を記憶する属性階層データと、担当者の割り当て規則である制約を記憶する制約データとを備える。
【００１１】
そして、前記ワークフローサーバは、予め定義された作業の内容，作業の開始および終了の条件，作業の順序関係などを定義したプロセス定義データをもとに、複数の作業の状態を制御する処理制御部と、予め定義された作業を実行する担当者をもとに、各作業に対してユーザを割り当てるユーザ割当部とを備え、前記セキュリティサーバは、前記制約データから制約を取得する制約取得部と、前記履歴データと、前記作業状態データと、前記主体データと、前記属性階層データとに記憶された情報をもとに、前記制約取得部により取得した制約に当てはまる対象を評価する制約評価部と、前記制約評価部により得られる評価をもとに、指定された担当者が指定された作業を行うことができるかどうかの判定を行うアクセス許可判定部と、前記制約評価部により得られる評価をもとに、割り当て可能な担当者の候補の取得を行う割り当て候補取得部とを備える。
【００１２】
本発明のセキュアワークフローシステムでは、予め担当者の名前と属性を表す主体データと、属性間の上下関係を表す属性階層データを定義するようにしている。
また、作業の状態が変化したときに、作業状態データを書きかえるようにしている。
また、作業が終了したときに、履歴データを書きかえるようにしている。
また、履歴データと、作業状態データと、主体データと、属性階層データと、組み合せにより作業を行えない担当者と、作業を行えない属性と、作業を行わなければならない担当者と、作業を行わなければならない属性とを指定するための制約を表す制約データを定義するようにしている。
【００１３】
そして、ワークフローサーバが作業の担当者を割り当てるときに、セキュリティサーバを用いて、アクセス許可判定および割り当て可能な担当者候補の取得を行うようにしている。セキュリティサーバは、履歴データと、作業状態データと、主体データと、属性階層データと、制約データの組み合せにより、作業を行える担当者と、作業を行える属性と、作業を行わなければならない担当者と、作業を行わなければならない属性とを求め、指定された担当者のアクセス許可判定および割り当て可能な担当者候補の取得を行うようにしている。
【００１４】
したがって、本発明によれば、ワークフローの遷移に伴い変化する履歴データと、作業状態データとに基づいて、作業への担当者の割り当てに対する動的なアクセス制御を行うことができる。
また、直接担当者を指定せず、属性データを用いているので、担当者の属性に基づくアクセス制御を行うことができる。
また、作業を行えないという禁止の制約だけでなく、作業を行わなければならないという強制の制約を指定することができるので、柔軟なアクセス制御を行うことができる。
【００１５】
【発明の実施の形態】
以下、本発明の実施形態を、図面により詳細に説明する。
図１は、本発明の一実施形態が適用されたセキュアワークフローシステムのシステム構成図である。また、図２は、本発明の一実施形態が適用されたセキュアワークフローシステムのネットワーク構成図である。
本実施形態のセキュアワークフローシステムは、図２に示すように、ワークフロークライアント３０１〜３０ｎ（以下、単にワークフロークライアント３０と呼ぶ）と、ワークフローサーバ２０と、セキュリティサーバ１０とが、ＬＡＮなどの通信網９１を介して互いに接続されて構成されている。また、データベース９０が、ワークフローサーバ２０およびセキュリティサーバ１０に接続されている。データベース９０は、セキュリティに関するデータおよびワークフローに関するデータを管理する。
【００１６】
図１に示すように、データベース９０は、過去の作業状態を記憶する履歴テーブル７０と、現在の作業状態を記憶する作業状態テーブル８０と、担当者の属性を記憶する主体テーブル５０と、担当者の属性階層を記憶する属性階層テーブル６０と、担当者の割り当て規則である制約を記憶する制約テーブル４０と、作業の内容，開始および終了の条件，作業を実行する担当者，作業の順序関係などを定義するプロセス定義データ２３と、ワークフロー実行時にワークフローを制御するための情報であるワークフロー制御データ２４と、ワークフロー制御には直接関係しない、作業で生み出される成果物の情報である作業データ２５とを含む。
【００１７】
ワークフローサーバ２０は、複数の作業と、該複数の作業の流れと、該複数の作業の担当者とを定義し、該複数の作業の状態を制御し、該複数の作業に対して担当者を割り当て、該複数の作業の流れを管理する。
図１に示すように、処理制御部２２は、プロセス定義データ２３と、ワークフロー制御データ２４と、作業データ２５とをもとに、複数の作業の状態を制御する。ユーザ割当部２１は、ワークフロー制御データ２４と、作業データ２５とをもとに、作業の担当者の候補を割り当てるとともに、該候補がアクセスを許可されるか否かを、セキュリティサーバ１０に問い合わせる。その結果、アクセスが許可される担当者を、作業に割り当てる。また、ユーザ割当部２１は、ワークフロー制御データ２４と、作業データ２５とをもとに、作業の担当者の候補集合を割り当てるとともに、該候補集合がアクセスを許可されるか否かを、セキュリティサーバ１０に問い合わせる。その結果、アクセスが許可される担当者の候補集合を、作業に割り当てる。
【００１８】
セキュリティサーバ１０は、ワークフローサーバ２０からの呼び出しに応じて、作業への担当者の割り当てに対するアクセス制御を行う。制約取得部１３は、制約テーブル４０から制約を取得する。
制約評価部１２は、履歴テーブル７０と、作業状態テーブル８０と、主体テーブル５０と、属性階層テーブル６０とに記憶された情報をもとに、制約取得部１３により取得した制約に当てはまる対象を評価する。すなわち、記憶された情報を解釈して、該当するか否か、適合するか否かを評価する。
アクセス許可判定部１１は、制約取得部１３と、制約評価部１２により得られる評価をもとに、指定された担当者が指定された作業を行うことができるか否かの判定を行う。
割り当て候補取得部１４は、制約取得部１３と、制約評価部１２により得られる評価をもとに、指定された作業を行うことができる担当者の集合を求める。ここで、集合とは、複数の人数の担当者である。
ワークフロークライアント３０は、ワークフローサーバ２０によって割り当てられた作業の担当者の端末であって、これらの担当者が作業を行う。
【００１９】
次に、本実施形態のセキュアワークフローシステムにおけるセキュリティに関するデータ形式について、図面を参照して説明する。
図３は、担当者の割り当て規則である制約を記憶する制約テーブルを示す図である。
制約の型４１は、対象の制約が禁止されるユーザ（禁止ユーザ）を求めるためのものであるのか、または、禁止される属性（禁止属性）を求めるためのものであるのか、または、強制されるユーザ（強制ユーザ）を求めるためのものであるのか、または、強制される属性（強制属性）を求めるためのものであるのかを設定する。作業名４２は、制約を適用する作業名を設定する。イベント名４３は、制約を適用するイベント名を設定する。
【００２０】
実行回数４４は、制約を適用する作業の実行回数を設定する。制約４５は、制約の型４１で指定される型のユーザあるいは属性を求めるための規則を設定する。結合法４６は、前記制約４５で指定されるユーザあるいは属性を、どのように結合して解釈するかを指定する。たとえば、制約の型４１が禁止属性で、結合法４６がａｎｙの場合には、制約４５で指定される属性の‘どれか’１つ以上の属性を有するユーザは禁止される。優先度４７は、割り当て規則を適用する優先度を設定する。
【００２１】
図４は、担当者の属性を記憶する主体テーブルを示す図である。
ユーザ識別子５１は、作業の担当者の識別子を設定する。属性名５２は、作業の担当者の属性の名前を設定する。属性値５３は、作業の担当者の属性名５２に対する属性の値を設定する。
【００２２】
図５は、担当者の属性階層を記憶する属性階層テーブルを示す図である。
親属性名６１および親属性値６２は、子属性名６３および子属性値６４の階層的に上位の属性を設定する。逆に子属性名６３には、親属性名６１の下位の属性を設定する。
【００２３】
図６は、過去の作業状態を記憶する履歴テーブルを示す図である。
ユーザ識別子７１は、作業を行った担当者の識別子を設定する。作業名７２は、作業を行った担当者の作業名を設定する。イベント名７３は、担当者が行った作業のイベント名を設定する。実行回数７４は、担当者が行った作業の実行回数を設定する。
【００２４】
図７は、現在の作業状態を記憶する作業状態テーブルを示す図である。
ユーザ識別子８１は、現在作業を行っている担当者の識別子を設定する。
作業名８２は、現在担当者が行っている作業の作業名を設定する。状態名８３は、現在担当者が行っている作業の状態名を設定する。例えば、作業中、休止中、などがある。実行回数８４は、現在担当者が行っている作業の実行回数を設定する。例えば、繰り返し作業の場合の回数である。
【００２５】
図１２は、制約テーブル４０の制約４５に設定される制約の例を示す説明図である。
制約は、過去の作業状態を記憶する履歴データと、現在の作業状態を記憶する作業状態データと、担当者の属性を記憶する主体データと、担当者の属性階層を記憶する属性階層データをもとに、適切な担当者あるいは属性を選択するための規則である。ここでは、属性名が‘役職’の場合について定めており、属性階層テーブル６０の親属性値に同一名（例えば、部長、あるいは課長）の記載があり、それに対応する子属性値が、履歴テーブル７０の作業名が‘タスク１’（担当者の作業名）であり、イベント名が‘実行’（休止でない）となっているものに指定している。
【００２６】
次に、本実施形態のセキュアワークフローシステムのセキュリティサーバにおけるアクセス許可判定、および割り当て候補取得の処理の流れについて、図面を参照して説明する。
図８は、図１のアクセス許可判定部１１におけるアクセス許可判定の処理の流れを示すフローチャートである。
まず、ワークフローサーバからアクセス許可判定を行いたい担当者のユーザ識別子名，属性，作業情報（作業名，イベント名，作業の実行回数）を指定する（ステップ１０１）。
【００２７】
次に、作業情報（作業名，イベント名，作業の実行回数）に関連した禁止ユーザの制約の集合を得る（ステップ１０２）。得られた制約には優先度が関連付けられているので、その優先度の順番で以降の処理を行う。得られた禁止ユーザの制約に基づき禁止ユーザの集合を得る（ステップ１０３）。例えば、その作業に必要な人数が４名の場合には、禁止される条件に対して、ユーザの４名分の名前を取得する処理を開始する。まず、制約に基づき属性の集合を得る（ステップ１０４）。
得られた属性集合の型が禁止属性であり、かつ、制約に関連付けられた結合法がａｎｙであり、かつ、１つ以上の禁止属性が、申請者の属性に含まれているかどうかをチェックする（ステップ１０５）。すなわち、ａｎｙの場合、どれか１人でも該当者がいればＮＧであることになる。もし該当すれば、アクセスを禁止し、判定を終了する。もし、該当しなければ次のステップに進む。
【００２８】
次に、得られた属性集合の型が禁止属性であり、かつ、制約に関連付けられた結合法がａｌｌであり、かつ、全ての禁止属性が申請者の属性に含まれているかどうかをチェックする（ステップ１０６）。すなわち、ａｌｌの場合、全ての人が該当すればＮＧであることになる。もし該当すれば、アクセスを禁止し、判定を終了する。もし、１人でも該当しなければ、次のステップに進む。
次に、得られた属性集合の型が強制属性であり、かつ、制約に関連付けられた結合法がａｎｙであり、かつ、１つ以上の強制属性が、申請者の属性に含まれているかどうかをチェックする（ステップ１０７）。すなわち、ａｎｙの場合、どれか１人でも該当者がいれば強制的にアクセス許可されることになる。もし該当すれば、アクセスを許可し、判定を終了する。もし、該当しなければ次のステップに進む。
【００２９】
次に、得られた属性集合の型が強制属性であり、かつ、制約に関連付けられた結合法がａｌｌであり、かつ、全ての強制属性が申請者の属性に含まれているかどうかをチェックする（ステップ１０８）。すなわち、ａｌｌの場合、全ての人が該当した場合にのみＯＫになることである。もし、該当すれば、アクセスを許可し、判定を終了する。もし、該当しなければ次のステップに進む。
【００３０】
ステップ１０２で求められた全ての制約について、ステップ１０４〜１０８までの処理が実行されたか否かをチェックする（ステップ１０９）。全ての制約についてチェック未完ならば、ステップ１０４に戻る。完了ならば、ステップ１０４で得られた属性の集合に強制属性の型が関連付けられた集合が存在したかどうかをチェックする（ステップ１１０）。
【００３１】
すなわち、該当する人がＮＯで進んできたので、強制属性の型の集合であれば、それは該当する人が全くいないことになる。従って、もし、存在したならアクセスを禁止し、判定を終了する。もし、強制属性の型の集合が存在しなければアクセスを許可し、判定を終了する。チェックが未完ならば、ステップ１０４に戻る。
【００３２】
図９は、図１の制約評価部１２における制約評価の処理の流れを示すフローチャートである。
まず、図８のアクセス許可判定の処理の流れを示すフローチャートにおけるステップ１０４で得られた制約を指定する（ステップ１３１）。これらの各ステップでの違いは、制約の型だけである。次に、主体テーブル，属性階層テーブル，履歴テーブル，作業状態テーブルを参照して、制約に当てはまる担当者、あるいは属性の集合を得る（ステップ１３２）。最後に、得られた担当者、あるいは属性の集合を呼び出し、もとに返す（ステップ１３３）。
すなわち、制約評価部１２は、得られた属性の集合を４つのテーブルを参照して、担当者として当てはまるか否かを評価した後、割り当て候補取得部１４に返す。
【００３３】
図１０は、図１の制約取得部１３における制約取得の処理の流れを示すフローチャートである。
まず、作業情報（作業名，イベント名，作業の実行回数）および制約の型を指定する（ステップ１２１）。次に、制約テーブル中で制約の型，作業名，イベント名，作業の実行回数が一致する制約をすべて求める（ステップ１２２）。次に、制約テーブル中で作業名，イベント名，作業の実行回数が指定されていないものがある場合には、指定されているものが一致する制約をすべて求める（ステップ１２３）。
【００３４】
次に、制約中の作業名，イベント名，作業の実行回数に変数を含んでいるか否かをチェックする（ステップ１２４）。例えば、変数としてタスクイベント＝＄が入っている場合、問合せをしたとき、１回の制約を呼び出したならば、＄＝１に置き換える。このように、もし変数を含んでいれば、該変数をステップ１２１で指定された作業名，イベント名，作業の実行回数で置きかえる（ステップ１２５）。最後に、求めた制約の集合を呼び出し元に返す（ステップ１２６）。呼び出し元は、この場合、制約評価部１２であるので、評価部１２に返すことになる。また、ステップ１２４で、もし変数を含んでいなければ、そのまま、ステップ１２６を実行する。
【００３５】
図１５は、図１の割り当て候補取得部１４における割り当て候補取得の処理の流れを示すフローチャートである。
まず、ワークフローサーバから割り当て元となるユーザ集合、および作業情報（作業名，イベント名，作業の実行回数）を指定する（ステップ１４１）。
次に、作業情報（作業名，イベント名，作業の実行回数）に関連した禁止ユーザの集合を得る（ステップ１４２）。次に、作業情報（作業名，イベント名，作業の実行回数）に関連した強制ユーザの集合を得る（ステップ１４３）。前記ステップ１４３で求めた強制ユーザの集合が空でなければ、強制ユーザの集合から禁止ユーザの集合に含まれるユーザを引いた集合を求める（ステップ１４５）。すなわち、強制集合が４名であり、かつａｌｌ、つまり全てが該当すれば、禁止ユーザでａｎｙ、つまり１人でも禁止条件に該当する者があれば、その人数を差し引いて、真に該当する人数の集合を求める。
【００３６】
前記ステップ１４３で求めた強制ユーザの集合が空であれば、ステップ１４１で指定した割り当て元となるユーザの集合から禁止ユーザの集合に含まれるユーザを引いた集合を求める（ステップ１４６）。すなわち、強制ユーザのチェックステップがない場合には、割り当て元となる人数、例えば４人から、禁止ユーザの集合に含まれるａｎｙの数、例えば該当する人数が１人の場合には、４−１＝３名を求める。
このように、本実施形態では、属性で動的に作業を割り当てることができる。
【００３７】
図１６は、図１５のステップ１４２の作業情報に関連した禁止ユーザの集合を得るための処理を詳しく説明するためのフローチャートである。
まず、作業情報（作業名，イベント名，作業の実行回数）を指定する（ステップ１４２１）。
次に、該作業情報に関連した禁止属性ユーザの制約を取得する（ステップ１４２２）。求められた全ての制約について、以下の処理を実行する。すなわち、得られた禁止ユーザの制約に基づき、禁止ユーザの集合を得る（ステップ１４２３）。
【００３８】
次に、制約に関連付けられた結合法がａｎｙであり、かつ、１つ以上の禁止属性がユーザの属性に含まれるか否かをチェックする（ステップ１４２４）。もし該当すれば、禁止ユーザの集合に追加する（ステップ１４２７）。
次に制約に関連付けられた結合法がａｌｌであり，かつ，全ての禁止属性が，ユーザの属性に含まれかをチェックする（ステップ１４２５）。もし該当すれば，禁止ユーザの集合に追加する（ステップ１４２７）。
全ての制約についてチェック完了ならば（ステップ１４２６）、ステップ１４２７で求めた禁止ユーザの集合を返す（ステップ１４２８）。チェックが未完ならばステップ１４２３に戻る。
【００３９】
図１７は、図１５のステップ１４３の作業情報に関連した強制ユーザの集合を得るための処理を詳しく説明するためのフローチャートである。
まず、作業情報（作業名，イベント名，作業の実行回数）を指定する（ステップ１４３１）。
次に、該作業情報に関連した強制属性の制約を得る（ステップ１４３２）。求められた全ての制約について、以下の処理を実行する。すなわち、得られた強制属性の制約に基づき強制属性の集合を得る（ステップ１４３３）。次に、制約に関連付けられた結合法がａｎｙであり、かつ、１つ以上の強制属性がユーザの属性に含まれるか否かをチェックする（ステップ１４３４）。もし、該当すれば、強制ユーザの集合に追加する（ステップ１４３７）。
【００４０】
次に、制約に関連付けられた結合法がａｌｌであり、かつ、全ての強制属性がユーザの属性に含まれか否かをチェックする（ステップ１４３５）。もし、該当すれば、強制ユーザの集合に追加する（ステップ１４３７）。全ての制約についてチェック完了ならば（ステップ１４３６）、ステップ１４３７で求めた強制ユーザの集合を返す（ステップ１４３８）。チェックが未完ならばステップ１４３３に戻る。
【００４１】
なお、本発明は、上記の実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。例えば、本実施形態の主体テーブルでは、ユーザ識別子と属性名、属性値を設定しているが、担当者の様々な属性（他の担当者名やグループ名など）を設定するようにしても良い。
また、本実施形態の属性階層テーブルでは、親属性名と子属性名のみをテーブル形式で設定しているが、組織の様々な階層構造を、例えば木構造で表して管理しても良い。親と子だけでは上下関係のみが判別できるだけであるが、木構造にすれば、上から下までが一目瞭然となる。
【００４２】
また、本実施形態の履歴テーブルでは、ユーザ識別子と作業名とイベント名と実行回数を担当者名とを設定しているが、名と，作業名と，イベント名と，実行回数と，を設定しているが，例えば，作業を実行終了した時間など、その他の情報を記憶するようにしても良い。
また、本実施形態の作業状態テーブルでは、ユーザ識別子担当者名と役職名と作業名と状態名と実行回数とを設定しているが、例えば、実行開始した時間など、その他の情報を記憶するようにしても良い。
また、本実施形態の制約は、日本語の自然言語で書いているが、図１３に示すように、データベース問い合わせ言語や、その他の言語で記述しても良い（実際には、図１３で記述しないと動作しない）。
また、本実施形態では、ワークフローサーバとセキュリティサーバは、別々の装置に実装されているが、同一装置に実装しても良いのは勿論である。
【００４３】
【発明の効果】
以上説明したように、本発明によれば、ワークフローの遷移に伴い変化する履歴データと、作業状態データと、作業の実行回数とに基づいて、作業への担当者の割り当てに対する動的なアクセス制御を行うことができる。また、直接担当者を指定せず、属性データを用いているので、担当者の属性に基づくアクセス制御を行うことができる。また、禁止の制約だけでなく、強制の制約を指定することができるので、柔軟なアクセス制御を行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施形態を示すセキュアワークフローシステムの構成図である。
【図２】本発明の一実施形態を示すセキュアワークフローシステムのネットワーク構成図である。
【図３】図１に示す制約テーブルの構成例を示す図である。
【図４】図１に示す主体テーブルの構成例を示す図である。
【図５】図１に示す属性階層テーブルの構成例を示す図である。
【図６】図１に示す履歴テーブルの構成例を示す図である。
【図７】図１に示す作業状態テーブルの構成例を示す図である。
【図８】本発明の一実施形態を示すセキュアワークフローシステムのアクセス制御判定部の動作を説明するためのフローチャートである。
【図９】本発明の一実施形態を示すセキュアワークフローシステムの制約評価部の動作を説明するためのフローチャートである。
【図１０】本発明の一実施形態を示すセキュアワークフローシステムの制約取得部の動作を説明するためのフローチャートである。
【図１１】本発明が適用されるセキュアワークフローシステムの制約の種類を説明するためのワークフロー図である。
【図１２】本発明の一実施形態が適用されるセキュアワークフローシステムの制約の例を示す図である。
【図１３】本発明の他の実施形態が適用されるセキュアワークフローシステムの制約の例を示す図である。
【図１４】従来のワークフローシステムの仕組みを説明するための図である。
【図１５】本発明の一実施形態を示すセキュアワークフローシステムの割り当て候補取得部の動作を説明するためのフローチャートである。
【図１６】図１５に示す禁止ユーザの集合を求めるステップ１４２を詳しく説明するためのフローチャートである。
【図１７】図１５に示す強制ユーザの集合を求めるステップ１４３を詳しく説明するためのフローチャートである。
【符号の説明】
１０　セキュリティサーバ
１１　アクセス許可判定部
１２　制約評価部
１３　制約取得部
２０　ワークフローサーバ
２１　ユーザ割当部
２２　処理制御部
２３　プロセス定義データ
２４　ワークフロー制御データ
２５　作業データ
３０　ワークフロークライアント
３０１〜３０ｎ　ワークフロークライアント
４０　制約テーブル
５０　主体テーブル
６０　属性階層テーブル
７０　履歴テーブル
８０　作業状態テーブル
９０　データベース
９１　ネットワーク
３０１　制約の例
３０２　制約の例
４２０　従来のワークフローサーバ
４２１　従来のユーザ割当部
４２２　従来の処理制御部
４２３　従来のプロセス定義データ
４２４　従来のワークフロー制御データ
４２５　従来の作業データ
【図１】
2004062720.tif 000003
【図２】
2004062720.tif 000004
【図３】
2004062720.tif 000005
【図４】
2004062720.tif 000006
【図５】
2004062720.tif 000007
【図６】
2004062720.tif 000008
【図７】
2004062720.tif 000009
【図８】
2004062720.tif 000010
【図９】
2004062720.tif 000011
【図１０】
2004062720.tif 000012
【図１１】
2004062720.tif 000013
【図１２】
2004062720.tif 000014
【図１３】
2004062720.tif 000015
【図１４】
2004062720.tif 000016
【図１５】
2004062720.tif 000017
【図１６】
2004062720.tif 000018
【図１７】
2004062720.tif 000019