JP5172073B2 - 編集システム、サーバ及びプログラム - Google Patents
編集システム、サーバ及びプログラム Download PDFInfo
- Publication number
- JP5172073B2 JP5172073B2 JP2004355478A JP2004355478A JP5172073B2 JP 5172073 B2 JP5172073 B2 JP 5172073B2 JP 2004355478 A JP2004355478 A JP 2004355478A JP 2004355478 A JP2004355478 A JP 2004355478A JP 5172073 B2 JP5172073 B2 JP 5172073B2
- Authority
- JP
- Japan
- Prior art keywords
- record
- status
- edit
- update
- editing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
しかし、既存のXMLDBやXMLエディタ等では、複数のトランザクションによる更新処理を排他制御することができるに止まり、正常に更新された文書の内容が他人によって意図せず上書きされることは問題としていない。例えば、要素Aと、要素Aを子要素に持つ要素Bを含む構造化文書を編集する場合において、要素Aを編集中の編集者aと、要素Bを編集中の編集者bが存在した際に、編集者aが更新を行った後、編集者bが更新を行うことで、要素Bによって要素Aの内容が上書きされることは問題としていない。即ち、既存の技術では、このような競合に適切に対応することができない。
まず、本実施形態に係る編集システムについて図1及び図2を参照して説明する。図1は、編集システムの概略構成であり、図2は、編集システムの内部構成を示すブロック図である。編集システム100は、1つのマスタデータから取得したそれぞれ異なる部分文書を複数人で並行して編集した場合に、編集前部分文書と編集後部分文書の差分情報と、当該編集後部分文書とに基づいて、任意の要素単位で当該マスタデータを更新することができるシステムである。また、編集システム100は、差分情報、各要素に付与された要素ID及びデータバージョンに基づいて、同時進行する編集の競合を事前に把握することができるシステムである。
次に、編集システム100による編集処理について図3を参照して説明する。図3は、編集処理のフローチャートである。
次に、サーバ30に接続されたマスタDB1に記憶されたマスタデータについて、図4を参照して詳細に説明する。図4は、マスタデータと編集用部分文書を模式的に示す図である。
次に、サーバ30の構成要素である差分情報検出部3について、図5乃至図9を参照して詳細に説明する。図5(a)は、編集前部分文書10を、図5(b)は、編集後部分文書20を模式的に示す図である。なお、図5において、楕円は要素IDが付与された要素、丸や四角は要素IDが付与されていないデータを表している。また、楕円の中に記載されている数字が要素IDである。
次に、サーバ30に接続された編集履歴DB4について、図10を参照して詳細に説明する。
次に、サーバ30の構成要素であるステータス制御部7について詳細に説明する。
次に、サーバ30の構成要素である編集競合検査部6について、図13乃至図17を参照して詳細に説明する。図13は、ジョブID200により修正された編集前部分文書10と編集後部分文書20のデータ構造を模式的に示す図である。また、図14は、修正競合検査部6、ステータス制御部7及びステータス入出力部8により実行されるステータスコントロール処理のフローチャートである。
次に、サーバ30の構成要素である更新処理実行部5について、図18乃至図20を参照して詳細に説明する。
2…編集機
3…差分情報検出部
4…編集履歴DB
5…更新処理実行部
6…編集競合検査部
7…ステータス制御部
8…ステータス入出力部
10…編集前部分文書
20…編集後部分文書
30…サーバ
40…利用者端末
Claims (18)
- 端末及び当該端末とデータの送受信が可能なサーバから構成され、文書を編集するための編集システムであって、
前記文書は、階層構造を有し、編集の最小単位である編集管理単位以上の要素を編集単位として部分的に編集が可能であり、
前記サーバは、
前記文書をマスタデータとして記憶するマスタ記憶部と、
編集前部分文書と編集後部分文書の差分情報を前記端末から受信する差分情報受信手段と、
前記差分情報に基づいて、前記編集の履歴を複数レコードから構成される編集履歴として記憶する編集履歴記憶部と、
前記レコードの編集状態を示すステータスを設定する初期ステータス設定手段と、
前記レコードのステータスに基づいて、前記編集が競合しているか否かを判定する競合判定手段と、
前記競合判定手段が競合があると判定した場合に、競合している編集に対応するレコードのステータスを再設定した後、前記競合判定手段により、前記編集が競合しているか否かを再度判定するステータス再設定手段と、
前記編集後部分文書を前記端末から受信する編集後部分文書受信手段と、
前記競合判定手段が競合がないと判定した場合に、前記レコード及び前記編集後部分文書に基づいて前記マスタデータを更新するマスタ更新手段と、を備え、
前記端末は、
前記サーバのマスタ記憶部から、前記マスタデータの一部を前記編集前部分文書として受信する編集前部分文書受信手段と、
前記編集前部分文書を編集し、編集後部分文書を作成する編集後部分文書作成手段と、
前記編集前部分文書と前記編集後部分文書の差分情報を検出する差分情報検出手段と、
前記差分情報をサーバへ送信する差分情報送信手段と、
前記編集後部分文書をサーバへ送信する編集後部分文書送信手段と、を備え、
前記マスタデータは、前記要素毎に要素IDが付与されており、かつ、前記要素毎にデータバージョンが付与されており、
前記レコードは、対応する要素IDと、更新の種別を示す更新種別と、複数の要素から構成されるグループ毎に付与されたグループIDと、前記データバージョンと、部分文書毎の編集プロセスであるジョブのIDであるジョブIDと、を有しており、
前記ステータスは、放棄、更新対象及び更新完了のいずれか1つが設定されるものであり、
前記差分情報検出手段は、
前記編集前部分文書において差分検出の対象となる対象要素に、当該対象要素より1つ下の階層に位置しており、前記要素IDが付与された子要素が存在するか否かを判定する編集前子要素判定手段と、
前記編集前子要素判定手段が存在すると判定した場合に、前記編集前部分文書から前記要素IDが付与された子要素を取得する編集前子要素取得手段と、
取得した子要素に付与された要素IDを取得するID取得手段と、
取得した要素IDが、前記編集後部分文書において対応する前記対象要素の子要素に付与された要素IDとして存在するか否かを判定する編集後ID判定手段と、
前記編集後ID判定手段が存在しないと判定した場合に、前記編集前部分文書における前記子要素と、当該子要素より下位階層に位置しており、前記要素IDが付与された子孫要素とに対応するレコードの更新種別に削除を設定する削除設定手段と、
前記編集後ID判定手段が存在しないと判定した場合に、前記編集前部分文書における前記子要素と前記子孫要素とに対応するレコードのグループIDに、当該子要素のIDを設定する削除グループID設定手段と、を備え、
前記初期ステータス設定手段は、
前記ステータスが未設定であって、ジョブID、グループID及び更新種別が同一の全てのレコードを、同一のステータスを設定する同ステータスレコード群に設定する第1レコード群設定手段と、
前記ステータスが未設定であって、ジョブID及び要素IDが同一のレコードを、前記同ステータスレコード群に設定する第2レコード群設定手段と、
前記編集履歴記憶部に、前記同ステータスレコード群に属するレコードと異なるジョブIDであって、データバージョンが一致するレコードが存在するか否かを判定するジョブID判定手段と、
前記ジョブID判定手段が存在すると判定した場合に、前記同ステータスレコード群に属するレコードと異なるジョブIDであってデータバージョンが一致するレコードの中に、ステータスが更新完了のレコードが存在するか否かを判定する更新完了判定手段と、
前記更新完了判定手段が存在すると判定した場合に、前記同ステータスレコード群に属する全てのレコードに放棄を設定する放棄設定手段と、
前記ジョブID判定手段及び前記更新完了判定手段のいずれか1つ以上が存在しないと判定した場合に、前記同ステータスレコード群に属する全てのレコードに更新対象を設定する更新対象設定手段と、を備え、
前記競合判定手段は、前記編集履歴記憶部に、ステータスが更新対象であって、ジョブIDが異なり、要素ID及びデータバージョンが一致するレコードが複数存在する場合に前記編集が競合していると判定し、
前記ステータス再設定手段は、ジョブID、グループID及び更新種別が同一のレコード、並びに、ジョブID及び要素IDが同一のレコードには同一のステータスを設定し、
前記ステータス再設定手段は、複数の編集が競合している場合、1つの編集のみを有効とし他の編集を無効とするように前記ステータスを再設定することを特徴とする編集システム。 - 端末及び当該端末とデータの送受信が可能なサーバから構成され、文書を編集するための編集システムであって、
前記文書は、階層構造を有し、編集の最小単位である編集管理単位以上の要素を編集単位として部分的に編集が可能であり、
前記サーバは、
階層構造の文書をマスタデータとして記憶するマスタ記憶部と、
編集後部分文書を前記端末から受信する編集後部分文書受信手段と、
編集前部分文書と前記編集後部分文書の差分情報を検出する差分情報検出手段と、
前記差分情報に基づいて、前記編集の履歴を複数レコードから構成される編集履歴として記憶する編集履歴記憶部と、
前記レコードの編集状態を示すステータスを設定する初期ステータス設定手段と、
前記レコードのステータスに基づいて、前記編集が競合しているか否かを判定する競合判定手段と、
前記競合判定手段が競合があると判定した場合に、競合している編集に対応するレコードのステータスを再設定した後、前記競合判定手段により、前記編集が競合しているか否かを再度判定するステータス再設定手段と、
前記競合判定手段が競合がないと判定した場合に、前記レコード及び前記編集後部分文書に基づいて前記マスタデータを更新するマスタ更新手段と、を備え、
前記端末は、
前記サーバのマスタ記憶部から、前記マスタデータの一部を前記編集前部分文書として受信する編集前部分文書受信手段と、
前記編集前部分文書を編集し、編集後部分文書を作成する編集後部分文書作成手段と、
前記編集後部分文書をサーバへ送信する編集後部分文書送信手段と、を備え、
前記マスタデータは、前記要素毎に要素IDが付与されており、かつ、前記要素毎にデータバージョンが付与されており、
前記レコードは、対応する要素IDと、更新の種別を示す更新種別と、複数の要素から構成されるグループ毎に付与されたグループIDと、前記データバージョンと、部分文書毎の編集プロセスであるジョブのIDであるジョブIDと、を有しており、
前記ステータスは、放棄、更新対象及び更新完了のいずれか1つが設定されるものであり、
前記差分情報検出手段は、
前記編集前部分文書において差分検出の対象となる対象要素に、当該対象要素より1つ下の階層に位置しており、前記要素IDが付与された子要素が存在するか否かを判定する編集前子要素判定手段と、
前記編集前子要素判定手段が存在すると判定した場合に、前記編集前部分文書から前記要素IDが付与された子要素を取得する編集前子要素取得手段と、
取得した子要素に付与された要素IDを取得するID取得手段と、
取得した要素IDが、前記編集後部分文書において対応する前記対象要素の子要素に付与された要素IDとして存在するか否かを判定する編集後ID判定手段と、
前記編集後ID判定手段が存在しないと判定した場合に、前記編集前部分文書における前記子要素と、当該子要素より下位階層に位置しており、前記要素IDが付与された子孫要素とに対応するレコードの更新種別に削除を設定する削除設定手段と、
前記編集後ID判定手段が存在しないと判定した場合に、前記編集前部分文書における前記子要素と前記子孫要素とに対応するレコードのグループIDに、当該子要素のIDを設定する削除グループID設定手段と、を備え、
前記初期ステータス設定手段は、
前記ステータスが未設定であって、ジョブID、グループID及び更新種別が同一の全てのレコードを、同一のステータスを設定する同ステータスレコード群に設定する第1レコード群設定手段と、
前記ステータスが未設定であって、ジョブID及び要素IDが同一のレコードを、前記同ステータスレコード群に設定する第2レコード群設定手段と、
前記編集履歴記憶部に、前記同ステータスレコード群に属するレコードと異なるジョブIDであって、データバージョンが一致するレコードが存在するか否かを判定するジョブID判定手段と、
前記ジョブID判定手段が存在すると判定した場合に、前記同ステータスレコード群に属するレコードと異なるジョブIDであってデータバージョンが一致するレコードの中に、ステータスが更新完了のレコードが存在するか否かを判定する更新完了判定手段と、
前記更新完了判定手段が存在すると判定した場合に、前記同ステータスレコード群に属する全てのレコードに放棄を設定する放棄設定手段と、
前記ジョブID判定手段及び前記更新完了判定手段のいずれか1つ以上が存在しないと判定した場合に、前記同ステータスレコード群に属する全てのレコードに更新対象を設定する更新対象設定手段と、を備え、
前記競合判定手段は、前記編集履歴記憶部に、ステータスが更新対象であって、ジョブIDが異なり、要素ID及びデータバージョンが一致するレコードが複数存在する場合に前記編集が競合していると判定し、
前記ステータス再設定手段は、ジョブID、グループID及び更新種別が同一のレコード、並びに、ジョブID及び要素IDが同一のレコードには同一のステータスを設定し、
前記ステータス再設定手段は、複数の編集が競合している場合、1つの編集のみを有効とし他の編集を無効とするように前記ステータスを再設定することを特徴とする編集システム。 - 端末とデータの送受信を行うことにより文書を編集するための編集システムのサーバであって、
前記文書は、階層構造を有し、編集の最小単位である編集管理単位以上の要素を編集単位として部分的に編集が可能であり、
前記文書をマスタデータとして記憶するマスタ記憶部と、
編集前部分文書と編集後部分文書の差分情報を前記端末から受信する差分情報受信手段と、
前記差分情報に基づいて、前記編集の履歴を複数レコードから構成される編集履歴として記憶する編集履歴記憶部と、
前記レコードの編集状態を示すステータスを設定する初期ステータス設定手段と、
前記レコードのステータスに基づいて、前記編集が競合しているか否かを判定する競合判定手段と、
前記競合判定手段が競合があると判定した場合に、競合している編集に対応するレコードのステータスを再設定した後、前記競合判定手段により、前記編集が競合しているか否かを再度判定するステータス再設定手段と、
前記編集後部分文書を前記端末から受信する編集後部分文書受信手段と、
前記競合判定手段が競合がないと判定した場合に、前記レコード及び前記編集後部分文書に基づいて前記マスタデータを更新するマスタ更新手段と、を備え、
前記マスタデータは、前記要素毎に要素IDが付与されており、かつ、前記要素毎にデータバージョンが付与されており、
前記レコードは、対応する要素IDと、更新の種別を示す更新種別と、複数の要素から構成されるグループ毎に付与されたグループIDと、前記データバージョンと、部分文書毎の編集プロセスであるジョブのIDであるジョブIDと、を有しており、
前記ステータスは、放棄、更新対象及び更新完了のいずれか1つが設定されるものであり、
前記初期ステータス設定手段は、
前記ステータスが未設定であって、ジョブID、グループID及び更新種別が同一の全てのレコードを、同一のステータスを設定する同ステータスレコード群に設定する第1レコード群設定手段と、
前記ステータスが未設定であって、ジョブID及び要素IDが同一のレコードを、前記同ステータスレコード群に設定する第2レコード群設定手段と、
前記編集履歴記憶部に、前記同ステータスレコード群に属するレコードと異なるジョブIDであって、データバージョンが一致するレコードが存在するか否かを判定するジョブID判定手段と、
前記ジョブID判定手段が存在すると判定した場合に、前記同ステータスレコード群に属するレコードと異なるジョブIDであってデータバージョンが一致するレコードの中に、ステータスが更新完了のレコードが存在するか否かを判定する更新完了判定手段と、
前記更新完了判定手段が存在すると判定した場合に、前記同ステータスレコード群に属する全てのレコードに放棄を設定する放棄設定手段と、
前記ジョブID判定手段及び前記更新完了判定手段のいずれか1つ以上が存在しないと判定した場合に、前記同ステータスレコード群に属する全てのレコードに更新対象を設定する更新対象設定手段と、を備え、
前記競合判定手段は、前記編集履歴記憶部に、ステータスが更新対象であって、ジョブIDが異なり、要素ID及びデータバージョンが一致するレコードが複数存在する場合に前記編集が競合していると判定し、
前記ステータス再設定手段は、ジョブID、グループID及び更新種別が同一のレコード、並びに、ジョブID及び要素IDが同一のレコードには同一のステータスを設定し、
前記ステータス再設定手段は、複数の編集が競合している場合、1つの編集のみを有効とし他の編集を無効とするように前記ステータスを再設定することを特徴とするサーバ。 - 端末とデータの送受信を行うことにより文書を編集するための編集システムのサーバであって、
前記文書は、階層構造を有し、編集の最小単位である編集管理単位以上の要素を編集単位として部分的に編集が可能であり、
階層構造の文書をマスタデータとして記憶するマスタ記憶部と、
編集後部分文書を前記端末から受信する編集後部分文書受信手段と、
編集前部分文書と前記編集後部分文書の差分情報を検出する差分情報検出手段と、
前記差分情報に基づいて、前記編集の履歴を複数レコードから構成される編集履歴として記憶する編集履歴記憶部と、
前記レコードの編集状態を示すステータスを設定する初期ステータス設定手段と、
前記レコードのステータスに基づいて、前記編集が競合しているか否かを判定する競合判定手段と、
前記競合判定手段が競合があると判定した場合に、競合している編集に対応するレコードのステータスを再設定した後、前記競合判定手段により、前記編集が競合しているか否かを再度判定するステータス再設定手段と、
前記競合判定手段が競合がないと判定した場合に、前記レコード及び前記編集後部分文書に基づいて前記マスタデータを更新するマスタ更新手段と、を備え、
前記マスタデータは、前記要素毎に要素IDが付与されており、かつ、前記要素毎にデータバージョンが付与されており、
前記レコードは、対応する要素IDと、更新の種別を示す更新種別と、複数の要素から構成されるグループ毎に付与されたグループIDと、前記データバージョンと、部分文書毎の編集プロセスであるジョブのIDであるジョブIDと、を有しており、
前記ステータスは、放棄、更新対象及び更新完了のいずれか1つが設定されるものであり、
前記差分情報検出手段は、
前記編集前部分文書において差分検出の対象となる対象要素に、当該対象要素より1つ下の階層に位置しており、前記要素IDが付与された子要素が存在するか否かを判定する編集前子要素判定手段と、
前記編集前子要素判定手段が存在すると判定した場合に、前記編集前部分文書から前記要素IDが付与された子要素を取得する編集前子要素取得手段と、
取得した子要素に付与された要素IDを取得するID取得手段と、
取得した要素IDが、前記編集後部分文書において対応する前記対象要素の子要素に付与された要素IDとして存在するか否かを判定する編集後ID判定手段と、
前記編集後ID判定手段が存在しないと判定した場合に、前記編集前部分文書における前記子要素と、当該子要素より下位階層に位置しており、前記要素IDが付与された子孫要素とに対応するレコードの更新種別に削除を設定する削除設定手段と、
前記編集後ID判定手段が存在しないと判定した場合に、前記編集前部分文書における前記子要素と前記子孫要素とに対応するレコードのグループIDに、当該子要素のIDを設定する削除グループID設定手段と、を備え、
前記初期ステータス設定手段は、
前記ステータスが未設定であって、ジョブID、グループID及び更新種別が同一の全てのレコードを、同一のステータスを設定する同ステータスレコード群に設定する第1レコード群設定手段と、
前記ステータスが未設定であって、ジョブID及び要素IDが同一のレコードを、前記同ステータスレコード群に設定する第2レコード群設定手段と、
前記編集履歴記憶部に、前記同ステータスレコード群に属するレコードと異なるジョブIDであって、データバージョンが一致するレコードが存在するか否かを判定するジョブID判定手段と、
前記ジョブID判定手段が存在すると判定した場合に、前記同ステータスレコード群に属するレコードと異なるジョブIDであってデータバージョンが一致するレコードの中に、ステータスが更新完了のレコードが存在するか否かを判定する更新完了判定手段と、
前記更新完了判定手段が存在すると判定した場合に、前記同ステータスレコード群に属する全てのレコードに放棄を設定する放棄設定手段と、
前記ジョブID判定手段及び前記更新完了判定手段のいずれか1つ以上が存在しないと判定した場合に、前記同ステータスレコード群に属する全てのレコードに更新対象を設定する更新対象設定手段と、を備え、
前記競合判定手段は、前記編集履歴記憶部に、ステータスが更新対象であって、ジョブIDが異なり、要素ID及びデータバージョンが一致するレコードが複数存在する場合に前記編集が競合していると判定し、
前記ステータス再設定手段は、ジョブID、グループID及び更新種別が同一のレコード、並びに、ジョブID及び要素IDが同一のレコードには同一のステータスを設定し、
前記ステータス再設定手段は、複数の編集が競合している場合、1つの編集のみを有効とし他の編集を無効とするように前記ステータスを再設定することを特徴とするサーバ。 - 前記レコードは、対応する要素より1つ上の階層に位置した親要素の要素IDである親要素IDをさらに有しており、
前記差分情報検出手段は、
前記編集後部分文書において差分検出の対象となる対象要素に、当該対象要素より1つ下の階層に位置しており、前記要素IDが付与された子要素が存在するか否かを判定する編集後子要素判定手段と、
前記編集後子要素判定手段が存在すると判定した場合に、前記編集後部分文書から前記要素IDが付与された子要素を取得する編集後子要素取得手段と、
取得した子要素に付与された要素IDを取得するID取得手段と、
取得した要素IDが、前記編集前部分文書において対応する前記対象要素の子要素に付与された要素IDとして存在するか否かを判定する編集前ID判定手段と、
前記編集前ID判定手段が存在しないと判定した場合に、前記編集後部分文書における前記子要素と、当該子要素より下位階層に位置しており、前記要素IDが付与された子孫要素とに対応するレコードの更新種別に追加を設定する追加設定手段と、
前記編集前ID判定手段が存在しないと判定した場合に、前記編集後部分文書における前記子要素と前記子孫要素とに対応するレコードのグループIDに、当該子要素の要素IDを設定する追加グループID設定手段と、
前記編集前ID判定手段が存在しないと判定した場合に、前記編集後部分文書における前記子要素に対応するレコードの親要素IDに、当該子要素の親要素の要素IDを設定する親要素ID設定手段と、をさらに備えることを特徴とする請求項4に記載のサーバ。 - 前記差分情報検出手段は、
編集前部分文書において下位階層に前記要素IDが付与されていないデータが存在する要素を対象要素として設定する対象要素設定手段と、
前記対象要素配下の要素IDが付与されていないデータを、前記編集後部分文書の当該要素IDに対応する要素配下の要素IDが付与されていないデータと比較する比較手段と、
前記比較手段による比較の結果、差があると判定した場合に、前記対象要素に対応するレコードの更新種別に修正を設定する修正設定手段と、を備えることを特徴とする請求項4又は5に記載のサーバ。 - 前記マスタ更新手段は、
前記編集履歴記憶部から、ステータスが更新対象であって、更新種別が削除であるレコードを抽出する削除レコード抽出手段と、
前記削除レコードに基づいて、グループIDと要素IDが一致するか否かを判定する削除ID判定手段と、
前記削除ID判定手段が一致すると判定した場合に、当該削除レコードのIDに対応するマスタデータの要素を削除する削除手段と、
前記削除レコードのステータスを更新完了に設定する削除完了設定手段と、を備えることを特徴とする請求項3又は4に記載のサーバ。 - 前記マスタ更新手段は、
前記編集履歴記憶部から、ステータスが更新対象であって、更新種別が追加であるレコードを抽出する追加レコード抽出手段と、
前記追加レコードに基づいて、グループIDと要素IDが一致するか否かを判定する追加ID判定手段と、
前記追加ID判定手段が一致すると判定した場合に、当該追加レコードのIDに対応する編集後部分文書の要素を、前記マスタデータに親要素IDの子要素として追加する追加手段と、
前記追加レコードのステータスを更新完了に設定する追加完了設定手段と、
前記追加手段が追加した要素のデータバージョンを更新する追加更新手段と、を備えることを特徴とする請求項7に記載のサーバ。 - 前記マスタ更新手段は、
前記編集履歴記憶部から、ステータスが更新対象であって、更新種別が修正であるレコードを抽出する修正レコード抽出手段と、
前記修正レコードの要素IDに対応する要素配下の要素IDが付与されていないデータを、前記マスタデータから削除する修正削除手段と、
前記編集後部分文書における修正レコードの要素IDに対応する要素配下の要素IDが付与されていないデータを、前記マスタデータに追加する修正追加手段と、
前記修正レコードのステータスを更新完了に設定する修正完了設定手段と、
前記修正追加手段が追加したデータに対応する要素のデータバージョンを更新する修正更新手段と、を備えることを特徴とする請求項8に記載のサーバ。 - 前記削除レコード抽出手段、前記削除ID判定手段、前記削除手段及び前記削除完了設定手段による処理は、前記追加レコード抽出手段、前記追加ID判定手段、前記追加手段、前記追加完了設定手段及び前記追加更新手段による処理より前に行われることを特徴とする請求項8又は9に記載のサーバ。
- 端末とデータの送受信を行うことにより文書を編集するための編集システムのサーバにより実行されるプログラムであって、
前記文書は、階層構造を有し、編集の最小単位である編集管理単位以上の要素を編集単位として部分的に編集が可能であり、
前記文書をマスタデータとして記憶するマスタ記憶手段、
編集前部分文書と編集後部分文書の差分情報を前記端末から受信する差分情報受信手段、
前記差分情報に基づいて、前記編集の履歴を複数レコードから構成される編集履歴として記憶する編集履歴記憶手段、
前記レコードの編集状態を示すステータスを設定する初期ステータス設定手段、
前記レコードのステータスに基づいて、前記編集が競合しているか否かを判定する競合判定手段、
前記競合判定手段が競合があると判定した場合に、競合している編集に対応するレコードのステータスを再設定した後、前記競合判定手段により、前記編集が競合しているか否かを再度判定するステータス再設定手段、
前記編集後部分文書を前記端末から受信する編集後部分文書受信手段、
前記競合判定手段が競合がないと判定した場合に、前記レコード及び前記編集後部分文書に基づいて前記マスタデータを更新するマスタ更新手段、として前記サーバを機能させ、
前記マスタデータは、前記要素毎に要素IDが付与されており、かつ、前記要素毎にデータバージョンが付与されており、
前記レコードは、対応する要素IDと、更新の種別を示す更新種別と、複数の要素から構成されるグループ毎に付与されたグループIDと、前記データバージョンと、部分文書毎の編集プロセスであるジョブのIDであるジョブIDと、を有しており、
前記ステータスは、放棄、更新対象及び更新完了のいずれか1つが設定されるものであり、
前記初期ステータス設定手段は、
前記ステータスが未設定であって、ジョブID、グループID及び更新種別が同一の全てのレコードを、同一のステータスを設定する同ステータスレコード群に設定する第1レコード群設定手段と、
前記ステータスが未設定であって、ジョブID及び要素IDが同一のレコードを、前記同ステータスレコード群に設定する第2レコード群設定手段と、
前記編集履歴記憶部に、前記同ステータスレコード群に属するレコードと異なるジョブIDであって、データバージョンが一致するレコードが存在するか否かを判定するジョブID判定手段と、
前記ジョブID判定手段が存在すると判定した場合に、前記同ステータスレコード群に属するレコードと異なるジョブIDであってデータバージョンが一致するレコードの中に、ステータスが更新完了のレコードが存在するか否かを判定する更新完了判定手段と、
前記更新完了判定手段が存在すると判定した場合に、前記同ステータスレコード群に属する全てのレコードに放棄を設定する放棄設定手段と、
前記ジョブID判定手段及び前記更新完了判定手段のいずれか1つ以上が存在しないと判定した場合に、前記同ステータスレコード群に属する全てのレコードに更新対象を設定する更新対象設定手段と、を備え、
前記競合判定手段は、前記編集履歴記憶部に、ステータスが更新対象であって、ジョブIDが異なり、要素ID及びデータバージョンが一致するレコードが複数存在する場合に前記編集が競合していると判定し、
前記ステータス再設定手段は、ジョブID、グループID及び更新種別が同一のレコード、並びに、ジョブID及び要素IDが同一のレコードには同一のステータスを設定し、
前記ステータス再設定手段は、複数の編集が競合している場合、1つの編集のみを有効とし他の編集を無効とするように前記ステータスを再設定することを特徴とするプログラム。 - 端末とデータの送受信を行うことにより文書を編集するための編集システムのサーバにより実行されるプログラムであって、
前記文書は、階層構造を有し、編集の最小単位である編集管理単位以上の要素を編集単位として部分的に編集が可能であり、
階層構造の文書をマスタデータとして記憶するマスタ記憶手段、
編集後部分文書を前記端末から受信する編集後部分文書受信手段と、
編集前部分文書と前記編集後部分文書の差分情報を検出する差分情報検出手段、
前記差分情報に基づいて、前記編集の履歴を複数レコードから構成される編集履歴として記憶する編集履歴記憶手段、
前記レコードの編集状態を示すステータスを設定する初期ステータス設定手段、
前記レコードのステータスに基づいて、前記編集が競合しているか否かを判定する競合判定手段、
前記競合判定手段が競合があると判定した場合に、競合している編集に対応するレコードのステータスを再設定した後、前記競合判定手段により、前記編集が競合しているか否かを再度判定するステータス再設定手段、
前記競合判定手段が競合がないと判定した場合に、前記レコード及び前記編集後部分文書に基づいて前記マスタデータを更新するマスタ更新手段、として前記サーバを機能させ、
前記マスタデータは、前記要素毎に要素IDが付与されており、かつ、前記要素毎にデータバージョンが付与されており、
前記レコードは、対応する要素IDと、更新の種別を示す更新種別と、複数の要素から構成されるグループ毎に付与されたグループIDと、前記データバージョンと、部分文書毎の編集プロセスであるジョブのIDであるジョブIDと、を有しており、
前記ステータスは、放棄、更新対象及び更新完了のいずれか1つが設定されるものであり、
前記差分情報検出手段は、
前記編集前部分文書において差分検出の対象となる対象要素に、当該対象要素より1つ下の階層に位置しており、前記要素IDが付与された子要素が存在するか否かを判定する編集前子要素判定手段と、
前記編集前子要素判定手段が存在すると判定した場合に、前記編集前部分文書から前記要素IDが付与された子要素を取得する編集前子要素取得手段と、
取得した子要素に付与された要素IDを取得するID取得手段と、
取得した要素IDが、前記編集後部分文書において対応する前記対象要素の子要素に付与された要素IDとして存在するか否かを判定する編集後ID判定手段と、
前記編集後ID判定手段が存在しないと判定した場合に、前記編集前部分文書における前記子要素と、当該子要素より下位階層に位置しており、前記要素IDが付与された子孫要素とに対応するレコードの更新種別に削除を設定する削除設定手段と、
前記編集後ID判定手段が存在しないと判定した場合に、前記編集前部分文書における前記子要素と前記子孫要素とに対応するレコードのグループIDに、当該子要素のIDを設定する削除グループID設定手段と、を備え、
前記初期ステータス設定手段は、
前記ステータスが未設定であって、ジョブID、グループID及び更新種別が同一の全てのレコードを、同一のステータスを設定する同ステータスレコード群に設定する第1レコード群設定手段と、
前記ステータスが未設定であって、ジョブID及び要素IDが同一のレコードを、前記同ステータスレコード群に設定する第2レコード群設定手段と、
前記編集履歴記憶部に、前記同ステータスレコード群に属するレコードと異なるジョブIDであって、データバージョンが一致するレコードが存在するか否かを判定するジョブID判定手段と、
前記ジョブID判定手段が存在すると判定した場合に、前記同ステータスレコード群に属するレコードと異なるジョブIDであってデータバージョンが一致するレコードの中に、ステータスが更新完了のレコードが存在するか否かを判定する更新完了判定手段と、
前記更新完了判定手段が存在すると判定した場合に、前記同ステータスレコード群に属する全てのレコードに放棄を設定する放棄設定手段と、
前記ジョブID判定手段及び前記更新完了判定手段のいずれか1つ以上が存在しないと判定した場合に、前記同ステータスレコード群に属する全てのレコードに更新対象を設定する更新対象設定手段と、を備え、
前記競合判定手段は、前記編集履歴記憶部に、ステータスが更新対象であって、ジョブIDが異なり、要素ID及びデータバージョンが一致するレコードが複数存在する場合に前記編集が競合していると判定し、
前記ステータス再設定手段は、ジョブID、グループID及び更新種別が同一のレコード、並びに、ジョブID及び要素IDが同一のレコードには同一のステータスを設定し、
前記ステータス再設定手段は、複数の編集が競合している場合、1つの編集のみを有効とし他の編集を無効とするように前記ステータスを再設定することを特徴とするプログラム。 - 前記レコードは、対応する要素より1つ上の階層に位置した親要素の要素IDである親要素IDをさらに有しており、
前記差分情報検出手段は、
前記編集後部分文書において前記差分検出の対象となる対象要素に、当該対象要素より1つ下の階層に位置しており、前記要素IDが付与された子要素が存在するか否かを判定する編集後子要素判定手段と、
前記編集後子要素判定手段が存在すると判定した場合に、前記編集後部分文書から前記要素IDが付与された子要素を取得する編集後子要素取得手段と、
取得した子要素に付与された要素IDを取得するID取得手段と、
取得した要素IDが、前記編集前部分文書において対応する前記対象要素の子要素に付与された要素IDとして存在するか否かを判定する編集前ID判定手段と、
前記編集前ID判定手段が存在しないと判定した場合に、前記編集後部分文書における前記子要素と、当該子要素より下位階層に位置しており、前記要素IDが付与された子孫要素とに対応するレコードの更新種別に追加を設定する追加設定手段と、
前記編集前ID判定手段が存在しないと判定した場合に、前記編集後部分文書における前記子要素と前記子孫要素とに対応するレコードのグループIDに、当該子要素の要素IDを設定する追加グループID設定手段と、
前記編集前ID判定手段が存在しないと判定した場合に、前記編集後部分文書における前記子要素に対応するレコードの親要素IDに、当該子要素の親要素の要素IDを設定する親要素ID設定手段と、を備えることを特徴とする請求項12に記載のプログラム。 - 前記差分情報検出手段は、
編集前部分文書において下位階層に前記要素IDが付与されていないデータが存在する要素を対象要素として設定する対象要素設定手段と、
前記対象要素配下の要素IDが付与されていないデータを、前記編集後部分文書の当該要素IDに対応する要素配下の要素IDが付与されていないデータと比較する比較手段と、
前記比較手段による比較の結果、差があると判定した場合に、前記対象要素に対応するレコードの更新種別に修正を設定する修正設定手段と、を備えることを特徴とする請求項12又は13に記載のプログラム。 - 前記マスタ更新手段は、
前記編集履歴記憶手段から、ステータスが更新対象であって、更新種別が削除であるレコードを抽出する削除レコード抽出手段と、
前記削除レコードに基づいて、グループIDと要素IDが一致するか否かを判定する削除ID判定手段と、
前記削除ID判定手段が一致すると判定した場合に、当該削除レコードのIDに対応するマスタデータの要素を削除する削除手段と、
前記削除レコードのステータスを更新完了に設定する削除完了設定手段と、を備えることを特徴とする請求項11又は12に記載のプログラム。 - 前記マスタ更新手段は、
前記編集履歴記憶手段から、ステータスが更新対象であって、更新種別が追加であるレコードを抽出する追加レコード抽出手段と、
前記追加レコードに基づいて、グループIDと要素IDが一致するか否かを判定する追加ID判定手段と、
前記追加ID判定手段が一致すると判定した場合に、当該追加レコードのIDに対応する編集後部分文書の要素を、前記マスタデータに親要素IDの子要素として追加する追加手段と、
前記追加レコードのステータスを更新完了に設定する追加完了設定手段と、
前記追加手段が追加した要素のデータバージョンを更新する追加更新手段と、を備えることを特徴とする請求項15に記載のプログラム。 - 前記マスタ更新手段は、
前記編集履歴記憶手段から、ステータスが更新対象であって、更新種別が修正であるレコードを抽出する修正レコード抽出手段と、
前記修正レコードの要素IDに対応する要素配下の要素IDが付与されていないデータを、前記マスタデータから削除する修正削除手段と、
前記編集後部分文書における修正レコードの要素IDに対応する要素配下の要素IDが付与されていないデータを、前記マスタデータに追加する修正追加手段と、
前記修正レコードのステータスを更新完了に設定する修正完了設定手段と、
前記修正追加手段が追加したデータに対応する要素のデータバージョンを更新する修正更新手段と、を備えることを特徴とする請求項16に記載のプログラム。 - 前記削除レコード抽出手段、前記削除ID判定手段、前記削除手段及び前記削除完了設定手段による処理は、前記追加レコード抽出手段、前記追加ID判定手段、前記追加手段、前記追加完了設定手段及び前記追加更新手段による処理より前に行われることを特徴とする請求項16又は17に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004355478A JP5172073B2 (ja) | 2004-12-08 | 2004-12-08 | 編集システム、サーバ及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004355478A JP5172073B2 (ja) | 2004-12-08 | 2004-12-08 | 編集システム、サーバ及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006163912A JP2006163912A (ja) | 2006-06-22 |
JP5172073B2 true JP5172073B2 (ja) | 2013-03-27 |
Family
ID=36665855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004355478A Expired - Fee Related JP5172073B2 (ja) | 2004-12-08 | 2004-12-08 | 編集システム、サーバ及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5172073B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4907241B2 (ja) * | 2006-06-30 | 2012-03-28 | 三菱電機株式会社 | サーバ装置、サーバ装置の情報管理方法、サーバ装置の情報管理プログラム、クライアント装置、クライアント装置の情報管理方法、クライアント装置の情報管理プログラム、情報管理システムおよび情報管理システムの情報管理方法 |
JP2008165299A (ja) * | 2006-12-27 | 2008-07-17 | Update It Inc | ドキュメント作成システム |
JP5257578B2 (ja) * | 2007-12-19 | 2013-08-07 | 富士ゼロックス株式会社 | 情報処理プログラムおよび情報処理装置 |
JP2011141814A (ja) * | 2010-01-08 | 2011-07-21 | Hitachi Ltd | ファイル共有管理システム |
US20130326323A1 (en) | 2012-05-30 | 2013-12-05 | Google Inc. | Systems and methods for displaying contextual revision history |
US9471556B2 (en) * | 2013-01-30 | 2016-10-18 | Microsoft Technology Licensing, Llc | Collaboration using multiple editors or versions of a feature |
US9946691B2 (en) | 2013-01-30 | 2018-04-17 | Microsoft Technology Licensing, Llc | Modifying a document with separately addressable content blocks |
JP2015225561A (ja) * | 2014-05-29 | 2015-12-14 | 株式会社日立製作所 | 申請データの有効性確認方法およびプログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004326176A (ja) * | 2003-04-21 | 2004-11-18 | Matsushita Electric Works Ltd | 情報サーバ、情報サーバ用プログラムおよび情報システム |
-
2004
- 2004-12-08 JP JP2004355478A patent/JP5172073B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006163912A (ja) | 2006-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4141556B2 (ja) | 構造化文書管理方法及びその実施装置並びにその処理プログラムを記録した媒体 | |
US10318628B2 (en) | System and method for creation of templates | |
US8078960B2 (en) | Rendering an HTML electronic form by applying XSLT to XML using a solution | |
US5752021A (en) | Document database management apparatus capable of conversion between retrieval formulae for different schemata | |
US6044387A (en) | Single command editing of multiple files | |
KR101608099B1 (ko) | 문서의 동시적인 협업적 검토 | |
US7197510B2 (en) | Method, system and program for generating structure pattern candidates | |
EP0430505B1 (en) | A support method and apparatus for making a formated document | |
KR101013233B1 (ko) | 의미적 그리고 기능적 관계에 따라 포털 페이지상의포틀릿의 자동적 배치를 위한 시스템 | |
EP3358470B1 (en) | Method of preparing documents in markup languages | |
US8584009B2 (en) | Automatically propagating changes in document access rights for subordinate document components to superordinate document components | |
US20040268229A1 (en) | Markup language editing with an electronic form | |
US20030237046A1 (en) | Transformation stylesheet editor | |
KR101311123B1 (ko) | 문서의 xml 데이터 저장소에 대한 프로그램가능성 | |
WO2003009177A1 (en) | Web site application development method using object model for managing web-based content | |
JPH076077A (ja) | 自己編成情報記憶システム | |
WO2020039729A1 (ja) | ドキュメント作成支援システム | |
JP5172073B2 (ja) | 編集システム、サーバ及びプログラム | |
US7100126B2 (en) | Electrical form design and management method, and recording medium | |
JP2003281149A (ja) | アクセス権限設定方法および構造化文書管理システム | |
RU2613026C1 (ru) | Способ подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы | |
JP4199916B2 (ja) | 文書管理方法および装置 | |
JPH11288412A (ja) | 文書作成方法及びシステム及び文書作成プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP6647954B2 (ja) | 設計書の入出力装置、設計書の入出力システム及び設計書の入出力方法 | |
JPH117445A (ja) | 統合化文書管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071024 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100223 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100420 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101019 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121226 |
|
LAPS | Cancellation because of no payment of annual fees |