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

Slides:



Advertisements
Similar presentations
IBMユーザ研究会九州研T3 3.Web2.0を実際に使ってみた. Web2.0を実際に使ってみました 研究会をプロジェクトに見立 てて “ Google SpreadSheet ” で会議を開く “ SNS ” でコミュニケーションを補助する “ Wiki ” で成果物を共有する.
Advertisements

1 Layout Utilities の紹介 Layout Utilities とは、お客様のプログラムに 流し込み印刷を簡単に組み込めるソフトウエア開発ツールです 無償 流し込み印刷の例.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
NetAgent P2P検知技術 NetAgent.
Linuxを組み込んだマイコンによる 遠隔監視システムの開発
SAP 環境における Active Directory 導入のメリット
マルチプラットフォーム対応 P2Pファイル共有ソフトの開発
  IronKey セキュアデバイスWEBサイト 
安全なログオン手順 2004/08/26 Port139 伊原 秀明.
The Perl Conference Japan ’98 朝日奈アンテナによる コンテンツ情報の取得と利用
コンピュータプラクティス I 再現性 水野嘉明
最新ファイルの提供を保証する代理FTPサーバの開発
コンピュータウィルスと脆弱性 メディアコミュニケーション論Ⅲ 7/18/08.
Flashプレイヤーを使った動画配信 情報工学科 宮本 崇也.
Android と iPhone (仮題) 情報社会とコンピュータ 第13回
オレポータビリティ 日本Rubyの会 青木 峰郎.
Androidアプリを公開する方法.
マルチプラットフォーム対応 P2Pファイル共有ソフトの開発
マルチプラットフォーム対応 P2Pファイル共有ソフトの開発
ケータイキット for Smarty のご紹介
解析サーバの現状と未来 2006/07/18 衛星データ処理勉強会 村上 弘志 現状のシステム構成など 統合解析環境としての整備
VO講習会 2015如月 (2015年2月26-27日、国立天文台三鷹)
Phenixサーバ クラックまとめ.
「まめだくん Ver.1.0」 特徴と利用方法.
Webサイト運営 09fi118 橋倉伶奈 09fi131 本間昂 09fi137 三上早紀.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
2010/12/01 IT講習会 快適なpcの使い方 メンテナンス編.
ファイル送信機能付きマルチキャストチャット
マルチプラットフォーム対応 P2Pファイル共有ソフトの開発
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
サーバ構成と運用 ここから私林がサーバ構成と運用について話します.
2009/5/22 けーちゃん カンタン  Wikiで情報共有 あいさつ 2009/5/22 けーちゃん
基幹理工学研究科 情報理工学専攻 後藤研究室 修士1年 魏 元
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
SpectreとMeltdown ITソリューション塾・第28期 2018年5月30日 株式会社アプライド・マーケティング 大越 章司
ネットワークアプリケーションと セキュリティ
新たなバックアップソリューション「クローン機能」はここがスゴイ 新たなバックアップ方法「クローン機能」なら全て解決!
新たなバックアップソリューション「クローン機能」はここがスゴイ 新たなバックアップ方法「クローン機能」なら全て解決!
Java Bytecode Modification and Applet Security
WebGIS開発 総合政策学部2年 飯塚直 2004年10月14日 厳網林研究会.
すぐできるBOOK -基本設定編-.
P2P概説 P2P概説 第2回 /
VIRUS.
議事録作成支援 Webアプリケーションの開発 リアルタイム通信を用いた合意形成を目指して
OSSAJ 事務局 株式会社ウィズ.アール 古木 良子
ミドルウェア”TSUNAGI”を 用いたWEBアプリケーションの構築
第16章 BOOTP:ブートストラップ・プロトコル
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
TCP/IPとプロセス間通信 2007年1月12日 海谷 治彦.
インターネット             サーバーの種類 チーム 俺 春.
アスペクト指向言語のための 独立性の高いパッケージシステム
個人の動画配信のためのWebサーバ構築 06A1058 古江 和栄.
ネットワークプログラミング 05A1302 円田 優輝.
コミュニケーションと ネットワークを探索する
Virtualizing a Multiprocessor Machine on a Network of Computers
動画配信捕捉のためのWEBサーバ構築 06A1058 古江 和栄.
Cell/B.E.のSPE Isolationモードを用いた監視システム
アクセス集中時の Webサーバの性能に対する OSの影響
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
ISO23950による分散検索の課題と その解決案に関する検討
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
データの改竄を防ぐ仕組み 2002/9/12 牧之内研究室「インターネット実習」Webページ
なんでしなくちゃいけないの? 情報セキュリティ
P2P & JXTA Memo For Beginners
0.1 DXライブラリの導入 必要なファイルの準備.
Presentation transcript:

マルチプラットフォーム対応 P2Pファイル共有ソフトの開発 石川 直樹 木下 陽介 関野 誠   高木 元気 保坂 智之 吉田 侑基 担当教諭 仲道 嘉夫

