IPA


IPAトップ





平成15年度未踏ソフトウェア創造事業(未踏ユース)  採択案件評価書


 




1.採択者氏名


代表者

尾藤 正人((株)ホライズン・デジタル・エンタープライズ)

共同開発者

なし



2.担当プロジェクト管理組織


 (株)メディアフロント



3.委託支払金額


 3,000,000円



4.テーマ名


 みかん - サーバ自動選択型FTPサーバの開発



.関連Webサイトへのリンク

 http://mikan.nets.ce.hiroshima-cu.ac.jp/



6.テーマ概要


 ファイルを一般に配布する技術として,FTP (File Transfer Protocol) が広く利用されている.また,トラフィックの集中を避けるため,マスターサーバと同一ツリーを提供するミラーサーバも広く利用されている.ところが,ミラーサーバの同期の遅延などの理由によりユーザはミラーサーバよりもマスターサーバを使用する傾向があり,結果としてミラーサーバが有効活用されず,マスターサーバの負荷が上がっている.そのため現在ミラーサーバを自動選択する技術が注目されている.

 このような複数のミラーサーバの中から,最新ファイルを持つ1つのサーバを自動選択するモデルとして,(1) DNSにおける実装,(2) クライアントにおける実装,(3) サーバにおける実装がある.さらに,サーバ選択を行なう際の単位として,ファイル単位とディレクトリ単位で行なう場合に分類することができる.

 (1)のモデルでは,ミラーサーバのディレクトリツリーが全く同一の場合しか選択を行なうことができない.(2)のモデルの場合は,特殊なクライアントが必要となり普及に難がある.またミラーサーバの情報等を一元管理することができない.(3)のモデルは(1)と(2)のモデルの問題点を解決することができる.

 また,従来方式ではディレクトリ単位でしかサーバ選択を行なうことができず,特殊なクライアントが必要であった.そこで本プロジェクトでは,ミラーサーバをユーザが効率よく利用できるシステム「みかん」を提案する(尾藤 図1).

 「みかん」は中間サーバとして動作し,FTPクライアントの要求に応じて代わりに近くのミラーサーバからファイルの取得を行なう.FTPクライアントとのやりとりは全てFTPで行なうため特殊なクライアントを必要としない.サーバ選択はファイル単位の細かい粒度で選択が可能である.また「みかん」同士が協調動作をすることにより更新状況等の情報を効率よく取得することができる.「みかん」を利用することでユーザはミラーサーバの情報を持つことなく,従来クライアントで近くのミラーサーバから最新ファイルを取得することができる.

 

「みかん」の動作の仕組み図

 

尾藤 図1 「みかん」の動作の仕組み



7.採択理由


 これまでの実績に基づいて「みかん」(未完じゃない) の完成を目指す最後の仕上げが提案されている.みかんのようなシステムは実用的なのに,ありそうでなかった.これをきちんと仕上げて世の中に出すことは重要だと思う.ただし,どう出すか,出してみんなに使ってもらえるようにするにはそれなりに汗をかかないといけないだろう.未踏ユースがそのために役立つのであれば本望である.

 ただ,企業人の忙しい時間の隙間での開発というハンディがあり,この盛りだくさんの計画が達成できるかどうか,ややギリギリの印象がある.このプロジェクトを遂行する実績も実力も十分あるので,そこをなんとかクリアして頑張ってほしい.

 

 
8.成果概要(中間報告時)
 

 
 FTPのファイルリストを動的に取得する機能を実装するために,これまでのみかんの機能を拡張したり,内部構造を変更した.同時進行でバグ取りを行なった.また,データベースを動的に更新する機能を付加した.この機能を付けたことによって,接続する回数が増えることになったが,現在は一度コネクションを張ってデータの取得を行なうと,すぐにコネクションを閉じるようになっている.そのため,コネクションを持続させるような機能を組み込んだ.キャッシュ機能を先に実現するという当初の予定とは異なるが,次に並列ダウンロードの機能の実装を行なった.
 詳細は以下の通り.

(1) LinuxやFreeBSDなどのrpm,deb,portsに対応したパッケージ化作業を行なった.

(2) 定期的にミラーサーバの更新状況を行なう機能はすでに実装済みだったので,それをユーザの要求に対して動的に行なう機能を実装した.また,往復時間 (RTT) を求めて,近いミラーサーバを探索する機能はプロトタイプができた.実際に計測されたスループットをもとにサーバを選択する機能についても検討する.

