未踏ソフトウェア創造事業 2006年度下期 並木・齋藤・高田・黒川 4PM合同成果報告会レポート ~開発の苦悩、完成の喜び~

未踏ソフトウェア創造事業とは、IPA(独立行政法人 情報処理推進機構)が実施する、独創性や優れた能力を持つクリエータの発掘を目的とする事業。独創的なソフトウェア技術やアイディアを公募し、プロジェクトが採択されると、1年弱という短期間ながら、開発に専念できる環境が提供される。専門知識を持つプロジェクトマネージャー(PM)が事前に選出され、プロジェクトの選定から、開発者への助言、進捗管理などを行う。

2007年8月6、7日の2日間に渡り、未踏ソフトウェア創造事業 2006年度下期 並木・齋藤・高田・黒川4PM合同成果報告会が開催されたので、その模様をレポートする。

WEB開発環境「葵」:日本語で気軽に作れるリッチクライアントの開発(酒徳峰章氏)

酒徳峰章氏
酒徳峰章氏

酒徳氏は、日本語プログラミング言語ひまわりなでしこなどの開発で知られており、Webアプリケーションも日本語で記述できるようにしようというのが、この「葵」である。

2005年下期に続いて2回目の採択で、1回目ではサーバ側で動作していたが、今回はクライアント側/Webブラウザでも動作するようになった。Flash上で動作するようになったので、葵で開発したアプリケーションをblogパーツとして簡単に貼り付けることができたり、携帯電話/Wiiなどをはじめさまざまなプラットフォームで動作するようになった。

さらに、拡張サービスをインストールすれば、ワープロ/表計算ソフトとの連携など、普通ではWebブラウザからは実行できない処理も行えるようになる。

今後は、.NET FrameworkやFlex、AIRなどにも対応するとのこと。

Mona OSにおける次世代Schemeシェルの開発(ひげぽん氏)

ひげぽん氏
ひげぽん氏

ひげぽん氏は、2chで開発を宣言し、アドバイスを受けながらゼロから開発を始めた「Mona OS」の開発者。本プロジェクトもMona OSに関するもので、Mona OSに一歩進んだシェルを搭載することが目標。

Schemeを選んだ理由として、さまざまなことを柔軟に、かつシンプルに記述することができ、部品化も容易で再利用性が高いことを挙げていた。

また、シェルの設定などもすべてS式で記述するので、アプリケーション開発者やユーザが、数ある設定ファイルの記述方法を覚えるという負担を軽減できる。今後はアプリケーションの設定などもすべてS式で記述するようにし、設定用のエディタをGUIで提供するとのこと。

さらに、並列処理を記述しやすいというSchemeの特徴や、自作OSという強みを活かしたOSコントロールなども行える。デモでは、表示された2つの画像を並列で同時に処理していた。

この他、正規表現によるファイルやウィンドウの一括処理なども行えるとのことで、Schemeの柔軟さを活かしたシェルの有用性が窺えた。

講演で行われたデモ。Schemeシェルから、画像を表示している2つのウィンドウを同時に動かしていた
講演で行われたデモ。Schemeシェルから、画像を表示している2つのウィンドウを同時に動かしていた

センサ・アクチュエータネットワーク制御ソフトウェアの開発(青木崇行氏)

青木崇行氏
青木崇行氏

ネットワークにつながる機器は、従来はPCがほとんどだったが、近年はロボット/アクチュエータ(機械の作動装置)なども接続するようになってきた。また、これらを利用しているのは従来は大規模な企業などの研究者程度だったのだが、じょじょに大学の実験室にも普及し、家庭内にも見られるようになった。しかし、ロボット/アクチュエータを利用したアプリケーションの開発は、ハードウェアが多種多様で、それぞれのハードウェアに対応する機能セットも十分に用意されていないため、難しいのが現状である。

本プロジェクトは、これらのセンサ/アクチュエータ向けにミドルウェアを提供しようというもの。ハードウェアに抽象化クラスを用いたソフトウェアモジュールを用意することで、ソフトウェアモジュールを組み合わせてアプリケーションを開発できるようにする。

発表後のデモでは、Phidgetsセンサ/アクチュエータを操作する模様を見ることができた。

非同期処理のためのJavaScriptマルチスレッド・フレームワークの開発(牧大介氏)

牧大介氏
牧大介氏

近年Ajaxの普及もあり、JavaScriptはWebページ/Webアプリケーションを作成するのに重要な役割を果たすようになった。ただ、JavaScriptのスレッドはWebブラウザのUIを担当しているスレッドが1本しかないため、1つのJavaScriptのコードを実行中は他のJavaScriptのコードを処理することができず、そのときはWebブラウザがフリーズしたように見えてしまうことになる。

本プロジェクトは、JavaScriptの上にマルチスレッド環境を構築するというもの。JavaScriptのライブラリとして実装しているため、処理系には手を加えなくて良い。また、Internet ExplorerやFirefox、Operaなど、代表的なブラウザに幅広く対応している。

