IPA


開発成果一覧へ





2004年度第2回未踏ソフトウェア創造事業  採択案件評価書


 



1.担当PM

 

 坂村 健  (東京大学大学院 情報学環 教授)



2.採択者氏名


 代表者

 今野 賢 (ヤフー株式会社 事業推進本部)

共同開発者

 なし



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


 有限会社枝川建設



4.委託金支払額

 

 12,917,943円



5.テーマ名

 

 情報家電プロトコルスタックの開発



6.関連Webサイト


  http://www.cybergarage.org

  http://sourceforge.net/



7.テーマ概要


 本プロジェクトは,組み込みシステム向け情報家電プロトコルスタックとして UPnP (Universal Plug and Play) を実装したものである。プロジェクト応募者がすでに開発し,公開している,C++言語で書かれた UPnPプロトコルスタック「CyberLink for C++」「Cyberlink for Java」をベースに,組み込みOSへの対応,C言語への対応をはかった。
 Cyberlink は,本プロジェクトの応募者が開発した,Linux, MacOSX, Windows上で動作する,UPnPのプロトコルスタックミドルウェアである。近年になって,商用を含めUPnPプロトコルスタック提供者は増加しているが,現在でもオープンソースで提供されているC++言語またはJava版のUPnPプロトコルスタックは Cyberlink が世界唯一のものである。
 既存の Cyberlink は C++ 言語または Java で実装されており,両者は近年の処理性能向上が著しいPCのような,処理性能の高いプラットフォームを暗黙の前提としていた。このプロジェクトは,このCyberlink に組み込み開発環境であるT-Engineや μITRON に対応させ,またC言語で実装された軽量機能版を追加し,組み込み機器向けオープンソースの UPnP プロトコルスタックミドルウェアを提供することにある。これにより,T-Engineのような,これから組み込み系で幅広く利用が期待される環境下で情報家電プロトコルスタックUPnP を使用できるようになる。
 今後情報家電がネットワーク接続され,相互に協調して動作する環境はますます増えていくことが考えられる。一方で,これまで情報家電に代表される組み込み機器は,それぞれが個別に開発されたものが多く,とくに開発ベンダをまたいで開発資産を共有することは困難であった。このような開発資産を共有するための共通プラットフォームであるT-Engine上に情報家電プロトコルスタックのような,基本的なミドルウェアがオープンソースで提供されることは,組み込みシステム開発の上で大いに有用である。また,組み込みシステムは,パーソナルコンピュータシステムなどに比べ,計算機資源の量やCPU性能において劣るものである。また,省電力の観点やコストの観点から,できるだけ実行負荷や利用資源が小さいことが強く要求されている。
 このような考察から,CyberlinkのようなUPnPプロトコルスタックが組み込みシステム環境下で提供されること,またそのスタックが軽量であることは,組み込みシステム開発におけるニーズと一致するものである。従って,Cyberlinkが組み込みシステム環境上で利用可能になることに期待している。



8.採択理由

 

 開発者ご自身に,高い実績があるため。uPnPをT-Engineまたはそれよりも小さいリソースを持つ情報家電に移植したオープンなものが完成することにより,組み込みコミュニティにも有用と思われるため。また開発計画も着実であったため。




9.開発目標


 このプロジェクトの開発目標は,大きく分けて以下の2種類のUPnPプロトコルスタックミドルウェアを開発することである。
 1. 高機能版
  すでにオープンソースとして開発済みのC++言語版UPnPプロトコルスタックミドルウェア「Cyberlink for C++」を高機能版と位置づける。この高機能版は,UPnP仕様が規定するすべての機能を実装したものである。しかしこのプロトコルスタックは,WindowsXPやLinuxなど,処理性能の高いプラットフォームを対象として開発されていた経緯があり,組み込みプラットフォームではより軽量である方が望ましい。このため,ミドルウェア内のXMLパーサなどの軽量化を図ることと,T-Engine,μITRONなどの組み込みプラットフォームへの移植を試みることが高機能版の開発目標である。
 2. 軽量版
  高機能版の開発を生かし,組み込みプラットフォームを意識した軽量なC言語版のUPnPプロトコルスタックミドルウェアを「軽量版」と称する。軽量版と命名しているが,高機能版として実装する機能に制限や遜色があるわけではない。プログラミング言語に依存するライブラリ自体の軽量性ならびに基本設計から実装まで一貫して組み込み系プラットフォームを意識したという意味で「軽量版」である。
  対応するプラットフォームとして,以下を実装対象とした。
    ・Linux
    ・MacOSX
    ・Windows
    ・T-Engine (T-Kernel)
    ・μITRON
    ・BTRON



