2006/03/07
■[P2P]ポエム専用P2PネットワークPoenTropy
Poeny(ポエニー)
http://blog.fuktommy.com/#e1141630998
上記Fuktommyさんの日記を見て、以前考えた「TropyをP2P化」というアイディア……というか妄想をふと思い出したので、ここで一気に垂れ流してみます。テーマはPoeny + TropyでPoenTropyです。
----
■ Tropy(トロピー)とは
Tropyとは、コンピュータ関係の入門書の著作で有名な結城さんが去年の11月に発表した、ちょっと変わったCGIです。命名は「entropy」の「tropy」だそうな。
作者自身によるTropyの紹介は結城浩の日記(2005年11月3日)にありますが、個人的にはこれを更に要約して
- Wikiのように誰でもページを作成、編集できる
- ページの閲覧方法はランダム表示のみ(一覧機能もない)
- URLを覚えてなければ特定のページに移動できない(Tropyクローンによっては、URL指定もできない)
といったあたりがTropyの特徴だと思っています。
Tropyって実際に使ってみないとイメージが掴みにくいCGIだと思うのですが、オリジナルのTropyはもうソースコードしか公開されてないので、まだ触った事の無い方は数多くあるTropyクローンを当たってみてください。ちらっと辿って見た感じでは、rytropyやFropyなどは実際に動くものが設置されてました。
■ TropyとP2Pは相性がいい
このTropyを去年初めて見たとき、僕はまずまっ先にTropyのP2P化を考えました。それは、負荷が原因でオリジナルのTropyがソースコード公開のみになった(当初はCGIを設置してた)という理由もありますが、それ以上に「全体像が見えない」というTropyの特徴がP2P技術の弱点と上手くマッチしてるように思えたからです。
また、オリジナルのTropyは使用目的が全く無いものでしたが、それでも登録されたページの閲覧性はかなり高いと感じました。Webブラウザで閲覧できて、リロードするたびに次々新しいページを見れるわけですから。
一方、WinMXの時代からWinnyの時代まで、P2Pネットワーク上でポエムを流通させるという動きはかなり昔から存在していました。しかし、これらのソフトウェアはポエムの閲覧性が最悪だったため、不幸な事にポエムを流通させる基盤としては普及せず、現在では機密情報を流通させる基盤として普及してしまっています。そこで、僕はこう思ったわけです。
「TropyをP2P化したら、非常に素晴らしいポエム専用P2Pネットワークが出来るのではないか?」
TropyをP2P化すると、負荷分散以外にも、例えば以下のようなメリットが考えられます。
扱えるデータ量が無制限になる
- テキストだけでなく、音声や動画でポエムを流通させることも可能に
閲覧機能をパーソナライズ可能になる
- 既読管理:一度見たページは編集されない限り表示しない
- 推薦:自分の趣味にあったポエムを優先的に表示する
Tropy機能を持ったピア同士で構成されるネットワークを構成するから、Tropy2TropyでT2Tだ! そしていずれはT2T勉強会を開催……とか夢も広がります。
■ TropyのP2P化は意外と面倒
もちろん、TropyをP2P化するにあたっては、いろいろ追加しなきゃいけない機能もあります。
まず、著作権を侵害するようなコンテンツを放置しておくと、何かの幇助とかで捕まる可能性があるので、何らかの対策が必要です。とはいえ、これは用途を「ポエムの共有」に限定してしまえば、手動で特定のコンテンツをフィルタする機能をソフトに追加して、ユーザには「ポエム以外のデータはフィルタする」という簡単なルールに従ってもらうことで解決可能です。
それよりも、難しいのはP2PネットワークにTropyっぽさを追加する方法です。前述のとおり、Tropyには「ページの閲覧方法はランダム表示のみ」という変わった特徴があるので、ユーザに「名前を指定してファイルを検索させる」ことはできません。つまり、従来のP2Pファイル共有ソフトの機能は全く使えないので、
- ユーザからの問い合せに応じてランダムなポエムを返すP2Pネットワーク
- または、ひたすらポエムをプッシュ配信してくるP2Pネットワーク(ローカルのソフトウェアでランダム表示)
のいずれかを実装する必要があると思います。でも、そんな妙なP2Pネットワークなんて、僕は聞いた事ないです。
……とまぁ、ここまで考えて「そんなプロトコルを一から考えるのはめんどいなぁ」ということで、このアイディアはブログにも書かずにほったらかしにしていたわけです。
■ Winnyプロトコルを流用してTropyをP2P化
でも、PoenyのようなオープンソースのWinny実装を利用できれば、上記のようなポエム専用P2Pネットワークも意外とあっさり実装できるような気がするんですが、どうでしょうか。
名前はPoeny + TropyでPoenTropyとか考えてみたんですが、別にPoenyにこだわる必要はないので、poem + entropyでPoentropyということでも良いんですけど。とりあえず語呂だけは良いと思うんですけど。どうですかねえ。
今日、[http://muziyoshiz.jp/20060307.html#p01:title=PoenTropyという話]を見て、たしかにポエム共有ネットワークとして面白そうな方法だなと思ったので、試しに作ってみました。 [http://www.rootshell.be/~kienzan/poeny/poentropy_a1.zip:title=PoenTropy α1] ラン..
また、この日記に無関係と判断したコメント及びトラックバックは削除する可能性があります。ご了承ください。