ステージ1
〜ブロックチェーンの目的と可能性を知る〜
・このステージでは技術的なことをスムーズに話し合えるように考え方の枠組みを体系化/標準化する。
・この学習ステージではソフトウェアアーキテクチャとソフトウェア完全性の2つの概念とブロックチェーンがどのような関係であるかも説明する。
ステップ2
〜全体像を把握する〜
・ソフトウェアアーキテクチャとブロックチェーンとの関係
➙車を購入するときはエンジンの種類を選べるが、その選択が車に驚くべき違いをもたらす事がある。それに加えて価値や維持費、燃料の種類、排気システムなど車の他の特徴にも影響を与える。この事を頭に入れておけば大きな構図の中でブロックチェーンの役割を理解するのが容易になるだろう。
➙下の写真は決済システムにレイヤ化の概念を当てはめたものである。
この表に疑問「?」があるがここはシステムを稼働させるための「エンジン」を決める場所である。次節ではソフトウェアシステムにおいて「エンジン」に相当するものについて見ていこう。
➙ソフトウェアシステムを実装する方法は様々だが、システムを実装する時の基本的な意思決定の1つはシステムのアーキテクチャに基づくものである。ソフトウェアシステムのアーキテクチャに関する2つの主なアプローチは「集中」と「分散」である。下の写真は集中システムである。写真中の円は「ノード」の事である。
(ノード=コンピュータ、ハブ、ルーター、さらにはネットワークに接続されたプリンターなどの事)
集中システムでは1つの中央ノードの周辺に他のノードが配置され中央ノードに接続される。下の写真は分散システムである。
分散システムでは各ノードが接続することでネットワークを形成する。分散システムには管理や調節を行う中央ノードは存在しない。この時点で理解しなければならない重要なポイントは
ソフトウェアシステムを構築する方法が2種類存在することである。
更に注目してほしいのはどのノードも他のほとんどのノードと直接接続していない事である。ただし、すべてのノードは間接的に相互に接続している。
(Ⅰ)計算能力の高さ
(Ⅱ)コスト削減
(Ⅲ)信頼性の高さ
(Ⅳ)自然に成長する能力
➙分散システムの計算能力は接続されたコンピュータの計算能力をあわせたものである。計算能力が低いコンピュータで構成された分散システムでも単体のスーパーコンピュータよりも性能が良い事がわかっている。
➙分散システムは多くのコンピュータで構成されるため、分散システムの初期コストは個々のコンピュータの初期コストよりも高くなる。しかし、スーパーコンピュータの作成・維持・運用にかかるコストは分散システムよりも高い。
➙分散システムの信頼性の高さの理由はいずれかのコンピュータがクラッシュしても、ネットワーク全体の運用を継続できるからである。ある要素で障害が発生した場合は残りのコンピュータに処理を引き繋がせることが出来る。したがって一台のスーパーコンピュータの方が分散システムよりも信頼性は低い。
➙分散システムの計算能力は構成要素の計算能力を集約した結果である。更に接続すればシステム全体の計算能力を向上出来る。結果として全体の計算能力を細かな単位で向上できる。分散システムのこうした成長は個々のコンピュータの成長と対象的である。個々のコンピュータの場合、より高性能なコンピュータに置き換えない限り性能は全く同じである。
(Ⅰ)協調のオーバーヘッド
(Ⅲ)ネットワークへの依存(Ⅱ)通信のオーバーヘッド
(Ⅲ)ネットワークへの依存
(Ⅳ)プログラムの複雑化
(Ⅴ)セキュリティの問題
➙分散システムにはメンバーの協調性を制御する中央ノードが存在しないため、メンバーが独自に協調性を確保しなければならない。分散システムでの協調的な作業は難しい課題だ。本来考えられないの作業量や計算能力を要求される。これが協調のオーバーヘッド(付随作業)だ。
➙協調的な動作には通信が不可欠だ。分散システムを形成しているコンピュータ間でやり取りをするには通信規定の存在、メッセージの送受信、処理が必要であり、本来考えられないの作業量や計算能力を要求される。これが通信のオーバーヘッド(付随作業)だ。
➙どのような通信にもメディア(媒体)が必要である。ここでのメディアはノード間の情報を伝達する役割を果たす。メッセージはネットワーク経由で送信されるため、ネットワークの課題や困難がコンピュータ同士の通信や協調性に影響を与える。ただし、ネットワークがなければ分散システムや通信も存在しない。ネットワークへの依存と呼ぶのはこのためだ。
➙元々、分散システムで計算問題を解くにはプログラムやソフトウェアを記述する必要がある。それに加えて協調性、通信、ネットワークの利用といった問題にも対処しなければならないためプログラムの複雑さは増すことになる。
➙ネットワーク経由での通信は本来、重要なデータの送信と共有を意味する。情報をネットワーク経由で送信するのはセキュリティ上の懸念がる。ネットワークへの不正アクセスされるなどの恐れがあるからだ。分散システムに用いられるネットワークへのアクセス制限が緩いほど、セキュリティ上の懸念は高くなる。