コードはかなり直感的に記述できるスタイルを採用している。そのユーザプログラムを、マルチスレッドで処理できるようにコード変換することにより、変換後のJavaScriptが生成される。

性能としては、プログラム実行時間は遅くなるが、Ajaxの待ち時間のほとんどはサーバとの通信待ちなので、全体としては誤差の範囲内であるとのこと。

今後は最適化機構の追加やGoogle Gearsとの連携、デバッガの提供などを行い、さらに完成を高めていくと語った。

時間保護のための組込みシステム向け階層型リアルタイムOS(松原豊氏)

松原豊氏
松原豊氏

組み込みシステムでは、機能ごとに異なる制御用コンピュータを搭載するこおが多いが、スペースの制約があるので、機能を追加したくても新しくコンピュータを搭載できないケースが出てくることがある。

対策としては、アプリケーションを統合しCPUの数を減らす方法があるが、1つのCPUを複数のアプリケーションが利用すると、リアルタイムな処理が要求される組み込みシステムでは問題が出ることもある。

本プロジェクトは、アプリケーションごとに使えるCPU時間を保証するOSを開発するというもの。これまでは、アプリケーションを統合する際には、大変な労力とコストがかかっていたが、本プロジェクトで開発したOSでは、アプリケーションに手を加えずに統合することができるとのこと。

今後は、各種の展示会やプロジェクトに参加し、普及を目指すと語った。

DBPowder: RDBMS活用フレームワーク(村上直氏)

村上直氏
村上直氏

RDBMSは、多くのデータを扱うときには欠かせないものであり、アプリケーションのバックエンドとして広く利用されている。

しかし、RDBMSを構築するのは簡単ではなく、途中段階で試しに動かしてみるということができない。また一度作成すると修正が非常に面倒である。

本プロジェクトで開発されたDBPowderは、これらのRDBMS構築時の問題点を解決するフレームワーク。開発ステップを、データ構造(スキーマ)を書く「DBPowder-schema⁠⁠、Webページの動きを書く「DBPowder-navigation⁠⁠、そしてWebページを書く「DBPowder-html」の3つに分けることにより、柔軟な開発を実現している。

DBスキーマの定義ファイルは独自形式で、自分で記述できるように配慮されているとのこと。

BitTorrent型分散システムと使い捨てパッドを用いた通信システムの開発(石井充氏)

石井充氏
石井充氏

100%安全であることが数学的に証明されている使い捨てパッド(One time pad)という暗号化手法があるが、平文データと同じ長さになる鍵の交換方法に問題点があり、現時点では解決できていない。

本プロジェクトは、使い捨てパッドによって暗号化されたデータをBitTorrentと同様の方式で複数のファイルに分割することにより、上記の問題点を解決している。通信はすべてDSAによる認証/署名が行われるので、現実的に盗聴は不可能である。また、パケットの大きさから通信内容を類推されるという問題も、関係のないデータを付加することにより、パケットサイズを変更することで解決している。そして、ルータを越えることができない問題は、ヘッダの暗号化を止めることにより解決した。セキュリティには影響はないと考えられ、ルータ越えの必要がない場合はヘッダを含めて暗号化することもできる。

暗号化は独自に開発されたフィルタドライバにより行われるので、NICに依存せずに暗号化できる。また、プロトコルに関係なく暗号化できるという利点もある。

今後はビジネスへの展開なども模索していくとのこと。

RTOS上でのセキュリティフレームワークの構築(安積卓也氏)

開発代表者の安積卓也氏と、
共同開発者の山田晋平氏
開発代表者の安積卓也氏と、共同開発者の山田晋平氏

本プロジェクトは、組み込みシステム向けのにおいて、リアルタイムOS上でアクセス制御を行えるようにすることを目指すもの。

保護する資源と、それにアクセスを行うコンポーネントとの間に「セキュリティコンポーネント」を追加する。⁠セキュリティコンポーネント」は、呼び出された関数、呼び出したサブジェクトの情報を基に、アクセス制御の情報を持つ「リファレンスモニタ」に問い合わせる。その内容を基に、関数の呼び出しの許可を行うか、エラーを返すかを決定するというしくみ。また、⁠セキュリティエンハンサ」というものも用意されており、これを利用すれば、保護したい資源にアクセスする部分すべてにアクセス制御機構を追加することもできる。

性能評価の結果も発表され、オーバーヘッドは1%前後とのことだった。

FlexRayのシミュレーション環境と共通APIの開発(吉川彰一氏)

吉川彰一氏
吉川彰一氏

自動車の電子部品をつなぐ車載LANの次世代プロトコルとして、FlexRayが大きな注目を集めている。このFlexRayを利用した開発の普及を目指すため、まずはFlexRayのシミュレーション環境を整備しようというのが、本プロジェクトの目的である。

