家庭内ネットワーク向けの仕様「UPnP」や「DLNA(digital living network alliance)」に対応したデジタル家電に組み込むソフトウエアのオープンソース版が登場した。まずはUPnPプロトコル・スタックのオープンソース版が公開になった。オープンソースのメディア・サーバ,メディア・プレーヤなどのアプリケーション・ソフトウエアのUPnP対応も進んでいる。これらのソフトウエアを利用すれば,ホーム・サーバやネットワーク・メディア・プレーヤなどのデジタル家電や,Windows/Linux搭載のパソコンなどを結んだ家庭内ネットワークを構築し,各種サービスを動的に発見・利用する使い方が可能となる。
2005年10月12日,情報処理推進機構(IPA)が開いた,2004年度第2回「未踏ソフトウェア創造事業」の「組込み分野」(プロジェクトマネージャは東京大学の坂村健氏)の発表会で明らかになった。「情報家電プロトコルスタックの開発」プロジェクトが採択された今野賢氏(ヤフー 事業推進本部)が,製品に組み込み可能な段階にあるUPnPプロトコル・スタックが既にオープンソース・ソフトウエアとして公開中であると発表した。公開ライセンスの方式として,商用製品に組み入れやすいよう,BSD(Berkeley Software Distribution)ライセンスを利用した。フィンランドNokia社は,今回のプロトコル・スタックを自社の携帯型端末に組み込む予定という。
220KバイトでUPnPを実現
今野氏は,同プロトコル・スタックをC言語により作成し,組み込み機器向けにメモリ所要量を抑えることを主眼に実装した。実行ファイルのサイズは約220Kバイトで,「ほかの商用UPnP実装と比べても遜色ないレベル」(今野氏)としている。このサイズで,UPnPの全仕様を実装しており,ネットワーク上のUPnPデバイスの発見や,サービスの利用に関する機能をすべて利用できる。
今野氏はこれまでにC++言語版,Java言語版のUPnPプロトコル・スタックを開発してきた。今回開発したC言語版では,オブジェクト指向言語を使った従来版と同様のやり方でAPIの抽象化と隠蔽を進め,C言語であってもオブジェクト指向風の命名規則と呼び出しスタイルを利用できるようにした。「新たなデバイスに対応させる場合も,XMLによるデバイス定義と,Cによるアクション関数を定義するだけで済む。既存アプリケーションのUPnP対応も容易だ」(今野氏)。
対応プラットフォームは,Windows XP,UNIX,MacOS X,T-Engine,Windows CEの各種。BTRONおよびμITRONにも移植したものの,OS機能上の制約から全機能は実装できなかったという。
UPnPプロトコル・スタックは他にも存在するが,ほとんどは商用版。オープンソース実装としては,米Intel Corp.がLinuxをターゲットに作成したものがあるが,現在はメンテナンスが中断しているという。今回開発したUPnPプロトコル・スタックは,オープンソースであること,対象OSの種類が多いこと,サイズが小さいこと,製品への組み込みなど実用化が進んでいること,などの特徴がある。
Nokia770に搭載予定
今回のUPnPプロトコル・スタックは,2005年7月から,Nokia社,CERN(ヨーロッパ合同素粒子原子核研究機構)など一部の利用者に対して先行公開し,バグ修正や機能追加などのフィードバックを得たという。
先行ユーザーの中でも,Nokia社は製品に今回のプロトコル・スタックを組み入れる。2005年内に発売予定の携帯型の無線インターネット接続機器「Nokia 770 Internet Tablet」に搭載する。今回開発のプロトコル・スタックを,同機種搭載のDLNA対応メディア・サーバおよびクライアント・ソフトの一部として組み入れる。
発表会でのデモンストレーションでは,今回開発したUPnPプロトコル・スタックを載せたT-EngineとWindows XP搭載パソコンを結び,T-Engine上で動く「時計」アプリケーションを,Windows XP側から発見・購読して利用する様子を見せた。
今後はRuby対応やオープンソースのDLNAアプリも
未踏ソフトウェア創造事業の期間終了後も,今野氏はオープンソース活動として今回のソフトウエアの開発を継続し,完成度を高めていくとしている。また,今後の予定としては,(1)Ruby言語やObjective-C言語などへの対応,(2)一般ユーザーがデジタル家電をプログラミングできるビジュアル開発環境,(3)DLNAアプリケーションの開発,を挙げている。
DLNAアプリケーションの例として,オープンソースのメディア・プレーヤ「Video LAN」と,HDDレコーダ・ソフト「MythTV」に,今回開発したプロトコル・スタックを組み込んで,UPnPの機能を利用できるようにしたという。DLNAによる家庭内ネットワークに接続可能な環境を,オープンソース・ソフトウエアの組み合わせにより構築可能であることを示したといえる。