国産のP2P型ファイル共有ソフト「Winny」の開発者である金子勇氏は現在、コンテンツ配信ビジネスを手がけるドリームボートの技術顧問として、新たなP2Pソリューション「SkeedCast」の開発を行っている。金子氏は2月27日、ライブドアが技術者らを対象に開催した「第1回ライブドアテクニカルセミナー」においてSkeedCastとWinnyの違いなどを解説した。
Winny2に近づくP2Pソリューション
金子氏は冒頭、「教科書的に」(同氏)P2P型のファイル共有ソフトを分類、紹介した。第1世代としてデータ転送だけをP2Pで行う「ハイブリッド型P2P」のNapster(1999年)、第2世代としてそれまで技術的に難しかったという検索機構などもすべてP2Pにした「ピュア型P2P」のGnutella(2000年)。その上で同氏が開発したWinny(02年)は、ファイル直接ではなくではなくキャッシュを転送するキャッシュ型P2Pで第3世代だという。
Winnyは「2000年ごろにP2Pがどうなるかを考えていた」(同)結果、制作されたもので、「キャッシュをかなり重視したシステム」(同)になっている。その後、ファイル共有ソフトではこのキャッシュ型が主流だという。
その上で金子氏は、現在が「第4世代の時代」だという。技術的な観点からいうと、同氏が開発している「SkeedCast」がこの第4世代になるという。WinnyにはバージョンによってWinny1とWinny2が存在しているが、Winny2は技術的には「これ(SkeedCast)に近かった」(同)そうだ。
さて、この第4世代のP2Pは、「分散サーバ型とP2P型のハイブリッド」と表現される。この分散サーバはP2P網をサーバとして動作させたもので、データを配信する「投入ノード」、それを中継する「中継ノード」を分散サーバとして固定。それを受信するユーザーノードを中継ノードとしてP2P型で利用することもできるというハイブリッド型なのだという。
ピュア型P2PのWinny1では、ノード同士は対等の関係で、それでは共有の効率が悪いため回線速度の高低で「ゆるやかな上下関係」(同)を作って効率化していたが、SkeedCastでは、各ノードの役割を決めてファイルを配信し、「一種のCDN(Contents Delivery Network)として動作する」(同)。その上でサーバが足りなくなった場合にユーザーノードを借り受けて配信に利用する仕組みだという。
投入(エントリー)ノードはアップロード専門、中継(共有)ノードはキャッシュを中継するだけ、ユーザーノードは受信するだけという分担ができあがる。ユーザーノードは「Skeedレシーバー」をインストールしてダウンロードを行う。
Winny1ではファイル共有が主目的だったが、Winny2ではそれをベースにし、情報共有のための汎用的な仕組みを目指していた。「『2ちゃんねる』みたいな大規模なBBSをP2Pでできないか」という意図で始めたと話す。ただし、その後金子氏は著作権違反幇助の疑いで摘発されたため開発はストップしている。
「Winny2は目指していたのが高いところにあった」と金子氏。SkeedCastではWinny2の要素をフィードバックし、Winny1でやり残したことを盛り込んだものだという。「技術的にはWinny2が目指していたことにかなり近づいている」(同)。