昨年開通した「つくばエクスプレス(TX)」。つくばから東京まで45分で着きます。
昨年開通した「つくばエクスプレス(TX)」。つくばから東京まで45分で着きます。
[画像のクリックで拡大表示]

この連載のほかの回を読む

 SkypeはP2Pという仕組みで動くソフトです。この連載でも,「SkypeはP2Pソフト」と何度も強調してきました。私は自他共に認めるP2P好きです。大学の研究室でもP2Pを勉強していますし,個人的にP2P関連ソフトウエアを作ってもいます。今回は,私がP2Pに惚れ込む理由をお話したいと思います。

 私がP2Pに惚れ込んだのは,「スケーラビリティ」と「アベーラビリティ」という二つ魅力があったからです。どちらも何だか難しそうですが,スケーラビリティは対応できる規模が大きい,アベーラビリティはいつでも使えるという意味です。

 P2Pの良さを説明するには,クライアント・サーバー型のWebシステムと比べると分かりやすいので,お話しましょう。Webサイトでは,あらかじめWebサーバーに情報を入れておき,ユーザーがそのWebサーバーにアクセスしてきます。問題なのは,アクセスが集中したときです。想定数よりもアクセスが多くなると,Webサーバーがダウンして,つながらなくなってしまいます。このように,1台のWebサーバーが故障することによってシステム全体がダウンしてしまうような問題を含んだ構成を「単一故障点」(Single Point of Failure)と言います。システムの“ツボ”のようなもので,そこがやられると全体が死んでしまうのです。

 P2Pなら,この単一故障点の問題を解消できます。Skypeはユーザーが持つ多くのPCで処理する仕組みなので,一部のPCが故障してもそこを迂回するだけ。引き続きSkypeを利用できるのです。つまり,“死のツボ”をなくして,規模が大きくなっても問題なく動いて(スケーラビリティ),いつでも使える(アベーラビリティ)システムなのです。

 このようにメリットの多いP2Pですが,もちろんデメリットもあります。私が感じた一番大きいデメリットは,P2Pのソフトを作りにくいということです。

 P2Pソフト作りの大変さは,ついこの間まで取り組んでいた卒業論文用の研究で実感しました。普通のプログラムは,1台のコンピュータの中で動きます。ネットワークで通信する場合でも,プログラムが動くのはせいぜい2~3台のコンピュータです。ところが,P2Pソフトでは数百~数万台,さらにSkypeのようなソフトでは数百万台のコンピュータで動かす必要があるのです。これほどのPCを問題なく動かすのは,至難の業です。

 私の卒論では,何十台ものPCを使って,5万台のコンピュータが動いている状況をシミュレーションで作り出し,正常に通信できるかを確かめました。問題が出ると原因を探しますが,チェックすべきPCが多いので,この確認作業は本当に大変なことになりました。この自分の苦労を体験した今では,改めてSkypeのすごさを実感しています。


著者紹介
 著者の池嶋 俊氏はSkypeまとめサイト「Skypeやろうぜ」の管理人。プログラマの観点からSkypeを解説し、新しい使い方を提案する。Skypeの技術を解説した『入門 Skypeの仕組み』(日経BP社刊)の著者。また、筑波大学に通う大学生。サークル活動をしたり、学生ベンチャーをしたりドタバタな大学生活を楽しむ。この記事へのコメントはSkypeやろうぜ内のページでも受けつけている。