スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

BitSharp:C#/MonoのBitTorrentクライアントライブラリ

Microsoft .NET環境でも利用できるMonoベースのBitTorrentクライアントがメジャーアップデートしたよというお話。このクライアントの開発は全く知らなかったのだけれども、調べてみると非常に興味深い。

原典:InfoQ
原題:BitSharp: A BitTorrent Client Library for C#/Mono
著者:Jonathan Allen,
日付:February, 20, 2007
URL:http://www.infoq.com/news/2007/02/BitSharp

望まれている新たなトレンドとして、.NET開発者にとっての興味深い新しいライブラリが、主にMonoベースで開発された。Google Code of Summerに向けて、Allan McGovernは、C#/Monoを使った1組のBitTorrentクライアントライブラリを作った。彼はそれらをまとめてBitSharpと呼んでいる。

Monoベースでの開発がメインになっているが、ライブラリの全ては.NETプラットフォームでも動作する。ライブラリは、他のCLS-compliant言語(たとえばVB、IronPython、Ruby.net)によっても、利用しうるものであろう。

Miguel de Icazaは、ライブラリとコマンドラインクライアントが「非常に成熟している」という。しかし、残念なことに彼はGnome UIにおいても同様のことを言えるわけではないとしている*1。明らかに、それはしばらくの間更新されず、そしてあまりにシンプルすぎる。

Jeff Atwoodは、非常に面白いBitTorrentの解釈をしている。
BitTorrentモデルは革新的です。かといってすべての配布課題に適しているというわけではありません。センターサーバーモデルの方が、ほとんどの場合優れているでしょう。しかし、センターサーバーモデルよる配布は、金持ちのための手段なのです。高い利益を上げている組織だけが、非常に大きなバンド幅を持つのです。一方で、BitTorrentはきわめて民主的です。人々が何を望んでも、いつそれを望んでも、BitTorrentは人々にそれを与えます。それは、多くのISPによって配分される1人1人の細い改選をより集めることで可能となるのです。

しかし、それが民主的だからといって、BitTorrentは知的所有物の侵害行為と同義であるわけではありません。BitTorrenrtには合法的な用途(たとえばWorld of Warcraftのパッチの配布など)があります。そして、AmazonのS3は、torrentを直接サポートしています。

InfoQの質問:あなたはどんなシナリオでBitTorrentの利用を見ていますか?

*1Miguel de IcazaはMono、GNOME Linuxのデスクトップ環境の開発者。そのために、Mono Torrentに対してGUIでの利用ができることが必要であると考えている模様。記事内に引用された箇所は「最近のこのライブラリは非常に成熟しており、コマンドラインクライアントはよく機能している。しかし、我々にはGnome UIがなければらない。」と彼のBlogには記されている。


Monoは、オープンソース、.NETのクロスプラットフォーム実装であるので、全てのOS(Linux、Mac OS、Windows)で強力かつ軽量なMono Torrentを作成することができるだろう。

開発者たちは、複数のテストを繰り返し、Mono TorrentがAzureusの1/4程度のメモリ使用量であることを確認している。といっても、スクリーンショットを見る限りではμTorrentと比較すると1/2程度になってしまうのだけれども(なぜかサイトに書かれているμTorrentの数値とスクリーンショットの数値が異なる)。ただ、一部ではμTorrentにおけるメモリリーク問題がささやかれており、長時間の利用でのメモリリークについても調べて欲しかったりする(単純にμTorrentの動作が知りたいだけでもあるけれども・・・)。 それはともかくとして、このような比較を行うこと自体、ちょっとズルい気もする。もちろん、Mono Torrentの方が軽いのだろうけれど、一般的なBitTorrentクライアントとして利用することを考えると、タダ軽いだけではそれほど有益ではないだろう。ユーザには参照したい情報が山ほどあり、その実装がAzureusやμTorrentを重くする原因の1つでもある。それを度外視してCUIとGUIを比較するのもちょっとずるいなぁと。

Monoは最近メジャーアップデートを行った模様。

  • uPnPのサポート:それによって手動でルータのポートを開放する必要がなくなる(もちろん、uPnP対応のリーたが必要なんだろうけど)
  • ディスク書き込みは現在完全に非同期である:ハードディスクへの書き込み速度を上回る場合には、自動的にダウンロード速度が抑制される
  • アップロード・ダウンロード速度の計算の「大幅な改善」
  • その他、ダウンロードパフォーマンスの強化を含む、マイナーな改善

で、個人的に思うのはこのプロジェクトは最終的にどこに向かうのかということ。もちろん、開発はまだまだこれからということもあり、現状ではどのレイヤーで使うかということを考えるのもナンセンスなのかもしれないけれど、果たしてAzureusやμTorrentに匹敵するクライアントになるのか、というと正直疑問。確かにパフォーマンスは優れているかもしれないけれど、一般ユーザ向けに改良が加えられればGUIが必要になることは目に見えており、更に参照される情報も多くなるだろう。そうしたときに、依然として他のクライアントよりもパフォーマンスが優れているか、が問題になる。となると、一般的なBitTorrentクライアントとしてよりも、Jeff Atwoodの解釈にあるような、パッチの配布などに特化した利用を考えた方がいいかもしれない。

以前にも紹介したけれどもTorrentan.netというサイトでTorrentプロトコルの速度測定を行っている。目的としては、BitTorrentプロトコルを利用したゲームクライアントなどの配信のためのユーザ環境を調査する、というもの。至近的な目的はともかくとして、最終的な目的がゲームクライアントなどの配信であり、それに特化したクライアントが作られることになる。個人的には、BitTorrentクライアントが一般化すれば、ゲームのダウンロードクライアント(アップデートも含めて)などに利用されるようになると思う。そうしたときに必要となるのは、現状の一般的なBitTorrentクライアントではなく、それほど多くの設定や情報を必要としない、単にダウンロードしてくれるだけのクライアント(もちろんバックグラウンドでアップロードする)が必要になるんじゃないかなぁと。一般的なファイル共有のためだけのクライアントだけが必要とされるわけではないと思うしね。

Trackback

Trackback URL
http://peer2peer.blog79.fc2.com/tb.php/273-fa7aeaa3

Comment

Comment Form
公開設定

プロフィール
heatwave Author
:heatwave

RSS Jamendo twitter tumblr Creative Commons Attribution 2.1 Japan
ブログ内検索
記事リスト
最新の記事
全記事一覧
他所で書いてるブログ

P2Pとかその辺のお話@はてな

アーカイブ

カテゴリー
最近のコメント
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。