IPA


開発成果一覧へ

 



2005年度下期 未踏ソフトウェア創造事業  採択案件評価書

 


1.担当PM

  並木 美太郎 (東京農工大学 大学院共生科学技術研究部 助教授)


2.採択者氏名

開発代表者

 永井 秀利 (九州工業大学 情報工学部 知能情報工学科 助手)

共同開発者

 なし  


3.プロジェクト管理組織


  日本エンジェルス・インベストメント株式会社


4.委託金支払額


  3,658,823


5.テーマ名


  ネット公開を目的としたマルチウィンドウアプリ用フレームワーク

 


6.関連Webサイト


  http://131.206.154.81


7.テーマ概要


 何らかのウィンドウシステム下で開発した GUI をそのままにネットワーク公開しようとした場合,現状では,適切な規模や簡便さと安全性とを兼ね備えたフレームワークが存在しない.そこで本プロジェクトでは,ネットワークマルチウィンドウアプリケーションを簡単かつ安全に,リソース消費をできるだけ抑えて公開するためのフレームワークの開発を目的とする.
 ここでは Ruby/Tk (オブジェクト指向スクリプト言語 Ruby GUI 拡張のひとつ) VNC (Virtual Network Computing) とを用いる.ただし通常の VNC 利用とは異なり,ウィンドウマネージャは動かさない.Ruby/Tk 特有の機能を使ってウィンドウマネージャ機能と安全な (高いセキュリティレベルの) インタープリタとをひとつの Ruby/Tk プロセス上で動かす.安全なインタープリタ上で通常の Ruby/Tk スクリプトをほぼそのまま動かせるようにすることで GUI プログラミングがネットワークに関してシームレスになり,特別な技術なしに低コストで高いインタラクティブ性を持ったネットワークアプリケーションの開発と公開とが可能になる.
 本フレームワークでは,1接続当り VNC サーバと Ruby/Tk との2プロセスしか必要とせず,リソース消費を抑えることができる上,セキュリティリスクの低減のためにウィンドウマネージャ操作を含めたスクリプトの実行全体を監視下に置くことも可能となる.将来,VNC が用いている RFB プロトコルを Tk の描画処理部で直接に扱うようにできれば VNC サーバすら不要となり,単一の Ruby/Tk プロセスだけでの公開も可能になるであろう.


8.採択理由


 GUIをネットワークで公開する試みは興味深く、また、有用な技術である。Ruby/Tk VNC を組合わせて GUI を含むアプリをネットワークに公開するアイデアは一つの解であると判断する。
 Ruby/Tk である必要性、VNCを用いることの優位性は、未知数な部分もあるが、逆にこれらの基盤を用いることによって生じる問題点の解決と優位性の立証、それから応用は興味深いものを含んでおり、一定の未踏性と有用性があると判断し、採択とした。

 





9.開発目標


 Ruby/Tkで書かれたGUIアプリケーションを、操作性をそのままに低コストで簡単かつ安全にネットワークアプリケーション化できるようにすることを目標にRuby/TkORCA (Ruby/Tk On RFB Canvas)と名付けたフレームワークを開発した。その際、公開用アプリケーションの開発・テストから公開(サーバ構築)までの作業をスムーズに行えるように、一連のソフトウェアとその機能とを設計・作成した。

 Rubyで記述されたGUIアプリケーションを前提に、そのプログラムの修正をなるべく行なわずネットワークで公開できるようすることを大きな目標とする。また、このとき、可能な限り他のフレームワークを利用し、特定のインフラに依存しないことを考慮する。サービス提供にはRFBプロトコルを用い、一般のVNCサーバを単なるRFBプロトコルサーバとして援用することにより、PCだけでなくPDAや携帯クラスであっても何らかのVNCビューアが動きさえすればサービスの利用は可能とした。既存のものに手を加えずに援用することにより、援用したソフトウェアの改良や発展をそのままに受益できるようにした。

 


10.進捗概要


 本ソフトウェアの構成を図7に示す。VNCサーバは既存のものを使っている。サンドボックスとなるRuby/TkORCAプロセス中を構成するfamilyの各種APIを提供するミドルウェアが開発したソフトウェアの主な部分である。また、各種設定ファイルの解析部分など独自に開発した部分は多い。いずれも、計画書の内容をほぼ満たすソフトウェアが順調に開発された。

図7 Ruby/TkORCAの構成

 


11.成果


 フレームワーク本体を開発したことで、ソース変更をほとんど必要とせず、ローカルのウィンドウシステムでのGUIアプリケーションの開発とネットワークアプリケーションの開発とをシームレスにすることができる環境を構築した。サンプルとして振子の振動アニメーションなどリアルタイムアニメーションなどを作成し、有効性を確認している。

  開発内容については、Webなどによる成果公開を予定していると聞く。Rubyの開発者またオープンソースカンファレンスなどにおいて精力的に発表しているほか、情報処理学会「夏のプログラムシンポジウム」において発表を行った。成果の宣伝に努めている。

LinuxUsers九州 (2005/11)

Rubyist九州 (2005/12および2006/01)

Ruby関西 (2006/01)

OSC2006 (2006/03)

ESPer2006 (2006/05)

・日本Rubyカンファレンス2006 (2006/06)  (括弧内は開催年月)

 


12.プロジェクト評価


 GUIをネットワークで公開する試みは興味深く、また、有用な技術である。Ruby/Tk VNC を組合わせて GUI を含むアプリをネットワークに公開するアイデアは一つの解であると判断した。対象とするアプリが Ruby に限定されるところもあるが、この種のGUIアプリをほとんど修正することなしに公開できることには十分意義はある。また、この種の言語処理系と一体化システムは、個人的にも興味はある。

 目標としていた機能について開発を完了した点および広報を積極的に行っている点を評価する。ただ、スケーラビリティについての評価が未了な点が気になる。また、魅力的なアプリケーションを書き、Rubyユーザに幅広く利用してもらうには今少し時間が必要であろう。Webサイトとマニュアルを整備し、実際に使われることを期待したい。なお、内容を正しく広めるためにも、今後も一般受けするプレゼンと文書作成に精進してほしい。

 


13.今後の課題


ドキュメントの整備と性能評価とについては今後の課題である。また仮想コンソール機能については、入力については不完全な部分を残している。計画時にはWindowsおよびMacOS Xも公式サポート環境に含める予定であったが、現時点では非公式サポートの扱いに留まっている点なども今後の課題となっている。

 




  ページトップへ   

 

 

 


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