†P2Pというのは、言葉どおりに言えば、二つのマシンが対等に(サーバをおかずに)通信できるシステムのこと、ですね。いっても、コンピュータ用語としてのP2Pは、2者間通信だけを指すのではありません。実際には多数のクライアントがそれぞれ有機的にネットワークを構築し、それぞれが対等の立場で通信しあうネットワークシステムのことを指します。P2Pが有名になった経緯はまぁ、結局のところ不法ファイル交換に使われることが非常に多かったためです。その技術自体が問題だったわけではありませんが、特定サーバを置かない事による匿名性の確保の容易さが、結局のところ犯罪の温床になってしまった感は否めません。....まぁ歴史経緯とその法的解釈は置いといて。P2Pはその性格上、うまく使えばサーバシステムの負荷を大幅に軽減することが出来る画期的なものです。Webシステムのようにサーバからの一方的配信のシステムでは、通信要求の急激な上昇要求に答えることができないと言った構造的な問題がありますが、P2P技術を使えばアクセス集中の問題を効果的に解決することが出来ます。今回制作してみようと考えているネトゲシステムは、基本インフラとしてP2Pシステムを採用してみようと考えました。技術的好奇心が80%くらいですが(笑)、将来的なネットワークは、多分P2Pな構成や考え方を多く取り入れたものになると考えたのも、ひとつの要因です。†さて、私は根本的にずぼらなので(ぉぃ)、自分で一からP2Pシステムを作ってみようなどとは全然考えません。いまどきの技術者は、外面さえ作ることが出来れば中身の技術はあちこちからおいしいところ拾い食いで良いのです(かなり暴言)。いうことで、JXTA(http://www.jxta.org/)です。Microsystemsが中心となって発足した、P2Pフレームワークです。P2Pネットワークの仕組み自体が、さまざまな技術の集大成であり、それを実装するだけでひとつの巨大プロジェクトになりかねません。JXTAは、ネットワークの実装と、それを利用するためのAPIを分離することで、実装を気にすることなくP2Pプログラムを行うことが出来る事を目標に開発されているP2Pフレームワークです。ゆーことで、今回はこれをつまみ食いして見ます。バージョンも2.3.2(04'/12現在)になっていますし、かなり成熟しているとも聞きます。置き楽に作れるようになっているのでしょうっ!....しかしここで問題が!ネットを調べてみると最新のAPIに対応した日本語情報がさっぱり無いことに気が付きました。日本で開発されているシステムもあるようですが、残念ながらネット上に公開されている開発情報としてまとめられているものは公開していないようです(Cマガジンで今年連載していたようですが....)。これは紆余曲折するかもしれない....。ま、まぁ何とかなるかなぁ~、と思いつつ、大気圏突入してみることにしてみます。ちなみに今回は使うことを優先するため、APIをただ説明するような初心者リファレンスにはなりません。作りながら引っかかった紆余曲折が記録に残るものと思われます。インストールとかHelloWorld?とかは多分しません、はい。