JP7254585B2 - システム間連携方法およびノード - Google Patents

システム間連携方法およびノード Download PDF

Info

Publication number
JP7254585B2
JP7254585B2 JP2019063114A JP2019063114A JP7254585B2 JP 7254585 B2 JP7254585 B2 JP 7254585B2 JP 2019063114 A JP2019063114 A JP 2019063114A JP 2019063114 A JP2019063114 A JP 2019063114A JP 7254585 B2 JP7254585 B2 JP 7254585B2
Authority
JP
Japan
Prior art keywords
node
information
processing
distributed ledger
call
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
JP2019063114A
Other languages
English (en)
Other versions
JP2020161092A (ja
JP2020161092A5 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019063114A priority Critical patent/JP7254585B2/ja
Priority to US16/576,313 priority patent/US11627122B2/en
Publication of JP2020161092A publication Critical patent/JP2020161092A/ja
Publication of JP2020161092A5 publication Critical patent/JP2020161092A5/ja
Application granted granted Critical
Publication of JP7254585B2 publication Critical patent/JP7254585B2/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、システム間連携方法およびノードに関するものである。
従来、金融機関や政府などの信頼できる中央集権機関を経由して実施されてきた取引を、利用者間のP2P(Peer to Peer)による直接的な取引で代替する技術が登場した。すなわち、ブロックチェーン(以下、BCとも称する)を用いた分散台帳技術である。
分散台帳技術の主な特徴としては、(1)分散台帳システムへの参加者間の取引において、中央集権機関ではなく(任意ないしは特定の)参加者による合意形成や承認によって取引を確定させること、(2)複数のトランザクションをブロックとしてまとめ、数珠つなぎにブロックチェーンと呼ばれる分散台帳に記録し、連続するブロックにハッシュ計算を施すことにより、改ざんを実質不可能にすること、(3)参加者全員が同一の台帳データを共有することにより、参加者全員での取引の確認を可能とすること、といったものが挙げられる。
また、当該分散台帳技術の応用例として、スマートコントラクト(以下、SCとも称する)も提案されている。このSCは、複雑な取引条件や多様なアプリケーションにも分散台帳技術を適用可能とするもので、取引データだけでなく取引条件を記載したロジックとなる。
上述のSCに関する従来技術としては、SCの実行機能を有する分散台帳基盤に関する技術(非特許文献1および非特許文献2参照)が提案されている。
また、いわゆるコンソーシアム型の分散台帳基盤も提案されている。この分散台帳基盤は、特定業界のコンソーシアムやサプライチェーンに関係する複数企業など、特定の複数または一つの団体、人により許可されたコンピュータのみが取引の承認者となるものである。こうしたコンソーシアム型の分散台帳基盤では、承認者を選ぶ管理主体が存在するため、取引承認のスピードを早められるメリットがある。
こうして進展してきた各種の分散台帳基盤では、ノード間で所定の合意水準で合意形成しながらトランザクション(以下、TXとも称する)を受け入れて、各ノードでTXを実行し、当該TXの実行結果を保持することにより、複数ノード上で情報(台帳)を共有することとなる。また、上述のTXに対して予め決めたロジックを実行するSC実行機能を備えている。
一方、BC技術の適用が、異なる業種や異なる利用シーンで進むことも想定されている。その場合、現実世界の商取引を写像するために、複数のBCシステム、またはBCシステムとBC以外のシステム間で取引を連携動作させる必要が生じる。
そこで、そうした連携動作の実現に関する技術(非特許文献3および非特許文献4参照)も提案されている。例えば、非特許文献3の技術においては、BCシステムとは別に、連携用システムを構築する。そしてこの連携用システムが、BC内の状態変化を監視し、状態変化が起きた場合、BCシステム外のシステムに対して、状態変化に応じた処理を実行する。また、非特許文献4の技術においては、BCシステム同士の連携のために、連携用BCを別途用意し、アプリからのアクセスを全て連携用BC経由とすることで連携を実現している。
"Ethereum White Paper", [online]、[平成30年12月27日検索]、インターネット<URL:https://github.com/ethereum/wiki/wiki/White-Paper> "Hyperledger Fabric", [online]、[平成30年12月27日検索]、インターネット<URL:http://hyperledger-fabric.readthedocs.io/en/latest/> "Oracrize Documentation"、[平成30年12月27日検索]、インターネット<URL:https://docs.oraclize.it/> "Proposal of secure interwork between blockchains"、Symposium on Cryptography and Information Security 2018
例えば、非特許文献3の技術においては、連携する各BCとは別に連携用システムを設けることで連携を実現可能としている。しかしながら、連携に伴う処理は、BCを用いていない当該連携用システムで実行される。そのため処理の透明性を確保できない。
一方、非特許文献4の技術においては、連携に伴う処理を連携用BCのSCで記述することで、処理の透明性確保が可能としている。ただし、連携用BCの情報を参照し、連携する各BCを呼び出すためのノードが、BCシステム外に必要となる。そのため当該ノードが単一信頼点かつ単一障害点となってしまい、システム全体としてBCを活用する価値が低下する。
他方、複数のBCシステム、またはBCシステムとBC以外のシステム間での連携処理も含めた一連の処理の透明性を確保し、かつシステムにおける単一信頼点、障害点を作らないためには、連携する各システムに存在する複数組織のノード同士で連携する方法が考えられる。
しかし、呼出し元がBCシステムである場合、BCシステムにおける各ノードでは、SCの持つ相互検証性により同一の処理が実行される。そのため、呼出し元BCの各ノードからのリクエストにより、呼出し先システムで重複した処理が実行され、誤った処理結果になるケースがある。また、正しい処理結果を得られたとしても、実行意味のない冗長な処理が発生しうる。
そこで本発明の目的は、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、効率的で適宜なBC間連携処理を実現可能とする技術を提供することにある。
上記課題を解決する本発明のシステム間連携方法は、複数の分散台帳システム各々を構成するノードが、他の分散台帳システム上のプログラムからの呼び出し処理に関して、当該呼び出し処理の識別情報と同一の識別情報を有する呼び出し処理たる重複処理の情報が、分散台帳システム間の連携に係る呼び出し処理の管理用情報に存在する判定する処理と、前記判定の結果、前記重複処理の情報が存在しなかった場合、当該呼び出し処理の情報を前記管理用情報において実行中として登録した上で当該呼び出し処理を実行する処理と、前記判定の結果、前記重複処理の情報の存在が判明した場合、前記同一の識別情報を有する各呼出処理に関するステータスを確認する処理と、前記確認の結果、前記各呼び出し処理のうち、そのステータスが処理完了を示すものが存在しなかった場合、前記呼び出し処理が実行中かつ未完と判断して、ステータスが処理完了を示すものが存在するようになるまで当該呼び出し処理を待機状態とすることで、前記呼び出し処理の重複排除を実行する、ことを特徴とする。
また、本発明のノードは、複数の分散台帳システム各々を構成するノードであって、他の分散台帳システム上のプログラムからの呼び出し処理に関して、当該呼び出し処理の識別情報と同一の識別情報を有する呼び出し処理たる重複処理の情報が、分散台帳システム間の連携に係る呼び出し処理の管理用情報に存在する判定する処理と、前記判定の結果、前記重複処理の情報が存在しなかった場合、当該呼び出し処理の情報を前記管理用情報において実行中として登録した上で当該呼び出し処理を実行する処理と、前記判定の結果、前記重複処理の情報の存在が判明した場合、前記同一の識別情報を有する各呼出処理に関するステータスを確認する処理と、前記確認の結果、前記各呼び出し処理のうち、そのステータスが処理完了を示すものが存在しなかった場合、前記呼び出し処理が実行中かつ未完と判断して、ステータスが処理完了を示すものが存在するようになるまで当該呼び出し処理を待機状態とすることで、前記呼び出し処理の重複排除を実行する演算装置を備える、ことを特徴とする。
本発明によれば、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、効率的で適宜なBC間連携処理が実現可能となる。
実施例1による計算機システムの概略を説明するための図である。 実施例1に係る計算機システムの論理的な構成概念を示した図である。 実施例1に係る計算機システムの一例の構成図である。 実施例1に係るリクエスト管理テーブルの一例を示す図である。 実施例1に係るTX実行処理のフローチャートである。 実施例1に係るノード毎に実施される重複リクエストのプロキシ処理のフローチャートである。 実施例1に係るイベント通知による更新処理のフローチャートである。 実施例2に係るリクエスト管理テーブルの一例を示す図である。 実施例2に係るノード跨りで実施される重複リクエストのプロキシ処理のフローチャートである。 実施例2に係る、ノード跨りで実施されるリクエスト管理テーブルの更新処理のフローチャートである。 実施例3に係るリクエスト管理テーブルの一例を示す図である。 実施例3に係るプロキシ処理のフローチャートである。
幾つかの実施例を、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。これらの図面において、複数の図を通じて同一の符号は同一の構成要素を示している。
なお、以後の説明では「aaaテーブル」等の表現にて本発明の情報を説明するが、これら情報はテーブル等のデータ構造以外で表現されていてもよい。
そのため、データ構造に依存しないことを示すために「aaaテーブル」等について「aaa情報」と呼ぶことがある。
さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名称」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信デバイス、管理I/F、データI/F)を用いながら行うため、プロセッサを主語とした説明としてもよい。
また、プログラムを主語として開示された処理は管理サーバ(管理計算機)等の計算機、情報処理装置が行う処理としてもよい。
また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。
また、各種プログラムは、ハイパーバイザ型もしくはコンテナ型といった仮想化環境上で実行されてもよい。
以後、計算機システムを管理し、本発明の表示用情報を表示する一つ以上の計算機の集合を管理システムと呼ぶことがある。
管理サーバが表示用情報を表示する場合は管理サーバが管理システムである。また、管理サーバと表示用計算機との組み合わせも管理システムである。
また、管理処理の高速化や高信頼化のために複数の計算機で管理サーバと同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムである。
---実施例1---
<システム構成>
本実施例に係る計算機システムについて説明する。図1は、実施例1による計算機システムの概略を説明するための図である。
ここで例示する計算機システム1は、複数の分散台帳システムすなわちブロックチェーンシステム1、2から構成されている。また、それぞれのブロックチェーンシステム1、2には、クライアントノード2000がアクセス可能に接続されている。
こうした計算機システム1においては、クライアントノード2000がTXを発行し、このTXの相互検証のためにブロックチェーンシステム1の各分散台帳ノード1000がTX実行要求を受け付け、ブロックチェーンシステム2の分散台帳ノード1000にそれぞれ処理要求を出すにあたり、重複する処理要求のフィルタリングをプロキシSC1220が行った上で、当該処理の実行を業務SC1210にリクエストする。このことで、不正な処理や冗長な処理の実行を防ぐ。なお、上述のTXは、本発明における「呼び出し処理」に該当し、また以後は処理要求と称する(以下同様)。
この際、プロキシSC1220は、リクエスト管理テーブル1130を用いて処理要求の実行状況を管理する。実施例1では、リクエスト管理テーブル1130は、分散台帳ノード1000それぞれで管理される。
一方、後述する実施例2では、リクエスト管理テーブル1130は分散台帳ノード1000を跨って共有管理される。他方、後述する実施例3では、処理要求の内容により、分散台帳ノード1000それぞれでのリクエスト管理テーブル1130の管理と、分散台帳ノード1000を跨ったリクエスト管理テーブル1130の共有管理とを使い分ける。
図2は、実施例1に係る計算機システム1の論理的な構成概念を示した図である。ブロックチェーンシステム間連携において、連携する各ブロックチェーンシステム1、2は、複数組織の持つ複数の分散台帳ノード1000から構成される。
各ブロックチェーンシステム1、2の各参加組織の各分散台帳ノード1000同士、所定の合意水準で合意形成しながらTXを実行し、当該TXの実行結果を保持することにより、情報(台帳)を共有することとなる。また、上述のTXに対してSCとして予め決めたロジックを実行する。
図2に示す例では、ブロックチェーンシステム1に参加する組織は、組織1、2、3、4、ブロックチェーンシステム2に参加する組織は、組織1、2、5と、連携するそれぞれのブロックチェーンシステムに参加する組織が一部重複する例を示している。しかしながら、この形態例に限らず、各ブロックチェーンシステムの間で完全に参加組織が一致していても、或いは完全に異なっていても良い。
また、組織毎に、分散台帳ノード1000以外にクライアントノード2000、及びメ
ンバ管理ノード3000を保有している例を示している。しかしながら、複数組織を跨ってクライアントノード2000、及びメンバ管理ノード3000を共有しても良く、図2の例示した形態に限定されない。
図3は、実施例1に係る計算機システム1の構成例を示す図である。本実施例に係る計算機システム1は、一台以上の分散台帳ノード1000、一台以上のクライアントノード2000、一台以上のメンバ管理ノード3000を備える。
なお、各ノードは、ネットワーク10に接続され互いに接続可能となっている。ネットワーク10はIP(Internet Protocol)等、どのようなネットワークでも良い。
また、分散台帳ノード1000は通常複数存在し、コンソーシアムを構成する主体(例えば、複数の事業者、複数の組織、複数のベンダ)によってそれぞれ運営、管理されることを想定する。
こうした分散台帳ノード1000は、メモリ1100、通信デバイス1300、プロセッサ1400、出力デバイス1500、入力デバイス1600、および記憶デバイス1700を備えている。これらは分散台帳ノード1000内の内部バス1800を介して互いに接続される。
このうちメモリ1100には、ブロックチェーン1110、共有情報管理テーブル1120、リクエスト管理テーブル1130、構成・性能管理テーブル1140、業務スマートコントラクト1210、プロキシスマートコントラクト1220、トランザクション発行部1230、トランザクション管理部1240、コンセンサス管理部1250、およびスマートコントラクト実行・管理部1260(以後、SC実行・管理部1260)が格納される。
また、通信デバイス1300は、分散台帳ノード1000をネットワーク10に接続するためのネットワークインターフェイスカード等の適宜なデバイスである。分散台帳ノード1000は、通信デバイス1300を利用し、ネットワーク10を通して、クライアントノード2000上で動作するプログラム、及びメンバ管理ノード3000上で動作するプログラムと通信できる。
また、プロセッサ1400は、メモリ1100上に展開されている各種プログラムを実行する演算装置である。
また、出力デバイス1500は、分散台帳ノード1000が実行した処理結果を出力するデバイスであり、例えばディスプレイ等である。
また、入力デバイス1600は、ブロックチェーンシステム管理者やブロックチェーンシステム利用者が分散台帳ノード1000に指示を入力するためのデバイスであり、例えばキーボード等である。
また、記憶デバイス1700は、情報を格納するHDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等の記憶媒体である。
分散台帳ノード1000は、SC実行/管理部1260の機能を介して、SCのデプロイを実施した上で、トランザクション管理部1240の機能によりネットワーク10を介してTXを受け付けて、コンセンサス管理部1250の機能によって、他のノードとの間で当該TXを受け入れてよいかの合意形成を行う。
また、分散台帳ノード1000は、合意形成がなされたらSC実行/管理部1260の機能を介して、デプロイ済みのSCに対する実行を行い、当該TXの履歴をブロックチェーン1110に、その実行結果に基づくステート情報を共有情報管理テーブル1120に記録する。
本実施例におけるSCは、業務スマートコントラクト1210とプロキシスマートコントラクト1220の二つである。
このうち業務スマートコントラクト1210は、業務システム毎にビジネスロジックを実装するプログラムである。
また、プロキシスマートコントラクトは、ブロックチェーンシステム間連携処理を実装するプログラムである。
また、トランザクション管理部1240は、クライアントノード2000等の各ノードからの要求に対して、TXを受け付けたり、TXの履歴情報の取得・閲覧の機能/インタフェースを提供する。
本実施例では、分散台帳ノード1000もTX発行可能であることとし、この場合、トランザクション発行部1230を介して各種TXを発行する。
なお、各種の業務に関するスマートコントラクト1210、及びプロキシスマートコントラクト1220の情報も、ブロックチェーン1110、及び共有情報管理テーブル1120において格納、管理される。
一方、クライアントノード2000は、業務プログラム2210により実現される業務の関係者によって利用されることを想定する。
図3で例示するクライアントノード2000は、メモリ2100、通信デバイス1300、プロセッサ1400、出力デバイス1500、入力デバイス1600、および記憶デバイス1700を備えている。これらはクライアントノード1000内の内部バス1800を介して互いに接続される。
このうちメモリ2100には、業務情報管理テーブル2110、業務プログラム2210、構成・性能情報収集プログラム2220、およびトランザクション発行部2230が格納される。
業務プログラム2210は、ユーザからの業務に関する情報の入力を受け、業務情報管理テーブル2110に当該情報を蓄積する。加えて、業務プログラム2210は、トランザクション発行部2230を介して、当該情報を含むTXを発行し、当該TXを分散台帳ノード1000に対して送信する。
なお、業務プログラム2210は、上述のTXに発行者情報を付与するものとする。この発行者情報は、メンバ管理ノード3000より予め付与されたメンバIDとメンバ管理ノード3000によってメンバ毎に発行された認証情報(秘密鍵)とを含めるものとする。
また、構成・性能情報収集プログラム2220は、分散台帳ノード1000、クライアントノード2000、分散台帳ノード1000、およびメンバ管理ノード3000の構成情報、性能情報等を収集するためのプログラムである。
その他のクライアントノードの構成要素については、分散台帳ノード1000と同様であるため説明を省略する。
一方、メンバ管理ノード3000は、ブロックチェーンシステム1、2への参加者に対して認証情報(秘密鍵)を発行する役割を担う。
このメンバ管理ノード3000は、メモリ3100、通信デバイス1300、プロセッサ1400、出力デバイス1500、入力デバイス1600、および記憶デバイス1700を備えている。これらはメンバ管理ノード1000内の内部バス1800を介して互いに接続される。
上述のメモリ3100には、メンバ管理テーブル3110、メンバ管理プログラム3210が格納される。
このうちメンバ管理プログラム3210は、コンソーシアムに参加するメンバの認証情報の新規発行やTX実行時の認証機能を提供する。
メンバ管理プログラム3210では、秘密鍵と公開鍵のペアを用いて、参加メンバの認証やTXへの署名、SC実行権限の制御等を行うことを想定する。
こうしたメンバ管理に関する秘密鍵や公開鍵などの鍵情報は、メンバ・アクセス権管理テーブル3110に格納、管理される。
ここで、上述の分散台帳ノード1000におけるトランザクション管理部1240は、TXを受け付けた際に、メンバ管理ノード3000におけるメンバ管理プログラム3210の機能を介して、TXの発行者が権限を持った正しい参加者かどうかを確認することとなる。
その他のメンバ管理ノードの構成要素については、分散台帳ノード1000と同様であるため説明を省略する。
なお、図3に示す例では、分散台帳ノード1000、クライアントノード2000、およびメンバ管理ノード3000のいずれも、各種プログラム及びテーブルは、メモリに格納されているが、記憶デバイス1700または他の記憶媒体(図示しない)に格納されても良い。
この場合、プロセッサ1400は、プログラム実行時にメモリ上に対象のプログラムを読みだし、読みだしたプログラムを実行する。
続いて図4は、実施例1に係るリクエスト管理テーブル1130の一例を示す図である。リクエスト管理テーブル1130には、プロキシSC1220により格納された、連携に係る処理要求の情報が格納される。
一例として、リクエスト管理テーブル1130には、RequestID 1131、
Request NodeID 1132、Request Content1133、S
tatus 1134、Result 1135のフィールドがある。
このうちRequestID 1131には、別のブロックチェーンシステムから送信
された処理要求を一意に識別するための識別子が格納される。
また、Request NodeID 1132には、処理要求を送信してきた別のブロックチェーンシステムにおける分散台帳ノード1000を一意に識別するための識別子が格納される。また、Request Content 1133には、処理要求の内容が格納される。
また、Status 1134には、処理実行状態が格納される。図4の具体例では、
処理が完了していればStatus 1134に"Fin"が格納され、処理が実行中であ
れば"Processing"が格納され、処理が待機状態であれば"Waiting"が格納される例を示している。ただし、こうした格納値に限定されない。
また、Result 1135には、処理要求に対する処理の実行結果が格納される。
図4では具体例として、処理が成功していれば"Success"と格納され、処理が完了
していない場合は"-"と格納される例を示しており、加えて、処理が失敗していれば"Failed"の実行結果の情報が格納されることを想定しているが、これに限定されない。
なお、本発明におけるリクエスト管理情報の形態は、ここで例示したリクエスト管理テーブル1130に限定されることは無い。
例えば、連携に係る処理要求を識別可能な情報が格納されていれば良い。例えば、クライアントノード2000が発行したトランザクションIDの情報や、処理要求を送信してきた別のブロックチェーンシステムを識別するための識別情報や、処理要求を送信してきた別のブロックチェーンシステムの種別情報、処理結果の詳細な内容、たとえばエラーコードやエラー内容等が格納されても良い。
<フロー例1>
続いて図5は、実施例1に係る計算機システム1におけるTX実行処理のフローチャートである。本処理4000は、分散台帳ノード1000が、クライアントノード2000におけるTX発行部2230が業務プログラム2210の指示により発行したTXを受信することにより開始する(ステップ4001)。
そして、分散台帳ノード1000は、TX内の処理単位毎に、当該分散台帳ノード1000が属するブロックチェーンシステムへの処理か、あるいは別のブロックチェーンシステムに対する処理かを判定する(ステップ4002)。
この判定処理自体は、TX管理部1240で判定するものとし、発行されるTXそのものにいずれのブロックチェーンシステムに対する処理かについての情報が入っていることを想定している。
上述の判定の結果、当該分散台帳ノード1000が属するブロックチェーンシステムへの処理の場合(ステップ4002:Yes)、SC実行・管理部1260が、業務スマートコントラクト1210を実行し、発行されたTXの処理内容に応じて、ブロックチェーン1110及び共有情報管理テーブル1120を更新する(ステップ4003)。
一方、上述の判定の結果、別のブロックチェーンシステムに対する処理の場合(ステップ4002:No)、分散台帳ノード1000は、連携処理を実行する(ステップ5000)。
例えば、ブロックチェーンシステム1に「ReqestID1:Write("XYZ
Owner",B(tentative))」、BCシステム2に「ReqestID2:Write("A", Read("A")+100);Write("B", Read("
B")―100)」、BCシステム1に「ReqestID3:Write("XYZ O
wner",B)」という3つの処理を実行するTXが発行された場合は、TX実行処理4000において、ステップ4003、ステップ5000、ステップ4003の順に処理が実行された後、TX実行処理完了となる。
ここで、連携処理5000としてブロックチェーンシステムを呼び出す際には、処理要求にアクセスのための認証情報を付属させた上で実行する。
例えば、認証情報として、呼び出す側のブロックチェーンシステムの分散台帳ノード1000の情報を、呼び出される側のブロックチェーンシステムのメンバ管理ノード3000にあらかじめ登録しておくことで、当該分散台帳ノード用の秘密鍵・公開鍵情報を発行しておき、TX実行時には、呼び出す側で、当該秘密鍵情報を認証情報として付属させてリクエストを行うことで、呼び出される側のブロックチェーンシステムのメンバ管理ノード3000からTXの実行許可を得ることが可能となる。
これ以外の方法、例えば、分散台帳ノード1000ではなく、TXを実行するユーザの情報を、呼び出される側のブロックチェーンシステムのメンバ管理ノード3000にあらかじめ登録しておき、当該ユーザの秘密鍵情報を認証情報として付属させてリクエストをおこなうなど、他の方法を用いて認証情報の引き継ぎを行っても良い。
また、ブロックチェーンシステムを跨った認証情報として、ユーザに一対一で紐付くような情報、例えば指紋情報、声紋情報、静脈情報等を用いることにより、呼び出す側のブロックチェーンシステムで得た認証情報を、リクエストに付属させて呼び出し、呼び出される側のブロックチェーンシステムのメンバ管理ノード3000からTXの実行許可を得るなどしても良い。いずれにしても例示の形態に限定されない。
また、実現方式によっては、ステップ4003、ステップ5000のように、SC実行に伴いすぐに更新処理を実行する場合以外に、非特許文献2に記載の方式のように、処理のシミュレーションフェーズと、処理の実行フェーズの二段階で更新処理を実行する場合がある。
この場合、ステップ4003では、属するブロックチェーンシステムへの処理のシミュレーションを実施し、ステップ5000の連携処理では、処理を実行するのではなく、実行予定の登録を行う、シミュレーションを実行して結果を呼出し側に返す、あるいはシミュレーションによる仮実行結果の登録を行うなどがおこなわれる。
このシミュレーションフェーズで、実行フェーズにおける実行に係るリソースを、実行予定、実行結果の登録に伴い予約しておくなどしても良い。
そして、TX内の処理単位毎のループが終了した後、属するブロックチェーンシステムへの処理の実行が実施され、リモート呼出しあるいはイベント通知等によって、シミュレーションフェーズで登録しておいた実行予定の内容を実行する、あるいはシミュレーション済みの処理を実行する。なお、処理の実行フェーズにおける、イベント通知による更新処理については、図7において説明する。
また図5において、連携処理における呼出しは同期的に実施されても良く、非同期的に実施されても良い。
非同期的に実施される場合は、呼び出される側における処理の実行状況を、呼び出す側から定期的にポーリングして監視する、イベント監視するなどしておくことで、TX内の処理単位毎のループが終わった後、呼び出される側における処理の成否も確認した上で、次の処理に進むことが可能となる。
<フロー例2>
図6は、実施例1に係るブロックチェーンシステム間の連携処理において、呼び出される側のブロックチェーンシステム(図1におけるブロックチェーンシステム2)における分散台帳ノード1000上で動作するプロキシSC1220が実行する処理のフローチャートである。
本処理5000は、図5に示したTX実行処理4000において呼び出されることで開始する(ステップ5001)。また本処理は、呼び出される側のブロックチェーンシステムの分散台帳ノード1000それぞれにおいて、実行される。
まず、プロキシSC1220が、リクエスト管理テーブル1130の情報を取得する(ステップ5002)。また、プロキシSC1220は、ステップ5001で受信した実行要求と同一のRequest ID1131を持つ情報が、ステップ5002での取得情
報に存在するかどうかを判定する(ステップ5003)。
上述の判定の結果、存在する場合(ステップ5003:Yes)、プロキシSC1220は、ステップ5002での取得情報におけるStatusカラム1134の情報をチェックする(ステップ5004)。
この結果、Statusカラム1134が「完了」を示すエントリが存在しない場合(ステップ5004:No)、プロキシSC1220は、呼び出し処理すなわち処理要求(クライアントノード2000のTX発行部2230が業務プログラム2210の指示により発行したTXに起因するもの。以下同様)が、呼び出される側のブロックチェーンシステムの同一の分散台帳ノード1000において既に実行開始されており、かつ処理が完了していないと判断し、当該実行要求を一定時間の待機状態にし(ステップ5005)、ステップ5004に戻る。
一方、ステップ5004で、Statusカラム1134が完了を示すエントリが存在する場合(ステップ5004:Yes)、プロキシSC1220は、同一TXに起因する呼び出し処理が既に完了していると判断し、実行結果を確認する(ステップ5006)。
上述の確認の結果、実行結果が成功の場合(ステップ5006:Yes)、プロキシSC1220は、同一のRequest ID1131を持つ情報のResultカラム1
135の情報を取得する(ステップ5007)。
また、プロキシSC1220は、ステップ5007で得た情報をリクエスト管理テーブル1130に書き込み(ステップ5008)、ステップ5014以降の処理を実行する。
一方、ステップ5003で、同一のRequest ID1131を持つ情報が存在し
ない場合(ステップ5003:No)、またはステップ5006で実行結果が失敗であった場合(ステップ5006:No)、プロキシSC1220は、リクエスト管理テーブル1130に、当該処理要求の情報をStatusカラム1134に対し「実行中」として登録する(ステップ5009)。
ここで処理失敗のケースとしては、実行処理において不正なパラメータが与えられた、実行権限が無かった、処理途中でエラー条件に該当した、等の場合が考えられる。
このようにあらかじめ決められた該当するエラーが返ってくる場合は、エラーと判断して、処理結果をリクエスト管理テーブル1130に書き込むことが考えられる。
また、その他の処理失敗のケースとしては、負荷がかかるなどして実行処理が停止してしまった、処理が重くて時間がかかっているなどが考えられ、このような場合は、処理実行タイムアウトを設けておき、ステップ5011で処理実行結果を取得できない場合でも、一定時間経過したら処理を打ち切り、ステップ5012でタイムアウトエラーの結果をリクエスト管理テーブル1130に書き込むことが考えられる。
次に、プロキシSC1220は、業務SC1210に処理要求を出し(ステップ5010)、実行結果情報を受信する(ステップ5011)。
また、プロキシSC1220は、ステップ5012で、リクエスト管理テーブル1130の当該処理要求を示すエントリのStatusカラム1134を処理完了の状態に更新し、Resultカラム1135に処理実行結果を登録する。
ここで、実行結果が成功ではなかった場合(ステップ5013:No)、プロキシSC
1220は、ステップ5002に戻り、リトライを実行するか、あるいは同一TXである他の処理要求の状況確認から再度実行し、同一識別情報を持ち、待機状態である、同一分散台帳ノード1000における他の呼び出し処理を再開を実行する。
なお、実行結果が成功であった場合(ステップ5013:Yes)、プロキシSC1220は、呼出した側のブロックチェーンシステム(図1におけるブロックチェーンシステム1)に結果を返す(ステップ5014)。
ステップ5008の処理実行後にステップ5014の処理を実行する場合、処理実行結果は、同一TXに起因して、呼び出す側のブロックチェーンシステムにおける別の分散台帳ノード1000からの呼び出し処理により実行された結果となっている。
ここでは、呼出される側のブロックチェーンシステムにおいて、同一TXに起因する呼び出し処理のうち、最初にリクエスト管理テーブル1130に書き込まれた呼び出し処理を無条件で実行することとしたが、これに限定されず、例えば、プロキシSC1120において、呼び出し処理を一定時間キューイングしておき、同じRequest Cont
entを持つ呼び出し処理が、一定数以上キューイングされた場合に限り実行するなどしても良い。
これにより、呼び出される側のブロックチェーンシステムの分散台帳ノード1000において受け取った同一Request IDを持つ呼び出し処理の中に、不正のある呼び
出し処理が上記一定数以下あり、当該呼び出し処理が最初にリクエスト管理テーブル1130に書き込まれた場合にも、誤って実行せずに済む。
また、リクエスト管理テーブル1130に格納された情報は、ブロックチェーンシステム間の呼び出し処理に関するログ情報として、各分散台帳ノード1000毎に管理され、一定時間経過した場合や、業務SCを動作させるにあたって必要な数のリプライを呼出す側のブロックチェーンに返信した場合等、呼び出し処理管理の情報が不要になった場合には削除するなどが行われる。
また、ステップ5011で受信した処理結果が失敗だった場合に、ステップ5010に戻りリトライを実施するなどしても良い。
また、当該連携処理5000が一定時間経っても成功しない場合には、処理途中であっても呼出し元に処理失敗の結果を送ることで、処理を終了することが可能である。
また、ステップ5013で失敗を一定数以上繰り返すようであれば、当該スレッドでの処理は待機状態で止めたままにし、同一TXに起因する他スレッドでの処理が成功するのを待つなどしても良く、これに限定されない(図示しない)。
また、ここでは、ステップ5001で処理実行要求を受信し、ステップ5014で処理実行結果を呼出し元に返す処理を記載したが、これに限定されず、例えば、非同期にステップ5000の処理を実行して処理実行結果を格納しておき、呼出し元が定期的にその処理実行結果をポーリングすることで、連携を実現しても良い。
<フロー例3>
図7は、処理のシミュレーションフェーズと、処理の実行フェーズの二段階で更新処理を実行する場合に限り必要な、イベント通知による更新処理のフローチャートである。
本処理9000は、図5に示したTX内の処理単位毎のループが終了した後に、属するブロックチェーンシステムへの処理の実行が実施された後の処理にあたる。
呼び出す側のブロックチェーンシステム(ブロックチェーンシステム1)の分散台帳ノード1000から、呼び出される側のブロックチェーンシステム(ブロックチェーンシステ
ム2)の分散台帳ノード1000に対して、実行完了イベントが発行され、呼び出される
側のブロックチェーンシステムの分散台帳ノード1000が当該イベントを受信することで、処理を開始する(ステップ9001)。
イベント受信のためには、処理のシミュレーションフェーズでの連携処理実行時に、IPアドレス等のイベント受信のために必要な情報、及びイベント通知を受けたい旨を示す情報を、呼び出す側のブロックチェーンシステムの分散台帳ノード1000に設定しておくなどの必要がある。
このイベント連携処理9000では、まず呼び出される側のブロックチェーンシステムのプロキシSC1220が、呼び出す側のブロックチェーンシステムからの実行終了イベントを受信する(ステップ9001)。
次に、プロキシSC1220は、受信したイベントが実行成功を示すイベントか否かを判定する (ステップ9002)。
上述の判定の結果、成功を示すイベントであった場合 (ステップ9002:Yes)、
プロキシSC1220は、処理のシミュレーションフェーズで登録しておいた実行予定の内容を実行する、シミュレーション済みの処理を実行する、あるいは成功イベントの中に呼び出される側のブロックチェーンシステムで実行すべき処理を記載しておき、その内容を実行するなど処理の実行をおこない、イベント連携処理を終了する(ステップ9003)。
ここで処理の実行に失敗した場合には、シミュレーションフェーズで登録しておいた実行内容や、処理のシミュレーション結果の削除をおこなう。
また、ステップ9001で受信したイベントが成功イベントをステップ9002で判定する際、受信したイベント数あるいは受信したイベント数のうち成功イベント数が一定数以上になった場合に、ステップ9003の実行処理をおこなうなどしても良く、これに限定されない。
以上、本実施例によれば、ブロックチェーンシステム間の連携において、呼び出される側のブロックチェーンシステムに連携のためのプロキシ機能を持つSCを用意することで、単一信頼点無く、無駄なく正しい連携処理を実現することが可能となる。
これにより、例えば商流に利用されるブロックチェーンシステムと、金流に利用されるブロックチェーンシステムとが、それぞれの要件に基づいて個別に構築されている場合に、決済まで結びつけた資産の取引、譲渡をおこなうことが可能となる。そのため、現実世界の商取引をブロックチェーンを活用したシステム上で実現可能となる。
ここで、一般にブロックチェーンシステムで利用される基盤は、仮想通貨に特化、性能を重視等の特徴を考慮して選定されることが多いため、一種類のブロックチェーンシステム基盤に統一される可能性は低い。よって、個々のブロックチェーンシステムがそれぞれ構築され、互いに連動させる必要性が出るケースも多くなることが想定される。
なお、本実施例では呼び出す側のブロックチェーンシステムの分散台帳ノード1000それぞれが処理の主体となり、呼び出される側のブロックチェーンシステムの分散台帳ノード1000それぞれに対して、処理の実行を要求するケースを想定している。
そのため、呼び出される側のブロックチェーンシステムの分散台帳ノード1000毎に
、呼び出し処理を一つずつ実行する必要のあるケースをカバーする。
---実施例2---
本実施例に係る計算機システム1の構成例については、実施例1と同様の部分の説明については省略する。図8は、実施例2に係るリクエスト管理テーブル1130の一例を示す図である。
本実施例におけるリクエスト管理テーブル1130は、ブロックチェーン内の分散台帳ノード1000を跨って共有される点が実施例1と異なる。
この場合、リクエスト管理テーブル1130には、プロキシSC1220が、ブロックチェーンシステム間の連携に係る呼び出し処理すなわち処理要求の情報を格納する。
一例として、リクエスト管理テーブル1130には、RequestID 1131、
Request NodeID 1132、Receive NodeID 1136、R
equest Content1133、Status 1134、Result 113
5のフィールドがある。
このうちRequestID 1131には、別のブロックチェーンシステムから送信
された処理要求を一意に識別するための識別子が格納される。
また、Request NodeID 1132には、処理要求を送信してきた別のブロックチェーンシステムにおける分散台帳ノード1000を一意に識別するための識別子が格納される。
また、Receive NodeID 1136には、呼び出されたブロックチェーン
システムにおける分散台帳ノード1000を一意に識別するための識別子が格納される。
また、Request Content 1133には、処理要求の内容が格納され、Status 1134には、処理実行状態が格納され、Result 1135には、処理の実行結果が格納される。
これらのカラムに格納される値の具体例については、図4と同じであるため説明を省略する。
<フロー例4>
図9は、実施例2に係るブロックチェーンシステム間の連携処理において、呼び出される側のブロックチェーンシステム(図1におけるブロックチェーンシステム2)における分散台帳ノード1000上で動作するプロキシSC1220が実行する処理のフローチャートである。
本処理6000は、図5に示したTX実行処理4000において呼び出されることで開始する(ステップ6001)。本処理は、呼び出される側のブロックチェーンシステムの分散台帳ノード1000それぞれにおいて、実行される。
まず、プロキシSC1220は、リクエスト管理テーブル1130の情報を取得する(ステップ6002)。
また、プロキシSC1220は、ステップ6001で受信した処理要求と同一のRequest ID1131を持つ情報が、ステップ6002での取得情報に存在するかどう
か判定する(ステップ6003)。
本実施例では、リクエスト管理テーブル1130はブロックチェーンシステム内の分散台帳ノード1000を跨って共有されるため、いずれか一つの分散台帳ノード1000に
おいて、該当するTXすなわち処理要求の実行が開始されている場合、取得情報が存在することになる。
上述の判定の結果、存在する場合(ステップ6003:Yes)、プロキシSC1220は、同取得情報におけるStatusカラム1134の情報をチェックする(ステップ6004)。
上述の結果、Statusカラム1135が完了であるエントリが存在しない場合(ステップ6004:No)、プロキシSC1220は、呼び出し処理(クライアントノード2000のTX発行部2230が業務プログラム2210の指示により発行したTXに起因する)すなわち処理要求が、呼び出される側のブロックチェーンシステムのいずれかの分散台帳ノード1000において既に実行開始されており、かつ処理が完了していないと判断し、当該処理要求を一定時間の待機状態にし(ステップ6005)、ステップ6004に戻る。
一方、上述の判定の結果、ステップ6004でStatusカラム1134が完了状態となっているエントリが存在する場合(ステップ6004:Yes)、プロキシSC1220は、同一TXに起因する呼び出し処理が既に完了していると判断し、実行結果を確認する(ステップ6006)。
上述の結果、実行結果が成功の場合(ステップ6006:Yes)、プロキシSC1220は、同一のRequest ID1131を持つ情報のResultカラム1135
の情報を取得する(ステップ6007)。
また、プロキシSC1220は、当該情報をリクエスト管理テーブル1130に書き込み(ステップ6008)、ステップ6014以降の処理を実行する。
また、プロキシSC1220は、同一のRequest ID 1131を持つ情報のResultカラム1135の情報を取得し(ステップ6006)、ステップ7000以降の処理を実行する。
一方、ステップ6003で、同一のRequest ID 1131を持つ情報が存在しない場合(ステップ6003:No)、またはステップ6006で実行結果が失敗であった場合(ステップ6006:No)、プロキシSC1220は、リクエスト管理テーブル1130に、当該処理要求の情報をStatusカラム1134が実行中として登録する(ステップ7000)。ここでのリクエスト管理テーブル1130への登録処理については、図10において説明する。
続いて、プロキシSC1220は、リクエスト管理テーブル1130への情報の登録に成功したかどうかを判定する(ステップ6009)。
上述の判定の結果、登録に失敗した場合(ステップ6009:No)、プロキシSC1220は、再度ステップ6003の判定処理から実行する。
一方、上述の判定の結果、登録に成功した場合(ステップ6009:Yes)、プロキシSC1220は、ステップ6010に進む。
ステップ6010では、プロキシSC1220は、業務SC1210に処理要求を出し、実行結果情報を受信する(ステップ6011)。
なお、ここで処理失敗のケースとしては、実行処理において不正なパラメータが与えられた、実行権限が無かった、処理途中でエラー条件に該当した、等の場合が考えられる。
このようにあらかじめ決められた該当するエラーが返ってくる場合は、エラーと判断して、処理結果をリクエスト管理テーブル1130に書き込むことが考えられる。
また、その他の処理失敗のケースとしては、負荷がかかるなどして実行処理が停止してしまった、処理が重くて時間がかかっているなどが考えられ、
このような場合は、処理実行タイムアウトを設けておき、ステップ6011で処理実行結果を取得できない場合でも、一定時間経過したら処理を打ち切り、ステップ7000でタイムアウトエラーの結果をリクエスト管理テーブル1130に書き込むことが考えられる。
また、ステップ6011で受信した処理結果が失敗だった場合に、ステップ6010に戻りリトライを実施するなどしても良い。
また、当該連携処理6000が一定時間経っても成功しない場合には、処理途中であっても呼出し元に処理失敗の結果を送ることで、処理を終了することが可能である。
また、ステップ6013で失敗を一定数以上繰り返すようであれば、当該スレッドでの処理は待機状態で止めたままにし、同一TXに起因する他スレッドでの処理が成功するのを待つなどしても良く、これに限定されない(図示しない)。
また、ここでは、ステップ5001で処理実行要求を受信し、ステップ5014で処理実行結果を呼出し元に返す処理を記載したが、これに限定されず、例えば、非同期にステップ5000の処理を実行して処理実行結果を格納しておき、呼出し元が定期的にその処理実行結果をポーリングすることで、連携を実現しても良い。
続いて、プロキシSC1220は、ステップ6012で、リクエスト管理テーブル1130の当該処理を示すエントリのStatusカラム1134を処理完了の状態に更新し、Resultカラム1135に処理実行結果を登録する。
ここで、実行結果が成功ではなかった場合(ステップ6013:No)、プロキシSC1220は、ステップ6003に戻り、リトライを実行するか、あるいは同一TXである他の呼び出し処理すなわち処理要求の状況確認から再度実行し、同一識別情報を持ち、待機状態である、同一ノードにおける他の呼び出し処理を再開を実行する。
実行結果が成功であった場合(ステップ6013:Yes)、プロキシSC1220は、呼出した側のブロックチェーンシステム(図1におけるブロックチェーンシステム1)に結果を返す(ステップ6014)。
ステップ6008の処理実行後にステップ6014の処理を実行する場合は、処理実行結果は、同一TXに起因して、呼び出す側のブロックチェーンシステムにおける別のノードからの呼び出し処理により実行された結果となっている。
ここでは、呼出される側のブロックチェーンシステムにおいて、同一TXに起因する呼び出し処理のうち、最初にリクエスト管理テーブル1130に書き込まれた処理を無条件で実行することとしたが、これに限定されない。
また、リクエスト管理テーブル1130に格納された情報は、ブロックチェーンシステム間の呼び出し処理に関するログ情報として、分散台帳ノード1000を跨って管理され、一定時間経過した場合や、業務SC1210を動作させるにあたって必要な数のリプライを呼出す側のブロックチェーンに返信した場合等、呼び出し処理すなわち処理要求の管理の情報が不要になった場合には情報へのアクセス不可にするなどが行われる。
<フロー例5>
図10は、実施例2に係るブロックチェーンシステム間の連携処理において、プロキシSC1220がリクエスト管理テーブル1130の更新を実行する処理のフローチャートの一例である。
本処理7000は、図9に示した連携処理6000において呼び出されることで開始する。本実施例では、ブロックチェーンシステム内の分散台帳ノード1110を跨って、当該リクエスト管理テーブル1130の情報が共有される。
まず、プロキシSC1120が、更新TXを発行する(ステップ7001)。また、プロキシSC1220は、分散台帳ノード1000間で当該TXに対する合意形成処理を実行する(ステップ7002)。
最後に、プロキシSC1220は、合意形成処理結果を判定する(ステップ7003)。この判定の結果、合意形成成功であれば(ステップ7003:Yes)、プロキシSC1220は、リクエスト管理テーブル1130を更新し、処理を終了する(ステップ7004)。
ここでは、リクエスト管理テーブル1130をブロックチェーンを用いて保持することで、分散台帳ノード1000の各間でその情報を共有する例を示しているが、これに限定されない。共有リソースへのアクセスを同期化する手段を提供できれば良く、例えば分散ロックマネージャを用いるなどしても良い。
以上、本実施例によれば、実施例1と同様の効果を、別構成でも実現可能となる。具体的には、本実施例では、呼び出される側のブロックチェーンシステムのいずれか一つの分散台帳ノード1000が処理の主体となり、同ブロックチェーンシステム内の他の分散台帳ノード1000それぞれに対して、処理の実行を要求するケースを想定している。
ここで、呼び出す側のブロックチェーンシステムの各分散台帳ノード1000が、呼び出される側のブロックチェーンシステムの分散台帳ノード1000として、同一の分散台帳ノード1000を呼び出すケースと、異なる分散台帳ノード1000を呼び出すケースがあるが、いずれもカバーする。
異なる分散台帳ノード1000を呼び出す方法としては、例えば、呼ぶ出す側のブロックチェーンシステムの分散台帳ノード1000がランダムに選択するケースや、分散台帳ノード1000毎に決まった分散台帳ノード1000を呼び出すよう設定しておく等の方法が考えられるが、これに限定されない。
いずれのケースにおいても、呼び出される側のブロックチェーンシステムの中の一つの分散台帳ノード1000において、呼び出し処理を一つ実行するケースとなる。
---実施例3---
本実施例に係る計算機システム1の構成例については、実施例1と同様の部分の説明については省略する。図11は、実施例3に係るリクエスト管理テーブル1130の一例を示す図である。
この場合、リクエスト管理テーブル1130がブロックチェーンシステム内の分散台帳ノード1000毎に共有されるケースと、ブロックチェーンシステム内の分散台帳ノード1000を跨って共有されるケースを切り替えて管理する。
図11に例示するリクエスト管理テーブル1130には、プロキシSC1220が、ブロックチェーンシステム間の連携に係るリクエストの情報を格納する。
本実施例のリクエスト管理テーブル1130では、Request Type1137
のフィールドが含まれている。このフィールドには、ブロックチェーンシステム間の連携処理が密連携か疎連携かを表す情報が格納される。
具体的には、密連携の場合は"Tight"、疎連携の場合は"Loose"と格納する例を記載しているが、これに限定されない。
ここで密連携とは、実施例1で示した、呼び出す側のブロックチェーンシステムの分散台帳ノード1000それぞれが処理の主体となり、呼び出される側のブロックチェーンシステムの分散台帳ノード1000それぞれに対して、処理の実行を要求するケースを表す。
一方、疎連携とは、実施例2で示した、呼び出される側のブロックチェーンシステムの任意の分散台帳ノード1000が処理の主体となり、同ブロックチェーンシステムの他の分散台帳ノード1000それぞれに対して、処理の実行を要求するケースを表す。その他のカラムについては、図8と同じであるため説明を省略する。
図11において、リクエスト管理テーブル1130として一つのテーブル形式で示しているが、本実施例において、リクエスト管理テーブル1130のRequest Typ
e1137が密結合のエントリの情報は、Receive Node IDで示される、呼び出される側のブロックチェーンシステムのノード毎に情報を持つ。
一方、リクエスト管理テーブル1130のRequest Type1137が疎結合
のエントリの情報は、呼び出される側のブロックチェーンシステムの分散台帳ノード1000の間で情報を共有する。
<フロー例6>
図12は、実施例3に係るブロックチェーンシステム間の連携処理において、呼び出される側のブロックチェーンシステム(図1におけるブロックチェーンシステム2)における分散台帳ノード1000上で動作するプロキシSC1220が実行する処理のフローチャートである。
本処理8000は、図5に示したTX実行処理4000において呼び出されることで開始する(ステップ8001)。
まず、プロキシSC1220は、TXにおけるリクエスト種別が疎結合か密結合かを判定する(ステップ8002)。
上述の判定の結果、疎結合の場合(ステップ8002:Yes)、プロキシSC1220は、図9のステップ6003以降の処理を実行する。
一方、上述の判定の結果、密結合の場合(ステップ8002:No)、プロキシSC1220は、図6のステップ5003以降の処理を実行する。
ここで、TXには、リクエスト種別が疎結合か密結合かを判断するための情報が含まれ、例えば、呼び出し処理において利用されるプロトコルの種類、例えばREST API なのか、ブロックチェーンシステムの提供する独自APIなのか等により、REST A
PIであれば疎結合、独自APIであれば密結合などと、して判断をおこなうことができるが、判断内容はこれに限定されない。
例えば、呼出し先のブロックチェーンシステムの分散台帳ノード1000で提供されるAPIの種類などにより判断をおこなっても良い。
以上、本実施例によれば、ブロックチェーンシステム間連携において、実施例1に示した密結合の呼出しと、実施例2に示した疎結合の呼出しが混在する環境においても、プロ
キシSC1220において処理を切り替えることで、単一信頼点無く、無駄なく正しい連携処理を実現することが可能となる。
連携する内容や、ブロックチェーンシステム基盤の種別に応じて、疎結合や密結合は決まるため、図2に示したような1対1でのブロックチェーンシステム間連携の場合、業務に応じて密結合と疎結合を切り替わることが想定される。
また、複数のブロックチェーンシステムからの呼出しを、呼び出される側のブロックチェーンが受信する場合は、呼び出す側のブロックチェーン毎に切り替わることなどが想定される。
ブロックチェーンシステムを利用する業務は多岐にわたり、また、異なる特徴を持つブロックチェーン基盤の種別を利用して、システム全体を構築するケースも多いことが想定されるため、本実施例による活用範囲は幅広いことが想定される。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、効率的で適宜なBC間連携処理が実現可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のシステム間連携方法において、前記ノードが、前記重複排除の結果、実行を許可されなかった呼び出し処理を待ち状態とし、当該呼び出し処理に関する情報をリクエスト管理情報として管理する、としてもよい。
これによれば、重複処理を排除しつつも、呼び出し元の各ノードに対してのリプライは漏れなく行うことが可能となる。ひいては、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、より効率的で適宜なBC間連携処理が実現可能となる。
また、本実施形態のシステム間連携方法において、前記ノードが、前記ポリシに基づく重複排除として、同じ識別情報を保持する複数の呼び出し処理のうち、最初に受信した1
つの呼び出し処理に絞り込む、としてもよい。
これによれば、呼び出し処理の迅速な処理と重複排除とを両立することが可能となる。ひいては、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、より効率的で適宜なBC間連携処理が実現可能となる。
また、本実施形態のシステム間連携方法において、前記ノードが、前記ポリシに基づく重複排除として、同じ識別情報を保持する複数の呼び出し処理のうち、ノード間での合意形成を経て任意の1つの呼び出し処理に絞り込む、としてもよい。
これによれば、呼び出し処理の確からしさ(真正なものらしさ)を確保した上で重複排除を実行することが可能となる。ひいては、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、より効率的で適宜なBC間連携処理が実現可能となる。
また、本実施形態のシステム間連携方法において、前記ノードが、当該ノード毎に前記リクエスト管理情報を管理し、ノード毎に前記呼び出し処理の重複排除を実行して一度のみ実行する、としてもよい。
これによれば、各ノードで同じ呼び出し処理を複数受ける状況に対応して重複排除を効
率良く行うことが可能となる。ひいては、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、より効率的で適宜なBC間連携処理が実現可能となる。
また、本実施形態のシステム間連携方法において、前記ノードが、前記呼び出し処理が他のノードにおいて失敗した際に、当該呼び出し処理と識別情報が同一で待ち状態にある他の呼び出し処理を前記リクエスト管理情報にて特定し、前記特定した呼び出し処理の実行を再開する、としてもよい。
これによれば、同じ呼び出し処理を複数受け付ける状況を有効活用して、ノードや通信環境の不具合や或いは真正でない呼び出し処理の混入など種々の状況に由来する処理失敗の発生に対応し、全体として処理効率を良好に維持できることとなる。ひいては、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、より効率的で適宜なBC間連携処理が実現可能となる。
また、本実施形態のシステム間連携方法において、前記ノードが、当該ノードの属する分散台帳システム内のノード同士で前記リクエスト管理情報を共有し、当該ノード同士の間を跨って前記呼び出し処理の重複排除を実行し一度のみ実行する、としてもよい。
これによれば、或る分散台帳システムに属するノードそれぞれが、同じ呼び出し処理を受け付ける状況に対応して、処理の重複排除を効率良く行うことが可能となる。ひいては、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、より効率的で適宜なBC間連携処理が実現可能となる。
また、本実施形態のシステム間連携方法において、前記ノードが、前記ノード同士の間で相互承認を取ったうえで、前記リクエスト管理情報をブロックチェーンに格納し、当該ノード同士の間で共有する、としてもよい。
これによれば、リクエスト管理情報を同じ分散台帳システム内で効率的かつ的確に共有可能となる。ひいては、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、より効率的で適宜なBC間連携処理が実現可能となる。
また、本実施形態のシステム間連携方法において、前記ノードが、分散台帳システムから呼び出される処理が、別システムにおいて失敗した際に、同一識別情報を持ち、待ち状態である、同一システム内の任意のノードにおける処理を再開する、としてもよい。
これによれば、同じ分散台帳システムのノードそれぞれが、同じ呼び出し処理を受け付ける状況を有効活用して、ノードや通信環境の不具合や或いは真正でない呼び出し処理の混入など種々の状況に由来する処理失敗の発生に対応し、全体として処理効率を良好に維持できることとなる。ひいては、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、より効率的で適宜なBC間連携処理が実現可能となる。
また、本実施形態のシステム間連携方法において、前記ノードが、前記呼び出し処理の発信元である前記他の分散台帳システムのノードにリプライする際、前記呼び出し処理の処理結果を、前記リクエスト管理情報において待ち状態とされている各呼び出し処理のリプライとして複製しリプライする、としてもよい。
これによれば、呼び出し処理の重複排除と確かなリプライとを両立することが可能となる。ひいては、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、より効率的で適宜なBC間連携処理が実現可能となる。
また、本実施形態のシステム間連携方法において、前記ノードが、前記呼び出し処理に付帯する所定の認証情報を取得し、前記ノードが所属する分散台帳システムへのアクセスを前記認証情報に基づいて管理する、としてもよい。
これによれば、分散台帳システムの間で呼び出し処理の授受を行う際、相応のセキュアな環境で処理を行うことが可能となる。ひいては、単一信頼点が生じない環境下で、処理の透明性を確保しつつ、より効率的で適宜なBC間連携処理が実現可能となる。
1 計算機システム
10 ネットワーク
1000 分散台帳ノード
1100 メモリ
1110 ブロックチェーン
1120 共有情報管理テーブル
1130 リクエスト管理テーブル
1140 構成・性能管理テーブル
1210 業務スマートコントラクト
1220 プロキシスマートコントラクト
1230 トランザクション発行部
1240 トランザクション管理部
1250 コンセンサス管理部
1260 スマートコントラクト実行・管理部
1300 通信デバイス
1400 プロセッサ(演算装置)
1500 出力デバイス
1600 入力デバイス
1700 記憶デバイス
1800 内部バス
2000 クライアントノード
2100 メモリ
2110 業務情報管理テーブル
2220 構成・性能情報収集プログラム
2230 トランザクション発行部
3000 メンバ管理ノード
3100 メモリ
3110 メンバ管理テーブル
3210 メンバ管理プログラム

Claims (10)

  1. 複数の分散台帳システム各々を構成するノードが、
    他の分散台帳システム上のプログラムからの呼び出し処理に関して、当該呼び出し処理の識別情報と同一の識別情報を有する呼び出し処理たる重複処理の情報が、分散台帳システム間の連携に係る呼び出し処理の管理用情報に存在する判定する処理と、前記判定の結果、前記重複処理の情報が存在しなかった場合、当該呼び出し処理の情報を前記管理用情報において実行中として登録した上で当該呼び出し処理を実行する処理と、前記判定の結果、前記重複処理の情報の存在が判明した場合、前記同一の識別情報を有する各呼出処理に関するステータスを確認する処理と、前記確認の結果、前記各呼び出し処理のうち、そのステータスが処理完了を示すものが存在しなかった場合、前記呼び出し処理が実行中かつ未完と判断して、ステータスが処理完了を示すものが存在するようになるまで当該呼び出し処理を待機状態とすることで、前記呼び出し処理の重複排除を実行する、
    ことを特徴とするシステム間連携方法。
  2. 前記ノードが、
    前記同一の識別情報を保持する複数の呼び出し処理のうち、ノード間での合意形成を経て任意の1つの呼び出し処理に絞り込む、
    ことを特徴とする請求項1に記載のシステム間連携方法。
  3. 前記ノードが、
    当該ノード毎に前記管理情報を管理し、ノード毎に前記呼び出し処理の重複を排除して一度のみ実行する、
    ことを特徴とする請求項1に記載のシステム間連携方法。
  4. 前記ノードが、
    前記呼び出し処理が他のノードにおいて失敗した際に、当該呼び出し処理と識別情報が同一で待ち状態にある他の呼び出し処理を前記管理情報にて特定し、前記特定した呼び出し処理の実行を再開する、
    ことを特徴とする請求項3に記載のシステム間連携方法。
  5. 前記ノードが、
    当該ノードの属する分散台帳システム内のノード同士で前記管理用情報を共有し、当該ノード同士の間を跨って前記呼び出し処理の重複を排除し一度のみ実行する、
    ことを特徴とする請求項1に記載のシステム間連携方法。
  6. 前記ノードが、
    前記ノード同士の間で相互承認を取ったうえで、前記管理用情報をブロックチェーンに格納し、当該ノード同士の間で共有する、
    ことを特徴とする請求項5に記載のシステム間連携方法。
  7. 前記ノードが、
    分散台帳システムから呼び出される処理が、別システムにおいて失敗した際に、同一識別情報を持ち、待ち状態である、同一システム内の任意のノードにおける処理を再開する、
    ことを特徴とする請求項5に記載のシステム間連携方法。
  8. 前記ノードが、
    前記呼び出し処理の発信元である前記他の分散台帳システムのノードにリプライする際、前記呼び出し処理の処理結果を、前記リクエスト管理情報において待ち状態とされている各呼び出し処理のリプライとして複製しリプライする、
    ことを特徴とする請求項1に記載のシステム間連携方法。
  9. 前記ノードが、
    前記呼び出し処理に付帯する所定の認証情報を取得し、前記ノードが所属する分散台帳システムへのアクセスを前記認証情報に基づいて管理する、
    ことを特徴とする請求項1に記載のシステム間連携方法。
  10. 複数の分散台帳システム各々を構成するノードであって、
    他の分散台帳システム上のプログラムからの呼び出し処理に関して、当該呼び出し処理の識別情報と同一の識別情報を有する呼び出し処理たる重複処理の情報が、分散台帳システム間の連携に係る呼び出し処理の管理用情報に存在する判定する処理と、前記判定の結果、前記重複処理の情報が存在しなかった場合、当該呼び出し処理の情報を前記管理用情報において実行中として登録した上で当該呼び出し処理を実行する処理と、前記判定の結果、前記重複処理の情報の存在が判明した場合、前記同一の識別情報を有する各呼出処理に関するステータスを確認する処理と、前記確認の結果、前記各呼び出し処理のうち、そのステータスが処理完了を示すものが存在しなかった場合、前記呼び出し処理が実行中かつ未完と判断して、ステータスが処理完了を示すものが存在するようになるまで当該呼び出し処理を待機状態とすることで、前記呼び出し処理の重複排除を実行する演算装置を備える、
    ことを特徴とするノード。
JP2019063114A 2019-03-28 2019-03-28 システム間連携方法およびノード Active JP7254585B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019063114A JP7254585B2 (ja) 2019-03-28 2019-03-28 システム間連携方法およびノード
US16/576,313 US11627122B2 (en) 2019-03-28 2019-09-19 Inter-system linking method and node

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019063114A JP7254585B2 (ja) 2019-03-28 2019-03-28 システム間連携方法およびノード

Publications (3)

Publication Number Publication Date
JP2020161092A JP2020161092A (ja) 2020-10-01
JP2020161092A5 JP2020161092A5 (ja) 2021-05-27
JP7254585B2 true JP7254585B2 (ja) 2023-04-10

Family

ID=72605117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019063114A Active JP7254585B2 (ja) 2019-03-28 2019-03-28 システム間連携方法およびノード

Country Status (2)

Country Link
US (1) US11627122B2 (ja)
JP (1) JP7254585B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2022097608A1 (ja) * 2020-11-04 2022-05-12
CN112286641B (zh) * 2020-12-24 2021-04-20 北京百度网讯科技有限公司 以太坊虚拟机的事务处理方法、装置、设备和介质
CN112764887B (zh) * 2021-01-15 2023-10-13 北京百度网讯科技有限公司 事务请求的构建方法、处理方法、装置、设备和存储介质
CN113467888B (zh) * 2021-06-29 2024-02-23 网易(杭州)网络有限公司 智能合约的跨链调用方法及装置、电子设备、存储介质
US11799842B2 (en) * 2022-02-15 2023-10-24 Bank Of America Corporation Multi-device functional code logic components allowing multiple device communication on a distributed development platform

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146589A (ja) 2004-11-19 2006-06-08 Fujitsu Ltd 処理システムおよび調停サーバ
US20140331017A1 (en) 2013-05-02 2014-11-06 International Business Machines Corporation Application-directed memory de-duplication
JP2015106345A (ja) 2013-12-02 2015-06-08 株式会社リコー 情報処理システム、情報処理装置及びプログラム
JP2017188883A (ja) 2017-03-23 2017-10-12 株式会社bitFlyer プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3329440A1 (en) * 2015-07-31 2018-06-06 British Telecommunications public limited company Controlled resource provisioning in distributed computing environments
CA3088610A1 (en) * 2018-01-17 2019-07-25 Geeq Corporation Blockchain methods, nodes, systems and products
US11093482B2 (en) * 2019-03-12 2021-08-17 International Business Machines Corporation Managing access by third parties to data in a network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146589A (ja) 2004-11-19 2006-06-08 Fujitsu Ltd 処理システムおよび調停サーバ
US20140331017A1 (en) 2013-05-02 2014-11-06 International Business Machines Corporation Application-directed memory de-duplication
JP2015106345A (ja) 2013-12-02 2015-06-08 株式会社リコー 情報処理システム、情報処理装置及びプログラム
JP2017188883A (ja) 2017-03-23 2017-10-12 株式会社bitFlyer プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム

Also Published As

Publication number Publication date
JP2020161092A (ja) 2020-10-01
US11627122B2 (en) 2023-04-11
US20200314078A1 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
JP7254585B2 (ja) システム間連携方法およびノード
US11240001B2 (en) Selective access to asset transfer data
US20230089095A1 (en) Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US20230161756A1 (en) Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11341121B2 (en) Peer partitioning
US11449478B2 (en) Blockchain implemented data migration audit trail
US11405204B2 (en) Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US10936445B2 (en) Resource management
US10833845B2 (en) Guarantee of ledger immutability
US11853291B2 (en) Privacy preserving architecture for permissioned blockchains
US20200394648A1 (en) Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11489672B2 (en) Verification of conditions of a blockchain transaction
JP2019028525A (ja) 運用管理方法、運用管理システム、および、運用管理プログラム
US11240000B2 (en) Preservation of uniqueness and integrity of a digital asset
US11263059B2 (en) Load leveler
US20200076608A1 (en) Guarantee of ledger immutability
US11032083B2 (en) Atomic transactional processing
US11487741B2 (en) Preservation of uniqueness and integrity of a digital asset
US11354278B2 (en) Linking of tokens
US20200394177A1 (en) Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
Dinh et al. A blueprint for interoperable blockchains
CN111915308A (zh) 一种区块链网络的交易处理方法及区块链网络
JP2024501401A (ja) 非集中型のブロードキャスト暗号化および鍵生成ファシリティ
JP6868728B2 (ja) パーミッションドブロックチェーンアプリケーションの継続的デリバリのための方法及び装置
US11483158B2 (en) Distributed ledger device, distributed ledger system, and distributed ledger management method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210415

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230329

R150 Certificate of patent or registration of utility model

Ref document number: 7254585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150