アーキテクチャとトレードオフ
この Blog では、「ネットワーク アーキテクチャ」について検討して行きます。前回は序論として、アーキテクチャの特質を 5点挙げてみました。そこで、これからの数回を使って、その特質について、少し深堀したいと思います。今回は、「トレードオフ」について述べます。
前にも書きましたが、「機能」は有用性が高いほど良いと言えます。今やネットワークのない生活は考えられませんが、ネットワークは速ければ速いほど良いし、少しでもつながりにくいと、とても不便に感じます。(子供が、くだらない(?)サイトを閲覧しながら、訳知り顔で「今日は何だかネットワークが重いなぁ」とか言うと、ひっぱたいてやろうかと思います。) しかしアーキテクチャには必ずトレードオフがあり、単純に、例えば「遅延は少なければ少ないほど良い」とは言えません。映像を伝送するときは遅延自体よりも遅延揺らぎ(ばらつき)の方が問題になるし、ストレージを接続する場合はパケット ロスは許されません。そこで、遅延を犠牲にしてバッファリングすることによって、揺らぎやロスを防いでいます。
なぜ、アーキテクチャを検討するときにトレードオフを考慮しなければならないのでしょうか。ひとつには、現実には制約がある、ということです。際限なくリソースやスペース・電力が使えるのであれば、性能も稼働率も規模も高めることはできます。しかし、現実の環境を考えると、決してそうはいきません。もうひとつは、アーキテクチャが、複数の要素の組み合わせ・つながり方・構造、といったものを対象とする、ということです。そして多くの場合、それぞれの要素は異なる特性を持ちます。先ほどの遅延の例ですと、遅延、パケットロス、遅延揺らぎはそれぞれ異なる要請を持ちます。遅延を防ぐためにはバッファは最小化すべきですが、一方、パケットロスを防ぐためには中継ノードに適量のバッファを持たせる必要があります。さらに、遅延揺らぎを防ぐためには、出口の(Egress)ノードにバッファを持たせ、出力間隔を揃える必要があります。またネットワーク仮想化の議論では、リソースを共有しつつ、適度な分離をどのように実現するかが焦点になりますし、ネットワーク設計では、要素自体の信頼性や性能だけではなく、その接続構造(つなぎ方)如何により、稼働率や性能を最大化することが求められます。品質や性能が思わしくないときには、通常、品質や性能の悪い要素を探し出してそれを改善する、ということが行われますが、それだけでは十分ではありません。要素間の接続の方法を見直す必要があります。
システム工学との違い – Art?
トレードオフを問題にするのは、アーキテクチャの領域だけではありません。システム工学はまさに、あらゆる制約事項の中で、様々なトレードオフを考慮し、最適解を検討するための工学、ということができます。システム工学と言っても、対象とする「システム」によって異なるとは思いますが、実際、ネットワーク設計に必要となる待ち行列理論、フィードバック制御、シャノン情報理論、信頼性理論、シミュレーションやシステムズ ダイナミクスなどは、システム工学の知見に学ぶことができます。では、アーキテクティングはシステム工学とは何が違うのでしょうか? 上手く言えないのですが、アーキテクチャにはシステム工学が扱う事柄に加えて、どうしても芸術的・審美的・思想的な「何か」があると思います。美しい数学、美しい音楽と同じように、美しいアーキテクチャというものは存在するように思います。
「システム アーキテクチャ」に関する専門書が少ないことも、アーキテクチャが審美的なものを含んでいることを物語っているのではないかと思います。「美」とかいうことを持ち込んだ途端、証明し難く、論自体の信頼性を失ってしまうために、なかなか学術的な文脈には載せられないのです。そして前回ご紹介したおそらく唯一のシステムアーキテクチャの専門書は、「The “Art” of Systems Architecting」という、開き直った(?)表題になっています。
普遍的な美などというものが存在するか、というのは、神が存在するか、という議論にも似ているかもしれません。私は現実論者で神の存在は信じていませんが、普遍的な美のようなものはあるのではないかと思っています。例えば、バッハの音楽。自然の息をのむような美しさ。ただこれは、単なる個人的見解であることは言うまでもありません。
「いいとこ取り」は成立するか
アーキテクチャとトレードオフに関して、一つ気になっていることを述べておこうと思います。それは「いいとこ取り」は可能なのか、ということです。異なるアーキテクチャが対峙するとき、それを調停させるために、よく「融合」とか「いいとこ取り」とか言われます。「通信と放送の融合」などです。また IP NGN は「電話の信頼性と IP の柔軟性のいいとこ取り」と言われていました。確かにシステム工学では、異なる要素が拮抗する中で最適解を求めるので、それを以て「いいとこ取り」と言えるかもしれません。しかしアーキテクチャの場合は、そのアーキテクチャに由来する性質が、表面に見えているもの以外の関連事項およびそのダイナミクスをも含むので、いいとこ取りはそんなに簡単ではないということを肝に銘じておかなければなりません。人間の性質に例えると、決断が早く果敢な A さんと、何事にも慎重で決してミスをしない B さんがいるときに、A さんの決断の速さと B さんの緻密さの「いいとこ取り」をしなさい、と言われることに似ています。だから「いいとこ取り」という言葉を安易に使ったり、その言葉自体に満足してはならないのです。しかし、「いいとこ取り」が全く不可能とは言いません。それこそが、次段階への「アーキテクチャ的課題」であることもあります。
アーキテクチャと対極的概念
ネットワーク アーキテクチャを検討するにあたって、繰り返し出てくる対極的概念があります。実際には、これらの対極的概念を組み合わせたり、階層や領域により棲み分けたりすることが多いのですが、フレームワークとして頭に入れておくと便利です。もちろん、下記は完全なリストではありませんが、比較的重要と思われる 12 の対極概念をあげておきます。システムの環境、マーケット的要請に加え、時代のトレンドやアーキテクトの思想や美意識的なものにも左右されたりもします。そしてそこには当然、トレードオフの関係が発生します。
- Stateless ↔ Statefull
- L2 ↔ L3
- 集中制御 ↔ 自律分散
- CO (Connection Oriented) ↔ CL (Connectionless)
- 決定論的 ↔ 確率論的
- 静的 ↔ 動的
- Plug and Play ↔ Gateway
- Hop by Hop ↔ Overlay
- End-to-End ↔ Middlebox
- 統合 ↔ 分離
- 仮想 ↔ 物理
- Tightly-coupled ↔ Loosely-coupled
対極概念の棲み分けについて、私が好んで使う Rule of Thumb(経験則)をご紹介し、この回を締めくくりたいと思います。
“Forward (L2) when you can, Route (L3) when you must.”
“Centralize what you can, Distribute what you must.”
1 コメント