P2Pの定義2008年下半期版
以前「P2Pの定義2008年版」 という記事を書いたのだけど、 昨日「第3回オーバレイネットワーク研究会」 に行ってきて、 亀井さんの講演を聴いて、 いい定義を思いついたので書いておきます。
そもそもP2Pを定義するのが難しいのは、 「自宅サーバ」というものがあるからです。 「P2Pはクライアント-サーバモデルとは違う」とした上で、 どこがどう違うのかというのをもってP2Pを定義しようとすると、 P2Pにはあてはまるが自宅サーバにはあてはまらない条件を考えねばならず、 難しいのです。 例えば「ユーザー同士が直接通信をする」みたいに定義すると、 だったらAさんが自宅サーバでApacheを動かして、 Bさんがそこからダウンロードしたらどうなるの、となってしまいます。
そこで、まず2つの言葉を定義します。 「DCサーバ」と「野良サーバ」です。 専用の機材がデータセンターにあって、 データセンターとインターネットが専用の回線で繋がっているようなサーバ、 それをDCサーバと呼ぶことにします。 そうでないサーバ、例えば自宅サーバみたいな、 サーバとしての運用を前提としていない回線と繋がっていたり、 同じ回線をユーザーの(クライアントとしての)利用と共有しているようなサーバ、 それを野良サーバと呼ぶことにします。 WinnyのようなP2Pソフトはサーバとしての機能を持っているので、 自宅で動かせば野良サーバとなり、 DCで動かせばDCサーバとなります。
そして、あるシステムに注目したとき、 そのシステムが主に野良サーバからできているとき、 それをP2Pと呼ぶ、というのが今回のP2Pの定義です。
では、WebがP2Pであるかどうかを考えてみましょう。 Webサーバは主にDCサーバです。 なのでこれはP2Pではありません。
WinnyはP2Pでしょうか。 DCサーバ上でWinnyを動かすことも可能ですが、 数からいえば野良サーバの方が多いので、これはP2Pです。
この定義では、もし今後Winnyが広く使われるようになって、 DCサーバ上でどんどんWinnyを動かすようになり、 DCサーバ-野良サーバ間の通信がほとんどを占め、 野良サーバ-野良サーバ間の通信がほとんどなくなり、 野良サーバはダウンロード専用ソフトのようになった未来があったとしたら、 WinnyはP2Pではなくなる、ということになります。
また、自宅サーバでApacheを動かすのがあたりまえな世の中になったとしたら、 WebはP2Pになるわけです。