P2Pの次に来るもの
はじめに
僕はいつも「P2Pって何なんだ?」と考えている。 P2Pの説明を聞くと「それってクライアントサーバ(C/S)とどこが違うの?」と思う。 最近、その原因に思いあたった。 僕はサーバと普通のPCを、あまり分けて考えていないのだ。
C/Sの欠点を補うためにP2Pが注目されたとしたら、 またC/Sに回帰するんじゃないだろうか。
研究室の管理者をやってたこと
なぜサーバも普通のPCも区別しないのかというと、 大学の研究室で計算機管理をやっていたときの体験が元になっている。
その研究室のサーバはワークステーションだったり、普通のPCだったりした。 個人用のPCと同じネットワーク上にあったし、 個人用PCもサーバも(プリンタもX端末も) 同じようにグローバルIPアドレスを持っていた。
こうなるとサーバと普通のPCの区別はほとんどなくて、 単にUnixの入ってるのがサーバ、そうでないのがPCというくらいでしかない。 普通のPCだってグローバルIPアドレスとDNS名を持っているから、 Apache を入れれば外部からも参照できるWebサーバになる。
この原体験のために、 PCとサーバを区別するということがあまりなくて、 サーバ用のソフトを入れればサーバになる、という程度の認識しかない。 確かに業務用の強力なサーバや、 個人用のPCとは切り離されたネットワークも知らないわけではないが、 根本的な違いだとはどうしても思えない。
P2PかC/Sか
ところが、 「P2PはC/Sの欠点を克服します」とか 「P2Pはサーバを介しない通信です」とか 「P2Pはユーザ同士を直接繋ぎます」という表現では、 サーバという言葉を別の意味で使っているようである。
この場合のサーバは個人用のPCとは別のもの、いわば専用サーバである。 例えば100人のユーザに対して1つのデータベースサーバという感じか。 専用だから100人のユーザでも捌けるが、これが1000人になると難しいとか、 10万人ならいいけど100万人だと難しいとか、そういうことが問題になっている。
で、それを解決するためにP2Pが注目されている。 個人と個人を繋ぐのなら、間にサーバを挟まなくてもいいじゃないか、 ということだ。
でもこれは僕にとっては違和感がある表現だ。 先にも述べた通り、普通のPCもサーバも区別がないと考えているわけだから、 「それは個人のPCがサーバなんでしょ」ということになる。 これを聞いたP2P側の人は、同じ言葉でも違う解釈をする。 サーバという言葉に専用の機材やネットワークの構築が含まれているから、 「個人のPCがサーバ(の代り)になるなんて凄いことじゃないか」となる。 こちらとしては「そりゃサーバ用のソフトを入れればサーバになるだろうさ」 という程度の意味なのだが。
C/Sに回帰するのではないか
P2Pソフトは僕の見る限りでは クライアントの機能とサーバの機能を合わせ持っている。 ユーザのPCをサーバ化したいのだが、 それをユーザに意識させずにしてしまおうという工夫なのではないか。
ならばもっと使いやすいサーバソフトがあったらどうだろう。 自分のPCをサーバにし、自分自身もクライアントとして機能を使う。 単純・柔軟なので受け入れられる余地はあるのではないか。
とはいえ僕はUnixユーザなので、 Windowsユーザにとっての使いやすいサーバが どんなものなのかは想像できないのだが。
まとめ
- 僕はサーバも普通のPCもあまり区別しない
- P2Pを語るときはサーバとPCを区別する人が多いようだ
- 使いやすいサーバソフトがあればP2Pより柔軟に使えるのではないか