(3) 並列に分割ダウンロードする機能を追加した.分割方法については,実際のスループットの安全性を見ながら決定する.

 

 
9.PMコメント(中間報告時)
 

 
 会社の業務と独立に開発を進めているので,時間の配分が大変だと思うが,12月の開発作業も含めればほぼ計画通りに進行しているようだ.会社のほうも暖かくサポートしてくれているらしい.それに尾藤君が学生時代からやっていた仕事なので土地勘は十分,そもそもそんなに無理のない開発スケジュールになっているのだと思う.もっとも,並列の分割ダウンロードの機能の追加の準備あたりでは新しいプログラミング経験 (スレッドプログラミング) を積んだようだ.いい機会なので,次々と新しいプログラミング手法を獲得してほしい.

 メディアフロントがプロ管をしている開発者のメーリングリストでは最新の状態にアクセスするためのURLが配信されている.触ってみて反応する人がボチボチ出そうだ.予定通りキャッシュ機能の強化が年内にでも片付けば,全体としてだいぶサマになってくると思う.

 後期の目標にみかんの協調動作があるが,これは学術的にも面白いと思う.

 なお,採択理由でみかんを未完としゃれてしまったが,本来の語源は,尾藤君の出身地である愛媛県の蜜柑から来ているとのこと.誤解のなきよう.


10.成果概要(終了時)


 バグ取りなど,中間期の成果の安定化を行なった.「みかん」の最新の成果は終了時(3月時点)には
 

  http://mikan.nets.ce.hiroshima-cu.ac.jp/

からダウンロードすることが可能である.

 「みかん」の実装体系を尾藤 図2に示す.「みかん」のプロセスは,接続管理プロセス,クライアント対応プロセス,モニタリングプロセスの3つとなっている.クライアントが「みかん」にアクセスすると,接続管理プロセスがクライアント対応プロセスを生成する.クライアント対応プロセスは,データベースから情報を取得し,クライアント,FTPサーバ群にアクセスする.クライアント対応プロセスは,データベースへのキャッシング機能も持つ.モニタリングプロセスでは,FTPサーバ群のディレクトリ更新情報の取得を行い,データベースの更新を行なう.

みかんの実装体系図

 

尾藤 図2 みかんの実装体系

 

 また,並列ダウンロードについては,

 ・fork(2),exec(2)
 ・select(2)
 ・スレッド

の3種類の方法を考察した.forkは,ファイルの一部分をダウンロードする度にプロセスを生成することになり,並列ダウンロードの処理にしては処理が重すぎる.selectは並列処理を自分で書くことになってしまうので,処理が複雑になってしまう.結局,スレッドを用いることにした.しかし,完全に動作するところまでには至らなかった.

 これらの開発から,「みかん」のリファクタリングをしたほうがいいことが判明し,次期バージョンの開発に着手した.



11.PM評価とコメント(終了時)


 後期に体調を崩したこともあり,並列ダウンロードを完成させるには至らなかったが,全体を通して,システムの安定度が増し,実用度が高まったと思う.並列ダウンロードができれば,当初必要と考えられていたミラーサーバの選択のためのネットワーク状況の調査・監視の機能は不要になるので,なかなか面白い成果となったのだが,ちょっと残念である.もっとも,並列ダウンロードが必要になるほど大きなファイルは滅多にないので,ある意味でおまけの機能とも言える.また,計画にあったみかん同士の協調も興味深い課題だったが,これにも手がつかなかった.実はこちらのほうが,機能的には重要だと思う.

 これらの実装を通じて,尾藤君はプログラムのリファクタリングの必要性を感じたようである.現在のものは各機能が1つのプログラムにまとまっているために,複雑化していて,拡張性に乏しい.後期の開発で難渋したのもそこに多くの原因があるであろう.実際,スレッド対応にするためにコード変更の必要がかなりあったようだ.

 また,現在etc/hostsや/etc/resolv.confで名前解決を行なうため,root権限で動作させている.このままではセキュリティ上問題があるので,chrootできるようにしなければならない.

 いろいろな課題が発見されたので,尾藤君はすでに次期バージョンの開発に取り掛かったようである.というわけで未踏ユースの短期決戦プロジェクトとして成功とは言えない結果となったが,次へのステップへ踏み出すことはできたと思う.上記紹介のWebページはなかなか活発なので,今後も活動は継続するだろう.しかも,会社からはワーキングホリデーをもらい,英語の勉強もかねてオーストラリアに1年間フリーな状態で滞在するお許しをもらったとのこと.ぜひ次期バージョンの完成を遂げてほしい.

 今年始めに尾藤君の所属するHorizon Digital Enterpriseを訪問した.尾藤君のような活動を認めるような活気の溢れたベンチャーである.資本金が2億円を越えているので,並みのベンチャーではない.社長の小椋さんは一橋大学出身の28歳.ベンチャーの心意気としっかりした経営スタンスを兼ね備えた方である.もう自分ではプログラムを書かないようだが,尾藤君のようなフリーなソフトウェアの開発に理解が深い.日本にもこのような会社があるのかと感心した.尾藤君はせっかくこういう恵まれた環境を活かせるようにしてもらいたい.




  ページトップへ   






  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004