JP2019028525A - 運用管理方法、運用管理システム、および、運用管理プログラム - Google Patents

運用管理方法、運用管理システム、および、運用管理プログラム Download PDF

Info

Publication number
JP2019028525A
JP2019028525A JP2017144223A JP2017144223A JP2019028525A JP 2019028525 A JP2019028525 A JP 2019028525A JP 2017144223 A JP2017144223 A JP 2017144223A JP 2017144223 A JP2017144223 A JP 2017144223A JP 2019028525 A JP2019028525 A JP 2019028525A
Authority
JP
Japan
Prior art keywords
execution
distributed ledger
node
smart contract
transaction
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.)
Granted
Application number
JP2017144223A
Other languages
English (en)
Other versions
JP2019028525A5 (ja
JP6900266B2 (ja
Inventor
竜也 佐藤
Tatsuya Sato
竜也 佐藤
崇之 永井
Takayuki Nagai
崇之 永井
潤 根本
Jun Nemoto
潤 根本
仁志夫 山田
Nishio Yamada
仁志夫 山田
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 JP2017144223A priority Critical patent/JP6900266B2/ja
Priority to PCT/JP2018/025834 priority patent/WO2019021792A1/ja
Priority to SG11202000671QA priority patent/SG11202000671QA/en
Priority to US16/632,935 priority patent/US11514443B2/en
Publication of JP2019028525A publication Critical patent/JP2019028525A/ja
Publication of JP2019028525A5 publication Critical patent/JP2019028525A5/ja
Application granted granted Critical
Publication of JP6900266B2 publication Critical patent/JP6900266B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Databases & Information Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computing Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Development Economics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】分散台帳システムにおいて管理者が複数存在する状況下でも、ノード間でポリシーやタイミングを揃えた運用管理を可能とする。【解決手段】運用管理システム10において、複数のノードで構成される分散台帳システム6において、前記複数のノード3のうち少なくとも所定の複数ノードは、それぞれ、分散台帳37にて当該分散台帳システム6の運用管理用の運用スマートコントラクト372を管理し、前記所定の複数ノードのうち少なくとも1つのノードがトランザクションを受け取った場合、当該ノードは、当該トランザクションの種別が運用スマートコントラクト372か否かを判定し、当該判定結果に基づき運用スマートコントラクト372を実行する構成とする。【選択図】図2

Description

本発明は、分散台帳システムの運用管理方法、運用管理システム、および、運用管理プログラムに関するものであり、具体的には、分散台帳システムにおいて管理者が複数存在する状況下でも、ノード間でポリシーやタイミングを揃えた運用管理を可能とする技術に関する。
従来、各種取引の多くは、金融機関や政府などの信頼できる中央集権機関を経由して実施されてきた。ところが近年では、従来の取引形態と異なる、利用者間のP2P(Peer to Peer)取引が提案され、その取引の実装手段として分散台帳技術が存在する。
こうした分散台帳技術の例として、ビットコインと呼ばれる仮想通貨を用いて、銀行などの中央集権機関を必要とせずに決済取引を行う技術(非特許文献1参考)がある。ビットコインでは、P2Pネットワーク上における取引データ(以下、トランザクションとも称する)について、マイナーと呼ばれるノードがその正当性を判定後、プルーフオブワークと呼ばれる特定の作業(ハッシュ値を算出)で確定処理を行っている。
上述のように確定処理されたトランザクションは、1つのブロックにまとめられ、各ノードにおいてブロックチェーン(以下、BCとも称する)と呼ばれる分散台帳に記載される。
一方、上記のビットコイン技術で実装されたBCをベースにして、BCおよび分散台帳に関して様々な派生技術も更に提案され、進化を続けている。
現状のBCの主な特徴としては、(1)ビジネスネットワーク上の参加者間の取引において、中央集権機関ではなく(任意ないしは特定の)参加者による合意形成や承認によって取引を確定させること、(2)複数のトランザクションをブロックとしてまとめ、これを数珠つなぎに分散台帳に記録し、連続するブロックにハッシュ計算を施すことにより、改ざんを実質不可能にすること、(3)参加者全員が同一の台帳データを共有することにより、参加者全員での取引の確認を可能とすること、などが挙げられる。
このような分散台帳を提供する基盤(以下、分散台帳基盤)を用いることで、中央集権機関による管理がなくとも、複数の主体間で情報共有や取引を行うことができる(例えば、特定業界のコンソーシアムやサプライチェーンに関係する複数企業等)。ここで、分散台帳に参加する参加者(およびそのノード)によって構成されるネットワークのことをビジネスネットワークと呼ぶ。
上述のBCをはじめとした分散台帳技術は、以上のような特徴から、信頼できるデータの管理/共有や、契約に基づく取引の執行/管理を行う仕組みとして、金融分野やIoT(Internet of Thing)等、幅広い分野での応用が検討されている。
例えば、ビットコインのような単純な仮想通貨の取引だけでなく、複雑な取引条件や多様なアプリケーションにも適用可能とするために、分散台帳の中で(取引)データだけでなくロジックも管理できるようになってきている。このロジックはスマートコントラクト(以下、SCとも称する)と呼ばれる。
一方、SCの実行機能を有する分散台帳基盤(非特許文献2および非特許文献3参照)
では、ノード間で所定の合意水準で合意形成しながらトランザクション(以下、TXとも称する)を受け入れて、各ノードでTXを実行することにより、複数ノード上で情報(台帳)を共有する。また、TXに対して予め決めたロジックを実行するスマートコントラクト(SC)実行機能を備える。
"A Peer−to−Peer Electronic Cash System", [online]、[平成29年3月31日検索]、インターネット<URL:https://bitcoin.org/bitcoin.pdf> "Ethereum White Paper", [online]、[平成29年3月31日検索]、インターネット<URL:https://github.com/ethereum/wiki/wiki/[English]−White−Paper> "Hyperledger Fabric", [online]、[平成29年3月31日検索]、インターネット<URL:http://hyperledger−fabric.readthedocs.io/en/latest/>
上述の分散台帳技術を用いて構築したシステム(以下、分散台帳システム)を本番稼働させるためには、従来型システム(例:例えばWebサーバとDBサーバを用いたWebシステム)と同等にシステム運用管理(例:台帳のバックアップ/リストア、サービス停止など)が必要となる。
一方、分散台帳システムは、複数の主体でコンソーシアム等を構成してビジネスネットワークが構築/運用されるケースがある。言い換えると、分散台帳システムは複数の組織にまたがって構成されうる。
そのような分散台帳システムに対して従来型システムの運用管理手法を適用した場合、第一の方法として、すべてのノードを単独運用者が運用管理する方法と、第二の方法として、各ノードの運用者(例えば、各組織のノードの所有者)がそれぞれ個別に運用管理する方法が考えられる。
このうち第一の方法を用いた場合には、運用が中央集権化してしまい、BCシステムの特徴であった非中央集権性の強みが薄れてしまうという問題点がある。また、マルチベンダでの運用には対応することができない課題も残る。一方、第二の方法を用いた場合には、管理者やポリシーが組織ごとに別々であるため、同じ取り決めやタイミングで運用できないという問題点がある。そもそも分散台帳システムでは、管理者が異なれば他組織のノードにアクセスできず、また運用方法やポリシーが組織間でバラバラで、同じ取り決めやタイミングで運用実行できない背景がある。
そこで本発明の目的は、分散台帳システムにおいて管理者が複数存在する状況下でも、ノード間でポリシーやタイミングを揃えた運用管理を可能とする技術を提供することにある。
上記課題を解決する本発明の運用管理方法は、複数のノードで構成される分散台帳システムにおいて、前記複数のノードのうち少なくとも所定の複数ノードは、それぞれ、分散台帳にて当該分散台帳システムの運用管理用の運用スマートコントラクトを管理し、前記
所定の複数ノードのうち少なくとも1つのノードがトランザクションを受け取った場合、前記トランザクションを受け取ったノードは、前記トランザクションの種別が前記運用スマートコントラクトか否かを判定し、当該判定結果に基づき、前記運用スマートコントラクトを実行することを特徴とする。
また、本発明の運用管理システムは、分散台帳システムの複数のノードで構成されるシステムであって、前記複数のノードのうち少なくとも所定の複数ノードは、それぞれ、分散台帳にて当該分散台帳システムの運用管理用の運用スマートコントラクトを管理し、前記所定の複数ノードのうち少なくとも1つのノードがトランザクションを受け取った場合、前記トランザクションを受け取ったノードは、前記トランザクションの種別が前記運用スマートコントラクトか否かを判定し、当該判定結果に基づき、前記運用スマートコントラクトを実行するものであることを特徴とする。
また、本発明の運用管理プログラムは、分散台帳システムを構成する複数のノードのうち少なくとも所定の複数ノードであって、分散台帳にて当該分散台帳システムの運用管理用の運用スマートコントラクトを管理するノード各々に、前記所定の複数ノードのうち少なくとも1つのノードがトランザクションを受け取った場合、前記トランザクションを受け取ったノードにおいて、前記トランザクションの種別が前記運用スマートコントラクトか否かを判定し、当該判定結果に基づき、前記運用スマートコントラクトを実行させることを特徴とする。
本発明によれば、分散台帳システムにおいて管理者が複数存在する状況下でも、ノード間でポリシーやタイミングを揃えた運用管理が可能となる。
本実施形態の運用管理方法における基本概念を示す図である。 実施例1における運用管理システムを模式的に示す図である。 実施例1における分散台帳ノードの物理的な構成を示すブロック図である。 本実施形態における分散台帳上のブロックチェーンのデータ構造例を示す図である。 本実施形態における分散台帳上のステート情報のデータ構造例を示す図である。 本実施形態におけるシステム運用SCのデータ構造および関数の定義例を示す図である。 本実施形態におけるビジネスネットワークのメンバー新規登録処理の例を示すフロー図である。 本実施形態における業務SCおよびシステム運用SCのトランザクション処理例を示すフロー図である。 実施例1における運用管理システム全体としてのシステム運用SCに従った運用作業実行の流れを示すフロー図である。 本実施形態におけるシステム運用SCのデプロイTXの内部処理例を示すフロー図である。 本実施形態におけるシステム運用SCのSC関数「運用実行」呼び出し時の内部処理例を示すフロー図である。 本実施形態における運用管理アプリの画面例を示す図である。 実施例2における運用管理システム全体としてのシステム運用SCに従った運用実行受付、作業実行、実行完了登録、リカバリ処理までの一連の流れを示すフロー図である。 本実施形態におけるシステム運用SCのSC関数「運用実行受付」呼び出し時の内部処理例を示すフロー図である。 本実施形態におけるシステム運用SCのSC関数「運用実行完了登録」呼び出し時の内部処理例を示すフロー図である。 本実施形態におけるシステム運用SCのSC関数「運用失敗リカバリ」呼び出し時の内部処理例を示す図である。 実施例3における運用管理システム全体としてのシステム運用SCに従った運用実行受付、承認、作業実行処理までの一連の流れを示すフロー図である。 実施例3における運用実行受付処理として、システム運用SCのSC関数「運用実行受付」呼び出し時の内部処理例を示すフロー図である。 本実施形態におけるシステム運用SCのSC関数「運用実行承認」呼び出し時の内部処理例を示すフロー図である。 実施例4における運用管理システムを模式的に示す図である。 実施例4における運用作業の定期実行処理の例を示すフロー図である。 実施例5における運用作業の定期実行処理の例を示すフロー図である。 実施例6におけるシステム運用SC管理用のメタコントラクトにおけるシステム運用SCの新規登録の受付処理例を示す図である。 実施例6におけるシステム運用SC管理用のメタコントラクトにおけるシステム運用SCの新規登録の承認処理例を示す図である。 実施例7における運用管理システムとその管理対象たる分散処理システムのネットワーク構成例を示す図である。
−−−実施例1−−−
図1に本実施形態の運用管理方法における基本概念を示す。本実施形態では、システム運用作業を、分散台帳上で管理するTXあるいはSCとして取り扱うことで、分散台帳システム6を構成する分散台帳ノード3の間で合意形成しながらシステム運用作業を実施する。
また、この場合の分散台帳システム6は、各分散台帳ノード3において、システム運用作業のための運用スマートコントラクト372(以下、システム運用SC)を管理し、このシステム運用SCに対応する運用実行機能(例えば、運用コマンドや管理API機能、運用実行を行うプログラムやエージェント等)を備える(本発明ではこのような機能を提供するプログラムを運用実行プログラム36と称する)。
ここでは一例として、分散台帳システム6を構成する分散台帳ノード3に対して、運用実行要求としてシステム運用SCの実行TXが発行されると、分散台帳ノード3の間でこのTXに対する合意形成がされる。また、この合意形成の後、各分散台帳ノード3上でこのシステム運用SCにて定義された運用手順(例:運用コマンド群)に従って運用作業が実行される。このようにして、複数の分散台帳ノードの間で合意形成を行いながら、非中央集権的かつ同時並行的に運用作業を実行する。
続いて、上述の基本概念を実装するコンピュータシステム、すなわち運用管理システム10の構成例について説明する。図2は、実施例1における運用管理システム10を模式的に示す図である。
例示する運用管理システム10は、1台以上の分散台帳ノード3、1台以上のクライアントノード4によって構成される(分散台帳システムとも言える)。これらの機器は、物理的な通信回線2を通してネットワーク1に接続される。
上述の構成のうち分散台帳ノード3は、コンセンサス管理部31、スマートコントラクト実行/管理部32(以下、SC実行/管理部32とも称する)、メンバー管理部33、トランザクション管理部34、トランザクション発行部35、分散台帳37、参加メンバー管理情報38によって構成される。
このうちコンセンサス管理部31は、ネットワークプロトコル部311を備える。また、分散台帳ノード3は、トランザクション管理部34の機能によりTXを受け付けて、コンセンサス管理部31の機能によって、他のノードとの間でTXを受け入れてよいかの合意形成を行う。また、この分散台帳ノード3は、上述の合意形成がなされたら、SC実行/管理部32の機能を介して、SCのデプロイ、デプロイ済みのSCに対する実行を行い、TXの履歴とその実行結果を分散台帳37に記録する。
なお、分散台帳ノード3の各間の通信は、ネットワークプロトコル部311の機能によって行う。また、分散台帳ノード3のトランザクション管理部34は、クライアントノード4等の各ノードからの要求に対して、TXを受け付けたり、TXの履歴情報を取得・閲覧したりする機能/インタフェースを提供する。本実施例では、分散台帳ノード3がTX発行可能であることとし、トランザクション発行部35を介して各種TXを発行する。
また、分散台帳ノード3のメンバー管理部33は、ビジネスネットワークに参加するメンバーの新規発行や認証機能を提供する。メンバー管理では、秘密鍵と公開鍵のペアを用いて、参加メンバーの認証やTXへの署名、SC実行権限の制御等を行うことを想定する。こうしたメンバー管理に関する鍵情報は、参加メンバー管理情報38上に格納・管理される。
トランザクション管理部34は、TXを受け付けた際に、適宜、メンバー管理部33の機能を介して、TXの発行者が権限を持った正しい参加者かどうかを確認するが、こうした構成自体は適宜な公知技術を採用すればよく、詳細説明は省略する。
また、分散台帳37では、業務に関するSC(以下、業務SC371)およびシステム運用SC372に関わる台帳情報を格納・管理する。そのデータ構造としては、本実施例では、TXの履歴をBCとして、TXの実行結果に基づくステート情報をテーブル上で保持することを想定する。
なお、分散台帳ノード3における運用実行プログラム36は、システム運用SC372内で定義された運用手順を実行するプログラムである。具体的には、運用コマンドや管理API機能、それらの実行の組合せを記述したり、プラットフォーム依存部分を隠蔽したりした運用スクリプト、運用管理機能を実行するエージェント等を想定する。
この運用実行プログラム36は、予め分散台帳ノード3上に配置されていても良いし、システム運用SC372をデプロイするタイミングで配置されても良い。
一方、クライアントノード4は、トランザクション発行部35、業務アプリ41、および、運用管理アプリ42によって構成される。SCの利用者もしくは提供者は、クライアントノード4のトランザクション発行部35を介して各種TXを発行し、これをそれぞれの分散台帳ノード3に対して送信する。
なお、TXには発行者情報を付与するが、この情報としては参加メンバー管理情報38によって発行された認証情報(秘密鍵)を利用する。業務アプリ41は、トランザクション発行部35を介して、業務SC371に関するTXを発行することで、業務処理を実行/管理するアプリである。運用管理アプリ42は、トランザクション発行部35を介して、システム運用SC372に関するTXを発行することで、システム運用作業を実行/管
理するアプリである。
本実施例では、例えば、それぞれ異なる主体によって管理される、複数台の分散台帳ノード3の存在を想定する。上述の主体は、例えば、事業者、組織、ベンダである。同様に、クライアントノード4も複数台存在し、複数のSC利用者がそれぞれ別のクライアントノード4を利用することを想定する。なお、クライアントノード4に関しては、TXに付与する認証情報をユーザ毎に切り替えることにより、複数のSC利用者が共用することも可能である。
続いて、実施例1における分散台帳ノード3の物理的な構成について説明する。図3は、実施例1における分散台帳ノード3の物理的な構成例を示すブロック図である。
本実施例における分散台帳ノード3は、インタフェース(I/F)100、演算装置たるプロセッサ101、および、記憶装置たるメモリ102を備える計算機である。
なお、これらI/F100、プロセッサ101、および、メモリ102は、データバス103によって接続されている。
このような構成を備える分散台帳ノード3は、I/F100を介して、ネットワーク1と通信する。プロセッサ101は、CPU等の演算装置である。メモリ102は、プログラムおよびデータを保持するための記憶装置である。プロセッサ101は、メモリ102からデータバス103を介してプログラム110(運用管理プログラム)を読み出し、実行することで必要な機能を実装する。
次に、分散台帳37の構成例について説明する。図4および図5は、分散台帳37に格納するデータ構造の一例を示す図である。このうち図4は、分散台帳37上で管理するデータ構造の一つであるBCの例を示す図である。
BCを用いた分散台帳管理では、複数のTXをブロックとしてまとめて、各ブロックが前のブロックのハッシュ値を持つことでデータを数珠つなぎにして管理する。こうした構成において前段のブロックの値が1ビットでも変わると後続の全ブロックのハッシュ値が変化するため、改ざんを困難にすることができる。なお、本実施例では説明をシンプルにするために、1つのTXにつき1ブロックとするが、本発明は、複数TXをまとめて1ブロックに格納した場合にも適用可能である。
図4におけるブロック3712〜ブロック3721、ブロック3721〜ブロック3722、および、ブロック3713は、一連のブロックの連なり、すなわちBCとなる。
各ブロックは、それぞれ業務SCのデプロイ、実行、システム運用SCのデプロイ、実行、いずれかのTX情報を含む。また各ブロックはそのブロックの生成に関するタイムスタンプ情報を含む。さらに各ブロックは、前ブロックのハッシュ値を含み、後述のステート情報から生成したハッシュ値を含む。
上記のようなデータ構造により、業務SCのデプロイ、実行、システム運用SCのデプロイ、実行TXがBCの中でデータの連鎖として管理されることとなる。
こうしたBCを構成するブロックのうちブロック3711は、業務SC371のデプロイTXを格納したブロックの一例である。この例では、貨物輸送に関するビジネスコントラクトの例を示している。
本実施例のデプロイTXは、コントラクトが業務かシステム運用かを特定するコントラクト種別、コントラクトを一意に識別するコントラクトID、コントラクトの実態(例え
ば実行可能なバイナリ)を含む。また、コントラクトが持つ関数名やその引数を利用者が把握するためのコントラクト入力仕様を含む。
さらに、デプロイ時に指定した入力引数にしたがって決めたパラメータ(例えばコントラクトの利用者や各種定義情報等)であるコントラクトメタ定義を含む。また、このデプロイTXの発行元、すなわち、提供者を識別するためのID情報を含む。さらに発行元とデータに改ざんが無いことを検証するために用いる電子署名を含む。この電子署名はメンバー管理部33が発行した各ネットワーク参加メンバー(すなわちSC提供者や利用者)の秘密鍵を用いて生成され、そのペアとなる公開鍵によって検証をすることが可能である。
また、ブロック3712は業務SC371の実行TXを格納したブロックの一例である。本実施例の実行TXは、呼び出し対象となるコントラクトのコントラクトID、呼び出し対象となるコントラクトの関数名と入力する引数の情報を含む。
さらにこの本番実行TXの発行元、すなわち、利用者を識別するためのID情報を含む。さらに発行元とデータに改ざんがないことを検証するために用いる利用者署名を含む。なお、発行元だけでなく、合意形成に関わったネットワーク参加者の情報も管理/保持してもよい。
また、ブロック3721およびブロック3722は、システム運用SC372のデプロイTXおよび実行TXを格納したブロックの一例である。本実施例のシステム運用SC372のデプロイTXおよび実行TXは、大枠のデータ構造としては、業務SC371の同TXと同様の情報を含む。単純に業務に関わるSCが記述されているか、システム運用に関するSCが記述されているかの違いしかない想定である。これにより分散台帳システム6の内部(具体的には分散台帳ノード3の31〜35の各機能)に手を加えなくとも、外側の機能として本発明を実装することが可能である。以降では、SCが持つ関数のことをSC関数とも称する。
図5は、本実施例の分散台帳37上で管理するステート情報を示す図である。BCを用いた分散台帳管理では、通常、(最新の)ステート(例えば、仮想通貨の場合にはアカウントの残高)を取得するためには、BCを辿らなければならない。これでは処理効率が悪いため、BCとは別に、最新のステート情報をキャッシュしておく方法が存在する(非特許文献3等)。よって本実施例でも最新のステート情報を保持することを想定する。
本実施例では、コントラクト毎にステートのデータ領域が用意されることとする。ステート情報は、コントラクトIDとそのコントラクトの実態を保持する。
これにより、分散台帳ノード3のSC実行/管理部32は、コントラクトIDをキーにして、コントラクトの実態を取得して実行することができる。また、ステート情報はSCの実行結果を保持するための内部テーブルを備える。TXが実行される度にこの内部テーブルの内容を更新する。本ステート情報に関しても業務SC371とシステム運用SC372の両方のSCの情報が格納される。
続いて、本実施例におけるシステム運用SC372の具体例について説明する。図6は、システム運用SC372のデータ構造およびSC関数の例を示す図である。
システム運用SC372におけるデータ構造は、ステート情報として管理・保持される。システム運用SC372内のデータ構造では、システム運用に関するポリシーとして、「合意形成ポリシー」、「運用内容定義」、「運用手順」が記述されている。
このうち「合意形成ポリシー」は、各運用作業に対応するシステム運用SC372をどのノード上で合意を取って、どのノード上で実行するかを管理する情報である。ここでは、合意形成ポリシーは、システム運用SC372の内部情報として管理されている想定だが、合意形成ポリシーはシステム運用SC372の外側で管理されていてもよい(その管理方法は基盤の実装にも依存する)。
また、「運用内容定義」は、運用作業の概要を示す情報である。「運用手順」には、本運用作業で行う運用プロセスや個々の運用操作(運用コマンド、管理API等の呼び出し)が定義/管理されている。運用手順はソースコードベース(例えば、運用コマンドの羅列)で記述されていることが望ましい。ソースコードベースとすることで、運用作業を均一的に行うことができる。「運用実行履歴情報」は、システム運用SCで定義した運用作業の実行履歴である。
なお、SC関数としては、「運用定義設定」、「運用定義参照」、「運用実行履歴参照」、「運用実行」が定義されることとする。システム運用SC372に対する実行TXの発行時にこれらの各SC関数が指定されて実行される。
「運用定義設定」は、本SCで定義した運用作業の定義変更を行うSC関数である。基本的に、運用作業の定義は、デプロイ時(デプロイTX発行時)に設定される想定だが、運用ポリシーの変更が必要な場合には、本SC関数を利用することで定義の更新も行えることとする。
また、「運用定義参照」と「運用実行履歴参照」は、システム運用SC372で定義された運用定義およびその実行履歴の情報を取得/参照するためのSC関数である。
また、「運用実行」は、システム運用SC372で定義した運用作業を実行するSC関数である。運用作業中で実行される運用手順は、主にデータ構造「運用手順」中に記述されている想定だが、「運用作業」のSC関数中のコードとして記述されていてもよい。どちらの場合にも、コードベースにより、運用作業を共通化することが可能である。
ここで「運用実行」は単純な運用実行だけでなく、運用作業のパターンによって、いくつかのバリエーションが考えられる。例えば、「運用実行」処理を、受付処理を行う「運用実行受付」と、受け付けた運用実行の完了を登録する「運用実行完了登録」とに分けてもよい。
また運用実行が途中で失敗した場合に実行するリカバリ処理を、SC関数(例:「運用失敗リカバリ」)に定義しておいてもよい。さらには、運用実行前に管理者/管理組織による明示的な承認プロセスを設けたい場合には、SC関数「運用実行承認」を用意してもよい。実施例1では単純に運用実行処理を行うケースを示し、これらのバリエーションについては実施例2以降で述べる。
なお、図6に示したシステム運用SC372の例では、特定のシステム運用作業ではなく、システム運用作業の共通的な雛形を想定した記載となっている。実際には、この雛形に従って「バックアップ運用」等の具体的な運用作業が当てはめられる。
具体的な運用作業のあてはめ方(システム運用SCの定義方法)としては、具体的な運用作業毎にシステム運用SCを定義してもよいし、共通のシステム運用SCを用意しておいて、デプロイ時引数などのパラメータ入力によって具体的な運用作業に関する情報を定義してもよい。また、一つのシステム運用SCの中で単一の運用作業を管理してもよいし(その場合には例えば、コントラクトID毎に異なる種類の運用作業が管理される)、2種
類以上の運用作業を管理してもよい(その場合には例えば、図5の定義ID毎に異なる種類の運用作業が管理される)。
ここで、システム運用作業の例としては、分散台帳データのバックアップ/リストア作業、分散台帳システムに関するサービス停止作業、障害分析や監査を目的とした各ノードからのシステムログ取得作業、明示的な承認プロセスを伴うノード/リソース増減やSC更新作業、システム緊急対策作業(セキュリティ対策、障害対策)等が挙げられる。こうした各種の運用作業のうち、以降の実施例の説明では、必要に応じて、分散台帳ノード3が管理する台帳データのバックアップ運用作業を具体例として説明を行っていく。
なお、図6中の右側の吹き出し3725では、台帳データのバックアップ運用を例とした運用手順の具体的なイメージを示す。SC関数「運用実行」中もしくはデータ構造「運用手順」中には、吹き出し3725中の“例1)”にて示す通り、運用作業のコマンド列が列挙されていてもよいし、“例2)”にて示す通り、呼び出し先となる運用実行プログラム36(例えば、運用実行コマンド列を記載した外部プログラム)や関連する設定ファイルが示されていてもよい。
次に、実施例1における運用管理方法のフロー例について説明する。実施例1では、運用管理方法の基本形として、システム運用SC372で定義された運用作業を単純に実行する例を示す。
図7は、ビジネスネットワークに参加するメンバーの新規登録処理の例を示すフローチャートである。この場合、分散台帳ノード3のメンバー管理部33は、クライアントノード4等の他ノードからメンバー登録要求を受け付ける(S101)。このメンバー登録要求には、要求メンバーを一意に識別するメンバーIDが含まれることとする。
続いて、メンバー管理部33は、適宜なアルゴリズムにて秘密鍵と公開鍵の組を生成し、この組みを、S101で受け取ったメンバーIDと紐付ける(S102)。
次に、メンバー管理部33は、S101得た新規登録対象となるメンバーIDと、S102で生成した公開鍵とを、他のノードにブロードキャストする(S103)。ここでブロードキャストされたメンバーIDおよび公開鍵の情報は、各ノード上で参加メンバー管理情報38として保管する。
さらに、メンバー管理部33は、メンバー登録要求を行ったノード(S101の契機となったノード)に対し、S102で生成した秘密鍵を返す(S104)。一方、この秘密鍵を受け取ったノードは、参加メンバー管理情報38に自身の秘密鍵として保管する。
本実施例では、以上のようにして生成した秘密鍵と公開鍵のペアを用いて、ネットワーク参加メンバーの認証やTXへの署名、SC実行権限の制御等を行うことを想定する。
具体的には、例えば、クライアントノード4側は、発行された秘密鍵で電子署名したTXを発行し、検証ノード側が公開鍵を用いて電子署名を検証することで、本人確認を実現できる。
なお、公開鍵と秘密鍵の組を生成する手法や署名検証をする手法、鍵とIDを紐付ける手法については、公知または周知の技術を適用すれば良いので、本実施例1では詳述しない。また、本実施例では、メンバー管理部33の機能を分散台帳ノード3中に機能として示したが、外部にメンバー管理専用のノードを立ててそのノードがメンバー管理部33と同等の機能を提供するとしてもよい。
続いて、TX実行処理について説明する。図8は、TX実行処理、すなわち、業務SCのデプロイ、実行、システム運用SCのデプロイ、実行処理の例を示すフローチャートである。
この場合、分散台帳ノード3のトランザクション管理部34が、クライアントノード4等のTX発行元からTXを受け取り(S201)、これをコンセンサス管理部31に渡すことで、SC/TXの種別に応じて、業務SC371のデプロイ、実行、システム運用SC372のデプロイ、実行処理を行う。
コンセンサス管理部31は、トランザクション管理部34から受け取ったTXが、業務SC371のデプロイTXであった場合(S202:NO、S203:YES)、他の分散台帳ノード3との間で、受け取ったTXを実行してよいか、ブロックとして、BCの末尾に追加してよいかの合意形成処理を行う(S204)。
具体的な合意形成処理方式としては、公知または周知の技術を適用すれば良い。具体的には、例えば、Plactical Byzantine Fault Torerance(PBFT)と呼ばれるアルゴリズム等を採用することが考えられる。PBFTは合意形成に参加するすべてのノード(すなわち検証ノード)の間で一定(3分の2)以上のノードによる合意を条件とするアルゴリズムである。
上述のPBFTをベースとした合意形成を簡単に説明すると、分散台帳ノード3は、受け取ったTXをネットワークに参加するすべての分散台帳ノード3に対してブロードキャストする。一方、各分散台帳ノード3では、TXに対する署名検証を行って改ざんがされていないことやTXの内容の正当性を確認し、その確認結果を他の分散台帳ノード3に対してブロードキャストする。
一定数以上の分散台帳ノード3による確認が取れた場合、分散台帳ノード3は、TXの承認準備が完了したことを他の分散台帳ノード3に対してブロードキャストする。そして、一定数以上の分散台帳ノード3による承認準備完了が確認できたことをもって合意形成が完了する。
こうして合意形成が完了したら、コンセンサス管理部31は、SC実行/管理部32を介して、TXに含まれるSCを分散台帳37に登録する(S205)。具体的には、TXの内容に基づき、コントラクトIDやコントラクト実態を分散台帳37上のステート情報として登録し、BCの末尾にこのデプロイTXを含むブロックを追加する。
最後に、コンセンサス管理部31は、デプロイTXの実行結果をTX発行元に返す(S206)。
一方、トランザクション管理部34から受け取ったTXが業務SC371の実行TXの場合(S202:NO、S203:NO)、コンセンサス管理部31は、デプロイTXと同様に合意形成処理を行う(S207)。この合意形成処理はS204と同様である。
この合意形成が完了したら、コンセンサス管理部31は、SC実行/管理部32を介して、SCを実行して分散台帳37の内容を更新する(S208)。
具体的には、実行TX内で指定されたコントラクトIDを持つSC(登録済みであることを前提とする)に対して、実行TX内で指定された呼び出し関数と入力引数を与えて実行する。そして、その結果に基づき、分散台帳37の内容を更新する。また、コンセンサス管理部31は、実行結果に基づいて、本コントラクトに関するステート情報502を更新し、BCの末尾のブロックとして実行TXを追加する。
最後に、コンセンサス管理部31は、この実行TXの実行結果(例えば、関数の戻り値)をTX発行元に返す(S209)。
他方、トランザクション管理部34から受け取ったTXがシステム運用SC372のTXの場合(S202:YES)、コンセンサス管理部31は、業務SC371の場合と同様にSCのデプロイもしくは実行処理を行う(S210〜S215)。
ただし、業務ではなくシステム運用SC372で指定された運用手順を実行する点が異なる(S214)。その運用作業の実行自体は運用実行プログラム36の機能によって行われる。
ここで、実施例1におけるシステム全体としてのシステム運用SC372に従った運用作業実行の流れについて、図9に基づき説明する。
この場合、あるノードがシステム運用SC372のデプロイTXを発行すると(S1001)、各分散台帳ノード3はそのTXを受け取り、ノード間で合意形成を行った上で、TXに従ってシステム運用SC372をデプロイする(S1002)。
システム運用SC372がデプロイされた後、運用作業実行のタイミングで、あるノードから、上記システム運用SC372に対する運用実行TXとしてSC関数「運用実行」の呼び出しが発行されると(S1003)、各分散台帳ノード3はそのTXを受け取り、ノード間で合意形成を行った上で、運用実行TXに従って運用作業を実行する(S1004)。
ここで、運用作業実行のタイミングは、SCで定義した運用作業の実行権限のあるいずれかの管理者によってシステム運用アプリ42の表示画面上の操作をもって運用実行TXが発行されたタイミングや、各ノードの直接操作によって運用実行TXが発行されたタイミング、或いは、スケジューリングされた定期実行契機に運用実行TXが自動発行されたタイミング、などを想定できる。
図10はシステム運用SC372のデプロイTXの内部処理例を示すフローチャートである。各分散台帳ノード3は、合意形成済みのシステム運用SC372のデプロイTXを受け取る(S301)と、SC実行/管理部32の機能によりシステム運用SC372のデプロイ処理を行う。
具体的には、分散台帳ノード3は、まずデプロイTXに従ってシステム運用SC372のコントラクト実態の配置を行う(S302)。
このコントラクトが外部で管理され、運用実行プログラム36のインストールが不要の場合、すなわち、各分散台帳ノード3上に標準で導入済みであったり、コントラクト実態が必要な運用処理をすべて同梱している場合には(S303:NO)、分散台帳ノード3は、デプロイTXに従って、デプロイ対象となるシステム運用SC372の運用定義情報を分散台帳37に登録し(S307)、デプロイ成功を返す(S308)。
一方、外部で管理された運用実行プログラム36のインストールが必要な場合(S303:YES)、分散台帳ノード3は、システム運用SC372に対応する運用実行プログラム36を外部リポジトリ等からダウンロードし、これを分散台帳ノード3上の所定のディレクトリ以下にインストールする(S304)。なお、このインストールは、処理フローとは別に予め実行されていてもよい。
次に、分散台帳ノード3は、運用実行プログラム36が正しいものであるかどうかを確認する(S306)。この確認方法としては、例えば、分散台帳ノード3上にインストー
ルした運用実行プログラム36のバイナリからハッシュ値を計算し、このハッシュ値と、予め別環境で別途計算してシステム運用SC372上の内部変数として保持したハッシュ値とを比較し、両者が一致するか否かに基づいて判定する。こうした判定に利用するハッシュ値は、別環境ではなく、他の分散台帳ノード3上の同バイナリから計算したハッシュ値を用いても良い。
上述の判定の結果、運用実行プログラム36が正しいことが判明した場合(S306:YES)、分散台帳ノード3は、後続の正常系の処理(S307〜S308)を行い、もし、正しくないことが判明した場合(S306:NO)、デプロイ失敗を返す(S309)。
このように運用実行プログラム36が正しいかどうかを判定することで、外部の運用実行プログラム36を利用した場合に、プログラムの改竄、バージョンや設定の違い、配置忘れ等の発生により、想定外の運用作業が実行されることを抑止でき、運用作業の均一性をより高めることができる。
図11は、システム運用SC372のSC関数「運用実行」呼び出し時の内部処理例を示すフローチャートである。
各分散台帳ノード3は、合意形成済みの運用実行TXとして、システム運用SC372のSC関数「運用実行」呼び出しを受け取る(S401)と、SC実行/管理部32の機能によって、本TXに従ったシステム運用作業の実行を行う。具体的な内部処理を以下に示す。
分散台帳ノード3は、実行対象となるシステム運用SC372中で、定義された運用手順において別途インストールされた運用実行プログラム36を含まない場合(S402:NO)の場合、システム運用SC372内に定義された運用手順に従って運用作業を実行する(S403)。台帳データバックアップ運用作業の場合には、例えば、予め定義された手順に従って、台帳バックアップデータ圧縮コマンド、バックアップデータ退避コマンドを順に実行する。
また、運用作業の実行が完了した後で、SC実行/管理部32は、分散台帳37中のステート情報の運用実行履歴に対して、今回の運用実行を追記/更新する(S408)。例えば、運用実行履歴のレコードとして、運用定義名、実行開始/終了時刻、および実行状態として「実行完了」を追加する。
最後に、分散台帳ノード3は、本システム運用SC372の実行結果(例:成功)を返す(S409)。
一方、実行対象となるシステム運用SC372中で、定義された運用手順において別途インストールされた運用実行プログラム36を含まない場合(S402:NO)、分散台帳ノード3は、実行の度に運用実行プログラム36の正しさの確認処理をしてもよい。
運用実行プログラム36の正しさが必要な場合(S404:YES)、分散台帳ノード3は、S306と同様の方法で、インストールされた運用実行プログラム36が正しいかどうか判定する(S405)。
この判定の結果、運用実行プログラム36が正しい(S406:YES)、もしくは確認不要(S404:NO)の場合、分散台帳ノード3は、システム運用SC372内に定義された運用手順に従って運用実行プログラム36を実行することで運用作業を行う(S407)。台帳データバックアップ運用作業の場合には、例えば、別途インストールされたバックアップ用プログラムやスクリプトを呼び出し、その内部で、リクエスト受付停止
、台帳バックアップデータ圧縮、バックアップデータ退避、リクエスト受け付け再開といった一連のバックアップ処理を行う。
運用作業の実行が完了した後で、SC実行/管理部32は、分散台帳37中のステート情報の運用実行履歴に対して、今回の運用実行を追記/更新し(S408)、本システム運用SC372の実行結果(例:成功)を返す(S409)。
なお、上述の判定の結果、運用実行プログラム36が正しくなかった場合(S406:NO)、分散台帳ノード3は、運用作業の実行は行わず、本システム運用SC372の実行結果(例:プログラム不正による失敗)を返す(S409)。
なお、上述のような運用管理手順を実行するに際し、分散台帳ノード3がユーザに対して表示する画面例を図12で示す。図12は、運用管理アプリ42の表示画面1200の例である。
この表示画面1200の画面上部には、システム運用SC372で定義した運用作業一覧1201が配置されている。この運用作業一覧1201における表示情報は、分散台帳ノード3がSC関数「運用定義参照」を実行することで取得され、配置される。
この運用作業一覧1201の右部には、運用管理ボタン1202が示される。SCで定義した運用作業の実行権限のある管理者は、運用管理アプリ42の運用管理ボタン1202中の実行ボタン12021を押下することで、指定したシステム運用SC372の運用実行TXを発行できる。また、実行履歴参照ボタン12022を押下することで、指定したシステム運用SC372の運用実行履歴一覧1203を参照できる。
こうした運用実行履歴一覧1203は、表示画面1200の下部に配置されている。この運用実行履歴一覧1203における表示情報は、分散台帳ノード3がSC関数「運用実行履歴参照」を実行することで取得できる。
運用管理アプリ42を介して、特定の運用管理者によってシステム運用作業の要求がされた場合にも、バックエンドでは複数の管理者が管理する分散台帳ノード3間で合意形成がなされ、各分散台帳ノード3上で同一の運用手順に従って同一のタイミングで運用作業が実行される。
以上で示したとおり、本実施形態の運用管理方法を用いることで、分散台帳システムにおいて複数の管理者が存在した場合にも、ポリシーや実行タイミングについて合意を取った上で足並みを揃えて運用作業を実行することが可能となる。すなわち、運用作業を非中央集権かつ正常水準を担保しながら実行できる。
また、複数のベンダで構築した分散処理システムの運用にも対応可能である。さらに、運用手順をSCの中に埋め込んで手順書化あるいはスクリプト化しておくことで、複数(主体の所有する)ノード間での操作の均一性が担保できる。
加えて、分散台帳システムの合意形成アルゴリズムを活用する副作用として、実行した運用作業が分散台帳システムの正常基準を満たすことを担保できる(例:PBFTではノード3f+1台中でf台が悪意のあるノードだった場合にも正常動作可能)。そのため、運用作業が失敗したり、悪意を持った運用者が存在したりする場合にも、理論上は分散台帳システムの合意アルゴリズムが保証する範囲で正常な運用水準を維持可能となる。
本実施例では、合意形成アルゴリズムとして、PBFTを用いた例を示したが、本発明
はそれに限定されず、他のアルゴリズムも利用した場合にも適用可能である。例えば、Bitcoinの合意形成アルゴリズムであるProof of Workあるいはその代替アルゴリズムであるProof of Stakeを用いてもよいし、Hyperleder Fabricの合意形成アルゴリズムであるEndorser-Orderer Mo
delを用いてもよい。さらに、本実施例の図8では、TX実行処理について、TXの受け取り、TXの識別/判定、合意形成、TXに基づくSCの実行処理、ブロック追加の順
で行う場合を例に示したが、処理の順序はこれに限定されない。例えば、TXの識別/判
定と合意形成の順番が逆であってもよい。
以降では、本発明の実施例の様々なバリエーションを示す。基本的には実施例1をベースとするため、共通部分の説明は省略する。また各実施例は複数組み合わせて適用することも可能である。
−−−実施例2−−−
実施例2では、システム運用SC372に従ったシステム運用作業に関して、これを運用実行の受付フェーズと運用実行の完了フェーズに分割し、さらには運用作業が途中で失敗した際にSCに従って自動リカバリも行う場合の例を示す。
本実施例を用いれば、システム運用SC372の中で実行される運用実行の完了を待つことがないため、運用作業に長時間を要する場合にも、次の別の実行TXを早期に実行可能となり、業務SC371や他のシステム運用SC372への影響を低減できる。また、運用作業を行うべき全てのノードにおいて、運用作業が確実に実行されて処理が完了したことを管理できる。さらに、運用失敗時の処理もSCとして記述することでリカバリ処理の均一化を図ることもできる。
図13には、実施例2におけるシステム全体としてのシステム運用SC372に従った運用実行受付、作業実行、実行完了登録、リカバリ処理までの一連の流れを示すフローチャートを示す。
この場合、各分散台帳ノード3は、システム運用SC372がデプロイ(S1101〜1102)された後、運用実行TXとして「運用実行受付」の呼び出しを受け取ると、SC上では運用実行受付処理だけを行った後に、システム運用実行TXの完了を返す(S1103〜S1104)。
次に、各分散台帳ノード3は、前述の運用実行受付処理を契機にして、システム運用SC372に従って運用作業を実行する(S1105)。
この運用作業の実行が完了したら、その完了を契機に、各分散台帳ノード3は、運用実行TXとして「運用実行完了登録」呼び出しを行う(S1106)。
次に、各分散台帳ノード3は、受け取った運用実行TXに従って運用実行完了処理を行う(S1107)。運用実行完了処理では、各分散台帳ノード3における運用実行完了状況を登録/管理し、運用実行完了の所定の条件(例えばすべての対象ノードにおける実行完了)を満たした場合に、システム全体としての運用作業が完了とする。
また、各分散台帳ノード3は、システム運用SC372において、運用実行が失敗した場合に、失敗に対するリカバリ処理を自動実行する。具体的には、あるノードでの運用作業失敗を検知したら、各分散台帳ノード3は、いずれかのノードによって運用実行TXとして「運用失敗リカバリ」を発行し(S1108)、各分散台帳ノードは受け取った運用実行TXに従って運用失敗リカバリ処理を行う(S1109)。失敗は、例えば、システム運用SC372で予め決めた実行タイムアウト時間を超過しても運用実行が完了しなかった場合に失敗とみなすこととする。
図14は、運用実行受付処理として、システム運用SC372のSC関数「運用実行受付」呼び出し時の内部処理例を示すフローチャートである。
この場合、各分散台帳ノード3は、合意形成済みの運用実行TXとして、システム運用SC372のSC関数「運用実行受付」呼び出しを受け取る(S501)と、SC実行/管理部32の機能によって、本TXに従ったシステム運用作業実行の受付処理を行う。具体的な内部処理を以下に示す。
本SC関数中で運用作業を非同期的に実行開始する場合(S502:YES)、分散台帳ノード3は、実施例1に示したSC関数「運用実行」と同様に運用作業(S402〜S407)の実行を開始する(S503)。ただし、実施例1とは異なり運用実行は非同期処理で実行して、SC内部では運用作業の完了を待たない。
S503、もしくは、本SC関数中では運用作業を実行開始しない場合(S502:NO)の後続処理として、SC実行/管理部32は、分散台帳37中のステート情報の運用実行履歴に対して、今回の運用実行受付を追記/更新する(S504)。例えば、運用実行履歴に、運用定義名、実行開始時刻、および実行状態として「実行中」のレコードを追加する。
最後に、分散台帳ノード3は、本システム運用SC372の実行結果(例:成功)を返す(S505)。
本SC関数中では運用作業を実行開始しない場合には、例えば、運用実行プログラム36がエージェントとして機能し、運用実行履歴を自律的かつ定期的に参照し、「実行中」の新規レコードの追加を契機に、本システム運用SC372に従った運用作業の実行を開始する。
図15は、運用実行完了時の処理として、システム運用SC372のSC関数「運用実行完了登録」呼び出し時の内部処理例を示すフローチャートである。
この場合、各分散台帳ノード3は、合意形成済みの運用実行TXとして、システム運用SC372のSC関数「運用実行完了登録」呼び出しを受け取る(S601)と、SC実行/管理部32の機能によって、本TXに従ったシステム運用作業実行に関する各ノードでの実行完了登録処理を行う。具体的な内部処理を以下に示す。
ここで、実行完了を管理するにあたり、各分散台帳ノード3における運用作業の完了を明示的に管理する上で、実行が完了したことを示す実行ログや実行結果 (例:バックアップファイル情報)、画面のスナップショットなど、それらのハッシュ値等をエビデンスとして登録/管理してもよい。
実行完了管理においてエビデンス管理を行う場合(S602:YES)、分散台帳ノード3は、実行完了エビデンスを取得/確認する(S603)。このエビデンスの取得方法としては、SC関数の入力引数に含めてもよいし、エビデンスをSC関数内部から参照可能な場所に配置しておき、SC関数内部で取得してもよい。
エビデンス管理を行わない場合(S602:NO)やS603の後続処理として、分散台帳ノード3は、運用実行TXを発行した分散台帳ノード3での運用作業の実行が完了したことをステート情報の運用実行履歴に対して追記する(S604)。
例えば、本運用実行を示すレコードの列に各ノードでの実行完了状況として、ノード名と完了時刻のペアを管理しておき、その情報を更新する。
さらに、分散台帳ノード3は、ステート情報を元に他のノードを含めた実行完了状況を
確認して、対象となる全ノードでの実行が完了かどうかを確認し(S605)、実行が完了していた場合(S605:YES)、ステート情報の運用実行履歴に対して本運用実行完了を追記/更新する。具体的には、例えば、本運用実行を示すレコードの実行状態を「実行中」から「実行完了」に変更して、実行完了時刻を登録する。
最後に、分散台帳ノード3は、本SCの実行結果を返す(S607)。
図16は、システム運用SC372のSC関数「運用失敗リカバリ」呼び出し時の内部処理例を示すフローチャートである。
この場合、各分散台帳ノード3は、合意形成済みの運用実行TXとして、システム運用SC372のSC関数「運用失敗リカバリ」呼び出しを受け取る(S651)と、SC実行/管理部32の機能によって、本TXに従って運用失敗時におけるリカバリ処理を行う。具体的な内部処理を以下に示す。
まず、SC実行/管理部32は、受け取った運用実行TXに従ってシステム運用SC372内に定義された運用手順に従ってリカバリ作業を実行する(S652)。台帳データバックアップ運用の場合のリカバリ処理の例にあげると、ロールバック処理として、バックアップ失敗の中間データの削除を行い、バックアップ処理を再実行する。
次に、分散台帳ノード3は、ステート情報の運用実行履歴に対して本運用実行を追記・更新する(S653)。具体的には、本運用実行を示すレコードの実行状態を「実行中」から「運用失敗/リカバリ完了」に変更して、実行完了時刻を登録する。
最後に、分散台帳ノード3は、本SCの実行結果を返す(S654)。
本実施例のリカバリ処理は、外部からのSC関数の「運用失敗リカバリ」呼び出しを契機としているが、SC内部でタイムアウト等の契機を管理しておき、SC関数内の処理として実行してもよい。
また、実行完了待ち状態のときにTXの受け入れ制御をしていないが、実行完了待ちの状態の場合には同一TXの受け入れをブロックしてもよい。そうすることにより、運用実行SCの実行集中による負荷上昇や二重実行を抑止することができる。
本実施例におけるエビデンス情報の管理は必須ではなく、管理をしなくても構わない。また他の実施例1を含めた他の実施例においてエビデンス情報を管理してもよい。
−−−実施例3−−−
実施例3では、システム運用SC372に従ったシステム運用実行において、各実行前に明示的な承認処理プロセスを含む場合の例を示す。この承認は、TXを受け入れるかどうかの合意形成処理(プロトコルレベル)よりも、上位概念(業務運用やシステム運用レベル)での承認処理を表し、例えば、運用作業実行前に各ノード上で前準備が必要な場合などに有効である。
図17は、実施例3における、システム全体としてのシステム運用SC372に従った運用実行受付、承認、作業実行処理までの一連の流れを示すフローチャートである。
この場合、各分散台帳ノード3は、システム運用SC372がデプロイ(S1201〜1202)された後、運用実行TXとして「運用実行受付」の呼び出しを受け取ると、SC上では運用実行受付処理だけを行った後に、システム運用実行TXの完了を返す(S1203〜S1204)。
次に、各分散台帳ノード3は、前述の運用実行受付処理を契機にして、本システム運用
SC372に従って運用作業を実行してよいかどうかの承認処理を行う(S1205)。この承認処理は自動実行でも人手による判定でもよい。
上述の承認が完了したならば、その完了を契機に、各分散台帳ノード3は、運用実行TXとして「運用実行承認」呼び出しを行う(S1206)。
次に、各分散台帳ノード3は、受け取った運用実行TXに従って、運用実行承認処理を行う(S1207)。運用実行承認処理では、各分散台帳ノード3における運用実行承認完了状況を登録/管理し、運用実行承認完了の所定の条件(例えばすべての対象ノードにおける承認完了)を満たした場合に、実施例1や2と同様にシステム運用SC372に従った運用作業を実行する。
本実施例では、分散台帳ノード3ごとに承認用のTX(SC関数「運用実行承認」呼び出し)を発行する例を示したが、ノードごとではなく、ビジネスネットワークに参加した組織ごとや管理者ごとに承認用のTXをまとめてもよい。
図18は、本実施例における運用実行受付処理として、システム運用SC372のSC関数「運用実行受付」呼び出し時の内部処理例を示すフローチャートである。
この場合、各分散台帳ノード3は、合意形成済みの運用実行TXとして、システム運用SC372のSC関数「運用実行受付」呼び出しを受け取る(S701)と、SC実行/管理部32の機能によって、本TXに従ったシステム運用作業実行の受付処理を行う。具体的な内部処理を以下に示す。
まず、SC実行/管理部32は、分散台帳37中のステート情報の運用実行履歴に対して、今回の運用実行受付を追記/更新する(S702)。例えば、運用実行履歴に、運用定義名、実行開始時刻、および実行状態として「承認中」のレコードを追加する。
最後に、分散台帳ノード3は、本システム運用SC372の実行結果(例:成功)を返す(S703)。
図19は、運用実行承認時の処理として、システム運用SC372のSC関数「運用実行承認」呼び出し時の内部処理例を示すフローチャートである。
この場合、各分散台帳ノード3は、合意形成済みの運用実行TXとして、システム運用SC372のSC関数「運用実行承認」呼び出しを受け取る(S751)と、SC実行/管理部32の機能によって、本TXに従ったシステム運用作業実行に関する各ノードでの実行承認処理を行う。具体的な内部処理を以下に示す。
まず、SC実行/管理部32は、運用実行TXを発行した分散台帳ノード3での運用実行の承認が完了したことをステート情報の運用実行履歴に対して追記する(S752)。例えば、本運用実行を示すレコードの列に各ノードでの承認完了状況として、ノード名と承認完了時刻のペアを管理しておき、その情報を更新する。
さらに、分散台帳ノード3は、ステート情報を元に、他のノードを含めた承認管理完了状況を確認して、対象となる全ノードでの承認が完了かどうかを確認する(S753)。この結果、承認が完了していることが判明した場合(S753:YES)、分散台帳ノード3は、ステート情報の運用実行履歴に対して本運用実行の承認完了を追記/更新する(S754)。具体的には、例えば、本運用実行を示すレコードの実行状態を「承認中」から「実行中」に変更する。
分散台帳ノード3は、上述のように承認完了したら、実施例1や2と同様にシステム運用SC372内に定義された運用手順に従って運用作業を実行し(S755)、本SCの
実行結果を返す(S756)。
なお、システム運用作業には、オンデマンドではなく、予め決めたスケジュールや起動条件に従って実行するような運用作業も存在する。スケジュール/実行条件は、例えば、特定の日時や特定のシステム状態(データ量の上限到達)などがあげられる。運用作業を定期実行するパターンとして、実施例4では、外部に用意した運用管理ノード5が定期実行を管理する例を、実施例5では、各分散台帳ノード3の内部、具体的には、運用実行プログラムが定期実行を管理する例をそれぞれ示す。
−−−実施例4−−−
図20は、実施例4における運用管理システム10を模式的に示す図である。実施例1までの運用管理システムとは異なり、運用管理ノード5が追加され、また、クライアントノード4上に運用管理アプリ42は不要となっている(それ以外については同様である)。
運用管理ノード5は、運用管理を実施するためのノードであり、本実施例では分散台帳ノード3と同様の立場で、ネットワークに参加し、システム運用SC372の合意形成処理に参加することを想定する。そのため、運用管理ノード5は、分散台帳ノード3と同様の機能を備える。
なお、運用管理ノード5は、システム運用SC372の処理にのみ参加して、業務SCの処理には参加しないこととする。そのため、運用管理ノード5上の分散台帳37では、システム運用SC372に関する情報のみ保持/管理するものとする。また、運用管理ノード5は運用管理アプリ42を備える。この機能は実施例1と同様である。
このように運用管理用のノードがネットワークに参画するシステム構成は、業務に参加しない複数ベンダが、システム運用作業のみに参加する場合に有効である。業務に参加していないベンダも、業務を行う組織とともに合意形成を行いながら、運用作業を実施するため、マルチベンダでの運用を非中央集権的に実施することができる。
図21は、実施例4における運用作業の定期実行処理の例を示すフローチャートである。ここでの前提として、各ノードには、定期実行を行うシステム運用SC372がデプロイされていることとする(S1301〜1302)。
続いて、システム運用SC372において定期実行のために取り決めた時間が経過したら(S1303)、運用管理ノード5は、システム運用SC372の運用実行TXとしてSC関数「運用実行」を発行する(S1304)。ここで、定期実行の頻度の情報は、例えば、デプロイ時の入力引数などで指定されて、SC内のステート情報として保持されることとする。
運用管理ノード5によって発行された運用実行TXについては、合意形成に参加する分散台帳ノード3および運用管理ノード5間で合意形成処理が実行される。
この合意形成処理の後、各分散台帳ノード3は、受け取った運用実行TXに従って運用作業を実行する(S1305)。
以降は、運用管理ノード5が定時実行の契機を待って、運用作業を繰り返し実行する(S1303〜1305)。
ここで、本実施例では運用管理ノード5が分散台帳ノード3と同等の立場で合意形成処理にも参画していたが、単にネットワーク参加者として運用実行TXを発行するだけで、合意形成を行わなくてもよい。その場合には、運用管理ノード5上に、分散台帳ノード3と同様の機能31〜34等は不要である。
−−−実施例5−−−
実施例5では、定期運用実行を各分散台帳ノード3の内部、具体的には運用実行プログラム36が管理する例を示す。本実施例における運用管理システム10は実施例1と同様である。
図22は、実施例5における運用作業の定期実行処理の例を示すフローチャートである。ここでの前提として、各分散台帳ノード3において、定期実行を行うシステム運用SC372がデプロイされていることとする(S1401〜1402)。従って、各分散台帳ノード3上の運用実行プログラム36が、定期実行を管理する。
例えば、定期実行のスケジュールは、SC内のステート情報から取得してもよいし、SC外の情報、例えば、運用実行プログラム36の設定情報に記述したものをつかってもよい。
この場合、運用実行プログラム36は、システム運用SC372で取り決めた時間が経過したら(S1403:YES)、ネットワーク参加者として、システム運用SC372の運用実行TXのSC関数「運用実行」を発行する(S1404)。
また、各分散台帳ノード3は、受け取った運用実行TXに従って運用作業を実行する(S1405)。
ここで本実施例では、運用実行プログラム36がSC関数「運用実行」を発行した後で運用作業を実行しているが、運用作業を実行した後でその結果をSC関数「運用実行完了」経由で登録する形でもよい。
−−−実施例6−−−
実施例3では、実行時に承認処理を行う例を示したが、加えてシステム運用SC372を新規登録する際にも、承認処理を行いたい場合がある。そこで実施例6では、システム運用SC372の管理を行うメタコントラクトを用意し、システム運用SC372の新規登録における承認処理を行う例について示す。
メタコントラクトは、システム運用SC372とは別の独立したSCであり、SC関数として「運用定義登録受付」と「運用定義登録承認」が定義されていることとする。なお、基本的なSCデプロイ/実行処理や分散台帳上での管理方法は、業務SC371やシステム運用SC372と同様であるため、説明は省略する。
図23は、システム運用SC372の管理を行うメタコントラクトにおけるシステム運用SC372の新規登録の受付処理を示す例である。
この場合、各分散台帳ノード3は、合意形成済みの実行TXとして、メタコントラクトのSC関数「運用定義登録受付」呼び出しを受け取る(S801)。
次に、各分散台帳ノード3は、SC実行/管理部32の機能によって、本TXに従ったシステム運用SC372の新規受付処理を行う。具体的な内部処理を以下に示す。
SC実行/管理部32は、分散台帳37中のステート情報の運用定義情報として、今回の新規受付を追記/更新する(S802)。例えば、運用定義情報およびその管理状態「承認処理中」をレコードとして追加する。
最後に、各分散台帳ノード3は、本SCの実行結果を返す(S803)。
図24は、上述のメタコントラクトにおけるシステム運用SC372の新規登録の承認処理例を示す図である。
この場合、各分散台帳ノード3は、合意形成済みの実行TXとして、メタコントラクト
のSC関数「運用定義登録承認」呼び出しを受け取る(S851)。
次に、各分散台帳ノード3は、SC実行/管理部32の機能によって、本TXに従ったメタコントラクトに関する各ノードでの実行承認処理を行う。具体的な内部処理を以下に示す。
ここでSC実行/管理部32は、実行TXを発行した分散台帳ノード3で、システム運用SC372の新規登録に関する承認が完了したことをステート情報の運用適宜情報に対して追記する(S852)。例えば、新規登録対象となる運用定義を示すレコードの列に各ノードでの承認完了状況として、ノード名と承認完了時刻のペアを管理しておき、その情報を更新する。
さらに、SC実行/管理部32は、ステート情報を元に他のノードを含めた承認管理完了状況を確認し、対象となる全ノードでの承認が完了か否か確認する(S853)。
その結果、承認が完了していた場合(S853:YES)、SC実行/管理部32は、ステート情報の運用定義情報に対して承認完了を追記/更新する(S854)。具体的には、例えば、新規登録対象となる運用定義を示すレコードの状態を「承認済」に変更する。 上述のように承認完了となれば、SC実行/管理部32は、メタコントラクト内にて、新規追加対象としたシステム運用SC372についてデプロイTXを発行する(S855)。この処理は他の実施例と同様である。
最後に、各分散台帳ノード3は、本SCの実行結果を返す(S856)。
このようにして、メタコントラクトを用意することで、システム運用作業の新規追加や更新プロセスでも承認処理を行うことができる。
ここまで説明した各実施例では、システム運用作業を管理するビジネスネットワークは、業務SC371と同一ビジネスネットワーク上で管理する例を示したが、システム運用専用の別のビジネスネットワークを構築してもよい。
また各実施例では、システム運用SC372に定義された運用作業に関する各ノードにおける実行は、システム運用SC372内での実行を行う例(例えば、S403)、もしくは、運用実行プログラム36が運用実行履歴を自律的かつ定期的に参照し「実行中」の新規レコードの追加を契機に実行を開始する例(例えば、図14の説明)を示した。しかし、その方法に限定されるものではない。
別の方法としては、イベント駆動で行う方法が挙げられる。具体的には、分散台帳システム内で、分散台帳ノード3の間もしくはビジネスネットワーク参加者間で発行/通知を可能とするイベントを管理する機能を有している場合に、システム運用SC372の内部で運用作業の実行を促すイベントを発行し、各分散台帳ノード3における運用実行プログラム36がイベントの通知を契機に運用作業を実行してもよい。その際には、運用作業内容を伝えるために、イベントの中に具体的な運用内容(例えば運用コマンド)や対象ノードを埋め込んでおき、運用実行プログラム36はその情報に従って運用作業を実行してもよい。なお、イベント自体はSC実行中ではなく、SC実行完了直後に発行されても構わない。また、イベント駆動で行う場合には、運用実行プログラム36が、実行完了後にその結果をSC関数「運用実行完了」を用いて登録してもよい。
本実施形態の運用管理方法は、主にシステム運用を想定したものであるが、方式そのものはシステム運用に限定されないため、業務運用(例えば,アプリ更新)を対象として適用してもよい。また、こうした運用管理方法は、分散台帳システムのシステム運用管理を主対象として説明したが、分散台帳システムだけに適用対象を限定するものではない。
例えば、分散処理システム全般で、複数の運用者によって、同一役割の複数ノード(分散処理ノード)に対して一括して運用作業を行いたい場合にも有効である。
図25に、実施例7における運用管理システム10とその管理対象たる分散処理システム50のネットワーク構成例を示す。
この場合、本実施形態における分散台帳ノード3それぞれが、分散処理システム50の運用管理用のスマートコントラクト500を分散台帳37で管理しているものとする。よって、分散台帳ノード3は当該スマートコントラクト500を上述の実施例と同様に実行することで、分散処理ノード55それぞれに対する運用作業を実行する。換言すれば、運用管理対象を、分散台帳システム6における各分散台帳ノード3の分散台帳37ではなく、各分散台帳ノード3に接続された各分散処理ノード55とした構成である。
以上、本発明の実施例について図面を参照して詳述してきたが、具体的な構成はこの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計なども含まれる。
こうした本実施形態によれば、分散台帳システムにおいて複数の管理者が存在した場合にも、ポリシーや実行タイミングについて合意を取った上で、足並みを揃えた運用作業を実行可能となる。すなわち、分散台帳システムにおける運用管理を非中央集権かつ正常水準を担保しながら実行できる。
また、複数のベンダで構築した分散処理システム(例:複数の分散処理ノードで負荷分担した分析システム)の運用管理にも対応可能である。この場合、運用管理対象が分散台帳ではなく、分散台帳システムの各ノードと接続された分散処理ノード、となる。さらに、運用手順をSCの中に埋め込んで手順書化あるいはスクリプト化しておくことで、複数(主体の所有する)ノード間での操作の均一性が担保できる。
すなわち、分散台帳システムにおいて管理者が複数存在する状況下でも、ノード間でポリシーやタイミングを揃えた運用管理が可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の運用管理方法において、前記分散台帳システムにおける前記トランザクションを受け取ったノードが、運用作業の受付フェーズと実行完了の確認フェーズとを含む前記運用スマートコントラクトを実行するとしてもよい。
これによれば、運用スマートコントラクトの中で実行される運用実行の完了を待つことがないため、運用作業が長時間かかる場合にも、次の別の実行トランザクションを早期に実行可能となり、業務SCや他のシステム運用SCへの影響を低減できる。また、運用作業を行うべき、すべてのノードにおいて運用実行が確実に実行されて処理が完了したことを管理することができる。
また、本実施形態の運用管理方法において、前記分散台帳システムにおける前記トランザクションを受け取ったノードが、前記運用スマートコントラクトを実行して、前記実行完了の確認フェーズにおける前記トランザクションに完了エビデンスもしくは完了エビデンスと紐づく情報を含む構成とするとしてもよい。
これによれば、各ノードにおける運用作業の完了を明示的に管理することが可能となる。
また、本実施形態の運用管理方法において、前記分散台帳システムにおける前記トランザクションを受け取ったノードが、前記運用スマートコントラクトの実行の結果、前記実行完了の確認フェーズにおいて実行完了の失敗に至った場合、前記運用スマートコントラ
クトに従って所定のリカバリまたは再実行処理を行うとしてもよい。
これによれば、運用作業が途中で失敗した際にSCに従ってリカバリ等が自動実行され、リカバリ等の処理の均一化を図ることができる。
また、本実施形態の運用管理方法において、前記分散台帳システムにおける前記トランザクションを受け取ったノードが、スマートコントラクトの登録および実行の少なくともいずれかにおいて承認フェーズを含む前記運用スマートコントラクトを実行するとしてもよい。
これによれば、TXを受け入れるかどうかの合意形成処理(プロトコルレベル)よりも、上位概念(業務運用やシステム運用レベル)での承認処理が可能となり、例えば、運用作業実行前に各ノード上で前準備が必要な場合などに有効となる。
また、本実施形態の運用管理方法において、前記所定の複数ノードのうち、業務用の業務スマートコントラクトの実行を担当しないノードが、前記分散台帳システムによって構成されるビジネスネットワークの参加者もしくは、前記運用スマートコントラクトの合意形成に参加するノードとして、ネットワークに参加し、前記運用スマートコントラクトを実行するとしてもよい。
これによれば、運用管理用ノードがビジネスネットワークに参画することで、業務に参加しない複数ベンダがシステム運用作業のみに参加する場合に有効である。業務に参加していないベンダも、業務を行う組織とともに合意形成を行いながら、運用作業を実施するため、マルチベンダでの運用を非中央集権的に実施することができる。
また、本実施形態の運用管理方法において、前記分散台帳システムにおける前記トランザクションを受け取ったノードが、前記運用スマートコントラクトに関して、当該運用スマートコントラクトの追加/更新を行うデプロイトランザクションと、前記運用スマートコントラクトで定義された運用作業を実行する運用実行トランザクションとを発行し、前記デプロイトランザクションおよび前記運用実行トランザクションの少なくともいずれかの発行時において、運用作業に利用する運用実行プログラムの正しさを検証する、としてもよい。
これによれば、運用作業プログラムの正しさ検証することで、外部の運用作業プログラムを利用した場合に、当該プログラムの改竄、バージョンや設定の違い、配置忘れ等の発生により、想定外の運用作業が実行されることを抑止でき、運用作業の均一性をより高めることができる。
また、本実施形態の運用管理方法において、前記分散台帳システムにおける前記トランザクションを受け取ったノードの保持する、あるいは当該ノードにアクセス可能な運用実行プログラムが、予め定められた前記運用スマートコントラクトに従い、運用作業を実行するとしてもよい。
これによれば、運用管理用のノードがネットワークに参画するシステム構成となり、業務に参加しない複数ベンダが、システム運用作業のみに参加する場合に有効である。業務に参加していないベンダも、業務を行う組織とともに合意形成を行いながら、運用作業を実施するため、マルチベンダでの運用を非中央集権的に実施することができる。
また、本実施形態の運用管理方法において、前記所定の複数ノードのうち前記運用スマートコントラクトを実行したノードは、前記運用スマートコントラクトの実行時において当該運用スマートコントラクトが実行されたことを示す運用作業に関するイベントを発行
し、前記イベントを受け取った前記所定の複数ノードの保持する、あるいは当該ノードにアクセス可能な運用実行プログラムが、前記イベントを契機に、予め定められた前記運用スマートコントラクトに従った運用作業を実行するとしてもよい。
これによれば、所定のノードにおける運用スマートコントラクトの実行を契機に、他ノードにおける運用スマートコントラクトも行われ、分散台帳システムを構成する各ノードで運用作業が的確に同期されることにつながる。
また、本実施形態の運用管理方法において、前記イベントには、実行されるべき具体的な運用作業手順が埋め込まれており、前記運用実行プログラムが、埋め込まれた運用作業手順に従って運用作業を実行するとしてもよい。
これによれば、運用管理用のスマートコントラクトが実行されることで、具体的な運用作業手順が自ずと実行されることとなる。
また、本実施形態の運用管理方法において、前記分散台帳システムにおける前記複数のノードは、前記分散台帳システムとは別の分散処理システムの運用管理用のスマートコントラクトを分散台帳で管理し、前記ノードが当該スマートコントラクトを実行して前記分散処理システムにおける分散処理ノードの運用管理を行うとしてもよい。
これによれば、分散処理システムにも本実施形態の運用管理を適用することが可能となり、広範な業種、業務に関して分散処理ノード間でポリシーやタイミングを揃えた運用管理が可能となる。
1 ネットワーク
2 物理的な通信回線
3 分散台帳ノード
10 運用管理システム
100 I/F
101 プロセッサ
102 メモリ
103 データバス
110 プログラム
31 コンセンサス管理部
311 ネットワークプロトコル部
32 スマートコントラクト実行/管理部(SC実行/管理部)
33 メンバー管理部
34 トランザクション管理部
35 トランザクション発行部
36 運用実行プログラム
37 分散台帳
371 業務スマートコントラクト(業務SC)
372 運用スマートコントラクト(システム運用SC)
38 参加メンバー管理情報
4 クライアントノード
41 業務アプリ
42 運用管理アプリ
5 運用管理ノード
6 分散台帳システム
50 分散処理システム
55 分散処理ノード

