・この学習ステージではソフトウェアアーキテクチャとソフトウェア完全性の2つの概念とブロックチェーンがどのような関係であるかも説明する。
ステップ2
〜全体像を把握する〜
ステージ1
〜ブロックチェーンの目的と可能性を知る〜
・このステージでは技術的なことをスムーズに話し合えるように考え方の枠組みを体系化/標準化する。
・この学習ステージではソフトウェアアーキテクチャとソフトウェア完全性の2つの概念とブロックチェーンがどのような関係であるかも説明する。
ステップ2
〜全体像を把握する〜
・ソフトウェアアーキテクチャとブロックチェーンとの関係
(P2P:「Peer to Peer」、「ピア・ツー・ピア」。同等の役割を持ったノード同士が接続することを意味する。)
➙P2Pネットワークは特殊な分散システムである。各コンピュータ(ノード)で構成され、ネットワーク上の他のノードに計算リソースを提供する。この場合の計算リソースとは計算処理能力・ストレージ容量・データ・ネットワーク帯域幅である。
また、P2Pネットワークには協調的な動作の窓口のようなものは存在しない。システム上の権利や役割に等しく関与する。更にそれらすべてのノードがリソースの提供者であり、消費者である。
P2Pシステムにはファイル共有・コンテンツ配信・プライバシー保護などのアプリケーションがり、ほとんどは単純ながら強力な概念に基づいている。その概念とは
ユーザーのコンピュータを分散システム全体を構成するノードに変える。
というものである。結果としてユーザーや顧客が増えるほど大きく強力なものになる。概念と結果と課題については後に詳しく見ることにする。
➙この2つは正反対のアーキテクチャ(システム構造)である。それぞれの長所を活かしたハイブリッドシステムを作成してみる。正反対のシステムを組み合わせる常套手段は2つある。このアプローチは現実のブロックチェーンアプリを調べるときに重要となる。
①分散システムの中心に中央ノードを追加するアーキテクチャ(システム構造)
②中央の中に分散システムを追加するアーキテクチャ(システム構造)
これを一見すると集中システムに見える。それは周りのノードが中心の大きな円に直接しているためだ。
これら2つのアプローチに共通してるのは本質を見分けるのは難しい事である。ここで重要なのはそれらが二重の性能を持つ事である。このことについてはブロックチェーンが商品化される方法について説明する時説明する。
➙ハイブリッドアーキテクチャ(システム構造)の登場により分散システムを明確に識別することは難しくなっている。システムが分散システムかどうか判断がつかない場合はある種の性質を持つノードが存在するか調べてみよう。その性質とは
それ一つでシステム全体を停止させる可能性を持つかどうか
である。(電源を落とすボタンなど)
そうしたものが見つかった場合そのシステムは分散システムではない。
➙ソフトウェアシステムを設計する際は、車のエンジンを選ぶと同様にアーキテクチャ(システム構造)のスタイルを選ぶことが出来る。アーキテクチャ(システム構造)を選ぶ際、アプリケーション層の機能面とは無関係に選ぶことが出来る。このため、アプリケーション層に同じような機能を持つ分散システムも集中システムも作成可能である。アーキテクチャ(システム構造)はシステムを実装するという目的を達成するための手段であることを忘れてはいけない。
これら2つのアーキテクチャ(システム構造)はそれぞれに長所と短所を持ち、何かを行う方法も独特である。とりわけ、これらのアーキテクチャ(システム構造)の選択は完全性を確保する方法が大きく変わってくる。
ここで登場するのがブロックチェーンである。
ブロックチェーンは分散システムにおいて完全性を達成する手段である。
つまり
ブロックチェーンの目的は分散システムの完全性を達成し維持することにある。
➙P2Pシステムによって私達の世界がどのように変わったか、分散システムの完全性を達成する手段としてのブロックチェーンにも世界を変える可能性があるのかを説明する。
●ソフトウェアシステムのアーキテクチャ(システム構造)はそのシステムのノードがどのように構成され、ノード同士がどのように関連付けられるのかを決定する。
●集中システムと分散システムは正反対のアーキテクチャ(システム構造)とみなせる。
●分散システムは多くの独立したノードで構成される。特定の目的を達成するために通信メディアを使って互いに動作する。分散システムには管理や調節を行う中央ノードは存在しない。
●アーキテクチャ(システム構造)がどれだけ複雑見えるかに関係なく、「たった一つでシステム全体を停止させる可能性がある」となった瞬間、分散システムとみなされなくなる。
●ブロックチェーンは、分散システムの実装層の一部である。
●ブロックチェーンの目的は分散システムの非機能面である「分散システムの完全性の達成と維持」を満たすことである。
次➙comming soon....