そもそもP2Pとは何でしょう?まずこの疑問に答えるには 通常のコンピューターシステムで使われる「クライアント=サーバーシステム」を説明する必要があるでしょう。
「クライアント」とは「お客様」,「サーバー」とは「召使い」という意味です。「クライアント」はある命令を出し、「サーバー」がその命令を実行し、「クライアント」に返します。
人間生活にクライアント=サーバーモデルを置き換てみましょう。喫茶店を思い出して下さい。これがクライアント=サーバーモデルを説明するのにぴったりなのです。
お客様が喫茶店に入ってきました。お客様は店員に「コーヒーを下さい」と注文すなわち「命令」をします。 この時点でお客様は「クライアント」という立場であることがわかるでしょう。店員はお客様の「命令」のもと コーヒーを作り,コーヒーをお店の人に差し出すという「命令」をこなします。すなわち店員はクライアントの命令を受け、処理をクライアント(お客)に返すので「サーバー」ということになりますね?ちなみに店員は給仕係やレジ係,コックなど役割によって複数分担して処理にあたります。実際のサーバーも役割によって複数分担するのがほとんどです。
ではコンピューターの世界ではクライアント=サーバーモデルはどのように使われるのでしょうか?それはまさにインターネットのページを見るのに使われています。
ここでインターネットでホームページを見ている人はお客様すなわち「クライアント」です。私たち「クライアント」はホームページを見るときにURL(例えばhttp://yahoo.co.jp)というのを入力します。まず、URLをネットワーク機械がわかるように 数字(アドレスと呼ぶ)に変換する必要があります。これをDNSサーバと呼びます。 また実際URLの場所にあるのがWWWサーバーです。WWWサーバーはクライアントの命令の元,「ホームページの内容をクライアントに送信する」ということをします。またCGIを使うとWWWサーバーは住所検索等のより複雑な処理が出来ます。
このようにクライアント=サーバーモデルはあらゆる場面で使われいます。そこでクライアント=サーバーモデルの長所と短所をまとめます。
長所
ではなぜP2Pが流行したのでしょうか?それにはいろいろな意見がありますが、私たちの持っているコンピューターの質が大幅に向上したことが挙げられます。20万円のコンピューターでも一昔前のスーパーコンピューター並の性能を持ち,自分のパソコンでサーバー処理ができるようになたのです。しかし起爆剤は後で述べる「Napster」が大きな役割を果たしています。
実生活で考えてみましょう。
今,中華料理のコックと日本料理の板前がいます。
お昼ご飯の時間になりましたが、
お互い自分の料理を作って食べるのに飽きたので
出前をすることになりました。
板前はコックにラーメンを,コックは板前に
カツ丼を頼みました。すなわち,どちらも
命令をするので「クライアント」と呼べるでしょう。
ここで、板前はカツ丼を作り,コックはラーメンを
作り,お互いのところにとどけます。
すなわち板前もコックも「サーバー」の働き
をしています。すなわちコックも板前も
「クライアント」かつ「サーバー」なので
まったく同等の立場すなわちP2Pであることが
わかるでしょう。
ではP2Pの長所と利点を考えてみましょう。
長所
短所
それでは次にP2Pの起爆剤になったNaspterとGnutellaについて説明を行います。