Claims (13)

  1. 複数のノードで構成される分散台帳システムにおいて、前記複数のノードのうち少なくとも所定の複数ノードは、それぞれ、
    分散台帳にて当該分散台帳システムの運用管理用の運用スマートコントラクトを管理し、
    前記所定の複数ノードのうち少なくとも1つのノードがトランザクションを受け取った場合、前記トランザクションを受け取ったノードは、前記トランザクションの種別が前記運用スマートコントラクトか否かを判定し、
    当該判定結果に基づき、前記運用スマートコントラクトを実行することを特徴とする運用管理方法。
  2. 前記分散台帳システムにおける前記トランザクションを受け取ったノードが、運用作業の受付フェーズと実行完了の確認フェーズとを含む前記運用スマートコントラクトを実行することを特徴とする請求項1に記載の運用管理方法。
  3. 前記分散台帳システムにおける前記トランザクションを受け取ったノードが、前記運用スマートコントラクトを実行して、前記実行完了の確認フェーズにおける前記トランザクションに完了エビデンスもしくは完了エビデンスと紐づく情報を含む構成とすることを特徴とする請求項2に記載の運用管理方法。
  4. 前記分散台帳システムにおける前記トランザクションを受け取ったノードが、前記運用スマートコントラクトの実行の結果、前記実行完了の確認フェーズにおいて実行完了の失敗に至った場合、前記運用スマートコントラクトに従って所定のリカバリまたは再実行処理を行うことを特徴とする請求項3に記載の運用管理方法。
  5. 前記分散台帳システムにおける前記トランザクションを受け取ったノードが、スマートコントラクトの登録および実行の少なくともいずれかにおいて承認フェーズを含む前記運用スマートコントラクトを実行することを特徴とする請求項1に記載の運用管理方法。
  6. 前記所定の複数ノードのうち、業務用の業務スマートコントラクトの実行を担当しないノードが、前記分散台帳システムによって構成されるビジネスネットワークの参加者もしくは、前記運用スマートコントラクトの合意形成に参加するノードとして、ネットワークに参加し、前記運用スマートコントラクトを実行することを特徴とする請求項1に記載の運用管理方法。
  7. 前記分散台帳システムにおける前記トランザクションを受け取ったノードが、
    前記運用スマートコントラクトに関して、当該運用スマートコントラクトの追加/更新を行うデプロイトランザクションと、前記運用スマートコントラクトで定義された運用作業を実行する運用実行トランザクションとを発行し、
    前記デプロイトランザクションおよび前記運用実行トランザクションの少なくともいずれかの発行時において、運用作業に利用する運用実行プログラムの正しさを検証する、
    ことを特徴とする請求項1に記載の運用管理方法。
  8. 前記分散台帳システムにおける前記トランザクションを受け取ったノードの保持する、あるいは当該ノードにアクセス可能な運用実行プログラムが、予め定められた前記運用スマートコントラクトに従い、運用作業を実行することを特徴とする請求項1に記載の運用管理方法。
  9. 前記所定の複数ノードのうち前記運用スマートコントラクトを実行したノードは、前記
    運用スマートコントラクトの実行時において当該運用スマートコントラクトが実行されたことを示す運用作業に関するイベントを発行し、
    前記イベントを受け取った前記所定の複数ノードの保持する、あるいは当該ノードにアクセス可能な運用実行プログラムが、前記イベントを契機に、予め定められた前記運用スマートコントラクトに従った運用作業を実行することを特徴とする請求項1に記載の運用管理方法。
  10. 前記イベントには、実行されるべき具体的な運用作業手順が埋め込まれており、前記運用実行プログラムが、埋め込まれた運用作業手順に従って運用作業を実行することを特徴とする請求項9に記載の運用管理方法。
  11. 前記分散台帳システムにおける前記複数のノードは、
    前記分散台帳システムとは別の分散処理システムの運用管理用のスマートコントラクトを分散台帳で管理し、前記ノードが当該スマートコントラクトを実行して前記分散処理システムにおける分散処理ノードの運用管理を行うことを特徴とする請求項1に記載の運用管理方法。
  12. 分散台帳システムの複数のノードで構成されるシステムであって、前記複数のノードのうち少なくとも所定の複数ノードは、それぞれ、分散台帳にて当該分散台帳システムの運用管理用の運用スマートコントラクトを管理し、前記所定の複数ノードのうち少なくとも1つのノードがトランザクションを受け取った場合、前記トランザクションを受け取ったノードは、前記トランザクションの種別が前記運用スマートコントラクトか否かを判定し、当該判定結果に基づき、前記運用スマートコントラクトを実行するものであることを特徴とする運用管理システム。
  13. 分散台帳システムを構成する複数のノードのうち少なくとも所定の複数ノードであって、分散台帳にて当該分散台帳システムの運用管理用の運用スマートコントラクトを管理するノード各々に、前記所定の複数ノードのうち少なくとも1つのノードがトランザクションを受け取った場合、前記トランザクションを受け取ったノードにおいて、前記トランザクションの種別が前記運用スマートコントラクトか否かを判定し、当該判定結果に基づき、前記運用スマートコントラクトを実行させることを特徴とする運用管理プログラム。
