JP4855537B2 - Database parallel editing method - Google Patents
Database parallel editing method Download PDFInfo
- Publication number
- JP4855537B2 JP4855537B2 JP2010515775A JP2010515775A JP4855537B2 JP 4855537 B2 JP4855537 B2 JP 4855537B2 JP 2010515775 A JP2010515775 A JP 2010515775A JP 2010515775 A JP2010515775 A JP 2010515775A JP 4855537 B2 JP4855537 B2 JP 4855537B2
- Authority
- JP
- Japan
- Prior art keywords
- self
- edit
- content
- editing
- server
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title description 30
- 230000010076 replication Effects 0.000 claims description 18
- 238000004891 communication Methods 0.000 description 19
- 238000012790 confirmation Methods 0.000 description 19
- 230000001360 synchronised effect Effects 0.000 description 16
- UDYLZILYVRMCJW-UHFFFAOYSA-L disodium;oxido carbonate Chemical compound [Na+].[Na+].[O-]OC([O-])=O UDYLZILYVRMCJW-UHFFFAOYSA-L 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000012937 correction Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Description
本発明はデータベース(以下「DB」)に対する並行編集(以下「並行DB編集」)を実現するものである。 The present invention implements parallel editing (hereinafter referred to as “parallel DB editing”) for a database (hereinafter referred to as “DB”).
DBの代表的な運用形態として以下が挙げられる。 The following are listed as typical operation modes of DB.
「単独DBアクセス」
ひとつの計算機のみでDBを操作する運用。DBに対する編集が行えるのはこの計算機のみであるので、アクセスの競合防止は容易であるが、複数の計算機がDBにアクセスする運用には適さない。"Single DB access"
Operation to operate DB with only one computer. Since it is only this computer that can edit the DB, it is easy to prevent access conflicts, but it is not suitable for operations in which a plurality of computers access the DB.
「サーバーDBアクセス」
サーバー計算機(以下「サーバー」)がDBを管理し、端末計算機(以下「PC」)はサーバーにアクセスしサーバーの処理を通じてDBにアクセスする運用。DBに直接アクセスするのはひとつのPCのみであるので、アクセスの競合防止は容易で、ベシミステックロックカーソル(非特許文献1)やトランザクションのロック(非特許文献2)が用いられている。"Server DB access"
A server computer (hereinafter “server”) manages the DB, and a terminal computer (hereinafter “PC”) accesses the server and accesses the DB through server processing. Since only one PC directly accesses the DB, it is easy to prevent access conflicts, and a vestigec lock cursor (Non-Patent Document 1) and a transaction lock (Non-Patent Document 2) are used.
筆者が指揮し開発したシステム「パワーアップ新聞販売」では閲覧のみに対して並行アクセスを許可している。しかし、編集前には「編集権」を取得する事とし、同時にはひとつのPCしか編集出来ない様にしている。これもロックである。 The system "Power-up Newspaper Sales" developed and directed by the author allows concurrent access for browsing only. However, “editing rights” are acquired before editing, and only one PC can be edited at the same time. This is also a lock.
しかし、サーバーとの通信が不可能な状況ではデータへのアクセスは出来ないし、ロックの取得や返却も出来ない。移動体では通信不可能なケースが頻発するので、DB操作には大きな制限となる。災害時の救援、医療、金融などいわゆるミッションクリティカルな業務では通信不可能な状況下でも業務遂行が求められるが、これに応える事は出来ない。例え通信が確保出来ても、劣悪な通信環境では再送などによりサーバーの応答が極端に長くなり、実用とならない場合もある。 However, in situations where communication with the server is not possible, data cannot be accessed and locks cannot be acquired or returned. Since cases in which communication is impossible in a mobile body frequently occur, the DB operation is a great restriction. In so-called mission-critical operations such as disaster relief, medical care, and finance, business execution is required even in situations where communication is impossible, but this cannot be met. Even if communication can be ensured, in a poor communication environment, the server response may become extremely long due to retransmission or the like, which may not be practical.
作業用の複製を作成して処理を行うキャシュの技術で、処理や通信の効率化を図る試みも行われている。マイクロソフトのADO.NETは、PCに当面の作業に必要なデータをサーバーからコピーし、サーバーとの接続を切断してから編集作業を行う。編集後に改めてサーバーと接続し編集内容をサーバーに送る。もし編集対象の情報が既に他の端末計算機から変更されていれば、後からの(この)編集を無効にする。。「ロックが結果として失敗した場合にはその編集を無効とする」と考えれば、編集ロックの一種とも言える。これは「オプティミスティック同時実行制御」(非特許文献3および非特許文献4)と呼ばれている。しかし、時として以下に示す不都合が生じる事がある。
Attempts have been made to improve the efficiency of processing and communication by using a cache technology that performs processing by creating a working copy. Microsoft's ADO.NET copies the data necessary for the immediate work to the PC from the server, cuts the connection with the server, and then edits. After editing, connect to the server again and send the edited content to the server. If the information to be edited has already been changed from another terminal computer, later (this) editing is invalidated. . It can be said that it is a kind of editing lock if it is considered that “the editing is invalidated when the lock fails as a result”. This is called “optimistic concurrency control” (Non-Patent
(1)編集毎にコピーを作成するので、そのコピー処理と通信がオーバーヘッドとなる。(非特許文献1のp19)これを少なくするには、コピーの範囲を制限する必要があるが、これにはアプリケーションが対象とする情報の構造を熟知する必要がある。 (1) Since a copy is created for each edit, the copy process and communication become overhead. (P19 of Non-Patent Document 1) To reduce this, it is necessary to limit the range of copying, but this requires a thorough understanding of the structure of information targeted by the application.
(2)キャシュの情報がいつまで有効かの推定が困難である。コピー能率優先でキャシュ量を少なくするほど、次の編集では使えない可能性が高い。「オプティミスティック同時実行制御」では、一カ所でも変更されていれば無効となるので、キャシュ量を大きくするのも問題である。 (2) It is difficult to estimate how long the cache information is valid. The smaller the cache amount with priority on copy efficiency, the more likely it is not usable in the next editing. In “optimistic concurrency control”, if even one place is changed, it becomes invalid, so it is also a problem to increase the cache amount.
(3)あるPCが過去に操作(入力、修正、削除)した情報が他のPCの操作により変更(削除、再修正、再入力)された事を検出するのは困難である。この問題は「サーバーDBアクセス」にも「キャシュ」にも共通する問題である。このPCによる編集の有効無効の判定結果は、アップ時に判明するが、それ以前に入力され一度は有効と判定された情報が変更されたのを迅速に把握するのは困難である。 (3) It is difficult to detect that information that a certain PC has operated (input, correction, deletion) in the past has been changed (deletion, recorrection, reinput) by the operation of another PC. This problem is common to both “server DB access” and “cache”. The determination result of the validity / invalidity of editing by the PC is known at the time of up-loading, but it is difficult to quickly grasp that the information that has been input before then has been determined to be valid has been changed.
その他の調査結果を以下に示す。非特許文献5は、ファイルのキャシュに関する発明で、編集の衝突(本願での競合)を検出した場合は単純に編集を拒否(非特許文献5の7頁の右下から10行目)し記録を作成する。特許文献1は、サーバーがDB編集の衝突を検出すると、正しく更新されたサーバーのDBを送り込む(「解決手段」および36段)。特許文献2では更新時刻が後の更新を有効とし、特許文献1では更新時刻が先の更新を有効としている。いずれも、上記の問題を解決するものでは無い。
Other survey results are shown below. Non-Patent Document 5 is an invention related to file caching, and when an editing conflict (competition in this application) is detected, editing is simply rejected (10th line from the lower right on
特許文献3はデータベースの同期を起動する条件に関する発明であり、同期の方法については「更新情報を互いに通知し合って同期」と言う一般的な同期の概念を示しているにすぎない。
特許文献4は、編集の競合が起きた際に「全ての更新データを保持する」ことを目的とした発明である。競合が無いときにのみ原本を更新するのであり、本発明とは目的も内容も異なる。特許文献5、特許文献6、特許文献7、特特許文献8、特許文献9についても調査したが、いずれも本発明とは異なる。
本格的な並行DBアクセスを明らかにし、キャシュを前提とした従来の並行DB編集の問題を解決する。 Clarify full-scale parallel DB access and solve the problem of conventional parallel DB editing based on cache.
本発明を以下の例を用いて説明する。 The present invention will be described using the following examples.
(1) 準備
複数のPCに、原本DB(以下「グローバル原本DB」)の初期状態の複製DB(以下「ローカル原本DB」)を置く。このローカル原本DBには初期のバージョン、つまり更新の順番を識別する順序数、を設定する事が出来る。バージョンを用いて編集の有効性を判定が可能である。(1) Preparation A replica DB (hereinafter “local original DB”) in an initial state of an original DB (hereinafter “global original DB”) is placed on a plurality of PCs. In this local original DB, an initial version, that is, an order number for identifying the update order, can be set. The effectiveness of editing can be determined using the version.
(2)ローカル編集
各PCはそのローカル原本DBに対するローカルな編集を行う。この編集の前にローカル原本DBの作業用の複製を作成し、編集はこの複製に対して行う。また、編集時にはその編集内容を記録した「編集記録」を作成する。この編集記録には少なくとも「編集内容」が記録されるが、これに加え「編集バージョン」などを記録しても良い。(2) Local editing Each PC performs local editing on its local original DB. Before this editing, a working copy of the local original DB is created, and editing is performed on this copy. Further, at the time of editing, an “editing record” is created in which the edited contents are recorded. At least “edit contents” are recorded in this edit record, but “edit version” or the like may be recorded in addition to this.
「編集内容」はどの情報をどの様に変更したか、どの情報を追加したか、どの情報を削除したか、などの一般的な編集内容である。「編集バージョン」は編集対象のローカル原本DBのバージョン、厳密に言えば、編集対象の作業DBの複製元となったローカル原本DBのバージョン、である。 “Edited contents” are general edited contents such as which information has been changed in what manner, which information has been added, and which information has been deleted. “Edited version” is the version of the local original DB to be edited, strictly speaking, the version of the local original DB that is the replication source of the work DB to be edited.
(3)サーバーへの編集記録の送信
各PCは「編集記録」をサーバーに送信する。「編集記録」と「編集バージョン」を分けて記録している場合には、「編集記録」との対応を明示して「編集バージョン」も送信する。なお、「編集記録」の中に「編集バージョン」を記録する運用が、簡単で現実的と思われる。(3) Transmission of edit record to server Each PC transmits “edit record” to the server. When “edit record” and “edit version” are recorded separately, the correspondence with “edit record” is clearly indicated and “edit version” is also transmitted. It should be noted that the operation of recording the “edit version” in the “edit record” seems simple and realistic.
(4)サーバーによる編集記録の受信
サーバーは、PCから到着した編集記録を、その到着の順番と共に記録しておく。(4) Receiving edit records by the server The server records the edit records that have arrived from the PC together with the order of arrival.
(5)サーバーからの編集記録の受信
PCはサーバーに対して、未受信の編集記録の送信を要求し、これらの編集記録、その(サーバーへの到着の)順番を受信する。編集記録に編集バージョンが指定されていれば、これも受信する。(5) Receiving edit records from the server The PC requests the server to send unedited edit records, and receives these edit records and their order (arrival at the server). If an edit version is specified in the edit record, this is also received.
(6)ローカル原本DBの更新
PCは指定された順番で編集記録を取り出し、その有効性を判定し、その内容に基づき、「ローカル原本DB」の更新を試みる。バージョンが設定されている場合はローカル原本DBのバージョンを更新する。(6) Update of local original DB The PC extracts edit records in the specified order, determines the validity, and tries to update the “local original DB” based on the contents. When the version is set, the version of the local original DB is updated.
全てのPCの初期のローカル原本DBが同じで、各PCにおけるローカルな編集の編集記録を、サーバーへの到着順で取り出し、ローカル原本DBを更新する。同じ内容の編集情報を、同じ順番で、同じロジックで処理して、ローカル原本DBを更新するので、結果として得られる各PCのローカル原本DBも同じになる。サーバーでグローバル原本DBを更新しなくても各PCのローカル原本DBが同期するのはこの仕掛けによる。 The initial local original DBs of all the PCs are the same, and edit records of local editing in each PC are taken out in the order of arrival at the server, and the local original DB is updated. Since the editing information of the same content is processed in the same order and with the same logic to update the local original DB, the resulting local original DB of each PC is the same. This is the reason why the local original DB of each PC is synchronized without updating the global original DB on the server.
ここで、各PCで作成した編集記録にユニークな順番を付けるのがポイントである。ここではサーバーにアップした順番を用いているが、この順番を変更する事も、他の方法で順番を付けても良い。サーバーにアップされた順番を独自の判断基準(例えば操作者の優先権など)で変更してもかまわない。全ての関係するPCで取り出しローカル原本DBを更新する順番が同じであれば良い。 Here, the point is to give a unique order to the edit records created on each PC. Here, the order up to the server is used, but this order may be changed or the order may be set by other methods. The order of uploading to the server may be changed according to its own criteria (for example, operator priority). It suffices if the order of taking out and updating the local original DB is the same on all related PCs.
編集記録の順番を付ける他の方法として、例えば、サーバーや特定のPCが編集記録の順番(または時間)を決定し(編集記録を作成または保持するPCに)通知し、編集記録を作成又は保持するPCはこの順番を編集記録に記入し、編集記録を互いに通知し合う方法でも良い。全ての関係するPCで取り出しローカル原本DBを更新する順番が同じであれば良い。 As another method of assigning the order of editing records, for example, the server or a specific PC determines the order (or time) of the editing records (notifies the PC that creates or holds the editing records) and creates or holds the editing records. The PC which performs this may enter this order in the edit record and notify each other of the edit record. It suffices if the order of taking out and updating the local original DB is the same on all related PCs.
各PCはそれぞれの都合の良い時に複製DBの更新を行うので、実時間で見ると、各PCのローカル原本DBとの更新の進みは様々であるが、特定の編集記録で更新された後のローカル原本DBの状態は同じである。つまり、編集記録の順番を共通の時間軸とし各PCのローカル原本DBが同期する。 Since each PC updates the duplicate DB at their convenience, the progress of the update with the local original DB of each PC varies in real time, but after updating with a specific editing record The state of the local original DB is the same. That is, the local original DB of each PC is synchronized with the order of editing and recording as a common time axis.
なお、「有効性の判定基準」と「ローカル原本DBの更新処理方法」は、関係する全てのPCで同一である必要がある。しかし、同じであればその処理に制限は無い。同じ基準で、編集記録毎にその全部又は一部が有効または無効と判定されて、同じにローカル原本DBを更新していれば、編集記録の順番を共通の時間軸とし各PCのローカル原本DBが同期する。 It should be noted that the “validity determination criterion” and the “local original DB update processing method” need to be the same in all related PCs. However, if it is the same, there is no restriction on the processing. If it is determined that all or part of each edit record is valid or invalid and the local original DB is updated in the same manner, the local original DB of each PC is set with the order of the edit records as a common time axis. Are synchronized.
あるPCに注目した一連の動作例を説明する。このPCがサーバーから最新の編集記録を受信し、ローカル原本DBを更新したとする。そしてこのPCがこのローカル原本DBに対して編集を行い、その編集記録をアップする。なお、この編集の間に、別の計算機から編集記録がサーバーにアップされた可能性がある。 A series of operation examples focusing on a certain PC will be described. It is assumed that this PC receives the latest editing record from the server and updates the local original DB. The PC edits the local original DB and uploads the editing record. During this editing, the editing record may have been uploaded to the server from another computer.
先の編集記録のアップの後で、それまでの(未受信の)編集記録をサーバーから受信し、編集記録を指定された順番で取り出し、ローカル原本DBの更新を試みる。この過程でいくつかの編集は有効と判定されローカル原本DBが更新される。 After the previous editing record is updated, the previous (unreceived) editing record is received from the server, the editing records are taken out in the designated order, and the local original DB is updated. In this process, some edits are determined to be valid and the local original DB is updated.
最後に先程アップした編集記録を取り出し、その不変確認範囲を調査し有効性の判定を行う。もし無効と判定されたなら、このPCの操作者は、無効となった事実とその理由を確認し、必要が有れば(最新の情報に対して)再度の編集を試みる。無効になった元の入力の記録があれば、その内容を再び入力するのは容易である。 Finally, the editing record that was uploaded earlier is taken out, the invariant confirmation range is investigated, and the validity is determined. If it is determined to be invalid, the operator of this PC confirms the fact of invalidity and the reason for the invalidation, and tries to edit again (for the latest information) if necessary. If there is a record of the original input that has been invalidated, it is easy to enter the contents again.
PCの操作者にとって、「自分の入力した情報が有効となったか否か」「どの様な状況で無効となったか」を正確に知るこが必要である。並行DBアクセスにおいてオフライン編集した場合は、編集が有効であるか否かは即時ではなく、次の同期の時に判明するので、これらの情報は極めて重要である。情報が無効となった場合でも、全ての編集記録がPCに有り、その有効性の判定やローカル原本DBの更新の様子も全てこのPC内部で見ることが出来るので、再度入力する事も、入力を放棄するも、その状況から判断する事が出来る。 It is necessary for the operator of the PC to accurately know “whether or not the information entered by the user has become valid” and “in what circumstances it has become invalid”. When offline editing is performed in parallel DB access, whether or not the editing is effective is not immediate, and is determined at the next synchronization, so these pieces of information are extremely important. Even if the information becomes invalid, all the edit records are on the PC, and the validity judgment and update of the local original DB can all be seen inside this PC. Can be judged from the situation.
本発明の基本となる要点を箇条書きすると以下である。
(更新1)各PCは未受信の編集記録を順番に受信する。
(更新2)受信した編集記録を指定の順番で用いて、ローカル原本DBの更新を行う。
(編集1)各PCはローカル原本DBに対する更新を行い、この編集記録をサーバーにアップする。
(前提1)各PCの初期のローカル原本DBの内容は同じ。
(前提2)各PCでローカル原本DBの更新に用いる編集記録の内容が同じ。
(前提3)各PCでローカル原本DBの更新に用いる編集記録の順番が同じ。
(前提4)各PCでローカル原本DBの更新に用いるロジックが同じ。The main points of the present invention are listed as follows.
(Update 1) Each PC receives unedited edit records in order.
(Update 2) The local original DB is updated using the received editing records in the designated order.
(Edit 1) Each PC updates the local original DB and uploads this edit record to the server.
(Premise 1) The contents of the initial local original DB of each PC are the same.
(Premise 2) The content of the edit record used for updating the local original DB on each PC is the same.
(Premise 3) The order of editing records used for updating the local original DB in each PC is the same.
(Premise 4) The logic used for updating the local original DB is the same on each PC.
以上の説明ではグローバル原本DBの更新については説明していない。実はグローバル原本DBはローカル原本DBの初期値としてのみ存在するとしても問題は無い。PCのプログラムで初期値のDBが作成出来るなら、サーバーが初期値を持つ必要も無い。各PCのローカル原本DBは互いに同期するので、仮想の(実在しない)グローバル原本DBと同期していると言うことが出来る。もちろん、以上の手順に加えて、実際にグローバル原本DBが有り、編集情報で更新しても良い。万が一、あるPCのローカル原本DBが破損した場合には、グローバル原本DBをコピーしても良いし、他のPCのローカル原本DBをコピーしても良い。初期のグローバル原本DBとそれまでの全ての編集記録から最新のローカル原本DBを再作成する事も可能である。 In the above description, updating of the global original DB is not described. In fact, there is no problem even if the global original DB exists only as an initial value of the local original DB. If an initial value DB can be created by a PC program, the server need not have an initial value. Since the local original DB of each PC is synchronized with each other, it can be said that it is synchronized with a virtual (non-existent) global original DB. Of course, in addition to the above procedure, there is actually a global original DB, which may be updated with editing information. If the local original DB of a certain PC is damaged, the global original DB may be copied or the local original DB of another PC may be copied. It is also possible to re-create the latest local original DB from the initial global original DB and all the editing records so far.
(ほぼオンライン運用)
本発明では、編集記録の有効性の判定基準やローカル原本DBの更新手順を特に規定するものではないが、一般に、古い情報に基づく編集を無効と判定するのは常識的と考えられる。従って、編集を行うPCが、その編集が無効と判定される可能性を出来るだけ少なくするには、編集の直前に最新の編集記録まで受信してローカル原本DBを更新し、この最新のローカル原本DBに対して編集を行い、編集後は速やかに編集記録をアップすると良い。頻繁に更新を行えば、ローカル原本DBは常に最新の状態に保たれるので、「ほぼオンライン運用」と言う事が出来る。(Almost online operation)
In the present invention, the criteria for determining the validity of the edit record and the update procedure of the local original DB are not particularly defined, but it is generally considered common to determine that editing based on old information is invalid. Therefore, in order to minimize the possibility that the editing PC determines that the editing is invalid, the latest editing record is received immediately before editing, the local original DB is updated, and this latest local original is updated. It is preferable to edit the DB and immediately edit the edit record after editing. If updated frequently, the local original DB is always kept up-to-date, so it can be said that “almost online operation”.
(ほぼオフライン運用)
しかし、編集の競合が稀な情報を扱う場合には、(更新1)および(更新2)によるローカル原本DBの更新から、(編集1)による編集のアップまでの時間を長くしても、編集が無効となる可能性は少ない。例えば、会社の組織ごとに支払伝票を入力するケースでは、レコードを修正するのは入力ミスや処理ミスを発見した場合であり、修正するとしてもレコードを入力した計算機で行う事が多い。この様なケースでは、更新から編集アップまでの期間を極端に長くした「ほぼオフライン運用」で問題は無い。たとえインターネット接続が出来ない状況でも支払伝票をゆっくり入力し、決算や検査の近くなってからまとめてアップすれば良い。(Almost offline operation)
However, when handling information that rarely conflicts with editing, editing is possible even if the time from updating the local original DB by (Update 1) and (Update 2) to editing up by (Edit 1) is increased. Is unlikely to be invalid. For example, in the case where a payment slip is input for each organization of a company, the record is corrected when an input error or a processing error is found, and even if it is corrected, it is often performed by a computer that inputs the record. In such a case, there is no problem with “almost offline operation” in which the period from update to edit-up is extremely long. Even if you can't connect to the Internet, you can enter payment slips slowly and upload them together when it is close to the settlement or inspection.
(改良−1)編集記録の内容の拡大
「編集内容」には、先に説明した一般的な編集内容や「編集バージョン」に加え、あとで詳しく説明する「バージョン設定範囲」や「不変確認範囲」を編集内容に含めることが出来る。DBの部分(複数可)にバージョンを設定する場合には、どの部分のバージョンを扱っているかを示す必要が有り、これを示すのが「バージョン設定範囲」である。(Improvement-1) Expansion of contents of editing record “Edited contents” include “version setting range” and “invariant confirmation range” described in detail later in addition to the general edited contents and “edited version” described above. Can be included in the edited content. When setting a version in the DB part (s), it is necessary to indicate which part of the version is being handled, and this is the “version setting range”.
編集内容に、一般的な編集内容に加え、編集バージョン、バージョン設定範囲、不変確認範囲、を記録するとこれらの情報の扱いが単純になるが、必ずしも編集内容に記録する必要は無い。分けて記録してもこれらの対応が他の計算機で把握できれば良い。 In addition to general editing contents, the editing version, version setting range, and invariant confirmation range are recorded in the editing contents, but the handling of these information becomes simple. However, it is not always necessary to record the editing contents. Even if they are recorded separately, it is sufficient if these correspondences can be grasped by other computers.
(改良−2)不変確認範囲の導入
「不変確認範囲」は、この編集に影響を与える範囲であり、この範囲の情報の値が変更されることは、この編集が無意味になる事を示している。「不変確認範囲」はDBが扱う情報、特にその編集する対象の情報の特性に応じて様々な指定が可能であるが、編集対象の情報を「不変確認範囲」に入れるのは自然である。リレーショナルDB(以下「RDB」)の場合には、編集対象のテーブル、編集対象と論理的に関連しているテーブル群、そのなかの一部のレコード、またはDB全体などが想定される。(Improved-2) Introduction of invariant confirmation range "Invariant confirmation range" is a range that affects this editing, and changing the value of information in this range indicates that this editing becomes meaningless. ing. The “invariant confirmation range” can be variously specified in accordance with the information handled by the DB, particularly the characteristics of the information to be edited, but it is natural to put the information to be edited in the “invariant confirmation range”. In the case of a relational DB (hereinafter “RDB”), a table to be edited, a group of tables logically related to the object to be edited, a part of the records, or the entire DB is assumed.
(改良−3)編集記録とその順番の操作
サーバーに記録する編集記録とその順番は、必ずしもPCがアップしたままの内容と順番である必要は無い。編集記録とその順番が全てのPCで同じであれば、これらの編集記録を適用したローカル原本DBは編集記録の順番を共通の時間軸として同期する。(Improved-3) Edit record and its order The edit record to be recorded in the operation server and its order do not necessarily have to be the contents and the order in which the PC is up. If the edit records and the order thereof are the same for all PCs, the local original DB to which these edit records are applied synchronizes with the order of the edit records as a common time axis.
サーバー又は、管理業務を担当するPCが編集記録の内容を分析し、エラーとなって無効とされる部分や、冗長な(結局は何もしないのと同じ)部分を削除しても良い。エラーの編集記録や冗長な編集記録を削除し、結果としてその編集記録が削除されても問題は無い。編集記録の順番を変更しても、全てのPCでの(ローカル原本DBの更新)処理に用いる順番が同じなら、編集記録の順番を共通の時間軸として各PCのローカル原本DBが同期する。 The server or the PC in charge of management work may analyze the contents of the editing record, and delete a portion that becomes invalid due to an error or a redundant portion (same as doing nothing after all). There is no problem even if an error edit record or redundant edit record is deleted and the edit record is deleted as a result. Even if the order of editing and recording is changed, if the order used for (update of local original DB) processing in all PCs is the same, the local original DB of each PC is synchronized using the order of editing and recording as a common time axis.
(改良−4)バージョン設定範囲の導入
バージョンを付与し編集を管理する単位は実際のDBである必要は無い。情報修正の影響が密接に関係している部分を特定して「バージョン設定範囲」とし、これ毎にバージョンを設定すれば、その範囲に関する編集とバージョンの推移を管理するのが容易になる。(Improvement-4) A unit for assigning an introductory version of the version setting range and managing editing does not have to be an actual DB. If a part closely related to the influence of information correction is identified and set as a “version setting range”, and a version is set for each, it becomes easy to manage editing and version transition for that range.
バージョン設定範囲の設定はDBが扱う情報の構造や内容に依存するので、これらの知識無くして決定する事は出来ないが、RDBの場合にはレコード、テーブル、テーブルと論理的に関連しているテーブル群、そのなかの特定のレコード群、DB全体などが想定される。 Since the setting of the version setting range depends on the structure and contents of information handled by the DB, it cannot be determined without such knowledge, but in the case of RDB, it is logically related to records, tables, and tables. A table group, a specific record group among them, an entire DB, and the like are assumed.
DBをバージョン設定範囲と読み替える事により、本明細書で説明した手順をそのまま適用する事が出来る。なお、複数のバージョン設定範囲に対する編集の記録が、ひとつの編集記録の中に一緒に記載されていても問題は無い。バージョン設定範囲毎に「編集内容」「編集バージョン」「不変確認範囲」などが記載されていれば良い。 By replacing DB with the version setting range, the procedure described in this specification can be applied as it is. Note that there is no problem even if editing records for a plurality of version setting ranges are described together in one editing record. For each version setting range, “edited contents”, “edited version”, “invariable confirmation range”, etc. may be described.
医療の個人情報を例に説明する。医療情報のDBで、個人の医療記録の固まりをバージョン設定範囲の設定として設定する。テーブルの1行又は数行が個人の情報なら、これに対してバージョンを設定する。DBには、多数の個人情報があり、それぞれにバージョンを設定する。編集記録には、個人に対応する「編集内容」「編集バージョン」「不変確認範囲」のセットが単数または複数存在する。「不変確認範囲」はこの個人記録全体でも、修正した情報(RDBならレコード)に限定しても、修正内容に応じて適切に設定すれば良い。個人情報毎にテーブルを構成していれば、テーブル毎にバージョンが設定される。 The medical personal information will be described as an example. In the medical information DB, a set of personal medical records is set as the setting of the version setting range. If one or more rows in the table are personal information, a version is set for this. The DB has a lot of personal information, and a version is set for each. In the edit record, there are one or more sets of “edit contents”, “edit version”, and “invariant confirmation range” corresponding to the individual. The “invariant confirmation range” may be set appropriately in accordance with the correction contents, whether it is the entire personal record or limited to the corrected information (record in the case of RDB). If a table is configured for each personal information, a version is set for each table.
医療情報だけでなく、社会保証や銀行口座やローンなどの情報を個人毎に管理する事にも利用出来る。複数の部署で編集すると思われる犯罪者情報の管理にも使える。さらには、住民みずから一部のデータの編集が可能な「発展した形態の住民基本台帳の管理」など、個人対応の情報を扱う場合にも便利である。「(改良−8)ローカル原本DBの守備範囲の限定」で説明する様に、PC毎にその権限で読み込める範囲の個人情報についてのローカル原本DBを作成する事として、権限の範囲内の情報のみがこのPCに送られるなら、権限外の情報がハッキングされる恐れも無い。 In addition to medical information, it can also be used to manage information such as social guarantees, bank accounts and loans for each individual. It can also be used to manage criminal information that seems to be edited by multiple departments. Furthermore, it is also convenient when handling personal information such as “Management of the Basic Resident Register in a developed form” where some data can be edited by the residents. As explained in “(Improved-8) Limitation of Defense Range of Local Original DB”, creating a local original DB for personal information in the range that can be read with the authority for each PC, only information within the scope of authority. Is sent to this PC, there is no risk of unauthorized information being hacked.
なお、特定のPC(の操作者)にとってはサーバーに集められた編集記録の多くは必要無い場合は、ローカル原本DBがグローバル原本DBの一部のみと同期していれば十分である。これに対応するには、PCで全ての編集記録を受信した後で、不要な編集記録をスキップするのがひとつの方法である。サーバー側でPC毎に必要な編集記録を抜いて送ると通信量が少なくなる。不必要な編集記録が混ざっていてもPC側の処理で除外すれば問題は無い。編集情報に記録されたバージョン設定範囲を元にして、サーバーの管理する編集記録を分類しておくとPCに送るべき編集記録を迅速に判定する事が出来る。 Note that if a particular PC (operator) does not need many of the editing records collected on the server, it is sufficient that the local original DB is synchronized with only a part of the global original DB. To cope with this, one method is to skip unnecessary editing records after all editing records are received by the PC. The amount of communication is reduced if the necessary editing records are extracted and sent for each PC on the server side. If unnecessary editing records are mixed, there is no problem if they are excluded by the processing on the PC side. If the edit records managed by the server are classified based on the version setting range recorded in the edit information, the edit records to be sent to the PC can be quickly determined.
(改良−5)バージョン付与のタイミング
DB原本(グローバル原本DB又はローカル原本DB)の全体又はやバージョン設定範囲に対してバージョンが付与されるが、その付与方法は、扱う情報の特性や運用の都合に応じて選択する事が出来る。(Improved-5) Version grant timing A version is assigned to the whole DB original (global original DB or local original DB) or to the version setting range. Can be selected according to
実際にローカル原本DBの内容が更新された場合にバージョンを更新しても良いし、有効な更新の有無に関係なく、変更記録で原本DBの変更を試みる毎にバージョンを更新しても良い。 The version may be updated when the contents of the local original DB are actually updated, or the version may be updated every time an attempt is made to change the original DB in the change record regardless of whether there is a valid update.
(改良−6)編集のサーバー受け付け時刻をバージョンとする発展
サーバーが編集を受け付けた時刻をバージョンとして利用しても良い。本明細書で説明したバージョンはこの受け付け時刻と読み替える事になる。先に、バージョンは一連の順番を識別するための順序数と説明したが、時刻も順序を表すので何ら問題は無い。(Improved-6) The time when the development server accepts editing as the version may be used as the version. The version described in this specification will be read as this reception time. Previously, the version was described as an order number for identifying a sequence, but there is no problem because the time also represents the order.
(改良−7)サーバーへの同期アクセス時刻をバージョンとする発展
PCが、サーバーにアクセスし、未受信の編集記録の有無を確認した時刻を(サーバーなどから)取得し、その時刻をバージョンとする方法も可能である。この確認毎に、未受信の編集記録が無くてもローカル原本DBの新たなこの時刻をバージョンとして設定する。未受信の編集記録が有れば、これらを受信しこれらを用いてローカル原本DBを更新し、そしてこの時刻をローカル原本DBのバージョンとして設定する。より同期アクセスがより新しいローカル原本DBに対する編集が優先されるので、一つのDBを競争で操作する関係者にとって理解しやすくまた納得出来るルールである。(Improved-7) The development PC with the version of the synchronous access time to the server acquires the time (from the server, etc.) that accesses the server and confirms whether there is an unreceived edit record, and uses that time as the version. A method is also possible. For each confirmation, a new time of the local original DB is set as a version even if there is no unreceived edit record. If there are unreceived editing records, these are received, the local original DB is updated using them, and this time is set as the version of the local original DB. Since the editing of the local original DB with newer synchronous access is given priority, it is a rule that can be easily understood and understood by those who operate one DB in competition.
(改良−8)ローカル原本DBの守備範囲の限定
ローカル原本DBが、(仮想の又は実在する)グローバル原本DBの全体と同期すると仮定すると、説明は簡単である。しかし、ローカル原本DBが扱う範囲はグローバル原本DB一部分とした方が、実用的である。医療情報に限らず、一般にDB全体は巨大であるが、前記「(改良−4)バージョン設定範囲の導入」で説明した様に、個々の個人情報毎の集合体である。患者自身の計算機のローカル原本DBはこの患者の情報のみが有れば良いし、医師の計算機のローカル原本DBは受け持ちの患者の情報のみがあれば良い。つまり、ローカル原本DBは、グローバル原本DB全体と同期している必要は無く、その必要な一部分と同期していれば十分である。これにより、ローカル原本DBのサイズは小さくなり、その同期(内容を最新に保つ)操作は軽快になる。(Improved-8) Limitation of Defensive Range of Local Original DB Assuming that the local original DB is synchronized with the whole (virtual or real) global original DB, the description is simple. However, it is more practical that the range handled by the local original DB is a part of the global original DB. In general, the entire DB is not limited to medical information, but as described above in “(Improvement-4) introduction of version setting range”, it is an aggregate of individual information. The local original DB of the patient's own computer only needs to have this patient information, and the local original DB of the doctor's computer need only have the information of the patient in charge. That is, the local original DB does not need to be synchronized with the entire global original DB, and it is sufficient if it is synchronized with a necessary part thereof. As a result, the size of the local original DB is reduced, and the synchronization (keeping the contents up to date) becomes light.
(改良−9)編集記録の順番付与のバリエーション
順番を管理するサーバー(又はPC)を置く。編集記録を作成したPCはこのサーバーに順番を問い合わせ、指定された順番を編集記録に書き込む。編集記録自体はPCの間で直接送信したとしても、ここに書かれている順番はユニーク(一意)である。順番の替わりに時間を編集記録に記入して、順番として用いても良い。なお、PC毎の時間のずれが生じる事を考え、特定のPCが時間を管理するなどの工夫が必要である。(Improved-9) A server (or PC) for managing the variation order of the edit record ordering is placed. The PC that created the edit record queries this server for the order and writes the specified order to the edit record. Even if the edit records themselves are directly transmitted between the PCs, the order written here is unique. Instead of the order, the time may be entered in the editing record and used as the order. In consideration of the occurrence of a time lag for each PC, it is necessary to devise such that a specific PC manages the time.
(改良−10)編集の一時的な禁止
DBのデータ構造自体を変更するなど、他の計算機と並行して編集を行う事が出来ない場合には、他の編集を一時的に禁止すると都合が良い。以下では説明のため、ある編集(X)について、この編集との並行編集を禁止する状況を想定する。つまりXの編集開始からXの編集が完了してサーバーにアップされるまでの期間を、他のPCの「編集禁止期間」とする。Xのサーバーへのアップの後で、この編集記録(X)記録を取り込んだ後のローカル原本DBに対する並行DB編集から禁止が解除される。(Improvement-10) Temporary prohibition of editing If editing cannot be performed in parallel with other computers, such as changing the data structure of the DB itself, it is convenient to temporarily prohibit other editing. good. In the following, for the sake of explanation, it is assumed that a certain editing (X) is prohibited from parallel editing with this editing. In other words, the period from the start of X editing until the X editing is completed and uploaded to the server is defined as the “editing prohibition period” of another PC. After the X is uploaded to the server, the prohibition is canceled from the parallel DB editing on the local original DB after taking in the editing record (X) record.
ひとつの方法は、サーバーがこの禁止区間にアップされた編集を無効とする方法である。Xの編集を生かし、かつ矛盾を起こさない確実な方法である。しかし、この無効とされた編集を作成した側の労力は無駄になる。 One method is a method in which the server invalidates the editing that has been uploaded to the prohibited section. It is a reliable method that makes use of X editing and does not cause contradictions. However, the effort on the side of creating this invalidated edit is wasted.
禁止区間であることを伝えるのが、もうひとつの方法である。編集Xを行うPCから他のPCに直接伝えても良いし、編集Xを行うPCから、サーバーに伝えて、サーバーから各PCに伝えても良い。 Another way is to tell you that it is a prohibited zone. The PC that performs the editing X may be directly transmitted to another PC, or the PC that performs the editing X may be transmitted to the server and may be transmitted from the server to each PC.
編集Xを行うPCは、編集Xを行う前に最新の編集記録をサーバーに要求する時点で、他のPCの編集禁止をサーバーに伝えておく。最新の編集記録をサーバーに要求したPCに対し、サーバーから編集禁止を通知しても、未受信の編集記録の問い合わせなどに対する応答と一緒に通知しても良い。 The PC that performs editing X informs the server that editing of other PCs is prohibited at the time of requesting the server for the latest editing record before performing editing X. The server that requested the latest editing record to the server may be notified of the prohibition of editing from the server, or may be notified together with a response to an inquiry about an unreceived editing record.
「サーバーから編集禁止が通知された場合」には、このPCはローカル原本DBの更新を行っても、編集は行わない。そして、改めて、最新の編集記録をサーバーに要求し、それに対して編集記録Xまでが送られ、これと同時に編集禁止解除が通知される。このPCは編集記録Xでローカル原本DBを更新した後、これに対する編集を開始する。 In the case where “edit prohibition is notified from the server”, this PC does not perform editing even if the local original DB is updated. Then, the server requests the server for the latest editing record, and sends up to the editing record X. At the same time, the release of the prohibition of editing is notified. After updating the local original DB with the edit record X, this PC starts editing for this.
<出願時の請求項との対応>
本明細書の並行編集とは、(実在の又は仮想の)グローバル原本DB(直感的にはDB原本)の情報の全部または一部の複製を、PCの内部にローカル原本DB(直感的には「複製DB」)として保持し、これに対して編集を行う事である。各PCが保持する複製DBに対する編集情報を、PCが相互に交換してそれぞれの複製DBを更新する。なぜ各PCの複製DBが同期するかと言うと、各PCが同じ編集情報を同じ順番で用いてそれぞれの複製DBを更新するからである。これを表現したのが請求項1である。請求項2は請求項1を装置で表現したものである。<Correspondence with claims at the time of filing>
Parallel editing in this specification means that a copy of all or part of information in a global original DB (real or virtual) (intuitively DB original) is stored in a local original DB (intuitively in a PC). It is held as “Duplicate DB”) and edited. Editing information on the duplicate DB held by each PC is exchanged by the PC to update each duplicate DB. The reason why the replicated DBs of each PC are synchronized is that each PC updates each replicated DB using the same editing information in the same order. This is expressed in
請求項1の工程Dに編集記録の有効性を確認する手順を加えたのが請求項3である。請求項4は編集に影響を与える「不変確認範囲」の概念を請求項3追加し、これを用いて、編集記録の有効性確認を行う事を示したものである。請求項5は複製DBのバージョンの概念を請求項3追加し、これを用いて、編集記録の有効性確認を行う事を示したものである。請求項6はバージョンが複製DBの一部の情報又は情報の組み合わせに指定されている場合のものである。
A process for confirming the validity of the edit record is added to the process D of the first aspect. Claim 4 shows that the concept of “invariant confirmation range” that affects editing is added to claim 3, and the validity of the edit record is confirmed using this concept. Claim 5 shows that the concept of the version of the duplicate DB is added to claim 3, and the validity of the edit record is confirmed using this.
請求項7は請求項5をベースに、有効性が否定されても複製DBのバージョンの更新を行う事を追加したものである。請求項8は請求項5をベースに、アップされた編集記録にサーバーがアップ日時を記入するし、PCはこれを複製DBのバージョンとする方法である。請求項9は請求項5をベースに、PCがサーバーにアクセスした時間を(サーバーから貰い)複製DBのバージョンとする方法である。 The seventh aspect is based on the fifth aspect, and is added to update the version of the duplicate DB even if the validity is denied. Claim 8 is a method based on claim 5 in which the server enters the date and time of the upload in the uploaded edit record, and the PC uses this as the version of the duplicate DB. A ninth aspect of the present invention is a method based on the fifth aspect, wherein the time when the PC accesses the server (from the server) is used as a version of the duplicate DB.
サーバーDBアクセスでは、サーバーとの通信が不可能な状況ではデータへのアクセスは出来ないも問題があった。移動体では通信不可能なケースが頻発しDB操作に大きな制限となる。災害時の救援、医療、金融などいわゆるミッションクリティカルな業務では通信不可能な状況下でも業務遂行が求められるが、これに応える事は出来ない。 In server DB access, there is a problem that data cannot be accessed in a situation where communication with the server is impossible. Cases in which communication is impossible with a mobile object frequently occur, which greatly restricts DB operations. In so-called mission-critical operations such as disaster relief, medical care, and finance, business execution is required even in situations where communication is impossible, but this cannot be met.
この問題を解決するのが並行DB編集であるが、キャシュの技術をベースにした方法にはいくつかの問題が指摘されていた。 Parallel DB editing solves this problem, but several problems have been pointed out in the method based on the cache technology.
本願では、仮想の又は実在のグローバル原本DB、と同期したローカル原本DBを作成し、永続的なキャシュとして用いる。そして、ローカル原本DBに対する編集を行う直前など、必要な時にローカル原本DBをグローバル原本DBと同期する。これにより、編集毎にコピーを作成する従来の方法のオーバーヘッドやキャシュ有効性の判定などの問題が解決される。 In the present application, a local original DB synchronized with a virtual or real global original DB is created and used as a permanent cache. Then, the local original DB is synchronized with the global original DB when necessary, such as immediately before editing the local original DB. As a result, problems such as the overhead of the conventional method of creating a copy for each editing and the determination of the cache validity are solved.
また、あるPCが過去に操作した情報が他のPCの操作により変更された事を検出するのは、従来の方法では困難であったが、この本格的な「並行DBアクセス編集」で容易に検出する事が可能になった。情報の編集状況を操作者が精査した上で、適切な対応を取ることが出来る。無効になったデータを再入力する事も、一部修正して再入力することも、最新のデータを修正する事も、無効とされたことを受け入れることも可能である。 In addition, it is difficult to detect that information operated by a PC in the past has been changed by the operation of another PC, but this full-scale "parallel DB access editing" makes it easy. It became possible to detect. Appropriate action can be taken after the operator carefully examines the information editing status. The invalidated data can be re-inputted, partly corrected and re-inputted, the latest data can be corrected, or the invalidated data can be accepted.
さらに、ローカル原本DBが保持し同期する対象はグローバル原本DBの全体である必要は無く、その計算機に必要な一部の情報のみで良い。例えば、医療情報なら患者の計算機のローカル原本DBはこの患者個人の医療情報のみを保持し、医者の計算機のローカル原本DBには担当患者の医療情報のみを保持する。これにより、従来の方法で問題であったキャシュの適正量の問題も解決される。 Furthermore, the object to be held and synchronized by the local original DB does not have to be the entire global original DB, but only a part of information necessary for the computer. For example, in the case of medical information, the local original DB of the patient computer holds only the medical information of the individual patient, and the local original DB of the doctor computer holds only the medical information of the patient in charge. This solves the problem of the appropriate amount of cache, which was a problem with the conventional method.
「編集記録の有効性の判定」と「ローカル原本DBの更新」などの処理をサーバーで無くPCで行う事の長所として、以下が挙げられる。
(1)必要な編集記録とその順番を取り込んでしまえば、サーバーとの通信が不要なので、その後の利用者の操作に対応するレスポンスが早くなる。
(2)ローカル原本DBを更新する処理がこのPCで行われるので、特定の編集から影響を受ける情報(レコード)の範囲をきめ細かく調査する事ができる。また、操作者の要求に応じてより詳しい情報を表示する事が出来る。
(3)一般に、個々の計算機の計算能力は余っている事が多く、処理負荷が集中するサーバーに処理を置くよりも処理が高速になる。上記(1)との相乗効果で利用者の操作に対応するレスポンスが早くなる。Advantages of performing processing such as “determination of validity of editing record” and “update of local original DB” on the PC instead of the server are as follows.
(1) If the necessary editing records and their order are taken in, communication with the server is unnecessary, and the response corresponding to the subsequent user operation is quickened.
(2) Since the process of updating the local original DB is performed on this PC, the range of information (records) affected by specific editing can be investigated in detail. Further, more detailed information can be displayed according to the operator's request.
(3) Generally, the computing power of individual computers is often surplus, and the processing is faster than placing processing on a server where processing load is concentrated. The response corresponding to the user's operation is accelerated due to the synergistic effect with the above (1).
また、ローカル原本DBの更新の間隔を調整する事により、「ほぼオンライン運用」から「ほぼオンライン運用」まで、自由に選択出来る。編集アクセスの多い情報を扱う場合は頻繁にローカル原本DBの更新を行う「ほぼオンライン運用」を行えば良いし、支払伝票の入力の様に、修正が無いか修正があってもデータを入力した計算機で行う事が多い場合には、ローカル原本DBの更新の間隔を極端に延ばした「ほぼオフライン運用」で問題は無い。決算や検査が近くなってから編集をアップしても問題は無い。 In addition, by adjusting the update interval of the local original DB, it is possible to freely select from “almost online operation” to “almost online operation”. When handling information with a lot of editing access, it is sufficient to perform “almost online operation” that frequently updates the local original DB, and data is entered even if there is no correction or correction, such as payment slip input. When there are many cases that are performed by a computer, there is no problem in “almost offline operation” in which the update interval of the local original DB is extremely extended. There is no problem even if the editing is uploaded after the closing of accounts and inspections.
複数のPCがそれぞれの事情に応じて「ほぼオンライン運用」か「ほぼオンライン運用」が選択でき、両者が混在して運用出来るのも都合が良い。 It is convenient for a plurality of PCs to select “almost online operation” or “almost online operation” depending on the circumstances, and to operate both in a mixed manner.
0100 計算機
0102 通信装置
0103 演算装置
0104 主記憶装置
0105 主記憶装置内のDB(データベース)
0106 二次記憶装置
0107 入出力装置
0108 表示装置
0109 バス
0110 通信網
0111 二次記憶装置内のDB(データベース)
0201 PC
0202 インターネットなどの通信網
0203 サーバー
0204 (PCの)記憶装置
0205 (サーバーの)記憶装置
0206 ローカル原本DB
0207 グローバル初期原本DB
0208 編集記録
0209 作業DB
0210 編集記録n
0210 編集記録n+1
0211 編集記録m
0213 編集手段
0214 更新手段
0215 送信手段
0216 受信手段
0217 送受信管理手段
0218 編集記録1
0219 編集記録m
0220 送信手段
0221 受信手段
0222 送受信管理手段
0301 編集記録(のメモリエリア)を確保
0302 ローカル原本DB内の編集対象情報を特定
0303 この情報が属するバージョン設定範囲を特定し編集記録に記入
0304 このバージョン設定範囲のバージョンを取得し編集記録に記入
0305 編集対象の情報に対応する不変確認範囲を特定し編集記録に記入
0306 編集対象の情報を特定する情報、編集の中身を編集記録に記入
0307 ローカル原本DBに上記編集を適用した作業DBを作成
0308 サーバーに編集記録を送る
0401 サーバーに前回の最終編集記録を通知
0402 サーバーから前回より後の編集記録のリストを受信
0403 編集記録を受信
0404 受信した編集記録を未処理編集記録リストにいれる
0405 編集禁止中を問い合わせる
0501 未処理の編集記録リストから編集記録を取り出し
0502 この編集記録の不変確認範囲と編集バージョンにより、現在のローカル原本DBに対して有効かを判定
0503 ローカル原本DBを更新
0504 ローカル原本DBのバージョンを更新
0602 PC−A
0603 PC−B
0604 初期DB
0605 (PC−Aの)ローカル原本DB更新
0606 (PC−Bの)ローカル原本DB更新
0608 (PC−Aの)レコードZの複製
0609 (PC−Bの)レコードZの複製
0610 (PC−Aによる)グローバル初期原本DBの取得
0611 (PC−Bによる)グローバル初期原本DBの取得
0612 (PC−Aによる)同期
0613 (PC−Aの操作者による)編集
0614 (PC−Aによる)編集の送信。つまり編集のアップ。
0616 (PC−Aへの)確認(通知)と(PC−Aによる)同期。なお、同期とは新たな編集とその順番の取得であり、他の記号の説明においても同じである。
0617 (PC−Bによる)同期
0618 (PC−Bの操作者による)編集
0619 (PC−Bによる)編集の送信。つまり編集のアップ。
0621 (PC−Bへの)確認(通知)と(PC−Bによる)同期。
0622 (PC−Bによる)同期
0623 (PC−Bの編集に基づくPC−AのレコードZの複製の)修正0100 Calculator
0102 Communication device
0103 Arithmetic unit
0104 Main memory
0105 DB (database) in main storage
0106 secondary storage
0107 I / O device
0108 display device
0109 Bus
0110 communication network
0111 DB (database) in secondary storage
0201 PC
0202 Communication network such as the Internet
0203 server
0204 (PC) storage device
0205 (server) storage device
0206 Local original DB
0207 Global Early Original DB
0208 Editing record
0209 Work DB
0210 Editing record n
0210 Editing record n + 1
0211 Editing record
0213 Editing means
0214 Update means
0215 Transmission means
0216 Receiving means
0217 Transmission / reception management means
0218
0219 Editing record m
0220 Transmission means
0221 Receiving means
0222 Transmission / reception management means
0301 Allocate edit memory (memory area)
0302 Identifies information to be edited in the local original DB
0303 Specify the version setting range to which this information belongs and enter it in the edit record
0304 Get version of this version setting range and fill in edit record
0305 Specify the invariant confirmation range corresponding to the information to be edited and enter it in the edit record
0306 Information that identifies the information to be edited and the contents of the edit are entered in the edit record
0307 Create a work DB that applies the above edits to the local original DB
0308 Send edit record to server
0401 Notify server of last edit record
0402 Receive a list of edit records since last time from server
0403 Receive edit record
0404 Put received edit record in unprocessed edit record list
0405 Queries editing prohibited
0501 Take edit record from unprocessed edit record list
0502 Determines whether this edit record is valid for the current local original DB from the invariant confirmation range and edit version
0503 Update local original DB
0504 Update local original DB version
0602 PC-A
0603 PC-B
0604 Initial DB
0605 Local original DB update (of PC-A)
0606 Local original DB update (of PC-B)
0608 Copy of record Z (PC-A)
0609 Copy of record Z (PC-B)
0610 Acquisition of global initial original DB (by PC-A)
0611 Acquisition of global initial original DB (by PC-B)
0612 Synchronization (by PC-A)
0613 Editing (by PC-A operator)
0614 Send edit (by PC-A). In other words, editing is up.
Confirmation (notification) (to PC-A) and synchronization (by PC-A). The synchronization is new editing and acquisition of the order thereof, and the same applies to the description of other symbols.
0617 Synchronization (by PC-B)
0618 Editing (by PC-B operator)
0619 Send edit (by PC-B). In other words, editing is up.
Confirmation (notification) (to PC-B) and synchronization (by PC-B).
0622 Synchronization (by PC-B)
0623 Modification of PC-A record Z copy based on PC-B edit
本発明の方法は計算機のプログラムとして実現出来る。図1に典型的な計算機0101の構成を示す。演算装置0103、主記憶装置0104、二次記憶装置0106、入出力装置0107、表示装置0108がバス0109で接続されている。他の計算機とデータを交換する場合は通信装置0102を介して通信網0101に接続する。各請求項で言及している「データベース」が、二次記憶装置0106内のDB0111又は主記憶操作0104の内部のDB0105である。
The method of the present invention can be realized as a computer program. FIG. 1 shows the configuration of a
プログラムは二次記憶装置0106に記録され、起動されると主記憶操作0104に展開され、プログラムに指定された手順で演算装置0103が動作する。この結果として計算機は、プログラム開発者が意図した動作を実現する手段の集合体に再構成される。
The program is recorded in the
プログラムによるDBの操作は、DBの全体または一部を主記憶操作0104に展開してから行うのが一般的である。二次記憶装置0106内のDB0111の全部又は一部を主記憶操作0104に展開したDB0105を操作し、その編集結果を二次記憶装置0106内のDB0111に書き込む。しかし通常は、DBは二次記憶装置0106内に有るとし、主記憶操作0104に展開したDB0105と区別せず議論するので、図2では単に、記憶装置0204, 0205の中のDBとして表示する。
In general, a DB operation by a program is performed after all or a part of the DB is expanded to the
サーバー0203に編集記録0218, 0219を置き、PC0201がこの編集記録を受信し、PCのローカル原本DB0206を更新するケースを図2で説明する。PC0201がインターネットなどの通信網0202を介して、サーバー0203と接続している。一般にPCは複数存在するが、図2では1台のみを示している。
The case where the
PC0201には記憶装置0204が有り、ローカル原本DB0206が記録されている。ローカル原本DB0206の初期値は、サーバー0203の記憶装置0205のグローバル初期原本DB0207をコピーしたものである。操作者の指示を受けて編集手段0213が編集を行うが、この時にはローカル原本DB0206を直接編集する事はせず、編集結果を作業DB0209とする。同時に編集記録0208を作成する。この編集記録には、編集バージョンつまり、ローカル原本DBに設定されているバージョンが記録される。
The
編集記録0208は送信手段0215により通信網0202を介してサーバー0203に送られる。サーバー0203は受信手段0221により受信し、編集記録10218, 編集記録m0219の列に加えられる。編集記録には編集バージョンなどが記録されている。もし、編集記録とは別に編集バージョンがサーバーに送られてきた場合には、サーバーは両者の対応を記録する。
The
PC0201がローカル原本DB0206の更新試みる場合は、まずサーバーに未受信の編集記録の送信を要求する。PC0201がそれまでに受信した編集記録の最後のバージョンを通知すると、送受信管理手段がそれ以降の編集記録を選別し、送信手段0220によりサーバーから送る。PCの送信の受信の協調作業は送受信管理手段0217により行われ、サーバーの送信の受信の協調作業は送受信管理手段0222により行われる。
When the
PC0201が受信手段0216により受信した編集記録n0210, 編集記録n+12011, 編集記録m0212は記憶装置0204に記録される。更新手段0214がこれらを順番に取り出して、有効性を判定してローカル原本DB0206を更新し、そのバージョンを更新する。
The edit record n0210, edit record n + 12011, and edit record m0212 received by the receiving
図3に、PCが保持するローカル原本DBに対して行った編集の記録(つまり「編集記録」)をサーバーにアップする工程を示す。まず「編集記録(のメモリエリア)を確保」0301する。「ローカル原本DB内の編集対象情報を特定」0302し、「この情報が属するバージョン設定範囲を特定し編集記録に記入する」0303。さらに、「このバージョン設定範囲のバージョンを取得し編集記録に記入」0304し、「編集対象の情報に対応する不変確認範囲を特定し編集記録に記入」0305し、「編集対象の情報を特定する情報、編集の中身を編集記録に記入する」0306。そして「ローカル原本DBに、上記編集を適用した作業DBを作成」0307し、「サーバーに編集記録を送る」0308。 FIG. 3 shows a process of uploading an edit record (that is, “edit record”) performed on the local original DB held by the PC to the server. First, “Reserve editing record (memory area)” 0301 is executed. “Identify editing target information in local original DB” 0302 and “Identify the version setting range to which this information belongs and enter it in the editing record” 0303. Furthermore, “Obtain version of this version setting range and fill in edit record” 0304, “Identify invariant confirmation range corresponding to information to be edited and fill in edit record” 0305, “Identify information to be edited Information and editing contents are entered in the edit record "0306. Then, “Create a work DB to which the above editing is applied in the local original DB” 0307 and “Send editing record to server” 0308.
図4に、ローカル原本DBに対する編集記録と、これらに指定された順序を、サーバーから受信する工程を示す。まず「サーバーに前回の最終編集記録を通知」0401し、「サーバーから前回より後の編集記録のリストを受信」0402する。このリストに従って、「編集記録を受信」0403し、「受信した編集記録を未処理編集記録リストにいれる」0404。最後に「編集禁止中を問い合わせる」0405。編集禁止中でも、図5のサーバーから受信した編集記録でローカル原本DBを更新する手段0214は起動するが、編集手段0213(および図3の手順)によるローカル原本DB0206に対する編集とサーバーへの編集記録の送信は行わない。
FIG. 4 shows a process of receiving from the server the editing record for the local original DB and the order designated for them. First, “notify the server of the last edit record of the last time” 0401 and “receive a list of edit records after the previous time from the server” 0402. According to this list, “Receive edit record” 0403 and “Place received edit record in unprocessed edit record list” 0404. Finally, “inquire when editing is prohibited” 0405. Even when editing is prohibited, the means 0214 for updating the local original DB with the editing record received from the server in FIG. 5 is activated, but the editing of the local
図5に、サーバーから受信した編集記録でローカル原本DBを更新する更新手段0214の処理工程を示す。「未処理の編集記録リスト(編集記録n0210, 編集記録n+12011, 編集記録m0212のリスト)から編集記録を取り出し」0501、「この編集記録の不変確認範囲と編集バージョンにより、現在のローカル原本DBに対して有効かを判定」0502し、有効ならば「ローカル原本DBを更新」0503し、「ローカル原本DBのバージョンを更新」0504する。これを未処理の編集記録リストの全ての編集記録に対して行う。 FIG. 5 shows the processing steps of the updating means 0214 for updating the local original DB with the edit record received from the server. “Retrieve edit record from unprocessed edit record list (list of edit record n0210, edit record n + 12011, edit record m0212)” 0501, “With the invariable confirmation range and edit version of this edit record, If it is valid, “Update local original DB” 0503 and “Update local original DB version” 0504. This is performed for all edit records in the unprocessed edit record list.
編集記録に、サーバーがこの編集記録を受け付けた時間がその編集バージョンとして記録されていれば、これを更新されたローカル原本DBのバージョンとする。サーバーに未受信の編集記録の有無を問い合わせた日時をバージョンとする場合は、図4の工程でサーバーから時間を取得し、図5の工程の最後(終了の直前)でその時間をローカル原本DBのバージョンとして設定する。 If the time when the server accepted this edit record is recorded as the edit version in the edit record, this is the version of the updated local original DB. When the date when the server is inquired about whether or not there is an unrecorded edit record is used as the version, the time is acquired from the server in the process of FIG. 4, and the time is acquired at the end of the process of FIG. Set as version.
ある実施例におけるバージョンの変化を図6で説明する。図6のDBはRDBで、バージョン設定範囲をDB全体、バージョンは整数、不変確認範囲は編集したレコードのみとしている。また、レコード毎にこのレコードを編集した時点の編集バージョンを「レコードバージョン」として記録し、これを用いて編集の有効性を確認している。 The change in version in one embodiment is illustrated in FIG. The DB in FIG. 6 is an RDB, and the version setting range is the entire DB, the version is an integer, and the invariant confirmation range is only the edited record. The edit version at the time of editing this record is recorded as “record version” for each record, and the validity of the edit is confirmed using this.
PC−A0602とPC−B0603はそれぞれグローバル初期原本DB0604を取得0610, 0611し、それぞれのローカル原本DB0605, 0606としている。サーバーのグローバル初期原本DB0604をコピーしているので、どちらもベースバージョンは0である。その後、サーバー0601に編集1から編集6がアップされているが、これはPC−A0602、PC−B0603以外のPC−がアップした編集である。図2では、PC−A0602はもう一度サーバーにアクセスしその時の最新の編集しその順番を取得している0612。このとき、編集1を取り込むので、ローカル原本DB0605のバージョンは1になる。
The PC-A 0602 and the PC-B 0603 obtain the global initial original DB 0604 0610 and 0611, respectively, and use them as the local original DBs 0605 and 0606, respectively. Since the global initial original DB 0604 of the server is copied, the base version of both is 0. Thereafter,
さて、PC−A0602の操作者が、ローカル原本DB0605内のレコードZの複製0608を編集したとする0613。この時、ローカル原本DB0605のベースバージョンが1なので、編集された「レコードZの複製0608」のレコードバージョンが1にセットされる。この編集結果がサーバーにアップされ0614、編集7として記録される。この直後に、PC−A0602は、(既に取得してある)編集1より後にアップされた、編集2から編集6を取得し、さらにPC−A0602先のアップ0614が編集7となった事を確認する。あらかじめ指定された「編集の有効性の判定」に基づき編集7までを順番に調査し、ローカル原本DB0605を更新する。ここでは、編集7が有効と判定されたとし、ローカル原本DB0605のベースバージョンが7になる。
Now, let us say that the operator of the PC-A 0602 has edited the copy 0608 of the record Z in the local original DB 0605 0613. At this time, since the base version of the local original DB 0605 is 1, the record version of the edited “copy of record Z 0608” is set to 1. This edit result is uploaded to the server and recorded as 0614 and
一方、PC−B0603はサーバー0601から、編集1から(この同期0617時点での最新の)編集6を取得し0617、ローカル原本DB0606を更新してベースバージョンを6とする。その後PC−B0603の操作者が、「レコードZの複製0609」を編集した0618とする。この時、「レコードZの複製0609」のレコードバージョンが6になり、編集としてサーバーにアップされ0619、編集8として記録される。
On the other hand, the PC-B 0603 acquires from the server 0601 the edit 6 (latest as of this synchronization 0617) from the
その後別のPCから編集9がアップされた後、PC−A0602がサーバー0601にアクセスし、(既に取得してある)編集7より後にアップされた編集8と編集9を取得する0622。そしてローカル原本DB0608に編集8と編集9を順番に適用し、「編集の有効性の判定」を行い、ローカル原本DB0608を更新する。ここでローカル原本DB0608に編集9が反映されるので、製DB0608のベースバージョンが9になる。この時点で、先にPC−B0603が編集したレコードZの複製0609の内容がPC−A0602のローカル原本DB0605で有効になり、先にPC−A0602が編集したレコードZの複製0608内容が無効になった事が(PC−A0602で)判明する。
Thereafter, after the
サーバーにデータベースが置かれ、複数の計算機がアクセスする運用が一般的に行われているが、サーバーにアクセス出来ないと編集が出来ないなどの問題もある。本発明は計算機が永続的に複製DBを保持する、いわば本格的な「並行DB編集」を提案しており、サーバーとの接続が不可能なケースが頻発する移動体や、災害時の救援、医療、金融などいわゆるミッションクリティカルな業務に用いる事が出来る。 A database is placed on a server and a plurality of computers access it in general. However, there is a problem that editing is not possible unless the server is accessed. The present invention proposes a full-fledged “parallel DB editing” in which a computer permanently holds a replicated DB, so that a mobile object that frequently occurs in a case where connection to a server is impossible, rescue in the event of a disaster, It can be used for so-called mission critical tasks such as medical care and finance.
Claims (8)
少なくとも、
(A)該「自複製」に対する編集内容(以下「自編集内容」)を作成する手段、
(B1)該「自装置」とは異なる単数または複数の装置(以下「他装置」)が保持する、単数または複数の「該データベースの全体またはその一部の複製」(以下「他複製」)に対し、該「他装置」が作成する単数または複数の編集内容(以下「他編集内容」)と、
手段(A)で作成される単数または複数の該「自編集内容」を、合わせて以下では「編集内容群」とし、
該「編集内容群」の該「編集内容」が集められる装置を「サーバー」としたとき、
手段(A)により該「自編集内容」が作成された後に、該「自装置」から該サーバーに該「自編集内容」を送信する手段、
(C1)該「他編集内容」を該サーバーから受信する手段、
(D1)順番が付けられた、一連の該「編集内容群」の個々の該「編集内容」を該「順番」で用いて、該「自複製」を更新する手段、
(E1)手段(D1)の該「順番」を特定するための情報であって、該「編集内容群」の個々の該「編集内容」に対応する情報を、「個別順番情報」とし、
個々の該「編集内容」がそれぞれ該サーバーに到着した順番(以下「サーバーへの到着の順序」)を、個々の該「編集内容」に対応する該「個別順番情報」としたとき、
少なくとも、該「自編集内容」に対する該「個別順番情報」である該「サーバーへの到着の順序」を、該サーバーから取得する手段、
を有し、
さらに、手段(D1)において、該編集内容の有効性を判定し、有効と判定された該編集内容により該「自複製」を更新すること、
を特徴とする自装置。A device (hereinafter referred to as “own device”) that retains a copy of the entire “real or virtual database” or a part thereof (hereinafter referred to as “self copy”) and executes an update of the “self copy”.
at least,
(A) means for creating edited content (hereinafter referred to as “self-edited content”) for the “self-replicated”;
(B1) for holding different one or more devices (hereinafter "other device") is the said "self-device", "all or part of the replication of the database" s (hereinafter "other replication") On the other hand, one or more edit contents created by the “other device” (hereinafter “other edit contents” ) ,
One or a plurality of the “self-editing contents” created by the means (A) are collectively referred to as “editing contents group” below.
When a device that collects the “edit contents” of the “edit contents group” is a “server”,
Means for transmitting the “self-editing content” from the “self-device” to the server after the “self-editing content” is created by the means (A);
(C1) means for receiving the “other editing content” from the server;
(D1) means for updating the “self-duplicate” by using the individual “edit contents” of the series of the “edit contents group” in order and using the “order”.
(E1) Information for identifying the “order” of the means (D1) and corresponding to each “edit content” of the “edit content group” is referred to as “individual order information”.
When the order of arrival of the individual “edit contents” at the server (hereinafter referred to as “order of arrival at the server”) is the “individual order information” corresponding to the individual “edit contents”,
Means for acquiring from the server at least the “order of arrival at the server” which is the “individual order information” for the “self-edited content”;
Have
Furthermore, the means (D1) determines the validity of the edited content, and updates the “self-replicated” with the edited content determined to be valid.
Self-device characterized by.
少なくとも、
(A)該「自複製」に対する編集内容(以下「自編集内容」)を作成する手段、
(B1)該「自装置」とは異なる単数または複数の装置(以下「他装置」)が保持する、単数または複数の「該データベースの全体またはその一部の複製」(以下「他複製」)に対し、該「他装置」が作成する単数または複数の編集内容(以下「他編集内容」)と、
手段(A)で作成される単数または複数の該「自編集内容」を、合わせて以下では「編集内容群」とし、
該「編集内容群」の該「編集内容」が集められる装置を「サーバー」としたとき、
手段(A)により該「自編集内容」が作成された後に、該「自装置」から該サーバーに該「自編集内容」を送信する手段、
(C1)該「他編集内容」を該サーバーから受信する手段、
(D1)順番が付けられた、一連の該「編集内容群」の個々の該「編集内容」を該「順番」で用いて、該「自複製」を更新する手段、
(E2)手段(D1)の該「順番」を特定するための情報であって、該「編集内容群」の個々の該「編集内容」に対応する情報を、「個別順番情報」とし、
該サーバーに集められた個々の「編集内容」に対して、該サーバーにおいて設定された順番(以下「設定された順番」)を、該「個別順番情報」としたとき、
少なくとも、該「自編集内容」に対する該「個別順番情報」である該「設定された順番」を、該サーバーから取得する手段、
を有し、
さらに、手段(D1)において、該編集内容の有効性を判定し、有効と判定された該編集内容により該「自複製」を更新すること、
を特徴とする自装置。A device (hereinafter referred to as “own device”) that retains a copy of the entire “real or virtual database” or a part thereof (hereinafter referred to as “self copy”) and executes an update of the “self copy”.
at least,
(A) means for creating edited content (hereinafter referred to as “self-edited content”) for the “self-replicated”;
(B1) for holding different one or more devices (hereinafter "other device") is the said "self-device", "all or part of the replication of the database" s (hereinafter "other replication") On the other hand, one or more edit contents created by the “other device” (hereinafter “other edit contents” ) ,
One or a plurality of the “self-editing contents” created by the means (A) are collectively referred to as “editing contents group” below.
When a device that collects the “edit contents” of the “edit contents group” is a “server”,
Means for transmitting the “self-editing content” from the “self-device” to the server after the “self-editing content” is created by the means (A);
(C1) means for receiving the “other editing content” from the server;
(D1) means for updating the “self-duplicate” by using the individual “edit contents” of the series of the “edit contents group” in order and using the “order”.
(E2) Information for specifying the “order” of the means (D1) and corresponding to each “edit content” of the “edit content group” is referred to as “individual order information”,
When the order set in the server (hereinafter referred to as “set order”) for each “edit content” collected in the server is the “individual order information”,
Means for acquiring from the server at least the “set order” which is the “individual order information” for the “self-editing content”;
Have
Furthermore, the means (D1) determines the validity of the edited content, and updates the “self-replicated” with the edited content determined to be valid.
Self-device characterized by.
少なくとも、
(A)該「自複製」に対する編集内容(以下「自編集内容」)を作成する手段、
(B2)該「自装置」とは異なる単数または複数の装置(以下「他装置」)が保持する、単数または複数の「該データベースの全体またはその一部の複製」(以下「他複製」)に対し、該「他装置」が作成する単数または複数の編集内容(以下「他編集内容」)と、
手段(A)で作成される単数または複数の該「自編集内容」を、合わせて以下では「編集内容群」とし、
該「編集内容群」が集められ、該「編集内容群」を自装置および他装置に渡す装置を「サーバー」としたとき、
手段(A)により該「自編集内容」が作成された後に、該「自装置」から該サーバーに該「自編集内容」を送信する手段、
(C1)該「他編集内容」を該サーバーから受信する手段、
(D1)順番が付けられた、一連の該「編集内容群」の個々の該「編集内容」を該「順番」で用いて、該「自複製」を更新する手段、
(E3)手段(D1)の該「順番」を特定するための情報であって、該「編集内容群」の個々の該「編集内容」に対応する情報を、「個別順番情報」とし、
個々の該「編集内容」がそれぞれ該「自装置」に到着した順番(以下「自装置への到着の順序」)を、個々の該「編集内容」に対応する該「個別順番情報」としたとき、
少なくとも、該「自編集内容」に対する該「個別順番情報」である該「自装置への到着の順序」を、該サーバーから該「編集内容群」を受信する事により取得する手段、
を有し、
さらに、手段(D1)において、該編集内容の有効性を判定し、有効と判定された該編集内容により該「自複製」を更新すること、
を特徴とする自装置。A device (hereinafter referred to as “own device”) that retains a copy of the entire “real or virtual database” or a part thereof (hereinafter referred to as “self copy”) and executes an update of the “self copy”.
at least,
(A) means for creating edited content (hereinafter referred to as “self-edited content”) for the “self-replicated”;
(B2) the different one or more devices (hereinafter "other device") is held as "own device", singular or "all or a part of the replication of the databases" more (hereinafter "other replication") On the other hand, one or more edit contents created by the “other device” (hereinafter “other edit contents” ) ,
One or a plurality of the “self-editing contents” created by the means (A) are collectively referred to as “editing contents group” below.
When the “edited content group” is collected and the device that passes the “edited content group” to the own device and another device is a “server”,
Means for transmitting the “self-editing content” from the “self-device” to the server after the “self-editing content” is created by the means (A);
(C1) means for receiving the “other editing content” from the server;
(D1) means for updating the “self-duplicate” by using the individual “edit contents” of the series of the “edit contents group” in order and using the “order”.
(E3) Information for specifying the “order” of the means (D1) and corresponding to each “edit content” of the “edit content group” is referred to as “individual order information”,
The order in which each of the “edit contents” arrives at the “own apparatus” (hereinafter, “order of arrival at the own apparatus”) is defined as the “individual order information” corresponding to each of the “edit contents”. When
Means for obtaining at least the “order of arrival at the own device” which is the “individual order information” for the “self-edited content” by receiving the “edited content group” from the server;
Have
Furthermore, the means (D1) determines the validity of the edited content, and updates the “self-replicated” with the edited content determined to be valid.
Self-device characterized by.
少なくとも、
(A)該「自複製」に対する編集内容(以下「自編集内容」)を作成する手段、
(B3)手段(A)により自「編集内容」が作成された後に、該「自装置」から該「自装置」の外部の装置に、該「自編集内容」を送信する手段、
(C2)該「自装置」とは異なる単数または複数の装置(以下「他装置」)が保持する、単数または複数の「該データベースの全体またはその一部の複製」(以下「他複製」)に対し、該「他装置」が作成する単数または複数の編集内容を「他編集内容」としたとき、
該「他編集内容」を該「自装置」の外部の装置から受信する手段、
(D2)該「他編集内容」と、手段(A)で作成された単数または複数の該「自編集内容」を、合わせて「編集内容群」としたとき、
順番が付けられた一連の、該「編集内容群」の個々の該「編集内容」を、該「順番」で用いて、該「自複製」を更新する手段、
(E4)手段(D2)の該「順番」を特定するための情報であって、該「編集内容群」の個々の該「編集内容」に対応する情報を、「個別順番情報」とし、
順序数を発行する装置(以下「サーバー」)が個々の該「編集内容」に対し発行した順序数を、個々の該「編集内容」に対応する該「個別順番情報」としたとき、
少なくとも、該「自編集内容」に対する該「個別順番情報」である該「順序数」を、該サーバーから取得する手段、
を有し、
さらに、手段(D2)において、該編集内容の有効性を判定し、有効と判定された該編集内容により該「自複製」を更新すること、
を特徴とする自装置。A device (hereinafter referred to as “own device”) that retains a copy of the entire “real or virtual database” or a part thereof (hereinafter referred to as “self copy”) and executes an update of the “self copy”.
at least,
(A) means for creating edited content (hereinafter referred to as “self-edited content”) for the “self-replicated”;
(B3) means for transmitting the “self-editing content” from the “self-device” to a device outside the “self-device” after the self-editing content is created by the means (A);
(C2) said different one or more devices (hereinafter "other device") is held as "own device", singular or "all or a part of the replication of the databases" more (hereinafter "other replication") On the other hand, when one or more edit contents created by the “other device” are “other edit contents”,
Means for receiving the “other editing content” from a device external to the “own device”;
(D2) When the “other editing contents” and one or more “self-editing contents” created by the means (A) are combined into an “editing content group”,
Means for updating the “self-duplicate” by using each of the “edit contents” of the series of “edit contents” in the “order”.
(E4) Information for specifying the “order” of the means (D2) and corresponding to each “edit content” of the “edit content group” is referred to as “individual order information”.
When the order number issued by the device that issues the order number (hereinafter referred to as “server”) to each “edit content” is the “individual order information” corresponding to each “edit content”,
Means for acquiring from the server at least the “order number” that is the “individual order information” for the “self-editing content”;
Have
Further, the means (D2) determines the validity of the edited content, and updates the “self-replicated” with the edited content determined to be valid.
Self-device characterized by.
(A)該「自複製」に対する編集内容(以下「自編集内容」)を作成する工程、
(B1)該「自装置」とは異なる単数または複数の装置(以下「他装置」)が保持する、単数または複数の「該データベースの全体またはその一部の複製」(以下「他複製」)に対し、該「他装置」が作成する単数または複数の編集内容(以下「他編集内容」)と、
工程(A)で作成される単数または複数の該「自編集内容」を、合わせて以下では「編集内容群」とし、
該「編集内容群」の該「編集内容」が集められる装置を「サーバー」としたとき、
工程(A)により該「自編集内容」が作成された後に、該「自装置」から該サーバーに該「自編集内容」を送信する工程、
(C1)該「他編集内容」を該サーバーから受信する工程、
(D1)順番が付けられた、一連の該「編集内容群」の個々の該「編集内容」を該「順番」で用いて、該「自複製」を更新する工程、
(E1)工程(D1)の該「順番」を特定するための情報であって、該「編集内容群」の個々の該「編集内容」に対応する情報を、「個別順番情報」とし、
個々の該「編集内容」がそれぞれ該サーバーに到着した順番(以下「サーバーへの到着の順序」)を、個々の該「編集内容」に対応する該「個別順番情報」としたとき、
少なくとも、該「自編集内容」に対する該「個別順番情報」である該「サーバーへの到着の順序」を、該サーバーから取得する工程、
を有し、
さらに、工程(D1)において、該編集内容の有効性を判定し、有効と判定された該編集内容により該「自複製」を更新すること、
を特徴とするプログラム。It is a program for causing a computer (hereinafter referred to as “self device”) to update a copy of the “real or virtual database” recorded on a recording medium or a part thereof (hereinafter referred to as “self replica”). And (A) creating the edited content (hereinafter “self-edited content”) for the “self-replicated”,
(B1) for holding different one or more devices (hereinafter "other device") is the said "self-device", "all or part of the replication of the database" s (hereinafter "other replication") On the other hand, one or more edit contents created by the “other device” (hereinafter “other edit contents” ) ,
One or a plurality of the “self-editing contents” created in the step (A) are collectively referred to as an “editing contents group” below.
When a device that collects the “edit contents” of the “edit contents group” is a “server”,
A step of transmitting the “self-editing content” from the “self-device” to the server after the “self-editing content” is created by the step (A);
(C1) receiving the “other editing content” from the server;
(D1) updating the “self-duplicate” by using the individual “edit contents” of the series of “edit contents group” in order, using the “order”.
(E1) Information for specifying the “order” in step (D1), and information corresponding to each “edit content” in the “edit content group” is referred to as “individual order information”.
When the order of arrival of the individual “edit contents” at the server (hereinafter referred to as “order of arrival at the server”) is the “individual order information” corresponding to the individual “edit contents”,
At least obtaining the “order of arrival at the server” which is the “individual order information” for the “self-edited content” from the server;
Have
Further, in step (D1), the validity of the edited content is determined, and the “self-replicated” is updated with the edited content determined to be valid.
A program characterized by
(A)該「自複製」に対する編集内容(以下「自編集内容」)を作成する工程、
(B1)該「自装置」とは異なる単数または複数の装置(以下「他装置」)が保持する、単数または複数の「該データベースの全体またはその一部の複製」(以下「他複製」)に対し、該「他装置」が作成する単数または複数の編集内容(以下「他編集内容」)と、
工程(A)で作成される単数または複数の該「自編集内容」を、合わせて以下では「編集内容群」とし、
該「編集内容群」の該「編集内容」が集められる装置を「サーバー」としたとき、
工程(A)により該「自編集内容」が作成された後に、該「自装置」から該サーバーに該「自編集内容」を送信する工程、
(C1)該「他編集内容」を該サーバーから受信する工程、
(D1)順番が付けられた、一連の該「編集内容群」の個々の該「編集内容」を該「順番」で用いて、該「自複製」を更新する工程、
(E2)工程(D1)の該「順番」を特定するための情報であって、該「編集内容群」の個々の該「編集内容」に対応する情報を、「個別順番情報」とし、
該サーバーに集められた個々の「編集内容」に対して、該サーバーにおいて設定された順番(以下「設定された順番」)を、該「個別順番情報」としたとき、
少なくとも、該「自編集内容」に対する該「個別順番情報」である該「設定された順番」を、該サーバーから取得する工程、
を有し、
さらに、工程(D1)において、該編集内容の有効性を判定し、有効と判定された該編集内容により該「自複製」を更新すること、
を特徴とするプログラム。It is a program for causing a computer (hereinafter referred to as “self device”) to update a copy of the “real or virtual database” recorded on a recording medium or a part thereof (hereinafter referred to as “self replica”). And (A) creating the edited content (hereinafter “self-edited content”) for the “self-replicated”,
(B1) for holding different one or more devices (hereinafter "other device") is the said "self-device", "all or part of the replication of the database" s (hereinafter "other replication") On the other hand, one or more edit contents created by the “other device” (hereinafter “other edit contents” ) ,
One or a plurality of the “self-editing contents” created in the step (A) are collectively referred to as an “editing contents group” below.
When a device that collects the “edit contents” of the “edit contents group” is a “server”,
A step of transmitting the “self-editing content” from the “self-device” to the server after the “self-editing content” is created by the step (A);
(C1) receiving the “other editing content” from the server;
(D1) updating the “self-duplicate” by using the individual “edit contents” of the series of “edit contents group” in order, using the “order”.
(E2) Information for specifying the “order” in the step (D1), and information corresponding to each “edit content” in the “edit content group” is referred to as “individual order information”.
When the order set in the server (hereinafter referred to as “set order”) for each “edit content” collected in the server is the “individual order information”,
At least obtaining the “set order” which is the “individual order information” for the “self-editing content” from the server;
Have
Further, in step (D1), the validity of the edited content is determined, and the “self-replicated” is updated with the edited content determined to be valid.
A program characterized by
(A)該「自複製」に対する編集内容(以下「自編集内容」)を作成する工程、
(B2)該「自装置」とは異なる単数または複数の装置(以下「他装置」)が保持する、単数または複数の「該データベースの全体またはその一部の複製」(以下「他複製」)に対し、該「他装置」が作成する単数または複数の編集内容(以下「他編集内容」)と、
工程(A)で作成される単数または複数の該「自編集内容」を、合わせて以下では「編集内容群」とし、
該「編集内容群」が集められ、該「編集内容群」を自装置および他装置に渡す装置を「サーバー」としたとき、
工程(A)により該「自編集内容」が作成された後に、該「自装置」から該サーバーに該「自編集内容」を送信する工程、
(C1)該「他編集内容」を該サーバーから受信する工程、
(D1)順番が付けられた、一連の該「編集内容群」の個々の該「編集内容」を該「順番」で用いて、該「自複製」を更新する工程、
(E3)工程(D1)の該「順番」を特定するための情報であって、該「編集内容群」の個々の該「編集内容」に対応する情報を、「個別順番情報」とし、
個々の該「編集内容」がそれぞれ該「自装置」に到着した順番(以下「自装置への到着の順序」)を、個々の該「編集内容」に対応する該「個別順番情報」としたとき、
少なくとも、該「自編集内容」に対する該「個別順番情報」である該「自装置への到着の順序」を、該サーバーから該「編集内容群」を受信する事により取得する工程、
を有し、
さらに、工程(D1)において、該編集内容の有効性を判定し、有効と判定された該編集内容により該「自複製」を更新すること、
を特徴とするプログラム。It is a program for causing a computer (hereinafter referred to as “self device”) to update a copy of the “real or virtual database” recorded on a recording medium or a part thereof (hereinafter referred to as “self replica”). And (A) creating the edited content (hereinafter “self-edited content”) for the “self-replicated”,
(B2) the different one or more devices (hereinafter "other device") is held as "own device", singular or "all or a part of the replication of the databases" more (hereinafter "other replication") On the other hand, one or more edit contents created by the “other device” (hereinafter “other edit contents” ) ,
One or a plurality of the “self-editing contents” created in the step (A) are collectively referred to as an “editing contents group” below.
When the “edited content group” is collected and the device that passes the “edited content group” to the own device and another device is a “server”,
A step of transmitting the “self-editing content” from the “self-device” to the server after the “self-editing content” is created by the step (A);
(C1) receiving the “other editing content” from the server;
(D1) updating the “self-duplicate” by using the individual “edit contents” of the series of “edit contents group” in order, using the “order”.
(E3) Information for specifying the “order” in step (D1), and information corresponding to each “edit content” in the “edit content group” is referred to as “individual order information”.
The order in which each of the “edit contents” arrives at the “own apparatus” (hereinafter, “order of arrival at the own apparatus”) is defined as the “individual order information” corresponding to each of the “edit contents”. When
Obtaining at least the “order of arrival at the own device”, which is the “individual order information” for the “self-edited content”, by receiving the “edited content group” from the server;
Have
Further, in step (D1), the validity of the edited content is determined, and the “self-replicated” is updated with the edited content determined to be valid.
A program characterized by
(A)該「自複製」に対する編集内容(以下「自編集内容」)を作成する工程、
(B3)工程(A)により自「編集内容」が作成された後に、
該「自装置」から該「自装置」の外部の装置に、該「自編集内容」を送信する工程、
(C2)該「自装置」とは異なる単数または複数の装置(以下「他装置」)が保持する、単数または複数の「該データベースの全体またはその一部の複製」(以下「他複製」)に対し、該「他装置」が作成する単数または複数の編集内容を「他編集内容」としたとき、
該「他編集内容」を該「自装置」の外部の装置から受信する工程、
(D2)該「他編集内容」と、工程(A)で作成された単数または複数の該「自編集内容」を、合わせて「編集内容群」としたとき、
順番が付けられた一連の、該「編集内容群」の個々の該「編集内容」を、該「順番」で用いて、該「自複製」を更新する工程、
(E4)工程(D2)の該「順番」を特定するための情報であって、該「編集内容群」の個々の該「編集内容」に対応する情報を、「個別順番情報」とし、
順序数を発行する装置(以下「サーバー」)が個々の該「編集内容」に対し発行した順序数を、個々の該「編集内容」に対応する該「個別順番情報」としたとき、
少なくとも、該「自編集内容」に対する該「個別順番情報」である該「順序数」を、該サーバーから取得する工程、
を有し、
さらに、工程(D2)において、該編集内容の有効性を判定し、有効と判定された該編集内容により該「自複製」を更新すること、
を特徴とするプログラム。It is a program for causing a computer (hereinafter referred to as “self device”) to update a copy of the “real or virtual database” recorded on a recording medium or a part thereof (hereinafter referred to as “self replica”). And (A) creating the edited content (hereinafter “self-edited content”) for the “self-replicated”,
(B3) After self-editing content is created in step (A),
Transmitting the “self-editing content” from the “own device” to a device external to the “own device”;
(C2) said different one or more devices (hereinafter "other device") is held as "own device", singular or "all or a part of the replication of the databases" more (hereinafter "other replication") On the other hand, when one or more edit contents created by the “other device” are “other edit contents”,
Receiving the “other editing content” from a device external to the “own device”;
(D2) When the “other editing contents” and one or more “self-editing contents” created in step (A) are combined into an “editing content group”,
Updating the “self-duplicate” by using each of the “edited contents” of the “edited content group” in the “order” in a series of ordered
(E4) Information for specifying the “order” in step (D2), and information corresponding to each “edit content” in the “edit content group” is referred to as “individual order information”.
When the order number issued by the device that issues the order number (hereinafter referred to as “server”) to each “edit content” is the “individual order information” corresponding to each “edit content”,
At least obtaining the “order number” that is the “individual order information” for the “self-editing content” from the server;
Have
Further, in step (D2), the validity of the edited content is determined, and the “self-replicated” is updated with the edited content determined to be valid.
A program characterized by
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010515775A JP4855537B2 (en) | 2008-06-04 | 2009-06-03 | Database parallel editing method |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2008/001424 WO2008149552A1 (en) | 2007-06-06 | 2008-06-04 | Database contradiction solution method |
JPPCT/JP2008/001424 | 2008-06-04 | ||
JPPCT/JP2008/001506 | 2008-06-12 | ||
PCT/JP2008/001506 WO2009147701A1 (en) | 2008-01-08 | 2008-06-12 | Parallel access program of database |
JP2010515775A JP4855537B2 (en) | 2008-06-04 | 2009-06-03 | Database parallel editing method |
PCT/JP2009/002491 WO2009147847A1 (en) | 2008-06-04 | 2009-06-03 | Database parallel editing method |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010260142A Division JP4923140B2 (en) | 2008-06-04 | 2010-11-22 | Database parallel editing method |
JP2010260143A Division JP5543901B2 (en) | 2008-06-04 | 2010-11-22 | Database parallel editing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2009147847A1 JPWO2009147847A1 (en) | 2011-10-27 |
JP4855537B2 true JP4855537B2 (en) | 2012-01-18 |
Family
ID=45604588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010515775A Active JP4855537B2 (en) | 2008-06-04 | 2009-06-03 | Database parallel editing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4855537B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9678996B2 (en) | 2007-06-06 | 2017-06-13 | Kunio Kamimura | Conflict resolution system for database parallel editing |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523291B (en) * | 2020-04-21 | 2023-04-18 | 四川川大智胜软件股份有限公司 | Low-altitude radar multi-seat airspace data editing method |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03256146A (en) * | 1990-03-07 | 1991-11-14 | Hitachi Ltd | Parallel operation type data base management system |
JP2002244907A (en) * | 2001-02-19 | 2002-08-30 | Ricoh Co Ltd | Duplicate management method and device thereof |
JP2003122509A (en) * | 2001-08-08 | 2003-04-25 | Hitachi Ltd | Remote copy control method, storage sub-system using it, and wide area data storage system using them |
JP2004013367A (en) * | 2002-06-05 | 2004-01-15 | Hitachi Ltd | Data storage subsystem |
JP2005063374A (en) * | 2003-08-20 | 2005-03-10 | Nippon Telegr & Teleph Corp <Ntt> | Data management method, data management device, program for the same, and recording medium |
JP2006501585A (en) * | 2002-08-01 | 2006-01-12 | オラクル・インターナショナル・コーポレイション | Asynchronous information sharing system |
-
2009
- 2009-06-03 JP JP2010515775A patent/JP4855537B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03256146A (en) * | 1990-03-07 | 1991-11-14 | Hitachi Ltd | Parallel operation type data base management system |
JP2002244907A (en) * | 2001-02-19 | 2002-08-30 | Ricoh Co Ltd | Duplicate management method and device thereof |
JP2003122509A (en) * | 2001-08-08 | 2003-04-25 | Hitachi Ltd | Remote copy control method, storage sub-system using it, and wide area data storage system using them |
JP2004013367A (en) * | 2002-06-05 | 2004-01-15 | Hitachi Ltd | Data storage subsystem |
JP2006501585A (en) * | 2002-08-01 | 2006-01-12 | オラクル・インターナショナル・コーポレイション | Asynchronous information sharing system |
JP2005063374A (en) * | 2003-08-20 | 2005-03-10 | Nippon Telegr & Teleph Corp <Ntt> | Data management method, data management device, program for the same, and recording medium |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9678996B2 (en) | 2007-06-06 | 2017-06-13 | Kunio Kamimura | Conflict resolution system for database parallel editing |
Also Published As
Publication number | Publication date |
---|---|
JPWO2009147847A1 (en) | 2011-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102579190B1 (en) | Backup and restore in distributed databases using consistent database snapshots | |
CN108932282B (en) | Database migration method and device and storage medium | |
US20110082833A1 (en) | Database parallel editing method | |
US8392386B2 (en) | Tracking file contents | |
CN1746893B (en) | Transactional file system | |
CN108021338B (en) | System and method for implementing a two-layer commit protocol | |
WO2009147847A1 (en) | Database parallel editing method | |
CN104166673A (en) | Asynchronous distributed de-duplication for replicated content addressable storage clusters | |
EP2800013B1 (en) | Integration database framework | |
WO2007053314A2 (en) | Apparatus and method for creating a real time database replica | |
JP2011150458A (en) | Information processor, information processing system, data archiving method and data deletion method | |
CN105989049A (en) | Data middle layer realizing method and system | |
US7194486B2 (en) | Method and system for data processing with data replication for the same | |
JP4855537B2 (en) | Database parallel editing method | |
WO2015145587A1 (en) | Database system, information processing device, method, and program | |
JP4923140B2 (en) | Database parallel editing method | |
JP5543918B2 (en) | Conflict resolution method for parallel database editing | |
JP5543899B2 (en) | Parallel editing method for database data items | |
US20170177647A1 (en) | Parallel database editing | |
JP5543901B2 (en) | Database parallel editing method | |
US11392557B1 (en) | Efficient data backup in a distributed storage system | |
JP4855538B2 (en) | Parallel editing method for database data items | |
EP2034417A1 (en) | Method and system for remote cache access | |
US20230350859A1 (en) | Data retrieval from archived data storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110715 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110927 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111026 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141104 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4855537 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141104 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |