教材ファイル配布のための P2P 型ソフトウェアの開発

平成 22 年度
IEICE 北海道支部学生会インターネットシンポジウム
教材ファイル配布のための P2P 型ソフトウェアの開発
芦田
盛輔
真田 博文
竹沢 恵
岡崎 哲夫
北海道工業大学大学院
1
2
はじめに
P2P アルゴリズム
近年のコンピュータやネットワークの発達に伴って,動
P2P によるネットワークでは,各ピアは状況に応じて役
画や音楽といったファイルサイズの大きいコンテンツが利
割が変化する.各ピアは,ある時にはサーバの役割を果た
用されることが当たり前になっている.大学などの教育機
し,またある時にはクライアントとしてサービスを受ける
関でも,コンピュータやネットワークを利用した教育が行
側になる[2].従って,P2P の動作によってファイルを受信
われており,その際に学生に対して数十 MB から数百 MB
する側の PC を送信する側の PC に変化させ,ファイルを送
のサイズのファイルを配布する機会も発生している.
信する PC に掛かる負荷を分散できる.
大きなサイズのファイルを配布する方法はいくつか考えら
図1にファイル配布プログラムの動作の一例を示す.ここ
れ,例えば Web サーバを介して学生にダウンロードさせる
で①は教員 PC とし,②~④を学生 PC,①から配布される
方法や,USB メモリや CD に書き込んで配布する方法が一
ファイルは 4 分割されて配布されるとしている.プログラ
般的である.しかし,Web サーバを用いた場合は,大人数
ムでは図1の2.や3.の状態のように,ファイルを受信
のアクセスが集中することによりサーバトラブルが発生し
した PC がファイルを送信するサーバの役割を果たすこと
てしまう場合がある.また USB メモリや CD を用いた場合
によって,教員 PC の負荷を分散させ軽減する.ここでは
は準備や配布,回収に労力が掛かり,使用する教材を繰り
「同じファイルの一部を同時に送らないこと」
「同じ PC に
返し配布する場合等にはその作業量は膨大になる.これら
ファイルの一部を複数送らないこと」という制限を設けて
の問題を解決するために,本研究では P2P の技術を用いた
いる.これは分割数や PC の台数の増加で負荷が増大する
[1]プログラムによって,最大 150 人程度の学生に数百 MB
ことや,
1つの PC に処理が集中することを防ぐ為である.
のファイルを安定かつ高速に配布することを目指した.
図1
ファイル配布アルゴリズムの動作の一例
平成 22 年度
IEICE 北海道支部学生会インターネットシンポジウム
このアルゴリズムにて動作するプログラムを,3 の JXTA
および 4 の RMI の2つの API を用いて作成した.開発し
たプログラムは,どちらも学生や教員がどのような PC を
使用するか分からない点を考慮し,プラットフォームへの
依存性の低い JAVA で作成した.
3
JXTA を用いた P2P プログラム
3.1 JXTA を用いたプログラムの開発
JXTA とは,サン・マイクロシステムズ[3]から提供され
ている P2P プロトコルで,広告(Advertisement)の概念
図3
実験結果の一例
を用いて各ピア同士の通信を行う(図2)
.本プログラムで
は,この広告にファイルの情報を乗せることによって,ど
の PC が目的のファイルを持っているのか,どの PC がフ
ァイルを欲しがっているのかを判断し,ソケット通信にて
実際にファイルの送受信を行わせている.
図4
表1
PC10 台への配布結果(単位は秒)
サイズ
図2
JXTA の通信方法
実験結果の一例(途中停止)
分割数
1Gbyte
2Gbyte
平均
割合
平均
割合
5 分割
545
0.60
1099
0.54
10 分割
598
0.65
1322
0.71
JXTA を用いたプログラムの性能を評価するために教員
15 分割
-
-
1200
0.64
PC1 台と学生 PC9 台の合計 10 台の PC を利用してファイ
Web
912
1.00
1872
1.00
3.2 JXTA を用いたプログラムの実験
ル配布実験を行った.実験の条件は表 1 に示している.配
布するファイルのサイズは 1GByte および 2Gbyte とし,
図3および図4に実験の結果をグラフ化したものの一例
分割数は 5,10,15 の分割数で配布している.また比較の
を示した.図では縦軸をダウンロードした分割したファイ
ために Apache を用いた Web サーバを準備し,そこから学
ルの個数,横軸をその分割したファイルを取得するのに要
生 PC が同時にダウンロードする実験も行った.
した時間として示している.また Apache を用いてダウン
ロードした結果も黄色の直線にてグラフ上に示している.
図3より,開発したプログラムを用いた場合は,ダウンロ
ードが開始するまでの段階に要する作業負荷により,Web
サイトからのダウンロードの速度を下回る事もあるが,中
平成 22 年度
IEICE 北海道支部学生会インターネットシンポジウム
盤以降ではダウンロード速度が向上していることがわかる.
動作を別々に管理している(図6)
.これにより,学生のフ
ただし図4の 1Gbyte を 15 分割した結果では,実験中に
ァイルの取得状況の把握など P2P の苦手としている分野を
Web の完了時間を超えたためプログラムを停止させた.こ
サーバ-クライアントに担当させることが出来る.
れによりグラフが途中で途切れている.このように 1Gbyte
の 15 分割のみ違った結果が出たが,同じ 15 分割でもファ
イルサイズ 2GB の場合では他の分割数と同程度の性能が
出ている.表1に各ピアの中でダウンロード完了が一番遅
いものについて,その所要時間を示した.ファイルサイズ
1GB,15 分割の場合を除いて Web ダウンロードと比較し
て3~4割の時間短縮効果が得られていることがわかる.
4
RMI を用いた P2P プログラム
4.1 RMI を用いたプログラムの開発
3 での JXTA を用いたプログラムではプログラム上のオ
図6
ハイブリッド P2P での構成
ーバーヘッドになる部分を取り除くことが困難であると判
断したため,P2P 動作部に RMI を用いてプログラムの開発
を行う.RMI とは JAVA に備わっている通信機能の一つで,
4.2 RMI を用いたプログラムでの実験
RMI を用いたプログラムの性能を評価するため教員 PC
異なるバーチャルマシン上にあるメソッドをあたかも同じ
1 台と学生 PC 30 台の合計 31 台の PC を利用してファイル
メソッドにあるかのように使用することを可能とする仕組
配布実験を行った.実験の条件を表2にまとめて示す.ま
みである.メソッドを呼び出すために PC 同士で通信する
た,比較のために Apache を用いた Web サーバを準備し,
時には,Stub および Skel を介して行われる(図5)
.メソ
そこから学生 PC が同時にダウンロードする実験も行った.
ッドを呼び出して使用する際には,片方の PC が呼び出し
に応じるために待機しているため,ソケット通信のように
お互いに待ち時間を設定する必要がなく,高速な応答が可
能となる.
表2
条件
PC 台数
分割数
サイズ(MB)
図5
実験の条件
10 台
30 台
5,10,15,20
15,30,45,60
200,400,600,800
RMI の通信方法
本研究で RMI を用いて開発したプログラムは,ハイブリ
ッド型 P2P に分類される通信方法となっており,ピアの情
報を収集する部分と実際にファイルの送受信を行う部分の
図7
RMI を用いた実験結果(PC10 台)
平成 22 年度
IEICE 北海道支部学生会インターネットシンポジウム
ことによって,Web サーバからのダウンロードと比較して
約 2 倍から約 4 倍の高速化が実現され得ることを示した.
ただしファイルの送受信を行う際の分割数に関しては明確
な指針は得られていない.また,PC10 台,PC30 台におい
ては,配布する際に配布側 PC が重くなる,および配布が
途切れるといったことなく,安定して配布することができ
た.しかし,100 人規模のファイル配布実験に関しては,
学生 PC の認識および教員 PC への登録は行えたが,ファ
イルの配布を行うことは出来なかった.配布を行えなかっ
た原因は JAVA のヒープメモリ不足によるものであり,プ
ログラム上で使用する変数やピア情報を格納する方法につ
図8
RMI を用いた実験結果(PC30 台)
図7および図8に,学生 PC 10 台と 30 台で行った実験
いて改良することが必要となる.
参考文献
の結果を示す.グラフの横軸はファイルサイズ別の分割数
[1] 内慎二郎,喜久川政吉:“P2P を利用した教材配
(W はウェブサーバからのダウンロード)
,縦軸はファイ
布システムの開発”,教育システム情報学会全国大
ル全体を入手するまでに要した時間である.各サイズ・分
会講演論文集,30 巻,503-504 頁,2005.
割数の実験において,それぞれの PC がファイル入手を完
[2] 金子勇:“Winny の技術”,株式会社アスキー,
2005.
了するのに要した時間については差があるため,縦棒によ
ってその範囲を表現し,平均値を点で表示している.図7
より,学生 PC10 台において,開発したプログラムは
Apache サーバからのダウンロードの約 2 倍から 4 倍の高
速化が実現された.また図8の学生 PC30 台の時でもほぼ
同様の結果が得られた.図7では分割数が増加した場合は
それに応じて高速化が実現されているが,図8では必ずし
も分割数が増加した場合に早くダウンロードが完了してい
るわけではなかった.図7および図8の結果から,PC の台
数を固定した場合はダウンロードに掛かる時間はファイル
のサイズに比例して増加するが,開発したプログラムは
Web サーバからのダウンロードと比較して低い割合での増
加となった.ただし,PC30 台では規則性が得られていな
いので,比例して増加していない場合もあった.この点に
ついては今後,更に検証を進める必要がある.
5
まとめ
本研究では教材フィルを学生の PC に高速に安定して配
布するための方法として P2P 型教材ファイル配布プログラ
ムの開発を試み,実際にファイル配布実験を行ってその性
能を評価した.ファイルを分割し,P2P によって配布する
[3]
systems:JXTA
Community
https://jxta.dev.java.net/
Projects
,