JP2017144223A 2017-07-26 2017-07-26 運用管理方法、運用管理システム、および、運用管理プログラム Active JP6900266B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017144223A JP6900266B2 (ja) 2017-07-26 2017-07-26 運用管理方法、運用管理システム、および、運用管理プログラム
PCT/JP2018/025834 WO2019021792A1 (ja) 2017-07-26 2018-07-09 運用管理方法、運用管理システム、および、運用管理プログラム
SG11202000671QA SG11202000671QA (en) 2017-07-26 2018-07-09 Operation management method, operation management system, and operation management program
US16/632,935 US11514443B2 (en) 2017-07-26 2018-07-09 Operation management method, operation management system, and operation management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017144223A JP6900266B2 (ja) 2017-07-26 2017-07-26 運用管理方法、運用管理システム、および、運用管理プログラム

Publications (3)

Publication Number Publication Date
JP2019028525A true JP2019028525A (ja) 2019-02-21
JP2019028525A5 JP2019028525A5 (ja) 2020-05-07
JP6900266B2 JP6900266B2 (ja) 2021-07-07

Family

ID=65040105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017144223A Active JP6900266B2 (ja) 2017-07-26 2017-07-26 運用管理方法、運用管理システム、および、運用管理プログラム

Country Status (4)

Country Link
US (1) US11514443B2 (ja)
JP (1) JP6900266B2 (ja)
SG (1) SG11202000671QA (ja)
WO (1) WO2019021792A1 (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020522033A (ja) * 2019-03-06 2020-07-27 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンネットワーク内のスマートコントラクトを使用した所帯スコアの管理
JP2020170296A (ja) * 2019-04-02 2020-10-15 日本電信電話株式会社 ブロックチェーンシステム、承認端末、利用者端末、履歴管理方法、および、履歴管理プログラム
JP2020170342A (ja) * 2019-04-03 2020-10-15 株式会社日立製作所 分散台帳装置、分散台帳システム、及び分散台帳管理方法
WO2020218550A1 (ja) * 2019-04-25 2020-10-29 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、データ生成装置、及びプログラム
US20210158463A1 (en) * 2019-11-27 2021-05-27 International Business Machines Corporation Formal Verification of Smart Contracts
CN113032001A (zh) * 2021-03-26 2021-06-25 中山大学 一种智能合约分类方法及装置
WO2021166931A1 (ja) * 2020-02-21 2021-08-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、制御装置、及び、プログラム
WO2021166928A1 (ja) * 2020-02-21 2021-08-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、制御装置、及び、プログラム
US11367094B2 (en) * 2018-02-22 2022-06-21 Banco Bilbao Vizcaya Argentaria, S.A. Method for validating a voucher
WO2022180752A1 (ja) 2021-02-25 2022-09-01 富士通株式会社 制御システム、制御プログラム、制御方法、および制御装置
JP2022542367A (ja) * 2019-09-10 2022-10-03 株式会社日立製作所 施設およびプロジェクトの評価データを生成する装置および方法
JP2023515399A (ja) * 2020-02-18 2023-04-13 フリーヴァース エス.エル. 分散型台帳ネットワーク上の計算の動的スケーリングのためのシステムおよび方法
JP7494205B2 (ja) 2019-03-20 2024-06-03 ポリサイン・インコーポレイテッド データレコードのコピーの分散型台帳システムへの誤伝送の防止
JP7573592B2 (ja) 2020-02-21 2024-10-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、制御装置、及び、プログラム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11037095B2 (en) * 2017-09-11 2021-06-15 Accenture Global Solutions Limited Distributed ledger technology for freight system
US20200177373A1 (en) * 2018-11-14 2020-06-04 Royal Bank Of Canada System and method for storing contract data structures on permissioned distributed ledgers
JP7243154B2 (ja) * 2018-12-04 2023-03-22 セイコーエプソン株式会社 提供装置及び処理システム
JP7171469B2 (ja) * 2019-02-22 2022-11-15 株式会社日立製作所 構成変更管理方法、構成変更管理システム、およびノード
WO2020213678A1 (ja) 2019-04-16 2020-10-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、サーバ、及び、データ構造
WO2021039453A1 (ja) * 2019-08-29 2021-03-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、サーバ、および、プログラム
WO2021156909A1 (ja) * 2020-02-03 2021-08-12 株式会社日立製作所 スマートコントラクト実行方法、スマートコントラクト実行システム、およびノード
WO2022261650A2 (en) * 2021-06-08 2022-12-15 Artema Labs, Inc Systems and methods for maintenance of nft assets
US11507915B1 (en) * 2021-08-24 2022-11-22 Pitt Ohio System and method for monitoring a transport of a component
WO2024070153A1 (ja) * 2022-09-28 2024-04-04 富士フイルム株式会社 機密情報処理装置、その作動方法、及びデータ送受信システム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014048860A (ja) * 2012-08-31 2014-03-17 Hitachi Systems Ltd 運用業務自動化システム、運用業務自動化方法及び運用業務自動化プログラム
US20160337210A1 (en) * 2015-05-11 2016-11-17 Vipcon Gmbh & Co. Kg Method and system for trouble ticketing
JP2017102870A (ja) * 2015-12-04 2017-06-08 株式会社野村総合研究所 システム運用自動化装置、システム運用自動化プログラム及びシステム運用自動化方法
US20170195406A1 (en) * 2015-06-15 2017-07-06 Graduate School At Shenzhen, Tsinghua University Distributed network node operation system based on operation control unit

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180096175A1 (en) * 2016-10-01 2018-04-05 James L. Schmeling Blockchain Enabled Packaging
US10871948B1 (en) * 2017-03-30 2020-12-22 Wells Fargo Bank, N.A. Smart contract blockchain abstraction API

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014048860A (ja) * 2012-08-31 2014-03-17 Hitachi Systems Ltd 運用業務自動化システム、運用業務自動化方法及び運用業務自動化プログラム
US20160337210A1 (en) * 2015-05-11 2016-11-17 Vipcon Gmbh & Co. Kg Method and system for trouble ticketing
US20170195406A1 (en) * 2015-06-15 2017-07-06 Graduate School At Shenzhen, Tsinghua University Distributed network node operation system based on operation control unit
JP2017102870A (ja) * 2015-12-04 2017-06-08 株式会社野村総合研究所 システム運用自動化装置、システム運用自動化プログラム及びシステム運用自動化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
佐藤竜也ほか: ""ブロックチェーン基盤Hyperledger Fabricの性能評価と課題整理"", 情報処理学会研究報告インターネットと運用技術(IOT), vol. 2017−IOT−036, JPN6021020901, 24 February 2017 (2017-02-24), pages 1 - 8, ISSN: 0004519587 *
東角芳樹ほか: ""コンソーシアムチェーンにおける証明書管理に関する一考察"", 暗号と情報セキュリティシンポジウム(SCIS2017), JPN6021020896, 27 January 2017 (2017-01-27), pages 1 - 4, ISSN: 0004519586 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11367094B2 (en) * 2018-02-22 2022-06-21 Banco Bilbao Vizcaya Argentaria, S.A. Method for validating a voucher
US10984492B2 (en) 2019-03-06 2021-04-20 Advanced New Technologies Co., Ltd. Managing housing scores using smart contracts in blockchain networks
JP2020522033A (ja) * 2019-03-06 2020-07-27 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンネットワーク内のスマートコントラクトを使用した所帯スコアの管理
JP7494205B2 (ja) 2019-03-20 2024-06-03 ポリサイン・インコーポレイテッド データレコードのコピーの分散型台帳システムへの誤伝送の防止
JP2020170296A (ja) * 2019-04-02 2020-10-15 日本電信電話株式会社 ブロックチェーンシステム、承認端末、利用者端末、履歴管理方法、および、履歴管理プログラム
JP2020170342A (ja) * 2019-04-03 2020-10-15 株式会社日立製作所 分散台帳装置、分散台帳システム、及び分散台帳管理方法
JP7316081B2 (ja) 2019-04-03 2023-07-27 株式会社日立製作所 分散台帳装置、分散台帳システム、及び分散台帳管理方法
US11483158B2 (en) 2019-04-03 2022-10-25 Hitachi, Ltd. Distributed ledger device, distributed ledger system, and distributed ledger management method
WO2020218550A1 (ja) * 2019-04-25 2020-10-29 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、データ生成装置、及びプログラム
JP7478726B2 (ja) 2019-04-25 2024-05-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、データ生成装置、及びプログラム
JP2022542367A (ja) * 2019-09-10 2022-10-03 株式会社日立製作所 施設およびプロジェクトの評価データを生成する装置および方法
JP7394958B2 (ja) 2019-09-10 2023-12-08 株式会社日立製作所 施設およびプロジェクトの評価データを生成する装置および方法
US20210158463A1 (en) * 2019-11-27 2021-05-27 International Business Machines Corporation Formal Verification of Smart Contracts
US11587189B2 (en) * 2019-11-27 2023-02-21 International Business Machines Corporation Formal verification of smart contracts
JP2023515399A (ja) * 2020-02-18 2023-04-13 フリーヴァース エス.エル. 分散型台帳ネットワーク上の計算の動的スケーリングのためのシステムおよび方法
WO2021166928A1 (ja) * 2020-02-21 2021-08-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、制御装置、及び、プログラム
WO2021166931A1 (ja) * 2020-02-21 2021-08-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、制御装置、及び、プログラム
JP7573592B2 (ja) 2020-02-21 2024-10-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、制御装置、及び、プログラム
WO2022180752A1 (ja) 2021-02-25 2022-09-01 富士通株式会社 制御システム、制御プログラム、制御方法、および制御装置
CN113032001B (zh) * 2021-03-26 2022-02-08 中山大学 一种智能合约分类方法及装置
CN113032001A (zh) * 2021-03-26 2021-06-25 中山大学 一种智能合约分类方法及装置

Also Published As

Publication number Publication date
US20200151715A1 (en) 2020-05-14
SG11202000671QA (en) 2020-02-27
JP6900266B2 (ja) 2021-07-07
US11514443B2 (en) 2022-11-29
WO2019021792A1 (ja) 2019-01-31

Similar Documents

Publication Publication Date Title
JP6900266B2 (ja) 運用管理方法、運用管理システム、および、運用管理プログラム
US11921703B2 (en) Dag based methods and systems of transaction processing in a distributed ledger
US10678597B2 (en) Event-driven blockchain workflow processing
US10965472B2 (en) Secure bootstrap for a blockchain network
CN111213340B (zh) 选择用于密码功能的证明委托并使其安全
US11593321B2 (en) Systems and methods of self-administered protocols on a blockchain platform
Bozic et al. Securing virtual machine orchestration with blockchains
CN111294379B (zh) 区块链网络服务平台及其权限托管方法、存储介质
CN110192380A (zh) 用于管理区块链云服务的系统和方法
US20190354968A1 (en) Utilization Management Method, Utilization Management System, and Node
JP2020515092A (ja) ブロックチェーン監視及び管理
US11627122B2 (en) Inter-system linking method and node
CN111737104B (zh) 区块链网络服务平台及其测试用例共享方法、存储介质
JP6868728B2 (ja) パーミッションドブロックチェーンアプリケーションの継続的デリバリのための方法及び装置
US11477279B1 (en) Digital assets exchange coordination
CN117917681A (zh) 基于多区块链的资产转移方法、装置、设备、介质及产品
US11693643B2 (en) Network-based solution module deployment platform
CN117951217A (zh) 基于多区块链的跨链配置方法、装置、设备、系统及介质
CN112926981B (zh) 用于区块链的交易信息处理方法、装置、介质及电子设备
CN117061089B (zh) 一种投票管理方法、装置、设备及存储介质
JP7509940B1 (ja) 分散台帳管理システム、管理ノード、および分散台帳管理方法
CN112333132A (zh) 区块链网络服务平台及其电子验收方法、存储介质
CN118473684A (zh) 一种区块链节点准入方法、装置、设备及存储介质
CN114218535A (zh) 应用使用方法、装置、设备、存储介质和程序产品
CN117764728A (zh) 一种区块链跨合约调用方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200325

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200325

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: 20210601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210616

R150 Certificate of patent or registration of utility model

Ref document number: 6900266

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150