マルチプラットフォーム対応 P2Pファイル共有ソフトの開発

Download Report

Transcript マルチプラットフォーム対応 P2Pファイル共有ソフトの開発

マルチプラットフォーム対応
P2Pファイル共有ソフトの開発
石川 直樹 木下 陽介 関野 誠
高木 元気 保坂 智之 吉田 侑基
担当教諭
仲道 嘉夫
何故P2Pファイル共有ソフトを作ろうと思ったのか
動機
きっかけ
• 美しい画像をみんなと共有したい
• クラス内で共有するのに適した方法は?
従来の方法
•
アップローダを使う
 パス設定が必須,容量制限がある
•
インスタントメッセンジャを使う
 転送速度が遅い,複数人で共有不可
•
他のP2P共有ソフトを使う
 ネットワークが大規模すぎる
 導入の敷居が高い
いいこと考えた
• ファイル共有ソフトを自分で作っちゃえば
いいんじゃね?
 独自のソフトウェアの開発を決定
題して旧世代ポエム共有ソフト
Poem for You 略して P4U
構造のイメージ,転送の仕組み
概要
ハイブリッド型P2Pとは
ハイブリッド型P2Pネットワークのイメージ
• ファイルの概要をサーバーから取得
• 実際のファイル転送はクライアント同士で行う
P4Uプロトコルの詳細
サーバー
公開されてる
Hogeってファイル
ファイルある?
は誰が持ってる?
Hogeってファイル
ファイル登録
があるよ!
Hogeってファイル
Hogeあげるよ!
を公開するよ!
クライアント1
検索
問い合わせ
クライアント1が
持ってるよ!
ファイル送信
クライアント2
ファイル要求 Hogeちょーだい!
P4Uの特徴
• Windows, Mac OSX, Linuxに対応
• 仕組みが簡単なので設定も簡単
• 高速なファイル転送
• ダウンロード再開機能
スクリーンショット
Ruby
Ruby(GUI)
Java(GUI)
※ 画面は開発中のものです.
開発言語と構造の問題
問題
問題(1)
wxRubyに関して
• プラットフォームによって挙動に微妙な差
異がある
• 実行ファイルの容量が大きくなりがち
• GUIデザイナを用いるとダイアログが使え
ない
• マルチスレッドでうまく動作しない
 Javaへの移行を決定
wxRuby = マルチプラットフォーム対応のRuby用GUIライブラリ
問題(2)
ハイブリッド型P2Pに関して
•
サーバーが必要
 手軽に共有できるとは言いがたい
•
サーバーが止まるとクライアントは何も
出来ない
 ピュア型への移行を決定
おや? P4Uのようすが……
今後の予定
Javaへの移行
• メリット
プラットフォームによる文字コードの違いに
も対応できる
優れた統合開発環境があり,GUIの開発が容
易
• デメリット
Rubyと比べてコードが長くなりがち
ピュア型P2Pへの移行
• メリット
 サーバーが不要
 ネットワークの負荷を分
散できる
• デメリット
 コンピュータ間の同期が
とりにくい
ピュア型P2Pネットワークのイメージ
ご静聴ありがとうございました
優しいお兄さんたちがみんなの質問に丁寧に答える
質疑応答のじかん
P4U Project Wiki(要旨集にも載ってるよ)
http://www9.atwiki.jp/poem_for_you/
……8月初旬になんかやるかも
ここから先は予備
転送速度について
送信元
送信先
使用ソフト
Windows Windows P4U
(FTTH)
(FTTH)
LiveMessenger
Windows Max OSX P4U
(FTTH)
(FTTH)
LiveMessenger
Mac OSX Windows P4U
(FTTH)
(ADSL)
LiveMessenger
転送速度
3.096Mbps
1.760Mbps
3.480Mbps
2.420Mbps
未計測
0.018Mbps
いずれも100MiBのテストデータを用いて計測
ただし、OSXからWindowsへの転送には10MiBのデータを用いた