Tech-On!は無料登録制の技術情報サイトです。ぜひ会員登録してこの記事の全文をお読みください。 Tech-On!無料登録の説明ページ初めてご利用の方:無料会員登録へ登録に関するご質問登録に関するご質問学生の方:無料会員登録へログイン・ページに進むIDやパスワードをお忘れの方は…Cookieが使えない状態になっていませんか?

【JavaOne】「未来のケータイJavaは動的フレームワークに」,アプリックス郡山氏

ソーシャルブックマークに追加する
この記事にタグを付ける
記事のタイトルとURLを入れたメールを作って,知人に紹介する
後からこの記事を見られるように保存する
印刷用ページ
2005/11/11 19:20
星 暁雄=Tech-On!
図1:CLDC,CDCは,J2SE(デスクトップJava)が含まない独自部分を持つ。
図1:CLDC,CDCは,J2SE(デスクトップJava)が含まない独自部分を持つ。
[クリックすると拡大した画像が開きます]

 アプリックスの代表取締役社長兼研究開発本部長である郡山龍氏は2005年11月9日,「JavaOne Tokyo」において「Java標準化の限界と今後の機能拡張の展望」と題して講演し,組み込みJava標準仕様の今までの経緯と今後のビジョンについて語った。

 キーワードは「ダイナミック・フレームワーク」である。従来の組み込みソフトウエアは静的なリンクが前提となっていたが,仕様群が乱立し,しかも複雑化,巨大化する中でやがて限界がくる。解決策は,最小限の共通仕様をまずサポートし,他の機能群は必要に応じて動的に組み合わせられるようにすることだ。静的から動的へ──これが,同氏が考える組み込みソフトウエア開発の進化の方向性である。

ケータイJavaは仕様が乱立している

 携帯電話機向けJava実行環境の分野では,「CLDC」と「CDC」と呼ぶ実行環境が登場している。これらはデスクトップ分野,サーバ・サイド分野のJavaの完全なサブセットではなく,独自部分を含む(図1)。Java技術は「一回書けばどこでも動く(Write Once, Run Anywhere)」という理想の基に開発されたが,現実には標準Java仕様の範囲内でさえ「フラグメンテーション(分断化)」が起きてしまっている。

 CLDC/CDCの上位層にあたる仕様群も,現実には様々な仕様が乱立している状態にある。「MIDP」は標準仕様だが,現実には通信事業者ごとの独自仕様を含む場合がある。

 ベンダー独自の拡張機能が,後になってJava標準仕様に取り込まれる場合もある。例えば3次元グラフィックス機能は,J-フォン(現在のボーダフォン)の仕様から始まり,NTTドコモの仕様にも入り,その後「JSR 184:Mobile 3D Graphics API for J2ME」として標準仕様に取り入れられた。NTTドコモのFeliCa仕様は,その後ボーダフォンが採用し,今では「JSR 257:Contactless Communication API」として標準化プロセスが進行中である(図2)。

解決策は,動的な再構成

 これらの経緯を踏まえて,郡山氏は次のような将来像を提示する。すなわち,最小限の共通仕様を核として定め,追加機能は動的に拡張/再構成できる仕組みの構築である。同社はこの考え方に基づく開発環境を「ダイナミック・フレームワーク」と呼んでいる。

 ダイナミック・フレームワークの実現手段として,例えば既存の規格であるOSGi(Open Services Gateway Initiative)を利用できる。OSGiでは,mee(minimum execution environment)と呼ぶJava仕様を定めている(図3)。このmeeを核として,様々なJava API群を動的に追加できるようにする。さらに,OSGiはJavaプログラムだけではなくネイティブ・コードの動的な追加にも利用できる。例えばOSパッチなどである。OSとJavaフレームワークの両方の層で,動的再構成を実現できる。

 郡山氏は,「従来の組み込みソフトウエア開発の世界は静的リンク。1カ所のバグが全体に波及する『連帯責任』の世界だった(図4)。ダイナミック・フレームワークでは,モジュールごとに責任の範囲を分けた『分割統治』が可能となる」と説明する(図5)。ソフトウエアが複雑・巨大化していくと,このような考え方が必要になる。

 サーバ・サイドのJava技術では,プログラムを動的に組み合わせる技術であるDI(dependency injection)やAOP(aspect oriented programming)に注目が集まっている。一方,組み込みソフトウエア開発の分野では,ソフトウエアの動的な再構成を本格的に実現したという報告はあまり聞かない。ただ,開発規模が巨大化し,しかも標準仕様が乱立する状態を解決するには,こうした思い切った発想の転換が必要になりそうだ。

図2:NTTドコモやJ-フォン(現在のボーダフォン)の独自仕様として登場した機能が,後からJava標準仕様に取り入れられている。
図2:NTTドコモやJ-フォン(現在のボーダフォン)の独自仕様として登場した機能が,後からJava標準仕様に取り入れられている。
[クリックすると拡大した画像が開きます]
図3:異なる仕様群の共通集合として,OSGiが定める最小限の実行環境meeに注目する。
図3:異なる仕様群の共通集合として,OSGiが定める最小限の実行環境meeに注目する。
[クリックすると拡大した画像が開きます]
図4:従来の組み込みソフトウエア開発は静的リンク。1カ所のバグが全体に致命的なダメージを与える場合もある。つまり「連帯責任」である。
図4:従来の組み込みソフトウエア開発は静的リンク。1カ所のバグが全体に致命的なダメージを与える場合もある。つまり「連帯責任」である。
[クリックすると拡大した画像が開きます]
図5:アプリックスが検討中の動的なフレームワーク。ネイティブ・コードによるOS機能とJavaフレームワークの両方で,動的な再構成が可能なようにする。ソフトウエアが複雑・巨大化するほど,このような枠組みの必要性が高まる。
図5:アプリックスが検討中の動的なフレームワーク。ネイティブ・コードによるOS機能とJavaフレームワークの両方で,動的な再構成が可能なようにする。ソフトウエアが複雑・巨大化するほど,このような枠組みの必要性が高まる。
[クリックすると拡大した画像が開きます]