Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7527404B2 - データ移行装置、データ移行方法、及び、データ移行プログラム - Google Patents
[go: Go Back, main page]

JP7527404B2 - データ移行装置、データ移行方法、及び、データ移行プログラム - Google Patents

データ移行装置、データ移行方法、及び、データ移行プログラム Download PDF

Info

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
Application number
JP2022572731A
Other languages
English (en)
Other versions
JPWO2022168192A1 (ja
Inventor
将也 本庄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2022168192A1 publication Critical patent/JPWO2022168192A1/ja
Application granted granted Critical
Publication of JP7527404B2 publication Critical patent/JP7527404B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates 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は、台帳に記録されている資産に対するトランザクションに応答して、移行元分散型台帳が記録しているデータを移行先分散型台帳に登録することによりデータ移行を行う装置を開示している。
特開2020-042671号公報
特許文献1の方法は、台帳が記録している最新データ値のみを移行先分散型台帳に移行する方法であり、移行元分散型台帳にあるトランザクションは移行されない。そのため、特許文献1の方法によれば、過去のトランザクションを保持する場合、移行元分散型台帳を運用し続けなければならないという課題がある。
本開示は、移行元分散型台帳から移行先分散型台帳に電子データを移行する場合において、移行元分散型台帳が記録している最新データ値だけでなく、移行元分散型台帳が記録している過去のトランザクションも移行先分散型台帳に移行することを目的とする。
本開示に係るデータ移行装置は、
移行元分散型台帳から移行先分散型台帳に電子データを移行する移行要求に基づいて、前記移行元分散型台帳から複数のトランザクションデータと前記複数のトランザクションデータの各々に対応する実行順序情報とを取得するデータ取得部と、
取得された複数のトランザクションデータから複数の選別済みトランザクションデータを選別して抽出するデータ選別部と、
前記複数の選別済みトランザクションデータと、前記複数のトランザクションデータの各々に対応する実行順序情報とに基づいて、トランザクション関係グラフを、前記複数の選別済みトランザクションデータの移行順序を規定するデータとして作成する移行順序作成部と
を備える。
データ取得部が移行元分散型台帳から取得データを取得し、データ選別部が取得データから作成要素に対応するデータを抽出し、移行順序作成部が移行データの各要素として作成されるそれぞれの作成要素の移行順序を決める。そのため、移行元分散型台帳が記録している過去のトランザクションを作成要素に対応するデータが含む場合において、移行順序作成部がトランザクションを含むデータを移行する順序を決める。また、取得データは移行元分散型台帳が記録している最新データ値を含んでもよい。
従って、本開示によれば、移行元分散型台帳から移行先分散型台帳に電子データを移行する場合において、移行元分散型台帳が記録している最新データ値だけでなく、移行元分散型台帳が記録している過去のトランザクションも移行先分散型台帳に移行することができる。
実施の形態1に係るデータ移行システム90の構成例を示す図。 実施の形態1に係るデータ移行システム90が備える各装置のハードウェア構成例を示す図。 実施の形態1に係るデータ移行システム90が備える各装置のソフトウェア構成例を示す図。 実施の形態1に係るデータ移行システム90の動作を示すフローチャート。 実施の形態1に係る移行元データ取得要求501の具体例を示す図。 実施の形態1に係る選別済みトランザクションデータ502の具体例を示す図。 実施の形態1に係る補足データ503の具体例を示す図。 実施の形態1に係るトランザクション関係グラフ504と頂点データ505と辺データ506との具体例を示す図。 実施の形態1に係る主キー更新履歴表507とスマートコントラクト更新履歴表508との具体例を示す図。 実施の形態1に係るトランザクション関係データ作成部121の動作を示すフローチャート。 実施の形態1に係るトランザクション関係データ作成部121の動作を示すフローチャート。 実施の形態1に係る移行先データ登録要求509の具体例を示す図。 実施の形態1に係る移行データ510の具体例を示す図。 実施の形態1に係るデータ作成部132の動作を示すフローチャート。 実施の形態1に係るデータ送信部133の動作を示すフローチャート。 実施の形態1の変形例に係るデータ移行装置1のハードウェア構成例を示す図。 実施の形態2に係るデータ移行システム90の構成例を示す図。 実施の形態2に係るデータ移行システム90が備える各装置のハードウェア構成例を示す図。 実施の形態2に係るデータ移行システム90が備える各装置のソフトウェア構成例を示す図。 実施の形態2に係るデータ移行システム90の動作を示すフローチャート。 実施の形態2に係る移行先データ登録要求509bの具体例を示す図。 実施の形態2に係るデータ作成部132の動作を示すフローチャート。 実施の形態2に係るデータ作成部132の動作を示すフローチャート。 実施の形態2に係るデータ送信部133の動作を示すフローチャート。 実施の形態3に係るデータ移行システム90の構成例を示す図。 実施の形態3に係るデータ移行システム90が備える各装置のソフトウェア構成例を示す図。 実施の形態3に係るデータ移行システム90の動作を示すフローチャート。 実施の形態3に係るデータ検証要求511の具体例を示す図。 実施の形態3に係る検証部163の動作を示すフローチャート。 実施の形態3に係る検証部163の動作を示すフローチャート。 実施の形態4に係るデータ移行システム90の構成例を示す図。 実施の形態4に係るデータ移行システム90が備える各装置のハードウェア構成例を示す図。 実施の形態4に係るデータ移行システム90が備える各装置のソフトウェア構成例を示す図。 実施の形態4に係るデータ取得部112の動作を示すフローチャート。 実施の形態4に係るデータ送信部133の動作を示すフローチャート。
実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。また、「部」を、「回路」、「工程」、「手順」、「処理」又は「サーキットリー」に適宜読み替えてもよい。
実施の形態1.
以下、本実施の形態について、図面を参照しながら詳細に説明する。
***構成の説明***
図1は、本実施の形態に係るデータ移行システム90の構成例を示している。データ移行システム90は、本図に示すように、データ移行装置1と、管理装置2と、移行元台帳ネットワーク3と、移行先台帳ネットワーク4とを備える。データ移行装置1はデータ抽出・移行装置とも呼ばれる。移行元台帳ネットワーク3は移行元分散型台帳ネットワークとも呼ばれる。移行先台帳ネットワーク4は移行先分散型台帳ネットワークとも呼ばれる。
データ移行装置1は、管理装置2から移行要求を受け、移行要求に基づいて、移行元台帳ネットワーク3からトランザクションと補足データ503とを適宜抽出し、抽出したトランザクションと補足データ503とを移行先台帳ネットワーク4に移行する。移行要求は、電子データを移行元分散型台帳から移行先分散型台帳に移行する要求である。要求という用語は指示内容を含む情報を指すこともある。データ移行装置1は、アプリケーションであってもよい。アプリケーションは、アプリケーションプログラムとも呼ばれる。装置という用語を装置とアプリケーションの総称として用いることもある。装置は、物理的なものに限られず、仮想化技術によって生成された仮想的なものであってもよい。
データ移行装置1は、管理装置2と、移行元台帳ネットワーク3の少なくとも1つの移行元ノード31と、移行先台帳ネットワーク4の少なくとも1つの移行先ノード41と相互に通信することができる。
管理装置2は、データ移行装置1に移行要求と補足データ503とを送信する機能を持つ装置またはアプリケーションである。管理装置2は管理アプリケーションとも呼ばれる。補足データ503は、データ移行装置1が移行先台帳ネットワーク4に対するトランザクションを作成する際に用いるデータである。
移行元台帳ネットワーク3は、移行トランザクションを記録している稼働中の分散型台帳ネットワークである。移行トランザクションは移行対象のトランザクションである。移行元台帳ネットワーク3は1つ以上の移行元ノード31から構成される。移行元ノード31は、移行元分散型台帳を記録する装置又はアプリケーションである。
移行先台帳ネットワーク4は、移行トランザクションの移行先である分散型台帳ネットワークである。移行先台帳ネットワーク4は1つ以上の移行先ノード41から構成される。移行先ノード41は、移行先分散型台帳を記録する装置又はアプリケーションである。
図2は、データ移行システム90が備える各装置のハードウェア構成例を示している。本図は、データ移行装置1と、管理装置2と、移行元ノード31と、移行先ノード41とのそれぞれが独立した装置において動作する場合における具体例を示している。各装置は、プロセッサ81と、メモリ82と、補助記憶装置84と、通信インタフェース83等のハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して適宜接続されている。各装置は1つのネットワークを介して接続される。なお、データ移行システム90が備えるネットワークの数は1つでなくてもよく、データ移行装置1と管理装置2との間と、データ移行装置1と移行元台帳ネットワーク3の少なくとも1つの移行元ノード31との間と、データ移行装置1と移行先台帳ネットワーク4の少なくとも1つの移行先ノード41との間とのそれぞれにおいて通信することができれば、データ移行システム90は複数のネットワークを備えてもよい。また、データ移行装置1と、管理装置2と、移行元ノード31と、移行先ノード41との少なくとも一部は、同一の装置から構成されていてもよい。データ移行システム90が備える各装置は、複数のコンピュータから成ってもよい。なお、ノードは装置でもある。
プロセッサ81は、演算処理を行うIC(Integrated Circuit)であり、かつ、コンピュータが備えるハードウェアを制御する。プロセッサ81は、具体例として、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、又はGPU(Graphics Processing Unit)である。
データ移行システム90が備える各装置は、プロセッサ81を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ81の役割を分担する。
メモリ82は、典型的には、揮発性の記憶装置である。メモリ82は、主記憶装置又はメインメモリとも呼ばれる。メモリ82は、具体例として、RAM(Random Access Memory)である。メモリ82に記憶されたデータは、必要に応じて補助記憶装置84に保存される。
通信インタフェース83は、レシーバ及びトランスミッタである。通信インタフェース83は、具体例として、通信チップ又はNIC(Network Interface Card)である。データ移行システム90が備える各装置の各部は、他の装置等と通信する際に、通信インタフェース83を適宜用いる。
補助記憶装置84は、典型的には、不揮発性の記憶装置である。補助記憶装置84は、具体例として、ROM(Read Only Memory)、HDD(Hard Disk Drive)、又はフラッシュメモリである。補助記憶装置84に記憶されたデータは、必要に応じてメモリ82にロードされる。
補助記憶装置84は、データ移行プログラムを記憶している。データ移行プログラムは、データ移行装置1が備える各部の機能をコンピュータに実現させるプログラムである。データ移行プログラムは、メモリ82にロードされて、プロセッサ81によって実行される。データ移行システムが備える各装置の各部の機能は、ソフトウェアにより実現される。
データ移行システム90が備える各装置の各部は、適宜記憶装置を利用する。記憶装置は、具体例として、メモリ82と、補助記憶装置84と、プロセッサ81内のレジスタと、プロセッサ81内のキャッシュメモリとの少なくとも1つから成る。なお、データと、情報とは、同等の意味を有することもある。記憶装置は、コンピュータ10と独立したものであってもよい。
メモリ82及び補助記憶装置84の機能は、他の記憶装置によって実現されてもよい。
本明細書に記載されているいずれの装置において動作するプログラムも、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていてもよい。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。本明細書に記載されているいずれの装置において動作するプログラムも、プログラムプロダクトとして提供されてもよい。
図3は、データ移行システム90が備える各装置のソフトウェア構成例を示している。本例において、少なくとも1つの移行元ノード31と少なくとも1つの移行先ノード41とへのアクセス権限を持つ代表者が全てのデータを移行することを想定している。代表者はコンピュータ等であってもよい。
データ移行装置1は、データ抽出部11と、移行順序作成部12と、データ登録部13と、補足データ管理部14とを備える。
データ抽出部11は、取得要求受付部111と、データ取得部112と、データ選別部113とを備える。
取得要求受付部111は、移行元台帳ネットワーク3のトランザクションとトランザクションに関係する補足データ503とを移行元分散型台帳から取得するよう要求する取得要求を管理装置2から受け取る。
データ取得部112は、移行元台帳ネットワーク3からトランザクションとトランザクションに関係する補足データ503とを含むデータを取得データとして取得する。データ取得部112は、移行要求に基づいて取得データを移行元分散型台帳から取得する。移行元分散型台帳からデータを取得することは、当該移行元分散型台帳を記録している移行元ノード31から当該データを受信することによって実現される。取得データは、後述の移行データ510の各要素として作成されるそれぞれの作成要素に対応するデータを含む。なお、作成要素という表現は、移行データ510の要素としてまだ作成されていない要素も説明するための表現である。移行データ510は、1つ以上の要素を含むデータであり、移行要求に対応するデータであり、かつ、移行元分散型台帳が記録している電子データの少なくとも一部を示すデータである。移行データ510の各要素は、具体例として、後述の頂点データ505を示すデータである。作成要素に対応するデータは、具体例として、作成要素である頂点IDに対応する頂点データ505が示すトランザクションIDに対応する選別済みトランザクションデータ502である。即ち、各作成要素は、移行元分散型台帳から移行先分散型台帳に移行する電子データの少なくとも一部に対応する。補足データ503は、作成要素に対応するデータの少なくとも1つに1対1で対応する少なくとも1つのデータであって、それぞれの作成要素に対応するデータを移行先分散型台帳に移行することを補助するデータである。
データ選別部113は、取得データを選別することにより、移行データ510が含むべきデータに対応するデータを抽出し、また、補足データ503が含むべきデータを取得データが含む場合に補足データ503が含むべきデータを抽出する。データ選別部113は、取得データから作成要素に対応するデータを選別して抽出する。データ選別部113は、取得データから作成要素に対応するデータを選別済みトランザクションデータ502として抽出してもよい。
データ選別部113は、移行データ510が含むべきデータに対応するデータをトランザクション関係データ作成部121に送り、補足データ503を補足データ受付部141に送る。
移行順序作成部12は、トランザクション関係データ作成部121と、トランザクション関係データ記録部122とを備え、トランザクション順序整理部とも呼ばれる。移行順序作成部12は、それぞれの作成要素に対応するデータを移行先分散型台帳に移行する移行順序を、作成要素を用いて作成する。移行順序作成部12は、補足データ503がある場合に、作成要素に対応するデータと補足データ503とを用いて移行順序を作成する。作成要素に対応するデータは、具体例として、選別済みトランザクションデータ502、又は、選別済みトランザクションデータ502と当該選別済みトランザクションデータ502に対応する補足データ503との組である。
トランザクション関係データ作成部121は、データ選別部113が抽出したデータであって、移行先分散型台帳に移行するデータが含むべきデータを元に、移行先台帳ネットワーク4への効率の良いトランザクションの登録順序を導くことを補助するトランザクション関係データを作成し、作成したトランザクション関係データをトランザクション関係データ記録部122に記録する。トランザクション関係データ作成部121は、補足データ503がない場合に、選別済みトランザクションデータ502を用いて、選別済みトランザクションデータ502間の関係に基づいてトランザクション関係データを作成する。トランザクション関係データは、移行順序を規定するデータである。また、トランザクション関係データ作成部121は、補足データ503がある場合に、選別済みトランザクションデータ502と、補足データ503とを用いてトランザクション関係データを作成する。トランザクション関係データ作成部121は、トランザクション関係データとして、トランザクション関係グラフ504を作成してもよい。トランザクション関係グラフ504は、移行順序と移行条件とをグラフ構造により表す。移行条件は、選別済みトランザクションデータ502を移行先分散型台帳に移行する条件である。
データ登録部13は、登録要求受付部131と、データ作成部132と、データ送信部133とを備える。
登録要求受付部131は、移行するデータを移行先分散型台帳に登録するよう要求する登録要求を管理装置2から受け取る。
データ作成部132は、トランザクション関係データ記録部122が記録しているトランザクション関係データを取得し、トランザクションの生成を開始した時点において移行先分散型台帳に登録することができるデータを用いて移行先分散型台帳向けのトランザクションを生成する。データ作成部132は、作成要素に対応するデータを用いて、それぞれの作成要素の形式に従ってそれぞれの作成要素を作成してもよい。
データ作成部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のグラフ構造を利用して、移行先分散型台帳に登録することができるそれぞれの作成要素に対応するデータを登録可能データとして抽出してもよい。
データ送信部133は、移行先台帳ネットワーク4にトランザクションを送信する。データ送信部133は、それぞれの作成要素に対応するデータを、移行順序に基づいて移行先分散型台帳に送信する。データ送信部133は、登録可能データを含むデータを移行先分散型台帳に送信してもよい。移行先分散型台帳にデータを送信することは、当該移行先分散型台帳を記録する移行先ノード41に当該データを送信することによって実現される。
補足データ管理部14は、補足データ受付部141と、補足データ記録部142とを備える。
補足データ受付部141は、管理装置2とデータ選別部113との少なくともいずれかから補足データ登録要求を受け取り、補足データ登録要求を受け取った場合に補足データ503を補足データ記録部142に記録する。
管理装置2は、移行要求部21と、補足データ登録要求部22とを備える。
移行要求部21は、取得要求部211と、登録要求部212とを備える。
取得要求部211は、データ移行装置1に対して、トランザクション及びトランザクションに関係する補足データ503を移行元台帳ネットワーク3から取得することと、トランザクション関係データを作成することとを要求する。
登録要求部212は、データ移行装置1に対して、作成したトランザクション関係データと補足データ503とを利用して、移行先台帳ネットワーク4に移行するデータを登録することを要求する。
補足データ登録要求部22は、データ移行装置1に対して、移行するデータに対応する補足データ503を登録することを要求する。
移行元ノード31は、データ移行装置1からのデータ取得要求に応じて、トランザクションとトランザクションに関係する補足データ503とを含むデータをデータ移行装置1に送信する機能を備える。
移行先ノード41は、データ移行装置1からのトランザクション登録要求に応じて、トランザクションデータを移行先台帳ネットワーク4において共有している台帳に登録する機能を備える。また、移行先ノード41は、データ移行装置1からの補足データ503を登録する要求又は作用する要求に応じて、移行先ノード41又は移行先台帳ネットワーク4に補足データ503を登録する機能と作用する機能との少なくともいずれかを備える。
***動作の説明***
データ移行装置1の動作手順はデータ移行方法に相当する。データ移行装置1の動作を実現するプログラムはデータ移行プログラムに相当する。管理装置2の動作手順は管理方法に相当する。管理装置2の動作を実現するプログラムは管理プログラムに相当する。移行元ノード31の動作手順は移行元制御方法に相当する。移行元ノード31の動作を実現するプログラムは移行元制御プログラムに相当する。移行先ノード41の動作手順は移行先制御方法に相当する。移行先ノード41の動作を実現するプログラムは移行先制御プログラムに相当する。
図4は、データ移行システム90の動作の一例を示すフローチャートである。本図を参照してデータ移行システム90の動作を説明する。
(ステップS101:データ取得要求処理)
取得要求部211は、データ移行装置1に移行元データ取得要求501を送信する。
図5は、移行元データ取得要求501の一例を示している。
「取得対象台帳ID(Identification)」は、データ取得対象である台帳を一意に表す識別子である。データ取得対象は移行元データを記録している。
「取得対象台帳名」は、データ取得対象である台帳に設定された名前である。
「接続移行元ノード」は、データ取得部112がデータを取得するために接続する移行元ノード31の所在を表す情報である。接続移行元ノードは、移行するデータを記録している移行元ノード31である。「接続移行元ノード」の値は、具体例として、移行元ノード31のIP(Internet Protocol)アドレス、又は、移行元ノード31のIPアドレスとポート番号との組み合わせである。
「接続移行元ノード資格情報」は、接続移行元ノードへ接続する際に認証が必要である場合に利用される情報である。「接続移行元ノード資格情報」はなくてもよい。「接続移行元ノード資格情報」の値は、具体例として、移行元ノード31へログインするためのIDとパスワードとの組、公開鍵と秘密鍵により署名したデータとの組、又は、アクセストークンである。
(ステップS102:データ要求処理)
取得要求受付部111は、移行元データ取得要求501を受け取る。データ取得部112は、移行元データ取得要求501を利用し、接続移行元ノードに対して取得対象台帳名が示す台帳に記録されているトランザクションとトランザクションに関連する補足データ503とを要求する。
(ステップS103:要求データ送信処理)
接続移行元ノードは、データ取得部112に要求されたトランザクションと補足データ503とをデータ取得部112に送信する。
(ステップS104:選別処理)
データ取得部112は、トランザクションと補足データ503とを取得データとして取得する。データ選別部113は、取得データから移行処理において必要であるデータのみを選別する。
具体例として、移行元分散型台帳がブロックチェーンである場合、移行元台帳ネットワーク3において複数のトランザクションがブロックと呼ばれるまとまりで管理されている。この場合において、データ取得部112は移行元ノード31からブロックを取得し、データ選別部113はデータ取得部112が取得したブロックの中から各トランザクションを抽出してもよい。
図6は、選別済みトランザクションデータ502の一例を示している。選別済みトランザクションデータ502は、データ選別部113によって選別されたトランザクションデータである。
「取得対象台帳ID」は、データを取得する対象である台帳を一意に表す識別子である。「取得対象台帳ID」の値は、移行元データ取得要求501が設定した取得対象台帳IDと同じ値である。
「トランザクションID」は、取得対象台帳が含むトランザクションを一意に表す識別子である。以下、本図の説明において、特に断りがない限りトランザクションはトランザクションIDが示すトランザクションである。
「実行順序情報」は、トランザクションが台帳に適用されたタイミングを表す情報である。「実行順序情報」の値は、具体例として、移行元分散型台帳がブロックチェーンである場合、ブロック番号と、トランザクションがブロックの中で何番目に適用されたかを示す情報とを組み合わせることによりを作られたものである。また、実行順序情報は、あるトランザクションを実行する前に処理すべきトランザクションのリストを用いて生成されてもよい。
「種別」は、トランザクションが実行する処理の種類を表す。処理の種類は、具体例として、分散型台帳組み込み機能実行と、スマートコントラクト実行と、スマートコントラクトデプロイと、スマートコントラクト更新とのいずれかである。
「実行対象」は、トランザクションによって実行される処理が定義されている場所を示す。実行対象は、分散型台帳に組み込まれている機能が格納されている場所を指す情報であってもよく、ブロックチェーンにおいて動作するロジックであるスマートコントラクトを指す情報であってもよい。
「実行処理」は、トランザクションによって実行される具体的な処理を示す。「実行処理」の値は、具体例として、分散型台帳に組み込まれている機能と、スマートコントラクトのデプロイ又は更新と、スマートコントラクトに定義されている処理とのいずれかである。
「処理引数リスト」は、実行処理が示す処理が必要とするデータ群が設定されたリストである。
「実行者情報」は、トランザクションの実行者を示す情報である。
「実行結果」は、実行対象が示す対象について実行処理が示す処理を処理引数リストが示す引数を用いて実行したときのトランザクションの実行結果を表す。「実行結果」の値は、具体例として、当該処理の実行において、参照されたデータを示す参照情報と、書き込まれたデータを示す書込情報との二種類から成る。なお、典型的には、移行元ノード31内部の処理実行用の保存領域である状態DB(Database)が、参照情報と書込情報とを記憶している。参照情報は、具体例として、処理実行時に参照された全ての状態DBの主キーである。書込情報は、具体例として、処理実行時に書き込まれた全ての状態DBの主キーである。
実行結果がトランザクションに含まれない分散型台帳を利用するものである場合を考える。この場合において、具体例として、分散型台帳が処理の実行時にトランザクションを追うこと又はトランザクションとの関係性を追うことができる保存領域に任意のデータを格納する機能をサポートするとき、データ選別部113は当該機能を利用してもよい。具体的には、スマートコントラクト実行時に参照したデータの主キーと書き込んだデータの主キーとを、トランザクション又はトランザクションとの関係性を追うことができる保存領域に記録することにより、データ選別部113はデータ取得部112からデータを取得したときに実行結果を取得することができる。データ選別部113は、この手順により取得した実行結果をトランザクションに結合してもよく、また、当該実行結果を補足データ503として管理してもよい。
また、データ選別部113は、前述の機能を利用せず、任意の手段によりトランザクションの実行をエミュレートすることにより実行結果を求め、求めた実行結果を補足データ503として補足データ登録要求部22を利用して補足データ管理部14に登録してもよい。
図6に例示する選別済みトランザクションデータ502は、分散型台帳にデプロイされているスマートコントラクトを実行するトランザクションである。ここで、種別をスマートコントラクトデプロイ又はスマートコントラクト更新とすることにより、選別済みトランザクションデータ502はスマートコントラクトのデプロイ又は更新に関するトランザクションを表現することもできる。このとき、実行対象の値として、デプロイ又は更新するスマートコントラクト名が設定されることが想定される。
図7は、補足データ503の一例を示している。当該補足データ503は、データ選別部113によって選別されたものである。
「補足データID」は、補足データ503を一意に表す識別子である。
「取得対象台帳ID」は、データ取得対象である台帳を一意に表す識別子である。「取得対象台帳ID」の値は、移行元データ取得要求501の取得対象台帳IDが示す値と同じ値である。以下、本図の説明において、特に断りがない限り台帳は取得対象台帳IDが示す台帳である。
「トランザクションID」は、台帳に含まれるトランザクションを一意に表す識別子である。「トランザクションID」の値は、補足データ503に関連するトランザクションの識別子である。
「データ種別」は、補足データ503の種別を表す。補足データ503の種別は、具体例として、補足データ503がスマートコントラクト本体のデータを表すことを示す「スマートコントラクト」と、補足データ503が台帳上には直接記録されない秘密データであることを表す「秘密データ」と、実行結果がトランザクションに含まれない分散型台帳を利用する場合に使用される「実行結果」とのいずれかである。
「データ」は、補足データ503の本体である。「データ」の値は、具体例として、補足データ503がスマートコントラクトである場合、ノードにスマートコントラクトをデプロイする際に用いられるスマートコントラクト本体のデータである。補足データ503が秘密データである場合、「データ」の値は、具体例として、秘密データ本体のデータである。補足データ503が実行結果である場合、「データ」の値は、具体例として、図6の「実行結果」と同様の値である。
(ステップS105:選別データ送信処理)
データ選別部113は、最終的に選別したデータの内、選別済みトランザクションデータ502を移行順序作成部12に送信し、補足データ503を補足データ管理部14に送信する。
(ステップS106:補足データ読み出し処理)
トランザクション関係データ作成部121は、データ選別部113から受信した選別済みトランザクションデータ502に関係する補足データ503を補足データ記録部142から読み出す。
(ステップS107:トランザクション関係データ作成処理)
トランザクション関係データ作成部121は、選別済みトランザクションデータ502と補足データ503とを用いてトランザクション関係データを作成する。トランザクション関係データは、移行先台帳ネットワーク4に効率良くトランザクションを登録する順序を導くことを補助するデータである。
図8は、トランザクション関係グラフ504の一例と、トランザクション関係グラフ504の構成要素である頂点データ505及び辺データ506それぞれの一例とを示している。トランザクション関係グラフ504は、トランザクション関係データの一例であり、グラフ構造のデータ形式を利用したものである。トランザクション関係グラフ504の1つの頂点は1つの頂点データ505に対応する。トランザクション関係グラフ504の1つの辺は1つの辺データ506に対応する。
図8に示すトランザクション関係グラフ504の各項目を説明する。
「取得対象台帳ID」は、データ取得対象である台帳を一意に表す識別子である。以下、本図の説明において、特に断りがない限り台帳は取得対象台帳IDが示す台帳である。
「頂点集合」は、トランザクション関係グラフを構成する頂点データ505の頂点IDのリストである。
「辺集合」はトランザクション関係グラフを構成する辺データ506の辺IDのリストである。頂点集合と辺集合とのそれぞれは、トランザクション関係グラフを構成する頂点と辺とのそれぞれの情報を保持するものであればよい。このため、頂点集合は頂点データ505のリストであってもよく、辺集合は辺データ506のリストであってもよい。
図8に示す頂点データ505の各項目を説明する。
「頂点ID」は、頂点を一意に表す識別子である。以下、頂点データ505の説明において頂点は頂点IDが示す頂点を指す。
「トランザクションID」は、台帳に含まれるトランザクションを一意に表す識別子である。
「補足データID」は、トランザクションIDが示すトランザクションに関連する補足データIDのリストである。
「参照」は、頂点に対応するトランザクションを実行する際に参照した状態DBの主キーと、主キーのバージョンとのペアのリストである。主キーのバージョンは、状態DBにおいてその主キーの値が更新された回数又は更新された時期を示す情報である。具体例として、その主キーの値を更新したトランザクションの実行順序を示す情報、又は、状態DBに内蔵されているバージョン管理機能が管理しているバージョン値を利用することができる。
「書込」は、頂点に対応するトランザクションの実行の際に書き込んだ状態DBの主キーと、主キーのバージョンとのペアのリストである。
図8に示す辺データ506の各項目を説明する。
「辺ID」は、辺を一意に表す識別子である。以下、辺データ506の説明において、特に断りがない限り辺は辺IDが示す辺である。
「出力側頂点ID」は、辺が出力されている頂点の頂点IDを表す。
「入力側頂点ID」は、辺が入力されている頂点の頂点IDを表す。
具体例として、辺IDがe1であり、出力側頂点IDがv1であり、入力側頂点IDがv2である場合を考える。この場合において、辺e1は、移行先分散型台帳に対して、データ移行時に、頂点v1に対応するトランザクションを登録した後に頂点v2に対応するトランザクションを登録しなければならないという制約を表している。
図9は、主キー更新履歴表507の一例とスマートコントラクト更新履歴表508の一例とを示している。
主キー更新履歴表507は、トランザクション関係グラフ504を作成する過程で使用されるデータであり、移行元分散型台帳のある時点における状態DBにおいて、状態DBに記録される各主キーの最新バージョンと当該最新バージョンの1つ前のバージョンとを示すデータである。
本例において、バージョンとしてブロックチェーンにおけるトランザクションの実行順序を示す情報が利用されている。本例の1行目のデータは、主キーである「ユーザAの預金データ」が、ブロック5の3番目のトランザクションを実行することによって最後に更新され、また、ブロック4の1番目のトランザクションを実行することによって最後から2番目に更新されたことを表している。
スマートコントラクト更新履歴表508は、トランザクション関係グラフ504を作成する過程で使用されるデータである。本例において、スマートコントラクト更新履歴表508は、ある時点における、実行対象であるスマートコントラクトの名称を示す「スマートコントラクト名」と、移行元分散型台帳にデプロイされているスマートコントラクトの最新版をデプロイした又は更新したトランザクションのトランザクションIDを示す「最新版をデプロイ/更新したトランザクションのトランザクションID」とから成る。
図10及び図11は、トランザクション関係データ作成部121がトランザクション関係グラフを作成する動作の一例を示すフローチャートである。これらの図を参照してトランザクション関係データ作成部121の処理を説明する。なお、1つのフローチャートが図10及び図11に分割されている。TXはトランザクションの略記である。SCはスマートコントラクトの略記である。
(ステップS121)
トランザクション関係データ作成部121は、グラフ化対象である選別済みトランザクションデータ502をリストに格納する。
(ステップS122)
トランザクション関係データ作成部121は、リスト内の選別済みトランザクションデータ502の内、実行順序情報が示す実行順序が最も古いものを1件抽出する。本フローチャートの以下のステップにおいて、選別済みトランザクションデータ502は、本ステップにおいて抽出された選別済みトランザクションデータ502を指す。
(ステップS123)
トランザクション関係データ作成部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は「書込」を設定しない。
(ステップS124)
トランザクション関係データ作成部121は、主キー更新履歴表507を更新する。具体例として、作成した頂点データ505の「書込」に設定されている各主キーについて、主キー更新履歴表507に最新バージョンとして設定されているバージョンを1つ前のバージョンとして設定し、その後、「書込」に設定されているバージョンを最新バージョンとして設定する。なお、作成した頂点データ505の「書込」が設定されていない場合、トランザクション関係データ作成部121は本ステップの処理をスキップする。
(ステップS125)
トランザクション関係データ作成部121は、トランザクション関係グラフ504が作成されたか否かを確認する。
トランザクション関係グラフ504が作成された場合、トランザクション関係データ作成部121はステップS128に進む。それ以外の場合、トランザクション関係データ作成部121はステップS126に進む。
(ステップS126)
トランザクション関係データ作成部121は、空のトランザクション関係グラフ504を作成する。本フローチャートの以下のステップにおいて、トランザクション関係グラフ504は本ステップにおいて作成されたトランザクション関係グラフ504を指す。
具体例として、選別済みトランザクションデータ502が最初に読み出したトランザクションデータである場合に、トランザクション関係データ作成部121は、「取得対象台帳ID」に選別済みトランザクションデータ502の「取得対象台帳ID」が示す値を設定し、「頂点集合」と「辺集合」とのそれぞれに空のリストを設定する。
(ステップS127)
トランザクション関係データ作成部121は、トランザクション関係グラフ504の「頂点集合」にステップS123において作成した頂点データ505を追加する。
(ステップS128)
トランザクション関係データ作成部121は、選別済みトランザクションデータ502の「種別」がスマートコントラクトデプロイであるか否かを確認する。
「種別」がスマートコントラクトデプロイである場合、トランザクション関係データ作成部121はステップS129に進む。それ以外の場合、トランザクション関係データ作成部121はステップS132に進む。
(ステップS129)
トランザクション関係データ作成部121は、トランザクション関係グラフ504の「頂点集合」が示す全ての頂点それぞれに対応する頂点について、作成した頂点データ505に対応する頂点に対する辺データ506を作成する。
(ステップS130)
トランザクション関係データ作成部121は、デプロイした又は更新したスマートコントラクトの名称と、選別済みトランザクションデータ502のトランザクションIDとの組をスマートコントラクト更新履歴表508に記録する。なお、トランザクション関係データ作成部121は、「スマートコントラクト名」を選別済みトランザクションデータ502の「実行対象」と同じものとする。
(ステップS131)
トランザクション関係データ作成部121は、作成した辺データ506をトランザクション関係グラフ504の「辺集合」に追加する。
(ステップS132)
トランザクション関係データ作成部121は、選別済みトランザクションデータ502の「種別」がスマートコントラクト更新であるか否かを確認する。
「種別」がスマートコントラクト更新である場合、トランザクション関係データ作成部121はステップS133に進む。それ以外の場合、トランザクション関係データ作成部121はステップS134に進む。
(ステップS133)
トランザクション関係データ作成部121は、更新するスマートコントラクトの現在の最新版をデプロイした又は更新したトランザクションが示す時点以降に登録されたトランザクションに対応する全ての頂点データ505それぞれを用いて、作成した頂点データ505に対する辺データ506を作成する。
トランザクション関係データ作成部121は、具体例として、選別済みトランザクションデータ502の「実行対象」に設定されているスマートコントラクト名を取得し、取得したスマートコントラクト名に対応するスマートコントラクトの最新版をデプロイした又は更新したトランザクションのトランザクションIDをスマートコントラクト更新履歴表508から取得する。さらに、トランザクション関係データ作成部121は、取得したトランザクションIDに対応する選別済みトランザクションデータ502を取得し、取得した選別済みトランザクションデータ502の「実行順序情報」を抽出する。トランザクション関係データ作成部121は、抽出した「実行順序情報」が示す時点以降に登録された選別済みトランザクションデータ502を探し、当該時点以降に登録された選別済みトランザクションデータ502それぞれに対応する頂点データ505を取得する。その後、トランザクション関係データ作成部121は、取得した各頂点データ505と作成した頂点データ505とを両端とする各辺データ506を作成する。なお、スマートコントラクト名は、選別済みトランザクションデータ502の「実行対象」と同じものとする。
(ステップS134)
トランザクション関係データ作成部121は、作成した頂点データ505と、作成した頂点データ505の「参照」に含まれる主キーと主キーのバージョンとの組を「書込」の要素として含む頂点データ505とを両端とする辺データ506を作成する。
(ステップS135)
トランザクション関係データ作成部121は、作成した頂点データ505と、作成した頂点データ505の「書込」に含まれる主キーの1つ前のバージョンの主キーと1つ前のバージョンの主キーのバージョンとの組を「参照」又は「書込」の要素として含む頂点データ505とを両端とする辺データ506を作成する。
(ステップS136)
トランザクション関係データ作成部121は、選別済みトランザクションデータ502の「実行対象」が示すスマートコントラクトの最新版をデプロイした又は更新したトランザクションのトランザクションIDを、選別済みトランザクションデータ502の「実行対象」とスマートコントラクト更新履歴表508とを利用して取得し、作成した頂点データ505と、取得したトランザクションIDのトランザクションに対応する頂点データ505とを両端とする辺データ506を作成する。
(ステップS137)
トランザクション関係データ作成部121は、リストからステップS122において抽出したトランザクションデータを削除する。
(ステップS138)
トランザクション関係データ作成部121は、リストが空であるか否かを確認する。
リストが空である場合、トランザクション関係データ作成部121は本フローチャートの処理を終了する。リストが空でない場合、トランザクション関係データ作成部121はステップS121に進む。
(ステップS139)
本ステップにおける処理は、ステップS128における処理と同様である。
(ステップS140)
本ステップにおける処理は、ステップS130における処理と同様である。
(ステップS108:データ記録処理)
トランザクション関係データ作成部121は、生成したトランザクション関係データと、データ選別部113から受信した選別済みトランザクションデータ502とをトランザクション関係データ記録部122に記録する。
トランザクション関係データ記録部122に記録されるトランザクション関係データとしては、トランザクション関係データがトランザクション関係グラフ504である場合、トランザクション関係グラフ504と、トランザクション関係グラフ504を構成する頂点データ505と辺データ506とが挙げられる。
(ステップS109:補足データ送信処理)
外部にある補足データ503が必要である場合、補足データ登録要求部22は、データ移行装置1に補足データ503を送信する。
補足データ503を送信するタイミングは、前述のデータ抽出部11又は移行順序作成部12の処理の前又は途中であってもよい。データ移行装置1は、補足データ受付部141を用いて補足データ503を受け取り、受け取った補足データ503を補足データ記録部142に記録する。
(ステップS110:登録要求送信処理)
登録要求部212は、データ移行装置1に移行先データ登録要求509を送信する。
図12は、移行先データ登録要求509の一例を示している。
「移行先台帳ID」は、移行先である台帳を一意に表す識別子である。
「台帳名」は、移行先である台帳に設定された名前である。
「取得対象台帳ID」は、移行元である台帳を一意に表す識別子である。
「接続移行先ノード」は、「接続移行元ノード」と同様であり、データ送信部133がデータを移行する接続する移行先ノード41の所在を表す情報である。
「接続移行先ノード資格情報」は、「接続移行元ノード資格情報」と同様であり、移行先ノード41へ接続する際に認証が必要である場合に利用される情報である。
(ステップS111:移行データ作成処理)
データ移行装置1は、登録要求受付部131を用いて移行先データ登録要求509を受け取り、データ作成部132を呼び出す。
データ作成部132は、登録要求受付部131が受信した移行先データ登録要求509と、トランザクション関係データ記録部122が記録しているトランザクション関係データと、補足データ記録部142が記録している補足データ503とを利用して移行データ510を作成し、適宜、作成した移行データ510をデータ送信部133に送信する。
図13は、移行データ510の一例を示している。
「順序データ」は、移行データ510を移行先台帳ネットワーク4に適用する順序を表す設定値である。複数の移行データ510が存在する場合、各移行データ510の「順序データ」に互いに異なる値を設定することにより、移行データ510の適用順序を一意に特定することができるようにする。
「台帳名」は、移行先である台帳に設定された名前である。
「接続移行先ノード」は、「接続移行元ノード」と同様であり、データ送信部133が接続する移行先ノード41の所在を表す情報である。
「接続移行先ノード資格情報」は、「接続移行元ノード資格情報」と同様であり、移行先ノード41へ接続する際に認証が必要である場合に利用される情報である。
「頂点データリスト」は、移行する頂点データ505に対応する要素が含まれるリストである。「頂点データリスト」に含まれる各要素は、作成要素に当たり、移行元分散型台帳から移行先分散型台帳に移行する電子データの少なくとも一部に対応する。「頂点データリスト」に含まれる要素に対応する頂点データ505は移行データ510を生成するタイミングにおいて登録することができるデータを示すため、データ移行装置1はどのような順序で移行先台帳ネットワーク4に頂点データ505が示すデータを登録しても構わない。ただし、複数の移行データ510が存在する場合、データ移行装置1は「順序データ」に示される順序が先である移行データ510から順番に頂点データ505の登録をする必要がある。
以下では、データ移行装置1がトランザクション関係データとしてトランザクション関係グラフ504を採用する場合における、移行データ510の作成と送信の具体例を示す。
図14は、データ作成部132が、移行データ510を作成する処理と、作成した移行データ510をデータ送信部133へ送信する処理との一例を示すフローチャートである。本図を参照してデータ作成部132とデータ送信部133との処理を説明する。
(ステップS141)
データ作成部132は、移行元分散型台帳のトランザクション関係グラフ504の内、データ登録条件が設定されていない頂点データ505を取得し、取得した頂点データ505をリストに登録する。データ作成部132は、移行先データ登録要求509の「取得対象台帳ID」を利用し、トランザクション関係データ記録部122から移行元分散型台帳に対応するトランザクション関係グラフ504を取得する。データ登録条件が設定されていない頂点データ505は、トランザクション関係グラフ504の「頂点集合」に含まれる頂点に対応する頂点データ505の内、トランザクション関係グラフ504の「辺集合」に含まれる辺に対応する辺データ506の「入力側頂点ID」として設定されていない頂点データ505である。
(ステップS142)
データ作成部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が、抽出した頂点データ505を用いて移行データ510を作成する具体的な方法を説明する。データ作成部132は、移行データ510の「順序データ」の値がフローチャートの繰り返し処理中に重複しないよう、先に作成した移行データ510から移行先台帳ネットワーク4に適用されるように「順序データ」の値を設定する。データ作成部132は、移行データ510の「台帳名」と「接続移行先ノード」と「接続移行先ノード資格情報」とに移行先データ登録要求509に示される値を設定する。データ作成部132は、リストに含まれる頂点データ505に対応する値を「頂点データリスト」に設定する。データ作成部132は、頂点データ505そのものを「頂点データリスト」に設定してもよく、また、頂点データ505の「頂点ID」を登録する等、頂点データ505を参照するための情報を「頂点データリスト」に設定してもよい。
(ステップS143)
データ作成部132は、作成した移行データ510をデータ送信部133へ送信する。
(ステップS144)
データ作成部132は、リスト内の各頂点データ505の「頂点ID」の値を「出力側頂点ID」の値として持つ辺データ506を抽出する。
(ステップS145)
データ作成部132は、抽出した各辺データ506の入力側頂点IDに対応する頂点データ505を候補リストに登録する。なお、データ作成部132は既に候補リストに登録されている頂点データ505を重複して候補リストに登録しない。候補リストは、候補リストが含む要素に対する処理の時点において、データ登録条件の少なくとも一部が満たされている頂点データ505のリストである。ある頂点データ505のデータ登録条件は、当該ある頂点データ505の「頂点ID」を「入力側頂点ID」として持つ辺データ506が、本ステップの処理を実行するまでに、イテレーションにおけるステップS144の処理によって全て抽出されていることである。イテレーションは本フローチャートにおける繰り返し処理のことである。
(ステップS146)
データ作成部132は、候補リストが含む各頂点データ505について、データ作成部132が本フローチャートの処理を開始して以降本ステップの処理を実行するまでに抽出した各辺データ506によってデータ登録条件が満たされたか否かを確認し、登録条件が満たされた頂点データ505を次期リストに登録する。次期リストは、イテレーション処理の過程においてデータ登録条件が全て満たされた頂点データ505を要素とするリストである。登録条件が満たされた頂点データ505に対応するデータは、登録可能データである。
ステップS144からステップS146の処理の具体例を示す。トランザクション関係グラフ504において、「頂点ID」がv2である頂点データ505(以降、頂点v2)を「入力側頂点ID」として持つ辺データ506として、辺e1(v1,v2)と、辺e2(v3,v2)と、辺e3(v4,v2)とが存在するものとする。ここで、辺e1(v1,v2)は「辺ID」がe1、「出力側頂点ID」がv1、「入力側頂点ID」がv2である辺データ506を表す。
あるイテレーションのステップ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を次期リストに登録する。
(ステップS147)
データ作成部132は、リストと次期リストとが空であるか否かを確認する。
リストと次期リストとが空である場合、データ作成部132はステップS149に進む。それ以外の場合、即ちリストと次期リストとの少なくとも一方が空ではない場合、データ作成部132はステップS148に進む。
(ステップS148)
データ作成部132は、リストから移行データ510に含めた頂点データ505を削除し、次期リストの頂点データ505をリストに追加し、次期リストを空にする。
(ステップS149)
データ作成部132は、データ送信部133に移行データ510の送信が完了したことを示す送信完了通知を送信し、本フローチャートの処理を終了する。
(ステップS112:移行データ送信処理)
データ送信部133は、データ作成部132から受信した移行データ510に基づき、移行先ノード41にデータを送信する。
図15は、データ送信部133が移行先ノード41へデータを送信する処理の一例を示すフローチャートである。本図を参照してデータ送信部133の処理を説明する。なお、本図の説明において、移行データ510の「順序データ」には数値が設定されており、データ送信部133は値が小さい「順序データ」を有する移行データ510から順に処理するものとする。
(ステップS161)
データ送信部133は、データ作成部132から移行データ510又は送信完了通知を受信することを待ち、データを受信した場合に受信したデータをリストに追加する。1度に受信するデータは1件に限られない。また、データ送信部133は本ステップの処理をバックグラウンドで実行してもよい。この際にも、データ作成部132から受信したデータを都度リストに追加する。
(ステップS162)
データ送信部133は、リストから最も小さい「順序データ」を有するデータを1件取得し、取得したデータをリストから削除する。なお、データ送信部133は、送信完了通知を、最も大きい「順序データ」を有するデータとして扱う。
(ステップS163)
データ送信部133は、取得したデータが送信完了通知であるか確認する。
取得したデータが送信完了通知である場合、データ送信部133は本フローチャートの処理を終了する。それ以外の場合、つまり、取得したデータが移行データ510である場合、データ送信部133はステップS164に進む。
(ステップS164)
データ送信部133は、取得した移行データ510の「頂点データリスト」が含む要素に対応する頂点データ505に従い、移行先ノード41にデータを送信する。
具体例として、まず、データ送信部133は、移行データ510の「台帳名」と、「接続移行先ノード」と、「接続先ノード資格情報」との少なくともいずれか等を利用して移行先ノード41に接続する。次に、データ送信部133は、「頂点データリスト」が含む要素に対応する各頂点データ505に対応する選別済みトランザクションデータ502と補足データ503との少なくともいずれかを参照し、参照したデータに合わせて、移行先ノード41にトランザクションを送信し、又は、移行先ノード41の機能を呼び出すことにより、移行先ノード41へのデータ送信を完了する。
(ステップS165)
データ送信部133は、リストが空であるか否かを確認する。
リストが空ではない場合、データ送信部133はステップS162に進む。リストが空である場合、データ送信部133はステップS161に進む。
ここまでの動作の説明において、データ移行対象は移行元台帳ネットワーク3の移行対象である台帳に含まれる全てのトランザクションである。しかしながら、データ移行対象は移行元台帳ネットワーク3の移行対象である台帳に含まれる一部のトランザクションであってもよい。
具体例として、まず、登録要求部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は、同じ内容のトランザクションを重複して含まない複数の移行元分散型台帳のトランザクションを整理し、複数の移行先分散型台帳にデータを振り分けることによってデータを移行する構成であってもよい。
***実施の形態1の効果の説明***
以上のように、本実施の形態によれば、データ抽出部11と移行順序作成部12と補足データ管理部14とにより、移行元台帳ネットワーク3から取得しかつ加工した選別済みトランザクションデータ502及び補足データ503と、外部から入力した補足データ503とを用いて、移行先台帳ネットワーク4にトランザクションを比較的効率良く登録する順序を導くことを補助するトランザクション関係データを作成することができる。さらに、データ登録部13は、作成されたトランザクション関係データを利用することによって移行先台帳ネットワーク4に対して比較的効率良く移行データ510を登録するができる。そのため、本実施の形態によれば、移行元台帳ネットワーク3とは環境が異なる移行先台帳ネットワーク4に対して、比較的効率良く、トランザクションのデータを移行することができる。
また、移行元分散型台帳から移行先分散型台帳へのデータ移行を実現する手段として、移行元分散型台帳に保存されている最も古いトランザクションから1件ずつ、移行先分散型台帳に同じ内容のトランザクションを登録する方法(以降、逐次法と表記する)がある。
逐次法は、移行先分散型台帳に登録するトランザクションの順序を移行元分散型台帳におけるトランザクションの登録順序と確実に合わせるために移行先分散型台帳にトランザクションを1件ずつ登録する。しかしながら、分散型台帳では複数ノードが合意形成を行う。そのため、トランザクションの登録要求から登録完了までに時間を要し、データ移行に要する時間が長くなってしまうという課題がある。なお、分散型台帳の一種であるブロックチェーンにおいては、トランザクションは複数まとめられ、ブロックという単位でデータが登録される。合意形成はブロック単位で行われるため、1つのブロックに複数のトランザクションを含めることにより1トランザクション当たりの合意形成に要する時間を短くすることができる。しかしながら、この際にトランザクションの適用順序を指定する既存技術はなく、移行元分散型台帳におけるトランザクションの登録順序と移行先分散型台帳におけるトランザクションの登録順序とが一致しなくなる可能性がある。そのため、単にブロックに複数のトランザクションをまとめる方法は利用することができない。しかしながら、本実施の形態によれば、移行先分散型台帳に登録することができる複数のトランザクションをまとめて移行先分散型台帳に移行することができる。そのため、本実施の形態によれば、逐次法を採用した場合と比較して効率的に電子データを移行元分散型台帳から移行先分散型台帳に移行することができる。
***他の構成***
<変形例1>
図16は、本変形例に係るデータ移行装置1のハードウェア構成例を示している。
データ移行装置1は、本図に示すように、プロセッサ81とメモリ82と補助記憶装置84との少なくとも1つに代えて、処理回路88を備える。
処理回路88は、データ移行装置1が備える各部の少なくとも一部を実現するハードウェアである。
処理回路88は、専用のハードウェアであってもよく、また、メモリ82に格納されるプログラムを実行するプロセッサであってもよい。
処理回路88が専用のハードウェアである場合、処理回路88は、具体例として、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(ASICはApplication Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらの組み合わせである。
データ移行装置1は、処理回路88を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路88の役割を分担する。
データ移行装置1において、一部の機能が専用のハードウェアによって実現されて、残りの機能がソフトウェア又はファームウェアによって実現されてもよい。
処理回路88は、具体例として、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現される。
プロセッサ81とメモリ82と補助記憶装置84と処理回路88とを、総称して「プロセッシングサーキットリー」という。つまり、データ移行装置1の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
データ移行システム90が備える他の各装置と、他の実施の形態に係るデータ移行システム90が備える各装置とについても、本変形例と同様の構成であってもよい。
実施の形態2.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
実施の形態1では、移行元台帳ネットワーク3と移行先台帳ネットワーク4とに接続することができ、かつ、移行元台帳ネットワーク3が含む移行対象であるトランザクションを移行先台帳ネットワーク4に対して登録することができる代表者が1つのデータ移行装置1を利用してデータを移行するケースを説明した。
本実施の形態において、移行元台帳ネットワーク3が含む移行対象であるトランザクションの取得権限が設定されている場合、又は、移行先台帳ネットワーク4に対するトランザクションの登録権限が設定されている場合等に、複数の参加者が連携しながら複数のデータ移行装置1によってデータを移行する。参加者はデータ移行装置1の利用者又はデータ移行装置1である。利用者はコンピュータ等であってもよい。
図17は、本実施の形態に係るデータ移行システム90の構成例を示している。本実施の形態と実施の形態1との主な差分は、データ移行システム90が複数のデータ移行装置1を備えている点と、各データ移行装置1が台帳更新監視部15を備えている点と、各データ移行装置1のデータ登録部13から連携対象である他の各データ移行装置1の台帳更新監視部15への通信経路が追加されている点である。本実施の形態において、データ移行装置1と同じ機能を有する他のデータ移行装置1を備えるデータ移行システム90がデータ移行装置1を備える。いずれのデータ移行装置1も、移行元台帳ネットワーク3と移行先台帳ネットワーク4とに接続している。なお、複数のデータ移行装置1を区別するために“-1”等を用いている。データ移行システム90をこのような構成にすることにより、複数のデータ移行装置1それぞれは、台帳更新監視部15により、データ移行の進捗状況を確認しながら、適切なタイミングにおいて適切なトランザクションを移行することができる。
本図では、データ移行装置1が他のデータ移行装置1と直接通信する場合を示している。しかしながら、データ移行装置1は、何らかの装置又は手段等を媒介して他のデータ移行装置1と通信してもよい。具体例として、各データ移行装置1がアクセスすることができる媒介手段として、DB若しくはデータレイク等のデータストア、メッセージキュー等のメッセージ配信システム、又は、分差型台帳システム等をデータ移行システム90が備え、双方のデータ移行装置1が媒介手段を経由してデータを交換してもよい。また、移行先ノード41がトランザクションに関連する任意のデータを付加することができる場合において、複数のデータ移行装置1間の通信は、移行先ノード41を介して実現されてもよい。
図18は、データ移行システム90が備える各装置のハードウェア構成例を示している。本実施の形態と実施の形態1との主な差分は、各データ移行装置1が他のデータ移行装置1と通信するために、双方が同じネットワークに参加する構成である点である。ただし、データ移行装置1間の通信が移行先ノード41を介して実現される場合に、ハードウェア構成は実施の形態1と同様のハードウェア構成であってもよい。
図19は、データ移行システム90が備える各装置のソフトウェア構成例を示している。本実施の形態と実施の形態1との主な差分は、データ移行装置1が台帳更新監視部15を備える点である。
台帳更新監視部15は、移行先ノード41と移行先分散型台帳と移行先分散型台帳の台帳IDとの少なくともいずれか等を登録要求受付部131から受け取り、対象の移行先分散型台帳におけるトランザクション登録の状況を監視する。また、台帳更新監視部15は、他のデータ移行装置1のデータ送信部133から、トランザクションの移行元におけるトランザクションIDと、当該トランザクションを移行先に登録した際に新たに設定されるトランザクションIDとの対応を示す情報を受信し、受信した情報と、トランザクション登録の状況とを、データ作成部132に対して適宜通知する。台帳更新監視部15は、移行先分散型台帳が他のデータ移行装置1から受信して移行先分散型台帳に登録したデータを示す他装置登録情報を取得する。
データ作成部132は、電子データを移行している途中において、移行先分散型台帳がデータ送信部133から受信して移行先分散型台帳に登録したデータと、他装置登録情報とに基づいてそれぞれの作成要素を作成してもよい。
データ送信部133は、それぞれの作成要素に対応するデータを他装置登録情報に基づいて移行先分散型台帳に送信してもよい。また、データ送信部133は、データ送信部133がそれぞれの作成要素に対応するデータを移行先分散型台帳に送信することによって移行先分散型台帳が登録したデータを示す情報を他のデータ移行装置1に向けて送信してもよい。
***動作の説明***
トランザクション関係データを作成する手順までについては実施の形態1と同様であるため省略する。なお、あるデータ移行装置1のデータ取得部112は、移行元ノード31から「取得対象台帳名」に設定されている台帳に記録されているトランザクションとトランザクションに関連する補足データ503とを取得する際に、アクセス権限が設定されている等の理由により、トランザクションと補足データ503との少なくとも一部を取得することができない場合がある。この場合において、当該あるデータ移行装置1は、アクセス権限を有する他の参加者が取得したトランザクションと補足データ503との少なくとも一部を何らかの手段を用いて共有し、共有したデータを補足データ503として登録してもよい。このようにすることにより、具体例として、データ移行装置1がトランザクション関係データとしてトランザクション関係グラフ504を利用する際に、ある参加者が移行先分散型台帳に登録すべきトランザクションの登録可能条件を構成するトランザクションに関する情報を移行元ノード31から直接取得することができなかったとしても、当該ある参加者は、当該情報を取得することができる他の参加者が取得した情報を、補足データ503として入手すること及び利用することができる。その結果、当該ある参加者は有効なトランザクション関係グラフ504を作成することができる。
以下、データ移行装置1がトランザクション関係データと補足データ503とを利用して移行先台帳ネットワーク4にデータを移行する手順を説明する。
なお、あるデータ移行装置1を単にデータ移行装置1と表記し、当該あるデータ移行装置1以外のデータ移行装置1を他のデータ移行装置1と表記する。他のデータ移行装置1は1つのデータ移行装置1に限られない。また、データ移行装置1が備える要素の名称が単に表記されている場合、当該あるデータ移行装置1が備える要素を指す。
図20は、本実施の形態に係るデータ移行システム90の動作の一例を示すフローチャートである。本図を参照してデータ移行システム90の動作を説明する。
(ステップS201:登録要求送信処理)
登録要求部212は、データ移行装置1に移行先データ登録要求509bを送信する。
図21は、本実施の形態における移行先データ登録要求509bの一例を示している。移行先データ登録要求509bと移行先データ登録要求509との主な差分は、「連携データ移行装置情報」が加えられている点である。
「連携データ移行装置情報」は、移行先データ登録要求509bを有するデータ移行装置1が連携する他の各データ移行装置1の接続情報から成り、連携データ抽出・移行装置情報とも呼ばれる。接続情報は、具体例として、連携する他の各データ移行装置1のIPアドレス等の所在情報、ID及びパスワード、又は、暗号鍵若しくはトークン等の資格情報等の、他のデータ移行装置1に接続するために必要である情報である。「装置2」等は、連携する他の各データ移行装置1の名称である。
(ステップS202:登録要求受信処理)
登録要求受付部131は、移行先データ登録要求509bを受信し、受信した移行先データ登録要求509bを、台帳更新監視部15と、データ作成部132とに送る。
(ステップS203:接続処理)
台帳更新監視部15は、受け取った移行先データ登録要求509bが示す情報を元に移行先ノード41に接続し、接続した移行先ノード41における移行先分散型台帳のトランザクション登録の状況を監視する。
また、台帳更新監視部15は、受け取った移行先データ登録要求509bが示す情報を元に他のデータ移行装置1のデータ送信部133に接続し、当該データ送信部133が送信する移行元トランザクションに対応するトランザクションIDと、当該トランザクションを移行先分散型台帳に登録した際に新たに設定されるトランザクションIDとの対応を示す情報を当該他のデータ移行装置1のデータ送信部133から受信し始める。
(ステップS204:移行データ作成処理)
データ作成部132は、登録要求受付部131が受信した移行先データ登録要求509bと、トランザクション関係データ記録部122が記録しているトランザクション関係データと、補足データ記録部142が記録している補足データ503とを利用して移行データ510を作成し、作成した移行データ510をデータ送信部133に適宜送信する。
以下、データ移行装置1がトランザクション関係データとしてトランザクション関係グラフ504を採用する場合における、移行データ510の作成と送信について説明する。
図22及び図23は、データ作成部132が、移行データ510を作成する処理と、作成した移行データ510をデータ送信部133に送信する処理との一例を示すフローチャートである。これらの図を参照してデータ作成部132の処理を説明する。なお、1つのフローチャートが図22及び図23に分割されている。
(ステップS221)
データ作成部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である。
(ステップS222)
データ作成部132は、他のデータ移行装置1によって移行先分散型台帳に登録されたトランザクションに対応する頂点データ505を取得する。データ作成部132は、他装置登録情報を利用して当該頂点データ505を取得してもよい。
具体例として、データ作成部132は、台帳更新監視部15に問合わせることにより、台帳更新監視部15に前回問合せたときから台帳更新監視部15に今回問合せるまでの間に移行先分散型台帳に登録されたトランザクションがあるか否かを確認する。当該トランザクションがある場合、データ作成部132は当該トランザクションに対応する頂点データ505を台帳更新監視部15に返却してもらう。当該トランザクションがない場合、データ作成部132は、トランザクションの登録があるまで待機してもよく、トランザクションを取得できなかったものとみなしてそのまま処理を続行してもよい。そのまま処理を続行する場合において、データ作成部132は、ステップS223からステップS225の処理をスキップし、ステップS226の処理を実行する。
(ステップS223)
データ作成部132は、ステップS222の処理において取得した各頂点データ505の「頂点ID」を「出力側頂点ID」として持つ辺データ506を抽出する。
(ステップS224)
データ作成部132は、抽出した各辺データ506の「入力側頂点ID」に対応する頂点データ505を候補リストに登録する。データ作成部132は、ある頂点データ505が既に候補リストに登録されている場合、当該ある頂点データ505を重複して候補リストに登録しない。候補リストは、候補リストが含む要素に対する処理の時点において、データ登録条件の少なくとも一部が満たされている頂点データ505のリストである。ある頂点データ505のデータ登録条件は、当該ある頂点データ505の「頂点ID」を「入力側頂点ID」として持つ辺データ506が、本ステップの処理を実行するまでに、イテレーションにおけるステップS223及びステップS228の処理によって、全て抽出されていることである。
(ステップS225)
データ作成部132は、候補リストが含む各頂点データ505について、データ作成部132が本フローチャートに示す処理を開始して以降本ステップの処理を実行するまでに抽出した各辺データ506によって、データ登録条件が満たされたか否かを確認し、データ登録条件が満たされた頂点データ505をリストに登録する。
(ステップS226)
データ作成部132は、リスト内の各頂点データ505を参照し、移行ルールに基づいて頂点データ505を抽出し、抽出した頂点データ505を用いて移行データ510を作成する。移行ルールは、実施の形態1に係る移行ルールと同様である。移行データ510の作成方法は実施の形態1に係る移行データ510の作成方法と同様である。
なお、リストが空である場合、データ作成部132は、ステップS226からステップS230までの処理をスキップし、ステップS231の処理をする。
(ステップS227)
データ作成部132は、作成した移行データ510をデータ送信部133へ送信する。
(ステップS228)
データ作成部132は、リスト内の各頂点データ505の「頂点ID」を「出力側頂点ID」として持つ辺データ506を抽出する。本ステップの処理は、ステップS223の処理と同様である。
(ステップS229)
データ作成部132は、抽出した各辺データ506の「入力側頂点ID」に対応する頂点データ505を候補リストに登録する。本ステップの処理は、ステップS224の処理と同様である。
(ステップS230)
データ作成部132は、候補リストが含む各頂点データ505について、データ作成部132が本フローチャートの処理を開始して以降本ステップの処理を実行するまでに抽出した各辺データ506によってデータ登録条件が満たされたか否かを確認し、登録条件が満たされた頂点データ505を次期リストに登録する。次期リストは実施の形態1に係る次期リストと同様である。
(ステップS231)
データ作成部132は、リストと次期リストとが空であるか否かを確認する。
リストと次期リストとが空である場合、データ作成部132はステップS233に進む。それ以外の場合、データ作成部132はステップS232に進む。
(ステップS232)
データ作成部132は、移行データ510に含めた頂点データ505をリストから削除し、次期リストが含む頂点データ505をリストに追加し、次期リストを空にする。その後、データ作成部132はステップS226に進む。
(ステップS233)
データ作成部132は、登録すべきトランザクションが残っているか否かを確認する。登録すべきトランザクションとは、データ移行装置1が登録することができるトランザクション全てである。登録することができるトランザクションはステップS221において説明した通りである。
登録すべきトランザクションが残っている場合、データ作成部132はステップS222の処理を実施し、他のデータ移行装置1によって、データ登録条件が満たされたトランザクションがないか確認する。それ以外の場合、データ作成部132はステップS234に進む。
(ステップS234)
データ作成部132は、データ送信部133に送信完了通知を送信し、本フローチャートの処理を終了する。
(ステップS205:データ送信処理)
データ送信部133は、データ作成部132から受信した移行データ510に基づき、移行先ノード41にデータを送信する。また、データ送信部133は、移行先ノード41にデータを登録した結果を他のデータ移行装置1の台帳更新監視部15に送信する。
図24は、データ送信部133が移行先ノード41と他のデータ移行装置1の台帳更新監視部15とにデータを送信する動作の一例を示すフローチャートである。本図を参照してデータ送信部133の動作を説明する。本例において、移行データ510の「順序データ」として数値が設定されているものとし、データ送信部133は値が小さい「順序データ」を有する移行データ510から順に処理するものとする。
(ステップS241)
データ送信部133は、データ作成部132から受信したデータをリストに追加する。本ステップの処理はステップS161の処理と同様である。
(ステップS242)
データ送信部133は、リストからデータを取得する。本ステップの処理はステップS162の処理と同様である。
(ステップS243)
データ送信部133は、取得したデータが送信完了通知であるか否かを確認する。
取得したデータが送信完了通知である場合、データ送信部133は本フローチャートの処理を終了する。それ以外の場合、即ち取得したデータが移行データ510である場合、データ送信部133はステップS244に進む。
(ステップ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の機能を呼び出してもよい。これにより、移行先分散型台帳へのデータ送信は完了する。
(ステップS245)
データ送信部133は、リストが空であるか否かを確認する。
リストが空である場合、データ送信部133はステップS241に進む。それ以外の場合、データ送信部133はステップS242に進む。
ここまでの動作の説明において、データ移行対象は移行元台帳ネットワーク3の移行対象である台帳が含む全てのトランザクションとしている。しかしながら、データ移行対象は移行元台帳ネットワーク3の移行対象である台帳に含まれる一部のトランザクションであってもよい。このときのデータ移行装置1の処理は実施の形態1と同様であるため、当該処理の説明を省略する。
***実施の形態2の効果の説明***
以上のように、本実施の形態によれば、データ移行装置1は台帳更新監視部15を備え、さらに複数のデータ移行装置1が連携して動作する。そのため、本実施の形態に係るデータ移行装置1は、実施の形態1の特徴を有しつつ、移行元台帳ネットワーク3に含まれる移行対象のトランザクションの取得権限が設定されている場合、又は、移行先台帳ネットワーク4に対するトランザクションの登録権限が設定されている場合等においても、データを移行することができる。
実施の形態3.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
本実施の形態に係るデータ移行装置1は、前述の実施の形態によって作成した移行先分散型台帳が移行元分散型台帳と同様であるか否かを確認する機能を有する。なお、本機能は他のいずれの実施の形態と組み合わせてもよいが、説明の便宜上、実施の形態1に本機能を追加した具体例を説明する。本実施の形態に係る処理は、移行元分散型台帳が記録している電子データの少なくとも一部を移行先分散型台帳に移行した後において実施することができる。
図25は、本実施の形態に係るデータ移行システム90の構成例を示している。本実施の形態と実施の形態1との主な差分は、データ移行装置1がデータ検証部16を備える点と、管理装置2がデータ検証要求部23を備える点とである。
データ取得部112は、データ検証要求511に基づいて、移行先移行データの各要素に対応するデータである移行先データを含む移行先取得データを、移行先分散型台帳から取得する。データ検証要求511は、移行元分散型台帳と移行先分散型台帳との同一性を検証する要求である。移行先移行データは移行データ510と同様である。移行先取得データは取得データと同様である。移行先データは作成要素に対応するデータと同様である。移行先移行データは、移行データ510の少なくとも一部に対応するデータである。
データ選別部113は、移行先取得データから移行先データを選別して抽出する。
トランザクション関係データ作成部121は、移行先データのいずれに対応する補足データ503もない場合に、必要に応じて、移行先データを用いて移行先トランザクション関係データを作成してもよい。また、トランザクション関係データ作成部121は、移行先データの少なくともいずれかそれぞれに対応する補足データ503がある場合に、必要に応じて、移行先データと、移行先データの少なくともいずれかそれぞれに対応する補足データ503とを用いて移行先トランザクション関係データを作成してもよい。移行先トランザクション関係データは、トランザクション関係データの少なくとも一部である比較用関係データと対応する。比較用関係データは、これまでに移行先分散型台帳に移行した電子データに対応する。移行すべき電子データを全て移行先分散型台帳に移行した場合において、比較用関係データはトランザクション関係データである。
データ検証部16は、移行元分散型台帳と移行先分散型台帳との間の差異の有無を検証する。具体例として、データ検証部16は、管理装置2からデータ検証要求511を受信し、当該データ検証部16を備えるデータ移行装置1が移行対象とした移行元分散型台帳と移行先分散型台帳との比較を、移行元分散型台帳と移行先分散型台帳とのそれぞれのトランザクション関係データと補足データ503とを利用して実施する。データ検証部16は、台帳のトランザクション関係データと補足データ503として、それぞれ、移行順序作成部12と補足データ管理部14とが管理しているデータを利用する。データ検証部16は、移行順序作成部12と補足データ管理部14とのいずれかに必要なデータがない場合、データ抽出部11に取得要求を適宜送信し、必要なデータを台帳から取得するよう要求する。データ検証部16は、比較用関係データと移行先トランザクション関係データとを比較することにより、移行元分散型台帳と移行先分散型台帳との同一性を検証する。
データ検証要求部23は、データ移行装置1に対して、データ検証要求511を送信する。
図26は、本実施の形態に係るデータ移行システム90が備える各装置のソフトウェア構成例を示している。本実施の形態と実施の形態1との主な差分は、データ移行装置1がデータ検証部16を備える点と、管理装置2がデータ検証要求部23を備える点とである。
データ検証部16は、検証要求受付部161と、検証データ取得要求部162と、検証部163とを備える。
検証要求受付部161は、データ検証要求部23からデータ検証要求511を受け付ける。
検証データ取得要求部162は、検証要求受付部161からデータ検証要求511を受け取り、受け取ったデータ検証要求511の内容を確認する。検証データ取得要求部162は、比較対象である台帳のトランザクション関係データと関連する補足データ503との少なくともいずれかが作成されていない場合に、取得要求受付部111に要求して当該台帳を保有するノードからデータを取得し、取得したデータを用いてトランザクション関係データと関連する補足データ503との少なくともいずれかを作成する。
検証部163は、データ検証要求511が示す比較対象である各台帳を、各台帳のトランザクション関係データと関連する補足データ503を利用してデータ検証要求511が示す比較方法に従って比較することにより、各台帳が一致しているか否かを検証する。
***動作の説明***
図27は、本実施の形態に係るデータ移行システム90の動作の一例を示すフローチャートである。本図を参照してデータ移行システム90の動作を説明する。
(ステップS301:検証要求送信処理)
データ検証要求部23は、データ移行装置1にデータ検証要求511を送信する。
図28は、データ検証要求511の具体例を示している。データ検証要求511は、「比較方法」と、「データ対応関係」と、比較対象である各台帳の情報を示す「比較対象台帳情報」とを含む。また、各「比較対象台帳情報」は、「比較対象台帳ID」と、「比較対象台帳名」と、「接続ノード」と、「接続ノード資格情報」とを含む。「比較対象台帳ID」は、「移行元台帳ID」と「移行先台帳ID」との総称である。「比較対象台帳名」は、「移行元台帳名」と「移行先台帳名」との総称である。「接続ノード」は、「移行元接続ノード」と「移行先接続ノード」との総称である。「接続ノード資格情報」は、「移行元接続ノード資格情報」と「移行先接続ノード資格情報」との総称である。
「比較方法」は、比較対象である台帳を比較する方法を定めるルールを示す情報である。ルールの一例として、トランザクション関係データを比較することが挙げられる。本例は、比較対象である台帳それぞれから抽出されたトランザクションデータと、トランザクションデータ間の関連性を表すトランザクション関係データとが、それぞれ論理的に同じ内容である場合に、比較対象である台帳が一致しているとみなすルールである。
「データ対応関係」は、ある項目の値が比較対象である台帳間で異なる場合において、当該ある項目の値が表現している内容が一致しているケースを具体的にまとめたものである。具体例として、データ登録の実行者を移行先分散型台帳において変更する場合がある。この場合において、データ登録の実行者の値を利用すると「比較方法」によっては移行元分散型台帳の内容と移行先分散型台帳の内容とは一致しないと判定される。しかしながら、「データ対応関係」においてこれら実行者が対応していることを記述しておくことにより、データ検証部16は、これら実行者が一致しているとみなすことができ、故に比較対象である台帳間で内容が一致しているとみなすことができる。「データ対応関係」の具体例として、台帳1のユーザAと台帳2のユーザBとが同じユーザであることを示す情報等のユーザを表す情報、又は、実行順序を示す情報等が挙げられる。トランザクションIDも移行元分散型台帳と移行先分散型台帳との間で典型的には値が異なる情報である。トランザクションIDに関しては、データ移行時にデータ送信部133又は台帳更新監視部15等がデータ移行の前後におけるトランザクションIDの対応関係を保持してもよく、データ検証部16は保持されているトランザクションIDの対応関係を利用してもよい。
「台帳ID」は、比較対象である台帳それぞれを一意に表す識別子である。
「比較対象台帳名」は、比較対象である台帳に設定された名前である。
「接続ノード」は、台帳からデータを取得する際に接続するノードの所在を表す情報であり、「接続移行元ノード」等と同様である。
「接続ノード資格情報」は、「接続ノード」へ接続する際に認証が必要である場合に利用される情報であり、「接続移行元ノード資格情報」等と同様である。
なお、「比較対象台帳情報」の内、「比較対象台帳名」と、「接続ノード」と、「接続ノード資格情報」とについては、これらに対応する「比較対象台帳ID」が示す台帳を表すトランザクション関係データがトランザクション関係データ記録部122に保存されている場合、なくてもよい。
(ステップS302:検証要求受信処理)
検証要求受付部161は、管理装置2からデータ検証要求511を受信し、受信したデータ検証要求511を検証データ取得要求部162に送る。
(ステップS303:検証要求確認処理)
検証データ取得要求部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を送る。
(ステップS304:検証処理)
検証部163は、検証データ取得要求部162からデータ検証要求511を受け取り、比較対象である台帳を検証し始める。
具体例として、まず、検証部163は、データ検証要求511の「比較方法」を確認することにより、どのようなルールによって比較対象である台帳を比較するか確認する。次に、検証部163は、「比較方法」に従って、各比較対象である台帳に対応するトランザクション関係データと関連する補足データ503とを比較する。
図29は、データ移行装置1がトランザクション関係データとしてトランザクション関係グラフ504を利用し、かつ、検証方法がトランザクション関係グラフ504の一致である場合における、検証部163が移行元分散型台帳と移行先分散型台帳とを比較する処理の一例を示すフローチャートである。本図を参照して検証部163の動作を説明する。
(ステップS321)
検証部163は、移行元分散型台帳と移行先分散型台帳とのそれぞれのトランザクション関係グラフ504が有する「頂点集合」が含む要素に対応する頂点データ505の対応関係を整理する。
図30は、ステップS321の詳細な処理の一例を示すフローチャートである。本図を参照して、ステップS321の詳細な処理を説明する。
(ステップS341)
検証部163は、移行元分散型台帳におけるトランザクションIDと、移行先分散型台帳におけるトランザクションIDとの対応関係を示すトランザクションID対応表を作成する。
具体例として、実施の形態2の構成においては、台帳更新監視部15が、移行元トランザクションのトランザクションIDと、当該移行元トランザクションを移行先に登録した際に新たに設定されたトランザクションIDとの対応を示す情報を保管している。そのため、検証部163は、台帳更新監視部15が保管している情報を利用することによりトランザクションID対応表を作成してもよい。また、実施の形態1の構成においては、データ送信部133が、移行先分散型台帳に登録した移行先トランザクションのトランザクションIDを取得し、取得したトランザクションIDと移行元トランザクションのトランザクションIDとを対応付けた情報を保管してもよい。このとき、検証部163は、データ送信部133が保管している情報を利用することによりトランザクションID対応表を作成してもよい。
(ステップS342)
検証部163は、移行元分散型台帳に対応するトランザクション関係グラフ504の「頂点集合」が含む要素に対応する頂点データ505をリストに登録する。
(ステップS343)
検証部163は、リストから1件の頂点データ505を取得し、取得した頂点データ505をリストから削除する。
(ステップS344)
検証部163は、トランザクションID対応表を参照し、取得した頂点データ505の「トランザクションID」に対応する移行先分散型台帳のトランザクションIDを取得する。
(ステップS345)
検証部163は、取得した頂点データ505の「トランザクションID」に対応する選別済みトランザクションデータ502と、当該選別済みトランザクションデータ502に関連する補足データ503と、取得した移行先分散型台帳におけるトランザクションIDに対応する選別済みトランザクションデータ502と、当該選別済みトランザクションデータ502に関連する補足データ503とを、データ検証要求511の「比較方法」と「データ対応関係」とに従って比較する。
(ステップS346)
検証部163は、ステップS345における比較の結果、移行元トランザクションの内容と、移行元トランザクションに対応する移行先トランザクションの内容とが一致したか否かを確認する。
両者の内容が一致した場合、検証部163はステップS348に進む。それ以外の場合、検証部163はステップS347に進む。
(ステップS347)
検証部163は、比較対象である台帳の間において頂点に対応関係が成立していないことを確認したものとして、本フローチャートの処理を終了する。
(ステップS348)
検証部163は、リストが空であるか否かを確認する。
リストが空である場合、検証部163はステップS349に進む。それ以外の場合、検証部163はステップS343に戻る。
(ステップS349)
検証部163は、比較対象である台帳の間において頂点に対応関係が成立していることを確認したものとして、本フローチャートの処理を終了する。
(ステップS322)
検証部163は、ステップS321の処理の結果を受け、移行元分散型台帳と移行先分散型台帳との間で頂点に対応関係が成立しているか否かを確認する。
頂点に対応関係が成立している場合、検証部163はステップS324に進む。それ以外の場合、検証部163はステップS323に進む。
(ステップS323)
検証部163は、移行元分散型台帳と移行先分散型台帳とのそれぞれに対応するトランザクション関係グラフ504が一致していないことを通知し、本フローチャートの処理を終了する。
(ステップS324)
検証部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に対して、対応関係が成立しているか否かを整理する。
(ステップS325)
検証部163は、全ての辺データ506について、移行元分散型台帳と移行先分散型台帳との間において対応関係が成立しているか否かを確認する。
全ての辺データ506について対応関係が成立している場合、検証部163はステップS326に進む。それ以外の場合、検証部163はステップS323に進む。
(ステップS326)
検証部163は、移行元分散型台帳と移行先分散型台帳との間においてトランザクション関係グラフ504が一致していることを通知し、本フローチャートの処理を終了する。
***実施の形態3の効果の説明***
以上のように、本実施の形態によれば、データ移行装置1がデータ検証部16を備えることにより、前述の実施の形態が有する特徴を残しつつ、移行先分散型台帳における移行したデータが移行元分散型台帳における元のデータと一致しているか否かを検証することができる。
実施の形態4.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
データ抽出部11とデータ登録部13とは、分散型台帳以外にも、データストアからデータを抽出し及び移行してもよい。データストアは、分散型台帳のトランザクションデータの形式を登録することと参照することとの少なくとも一方が可能であるものとする。データストアは、移行元データストア5と移行先データストア6との総称でもある。
いずれの他の実施の形態の構成にデータストアを追加しても構わないが、説明の便宜上、以下では実施の形態1にデータストアを追加した場合における具体例を説明する。
図31は、本実施の形態に係るデータ移行システム90の構成例を示している。本実施の形態と実施の形態1との主な差分は、データ抽出部11が、移行元台帳ネットワーク3だけでなく、移行元データストア5と接続している点と、データ登録部13が、移行先台帳ネットワーク4だけでなく、移行先データストア6と接続している点とである。移行元データストア5は移行元トランザクション形式データストアとも呼ばれる。移行先データストア6は移行先トランザクション形式データストアとも呼ばれる。
図32は、本実施の形態に係るデータ移行システム90が備える各装置のハードウェア構成例を示している。本実施の形態と実施の形態1との主な差分は、データ移行システム90が移行元データストア5と移行先データストア6とを備える点である。
図33は、データ移行システム90が備える各装置のソフトウェア構成例を示している。本実施の形態と実施の形態1との主な差分は、データ移行システム90が移行元データストア5と移行先データストア6とを備える点である。
データ取得部112は、移行元データ取得要求501の「取得対象台帳ID」と「取得対象台帳名」と「接続移行元ノード」と「接続移行元ノード資格情報」との少なくともいずれか等を利用して移行元データストア5に接続することができるものとする。データ取得部112は、移行要求に基づいて、移行元分散型台帳の代わりに移行元分散型台帳が記録しているデータと同じデータを記録しているデータストアから取得データを含むデータを取得してもよい。
移行元データストア5は、トランザクション形式参照部51と、移行元データ保存部52とを備える。
トランザクション形式参照部51は、データ取得部112が送信した移行元データ取得要求501に基づくデータ取得要求を受信し、移行元データ保存部52が保存しているデータを適宜参照し、また、適宜変換し、データ取得部112に適宜参照し、また、適宜変換したデータを送信する。
移行元データ保存部52は、これまでのアプリケーションからのデータ処理リクエストに従ってデータを登録し、更新し、また、参照した記録を保持しているデータストアであり、最新のデータに加えてデータ処理リクエストに対応する実行履歴データも保持しているデータストアである。また、他にも、移行元データ保存部52は、データを登録していたアプリケーションと同等の機能を持つスマートコントラクト本体と、アプリケーションを構築しアプリケーションを移行元データ保存部52と連携した際のイベントデータと、アプリケーションのロジックを修正したイベントデータとを保存しており、トランザクション形式参照部51からの参照要求に応じて適宜呼び出されるものとする。
移行元データストア5は、中央集権的な台帳システムを採用してもよい。このとき、具体例として、トランザクション形式参照部51において移行元分散型台帳と同じスマートコントラクトが動作しており、移行元データ保存部52は動作しているスマートコントラクトに対応するトランザクションと補足データ503とを記録する。
データ送信部133は、移行データ510の「台帳名」と「接続移行先ノード」と「接続移行先ノード資格情報」との少なくともいずれか等を利用して移行先データストア6に接続することができるものとする。データ送信部133は、移行先分散型台帳の代わりにそれぞれの作成要素に対応するデータを処理することができるデータストアにそれぞれの作成要素に対応するデータを送信してもよい。
移行先データストア6は、トランザクション形式登録部61と、移行先データ保存部62とを備える。
トランザクション形式登録部61は、データ送信部133が送信した移行データ510をベースとしたデータを受信し、受信したデータを解釈し、移行先データ保存部62に登録するデータを適宜送信する。
トランザクション形式登録部61は、指定されたスマートコントラクトと同等の処理を実施することができるアプリケーションを備えているものとする。
移行先データ保存部62は、トランザクション形式登録部61からデータ登録又はデータ参照要求があったときに、データを適宜登録し、また、データを適宜参照する。
移行先データストア6は、中央集権的な台帳システムを採用してもよい。このとき、具体例として、トランザクション形式登録部61において移行先分散型台帳と同じスマートコントラクトが動作しており、移行先データ保存部62は動作しているスマートコントラクトに対応するトランザクションと補足データ503とを記録する。
***動作の説明***
以下、データ取得部112の動作と、データ送信部133の動作とについての実施の形態1との差分を主に説明する。
図34は、本実施の形態に係るデータ取得部112の動作の一例を示すフローチャートである。本図を参照してデータ取得部112の動作を説明する。
(ステップS401:データ取得要求送信処理)
データ取得部112は、移行元データ取得要求501の「接続移行元ノード」と「接続移行元ノード資格情報」とを利用し、移行元ノード31又は移行元データストア5に接続する。データ取得部112が移行元ノード31に接続する場合の処理については、実施の形態1における処理と同様であるため説明を省略する。データ取得部112が移行元データストア5に接続した場合、データ取得部112は、移行元データストア5に対して、移行元データ取得要求501の「取得対象台帳ID」と「取得対象台帳名」とを含むデータ取得要求を送信する。
(ステップS402:データ送信処理)
トランザクション形式参照部51は、データ取得部112が送信したデータ取得要求を受信し、受信したデータ取得要求が含む「取得対象台帳ID」と「取得対象台帳名」とを利用し、データ取得要求に対応する台帳に関連するトランザクション相当データと補足データ503とを移行元データ保存部52から取得する。トランザクション相当データはトランザクションに相当するデータである。トランザクション形式参照部51は、取得したデータを移行元ノード31がデータ取得部112に送信するデータ形式と同様のデータ形式に変換し、変換したデータをデータ取得部112に送信する。当該同様のデータ形式は、具体的には、データ選別部113が選別済みトランザクションデータ502と補足データ503とを作成することができる内容を示すデータである。
具体例として、移行元データ保存部52にデータを登録していたアプリケーションをスマートコントラクトとみなし、かつ、アプリケーションから移行元データ保存部52へのデータ処理リクエストを1つのトランザクションとしてみなすことにより、移行元データストア5の処理を分散型台帳の動作とほぼ同等の処理とみなすことができる。このとき、アプリケーションから移行元データ保存部52へのデータ処理リクエストに対する処理は、移行元データストア5のトランザクション機能等を利用することにより、ある1まとまりのデータ参照処理、データ登録処理、又はデータ更新処理が一貫して実行されるものであるものとする。また、分散型台帳におけるスマートコントラクトのデプロイのためのトランザクションは、アプリケーションを構築し、アプリケーションが移行元データ保存部52と連携した際のイベントデータである。分散型台帳におけるスマートコントラクトを更新するためのトランザクションは、アプリケーションのロジックを修正した際のイベントデータに相当する。
トランザクション形式参照部51がデータ取得部112に送信するデータと、選別済みトランザクションデータ502との具体的な対応関係の具体例を示す。
まず、トランザクション形式参照部51がデータ取得部112に送信するデータの内、アプリケーションの実行に関するデータと選別済みトランザクションデータ502との対応関係の例を説明する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「取得対象台帳ID」としてアプリケーションごとに割り振られた固有の値を利用し、選別済みトランザクションデータ502の「トランザクションID」としてアプリケーションから移行元データ保存部52に対するデータ処理リクエストのIDを利用する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「実行順序情報」として、アプリケーションから移行元データ保存部52へのデータ処理リクエストが示す実行順序情報を利用する。アプリケーションから移行元データ保存部52へのデータ処理リクエストの実行順序情報には、事前に、アプリケーションから移行元データ保存部52へのデータ処理リクエストのログと、アプリケーションの構築及び連携イベントと、アプリケーションの更新イベントとを確認することにより、適用順序が古いデータ処理リクエスト及びイベントから順番に番号が割り振られているものとする。トランザクション形式参照部51は、選別済みトランザクションデータ502の「種別」を「スマートコントラクト実行」と設定し、選別済みトランザクションデータ502の「実行対象」としてアプリケーションの名前を利用する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「実行処理」として、アプリケーションから移行元データ保存部52へのデータ処理リクエストを行った際のアプリケーションの内の処理名を利用する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「処理引数リスト」としてアプリケーションから移行元データ保存部52へのデータ処理リクエストを行った際に移行元データ保存部52に渡された引数データを利用する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「実行者情報」としてアプリケーションの保有者又は実行者情報を利用し、選別済みトランザクションデータ502の「実行結果」としてデータ処理リクエスト中に行ったデータストアへの参照および書込の情報を設定する。
次に、トランザクション形式参照部51がデータ取得部112に送信するデータの内、アプリケーションの構築に関するデータと、選別済みトランザクションデータ502及び補足データ503との対応関係の具体例を説明する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「取得対象台帳ID」としてアプリケーションごとに割り振られた固有の値を利用し、選別済みトランザクションデータ502の「トランザクションID」として、他のトランザクションIDと重複しないIDであって、アプリケーションを構築し移行元データ保存部52と連携した際のイベントデータのIDを設定する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「実行順序情報」としてアプリケーションを構築し移行元データ保存部52と連携した際のイベントデータの実行順序情報を利用し、選別済みトランザクションデータ502の「種別」に「スマートコントラクトデプロイ」を設定する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「実行対象」と「実行処理」と「処理引数リスト」とを、アプリケーションが利用する初期データを移行元データ保存部52に登録した際等に、アプリケーションの実行に関するデータと選別済みトランザクションデータ502との対応関係において説明した処理と同様に適宜設定する。具体的には、トランザクション形式参照部51は、「実行対象」としてアプリケーションの名前を利用し、「実行処理」としてアプリケーションを構築して移行元データ保存部52と連携した際のイベントデータ又はアプリケーションのロジックを修正したイベントデータのイベント名等を利用し、「処理引数リスト」としてアプリケーションを構築して移行元データ保存部52と連携した際のイベントデータ又はアプリケーションのロジックを修正したイベントデータの本体等を利用する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「実行者情報」としてアプリケーションの保有者又はアプリケーション構築の実行者を示す情報を利用し、選別済みトランザクションデータ502の「実行結果」として、初期データ登録等を行った際の移行元データストア5への参照及び書込の情報を適宜設定する。トランザクション形式参照部51は、選別済みトランザクションデータ502に関連する補足データ503について、「補足データID」に他の補足データIDと重複しないような値を設定し、「取得対象台帳ID」と「トランザクションID」とに関連する選別済みトランザクションデータ502に設定した取得対象台帳IDとトランザクションIDとそれぞれ同じ値を設定し、「データ種別」に「スマートコントラクト」と設定し、「データ」に移行元データ保存部52が保存している、データを登録していたアプリケーションと同等の機能を持つスマートコントラクトの本体を設定する。
次に、トランザクション形式参照部51がデータ取得部112に送信するデータの内、アプリケーションの更新に関するデータと、選別済みトランザクションデータ502及び補足データ503との対応関係の具体例を説明する。この対応関係は、アプリケーションの構築に関するデータと選別済みトランザクションデータ502及び補足データ503の対応関係と類似しているため、当該対応関係と異なる点についてのみ説明する。
トランザクション形式参照部51は、選別済みトランザクションデータ502の「種別」を「スマートコントラクト更新」と設定し、選別済みトランザクションデータ502の「実行対象」と「実行処理」と「処理引数リスト」とを、アプリケーションの更新により既存データの変換が必要な場合等に、アプリケーションの実行に関するデータと選別済みトランザクションデータ502との対応関係において説明した処理と同様に適宜設定する。トランザクション形式参照部51は、選別済みトランザクションデータ502の「実行結果」に、アプリケーション更新による既存データの変換等を行った際に、移行元データストア5への参照及び書込を示す情報を適宜設定する。
以上の処理により、トランザクション形式参照部51は、一般的なアプリケーションと移行元データストア5の実行記録とを移行元ノード31と同様のデータ形式に変換することができる。
トランザクション形式参照部51は、移行元ノード31と同様のデータ形式に変換したデータを、データ取得部112に送信する。
図35は、本実施の形態に係るデータ送信部133の動作の一例を示すフローチャートである。本図を参照してデータ送信部133の動作を説明する。
(ステップS421:データ送信処理)
データ送信部133は、データ作成部132が作成した移行データ510を受け取り、受け取った移行データ510の「接続移行先ノード」と「接続移行先ノード資格情報」とを利用し、適宜、移行先ノード41又は移行先データストア6に接続する。データ送信部133が移行先ノード41に接続する場合の処理については実施の形態1における処理と同様であるため説明を省略する。データ送信部133が移行先データストア6に接続する場合、データ送信部133は移行データ510をベースとしたデータを移行先データストア6に送信する。
(ステップS422:実行処理)
トランザクション形式登録部61は、データ送信部133からデータを受信し、受信したデータが含む処理を適宜実施し、処理の結果を移行先データ保存部62に記録する。ここでは、データ送信部133から、移行データ510の「頂点データリスト」と、「頂点データリスト」が含む要素に対応する各頂点データ505と、各頂点データ505に対応する選別済みトランザクションデータ502と、選別済みトランザクションデータ502に関連する補足データ503とが送信されたものと仮定して説明する。
具体例として、まず、「頂点データリスト」が含むある要素に対応する頂点データ505に対応する選別済みトランザクションデータ502の「種別」が「スマートコントラクトデプロイ」又は「スマートコントラクト更新」である場合を考える。この場合において、トランザクション形式登録部61は、当該選別済みトランザクションデータ502に関連する補足データ503のスマートコントラクト本体を取得し、取得したスマートコントラクト本体と同等の処理が可能なアプリケーションを作成し、作成したアプリケーションの構築又は更新記録を移行先データ保存部62に登録する。次に、頂点データリストが含むある要素に対応する頂点データ505に対応する選別済みトランザクションデータ502の「種別」が「スマートコントラクト実行」である場合を考える。この場合において、トランザクション形式登録部61は、選別済みトランザクションデータ502の内容に従って、「実行対象」において指定されているスマートコントラクトと同等の処理を実行することができるアプリケーションを実行し、アプリケーションを実行した際の処理結果を移行先データ保存部62に記録する。また、トランザクション形式登録部61において分散型台帳と同じスマートコントラクトを動作させることができる場合において、トランザクション形式登録部61は、スマートコントラクト本体をアプリケーションに変換せず、スマートコントラクト本体をそのまま利用してもよい。
***実施の形態4の効果の説明***
以上のように、本実施の形態によれば、分散型台帳以外にも、分散型台帳のトランザクションデータの形式を登録することと参照することとの少なくともいずれかが可能であるデータストアを対象として、データを抽出することと移行することとの少なくともいずれかが可能である。また、本実施の形態によれば、1つのデータ移行装置1により1つ以上の分散型台帳及びデータストアから抽出したデータを、1つ以上の別の分散型台帳及びデータストアに比較的簡単にデータを移行することができる。
また、本実施の形態は、1つ以上の分散型台帳及びデータストアをトランザクション関係データとして表現し、当該トランザクション関係データに対応するデータを1つ以上の別の分散型台帳及びデータストアに移行することができる特徴を持つ。本特徴により、分散型台帳をデータ基盤として使用するシステムと、データストアをデータ基盤として使用するシステムとを統合する際に、データ移行作業の担当者が1つのツールを用いて比較的簡単にデータを移行することができる。従って、本実施の形態によれば、データを移行する作業に係る人的負荷を軽減することができる。
***他の実施の形態***
前述した各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
また、実施の形態は、実施の形態1から4で示したものに限定されるものではなく、必要に応じて種々の変更が可能である。フローチャート等を用いて説明した手順は、適宜変更されてもよい。
1 データ移行装置、11 データ抽出部、111 取得要求受付部、112 データ取得部、113 データ選別部、12 移行順序作成部、121 トランザクション関係データ作成部、122 トランザクション関係データ記録部、13 データ登録部、131 登録要求受付部、132 データ作成部、133 データ送信部、14 補足データ管理部、141 補足データ受付部、142 補足データ記録部、15 台帳更新監視部、16 データ検証部、161 検証要求受付部、162 検証データ取得要求部、163 検証部、2 管理装置、21 移行要求部、211 取得要求部、212 登録要求部、22 補足データ登録要求部、23 データ検証要求部、3 移行元台帳ネットワーク、31 移行元ノード、4 移行先台帳ネットワーク、41 移行先ノード、5 移行元データストア、51 トランザクション形式参照部、52 移行元データ保存部、6 移行先データストア、61 トランザクション形式登録部、62 移行先データ保存部、501 移行元データ取得要求、502 選別済みトランザクションデータ、503 補足データ、504 トランザクション関係グラフ、505 頂点データ、506 辺データ、507 主キー更新履歴表、508 スマートコントラクト更新履歴表、509,509b 移行先データ登録要求、510 移行データ、511 データ検証要求、10 コンピュータ、81 プロセッサ、82 メモリ、83 通信インタフェース、84 補助記憶装置、88 処理回路、90 データ移行システム。

Claims (9)

  1. 移行元分散型台帳から移行先分散型台帳に電子データを移行する移行要求に基づいて、前記移行元分散型台帳から複数のトランザクションデータと前記複数のトランザクションデータの各々に対応する実行順序情報とを取得するデータ取得部と、
    取得された複数のトランザクションデータから複数の選別済みトランザクションデータを選別して抽出するデータ選別部と、
    前記複数の選別済みトランザクションデータと、前記複数のトランザクションデータの各々に対応する実行順序情報とに基づいて、トランザクション関係グラフを、前記複数の選別済みトランザクションデータの移行順序を規定するデータとして作成する移行順序作成部と
    を備えるデータ移行装置。
  2. 前記トランザクション関係グラフの各頂点は、前記複数の選別済みトランザクションデータの各々に対応し、
    前記移行順序作成部は、前記複数の選別済みトランザクションデータの少なくとも1つ
    に1対1で対応する少なくとも1つのデータであって、前記複数の選別済みトランザクションデータの少なくとも1つそれぞれを前記移行先分散型台帳に移行することを補助するデータである補足データがある場合に、前記複数の選別済みトランザクションデータの少なくとも1つの各々と、前記複数の選別済みトランザクションデータの少なくとも1つの各々に対応する各補足データと、前記複数の選別済みトランザクションデータの少なくとも1つの各々に対応する実行順序情報とに基づいて、前記トランザクション関係グラフの頂点のうち前記複数の選別済みトランザクションデータの少なくとも1つの各々に対応する各頂点を作成する請求項1に記載のデータ移行装置。
  3. 前記データ移行装置は、さらに、
    前記複数の選別済みトランザクションデータの各々を用いて、前記移行先分散型台帳におけるトランザクションデータの形式に従って前記複数の選別済みトランザクションデータの各々に対応する各トランザクションデータを作成するデータ作成部と、
    作成された各トランザクションデータを、前記移行順序を規定するデータに基づいて前記移行先分散型台帳に送信するデータ送信部と
    を備える請求項1又は2に記載のデータ移行装置。
  4. 前記データ移行装置と同じ機能を有する他のデータ移行装置を備えるデータ移行システムが前記データ移行装置を備え、
    前記データ移行装置は、さらに、
    前記移行先分散型台帳が前記他のデータ移行装置から受信して前記移行先分散型台帳に登録したデータを示す他装置登録情報を取得する台帳更新監視部を備え、
    前記データ作成部は、前記電子データを移行している途中において、前記移行先分散型台帳が前記データ送信部から受信して前記移行先分散型台帳に登録したデータと、前記他装置登録情報とに基づいて、前記複数の選別済みトランザクションデータのいずれかに対応する各トランザクションデータを作成し、
    前記データ送信部は、作成された各トランザクションデータを前記他装置登録情報に基づいて前記移行先分散型台帳に送信し、前記データ送信部が各トランザクションデータを前記移行先分散型台帳に送信することによって前記移行先分散型台帳が登録したデータを示す情報を前記他のデータ移行装置に送信する請求項3に記載のデータ移行装置。
  5. 前記電子データの少なくとも一部を前記移行先分散型台帳に移行した後において、
    前記データ取得部は、前記移行元分散型台帳と前記移行先分散型台帳との同一性を検証する要求であるデータ検証要求に基づいて、取得された複数のトランザクションデータの少なくとも一部に対応するデータである移行先移行データの各要素に対応するデータである移行先データを含む移行先取得データを前記移行先分散型台帳から取得し、
    前記データ選別部は、前記移行先取得データから前記移行先データを選別して抽出し、
    前記移行順序作成部は、
    前記移行先データのいずれに対応する補足データもない場合に、前記移行先データを用いてトランザクション関係グラフである移行先トランザクション関係データを作成し、
    前記移行先データの少なくともいずれかそれぞれに対応する補足データがある場合に、前記移行先データと、前記移行先データの少なくともいずれかそれぞれに対応する補足データとを用いてトランザクション関係グラフである移行先トランザクション関係データを作成し、
    作成された移行先トランザクション関係データは、前記移行順序を規定するデータの少なくとも一部である比較用関係データと対応し、
    前記データ移行装置は、さらに、
    前記比較用関係データと作成された移行先トランザクション関係データとを比較することにより、前記移行元分散型台帳と前記移行先分散型台帳との同一性を検証するデータ検証部を備える請求項3又は4に記載のデータ移行装置。
  6. 前記データ取得部は、前記移行要求に基づいて、前記移行元分散型台帳の代わりに前記移行元分散型台帳が記録しているデータと同じデータを記録しているデータストアから複数のトランザクションデータを取得する請求項3から5のいずれか1項に記載のデータ移行装置。
  7. 前記データ送信部は、前記複数の選別済みトランザクションデータを処理することができ、前記移行先分散型台帳と同じスマートコントラクトが動作しているデータストアにそれぞれの前記複数の選別済みトランザクションデータを送信する請求項3から6のいずれか1項に記載のデータ移行装置。
  8. データ取得部が、移行元分散型台帳から移行先分散型台帳に電子データを移行する移行要求に基づいて、前記移行元分散型台帳から複数のトランザクションデータと前記複数のトランザクションデータの各々に対応する実行順序情報とを取得し、
    データ選別部が、取得された複数のトランザクションデータから複数の選別済みトランザクションデータを選別して抽出し、
    移行順序作成部が、前記複数の選別済みトランザクションデータと、前記複数のトランザクションデータの各々に対応する実行順序情報とに基づいて、トランザクション関係グラフを、前記複数の選別済みトランザクションデータの移行順序を規定するデータとして作成するデータ移行方法。
  9. 移行元分散型台帳から移行先分散型台帳に電子データを移行する移行要求に基づいて、前記移行元分散型台帳から複数のトランザクションデータと前記複数のトランザクションデータの各々に対応する実行順序情報とを取得するデータ取得処理と、
    取得された複数のトランザクションデータから複数の選別済みトランザクションデータを選別して抽出するデータ選別処理と、
    前記複数の選別済みトランザクションデータと、前記複数のトランザクションデータの各々に対応する実行順序情報とに基づいて、トランザクション関係グラフを、前記複数の選別済みトランザクションデータの移行順序を規定するデータとして作成する移行順序作成処理と
    をコンピュータであるデータ移行装置に実行させるデータ移行プログラム。
JP2022572731A 2021-02-03 2021-02-03 データ移行装置、データ移行方法、及び、データ移行プログラム Active JP7527404B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020042671A (ja) 2018-09-12 2020-03-19 富士通株式会社 取引管理装置、取引管理方法および取引管理プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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