JP7527404B2 - データ移行装置、データ移行方法、及び、データ移行プログラム - Google Patents
データ移行装置、データ移行方法、及び、データ移行プログラム Download PDFInfo
- Publication number
- JP7527404B2 JP7527404B2 JP2022572731A JP2022572731A JP7527404B2 JP 7527404 B2 JP7527404 B2 JP 7527404B2 JP 2022572731 A JP2022572731 A JP 2022572731A JP 2022572731 A JP2022572731 A JP 2022572731A JP 7527404 B2 JP7527404 B2 JP 7527404B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- transaction
- destination
- migration
- unit
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
分散型台帳を活用したシステムにおいて、システムの更新又は移行等の理由により、運用中である分散型台帳(移行元分散型台帳)を新環境である分散型台帳(移行先分散型台帳)に置き換える際には、移行元分散型台帳に登録済みのデータの少なくとも一部を、必要に応じて移行先分散型台帳に移行する必要がある。
特許文献1は、台帳に記録されている資産に対するトランザクションに応答して、移行元分散型台帳が記録しているデータを移行先分散型台帳に登録することによりデータ移行を行う装置を開示している。
移行元分散型台帳から移行先分散型台帳に電子データを移行する移行要求に基づいて、前記移行元分散型台帳から複数のトランザクションデータと前記複数のトランザクションデータの各々に対応する実行順序情報とを取得するデータ取得部と、
取得された複数のトランザクションデータから複数の選別済みトランザクションデータを選別して抽出するデータ選別部と、
前記複数の選別済みトランザクションデータと、前記複数のトランザクションデータの各々に対応する実行順序情報とに基づいて、トランザクション関係グラフを、前記複数の選別済みトランザクションデータの移行順序を規定するデータとして作成する移行順序作成部と
を備える。
従って、本開示によれば、移行元分散型台帳から移行先分散型台帳に電子データを移行する場合において、移行元分散型台帳が記録している最新データ値だけでなく、移行元分散型台帳が記録している過去のトランザクションも移行先分散型台帳に移行することができる。
以下、本実施の形態について、図面を参照しながら詳細に説明する。
図1は、本実施の形態に係るデータ移行システム90の構成例を示している。データ移行システム90は、本図に示すように、データ移行装置1と、管理装置2と、移行元台帳ネットワーク3と、移行先台帳ネットワーク4とを備える。データ移行装置1はデータ抽出・移行装置とも呼ばれる。移行元台帳ネットワーク3は移行元分散型台帳ネットワークとも呼ばれる。移行先台帳ネットワーク4は移行先分散型台帳ネットワークとも呼ばれる。
データ移行装置1は、管理装置2と、移行元台帳ネットワーク3の少なくとも1つの移行元ノード31と、移行先台帳ネットワーク4の少なくとも1つの移行先ノード41と相互に通信することができる。
データ移行システム90が備える各装置は、プロセッサ81を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ81の役割を分担する。
補助記憶装置84は、データ移行プログラムを記憶している。データ移行プログラムは、データ移行装置1が備える各部の機能をコンピュータに実現させるプログラムである。データ移行プログラムは、メモリ82にロードされて、プロセッサ81によって実行される。データ移行システムが備える各装置の各部の機能は、ソフトウェアにより実現される。
メモリ82及び補助記憶装置84の機能は、他の記憶装置によって実現されてもよい。
データ選別部113は、移行データ510が含むべきデータに対応するデータをトランザクション関係データ作成部121に送り、補足データ503を補足データ受付部141に送る。
データ作成部132は、データ作成時に、トランザクション関係データ記録部122から読み出したデータと当該データに対応する補足データ503とを組み合わせて1つのトランザクションとする必要があるものである場合に、補足データ記録部142から対応する補足データ503を参照し、トランザクション関係データ記録部122から読み出したデータと対応する補足データ503とを組み合わせて1つのトランザクションを生成する。
また、データ作成部132は、データ作成時に、トランザクション関係データ記録部122から読み出した移行するデータが、移行するデータから生成したトランザクションを移行先台帳ネットワーク4に登録する際に、合わせて何かのデータを移行先台帳ネットワーク4に対して作用させる必要があるものである場合、補足データ記録部142から対応する補足データ503を参照し、移行するデータから生成したトランザクションと補足データ503とをデータ送信部133を通じて移行先台帳ネットワーク4に登録させ、かつ、作用させる。
データ作成部132は、それぞれの作成要素として、選別済みトランザクションデータ502を示すデータ、又は、選別済みトランザクションデータ502と選別済みトランザクションデータ502に対応する補足データ503とのそれぞれを示すデータを含むデータを、トランザクション関係データを利用して作成してもよい。データ作成部132は、トランザクション関係グラフ504のグラフ構造を利用して、移行先分散型台帳に登録することができるそれぞれの作成要素に対応するデータを登録可能データとして抽出してもよい。
データ移行装置1の動作手順はデータ移行方法に相当する。データ移行装置1の動作を実現するプログラムはデータ移行プログラムに相当する。管理装置2の動作手順は管理方法に相当する。管理装置2の動作を実現するプログラムは管理プログラムに相当する。移行元ノード31の動作手順は移行元制御方法に相当する。移行元ノード31の動作を実現するプログラムは移行元制御プログラムに相当する。移行先ノード41の動作手順は移行先制御方法に相当する。移行先ノード41の動作を実現するプログラムは移行先制御プログラムに相当する。
取得要求部211は、データ移行装置1に移行元データ取得要求501を送信する。
「取得対象台帳ID(Identification)」は、データ取得対象である台帳を一意に表す識別子である。データ取得対象は移行元データを記録している。
「取得対象台帳名」は、データ取得対象である台帳に設定された名前である。
「接続移行元ノード」は、データ取得部112がデータを取得するために接続する移行元ノード31の所在を表す情報である。接続移行元ノードは、移行するデータを記録している移行元ノード31である。「接続移行元ノード」の値は、具体例として、移行元ノード31のIP(Internet Protocol)アドレス、又は、移行元ノード31のIPアドレスとポート番号との組み合わせである。
「接続移行元ノード資格情報」は、接続移行元ノードへ接続する際に認証が必要である場合に利用される情報である。「接続移行元ノード資格情報」はなくてもよい。「接続移行元ノード資格情報」の値は、具体例として、移行元ノード31へログインするためのIDとパスワードとの組、公開鍵と秘密鍵により署名したデータとの組、又は、アクセストークンである。
取得要求受付部111は、移行元データ取得要求501を受け取る。データ取得部112は、移行元データ取得要求501を利用し、接続移行元ノードに対して取得対象台帳名が示す台帳に記録されているトランザクションとトランザクションに関連する補足データ503とを要求する。
接続移行元ノードは、データ取得部112に要求されたトランザクションと補足データ503とをデータ取得部112に送信する。
データ取得部112は、トランザクションと補足データ503とを取得データとして取得する。データ選別部113は、取得データから移行処理において必要であるデータのみを選別する。
具体例として、移行元分散型台帳がブロックチェーンである場合、移行元台帳ネットワーク3において複数のトランザクションがブロックと呼ばれるまとまりで管理されている。この場合において、データ取得部112は移行元ノード31からブロックを取得し、データ選別部113はデータ取得部112が取得したブロックの中から各トランザクションを抽出してもよい。
「取得対象台帳ID」は、データを取得する対象である台帳を一意に表す識別子である。「取得対象台帳ID」の値は、移行元データ取得要求501が設定した取得対象台帳IDと同じ値である。
「トランザクションID」は、取得対象台帳が含むトランザクションを一意に表す識別子である。以下、本図の説明において、特に断りがない限りトランザクションはトランザクションIDが示すトランザクションである。
「実行順序情報」は、トランザクションが台帳に適用されたタイミングを表す情報である。「実行順序情報」の値は、具体例として、移行元分散型台帳がブロックチェーンである場合、ブロック番号と、トランザクションがブロックの中で何番目に適用されたかを示す情報とを組み合わせることによりを作られたものである。また、実行順序情報は、あるトランザクションを実行する前に処理すべきトランザクションのリストを用いて生成されてもよい。
「種別」は、トランザクションが実行する処理の種類を表す。処理の種類は、具体例として、分散型台帳組み込み機能実行と、スマートコントラクト実行と、スマートコントラクトデプロイと、スマートコントラクト更新とのいずれかである。
「実行対象」は、トランザクションによって実行される処理が定義されている場所を示す。実行対象は、分散型台帳に組み込まれている機能が格納されている場所を指す情報であってもよく、ブロックチェーンにおいて動作するロジックであるスマートコントラクトを指す情報であってもよい。
「実行処理」は、トランザクションによって実行される具体的な処理を示す。「実行処理」の値は、具体例として、分散型台帳に組み込まれている機能と、スマートコントラクトのデプロイ又は更新と、スマートコントラクトに定義されている処理とのいずれかである。
「処理引数リスト」は、実行処理が示す処理が必要とするデータ群が設定されたリストである。
「実行者情報」は、トランザクションの実行者を示す情報である。
「実行結果」は、実行対象が示す対象について実行処理が示す処理を処理引数リストが示す引数を用いて実行したときのトランザクションの実行結果を表す。「実行結果」の値は、具体例として、当該処理の実行において、参照されたデータを示す参照情報と、書き込まれたデータを示す書込情報との二種類から成る。なお、典型的には、移行元ノード31内部の処理実行用の保存領域である状態DB(Database)が、参照情報と書込情報とを記憶している。参照情報は、具体例として、処理実行時に参照された全ての状態DBの主キーである。書込情報は、具体例として、処理実行時に書き込まれた全ての状態DBの主キーである。
また、データ選別部113は、前述の機能を利用せず、任意の手段によりトランザクションの実行をエミュレートすることにより実行結果を求め、求めた実行結果を補足データ503として補足データ登録要求部22を利用して補足データ管理部14に登録してもよい。
「補足データID」は、補足データ503を一意に表す識別子である。
「取得対象台帳ID」は、データ取得対象である台帳を一意に表す識別子である。「取得対象台帳ID」の値は、移行元データ取得要求501の取得対象台帳IDが示す値と同じ値である。以下、本図の説明において、特に断りがない限り台帳は取得対象台帳IDが示す台帳である。
「トランザクションID」は、台帳に含まれるトランザクションを一意に表す識別子である。「トランザクションID」の値は、補足データ503に関連するトランザクションの識別子である。
「データ種別」は、補足データ503の種別を表す。補足データ503の種別は、具体例として、補足データ503がスマートコントラクト本体のデータを表すことを示す「スマートコントラクト」と、補足データ503が台帳上には直接記録されない秘密データであることを表す「秘密データ」と、実行結果がトランザクションに含まれない分散型台帳を利用する場合に使用される「実行結果」とのいずれかである。
「データ」は、補足データ503の本体である。「データ」の値は、具体例として、補足データ503がスマートコントラクトである場合、ノードにスマートコントラクトをデプロイする際に用いられるスマートコントラクト本体のデータである。補足データ503が秘密データである場合、「データ」の値は、具体例として、秘密データ本体のデータである。補足データ503が実行結果である場合、「データ」の値は、具体例として、図6の「実行結果」と同様の値である。
データ選別部113は、最終的に選別したデータの内、選別済みトランザクションデータ502を移行順序作成部12に送信し、補足データ503を補足データ管理部14に送信する。
トランザクション関係データ作成部121は、データ選別部113から受信した選別済みトランザクションデータ502に関係する補足データ503を補足データ記録部142から読み出す。
トランザクション関係データ作成部121は、選別済みトランザクションデータ502と補足データ503とを用いてトランザクション関係データを作成する。トランザクション関係データは、移行先台帳ネットワーク4に効率良くトランザクションを登録する順序を導くことを補助するデータである。
「取得対象台帳ID」は、データ取得対象である台帳を一意に表す識別子である。以下、本図の説明において、特に断りがない限り台帳は取得対象台帳IDが示す台帳である。
「頂点集合」は、トランザクション関係グラフを構成する頂点データ505の頂点IDのリストである。
「辺集合」はトランザクション関係グラフを構成する辺データ506の辺IDのリストである。頂点集合と辺集合とのそれぞれは、トランザクション関係グラフを構成する頂点と辺とのそれぞれの情報を保持するものであればよい。このため、頂点集合は頂点データ505のリストであってもよく、辺集合は辺データ506のリストであってもよい。
「頂点ID」は、頂点を一意に表す識別子である。以下、頂点データ505の説明において頂点は頂点IDが示す頂点を指す。
「トランザクションID」は、台帳に含まれるトランザクションを一意に表す識別子である。
「補足データID」は、トランザクションIDが示すトランザクションに関連する補足データIDのリストである。
「参照」は、頂点に対応するトランザクションを実行する際に参照した状態DBの主キーと、主キーのバージョンとのペアのリストである。主キーのバージョンは、状態DBにおいてその主キーの値が更新された回数又は更新された時期を示す情報である。具体例として、その主キーの値を更新したトランザクションの実行順序を示す情報、又は、状態DBに内蔵されているバージョン管理機能が管理しているバージョン値を利用することができる。
「書込」は、頂点に対応するトランザクションの実行の際に書き込んだ状態DBの主キーと、主キーのバージョンとのペアのリストである。
「辺ID」は、辺を一意に表す識別子である。以下、辺データ506の説明において、特に断りがない限り辺は辺IDが示す辺である。
「出力側頂点ID」は、辺が出力されている頂点の頂点IDを表す。
「入力側頂点ID」は、辺が入力されている頂点の頂点IDを表す。
具体例として、辺IDがe1であり、出力側頂点IDがv1であり、入力側頂点IDがv2である場合を考える。この場合において、辺e1は、移行先分散型台帳に対して、データ移行時に、頂点v1に対応するトランザクションを登録した後に頂点v2に対応するトランザクションを登録しなければならないという制約を表している。
本例において、バージョンとしてブロックチェーンにおけるトランザクションの実行順序を示す情報が利用されている。本例の1行目のデータは、主キーである「ユーザAの預金データ」が、ブロック5の3番目のトランザクションを実行することによって最後に更新され、また、ブロック4の1番目のトランザクションを実行することによって最後から2番目に更新されたことを表している。
トランザクション関係データ作成部121は、グラフ化対象である選別済みトランザクションデータ502をリストに格納する。
トランザクション関係データ作成部121は、リスト内の選別済みトランザクションデータ502の内、実行順序情報が示す実行順序が最も古いものを1件抽出する。本フローチャートの以下のステップにおいて、選別済みトランザクションデータ502は、本ステップにおいて抽出された選別済みトランザクションデータ502を指す。
トランザクション関係データ作成部121は、選別済みトランザクションデータ502と選別済みトランザクションデータ502に関連する補足データ503とを用いて頂点データ505を作成する。以下、本フローチャートの説明において、トランザクション関係データ作成部121が次に本ステップの処理を実行するまで、「作成した頂点データ505」は、特に断りがない限りここで作成された頂点データ505を指す。即ち、トランザクション関係データ作成部121が本ステップの処理を実行する度に、「作成した頂点データ505」が指す頂点データ505が更新される。
頂点データ505を作成する手法の具体例を説明する。トランザクション関係データ作成部121は、トランザクション関係データ作成部121が本フローチャートに示す処理を開始して以降本ステップの処理を実行するまでに作成した頂点IDと重複しないように値を新規に生成し、生成した値を「頂点ID」に設定し、「トランザクションID」に選別済みトランザクションデータ502のトランザクションIDを設定し、「補足データID」に補足データ503のIDを設定する。選別済みトランザクションデータ502に関連する補足データ503がない場合、トランザクション関係データ作成部121は、補足データIDに空のリストを設定する。トランザクション関係データ作成部121は、選別済みトランザクションデータ502の実行結果又は選別済みトランザクションデータ502に関連する補足データ503の実行結果が示す参照データと、主キー更新履歴表507とを利用し、主キーと主キーのバージョンとの組を「参照」に設定する。具体的には、実行結果の参照データにある各主キーについて、それぞれの最新バージョンを主キー更新履歴表507から読み取り、主キーと最新バージョンとを組として設定する。なお、実行結果の参照データが0件である場合、トランザクション関係データ作成部121は「参照」を設定しない。トランザクション関係データ作成部121は、選別済みトランザクションデータ502の実行結果又は関連する補足データ503の実行結果が示す書込データと、選別済みトランザクションデータ502の実行順序情報又は主キー更新履歴表507等とを利用し、主キーと主キーのバージョンとの組を「書込」に設定する。トランザクション関係データ作成部121は、主キーのバージョンとして実行順序情報を利用する場合に、主キーと選別済みトランザクションデータ502の実行順序情報との組を「参照」及び「書込」に設定する。他にも、トランザクション関係データ作成部121は、抽出した選別済みトランザクションデータ502によって状態DBに書き込まれる主キーのバージョンを主キー更新履歴表507から導出することができる場合に、主キーと主キー更新履歴表507から導出したバージョンとの組を「参照」及び「書込」に設定してもよい。この場合の具体例として、バージョン情報を1,2,3,…のように自然数により管理し、新しいバージョンの値を主キー更新履歴表507が示す最新バージョンの値に1を足した値とするというルールを利用する方法がある。なお、実行結果の書込データが0件である場合、トランザクション関係データ作成部121は「書込」を設定しない。
トランザクション関係データ作成部121は、主キー更新履歴表507を更新する。具体例として、作成した頂点データ505の「書込」に設定されている各主キーについて、主キー更新履歴表507に最新バージョンとして設定されているバージョンを1つ前のバージョンとして設定し、その後、「書込」に設定されているバージョンを最新バージョンとして設定する。なお、作成した頂点データ505の「書込」が設定されていない場合、トランザクション関係データ作成部121は本ステップの処理をスキップする。
トランザクション関係データ作成部121は、トランザクション関係グラフ504が作成されたか否かを確認する。
トランザクション関係グラフ504が作成された場合、トランザクション関係データ作成部121はステップS128に進む。それ以外の場合、トランザクション関係データ作成部121はステップS126に進む。
トランザクション関係データ作成部121は、空のトランザクション関係グラフ504を作成する。本フローチャートの以下のステップにおいて、トランザクション関係グラフ504は本ステップにおいて作成されたトランザクション関係グラフ504を指す。
具体例として、選別済みトランザクションデータ502が最初に読み出したトランザクションデータである場合に、トランザクション関係データ作成部121は、「取得対象台帳ID」に選別済みトランザクションデータ502の「取得対象台帳ID」が示す値を設定し、「頂点集合」と「辺集合」とのそれぞれに空のリストを設定する。
トランザクション関係データ作成部121は、トランザクション関係グラフ504の「頂点集合」にステップS123において作成した頂点データ505を追加する。
トランザクション関係データ作成部121は、選別済みトランザクションデータ502の「種別」がスマートコントラクトデプロイであるか否かを確認する。
「種別」がスマートコントラクトデプロイである場合、トランザクション関係データ作成部121はステップS129に進む。それ以外の場合、トランザクション関係データ作成部121はステップS132に進む。
トランザクション関係データ作成部121は、トランザクション関係グラフ504の「頂点集合」が示す全ての頂点それぞれに対応する頂点について、作成した頂点データ505に対応する頂点に対する辺データ506を作成する。
トランザクション関係データ作成部121は、デプロイした又は更新したスマートコントラクトの名称と、選別済みトランザクションデータ502のトランザクションIDとの組をスマートコントラクト更新履歴表508に記録する。なお、トランザクション関係データ作成部121は、「スマートコントラクト名」を選別済みトランザクションデータ502の「実行対象」と同じものとする。
トランザクション関係データ作成部121は、作成した辺データ506をトランザクション関係グラフ504の「辺集合」に追加する。
トランザクション関係データ作成部121は、選別済みトランザクションデータ502の「種別」がスマートコントラクト更新であるか否かを確認する。
「種別」がスマートコントラクト更新である場合、トランザクション関係データ作成部121はステップS133に進む。それ以外の場合、トランザクション関係データ作成部121はステップS134に進む。
トランザクション関係データ作成部121は、更新するスマートコントラクトの現在の最新版をデプロイした又は更新したトランザクションが示す時点以降に登録されたトランザクションに対応する全ての頂点データ505それぞれを用いて、作成した頂点データ505に対する辺データ506を作成する。
トランザクション関係データ作成部121は、具体例として、選別済みトランザクションデータ502の「実行対象」に設定されているスマートコントラクト名を取得し、取得したスマートコントラクト名に対応するスマートコントラクトの最新版をデプロイした又は更新したトランザクションのトランザクションIDをスマートコントラクト更新履歴表508から取得する。さらに、トランザクション関係データ作成部121は、取得したトランザクションIDに対応する選別済みトランザクションデータ502を取得し、取得した選別済みトランザクションデータ502の「実行順序情報」を抽出する。トランザクション関係データ作成部121は、抽出した「実行順序情報」が示す時点以降に登録された選別済みトランザクションデータ502を探し、当該時点以降に登録された選別済みトランザクションデータ502それぞれに対応する頂点データ505を取得する。その後、トランザクション関係データ作成部121は、取得した各頂点データ505と作成した頂点データ505とを両端とする各辺データ506を作成する。なお、スマートコントラクト名は、選別済みトランザクションデータ502の「実行対象」と同じものとする。
トランザクション関係データ作成部121は、作成した頂点データ505と、作成した頂点データ505の「参照」に含まれる主キーと主キーのバージョンとの組を「書込」の要素として含む頂点データ505とを両端とする辺データ506を作成する。
トランザクション関係データ作成部121は、作成した頂点データ505と、作成した頂点データ505の「書込」に含まれる主キーの1つ前のバージョンの主キーと1つ前のバージョンの主キーのバージョンとの組を「参照」又は「書込」の要素として含む頂点データ505とを両端とする辺データ506を作成する。
トランザクション関係データ作成部121は、選別済みトランザクションデータ502の「実行対象」が示すスマートコントラクトの最新版をデプロイした又は更新したトランザクションのトランザクションIDを、選別済みトランザクションデータ502の「実行対象」とスマートコントラクト更新履歴表508とを利用して取得し、作成した頂点データ505と、取得したトランザクションIDのトランザクションに対応する頂点データ505とを両端とする辺データ506を作成する。
トランザクション関係データ作成部121は、リストからステップS122において抽出したトランザクションデータを削除する。
トランザクション関係データ作成部121は、リストが空であるか否かを確認する。
リストが空である場合、トランザクション関係データ作成部121は本フローチャートの処理を終了する。リストが空でない場合、トランザクション関係データ作成部121はステップS121に進む。
本ステップにおける処理は、ステップS128における処理と同様である。
本ステップにおける処理は、ステップS130における処理と同様である。
トランザクション関係データ作成部121は、生成したトランザクション関係データと、データ選別部113から受信した選別済みトランザクションデータ502とをトランザクション関係データ記録部122に記録する。
トランザクション関係データ記録部122に記録されるトランザクション関係データとしては、トランザクション関係データがトランザクション関係グラフ504である場合、トランザクション関係グラフ504と、トランザクション関係グラフ504を構成する頂点データ505と辺データ506とが挙げられる。
外部にある補足データ503が必要である場合、補足データ登録要求部22は、データ移行装置1に補足データ503を送信する。
補足データ503を送信するタイミングは、前述のデータ抽出部11又は移行順序作成部12の処理の前又は途中であってもよい。データ移行装置1は、補足データ受付部141を用いて補足データ503を受け取り、受け取った補足データ503を補足データ記録部142に記録する。
登録要求部212は、データ移行装置1に移行先データ登録要求509を送信する。
「移行先台帳ID」は、移行先である台帳を一意に表す識別子である。
「台帳名」は、移行先である台帳に設定された名前である。
「取得対象台帳ID」は、移行元である台帳を一意に表す識別子である。
「接続移行先ノード」は、「接続移行元ノード」と同様であり、データ送信部133がデータを移行する接続する移行先ノード41の所在を表す情報である。
「接続移行先ノード資格情報」は、「接続移行元ノード資格情報」と同様であり、移行先ノード41へ接続する際に認証が必要である場合に利用される情報である。
データ移行装置1は、登録要求受付部131を用いて移行先データ登録要求509を受け取り、データ作成部132を呼び出す。
データ作成部132は、登録要求受付部131が受信した移行先データ登録要求509と、トランザクション関係データ記録部122が記録しているトランザクション関係データと、補足データ記録部142が記録している補足データ503とを利用して移行データ510を作成し、適宜、作成した移行データ510をデータ送信部133に送信する。
「順序データ」は、移行データ510を移行先台帳ネットワーク4に適用する順序を表す設定値である。複数の移行データ510が存在する場合、各移行データ510の「順序データ」に互いに異なる値を設定することにより、移行データ510の適用順序を一意に特定することができるようにする。
「台帳名」は、移行先である台帳に設定された名前である。
「接続移行先ノード」は、「接続移行元ノード」と同様であり、データ送信部133が接続する移行先ノード41の所在を表す情報である。
「接続移行先ノード資格情報」は、「接続移行元ノード資格情報」と同様であり、移行先ノード41へ接続する際に認証が必要である場合に利用される情報である。
「頂点データリスト」は、移行する頂点データ505に対応する要素が含まれるリストである。「頂点データリスト」に含まれる各要素は、作成要素に当たり、移行元分散型台帳から移行先分散型台帳に移行する電子データの少なくとも一部に対応する。「頂点データリスト」に含まれる要素に対応する頂点データ505は移行データ510を生成するタイミングにおいて登録することができるデータを示すため、データ移行装置1はどのような順序で移行先台帳ネットワーク4に頂点データ505が示すデータを登録しても構わない。ただし、複数の移行データ510が存在する場合、データ移行装置1は「順序データ」に示される順序が先である移行データ510から順番に頂点データ505の登録をする必要がある。
データ作成部132は、移行元分散型台帳のトランザクション関係グラフ504の内、データ登録条件が設定されていない頂点データ505を取得し、取得した頂点データ505をリストに登録する。データ作成部132は、移行先データ登録要求509の「取得対象台帳ID」を利用し、トランザクション関係データ記録部122から移行元分散型台帳に対応するトランザクション関係グラフ504を取得する。データ登録条件が設定されていない頂点データ505は、トランザクション関係グラフ504の「頂点集合」に含まれる頂点に対応する頂点データ505の内、トランザクション関係グラフ504の「辺集合」に含まれる辺に対応する辺データ506の「入力側頂点ID」として設定されていない頂点データ505である。
データ作成部132は、リスト内の各頂点データ505を参照し、移行ルールに基づいて頂点データ505を抽出し、抽出した頂点データ505を用いて移行データ510を作成する。
移行ルールは、具体例として、リストに含まれる全ての頂点データ505を移行データ510に含めるルールが挙げられる。具体例として、分散型台帳としてブロックチェーンを利用する場合を説明する。この場合において、リストに含まれる複数の頂点データ505を1つのブロックデータとしてまとめれば、1トランザクション当たりの合意形成時間を削減することができるため、データ移行に要する時間を短期化することができる。他の移行ルールとして、より多くのトランザクションを登録する前提条件を構成するトランザクションに対応する頂点データ505をより優先して用いて移行データ510を生成するルールも挙げられる。ブロックチェーン利用時にこのルールが適用された場合、データ作成部132はより多くのトランザクションの登録の前提条件を構成するトランザクションに対応する頂点データ505をより優先して用いて移行データ510を生成し、生成された移行データ510が移行先台帳ネットワーク4に登録される。これにより、データ移行装置1は、優先される移行データ510が登録されることを登録の前提条件としている多くのトランザクションを登録することができる。多くのトランザクションの前提条件となるトランザクションを登録することによって登録することができるようになるトランザクション群を1つのブロックデータとしてまとめれば、1トランザクション当たりの合意形成に要する時間を削減できるため、データ移行に要する時間を短期化することができる。ここで、商品のトレーサビリティを管理する分散型台帳活用システムがあり、Nを自然数とし、当該システムにおいて、N個の商品が詰められた1つの段ボールを開封する処理である「段ボールの開封」と、段ボールに詰められている各商品を使用する部署に各商品を配布する処理である「N個の商品の配布」とを管理するものとする。このとき、「段ボールの開封」と「N個の商品の配布」とをトレーサビリティデータとして記録する場合、「段ボールの開封」が実施されていなければ、「N個の商品の配布」を実施することができない。よって、「段ボールの開封」は「多くのトランザクションの前提条件となるトランザクション」に当たり、「段ボールの開封」が登録された場合において「N個の商品の配布」は前述の「トランザクション群」に当たる。
移行ルールとしては様々なものが考えられ、データ作成部132がトランザクション関係データに応じて適切に移行ルールを切り替えたり組み合わせたりすることにより、データ移行装置1は効率良くデータを移行することができる。
データ作成部132は、作成した移行データ510をデータ送信部133へ送信する。
データ作成部132は、リスト内の各頂点データ505の「頂点ID」の値を「出力側頂点ID」の値として持つ辺データ506を抽出する。
データ作成部132は、抽出した各辺データ506の入力側頂点IDに対応する頂点データ505を候補リストに登録する。なお、データ作成部132は既に候補リストに登録されている頂点データ505を重複して候補リストに登録しない。候補リストは、候補リストが含む要素に対する処理の時点において、データ登録条件の少なくとも一部が満たされている頂点データ505のリストである。ある頂点データ505のデータ登録条件は、当該ある頂点データ505の「頂点ID」を「入力側頂点ID」として持つ辺データ506が、本ステップの処理を実行するまでに、イテレーションにおけるステップS144の処理によって全て抽出されていることである。イテレーションは本フローチャートにおける繰り返し処理のことである。
データ作成部132は、候補リストが含む各頂点データ505について、データ作成部132が本フローチャートの処理を開始して以降本ステップの処理を実行するまでに抽出した各辺データ506によってデータ登録条件が満たされたか否かを確認し、登録条件が満たされた頂点データ505を次期リストに登録する。次期リストは、イテレーション処理の過程においてデータ登録条件が全て満たされた頂点データ505を要素とするリストである。登録条件が満たされた頂点データ505に対応するデータは、登録可能データである。
あるイテレーションのステップS144において、このトランザクション関係グラフ504から辺e1(v1,v2)が抽出されたものとする。このとき、当該あるイテレーションのステップS145において、データ作成部132は、辺e1の「入力側頂点ID」に設定されている頂点v2が既に候補リストに登録されていない場合に、頂点v2を候補リストに登録する。当該あるイテレーションのステップS146において、頂点v2に関しては、データ登録条件の内、辺e1(v1,v2)が抽出済みであるため、辺e2(v3,v2)と、辺e3(v4,v2)とがさらに抽出されれば頂点v2が登録可能と判断される。データ作成部132は、このように各頂点に対してデータ登録条件が満たされたかを確認していき、ステップS146の処理において、データ登録条件を満たした頂点データ505を次期リストに登録する。
データ作成部132は、リストと次期リストとが空であるか否かを確認する。
リストと次期リストとが空である場合、データ作成部132はステップS149に進む。それ以外の場合、即ちリストと次期リストとの少なくとも一方が空ではない場合、データ作成部132はステップS148に進む。
データ作成部132は、リストから移行データ510に含めた頂点データ505を削除し、次期リストの頂点データ505をリストに追加し、次期リストを空にする。
データ作成部132は、データ送信部133に移行データ510の送信が完了したことを示す送信完了通知を送信し、本フローチャートの処理を終了する。
データ送信部133は、データ作成部132から受信した移行データ510に基づき、移行先ノード41にデータを送信する。
データ送信部133は、データ作成部132から移行データ510又は送信完了通知を受信することを待ち、データを受信した場合に受信したデータをリストに追加する。1度に受信するデータは1件に限られない。また、データ送信部133は本ステップの処理をバックグラウンドで実行してもよい。この際にも、データ作成部132から受信したデータを都度リストに追加する。
データ送信部133は、リストから最も小さい「順序データ」を有するデータを1件取得し、取得したデータをリストから削除する。なお、データ送信部133は、送信完了通知を、最も大きい「順序データ」を有するデータとして扱う。
データ送信部133は、取得したデータが送信完了通知であるか確認する。
取得したデータが送信完了通知である場合、データ送信部133は本フローチャートの処理を終了する。それ以外の場合、つまり、取得したデータが移行データ510である場合、データ送信部133はステップS164に進む。
データ送信部133は、取得した移行データ510の「頂点データリスト」が含む要素に対応する頂点データ505に従い、移行先ノード41にデータを送信する。
具体例として、まず、データ送信部133は、移行データ510の「台帳名」と、「接続移行先ノード」と、「接続先ノード資格情報」との少なくともいずれか等を利用して移行先ノード41に接続する。次に、データ送信部133は、「頂点データリスト」が含む要素に対応する各頂点データ505に対応する選別済みトランザクションデータ502と補足データ503との少なくともいずれかを参照し、参照したデータに合わせて、移行先ノード41にトランザクションを送信し、又は、移行先ノード41の機能を呼び出すことにより、移行先ノード41へのデータ送信を完了する。
データ送信部133は、リストが空であるか否かを確認する。
リストが空ではない場合、データ送信部133はステップS162に進む。リストが空である場合、データ送信部133はステップS161に進む。
具体例として、まず、登録要求部212は、データ移行装置1に移行先データ登録要求509を送信する際に、移行先データ登録要求509に移行対象であるトランザクションを示す情報を追加する。次に、データ作成部132は、移行データ510を生成する際に、指定された移行対象であるトランザクションを示す情報のみを移行データ510に変換する。これにより、データ移行装置1は、移行対象である台帳に含まれる一部のトランザクションのみを移行することができる。この際に、データ移行装置1は、指定された移行対象であるトランザクションを示す情報が必要十分であるか否かを確認し、情報が不足している場合に不足しているトランザクションを自動的に追加してもよい。具体例として、トランザクション関係グラフ504を使用した場合を説明すると、あるトランザクションを登録するために事前に登録しておく必要があるトランザクションは辺データ506として記録されている。そのため、データ移行装置1は、当該辺データ506から再帰的に関連する頂点データ505を追っていくことにより、指定時に不足していたトランザクションを発見することができる。具体的な手順としては、まず、データ作成部132は、指定された移行対象であるトランザクションを示す情報に対応する頂点データ505を「入力側頂点ID」として持つ辺データ506を取得し、これらの辺データ506の「出力側頂点ID」に設定されている頂点データ505を取得する。さらに、データ作成部132は、取得した頂点データ505を「入力側頂点ID」として持つ辺データ506を取得し、取得した辺データ506の「出力側頂点ID」に設定されている頂点データ505を取得することを再帰的に繰り返す。再帰的な探索の過程において得られた頂点データ505群から、最初に指定された移行対象であるトランザクションを示す情報に対応する頂点データ505群との重複を取り除いた頂点データ505群が不足しているトランザクションを表している。再帰的な探索の過程において得られた頂点データ505群と、最初に指定された移行対象であるトランザクションを示す情報に対応する頂点データ505群との和集合が、指定された移行対象であるトランザクションを示す情報に対応するデータを移行する際に必要であるトランザクションである。
ここまでの動作の説明において、データ移行装置1が1つの移行元分散型台帳を1つの移行先分散型台帳に移行する際の動作について示した。しかしながら、データ移行装置1は、複数の移行元分散型台帳間で同じ内容のトランザクションを含まないことを条件とし、複数の移行元分散型台帳を1つの移行先分散型台帳に移行してもよい。従って、データ移行装置1は、同じ内容のトランザクションを重複して含まない複数の移行元分散型台帳のトランザクションを整理し、複数の移行先分散型台帳にデータを振り分けることによってデータを移行する構成であってもよい。
以上のように、本実施の形態によれば、データ抽出部11と移行順序作成部12と補足データ管理部14とにより、移行元台帳ネットワーク3から取得しかつ加工した選別済みトランザクションデータ502及び補足データ503と、外部から入力した補足データ503とを用いて、移行先台帳ネットワーク4にトランザクションを比較的効率良く登録する順序を導くことを補助するトランザクション関係データを作成することができる。さらに、データ登録部13は、作成されたトランザクション関係データを利用することによって移行先台帳ネットワーク4に対して比較的効率良く移行データ510を登録するができる。そのため、本実施の形態によれば、移行元台帳ネットワーク3とは環境が異なる移行先台帳ネットワーク4に対して、比較的効率良く、トランザクションのデータを移行することができる。
逐次法は、移行先分散型台帳に登録するトランザクションの順序を移行元分散型台帳におけるトランザクションの登録順序と確実に合わせるために移行先分散型台帳にトランザクションを1件ずつ登録する。しかしながら、分散型台帳では複数ノードが合意形成を行う。そのため、トランザクションの登録要求から登録完了までに時間を要し、データ移行に要する時間が長くなってしまうという課題がある。なお、分散型台帳の一種であるブロックチェーンにおいては、トランザクションは複数まとめられ、ブロックという単位でデータが登録される。合意形成はブロック単位で行われるため、1つのブロックに複数のトランザクションを含めることにより1トランザクション当たりの合意形成に要する時間を短くすることができる。しかしながら、この際にトランザクションの適用順序を指定する既存技術はなく、移行元分散型台帳におけるトランザクションの登録順序と移行先分散型台帳におけるトランザクションの登録順序とが一致しなくなる可能性がある。そのため、単にブロックに複数のトランザクションをまとめる方法は利用することができない。しかしながら、本実施の形態によれば、移行先分散型台帳に登録することができる複数のトランザクションをまとめて移行先分散型台帳に移行することができる。そのため、本実施の形態によれば、逐次法を採用した場合と比較して効率的に電子データを移行元分散型台帳から移行先分散型台帳に移行することができる。
<変形例1>
図16は、本変形例に係るデータ移行装置1のハードウェア構成例を示している。
データ移行装置1は、本図に示すように、プロセッサ81とメモリ82と補助記憶装置84との少なくとも1つに代えて、処理回路88を備える。
処理回路88は、データ移行装置1が備える各部の少なくとも一部を実現するハードウェアである。
処理回路88は、専用のハードウェアであってもよく、また、メモリ82に格納されるプログラムを実行するプロセッサであってもよい。
データ移行装置1は、処理回路88を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路88の役割を分担する。
プロセッサ81とメモリ82と補助記憶装置84と処理回路88とを、総称して「プロセッシングサーキットリー」という。つまり、データ移行装置1の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
データ移行システム90が備える他の各装置と、他の実施の形態に係るデータ移行システム90が備える各装置とについても、本変形例と同様の構成であってもよい。
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
実施の形態1では、移行元台帳ネットワーク3と移行先台帳ネットワーク4とに接続することができ、かつ、移行元台帳ネットワーク3が含む移行対象であるトランザクションを移行先台帳ネットワーク4に対して登録することができる代表者が1つのデータ移行装置1を利用してデータを移行するケースを説明した。
本実施の形態において、移行元台帳ネットワーク3が含む移行対象であるトランザクションの取得権限が設定されている場合、又は、移行先台帳ネットワーク4に対するトランザクションの登録権限が設定されている場合等に、複数の参加者が連携しながら複数のデータ移行装置1によってデータを移行する。参加者はデータ移行装置1の利用者又はデータ移行装置1である。利用者はコンピュータ等であってもよい。
本図では、データ移行装置1が他のデータ移行装置1と直接通信する場合を示している。しかしながら、データ移行装置1は、何らかの装置又は手段等を媒介して他のデータ移行装置1と通信してもよい。具体例として、各データ移行装置1がアクセスすることができる媒介手段として、DB若しくはデータレイク等のデータストア、メッセージキュー等のメッセージ配信システム、又は、分差型台帳システム等をデータ移行システム90が備え、双方のデータ移行装置1が媒介手段を経由してデータを交換してもよい。また、移行先ノード41がトランザクションに関連する任意のデータを付加することができる場合において、複数のデータ移行装置1間の通信は、移行先ノード41を介して実現されてもよい。
トランザクション関係データを作成する手順までについては実施の形態1と同様であるため省略する。なお、あるデータ移行装置1のデータ取得部112は、移行元ノード31から「取得対象台帳名」に設定されている台帳に記録されているトランザクションとトランザクションに関連する補足データ503とを取得する際に、アクセス権限が設定されている等の理由により、トランザクションと補足データ503との少なくとも一部を取得することができない場合がある。この場合において、当該あるデータ移行装置1は、アクセス権限を有する他の参加者が取得したトランザクションと補足データ503との少なくとも一部を何らかの手段を用いて共有し、共有したデータを補足データ503として登録してもよい。このようにすることにより、具体例として、データ移行装置1がトランザクション関係データとしてトランザクション関係グラフ504を利用する際に、ある参加者が移行先分散型台帳に登録すべきトランザクションの登録可能条件を構成するトランザクションに関する情報を移行元ノード31から直接取得することができなかったとしても、当該ある参加者は、当該情報を取得することができる他の参加者が取得した情報を、補足データ503として入手すること及び利用することができる。その結果、当該ある参加者は有効なトランザクション関係グラフ504を作成することができる。
なお、あるデータ移行装置1を単にデータ移行装置1と表記し、当該あるデータ移行装置1以外のデータ移行装置1を他のデータ移行装置1と表記する。他のデータ移行装置1は1つのデータ移行装置1に限られない。また、データ移行装置1が備える要素の名称が単に表記されている場合、当該あるデータ移行装置1が備える要素を指す。
登録要求部212は、データ移行装置1に移行先データ登録要求509bを送信する。
「連携データ移行装置情報」は、移行先データ登録要求509bを有するデータ移行装置1が連携する他の各データ移行装置1の接続情報から成り、連携データ抽出・移行装置情報とも呼ばれる。接続情報は、具体例として、連携する他の各データ移行装置1のIPアドレス等の所在情報、ID及びパスワード、又は、暗号鍵若しくはトークン等の資格情報等の、他のデータ移行装置1に接続するために必要である情報である。「装置2」等は、連携する他の各データ移行装置1の名称である。
登録要求受付部131は、移行先データ登録要求509bを受信し、受信した移行先データ登録要求509bを、台帳更新監視部15と、データ作成部132とに送る。
台帳更新監視部15は、受け取った移行先データ登録要求509bが示す情報を元に移行先ノード41に接続し、接続した移行先ノード41における移行先分散型台帳のトランザクション登録の状況を監視する。
また、台帳更新監視部15は、受け取った移行先データ登録要求509bが示す情報を元に他のデータ移行装置1のデータ送信部133に接続し、当該データ送信部133が送信する移行元トランザクションに対応するトランザクションIDと、当該トランザクションを移行先分散型台帳に登録した際に新たに設定されるトランザクションIDとの対応を示す情報を当該他のデータ移行装置1のデータ送信部133から受信し始める。
データ作成部132は、登録要求受付部131が受信した移行先データ登録要求509bと、トランザクション関係データ記録部122が記録しているトランザクション関係データと、補足データ記録部142が記録している補足データ503とを利用して移行データ510を作成し、作成した移行データ510をデータ送信部133に適宜送信する。
データ作成部132は、移行元分散型台帳に関するトランザクション関係グラフ504の「頂点集合」が含む要素に対応する頂点データ505の内、データ移行装置1が登録することができ、かつ、データ登録条件が設定されていない頂点データ505を取得し、取得した頂点データ505をリストに登録する。データ作成部132は、移行元分散型台帳に対応するトランザクション関係グラフ504を、移行先データ登録要求509bの「取得対象台帳ID」を利用してトランザクション関係データ記録部122から取得する。
データ作成部132は、具体例として、データ移行装置1がある頂点データ505を登録することができるか否かを、当該ある頂点データ505に対応する選別済みトランザクションデータ502の「実行者情報」がデータ移行装置1の保有者と一致しているか否かに基づいて判定する。ここで、データ作成部132は、「実行者情報」と保有者とが一致している場合に頂点データ505を登録することができるものとみなす。他の判定手法として、選別済みトランザクションデータ502の「実行者情報」とデータ移行装置1の保有者との対応関係を補足データ503として設定しておくことにより、データ作成部132は、「実行者情報」と保有者とが一致しない場合であっても、データ移行装置1が頂点データ505を登録することができると判定してもよい。また、データ移行装置1は、トランザクションごとに登録することができる保有者であってデータ移行装置1の保有者を補足データ503として設定してもよい。
データ登録条件が設定されていない頂点データ505は、トランザクション関係グラフ504の「頂点集合」が含む頂点に対応する頂点データ505の内、「辺集合」が含む辺に対応する辺データ506の「入力側頂点ID」として設定されていない頂点データ505である。
データ作成部132は、他のデータ移行装置1によって移行先分散型台帳に登録されたトランザクションに対応する頂点データ505を取得する。データ作成部132は、他装置登録情報を利用して当該頂点データ505を取得してもよい。
具体例として、データ作成部132は、台帳更新監視部15に問合わせることにより、台帳更新監視部15に前回問合せたときから台帳更新監視部15に今回問合せるまでの間に移行先分散型台帳に登録されたトランザクションがあるか否かを確認する。当該トランザクションがある場合、データ作成部132は当該トランザクションに対応する頂点データ505を台帳更新監視部15に返却してもらう。当該トランザクションがない場合、データ作成部132は、トランザクションの登録があるまで待機してもよく、トランザクションを取得できなかったものとみなしてそのまま処理を続行してもよい。そのまま処理を続行する場合において、データ作成部132は、ステップS223からステップS225の処理をスキップし、ステップS226の処理を実行する。
データ作成部132は、ステップS222の処理において取得した各頂点データ505の「頂点ID」を「出力側頂点ID」として持つ辺データ506を抽出する。
データ作成部132は、抽出した各辺データ506の「入力側頂点ID」に対応する頂点データ505を候補リストに登録する。データ作成部132は、ある頂点データ505が既に候補リストに登録されている場合、当該ある頂点データ505を重複して候補リストに登録しない。候補リストは、候補リストが含む要素に対する処理の時点において、データ登録条件の少なくとも一部が満たされている頂点データ505のリストである。ある頂点データ505のデータ登録条件は、当該ある頂点データ505の「頂点ID」を「入力側頂点ID」として持つ辺データ506が、本ステップの処理を実行するまでに、イテレーションにおけるステップS223及びステップS228の処理によって、全て抽出されていることである。
データ作成部132は、候補リストが含む各頂点データ505について、データ作成部132が本フローチャートに示す処理を開始して以降本ステップの処理を実行するまでに抽出した各辺データ506によって、データ登録条件が満たされたか否かを確認し、データ登録条件が満たされた頂点データ505をリストに登録する。
データ作成部132は、リスト内の各頂点データ505を参照し、移行ルールに基づいて頂点データ505を抽出し、抽出した頂点データ505を用いて移行データ510を作成する。移行ルールは、実施の形態1に係る移行ルールと同様である。移行データ510の作成方法は実施の形態1に係る移行データ510の作成方法と同様である。
なお、リストが空である場合、データ作成部132は、ステップS226からステップS230までの処理をスキップし、ステップS231の処理をする。
データ作成部132は、作成した移行データ510をデータ送信部133へ送信する。
データ作成部132は、リスト内の各頂点データ505の「頂点ID」を「出力側頂点ID」として持つ辺データ506を抽出する。本ステップの処理は、ステップS223の処理と同様である。
データ作成部132は、抽出した各辺データ506の「入力側頂点ID」に対応する頂点データ505を候補リストに登録する。本ステップの処理は、ステップS224の処理と同様である。
データ作成部132は、候補リストが含む各頂点データ505について、データ作成部132が本フローチャートの処理を開始して以降本ステップの処理を実行するまでに抽出した各辺データ506によってデータ登録条件が満たされたか否かを確認し、登録条件が満たされた頂点データ505を次期リストに登録する。次期リストは実施の形態1に係る次期リストと同様である。
データ作成部132は、リストと次期リストとが空であるか否かを確認する。
リストと次期リストとが空である場合、データ作成部132はステップS233に進む。それ以外の場合、データ作成部132はステップS232に進む。
データ作成部132は、移行データ510に含めた頂点データ505をリストから削除し、次期リストが含む頂点データ505をリストに追加し、次期リストを空にする。その後、データ作成部132はステップS226に進む。
データ作成部132は、登録すべきトランザクションが残っているか否かを確認する。登録すべきトランザクションとは、データ移行装置1が登録することができるトランザクション全てである。登録することができるトランザクションはステップS221において説明した通りである。
登録すべきトランザクションが残っている場合、データ作成部132はステップS222の処理を実施し、他のデータ移行装置1によって、データ登録条件が満たされたトランザクションがないか確認する。それ以外の場合、データ作成部132はステップS234に進む。
データ作成部132は、データ送信部133に送信完了通知を送信し、本フローチャートの処理を終了する。
データ送信部133は、データ作成部132から受信した移行データ510に基づき、移行先ノード41にデータを送信する。また、データ送信部133は、移行先ノード41にデータを登録した結果を他のデータ移行装置1の台帳更新監視部15に送信する。
データ送信部133は、データ作成部132から受信したデータをリストに追加する。本ステップの処理はステップS161の処理と同様である。
データ送信部133は、リストからデータを取得する。本ステップの処理はステップS162の処理と同様である。
データ送信部133は、取得したデータが送信完了通知であるか否かを確認する。
取得したデータが送信完了通知である場合、データ送信部133は本フローチャートの処理を終了する。それ以外の場合、即ち取得したデータが移行データ510である場合、データ送信部133はステップS244に進む。
データ送信部133は、取得した移行データ510の「頂点データリスト」が含む要素に対応する頂点データ505の内、移行先分散型台帳にまだ登録されていないデータに対応する頂点データ505に対応する移行先ノード41に対して移行データ510を送信する。
データ送信部133は、具体例として、ある頂点データ505に対応するデータが移行先分散型台帳に登録されているか否かを、台帳更新監視部15を利用することにより調査することができる。具体的には、データ送信部133は、取得した移行データ510の「頂点データリスト」が含む要素に対応する頂点データ505の「トランザクションID」が、台帳更新監視部15が管理するトランザクション登録の状況を示す情報に登録済みトランザクションとして登録されているか否か確認することにより、当該頂点データ505が移行先分散型台帳に登録されているデータに対応する頂点データ505であるか否かを判断することができる。他の調査方法として、データ送信部133が、移行先ノード41に対して、当該頂点データ505に対応するトランザクションを実行することができるか否かを問い合わせる方法が挙げられる。具体例として、データ移行対象である台帳のスマートコントラクトが、内容が同じであるデータを二重に登録しようとしているか否かを判定し、二重に登録しようとしている場合にトランザクションを棄却するようなロジックである場合を考える。この場合において、まず、データ送信部133は移行先ノード41に対して当該頂点データ505に対応するデータを送信する。次に、移行先ノード41は当該頂点データ505に対応するデータを登録することができるか否かをスマートコントラクトによって判定する。次に、データ送信部133は、当該頂点データ505に対応するデータを登録することができる場合に、当該頂点データ505に対応するデータが移行先分散型台帳に登録されていないと判断する。また、この場合において、データ送信部133は、移行先ノード41に問い合わせる方法ではなく、移行先ノード41にデータを登録する方法を採用してもよい。データ送信部133がデータを登録する方法を採用する場合において、データ送信部133は、無事に当該頂点データ505に対応するデータを移行先ノード41に登録することができれば当該データは移行先分散型台帳にまだ登録されていないと判断することができ、当該データを移行先ノード41に登録することができなければ当該データは既に移行先分散型台帳に登録されていたと判断することができる。
データ送信部133がデータを移行先ノード41に送信する処理の具体例を説明する。まず、データ送信部133は、移行データ510の「台帳名」と、「接続先ノード」と、「接続先ノード資格情報」との少なくともいずれか等を利用して移行先ノード41に接続する。次に、データ送信部133は、「頂点データリスト」が含む各要素に対応する頂点データ505に対応する選別済みトランザクションデータ502と補足データ503との少なくともいずれかを参照する。次に、データ送信部133は、参照したデータに応じて、移行先ノード41にトランザクションを送信してもよく、移行先ノード41の機能を呼び出してもよい。これにより、移行先分散型台帳へのデータ送信は完了する。
データ送信部133は、リストが空であるか否かを確認する。
リストが空である場合、データ送信部133はステップS241に進む。それ以外の場合、データ送信部133はステップS242に進む。
以上のように、本実施の形態によれば、データ移行装置1は台帳更新監視部15を備え、さらに複数のデータ移行装置1が連携して動作する。そのため、本実施の形態に係るデータ移行装置1は、実施の形態1の特徴を有しつつ、移行元台帳ネットワーク3に含まれる移行対象のトランザクションの取得権限が設定されている場合、又は、移行先台帳ネットワーク4に対するトランザクションの登録権限が設定されている場合等においても、データを移行することができる。
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
本実施の形態に係るデータ移行装置1は、前述の実施の形態によって作成した移行先分散型台帳が移行元分散型台帳と同様であるか否かを確認する機能を有する。なお、本機能は他のいずれの実施の形態と組み合わせてもよいが、説明の便宜上、実施の形態1に本機能を追加した具体例を説明する。本実施の形態に係る処理は、移行元分散型台帳が記録している電子データの少なくとも一部を移行先分散型台帳に移行した後において実施することができる。
図27は、本実施の形態に係るデータ移行システム90の動作の一例を示すフローチャートである。本図を参照してデータ移行システム90の動作を説明する。
データ検証要求部23は、データ移行装置1にデータ検証要求511を送信する。
「比較方法」は、比較対象である台帳を比較する方法を定めるルールを示す情報である。ルールの一例として、トランザクション関係データを比較することが挙げられる。本例は、比較対象である台帳それぞれから抽出されたトランザクションデータと、トランザクションデータ間の関連性を表すトランザクション関係データとが、それぞれ論理的に同じ内容である場合に、比較対象である台帳が一致しているとみなすルールである。
「データ対応関係」は、ある項目の値が比較対象である台帳間で異なる場合において、当該ある項目の値が表現している内容が一致しているケースを具体的にまとめたものである。具体例として、データ登録の実行者を移行先分散型台帳において変更する場合がある。この場合において、データ登録の実行者の値を利用すると「比較方法」によっては移行元分散型台帳の内容と移行先分散型台帳の内容とは一致しないと判定される。しかしながら、「データ対応関係」においてこれら実行者が対応していることを記述しておくことにより、データ検証部16は、これら実行者が一致しているとみなすことができ、故に比較対象である台帳間で内容が一致しているとみなすことができる。「データ対応関係」の具体例として、台帳1のユーザAと台帳2のユーザBとが同じユーザであることを示す情報等のユーザを表す情報、又は、実行順序を示す情報等が挙げられる。トランザクションIDも移行元分散型台帳と移行先分散型台帳との間で典型的には値が異なる情報である。トランザクションIDに関しては、データ移行時にデータ送信部133又は台帳更新監視部15等がデータ移行の前後におけるトランザクションIDの対応関係を保持してもよく、データ検証部16は保持されているトランザクションIDの対応関係を利用してもよい。
「台帳ID」は、比較対象である台帳それぞれを一意に表す識別子である。
「比較対象台帳名」は、比較対象である台帳に設定された名前である。
「接続ノード」は、台帳からデータを取得する際に接続するノードの所在を表す情報であり、「接続移行元ノード」等と同様である。
「接続ノード資格情報」は、「接続ノード」へ接続する際に認証が必要である場合に利用される情報であり、「接続移行元ノード資格情報」等と同様である。
なお、「比較対象台帳情報」の内、「比較対象台帳名」と、「接続ノード」と、「接続ノード資格情報」とについては、これらに対応する「比較対象台帳ID」が示す台帳を表すトランザクション関係データがトランザクション関係データ記録部122に保存されている場合、なくてもよい。
検証要求受付部161は、管理装置2からデータ検証要求511を受信し、受信したデータ検証要求511を検証データ取得要求部162に送る。
検証データ取得要求部162は、検証要求受付部161からデータ検証要求511を受け取り、受け取ったデータ検証要求511の内容を確認する。
検証データ取得要求部162は、具体例として、データ検証要求511の各「比較対象台帳ID」を抽出し、抽出した各「比較対象台帳ID」が示す台帳を表すトランザクション関係データがトランザクション関係データ記録部122に保存されているか否かを確認する。検証データ取得要求部162は、具体例として、データ移行装置1がトランザクション関係データとしてトランザクション関係グラフ504を利用している場合において、「比較対象台帳ID」と値が同じである「取得対象台帳ID」を持つトランザクション関係グラフ504が保存されているか否かを確認する。当該トランザクション関係グラフ504が全て保存されている場合、検証データ取得要求部162は検証部163にデータ検証要求511を送る。トランザクション関係データが保存されていない比較対象台帳に関しては、データ抽出部11と移行順序作成部12とが、当該比較対象台帳に対応するトランザクション関係データを作成する。具体例として、まず、検証データ取得要求部162は、データ検証要求511が含むデータであって、取得したい比較対象台帳である当該比較対象台帳に対応する「比較対象台帳ID」と「比較対象台帳名」と「接続ノード」と「接続ノード資格情報」とのそれぞれを示すデータを用いて移行元データ取得要求501を作成する。次に、検証データ取得要求部162は、作成した移行元データ取得要求501を取得要求受付部111に送信することにより、データ抽出部11と移行順序作成部12とに取得したい比較対象台帳に対応するトランザクション関係データを作成させる。作成させたトランザクション関係データは移行先トランザクション関係データである。次に、検証データ取得要求部162は、データ検証要求511が含む「比較対象台帳情報」に対応するトランザクション関係データが作成されたことを確認し、検証部163にデータ検証要求511を送る。
検証部163は、検証データ取得要求部162からデータ検証要求511を受け取り、比較対象である台帳を検証し始める。
具体例として、まず、検証部163は、データ検証要求511の「比較方法」を確認することにより、どのようなルールによって比較対象である台帳を比較するか確認する。次に、検証部163は、「比較方法」に従って、各比較対象である台帳に対応するトランザクション関係データと関連する補足データ503とを比較する。
検証部163は、移行元分散型台帳と移行先分散型台帳とのそれぞれのトランザクション関係グラフ504が有する「頂点集合」が含む要素に対応する頂点データ505の対応関係を整理する。
検証部163は、移行元分散型台帳におけるトランザクションIDと、移行先分散型台帳におけるトランザクションIDとの対応関係を示すトランザクションID対応表を作成する。
具体例として、実施の形態2の構成においては、台帳更新監視部15が、移行元トランザクションのトランザクションIDと、当該移行元トランザクションを移行先に登録した際に新たに設定されたトランザクションIDとの対応を示す情報を保管している。そのため、検証部163は、台帳更新監視部15が保管している情報を利用することによりトランザクションID対応表を作成してもよい。また、実施の形態1の構成においては、データ送信部133が、移行先分散型台帳に登録した移行先トランザクションのトランザクションIDを取得し、取得したトランザクションIDと移行元トランザクションのトランザクションIDとを対応付けた情報を保管してもよい。このとき、検証部163は、データ送信部133が保管している情報を利用することによりトランザクションID対応表を作成してもよい。
検証部163は、移行元分散型台帳に対応するトランザクション関係グラフ504の「頂点集合」が含む要素に対応する頂点データ505をリストに登録する。
検証部163は、リストから1件の頂点データ505を取得し、取得した頂点データ505をリストから削除する。
検証部163は、トランザクションID対応表を参照し、取得した頂点データ505の「トランザクションID」に対応する移行先分散型台帳のトランザクションIDを取得する。
検証部163は、取得した頂点データ505の「トランザクションID」に対応する選別済みトランザクションデータ502と、当該選別済みトランザクションデータ502に関連する補足データ503と、取得した移行先分散型台帳におけるトランザクションIDに対応する選別済みトランザクションデータ502と、当該選別済みトランザクションデータ502に関連する補足データ503とを、データ検証要求511の「比較方法」と「データ対応関係」とに従って比較する。
検証部163は、ステップS345における比較の結果、移行元トランザクションの内容と、移行元トランザクションに対応する移行先トランザクションの内容とが一致したか否かを確認する。
両者の内容が一致した場合、検証部163はステップS348に進む。それ以外の場合、検証部163はステップS347に進む。
検証部163は、比較対象である台帳の間において頂点に対応関係が成立していないことを確認したものとして、本フローチャートの処理を終了する。
検証部163は、リストが空であるか否かを確認する。
リストが空である場合、検証部163はステップS349に進む。それ以外の場合、検証部163はステップS343に戻る。
検証部163は、比較対象である台帳の間において頂点に対応関係が成立していることを確認したものとして、本フローチャートの処理を終了する。
検証部163は、ステップS321の処理の結果を受け、移行元分散型台帳と移行先分散型台帳との間で頂点に対応関係が成立しているか否かを確認する。
頂点に対応関係が成立している場合、検証部163はステップS324に進む。それ以外の場合、検証部163はステップS323に進む。
検証部163は、移行元分散型台帳と移行先分散型台帳とのそれぞれに対応するトランザクション関係グラフ504が一致していないことを通知し、本フローチャートの処理を終了する。
検証部163は、頂点データ505の対応関係に基づいて、移行元分散型台帳と移行先分散型台帳とのそれぞれのトランザクション関係グラフ504が含む「辺集合」の要素に対応する辺データ506の対応関係を整理する。
具体例として、移行元分散型台帳に対応するトランザクション関係グラフ504がG((v1(1234),v2(2345)),(e1(v1,v2)))であり、移行先分散型台帳に対応するトランザクション関係グラフ504がG((v9(9876),v8(8765)),(e9(v9,v8)))であり、トランザクションID対応表が((1234->9876),(2345->8765))であるものとする。ここで、v1(1234)は、「トランザクションID」が1234であり、「頂点ID」がv1である頂点データ505を示す。e1(v1,v2)は、「辺ID」がe1であり、「出力側頂点ID」がv1であり、「入力側頂点ID」がv2である辺データ506を示す。G(V,E)は、頂点集合Vと辺集合Eとから構成されるトランザクション関係グラフ504を示す。(1234->9876)は、移行元分散型台帳におけるトランザクションIDが1234であるトランザクションと、移行先分散型台帳におけるトランザクションIDが9876であるトランザクションとが対応していることを示す。このとき、トランザクションID対応表より、頂点データ505に関しては、v1及びv9と、v2及びv8とのそれぞれに対応関係が成立していることが分かる。よって、e9(v9,v8)はトランザクションの対応関係を考慮するとe9(v1,v2)と読み替えることができ、このことから、e1(v1,v2)とe9(v9,v8)とは対応関係が成立している辺ということが分かる。このように、検証部163は、移行元分散型台帳と移行先分散型台帳とのそれぞれに対応するトランザクション関係グラフ504の「辺集合」の全ての要素それぞれに対応する辺データ506に対して、対応関係が成立しているか否かを整理する。
検証部163は、全ての辺データ506について、移行元分散型台帳と移行先分散型台帳との間において対応関係が成立しているか否かを確認する。
全ての辺データ506について対応関係が成立している場合、検証部163はステップS326に進む。それ以外の場合、検証部163はステップS323に進む。
検証部163は、移行元分散型台帳と移行先分散型台帳との間においてトランザクション関係グラフ504が一致していることを通知し、本フローチャートの処理を終了する。
以上のように、本実施の形態によれば、データ移行装置1がデータ検証部16を備えることにより、前述の実施の形態が有する特徴を残しつつ、移行先分散型台帳における移行したデータが移行元分散型台帳における元のデータと一致しているか否かを検証することができる。
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
データ抽出部11とデータ登録部13とは、分散型台帳以外にも、データストアからデータを抽出し及び移行してもよい。データストアは、分散型台帳のトランザクションデータの形式を登録することと参照することとの少なくとも一方が可能であるものとする。データストアは、移行元データストア5と移行先データストア6との総称でもある。
以下、データ取得部112の動作と、データ送信部133の動作とについての実施の形態1との差分を主に説明する。
データ取得部112は、移行元データ取得要求501の「接続移行元ノード」と「接続移行元ノード資格情報」とを利用し、移行元ノード31又は移行元データストア5に接続する。データ取得部112が移行元ノード31に接続する場合の処理については、実施の形態1における処理と同様であるため説明を省略する。データ取得部112が移行元データストア5に接続した場合、データ取得部112は、移行元データストア5に対して、移行元データ取得要求501の「取得対象台帳ID」と「取得対象台帳名」とを含むデータ取得要求を送信する。
トランザクション形式参照部51は、データ取得部112が送信したデータ取得要求を受信し、受信したデータ取得要求が含む「取得対象台帳ID」と「取得対象台帳名」とを利用し、データ取得要求に対応する台帳に関連するトランザクション相当データと補足データ503とを移行元データ保存部52から取得する。トランザクション相当データはトランザクションに相当するデータである。トランザクション形式参照部51は、取得したデータを移行元ノード31がデータ取得部112に送信するデータ形式と同様のデータ形式に変換し、変換したデータをデータ取得部112に送信する。当該同様のデータ形式は、具体的には、データ選別部113が選別済みトランザクションデータ502と補足データ503とを作成することができる内容を示すデータである。
具体例として、移行元データ保存部52にデータを登録していたアプリケーションをスマートコントラクトとみなし、かつ、アプリケーションから移行元データ保存部52へのデータ処理リクエストを1つのトランザクションとしてみなすことにより、移行元データストア5の処理を分散型台帳の動作とほぼ同等の処理とみなすことができる。このとき、アプリケーションから移行元データ保存部52へのデータ処理リクエストに対する処理は、移行元データストア5のトランザクション機能等を利用することにより、ある1まとまりのデータ参照処理、データ登録処理、又はデータ更新処理が一貫して実行されるものであるものとする。また、分散型台帳におけるスマートコントラクトのデプロイのためのトランザクションは、アプリケーションを構築し、アプリケーションが移行元データ保存部52と連携した際のイベントデータである。分散型台帳におけるスマートコントラクトを更新するためのトランザクションは、アプリケーションのロジックを修正した際のイベントデータに相当する。
トランザクション形式参照部51は、選別済みトランザクションデータ502の「種別」を「スマートコントラクト更新」と設定し、選別済みトランザクションデータ502の「実行対象」と「実行処理」と「処理引数リスト」とを、アプリケーションの更新により既存データの変換が必要な場合等に、アプリケーションの実行に関するデータと選別済みトランザクションデータ502との対応関係において説明した処理と同様に適宜設定する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「実行結果」に、アプリケーション更新による既存データの変換等を行った際に、移行元データストア5への参照及び書込を示す情報を適宜設定する。
トランザクション形式参照部51は、移行元ノード31と同様のデータ形式に変換したデータを、データ取得部112に送信する。
データ送信部133は、データ作成部132が作成した移行データ510を受け取り、受け取った移行データ510の「接続移行先ノード」と「接続移行先ノード資格情報」とを利用し、適宜、移行先ノード41又は移行先データストア6に接続する。データ送信部133が移行先ノード41に接続する場合の処理については実施の形態1における処理と同様であるため説明を省略する。データ送信部133が移行先データストア6に接続する場合、データ送信部133は移行データ510をベースとしたデータを移行先データストア6に送信する。
トランザクション形式登録部61は、データ送信部133からデータを受信し、受信したデータが含む処理を適宜実施し、処理の結果を移行先データ保存部62に記録する。ここでは、データ送信部133から、移行データ510の「頂点データリスト」と、「頂点データリスト」が含む要素に対応する各頂点データ505と、各頂点データ505に対応する選別済みトランザクションデータ502と、選別済みトランザクションデータ502に関連する補足データ503とが送信されたものと仮定して説明する。
具体例として、まず、「頂点データリスト」が含むある要素に対応する頂点データ505に対応する選別済みトランザクションデータ502の「種別」が「スマートコントラクトデプロイ」又は「スマートコントラクト更新」である場合を考える。この場合において、トランザクション形式登録部61は、当該選別済みトランザクションデータ502に関連する補足データ503のスマートコントラクト本体を取得し、取得したスマートコントラクト本体と同等の処理が可能なアプリケーションを作成し、作成したアプリケーションの構築又は更新記録を移行先データ保存部62に登録する。次に、頂点データリストが含むある要素に対応する頂点データ505に対応する選別済みトランザクションデータ502の「種別」が「スマートコントラクト実行」である場合を考える。この場合において、トランザクション形式登録部61は、選別済みトランザクションデータ502の内容に従って、「実行対象」において指定されているスマートコントラクトと同等の処理を実行することができるアプリケーションを実行し、アプリケーションを実行した際の処理結果を移行先データ保存部62に記録する。また、トランザクション形式登録部61において分散型台帳と同じスマートコントラクトを動作させることができる場合において、トランザクション形式登録部61は、スマートコントラクト本体をアプリケーションに変換せず、スマートコントラクト本体をそのまま利用してもよい。
以上のように、本実施の形態によれば、分散型台帳以外にも、分散型台帳のトランザクションデータの形式を登録することと参照することとの少なくともいずれかが可能であるデータストアを対象として、データを抽出することと移行することとの少なくともいずれかが可能である。また、本実施の形態によれば、1つのデータ移行装置1により1つ以上の分散型台帳及びデータストアから抽出したデータを、1つ以上の別の分散型台帳及びデータストアに比較的簡単にデータを移行することができる。
前述した各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
Claims (9)
- 移行元分散型台帳から移行先分散型台帳に電子データを移行する移行要求に基づいて、前記移行元分散型台帳から複数のトランザクションデータと前記複数のトランザクションデータの各々に対応する実行順序情報とを取得するデータ取得部と、
取得された複数のトランザクションデータから複数の選別済みトランザクションデータを選別して抽出するデータ選別部と、
前記複数の選別済みトランザクションデータと、前記複数のトランザクションデータの各々に対応する実行順序情報とに基づいて、トランザクション関係グラフを、前記複数の選別済みトランザクションデータの移行順序を規定するデータとして作成する移行順序作成部と
を備えるデータ移行装置。 - 前記トランザクション関係グラフの各頂点は、前記複数の選別済みトランザクションデータの各々に対応し、
前記移行順序作成部は、前記複数の選別済みトランザクションデータの少なくとも1つ
に1対1で対応する少なくとも1つのデータであって、前記複数の選別済みトランザクションデータの少なくとも1つそれぞれを前記移行先分散型台帳に移行することを補助するデータである補足データがある場合に、前記複数の選別済みトランザクションデータの少なくとも1つの各々と、前記複数の選別済みトランザクションデータの少なくとも1つの各々に対応する各補足データと、前記複数の選別済みトランザクションデータの少なくとも1つの各々に対応する実行順序情報とに基づいて、前記トランザクション関係グラフの頂点のうち前記複数の選別済みトランザクションデータの少なくとも1つの各々に対応する各頂点を作成する請求項1に記載のデータ移行装置。 - 前記データ移行装置は、さらに、
前記複数の選別済みトランザクションデータの各々を用いて、前記移行先分散型台帳におけるトランザクションデータの形式に従って前記複数の選別済みトランザクションデータの各々に対応する各トランザクションデータを作成するデータ作成部と、
作成された各トランザクションデータを、前記移行順序を規定するデータに基づいて前記移行先分散型台帳に送信するデータ送信部と
を備える請求項1又は2に記載のデータ移行装置。 - 前記データ移行装置と同じ機能を有する他のデータ移行装置を備えるデータ移行システムが前記データ移行装置を備え、
前記データ移行装置は、さらに、
前記移行先分散型台帳が前記他のデータ移行装置から受信して前記移行先分散型台帳に登録したデータを示す他装置登録情報を取得する台帳更新監視部を備え、
前記データ作成部は、前記電子データを移行している途中において、前記移行先分散型台帳が前記データ送信部から受信して前記移行先分散型台帳に登録したデータと、前記他装置登録情報とに基づいて、前記複数の選別済みトランザクションデータのいずれかに対応する各トランザクションデータを作成し、
前記データ送信部は、作成された各トランザクションデータを前記他装置登録情報に基づいて前記移行先分散型台帳に送信し、前記データ送信部が各トランザクションデータを前記移行先分散型台帳に送信することによって前記移行先分散型台帳が登録したデータを示す情報を前記他のデータ移行装置に送信する請求項3に記載のデータ移行装置。 - 前記電子データの少なくとも一部を前記移行先分散型台帳に移行した後において、
前記データ取得部は、前記移行元分散型台帳と前記移行先分散型台帳との同一性を検証する要求であるデータ検証要求に基づいて、取得された複数のトランザクションデータの少なくとも一部に対応するデータである移行先移行データの各要素に対応するデータである移行先データを含む移行先取得データを前記移行先分散型台帳から取得し、
前記データ選別部は、前記移行先取得データから前記移行先データを選別して抽出し、
前記移行順序作成部は、
前記移行先データのいずれに対応する補足データもない場合に、前記移行先データを用いてトランザクション関係グラフである移行先トランザクション関係データを作成し、
前記移行先データの少なくともいずれかそれぞれに対応する補足データがある場合に、前記移行先データと、前記移行先データの少なくともいずれかそれぞれに対応する補足データとを用いてトランザクション関係グラフである移行先トランザクション関係データを作成し、
作成された移行先トランザクション関係データは、前記移行順序を規定するデータの少なくとも一部である比較用関係データと対応し、
前記データ移行装置は、さらに、
前記比較用関係データと作成された移行先トランザクション関係データとを比較することにより、前記移行元分散型台帳と前記移行先分散型台帳との同一性を検証するデータ検証部を備える請求項3又は4に記載のデータ移行装置。 - 前記データ取得部は、前記移行要求に基づいて、前記移行元分散型台帳の代わりに前記移行元分散型台帳が記録しているデータと同じデータを記録しているデータストアから複数のトランザクションデータを取得する請求項3から5のいずれか1項に記載のデータ移行装置。
- 前記データ送信部は、前記複数の選別済みトランザクションデータを処理することができ、前記移行先分散型台帳と同じスマートコントラクトが動作しているデータストアにそれぞれの前記複数の選別済みトランザクションデータを送信する請求項3から6のいずれか1項に記載のデータ移行装置。
- データ取得部が、移行元分散型台帳から移行先分散型台帳に電子データを移行する移行要求に基づいて、前記移行元分散型台帳から複数のトランザクションデータと前記複数のトランザクションデータの各々に対応する実行順序情報とを取得し、
データ選別部が、取得された複数のトランザクションデータから複数の選別済みトランザクションデータを選別して抽出し、
移行順序作成部が、前記複数の選別済みトランザクションデータと、前記複数のトランザクションデータの各々に対応する実行順序情報とに基づいて、トランザクション関係グラフを、前記複数の選別済みトランザクションデータの移行順序を規定するデータとして作成するデータ移行方法。 - 移行元分散型台帳から移行先分散型台帳に電子データを移行する移行要求に基づいて、前記移行元分散型台帳から複数のトランザクションデータと前記複数のトランザクションデータの各々に対応する実行順序情報とを取得するデータ取得処理と、
取得された複数のトランザクションデータから複数の選別済みトランザクションデータを選別して抽出するデータ選別処理と、
前記複数の選別済みトランザクションデータと、前記複数のトランザクションデータの各々に対応する実行順序情報とに基づいて、トランザクション関係グラフを、前記複数の選別済みトランザクションデータの移行順序を規定するデータとして作成する移行順序作成処理と
をコンピュータであるデータ移行装置に実行させるデータ移行プログラム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2021/003833 WO2022168192A1 (ja) | 2021-02-03 | 2021-02-03 | データ移行装置、データ移行方法、及び、データ移行プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2022168192A1 JPWO2022168192A1 (ja) | 2022-08-11 |
| JP7527404B2 true JP7527404B2 (ja) | 2024-08-02 |
Family
ID=82741259
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022572731A Active JP7527404B2 (ja) | 2021-02-03 | 2021-02-03 | データ移行装置、データ移行方法、及び、データ移行プログラム |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20230315719A1 (ja) |
| JP (1) | JP7527404B2 (ja) |
| CN (1) | CN116802622A (ja) |
| DE (1) | DE112021006204B4 (ja) |
| WO (1) | WO2022168192A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12362941B2 (en) * | 2023-03-06 | 2025-07-15 | Verizon Patent And Licensing Inc. | Systems and methods for distributed ledger migration |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020042671A (ja) | 2018-09-12 | 2020-03-19 | 富士通株式会社 | 取引管理装置、取引管理方法および取引管理プログラム |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8619783B2 (en) * | 2009-12-18 | 2013-12-31 | Electronics And Telecommunications Research Institute | System and method for coupling communication terminals |
| US20140122315A1 (en) * | 2012-10-30 | 2014-05-01 | Millennium It (Usa) Inc. | Alert investigation system |
| WO2014156282A1 (ja) * | 2013-03-25 | 2014-10-02 | 三菱電機株式会社 | バスマスタ、バスシステム及びバス制御方法 |
| JP6737039B2 (ja) * | 2016-07-22 | 2020-08-05 | 沖電気工業株式会社 | データベースシステム、データ処理プログラム、及びデータ処理方法 |
| US11240035B2 (en) | 2017-05-05 | 2022-02-01 | Jeff STOLLMAN | Systems and methods for extending the utility of blockchains through use of related child blockchains |
| US10833844B2 (en) | 2017-12-20 | 2020-11-10 | International Business Machines Corporation | Blockchain lifecycle management |
| JP7036665B2 (ja) * | 2018-05-22 | 2022-03-15 | 株式会社日立製作所 | データ管理方法およびデータ管理システム |
| US12118556B2 (en) | 2018-09-05 | 2024-10-15 | International Business Machines Corporation | Database configuration for asset transfers |
| US11842331B2 (en) * | 2018-10-24 | 2023-12-12 | Capital One Services, Llc | Network of trust for bill splitting |
| US20200143372A1 (en) | 2018-11-02 | 2020-05-07 | Vite Labs Limited | Methods for decentralized digital asset transfer and smart contract state transition |
| US11178537B2 (en) * | 2019-01-24 | 2021-11-16 | International Business Machines Corporation | Data item transfer between mobile devices |
| US11195180B2 (en) | 2019-01-25 | 2021-12-07 | International Business Machines Corporation | Virtual blockchain |
| US11824864B2 (en) | 2019-01-31 | 2023-11-21 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing a declarative and metadata driven blockchain platform using distributed ledger technology (DLT) |
| US11194770B2 (en) | 2019-05-02 | 2021-12-07 | International Business Machines Corporation | Database mergeable ledgers |
| US10860259B1 (en) | 2019-07-17 | 2020-12-08 | Tyson York Winarski | Multi-tiered storage system for blockchain |
-
2021
- 2021-02-03 CN CN202180092049.2A patent/CN116802622A/zh active Pending
- 2021-02-03 DE DE112021006204.2T patent/DE112021006204B4/de active Active
- 2021-02-03 WO PCT/JP2021/003833 patent/WO2022168192A1/ja not_active Ceased
- 2021-02-03 JP JP2022572731A patent/JP7527404B2/ja active Active
-
2023
- 2023-06-05 US US18/205,838 patent/US20230315719A1/en not_active Abandoned
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020042671A (ja) | 2018-09-12 | 2020-03-19 | 富士通株式会社 | 取引管理装置、取引管理方法および取引管理プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| US20230315719A1 (en) | 2023-10-05 |
| DE112021006204T5 (de) | 2023-10-12 |
| WO2022168192A1 (ja) | 2022-08-11 |
| CN116802622A (zh) | 2023-09-22 |
| DE112021006204B4 (de) | 2024-12-24 |
| JPWO2022168192A1 (ja) | 2022-08-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110417844B (zh) | 使用区块链分散管理多所有者节点的系统和方法 | |
| US11343200B2 (en) | System and method for supporting multi-tenancy in an application server, cloud, or other environment | |
| CN113169952B (zh) | 一种基于区块链技术的容器云管理系统 | |
| JP5185483B2 (ja) | ストレージネットワーク内のクォーラムリソースアービタ | |
| JP6681348B2 (ja) | マルチテナントアプリケーションサーバ環境においてパーティションをサポートするためのシステム、方法及びコンピュータプログラム | |
| US8255409B2 (en) | Systems and methods for generating a change log for files in a managed network | |
| US20020161869A1 (en) | Cluster resource action in clustered computer system incorporating prepare operation | |
| JP7254585B2 (ja) | システム間連携方法およびノード | |
| US11122012B2 (en) | License utilization management system service suite | |
| CN112035062A (zh) | 云计算的本地存储的迁移方法、计算机设备及存储介质 | |
| JP6868728B2 (ja) | パーミッションドブロックチェーンアプリケーションの継続的デリバリのための方法及び装置 | |
| CN115552377A (zh) | 用于主选择的混合租约 | |
| JP7527404B2 (ja) | データ移行装置、データ移行方法、及び、データ移行プログラム | |
| US10657139B2 (en) | Information processing apparatus and non-transitory computer readable medium for distributed resource management | |
| JP2011522337A (ja) | サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用 | |
| CN113420306B (zh) | 资源共享方法、装置、计算设备及计算机可读存储介质 | |
| US20100145911A1 (en) | Serverless Replication of Databases | |
| WO2020153053A1 (ja) | データベース管理サービス提供システム | |
| CN114579354B (zh) | 一种区块链网络服务平台及数据存储方法、存储介质 | |
| US11188389B2 (en) | Distributed system that promotes task-machine affinity | |
| CN117455017A (zh) | 执行从边缘到核心的联邦工作流 | |
| JP4280919B2 (ja) | 複製管理システム、複製管理方法および複製管理プログラム | |
| US11657369B2 (en) | Cooperative planning system, cooperative planning method, and cooperative planning program | |
| CN119561965A (zh) | 一种路侧节点集群管理系统 | |
| JP2968756B2 (ja) | マルチプロセッサシステムにおける内部リソース一致化方法および装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221125 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20221125 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230117 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230222 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230509 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240207 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240530 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240723 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7527404 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |