(57)【特許請求の範囲】
【請求項１】
電子情報のバージョン番号を保持するバージョン番号保持手段と、
電子情報の固有名称に、前記バージョン番号保持手段に保持されるバージョン番号を付加した電子情報名を生成する電子情報名生成手段と、
該電子情報名生成手段により生成された電子情報名を、電子情報の利用者に配布する電子情報名配布手段と、
電子情報の利用者から電子情報名により特定される電子情報に対してアクセスがあったときに、電子情報名に含まれるバージョン番号と前記バージョン番号保持手段に保持されるバージョン番号とが一致するか否かを判定するバージョン番号判定手段と、
該バージョン番号判定手段によりバージョン番号が一致していると判定されたときに、電子情報へのアクセスを許可するアクセス許可手段と、
電子情報の排他制御が開始されたときに前記バージョン番号保持手段に保持されるバージョン番号を０に設定する一方、電子情報のアクセス中に該バージョン番号を１増加し、電子情報の内容が更新されたときに該バージョン番号を２増加するバージョン番号更新手段と、
前記バージョン番号判定手段によりバージョン番号が不一致であると判定されたときに、前記バージョン番号保持手段に保持されるバージョン番号が奇数であれば電子情報はロック中であると判定し、該バージョン番号が偶数であれば旧バージョンによるアクセスであると判定する原因解析手段と、
を含んで構成されたことを特徴とする電子情報の排他制御装置。
【請求項２】
電子情報のバージョン番号を保持するバージョン番号保持手段と、
電子情報の固有名称に、前記バージョン番号保持手段に保持されるバージョン番号を付加した電子情報名を生成する電子情報名生成手段と、
該電子情報名生成手段により生成された電子情報名を、電子情報の利用者に配布する電子情報名配布手段と、
電子情報の利用者から電子情報名により特定される電子情報に対してアクセスがあったときに、電子情報名に含まれるバージョン番号と前記バージョン番号保持手段に保持されるバージョン番号とが一致するか否かを判定するバージョン番号判定手段と、
該バージョン番号判定手段によりバージョン番号が一致していると判定されたときに、電子情報へのアクセスを許可するアクセス許可手段と、
電子情報の排他制御が開始されたときに前記バージョン番号保持手段に保持されるバージョン番号を０に設定する一方、前記電子情報名生成手段による電子情報名の生成に先立って該バージョン番号を１増加し、電子情報の内容が更新されたときに該バージョン番号を１増加するバージョン番号更新手段と、
前記バージョン番号判定手段によりバージョン番号が不一致であると判定されたときに、前記バージョン番号保持手段に保持されるバージョン番号が奇数であれば旧バージョンによるアクセスであると判定し、該バージョン番号が偶数であれば電子情報はアクセス禁止状態にあると判定する原因解析手段と、
を含んで構成されたことを特徴とする電子情報の排他制御装置。
【請求項３】
電子情報の内容が更新されたときに、前記電子情報名生成手段により新たに生成された電子情報名を、電子情報の利用者に再配布する電子情報名再配布手段をさらに備えたことを特徴とする請求の範囲第１項又は第２項に記載の電子情報の排他制御装置。
【請求項４】
電子情報の固有名称に、テーブルに保持される電子情報のバージョン番号を付加した電子情報名を生成する電子情報名生成工程と、
該電子情報名生成工程により生成された電子情報名を、電子情報の利用者に配布する電子情報名配布工程と、
電子情報の利用者から電子情報名により特定される電子情報に対してアクセスがあったときに、電子情報名に含まれるバージョン番号と前記テーブルに保持されるバージョン番号とが一致するか否かを判定するバージョン番号判定工程と、
該バージョン番号判定工程によりバージョン番号が一致していると判定されたときに、電子情報へのアクセスを許可するアクセス許可工程と、
電子情報の排他制御が開始されたときに前記テーブルに保持されるバージョン番号を０に設定する一方、電子情報のアクセス中に該バージョン番号を１増加し、電子情報の内容が更新されたときに該バージョン番号を２増加するバージョン番号更新工程と、
前記バージョン番号判定工程によりバージョン番号が不一致であると判定されたときに、前記テーブルに保持されるバージョン番号が奇数であれば電子情報はロック中であると判定し、該バージョン番号が偶数であれば旧バージョンによるアクセスであると判定する原因解析工程と、
をコンピュータに実行させることを特徴とする電子情報の排他制御方法。
【請求項５】
電子情報の固有名称に、テーブルに保持される電子情報のバージョン番号を付加した電子情報名を生成する電子情報名生成工程と、
該電子情報名生成工程により生成された電子情報名を、電子情報の利用者に配布する電子情報名配布工程と、
電子情報の利用者から電子情報名により特定される電子情報に対してアクセスがあったときに、電子情報名に含まれるバージョン番号と前記テーブルに保持されるバージョン番号とが一致するか否かを判定するバージョン番号判定工程と、
該バージョン番号判定工程によりバージョン番号が一致していると判定されたときに、電子情報へのアクセスを許可するアクセス許可工程と、
電子情報の排他制御が開始されたときに前記テーブルに保持されるバージョン番号を０に設定する一方、前記電子情報名生成工程による電子情報名の生成に先立って該バージョン番号を１増加し、電子情報の内容が更新されたときに該バージョン番号を１増加するバージョン番号更新工程と、
前記バージョン番号判定工程によりバージョン番号が不一致であると判定されたときに、前記テーブルに保持されるバージョン番号が奇数であれば旧バージョンによるアクセスであると判定し、該バージョン番号が偶数であれば電子情報はアクセス禁止状態にあると判定する原因解析工程と、
をコンピュータに実行させることを特徴とする電子情報の排他制御方法。
【請求項６】
電子情報の内容が更新されたときに、前記電子情報名生成工程により新たに生成された電子情報名を、電子情報の利用者に再配布する電子情報名再配布工程をさらに備えたことを特徴とする請求の範囲第４項又は第５項に記載の電子情報の排他制御方法。
【請求項７】
電子情報の固有名称に、テーブルに保持される電子情報のバージョン番号を付加した電子情報名を生成する電子情報名生成機能と、
該電子情報名生成機能により生成された電子情報名を、電子情報の利用者に配布する電子情報名配布機能と、
電子情報の利用者から電子情報名により特定される電子情報に対してアクセスがあったときに、電子情報名に含まれるバージョン番号と前記テーブルに保持されるバージョン番号とが一致するか否かを判定するバージョン番号判定機能と、
該バージョン番号判定機能によりバージョン番号が一致していると判定されたときに、電子情報へのアクセスを許可するアクセス許可機能と、
電子情報の排他制御が開始されたときに前記テーブルに保持されるバージョン番号を０に設定する一方、電子情報のアクセス中に該バージョン番号を１増加し、電子情報の内容が更新されたときに該バージョン番号を２増加するバージョン番号更新機能と、
前記バージョン番号判定機能によりバージョン番号が不一致であると判定されたときに、前記テーブルに保持されるバージョン番号が奇数であれば電子情報はロック中であると判定し、該バージョン番号が偶数であれば旧バージョンによるアクセスであると判定する原因解析機能と、
を実現するための電子情報の排他制御プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項８】
電子情報の固有名称に、テーブルに保持される電子情報のバージョン番号を付加した電子情報名を生成する電子情報名生成機能と、
該電子情報名生成機能により生成された電子情報名を、電子情報の利用者に配布する電子情報名配布機能と、
電子情報の利用者から電子情報名により特定される電子情報に対してアクセスがあったときに、電子情報名に含まれるバージョン番号と前記テーブルに保持されるバージョン番号とが一致するか否かを判定するバージョン番号判定機能と、
該バージョン番号判定機能によりバージョン番号が一致していると判定されたときに、電子情報へのアクセスを許可するアクセス許可機能と、
電子情報の排他制御が開始されたときに前記テーブルに保持されるバージョン番号を０に設定する一方、前記電子情報名生成機能による電子情報名の生成に先立って該バージョン番号を１増加し、電子情報の内容が更新されたときに該バージョン番号を１増加するバージョン番号更新機能と、
前記バージョン番号判定機能によりバージョン番号が不一致であると判定されたときに、前記テーブルに保持されるバージョン番号が奇数であれば旧バージョンによるアクセスであると判定し、該バージョン番号が偶数であれば電子情報はアクセス禁止状態にあると判定する原因解析機能と、
を実現するための電子情報の排他制御プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項９】
電子情報の内容が更新されたときに、前記電子情報名生成機能により新たに生成された電子情報名を、電子情報の利用者に再配布する電子情報名再配布機能をさらに備えたことを特徴とする請求の範囲第７項又は第８項に記載の電子情報の排他制御プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
技術分野
本発明は、電子情報へのアクセスを排他制御する排他制御技術に関し、特に、簡易な構成で信頼性の高い排他制御を実現する技術に関する。
背景技術
従来、電子情報の排他制御技術として、特開平４−１２７２６１号公報に開示されるように、セマフォ変数を用いて排他制御を行う技術が知られている。この技術は、セマフォ変数を電子情報の使用状況を示すフラグとして用い、電子情報の排他制御を実現している。
しかし、電子情報の使用／未使用だけで排他制御を行ったのでは、電子情報が未使用である限り、どのような場合にでもアクセスができてしまうという問題点がある。例えば、２つのクライアントからサーバ上の電子情報の更新要求があった場合、一方のクライアントからの更新要求に応じて電子情報が更新された後、他方のクライアントからの更新要求に応じて電子情報が更新されてしまう場合がある。従って、一方のクライアントからの更新要求が全く無意味になり、電子情報の安定性・信頼性が低下してしまう。
このような不具合を回避するために、電子情報のバージョン番号を考慮して排他制御を行うことも考えられる。しかし、従来の技術では、バージョン管理のための処理を別に行う必要があり、排他制御の処理が冗長になってしまう。
そこで、本発明は従来の問題点を鑑み、電子情報のバージョン番号をセマフォ変数の一部として使用することで、簡易な構成で信頼性の高い排他制御を実現する技術を提供することを目的とする。
発明の開示
上記目的達成のため、第１の手段として、電子情報のバージョン番号を保持するバージョン番号保持手段と、電子情報の固有名称に、前記バージョン番号保持手段に保持されるバージョン番号を付加した電子情報名を生成する電子情報名生成手段と、該電子情報名生成手段により生成された電子情報名を、電子情報の利用者に配布する電子情報名配布手段と、電子情報の利用者から電子情報名により特定される電子情報に対してアクセスがあったときに、電子情報名に含まれるバージョン番号と前記バージョン番号保持手段に保持されるバージョン番号とが一致するか否かを判定するバージョン番号判定手段と、該バージョン番号判定手段によりバージョン番号が一致していると判定されたときに、電子情報へのアクセスを許可するアクセス許可手段と、電子情報の内容が更新されたときに、前記バージョン番号保持手段に保持されるバージョン番号を更新するバージョン番号更新手段と、を含んで電子情報の排他制御装置を構成したことを特徴とする。
ここで、「電子情報」とは、電子計算機がアクセスできる情報をいい、メモリ上のデータオブジェクト，外部記憶装置上のファイル等が該当する。
かかる構成によれば、電子情報の利用者には、電子情報のバージョン番号が含まれる電子情報名が配怖される。利用者が、電子情報名を用いて電子情報にアクセスすると、電子情報名に含まれるバージョン番号とバージョン保持手段に保持されるバージョン番号とが一致するか否かが判定される。そして、バージョン番号が一致したときのみ、電子情報へのアクセスが許可される。また、電子情報の内容が更新されると、バージョン番号保持手段に保持されるバージョン番号も更新される。即ち、複数の利用者から電子情報へのアクセスがあり、最初の利用者からのアクセスにより電子情報の内容が更新された場合には、他の利用者からのアクセスはバージョン番号が一致しないという理由で、アクセスが許可されないこととなる。従って、このように、電子情報のバージョン番号をセマフォ変数の一部として使用することで、簡易な構成で信頼性の高い排他制御を実現することができる。
また、前記バージョン番号判定手段によりバージョン番号が不一致であると判定されたときに、前記バージョン番号保持手段に保持されるバージョン番号に基づいて、その原因を解析する原因解析手段を備えた構成としてもよい。
かかる構成によれば、電子情報の利用者からのアクセスが許可されない場合には、バージョン番号保持手段に保持されるバージョン番号に基づいて、その原因が解析される。従って、利用者は、何故アクセスが許可されないかを把握することができ、電子情報の排他制御装置の使い勝手を向上することができる。
また、電子情報の内容が更新されたときに、前記電子情報名生成手段により新たに生成された電子情報名を、電子情報の利用者に再配布する電子情報名再配布手段を備えた構成としてもよい。
かかる構成によれば、電子情報の内容が更新されると、新たに生成された電子情報名が電子情報の利用者に再配布される。ここで、再配布される電子情報名には、更新されたバージョン番号が含まれている。従って、利用者は、再配布された電子情報名を用いて電子情報へのアクセスが可能となり、必要に応じて何度でも電子情報へのアクセスを行なうことができる。
また、前記バージョン番号更新手段は、電子情報の排他制御が開始されたときにバージョン番号を０に設定する一方、電子情報のアクセス中にバージョン番号を１増加し、電子情報の内容が更新されたときにバージョン番号を２増加する構成としてもよい。
かかる構成によれば、電子情報のバージョン番号は、電子情報の排他制御が開始されたときに０に初期化され、電子情報の内容が更新されると「２，４，６・・・」のように２づつ増加される。また、電子情報のアクセス中には、電子情報のバージョン番号が１増加し「１，３，５・・・」のようになる。従って、バージョン番号保持手段に保持されるバージョン番号を調べることにより、電子情報のアクセス状況及びバージョンを容易に把握することができる。
また、前記原因解析手段は、バージョン番号が奇数であれば電子情報はロック中であると判定し、バージョン番号が偶数であれば旧バージョンによるアクセスであると判定する構成としてもよい。
かかる構成によれば、バージョン番号保持手段に保持されるバージョン番号が奇数か偶数かを判定するだけで、電子情報へのアクセスが許可されない理由が解析される。従って、解析処理が複雑となることがなく、電子情報の排他制御装置のパフォーマンスの低下を防止することができる。
また、前記バージョン番号更新手段は、電子情報の排他制御が開始されたときにバージョン番号を０に設定する一方、前記電子情報名生成手段による電子情報名の生成に先立ってバージョン番号を１増加し、電子情報の内容が更新されたときにバージョン番号を１増加する構成としてもよい。
かかる構成によれば、電子情報のバージョン番号は、電子情報の排他制御が開始されたときに０に初期化され、電子情報の利用者に電子情報名を配布する前に１増加する。そして、利用者からのアクセスにより電子情報の内容が更新されると、電子情報のバージョン番号が１増加する。従って、複数の電子情報を指定してバッチ処理により電子情報のアクセス（内容の更新）を行なう場合であっても、バージョン番号保持手段に保持されるバージョン番号を調べることにより、電子情報のアクセス状況及びバージョンを容易に把握することができる。
また、前記原因解析手段は、バージョン番号が奇数であれば旧バージョンによるアクセスであると判定し、バージョン番号が偶数であれば電子情報はアクセス禁止状態にあると判定する構成としてもよい。
かかる構成によれば、バージョン番号保持手段に保持されるバージョン番号が奇数か偶数かを判定するだけで、電子情報へのアクセスが許可されない理由が解析される。従って、解析処理が複雑となることがなく、電子情報の排他制御装置のパフォーマンスの低下を防止することができる。
第２の手段として、電子情報の固有名称に、テーブルに保持される電子情報のバージョン番号を付加した電子情報名を生成する電子情報名生成工程と、該電子情報名生成工程により生成された電子情報名を、電子情報の利用者に配布する電子情報名配布工程と、電子情報の利用者から電子情報名により特定される電子情報に対してアクセスがあったときに、電子情報名に含まれるバージョン番号と前記テーブルに保持されるバージョン番号とが一致するか否かを判定するバージョン番号判定工程と、該バージョン番号判定工程によりバージョン番号が一致していると判定されたときに、電子情報へのアクセスを許可するアクセス許可工程と、電子情報の内容が更新されたときに、前記テーブルに保持されるバージョン番号を更新するバージョン番号更新工程と、を含んで電子情報の排他制御装置を構成したことを特徴とする。
かかる構成によれば、電子情報の利用者には、電子情報のバージョン番号が含まれる電子情報名が配布される。利用者が、電子情報名を用いて電子情報にアクセスすると、電子情報名に含まれるバージョン番号とテーブルのバージョン番号とが一致するか否かが判定される。そして、バージョン番号が一致したときのみ、電子情報へのアクセスが許可される。また、電子情報の内容が更新されると、テーブルのバージョン番号も更新される。即ち、複数の利用者から電子情報へのアクセスがあり、最初の利用者からのアクセスにより電子情報の内容が更新された場合には、他の利用者からのアクセスはバージョン番号が一致しないという理由で、アクセスが許可されないこととなる。従って、このように、電子情報のバージョン番号をセマフォ変数の一部として使用することで、簡易な構成で信頼性の高い排他制御を実現することができる。
第３の手段として、電子情報の固有名称に、テーブルに保持される電子情報のバージョン番号を付加した電子情報名を生成する電子情報名生成機能と、該電子情報名生成機能により生成された電子情報名を、電子情報の利用者に配布する電子情報名配布機能と、電子情報の利用者から電子情報名により特定される電子情報に対してアクセスがあったときに、電子情報名に含まれるバージョン番号と前記テーブルに保持されるバージョン番号とが一致するか否かを判定するバージョン番号判定機能と、該バージョン番号判定機能によりバージョン番号が一致していると判定されたときに、電子情報へのアクセスを許可するアクセス許可機能と、電子情報の内容が更新されたときに、前記テーブルに保持されるバージョン番号を更新するバージョン番号更新機能と、を実現するための電子情報の排他制御プログラムを記録媒体に記録した。
ここで、「記録媒体」とは、各種情報を確実に記録でき、かつ、必要に応じて確実に取り出し可能なものをいい、磁気テープ、磁気ディスク、磁気ドラム、ＩＣカード、ＣＤ−ＲＯＭ等の可搬媒体が該当する。
かかる構成によれば、電子情報名生成機能，電子情報名配布機能，バージョン番号判定機能，アクセス許可機能及びバージョン番号更新機能を実現するための電子情報の排他制御プログラムが記録媒体に記録される。従って、かかる記録媒体があれば、一般的なクライアント／サーバシステムを利用して、本発明に係る電子情報の排他制御装置を容易に構築することができる。
発明を実施するための最良の形態
本発明をより詳細に説述するために、添付の図面に従ってこれを説明する。
図１は、本発明に係る電子情報の排他制御装置（以下「排他制御装置」という）のシステム構成を示す。
排他制御装置は、ネットワーク１０を介して接続される、サーバ２０及び少なくとも１つのクライアント３０から構成されるクライアント／サーバシステム上に構築される。サーバ２０及びクライアント３０は、少なくとも、中央処理装置（ＣＰＵ）とメモリとを備え、メモリ上のプログラムに従って各種処理を行う電子計算機である。
サーバ２０には、排他制御処理部２２が備えられると共に、データベースシステムにより管理される各種電子情報２４が蓄積される。電子情報とは、電子計算機がアクセスできる情報をいい、例えば、メモリ上のデータオブジェクト，外部記憶装置上のファイル等が該当する。また、排他制御処理部２２には、各電子情報２４のバージョン番号を保持するテーブル２２ａ（バージョン番号保持手段）が備えられる。そして、排他制御処理部２２は、テーブル２２ａに保持されたバージョン番号をセマフォ変数として用い、後述するフローチャートに従い、電子情報の排他制御を行う。
次に、購入伝票の処理を対象とするワークフローのプロセスを例にとり、図２のワークフローモデルを参照しつつ、本発明の概要について説明する。ここでは、購入伝票が電子情報に該当する。
プロセスは、作業単位である３つのアクティビティ（Ａｃｔｉｖｉｔｙ）、即ち、購入伝票の起票作業（以下「起票作業」という）１００と、購入先決定作業１０２と、承認作業１０４と、から構成される。起票作業１００では、一般社員Ａを操作者として「何をいくつ購入するか」という購入伝票の起票が行われる。購入伝票の起票が行われると、プロセスが購入先決定作業１０２に移行する。購入先決定作業１０２では、複数の担当者Ｂ，Ｃを操作者として購入先が決定される。ここで、複数の担当者が必要な理由は、多数の購入伝票を迅速に処理する必要があることを鑑み、購入伝票を複数人で処理しなければならないからである。購入先が決定されると、プロセスが承認作業１０４に移行する。承認作業１０４では、担当者Ｄを操作者として購入の可否を決定する承認が行われる。そして、購入が承認されるとプロセスが終了し、一方、購入が否認されるとプロセスが購入先決定作業１０２に差し戻される。
ここで、図２のワークフローモデルを用いて、従来技術の問題点を明確にする。
購入先決定作業１０２において、最初の購入伝票の状態をＸ（以下「状態Ｘ」という。以下同様）とする。このとき、購入先の決定が担当者Ｂ及びＣの両方から行われた場合であって、担当者Ｂからの処理要求が先に実行され、ある時間をおいて担当者Ｃからの処理要求が実行されるとする。すると、担当者Ｂからの処理要求により、購入伝票は状態Ｙとなる。その後、プロセスは承認作業１０４に移行するが、購入が否認されると、プロセスは購入先決定作業１０２に差し戻される。ここで、担当者Ｃからの処理要求が実行されると、現在の購入伝票が状態Ｙであるにもかかわらず、状態Ｘを前提とした処理要求が実行されてしまう。即ち、購入伝票の状態（バージョン）が相違していても、処理が可能であるという問題点が発生してしまう。
このような問題点を解消するために、排他制御処理部２２では、図３〜図５に示すフローチャートの処理が実行される。
ステップ１（図では「Ｓ１」と略記する。以下同様）では、各電子情報２４に対応するテーブル２２ａのバージョン番号が０に設定される。
ステップ２では、処理対象となる次のアクティビティがアクティベートされる。即ち、図２のワークフローモデルでは、プロセス開始直後には起票作業１００がアクティベートされ、その後、プロセスの進行に応じて購入先決定作業１０２，承認作業１０４がアクティベートされる。
ステップ３では、アクティベートされたアクティビティにおいて、データの入力作業があるか否かの判定が行われる。そして、データの入力作業があればステップ４へと進み（Ｙｅｓ）、一方、データの入力作業がなければステップ１６へと進む（Ｎｏ）。ここで、データ入力の有無に応じて処理を変える理由は、例えば、特定のアクティビティでは作業をバッチ処理しなければならない場合が考えられるためである。図２のワークフローモデルを例にとると、承認作業１０４において、購入先決定作業１０２が行われた多数の購入伝票をまとめて承認する場合があるためである。
ステップ４では、バージョン番号を付加した電子情報名が、各担当者のクライアント３０に配布される。ここで、配布される電子情報名は、排他制御装置内で電子情報固有の名前（名称）に、テーブル２２ａから読み取られたバージョン番号を付加して生成される。即ち、（配布される電子情報名）＝（電子情報固有の名前）＋（バージョン番号）となる。なお、配布される電子情報名が長い場合には、電子情報固有の名前の下位数桁をバージョン番号に置き換えるようにしてもよい。そして、バージョン番号が付加された電子情報名を受け取った各担当者は、その電子情報名に基づいて各アクティビティにおける処理要求を発行する。
ここで、ステップ４の処理が、電子情報名生成手段，電子情報名配布手段，電子情報名再配布手段，電子情報名生成工程，電子情報名配布工程，電子情報名生成機能及び電子情報名配布機能に相当する。
ステップ５では、クライアント３０からのロック要求、即ち、電子情報２４へのアクセス要求を待つ処理が行われる。このとき、クライアント３０からは、配布された電子情報名を含んだロック要求が伝達される。
ステップ６では、電子情報２４のバージョン番号の対比処理が行われる。即ち、クライアント３０から伝達されたロック要求から、電子情報固有の名前及びそのバージョン番号が抽出される。そして、抽出されたバージョン番号と、抽出された電子情報固有の名前に基づいてテーブル２２ａから検索されたバージョン番号と、が対比される。その結果、バージョン番号が等しければステップ７へと進み（Ｙｅｓ）、一方、バージョン番号が等しくなければステップ１３へと進む（Ｎｏ）。
ここで、ステップ６の処理が、バージョン番号判定手段，バージョン番号判定工程及びバージョン番号判定機能に相当する。
ステップ７では、電子情報２４に対応するテーブル２２ａのバージョン番号に１が足される。即ち、電子情報２４へのアクセス要求があると、そのバージョン番号が１増えることとなる。
ここで、ステップ７の処理が、アクセス許可手段，アクセス許可工程及びアクセス許可機能に相当する。
ステップ８では、クライアント３０からのロック解除要求、即ち、電子情報２４へのアクセス終了要求を待つ処理が行われる。このとき、ロック解除要求には、電子情報２４の内容が更新されたか否かを示す更新情報が含まれる。
ステップ９では、ロック解除要求に含まれる更新情報に基づいて、電子情報２４の内容が更新されたか否かが判定される。そして、電子情報２４の内容が更新されていればステップ１０へと進み（Ｙｅｓ）、一方、電子情報２４の内容が更新されていなければステップ１２へと進む（Ｎｏ）。
ステップ１０では、電子情報２４のバージョン番号に１が足される。即ち、電子情報２４の内容が更新されるごとに、結果として、そのバージョン番号が「０、２、４・・・」というように２づつ増加することとなる。
ステップ１１では、処理中のアクティビティがデアクティベートされる。その後、ステップ２へとジャンプする。
ステップ１２では、電子情報２４のバージョン番号から１が引かれる。即ち、電子情報２４の内容が更新されていなければ、そのバージョン番号が元の状態に戻されることとなる。その後、ステップ５へとジャンプする。
ステップ１３では、テーブル２２ａのバージョン番号が奇数であるか否かが判定される。そして、バージョン番号が奇数であればステップ１４へと進み（Ｙｅｓ）、ロック要求対象の電子情報２４はロック中であると判定し、その判定結果がクライアント３０に返送される。一方、バージョン番号が偶数であればステップ１５へと進み（Ｎｏ）、ロック要求対象は旧バージョンの電子情報２４に対するものであると判定し、その判定結果がクライアント３０に返送される。その後、ステップ５へとジャンプする。
即ち、ステップ１３〜ステップ１５の処理では、ロック要求に含まれるバージョン番号に基づいて、ロックを行なうことができない原因が解析され、その解析結果がクライアント３０に返送される。従って、解析結果を受け取ったクライアント３０では、その内容を表示することで、何でロックができなかったかを把握することができる。
ここで、ステップ１３〜ステップ１５の処理が、原因解析手段に相当する。
ステップ１６〜ステップ２４では、データ入力がない場合の処理、即ち、バッチ処理が行われる。以下、その内容を詳述する。
ステップ１６では、電子情報２４のバージョン番号に１を足し、そのバージョン番号を付加した電子情報名がクライアント３０に配布される。なお、配布される電子情報名は、ステップ４と同様な処理によって生成されるので、ここではその説明を省略する。
ここで、ステップ１６の処理が、電子情報名生成手段，電子情報名配布手段，電子情報名再配布手段，電子情報名生成工程，電子情報名配布工程，電子情報名生成機能及び電子情報名配布機能に相当する。
ステップ１７では、クライアント３０からの更新要求を待つ処理が行われる。ここで注意しなければならないことは、電子情報２４のロック要求でなく、その更新要求であることである。即ち、バッチ処理においては、次の作業に移行してもよいか否かの承認処理のみが行われるため、電子情報２４の内容を実際に更新するロック要求を処理する必要がないことである。このため、ネットワーク１０におけるトラフィック量が減少し、処理速度の向上等が期待できる。
ステップ１８では、電子情報２４のバージョン番号の対比処理が行われる。即ち、クライアント３０から伝達された更新要求から、電子情報固有の名前及びそのバージョン番号が抽出される。そして、抽出されたバージョン番号と、抽出された電子情報固有の名前に基づいてテーブル２２ａから検索されたバージョン番号と、が対比される。その結果、バージョン番号が等しければステップ１９へと進み（Ｙｅｓ）、一方、バージョン番号が等しくなければステップ２２へと進む（Ｎｏ）。
ここで、ステップ１８の処理が、バージョン番号判定手段，バージョン番号判定工程及びバージョン番号判定機能に相当する。
ステップ１９では、電子情報２４に対応するテーブル２２ａのバージョン番号に１が足される。即ち、電子情報２４の更新要求があると、結果として、そのバージョン番号が２づつ増加することとなる。
ここで、ステップ１９の処理が、アクセス許可手段，アクセス許可工程及びアクセス許可機能に相当する。また、ステップ１，ステップ７，ステップ１０，ステップ１２，ステップ１６及びステップ１９の処理が、バージョン番号更新手段，バージョン番号更新工程及びバージョン番号更新機能に相当する。
ステップ２０では、電子情報２４が再びアクセス可能になるまで待機する処理が行なわれる。
ステップ２１では、処理中のアクティビティがデアクティベートされる。その後、ステップ２へとジャンプする。
ステップ２２では、テーブル２２ａのバージョン番号が奇数であるか否かが判定される。そして、バージョン番号が奇数であればステップ２３へと進み（Ｙｅｓ）、更新要求対象は旧バージョンの電子情報２４に対するものであると判定し、その判定結果がクライアント３０に返送される。一方、バージョン番号が偶数であればステップ２４へと進み（Ｎｏ）、電子情報２４がアクセス禁止状態（ロック状態）にあると判定し、その判定結果がクライアント３０に返送される。その後、ステップ１７へとジャンプする。
即ち、ステップ２２〜ステップ２４の処理では、更新要求に含まれるバージョン番号に基づいて、更新を行なうことができない原因が解析され、その解析結果がクライアント３０に返送される。従って、解析結果を受け取ったクライアント３０では、その内容を表示することで、何で更新できなかったかを把握することができる。ここで、ステップ２２〜ステップ２４の処理が、原因解析手段に相当する。
以上説明したステップ１〜ステップ２４の処理によれば、各アクティビティがアクティベートされると、そのアクティビティの作業を担当する各クライアント３０に、電子情報名が配布される。この電子情報名には、電子情報固有の名前及びそのバージョン番号が含まれる。電子情報２４に対するアクセス要求があると、その要求から電子情報固有の名前及びバージョン番号が抽出される。そして、抽出されたバージョン番号と、抽出された電子情報固有の名前により特定されるテーブル２２ａのバージョン番号と、が対比される。バージョン番号が一致していれば、電子情報２４へのアクセスが許可され、一方、バージョン番号が一致していなければ、その原因が解析される。
このとき、電子情報２４のバージョンの更新に伴って、テーブル２２ａのバージョン番号は「０，２，４・・・」と変化するので、旧バージョンによるアクセス要求では、電子情報２４へのアクセスが拒否されることとなる。また、作業にデータ入力を伴う場合、電子情報２４のロック中には、テーブル２２ａのバージョン番号が１増加して奇数となるので、これにより同時アクセスを防止することができる。
従って、電子情報２４のバージョンを管理する特別の処理を用いなくても、特定のバージョンに限定した電子情報２４の排他制御が行われる。また、ネットワークの経路の相違により処理時間にずれが生じる場合であっても、旧バージョンに対する処理要求で最新の電子情報２４が上書きされることを防止する処理を考慮する必要がない。このため、簡易な構成で信頼性の高い排他制御を実現することができる。
なお、ステップ８〜ステップ１５及びステップ２０〜ステップ２４の処理は、複数のジョブを処理する関係上、スレッドによる多重処理となっている。
ここで、かかる処理内容の理解を容易にするため、図２のワークフローモデルを、図３〜図５のフローチャートにより処理する実例を説明する。
ワークフローのプロセスが開始されると、排他制御処理部２２のテーブル２２ａが「００００」に初期化される（ステップ１）。そして、起票作業１００を行なうアクティビティがアクティベートされ（ステップ２）、起票作業１００でデータの入力があるか否かが判定される（ステップ３）。起票作業１００では、何をいくつ購入するかというデータ入力があるので、テーブル２２ａのバージョン番号「００００」を付加した電子情報名、例えば、「データ００００」が一般社員Ａに配布される（ステップ４）。なお、一般社員Ａは、起票を行なう可能性のある者全員を指す。
その後、一般社員Ａからロック要求があるまで待機し（ステップ５）、ロック要求があるとバージョン番号の検査が行われる（ステップ６）。ここでは、プロセス開始直後であるので、バージョン番号は等しく、電子情報がロック中であることを示すために、テーブル２２ａのバージョン番号が１増え「０００１」となる（ステップ７）。その後、一般社員Ａからロック解除要求、即ち、次のアクティビティへの移行要求が来るまで待機する（ステップ８）。
一般社員Ａからロック解除要求があると、購入伝票が更新されているか否かが判定される（ステップ１０）。そして、購入伝票が更新されていればテーブル２２ａのバージョン番号に１を加え「０００２」とし（ステップ１１）、起票作業１００のアクティビティをデアクティベートする（ステップ１２）。一方、購入伝票が更新されていなければテーブル２２ａのバージョン番号から１を引き「００００」に戻し（ステップ１２）、再度ロック要求を待つ（ステップ５）。
起票作業１００のアクティビティにおいて、一般社員Ａから次のアクティビティへの移行要求があると、購入先決定作業１０２のアクティビティがアクティベートされる（ステップ２）。そして、購入先決定作業１０２において、データの入力作業があるか否かが判定される（ステップ３）。ここでは、購入先の入力があるので、テーブル２２ａのバージョン番号「０００２」を付加した電子情報名、「データ０００２」が担当者Ｂ及びＣに配布される（ステップ４）。
その後、担当者Ｂ又はＣからロック要求があるまで待機し（ステップ５）、ロック要求があるとバージョン番号の検査が行われる（ステップ６）。ここでは、担当者Ｂ及びＣの両方からロック要求があり、先に担当者Ｂからのロック要求がサーバ２０に到達したものとする。この場合、担当者Ｂからのロック要求に含まれるバージョン番号は「０００２」、テーブル２２ａのバージョン番号は「０００２」であるので、両者は等しく、電子情報がロック中であることを示すために、テーブル２２ａのバージョン番号が１増え「０００３」となる（ステップ７）。その後、担当者Ｂからロック解除要求、即ち、次のアクティビティへの移行要求が来るまで待機する（ステップ８）。待機中に、担当者Ｃからのロック要求が到達すると、同様な処理によりバージョン番号の検査が行われるが、ロック要求に含まれるバージョン番号は「０００２」、テーブル２２ａのバージョン番号は「０００３」であるので、両者は等しくなく、ロック要求が認められない。
担当者Ｂからロック解除要求があると、購入伝票が更新されているか否かが判定される（ステップ９）。そして、購入伝票が更新されていればテーブル２２ａのバージョン番号に１を加え「０００４」とし（ステップ１０）、購入先決定作業１０２のアクティビティをデアクティベートする（ステップ１１）。一方、購入伝票が更新されていなければテーブル２２ａのバージョン番号から１を引き「０００２」に戻し（ステップ１２）、再度ロック要求を待つ（ステップ５）。
購入先決定作業１０２のアクティビティにおいて、担当者Ｂから次のアクティビティへの移行要求があると、承認作業１０４のアクティビティがアクティベートされる（ステップ２）。そして、承認作業１０４において、データの入力作業があるか否かが判定される（ステップ３）。ここでは、データ入力がないバッチ的な承認作業であるので、テーブル２２ａのバージョン番号に１を加え「０００５」とし、その番号を付加した電子情報名「データ０００５」が担当者Ｄに配布される（ステップ１６）。
その後、担当者Ｄから更新要求、即ち、承認があるまで待機し（ステップ１７）、更新要求があるとバージョン番号の検査が行われる（ステップ１８）。ここでは、担当者Ｄからの更新要求に含まれるバージョン番号は「０００５」、テーブル２２ａのバージョン番号は「０００５」であるので、両者は等しく、購入伝票が更新されたことを示すために、テーブル２２ａのバージョン番号が１増え「０００６」となる（ステップ１９）。その後、購入伝票の更新処理が完了するまで待機し（ステップ２０）、承認作業１０４のアクティビティをデアクティベートする（ステップ２１）。
購入伝票が否認されると、購入先決定作業１０２のアクティビティに差し戻され、購入先決定作業１０２のアクティビティがアクティベートされる（ステップ２）。そして、購入先決定作業１０２において、データの入力作業があるか否かが判定される（ステップ３）。ここでは、購入先の入力があるので、テーブル２２ａのバージョン番号「０００６」を付加した電子情報名、例えば、「データ０００６」が担当者Ｂ及びＣに配布される（ステップ４）。
このとき、以前の購入先決定作業１０２において担当者Ｃによるロック要求が到達すると、その処理が開始される。しかし、購入者Ｃのロック要求に含まれるバージョン番号は「０００２」、テーブル２２ａのバージョン番号は「０００６」であるので、両者ではバージョン番号が等しくなく、ロック要求が認められない。
従って、購入伝票は、正当な処理権限を有する担当者からの要求によってのみ処理が行なわれ、例えば、旧バージョンに対する処理要求により更新されることはない。このため、電子情報としての購入伝票の信頼性・安定性を向上することができる。
このような機能を実現するプログラムを、例えば、磁気テープ，磁気ディスク，磁気ドラム，ＩＣカード，ＣＤ−ＲＯＭ等の記録媒体に記録しておけば、本発明に係る排他制御プログラムを市場に流通させることができる。そして、排他制御プログラムを取得した者は、例えば、一般的なクライアント／サーバシステムを利用して、本発明に係る排他制御装置を構築することができる。
産業上の利用可能性
以上説明したように、本発明に係る電子情報の排他制御装置又は排他制御方法は、簡易な構成で信頼性の高い電子情報へのアクセス排他制御を実現でき、極めて有用なものである。また、本発明に係る電子情報の排他制御プログラムを記録した記録媒体は、一般的なコンピュータシステムを利用して電子情報の排他制御装置を容易に構築できるので、極めて有用なものである。
【図面の簡単な説明】
図１は、本発明に係る電子情報の排他制御装置のシステム構成図である。
図２は、購入伝票を対象としたワークフロー処理の動作説明図である。
図３は、電子情報の排他制御内容を示すフローチャートである。
図４は、電子情報の排他制御内容を示すフローチャートである。
図５は、電子情報の排他制御内容を示すフローチャートである。
【図１】
0004037058.tif 000002
【図２】
0004037058.tif 000003
【図３】
0004037058.tif 000004
【図４】
0004037058.tif 000005
【図５】
0004037058.tif 000006