福冨諭の福冨論

RSSリーダーではこちらをどうぞ→https://feeds.feedburner.com/fuktommy

P2P飽きた

と発言したことを書かれてしまったので弁明をしてみようと思った。

まずはP2Pと既存技術には決定的な差がないことを説明する。

新月の匿名性について書いたときに、 新月で書き込みが拡散していくのと、 口コミで噂話が広まっていくのは、原理的には同じであると書いた。

口コミはP2Pではなく、新月P2Pであるというのなら、 その差はプロトコルの有無である。 新月にはプロトコルがあるから、自動処理ができ、 データは変化せず、短時間で拡散する。 噂話に比べて新月に利点があるとするならば、その点である。

ホームディレクトリを複数のPCで共有することを考える。 例えば家のPCでSSHDを動かしておく。 会社や出先から接続して、必要なデータを取り出すことができる。 これはP2Pなのだろうか。 それとも単なるクラサバなのだろうか。 (P2P化して嬉しいところ)

プロトコルの有無から考えると、SSHDの方式はP2Pではない。 もし出先から家のPCに繋がらなければ会社のPCに繋ぐとか、 あるデータに関しては会社にあるものが最新だが、 別のデータでは家にあるものが必要だ、など、 臨機応変に判断しなければならない点がある。

常に家に最新のデータを置き、会社でバックアップするとか、 始業時、終業時に同期を取るとか、 出先からデータが更新できなければ帰ってからやるとか、 細かいルールを作っていけばP2Pになると考える。 それらのルールに基づき、自動的に処理してくれるソフトがあれば 立派なP2Pソフトウェアであろう。

では、ある問題を解決するにあたって、 P2Pを用いる利点がどこにあるかを考えるとしたら、どうすべきなのか。 P2Pプロトコルだという視点からは、 次のどちらのアプローチが適しているかを考えればよい。

  • 細かいルールを定めずに臨機応変に処理する
  • 細かくルールを決めて、自動的な処理を行なう

ホームディレクトリを共有する例でいえば、 ほんの少しのファイルが必要で、 どのファイルが必要になるのかがわからないのだとすれば、 手間をかけて全体を同期させるよりも、 必要なものを必要なときにコピーしてくればよい。

そうでなくて全体を同期させることが必要とされているのならば、 自動的に同期を取るシステムに魅力がある。

コメント

そのとおりだと思います。 http://dev.ariel-networks.com/blog/index.php?itemid=299 では、議論が各論に入りすぎていてP2Pの啓蒙という観点からずれてきたので中断しましたが、 僕が書いていたポイントはFuktommyさんのポイントと同じです。 引き継いでいただきましてspecial thanksです。

そもそも「P2P」という広義で扱われる言葉と「P2Pテクノロジー」をごっちゃに議論すると混乱の元ですね。

sshを相互に張り合うのは、 どのPCで更新を行ったか自分で管理しなくてはいけませんので(Fuktommyさんのおっしゃるように)臨機応変的ですし、 それが会社のPCの場合はシステム部門にfirewallsshポートを開けてもらうという 自分に閉じていない問題も存在します(=>P2Pテクノロジーが有効)。 (Ariel-Iwata)

コメント

「一極集中では駄目だ。これからは分散だ」という話はもう十分に浸透しているように思います。 これからは具体的な分散の手法の議論が必要でしょう。 例えばLinuxのCDイメージを配布するにはBitTorrentが適しているのか、 伝統的なミラーリングが適しているのか、局面によって違うのか、などなど。

「ローカルデータの共有」が必要だとか、役に立つということはわかりました。 では御社のシステムを導入するメリットは何ですか? SSHDを使うよりも、本当に便利なのですか? ・・・という次元の話ですね。

コメント

上の文章に書いた通り、P2Pと従来技術の境界はほとんどない。 ルールが細かければP2Pで、細かくなければ従来技術というのは、実のところあまり意味がない。

P2Pが珍しかったころは、このシステムはP2P技術を使っています、 というのが売りになったのだろうけど、もうそろそろ次の段階に入る時期ではないだろうか。

例えば音楽や動画など大きなデータを配信することを考える。 クラサバでは負荷が集中するのでP2Pにしましょう、というのは一種の宣伝文句でしかない。 P2P対従来技術という軸はもう過去のものである。

我々が考えなければならないのは、もっと具体的なことである。 配信するのに、 Winny, BitTrrent, pushare, ミラーリング, DNSラウンドロビン, jigdoなど 従来技術とP2Pを区別することなく検討し、どれを使うか、どのように組み合わせるかを考える必要がある。

つまり現在では従来技術と対比してP2Pにこだわるのは時代遅れであり、その意味で飽きたといっているのである。

ただしP2Pであることを売りにしなければならない立場の人は話が別である。

参考:

コメント

技術者じゃ無い人にとっては、あんまりP2Pかそうでないかって関係ないからねぇ。 シームレスに運用するためにどうするかを考えるのも面白いかもしれないですね。

コメント

技術者にとっても関係ないんじゃないですかね。 喩えていえば、ある論文を人工知能の雑誌に投稿するか、自然言語処理の雑誌に投稿するかというようなもんで、 P2Pと呼びたければそう呼べばいいし、複数のサーバがあるんだ、と言えばそれでもいいし。

コメント

では、あるソフトがあって、それをP2Pだと呼ぶのには、どんなメリットがあるのか。 P2P勉強会プレ飲み会で横田さんが グリッドと名付けておけば企業に受けがいいので、 何でもかんでもグリッドとつける連中がいる という主旨の発言をしていた。 なるほど酷い連中がいるものだと、そのときは賛同したのだが、 よく考えてみると、人を呪えば穴二つである。 「P2Pと名付けておけばネットワーカーに受けがいいので、 何でもかんでもP2Pとつける連中がいる」 と言い換えられるではないか。

新月P2P掲示板ならNetNewsだってP2Pだ。 Vojtaの掲示板データ共有がP2PならRingサーバだってP2Pだ。

ネットワークに関連する技術があったとして、 それを企業向けに売り込むなら「これはグリッドです」と言えばいいし、 ネットワーカーに売り込むなら「これはP2Pです」と言えばいいということになる。

このデンでいけば IT技術個人ニュースサイトがあったとして、 ネットワーカーに売り込むならP2Pを冠すればいいということになる、 という理論になってしまうのだけどね

このようなことを考えながら、日経BYTEの特集を読んでいた: http://www.nikkeibpm.co.jp/mag/pc/pc_nby.html

それで気付いたのだが、P2Pソフトと呼んでおけば、 仕組みを隠蔽したままでも利用者に使ってもらえるのではないか?

仕組みというのはデータ構造やプロトコルだったり、ソースそのものだったりする。 例えばみんなでミラーサーバを作って音楽を配信しようと考えたとする。 すると誰がどこのサーバからデータを取得するだとか、 そのときの形式はどうするとか、 一日に何回、何時と何時に取得するとか、 いろいろ決めなければならない。

ところが「これは音楽を共有するP2Pソフトです」と言っておけば、 ユーザは、具体的な挙動がわかっていなくても、 なんとなくインストールしてしまうのではないだろうか。 新月だって、ソースや仕様書に目を通している人がどのくらいいるのか。

まとめると、あるソフトをP2Pと呼んでおけば

  • ネットワーカーが興味をもつ
  • 具体的な仕組みを教えなくても使ってもらえる

という利点が生じる。 なんともうさんくさいではないか。