情報処理装置、情報処理システム、及びプログラム
【課題】階層構造を形成する複数の組織で利用される電子文書の管理において、組織階層に応じて、文書の流通経路ごとに、文書に対するアクセスを制御できる技術を提供する。
【解決手段】派生関係DB110は、操作結果の文書の管理IDに対応づけて、その文書の操作前の管理IDである親ID、及び、その操作者を記憶する。組織情報DB120は、複数の組織からなる組織階層の構造を表す情報と、各組織に所属する構成員と、を記憶する。アクセス制御部142は、要求対象文書の管理IDと、要求者と、を特定する文書出力要求を受けた場合に、要求対象文書又は派生関係DB110内の派生関係群が表す木構造において要求対象文書の先祖に該当する文書の操作者と、要求者の所属組織又は当該所属組織の上位組織に所属する構成員と、を照合することで、要求対象文書の出力の可否を決定する。
【解決手段】派生関係DB110は、操作結果の文書の管理IDに対応づけて、その文書の操作前の管理IDである親ID、及び、その操作者を記憶する。組織情報DB120は、複数の組織からなる組織階層の構造を表す情報と、各組織に所属する構成員と、を記憶する。アクセス制御部142は、要求対象文書の管理IDと、要求者と、を特定する文書出力要求を受けた場合に、要求対象文書又は派生関係DB110内の派生関係群が表す木構造において要求対象文書の先祖に該当する文書の操作者と、要求者の所属組織又は当該所属組織の上位組織に所属する構成員と、を照合することで、要求対象文書の出力の可否を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、及びプログラムに関する。
【背景技術】
【0002】
サーバに電子文書が登録されたシステムにおいて、一般に、電子文書に関してユーザに与えられる利用権限の管理は、電子文書(ファイル)ごとに、その文書に対する各ユーザ又は各グループの権限、例えば閲覧可能/不可、書込可能/不可など、のアクセス権を示す情報を設定登録することで行われる。電子文書の利用管理を行うシステムは、ユーザからある文書に対する操作の要求を受けた場合、その文書について設定登録されたアクセス権情報に基づいて、その操作がそのユーザの権限内のものであるかを判定し、その操作を許可するか否かを判定する。
【0003】
文書ごとにアクセス権情報を設定登録する電子文書利用管理システムを用いて、例えば企業など、階層構造を形成する複数の組織からなる団体において利用される電子文書を管理する場合に、その団体における組織の階層構造及び組織の業務分担などの組織に関する情報を用いて、文書ごとのアクセス権の設定を行う技術がある。
【0004】
特許文献1には、プログラム及び設計書などの文書について、会社組織及び業務分類に基づきアクセス権を設定する文書管理装置が開示されている。特許文献1に記載の技術では、各組織の構成員を表す情報と、各組織の業務を表す情報と、業務において用いられる文書を表す情報と、を設定しておき、文書に対するアクセス要求があった場合に、アクセス要求を行った個人が所属する組織の業務において用いられる文書として当該文書が設定されているか否かを判定することで、当該文書に対するアクセスの可否を決定する。
【0005】
また、特許文献2には、文書アクセス管理システムにおいて、複数のグループを階層構造で定義した情報を保存するグループ階層構造情報記憶装置と、文書の更新や配布先設定を委ねられた管理元となるグループを示す情報及びアクセス許可グループを示す情報を文書ごとに保存する文書記憶装置と、を備え、これらの記憶装置に保存された情報を用いて、個々の文書の参照や、その他の取り扱いができるユーザの選別を行うシステムが開示されている。
【0006】
特許文献3には、文書ごとのアクセス権を規定したアクセス権限リスト(ACL,Access Control List)の中に、組織における操作者の属性及び役職の属性などに関する照合規則を定義しておくことで、組織に関する属性情報に従って文書のアクセス制御を行う技術が開示されている。
【0007】
【特許文献1】特開平7−56794号公報
【特許文献2】特開2000−20377号公報
【特許文献3】特許第3349978号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ところで、例えば、企業などの複数の組織からなる団体において、1つの電子文書が複製されて複数の流通経路に沿って流通し、その電子文書に対し個々の流通経路でそれぞれ個別に更新が加えられる場合がある。このような場合、更新後の文書に対するアクセスは、組織の階層構造などに適合するように制御するだけでなく、異なる流通経路ごとに異なるアクセス権が実現されるように制御することが望まれる場合がある。
【0009】
1つの電子文書が複数の流通経路に沿って流通する場合、例えば、1つの電子文書について複数の流通経路それぞれにおいて複数回の更新が行われると、電子文書ごとにアクセス権情報を設定登録すると、各流通経路における複数の更新版の文書に対してそれぞれアクセス権情報を設定登録する必要があるため、設定登録作業が煩雑となり管理負担が大きい。
【0010】
本発明は、階層構造を形成する複数の組織において利用される電子文書の管理において、組織階層に応じて、文書の流通経路ごとに、文書に対してアクセスを制御できる情報処理装置、情報処理システム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
請求項1に係る発明は、第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を記憶する文書情報記憶部であって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて記憶する文書情報記憶部と、複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を記憶する組織情報記憶部と、要求対象文書と、要求者と、を特定する文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定する文書出力可否決定部と、を備えることを特徴とする情報処理装置である。
【0012】
請求項2に係る発明は、請求項1に係る発明において、前記文書出力可否決定部は、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織が、前記要求対象文書に対応づけられた操作者を前記構成員として含むか否かを判定し、当該判定の結果に基づいて、前記要求対象文書の出力の可否を決定する。
【0013】
請求項3に係る発明は、請求項2に係る発明において、前記文書出力可否決定部は、前記要求対象の文書が前記組織階層において上位から下位の展開経路を経ずに更新登録された文書である場合には、前記要求対象の文書の出力を許可しない。
【0014】
請求項4に係る発明は、請求項1から3のいずれか1項に係る発明において、前記文書出力可否決定部は、前記要求対象文書を起点として前記木構造を遡った経路上に含まれる文書のうち少なくとも1つの文書に対応づけられた操作者が前記要求者である場合に、前記要求対象文書の出力を許可する。
【0015】
請求項5に係る発明は、請求項1から4のいずれか1項に係る発明において、前記組織情報記憶部は、さらに、前記組織のそれぞれに所属する構成員のうちの役職者を示す情報を記憶し、前記文書出力可否決定部は、前記要求対象文書に対応づけられた操作者が、前記構成員として当該操作者を含む組織の役職者でない場合であって、前記要求対象文書を起点として前記木構造を遡った経路上に含まれる文書のいずれに対応づけられた操作者も前記要求者でない場合は、前記要求対象文書の出力を許可しない。
【0016】
請求項6に係る発明は、第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を文書情報記憶部に記憶するステップであって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて文書情報記憶部に記憶するステップと、複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を組織情報記憶部に記憶するステップと、要求対象文書と、要求者と、を特定する文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定するステップと、をコンピュータに実行させることを特徴とするプログラムである。
【0017】
請求項7に係る発明は、第1の情報処理装置と第2の情報処理装置とを備え、前記第1の情報処理装置は、要求対象文書と、要求者と、を特定する文書出力要求を前記第2の情報処理装置に対して行う文書出力要求部を備え、前記第2の情報処理装置は、第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を記憶する文書情報記憶部であって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて記憶する文書情報記憶部と、複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を記憶する組織情報記憶部と、前記第1の情報処理装置から前記文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定する文書出力可否決定部と、を備えることを特徴とする情報処理システムである。
【発明の効果】
【0018】
請求項1に係る発明によると、文書ごとにアクセス権情報を設定することなく、組織階層に応じて、文書の流通経路ごとに、文書に対するアクセスを制御できる。
【0019】
請求項2に係る発明によると、要求対象文書の操作者の所属組織が要求者の所属組織に対して組織階層において直系の上位に該当するか否かによって文書に対するアクセスを制御することができる。
【0020】
請求項3に係る発明によると、上位組織に所属するユーザから下位組織に所属するユーザの順に操作された文書でなければアクセスを許可しないようにできる。
【0021】
請求項4に係る発明によると、要求者が操作した文書から派生した文書については、要求者にアクセスを許可するようにできる。
【0022】
請求項5に係る発明によると、役職者が操作した文書以外の文書について、要求者が操作した文書から派生した文書でない限りは、要求者にアクセスを許可しないようにできる。
【0023】
請求項6に係る発明によると、文書ごとにアクセス権情報を設定することなく、組織階層に応じて、文書の流通経路ごとに、文書に対するアクセスを制御できる。
【0024】
請求項7に係る発明によると、文書ごとにアクセス権情報を設定することなく、組織階層に応じて、文書の流通経路ごとに、文書に対するアクセスを制御できる。
【発明を実施するための最良の形態】
【0025】
以下、図面を参照して、本発明の実施の形態を説明する。
【0026】
図1は、文書管理システムの概略構成を示すブロック図である。このシステムは、インターネットやローカル・エリア・ネットワーク等のネットワーク30を介して接続された文書管理サーバ10とクライアント端末20−1,20−2,・・・(以下、クライアント端末20と総称する)から構成される。
【0027】
クライアント端末20について図2を用いて説明する。クライアント端末は、ユーザが文書を操作するために用いる端末であり、パーソナルコンピュータ、デジタル複写機などがその一例である。クライアント端末20は、図2に示すように、文書操作部200及び登録処理部210を備える。
【0028】
文書操作部200は、文書に対する操作を実行する手段である。文書に対する操作には、例えば、文書の表示(ユーザから見れば「閲覧」)、編集、印刷出力、紙文書の読み取り、紙文書の複写、等がある。図では、文書操作部200を1つだけ示したが、それら個々の操作を別々の操作部(例えば、編集用のアプリケーション、読取制御用のアプリケーションなど)が担当してもよい。例えば、文書操作部200がワードプロセッサ等の電子文書を作成・編集するためのソフトウエアであれば、文書操作部200は、ユーザの指示に応じて電子文書を表示したり、電子文書に編集を加えたりする。文書操作部200は、文書に対して操作を行った場合、その操作の結果を表すID付き文書300を出力する。
【0029】
ID付き文書300は、図3に示すように、メタ情報310と文書内容320を含んだ電子文書である。文書内容320は、文書操作部200の操作の結果生成された文書の内容データである。文書操作部200が電子文書を作成・編集するためのソフトウエアであれば、文書内容320はそのソフトウエアによる編集の結果生成される文書ファイルである。また、文書操作部200が電子文書を印刷する装置であれば、文書内容320は、例えば、印刷される電子文書の内容データとすればよい。また、文書操作部200が紙文書をスキャンする装置又は紙文書を複写する装置であれば、文書内容320は、例えば、その紙文書を読み取って得られる画像データとすればよい。
【0030】
メタ情報310は、文書管理のための情報であり、管理ID312,親ID314,及びログ情報316を含む。
【0031】
管理ID312は、当該ID付き文書300自体の一意な識別情報である。親ID314は、当該ID付き文書300の親のID付き文書の管理IDである。すなわち、本実施形態では、あるID付き文書と、このID付き文書に対して操作を加えた結果得られる新たなID付き文書とを、親と子の関係として取り扱う。第1のID付き文書を操作して第2のID付き文書が得られた場合、第1のID付き文書は第2のID付き文書の親であり、第2のID付き文書は第1のID付き文書の子である。したがって、例えば、管理ID「A」のID付き文書を文書操作部200で操作して、その結果得られた新たなID付き文書の管理IDが「B」である場合、後者のメタ情報310における管理ID312は「B」であり、親ID314は「A」である。このような親子の関係を、以下では「(管理IDの)派生関係」という。
【0032】
なお、本システムに未登録の電子文書を新たに登録する操作を実行した場合や、未登録の紙文書をスキャン又は複写する操作を実行した場合(この場合、紙文書を読み取った画像を文書内容とするID付き文書が生成され、本システムに登録される)に生成されるID付き文書300では、親ID314は空(すなわち、親は存在しない)となる。
【0033】
ログ情報316は、当該ID付き文書が生成された際の操作についての、各種のログ項目の情報である。ログ項目には、例えばその操作が行われた日時、その操作の種別、その操作を指示したユーザ(操作者)などがあるが、もちろんこれに限るものではない。操作の種別には、例えば登録(本システムに新規の文書を登録すること)、閲覧、編集、更新(更新版の登録)、印刷、スキャン、紙文書の複写、等がある。例えば、ユーザが文書操作部200を用いて第1のID付き文書に対して編集を加え、編集完了の指示を行った場合、その結果生成される第2のID付き文書のログ情報316は、編集完了の日時と、その編集を指示したユーザの識別情報と、操作の種別として「編集」と、を含んだものとなる。
【0034】
ここでログ情報316に組み込まれる操作の種別は、ログ記録の目的での分類に従った種別であり、文書操作部200が実行する操作の種別そのものでなくてもよい。例えば、文書操作部200が実行する複数の操作の種別を、同じ1つのログ記録目的の操作種別に対応づけてもよい。例えば、文書編集アプリケーション上でID付きの電子文書に編集を加え操作メニュー上で「更新版として登録」を指示した場合も、スキャナで管理ID付きの紙文書を読み取り読取制御用アプリケーションの操作メニュー上で「読み取った文書を承認版として登録」を指示した場合も、ログ情報316に組み込まれる操作種別の値は「更新」となる。
【0035】
文書操作部200が生成するメタ情報310の具体例を以下に示す。
【0036】
[例1]
<metadata sid="Doc1" date="2006-10-01T10:00" method="register" filename="aaa.doc" user="user1"/>
【0037】
ここでsid属性は管理ID、date属性は操作日時、method属性は操作種別である。また、filename属性は当該ID付き文書のファイル名であり、user属性は操作を指示したユーザのユーザ識別情報である。例1のmethod属性値"register"は(文書管理サーバ100に未登録の)新規文書の登録操作を示す操作種別名である。新規文書の登録なので、親IDを示すpid属性は省略されている。省略する代わりにpid="null"などと、親IDがないことを示す属性を明示的に組み込んでもよい。
【0038】
なお、文書操作部200が、操作した文書を暗号化してもよい。この暗号化は、本システムに準拠した文書操作部200ならば、復号できるようなものとする。この場合、文書操作部200が出力するID付き文書300の文書内容320は、暗号化されることにより、本システムに準拠した文書操作部200でないと復号できなくなる。したがって、ID付き文書300が操作される場合には文書操作部200が用いられるので、文書操作部200がその操作を検知し、その操作の内容が文書操作部200から文書管理サーバ10に通知される。なお、文書内容320だけでなく、後述するメタ情報310(またはその一部)に対しても暗号化を施してもよい。
【0039】
図2の説明に戻り、文書操作部200は、操作結果として上述のようなID付き文書300を作成するために、ID割り当て部202及び派生関係組込部204を備える。ID割り当て部202は、操作結果のID付き文書300に一意な管理IDを付与する手段である。管理IDは、少なくとも本システム内で一意な識別情報である必要がある。例えば、操作の結果生成するID付き文書300(ただし管理ID312を除いたもの)のハッシュ値を求め、このハッシュ値をその文書300のID付き文書とすればよい。ハッシュ関数としてSHA-256(SHA-256はNISTがFIPS180-2で定めた256ビットのハッシュ値を持つ暗号学的ハッシュ関数である)などのような耐衝突性を持つ暗号学的ハッシュ関数を用いれば、実用上十分な一意性を持つ管理IDを生成することができる。もちろん、システム内で一意な管理IDを各クライアント端末20で生成する方法は、これに限らない。管理IDを、クライアント端末20固有の識別情報を含むものとすれば、システム内で一意な管理IDを各クライアント端末20で生成することができる。
【0040】
派生関係組込部204は、操作結果の文書に対しID割り当て部202が割り当てた新たな管理ID312と、その操作の元になった親文書の管理IDである親ID314(新規登録の場合は、親IDは無し)と、その操作についてのログ情報316と、を含むメタ情報310を生成する。ここで、派生関係組込部204は、文書操作部200が実行する個々の操作の種別が、ログ記録目的上の操作種別のどれに対応するかを表す対応関係の情報を保持しており、この情報を用いることでログ情報316に組み込む操作種別の値を求める。そして、派生関係組込部204は、そのメタ情報310を操作結果の文書内容に付加することにより、操作後のID付き文書300を生成して出力する。
【0041】
文書操作部200がアプリケーションソフトウエアである場合、ID割り当て部202及び派生関係組込部204は、そのソフトウエアに対して追加される、いわゆるプラグイン(plug-in)プログラムとして実現してもよい。
【0042】
登録処理部210は、文書操作部200が出力したID付き文書300を文書管理サーバ10に登録するための処理を実行する。このように各クライアント端末20が、自ら実行した操作の結果であるID付き文書300を文書管理サーバ10に登録することにより、文書管理サーバ10は各ID付き文書300間の派生関係を把握することができる。
【0043】
文書操作部200が操作の結果出力するID付き文書300は、通常の文書ファイルと同様、電子的にコピーしたり、電子メールに添付するなどの方法で他の人宛に送信したりすることができる。電子メール送信用のソフトウエアは、この例では本システムに準拠していないので、この送信操作はID付き文書には反映されず、したがって文書管理サーバ10にも記録されない。他の人からID付き文書300を受け取った人が、自分のクライアント端末20の文書操作部200を用いてそのID付き文書300を操作すると、その操作に応じて新たな管理IDを付与されたID付き文書が生成されることになる。
【0044】
また、文書操作部200が電子文書を印刷する場合、管理IDを生成し、その電子文書の印刷結果にその管理IDを埋め込んでもよい。管理IDの埋め込みは、例えば電子文書の印刷画像に、管理IDを示すコード画像を重畳する等の方法で行うことができる。また、用紙がRFID(Radio Frequency Identifier)タグを備えている場合、そのRFIDタグに管理IDを書き込んでもよい。このように印刷を行った場合、文書操作部200は、その管理IDや操作種別「印刷」等のメタ情報を含んだID付き文書を文書管理サーバ10に登録する。なお、ID付き文書を印刷した場合には、そのID付き文書の管理IDを親ID314として含んだID付き文書が生成される。印刷操作に対応するID付き文書には、印刷された画像を示すページ記述言語データやビットマップ画像データをなどの印刷データ、又は印刷された文書ファイルを、文書内容320として組み込んでもよい。
【0045】
また、管理IDが埋め込まれた紙文書を文書操作部200が読み取った場合、文書操作部200は、その読み取り操作に対して新たな管理IDを付与し、読み取り結果の画像を文書内容320として含んだID付き文書を生成して文書管理サーバ10に登録する。このID付き文書の親ID314には、紙文書から読み取った管理IDがセットされる。管理IDが埋め込まれた紙文書の複写の際には、上述した読み取り時と印刷時の処理が実行される。
【0046】
次に、文書管理サーバ10について説明する。文書管理サーバ10は、システム内の複数のクライアント端末20から送られてくるID付き文書300を蓄積し、蓄積した情報に基づきユーザに各種のサービスを提供する。図4に示すように、文書管理サーバ10は、文書DB(データベース)100,派生関係DB110,組織情報DB120,文書登録部130,要求処理部140を備える。
【0047】
文書DB100は、クライアント端末20から送られてきたID付き文書300のうちの文書内容320を格納するデータベースである。文書DB100に格納された各文書内容320は、一意な内容IDにより管理してもよい。内容IDとしては、例えば当該文書内容の暗号学的ハッシュ関数によるハッシュ値を用いてもよいが、これに限定されるものではない。クライアント端末20が内容IDを付与してもよく、この場合、内容IDをメタ情報320に組み込んでもよい。また、内容IDの代わりに、その文書内容320を、当該文書内容に対応するID付き文書300の管理IDと対応づけて文書DB100に格納してもよい。
【0048】
文書登録部130は、クライアント端末20から受信したID付き文書の中の文書内容を文書DB100に、メタ情報を派生関係DB110に、それぞれ登録する。そのうち、メタ情報の登録を担当するのが派生関係登録部132である。
【0049】
派生関係DB110は、そのようなID付き文書300のうち、派生関係の情報を主としたメタ情報を蓄積するデータベースである。図5に、派生関係DB110のデータ内容の一例を示す。図5に示した表における1行の情報が、1つのID付き文書300に対応するメタ情報レコードである。この例では、各ID付き文書300の管理IDに対応づけて、親ID、ノードアドレス、操作種別、操作者、操作日時の各項目が登録されている。このうち、管理IDと親IDのペア以外の項目は、例示したものに限られない。管理目的上必要な項目を記録すればよい。また、操作種別、操作者、操作日時については既に説明した。
【0050】
ノードアドレスは、ID付き文書間の派生関係が構成する木において、当該管理ID(ID付き文書)に対応するノードの位置を示している。ノードアドレスの表記において「/」が木の深さ階層の区切りを示し、番号が同じ親から派生した兄弟同士の間での順番を示す。例えばノード「/1」は新規文書登録の操作により登録された文書に対応する根ノードを示す。また、ノード「/1/1」は根ノード「/1」の1番目の子、ノード「/1/2」は根ノード「/1」の2番目の子を示す。なお、煩雑さを避けるため、図5には、1つの根ノード「/1」から派生した1つの木に属するメタ情報レコード群しか示していないが、文書管理サーバ10には、例えば根「/1」から派生する木と根「/2」から派生する木のように、複数の木のメタ情報レコード群が登録され得る。
【0051】
なお、図5に例示したメタ情報の項目は一例に過ぎない。例えば、この他にも、ID付き文書内の文書内容320を格納した、文書DB100内での格納場所を示すパス名を派生関係DB110に登録してもよい。文書DB100が、内容IDで文書内容320を検索する機能を持つものであれば、文書格納パスの代わりに内容IDをメタ情報レコードに登録してもよい。
【0052】
なお、図5は派生関係DB110が管理するデータを内容の観点から表現したものにすぎず、具体的な表現形式或いはデータベース形式を規定するものではない。例えば、派生関係DB110は、一般的なリレーショナルデータベースとして構築することもできるし、管理IDを除くメタ情報を記述したXML(eXtensible Markup Language)文書を、管理IDをキーとして登録したデータベースとして構築することもできる。
【0053】
図5に示した派生関係DB110のデータ内容は、図6のような木構造を成す。これは、管理IDをノードとし、管理ID間の親子関係をエッジとする木構造である。
【0054】
以下、図5〜図6の例が示す文書のうち、管理ID"Doc1"の文書から管理ID"Doc7"の文書までの履歴について時系列順に説明する。
【0055】
この例ではまず、文書(フォーム)の「登録」操作がuser1のクライアント端末で実行される。「登録」操作は、文書管理サーバ10に未登録の文書(すなわち、管理IDを有していない文書)を当該サーバ10に登録するための操作である。この操作に応じて管理IDが"Doc1"、親IDが空、操作種別が「登録」であるメタ情報と、その文書の文書内容とを含むID付き文書"Doc1"がuser1のクライアント端末から文書管理サーバ10に送られる。これに応じ、文書管理サーバ10は、そのID付き文書"Doc1"中の文書内容を文書DB100へ、メタ情報を派生関係DB110にそれぞれ登録する。ここで、文書管理サーバ10は、操作種別が「登録」であり、親IDが空なので、当該ID付き文書が、文書管理サーバ10内に既に登録済みのID付き文書の子ではなく、新たな木の根(始祖)であると判断し、それに従ってノードアドレスの値(この例では「/1」)を設定する。なお、以下では、識別のために、登録された文書内容を"Content1"で表すことにする。その後、user1は、登録したID付き文書を他のユーザuser2に配布する。この配布は、例えば、電子メールにそのID付き文書を添付して各ユーザに送信することにより、行うことができる。
【0056】
その後、他のユーザuser2が自分のクライアント端末の文書操作部200でID付き文書"Doc1"を閲覧する。閲覧されるのは内容ID"Content1"の文書内容である。クライアント端末は、閲覧の結果としてID付き文書"Doc2"を生成し、このID付き文書"Doc2"が文書管理サーバ10に登録される。このID付き文書のメタ情報における管理IDは"Doc2"であり親IDは"Doc1"である。また操作者はuser2であり、操作種別は「閲覧」である。また、「閲覧」操作では文書内容は変更されないので、文書内容は"Content1"のままである。このように文書内容が変更されない操作を行った場合、クライアント端末20は、文書内容を省略したID付き文書を文書管理サーバ10に送ってもよい。文書管理サーバ10は、受け取ったID付き文書の親IDの値から、当該文書"Doc2"が文書"Doc1"の子であることを認識し、しかも最初の子であるので、文書"Doc2"のノードアドレスを「/1/1」とする。
【0057】
なお、この操作の前にuser2のクライアント端末20内にあったID付き文書"Doc1"は、この操作に伴い、派生関係組込部204によりID付き文書"Doc2"に置き換えられる。この置き換え処理では、派生関係組込部204は、元のID付き文書"Doc1"のうち、メタ情報310の管理ID312を新たに発行したID"Doc2"へ変更すると共に、元の文書"Doc1"の管理ID"Doc1"を親ID314の値にセットする。また、派生関係組込部204は、ログ情報316中の操作種別の値を今回の操作の種別である「閲覧」に変更し、操作時刻の値をその閲覧の日時に変更し、操作者の値をuser2に変更する。なお、「閲覧」操作によっては文書の内容は変化しないので、文書内容320は、"Content1"のままである。
【0058】
このようにID付き文書"Doc1"は、閲覧されると、閲覧後のID付き文書"Doc2"に置き換えられる。したがって、その置き換えの後は、ID付き文書"Doc1"自体はそのクライアント端末20には存在せず、その代わりにID付き文書"Doc2"が存在することとなる。
【0059】
その後、user2が自分のクライアント端末20の文書操作部200によってID付き文書"Doc2"に対して編集を加え、操作メニュー上で「更新版として登録」を指示すると、クライアント端末20は、管理ID312の値が"Doc3"、親ID314の値が"Doc2"、操作種別の値が「更新」であるID付き文書"Doc3"を生成する。そして、クライアント端末20は、生成したID付き文書"Doc3"を「更新」操作の前のID付き文書"Doc2"と置き換えると共に、ID付き文書"Doc3"を文書管理サーバ10に登録する。編集により、文書内容は"Content1"から"Content2"に変化している。文書管理サーバ10の派生関係DB110には、管理ID"Doc3"のレコードが登録される。
【0060】
その後、user2は、電子メールなどによってID付き文書"Doc3"をuser3及びuser4に配布する。
【0061】
次に、user2から配布されたID付き文書"Doc3"に対して、user3のクライアント端末20の文書操作部200によって「更新(更新版として登録)」操作が行われる。user3のクライアント端末20は、その更新結果の文書内容"Content3"を含み、親IDが"Doc3"であり、操作種別の値が「更新」である新たなID付き文書"Doc4"を生成し、文書管理サーバ10に登録する。user3のクライアント端末20のID付き文書"Doc3"は、このID付き文書"Doc4"に置き換えられる。同様に、user4のクライアント端末20において、ID付き文書"Doc3"に対して文書操作部200によって「更新」操作が行われ、文書内容"Content4"を含み、親IDが"Doc3"であり、操作種別の値が「更新」である新たなID付き文書"Doc5"が文書管理サーバ10に登録される。user4のクライアント端末20のID付き文書"Doc3"は、ID付き文書"Doc5"に置き換えられる。
【0062】
次に、user5が、自分のクライアント端末20の文書操作部200によって、管理ID"Doc4"の文書を文書管理サーバ10から「取得」する操作を行う。ここで、「取得」操作とは、クライアント端末20の文書操作部200によって、文書管理サーバ10の記憶装置及び他のクライアント端末20の記憶装置などに記憶されたID付き文書をダウンロードしたり、複製したりする操作を表す。この「取得」操作によって、親IDが"Doc4"であり、操作種別の値が「取得」であるID付き文書"Doc6"が生成され、文書管理サーバ10に登録される。なお、「取得」操作によってID付き文書300の文書内容に変化は生じないので、ID付き文書"Doc6"の文書内容は、操作前のID付き文書"Doc4"の文書内容と同じ"Content3"のままである。
【0063】
その後、user5は、自分のクライアント端末20によって、ID付き文書"Doc6"に対して「更新」操作を行い、user5のクライアント端末20は、文書内容"Content5"を含み、親IDが"Doc6"であり、操作種別の値が「更新」である新たなID付き文書"Doc7"を生成して文書管理サーバ10に登録し、クライアント端末20におけるID付き文書"Doc6"をID付き文書"Doc7"に置き換える。
【0064】
以上、派生関係DB110のデータ内容を例に取り、本システムにおける文書操作の情報の登録の様子を説明した。
【0065】
図4の説明に戻り、組織情報DB120は、文書管理サーバ10が管理する文書を利用する企業などの団体を構成する組織についての情報を記憶するデータベースである。組織情報DB120は、複数の組織が形成する組織階層の構造を表す情報と、各組織に所属する構成員に関する情報と、を記憶する。
【0066】
企業などの団体は、一般に、図7に例示するように、階層構造を形成する複数の組織から構成される。組織情報DB120は、例えば、図8の表のようなデータベースとして、図7に例示するような組織階層を表す情報を記憶する。図8を参照すると、団体を構成する各組織の組織名に対応づけて、当該組織に対して組織階層において一段階上位に位置する上位組織の組織名が記憶される。例えば、図7に例示する組織階層において、1G(グループ)に対して一段階上位に位置するX部は、図8の表において、組織名1Gの上位組織として対応づけて記憶されている。また、図7の例で1Gの下位に位置する組織である1T(チーム)及び2Tについては、図8の表において、組織名1T及び2Tのそれぞれの上位組織として1Gが対応づけられている。図8に例示する表は、組織階層の構造を表す情報の表現形式の一例であり、組織階層の構造を表すことができさえすれば、他の表現形式で組織情報DB120に記憶させておいてもよい。
【0067】
さらに、組織情報DB120には、団体を構成する各組織に所属する構成員についての情報が記憶される。図9に、組織情報DB120に記憶される各組織の構成員についての情報の内容の例を示す。図9の表における1行の情報は、各組織に所属する1人の構成員に対応するレコードである。図9の例では、各構成員のユーザIDに対応づけて、所属組織、及び役職の各項目が登録されている。ユーザIDは、文書管理システムにおけるユーザの識別情報であり、文書管理システムを用いる団体の各構成員に、1つのユーザIDが割り当てられる。所属組織の項目には、団体を構成する複数の組織のうち、その構成員が所属する組織を表す情報が登録される。例えば企業などにおいて、1人の者が複数の組織の業務を兼任で行う場合がある。この場合は、その構成員が複数の組織に所属することを示す情報を所属組織の項目に登録しておけばよい。図9に示す例では、ユーザIDがuser8である構成員は、組織1Tの業務及び組織2Tの業務を兼任で行う者であり、user8のレコードの所属組織の項目には、「1T,2T」と登録されている。また、役職の項目は、組織における各構成員の役職の有無を示す。図9に例示する表では、各構成員のレコードの役職の項目に「○」が登録されている場合は、その構成員が組織のリーダなどの役職を有することを示し、「×」が登録されている場合は、その構成員が役職を有しないことを示す。
【0068】
なお、組織情報DB120における各組織の構成員を表す情報の表現形式は、図9に例示する形式に限られない。例えば、構成員ごとのレコードを組織情報DB120に登録する代わりに、組織ごとのレコードを登録し、各組織に対応するレコードに、その組織の構成員のユーザID及び役職者のユーザIDを登録するようにしてもよい。
【0069】
以上で説明した派生関係DB110及び組織情報DB120によると、文書管理サーバ10において、派生関係DB110に登録された各ID付き文書の操作者を表す情報と、組織情報DB120に登録された各組織の構成員を表す情報と、を照合することで、各ID付き文書の操作者の所属組織が特定される。また、組織情報DB120に記憶される組織階層の構造を表す情報を用いると、そのID付き文書の操作者の所属組織の組織階層における位置が特定される。
【0070】
図4の説明に戻り、要求処理部140は、クライアント端末20からの管理IDを含んだサービス要求に応じて、派生関係DB110を用いたサービスを提供する。要求処理部140が提供するサービスとしては、例えば、サービス要求中の管理IDに対応する文書の最新版を検索するサービスがある。また別の例として、サービス要求中の管理IDに対応する始祖(根)の文書又はその始祖についてのログ情報を提供するサービスを挙げることができる。また、別の例として、その管理IDの来歴、すなわち始祖からその管理IDまでに文書が経てきた操作の履歴(例えば誰がいつどんな操作をしたのかを示す情報のリスト)を提供するサービスもある。また、派生関係DB110に登録された属性項目についての検索条件の指定を受け付け、その検索条件を満足するID付き文書のリストを提供するサービスもある。このサービスに付随して、要求処理部140は、そのリストの中からユーザの所望するID付き文書の選択を受け付け、選択されたID付き文書を提供してもよい。なお、上述の最新版を検索するサービスは、「操作日時が最新である」という検索条件についての検索結果を提供するサービスと捉えることもできる。また、上述の始祖の文書の情報を提供するサービスは、「ノードアドレスが根を示す文書」という条件についての検索結果を提供するサービスと捉えることができる。また、別の例として、派生関係DB110に基づきID付き文書群の派生関係を表す木構造の表示画面を提供し、その表示画面上でユーザの所望するID付き文書の選択を受け付け、選択されたID付き文書を提供するサービスもある。
【0071】
サービス要求は、クライアント端末20に保持されたID付き文書に基づき発せられる。例えば、ユーザがクライアント端末20の文書操作部200によりID付き文書を開いた場合に、文書操作部200が、派生関係を用いたサービスのメニューを提供し、そのメニューの中からユーザが所望するサービスの指定を受け付ける。そして、そのID付き文書の管理IDと指定されたサービスを示すコードとを含むサービス要求を文書管理サーバ10の要求処理部140に送信する。このとき、ユーザ識別情報や操作日時などの属性項目についての検索条件を指定するユーザインタフェース画面を提供し、この画面を介して入力された検索条件を併せて要求処理部140に送信してもよい。また、管理IDと、サービスを示すコード、検索条件以外に、指示を行ったユーザの識別情報や、ユーザの入力した認証情報などといった他の情報を、クライアント端末20から要求処理部140に送信するようにしてもよい。
【0072】
また別の例として、ユーザによるサービスの指定を一つの「操作」と捉え、その「操作」に対して新たに管理IDを付与することも考えられる。この場合、指定されたサービスのコードを操作種別として含み、指定の際に用いられた元のID付き文書の管理IDを親IDとして含んだID付き文書を生成し、このID付き文書をサービス要求として文書管理サーバ10に送ってもよい。この場合、要求処理部140は、受け取ったID付き文書内の操作種別の情報に基づき提供すべきサービスを判定し、同じくID付き文書内の親IDを、派生関係を遡る処理の起点とする。
【0073】
要求処理部140は、クライアント端末20からサービス要求を受けた場合、そのサービス要求中に指定された管理IDを起点に、派生関係DB110に登録された管理IDと親IDとの派生関係が構成する木を走査(トラバース)し、その走査の結果得られた情報を用いて、ユーザから要求されたサービスを実行する。
【0074】
また、本実施形態において、要求処理部140は、アクセス制御部142を含む。アクセス制御部142は、クライアント端末20から特定の文書の提供を要求するサービス要求を受けた場合に、クライアント端末20に対する文書の提供を許可するか否かを決定する。例えば、上述のような、指定された検索条件を満足するID付き文書のリスト又はID付き文書群の派生関係を表す木構造の表示画面を提供し、ユーザの所望するID付き文書の選択を受け付け、選択されたID付き文書を提供するサービスにおいて、アクセス制御部142は、当該ユーザに対して、選択されたID付き文書の提供を許可するか否かを決定する。
【0075】
本実施形態では、例えば、組織階層における上位組織から下位組織に文書が配布され、それぞれの配布先において当該文書が更新される場合に、組織階層において、より下位に位置する組織に配布された文書ほど、アクセスを許可されるユーザが少なくなるように、文書に対するアクセス制御が行われる。このような状況の一例として、企業における人事考課で使用する活動評価文書などの文書の配布及び更新について説明する。このような文書は、まず、上位組織が決定した活動方針などを書き込んだ文書として上位組織の役職者によって作成され、各下位組織の役職者(リーダなど)に配布される。各組織の役職者は、配布された文書に対して、自身の組織の活動目標及び活動内容などを書き込むことでその文書を更新した後、更新後の文書を自身の組織の構成員(メンバ)に展開する。組織の各構成員は、自組織のリーダから展開された文書に対して、個人的な活動目標及び活動内容などを書き込む。このような場合、各組織の活動内容など、各組織のリーダによって文書に書き込まれる内容は、他の組織に対しては開示しない研究テーマなどの情報を含むことがある。また、各個人が文書に書き込む内容は、例えば個人のキャリア設計に関する情報など、その個人の上司に該当する者(その個人の所属組織のリーダなど)以外の者には開示しない情報を含むことがある。
【0076】
以上で説明した例のような状況において、アクセス制御部142は、派生関係DB110及び組織情報DB120に記憶された情報を用いて、ID付き文書のアクセス制御を行う。具体的には、アクセス制御部142は、ID付き文書に対するアクセス要求が以下の(条件1)又は(条件2)に適合するか否かを判定することで、要求者に対してそのID付き文書へのアクセスを許可するか否かを決定する。
【0077】
・(条件1)ID付き文書の派生関係群が示す木構造において、要求者自身の操作によって文書管理サーバ10に登録されたID付き文書を根ノードとする部分木に含まれるID付き文書に対するアクセス要求は許可する。
・(条件2)要求者の所属組織から組織階層を遡った経路上に含まれる組織のいずれかに、要求対象のID付き文書の操作者が所属し、かつ、要求対象のID付き文書が、組織階層における上位組織の役職者から一段階ずつ下位に位置する組織の役職者によって順に更新登録された履歴を有する場合、アクセス要求を許可する。
【0078】
(条件1)は、あるユーザが、自分自身の操作によって文書管理サーバ10に登録されたID付き文書及び当該ID付き文書から派生したID付き文書に対してアクセスできるようにするための条件である。例えば、組織の役職者が更新登録したID付き文書に対して当該組織の構成員が書き込みを行って更新登録したID付き文書について、当該組織の役職者がアクセスできるようにする。
【0079】
(条件2)の前半部の条件は、要求者の所属組織に所属するユーザ又は要求者の所属組織に対して組織階層において直系の上位に位置する組織に所属するユーザが更新登録したID付き文書でなければ、アクセスを許可しないようにするための条件である。この条件によると、例えば、図7に例示する組織階層の組織1Tに所属するユーザは、例えば組織2T及び組織Y部など、組織1Tの直系の上位に位置しない組織に所属するユーザが更新登録したID付き文書に対してはアクセスを許可されない。
【0080】
(条件2)の後半部の条件によると、組織階層における上位組織の役職者から下位組織の役職者へ順次配布及び更新されたID付き文書は正規の展開経路を経ているとみなされ、正規の展開経路を経ていないID付き文書に対するアクセスは許可されない。例えば、図7に例示する組織階層の組織X部の役職者が更新登録したID付き文書について、組織X部の一段階下位の組織1Gの役職者による更新登録を経ることなく、組織1Gの一段階下位の組織1Tの役職者が更新登録を行った結果のID付き文書は、正規の展開経路を経ていないとみなされる。
【0081】
以下、アクセス制御部142が行う処理の詳細な手順について説明する。
【0082】
図10及び図11に、アクセス制御部142において、指定されたID付き文書の提供を許可するか否かを決定する処理の手順の例を示す。
【0083】
アクセス制御部142は、要求処理部140において、ユーザに対するID付き文書の提供の可否を決定する必要が生じた場合に、図10に例示する手順の処理を開始する。
【0084】
図10を参照し、アクセス制御部142は、ステップS10で初期化処理を行う。ステップS10では、注目ユーザID(以下、「注目ユーザu」とも呼ぶ)として文書の提供を要求したユーザのユーザIDが設定され、注目管理ID(以下、「注目文書r」とも呼ぶ)として要求対象のID付き文書の管理IDが設定される。さらに、ステップS10では、「順次性チェック」と呼ばれるフラグの値がtrueに設定される。順次性チェックフラグは、上述の(条件2)を満たすか否かを示すフラグである。
【0085】
次に、ステップS12で、アクセス制御部142は、派生関係DB110を参照し、管理IDとして注目文書rが登録されたレコードを読み出し、当該レコードの操作者の項目に登録されたユーザID(すなわち、注目文書rの操作者のユーザID)を取得する。そして、取得したユーザIDと、ID付き文書の提供要求を行った要求者のユーザIDと、が一致するか否かを判定する。図10に例示するフローチャートにおいては、派生関係DB110から取得される、注目文書rの操作者のユーザIDを「O(r)」と記載し、以下の説明においても、この記載を用いる。ステップS12で、O(r)が要求者のユーザIDと一致する場合は、ステップS24に進む。この場合、上述の(条件1)を満たすことになる。ステップS24では、アクセス制御部142は、要求対象の文書に対するアクセスを許可することを決定し、処理を終了する。
【0086】
ステップS12で、O(r)が要求者のユーザIDと一致しない場合、処理はステップS14に進む。
【0087】
ステップS14では、アクセス制御部142は、組織情報DB120を参照し、注目文書rの操作者のユーザIDであるO(r)に対応付けられた所属組織と、注目ユーザuに対応付けられた所属組織と、を取得し、両者が一致するか否かを判定する。図10に例示するフローチャートでは、組織情報DB120から取得される、特定のユーザID:uidのユーザの所属組織をG(uid)と記載する。以下の説明においても、この記載を用いる。この記載に従って、注目文書rの操作者O(r)の所属組織はG(O(r))と表され、注目ユーザuの所属組織はG(u)と表される。
【0088】
なお、ここで説明する処理の例において、ステップS14における所属組織G(O(r))とG(u)とが一致するか否かの判定は、組織間の包含関係を考慮せずに行われる。例えば、図7に例示する構造を有する組織階層において、組織1Gは、組織1T及び組織2Tに対して一段階上位に位置し、組織1Gは、組織1T及び組織2Tを含んでいると捉えることもできる。しかしながら、ステップS14での所属組織同士の照合においては、組織1Gと、組織1T又は組織2Tと、は一致しないと判定される。また、例えば図9の表におけるuser8のように複数の組織に所属するユーザについては、そのユーザの複数の所属組織のいずれかと、照合対象のユーザの所属組織と、が一致していれば、両ユーザの所属組織は一致すると判定するものとする。
【0089】
ステップS14で、注目文書rの操作者の所属組織G(O(r))と注目ユーザuの所属組織G(u)とが一致すると判定された場合、処理はステップS16に進む。
【0090】
ステップS16で、アクセス制御部142は、組織情報DB120を参照し、注目文書rの操作者O(r)が役職を有する者であるか否かを判定する。例えば、組織情報DB120に図9に例示する表の内容の情報が記憶されている場合、O(r)に対応するレコードの役職者の項目に「○」が登録されていれば、O(r)が役職者であると判定し、「×」が登録されていれば、役職者でないと判定する。
【0091】
ステップS16で、注目文書rの操作者O(r)が役職者であると判定されると、ステップS17に進む。ステップS17では、アクセス制御部142は、ID付き文書の派生関係群が表す木構造において、注目文書rを起点に1つずつID付き文書(ノード)を遡っていき、操作種別の値が「更新」又は「登録」であるノードを最初に発見した時点で、当該ノードの操作者を取得する。派生関係DB110において注目文書rのレコードに親IDとして登録されている管理IDのレコードを取得し、当該レコードに登録されている操作種別の値が「更新」又は「登録」であれば、当該レコードに含まれる操作者の項目に登録されたユーザIDを取得し、操作種別の値が「更新」及び「登録」以外の値であれば、当該レコードに登録されている親IDの値を管理IDとして含むレコードを取得し、そのレコードの操作種別の値が「更新」又は「登録」であるか否かを判定する。このような処理を繰り返すことで、アクセス制御部142は、注目文書rから木構造を遡って最初に発見された操作種別「更新」又は「登録」のノードの管理ID(図10のフローチャートではP(r)と表す)に対応づけられた操作者O(P(r))を取得する。なお、注目文書rが木構造の根ノードに該当する文書である場合、つまり、注目文書rを管理IDとして含むレコードの親IDの値が「なし(null)」である場合、注目文書rを起点に木構造を遡ることはできないので、アクセス制御部142は、操作者O(P(r))の値として、操作者O(P(r))を取得できない旨を示す情報(例えば、「なし(null)」)を設定する。操作者O(P(r))の値が決定されると、アクセス制御部142は、操作者O(P(r))と、注目文書rの操作者O(r)と、が一致するか否かを判定し、一致しなければステップS18に進み、一致すれば、ステップS19で、注目文書rから木構造を遡って最初に発見された操作種別「更新」又は「登録」のノードP(r)を新たな注目文書rとして設定する。ステップS19の後、再びステップS17の判定が行われる。
【0092】
ここで、P(r)は、ID付き文書の派生関係群が表す木構造において、要求対象のID付き文書に対して先祖に該当するID付き文書であると言える。一般に、木構造において、ある注目ノードを起点に根ノードまで木構造を遡った経路上に含まれるノードは、その注目ノードの「先祖」と呼ばれる。
【0093】
ステップS18では、アクセス制御部142は、組織情報DB120を参照し、組織階層において注目ユーザuの所属組織G(u)が最上位に位置する組織であるか否かを判定する。例えば、図8に例示する表のようなデータ内容が組織情報DB120に格納されている場合、アクセス制御部142は、組織情報DB120においてG(u)に対応づけられた上位組織を調べ、上位組織の組織名が登録されていれば、G(u)は組織階層において最上位に位置しないと判定し、上位組織の組織名が登録されていなければ(例えば、図8の組織名「全社」に対応づけて上位組織「なし」が登録されている)、G(u)は組織階層において最上位に位置すると判定する。G(u)が最上位に位置する組織でなければ、ステップS20に進み、最上位に位置する組織であれば、ステップS22に進む。
【0094】
ステップS20では、アクセス制御部142は、組織情報DB120を参照し、注目ユーザuの所属組織に対して組織階層において一段階上位に位置する組織に所属する構成員のうちのいずれかのユーザIDを、新たな注目ユーザuとして設定する。例えば、図8及び図9に例示する表のデータ内容が組織情報DB120に登録されている場合、図9の表を参照して注目ユーザuの所属組織を取得し、次に、図8の表を参照して注目ユーザuの所属組織に対応付けられた上位組織を取得する。そして、再び図9の表を参照し、所属組織の項目に取得した上位組織を含むレコードのうちの1つに含まれるユーザIDを取得する。図10に例示するフローチャートでは、この一連の処理によって得られる、注目ユーザuの所属組織に対して組織階層において一段階上位の組織に所属する者をSp(u)と記載し、以下の説明においても、この記載を用いる。
【0095】
ステップS16で、注目文書rの操作者O(r)が役職者でないと判定されると、アクセス制御部142は、図11に例示する手順の処理を行う。図11に示す処理については後述する。
【0096】
ステップS20の後、ステップS21で、アクセス制御部142は、注目文書rが、ID付き文書の派生関係群によって表される木構造において根ノードに該当するか否かを判定する。派生関係DB110に記憶されたレコードのうち、注目文書rを管理IDとして含むレコードの親IDの値が「なし(null)」であれば、木構造の根ノードであると判定され、親IDとして他の管理IDの値が登録されていれば根ノードではないと判定される。例えば、図5に例示するデータ内容が派生関係DB110に登録されている場合、親IDの値が「なし」である管理ID"Doc5"のノードが派生関係の木構造(図6)の根ノードに該当する。
【0097】
ステップS21で注目文書rが根ノードであると判定されると、ステップS22で、順次性チェックフラグがfalseに設定されているか否かが判定される。順次性チェックフラグがfalseに設定されていなければ、アクセス許可(ステップS24)され、falseに設定されていれば、アクセスは許可されず、エラー(ステップS26)となる。
【0098】
ステップS21で、注目文書rが根ノードではないと判定されると、ステップS28に進む。ステップS28で、アクセス制御部142は、ステップS17において説明したのと同様の処理を行って、ID付き文書の派生関係群が表す木構造を注目文書rから遡って最初に発見された操作種別「更新」又は「登録」のノードの管理ID(P(r))を取得し、取得した管理ID(P(r))を新たな注目文書rとする。その後、処理はステップS12に戻る。
【0099】
以上、ステップS14で、注目文書rの操作者の所属組織G(O(r))と注目ユーザuの所属組織G(u)とが一致すると判定された場合の処理手順の例について説明した。以下、ステップS14で、G(O(r))とG(u)とが一致しないと判定された場合の処理手順の例について説明する。この場合、ステップS14の判定の結果、処理はステップS30に進む。
【0100】
ステップS30では、順次性チェックフラグの値がfalseに設定されているか否かを判定する。falseに設定されていれば、ステップS38に進み、falseに設定されていなければ、ステップS32に進む。ステップS10の初期化処理において、順次性チェックフラグの値はtrueに設定されるので、図10に例示するフローチャートの処理を開始してから、初めてステップS30の判定が行われる場合は、No判定されてステップS32に進む。
【0101】
ステップS32では、注目文書rが要求対象のID付き文書の管理IDであるか否かを判定する。注目文書rが要求対象のID付き文書の管理IDであれば、ステップS34に進み、注目文書rが要求対象のID付き文書の管理IDでなければ、ステップS38に進む。ステップS10の初期化処理の後、ステップS12、ステップS14、及びステップS30のすべてにおいてNo判定されてステップS32の判定が行われる場合、注目文書rの値は、初期化処理(ステップS10)で要求対象のID付き文書の管理IDに設定されたまま変更されないので、ステップS32では、Yes判定されてステップS34に進む。一方、図10に例示する手順の処理が開始されてから、一度でもステップS28において注目文書rの値が変更された後にステップS32の判定が行われると、No判定されてステップS38に進む。
【0102】
ステップS34で、アクセス制御部142は、組織情報DB120を参照し、組織階層において注目ユーザuの所属組織G(u)が最上位に位置する組織であるか否かを判定する。ステップS34の判定処理は、上記で説明したステップS18の判定処理と同様である。G(u)が最上位に位置する組織でなければ、ステップS36に進み、最上位に位置する組織であれば、ステップS38に進む。
【0103】
注目ユーザuの所属組織に対して上位組織が存在する場合、ステップS36で、アクセス制御部142は、注目ユーザuの所属組織に対して組織階層において一段階上位の組織に所属する者のユーザIDを新たな注目ユーザuとして設定する。ステップS36の後、処理はステップS14に戻る。
【0104】
ステップS30でYes判定、ステップS32でNo判定、又はステップS34でYes判定された場合、ステップS38で、順次性チェックフラグの値がfalseに設定される。ステップS38の後、処理はステップS21に進む。
【0105】
ステップS14,S30,S32,S34,S36を含む処理ループでは、要求者の所属組織を起点に最上位の組織まで組織階層を遡った経路上に含まれる組織のいずれかに、要求対象のID付き文書の操作者が所属するか否か、つまり、上述の(条件2)の前半部の条件を満たすか否かが判定される。
【0106】
以上で説明した図10に例示する手順では、要求対象のID付き文書の管理IDを起点にID付き文書の派生関係群が表す木構造を遡る(ステップS19,S28)ことで得られるID付き文書の操作者の情報と、要求者のユーザIDを用いて組織階層を遡る(ステップS20,S36)ことで得られる組織の構成員の情報と、を照合する(ステップS14)ことで、組織階層における要求者の位置づけと要求対象のID付き文書の流通経路とが適合するか否かを確認する。
【0107】
図11を参照し、図10のステップS16で、注目文書rの操作者が役職者でないと判定された場合に行われる処理手順の例について説明する。注目文書rの操作者が役職者でないと判定された場合、上述の(条件2)の後半部の条件(要求対象のID付き文書が、組織階層における上位組織の役職者から一段階ずつ下位に位置する組織の役職者によって順に更新登録された履歴を有すること)を満たさない。よって、図11に例示する手順の処理では、上述の(条件1)を満たすか否かが判定される。
【0108】
図10のステップS16でNo判定されると、図11のステップS40に進む。ステップS40で、アクセス制御部142は、図10を参照して説明したステップS21の処理と同様に、注目文書rがID付き文書の派生関係群が表す木構造における根ノードに該当するか否かを判定する。注目文書rが根ノードである場合、ステップS48のエラー処理が行われ、処理は終了する。
【0109】
注目文書rが根ノードでない場合、ステップS42に進み、図10を参照して説明したステップS28の処理と同様に、注目文書rから派生関係群の木構造を遡って最初に発見される、操作種別の値が「更新」又は「登録」であるノードの管理IDが新たな注目文書rとされる。次に、ステップS44で、注目文書rの操作者O(r)と、要求者のユーザIDと、が一致するか否かが判定され、一致すればステップS46に進み、一致しなければステップS40に戻る。ステップS46で、アクセス制御部142は、要求対象のID付き文書に対するアクセスを許可し、処理を終了する。
【0110】
以上、図10及び図11に例示する手順の処理により、アクセス制御部142がアクセス許可した(ステップS24,S46)場合、要求処理部140は、要求対象のID付き文書に対応する文書内容を文書DB100から取得し、取得した文書内容をクライアント端末20に対して送信する。一方、図10及び図11に例示する手順の処理により、アクセス制御部142がエラーとした(ステップS26,S48)場合、要求処理部140は、要求対象のID付き文書に対応する文書内容をクライアント端末20に送信しない。エラーの場合、例えば、ID付き文書に対するアクセスが許可されない旨を示すエラーメッセージをクライアント端末20の表示部に表示させる。
【0111】
以下、図5に例示する表のデータ内容が派生関係DB110に登録され、図8及び図9に例示する表のデータ内容が組織情報DB120に登録されている場合に、図10及び図11に例示する手順の処理によるアクセス制御の具体例について説明する。
【0112】
<具体例1>
上述の(条件1)を満たす場合の例として、図5及び図6を参照し、ユーザID"user5"を有するユーザが、管理ID"Doc7"のID付き文書の提供を要求した場合のアクセス制御部142の処理について説明する。この場合、図10のステップS10で、注目ユーザuはuser5、注目文書rは"Doc7"に設定される。図5の表において、管理ID"Doc7"のレコードには操作者としてuser5が登録されており、図10のステップS12で、注目文書r"Doc7"の操作者はuser5であり、注目ユーザuと一致するため、アクセスが許可される(ステップS24)。
【0113】
<具体例2>
上述の(条件1)を満たす他の例として、図5及び図6を参照し、ユーザID"user3"のユーザが、管理ID"Doc7"のID付き文書の提供を要求した場合のアクセス制御部142の処理について説明する。この場合、図10のステップS10で、注目ユーザuはuser3、注目文書rは"Doc7"に設定される。ステップS12で、注目文書r"Doc7"の操作者はuser5であり、注目ユーザuであるuser3と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc7"の操作者であるuser5の所属組織1Tと、注目ユーザuであるuser3の所属組織1Tと、が一致するので、処理はステップS16に進む。注目文書r"Doc7"の操作者であるuser5は、役職者ではない(図9参照)ので、ステップS16の判定の結果、処理は図11のステップS40に進む。図11のステップS40で、注目文書r"Doc7"は文書の派生関係の木構造の根ノードではないので、ステップS42に進み、注目文書r"Doc7"を起点に木構造を遡って最初に発見される「更新」操作のノードの管理ID"Doc4"が新たな注目文書rとして設定される。次に、ステップS44で、この新たな注目文書r"Doc4"の操作者はuser3であり、要求者のユーザIDであるuser3と一致するので、アクセスが許可される(ステップS46)。
【0114】
<具体例3>
(条件2)を満たす例として、ユーザID"user5"のユーザが、ID付き文書"Doc4"の提供を要求した場合について説明する。まず、図10のステップS10で、注目ユーザuはuser5、注目文書rは"Doc4"に設定される。ステップS12で、注目文書r"Doc4"の操作者はuser3であり、注目ユーザuであるuser5と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc4"の操作者user3の所属組織1Tと、注目ユーザuであるuser5の所属組織1Tと、が一致するので、処理はステップS16に進む。注目文書r"Doc4"の操作者であるuser3は、役職者である(図9参照)ので、ステップS17に進む。注目文書r"Doc4"の操作者であるuser3と、注目文書r"Doc4"を起点に木構造を遡って最初に発見される「更新」ノード"Doc3"の操作者であるuser2と、は一致しないので、ステップS17の判定の結果、ステップS18に進む。注目ユーザuであるuser5の所属組織1Tは最上位組織ではないので、ステップS18の判定の結果、ステップS20に進み、user5の所属組織1Tに対して組織階層において一段階上位に位置する組織1G(図7及び図8参照)に所属する者であるuser2(図9参照)が新たな注目ユーザuとして設定される。注目文書r"Doc4"は、文書の派生関係の木構造の根ノードではないので、ステップS21の判定の結果、ステップS28に進み、注目文書r"Doc4"を起点に木構造を遡って最初に発見される「更新」ノードの管理ID"Doc3"が新たな注目文書rとして設定される。
【0115】
その後、ステップS12で、注目文書r"Doc3"の操作者であるuser2と、要求者であるuser5と、が一致しないので、再びステップS14の判定が行われる。ステップS14では、現在の注目文書r"Doc3"の操作者であるuser2の所属組織1Gと、現在の注目ユーザuであるuser2の所属組織1Gと、が一致するので、ステップS16に進む。さらに、注目文書r"Doc3"の操作者であるuser2は役職者であるので(図9参照)、ステップS17に進む。user2は、注目文書r"Doc3"を起点に木構造を遡って最初に発見される「登録」ノード"Doc1"の操作者であるuser1と一致しないので、ステップS17の判定の結果、ステップS18に進む。ステップS18で、注目ユーザu(user2)の所属組織1Gは最上位組織ではないので、判定の結果ステップS20に進み、組織1Gに対して組織階層において一段階上位の組織X部(図7及び図8参照)に所属する者であるuser1(図9参照)が新たな注目ユーザuとして設定される。次に、現在の注目文書r"Doc3"は、文書の派生関係の木構造の根ノードではないので(ステップS21でNo判定)、注目文書r"Doc3"から木構造を遡って最初に発見される「登録」ノードの管理ID"Doc1"が新たな注目文書rとして設定される(ステップS28)。
【0116】
さらに、ステップS12で、注目文書r"Doc1"の操作者であるuser1と、要求者であるuser5と、が一致しないのでステップS14に進み、現在の注目文書r"Doc1"の操作者であるuser1の所属組織X部と、現在の注目ユーザuであるuser1の所属組織X部と、が一致するので、ステップS16に進む。注目文書r"Doc1"の操作者であるuser1は役職者であるので(図9参照)、ステップS17に進む。注目文書r"Doc1"は木構造の根ノードであり、注目文書r"Doc1"を起点に遡って発見される「更新」又は「登録」ノードP("Doc1")は存在しないため、ステップS17でNo判定され、ステップS18に進む。ステップS18では、user1の所属組織X部は最上位組織ではないためNo判定されてステップS20に進み、user1の所属組織X部の上位組織に所属するユーザのユーザIDが注目ユーザuとして設定され、ステップS21に進む。ステップS21で、現在の注目文書r"Doc1"は根ノードであるのでステップS22に進む。以上で説明した本例の処理では、順次性チェックフラグの値は、初期化処理(ステップS10)でtrueに設定されたまま変更されないので、ステップS22の判定の結果、ステップS24に進み、要求対象のID付き文書"Doc4"に対するアクセスが許可される。
【0117】
<具体例4>
正規の展開経路を経ていないID付き文書に対するアクセス要求であることから上述の(条件2)を満たさない例として、ユーザID"user5"のユーザが、ID付き文書"Doc13"の提供を要求した場合について説明する。ID付き文書"Doc13"は、user3が、組織階層において自己の所属組織1Tに対して二段階上位に位置する組織X部に所属するuser1によって更新登録されたID付き文書"Doc1"を更新した結果の文書である。つまり、ID付き文書"Doc13"は、user3の所属組織1Tに対して一段階上位の組織1Gに所属するuser2による更新操作を経ることなく生成された文書である。このように、ID付き文書"Doc13"は、上述の(条件2)を満たさないので、ID付き文書"Doc13"に対するアクセス要求は許可されない。以下、この例の場合のアクセス制御部142の処理について説明する。
【0118】
図10のステップS10で、注目ユーザuはuser5、注目文書rは"Doc13"に設定される。次に、ステップS12で、注目文書r"Doc13"の操作者はuser3であり、注目ユーザuであるuser5と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc13"の操作者であるuser3の所属組織1Tと、注目ユーザuであるuser5の所属組織1Tと、が一致するので、処理はステップS16に進み、注目文書r"Doc13"の操作者user3は役職者であるので、ステップS17に進む。注目文書r"Doc13"の操作者user3と、注目文書r"Doc13"を起点に木構造を遡って最初に発見される「登録」ノード"Doc1"の操作者であるuser1と、は一致しないため、ステップS17の判定の結果、ステップS18に進む。注目ユーザuであるuser5の所属組織1Tは、最上位組織ではないので、ステップS18の判定の結果ステップS20に進み、user5の所属組織1Tに対して組織階層において一段階上位に位置する組織1G(図7及び図8参照)に所属する者であるuser2(図9参照)が新たな注目ユーザuとして設定される。次に、注目文書r"Doc13"は、文書の派生関係の木構造の根ノードではないので、ステップS21の判定の結果、ステップS28に進み、注目文書r"Doc13"を起点に木構造を遡って最初に発見される「登録」ノードの管理ID"Doc1"が新たな注目文書rとして設定される。
【0119】
その後、ステップS12で、注目文書r"Doc1"の操作者であるuser1と、要求者であるuser5と、が一致しないので、再びステップS14の判定が行われる。現在の注目文書r"Doc1"の操作者であるuser1の所属組織X部と、現在の注目ユーザuであるuser2の所属組織1Gと、が一致しないため、ステップS14の判定の結果、ステップS30に進む。この時点で、順次性チェックフラグの値は、ステップS10でtrueに設定されたまま変更されていないので、ステップS30の判定の結果、ステップS32に進む。現在の注目文書r"Doc1"は、要求対象のID付き文書の管理ID"Doc13"と一致しないので、処理は、ステップS32からステップS38に進み、順次性チェックフラグの値がfalseに設定される。その後、注目文書r"Doc1"は、派生関係の木構造の根ノードであるので、ステップS21からステップS22に進む。順次性チェックフラグの値がfalseに設定されているため、ステップS22の判定の結果ステップS26のエラー処理が行われ、ID付き文書"Doc13"に対するアクセスは許可されない。
【0120】
<具体例5>
正規の展開経路を経ていない文書に対するアクセス要求であることから(条件2)を満たさない他の例として、ユーザID"user7"のユーザが、ID付き文書"Doc10"の提供を要求した場合について説明する。ID付き文書"Doc10"は、user4が、自己の所属組織2Tと異なる組織であって組織階層において同じ階層に位置する(上位下位の関係にない)組織1Tに所属するuser3によって更新登録されたID付き文書"Doc4"に対して更新操作を行った結果の文書である。よって、ID付き文書"Doc10"の操作者であるuser4は、組織2Tの役職者ではあるが、ID付き文書"Doc10"は、正規の展開経路を経ているとは言えない。したがって、user4と同じ組織2Tに所属するuser7が要求者であっても、ID付き文書"Doc10"に対するアクセスは許可されない。以下、この例のアクセス制御部142における処理を説明する。
【0121】
図10のステップS10で、注目ユーザuはuser7、注目文書rは"Doc10"に設定される。次に、ステップS12で、注目文書r"Doc10"の操作者はuser4であり、注目ユーザuであるuser7と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc10"の操作者であるuser4の所属組織2Tと、注目ユーザuであるuser7の所属組織2Tと、が一致するので、処理はステップS16に進み、注目文書r"Doc10"の操作者であるuser4は役職者であるので、ステップS17に進む。注目文書r"Doc10"の操作者であるuser4と、注目文書r"Doc10"を起点に木構造を遡って最初に発見される「更新」ノード"Doc4"の操作者であるuser3と、は一致しないので、ステップS17の判定の結果、ステップS18に進む。注目ユーザuであるuser7の所属組織2Tは最上位組織ではないので、ステップS18の判定の結果、ステップS20へ進み、user7の所属組織2Tに対して組織階層において一段階上位に位置する組織1G(図7及び図8参照)に所属する者であるuser2(図9参照)が新たな注目ユーザuとして設定される。
【0122】
次に、注目文書r"Doc10"は、文書の派生関係の木構造の根ノードではないので、ステップS21の判定の結果、ステップS28に進み、注目文書r"Doc10"を起点に木構造を遡って最初に発見される「更新」ノードの管理ID"Doc4"が新たな注目文書rとして設定される。
【0123】
その後、ステップS12で、注目文書r"Doc4"の操作者であるuser3と、要求者であるuser7と、が一致しないので、再びステップS14の判定が行われる。現在の注目文書r"Doc4"の操作者であるuser3の所属組織1Tと、現在の注目ユーザuであるuser2の所属組織1Gと、が一致しないため、ステップS14の判定の結果、ステップS30に進む。この時点で、順次性チェックフラグの値は、ステップS10でtrueに設定されたまま変更されていないので、ステップS30の判定の結果、ステップS32に進む。現在の注目文書r"Doc4"は、要求対象のID付き文書の管理ID"Doc10"と一致しないので、処理は、ステップS32からステップS38に進み、順次性チェックフラグの値がfalseに設定される。
【0124】
その後、注目文書r"Doc4"は根ノードでないので、"Doc4"から木構造を遡って最初に発見される「更新」ノード"Doc3"が新たな注目文書rとして設定され(ステップS21,S28)、ステップS12以降の処理が繰り返される。以降の繰り返し処理において、注目文書r"Doc3"の操作者、及び、"Doc3"の次に注目文書rとして設定される"Doc1"の操作者は、それぞれ、user2及びuser1であり、要求者であるuser7とは一致しないので、ステップS12でYes判定されてアクセス許可(ステップS24)されることはない。よって、派生関係の木構造の根ノードである"Doc1"が注目文書rとして設定された後、処理が進むと、ステップS22で、順次性チェックフラグの値の判定が行われる。この時点で、順次性チェックフラグの値は、上述のように、ステップS38でfalseに設定されているので、ステップS22の判定の結果、ステップS26のエラー処理に進み、ID付き文書"Doc10"に対するアクセスは許可されない。
【0125】
<具体例6>
要求者の所属組織と異なる組織であって要求者の所属組織と組織階層において同じ階層に位置する組織に所属するユーザによって更新登録されたID付き文書に対するアクセス制御の例について説明する。この場合、上述の(条件2)の前半部の条件(要求者の所属組織から組織階層を遡った経路上に含まれる組織のいずれかに、要求対象のID付き文書の操作者が所属すること)を満たさないので、アクセス許可されない。例えば、組織2Tに所属するuser7が、組織1Tに所属するuser3が更新登録したID付き文書"Doc4"の提供を要求した場合、要求者user7の所属組織2Tを起点に組織階層を遡った経路上に含まれる組織(2T,1G,X部,…,全社)の中に、要求対象の文書であるID付き文書"Doc4"の操作者user3の所属組織1Tが含まれないので、アクセス許可されない。以下、この例におけるアクセス制御部142の処理について説明する。
【0126】
まず、図10のステップS10で、注目ユーザuはuser7、注目文書rは"Doc4"に設定される。次に、ステップS12で、注目文書r"Doc4"の操作者はuser3であり、注目ユーザuであるuser7と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc4"の操作者であるuser3の所属組織1Tと、注目ユーザuであるuser7の所属組織2Tと、が一致しないので、判定の結果ステップS30に進む。この時点で、順次性チェックフラグの値は、ステップS10でtrueに設定されたまま変更されていないので、ステップS30の判定の結果、ステップS32に進む。また、注目文書r"Doc4"は、要求対象のID付き文書"Doc4"であるので、ステップS32の判定の結果、ステップS34に進む。ステップS34で、注目ユーザuであるuser7の所属組織2Tは、組織階層における最上位の組織ではない(図7及び図8参照)ので、処理はステップS36に進む。ステップS36において、注目ユーザuであるuser7の所属組織2Tに対して一段階上位の組織1Gに所属する者であるuser2(図9参照)が新たな注目ユーザuとして設定される。
【0127】
ステップS36の後、ステップS14に戻り、ステップS14で、注目文書r"Doc4"の操作者であるuser3の所属組織1Tと、注目ユーザuであるuser2の所属組織1Gと、が一致しないので、判定の結果、ステップS30に進む。ステップS30で、順次性チェックフラグの値はtrueであるので、ステップS32に進む。注目文書r"Doc4"は、要求対象のID付き文書"Doc4"と一致するので、ステップS34に進む。ステップS34で、注目ユーザuであるuser2の所属組織1Gは、組織階層における最上位の組織ではない(図7及び図8参照)ので、ステップS36に進み、注目ユーザuであるuser2の所属組織1Gに対して一段階上位組織であるX部に所属するuser1が新たな注目ユーザuとして設定される。その後、さらに、ステップS14以降の処理を繰り返す。この繰り返し処理において、注目文書r"Doc4"の操作者であるuser3の所属組織1Tと、注目ユーザuであるuser1の所属組織X部から組織階層を遡った経路上に含まれる組織と、が一致することはないので、ステップS14でYesに進むことはない。したがって、ステップS14,S30〜S36の処理ループが繰り返されて、組織階層において注目ユーザuの所属組織を遡っていき、組織階層における最上位組織に所属する者が注目ユーザuとして設定された後、ステップS34の判定が行われると、処理はステップS38に進み、順次性チェックフラグの値がfalseに設定される。この間、注目文書rは、要求対象のID付き文書"Doc4"に設定されたまま変更されない。
【0128】
ステップS38の後、ステップS21に進み、注目文書r"Doc4"は根ノードでないのでステップS28に進み、ステップS12以降の処理が繰り返される。そして、派生関係の木構造の根ノードである"Doc1"が注目文書rとして設定された後、ステップS21の判定が行われると、ステップS22において、順次性チェックフラグの値の判定が行われる。順次性チェックフラグの値は、上述のようにfalseに設定されているので、ステップS22の判定の結果、ステップS26のエラー処理に進み、user7によるID付き文書"Doc4"に対するアクセスは許可されない。
【0129】
<具体例7>
要求者と同じ組織に所属する他のユーザが更新登録した文書に対するアクセス要求があった場合のアクセス制御について説明する。上述の(条件1)及び(条件2)を考慮すると、役職者でない者が更新登録した文書については、要求者が更新登録した文書から派生した文書でない限りアクセス許可されない。例えば、組織1Tに所属するuser6が、同じ組織1Tに所属するuser5によって更新登録されたID付き文書"Doc7"の提供を要求した場合について説明する。
【0130】
図10のステップS10で、注目ユーザuはuser6、注目文書rは"Doc7"に設定される。次に、ステップS12で、注目文書r"Doc7"の操作者はuser5であり、注目ユーザuであるuser6と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc7"の操作者であるuser5の所属組織1Tと、注目ユーザuであるuser6の所属組織1Tと、が一致するので、処理はステップS16に進み、注目文書r"Doc7"の操作者user5は役職者ではないので、処理は、図11のステップS40に進む。図11に例示する手順の処理では、注目文書r"Doc7"を起点に、図6に示す派生関係の木構造を根ノードまで遡った経路に含まれる「更新」操作ノード("Doc7","Doc4","Doc3","Doc1")の中に、その操作者が要求者であるuser6と一致するノードが存在しないので、ステップS48のエラー処理が行われ、文書に対するアクセスは許可されない。
【0131】
<具体例8>
最後の具体例として、複数の組織に所属するユーザが更新登録したID付き文書に関するアクセス制御について説明する。例えば、ID付き文書"Doc12"は、組織2Tの役職者であるuser4によって更新登録されたID付き文書"Doc5"に対して、組織1T及び2Tの業務を兼任するuser8が更新を行った結果の文書である。つまり、ID付き文書"Doc12"は、user8が、自己の一方の所属組織2Tにおける業務として更新登録を行った文書である。このID付き文書"Doc12"に対して、user8の他方の所属組織1Tの役職者であるuser3がアクセス要求を行った場合のアクセス制御部142の処理について説明する。
【0132】
まず、図10のステップS10において、注目ユーザuはuser3、注目文書rは"Doc12"に設定される。次に、ステップS12の判定では、注目文書r"Doc12"の操作者はuser8で、要求者であるuser3と一致しないので、ステップS14に進む。次に、注目文書r"Doc12"の操作者であるuser8の所属組織1T,2Tの一方と、注目ユーザuであるuser3の所属組織1Tと、が一致し(ステップS14でYes判定)、注目文書r"Doc12"の操作者であるuser8は、役職者ではない(図9参照)ので、処理は図11のステップS40に進む。ここで、図6に示す派生関係を参照すると、要求対象のID付き文書"Doc12"は、要求者であるuser3が更新登録したID付き文書から派生した文書ではないので、図11に例示する手順の処理を実行すると、ステップS48のエラー処理が行われ、user3のID付き文書"Doc12"に対するアクセスは許可されない。
【0133】
また、例えば、user8が組織2Tにおいて役職者であった場合、図11に例示する処理が行われることはなく、ステップS16でYes判定されてステップS17以降の処理が行われるが、要求者user3の所属組織1Tを起点に組織階層を遡った経路上に含まれる組織(1T,1G,X部,…,全社)の中に、要求対象の文書であるID付き文書"Doc12"の操作者user8の所属組織2Tが含まれない。したがって、上述の<具体例6>の場合と同様、ステップS30〜S36を含む処理ループが繰り返された結果、ステップS38において順次性チェックフラグの値がfalseに設定されるため、アクセス許可されない。
【0134】
以上より、user3は、user8に対して組織1Tにおいて上司に該当する者であるが、組織1Tと異なる組織2Tの業務に関してuser8が更新登録した文書についてはアクセス許可されない。
【0135】
以上、図10,図11及び<具体例1>−<具体例8>を参照して説明した処理の例において、文書の派生関係において、注目文書rとなり得るのは、操作種別の値が「登録」又は「更新」である文書だけである。したがって、クライアント端末20は、ID付き文書が新たに作成された場合(初期登録)、又は、ID付き文書に対して「更新」操作(ID付き文書の文書内容に変更が生じるような操作)が行われた場合に、新たなID付き文書を生成して文書管理サーバ10に登録し、「閲覧」操作又は「取得」操作など「更新」操作以外の操作(ID付き文書の文書内容に変更が生じない操作)が行われた場合は、新たなID付き文書の生成及び文書管理サーバ10への登録を行わない構成としてもよい。この場合、派生関係DB110に登録されるレコードは、操作種別の値が「登録」又は「更新」であるレコードのみとなる。例えば、図5に示す表で表される時系列で文書に対して操作が行われた場合に、クライアント端末20が「登録」操作又は「更新」操作のみについてID付き文書の生成及び登録を行う場合、図5に示す表から、管理ID"Doc2"のレコード(操作種別「閲覧」)、及び管理ID"Doc6","Doc8"のレコード(操作種別「取得」)を除いたレコードを含む表のデータ内容が派生関係DB110に登録される。そして、図5に示す表において、管理ID"Doc2","Doc6","Doc8"をそれぞれ親IDとする操作種別「更新」のレコードである管理ID"Doc3","Doc7","Doc9"の親IDの値としては、それぞれの「更新」操作において変更される前の文書内容を含むID付き文書の管理IDの値が登録される。つまり、管理ID"Doc3"のレコードの親IDは"Doc1"、管理ID"Doc7"及び"Doc9"のレコードの親IDは"Doc4"となる。
【0136】
「登録」操作又は「更新」操作のみについてID付き文書の生成及び文書管理サーバ10への登録が行われる場合、アクセス制御部142は、図10及び図11に例示する処理において、注目文書rから派生関係の木構造を遡って最初に発見した「更新」又は「登録」ノードの管理ID(P(r))を取得する際(図10のステップS17,S28及び図11のステップS42)、派生関係DB110内の注目文書rのレコードに登録された親IDをP(r)として取得すればよい。
【0137】
また、以上で説明した処理の例では、図10のステップS20又は図11のステップS40で、注目文書rが木構造の根ノードに該当するか否かの判定が行われる。他の処理の例では、このノードに到達したらそれ以上は木構造を遡らない、とするノードを予め設定しておき、図10のステップS20及び図11のステップS40の判定において、注目文書rが上述のように木構造を遡る終点として設定されたノードであるか否かを判定してもよい。この場合、例えば、派生関係DB110において、終点として設定されたノードの管理IDに対応するレコードに、その旨を示す情報を登録しておけばよい。
【0138】
また、以上で説明した処理の例では、図10のステップS34で、注目ユーザuの所属組織が組織階層において最上位に位置するか否かを判定する。他の処理の例では、この組織に到達したらそれ以上は組織階層を遡らない、とする組織を予め設定しておき、図10のステップS40の判定において、注目ユーザuの所属組織が上述のように組織階層を遡る終点として設定された組織であるか否かを判定してもよい。この例の場合、ステップS30,S32,S34,S36を含む処理ループにおいて、要求者の所属組織から、終点として設定された組織まで組織階層を遡った経路上に含まれる組織のいずれかに、要求対象のID付き文書の操作者が所属するか否かを判定することになる。
【0139】
さらに他の処理の例として、ID付き文書のログ情報316の中に、当該ID付き文書300が公開(共有)対象であるか否かを示す「公開」属性を組み込むこともできる。例えば公開対象とするID付き文書の「公開」属性値を「1」とし、公開対象としないID付き文書の「公開」属性値は「0」とし、文書管理サーバ10の派生関係DB110の各管理IDに対応するレコードに「公開」属性値を登録する。この「公開」属性値は、ユーザがクライアント端末20においてID付き文書に対して操作を行う時に指定できるようにしておけばよい。「公開」属性値を用いる場合、アクセス制御部142は、例えば、図10に例示する手順の処理を開始する前に、まず、派生関係DB110内の要求対象文書に対応するレコードに含まれる「公開」属性値を取得する。そして、取得した「公開」属性値が「1」であれば、図10に例示する処理を開始してアクセスの可否を決定し、「公開」属性値が「0」であれば、図10に例示する処理を行うことなく、当該文書を生成するための操作を行った操作者や管理者等の特権的なユーザ以外には、アクセスを許可しないようにすることができる。
【0140】
また、企業などの団体においては、人事異動などにより各組織の構成員及び役職者が変更されたり、企業組織改変などにより組織階層の構成が変更されたりする場合がある。このような組織の変動に対応するため、組織情報DB120に、組織において生じた変更についての情報を登録しておくことができる。例えば、各組織の構成員に変更があった場合、変更前及び変更後の構成員の情報(例えば、図9のようなデータ内容)を組織情報DB120に登録しておき、さらに、変更が行われた時刻を組織情報DB120に登録する。組織階層の構成が変更された場合は、変更前及び変更後の組織階層の構造を表す情報(例えば、図8のようなデータ内容)と、変更前及び変更後の組織構成それぞれにおける各組織の構成員の情報と、その変更が行われた時刻と、を組織情報DB120に登録しておく。そして、アクセス制御部142における処理では、処理対象のID付き文書の操作日時を派生関係DB110から取得し、取得した操作日時が、組織情報DB120に登録された変更時刻以前であれば、変更前の組織階層及び構成員の情報を用い、取得した操作日時が組織情報の変更時刻以後であれば、変更後の組織階層及び構成員の情報を用いるようにすればよい。組織階層又は構成員について複数回の変更が行われた場合、例えば、組織階層又は構成員の情報とその情報が有効であった期間とを対応づける情報を組織情報DB120に登録しておき、アクセス制御部142での処理において、処理対象のID付き文書の操作日時を含む期間に対応する組織階層又は構成員の情報を組織情報DB120から取得して用いるようにすればよい。
【0141】
以上に例示した例では、管理IDの発行は各クライアント端末20で行われていたが、この代わりに文書管理サーバ10が管理IDを発行してもよい。この場合、クライアント端末20は、ID付き文書に対して操作を行った場合、操作前のID付き文書内の管理IDを親ID314として含み、更にその操作についてのログ情報316と操作後の文書内容320とを含み、管理ID312は空欄の文書データを生成し、文書管理サーバ10に送る。文書管理サーバ10は、受け取った文書データに対して新たな管理IDを付与し、この管理IDとその文書データとに含まれる情報を、文書DB100及び派生関係DB110に登録する。また、文書管理サーバ10は、付与した管理IDを当該文書データにセットすることによりID付き文書を生成し、これをクライアント端末20に返す。クライアント端末20は、操作前のID付き文書を、受け取ったID付き文書に置き換える。このように、文書管理サーバ10が管理IDを付与する構成でも、上述の各例の処理は同様に実行できる。
【0142】
また以上の例では、管理ID312、親ID314、ログ情報316、及び文書内容320を含んだID付き文書300がクライアント端末20に保存されたが、この代わりに、クライアント端末20は管理IDしか持たず、その他の情報は文書管理サーバ10に保存されるようにしてもよい。この場合、クライアント端末20で文書を操作する場合、その文書に対応する管理IDを文書管理サーバ10に送り、文書管理サーバ10からその文書を取得する。また、別の例として、クライアント端末20が保持するID付き文書300の中には管理ID312と文書内容320とが含まれ、親ID314及びログ情報316は含まれないようにしても良い。この場合、サーバがその管理ID312に対応づけて親ID314とログ情報316を持つようにすれば良い。
【0143】
ここで、文書管理サーバ10が管理IDを付与する場合は、その取得の操作に対応する管理IDを文書管理サーバ10が生成し、その管理IDと文書とを対応づけてクライアント端末20に提供するとともに、その取得操作についてのログ情報(操作時刻や操作者など)と、元の管理ID(すなわち親ID)と、付与した管理IDとを派生関係DB110に記録する。クライアント端末20は、文書管理サーバ10に送信した管理IDを、受け取った管理IDに置き換えると共に、受け取った文書を開く。ユーザは、開かれた文書に対して閲覧や編集などの操作を行う。クライアント端末20は、文書に対する操作が完了すると、操作後の文書を管理ID及び当該操作についてのログ情報と共に文書管理サーバ10に送る。文書管理サーバ10は、受け取った文書に対して新たな管理IDを付与して派生関係DB110に登録し、受け取った管理IDを親IDとして派生関係DB110に登録する。また、受け取ったログ情報及び操作後の文書を、派生関係DB110及び文書DB100に登録する。そして、文書管理サーバ10は、新たに付与した管理IDをクライアント端末20に返す。クライアント端末20は、元の管理IDを受け取った管理IDで置き換える。以上のような処理により、操作間の派生関係が文書管理サーバ10に蓄積されることになる。
【0144】
一方、クライアント端末20が管理IDを付与する構成の場合は、文書管理サーバ10は、クライアント端末20から受け取った管理IDに対応する文書をクライアントに返せばよい。クライアント端末20は受け取った文書を開き、ユーザがその文書を操作する。操作の完了後、クライアント端末20はその操作結果の文書に対して新たな管理IDを付与し、この管理IDを含んだ前述のID付き文書と同様の情報を、文書管理サーバ10に送る。そして、クライアント端末20は、そのID付き文書のうち管理IDのみを保存し、その他の情報を削除する。
【0145】
以上に例示したシステムにおける文書管理サーバ10は、典型的には、汎用のコンピュータにて上述の文書管理サーバの各部の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図12に示すように、CPU(中央演算装置)40、メモリ(一次記憶)42、各種I/O(入出力)インタフェース44等がバス46を介して接続された回路構成を有する。また、そのバス46に対し、例えばI/Oインタフェース44経由で、ハードディスクドライブ(HDD)48やCDやDVD、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ50が接続される。このようなドライブ48又は50は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク経由で、ハードディスクドライブ48等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されCPUにより実行されることにより、実施形態の処理が実現される。クライアント端末20についても同様である。
【図面の簡単な説明】
【0146】
【図1】文書管理システムの概略構成の例を示すブロック図である。
【図2】クライアント端末の内部構成の例を示すブロック図である。
【図3】ID付き文書のデータ構造の例を模式的に示す図である。
【図4】文書管理サーバの内部構成の例を示すブロック図である。
【図5】派生関係DBのデータ内容の例を示す図である。
【図6】図5に例示したデータ内容における管理ID群がなす木構造を図式化して表す図である。
【図7】複数の組織からなる組織階層の構造の例を示す図である。
【図8】組織情報DBのデータ内容の例を示す図である。
【図9】組織情報DBのデータ内容の例を示す図である。
【図10】ID付き文書に対するアクセスが要求された場合の文書管理サーバの処理手順の一部の例を示すフローチャートである。
【図11】ID付き文書に対するアクセスが要求された場合の文書管理サーバの処理手順の一部の例を示すフローチャートである。
【図12】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【0147】
10 文書管理サーバ、20 クライアント端末、30 ネットワーク、40 CPU、42 メモリ、44 I/Oインタフェース、46 バス、48 ハードディスクドライブ(HDD)、50 ディスクドライブ、100 文書DB、110 派生関係DB、120 組織情報DB、130 文書登録部、132 派生関係登録部、140 要求処理部、142 アクセス制御部、200 文書操作部、202 ID割り当て部、204 派生関係組込部、210 登録処理部、300 ID付き文書。
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、及びプログラムに関する。
【背景技術】
【0002】
サーバに電子文書が登録されたシステムにおいて、一般に、電子文書に関してユーザに与えられる利用権限の管理は、電子文書(ファイル)ごとに、その文書に対する各ユーザ又は各グループの権限、例えば閲覧可能/不可、書込可能/不可など、のアクセス権を示す情報を設定登録することで行われる。電子文書の利用管理を行うシステムは、ユーザからある文書に対する操作の要求を受けた場合、その文書について設定登録されたアクセス権情報に基づいて、その操作がそのユーザの権限内のものであるかを判定し、その操作を許可するか否かを判定する。
【0003】
文書ごとにアクセス権情報を設定登録する電子文書利用管理システムを用いて、例えば企業など、階層構造を形成する複数の組織からなる団体において利用される電子文書を管理する場合に、その団体における組織の階層構造及び組織の業務分担などの組織に関する情報を用いて、文書ごとのアクセス権の設定を行う技術がある。
【0004】
特許文献1には、プログラム及び設計書などの文書について、会社組織及び業務分類に基づきアクセス権を設定する文書管理装置が開示されている。特許文献1に記載の技術では、各組織の構成員を表す情報と、各組織の業務を表す情報と、業務において用いられる文書を表す情報と、を設定しておき、文書に対するアクセス要求があった場合に、アクセス要求を行った個人が所属する組織の業務において用いられる文書として当該文書が設定されているか否かを判定することで、当該文書に対するアクセスの可否を決定する。
【0005】
また、特許文献2には、文書アクセス管理システムにおいて、複数のグループを階層構造で定義した情報を保存するグループ階層構造情報記憶装置と、文書の更新や配布先設定を委ねられた管理元となるグループを示す情報及びアクセス許可グループを示す情報を文書ごとに保存する文書記憶装置と、を備え、これらの記憶装置に保存された情報を用いて、個々の文書の参照や、その他の取り扱いができるユーザの選別を行うシステムが開示されている。
【0006】
特許文献3には、文書ごとのアクセス権を規定したアクセス権限リスト(ACL,Access Control List)の中に、組織における操作者の属性及び役職の属性などに関する照合規則を定義しておくことで、組織に関する属性情報に従って文書のアクセス制御を行う技術が開示されている。
【0007】
【特許文献1】特開平7−56794号公報
【特許文献2】特開2000−20377号公報
【特許文献3】特許第3349978号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ところで、例えば、企業などの複数の組織からなる団体において、1つの電子文書が複製されて複数の流通経路に沿って流通し、その電子文書に対し個々の流通経路でそれぞれ個別に更新が加えられる場合がある。このような場合、更新後の文書に対するアクセスは、組織の階層構造などに適合するように制御するだけでなく、異なる流通経路ごとに異なるアクセス権が実現されるように制御することが望まれる場合がある。
【0009】
1つの電子文書が複数の流通経路に沿って流通する場合、例えば、1つの電子文書について複数の流通経路それぞれにおいて複数回の更新が行われると、電子文書ごとにアクセス権情報を設定登録すると、各流通経路における複数の更新版の文書に対してそれぞれアクセス権情報を設定登録する必要があるため、設定登録作業が煩雑となり管理負担が大きい。
【0010】
本発明は、階層構造を形成する複数の組織において利用される電子文書の管理において、組織階層に応じて、文書の流通経路ごとに、文書に対してアクセスを制御できる情報処理装置、情報処理システム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
請求項1に係る発明は、第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を記憶する文書情報記憶部であって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて記憶する文書情報記憶部と、複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を記憶する組織情報記憶部と、要求対象文書と、要求者と、を特定する文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定する文書出力可否決定部と、を備えることを特徴とする情報処理装置である。
【0012】
請求項2に係る発明は、請求項1に係る発明において、前記文書出力可否決定部は、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織が、前記要求対象文書に対応づけられた操作者を前記構成員として含むか否かを判定し、当該判定の結果に基づいて、前記要求対象文書の出力の可否を決定する。
【0013】
請求項3に係る発明は、請求項2に係る発明において、前記文書出力可否決定部は、前記要求対象の文書が前記組織階層において上位から下位の展開経路を経ずに更新登録された文書である場合には、前記要求対象の文書の出力を許可しない。
【0014】
請求項4に係る発明は、請求項1から3のいずれか1項に係る発明において、前記文書出力可否決定部は、前記要求対象文書を起点として前記木構造を遡った経路上に含まれる文書のうち少なくとも1つの文書に対応づけられた操作者が前記要求者である場合に、前記要求対象文書の出力を許可する。
【0015】
請求項5に係る発明は、請求項1から4のいずれか1項に係る発明において、前記組織情報記憶部は、さらに、前記組織のそれぞれに所属する構成員のうちの役職者を示す情報を記憶し、前記文書出力可否決定部は、前記要求対象文書に対応づけられた操作者が、前記構成員として当該操作者を含む組織の役職者でない場合であって、前記要求対象文書を起点として前記木構造を遡った経路上に含まれる文書のいずれに対応づけられた操作者も前記要求者でない場合は、前記要求対象文書の出力を許可しない。
【0016】
請求項6に係る発明は、第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を文書情報記憶部に記憶するステップであって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて文書情報記憶部に記憶するステップと、複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を組織情報記憶部に記憶するステップと、要求対象文書と、要求者と、を特定する文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定するステップと、をコンピュータに実行させることを特徴とするプログラムである。
【0017】
請求項7に係る発明は、第1の情報処理装置と第2の情報処理装置とを備え、前記第1の情報処理装置は、要求対象文書と、要求者と、を特定する文書出力要求を前記第2の情報処理装置に対して行う文書出力要求部を備え、前記第2の情報処理装置は、第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を記憶する文書情報記憶部であって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて記憶する文書情報記憶部と、複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を記憶する組織情報記憶部と、前記第1の情報処理装置から前記文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定する文書出力可否決定部と、を備えることを特徴とする情報処理システムである。
【発明の効果】
【0018】
請求項1に係る発明によると、文書ごとにアクセス権情報を設定することなく、組織階層に応じて、文書の流通経路ごとに、文書に対するアクセスを制御できる。
【0019】
請求項2に係る発明によると、要求対象文書の操作者の所属組織が要求者の所属組織に対して組織階層において直系の上位に該当するか否かによって文書に対するアクセスを制御することができる。
【0020】
請求項3に係る発明によると、上位組織に所属するユーザから下位組織に所属するユーザの順に操作された文書でなければアクセスを許可しないようにできる。
【0021】
請求項4に係る発明によると、要求者が操作した文書から派生した文書については、要求者にアクセスを許可するようにできる。
【0022】
請求項5に係る発明によると、役職者が操作した文書以外の文書について、要求者が操作した文書から派生した文書でない限りは、要求者にアクセスを許可しないようにできる。
【0023】
請求項6に係る発明によると、文書ごとにアクセス権情報を設定することなく、組織階層に応じて、文書の流通経路ごとに、文書に対するアクセスを制御できる。
【0024】
請求項7に係る発明によると、文書ごとにアクセス権情報を設定することなく、組織階層に応じて、文書の流通経路ごとに、文書に対するアクセスを制御できる。
【発明を実施するための最良の形態】
【0025】
以下、図面を参照して、本発明の実施の形態を説明する。
【0026】
図1は、文書管理システムの概略構成を示すブロック図である。このシステムは、インターネットやローカル・エリア・ネットワーク等のネットワーク30を介して接続された文書管理サーバ10とクライアント端末20−1,20−2,・・・(以下、クライアント端末20と総称する)から構成される。
【0027】
クライアント端末20について図2を用いて説明する。クライアント端末は、ユーザが文書を操作するために用いる端末であり、パーソナルコンピュータ、デジタル複写機などがその一例である。クライアント端末20は、図2に示すように、文書操作部200及び登録処理部210を備える。
【0028】
文書操作部200は、文書に対する操作を実行する手段である。文書に対する操作には、例えば、文書の表示(ユーザから見れば「閲覧」)、編集、印刷出力、紙文書の読み取り、紙文書の複写、等がある。図では、文書操作部200を1つだけ示したが、それら個々の操作を別々の操作部(例えば、編集用のアプリケーション、読取制御用のアプリケーションなど)が担当してもよい。例えば、文書操作部200がワードプロセッサ等の電子文書を作成・編集するためのソフトウエアであれば、文書操作部200は、ユーザの指示に応じて電子文書を表示したり、電子文書に編集を加えたりする。文書操作部200は、文書に対して操作を行った場合、その操作の結果を表すID付き文書300を出力する。
【0029】
ID付き文書300は、図3に示すように、メタ情報310と文書内容320を含んだ電子文書である。文書内容320は、文書操作部200の操作の結果生成された文書の内容データである。文書操作部200が電子文書を作成・編集するためのソフトウエアであれば、文書内容320はそのソフトウエアによる編集の結果生成される文書ファイルである。また、文書操作部200が電子文書を印刷する装置であれば、文書内容320は、例えば、印刷される電子文書の内容データとすればよい。また、文書操作部200が紙文書をスキャンする装置又は紙文書を複写する装置であれば、文書内容320は、例えば、その紙文書を読み取って得られる画像データとすればよい。
【0030】
メタ情報310は、文書管理のための情報であり、管理ID312,親ID314,及びログ情報316を含む。
【0031】
管理ID312は、当該ID付き文書300自体の一意な識別情報である。親ID314は、当該ID付き文書300の親のID付き文書の管理IDである。すなわち、本実施形態では、あるID付き文書と、このID付き文書に対して操作を加えた結果得られる新たなID付き文書とを、親と子の関係として取り扱う。第1のID付き文書を操作して第2のID付き文書が得られた場合、第1のID付き文書は第2のID付き文書の親であり、第2のID付き文書は第1のID付き文書の子である。したがって、例えば、管理ID「A」のID付き文書を文書操作部200で操作して、その結果得られた新たなID付き文書の管理IDが「B」である場合、後者のメタ情報310における管理ID312は「B」であり、親ID314は「A」である。このような親子の関係を、以下では「(管理IDの)派生関係」という。
【0032】
なお、本システムに未登録の電子文書を新たに登録する操作を実行した場合や、未登録の紙文書をスキャン又は複写する操作を実行した場合(この場合、紙文書を読み取った画像を文書内容とするID付き文書が生成され、本システムに登録される)に生成されるID付き文書300では、親ID314は空(すなわち、親は存在しない)となる。
【0033】
ログ情報316は、当該ID付き文書が生成された際の操作についての、各種のログ項目の情報である。ログ項目には、例えばその操作が行われた日時、その操作の種別、その操作を指示したユーザ(操作者)などがあるが、もちろんこれに限るものではない。操作の種別には、例えば登録(本システムに新規の文書を登録すること)、閲覧、編集、更新(更新版の登録)、印刷、スキャン、紙文書の複写、等がある。例えば、ユーザが文書操作部200を用いて第1のID付き文書に対して編集を加え、編集完了の指示を行った場合、その結果生成される第2のID付き文書のログ情報316は、編集完了の日時と、その編集を指示したユーザの識別情報と、操作の種別として「編集」と、を含んだものとなる。
【0034】
ここでログ情報316に組み込まれる操作の種別は、ログ記録の目的での分類に従った種別であり、文書操作部200が実行する操作の種別そのものでなくてもよい。例えば、文書操作部200が実行する複数の操作の種別を、同じ1つのログ記録目的の操作種別に対応づけてもよい。例えば、文書編集アプリケーション上でID付きの電子文書に編集を加え操作メニュー上で「更新版として登録」を指示した場合も、スキャナで管理ID付きの紙文書を読み取り読取制御用アプリケーションの操作メニュー上で「読み取った文書を承認版として登録」を指示した場合も、ログ情報316に組み込まれる操作種別の値は「更新」となる。
【0035】
文書操作部200が生成するメタ情報310の具体例を以下に示す。
【0036】
[例1]
<metadata sid="Doc1" date="2006-10-01T10:00" method="register" filename="aaa.doc" user="user1"/>
【0037】
ここでsid属性は管理ID、date属性は操作日時、method属性は操作種別である。また、filename属性は当該ID付き文書のファイル名であり、user属性は操作を指示したユーザのユーザ識別情報である。例1のmethod属性値"register"は(文書管理サーバ100に未登録の)新規文書の登録操作を示す操作種別名である。新規文書の登録なので、親IDを示すpid属性は省略されている。省略する代わりにpid="null"などと、親IDがないことを示す属性を明示的に組み込んでもよい。
【0038】
なお、文書操作部200が、操作した文書を暗号化してもよい。この暗号化は、本システムに準拠した文書操作部200ならば、復号できるようなものとする。この場合、文書操作部200が出力するID付き文書300の文書内容320は、暗号化されることにより、本システムに準拠した文書操作部200でないと復号できなくなる。したがって、ID付き文書300が操作される場合には文書操作部200が用いられるので、文書操作部200がその操作を検知し、その操作の内容が文書操作部200から文書管理サーバ10に通知される。なお、文書内容320だけでなく、後述するメタ情報310(またはその一部)に対しても暗号化を施してもよい。
【0039】
図2の説明に戻り、文書操作部200は、操作結果として上述のようなID付き文書300を作成するために、ID割り当て部202及び派生関係組込部204を備える。ID割り当て部202は、操作結果のID付き文書300に一意な管理IDを付与する手段である。管理IDは、少なくとも本システム内で一意な識別情報である必要がある。例えば、操作の結果生成するID付き文書300(ただし管理ID312を除いたもの)のハッシュ値を求め、このハッシュ値をその文書300のID付き文書とすればよい。ハッシュ関数としてSHA-256(SHA-256はNISTがFIPS180-2で定めた256ビットのハッシュ値を持つ暗号学的ハッシュ関数である)などのような耐衝突性を持つ暗号学的ハッシュ関数を用いれば、実用上十分な一意性を持つ管理IDを生成することができる。もちろん、システム内で一意な管理IDを各クライアント端末20で生成する方法は、これに限らない。管理IDを、クライアント端末20固有の識別情報を含むものとすれば、システム内で一意な管理IDを各クライアント端末20で生成することができる。
【0040】
派生関係組込部204は、操作結果の文書に対しID割り当て部202が割り当てた新たな管理ID312と、その操作の元になった親文書の管理IDである親ID314(新規登録の場合は、親IDは無し)と、その操作についてのログ情報316と、を含むメタ情報310を生成する。ここで、派生関係組込部204は、文書操作部200が実行する個々の操作の種別が、ログ記録目的上の操作種別のどれに対応するかを表す対応関係の情報を保持しており、この情報を用いることでログ情報316に組み込む操作種別の値を求める。そして、派生関係組込部204は、そのメタ情報310を操作結果の文書内容に付加することにより、操作後のID付き文書300を生成して出力する。
【0041】
文書操作部200がアプリケーションソフトウエアである場合、ID割り当て部202及び派生関係組込部204は、そのソフトウエアに対して追加される、いわゆるプラグイン(plug-in)プログラムとして実現してもよい。
【0042】
登録処理部210は、文書操作部200が出力したID付き文書300を文書管理サーバ10に登録するための処理を実行する。このように各クライアント端末20が、自ら実行した操作の結果であるID付き文書300を文書管理サーバ10に登録することにより、文書管理サーバ10は各ID付き文書300間の派生関係を把握することができる。
【0043】
文書操作部200が操作の結果出力するID付き文書300は、通常の文書ファイルと同様、電子的にコピーしたり、電子メールに添付するなどの方法で他の人宛に送信したりすることができる。電子メール送信用のソフトウエアは、この例では本システムに準拠していないので、この送信操作はID付き文書には反映されず、したがって文書管理サーバ10にも記録されない。他の人からID付き文書300を受け取った人が、自分のクライアント端末20の文書操作部200を用いてそのID付き文書300を操作すると、その操作に応じて新たな管理IDを付与されたID付き文書が生成されることになる。
【0044】
また、文書操作部200が電子文書を印刷する場合、管理IDを生成し、その電子文書の印刷結果にその管理IDを埋め込んでもよい。管理IDの埋め込みは、例えば電子文書の印刷画像に、管理IDを示すコード画像を重畳する等の方法で行うことができる。また、用紙がRFID(Radio Frequency Identifier)タグを備えている場合、そのRFIDタグに管理IDを書き込んでもよい。このように印刷を行った場合、文書操作部200は、その管理IDや操作種別「印刷」等のメタ情報を含んだID付き文書を文書管理サーバ10に登録する。なお、ID付き文書を印刷した場合には、そのID付き文書の管理IDを親ID314として含んだID付き文書が生成される。印刷操作に対応するID付き文書には、印刷された画像を示すページ記述言語データやビットマップ画像データをなどの印刷データ、又は印刷された文書ファイルを、文書内容320として組み込んでもよい。
【0045】
また、管理IDが埋め込まれた紙文書を文書操作部200が読み取った場合、文書操作部200は、その読み取り操作に対して新たな管理IDを付与し、読み取り結果の画像を文書内容320として含んだID付き文書を生成して文書管理サーバ10に登録する。このID付き文書の親ID314には、紙文書から読み取った管理IDがセットされる。管理IDが埋め込まれた紙文書の複写の際には、上述した読み取り時と印刷時の処理が実行される。
【0046】
次に、文書管理サーバ10について説明する。文書管理サーバ10は、システム内の複数のクライアント端末20から送られてくるID付き文書300を蓄積し、蓄積した情報に基づきユーザに各種のサービスを提供する。図4に示すように、文書管理サーバ10は、文書DB(データベース)100,派生関係DB110,組織情報DB120,文書登録部130,要求処理部140を備える。
【0047】
文書DB100は、クライアント端末20から送られてきたID付き文書300のうちの文書内容320を格納するデータベースである。文書DB100に格納された各文書内容320は、一意な内容IDにより管理してもよい。内容IDとしては、例えば当該文書内容の暗号学的ハッシュ関数によるハッシュ値を用いてもよいが、これに限定されるものではない。クライアント端末20が内容IDを付与してもよく、この場合、内容IDをメタ情報320に組み込んでもよい。また、内容IDの代わりに、その文書内容320を、当該文書内容に対応するID付き文書300の管理IDと対応づけて文書DB100に格納してもよい。
【0048】
文書登録部130は、クライアント端末20から受信したID付き文書の中の文書内容を文書DB100に、メタ情報を派生関係DB110に、それぞれ登録する。そのうち、メタ情報の登録を担当するのが派生関係登録部132である。
【0049】
派生関係DB110は、そのようなID付き文書300のうち、派生関係の情報を主としたメタ情報を蓄積するデータベースである。図5に、派生関係DB110のデータ内容の一例を示す。図5に示した表における1行の情報が、1つのID付き文書300に対応するメタ情報レコードである。この例では、各ID付き文書300の管理IDに対応づけて、親ID、ノードアドレス、操作種別、操作者、操作日時の各項目が登録されている。このうち、管理IDと親IDのペア以外の項目は、例示したものに限られない。管理目的上必要な項目を記録すればよい。また、操作種別、操作者、操作日時については既に説明した。
【0050】
ノードアドレスは、ID付き文書間の派生関係が構成する木において、当該管理ID(ID付き文書)に対応するノードの位置を示している。ノードアドレスの表記において「/」が木の深さ階層の区切りを示し、番号が同じ親から派生した兄弟同士の間での順番を示す。例えばノード「/1」は新規文書登録の操作により登録された文書に対応する根ノードを示す。また、ノード「/1/1」は根ノード「/1」の1番目の子、ノード「/1/2」は根ノード「/1」の2番目の子を示す。なお、煩雑さを避けるため、図5には、1つの根ノード「/1」から派生した1つの木に属するメタ情報レコード群しか示していないが、文書管理サーバ10には、例えば根「/1」から派生する木と根「/2」から派生する木のように、複数の木のメタ情報レコード群が登録され得る。
【0051】
なお、図5に例示したメタ情報の項目は一例に過ぎない。例えば、この他にも、ID付き文書内の文書内容320を格納した、文書DB100内での格納場所を示すパス名を派生関係DB110に登録してもよい。文書DB100が、内容IDで文書内容320を検索する機能を持つものであれば、文書格納パスの代わりに内容IDをメタ情報レコードに登録してもよい。
【0052】
なお、図5は派生関係DB110が管理するデータを内容の観点から表現したものにすぎず、具体的な表現形式或いはデータベース形式を規定するものではない。例えば、派生関係DB110は、一般的なリレーショナルデータベースとして構築することもできるし、管理IDを除くメタ情報を記述したXML(eXtensible Markup Language)文書を、管理IDをキーとして登録したデータベースとして構築することもできる。
【0053】
図5に示した派生関係DB110のデータ内容は、図6のような木構造を成す。これは、管理IDをノードとし、管理ID間の親子関係をエッジとする木構造である。
【0054】
以下、図5〜図6の例が示す文書のうち、管理ID"Doc1"の文書から管理ID"Doc7"の文書までの履歴について時系列順に説明する。
【0055】
この例ではまず、文書(フォーム)の「登録」操作がuser1のクライアント端末で実行される。「登録」操作は、文書管理サーバ10に未登録の文書(すなわち、管理IDを有していない文書)を当該サーバ10に登録するための操作である。この操作に応じて管理IDが"Doc1"、親IDが空、操作種別が「登録」であるメタ情報と、その文書の文書内容とを含むID付き文書"Doc1"がuser1のクライアント端末から文書管理サーバ10に送られる。これに応じ、文書管理サーバ10は、そのID付き文書"Doc1"中の文書内容を文書DB100へ、メタ情報を派生関係DB110にそれぞれ登録する。ここで、文書管理サーバ10は、操作種別が「登録」であり、親IDが空なので、当該ID付き文書が、文書管理サーバ10内に既に登録済みのID付き文書の子ではなく、新たな木の根(始祖)であると判断し、それに従ってノードアドレスの値(この例では「/1」)を設定する。なお、以下では、識別のために、登録された文書内容を"Content1"で表すことにする。その後、user1は、登録したID付き文書を他のユーザuser2に配布する。この配布は、例えば、電子メールにそのID付き文書を添付して各ユーザに送信することにより、行うことができる。
【0056】
その後、他のユーザuser2が自分のクライアント端末の文書操作部200でID付き文書"Doc1"を閲覧する。閲覧されるのは内容ID"Content1"の文書内容である。クライアント端末は、閲覧の結果としてID付き文書"Doc2"を生成し、このID付き文書"Doc2"が文書管理サーバ10に登録される。このID付き文書のメタ情報における管理IDは"Doc2"であり親IDは"Doc1"である。また操作者はuser2であり、操作種別は「閲覧」である。また、「閲覧」操作では文書内容は変更されないので、文書内容は"Content1"のままである。このように文書内容が変更されない操作を行った場合、クライアント端末20は、文書内容を省略したID付き文書を文書管理サーバ10に送ってもよい。文書管理サーバ10は、受け取ったID付き文書の親IDの値から、当該文書"Doc2"が文書"Doc1"の子であることを認識し、しかも最初の子であるので、文書"Doc2"のノードアドレスを「/1/1」とする。
【0057】
なお、この操作の前にuser2のクライアント端末20内にあったID付き文書"Doc1"は、この操作に伴い、派生関係組込部204によりID付き文書"Doc2"に置き換えられる。この置き換え処理では、派生関係組込部204は、元のID付き文書"Doc1"のうち、メタ情報310の管理ID312を新たに発行したID"Doc2"へ変更すると共に、元の文書"Doc1"の管理ID"Doc1"を親ID314の値にセットする。また、派生関係組込部204は、ログ情報316中の操作種別の値を今回の操作の種別である「閲覧」に変更し、操作時刻の値をその閲覧の日時に変更し、操作者の値をuser2に変更する。なお、「閲覧」操作によっては文書の内容は変化しないので、文書内容320は、"Content1"のままである。
【0058】
このようにID付き文書"Doc1"は、閲覧されると、閲覧後のID付き文書"Doc2"に置き換えられる。したがって、その置き換えの後は、ID付き文書"Doc1"自体はそのクライアント端末20には存在せず、その代わりにID付き文書"Doc2"が存在することとなる。
【0059】
その後、user2が自分のクライアント端末20の文書操作部200によってID付き文書"Doc2"に対して編集を加え、操作メニュー上で「更新版として登録」を指示すると、クライアント端末20は、管理ID312の値が"Doc3"、親ID314の値が"Doc2"、操作種別の値が「更新」であるID付き文書"Doc3"を生成する。そして、クライアント端末20は、生成したID付き文書"Doc3"を「更新」操作の前のID付き文書"Doc2"と置き換えると共に、ID付き文書"Doc3"を文書管理サーバ10に登録する。編集により、文書内容は"Content1"から"Content2"に変化している。文書管理サーバ10の派生関係DB110には、管理ID"Doc3"のレコードが登録される。
【0060】
その後、user2は、電子メールなどによってID付き文書"Doc3"をuser3及びuser4に配布する。
【0061】
次に、user2から配布されたID付き文書"Doc3"に対して、user3のクライアント端末20の文書操作部200によって「更新(更新版として登録)」操作が行われる。user3のクライアント端末20は、その更新結果の文書内容"Content3"を含み、親IDが"Doc3"であり、操作種別の値が「更新」である新たなID付き文書"Doc4"を生成し、文書管理サーバ10に登録する。user3のクライアント端末20のID付き文書"Doc3"は、このID付き文書"Doc4"に置き換えられる。同様に、user4のクライアント端末20において、ID付き文書"Doc3"に対して文書操作部200によって「更新」操作が行われ、文書内容"Content4"を含み、親IDが"Doc3"であり、操作種別の値が「更新」である新たなID付き文書"Doc5"が文書管理サーバ10に登録される。user4のクライアント端末20のID付き文書"Doc3"は、ID付き文書"Doc5"に置き換えられる。
【0062】
次に、user5が、自分のクライアント端末20の文書操作部200によって、管理ID"Doc4"の文書を文書管理サーバ10から「取得」する操作を行う。ここで、「取得」操作とは、クライアント端末20の文書操作部200によって、文書管理サーバ10の記憶装置及び他のクライアント端末20の記憶装置などに記憶されたID付き文書をダウンロードしたり、複製したりする操作を表す。この「取得」操作によって、親IDが"Doc4"であり、操作種別の値が「取得」であるID付き文書"Doc6"が生成され、文書管理サーバ10に登録される。なお、「取得」操作によってID付き文書300の文書内容に変化は生じないので、ID付き文書"Doc6"の文書内容は、操作前のID付き文書"Doc4"の文書内容と同じ"Content3"のままである。
【0063】
その後、user5は、自分のクライアント端末20によって、ID付き文書"Doc6"に対して「更新」操作を行い、user5のクライアント端末20は、文書内容"Content5"を含み、親IDが"Doc6"であり、操作種別の値が「更新」である新たなID付き文書"Doc7"を生成して文書管理サーバ10に登録し、クライアント端末20におけるID付き文書"Doc6"をID付き文書"Doc7"に置き換える。
【0064】
以上、派生関係DB110のデータ内容を例に取り、本システムにおける文書操作の情報の登録の様子を説明した。
【0065】
図4の説明に戻り、組織情報DB120は、文書管理サーバ10が管理する文書を利用する企業などの団体を構成する組織についての情報を記憶するデータベースである。組織情報DB120は、複数の組織が形成する組織階層の構造を表す情報と、各組織に所属する構成員に関する情報と、を記憶する。
【0066】
企業などの団体は、一般に、図7に例示するように、階層構造を形成する複数の組織から構成される。組織情報DB120は、例えば、図8の表のようなデータベースとして、図7に例示するような組織階層を表す情報を記憶する。図8を参照すると、団体を構成する各組織の組織名に対応づけて、当該組織に対して組織階層において一段階上位に位置する上位組織の組織名が記憶される。例えば、図7に例示する組織階層において、1G(グループ)に対して一段階上位に位置するX部は、図8の表において、組織名1Gの上位組織として対応づけて記憶されている。また、図7の例で1Gの下位に位置する組織である1T(チーム)及び2Tについては、図8の表において、組織名1T及び2Tのそれぞれの上位組織として1Gが対応づけられている。図8に例示する表は、組織階層の構造を表す情報の表現形式の一例であり、組織階層の構造を表すことができさえすれば、他の表現形式で組織情報DB120に記憶させておいてもよい。
【0067】
さらに、組織情報DB120には、団体を構成する各組織に所属する構成員についての情報が記憶される。図9に、組織情報DB120に記憶される各組織の構成員についての情報の内容の例を示す。図9の表における1行の情報は、各組織に所属する1人の構成員に対応するレコードである。図9の例では、各構成員のユーザIDに対応づけて、所属組織、及び役職の各項目が登録されている。ユーザIDは、文書管理システムにおけるユーザの識別情報であり、文書管理システムを用いる団体の各構成員に、1つのユーザIDが割り当てられる。所属組織の項目には、団体を構成する複数の組織のうち、その構成員が所属する組織を表す情報が登録される。例えば企業などにおいて、1人の者が複数の組織の業務を兼任で行う場合がある。この場合は、その構成員が複数の組織に所属することを示す情報を所属組織の項目に登録しておけばよい。図9に示す例では、ユーザIDがuser8である構成員は、組織1Tの業務及び組織2Tの業務を兼任で行う者であり、user8のレコードの所属組織の項目には、「1T,2T」と登録されている。また、役職の項目は、組織における各構成員の役職の有無を示す。図9に例示する表では、各構成員のレコードの役職の項目に「○」が登録されている場合は、その構成員が組織のリーダなどの役職を有することを示し、「×」が登録されている場合は、その構成員が役職を有しないことを示す。
【0068】
なお、組織情報DB120における各組織の構成員を表す情報の表現形式は、図9に例示する形式に限られない。例えば、構成員ごとのレコードを組織情報DB120に登録する代わりに、組織ごとのレコードを登録し、各組織に対応するレコードに、その組織の構成員のユーザID及び役職者のユーザIDを登録するようにしてもよい。
【0069】
以上で説明した派生関係DB110及び組織情報DB120によると、文書管理サーバ10において、派生関係DB110に登録された各ID付き文書の操作者を表す情報と、組織情報DB120に登録された各組織の構成員を表す情報と、を照合することで、各ID付き文書の操作者の所属組織が特定される。また、組織情報DB120に記憶される組織階層の構造を表す情報を用いると、そのID付き文書の操作者の所属組織の組織階層における位置が特定される。
【0070】
図4の説明に戻り、要求処理部140は、クライアント端末20からの管理IDを含んだサービス要求に応じて、派生関係DB110を用いたサービスを提供する。要求処理部140が提供するサービスとしては、例えば、サービス要求中の管理IDに対応する文書の最新版を検索するサービスがある。また別の例として、サービス要求中の管理IDに対応する始祖(根)の文書又はその始祖についてのログ情報を提供するサービスを挙げることができる。また、別の例として、その管理IDの来歴、すなわち始祖からその管理IDまでに文書が経てきた操作の履歴(例えば誰がいつどんな操作をしたのかを示す情報のリスト)を提供するサービスもある。また、派生関係DB110に登録された属性項目についての検索条件の指定を受け付け、その検索条件を満足するID付き文書のリストを提供するサービスもある。このサービスに付随して、要求処理部140は、そのリストの中からユーザの所望するID付き文書の選択を受け付け、選択されたID付き文書を提供してもよい。なお、上述の最新版を検索するサービスは、「操作日時が最新である」という検索条件についての検索結果を提供するサービスと捉えることもできる。また、上述の始祖の文書の情報を提供するサービスは、「ノードアドレスが根を示す文書」という条件についての検索結果を提供するサービスと捉えることができる。また、別の例として、派生関係DB110に基づきID付き文書群の派生関係を表す木構造の表示画面を提供し、その表示画面上でユーザの所望するID付き文書の選択を受け付け、選択されたID付き文書を提供するサービスもある。
【0071】
サービス要求は、クライアント端末20に保持されたID付き文書に基づき発せられる。例えば、ユーザがクライアント端末20の文書操作部200によりID付き文書を開いた場合に、文書操作部200が、派生関係を用いたサービスのメニューを提供し、そのメニューの中からユーザが所望するサービスの指定を受け付ける。そして、そのID付き文書の管理IDと指定されたサービスを示すコードとを含むサービス要求を文書管理サーバ10の要求処理部140に送信する。このとき、ユーザ識別情報や操作日時などの属性項目についての検索条件を指定するユーザインタフェース画面を提供し、この画面を介して入力された検索条件を併せて要求処理部140に送信してもよい。また、管理IDと、サービスを示すコード、検索条件以外に、指示を行ったユーザの識別情報や、ユーザの入力した認証情報などといった他の情報を、クライアント端末20から要求処理部140に送信するようにしてもよい。
【0072】
また別の例として、ユーザによるサービスの指定を一つの「操作」と捉え、その「操作」に対して新たに管理IDを付与することも考えられる。この場合、指定されたサービスのコードを操作種別として含み、指定の際に用いられた元のID付き文書の管理IDを親IDとして含んだID付き文書を生成し、このID付き文書をサービス要求として文書管理サーバ10に送ってもよい。この場合、要求処理部140は、受け取ったID付き文書内の操作種別の情報に基づき提供すべきサービスを判定し、同じくID付き文書内の親IDを、派生関係を遡る処理の起点とする。
【0073】
要求処理部140は、クライアント端末20からサービス要求を受けた場合、そのサービス要求中に指定された管理IDを起点に、派生関係DB110に登録された管理IDと親IDとの派生関係が構成する木を走査(トラバース)し、その走査の結果得られた情報を用いて、ユーザから要求されたサービスを実行する。
【0074】
また、本実施形態において、要求処理部140は、アクセス制御部142を含む。アクセス制御部142は、クライアント端末20から特定の文書の提供を要求するサービス要求を受けた場合に、クライアント端末20に対する文書の提供を許可するか否かを決定する。例えば、上述のような、指定された検索条件を満足するID付き文書のリスト又はID付き文書群の派生関係を表す木構造の表示画面を提供し、ユーザの所望するID付き文書の選択を受け付け、選択されたID付き文書を提供するサービスにおいて、アクセス制御部142は、当該ユーザに対して、選択されたID付き文書の提供を許可するか否かを決定する。
【0075】
本実施形態では、例えば、組織階層における上位組織から下位組織に文書が配布され、それぞれの配布先において当該文書が更新される場合に、組織階層において、より下位に位置する組織に配布された文書ほど、アクセスを許可されるユーザが少なくなるように、文書に対するアクセス制御が行われる。このような状況の一例として、企業における人事考課で使用する活動評価文書などの文書の配布及び更新について説明する。このような文書は、まず、上位組織が決定した活動方針などを書き込んだ文書として上位組織の役職者によって作成され、各下位組織の役職者(リーダなど)に配布される。各組織の役職者は、配布された文書に対して、自身の組織の活動目標及び活動内容などを書き込むことでその文書を更新した後、更新後の文書を自身の組織の構成員(メンバ)に展開する。組織の各構成員は、自組織のリーダから展開された文書に対して、個人的な活動目標及び活動内容などを書き込む。このような場合、各組織の活動内容など、各組織のリーダによって文書に書き込まれる内容は、他の組織に対しては開示しない研究テーマなどの情報を含むことがある。また、各個人が文書に書き込む内容は、例えば個人のキャリア設計に関する情報など、その個人の上司に該当する者(その個人の所属組織のリーダなど)以外の者には開示しない情報を含むことがある。
【0076】
以上で説明した例のような状況において、アクセス制御部142は、派生関係DB110及び組織情報DB120に記憶された情報を用いて、ID付き文書のアクセス制御を行う。具体的には、アクセス制御部142は、ID付き文書に対するアクセス要求が以下の(条件1)又は(条件2)に適合するか否かを判定することで、要求者に対してそのID付き文書へのアクセスを許可するか否かを決定する。
【0077】
・(条件1)ID付き文書の派生関係群が示す木構造において、要求者自身の操作によって文書管理サーバ10に登録されたID付き文書を根ノードとする部分木に含まれるID付き文書に対するアクセス要求は許可する。
・(条件2)要求者の所属組織から組織階層を遡った経路上に含まれる組織のいずれかに、要求対象のID付き文書の操作者が所属し、かつ、要求対象のID付き文書が、組織階層における上位組織の役職者から一段階ずつ下位に位置する組織の役職者によって順に更新登録された履歴を有する場合、アクセス要求を許可する。
【0078】
(条件1)は、あるユーザが、自分自身の操作によって文書管理サーバ10に登録されたID付き文書及び当該ID付き文書から派生したID付き文書に対してアクセスできるようにするための条件である。例えば、組織の役職者が更新登録したID付き文書に対して当該組織の構成員が書き込みを行って更新登録したID付き文書について、当該組織の役職者がアクセスできるようにする。
【0079】
(条件2)の前半部の条件は、要求者の所属組織に所属するユーザ又は要求者の所属組織に対して組織階層において直系の上位に位置する組織に所属するユーザが更新登録したID付き文書でなければ、アクセスを許可しないようにするための条件である。この条件によると、例えば、図7に例示する組織階層の組織1Tに所属するユーザは、例えば組織2T及び組織Y部など、組織1Tの直系の上位に位置しない組織に所属するユーザが更新登録したID付き文書に対してはアクセスを許可されない。
【0080】
(条件2)の後半部の条件によると、組織階層における上位組織の役職者から下位組織の役職者へ順次配布及び更新されたID付き文書は正規の展開経路を経ているとみなされ、正規の展開経路を経ていないID付き文書に対するアクセスは許可されない。例えば、図7に例示する組織階層の組織X部の役職者が更新登録したID付き文書について、組織X部の一段階下位の組織1Gの役職者による更新登録を経ることなく、組織1Gの一段階下位の組織1Tの役職者が更新登録を行った結果のID付き文書は、正規の展開経路を経ていないとみなされる。
【0081】
以下、アクセス制御部142が行う処理の詳細な手順について説明する。
【0082】
図10及び図11に、アクセス制御部142において、指定されたID付き文書の提供を許可するか否かを決定する処理の手順の例を示す。
【0083】
アクセス制御部142は、要求処理部140において、ユーザに対するID付き文書の提供の可否を決定する必要が生じた場合に、図10に例示する手順の処理を開始する。
【0084】
図10を参照し、アクセス制御部142は、ステップS10で初期化処理を行う。ステップS10では、注目ユーザID(以下、「注目ユーザu」とも呼ぶ)として文書の提供を要求したユーザのユーザIDが設定され、注目管理ID(以下、「注目文書r」とも呼ぶ)として要求対象のID付き文書の管理IDが設定される。さらに、ステップS10では、「順次性チェック」と呼ばれるフラグの値がtrueに設定される。順次性チェックフラグは、上述の(条件2)を満たすか否かを示すフラグである。
【0085】
次に、ステップS12で、アクセス制御部142は、派生関係DB110を参照し、管理IDとして注目文書rが登録されたレコードを読み出し、当該レコードの操作者の項目に登録されたユーザID(すなわち、注目文書rの操作者のユーザID)を取得する。そして、取得したユーザIDと、ID付き文書の提供要求を行った要求者のユーザIDと、が一致するか否かを判定する。図10に例示するフローチャートにおいては、派生関係DB110から取得される、注目文書rの操作者のユーザIDを「O(r)」と記載し、以下の説明においても、この記載を用いる。ステップS12で、O(r)が要求者のユーザIDと一致する場合は、ステップS24に進む。この場合、上述の(条件1)を満たすことになる。ステップS24では、アクセス制御部142は、要求対象の文書に対するアクセスを許可することを決定し、処理を終了する。
【0086】
ステップS12で、O(r)が要求者のユーザIDと一致しない場合、処理はステップS14に進む。
【0087】
ステップS14では、アクセス制御部142は、組織情報DB120を参照し、注目文書rの操作者のユーザIDであるO(r)に対応付けられた所属組織と、注目ユーザuに対応付けられた所属組織と、を取得し、両者が一致するか否かを判定する。図10に例示するフローチャートでは、組織情報DB120から取得される、特定のユーザID:uidのユーザの所属組織をG(uid)と記載する。以下の説明においても、この記載を用いる。この記載に従って、注目文書rの操作者O(r)の所属組織はG(O(r))と表され、注目ユーザuの所属組織はG(u)と表される。
【0088】
なお、ここで説明する処理の例において、ステップS14における所属組織G(O(r))とG(u)とが一致するか否かの判定は、組織間の包含関係を考慮せずに行われる。例えば、図7に例示する構造を有する組織階層において、組織1Gは、組織1T及び組織2Tに対して一段階上位に位置し、組織1Gは、組織1T及び組織2Tを含んでいると捉えることもできる。しかしながら、ステップS14での所属組織同士の照合においては、組織1Gと、組織1T又は組織2Tと、は一致しないと判定される。また、例えば図9の表におけるuser8のように複数の組織に所属するユーザについては、そのユーザの複数の所属組織のいずれかと、照合対象のユーザの所属組織と、が一致していれば、両ユーザの所属組織は一致すると判定するものとする。
【0089】
ステップS14で、注目文書rの操作者の所属組織G(O(r))と注目ユーザuの所属組織G(u)とが一致すると判定された場合、処理はステップS16に進む。
【0090】
ステップS16で、アクセス制御部142は、組織情報DB120を参照し、注目文書rの操作者O(r)が役職を有する者であるか否かを判定する。例えば、組織情報DB120に図9に例示する表の内容の情報が記憶されている場合、O(r)に対応するレコードの役職者の項目に「○」が登録されていれば、O(r)が役職者であると判定し、「×」が登録されていれば、役職者でないと判定する。
【0091】
ステップS16で、注目文書rの操作者O(r)が役職者であると判定されると、ステップS17に進む。ステップS17では、アクセス制御部142は、ID付き文書の派生関係群が表す木構造において、注目文書rを起点に1つずつID付き文書(ノード)を遡っていき、操作種別の値が「更新」又は「登録」であるノードを最初に発見した時点で、当該ノードの操作者を取得する。派生関係DB110において注目文書rのレコードに親IDとして登録されている管理IDのレコードを取得し、当該レコードに登録されている操作種別の値が「更新」又は「登録」であれば、当該レコードに含まれる操作者の項目に登録されたユーザIDを取得し、操作種別の値が「更新」及び「登録」以外の値であれば、当該レコードに登録されている親IDの値を管理IDとして含むレコードを取得し、そのレコードの操作種別の値が「更新」又は「登録」であるか否かを判定する。このような処理を繰り返すことで、アクセス制御部142は、注目文書rから木構造を遡って最初に発見された操作種別「更新」又は「登録」のノードの管理ID(図10のフローチャートではP(r)と表す)に対応づけられた操作者O(P(r))を取得する。なお、注目文書rが木構造の根ノードに該当する文書である場合、つまり、注目文書rを管理IDとして含むレコードの親IDの値が「なし(null)」である場合、注目文書rを起点に木構造を遡ることはできないので、アクセス制御部142は、操作者O(P(r))の値として、操作者O(P(r))を取得できない旨を示す情報(例えば、「なし(null)」)を設定する。操作者O(P(r))の値が決定されると、アクセス制御部142は、操作者O(P(r))と、注目文書rの操作者O(r)と、が一致するか否かを判定し、一致しなければステップS18に進み、一致すれば、ステップS19で、注目文書rから木構造を遡って最初に発見された操作種別「更新」又は「登録」のノードP(r)を新たな注目文書rとして設定する。ステップS19の後、再びステップS17の判定が行われる。
【0092】
ここで、P(r)は、ID付き文書の派生関係群が表す木構造において、要求対象のID付き文書に対して先祖に該当するID付き文書であると言える。一般に、木構造において、ある注目ノードを起点に根ノードまで木構造を遡った経路上に含まれるノードは、その注目ノードの「先祖」と呼ばれる。
【0093】
ステップS18では、アクセス制御部142は、組織情報DB120を参照し、組織階層において注目ユーザuの所属組織G(u)が最上位に位置する組織であるか否かを判定する。例えば、図8に例示する表のようなデータ内容が組織情報DB120に格納されている場合、アクセス制御部142は、組織情報DB120においてG(u)に対応づけられた上位組織を調べ、上位組織の組織名が登録されていれば、G(u)は組織階層において最上位に位置しないと判定し、上位組織の組織名が登録されていなければ(例えば、図8の組織名「全社」に対応づけて上位組織「なし」が登録されている)、G(u)は組織階層において最上位に位置すると判定する。G(u)が最上位に位置する組織でなければ、ステップS20に進み、最上位に位置する組織であれば、ステップS22に進む。
【0094】
ステップS20では、アクセス制御部142は、組織情報DB120を参照し、注目ユーザuの所属組織に対して組織階層において一段階上位に位置する組織に所属する構成員のうちのいずれかのユーザIDを、新たな注目ユーザuとして設定する。例えば、図8及び図9に例示する表のデータ内容が組織情報DB120に登録されている場合、図9の表を参照して注目ユーザuの所属組織を取得し、次に、図8の表を参照して注目ユーザuの所属組織に対応付けられた上位組織を取得する。そして、再び図9の表を参照し、所属組織の項目に取得した上位組織を含むレコードのうちの1つに含まれるユーザIDを取得する。図10に例示するフローチャートでは、この一連の処理によって得られる、注目ユーザuの所属組織に対して組織階層において一段階上位の組織に所属する者をSp(u)と記載し、以下の説明においても、この記載を用いる。
【0095】
ステップS16で、注目文書rの操作者O(r)が役職者でないと判定されると、アクセス制御部142は、図11に例示する手順の処理を行う。図11に示す処理については後述する。
【0096】
ステップS20の後、ステップS21で、アクセス制御部142は、注目文書rが、ID付き文書の派生関係群によって表される木構造において根ノードに該当するか否かを判定する。派生関係DB110に記憶されたレコードのうち、注目文書rを管理IDとして含むレコードの親IDの値が「なし(null)」であれば、木構造の根ノードであると判定され、親IDとして他の管理IDの値が登録されていれば根ノードではないと判定される。例えば、図5に例示するデータ内容が派生関係DB110に登録されている場合、親IDの値が「なし」である管理ID"Doc5"のノードが派生関係の木構造(図6)の根ノードに該当する。
【0097】
ステップS21で注目文書rが根ノードであると判定されると、ステップS22で、順次性チェックフラグがfalseに設定されているか否かが判定される。順次性チェックフラグがfalseに設定されていなければ、アクセス許可(ステップS24)され、falseに設定されていれば、アクセスは許可されず、エラー(ステップS26)となる。
【0098】
ステップS21で、注目文書rが根ノードではないと判定されると、ステップS28に進む。ステップS28で、アクセス制御部142は、ステップS17において説明したのと同様の処理を行って、ID付き文書の派生関係群が表す木構造を注目文書rから遡って最初に発見された操作種別「更新」又は「登録」のノードの管理ID(P(r))を取得し、取得した管理ID(P(r))を新たな注目文書rとする。その後、処理はステップS12に戻る。
【0099】
以上、ステップS14で、注目文書rの操作者の所属組織G(O(r))と注目ユーザuの所属組織G(u)とが一致すると判定された場合の処理手順の例について説明した。以下、ステップS14で、G(O(r))とG(u)とが一致しないと判定された場合の処理手順の例について説明する。この場合、ステップS14の判定の結果、処理はステップS30に進む。
【0100】
ステップS30では、順次性チェックフラグの値がfalseに設定されているか否かを判定する。falseに設定されていれば、ステップS38に進み、falseに設定されていなければ、ステップS32に進む。ステップS10の初期化処理において、順次性チェックフラグの値はtrueに設定されるので、図10に例示するフローチャートの処理を開始してから、初めてステップS30の判定が行われる場合は、No判定されてステップS32に進む。
【0101】
ステップS32では、注目文書rが要求対象のID付き文書の管理IDであるか否かを判定する。注目文書rが要求対象のID付き文書の管理IDであれば、ステップS34に進み、注目文書rが要求対象のID付き文書の管理IDでなければ、ステップS38に進む。ステップS10の初期化処理の後、ステップS12、ステップS14、及びステップS30のすべてにおいてNo判定されてステップS32の判定が行われる場合、注目文書rの値は、初期化処理(ステップS10)で要求対象のID付き文書の管理IDに設定されたまま変更されないので、ステップS32では、Yes判定されてステップS34に進む。一方、図10に例示する手順の処理が開始されてから、一度でもステップS28において注目文書rの値が変更された後にステップS32の判定が行われると、No判定されてステップS38に進む。
【0102】
ステップS34で、アクセス制御部142は、組織情報DB120を参照し、組織階層において注目ユーザuの所属組織G(u)が最上位に位置する組織であるか否かを判定する。ステップS34の判定処理は、上記で説明したステップS18の判定処理と同様である。G(u)が最上位に位置する組織でなければ、ステップS36に進み、最上位に位置する組織であれば、ステップS38に進む。
【0103】
注目ユーザuの所属組織に対して上位組織が存在する場合、ステップS36で、アクセス制御部142は、注目ユーザuの所属組織に対して組織階層において一段階上位の組織に所属する者のユーザIDを新たな注目ユーザuとして設定する。ステップS36の後、処理はステップS14に戻る。
【0104】
ステップS30でYes判定、ステップS32でNo判定、又はステップS34でYes判定された場合、ステップS38で、順次性チェックフラグの値がfalseに設定される。ステップS38の後、処理はステップS21に進む。
【0105】
ステップS14,S30,S32,S34,S36を含む処理ループでは、要求者の所属組織を起点に最上位の組織まで組織階層を遡った経路上に含まれる組織のいずれかに、要求対象のID付き文書の操作者が所属するか否か、つまり、上述の(条件2)の前半部の条件を満たすか否かが判定される。
【0106】
以上で説明した図10に例示する手順では、要求対象のID付き文書の管理IDを起点にID付き文書の派生関係群が表す木構造を遡る(ステップS19,S28)ことで得られるID付き文書の操作者の情報と、要求者のユーザIDを用いて組織階層を遡る(ステップS20,S36)ことで得られる組織の構成員の情報と、を照合する(ステップS14)ことで、組織階層における要求者の位置づけと要求対象のID付き文書の流通経路とが適合するか否かを確認する。
【0107】
図11を参照し、図10のステップS16で、注目文書rの操作者が役職者でないと判定された場合に行われる処理手順の例について説明する。注目文書rの操作者が役職者でないと判定された場合、上述の(条件2)の後半部の条件(要求対象のID付き文書が、組織階層における上位組織の役職者から一段階ずつ下位に位置する組織の役職者によって順に更新登録された履歴を有すること)を満たさない。よって、図11に例示する手順の処理では、上述の(条件1)を満たすか否かが判定される。
【0108】
図10のステップS16でNo判定されると、図11のステップS40に進む。ステップS40で、アクセス制御部142は、図10を参照して説明したステップS21の処理と同様に、注目文書rがID付き文書の派生関係群が表す木構造における根ノードに該当するか否かを判定する。注目文書rが根ノードである場合、ステップS48のエラー処理が行われ、処理は終了する。
【0109】
注目文書rが根ノードでない場合、ステップS42に進み、図10を参照して説明したステップS28の処理と同様に、注目文書rから派生関係群の木構造を遡って最初に発見される、操作種別の値が「更新」又は「登録」であるノードの管理IDが新たな注目文書rとされる。次に、ステップS44で、注目文書rの操作者O(r)と、要求者のユーザIDと、が一致するか否かが判定され、一致すればステップS46に進み、一致しなければステップS40に戻る。ステップS46で、アクセス制御部142は、要求対象のID付き文書に対するアクセスを許可し、処理を終了する。
【0110】
以上、図10及び図11に例示する手順の処理により、アクセス制御部142がアクセス許可した(ステップS24,S46)場合、要求処理部140は、要求対象のID付き文書に対応する文書内容を文書DB100から取得し、取得した文書内容をクライアント端末20に対して送信する。一方、図10及び図11に例示する手順の処理により、アクセス制御部142がエラーとした(ステップS26,S48)場合、要求処理部140は、要求対象のID付き文書に対応する文書内容をクライアント端末20に送信しない。エラーの場合、例えば、ID付き文書に対するアクセスが許可されない旨を示すエラーメッセージをクライアント端末20の表示部に表示させる。
【0111】
以下、図5に例示する表のデータ内容が派生関係DB110に登録され、図8及び図9に例示する表のデータ内容が組織情報DB120に登録されている場合に、図10及び図11に例示する手順の処理によるアクセス制御の具体例について説明する。
【0112】
<具体例1>
上述の(条件1)を満たす場合の例として、図5及び図6を参照し、ユーザID"user5"を有するユーザが、管理ID"Doc7"のID付き文書の提供を要求した場合のアクセス制御部142の処理について説明する。この場合、図10のステップS10で、注目ユーザuはuser5、注目文書rは"Doc7"に設定される。図5の表において、管理ID"Doc7"のレコードには操作者としてuser5が登録されており、図10のステップS12で、注目文書r"Doc7"の操作者はuser5であり、注目ユーザuと一致するため、アクセスが許可される(ステップS24)。
【0113】
<具体例2>
上述の(条件1)を満たす他の例として、図5及び図6を参照し、ユーザID"user3"のユーザが、管理ID"Doc7"のID付き文書の提供を要求した場合のアクセス制御部142の処理について説明する。この場合、図10のステップS10で、注目ユーザuはuser3、注目文書rは"Doc7"に設定される。ステップS12で、注目文書r"Doc7"の操作者はuser5であり、注目ユーザuであるuser3と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc7"の操作者であるuser5の所属組織1Tと、注目ユーザuであるuser3の所属組織1Tと、が一致するので、処理はステップS16に進む。注目文書r"Doc7"の操作者であるuser5は、役職者ではない(図9参照)ので、ステップS16の判定の結果、処理は図11のステップS40に進む。図11のステップS40で、注目文書r"Doc7"は文書の派生関係の木構造の根ノードではないので、ステップS42に進み、注目文書r"Doc7"を起点に木構造を遡って最初に発見される「更新」操作のノードの管理ID"Doc4"が新たな注目文書rとして設定される。次に、ステップS44で、この新たな注目文書r"Doc4"の操作者はuser3であり、要求者のユーザIDであるuser3と一致するので、アクセスが許可される(ステップS46)。
【0114】
<具体例3>
(条件2)を満たす例として、ユーザID"user5"のユーザが、ID付き文書"Doc4"の提供を要求した場合について説明する。まず、図10のステップS10で、注目ユーザuはuser5、注目文書rは"Doc4"に設定される。ステップS12で、注目文書r"Doc4"の操作者はuser3であり、注目ユーザuであるuser5と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc4"の操作者user3の所属組織1Tと、注目ユーザuであるuser5の所属組織1Tと、が一致するので、処理はステップS16に進む。注目文書r"Doc4"の操作者であるuser3は、役職者である(図9参照)ので、ステップS17に進む。注目文書r"Doc4"の操作者であるuser3と、注目文書r"Doc4"を起点に木構造を遡って最初に発見される「更新」ノード"Doc3"の操作者であるuser2と、は一致しないので、ステップS17の判定の結果、ステップS18に進む。注目ユーザuであるuser5の所属組織1Tは最上位組織ではないので、ステップS18の判定の結果、ステップS20に進み、user5の所属組織1Tに対して組織階層において一段階上位に位置する組織1G(図7及び図8参照)に所属する者であるuser2(図9参照)が新たな注目ユーザuとして設定される。注目文書r"Doc4"は、文書の派生関係の木構造の根ノードではないので、ステップS21の判定の結果、ステップS28に進み、注目文書r"Doc4"を起点に木構造を遡って最初に発見される「更新」ノードの管理ID"Doc3"が新たな注目文書rとして設定される。
【0115】
その後、ステップS12で、注目文書r"Doc3"の操作者であるuser2と、要求者であるuser5と、が一致しないので、再びステップS14の判定が行われる。ステップS14では、現在の注目文書r"Doc3"の操作者であるuser2の所属組織1Gと、現在の注目ユーザuであるuser2の所属組織1Gと、が一致するので、ステップS16に進む。さらに、注目文書r"Doc3"の操作者であるuser2は役職者であるので(図9参照)、ステップS17に進む。user2は、注目文書r"Doc3"を起点に木構造を遡って最初に発見される「登録」ノード"Doc1"の操作者であるuser1と一致しないので、ステップS17の判定の結果、ステップS18に進む。ステップS18で、注目ユーザu(user2)の所属組織1Gは最上位組織ではないので、判定の結果ステップS20に進み、組織1Gに対して組織階層において一段階上位の組織X部(図7及び図8参照)に所属する者であるuser1(図9参照)が新たな注目ユーザuとして設定される。次に、現在の注目文書r"Doc3"は、文書の派生関係の木構造の根ノードではないので(ステップS21でNo判定)、注目文書r"Doc3"から木構造を遡って最初に発見される「登録」ノードの管理ID"Doc1"が新たな注目文書rとして設定される(ステップS28)。
【0116】
さらに、ステップS12で、注目文書r"Doc1"の操作者であるuser1と、要求者であるuser5と、が一致しないのでステップS14に進み、現在の注目文書r"Doc1"の操作者であるuser1の所属組織X部と、現在の注目ユーザuであるuser1の所属組織X部と、が一致するので、ステップS16に進む。注目文書r"Doc1"の操作者であるuser1は役職者であるので(図9参照)、ステップS17に進む。注目文書r"Doc1"は木構造の根ノードであり、注目文書r"Doc1"を起点に遡って発見される「更新」又は「登録」ノードP("Doc1")は存在しないため、ステップS17でNo判定され、ステップS18に進む。ステップS18では、user1の所属組織X部は最上位組織ではないためNo判定されてステップS20に進み、user1の所属組織X部の上位組織に所属するユーザのユーザIDが注目ユーザuとして設定され、ステップS21に進む。ステップS21で、現在の注目文書r"Doc1"は根ノードであるのでステップS22に進む。以上で説明した本例の処理では、順次性チェックフラグの値は、初期化処理(ステップS10)でtrueに設定されたまま変更されないので、ステップS22の判定の結果、ステップS24に進み、要求対象のID付き文書"Doc4"に対するアクセスが許可される。
【0117】
<具体例4>
正規の展開経路を経ていないID付き文書に対するアクセス要求であることから上述の(条件2)を満たさない例として、ユーザID"user5"のユーザが、ID付き文書"Doc13"の提供を要求した場合について説明する。ID付き文書"Doc13"は、user3が、組織階層において自己の所属組織1Tに対して二段階上位に位置する組織X部に所属するuser1によって更新登録されたID付き文書"Doc1"を更新した結果の文書である。つまり、ID付き文書"Doc13"は、user3の所属組織1Tに対して一段階上位の組織1Gに所属するuser2による更新操作を経ることなく生成された文書である。このように、ID付き文書"Doc13"は、上述の(条件2)を満たさないので、ID付き文書"Doc13"に対するアクセス要求は許可されない。以下、この例の場合のアクセス制御部142の処理について説明する。
【0118】
図10のステップS10で、注目ユーザuはuser5、注目文書rは"Doc13"に設定される。次に、ステップS12で、注目文書r"Doc13"の操作者はuser3であり、注目ユーザuであるuser5と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc13"の操作者であるuser3の所属組織1Tと、注目ユーザuであるuser5の所属組織1Tと、が一致するので、処理はステップS16に進み、注目文書r"Doc13"の操作者user3は役職者であるので、ステップS17に進む。注目文書r"Doc13"の操作者user3と、注目文書r"Doc13"を起点に木構造を遡って最初に発見される「登録」ノード"Doc1"の操作者であるuser1と、は一致しないため、ステップS17の判定の結果、ステップS18に進む。注目ユーザuであるuser5の所属組織1Tは、最上位組織ではないので、ステップS18の判定の結果ステップS20に進み、user5の所属組織1Tに対して組織階層において一段階上位に位置する組織1G(図7及び図8参照)に所属する者であるuser2(図9参照)が新たな注目ユーザuとして設定される。次に、注目文書r"Doc13"は、文書の派生関係の木構造の根ノードではないので、ステップS21の判定の結果、ステップS28に進み、注目文書r"Doc13"を起点に木構造を遡って最初に発見される「登録」ノードの管理ID"Doc1"が新たな注目文書rとして設定される。
【0119】
その後、ステップS12で、注目文書r"Doc1"の操作者であるuser1と、要求者であるuser5と、が一致しないので、再びステップS14の判定が行われる。現在の注目文書r"Doc1"の操作者であるuser1の所属組織X部と、現在の注目ユーザuであるuser2の所属組織1Gと、が一致しないため、ステップS14の判定の結果、ステップS30に進む。この時点で、順次性チェックフラグの値は、ステップS10でtrueに設定されたまま変更されていないので、ステップS30の判定の結果、ステップS32に進む。現在の注目文書r"Doc1"は、要求対象のID付き文書の管理ID"Doc13"と一致しないので、処理は、ステップS32からステップS38に進み、順次性チェックフラグの値がfalseに設定される。その後、注目文書r"Doc1"は、派生関係の木構造の根ノードであるので、ステップS21からステップS22に進む。順次性チェックフラグの値がfalseに設定されているため、ステップS22の判定の結果ステップS26のエラー処理が行われ、ID付き文書"Doc13"に対するアクセスは許可されない。
【0120】
<具体例5>
正規の展開経路を経ていない文書に対するアクセス要求であることから(条件2)を満たさない他の例として、ユーザID"user7"のユーザが、ID付き文書"Doc10"の提供を要求した場合について説明する。ID付き文書"Doc10"は、user4が、自己の所属組織2Tと異なる組織であって組織階層において同じ階層に位置する(上位下位の関係にない)組織1Tに所属するuser3によって更新登録されたID付き文書"Doc4"に対して更新操作を行った結果の文書である。よって、ID付き文書"Doc10"の操作者であるuser4は、組織2Tの役職者ではあるが、ID付き文書"Doc10"は、正規の展開経路を経ているとは言えない。したがって、user4と同じ組織2Tに所属するuser7が要求者であっても、ID付き文書"Doc10"に対するアクセスは許可されない。以下、この例のアクセス制御部142における処理を説明する。
【0121】
図10のステップS10で、注目ユーザuはuser7、注目文書rは"Doc10"に設定される。次に、ステップS12で、注目文書r"Doc10"の操作者はuser4であり、注目ユーザuであるuser7と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc10"の操作者であるuser4の所属組織2Tと、注目ユーザuであるuser7の所属組織2Tと、が一致するので、処理はステップS16に進み、注目文書r"Doc10"の操作者であるuser4は役職者であるので、ステップS17に進む。注目文書r"Doc10"の操作者であるuser4と、注目文書r"Doc10"を起点に木構造を遡って最初に発見される「更新」ノード"Doc4"の操作者であるuser3と、は一致しないので、ステップS17の判定の結果、ステップS18に進む。注目ユーザuであるuser7の所属組織2Tは最上位組織ではないので、ステップS18の判定の結果、ステップS20へ進み、user7の所属組織2Tに対して組織階層において一段階上位に位置する組織1G(図7及び図8参照)に所属する者であるuser2(図9参照)が新たな注目ユーザuとして設定される。
【0122】
次に、注目文書r"Doc10"は、文書の派生関係の木構造の根ノードではないので、ステップS21の判定の結果、ステップS28に進み、注目文書r"Doc10"を起点に木構造を遡って最初に発見される「更新」ノードの管理ID"Doc4"が新たな注目文書rとして設定される。
【0123】
その後、ステップS12で、注目文書r"Doc4"の操作者であるuser3と、要求者であるuser7と、が一致しないので、再びステップS14の判定が行われる。現在の注目文書r"Doc4"の操作者であるuser3の所属組織1Tと、現在の注目ユーザuであるuser2の所属組織1Gと、が一致しないため、ステップS14の判定の結果、ステップS30に進む。この時点で、順次性チェックフラグの値は、ステップS10でtrueに設定されたまま変更されていないので、ステップS30の判定の結果、ステップS32に進む。現在の注目文書r"Doc4"は、要求対象のID付き文書の管理ID"Doc10"と一致しないので、処理は、ステップS32からステップS38に進み、順次性チェックフラグの値がfalseに設定される。
【0124】
その後、注目文書r"Doc4"は根ノードでないので、"Doc4"から木構造を遡って最初に発見される「更新」ノード"Doc3"が新たな注目文書rとして設定され(ステップS21,S28)、ステップS12以降の処理が繰り返される。以降の繰り返し処理において、注目文書r"Doc3"の操作者、及び、"Doc3"の次に注目文書rとして設定される"Doc1"の操作者は、それぞれ、user2及びuser1であり、要求者であるuser7とは一致しないので、ステップS12でYes判定されてアクセス許可(ステップS24)されることはない。よって、派生関係の木構造の根ノードである"Doc1"が注目文書rとして設定された後、処理が進むと、ステップS22で、順次性チェックフラグの値の判定が行われる。この時点で、順次性チェックフラグの値は、上述のように、ステップS38でfalseに設定されているので、ステップS22の判定の結果、ステップS26のエラー処理に進み、ID付き文書"Doc10"に対するアクセスは許可されない。
【0125】
<具体例6>
要求者の所属組織と異なる組織であって要求者の所属組織と組織階層において同じ階層に位置する組織に所属するユーザによって更新登録されたID付き文書に対するアクセス制御の例について説明する。この場合、上述の(条件2)の前半部の条件(要求者の所属組織から組織階層を遡った経路上に含まれる組織のいずれかに、要求対象のID付き文書の操作者が所属すること)を満たさないので、アクセス許可されない。例えば、組織2Tに所属するuser7が、組織1Tに所属するuser3が更新登録したID付き文書"Doc4"の提供を要求した場合、要求者user7の所属組織2Tを起点に組織階層を遡った経路上に含まれる組織(2T,1G,X部,…,全社)の中に、要求対象の文書であるID付き文書"Doc4"の操作者user3の所属組織1Tが含まれないので、アクセス許可されない。以下、この例におけるアクセス制御部142の処理について説明する。
【0126】
まず、図10のステップS10で、注目ユーザuはuser7、注目文書rは"Doc4"に設定される。次に、ステップS12で、注目文書r"Doc4"の操作者はuser3であり、注目ユーザuであるuser7と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc4"の操作者であるuser3の所属組織1Tと、注目ユーザuであるuser7の所属組織2Tと、が一致しないので、判定の結果ステップS30に進む。この時点で、順次性チェックフラグの値は、ステップS10でtrueに設定されたまま変更されていないので、ステップS30の判定の結果、ステップS32に進む。また、注目文書r"Doc4"は、要求対象のID付き文書"Doc4"であるので、ステップS32の判定の結果、ステップS34に進む。ステップS34で、注目ユーザuであるuser7の所属組織2Tは、組織階層における最上位の組織ではない(図7及び図8参照)ので、処理はステップS36に進む。ステップS36において、注目ユーザuであるuser7の所属組織2Tに対して一段階上位の組織1Gに所属する者であるuser2(図9参照)が新たな注目ユーザuとして設定される。
【0127】
ステップS36の後、ステップS14に戻り、ステップS14で、注目文書r"Doc4"の操作者であるuser3の所属組織1Tと、注目ユーザuであるuser2の所属組織1Gと、が一致しないので、判定の結果、ステップS30に進む。ステップS30で、順次性チェックフラグの値はtrueであるので、ステップS32に進む。注目文書r"Doc4"は、要求対象のID付き文書"Doc4"と一致するので、ステップS34に進む。ステップS34で、注目ユーザuであるuser2の所属組織1Gは、組織階層における最上位の組織ではない(図7及び図8参照)ので、ステップS36に進み、注目ユーザuであるuser2の所属組織1Gに対して一段階上位組織であるX部に所属するuser1が新たな注目ユーザuとして設定される。その後、さらに、ステップS14以降の処理を繰り返す。この繰り返し処理において、注目文書r"Doc4"の操作者であるuser3の所属組織1Tと、注目ユーザuであるuser1の所属組織X部から組織階層を遡った経路上に含まれる組織と、が一致することはないので、ステップS14でYesに進むことはない。したがって、ステップS14,S30〜S36の処理ループが繰り返されて、組織階層において注目ユーザuの所属組織を遡っていき、組織階層における最上位組織に所属する者が注目ユーザuとして設定された後、ステップS34の判定が行われると、処理はステップS38に進み、順次性チェックフラグの値がfalseに設定される。この間、注目文書rは、要求対象のID付き文書"Doc4"に設定されたまま変更されない。
【0128】
ステップS38の後、ステップS21に進み、注目文書r"Doc4"は根ノードでないのでステップS28に進み、ステップS12以降の処理が繰り返される。そして、派生関係の木構造の根ノードである"Doc1"が注目文書rとして設定された後、ステップS21の判定が行われると、ステップS22において、順次性チェックフラグの値の判定が行われる。順次性チェックフラグの値は、上述のようにfalseに設定されているので、ステップS22の判定の結果、ステップS26のエラー処理に進み、user7によるID付き文書"Doc4"に対するアクセスは許可されない。
【0129】
<具体例7>
要求者と同じ組織に所属する他のユーザが更新登録した文書に対するアクセス要求があった場合のアクセス制御について説明する。上述の(条件1)及び(条件2)を考慮すると、役職者でない者が更新登録した文書については、要求者が更新登録した文書から派生した文書でない限りアクセス許可されない。例えば、組織1Tに所属するuser6が、同じ組織1Tに所属するuser5によって更新登録されたID付き文書"Doc7"の提供を要求した場合について説明する。
【0130】
図10のステップS10で、注目ユーザuはuser6、注目文書rは"Doc7"に設定される。次に、ステップS12で、注目文書r"Doc7"の操作者はuser5であり、注目ユーザuであるuser6と一致しないので、ステップS14に進む。ステップS14で、組織情報DB120(図9)を参照すると、注目文書r"Doc7"の操作者であるuser5の所属組織1Tと、注目ユーザuであるuser6の所属組織1Tと、が一致するので、処理はステップS16に進み、注目文書r"Doc7"の操作者user5は役職者ではないので、処理は、図11のステップS40に進む。図11に例示する手順の処理では、注目文書r"Doc7"を起点に、図6に示す派生関係の木構造を根ノードまで遡った経路に含まれる「更新」操作ノード("Doc7","Doc4","Doc3","Doc1")の中に、その操作者が要求者であるuser6と一致するノードが存在しないので、ステップS48のエラー処理が行われ、文書に対するアクセスは許可されない。
【0131】
<具体例8>
最後の具体例として、複数の組織に所属するユーザが更新登録したID付き文書に関するアクセス制御について説明する。例えば、ID付き文書"Doc12"は、組織2Tの役職者であるuser4によって更新登録されたID付き文書"Doc5"に対して、組織1T及び2Tの業務を兼任するuser8が更新を行った結果の文書である。つまり、ID付き文書"Doc12"は、user8が、自己の一方の所属組織2Tにおける業務として更新登録を行った文書である。このID付き文書"Doc12"に対して、user8の他方の所属組織1Tの役職者であるuser3がアクセス要求を行った場合のアクセス制御部142の処理について説明する。
【0132】
まず、図10のステップS10において、注目ユーザuはuser3、注目文書rは"Doc12"に設定される。次に、ステップS12の判定では、注目文書r"Doc12"の操作者はuser8で、要求者であるuser3と一致しないので、ステップS14に進む。次に、注目文書r"Doc12"の操作者であるuser8の所属組織1T,2Tの一方と、注目ユーザuであるuser3の所属組織1Tと、が一致し(ステップS14でYes判定)、注目文書r"Doc12"の操作者であるuser8は、役職者ではない(図9参照)ので、処理は図11のステップS40に進む。ここで、図6に示す派生関係を参照すると、要求対象のID付き文書"Doc12"は、要求者であるuser3が更新登録したID付き文書から派生した文書ではないので、図11に例示する手順の処理を実行すると、ステップS48のエラー処理が行われ、user3のID付き文書"Doc12"に対するアクセスは許可されない。
【0133】
また、例えば、user8が組織2Tにおいて役職者であった場合、図11に例示する処理が行われることはなく、ステップS16でYes判定されてステップS17以降の処理が行われるが、要求者user3の所属組織1Tを起点に組織階層を遡った経路上に含まれる組織(1T,1G,X部,…,全社)の中に、要求対象の文書であるID付き文書"Doc12"の操作者user8の所属組織2Tが含まれない。したがって、上述の<具体例6>の場合と同様、ステップS30〜S36を含む処理ループが繰り返された結果、ステップS38において順次性チェックフラグの値がfalseに設定されるため、アクセス許可されない。
【0134】
以上より、user3は、user8に対して組織1Tにおいて上司に該当する者であるが、組織1Tと異なる組織2Tの業務に関してuser8が更新登録した文書についてはアクセス許可されない。
【0135】
以上、図10,図11及び<具体例1>−<具体例8>を参照して説明した処理の例において、文書の派生関係において、注目文書rとなり得るのは、操作種別の値が「登録」又は「更新」である文書だけである。したがって、クライアント端末20は、ID付き文書が新たに作成された場合(初期登録)、又は、ID付き文書に対して「更新」操作(ID付き文書の文書内容に変更が生じるような操作)が行われた場合に、新たなID付き文書を生成して文書管理サーバ10に登録し、「閲覧」操作又は「取得」操作など「更新」操作以外の操作(ID付き文書の文書内容に変更が生じない操作)が行われた場合は、新たなID付き文書の生成及び文書管理サーバ10への登録を行わない構成としてもよい。この場合、派生関係DB110に登録されるレコードは、操作種別の値が「登録」又は「更新」であるレコードのみとなる。例えば、図5に示す表で表される時系列で文書に対して操作が行われた場合に、クライアント端末20が「登録」操作又は「更新」操作のみについてID付き文書の生成及び登録を行う場合、図5に示す表から、管理ID"Doc2"のレコード(操作種別「閲覧」)、及び管理ID"Doc6","Doc8"のレコード(操作種別「取得」)を除いたレコードを含む表のデータ内容が派生関係DB110に登録される。そして、図5に示す表において、管理ID"Doc2","Doc6","Doc8"をそれぞれ親IDとする操作種別「更新」のレコードである管理ID"Doc3","Doc7","Doc9"の親IDの値としては、それぞれの「更新」操作において変更される前の文書内容を含むID付き文書の管理IDの値が登録される。つまり、管理ID"Doc3"のレコードの親IDは"Doc1"、管理ID"Doc7"及び"Doc9"のレコードの親IDは"Doc4"となる。
【0136】
「登録」操作又は「更新」操作のみについてID付き文書の生成及び文書管理サーバ10への登録が行われる場合、アクセス制御部142は、図10及び図11に例示する処理において、注目文書rから派生関係の木構造を遡って最初に発見した「更新」又は「登録」ノードの管理ID(P(r))を取得する際(図10のステップS17,S28及び図11のステップS42)、派生関係DB110内の注目文書rのレコードに登録された親IDをP(r)として取得すればよい。
【0137】
また、以上で説明した処理の例では、図10のステップS20又は図11のステップS40で、注目文書rが木構造の根ノードに該当するか否かの判定が行われる。他の処理の例では、このノードに到達したらそれ以上は木構造を遡らない、とするノードを予め設定しておき、図10のステップS20及び図11のステップS40の判定において、注目文書rが上述のように木構造を遡る終点として設定されたノードであるか否かを判定してもよい。この場合、例えば、派生関係DB110において、終点として設定されたノードの管理IDに対応するレコードに、その旨を示す情報を登録しておけばよい。
【0138】
また、以上で説明した処理の例では、図10のステップS34で、注目ユーザuの所属組織が組織階層において最上位に位置するか否かを判定する。他の処理の例では、この組織に到達したらそれ以上は組織階層を遡らない、とする組織を予め設定しておき、図10のステップS40の判定において、注目ユーザuの所属組織が上述のように組織階層を遡る終点として設定された組織であるか否かを判定してもよい。この例の場合、ステップS30,S32,S34,S36を含む処理ループにおいて、要求者の所属組織から、終点として設定された組織まで組織階層を遡った経路上に含まれる組織のいずれかに、要求対象のID付き文書の操作者が所属するか否かを判定することになる。
【0139】
さらに他の処理の例として、ID付き文書のログ情報316の中に、当該ID付き文書300が公開(共有)対象であるか否かを示す「公開」属性を組み込むこともできる。例えば公開対象とするID付き文書の「公開」属性値を「1」とし、公開対象としないID付き文書の「公開」属性値は「0」とし、文書管理サーバ10の派生関係DB110の各管理IDに対応するレコードに「公開」属性値を登録する。この「公開」属性値は、ユーザがクライアント端末20においてID付き文書に対して操作を行う時に指定できるようにしておけばよい。「公開」属性値を用いる場合、アクセス制御部142は、例えば、図10に例示する手順の処理を開始する前に、まず、派生関係DB110内の要求対象文書に対応するレコードに含まれる「公開」属性値を取得する。そして、取得した「公開」属性値が「1」であれば、図10に例示する処理を開始してアクセスの可否を決定し、「公開」属性値が「0」であれば、図10に例示する処理を行うことなく、当該文書を生成するための操作を行った操作者や管理者等の特権的なユーザ以外には、アクセスを許可しないようにすることができる。
【0140】
また、企業などの団体においては、人事異動などにより各組織の構成員及び役職者が変更されたり、企業組織改変などにより組織階層の構成が変更されたりする場合がある。このような組織の変動に対応するため、組織情報DB120に、組織において生じた変更についての情報を登録しておくことができる。例えば、各組織の構成員に変更があった場合、変更前及び変更後の構成員の情報(例えば、図9のようなデータ内容)を組織情報DB120に登録しておき、さらに、変更が行われた時刻を組織情報DB120に登録する。組織階層の構成が変更された場合は、変更前及び変更後の組織階層の構造を表す情報(例えば、図8のようなデータ内容)と、変更前及び変更後の組織構成それぞれにおける各組織の構成員の情報と、その変更が行われた時刻と、を組織情報DB120に登録しておく。そして、アクセス制御部142における処理では、処理対象のID付き文書の操作日時を派生関係DB110から取得し、取得した操作日時が、組織情報DB120に登録された変更時刻以前であれば、変更前の組織階層及び構成員の情報を用い、取得した操作日時が組織情報の変更時刻以後であれば、変更後の組織階層及び構成員の情報を用いるようにすればよい。組織階層又は構成員について複数回の変更が行われた場合、例えば、組織階層又は構成員の情報とその情報が有効であった期間とを対応づける情報を組織情報DB120に登録しておき、アクセス制御部142での処理において、処理対象のID付き文書の操作日時を含む期間に対応する組織階層又は構成員の情報を組織情報DB120から取得して用いるようにすればよい。
【0141】
以上に例示した例では、管理IDの発行は各クライアント端末20で行われていたが、この代わりに文書管理サーバ10が管理IDを発行してもよい。この場合、クライアント端末20は、ID付き文書に対して操作を行った場合、操作前のID付き文書内の管理IDを親ID314として含み、更にその操作についてのログ情報316と操作後の文書内容320とを含み、管理ID312は空欄の文書データを生成し、文書管理サーバ10に送る。文書管理サーバ10は、受け取った文書データに対して新たな管理IDを付与し、この管理IDとその文書データとに含まれる情報を、文書DB100及び派生関係DB110に登録する。また、文書管理サーバ10は、付与した管理IDを当該文書データにセットすることによりID付き文書を生成し、これをクライアント端末20に返す。クライアント端末20は、操作前のID付き文書を、受け取ったID付き文書に置き換える。このように、文書管理サーバ10が管理IDを付与する構成でも、上述の各例の処理は同様に実行できる。
【0142】
また以上の例では、管理ID312、親ID314、ログ情報316、及び文書内容320を含んだID付き文書300がクライアント端末20に保存されたが、この代わりに、クライアント端末20は管理IDしか持たず、その他の情報は文書管理サーバ10に保存されるようにしてもよい。この場合、クライアント端末20で文書を操作する場合、その文書に対応する管理IDを文書管理サーバ10に送り、文書管理サーバ10からその文書を取得する。また、別の例として、クライアント端末20が保持するID付き文書300の中には管理ID312と文書内容320とが含まれ、親ID314及びログ情報316は含まれないようにしても良い。この場合、サーバがその管理ID312に対応づけて親ID314とログ情報316を持つようにすれば良い。
【0143】
ここで、文書管理サーバ10が管理IDを付与する場合は、その取得の操作に対応する管理IDを文書管理サーバ10が生成し、その管理IDと文書とを対応づけてクライアント端末20に提供するとともに、その取得操作についてのログ情報(操作時刻や操作者など)と、元の管理ID(すなわち親ID)と、付与した管理IDとを派生関係DB110に記録する。クライアント端末20は、文書管理サーバ10に送信した管理IDを、受け取った管理IDに置き換えると共に、受け取った文書を開く。ユーザは、開かれた文書に対して閲覧や編集などの操作を行う。クライアント端末20は、文書に対する操作が完了すると、操作後の文書を管理ID及び当該操作についてのログ情報と共に文書管理サーバ10に送る。文書管理サーバ10は、受け取った文書に対して新たな管理IDを付与して派生関係DB110に登録し、受け取った管理IDを親IDとして派生関係DB110に登録する。また、受け取ったログ情報及び操作後の文書を、派生関係DB110及び文書DB100に登録する。そして、文書管理サーバ10は、新たに付与した管理IDをクライアント端末20に返す。クライアント端末20は、元の管理IDを受け取った管理IDで置き換える。以上のような処理により、操作間の派生関係が文書管理サーバ10に蓄積されることになる。
【0144】
一方、クライアント端末20が管理IDを付与する構成の場合は、文書管理サーバ10は、クライアント端末20から受け取った管理IDに対応する文書をクライアントに返せばよい。クライアント端末20は受け取った文書を開き、ユーザがその文書を操作する。操作の完了後、クライアント端末20はその操作結果の文書に対して新たな管理IDを付与し、この管理IDを含んだ前述のID付き文書と同様の情報を、文書管理サーバ10に送る。そして、クライアント端末20は、そのID付き文書のうち管理IDのみを保存し、その他の情報を削除する。
【0145】
以上に例示したシステムにおける文書管理サーバ10は、典型的には、汎用のコンピュータにて上述の文書管理サーバの各部の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図12に示すように、CPU(中央演算装置)40、メモリ(一次記憶)42、各種I/O(入出力)インタフェース44等がバス46を介して接続された回路構成を有する。また、そのバス46に対し、例えばI/Oインタフェース44経由で、ハードディスクドライブ(HDD)48やCDやDVD、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ50が接続される。このようなドライブ48又は50は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク経由で、ハードディスクドライブ48等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されCPUにより実行されることにより、実施形態の処理が実現される。クライアント端末20についても同様である。
【図面の簡単な説明】
【0146】
【図1】文書管理システムの概略構成の例を示すブロック図である。
【図2】クライアント端末の内部構成の例を示すブロック図である。
【図3】ID付き文書のデータ構造の例を模式的に示す図である。
【図4】文書管理サーバの内部構成の例を示すブロック図である。
【図5】派生関係DBのデータ内容の例を示す図である。
【図6】図5に例示したデータ内容における管理ID群がなす木構造を図式化して表す図である。
【図7】複数の組織からなる組織階層の構造の例を示す図である。
【図8】組織情報DBのデータ内容の例を示す図である。
【図9】組織情報DBのデータ内容の例を示す図である。
【図10】ID付き文書に対するアクセスが要求された場合の文書管理サーバの処理手順の一部の例を示すフローチャートである。
【図11】ID付き文書に対するアクセスが要求された場合の文書管理サーバの処理手順の一部の例を示すフローチャートである。
【図12】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【0147】
10 文書管理サーバ、20 クライアント端末、30 ネットワーク、40 CPU、42 メモリ、44 I/Oインタフェース、46 バス、48 ハードディスクドライブ(HDD)、50 ディスクドライブ、100 文書DB、110 派生関係DB、120 組織情報DB、130 文書登録部、132 派生関係登録部、140 要求処理部、142 アクセス制御部、200 文書操作部、202 ID割り当て部、204 派生関係組込部、210 登録処理部、300 ID付き文書。
【特許請求の範囲】
【請求項1】
第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を記憶する文書情報記憶部であって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて記憶する文書情報記憶部と、
複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を記憶する組織情報記憶部と、
要求対象文書と、要求者と、を特定する文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定する文書出力可否決定部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記文書出力可否決定部は、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織が、前記要求対象文書に対応づけられた操作者を前記構成員として含むか否かを判定し、当該判定の結果に基づいて、前記要求対象文書の出力の可否を決定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記文書出力可否決定部は、前記要求対象の文書が前記組織階層において上位から下位の展開経路を経ずに更新登録された文書である場合には、前記要求対象の文書の出力を許可しないことを特徴とする請求項2の記載の情報処理装置。
【請求項4】
前記文書出力可否決定部は、前記要求対象文書を起点として前記木構造を遡った経路上に含まれる文書のうち少なくとも1つの文書に対応づけられた操作者が前記要求者である場合に、前記要求対象文書の出力を許可することを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記組織情報記憶部は、さらに、前記組織のそれぞれに所属する構成員のうちの役職者を示す情報を記憶し、
前記文書出力可否決定部は、前記要求対象文書に対応づけられた操作者が、前記構成員として当該操作者を含む組織の役職者でない場合であって、前記要求対象文書を起点として前記木構造を遡った経路上に含まれる文書のいずれに対応づけられた操作者も前記要求者でない場合は、前記要求対象文書の出力を許可しないことを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を文書情報記憶部に記憶するステップであって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて文書情報記憶部に記憶するステップと、
複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を組織情報記憶部に記憶するステップと、
要求対象文書と、要求者と、を特定する文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定するステップと、
をコンピュータに実行させることを特徴とするプログラム。
【請求項7】
第1の情報処理装置と第2の情報処理装置とを備え、
前記第1の情報処理装置は、
要求対象文書と、要求者と、を特定する文書出力要求を前記第2の情報処理装置に対して行う文書出力要求部を備え、
前記第2の情報処理装置は、
第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を記憶する文書情報記憶部であって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて記憶する文書情報記憶部と、
複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を記憶する組織情報記憶部と、
前記第1の情報処理装置から前記文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定する文書出力可否決定部と、
を備えることを特徴とする情報処理システム。
【請求項1】
第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を記憶する文書情報記憶部であって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて記憶する文書情報記憶部と、
複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を記憶する組織情報記憶部と、
要求対象文書と、要求者と、を特定する文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定する文書出力可否決定部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記文書出力可否決定部は、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織が、前記要求対象文書に対応づけられた操作者を前記構成員として含むか否かを判定し、当該判定の結果に基づいて、前記要求対象文書の出力の可否を決定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記文書出力可否決定部は、前記要求対象の文書が前記組織階層において上位から下位の展開経路を経ずに更新登録された文書である場合には、前記要求対象の文書の出力を許可しないことを特徴とする請求項2の記載の情報処理装置。
【請求項4】
前記文書出力可否決定部は、前記要求対象文書を起点として前記木構造を遡った経路上に含まれる文書のうち少なくとも1つの文書に対応づけられた操作者が前記要求者である場合に、前記要求対象文書の出力を許可することを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記組織情報記憶部は、さらに、前記組織のそれぞれに所属する構成員のうちの役職者を示す情報を記憶し、
前記文書出力可否決定部は、前記要求対象文書に対応づけられた操作者が、前記構成員として当該操作者を含む組織の役職者でない場合であって、前記要求対象文書を起点として前記木構造を遡った経路上に含まれる文書のいずれに対応づけられた操作者も前記要求者でない場合は、前記要求対象文書の出力を許可しないことを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を文書情報記憶部に記憶するステップであって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて文書情報記憶部に記憶するステップと、
複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を組織情報記憶部に記憶するステップと、
要求対象文書と、要求者と、を特定する文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定するステップと、
をコンピュータに実行させることを特徴とするプログラム。
【請求項7】
第1の情報処理装置と第2の情報処理装置とを備え、
前記第1の情報処理装置は、
要求対象文書と、要求者と、を特定する文書出力要求を前記第2の情報処理装置に対して行う文書出力要求部を備え、
前記第2の情報処理装置は、
第1の文書を親とし当該第1の文書に対する操作の結果生成された第2の文書を子とする派生関係を記憶する文書情報記憶部であって、当該第1の文書に対する操作を行った操作者を示す情報を当該第2の文書と対応づけて記憶する文書情報記憶部と、
複数の組織からなる組織階層の構造を表す情報と、前記組織のそれぞれに所属する構成員を示す情報と、を記憶する組織情報記憶部と、
前記第1の情報処理装置から前記文書出力要求を受けた場合に、前記要求対象文書に対応づけられた操作者を示す情報又は前記文書情報記憶部に記憶された前記派生関係群が表す木構造において前記要求対象文書の先祖に該当する文書に対応づけられた操作者を示す情報と、前記組織情報記憶部に記憶された情報のうち、前記構成員として前記要求者を含む組織又は当該組織に対して前記組織階層において上位に位置する組織に所属する構成員を示す情報と、を照合することで、前記要求者に対する前記要求対象文書の出力の可否を決定する文書出力可否決定部と、
を備えることを特徴とする情報処理システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−87230(P2009−87230A)
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願番号】特願2007−258858(P2007−258858)
【出願日】平成19年10月2日(2007.10.2)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願日】平成19年10月2日(2007.10.2)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
[ Back to top ]