(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-09
(45)【発行日】2024-04-17
(54)【発明の名称】ブロックチェーン実装型データ移行監査証跡を生成するためのコンピュータ実装方法、コンピュータシステム、プログラム(ブロックチェーンで実装されるデータ移行監査証跡)
(51)【国際特許分類】
G06F 11/34 20060101AFI20240410BHJP
G06F 21/64 20130101ALI20240410BHJP
【FI】
G06F11/34 176
G06F21/64
(21)【出願番号】P 2021165692
(22)【出願日】2021-10-07
【審査請求日】2023-04-24
(32)【優先日】2020-10-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】サウラブ クマール
(72)【発明者】
【氏名】スンダラムルシー グルラジャン
(72)【発明者】
【氏名】グーリー スシェール
【審査官】石坂 知樹
(56)【参考文献】
【文献】特開2010-266993(JP,A)
【文献】米国特許出願公開第2010/0293412(US,A1)
【文献】特開2020-013347(JP,A)
【文献】特開2009-110102(JP,A)
【文献】特開2020-057881(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
ブロックチェーン実装型データ移行監査証跡を生成するためのコンピュータ実装方法であって、
プロセッサによって、データ移行元からデータ移行先へデータを移行するための1または複数のタスクを委譲するよう構成されるタスクリストを作成する段階と、
前記データを前記データ移行元から前記データ移行先へ移行することを完了するために、前記プロセッサによって、割り当てられたタスクの履行を担当する少なくとも1つの当事主体に前記1または複数のタスクを割り当てる段階と、
前記プロセッサによって、前記割り当てられたタスクを実行する段階と、
前記プロセッサによって、前記割り当てられたタスクの実行に応じて、前記割り当てられたタスクの履行に対応する詳細をデジタルアセットにロギングする段階と、
前記プロセッサによって、前記デジタルアセットをブロックチェーンのブロックとして記録する段階と、
前記プロセッサによって、データ移行元からデータ移行先へ移行するための前記割り当てられたタスクの履行を記述する前記ブロックチェーンの前記ブロックをブロックチェーンネットワークのすべてのノードに配布する段階であって、前記ブロックチェーンに記録された前記ブロックは、前記ブロックチェーン実装型データ移行監査証跡を更新する、段階と
を備える方法。
【請求項2】
前記割り当てられたタスクの履行をロギングする前記デジタルアセットは、イベントログ、アプリケーションログ、オペレーティングシステムログ、ユーザアクセスログ、システムアラート、ネットワークデバイスログ、および、データ移行ツールからの出力から成るグループから選択される、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記プロセッサによって、ブロックチェーンネットワークをホストするブロックチェーンプラットフォームと通信するアプリケーションプログラミングインタフェース(API)を使用して、前記ブロックチェーンネットワークのピアノードとのピア接続を確立する段階と、
前記プロセッサによって、前記ピアノードのチェーンコードを呼び出して、前記データ移行元もしくは前記データ移行先のロギングサーバもしくはモニタリングサーバの少なくとも1つ、またはデータ移行ツールによって生成された前記デジタルアセットを含む前記ブロックで前記ブロックチェーンを更新する段階と
を更に備える、請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記デジタルアセットを含む、更新される前記ブロックチェーンの前記ブロックは更に、前記ブロックに追加される前記デジタルアセットのタイムスタンプと、前記ブロックによって記録されることが要求された内容を一意に記述する更新されたブロックのために生成されるハッシュと、前記ブロックチェーンネットワークにおける直前に記録されたブロックを記述する前のハッシュとを含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記データ移行元および前記データ移行先は各々、データセンタ、パブリッククラウドネットワーク、およびプライベートクラウドネットワークから成るグループから選択される、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
前記プロセッサによって、前記ブロックチェーンネットワークをホストするブロックチェーンプラットフォームと通信するアプリケーションプログラミングインタフェース(API)を使用して、前記ブロックチェーンネットワークのピアノードとのピア接続を確立する段階と、
前記プロセッサによって、前記ブロックチェーン実装型データ移行監査証跡のコピーについて、前記ブロックチェーンネットワークの前記ピアノードにクエリする段階と、
前記プロセッサによって、取得された前記ブロックチェーン実装型データ移行監査証跡に基づいて、データをデータ移行元からデータ移行先に移行するための前記1または複数のタスクの進行を記述するレポートを生成する段階と、
前記プロセッサによって、前記データ移行元または前記データ移行先の1または複数のクライアントデバイスに前記レポートを配布する段階と
を更に備える、請求項1から5のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
前記ブロックチェーンネットワークは、ピアツーピア(p2p)ネットワークであり、前記ブロックを受信する前記p2pネットワークの各ノードは、前記ブロックが改ざんされていないことを検証し、前記ブロックを前記ブロックチェーンネットワークの既存ブロックチェーンに追加する、請求項1から6のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
ブロックチェーン実装型データ移行監査証跡を生成するためのコンピュータシステムであって、
プロセッサと、
前記プロセッサに結合されたコンピュータ可読記憶媒体と
を備え、前記コンピュータ可読記憶媒体は、コンピュータ実装方法を実行するプログラム命令を含み、前記コンピュータ実装方法は、
前記プロセッサによって、データ移行元からデータ移行先へデータを移行するための1または複数のタスクを委譲するよう構成されるタスクリストを作成する段階と、
前記データを前記データ移行元から前記データ移行先へ移行することを完了するために、前記プロセッサによって、割り当てられたタスクの履行を担当する少なくとも1つの当事主体に前記1または複数のタスクを割り当てる段階と、
前記プロセッサによって、前記割り当てられたタスクを実行する段階と、
前記プロセッサによって、前記割り当てられたタスクの実行に応じて、前記割り当てられたタスクの履行に対応する詳細をデジタルアセットにロギングする段階と、
前記プロセッサによって、前記デジタルアセットをブロックチェーンのブロックとして記録する段階と、
前記プロセッサによって、データ移行元からデータ移行先へ移行するための前記割り当てられたタスクの履行を記述する前記ブロックチェーンの前記ブロックをブロックチェーンネットワークのすべてのノードに配布する段階であって、前記ブロックチェーンに記録された前記ブロックは、前記ブロックチェーン実装型データ移行監査証跡を更新する、段階と
を備える、コンピュータシステム。
【請求項9】
前記割り当てられたタスクの履行をロギングする前記デジタルアセットは、イベントログ、アプリケーションログ、オペレーティングシステムログ、ユーザアクセスログ、システムアラート、ネットワークデバイスログ、および、データ移行ツールからの出力から成るグループから選択される、請求項8に記載のコンピュータシステム。
【請求項10】
前記プロセッサによって、ブロックチェーンネットワークをホストするブロックチェーンプラットフォームと通信するアプリケーションプログラミングインタフェース(API)を使用して、前記ブロックチェーンネットワークのピアノードとのピア接続を確立する段階と、
前記プロセッサによって、前記ピアノードのチェーンコードを呼び出して、前記データ移行元もしくは前記データ移行先のロギングサーバもしくはモニタリングサーバの少なくとも1つ、またはデータ移行ツールによって生成された前記デジタルアセットを含む前記ブロックで前記ブロックチェーンを更新する段階と
を更に備える、請求項8または9に記載のコンピュータシステム。
【請求項11】
前記デジタルアセットを含む、更新される前記ブロックチェーンの前記ブロックは更に、前記ブロックに追加される前記デジタルアセットのタイムスタンプと、前記ブロックによって記録されることが要求された内容を一意に記述する更新されたブロックのために生成されるハッシュと、前記ブロックチェーンネットワークにおける直前に記録されたブロックを記述する前のハッシュとを含む、請求項10に記載のコンピュータシステム。
【請求項12】
前記データ移行元および前記データ移行先は各々、データセンタ、パブリッククラウドネットワーク、およびプライベートクラウドネットワークから成るグループから選択される、請求項9から11のいずれか一項に記載のコンピュータシステム。
【請求項13】
前記プロセッサによって、前記ブロックチェーンネットワークをホストするブロックチェーンプラットフォームと通信するアプリケーションプログラミングインタフェース(API)を使用して、前記ブロックチェーンネットワークのピアノードとのピア接続を確立する段階と、
前記プロセッサによって、前記ブロックチェーン実装型データ移行監査証跡のコピーについて、前記ブロックチェーンネットワークの前記ピアノードにクエリする段階と、
前記プロセッサによって、取得された前記ブロックチェーン実装型データ移行監査証跡に基づいて、データをデータ移行元からデータ移行先に移行するための前記1または複数のタスクの進行を記述するレポートを生成する段階と、
前記プロセッサによって、前記データ移行元または前記データ移行先の1または複数のクライアントデバイスに前記レポートを配布する段階と
を更に備える、請求項8から12のいずれか一項に記載のコンピュータシステム。
【請求項14】
前記ブロックチェーンネットワークは、ピアツーピア(p2p)ネットワークであり、前記ブロックを受信する前記p2pネットワークの各ノードは、前記ブロックが改ざんされていないことを検証し、前記ブロックを前記ブロックチェーンネットワークの既存ブロックチェーンに追加する、請求項8から13のいずれか一項に記載のコンピュータシステム。
【請求項15】
プログラムであって、前記プログラムは、プロセッサに、ブロックチェーン実装型データ移行監査証跡を作成するためのコンピュータ実装方法を実行させ、前記コンピュータ実装方法は、
前記プロセッサによって、データ移行元からデータ移行先へデータを移行するための1または複数のタスクを委譲するよう構成されるタスクリストを作成する段階と、
前記データを前記データ移行元から前記データ移行先へ移行することを完了するために、前記プロセッサによって、割り当てられたタスクの履行を担当する少なくとも1つの当事主体に前記1または複数のタスクを割り当てる段階と、
前記プロセッサによって、前記割り当てられたタスクを実行する段階と、
前記プロセッサによって、前記割り当てられたタスクの実行に応じて、前記割り当てられたタスクの履行に対応する詳細をデジタルアセットにロギングする段階と、
前記プロセッサによって、前記デジタルアセットをブロックチェーンのブロックとして記録する段階と、
前記プロセッサによって、データ移行元からデータ移行先へ移行するための前記割り当てられたタスクの履行を記述する前記ブロックチェーンの前記ブロックをブロックチェーンネットワークのすべてのノードに配布する段階であって、前記ブロックチェーンに記録された前記ブロックは、前記ブロックチェーン実装型データ移行監査証跡を更新する、段階と
を備える、プログラム。
【請求項16】
前記割り当てられたタスクの履行をロギングする前記デジタルアセットは、イベントログ、アプリケーションログ、オペレーティングシステムログ、ユーザアクセスログ、システムアラート、ネットワークデバイスログ、および、データ移行ツールからの出力から成るグループから選択される、請求項15に記載のプログラム。
【請求項17】
前記プロセッサによって、ブロックチェーンネットワークをホストするブロックチェーンプラットフォームと通信するアプリケーションプログラミングインタフェース(API)を使用して、前記ブロックチェーンネットワークのピアノードとのピア接続を確立する段階と、
前記プロセッサによって、前記ピアノードのチェーンコードを呼び出して、前記データ移行元もしくは前記データ移行先のロギングサーバもしくはモニタリングサーバの少なくとも1つ、またはデータ移行ツールによって生成された前記デジタルアセットを含む前記ブロックで前記ブロックチェーンを更新する段階と
を更に備える、請求項15または16に記載のプログラム。
【請求項18】
前記デジタルアセットを含む、更新される前記ブロックチェーンの前記ブロックは更に、前記ブロックに追加される前記デジタルアセットのタイムスタンプと、前記ブロックによって記録されることが要求された内容を一意に記述する更新されたブロックのために生成されるハッシュと、前記ブロックチェーンネットワークにおける直前に記録されたブロックを記述する前のハッシュとを含む、請求項17に記載のプログラム。
【請求項19】
前記プロセッサによって、前記ブロックチェーンネットワークをホストするブロックチェーンプラットフォームと通信するアプリケーションプログラミングインタフェース(API)を使用して、前記ブロックチェーンネットワークのピアノードとのピア接続を確立する段階と、
前記プロセッサによって、前記ブロックチェーン実装型データ移行監査証跡のコピーについて、前記ブロックチェーンネットワークの前記ピアノードにクエリする段階と、
前記プロセッサによって、取得された前記ブロックチェーン実装型データ移行監査証跡に基づいて、データをデータ移行元からデータ移行先に移行するための前記1または複数のタスクの進行を記述するレポートを生成する段階と、
前記プロセッサによって、前記データ移行元または前記データ移行先の1または複数のクライアントデバイスに前記レポートを配布する段階と
を更に備える、請求項15から18のいずれか一項に記載のプログラム。
【請求項20】
前記ブロックチェーンネットワークは、ピアツーピア(p2p)ネットワークであり、前記ブロックを受信する前記p2pネットワークの各ノードは、前記ブロックが改ざんされていないことを検証し、前記ブロックを前記ブロックチェーンネットワークの既存ブロックチェーンに追加する、請求項15から19のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
本開示は概して、ブロックチェーンストレージの分野に関し、より具体的には、データセンタコンピュータネットワークもしくはクラウドベースネットワーク、またその両方の間のデータ移行を記述する監査証跡をセキュアに保存するためにブロックチェーンを実装することに関する。
【0002】
データ移行とは、1つの場所から別の場所へ、1つのフォーマットから別のフォーマットへ、または、1つのアプリケーションから別のアプリケーションへデータを移動するプロセスを指し得る。データの移行は概して、データのための新しいシステムもしくは場所、またその両方を導入する結果であり、アプリケーション移行または統合は、同一データセットを共有し得る新しいアプリケーションでレガシーシステムを置き換える、または、増強することを試みる業務上の決定によって行われ得る。現在、データ移行におけるトレンドは、企業が敷地内インフラストラクチャ、データセンタ、およびアプリケーションから、クラウドベースのストレージ、サービス、およびアプリケーション供給機構へデータの移行を開始していることを示唆している。いくつかのタイプの移行は、アプリケーション移行、クラウド移行、およびストレージ移行を含み得る。アプリケーション移行とは、アプリケーションプログラムを1つの環境から別の環境へ、敷地内ITセンタからクラウドへ移動すること、クラウド(プライベート、パブリック、もしくはハイブリッドまたはその組み合わせ)間で移動すること、または、アプリケーションの基礎のデータを、ソフトウェアプロバイダによってホストされる新しい形式のアプリケーションへ移動することを指し得る。同様に、クラウド移行とは、データ、アプリケーション、または他の業務要素を、敷地内データセンタからクラウドへ、または、1つのクラウドから別のクラウドへ移動するプロセスを指し得る。最後に、ストレージ移行は、データを既存のストレージアレイから新しいストレージアレイへ移動することを含み得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
データ移行とは、1つの場所から別の場所へ、1つのフォーマットから別のフォーマットへ、または、1つのアプリケーションから別のアプリケーションへデータを移動するプロセスを指し得る。データの移行は概して、データのための新しいシステムもしくは場所、またその両方を導入する結果であり、アプリケーション移行または統合は、同一データセットを共有し得る新しいアプリケーションでレガシーシステムを置き換える、または、増強することを試みる業務上の決定によって行われ得る。
【課題を解決するための手段】
【0004】
本開示の実施形態は、コンピュータ実装方法に関し、データ移行イベントの履行に関連付けられたタスクを記述するデジタルアセットを含む監査証跡を含む台帳へのアクセスを制御するブロックチェーンを実装するための関連付けられたコンピュータシステムおよびコンピュータプログラム製品に関する。コンピュータ実装方法は、プロセッサによって、をデータ移行元からデータ移行先へデータを移行するための1または複数のタスク委譲するよう構成されるタスクリストを作成する段階と、上記データを上記データ移行元から上記データ移行先へ移行することを完了するために、上記プロセッサによって、割り当てられたタスクの履行を担当する少なくとも1つの当事主体に上記1または複数のタスクを割り当てる段階と、上記プロセッサによって、上記割り当てられたタスクを実行する段階と、上記プロセッサによって、上記割り当てられたタスクの実行に応じて、上記割り当てられたタスクの履行に対応する詳細をデジタルアセットにロギングする段階と、上記プロセッサによって、上記デジタルアセットをブロックチェーンのブロックとして記録する段階と、上記プロセッサによって、データ移行元からデータ移行先へ移行するための上記割り当てられたタスクの履行を記述する上記ブロックチェーンの上記ブロックをブロックチェーンネットワークのすべてのノードに配布する段階であって、上記ブロックチェーンに記録された上記ブロックは、上記ブロックチェーン実装型データ移行監査証跡を更新する、段階とを備える。
【図面の簡単な説明】
【0005】
本開示に含まれる図面は明細書に組み込まれ、その一部を形成する。それらは、本開示の実施形態を図示し、明細書と共に、開示の原理を説明する。図面は、特定の実施形態の例示に過ぎず、開示を限定するものではない。
【0006】
【
図1】本開示による、本明細書で説明される実施形態が実装され得るデータ処理システムの内部および外部コンポーネントのブロック図の実施形態を図示する。
【
図2A】本開示による、ブロックチェーン実装型データ移行監査証跡を実行するためのコンピューティング環境の実施形態のブロック図を図示する。
【0007】
【
図2B】本開示による、ブロックチェーン実装型データ移行監査証跡を実装するためのコンピューティング環境の代替的な実施形態のブロック図を図示する。
【0008】
【
図3】本開示による、本明細書で説明される実施形態が実装され得るクラウドコンピューティング環境の実施形態を図示する。
【0009】
【
図4】本開示による、クラウドコンピューティング環境の抽象化モデル層の実施形態を図示する。
【0010】
【
図5A】本開示の実施形態による、例示的なブロックチェーンアーキテクチャを図示する。
【0011】
【
図5B】本開示の実施形態による、ブロックチェーンのトランザクションフローを示す。
【0012】
【
図6】本開示の実施形態による、ブロックチェーンネットワークのピアノード、および、その1または複数の内容の例を図示する。
【0013】
【
図7】本開示による、ブロックチェーン実装型データ移行監査証跡を実行するための方法の実施形態のブロック図を図示する。
【発明を実施するための形態】
【0014】
本明細書において使用される用語は、特定の実施形態を説明することのみを目的とし、開示を限定する意図はない。本明細書において使用される場合、文脈上別段の明示的な定めが無い限り、単数形「a」、「an」、および「the」は、複数形も含むことが意図されている。「含む」もしくは「含み」またはその両方という用語は、明細書において使用されるとき、言及された特徴、ステップ、動作、要素、もしくはコンポーネントまたはその組み合わせの存在を指定するが、1または複数の他の特徴、ステップ、動作、要素、コンポーネント、もしくは、それらのグループまたはその組み合わせの存在または追加を除外するものでないことを更に理解されたい。
【0015】
下の請求項におけるすべての手段またはステップ+機能要素の対応する構造、材料、動作、および同等物は、具体的に請求される他の請求される要素との組み合わせにおいて機能を実行するための任意の構造、材料、または動作を含むことが意図される。本開示の説明は、例示および説明の目的で存在し、包括的な意図、または、開示される形態に開示を限定する意図はない。本開示の範囲および主旨から逸脱することなく、多くの修正および変形が当業者にとって自明であろう。選択され説明された実施形態は、開示の原理、実際の用途をもっとも良く説明して、他の当業者が、考えられる特定の使用に好適な様々な修正を有する様々な実施形態のために、開示を理解することを可能にすることを目的とする。
【0016】
概要
【0017】
レガシーデータセンタもしくはクラウドネットワークまたはその両方(パブリックまたはプライベート)の間で数百のアプリケーションおよびワークロードを移行し得るデータ移行プログラムは、複数のステークホルダによって実行される数百(またはそれ以上)のタスクを伴い得る。これらのステークホルダは、異なるエンティティ、グループ、組織、企業、または会社の一部であり得、多くの場合、データ移行イベントに関連付けられたエンドツーエンドのタスクを完了させるべく協働する必要があり得る。ステークホルダは、顧客もしくはサービスプロバイダまたはその両方であり得るアプリケーションチーム、データ移行元(データセンタまたはクラウドネットワークなど)とデータ移行先との間の1または複数の移行サービスを実行するサードパーティ移行チーム、ならびに、データ移行先を管理することに関連付けられたインフラストラクチャチーム、および、顧客もしくはサービスプロバイダまたはその両方のための管理チームの一部であり得る。
【0018】
本開示の実施形態は、現在のデータ移行手順が、1または複数の移行タスクを完了するためにタイムラインを手動で追跡および更新することを伴い得ると認識し、1または複数のステークホルダが、計画されたタイムライン中に実行されたタスクを振り返り、タスクの完了を検証し、タイムラインを手動で更新することを可能にする。しかしながら、本開示の実施形態は更に、エンドツーエンドデータ移行タスクに関与する複数のステークホルダによってプロセスが手動で実行されるとき、データ移行タスクの実行を監査するステークホルダに関連付けられた主なセキュリティ上の課題を認識する。異なるエンティティ、会社、組織などの一部であり得る複数のステークホルダの結果として、データ移行に関与する全員がエンドツーエンド移行タスクのすべてについての完了の進行およびタイムラインを理解することを助け得る、ステークホルダのすべてにとって利用可能な単一の信頼されるソースが無いことがあり得る。複数の異なる所属からの複数のステークホルダが、計画された移行タイムラインにデータを入力しているので、エンドツーエンドデータ移行タスクの実行を追跡する1または複数のファイルは、問題、操作およびエラーを信頼する傾向があり得る。結果として、データのエンドツーエンド移行の進行を追跡する監査者には、十分に準備されていない監査証跡が残され得、エンドツーエンド移行タスクの完了を監視または理解するために利用可能な信頼できる追跡情報の単一ソースが無い。
【0019】
本開示の実施形態は、データのエンドツーエンド移行を確認しながらステークホルダが使用および信頼できるセキュアな改ざん防止監査証跡の必要性、ならびに、データ移行タスクの進行を監視することの必要性を認識する。本開示の実施形態は、ブロックチェーンの使用を活用して、監査証跡を含む、セキュアに保存された改ざん防止台帳を作成する。作成および更新された監査証跡は、エンドツーエンド移行タスクの完了を記述する。タスクがスケジュールに沿った方式で完了することを追跡し、データ移行の履行要件を満たすことを保証するべく、監査証跡は、データ移行の完了を監査することを担当するステークホルダからアクセス可能であり得る。エンドツーエンド移行タスクに関連付けられたネットワークデバイスログ、オペレーティングシステムログ、ユーザアクセスログなどを含む、データ移行元の、または、対象のサーバからのイベントログ、レコード、およびアラートの各々、ならびに、データ移行ツールからの出力は、監査証跡の一部とし、ブロックチェーンネットワークのブロックに保存することができる。ブロックチェーンネットワークの例は、ピアツーピア(p2p)ネットワークを含み得る。ブロックチェーンにブロックとして記録されているすべてのイベントログ、アラート、または他のアセットは、タイムスタンプを付与され、ハッシュ化されて、ブロックチェーンネットワークのすべてのノードにわたって保存することができる。エントリがブロックとしてブロックチェーンに追加されるとき、エントリは、ブロックチェーンネットワークの各ノードによって有効として検証され、ブロックチェーンネットワークに追加されたブロックは修正または改ざんできない。
【0020】
監査証跡を含み得る1または複数のデジタルアセットは、それぞれのモニタリングサーバ、ロギングサーバ、もしくは移行ツールまたはその両方からの出力から、アプリケーションプログラミングインタフェース(API)機能を使用してアプリケーションコードを実行するブロックチェーンプラットフォームによって利用されるブロックチェーンネットワークのノードへ転送でき、1または複数のブロックチェーントランザクションが実装される。タスクの進行を追跡することを担当する管理者もしくは監査者またはその両方は、ブロックチェーンプラットフォームを介して監査証跡のブロックにアクセスして監査でき、監査証跡を含む台帳をクエリでき、更なる分析を実行でき、及び/または、1または複数のブロックチェーンアプリケーションを使用でき、及び/または、台帳情報からユーザフレンドリーなレポートを生成できる。エンドツーエンドデータ移行タスクに参加するすべてのチームまたはグループにタスクの進行を表示するべく、生成されたレポートは、ブロックチェーンプラットフォームに接続されたクライアント、データ移行元またはデータ移行先に接続されたクライアント、もしくは、他のステークホルダまたはその組み合わせから閲覧可能であり得る。従って、エンドツーエンド移行のすべての参加者および監査者は、エンドツーエンド移行イベントのフロー全体を記述する単一の改ざんされていないソースを観察できる。
【0021】
データ処理システム
【0022】
本発明は、任意の可能な技術的な統合の詳細レベルのシステム、方法、もしくはコンピュータプログラム製品またはその組み合わせであり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0023】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および保存できる有形デバイスであり得る。コンピュータ可読記憶媒体は例えば、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、または、これらの任意の好適な組み合わせであり得るが、これらに限定されものではない。コンピュータ可読記憶媒体のより具体的な例の非包括的リストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたは命令が記録された溝における凸構造などの機械的符号化デバイス、および、上記の任意の好適な組み合わせを含む。本明細書において使用されるコンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通る光パルス)、または、ワイヤを通じて伝送される電気信号など、一時的な信号自体として解釈されるべきでない。
【0024】
本明細書において説明するコンピュータ可読プログラム命令は、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークもしくは無線ネットワークまたはその組み合わせなどのネットワークを介して、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへダウンロードされ得るか、または、外部コンピュータもしくは外部記憶装置へダウンロードされ得る。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、無線伝送ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバまたはその組み合わせを含み得る。各コンピューティング/処理デバイスにおけるネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体において保存するためにコンピュータ可読プログラム命令を転送する。
【0025】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(登録商標)、C++、または同様のものなどのオブジェクト指向プログラミング言語、Cプログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1または複数のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で部分的かつリモートコンピュータ上で部分的に、または、リモートコンピュータもしくはサーバ上で全体的に実行し得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続され得るか、または、接続は、(例えば、インターネットサービスプロバイダを使用してインターネットを通じて)外部コンピュータに行われ得る。いくつかの実施形態において、本発明の態様を実行するべく、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、または、プログラマブルロジックアレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行し得る。
【0026】
本発明の態様は、本明細書において、発明の実施形態に係る方法、機器(システム)、および、コンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して説明されている。フローチャート図もしくはブロック図またはその両方の各ブロックは、ならびに、フローチャート図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることを理解されたい。
【0027】
これらのコンピュータ可読プログラム命令は、機械を生じさせるために、汎用コンピュータ、特定用途向けコンピュータ、または、他のプログラマブルデータ処理装置のプロセッサに提供され得る。それにより、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、フローチャートもしくはブロック図またはその両方のブロックまたは複数のブロックにおいて指定される機能/動作を実装するための手段を形成する。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、もしくは他のデバイスまたはその組み合わせに、特定の方式で機能するよう指示できるコンピュータ可読記憶媒体に保存され得る。それにより、命令を保存したコンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方のブロックまたは複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む、製造者の品目を含む。
【0028】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、または、他のデバイス上にロードされ得ることにより、一連の動作ステップを、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実行させ、コンピュータ実装プロセスを生じさせ、それにより、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実行する命令が、フローチャートもしくはブロック図またはその両方のブロックまたは複数のブロックにおいて指定される機能/動作を実装する。
【0029】
図面内のフローチャートおよびブロック図は、本発明の様々な実施形態に係る、システム、方法、および、コンピュータプログラム製品のあり得る実装のアーキテクチャ、機能、および、動作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装するための1または複数の実行可能命令を含む、モジュール、セグメント、または、命令の一部を表し得る。いくつかの代替的な実装において、ブロックにおいて記載される機能は、図に記載された順序とは別の順序で生じ得る。例えば、連続して示される2つのブロックは、関与する機能に応じて、ほぼ同時に実行され得るか、または、ブロックは場合によっては、逆の順序で実行されてよい。また、ブロック図もしくはフローチャート図またはその両方の各ブロック、ならびに、ブロック図もしくはフローチャート図またはその両方におけるブロックの組み合わせは、指定された機能または動作を実行する特定用途向けハードウェアベースのシステムによって実装できる、または、特定用途向けハードウェアおよびコンピュータ命令の組み合わせを実行できることに留意されたい。
【0030】
本発明の様々な実施形態の説明は、例示の目的で提示されるものであり、包括的な意図、または、開示された実施形態に限定する意図はない。本発明の範囲および主旨から逸脱することなく、多くの修正および変形が当業者にとって自明であろう。本明細書において使用される用語は、実施形態の原理、実際の用途、または、市場において見られる技術に対する技術的改善点をもっとも良く説明するために、または、当技術分野における他の当業者が、本明細書において開示される実施形態を理解することを可能にするために選択された。
【0031】
図1は、本明細書において説明される1または複数のコンピューティングオペレーションを実行することが可能なコンピューティングシステムの単純化された例であり得る、データ処理システム10のブロック図を示す。データ処理システム10は、本明細書において説明される本開示の実施形態による、
図2Aから
図6に示されるコンピューティング環境200、240、300、500、550において図示される1または複数のコンピューティングシステムまたはデバイスの代表であり得る。
図1は、データ処理システム10の一実装の例示を提供するのみに過ぎず、異なる実施形態が実装され得る環境に関する任意の限定を示唆するものではないことが理解されるべきである。一般的に、
図1に示されるコンポーネントは、機械可読プログラム命令を実行可能な任意の電子デバイスの代表であり得る。
【0032】
図1はデータ処理システム10の一例を示すが、データ処理システム10は、現実、仮想、およびコンテナ化形態を含む多くの異なる形態をとり得る。例えば、データ処理システム10は、パーソナルデスクトップコンピュータシステム、ラップトップ、ネットブック、タブレット、サーバ、クライアント、ネットワークデバイス、端末、シンクライアント、シッククライアント、キオスク、モバイル通信デバイス(例えば、スマートフォン)、拡張現実(AR)デバイス、仮想現実(VR)ヘッドセット、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ミニコンピュータシステム、メインフレームコンピュータシステム、スマートデバイス(すなわち、スマートグラス、スマートウォッチなど)、インターネットオブシングス(IoT)デバイスなどの形態をとり得る。データ処理システム10は、ネットワークコンピューティング環境、仮想コンピューティング環境、コンテナ化コンピューティング環境、分散クラウドコンピューティング環境、サーバレスコンピューティング環境、もしくは、それらの環境の組み合わせにおいて動作し得る。これらは、本明細書において説明されるシステムまたはデバイスのいずれか、もしくは、当業者によって知られている、または使用される追加のコンピューティングデバイスまたはシステムまたはその組み合わせを含み得る。
【0033】
データ処理システム10は、1または複数のプロセッサ13、メモリ15、永続ストレージ16、キャッシュ17、通信ユニット21、および1または複数の入力/出力(I/O)インタフェース25の間の電子通信を提供し得る通信ファブリック22を含み得る。通信ファブリック22は、プロセッサ13、メモリ15、キャッシュ17、外部デバイス27、および、データ処理システム10内の任意の他のハードウェアコンポーネントの間でデータを渡す、及び/または、情報を制御するために設計された任意のアーキテクチャで実装され得る。例えば、通信ファブリック22は、1または複数のバスとして実装され得る。
【0034】
メモリ15および永続ストレージ16はコンピュータ可読記憶媒体であり得る。メモリ15の実施形態は、ランダムアクセスメモリ(RAM)およびキャッシュ17メモリを含み得る。一般的に、メモリ15は、任意の好適な揮発性または非揮発性コンピュータ可読記憶媒体を含み得、メモリ15内にプログラムされたファームウェアまたは他のソフトウェアを含み得る。ソフトウェアプログラム24、アプリケーション107a、107b(本明細書では概してアプリケーション107と称される)、ワークロード109a、109b(本明細書では概して「ワークロード109」と称される)、および、本明細書において説明されるサービスは、データ処理システム10のそれぞれのプロセッサ13の1または複数による実行もしくはアクセスまたはその両方のために、メモリ15、キャッシュ17、もしくは、永続ストレージ16またはその組み合わせに保存され得る。
【0035】
永続ストレージ16は、複数の磁気ハードディスクドライブを含み得る。磁気ハードディスクドライブに対して代替的に、または追加的に、永続ストレージ16は、1または複数のソリッドステートハードドライブ、半導体記憶装置、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM)、フラッシュメモリ、または、プログラム命令もしくはデジタル情報を保存可能な任意の他のコンピュータ可読記憶媒体を含み得る。永続ストレージ16によって使用される媒体の実施形態は、取り外し可能でもあり得る。例えば、取り外し可能ハードドライブは、永続ストレージ16のために使用され得る。他の例は、永続ストレージ16の一部でもあり得る別のコンピュータ可読記憶媒体に転送するためにドライブに挿入される光学および磁気ディスク、サムドライブ、ならびに、スマートカードを含む。
【0036】
通信ユニット21は、データ処理システム10間の電子通信を容易にするために提供される。例えば、通信ネットワークを介する、1または複数のコンピュータシステムまたはデバイス間である。例示的な実施形態において、通信ユニット21は、TCP/IPアダプタカード、無線Wi-Fi(登録商標)インタフェースカードまたはアンテナ、3G、4G、または5Gセルラネットワークインタフェースカード、または他の有線もしくは無線通信リンクなどのネットワークアダプタまたはインタフェースを含み得る。通信ネットワークは例えば、通信ネットワークデバイス、システム、ホスト、端末、または他のネットワークコンピュータシステムのノードの一部であり得る、またはそれに接続され得る、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、エッジサーバ、もしくは、他のネットワークハードウェアまたはその組み合わせを含み得る。本発明の実施形態を実施するために使用されるソフトウェアおよびデータは、通信ユニット21を通じて(例えば、インターネット、ローカルエリアネットワーク、または他のワイドエリアネットワークを介して)、ネットワーク環境において動作するコンピュータシステムにダウンロードされ得る。通信ユニット21からは、ソフトウェア、ならびに、プログラム24、アプリケーション107、ワークロード109またはサービスのデータが永続ストレージ16にロードされてメモリ15もしくはキャッシュ17またはその両方に保存され得る。
【0037】
1または複数のI/Oインタフェース25は、データ処理システム10に接続され得る他のデバイスとのデータの入力および出力を可能にし得る。例えば、I/Oインタフェース25は、1または複数のIoTデバイスなどの1または複数の外部デバイス27、オーディオ記録デバイスなどの記録デバイス、マイク、カメラ、1または複数のセンサ、キーボードやコンピュータマウス、タッチ画面、仮想キーボード、タッチパッド、ポインティングデバイス、または他のヒューマンインタフェースデバイスなどの入力デバイスへの接続を提供し得る。外部デバイス27はまた、例えば、サムドライブ、ポータブル光学または磁気ディスク、メモリカードなどのポータブルコンピュータ可読記憶媒体を含み得る。I/Oインタフェース25は、ヒト可読ディスプレイデバイス28に接続し得る。ディスプレイデバイス28は、ユーザにデータを表示するための機構を提供し、例えば、コンピュータモニタ、画面、テレビ、プロジェクタ、ディスプレイパネルなどであり得る。ディスプレイデバイス28はまた、内蔵ディスプレイであり得、タブレットコンピュータまたはモバイルコンピューティングデバイスのビルトインディスプレイの一部であるタッチ画面として機能し得る。
【0038】
ブロックチェーン実装型データ移行監査証跡を実行するためのシステム
【0039】
本開示の態様は概して、ブロックチェーンストレージの分野に関し、より具体的には、アプリケーションログによって提供される証拠、オペレーティングシステムログ、ユーザアクセスログ、ネットワークデバイスログ、もしくは、移行ツールもしくは他のイベントレコード(本明細書では「アセット」または「デジタルアセット」と総称される)またはその組み合わせを含む、エンドツーエンドデータ移行に関連付けされた1または複数のタスクの完了を記述する証拠をセキュアにブロックチェーンネットワークのブロックに転送するためにブロックチェーンを実装し、エンドツーエンド移行プロセスの1または複数のタスクを実行する各ステークホルダによって信頼される、監査証跡129を含むセキュアな台帳を作成することに関する。エンドツーエンド移行プロセスが継続し、最終的に、ネットワーク、データセンタ、プライベート、もしくはパブリッククラウドまたはその組み合わせの間のデータ転送を完了するとき、エンドツーエンド移行タスク111の完了を監督及び/またはレビューすることを担当する管理者もしくは監査者またはその両方は、ブロックチェーンネットワーク130のピアノード104-110によって保存された台帳をクエリすることによって、ブロックチェーンネットワーク130を通じて監査証跡129に保存された監査データにアクセスできる。監査者および管理者は、データ移行の進行をレビューし、1または複数のタスクを割り当てられた1または複数の担当する当事主体の進行を追跡し、任意のエラーを分析し、データの転送が正常に実行されていることをセキュアに検証できる。
【0040】
本明細書の図において一般的に説明され例示される例示のコンポーネントは、幅広い様々な異なる構成で配置および設計され得ることが容易に理解される。従って、添付の図において表される方法、機器、非一時的コンピュータ可読媒体、およびシステムの少なくとも1つの実施形態についての以下の詳細な説明は、請求される適用の範囲を限定することを意図するものではなく、選択された実施形態を単に代表するものである。
【0041】
本明細書の全体にわたって説明される例示の特徴、構造、または特性は、1または複数の実施形態において、任意の好適な方式で組み合わされ得る、または、除外され得る。例えば、本明細書全体における「例示的な実施形態」、「いくつかの実施形態」という語句、または他の同様の文言の使用は、実施形態に関連して説明される特定の特徴、構造、または特性が、少なくとも1つの実施形態に含まれ得るという事実を指す。従って、本明細書全体における「例示的な実施形態」、「いくつかの実施形態において」、「他の実施形態において」という語句、または他の同様の文言が出現した場合、必ずしもすべてが同一のグループの実施形態を指すわけではなく、説明された特徴、構造、または特性は、1または複数の実施形態における任意の好適な方式において組み合され得る、または、除外され得る。更に、図において、要素間の任意の接続は、図示された接続が単方向または双方向の矢印である場合でも、単方向もしくは双方向またはその両方の通信を許容し得る。また、図面において図示される任意のデバイスは異なるデバイスであり得る。例えば、モバイルデバイスが情報を送信していることが示される場合、情報を送信するために有線デバイスが使用されてもよい。
【0042】
加えて、「メッセージ」という用語が実施形態の説明において使用され得るが、アプリケーションは、多くのタイプのネットワークおよびデータに適用され得る。更に、特定のタイプの接続、メッセージ、およびシグナリングが例示的な実施形態において図示され得るが、アプリケーションは、特定のタイプの接続、メッセージ、およびシグナリングに限定されるものではない。
【0043】
本明細書において、ブロックチェーン/ハイパーレジャーファブリックを利用して、ソースデータセンタ101またはクラウドネットワーク250(パブリックまたはプライベート)などの1または複数の移行データソースと、対象データセンタ125またはクラウドネットワーク250などのデータ移行先との間のデータ移行中に実行される1または複数のエンドツーエンドデータ移行タスク111の進行もしくは完了またはその両方を記述する監査証跡129をセキュアに作成するための方法、システム、およびコンピュータプログラム製品が詳細に説明されている。図面を参照すると、
図2Aから
図6は、ブロックチェーン実装型データ移行監査証跡129のシステム、方法、およびコンピュータプログラム製品を実装するために、コンピューティング環境200、240、300、500、550において動作する1または複数のデータ処理システム10およびその変形を使用して実行され得るアプローチを図示する。コンピューティング環境200、240、300、500、550の実施形態は、コンピューティングネットワークの一部として相互接続される1または複数のデータ処理システム10を含み得る。コンピューティングネットワークを通じて通信する相互接続されたデータ処理システム10は、1または複数のデータセンタ101、125の相互接続を含み得るがそれに限定されるものではない専用システムまたはデバイスであり得、ロギングサーバ103もしくはモニタリングサーバ105またはその両方、クライアントデバイス119、123、127、もしくは、ブロックチェーンネットワーク130のブロックチェーンノード102をホストするブロックチェーンプラットフォーム112またはその組み合わせを備える。
【0044】
図2Aから
図6に示される専門データ処理システム10は、
図2Aから
図6の図面において図示されるシステムおよびデバイスの要素のみを含み得るのではなく、
図2Aから
図6において図示される専門データ処理システムは更に、
図1に示される、および、上に説明されるデータ処理システム10の1または複数の要素を内蔵し得る。図には図示されていないが、データ処理システム10の1または複数の要素が、データセンタ101、125、ロギングサーバ103a、103b、モニタリングサーバ105a、105b、クライアントデバイス119、123、127、ならびに、ブロックチェーンプラットフォーム112もしくはブロックチェーンネットワーク130またはその組み合わせを構成するブロックチェーンノード102をホストするシステムの実施形態に統合され得、1または複数のプロセッサ13、プログラム24、メモリ15、永続ストレージ16、キャッシュ17、通信ユニット21、入力/出力(I/O)インタフェース25、外部デバイス27、もしくはディスプレイデバイス28またはその組み合わせの内蔵を含む(これらに限定されるものではない)。
【0045】
図面を参照すると、
図2Aから
図2Bは、エンドツーエンド移行タスク111(本明細書ではタスク111とも称される)の進行をセキュアに保存および追跡するためにブロックチェーンで実装される監査証跡129を実行可能なコンピューティング環境200、240の例を図示する。タスク111が実行および完了されるとき、タスク111を完了するための期限に間に合わず、または、エラーもしくはアラートまたはその両方が出力される結果となる。
図2Aから
図2Bに示されるように、エンドツーエンド移行タスク111は、データ移行が生じる前に、データ移行手順の一部として実行され得るタスク(移行前タスク113)、データ移行元からデータ移行先へのデータの移行の一部であるタスク(移行タスク115)、および、データ移行先へのデータ移行の完了に続いて実行され得るタスク(移行後タスク117)を含み得る。
【0046】
図2Aから
図2Bの実施形態において示されるように、1または複数のアプリケーション107もしくはワークロード109またはその両方の移行を含むデータ移行の例は、データ移行元(すなわちソースデータセンタ101)からデータ移行先(すなわち
図2Aに示される対象データセンタ125)、ソースデータセンタ101からプライベートまたはパブリッククラウドネットワーク250(
図2Bに示される)への移行、もしくは、いくつかの実施形態においては、第1プライベートまたはパブリッククラウドネットワーク250から第2プライベートまたはパブリッククラウドネットワーク250への移行またはその両方の一部として実行され得る。
【0047】
クラウドネットワーク250は、管理の労力またはサービスのプロバイダとのインタラクションを最小限に抑えながら迅速にプロビジョニングおよびリリースできる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、プロセス、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールに対する便利なオンデマンドのネットワークアクセスを可能するための、サービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含み得る。
【0048】
特性は以下の通りである。
【0049】
オンデマンドセルフサービス:クラウド消費者は、人間とサービスのプロバイダとのインタラクションを必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングできる。
【0050】
ブロードネットワークアクセス:能力はネットワークを通じて利用可能であり、異種混合のシンまたはシッククライアントプラットフォームによる使用を促進する標準的な機構(例えば携帯電話、ラップトップ、スマートデバイス、IoTデバイス、仮想アシスタントハブなど)を通じてアクセスされる。
【0051】
リソースプール:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを使用して複数の消費者にサービスを提供し、異なる物理的および仮想的リソースが需要に応じて動的に割り当ておよび再割り当てされる。概して消費者は提供されるリソースの厳密な位置についての制御または知識を有しないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で位置を指定可能であり得るという点で、位置独立性の意味がある。
【0052】
迅速な柔軟性:いくつかの場合においては自動的に、迅速なスケールアウトのために、能力を急速かつ柔軟にプロビジョニングでき、迅速なスケールインのために迅速にリリースできる。消費者にとって、多くの場合、プロビジョニングに利用可能な能力は無制限に見え、任意の時間に任意の量で購入できる。
【0053】
測定されたサービス:クラウドシステムは、サービスのタイプに適切な、いくらかの抽象化レベル(例えば、ストレージ、処理、帯域幅、および、アクティブユーザアカウント)で、測定能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用量が監視、制御、レポートされ得、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供する。
【0054】
サービスモデルは以下の通りである。
【0055】
ソフトウェア・アズ・ア・サービス(SaaS):消費者に提供される能力は、クラウドインフラストラクチャ上で実行するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えばウェブベースの電子メール)などのシンクライアントインタフェースを通じて様々なクライアントデバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または更には個々のアプリケーション能力を含む基礎のクラウドインフラストラクチャを管理または制御しないが、限定されたユーザ固有のアプリケーション構成設定は例外である可能性がある。
【0056】
プラットフォーム・アズ・ア・サービス(PaaS):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して形成される、消費者が形成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基礎のクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーション、および、場合によっては、環境構成をホストするアプリケーションに対する制御を有する。
【0057】
インフラストラクチャ・アズ・ア・サービス(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、および、消費者がオペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行できる他の基本的なコンピューティングリソースをプロビジョニングすることである。消費者は、基礎のクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、および、場合によっては、選択されたネットワークコンポーネント(例えばホストファイアウォール)の限定された制御に対する制御を有する。
【0058】
展開モデルは以下の通りである。
【0059】
プライベートクラウド:クラウドインフラストラクチャは組織のみのために動作される。組織またはサードパーティによって管理され得、敷地内または敷地外に存在し得る。
【0060】
コミュニティクラウド:クラウドインフラストラクチャは、複数の組織によって共有され、共有された関心(例えば、役割、セキュリティ要件、ポリシー、および、コンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。組織またはサードパーティによって管理され得、敷地内または敷地外に存在し得る。
【0061】
パブリッククラウド:クラウドインフラストラクチャは、一般大衆または大きい産業グループに利用可能となり、クラウドサービスを販売する組織によって所有される。
【0062】
ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティであり続けるが、データおよびアプリケーションのポータビリティを可能にする標準化またはプロプライエタリ技術(例えば、クラウド間のロードバランシングのためのクラウドバースティング)によって共に結合される2以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0063】
クラウドコンピューティング環境300は、ステートレス性、低カップリング、モジュール性、および、セマンティック相互運用性に着目したサービス指向である。クラウドコンピューティングの中心は、相互接続されたノード310のクラウドネットワーク250を含むインフラストラクチャである。
【0064】
図面を参照すると、
図3は、クラウドコンピューティング環境300の例を図示する。示されるように、クラウドコンピューティング環境300は、クラウド消費者によって操作または構成されるクライアントデバイスを使用して顧客がアクセスできる1または複数のクラウドコンピューティングノード310を含む。1または複数のホストシステム、またはエッジデバイスなどのクラウドコンピューティング環境300のノード310は互いに通信し得、1または複数のネットワークにおいて、上で説明されるように、プライベート、コミュニティ、パブリック、またはハイブリッドクラウドなど、または、それらの組み合わせで、物理的または仮想的にグループ化され得る(図示せず)。これにより、クラウドコンピューティング環境300は、クラウド消費者がクラウドネットワーク250のノード310と接続または通信するクライアントデバイス318a-318n上でリソースを維持する必要が無い、インフラストラクチャ、プラットフォーム、もしくはソフトウェア・アズ・ア・サービス、またはその両方を提供することが可能となり得る。クラウドコンピューティング環境300に接続されるクライアントデバイス318a-318nのタイプは、例示のみを意図し、クラウドコンピューティング環境300のコンピューティングノード310は、任意のタイプのネットワークもしくはネットワークアドレス指定可能接続(例えばウェブブラウザを使用)またはその両方を介して、任意のタイプのコンピュータ化デバイスと通信できることが理解される。
【0065】
ここで
図4を参照すると、クラウドコンピューティング環境300によって提供される機能抽象化層のセットが示される。
図4に示されるコンポーネント、層、および機能は、例示のみを意図し、発明の実施形態はこれらに限定されるものではないことを事前に理解されたい。図示されるように、以下の層および対応する機能が提供される。
【0066】
ハードウェアおよびソフトウェア層460は、ハードウェアおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム461、RISC(Reduced Instruction Set Computer)アーキテクチャベースサーバ462、ロギングサーバ103およびモニタリングサーバを含むサーバ463、ブレードサーバ464、記憶装置465、ならびにネットワークおよびネットワークコンポーネント466を含む。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア467およびデータベースソフトウェア468を含む。
【0067】
仮想化層470は、仮想エンティティの以下の例、すなわち、仮想サーバ471、仮想ストレージ472、仮想プライベートネットワークを含む仮想ネットワーク473、仮想アプリケーションおよびオペレーティングシステム474、ならびに仮想クライアント475が提供され得る抽象化層を提供する。
【0068】
一例において、管理層480は、以下で説明される機能を提供し得る。リソースプロビジョニング481は、クラウドコンピューティング環境300におけるタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的調達を提供する。測定および価格設定482は、リソースがクラウドコンピューティング環境300において利用されるときのコスト追跡、および、これらのリソースの消費についての課金または請求を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウド消費者およびタスクについてのアイデンティティ検証、ならびに、データおよび他のリソースの保護を提供する。ユーザポータル483は、消費者およびシステム管理者のためにクラウドコンピューティング環境300へのアクセスを提供する。サービスレベル管理484は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソース割り当ておよび管理を提供する。サービスレベル合意(SLA)計画および達成485は、SLAに従って将来の要件が予想されるクラウドコンピューティングリソースの事前手配および調達を提供する。
【0069】
ワークロード層490は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロード109および機能の例は、ソフトウェア開発およびライフサイクル管理491、データ分析処理492、仮想クラスルーム教育配信493、トランザクション処理494、ブロックチェーンアプリケーション124、もしくは、ピアノード104-110ブロックチェーンプラットフォーム112またはその組み合わせにアクセスして通信するためのAPI122を含む。例えば、アプリケーション124もしくはAPI122またはその両方を使用して、チェーンコード/スマートコントラクト(下で詳細に説明される)を提案された更新ブロックに呼び出し、ブロックチェーンを追加する、もしくは、監査証跡129を含む、ピアノード104-110によって保存された台帳をクエリする、またその両方を行う。
【0070】
図面を参照すると、
図2A~
図2Bは、ブロックチェーンネットワーク130を使用する、監査証跡129を含む、ブロックチェーン上の台帳を作成、保存、もしくは更新、またその組み合わせをすることが可能なコンピューティング環境200、240のブロック図の例を図示する。監査証跡129の実施形態は、データ移行元からデータ移行先へのデータの移行に関連付けられたタスク111の進行を追跡および監視することを目的に生成され得る。コンピューティング環境200の例に示されるように、コンピューティング環境200は、コンピューティング環境内、もしくはネットワーク内、またその両方の別の場所へ転送またはコピーされることが選択されたデータを保存および維持し得るデータ移行元(すなわちソースデータセンタ101)を含み得る。例えば、サーバ103a、105a、仮想デバイス、ストレージ、コンテナなどを含む、1または複数のアプリケーション107a、ワークロード109a、ならびにデータ移行元によってホストされる仮想デバイスおよびシステムの移転。
【0071】
データ移行イベントを実行することを選択するステークホルダ、および、データ移行イベントの複雑性は、生じ得るデータ移行のタイプに応じて変動し得る。例えば、いくつかの実施形態において、アプリケーション107aの所有者、または、ソースデータセンタ101によってホストされるサービスプロバイダは、アプリケーション107aまたはワークロード109a、および、ソースデータセンタ101によってホストされる関連付けられたデータを、対象データセンタ125またはクラウドネットワーク250などの新しい場所へ移行することを選択し得る。他の実施形態において、ソースデータセンタ101の所有者など、移行データソースの所有者または管理者は、データセンタをアップグレードし、レガシーシステムからパブリックまたはプライベートクラウドネットワーク250へ移行し、もしくはプライベートクラウドからパブリッククラウドへ転移する(またはその逆)ことを決定し、またその両方を行い得る。データセンタ101、125、もしくはクラウドネットワーク250、またその両方の所有者または管理者が新しいインフラストラクチャまたは新しい場所へ移行することを決定する結果として、結果的な移行は、ホストされるすべてのアプリケーション107a、ワークロード109a、サーバ、仮想クライアントおよびデータを新しい対象場所に転移させ得る。
【0072】
データ移行元からデータ移行先へのデータの移行を要求、もしくは調整、またその両方を行うステークホルダは、特定の仕様中の移行イベントを適切に完了するべく、エンドツーエンド移行タスク111の1または複数を完了するためのスケジュールを作り得る。例えば、約束された時間枠内に、または、約束された契約上の義務もしくはサービスレベルに沿う。いくつかの実施形態、データの移行を調整する、もしくはタスク111をスケジュールする、またその両方を行うエンティティは、転送されるデータの所有者、管理者、またはオペレータ、であるか、もしくはデータ移行元の所有者、オペレータ、または管理者であるか、またその両方であり得る。例えば、ソースデータセンタ101の所有者、オペレータ、または管理者、もしくは、1または複数のアプリケーション107a及び/またはソースデータセンタ101によってホストされるワークロード109a、またその両方のサービスプロバイダ。他の実施形態において、1または複数のタスク111の完了を調整およびスケジュールし得るエンティティは、1または複数の移行チーム(社内、または、エンドツーエンド移行プロセスを実行するために雇用されたサードパーティ)であり得る。完了のためにスケジュールされ得るタスク111の実施形態は、一連の移行前タスク113、移行タスク115、および、移行後タスク117、期限を含む、タスクを完了するためにスケジュールされた時間枠、ならびに、各タスクを完了するように割り当てられたステークホルダを含み得る。移行前タスクの例は、サーバをリブートすること、ソースデータセンタ101の記憶装置をバックアップするために準備すること、1または複数の実行中アプリケーション107a、もしくはワークロード109a、またその両方のサービスを終了することを含み得る。移行タスク115の実施形態は、データ、アプリケーション107a、ワークロード109aおよびライブラリの実際の転送、ならびに、データ移行先でのストレージおよび動作の要件を満たすようにデータを変換、もしくはフォーマット、またその両方をし得るプロセスに関与し得る1または複数のタスクを含み得る。例えば、ソースデータセンタ101におけるデータベースによって保存されたデータを、データの移行中にデータベースデータセットを受信する対象データセンタ125のデータベースエンジンによって理解される新しいアップグレードフォーマットに変換すること。更に、移行後タスク117の例は、データ移行先によって受信される移行されたデータの完了を認証する、パーミッションを更新する、新しいデータ移行先上のデスティネーションに対応するようにフィールドを更新する、サーバ名称を更新する、従属を更新する、データ移行先を最終的にテストして、データ移行中にエラーが無かったことを保証するなどのタスクを含み得、転送されたアプリケーション107b、もしくはワークロード109b、またその両方をテストして、それらがエラー無しで開始および動作することを保証することに関する移行後タスク117を含む。
【0073】
コンピューティング環境200、240の実施形態は、エンドツーエンドデータ移行イベントの一部として、完了のために1または複数の特定のステークホルダに割り当てられたタスク111の履行もしくは完了またはその両方を実行およびロギングする複数のシステム、コンポーネント、モジュール、サービス、もしくはプログラムまたはその組み合わせを含み得る。1または複数のタスク111の実行の履行、完了、および、更には失敗(すなわち、間に合わなかった期限またはエラーに起因する)は、コンピューティング環境200、240中の1または複数のシステム、コンポーネント、プログラムなどによって捕捉およびロギングされ得る。例えば、タスク111は、データ移行元もしくはデータ移行先またはその両方のいずれかの1または複数のロギングサーバ103a、103b、モニタリングサーバ105a、105b、アプリケーション107a、107b、ワークロード109a、109b、ならびに、1または複数のブロックチェーンアプリケーション124、API122、またはアプリケーションコード120を実行する移行ツール121もしくはクライアントデバイス119、123、127またはその組み合わせと連携して監視、実行、もしくはロギングまたはその組み合わせが行われ得る。
【0074】
特定のエンティティにスケジュールまたは割り当てられた1または複数のタスク111の実行に応じて、1または複数のタスク111の履行を実行するシステム、コンポーネント、モジュール、サービス、もしくはプログラムまたはその組み合わせの実施形態は、タスク111の実行(または試行された実行)を記述する詳細なデジタルアセットを作成し得る。「デジタルアセット」という用語は、データの所有者または管理者によって所有、ライセンス、または制御される電子レコードが作成されることを指し得る。例えば、ソースデータセンタ101によって作成されるログ、アラート、またはイベントレコードは、いくつかの例において、ソースデータセンタ101の所有者、または、ログもしくはレコードを作成するアプリケーション107aもしくはワークロード109aの所有者/ライセンシーによって所有されるデジタルアセットであり得る。ログ、アラート、イベントレコード、エラー報告、または、他のタイプのファイルを作成するリソースの実施形態は、イベントの特徴を記述するファイルデータ(またはメタデータ)内の詳細を提供し得る。例えば、レコード、ログ、エラー報告、またはアラートは、タスク名称、タスクが実行された日付と時間、タスク完了の日付と時間、タスクの結果(すなわち、正常に完了したか、または失敗したか)、生じた任意のエラーのリストおよび記述、ならびに、任意のエラーコードもしくはアラート、システム、アプリケーション107、ワークロード109、プログラム、移行ツール121、または、タスク111を実行するために使用される他のコンピューティングリソースを含み得る。デジタルアセットは、1または複数のシステム、コンポーネント、モジュール、サービス、アプリケーション107、ワークロード109、1または複数のタスク111の履行を実行するプログラム(概して「リソース」と称される)によって出力及び/または保存され得る。1または複数のタスク111の履行を実行するリソースの実施形態は、自動的に、及び/または、定期的に、API122もしくはブロックチェーンアプリケーション124またはその両方を介して、ブロックチェーンプラットフォーム112との接続を確立し、監査証跡129を含む台帳を、ブロックチェーンプラットフォーム112の1または複数のピアノード104-110へのエンドツーエンド移行タスク111の実行および履行を記述するデジタルアセットを含む1または複数のファイルで更新することを要求し得る。ピアノード104-110の実施形態は各々、1または複数のブロックチェーン台帳のインスタンスをホストし、ブロックチェーンの台帳(すなわち監査証跡129)にアクセスできるチェーンコード(スマートコントラクトとも称され、下で詳細に記述される)を含み得る。チェーンコードとのインタフェースは、アプリケーションコード120を実行するAPI122を介して生じる。例えば、エンドツーエンド移行タスク111の監査者は、API122を介してチェーンコードを実行して台帳をクエリし得る、及び/または、移行ツール121もしくはチェーンコードは、API122を介して実行され、ピアノードの台帳を更新し得る。いくつかの実施形態において、リソースの各々はまた、1または複数のタスク111の実行を詳細に説明し記述するデジタルアセットを、ローカルのレポジトリもしくはデータベース、もしくは、ネットワークアクセス可能レポジトリもしくはデータベース(ブロックチェーンプラットフォーム112の外側からアクセス可能であり得る)またはその組み合わせにバックアップおよび保存し得る。
【0075】
上に記載された通り、1または複数のタスク111の実行および履行時にデジタルアセットを作成し得るリソースの1つはロギングサーバ103a、103bであり得る。ロギングサーバ103の実施形態は、ログデータの収集元であるコンピュータシステムの状態に関するログデータおよびイベントレコードを管理および担当し得るコンピュータ(現実または仮想)またはコンピュータプログラムを指し得る。例えば、ロギングサーバ103aは、1または複数のアプリケーション107aのアクション、および、ソースデータセンタ101のワークロード109aを記述するログおよびイベントレコードを含む、ソースデータセンタ101の状態を記述するログデータおよびイベントレコードを管理および担当する。ロギングサーバ103aの実施形態は、ロギングサーバ103aによって追跡されるイベントおよびログのレコードを追加的、選択的に保存およびアーカイブし、保存されたログのセキュリティおよび機密性を保証し、失われた情報を分析及び/またはログに追加することによってログおよびイベントレコードの品質を制御し、ログによって記録されたイベントをコンテキスト化し得る(ログまたはイベントレコードを生成したIPアドレスについての情報、ユーザ情報、アクセスされるシステムの1または複数の特徴、および、発生するログまたはイベントの一部としてトリガされ得る任意のエラー詳細またはアラートを記録することを含む)。
【0076】
上記エンドツーエンド移行タスク111の実行または履行に応答して、エンドツーエンドタスク111の監査証跡129に貢献するデジタルアセットを作成し得る別のタイプのリソースは、モニタリングサーバ105a、105bを含み得る。モニタリングサーバ105の実施形態は、コンピュータシステム(現実または仮想)、または、アプリケーション107およびワークロード109の監督を担当するコンピュータプログラムであり得、ある瞬間のアプリケーション107およびワークロード109の全体図、ならびに、アプリケーション107またはワークロード109の過去の状態の履歴(アプリケーションまたはワークロードのリソースの履行及び/または応答時間、アプリケーション107またはワークロード109の完全性、ならびに、アプリケーション107またはワークロード109の利用可能性を含む)を提供し得る。モニタリングサーバ105は、履行の欠如、サービスに入る接続の数、アプリケーション107またはワークロード109、および以上を検出できる。モニタリングサーバ105は、一般に「メトリクス」と称される、サービス、アプリケーション107、およびワークロード109の複数の要素を監視し得る。監視され得るメトリクスは、CPU負荷、同時接続数、エラー、アプリケーション107またはワークロード109とのシミュレートされたインタラクション、ネットワーク負荷(すなわち、サービス品質、レイテンシ、pingなど)、および、ファイアウォールによってブロックされる試行された接続を含み得る(これらに限定されるものではない)。モニタリングサーバ105によってメトリクスを監督することによって、著しい状態変化を参照または示し得るアラートの作成が可能となる。これはいくつかの例において、1または複数のタスク111を実行する結果であり得る。1または複数のタスク111の実行に応答して作成され得るアラートの例は、高すぎるCPU負荷、レポジトリへのプッシュ、ビルドエラー、および、多すぎる同時接続を含み得る。
【0077】
いくつかの実施形態において、移行ツール121は、1または複数のエンドツーエンド移行タスク111を実行するために使用され得る。移行ツール121は、移行クライアントデバイス119を介して1または複数のステークホルダによって操作され得、多くの場合、データ移行チーム、管理チーム、もしくはインフラストラクチャチームまたはその組み合わせなど、タスク111が割り当てられ得る1より多くの異なるチームによって使用され得る。データ移行ツール121の実施形態は、アプリケーション107a、サービス、ライブラリ、サーバ103a、105a、もしくはワークロード109a(「移行データ」と総称される)またはその組み合わせを1つのストレージシステムから別のストレージシステムへ、より具体的には、データ移行元の1または複数のストレージシステムからデータ移行先のストレージシステムへ移動するために使用され得る。データ移行ツール121は、データ移行元のデータを選択、準備、抽出及び/または変換するプロセスを通じて、移行タスク115を含む1または複数のエンドツーエンド移行タスク111を実行し、移行データの形態がデータ移行先のストレージシステムの新しい保存場所と適合することを保証し得る。移行ツール121の実施形態は、データ統合を実行可能なツールセットを含み得、抽出、ロード、変換(ETL)ツールを含み得る。
【0078】
移行ツール121の実施形態の一部であり得るETLツールは、データ移行プロセスの複雑な移行タスク115を含む、エンドツーエンド移行タスク111の複雑な要件に対処することが可能であり得る。移行ツール121のETL機能は、ビッグデータセット、詳細なデータプロファイリング、および、複数のプラットフォーム間の移行データの統合を処理するためのツールを含み得る。いくつかの実施形態において、移行ツール121のETL機能は、動作システムからデータを取得する、取得されたデータを統一フォーマットに変換する、変換されたデータをデータ移行先のデスティネーションデータベースまたはストレージシステムにロードするなど、標準ETLタスクを自動化し得る。
【0079】
移行ツール121のいくつかの実施形態において、1または複数のエンドツーエンド移行タスクを実行する移行ツールの出力は、移行ツール121によって実行されるタスク111、実行された1または複数のアクション、タスク111の実行結果(成功、失敗、エラーなどのインジケーションを含む)、タスクが開始および完了した日付および時間を詳細に説明する、1または複数のログ、アラート、エラー、レコードもしくは別のタイプのデジタルアセットまたはその組み合わせ、ならびに、タスクを実行するユーザ、移行ツール121を実行する移行クライアントデバイス119のIPアドレス、データ移行元およびデータ移行先を説明する情報を出力することを含み得る。
【0080】
1または複数のシステム、コンポーネント、プログラムアプリケーション107、ワークロード、サーバ103、105、もしくは、移行ツール121またはその組み合わせによる、1または複数の割り当てられたエンドツーエンド移行タスク111を実行する結果として記録及び/または生成されるログ、レコード、エラー、アラートおよびイベントなどのデジタルアセットの実施形態は、ブロックチェーンのデータ層128または別のタイプの分散データベース内に1または複数のブロックとしての監査証跡129の一部として保存され得る。本明細書において説明されるいくつかの実施形態の方法、システム、もしくはコンピュータプログラム製品またはその組み合わせは、互いに通信するブロックチェーンネットワーク130上の複数のノード102(ピアノード104-110を含む)を含む分散ストレージシステムである分散データベース(ブロックチェーンなど)を利用して、データ移行元とデータ移行先との間のデータのエンドツーエンド移行を記述する監査証跡129のデータを作成および更新する。分散データベースは、相互に信頼されない当事主体間のレコードを維持可能な分散型台帳に似た、追記のみの不変データ構造を含み得る。信頼されない当事主体は、本明細書において、ピアノード104-110、または単にピアと称される。各ピア104-110は、監査証跡129を記述する分散型台帳のコピーを維持し、単一ピアは、分散ピア104-110の間のコンセンサスを得ることなく、台帳のレコードを修正できない。例えば、ピアノード104-110は、コンセンサスプロトコルを実行して、監査証跡129に書き込まれるブロックとしてデジタルアセットを保存するブロックチェーンのストレージトランザクションを認証し、ストレージトランザクションをブロックにグループ化し、ブロック上でハッシュチェーンを構築し得る。このプロセスは、整合性のために必要に応じてストレージトランザクションを順序付けすることによって台帳を形成する。
【0081】
様々な実施形態において、パーミッション型もしくはパーミッションレス型ブロックチェーンまたはその両方を使用できる。パブリック、またはパーミッションレスブロックチェーンにおいて、だれでも特定のアイデンティティ無しで参加できる(例えば匿名性を維持する)。パブリックブロックチェーンは、ネイティブ暗号通過を伴い、プルーフオブワークなどの様々なプロトコルに基づくコンセンサスを使用することがあり得る。一方、パーミッション型ブロックチェーンデータベースは、共通の目標(すなわち、データの移行)を共有するが、互いに完全に信頼しないエンティティのグループ、例えば、目標を完了するために資金、商品、(プライベート)情報、および同様のものを交換する企業、エンティティ、もしくはステークホルダまたはその組み合わせなどの間でセキュアなインタラクションを提供する。
【0082】
更に、いくつかの実施形態において、方法、システム、もしくは、コンピュータプログラム製品は、ストレージ方式またはその組み合わせを分散するように適合された、「スマートコントラクト」または「チェーンコード」と称される任意のプログラマブルロジックを操作するブロックチェーンを利用し得る。ピア104-110は、アプリケーションコードを実行してチェーンコード命令またはコマンドを実装するアプリケーション124もしくはAPI122またはその両方に接続できるチェーンコードのインスタンスをホストし得る。例えば、特定のピアノードの台帳にアクセスまたはクエリするための、または、台帳(すなわち監査証跡129)をピアノード104-110のコンセンサスで更新するための命令。いくつかの場合、システムチェーンコードと称される管理機能およびパラメータについての専用のチェーンコードが存在し得る(オフチェーンデータストアデータベースへのアクセスを管理するなど)。いくつかの実施形態において、方法、システム、もしくはコンピュータプログラム製品またはその組み合わせは更に、ブロックチェーンデータベースの改ざん防止特性、および、承認または承認ポリシーと称されるノード102間の基本的合意を活用する信頼された分散アプリケーションであるスマートコントラクトを利用し得る。アプリケーションに関連付けられたブロックチェーントランザクションは、ブロックチェーンにコミットする前に承認され得、一方、承認されないトランザクションは破棄される。
【0083】
承認ポリシーは、チェーンコードが、承認のために必要とされるピアノード104-110のセットの形式で、トランザクションのための承認者を指定することを可能にする。ブロックチェーンネットワーク130のクライアントノードが、トランザクションを、承認ポリシーにおいて指定されたピア104-110へ送信するとき、トランザクションを認証するためにトランザクションが実行される。認証後、トランザクションは、ブロックにグループ化される承認されたトランザクションの順序付けされたシーケンスを生成するためにコンセンサスプロトコルが使用される順序付けフェーズに入る。
【0084】
いくつかの実施形態において、方法、システム、もしくはコンピュータプログラム製品またはその組み合わせは、ブロックチェーンシステムの通信エンティティであるノード102を利用できる。「ノード」は、異なる種類の複数のノードが、同一の物理的サーバまたはブロックチェーンプラットフォーム112上で実行できるという意味で、論理機能を実行し得る。ブロックチェーンノード102は、信頼ドメインにグループ化され、様々な方式でそれらを制御する論理エンティティに関連付けられる。ブロックチェーンノード102は、クライアントノード560、または、トランザクション呼び出しを承認者(例えばピア)に提出し、トランザクション提案を順序付けサービス(例えば順序付けノード)にブロードキャストする提出クライアントノードなど、異なる種類を含み得る。
【0085】
別のタイプのノード102は、クライアント提出トランザクションを受信し、トランザクションをコミットし、ブロックチェーントランザクションの台帳の状態およびコピーを維持できるピアノード104-110である。ピア104-110はまた、要件ではないが、承認者の役割を有し得る。順序付けサービスノードまたは注文者は、すべてのブロックチェーンノード102について通信サービスを実行し、トランザクションをコミット/確認し(データ移行元、データ移行先、移行ツール121および1または複数のクライアントデバイス119、123、127から受信されたデジタルアセットの転送を記録することを含む)、初期ブロックチェーントランザクションについての別の名称であり、通常は制御およびセットアップ情報を含み得る、ブロックチェーンのワールドステートを修正するときにピアノード104-110の各々へのブロードキャストなどの配信保証を実装するノードである。
【0086】
いくつかの実施形態において、方法、システム、もしくはコンピュータプログラム製品またはその組み合わせは、ブロックチェーンの状態遷移すべての順序付けされた、改ざん防止レコードである台帳を利用できる。状態遷移は、参加当事主体(例えば、クライアントノード、順序付けノード、承認者ノード、ピアノードなど)によって提出されたチェーンコード呼び出し(例えばトランザクション)の結果であり得る。各参加当事主体(ピアノード104~110など)は台帳のコピーを維持できる。トランザクションは結果として、作成、更新、削除、および同様のものなど、1または複数のオペランドとして台帳にコミットされるアセットキーと値のペアのセットをもたらし得る。台帳は、順序付けされた不変のレコードをブロックに保存するための使用されるブロックチェーン(チェーンとも称される)を含む。台帳はまた、ブロックチェーンの現在の状態を維持する状態データベースを含む。
【0087】
いくつかの実施形態において、本明細書で説明される方法、システム、もしくはコンピュータプログラム製品またはその組み合わせは、(
図6に示される)ハッシュ連結ブロックの構造であるトランザクションログとしてチェーンを利用でき、各ブロックは、Nのトランザクションのシーケンスを含み、Nは1以上である。ブロックヘッダは、ブロックのトランザクションのハッシュ605a-605n、および、前のブロックのヘッダのハッシュ607a-nを含む。ジェネシスブロックとの例において、前のブロックの先頭のハッシュは、ゼロにされ得る。なぜなら、前のブロックが存在しないことがあり得るからである。ハッシュ連結ブロックの図において、台帳上のすべてのトランザクションは、順序付けされて、暗号的に共にリンクされ得る。従って、ハッシュリンクを壊すことなく台帳データを改ざんすることは不可能である。もっとも最近追加されたブロックチェーンブロックのハッシュ605は、それより前に来るチェーン上の全トランザクションを表し、すべてのピアノード104-110が、整合性のある信頼された状態にあることを保証可能にする。ブロックチェーンは、ピアノード104-110ファイルシステム(例えば、ローカル、アッタッチドストレージ、クラウドなど)に保存され得、ブロックチェーンワークロードの追記のみの性質を効率的にサポートする。
図6は、ピアノード104-110によって保存されたハッシュ連結ブロックとしての構造であるトランザクションログの例を図示する。
図6に示すように、ブロックチェーンネットワーク130のピアノード104-110の各々が、リンクされたハッシュ605a-605n、前のブロックの前のハッシュ607a-607n、および、ペイロード609a-609n(すなわち、監査証跡129に追加されるデジタルアセットまたはファイル)だけでなく、ブロックが作成及び/またはブロックチェーンに追加された時間の受信を識別するタイムスタンプ603a-603n、ならびに、インデックス601a~601nも含む。いくつかの実施形態において、ノンス608a-608nが、各ピアノード104-110によって保存されたブロックに追加され得る。「ノンス」とは、暗号化通信中に「1回だけ使用される数」を指し得る。ノンス608の実施形態は、リプレイ攻撃において古い通信を再使用できないことを保証するために、ブロックがハッシュ化または暗号化されるときに認証プロトコルにおいて発行されるランダムまたは疑似ランダム数であり得る。ブロックチェーンにおけるブロックが再ハッシュ化される場合、ブロックの再ハッシュ化は、再ハッシュ化されたブロック値に関連付けられた新しいノンスを割り当てられることによって、再ハッシュ化に対する特定の困難レベル制限を満たす。
【0088】
不変台帳の現在の状態は、チェーントランザクションログに含まれるすべてのキーについての最新の値を表す。現在の状態は、ブロックチェーンネットワーク130上のチャネルに認識されている最新のキー値を表すので、ワールドステートと称されることがある。チャネルの実施形態は、特定のセットのピア、アプリケーション124、およびAPI122が、ブロックチェーンネットワーク130内で互いに通信することを可能にする。チェーンコード呼び出しは、台帳の現在の状態のデータに対するトランザクションを実行する。これらのチェーンコードインタラクションを効率的にするべく、キーの最新の値が状態データベースに保存され得る。状態データベースは単にチェーンのトランザクションログ内のインデックスビューであり得、したがって、任意の時間にチェーンから再生できる。状態データベースは、ピアノードの起動時、およびトランザクションが承諾される前に自動的に復元(または生成)され得る。
【0089】
本明細書において説明および図示される例示の解決策のいくつかの恩恵は、1または複数のエンドツーエンド移行タスク111の履行を記述する1または複数のデジタルアセットを使用してエンドツーエンド移行イベントの監査証跡129をセキュアに作成するためにブロックチェーンを実装するための方法、システム、およびコンピュータプログラム製品を含む。例示的な実施形態は、不変性、デジタル署名、および、データ移行元とデータ移行先との間のデータ移行の履行を監査する信頼できる唯一の情報源であることなど、データベースの特徴を拡張することによって、時間および信頼の問題を解決する。例示的な実施形態は、ブロックチェーンプラットフォーム112を介してアクセス可能なブロックチェーン上の監査証跡129を含むセキュア台帳を生成するための解決策を提供する。ブロックチェーンネットワーク130の実施形態は、保存される情報のタイプ(例えば、プライベート情報、パブリック情報、アプリケーションまたはワークロード仕様など)、および、アプリケーション124もしくはAPI122またはその両方を介して実行されるスマートコントラクトに基づいてアセットを管轄する規則に基づいて、同質であり得る。いくつかの実施形態、様々なサーバ103、105、移行ツール121、アプリケーション107、ワークロード109、およびクライアントデバイス119、123、123から収集され得る異なる種類のデジタルアセットの性質に起因して、ブロックチェーンネットワーク130は、監査証跡129に保存されるアセットの種類に基づき得る、または、監査証跡129に追加される移行計画に基づき得、各ブロックチェーンネットワークが相互に同期的に通信するためにブロックチェーン横断通信プロトコルが使用され得る。他の実施形態において、ブロックチェーンネットワーク130における各チェーンは、アセットの種類に関連付けられ得、アセットの種類を管轄する規則は、チェーン横断通信プロトコルを介するチェーン通信を介して組み合わされ得る。
【0090】
ブロックチェーンは中央ストレージではなく、ノード102がストレージにおけるレコードの変更を分担し得る、分散型、不変、セキュアなストレージであるという点でブロックチェーンは従来のデータベースとは異なることに留意されたい。ブロックチェーンに内在の、ブロックチェーンの実装を助けるいくつかの特性は、本明細書において更に説明される、不変台帳、スマートコントラクト、セキュリティ、プライバシー、分散、コンセンサス、承認、アクセシビリティ、および同様のものを含むがこれらに限定されるものではない。様々な態様によれば、本明細書において説明されるシステムは、ブロックチェーンに内在かつ固有の、不変アカウンタビリティ、セキュリティ、プライバシー、許可された分散、スマートコントラクトの利用可能性、承認およびアクセシビリティに起因して実装される。
【0091】
特に、監査証跡129を含むブロックチェーン台帳データは不変であり、データ移行元とデータ移行先との間のデータのエンドツーエンド移行を実行しながら、1または複数のエンドツーエンドのタスク111の履行をセキュアに監査するための効率的方法を提供する。また、ブロックチェーンにおける暗号化の使用は、セキュリティを提供し信頼を構築する。スマートコントラクトは、監査証跡129に追加されたデジタルアセットの状態を管理する。ブロックチェーンの例は、分散化されたパーミッションである。したがって、エンドツーエンドデータ移行計画の各エンドユーザ、管理者もしくは監査者またはその組み合わせは、台帳の自身のコピーに対するアクセスを有し得る。タスク111の一部の監査または実行を担当する異なる組織、エンティティ(およびピア)を含む複数のステークホルダは、ブロックチェーンネットワーク130にオンボードされ得る。主要な組織は、スマートコントラクト実行結果、読み込みセット、および書き込みセットを認証するために、承認ピアとして機能し得る。換言すると、ブロックチェーンの内在的特徴は、ステークホルダによってブロックチェーンプラットフォーム112を使用することによって、ソースおよび対象間のデータのエンドツーエンド移行の監査の効率的実装を提供し、エンドツーエンド移行タスク111の進行および履行を追跡する。
【0092】
本明細書において説明される例示的な実施形態の恩恵の1つとして、ブロックチェーンは、ブロックチェーンネットワーク130を使用してデータ移行監査証跡129を実装する1または複数のデータ処理システム10の機能を改善する(例えば、監査証跡129への1または複数のエンドツーエンド移行タスク111の履行の承諾を確認するために必要な複数の署名の収集および承認を容易にし得る、ブロックチェーンネットワーク130における転送コンプライアンス認証者/ノードを実装することによる)。本明細書において説明されるブロックチェーンシステムを通じて、コンピューティング環境200、240、300、500、550のデータ処理システム(または、データ処理システム10のプロセッサ)は、分散型台帳、ピア、暗号化技術、イベント処理などのブロックチェーンプラットフォーム112の能力へのアクセスを提供することによって、ブロックチェーンネットワーク130を利用して、ソースと対象システムもしくはクラウドネットワーク250またはその両方との間のエンドツーエンドデータ移行の進行を追跡するための機能を実行できる。また,ブロックチェーンプラットフォーム112は、業務ネットワークの作成を可能にし、エンドツーエンド移行イベントに対するユーザ、エンティティ、または、組織を含む任意のステークホルダを、参加のためのオンボードにする(例えば、不変台帳に組み込まれる、検証/信頼当事主体である、など)。このように、ブロックチェーンは、単なるデータベースではなく、ブロックチェーンは、エンドツーエンド移行タスクを記述するデジタルアセットを有する監査証跡129を含む台帳をクエリし更新するトランザクションを実行するスマートコントラクトの形式で、協力してサービスプロセスを実行できるユーザ、エンティティ、オンボード/オフボード組織および他のステークホルダのネットワークを作成する能力を有する。更に、クエリトランザクションは、1または複数のエンドツーエンドデータ移行タスクの進行および履行を監視するべく、監査者による台帳の点検を可能にする。
【0093】
従来のデータベースの実施形態は、本明細書において説明される実施形態を実装するために使用されないことがあり得る。なぜなら、従来のデータベースは、エンドツーエンド移行に参加するすべてのステークホルダをブロックチェーンネットワーク130に参加させることができず、従来のデータベースは、信頼される協力を作成せず、改ざん防止ストレージ、ならびに、ブロックチェーン台帳に記録されたログ、アラート、レコードおよび他のデジタルアセットの保護を提供しないからである。したがって、ブロックチェーンネットワーク130を利用する、本明細書において説明される提案された実施形態は、従来のデータベースによって実装できない。更に、従来のデータベースが例示的な実施形態を実装するために使用される場合、本明細書に説明される例示的な実施形態は、セキュリティの欠如、および、エンドツーエンド移行タスク111のステータスを記述する監査証跡129を含む台帳の単一の統一コンセンサスの欠如など、不必要な欠点の問題を生じる。従って、例示的な実施形態は、データ移行元とデータ移行先との間のデータ移行の監査の当技術/分野における問題に対する特定の解決策を提供する。
【0094】
ここで、
図2A、
図2Bのブロックチェーンプラットフォーム112、および、
図5Aのブロックチェーンアーキテクチャ500を参照すると、ブロックチェーンプラットフォーム112の実施形態は、ブロックチェーン要素、例えば、特定のブロックチェーンノード102のグループを含み得る。ブロックチェーンノード102は、1または複数のピア104-110を含み得る(これら4つのノードは例として図示されるに過ぎない)。これらのノード102は、ブロックチェーントランザクション追加および認証プロセス(コンセンサス)など、複数のアクティビティに参加する。1または複数のピア104-110は、承認ポリシーに基づいて、トランザクション(1または複数のデジタルアセットをブロックとしてブロックチェーンに記録するなど)を承認及び/または推奨し得、ブロックチェーンアーキテクチャ500におけるすべてのブロックチェーンノード102に順序付けサービスを提供し得る。ブロックチェーンノード102は、ブロックチェーン認可を開始し、ブロックチェーン層116に保存されたブロックチェーン不変台帳への書き込を試み得る。そのコピーはまた、データ層128または基盤となる物理的インフラ114に保存され得る。ブロックチェーン構成は、参加者が求める、カスタマイズされた構成に従って作成できる、保存されたプログラム/アプリケーションコード120(例えば、チェーンコード、スマートコントラクトなど)にアクセスして実行するためにアプリケーションプログラミングインタフェース(API)122にリンクされ得る1または複数のブロックチェーンアプリケーション124を含み得、自身の状態を維持し、自身のアセットを制御し、外部情報を受信できる。アプリケーションコード120は、トランザクションとして展開され、分散型台帳への追記を介して、すべてのブロックチェーンノード102およびそのピア104-110にインストールされ得る。例えば、アプリケーションコード120は、クエリピアの台帳に基づく現在の状態における監査証跡129をクエリするチェーンコード、もしくは、ブロックチェーンネットワーク130の特定のチャネル上のピアのコンセンサスを用いて、監査証跡129を1または複数の新しいレコード、ログ、イベント、アラートなどで更新するアプリケーションコード120またはその両方を実行し得る。
【0095】
ブロックチェーンプラットフォーム112の実施形態は、ブロックチェーンデータ層128、サービス層118(例えば、暗号化信頼サービス、仮想実行環境など)、および基盤の物理コンピュータインフラストラクチャ114層など、様々な層を含み得る。これらは、新しいトランザクションを受信して、監査証跡129を補うブロックチェーン上に保存し、監査証跡129のデータをクエリすることを試みる監査者への(例えば、監査クライアントデバイス127を介して)アクセスを提供するために使用され得る。ブロックチェーン層116は、アプリケーションコード120を処理し物理的インフラ114と連携するのに必要な仮想実行環境へのアクセスを提供するインタフェースを公開し得る。暗号化信頼サービスは、アセット交換トランザクションなどのトランザクションを検証し、トランザクション情報をプライベートに維持するために使用され得る。
【0096】
ブロックチェーンアーキテクチャ500は、ブロックチェーン層116において公開される1または複数のインタフェース、および、サービス層118においてブロックチェーンプラットフォーム112によって提供されるサービスを介して、API122を用いてアプリケーションコード120を処理および実行し得る。アプリケーションコード120はブロックチェーンアセットを制御し得る。例えば、アプリケーションコード120は、データを保存、転送でき、スマートコントラクト、および、実行の対象となる条件または他のコード要素を有する関連付けられたチェーンコードの形式でピア104-110によって実行され得る。非限定的な例として、スマートコントラクトは、リソースの転送、もしくは、リソースの生成またはその両方を実行するために作成され得る。スマートコントラクト自体は、許可(例えば、アセット送達規則、ストレージ、制限など)に関連付けられた規則、(例えば、データストア、オフチェーンデータストアなどの)アクセス要件、もしくは、監査証跡129またはその組み合わせを作成または追記するための台帳の使用を識別するために使用され得る。例えば、監査証跡アセットデータ529は、ブロックチェーン層116に含まれる1または複数の処理エンティティ(例えば、仮想マシン)によって処理され得る。出力された結果531は、複数のリンクされた共有ドキュメント(例えば、リンクされた共有ドキュメントの各々は、ブロックチェーンへの承認された、または拒否された追加のいずれかとして識別される監査証跡アセットデータ529に関して、スマートコントラクトの発行を記録する)を含み得る。これは、API122を介してブロックチェーンプラットフォーム112へ伝送されたログ、レコード、アラート、エラー報告、および他のデジタルアセットを含み得るドキュメントおよびファイルを含む。いくつかの実施形態において、物理的インフラ114は、本明細書において説明されるデータまたは情報のいずれかを取得するために利用され得る。
【0097】
スマートコントラクトは、高レベルアプリケーションおよびプログラミング言語を介して作成され、その後ブロックチェーンにおけるブロックに書き込まれ得る。スマートコントラクトは、ブロックチェーン(例えば、ブロックチェーンピアの分散型ネットワーク)を用いて登録、保存、及び/または複製される実行可能コードを含み得る。トランザクションは、スマートコントラクトに関連付けられた条件が満たされたことに応答して実行できるスマートコントラクトノードの実行である。スマートコントラクトの実行は、ブロックチェーンの台帳の状態に対する信頼できる修正をトリガし得る。スマートコントラクトの実行によって生じるブロックチェーン台帳に対する修正は、1または複数のコンセンサスプロトコルを通じて、ブロックチェーンピア104-110の分散型ネットワークにわたって自動的に複製され得る。
【0098】
スマートコントラクトは、キー値のペアのフォーマットでブロックチェーンにデータを書き込み得る。更に、スマートコントラクトノードは、ブロックチェーンに保存された値を読み取り、それらをアプリケーション動作において、例えば、監査証跡129についてのユーザフレンドリーなレポートを生成し、ユーザクライアントデバイス124にインストールされたブロックチェーンアプリケーション124へレポートを送達するために使用できる。スマートコントラクトノードの実施形態は、様々な論理動作の出力をブロックチェーンに書き込むことができる。コードは、仮想マシンまたは他のコンピューティングプラットフォームにおいて一時的なデータ構造を作成するために使用され得る。ブロックチェーンに書き込まれたデータは、パブリックであり得、及び/または、暗号化されてプライベートとして維持され得る。スマートコントラクトによって使用/生成される一時的データは、供給された実行環境によってメモリに保持され、その後、ブロックチェーンに必要なデータが識別されると、削除される。
【0099】
チェーンコードは、追加の特徴と共に、スマートコントラクトのコード解釈を含み得る。本明細書において説明されるように、チェーンコードは、コンピューティングネットワーク上に展開されるアプリケーションコード120であり得る。チェーンコードは、コンピューティングネットワークにおいて、コンセンサスプロセス中に、チェーン認証者によって共に実行および認証される。チェーンコードは、ハッシュ605を受信し、ブロックチェーンから、前に保存された特徴のエクストラクタの使用によって作成されるデータテンプレートに関連付けられたハッシュを取得する。ハッシュ識別子のハッシュ、および、保存された識別子テンプレートデータから作成されたハッシュが一致する場合、チェーンコードは、要求されたサービスへ許可キーを送信する。チェーンコードは、暗号化の詳細に関連付けられたブロックチェーンデータに書き込み得る(例えば、これによって、監査証跡129への、ログ、レコード、アラートまたはイベントなどのデジタルアセットの転送を確認するか、または、デジタルアセットの将来の転送との不一致を識別する、など)。
【0100】
図5Bは、例えば、ピアツーピア(p2p)ネットワークのノード102による、ブロックチェーンネットワーク130のノード102間のブロックチェーントランザクションフロー550の例を示す。トランザクションフロー550は、アプリケーションクライアントノード560によって承認ピアノード581へ送信されたトランザクション提案591を含み得る(例えば、いくつかの実施形態において、トランザクション提案591は、オフチェーンデータストアまたはデータベースに関連付けられた識別子を含む要求であり得る)。承認ピアノード581は、クライアント署名を検証し、提案されたトランザクションを開始するためのチェーンコード機能を実行し得る。例えば、移行ツール121からブロックにログを記録し、ブロックを監査証跡129ブロックチェーンに入れるための提案されたトランザクション。出力は、チェーンコード結果、チェーンコードによって読み取られたキー/値のバージョンのセット(読み込みセット)、および、チェーンコードに書き込まれたキー/値のセット(書き込みセット)を含み得る。提案応答592は、承認署名(承認された場合)と共にクライアントノード560へ送り返される。クライアントノード560は、承認をトランザクションペイロード593に組み立て、ペイロード593を順序付けサービスノード584へブロードキャストする。順序付けサービスノード584は次に、順序付けされたトランザクションをブロックとして、チャネル上のすべてのピア581-583へ送達する。ブロックチェーンへのコミット前に、各ピア581-583は、トランザクションを認証し得る。例えば、ピア581-583は、承認ポリシーをチェックして、指定されたピアの正確な割り当てが結果に署名し、トランザクションペイロード593に対して署名を認可したことを保証し得る(例えば、データストア接続オブジェクトの発見、もしくは、デジタルアセットを保存するオフチェーンデータベースへのアクセスまたはその両方を可能にする識別子もしくは対称鍵またはその両方を要求が含むことを、すべての、または、閾値数のピアが認証する)。
【0101】
クライアントノード560の実施形態は、要求を構築して、承認者であるピアノード581へ送信することによって、トランザクション提案591を開始する。クライアントノード560は、利用可能なAPI122を利用してピアに接続し、チェーンコードを呼び出してトランザクション提案591を生成する、サポートされるソフトウェア開発キット(SDK)を活用するアプリケーションを含み得る。ピア接続を通じて、アプリケーション124もしくはAPI122またはその両方は、チェーンコードを実行し、台帳をクエリまたは更新できる。台帳クエリトランザクションの結果は、即時に戻され、台帳更新は、アプリケーションピアと注文者(本明細書において詳細に説明される)と間のより複雑なインタラクションを伴う。トランザクション提案591は、チェーンコード機能を呼び出すための要求であり、それにより、データは読み取られ、及び/または、台帳に書き込まれ得る(例えば、監査証跡129に追加されるアセットについての新しいキー値ペアを書き込む)。SDKは、トランザクション提案591のパッケージを、適切に設計されたフォーマット(例えば、リモートプロシージャコール(RPC)上のプロトコルバッファ)に低減し、トランザクション提案591についての固有の署名を生成するためにクライアントノード560の暗号化証明書を取得し得る。
【0102】
それに応答して、承認ピアノード581は、(a)監査証跡129を含むブロックにデジタルアセットを追加するためのトランザクション提案591が、よく形成されていること、(b)トランザクションが過去においてまだ提出されていないこと(リプレイ攻撃保護)、(c)署名が有効であること、および、(d)提出者(この例ではクライアントノード560)が、ブロックチェーンネットワーク130のそのチャネル上で提案された動作を実行することを適切に認可されていることを検証し得る。承認ピアノード581は、呼び出されたチェーンコード関数への引数としてトランザクション提案591入力を取得し得る。チェーンコードはその後、現在の状態データベースに対して実行され、応答値、読み込みセット、および書き込みセットを含むトランザクション結果を生成する。しかしながら、この時点では、ブロックチェーンのノード102の台帳に対する更新は無い。いくつかの実施形態において、承認ピアノード581の署名と共に、値のセットが提案応答592として、消費および表示のためにアプリケーション124もしくはAPI122またはその両方についてのペイロード593を解析するクライアントノード560のSDKへ送り返される。
【0103】
これに応答して、クライアントノード560のアプリケーションは、承認ピアの署名を検査/検証して提案応答を比較して、提案応答が同一かどうか判断する。チェーンコードが台帳をクエリするだけである場合、アプリケーションは、クエリ応答を検査し、典型的には、トランザクションを順序付けノード584サービスへ提出しない。クライアントノード560がトランザクションを順序付けノード584サービスに提出して台帳を更新する意図がある場合、クライアントノード560は、提出前に、指定された承認ポリシーが満たされている(例えば、要求が承諾された)かどうかを判断する。ここで、クライアントノード560は、デジタルアセットを監査証跡129のブロックに追加するためのトランザクションへの複数の当事主体またはステークホルダのうち1のみを含み得る。この場合、各個別のクライアントノード560は、自身の承認ピアを有し得、各承認ピアは、トランザクションを承認する必要がある。当該アーキテクチャでは、クライアントノード560が応答を検査しないことを選択する、または、そうでなければ、承認されないトランザクションを転送する場合でも、承認ポリシーはなお、ピアによって承認され、コミット認証フェーズにおいて承認される。
【0104】
点検成功後、トランザクションペイロード593ステップにおいて、クライアントノード560は、承認をトランザクションに組み立て、順序付けノード584へのトランザクションメッセージ内で、トランザクション提案591および応答をブロードキャストする。トランザクションは、読み取り/書き込みセット、承認ピアの署名、および、チャネルIDを含み得る。順序付けノード584は、その動作を実行するべく、トランザクションの内容全体を検査する必要が無く、むしろ、順序付けノード584は単に、トランザクションをネットワークのすべてのチャネルから受信して、それらをチャネルごとに時系列に順序付け、チャネルごとにトランザクションのブロックを作成し得る。
【0105】
トランザクションのブロックは、順序付けノード(
図5Bの例における第4ピアノード584であり、本明細書において「順序付けノード584」と称される)からチャネル上のすべてのピアノード581-583へ送達される。ブロック内のトランザクション594は、任意の承認ポリシーが満たされることを保証するために、および、読み込みセットがトランザクション実行によって生成されてから読み込みセット変数についての台帳状態に変化が無かったことを保証するために認証される。ブロックにおけるトランザクションは、有効または無効としてタグ付けされる。更に、ステップ595において、各ピアノード581-583は、ブロックをチャネルのチェーンに追記し、各有効トランザクションについて、書き込みセットが現在の状態データベースにコミットされる。トランザクション(呼び出し)が不変にチェーンに追記されたことをクライアントノード560のアプリケーションに通知するために、および、トランザクションが認証されたか、または、認証されなかったか(例えば、1または複数のサーバ103、105、移行ツール121、もしくはクライアントデバイス119、123、127またはその組み合わせからブロックチェーンプラットフォーム112へ伝送される新しいデジタルアセットの追加を含み得る、監査証跡129への更新について、要求が許可されたか、または拒否された)を通知するために、イベントが生じる。
【0106】
ブロックチェーン実装型データ移行監査証跡を実行するための方法
【0107】
図7の図面は、エンドツーエンド移行タスク111の進行をセキュアに追跡可能なブロックチェーン実装型データ移行監査証跡129を実行するためのコンピュータ実装方法を実行するアルゴリズム700の実施形態を表す。
図7に示され、説明されるアルゴリズム700は、
図1のデータ処理システム10によって、より具体的には、
図2Aから
図6に図示され、本明細書に説明されるコンピューティング環境200、240、300、500、550の専門データ処理システムの実施形態によって一般的に定義される1または複数のコンピュータシステムを使用し得る。当業者であれば、
図7に説明されるアルゴリズム700のステップは、提示されているものとは異なる順序で実行され得ることを認識するはずである。アルゴリズム700は必ずしも、本明細書に説明されるすべてのステップが実行されることを必要とするわけではないことがあり得る。むしろ、アルゴリズム700のいくつかの実施形態は、下に記載した1または複数のステップを使用してステップのサブセットを実行することによって方法を変更し得る。
【0108】
アルゴリズム700の実施形態は、ステップ701で開始し得る。ステップ701において、1または複数のデータ移行元によって保存されるデータのデータ移行を認可する権限を有するユーザ、所有者、管理者、エンティティ、または他のステークホルダは、新しいデータ移行計画を作成及び/または認可する。データ移行計画を認可及び/または作成するユーザは、ソースデータセンタ101またはクラウドネットワーク250など、データの転送を担当するデータ移行元、および、データ移行元から移行されるデータを受信するよう指定された対象データセンタ125または第2クラウドネットワークなど、対象データソースを識別し得る。
【0109】
アルゴリズム700のステップ703において、タスクリスト111が生成され、及び/または、ステップ701において作成されるデータ移行計画に参加または貢献し得るステークホルダもしくは参加者またはその両方の各々に分散され得る。生成されたタスクリスト111は、データ移行元とデータ移行先との間でデータの正常な移行を準備、転送、および認証するための1または複数のエンドツーエンド移行タスクを含み得る。エンドツーエンド移行タスクリスト111の実施形態は、1または複数の移行前タスク113、移行タスク115、もしくは移行後タスク117またはその組み合わせを含み得る。ステップ705において、ステップ703において生成されたタスクリストの1または複数のタスク111は、タスクリスト111の割り当てられたタスクを実行することを担当する参加者の特定のチームなど、1または複数のステークホルダに割り当て得る。更に、割り当てられたタスクに加えて、タスクリスト111は更に、期限までにタスクを完了するためのスケジュール、および、従属タスクが完了できる前に、割り当てられたタスクの完了を必要とし得る1または複数の従属タスクの指定を含み得る。
【0110】
アルゴリズム700のステップ707において、タスクの完了のためにスケジュールされた期限日を、判断が行われた現在の日付と比較することによって、データ移行計画の割り当てられたタスクの1または複数が期限超過かどうか判断される。割り当てられたタスクが実行されておらず、ステップ703において生成されたタスクリストによってスケジュールされた、割り当てられた期限日を過ぎている場合、アルゴリズムはステップ709に進み得、ここで、期限日を過ぎたタスクの非履行が、ログファイル、イベントレコード、アラートなど、デジタルアセットに記録される。コンポーネント、プログラム、サーバ103、105、移行ツール121、または、割り当てられたタスクの非履行を記録する他のリソースは、タスクの非履行を示すデジタルアセットを、ブロックチェーンプラットフォーム112によって維持される監査証跡129に追加するためのトランザクションを開始し得る。例えば、タスクの非履行を示すデジタルアセットを生成するリソースは、監査証跡129を維持する台帳が非履行アセットを含むように更新されることを要求するAPI122もしくはアプリケーション124またはその両方を介してアプリケーションコード120を実行し得る。特に、台帳を更新する要求を受信するクライアントノードは、ブロックチェーンネットワーク130のピア104-110による更新要求の実行を伝搬するチェーンコードを実行し得る。
【0111】
逆に、ステップ707において、割り当てられたタスク111が期限を過ぎていないかどうか判断する場合、ステップ701において作成されたエンドツーエンド移行計画の一部として、1または複数のタスク111がコンピューティング環境200、250内で実行されたかどうかについて第2の判断が行われ得る。タスク111がステップ711において実行されなかった場合、アルゴリズム700はステップ707に戻り得る。同様に、ステップ711において、1または複数のタスク111の履行が生した場合、アルゴリズム700はステップ713に進行し得る。ステップ713において、アプリケーション107、ワークロード109、移行ツール121、サーバ103、105もしくはクライアントデバイス119、124、127またはその組み合わせなど、コンピューティング環境200、250の1または複数のリソースによるタスクの履行時に、コンピューティング環境の1または複数のリソースは、タスク111の履行、結果、および、タスク111の履行のコンテキストを提供し得る(すなわち、いつタスクが実行されたか、どのリソースがタスクを実行したか、いつタスクが実行されたか、ユーザ名称、ネットワーク、IPアドレスなどを識別する)1または複数の追加の詳細を詳細に説明するログ、アラート、エラー報告、イベントレコードなどのデジタルアセットを生成及び/または更新し得る。例えば、タスクの履行をロギングするデジタルアセットは、アプリケーションログ、オペレーティングシステムログ、1または複数の移行ツール121からの出力、ユーザアクセスログ、もしくは、クライアント119、123、127もしくはサーバ103、105からのネットワークデバイスログまたはその組み合わせであり得る。
【0112】
アルゴリズム700のステップ715において、コンピューティング環境200、240の1または複数のリソースによって生成されたデジタルアセットは、監査証跡129を維持するブロックチェーンに対して1または複数のタスク111の履行を正確に反映するべく、監査証跡129の台帳を更新するためのトランザクション提案と共にアセットを伝送し得る。例えば、アセットを生成するコンピュータ環境200、240の1または複数のリソースは、アプリケーション124もしくはAPI122またはその両方を通じて、要求をブロックチェーンプラットフォーム112へ転送し得る。アプリケーション124もしくはAPI122またはその両方は、1または複数のピアノード104-110を用いて要求を処理するべく、監査証跡129を含むブロックチェーンの台帳を更新するためのトランザクション提案の受信に応答して、アプリケーションコード120を実行し得る。例えば、ブロックチェーンを更新することを試みるリソースは、API122を通じて、ブロックチェーンネットワーク130の1または複数のピアノード104-110とのピア接続を行い、アプリケーションコード120は、チェーンコードを呼び出して、タスク111の履行の詳細を示す、提供されるデジタルアセットで、監査証跡129を含むブロックチェーンを更新するようにピアノード104-110にプロンプトする。呼び出されたチェーンコードは、初期更新要求を送信するアプリケーション124またはAPI122を再調整し得る更新提案応答を生成し得る。
【0113】
アルゴリズム700のステップ717において、1または複数のタスクの履行を示すデジタルアセットの登録は、ブロックチェーンにおいてブロックとして監査証跡129を含むブロックチェーンに入れられ得る。例えば、アプリケーション124またはAPI122を介してピアノードから提案応答を受信すると、アプリケーション124もしくはAPIまたはその両方は、トランザクション要求をブロックチェーンネットワーク130の順序付けノードへ送信することによって、実行される更新トランザクションを順序付けできる。順序付けノードは、ブロックチェーンネットワーク130全体からトランザクションを収集して、インデックス601、タイムスタンプ603、ハッシュ605、前のブロックの前のハッシュ607、ノンス608、もしくは、履行(またはエンドツーエンド移行タスクの非履行)を詳細に説明するデジタルアセットを含むペイロード609またはその組み合わせを含み得るブロックにし得る。ブロックチェーンネットワーク130の順序付けノードの実施形態は、要求されたトランザクションのブロックを、チェーンコードを呼び出して監査証跡129を含む台帳を更新する元の更新要求を受信するピアノードを含む、ブロックチェーンネットワーク130上のすべてのピア(または、ブロックチェーンネットワークの特定のチャネル)に配布し得る。ピアノード104-110は、順序付けノードから受信されたブロックを認証し得、更新要求が有効とみなされる場合、順序付けノードからブロックを受信する各ピアノードは、(更新トランザクションを実行するために、ピアノード104-110によって、コンセンサスに達した場合)各ピアノード104-110によって維持される監査証跡129の台帳のそれらのコピーを更新し得る。いくつかの実施形態、監査証跡129を含む台帳の更新を認証すると、ピアノード104-110は、更新トランザクションの完了を示すイベントを生成し、イベントを、初期トランザクション要求を生成したアプリケーション124またはAPI122へ伝送し得る。
【0114】
アルゴリズム700のステップ719において、エンドツーエンド移行タスク111の各々が完了したかどうかについて判断され得る。ステップ703において生成されたエンドツーエンド移行タスク111がすべて完了した場合、アルゴリズム700が終了し得る。逆に、データ移行計画の追加の未実行のエンドツーエンド移行タスク111がまだある場合、アルゴリズム700は、ステップ719からステップ707に戻って進行し得る。
【0115】
いくつかの実施形態において、エンドツーエンド移行タスク111の監査者は、すべてのエンドツーエンド移行タスク111の完了時を含む、タスク111の履行がスケジュールされた、または完了された任意の時点で、監査証跡129を含む台帳を検査することを試み得る。監査者は、アプリケーション124もしくはAPI122またはその両方を使用してピアノード104-110とピア接続を確立し、確立されたピア接続を用いて、ピアノードによって維持される台帳のコピーを受信するためのクエリ要求を提出することによって、例えば、監査クライアントデバイス127を介して、監査証跡を含む台帳にアクセスし得る。アプリケーション124もしくはAPI122またはその両方を介して提出されたクエリ要求は、ピアノードのチェーンコードを呼び出してクエリ要求を実行するアプリケーションコード120を実行し得る。チェーンコードは、台帳のクエリ結果を生成し、監査者によるレビューおよび分析のために、監査証跡129を含む台帳のコピーを監査者のクライアントデバイス127へ返す。いくつかの実施形態において、監査者は、監査証跡129を含む台帳のコピーを利用して、エンドツーエンド移行タスクのステータスおよび履行を詳細に説明する1または複数のレポートを準備し得、生成されたレポートを1または複数のクライアントデバイス119、123、127へ伝送し得る。
【0116】
本開示の様々な実施形態の説明は、例示の目的で提示されるものであり、包括的な意図、または、開示された実施形態に限定する意図はない。本発明の範囲および主旨から逸脱することなく、多くの修正および変形が当業者にとって自明であろう。本明細書において使用される用語は、実施形態の原理、実際の用途、または、市場において見られる技術に対する技術的改善点をもっとも良く説明するために、または、当技術分野における他の当業者が、本明細書において開示される実施形態を理解することを可能にするために選択された。