福冨諭の福冨論

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

分散指向P2Pと協調指向P2P

はじめに

以前アリエル・ネットワーク社の方とブログで議論したことがあり、その経験をもとに「C/SからP2Pへ」を書きました。 このたび岩田さんが出された「P2Pがわかる本」でもその議論に触れた箇所がありました。 前回の文章を書いてからも考えたことがいくつかありますので、再び文章にしてみようと思います。

サーバの分類

P2Pという言葉を考える」ではサーバには3つの意味があると書きました。 今考えてみると、ここでいうサーバとはサーバソフトとほとんど同じ意味で使っていました。 今回は運用の面からサーバを4種類に分類してみようと思います。

高負荷・常設サーバ
いわゆるサーバらしいサーバ。 高負荷とはユーザはサーバからデータの大部分を取得すること。 常設とは24時間365日、いつでも接続できなければならないこと。 企業のウェブサーバ、レンタルウェブスペース、ブログサービスなど。
低負荷・常設サーバ
比較的低負荷のもの。 例えばSkypeのユーザ管理サーバ。 会話そのものを中継するのと比べれば低負荷、 接続できなければSkypeを使えないので常設と分類した。
低負荷・非常設サーバ
例えば趣味的な自宅サーバ。 あるいはウェブサイトの動作確認のためにHTTPサーバを自分のPCに入れた場合など。
高負荷・非常設サーバ

これは運用による分類なので、同じソフトを使っていても別の分類になることがあります。 例えばWindowsには共有フォルダという機能があります。 フォルダを共有すると他のPCからデータの読み書きができます。 これは最も身近なサーバの1つです。 フォルダを自分のPCで共有して、 別の誰かにデータを受け取ってもらうということを考えます。 データの送受信が終わったらフォルダの共有を解除します。 相手が1人であること、一時的なサーバの運用であることから、 これは低負荷・非常設サーバです。 ファイルを共有する別の方法に、PCを1台決めて共有フォルダを作り、 皆がそこにファイルを保存するというものがあります。 この場合は高負荷・常設サーバです。

C/SとP2P

C/SからP2Pへ」ではC/S(クライアントサーバ)からP2Pへの変化は、 「少数のサーバの機能を分散するもの」と「多数のサーバを連携させるもの」に分類できると書きました。 これを上の言葉で書き直すと、 高負荷・常設サーバをP2P化するもの(分散指向P2P)と 低負荷・非常設サーバをP2P化するもの(協調指向P2P)となります。

一般にP2Pのノードは低負荷・非常設サーバです。 運用の上では自宅サーバP2Pも区別できません。

分散指向P2P

高負荷・常設サーバの機能を分散させ、負荷を小さくするものです。 アリエル・ネットワーク社が「ビジネスP2P」と呼んでいるのがこれにあたるようです。 「P2Pがわかる本」では主にこちらのP2Pを解説しています。 ビジネス利用を考えるとユーザアカウント管理サーバや動画配信の大本となるサーバが必要ですので(P2Pがわかる本 第5章)、 概念的には次のような形になります。

少数の「高負荷・常設サーバ」 + 多数の「クライアント」 → 少数の「低負荷・常設サーバ」 + 多数の「低負荷・非常設サーバ」

協調指向P2P

低負荷・非常設サーバが連携することで、 全体として大きな負荷に耐えたり、 常設のように見せたりすることを狙うものです。

余談ですが、全体が1つのネットワークになるのであれば、 一部に負荷が集中するのを避けるためにピュアP2Pにするべきでしょう。 BitTorrentのようにファイル毎のネットワークであればハイブリッドP2Pでも大丈夫です。 ビジネス利用のP2Pとは違い、サーバに負荷が集中するからといって、 そう簡単には回線やハードウェアを増強することができません。

さて協調指向P2Pは概念的には次のような形になります。

多数の「低負荷・非常設サーバ」 + 多数の「クライアント」 → 多数の「低負荷・非常設サーバ」

まとめ

P2Pがわかる本」をきっかけに、 以前書いた「C/SからP2Pへ」と「P2Pという言葉を考える」をまとめた文章を書きました。 ビジネス利用を考えると分散指向P2Pの話題が増えるのは仕方のないことですが、 ユーザにとっては協調指向P2Pの話題も重要です。