写真1●Jonathan Schwartz社長兼COO
Java技術の社会的な効用,影響力について講演した。
写真2●Java技術が開拓すべき適用分野の例としてブラジルの公共医療システム事例を紹介
米Sun Microsystems社会長兼CEOのScott McNealy氏(左)と,Brazilian National Health SystemsのCTO,Fabiane Nardon氏(右)
写真3●Java技術のロードマップを説明するGraham Hamilton氏
Java技術のコアであるJava SE(J2SE改め)は18カ月間隔でリリースする計画。
 登場後10年が経過したJavaは,開発者のための技術というだけではなく,社会的なインフラだ─。Java開発者向け会議,「2005 JavaOne Conference」が6月26日から6月30日にかけて米サンフランシスコで開催された。

技術だけでなく市場も「共有」

 今回のJavaOneで,SunがJava開発者コミュニティに向けて発したメッセージは「Participation(参加)の時代」と「Share(共有)のパワー」。従来のハイテク企業が採用していた「独自技術を占有する」というモデルは今後成り立たなくなり,開発者コミュニティやライバル企業と技術および市場を共有するようになる,という考え方だ。

 このような概念を打ち出した背景にはオープンソースの普及によるソフトウェアの開発/利用スタイルの変容がある。新技術の供給源が特定の企業や団体から,個人も参加可能なオープンソース・コミュニティへと移行しつつあり,企業もその流れに乗る必要があるというのだ。

 Jonathan Schwartz社長兼COO(写真1)は,「特定の供給者がコンテンツを提供して利益を得る『情報の時代(Information Age)』は終わった。これからは,あらゆる人々が情報を発信して経済活動にかかわる『参加の時代(Participation Age)』だ。Java技術は,単なる開発プラットフォームではなく,ネットワークを利用した遠隔医療や遠隔教育に代表される社会的効用(Social Utility)を生み出すためのインフラである」と語った。

経済格差による情報化の遅れをなくす

 Scott McNealy会長兼CEOの基調講演では,Sunの姿勢が変わったとの印象を強く受けた。氏はライバル会社を徹底的に攻撃するスタイルで知られるが,今回は違う。医療分野と教育分野の公共情報投資に目を向けるよう訴え,「Java技術を人々の生活を向上させるために役立てよう」と呼びかけた。経済格差による情報化の遅れを「デジタル・デバイド」と呼び,その解消を訴えた。

 具体例としてブラジル政府が構築した医療情報システムを紹介した(写真2)。Javaベースのアプリケーションを構築し,患者情報を一元管理する医療情報システムの恩恵を全国民が享受できるようにしていく。Java技術を生活の改善に利用できる実例である。「このシステムはオープンソース。同じく深刻な医療問題に悩むアフリカ諸国でも使ってほしい」(Brazilian National Health SystemsのCTO,Fabiane Nardon氏)との発言に,JavaOne参加者は大きな拍手を送った。

 技術を共有するには,オープンソースは良い道具立てといえる。そして市場を共有するには,市場規模が成長している必要がある。そうでなければ限られた市場の取り合いになってしまい,共有どころではなくなるからだ。同社が例に挙げた公共システムや,新興国はまだこれから広がる市場である。「10のサイズの市場を独占するより,100のサイズの市場を共有する方がより良い」(Sunのオープンソース戦略策定に携わるSimon Phipps氏)。

商用APサーバーもDIコンテナ推進へ

 そして,今後のJava技術の将来を左右するのもオープンソースだ。商用ソフトウェア・ベンダーもオープンソースに対する取り組みを積極的に進めている。

 今回のJavaOneで印象的だったことは,米BEA Systems社の基調講演に,オープンソースのDI(Dependency Injection)コンテナ「Spring Framework」の作者であるRod Johnson氏がゲストとして登場したことだ。

 BEAのアプリケーション・サーバー製品「WebLogic Server」は,EJB(Enterprise JavaBeans)仕様を最も初期に実装したことで知られている。一方Rod Johnson氏は,従来のEJB技術への批判で有名だ。Springの内容も,DIやAOP(アスペクト指向プログラミング)を組み合わせることで,EJBを使わずに同様のソフトウェア部品化が可能であることを示すものとなっている。

 BEAの狙いは,アプリケーションを開発する際はSpringをはじめ各種オープンソース・ソフトウェアを利用し,それらを本格的に配備する際にBEA WebLogic Serverを利用してもらうこと。WebLogic Serverの上でこうしたソフトウェアを動作させることで,開発したアプリケーションのソースコードを変更せずに載せ替えられる。オープンソースと競合するのではなく,波に乗ろうという目論見である。基調講演で「J2EEの主要なイノベーションは,オープンソースの世界で起こっている」と述べたRod Johnson氏も,BEAのこうした動きに歓迎の意を示した。

 米Oracle社もオープンソースへの取り組みを急ぐ。例えば,EJB3のサブセットであるPersistence APIのリファレンス実装を,同社のオブジェクト/リレーショナル・マッピング・ツール「TopLink」の上で実現し,オープンソースのProject GlassFish(後述)に提供すると発表している。標準仕様をいち早く製品化するだけでなく,オープンソース化して開発者の関心を集める作戦と言える。

Javaをゆっくりオープンソースに

 Sun自体も,エンタープライズJavaの分野でJava技術の実装のオープンソース化を進めつつある。次世代のJava EE5(Java Platform,Enterprise Edition: Java2 Platform,Enterprise Edition 5.0から名称変更)を実装した製品である「Sun Java System Application Server Platform Edition 9.0」を,CDDL(Common Development and Distribution License)に基づきオープンソースとする。既に開発者コミュニティ・サイト「java.net」で,Project GlassFishとして公開中している。CDDLは先にSolaris10をオープンソースにした際に使ったライセンスである。

 また,新たに発表したESB(エンタープライズ・サービス・バス)製品「Java System Enterprise Server Bus」も,同じくCDDLに基づき「Open-ESB」としてオープンソース化する。

 そして,Java技術のコアであるJava SE(Java Platform,Standard Edition:Java2 Platform,Standard Editionから名称変更)の次世代版であるJava SE6(コード名Mustang)では,ソースコードを公開しながら開発を進めている。

 Javaソースコード開示ライセンスは,従来のSCSL(Sun Community Source License)に代わり,今後は用途別にJDL(Java Distribution License),JRL(Java Research License),JIUL(Java Internal Use License)の3本立てになる。Sun関係者に言わせれば,これは「完全なオープンソース化への布石」である。

 Sunの狙いは,Java技術をゆっくりとオープンソース化することで,同社の影響力を維持しつつ,Java技術の進化を促すことにある。

スクリプト言語サポートを追加

 今回のJavaOneでは,次バージョンのJava技術の方向性がある程度明らかになった(写真3)。興味深いのは,Javaとスクリプト言語を連携させる技術を標準仕様に取り込むことだ。組織的な開発作業には型に厳しく静的なコード解析が可能なJavaを使い,小さなプログラムを素早く書きたい時には動的な型を利用できるスクリプト言語を使う,といった使い分けが可能となる。

 次期版のJava SE6では,汎用のスクリプト言語連携機能(JSR-223)が加わる。またスクリプト言語処理系としてJavaScriptを搭載する。

 その次のJava SE7(コード名Dolphin)では,動的言語をサポートするためJava仮想マシンに手を加え,バイトコードを拡張する。また対話型に使えるJava風スクリプト言語BeanShell(JSR-274)を搭載する予定である。

(星 暁雄=日経BP Javaプロジェクト)