構成はクライアント/サーバ型で、クライアントがFlexRayの各ノードとなり、そのノード同士をつなげる役割をサーバが担当する。デモでは、車のハンドルと車輪の動きをシミュレートしたものが発表された。ハンドルを回転させ、車輪が動くときのFlexRayの通信がシミュレートされていた。

組み込みでは、精度の高い時間のシミュレーションが必要であるが、これをそのままシミュレートするのは非常に難しく、大変な試行錯誤があったと語った。また、吉川氏は仕事を行いながらのプロジェクトであったため、思うように開発の時間が取れなかったことなどの苦しさも窺えた。

デモンストレーションの様子
デモンストレーションの様子

GPU上でのCIP法に基づく数値シミュレーション環境の開発(安藤英俊氏)

安藤英俊氏
安藤英俊氏

普通は3Dグラフィックスなどの処理に使われるGPUを、並列計算など他の目的に利用しようという手法にGPGPU(General Purpose Computation on GPUs)というものがある。処理によってはCPUよりも圧倒的に速く、将来的にもさらに高速化するので、最近注目を集めている。

本プロジェクトでは、流体計算などに利用される数値シミュレーション手法「CIP法」を、GPU上で行うもの。共同開発者の鳥山孝司氏がコア部分を実装し、安藤氏がGPUへの実装を担当したとのこと。

開発方針が明確で、GPUに比べて処理の遅いCPUとの連携はせず、処理はあくまでGPUに行わせることを追求した。また、可視化、設定のためのツールを先行して開発するなど、開発前から実用性を意識しているようだった。

デモでは、非常に滑らかに動作しており、本プロジェクトの完成度の高さが窺えた。2D/3Dのオブジェクトを障害物として配置したり、条件も細かく設定できるとのこと。3Dのデータは外部形状データを読み込むこともできる。

本プロジェクトの成果は、無償で公開予定とのこと。

デモンストレーションの動作画面
デモンストレーションの動作画面

「Requirements Driven Developer」の開発(毛利真克氏)

毛利真克氏
毛利真克氏

本プロジェクトは、システム開発における「要求駆動な開発」をサポートするツール「Requirements Driven Developer」⁠RRD)を開発するというもの。要求をモデル化し、ソースコードにする時間をできるだけ短くすることを目指す。

要求は、自然言語で記述できるのが大きな特徴で、顧客が見ても理解できるようになる。ある程度形式的なものだが、人間が自然に読めるものになっていた。また、たとえば「電話番号」だったら自動的に電話番号型にするなど、自動的に型を決定することも可能。これらの自然言語とモデルの結び付きや、型の判定などは、辞書によりカスタマイズできる。

また、このツールはEclipseのプラグインとして実装されており、開発現場に導入しやすいように配慮されている。

今後は、α版、β版を経て、2008年2月末には正式バージョンをリリースする予定とのこと。

ニューラルネットワークを応用したデータマイニングソフトウェアの開発(石原省平氏)

石原省平氏
石原省平氏

本プロジェクトは、株価などの膨大なデータをデータマイニングを利用して解析して今後の予測などを表示し、判断を下す材料とするソフトウェアを開発することを目指した。

プロジェクトの開始前に、ファンドマネージャへの聞き込みなどを行い、要求を明確にした。それによると、さまざまなアルゴリズムを手軽に利用して解析したいというものがあった。そのため、アルゴリズムや基本機能も含めてすべてモジュール化し、自由に取り替えられるようにした。ただ、このモジュール化の仕様の決定にはかなり苦心したとのこと。

発表前にトラブルがあったとのことで、残念ながらデモは見ることができなかったが、かなりの機能は完成しているようだった。

今後の予定としては、解析アルゴリズムの追加などを行う。また、結果のレポーティングの機能を充実させて欲しいという要望も強く、こちらにも注力したいとのことだった。


最後に、PMによる総評が行われた。採択プロジェクトに基盤系のソフトウェアが多い並木美太郎PMは、⁠基盤ソフトの完成には5年はかかる」とし、⁠これからも何らかの形で成果をブラッシュアップしていってほしい」と述べた。そして、⁠今回熱中した気持ちを忘れないでほしい」と述べた。

ウィリアム齋藤PMは、⁠プロジェクトの成果の製品化を目指してほしい」とする一方、未踏ソフトウェア創造事業を経験しての本当の財産は「出会い」であるとし、⁠個人が知っている『こと』には限界がある。知っている『人』が重要」であると述べた。

一方、黒川利明PMは、成果に満足しながらも「できることばかりやっている」と、プロジェクトの内容が現実的であることを指摘。失敗することを厭わず、より「未踏」の分野にチャレンジしてほしいと檄を飛ばした。

最後に、高田浩和PMはアドバイスとして、⁠OSや基盤ソフトウェアは開発過程でユーザの視点になりにくいので、それを意識して開発してほしい」と述べた。

おすすめ記事

記事・ニュース一覧