10.進捗概要


 プロジェクトの開始に当たり,プロジェクトマネージャは,軽量版プロトコルスタックについては,たとえばオブジェクトサイズ100KB位を目指すなど,早い段階で達成目標を定めることを求めた。まずはこのオブジェクトサイズ100KBを目標に開発を開始した。
 概ね当初の計画通り遂行し,開発目標に掲げた2種類のUPnPプロトコルスタックミドルウェアを実装し,完動させた。開発した機能は主に以下のような機能を有する。
  ・基本機能部
   データ構造処理・文字列操作・ネットワーク処理・タスク管理・時刻管理・リスナー管理 など
  ・UPnP基本機能部
   HTTPクライアント処理・HTTPサーバ処理・XML処理・SOAP処理・SSDP処理・GENA処理
  ・UPnPデバイス管理部
   デバイス管理・コントロールポイント管理

 本来軽量版は,組み込み系プラットフォームにおける省サイズ/省メモリに重点を置き,UPnPの全機能を実装範囲としない予定であった。しかしUPnPの機能実装を省略した場合,本成果物が他のUPnPデバイスやコントロールポイントとの相互接続性に問題をきたす可能性があった。このため軽量版もUPnP全機能を実装対象とした。軽量版は必要なモジュールを選択できるようになっている。軽量版オブジェクトサイズは,227KB〜178KBとなった。 これは当初の目標であった100KBに比べると大きいが,当初UPnPの全機能を実装範囲としない方針であったが相互接続性の問題からUPnPの全機能を実装対象としたための増加である。成果物の軽量版オブジェクトサイズは,ほかの商用ベンダのC言語による実装と大差ない大きさである。



11.成果


 上記の10.進捗概要で述べた開発成果は http://www.cybergarage.org/ で公開されている。公開告知をUPnPフォーラムのメーリングリストで行った。また,ダウンロードサイトとして SourceForge (http://sourceforge.net/)を利用している。



12.プロジェクト評価


 組み込みシステムは,サーバシステムやパーソナルコンピュータシステムに比べ,計算機資源の量やCPU性能において劣るものである。また,省電力の観点やコストの観点から,できるだけ実行負荷や利用資源が小さいことが強く要求されている。一方で開発期間の制限から,既存の開発資産を共有することもまた要求されている。そういう点から,CyberlinkのようなUPnPプロトコルスタックが組み込みシステム環境下で提供されること,またそのスタックが軽量であることは,組み込みシステム開発におけるニーズと一致するものである。
 また本成果物は7月下旬より,既存のUPnPプロトコルスタック(高機能版)利用ユーザに対して試験公開を実施した。試験公開の対象としたユーザのフィードバックにより,バグフィックス,windowsCEプラットフォームへの追加対応ならびにXMLパーサlibxml2への追加対応がなされた。これは,本ソフトウェアが実用性をもったオープンソースミドルウェアとして有用であることの裏付けともいえ,それは評価に値する。



13.今後の課題


 成果物の完成度は高いといえる。今後ユーザを増やし,本ソフトウェアを普及させていくためには,マニュアルの整備や,サンプルの充実が不可欠である。また,記事を執筆したりデモンストレーションを行ったりして,プロモーションを行うことも必要である。プロジェクトマネージャもプロモーションの機会を提供し,本ソフトウェアの普及に努めたい。


  ページトップへ   





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