集中と分散

ある優秀なエンジニアがメールで「ネットでは、分散から集中が加速されたがまた分散するトレンドになると思います」という意見を述べておられたが私も同感である。

パソコンの時代は「マイコンピュータ」という言葉の通り否応なく分散化が加速した時代で、のちのち分散化されたコンピュータ資源の管理、サポートが企業の大問題となっていった。これがTCOという概念を発達させ、Webの時代を経て、再びリソースを集中させるトレンドを生んだ。

しかし、集中化されたWebアプリの応答性の悪さにイラついているのは私だけではあるまい。Webのトレンドはサーバーサイドに「スケーラビリティーとスタビリティー」という要件を生んだ。しかし、この解決のために、用いられているのがコンポーネントの分散可能性なのは皮肉な結果である。

ネット環境は、通信障害、サーバーダウンなど、環境としては実に不安定だ。第一世代の分散化は、ここに安定したコンピュータルームの環境をそのまま持ち込もうとしてしまった。アーキテクチャーとしても、CORBA1.0が制定されたのは90年代初頭なのだが、非同期メッセージングのサポートを含む3.0がリリースされたのは最近のことである。また、GnuTellaに代表される分散ファイルシステムでは、構成要素の個別性が重要でなければ、統合されたシステム全体は安定しており、巨大さが価値を生み出しうる例である。つまり、参加している個別PCの接続が切れたりしていても、系全体としては有用なコンテンツを常に保持し続けるのだ。

分散環境は、通信、個別コンポーネントの不安定さ克服の歴史だったのだが、どうやら、

二つの方向性に実用アプリケーションが出て来つつあるようである。