平成16年(わ)第726号の第十六回公判の傍聴の続き。



ここからは、開発の背景とその技術について明らかにする質問が続きます。
更新弁論で使われていたスライド数枚と、技術的な説明のためのスライドが用いられました。


弁15号証は、Winnyの技術 という本であり、名前の通り、Winnyの技術に関して記載している本である。
自分が主に書き、アスキーの編集の人にも色々手伝ってもらった。
出版は10月6日なので、手元にあるのは出版前にいただいた本である。
Winny著作権侵害を蔓延させる目的で作ったかというと、全然違い、それはWinnyの技術を見れば分かる


プログラムにはいろいろなものがあるが、Winnyの位置づけはP2Pによるファイル共有ソフトと言える。
P2PというのはPeer to Peerの省略形である。
Peerというのは対等な立場のPCを指し、対等なPC同士がやりとりをするネットワーク形態で、対等な立場のパソコンがネットワークで繋がっていると考えればよい。
P2Pをネットワーク形態で対比すれば、サーバ・クライアント、クライアント・サーバがある。(以下S/CまたはC/S)
C/Sでは、クライアントとサーバが明確に分かれている。
サーバはサービスを提供する主体、クライアントはサービスを受ける専用の顧客である。
つまり、サービスを提供する側とサービスを受ける側が明確に分かれる。
P2PとC/Sで、P2Pが優れいている点は、全体が分散しているので負荷が分散することと、壊れにくく障害に強い、つまり堅牢であることである。
C/Sではサーバが中心となるので、サーバがダウンすると、ネットワーク全体にサービスが提供できなくなるが、P2Pでは中心がないので、そのようなことにはならない。


<更新弁論の時に使った、C/Sのサーバダウンのスライド>(1台のサーバとそれに接続する複数のクライアントの図)
私が見ながら壇弁護士が作成したため、この図は正しい。
クライアントとサーバ間の黒い線で、ネットワークの接続を表す。
クライアントからサーバへはサービスの要求、サーバからクライアントへはサービスの提供が行われる。
すべてサーバにサービス提供を求めているので、サーバがダウンすると全てのクライアントがサービスを受けれなくなる。(サーバがダウンするアニメーション)


<更新弁論の時に使った、P2Pの負荷分散のスライド>(5つのノードが互いに接続しあっている図)
クライアント・サーバと違い、P2Pではそれぞれがサービスを提供しつつ、サービスを受けている。
ピアーと呼ばれるPC(パソコン)間をつなぐ黒い線がネットワークを表し、その上を行き来する赤い玉がデータを表す。
1台がダウンしてもネットワーク全体はダウンしない。(1ノードがダウンするが、他4ノードは互いに接続し合っているアニメーション)
どれかが中心となっていないので、1台が欠けてもネットワークはダウンしない。
Winnyの技術 の本のP13-16に先ほどの説明が記載されている。


P2Pはネットワーク形態の1つである。
P2P技術を使った特徴的なものとして、分散コンピューティングと分散ストレージが挙げられる。
分散コンピューティングとは、ネットワーク上のそれぞれのPCは計算能力が余っているので、その余りをまとめて仮想的なスーパーコンピュータとして扱えるものである。
各PCはCPUパワーが余っているので、それをまとめて仮想的高性能コンピュータとする技術である。
分散ストレージとは、分散コンピューティングと似ていて、各PCの余剰なストレージを集めて1つの大きなストレージとして扱えるものである。
ストレージとは記憶装置のことであり、一般的にはHDDなどを指す。
これにより大規模記憶装置の実現ができる。
これらの技術に関わっていたことがあるかというと、日本原子力研究所にいた頃に分散コンピューティングに関わっていた。
ファイル共有も分散ストレージなので、分散ストレージにはWinnyで関わったことになる。
分散ストレージについては、それ以前には特に関わったことはない。


ファイル共有ソフトとはファイルを共有するためのシステムである。
ネットワークを使うので、共有ではなく配信と言ってもよいと考えている。
ファイル共有システムは、P2PではなくC/Sでも組める。
ファイル共有システムをP2Pで組むと、負荷分散と堅牢性が実現できる。
C/Sに比べてP2Pが苦手なのは、集中処理をしないといけないとき、特に検索がP2Pでは難しい。
C/Sではサーバに全ての情報があるので、サーバで検索をすればよいが、P2Pでは情報が分散しているので、何がどこにあるかを知るのが難しい。


検索するための情報量は、P2PのPCの数が増えると、情報の転送量は飛躍的に増える。
N(ノード数)=2のとき、ノード間のデータの行き来で、S(検索データ量)=2となる。
ノードとはP2Pで言うPeer、つまりPCを指し、ネットワークに参加するPCのことである。
N=3のとき、各PCがそれ以外のそれぞれのPCに対して検索を行うので、S=6となる。
N=5のとき、組み合わせ的には1台が他の4つとやり取りをするので、5×4でS=20となる。
単純なP2Pでは、ノード数がNであれば、検索データ量SはN(N-1)となり、ほぼ二乗となる。
N=1のとき、S=0となるが、自分の中の検索にはネットワークを使用しないため0とする(?)。
N=10のとき、S=90となる。(←スライドではS=99となっていましたが、言葉にて修正がありました)
N=10,000のとき、S=99,990,000(9999万)となる。
N=1,000,000のとき、S=999,999,000,000(約1兆)となる。
通信量には、回線の限界があるので、ノードが多くなると限界が来る。
(Nに対するSのグラフのスライドから)50万検索までできるネットワークでは、ノード数は750ほどまでしか増やせない。


従前のファイル共有ソフトの検索で、ありがちなのは、検索のみをC/Sにすることである。
これは一般的にはハイブリッド型P2Pと呼ばれる。
問題となる検索部分をC/Sにすることで技術的に簡単になるが、サーバがダウンすると検索ができなくなる。
検索には検索用サーバを使用することで、サーバによって検索効率を向上できるが、サーバがダウンすればネットワーク全体がダウンする。


ハイブリッド型P2Pの検索部分もP2Pにしたものは、ピュア型P2Pと呼ばれる。
Gnutellaなどがこれに類する。
Gnutellaが作られたのはアメリカだったと思う。
メリットは全体のダウンがなくなる点だが、デメリットは技術的に作るのが難しい点である。
サーバに依存しない、純粋なP2Pという意味でピュアと呼ぶ。
堅牢なネットワークを構築しやすいが、効率の向上が不可欠であり、特に検索部分の効率向上が必要となる。


今までのファイル共有ソフトを世代別に分類して呼んでいる。
第一世代とは、ハイブリッド型ファイル共有であり、Napsterなどが含まれる。
サーバがダウンすると検索が行えなくなる。
第二世代とは、ピュア型ファイル共有であり、Gnutellaなどが含まれる。
ハイブリッド型の欠点を補えるが、検索を効率よく作らなければネットワーク全体が破綻する。
第三世代とは、キャッシュシステムを用いたP2Pソフトであり、FreenetWinnyが含まれる。
キャッシュ型ファイル共有を導入したものを、こう呼んでいる。
Winnyの技術 のP20-34に検索と分類について記載してある。
Winny著作権侵害を蔓延させる目的で作ったわけではないことが再度主張されましたね。
その辺りは、明日発売の Winnyの技術 を購入・熟読して、しっかりと理解しましょう。
もしくは、WinnyでPDF版をダウンロードして熟読しましょう。


続きはまた明日