何故P2Pファイル共有ソフトを作ろうと思ったのか 動機

体育祭の画像を共有したい! アップローダーに画像をアップロード →パスワード設定、サイズ制限対策のファイル分割で手間がかかる

アップローダーの上限サイズは50MB 合計30MBの体育祭画像をアップロード →過去の30MB分のファイルが消えた

ユーザーが体育祭の画像群をダウンロード →パスワード認証が面倒 →ファイルは分割されているので結合するのが面倒 →一つのサーバに処理が集中するため重い

アップロードした人は過去のファイルを消してしまった →過去のファイルを消さないために、暗黙の自主規制が発生しアップロードされるファイルは重要なものに限られる

現状の解決策 外部のアップローダーを使用する →広告が邪魔 →セキュリティも心配 MSNメッセンジャーで共有する →転送が壊滅的に遅い場合がある →そもそもクラスメイト全員のアドレスを知らないし調べるのも面倒

現状をふまえた上での解決策 ファイル共有ソフトを「自分で」作ったら全て解決可能 →独自のソフトウェアの開発を決定

構造のイメージ、転送の仕組み 概要

ハイブリッド型とは何か 画像は Wiki にアップロード出来なくなるので省略(hybrid.eps)

プロトコルの詳細 画像は Wiki にアップロード出来なくなるので省略(hybrid.eps の左上の説明を消しコマンドを書き加えた画像)

ソフトに求める機能・性能 要求仕様

Windows, Linux, Max OS それぞれで完全動作させたい Ruby + wxRuby での開発決定 これが原因で後に問題が生じることになるとは誰も思わなかった・・・ (以降、wxRuby に関する記述は Java版が完成したら編集し直して「現在までの経過」に追加する)

煩わしい設定はいっさい無し GUI を作りやすい開発環境にした方が良い →wxRuby でも使いやすいGUIデザイナがあるし、XRC に出力すれば Ruby, C++から利用可能 →またまた、これが原因で後に問題が生じることになるとは誰も思わなかった・・・

高速にファイルを転送 複数ユーザーから同時にファイルを受信すれば通常よりも早くファイル転送可能 →現在は1対1でファイルを転送

レジューム機能も欲しい 誰もが24時間フルタイムでパソコンを付けっぱなしに出来るわけではない →完全に実装済み

P4U(仮称)の人生 現在までの経過

誕生までの経過 役割分担とか面倒だから各自勝手に作ろう CUI版、GUI版と2つのP4U(仮称)が誕生 GUI版は wxRuby のバグで開発が進まず 完成度の高いCUI版に開発が集中する

誕生してから現在まで 2つのP4U(仮称)が結合される GUI版の開発は相変わらず進まない しかしGUIのソフトを公開したい CUI版は動作の安定化、レジューム機能の実装など順調に開発が進む

Ruby + wxRuby という開発環境による問題と確定した解決策 Javaへの移行を決定した4つの問題点

問題その1 wxRuby の不具合① wxRuby でも wxGlade で XRC を出力すれば快適にGUI開発可能 →不具合① プログラムに XRC を読み込むと Dialog が呼べなくなる

問題その1 wxRuby の不具合② 不具合②新たにスレッドを生成すると wxRuby のGUI描写スレッド(EDT:Event Dispatch Thread)が停止する EDTが実行権を占有してしまうため Thread.pass(他のスレッドに実行権を譲る命令)を用いて明示的にスケジューリングを行えば解決可能 →なぜかThread.passが動かない

wxRuby の不具合に対する対応 wxRuby はオープンソースなので本来ならそのプログラムを編集しバグを直すべき→今の実力では不可能 よって現在はバグレポートにとどめる(まだ未報告)

問題その2 各プラットフォーム間での差異 通常は wxRuby が自動で対処してくれるがソケットは範囲外 文字コードの違いによって文字が表示されないなどの不具合が生じた

問題その3 Ruby の Thread は遅い 転送速度に影響を与えてしまう

問題その4 一般向け配布が困難 製作途中の段階でWindows用実行ファイルのサイズが11MBを越える →UPX を用いれば3.8MBまで圧縮可能だが消費メモリ量が増大する →よって Ruby + wxRuby を持たない環境に配布するのは困難 →これらの問題からJavaへの移行を決定した

仕組みの問題

「ハイブリッド型」の問題 ハイブリッド型ではサーバ管理者が必須 →個人に負担がかかり良くない →しかし、特定ファイルの流通を止められるなどのメリットもある サーバが止まるとクライアントは何も出来ない →障害に弱い。 →ピュア型への移行を決定した

今後の予定

Java への移行 Java版が完成するだろうから書かないでおく

ピュア型への移行 ピュア型のイメージ図 サーバ管理者が不要で障害に強い

ご静聴ありがとうございました