(57)【要約】【課題】排他制御において共有情報の整合性を確保しつつリポジトリに対する処理時間を抑制可能なリポジトリ管理装置、リポジトリ管理方法及びリポジトリ管理プログラムを提供することを目的とする。【解決手段】リポジトリ管理装置１０であって、第１記録手段３７を参照し、編集対象の編集単位で排他制御する手段３２と、利用者による編集の結果に応じて編集対象の編集単位の変更箇所を記録する第２記録手段３８と、編集の結果に応じて編集対象の編集単位と要素情報との関係を記録する第３記録手段３９と、第２記録手段３８及び第３記録手段３９を参照し、第１記録手段３７に記録されている編集単位間の共有関係の変更部分を更新する更新手段とを有することにより上記課題を解決する。【選択図】  図３
2011034124.tif 000002
【特許請求の範囲】
【請求項１】
リポジトリに格納されている要素情報を編集単位で排他制御するリポジトリ管理装置であって、
前記編集単位間の共有関係を記録した第１記録手段を参照し、編集対象の前記編集単位及び前記編集対象の前記編集単位と共有関係にある他の編集単位が共に編集可能であるときに、前記要素情報を前記編集対象の前記編集単位で排他制御する編集単位総括排他制御手段と、
利用者による要素情報に対する編集の結果に応じて前記編集対象の前記編集単位の変更箇所を記録する第２記録手段と、
前記編集の結果に応じて前記編集対象の前記編集単位と前記要素情報との関係を記録する第３記録手段と、
前記第２及び第３記録手段を参照し、前記第１記録手段に記録されている前記編集単位間の共有関係の変更部分を更新する更新手段と
を有するリポジトリ管理装置。
【請求項２】
前記第２記録手段は、前記編集対象の前記編集単位の変更箇所として、前記編集対象の前記編集単位に追加された要素情報，前記編集対象の前記編集対象の編集単位から削除された要素情報を記録する請求項１記載のリポジトリ管理装置。
【請求項３】
リポジトリに格納されている要素情報を編集単位で排他制御するリポジトリ管理装置によって実行されるリポジトリ管理方法であって、
前記リポジトリ管理装置が、
前記編集単位間の共有関係を記録した第１記録手段を参照し、編集対象の前記編集単位及び前記編集対象の前記編集単位と共有関係にある他の編集単位が共に編集可能であるときに、前記要素情報を前記編集対象の前記編集単位で排他制御する編集単位総括排他制御ステップと、
利用者による要素情報に対する編集の結果に応じて前記編集対象の前記編集単位の変更箇所を記録する第２記録ステップと、
前記編集の結果に応じて前記編集対象の前記編集単位と前記要素情報との関係を記録する第３記録ステップと、
前記第２及び第３記録ステップにおける記録を参照し、前記第１記録手段に記録されている前記編集単位間の共有関係の変更部分を更新する更新ステップと
を実行するリポジトリ管理方法。
【請求項４】
リポジトリに格納されている要素情報を編集単位で排他制御するコンピュータを、
前記編集単位間の共有関係を記録した第１記録手段を参照し、編集対象の前記編集単位及び前記編集対象の前記編集単位と共有関係にある他の編集単位が共に編集可能であるときに、前記要素情報を前記編集対象の前記編集単位で排他制御する編集単位総括排他制御手段と、
前記編集単位総括排他制御手段による編集結果に応じて前記編集対象の前記編集単位の変更箇所を第２記録手段に記録する手段と、
前記編集単位総括排他制御手段による編集結果に応じて前記編集対象の前記編集単位と前記要素情報との関係を第３記録手段に記録する手段と、
前記第２及び第３記録手段を参照し、前記第１記録手段に記録されている前記編集単位間の共有関係の変更部分を更新する更新手段と
して機能させるためのリポジトリ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リポジトリ管理装置、リポジトリ管理方法及びリポジトリ管理プログラムに係り、特にリポジトリの排他制御を管理するリポジトリ管理装置、リポジトリ管理方法及びリポジトリ管理プログラムに関する。
【背景技術】
【０００２】
リポジトリとは、データ，プログラムなどの情報を体系的に管理するための格納庫のことである。リポジトリでは情報が要素（以下、要素情報という）ごとに管理される。要素情報は、いくつかのグループ（以下、編集単位という）ごとに一括して編集されることもある。要素情報の編集は多人数によって並行して実施されることが多かった。
【０００３】
リポジトリにおいて、並行編集時に不整合が生じないようにする為の基本的な方法としては個々の要素情報ごとに排他制御を行うものがあった。排他制御とは、ある者が編集している要素情報を他者が編集できないようにロックするものである。しかし、個々の要素情報ごとに排他制御を行う方法は、要素情報の数が多数になると、ロック／アンロックの確認や実施に要する時間も多大になり、リポジトリに対する処理時間が増大する。
【０００４】
従来は、リポジトリに対する処理時間を抑制するため、例えば以下のような方法が知られている。第１の方法は、処理格納庫を分類・階層化し、要求に応じて適切な分類・階層で排他制御するものである（例えば特許文献１参照）。
【０００５】
また、第２の方法は、データの整合性とアクセスの容易性の観点から、データを個別に格納するか、１つのファイルにまとめて一括して格納するかを、利用者が選択できるものである（例えば特許文献２参照）。また、第３の方法は、親子関係にあるオブジェクトを一括して排他制御するものである（例えば特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭６２−２８２３３７号公報
【特許文献２】特開平５−１５８７７７号公報
【特許文献３】特開平１１−８５５９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記した従来の第１〜第３の方法は、複数の集合（第１の方法における分類・階層、第２の方法におけるファイル、第３の方法における親子関係）間に共有情報がある場合について、排他制御ができない。特に、従来の第２の方法は複数のファイル間に共有情報がある場合、処理時間を抑制するために本来一元管理すべき共有情報を複数のファイルで別々に管理するが、共有情報の整合性を確保できない。
【０００８】
このように、上記した従来の方法は、ある集合ごとに排他制御するとき、複数の集合間に共有情報があると、共有情報の整合性を確保しつつ、リポジトリに対する処理時間を抑制できないという問題があった。
【０００９】
本発明の一実施形態は、上記の点に鑑みなされたもので、排他制御において共有情報の整合性を確保しつつリポジトリに対する処理時間を抑制可能なリポジトリ管理装置、リポジトリ管理方法及びリポジトリ管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明の一実施形態は、リポジトリに格納されている要素情報を編集単位で排他制御するリポジトリ管理装置であって、前記編集単位間の共有関係を記録した第１記録手段を参照し、編集対象の前記編集単位及び前記編集対象の前記編集単位と共有関係にある他の編集単位が共に編集可能であるときに、前記要素情報を前記編集対象の前記編集単位で排他制御する編集単位総括排他制御手段と、利用者による要素情報に対する編集の結果に応じて前記編集対象の前記編集単位の変更箇所を記録する第２記録手段と、前記編集の結果に応じて前記編集対象の前記編集単位と前記要素情報との関係を記録する第３記録手段と、前記第２及び第３記録手段を参照し、前記第１記録手段に記録されている前記編集単位間の共有関係の変更部分を更新する更新手段とを有する。
【００１１】
なお、本発明の一実施形態の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１２】
上述の如く、本発明の一実施形態によれば、排他制御において共有情報の整合性を確保しつつリポジトリに対する処理時間を抑制できる。
【図面の簡単な説明】
【００１３】
【図１】本実施例のリポジトリ管理システムの一例のシステム構成図である。
【図２】本実施例のリポジトリ管理システムの一例のハードウェア構成図である。
【図３】本実施例のリポジトリ管理システムの一例のブロック構成図である。
【図４】リポジトリ管理装置の編集開始の処理手順を表すフローチャートである。
【図５】編集要求，編集返答及び要素単位編集要求の一例を表したデータ構造図である。
【図６】リポジトリ管理装置の編集中の処理手順を表すフローチャートである。
【図７】リポジトリ管理装置の編集終了の処理手順を表すフローチャートである。
【図８】本実施例のリポジトリ管理システムにおける編集単位ごとの排他制御の処理手順を説明するための一例の説明図（１／２）である。
【図９】本実施例のリポジトリ管理システムにおける編集単位ごとの排他制御の処理手順を説明するための一例の説明図（２／２）である。
【図１０】本実施例のリポジトリ管理システムにおける要素関係表及び共有関係表の更新の処理手順を説明するための一例の説明図（１／５）である。
【図１１】本実施例のリポジトリ管理システムにおける要素関係表及び共有関係表の更新の処理手順を説明するための一例の説明図（２／５）である。
【図１２】本実施例のリポジトリ管理システムにおける要素関係表及び共有関係表の更新の処理手順を説明するための一例の説明図（３／５）である。
【図１３】本実施例のリポジトリ管理システムにおける要素関係表及び共有関係表の更新の処理手順を説明するための一例の説明図（４／５）である。
【図１４】本実施例のリポジトリ管理システムにおける要素関係表及び共有関係表の更新の処理手順を説明するための一例の説明図（５／５）である。
【発明を実施するための形態】
【００１４】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。
【００１５】
図１は本実施例のリポジトリ管理システムの一例のシステム構成図である。図１のリポジトリ管理システム１はリポジトリ管理装置１０，リポジトリ装置１１を有する。リポジトリ管理装置１０及びリポジトリ装置１１は一つの筐体内に設けても良いし、複数の筐体内に分離して設けてもよい。
【００１６】
リポジトリ装置１１は要素情報が体系的に格納されている場所である格納庫を１つ以上有している。リポジトリ管理装置１０はリポジトリ装置１１の格納庫に格納されている要素情報を体系的に管理する。リポジトリ管理装置１０とリポジトリ装置１１とが一つの筐体内に設けられている場合、図１のリポジトリ管理システム１は例えば図２に示すようなハードウェア構成により実現される。
【００１７】
図２は本実施例のリポジトリ管理システムの一例のハードウェア構成図である。図２のリポジトリ管理システム１は、それぞれバスＢで相互に接続されている入力装置２１，出力装置２２，ドライブ装置２３，補助記憶装置２４，主記憶装置２５，演算処理装置２６及びインターフェース装置２７を有する。
【００１８】
入力装置２１はキーボードやマウス等である。入力装置２１は、各種信号を入力するために用いられる。出力装置２２はディスプレイ装置等である。出力装置２２は各種ウインドウやデータ等を表示するために用いられる。インターフェース装置２７は、モデム，ＬＡＮカード等である。インターフェース装置２７は、ネットワークに接続する為に用いられる。つまり、インターフェース装置２７はネットワークに接続しないのであれば必須でない。
【００１９】
本実施例のリポジトリ管理プログラムは、リポジトリ管理システム１を制御する各種プログラムの少なくとも一部である。リポジトリ管理プログラムは例えば記録媒体２８の配布やネットワークからのダウンロードなどによって提供される。リポジトリ管理プログラムを記録した記録媒体２８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００２０】
また、リポジトリ管理プログラムを記録した記録媒体２８がドライブ装置２３にセットされると、リポジトリ管理プログラムは記録媒体２８からドライブ装置２３を介して補助記憶装置２４にインストールされる。ネットワークからダウンロードされたリポジトリ管理プログラムは、インターフェース装置２７を介して補助記憶装置２４にインストールされる。補助記憶装置２４は、インストールされたリポジトリ管理プログラムを格納すると共に、必要なファイル，データ等を格納する。
【００２１】
主記憶装置２５は、リポジトリ管理プログラムの起動時に補助記憶装置２４からリポジトリ管理プログラムを読み出して格納する。そして、演算処理装置２６は主記憶装置２５に格納されたリポジトリ管理プログラムに従うことで、後述するような各種処理を実現している。なお、リポジトリ装置１１は例えば補助記憶装置２４の分割された記憶領域の一つ（パーティション）により実現できる。
【００２２】
図３は本実施例のリポジトリ管理システムの一例のブロック構成図である。図３のリポジトリ管理装置１０は、編集要求管理部３１，編集単位総括排他制御部３２，要素情報管理部３３，状態表３５，要素関係表３６，共有関係表３７，変更箇所表３８を有する。図３のリポジトリ装置１１は、要素情報格納庫３４を有する。
【００２３】
編集要求管理部３１はユーザ等からの編集要求を受信し管理する。編集単位総括排他制御部３２は編集単位ごとに総括して排他制御を行う。要素情報管理部３３はリポジトリ装置１１の要素情報格納庫３４と一対一に対応付けられている。要素情報管理部３３は対応する要素情報格納庫３４に格納されている要素情報を管理する。要素情報格納庫３４は要素情報管理部３３の管理により要素情報が体系的に格納されている場所である。
【００２４】
状態表３５は編集単位ごとの編集状態（ロック、アンロック）を管理（記録）する。要素関係表３６は編集単位と編集単位の構成要素である要素情報との関係を管理（記録）する。共有関係表３７は編集単位間の共有関係を管理（記録）する。
【００２５】
共有関係表３７では、それぞれの編集単位の構成要素に同一の要素情報（共有情報）が含まれるとき共有関係あり、それぞれの編集単位の構成要素に共有情報が含まれないとき共有関係なしと管理する。変更箇所表３８は、編集対象の編集単位，編集対象の編集単位に追加された要素情報，編集対象の編集単位から削除された要素情報，編集対象の編集単位に追加された要素情報でも編集対象の編集単位から削除された要素情報でもない要素情報を管理（記録）する。
【００２６】
このように、図３のリポジトリ管理装置１０は編集単位ごとに総括して排他制御する編集単位総括排他制御部３２，状態表３５，要素関係表３６，共有関係表３７，変更箇所表３８を導入し、要素情報ごとではなく編集単位ごとに排他制御する。また、図３のリポジトリ管理装置１０は要素関係表３６及び共有関係表３７により編集単位の構成要素及び編集単位間の共有関係を管理し、要素関係表３６及び変更箇所表３８に基づいて、共有関係表３７を部分的に更新する。
【００２７】
例えば図３のリポジトリ管理装置１０は次のように排他制御を行う。図３は、編集対象の編集単位である編集単位Ｂに対して、要素情報（４）を追加し、要素情報（３）を削除する指示を利用者から受信した場合の処理イメージを例示したものである。
【００２８】
編集要求管理部３１は編集単位ごとの編集要求を利用者から受信する。編集開始時、編集単位総括排他制御部３２は編集対象の編集単位の編集状態を状態表３５で調べる。編集単位総括排他制御部３２は最新の共有関係表３７に記載された共有関係にある編集単位の編集状態を状態表３５で調べる。
【００２９】
編集単位総括排他制御部３２は編集対象の編集単位の編集状態と、編集対象の編集単位と共有関係にある編集単位の編集状態とが共にアンロックであるときに、要素単位ではなく編集単位ごとに、編集対象の編集単位の排他制御の開始処理（ロック）を行う。
【００３０】
編集時、編集単位総括排他制御部３２は編集結果に応じて、要素関係表（編集前）３６を要素関係表（編集後）３９のように更新する。編集単位総括排他制御部３２は編集対象の編集単位の変更箇所を、変更箇所表３８に記載する。
【００３１】
編集終了時、編集単位総括排他制御部３２は変更箇所表３８に記載した、編集対象の編集単位における、編集対象の編集単位に追加された要素情報，編集対象の編集単位から削除された要素情報，編集対象の編集単位に追加された要素情報でも編集対象の編集単位から削除された要素情報でもない要素情報に基づき、共有関係表（編集前）３７を共有関係表（編集後）４０のように部分的に更新する。最後に、編集単位総括排他制御部３２は編集対象の編集単位の排他制御の終了処理（アンロック）を行い、編集要求に対する処理を終了する。
【００３２】
なお、編集単位間の共有関係の更新のアルゴリズムは以下のようになる。
【００３３】
ｎ個の要素情報から構成される、ある編集単位Ｘの
編集前の状態をX_old＝[x_old(1),x_old(2),…,x_old(n)]、
編集後の状態をX_new＝[x_new(1),x_new(2),…,x_new(n)]、別の編集単位Ｙの
編集前の状態をY_old＝[y_old(1),y_old(2),…,y_old(n)]、
編集後の状態をY_new＝[y_new(1),y_new(2),…,y_new(n)]、とする。
【００３４】
また、今回の編集対象は編集単位Ｘとする。編集単位Ｙは編集対象でないとする。このとき、X_newとY_newの共有関係X_new∧Y_newは以下のようになる。「∧」は論理積を表すものとする。「∨」は論理和を表すものとする。
【００３５】
X_new∧Y_new
＝X_new∧Y_old
＝[x_new(1),x_new(2),…,x_new(n)]∧[y_old(1),y_old(2),…,y_old(n)]
＝[x_new(1)∧y_old(1)]∨[x_new(2)∧y_old(2)]∨…∨[x_new(n)∧y_old(n)]
＝∨_{i=1,2,…,n}[x_new(i)∧y_old(i)]
＝∨_{i|[x_old(i)＝true]∧[x_new(i)＝true]}[x_new(i)∧y_old(i)]  ※編集対象の編集単位に追加された要素情報でも編集対象の編集単位から削除された要素情報でもない要素情報に関する項
∨∨_{i|[x_old(i)＝false]∧[x_new(i)＝false]}[x_new(i)∧y_old(i)]  ※編集対象の編集単位に追加された要素情報でも編集対象の編集単位から削除された要素情報でもない要素情報に関する項
∨∨_{i|[x_old(i)＝false]∧[x_new(i)＝true]}[x_new(i)∧y_old(i)]  ※編集対象の編集単位に追加された要素情報に関する項
∨∨_{i|[x_old(i)＝true]∧[x_new(i)＝false]}[x_new(i)∧y_old(i)]  ※編集対象の編集単位から削除された要素情報に関する項
上記の関係から、編集単位間の共有関係の更新のアルゴリズムは以下のようになる。
【００３６】
要素情報x_new(i)が編集対象の編集単位に追加された場合
if ∃_{i}[x_old(i)＝false]∧[x_new(i)＝true]∧[x_new(i)∧y_old(i)]  ※編集対象の編集単位に追加された要素情報に関する項
then X_newとY_newの共有関係をtrue(○)に上書き
要素情報x_new(i)が編集対象の編集単位から削除された場合
if ∃_{i}[x_old(i)＝true]∧[x_new(i)＝false]∧[x_new(i)∧y_old(i)]  ※編集対象の編集単位から削除された要素情報に関する項
then
if ∃_{i}[x_old(i)＝true]∧[x_new(i)＝true]∧[x_new(i)∧y_old(i)]  ※編集対象の編集単位に追加された要素情報でも編集対象の編集単位から削除された要素情報でもない要素情報に関する項
then X_newとY_newの共有関係をtrue(○)に上書き
else X_newとY_newの共有関係をfalse(×)に上書き
図４はリポジトリ管理装置の編集開始の処理手順を表すフローチャートである。編集要求管理部３１は図５に示すような編集要求を受信すると、ステップＳ１からステップＳ２に進む。図５は、編集要求，編集返答及び要素単位編集要求の一例を表したデータ構造図である。
【００３７】
編集要求のデータ構造は、編集要求者名，編集単位名，編集区分を有する。編集区分の値は編集開始又は編集終了を表す。編集要求の編集区分の値が編集開始であれば、編集要求管理部３１はステップＳ２からステップＳ３に進む。なお、編集要求の編集区分の値が編集開始でなければ、編集要求管理部３１はステップＳ１に戻る。
【００３８】
ステップＳ３では、編集要求管理部３１が編集要求の編集単位名の値を編集対象の編集単位名に代入する。ここで、編集要求の編集単位名の値を編集対象の編集単位名に代入するとは、メモリのワーク領域が用意されていて、ワーク領域に定義されている編集単位名という領域に編集要求の編集単位名の値を代入することを言う。編集要求管理部３１は編集要求の編集単位名の値を編集対象の編集単位名に代入したあと、編集要求の受信を編集単位総括排他制御部３２に通知する。
【００３９】
ステップＳ４に進み、編集対象の編集単位の編集情報がアンロックであり、且つ、編集対象の編集単位と共有関係にある編集単位の編集状態がアンロックであるとき、編集単位総括排他制御部３２は、その旨を編集要求管理部３１に通知する。
【００４０】
なお、編集対象の編集単位の編集情報がアンロックでなく、又は、編集対象の編集単位と共有関係にある編集単位の編集状態がアンロックでないとき、編集単位総括排他制御部３２は、その旨を編集要求管理部３１に通知する。
【００４１】
編集対象の編集単位の編集情報がアンロックでなく、又は、編集対象の編集単位と共有関係にある編集単位の編集状態がアンロックでない旨が通知されると、編集要求管理部３１はステップＳ５に進み、図５に示すような編集返答の編集区分の値として編集拒絶を代入する。編集返答のデータ構造は、編集要求者名，編集単位名，編集区分を有する。編集区分の値は編集許可又は編集拒絶を表す。ステップＳ６に進み、編集要求管理部３１は編集応答を返信したあと、ステップＳ１に戻る。
【００４２】
一方、編集対象の編集単位の編集情報がアンロックであり、且つ、編集対象の編集単位と共有関係にある編集単位の編集状態がアンロックである旨が通知されると、編集要求管理部３１はステップＳ７に進み、編集返答の編集区分の値として編集許可を代入する。ステップＳ８に進み、編集要求管理部３１は編集応答を返信する。
【００４３】
ステップＳ９に進み、編集単位総括排他制御部３２は変更箇所表３８を初期化する。ステップＳ１０に進み、編集単位総括排他制御部３２は変更箇所表３８の「編集対象の編集単位」の欄に、編集対象の編集単位名を代入したあと、図６の編集中の処理に進む。ここで「編集対象の編集単位」の欄に編集対象の編集単位名を代入するとは、メモリのワーク領域が用意されていて、ワーク領域に定義されている「編集対象の編集単位」という領域に編集対象の編集単位名の値を代入することを言う。
【００４４】
図６はリポジトリ管理装置の編集中の処理手順を表すフローチャートである。編集要求管理部３１は編集要求を受信すると、ステップＳ１１からステップＳ１２に進む。編集要求の編集区分の値が編集開始であれば、編集要求管理部３１はステップＳ１３に進む。なお、編集要求の編集区分の値が編集開始でなければ、編集要求管理部３１はステップＳ１５に進む。
【００４５】
ステップＳ１３では、編集要求管理部３１が、編集返答の編集区分の値として編集拒絶を代入する。ステップＳ１４に進み、編集要求管理部３１は編集応答を返信したあと、ステップＳ１５に進む。編集要求管理部３１は、編集要求の編集区分の値が編集終了であれば図７の編集終了の処理に進む。なお、編集要求管理部３１は、編集要求の編集区分の値が編集終了でなければステップＳ１６に進む。
【００４６】
編集要求管理部３１は図５に示すような要素単位編集要求を受信すると、ステップＳ１６からステップＳ１７に進む。要素単位編集要求のデータ構造は、要素情報名，値，編集種別を有する。編集種別の値は追加，更新，削除を表す。
【００４７】
ステップＳ１７では、編集要求管理部３１が要素単位編集要求の要素情報名の値を編集対象の要素情報名に代入する。ここで、要素単位編集要求の要素情報名の値を編集対象の要素情報名に代入するとは、メモリのワーク領域が用意されていて、ワーク領域に定義されている編集対象の要素情報名という領域に要素単位編集要求の要素情報名の値を代入することを言う。
【００４８】
ステップＳ１８に進み、編集要求管理部３１は要素単位編集要求の値を編集対象の要素情報値に代入する。ここで、要素単位編集要求の値を編集対象の要素情報値に代入するとは、メモリのワーク領域が用意されていて、ワーク領域に定義されている編集対象の要素情報値という領域に要素単位編集要求の値を代入することを言う。
【００４９】
ステップＳ１９に進み、編集要求管理部３１は要素単位編集要求の編集種別の値を編集対象の編集種別に代入する。ここで、要素単位編集要求の編集種別の値を編集対象の編集種別に代入するとは、メモリのワーク領域が用意されていて、ワーク領域に定義されている編集対象の編集種別という領域に要素単位編集要求の編集種別の値を代入することを言う。以下、代入するという語句は同様な意味を有する。編集要求管理部３１は、要素単位編集要求の受信を編集単位総括排他制御部３２に通知する。
【００５０】
編集対象の編集種別が追加であるとき、編集単位総括排他制御部３２はステップＳ２０からステップＳ２１に進み、要素情報格納庫３４のうち、要素情報名が編集対象の要素情報名と等しい要素情報格納庫３４と対応付けられている要素情報管理部３３に対し、その要素情報格納庫３４の値に、編集対象の要素情報値の値を代入する。
【００５１】
ステップＳ２２に進み、編集単位総括排他制御部３２は要素関係表３６の編集単位名が編集対象の編集単位名であり、且つ要素情報が編集対象の要素情報名である欄に対して「○」を上書きする。ステップＳ２３に進み、編集単位総括排他制御部３２は変更箇所表３８の「編集対象の編集単位」に追加された要素情報の欄に編集対象の要素情報名を追記する。
【００５２】
編集対象の編集種別が更新であるとき、編集単位総括排他制御部３２はステップＳ２４からステップＳ２５に進み、要素情報格納庫３４のうち、要素情報名が編集対象の要素情報名と等しい要素情報格納庫３４と対応付けられている要素情報管理部３３に対し、その要素情報格納庫３４の値に、編集対象の要素情報値の値を代入する。
【００５３】
編集対象の編集種別が削除であるとき、編集単位総括排他制御部３２はステップＳ２６からステップＳ２７に進み、要素情報格納庫３４のうち、要素情報名が編集対象の要素情報名と等しい要素情報格納庫３４と対応付けられている要素情報管理部３３に対し、その要素情報格納庫３４の値に、「（空）」を代入する。
【００５４】
ステップＳ２８に進み、編集単位総括排他制御部３２は要素関係表３６の編集単位名が編集対象の編集単位名であり、且つ要素情報が編集対象の要素情報名である欄に対して「（空）」を上書きする。ステップＳ２９に進み、編集単位総括排他制御部３２は変更箇所表３８の「編集対象の編集単位から削除された要素情報」の欄に編集対象の要素情報名を追記する。図６の編集中の処理は繰り返し行われる。
【００５５】
図７はリポジトリ管理装置の編集終了の処理手順を表すフローチャートである。編集単位総括排他制御部３２はステップＳ３１に進み、変更箇所表３８の「編集対象の編集単位に追加された要素情報でも編集対象の編集単位から削除された要素情報でもない要素情報」の欄に、「編集対象の編集単位に追加された要素情報」の欄及び「編集対象の編集単位から削除された要素情報」の欄のいずれにも記載されていない要素情報名を追記する。
【００５６】
ステップＳ３２に進み、編集単位総括排他制御部３２は追加要素情報名リストに変更箇所表３８の「編集対象の編集単位に追加された要素情報」の欄の追加された要素情報名の値を代入する。
【００５７】
ステップＳ３３に進み、編集単位総括排他制御部３２は削除要素情報名リストに変更箇所表３８の「編集対象の編集単位に削除された要素情報」の欄の削除された要素情報名の値を代入する。
【００５８】
ステップＳ３４に進み、編集単位総括排他制御部３２は無変要素情報名リストに変更箇所表３８の「編集対象の編集単位に追加された要素情報でも編集対象の編集単位から削除された要素情報でもない要素情報」の欄の追加も削除もされなかった要素情報名の値を代入する。
【００５９】
追加要素情報名リストが「（空）」でなければ、編集単位総括排他制御部３２はステップＳ３５からステップＳ３６に進み、追加要素情報名リストのすべての要素情報名に対してステップＳ３７の処理を行う。
【００６０】
ステップＳ３７では、編集単位総括排他制御部３２が要素関係表３９において、追加要素情報名リストの要素情報名と同一の要素情報名の欄に「○」が付いている編集対象の編集単位以外の全ての編集単位名に対してステップＳ３８〜ステップＳ３９の処理を行う。
【００６１】
編集単位総括排他制御部３２は追加要素情報名リストの要素情報名と同一の要素情報名の欄に「○」が付いている編集対象の編集単位以外の編集単位が存在すれば、ステップＳ３８からステップＳ３９に進み、共有関係表３７において、存在した編集単位と編集対象の編集単位との交差欄に「○」を上書きする。
【００６２】
削除要素情報名リストが「（空）」でなければ、編集単位総括排他制御部３２はステップＳ４０からステップＳ４１に進み、無変要素情報名リストのすべての要素情報名に対してステップＳ４２の処理を行う。
【００６３】
ステップＳ４２では、編集単位総括排他制御部３２が要素関係表３９において、無変要素情報名リストの要素情報名と同一の要素情報名の欄に「○」が付いている編集対象の編集単位以外の全ての編集単位名に対してステップＳ４３〜ステップＳ４５の処理を行う。
【００６４】
編集単位総括排他制御部３２は無変要素情報名リストの要素情報名と同一の要素情報名の欄に「○」が付いている編集対象の編集単位以外の編集単位が存在すれば、ステップＳ４３からステップＳ４４に進み、共有関係表４０において、存在した編集単位と編集対象の編集単位との交差欄に「○」を上書きする。なお、編集単位総括排他制御部３２は無変要素情報名リストの要素情報名と同一の要素情報名の欄に「○」が付いていない編集対象の編集単位以外の編集単位が存在すれば、ステップＳ４３からステップＳ４５に進み、共有関係表３７において、存在した編集単位と編集対象の編集単位との交差欄に「（空）」を上書きする。図７の編集終了の処理後、リポジトリ管理装置１０は図４の編集開始の処理に戻る。
【実施例１】
【００６５】
図８〜図９は、本実施例のリポジトリ管理システムにおける編集単位ごとの排他制御の処理手順を説明するための一例の説明図である。図８のリポジトリ管理装置１０は編集単位Ａがロック状態かつ編集単位Ｂがアンロック状態である。図８のリポジトリ管理装置１０の編集要求管理部３１は編集単位Ｂに対する編集要求を受信している。
【００６６】
図８のリポジトリ管理装置１０は編集単位Ｂがアンロック状態である。しかし、図８のリポジトリ管理装置１０は共有関係表３７で管理されているように編集単位Ｂと共有関係にある編集単位Ａがロック状態である。このため、図９のリポジトリ管理装置１０の編集要求管理部３１は編集拒絶の編集応答を行う。
【００６７】
また、図１０〜図１４は本実施例のリポジトリ管理システムにおける要素関係表及び共有関係表の更新の処理手順を説明するための一例の説明図である。図１０のリポジトリ管理装置１０は、編集単位Ａ，Ｂ及びＣがアンロック状態である。図１０のリポジトリ管理装置１０の編集要求管理部３１は編集単位Ｂに対する編集要求を受信している。
【００６８】
図１０のリポジトリ管理装置１０は編集単位Ｂがアンロック状態である。また、図１０のリポジトリ管理装置１０は共有関係表３７で管理されているように編集単位Ｂと共有関係にある編集単位Ａもアンロック状態である。このため、図１１のリポジトリ管理装置１０の編集単位総括排他制御部３２は状態表３５に表されているように編集単位Ｂをロックする。図１１のリポジトリ管理装置１０の編集要求管理部３１は編集受理の編集応答を行う。
【００６９】
図１２のリポジトリ管理装置１０は編集単位Ｂにおいて、要素情報（３）を編集単位Ｂから削除し、要素情報（４）を編集単位Ｂに追加している。なお、要素情報（３）を編集単位Ｂから削除し、要素情報（４）を編集単位Ｂに追加する処理は編集単位Ａ及びＣがアンロック状態であるため可能となっている。図１２のリポジトリ管理装置１０の編集単位総括排他制御部３２は編集対象の編集単位Ｂの変更箇所に応じて、変更箇所表３８及び要素関係表３９のように更新する。例えば図１２の要素関係表３９では、編集単位Ｂと要素情報（３）との交差欄から「○」が削除され、編集単位Ｂと要素情報（４）との交差欄に「○」が追加されている。
【００７０】
図１３のリポジトリ管理装置１０は変更箇所表３８を参照して、編集単位Ｂに追加された要素情報があるかを判定する。図１３の例では編集単位Ｂに追加された要素情報（４）があるため、要素関係表３９を参照して編集単位Ｂと共有関係になる編集単位がないか調べる。
【００７１】
図１３の例では、要素情報（４）の欄に「○」が付いている編集単位Ｃが共有関係になる編集単位として見つかる。編集単位総括排他制御部３２は共有関係になった編集単位ＢとＣとが共有関係ありとなるように共有関係表３７を共有関係表４０のように更新する。具体的に、図１３の共有関係表４０では編集単位ＢとＣとの交差欄に「○」が追加されている。
【００７２】
また、図１３のリポジトリ管理装置１０は変更箇所表３８を参照して、編集単位Ｂから削除された要素情報があるかを判定する。図１３の例では編集単位Ｂから削除された要素情報（３）があるため、変更箇所表３８を参照して、追加も削除もされなかった要素情報（２）等と共有関係になる編集単位がないか調べる。
【００７３】
図１３の例では、要素情報（２）の欄に「○」が付いている編集単位Ａが共有関係になる編集単位として見つかる。編集単位総括排他制御部３２は共有関係になった編集単位ＡとＢとが共有関係ありとなるように共有関係表３７を共有関係表４０のように更新する。具体的に、図１３の共有関係表４０では編集単位ＡとＢとの交差欄に「○」が追加（上書き）されている。
【００７４】
図１４のリポジトリ管理装置１０の編集単位総括排他制御部３２は、編集単位Ｂをアンロックする。その後、図１４のリポジトリ管理装置１０の編集要求管理部３１は編集要求に対する処理を終了する。
【００７５】
以下では本実施例のリポジトリ管理システム１について定量的評価を行う。個々の要素情報ごとに排他制御を行う基本的な方法の場合は、編集単位の要素情報数をｎ、その編集単位の排他制御時のロック確認数をｎとすると、その編集単位の排他制御時のロック実施数がｎとなる。
【００７６】
編集単位ごとの排他制御を行う本実施例のリポジトリ管理システム１の場合は、ある編集単位と共有関係を有する編集単位の数をｍ、その編集単位の排他制御時のロック確認数をｍとすると、その編集単位の排他制御時のロック実施数が１となる。
【００７７】
個々の要素情報ごとに排他制御を行う基本的な方法と編集単位ごとの排他制御を行う本実施例のリポジトリ管理システム１とを比較すると、ｎ＞＞ｍ，１ならば、排他制御時のロック確認数が「個々の要素情報ごとに排他制御を行う基本的な方法」＞＞「編集単位ごとの排他制御を行う本実施例のリポジトリ管理システム１」、排他制御時のロック実施数が「個々の要素情報ごとに排他制御を行う基本的な方法」＞＞「編集単位ごとの排他制御を行う本実施例のリポジトリ管理システム１」となる。
【００７８】
したがって、個々の要素情報ごとに排他制御を行う基本的な方法よりも編集単位ごとの排他制御を行う本実施例のリポジトリ管理システム１は、ロック確認・ロック実施とも処理時間が抑制される。
【００７９】
また、本実施例のリポジトリ管理システム１は要素関係表３６及び共有関係表３７（以下では、要素関係表３６及び共有関係表３７を関係表と総称する）を編集結果に応じて部分的に更新する。
【００８０】
例えば編集の度に関係表を作り直す場合は要素情報の数をｐ、編集単位の数をｑとすると、関係表の更新欄の数がｐ×ｑとなる。編集結果に応じて関係表を部分的に更新する本実施例のリポジトリ管理システム１の場合は、ある編集単位で追加された要素情報の数をｐ１、その要素情報と共有関係にある編集単位の数をｑ１、その編集単位で追加も削除もされなかった要素情報の数をｐ２、その要素情報と共有関係にある編集単位の数をｑ２とすると、関係表の更新欄の数がｐ１×ｑ１＋ｐ２×ｑ２となる。
【００８１】
編集の度に関係表を作り直す場合と編集結果に応じて関係表を部分的に更新する本実施例のリポジトリ管理システム１の場合とを比較すると、ｐ＞＞ｐ１，ｐ２あるいはｑ＞＞ｑ１，ｑ２ならば、関係表の更新欄の数が「編集の度に関係表を作り直す場合」＞＞「編集結果に応じて関係表を部分的に更新する本実施例のリポジトリ管理システム１」となることが分かる。
【００８２】
したがって、編集の度に関係表を作り直す場合よりも編集結果に応じて関係表を部分的に更新する本実施例のリポジトリ管理システム１は、関係表の更新でも処理時間が抑制される。
【００８３】
このように、本実施例のリポジトリ管理システム１は、編集単位間に共有情報がある場合にも編集単位ごとに排他制御できるとともに、編集単位間の共有関係も効率的に更新できるため、要素情報の数が増大した場合にも整合性を確保しつつ、リポジトリに対する処理時間を抑制することができ、その結果、リポジトリを使用する使用者の作業効率を改善できる。 
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
リポジトリに格納されている要素情報を編集単位で排他制御するリポジトリ管理装置であって、
前記編集単位間の共有関係を記録した第１記録手段を参照し、編集対象の前記編集単位及び前記編集対象の前記編集単位と共有関係にある他の編集単位が共に編集可能であるときに、前記要素情報を前記編集対象の前記編集単位で排他制御する編集単位総括排他制御手段と、
利用者による要素情報に対する編集の結果に応じて前記編集対象の前記編集単位の変更箇所を記録する第２記録手段と、
前記編集の結果に応じて前記編集対象の前記編集単位と前記要素情報との関係を記録する第３記録手段と、
前記第２及び第３記録手段を参照し、前記第１記録手段に記録されている前記編集単位間の共有関係の変更部分を更新する更新手段と
を有するリポジトリ管理装置。
（付記２）
前記第２記録手段は、前記編集対象の前記編集単位の変更箇所として、前記編集対象の前記編集単位に追加された要素情報，前記編集対象の前記編集対象の編集単位から削除された要素情報を記録する付記１記載のリポジトリ管理装置。
（付記３）
前記更新手段は、前記第２記録手段に前記編集対象の前記編集単位に追加された要素情報が記録されていれば、前記追加された要素情報により前記編集対象の前記編集単位と共有関係になる編集単位の有無を、前記第３記録手段を参照して判定し、前記編集対象の前記編集単位と共有関係になる他の編集単位があれば、前記第１記録手段に記録されている前記編集単位間の共有関係の変更部分を更新する
付記１又は２記載のリポジトリ管理装置。
（付記４）
前記更新手段は、前記第２記録手段に前記編集対象の前記編集単位から削除された要素情報が記録されていれば、前記第２記録手段に記録されている前記編集対象の前記編集単位に追加された要素情報でも編集対象の前記編集単位から削除された要素情報でもない要素情報により前記編集対象の前記編集単位と共有関係になる編集単位の有無を、前記第３記録手段を参照して判定し、前記第１記録手段に記録されている前記編集単位間の共有関係の変更部分を更新する付記１乃至３何れか一項記載のリポジトリ管理装置。
（付記５）
リポジトリに格納されている要素情報を編集単位で排他制御するリポジトリ管理装置によって実行されるリポジトリ管理方法であって、
前記リポジトリ管理装置が、
前記編集単位間の共有関係を記録した第１記録手段を参照し、編集対象の前記編集単位及び前記編集対象の前記編集単位と共有関係にある他の編集単位が共に編集可能であるときに、前記要素情報を前記編集対象の前記編集単位で排他制御する編集単位総括排他制御ステップと、
利用者による要素情報に対する編集の結果に応じて前記編集対象の前記編集単位の変更箇所を記録する第２記録ステップと、
前記編集の結果に応じて前記編集対象の前記編集単位と前記要素情報との関係を記録する第３記録ステップと、
前記第２及び第３記録ステップにおける記録を参照し、前記第１記録手段に記録されている前記編集単位間の共有関係の変更部分を更新する更新ステップと
を実行するリポジトリ管理方法。
（付記６）
リポジトリに格納されている要素情報を編集単位で排他制御するコンピュータを、
前記編集単位間の共有関係を記録した第１記録手段を参照し、編集対象の前記編集単位及び前記編集対象の前記編集単位と共有関係にある他の編集単位が共に編集可能であるときに、前記要素情報を前記編集対象の前記編集単位で排他制御する編集単位総括排他制御手段と、
前記編集単位総括排他制御手段による編集結果に応じて前記編集対象の前記編集単位の変更箇所を第２記録手段に記録する手段と、
前記編集単位総括排他制御手段による編集結果に応じて前記編集対象の前記編集単位と前記要素情報との関係を第３記録手段に記録する手段と、
前記第２及び第３記録手段を参照し、前記第１記録手段に記録されている前記編集単位間の共有関係の変更部分を更新する更新手段と
して機能させるためのリポジトリ管理プログラム。
【００８４】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００８５】
１    リポジトリ管理システム
１０    リポジトリ管理装置
１１    リポジトリ装置
２１    入力装置
２２    出力装置
２３    ドライブ装置
２４    補助記憶装置
２５    主記憶装置
２６    演算処理装置
２７    インターフェース装置
３１    編集要求管理部
３２    編集単位総括排他制御部
３３    要素情報管理部
３４    要素情報格納庫
３５    状態表
３６    要素関係表（編集前）
３７    共有関係表（編集前）
３８    変更箇所表
３９    要素関係表（編集後）
４０    共有関係表（編集後）
Ｂ    バス
【図１】
2011034124.tif 000003
【図２】
2011034124.tif 000004
【図３】
2011034124.tif 000005
【図４】
2011034124.tif 000006
【図５】
2011034124.tif 000007
【図６】
2011034124.tif 000008
【図７】
2011034124.tif 000009
【図８】
2011034124.tif 000010
【図９】
2011034124.tif 000011
【図１０】
2011034124.tif 000012
【図１１】
2011034124.tif 000013
【図１２】
2011034124.tif 000014
【図１３】
2011034124.tif 000015
【図１４】
2011034124.tif 000016