P2Pソフト=アップロード機能+ダウンロード機能
「P2Pは究極的にはWebに収束するんじゃないかと」で書いたのは、 Winnyや BitTorrentのような ファイル共有P2Pソフトは ファイル公開機能とダウンロード機能が一体となっているけれども、 技術的には分割可能だし、今後も分割されていく (ダウンロード専用Winny、ダウンロード専用BitTorrentのように)だろうし、 最終的には Apache+ Wget つまりWebと変わらなくなっていくんじゃないか、という話でした。
一方で、 「P2Pの適用できる範囲って意外と小さいのかもしれない」という記事では P2Pでコスト削減などと言うけれども、YouTubeは凄いコストに耐えてるよね、とか、 現在Webで実装されているサービス、例えばはてなブックマークをP2P化してもあまり意味はないんじゃないかという話をしました。
「WikipediaのP2P適用について」という記事では WikipediaをP2P化することでコストが削減できるというのだけど、 それは「Wikipediaにお金を寄付するのは嫌だけど、 P2Pノードとして自分のPCを使わせるのは構わないよ」という層が どのくらいいるのかにかかってきます。 Wikipediaは中立性を保つために広告は載せないそうですが、 一般的には負荷分散が問題になるほどのアクセスがあれば 広告等で収入も十分にあるんじゃないでしょうか。 ちなみに僕のサイトは負荷分散が問題になるほどの規模ではないです。
P2Pで負荷分散といっても、 かかる手間と削減されるコストの比が良いようには思えません。 技術的にも、サーバの負荷が減らせても ユーザ回線の負荷が増えるんじゃないかという話があります (P2P勉強会発表原稿倉庫の 「オーバーレイネットワークとIPネットワークの狭間で」をご覧ください)。
キャッシュサーバ間でのデータのやりとりにP2Pが生かせるという道はあるでしょう。 この場合はユーザはP2Pだとかキャッシュサーバだとかは意識しなくて済むように設計すべきです。
以上が話の枕でした。 以下本題に入ります。
アップロード機能とダウンロード機能 (あるいはサーバ機能とクライアント機能)が一体化していることが ユーザにとって便利だというのはどんな場合なんでしょうか、というのが話題です。 Skypeはよい例です。 電話には掛ける側と受ける側がありますから、 それぞれをアップロード側・ダウンロード側だと思えばいいんですね。 発信専用Skype、受信専用Skypeもあってもいいですけど、 一体化させた方が便利です。
これは電子メールも同じですけどね。 相手に直接届けることもあるし、サーバを経由して届けることもあります。 典型的な場合は [送信者]→[送信側サーバ]→[受信側サーバ]→[POPサーバ]→[受信者] と中継が入りますが、 昔ながらのUnixマシン間では [送信者]→[受信者] となることもあります。 Skypeも詳細は公開していませんけど、 直接通話することもあり、中継をすることもあるそうです。 この辺は電子メールでもSkypeでもユーザは意識しなくても大丈夫ですけど。
一方mixiのメッセージ機能は必ず [送信者]→[mixi]→[受信者] と中継が入ります。 掲示板やYouTubeも [書き込む人]→[掲示板]→[読む人] と考えれば中継ですね。 ブローカレスモデルといって、 このようなタイプの中継をなくすことが重要なんだ、という人もいるんですけど、 ブローカをなくすとどんなメリットがあるのか、よくわかりません。
話が逸れました。 アップロード機能とダウンロード機能が一体化していることによって、 ユーザが便利になるソフトって何でしょうね、という話でした。 ひとつはSkypeのような、発信機能と受信機能としての解釈です。
もう1つは ダウンロードした人が善意でアップロードすることもあるよ、という解釈。 これは善意はあるけどアップロードのために手間暇かけるほどじゃない、 という人を一応想定して、 なるべく簡単にアップロードできるようなソフトを作ることになるでしょう。 WinnyやBitTorrentは今は全員アップロードするのが前提みたいですけど、 将来的にダウンロード専用クライアントがあって当然になるのならば、 このような環境になるかもしれません。 または善意でアップロードするユーザが少なすぎて ネットワークが機能しなくなるか。
というわけで、 アップロード機能とダウンロード機能が一体化していることによって、 ユーザが便利になるソフトって何でしょうね、 という質問を提起して終わります。