今,ソフトウエア開発技術のイノベーションは,オープンソースの世界から生まれてくる──。2005年のJavaOneカンファレンス(6月26日~30日,米サンフランシスコ市で開催)では,このことを痛感した。Java技術の発展や,ソフトウエア・ビジネスの成功も,オープンソースのイノベーションをいかに取り入れるかにかかっている。商用ソフトウエア・ベンダーがオープンソース・ソフトウエアをいかに重視しているか。まずは,そこから見ていこう。

“アンチEJB派”がBEAの基調講演に登壇

 オープンソースの実力が上がってきたことを象徴していたのが,米BEA Systems社の基調講演に,オープンソースのDI(Dependency Injection:解説記事)コンテナSpring Frameworkの作者であるロッド・ジョンソン氏が登壇したことだ。BEAのWebLogic Serverといえば,EJB(Enterprise JavaBeans)を最も早い段階で実装したアプリケーション・サーバーの有力製品。一方,ロッド・ジョンソン氏といえば,“J2EE Development without EJB”という著書があるぐらいで,アンチEJB派の筆頭である。

 ロッド・ジョンソン氏が語った言葉が「J2EEのイノベーションは,オープンソースの世界から登場してくる」だ。実際,DI(依存性注入)の概念は,Spring Frameworkなどオープンソースのフレームワークとして実現されたことから広まった。

 BEAのCTO(最高技術責任者)であるマーク・カージス氏は,講演中「POJO(Plain Old Java Object)ベースの開発,Dependency Injection,メタデータ,そしてAOP(アスペクト指向プログラミング)が重要」と説いた。

 POJOベースの開発とは,ロッド・ジョンソン氏の論調そのものだ。実行環境が提供する膨大なAPI群を駆使したプログラミングをするのではなく,ソフトウエア部品をPOJO,つまり特別なAPIへの依存性を含まないJavaオブジェクトとして作っておく。必要な機能呼び出しはDIコンテナにより「注入」する。このような設計思想に基づくプログラムは,書きやすく,メンテナンスしやすく,変化に強いものとなる。

 商用J2EEアプリケーション・サーバー・ベンダーの第一人者といえるBEAは,オープンソースから生まれたイノベーションに背を向けるのではなく,同じ土俵で一緒に戦おうとしている。Spring FrameworkやHibernate,Strutsといったオープンソース・ソフトウエアの組み合わせで開発したソフトウエアを,WebLogicの上にデプロイ(配備)して使うというやり方を提案し,実際にサポートもしていく。

オープンソース対応を進める製品ベンダー

 他のJ2EEベンダーも,オープンソース対応の強化を急いでいる。

 オープンソースへの取り組みが早かったのは,米IBMである。同社は50件以上のオープンソース・プロジェクトを支援していると発表している。最近の動きに限って見ても,この5月10日にApache Geronimo(フルセットのJ2EEアプリケーション・サーバーをオープンソースで開発するプロジェクト)の開発者を抱えるベンチャー企業Gluecode Software社を買収した。J2EE市場の中でオープンソースの占める割合が増えると予想されているが,その対策と見られる。また,開発者の間で根強い支持を得ているEclipseは,IBM製品のオープンソース化から始まったプロジェクトである。

 米Oracleは,EJB3.0のPersistence API(EJB3.0仕様の一部である永続化機能だけを切り離し,O/Rマッパー仕様として利用できるようにした)を,同社のO/RマッパーTopLinkの上で実装し,オープンソースとしてProject GlassFish(後述)に提供すると発表。また,JSF(JavaServer Faces)のオープンソース実装MyFacesのプロジェクトに参加した。

 米Sun Microsystems社は,同社のアプリケーション・サーバー製品Sun Java System Application Server Platform Edition9.0(次世代のJava EE5に基づく)をオープンソースにし,Project GlassFishとして公開した。Java技術のコアであるJava SE(J2SEから名称変更)についても,ソースコード開示ライセンスをより制限が緩いものに置き換え,来るべきオープンソース化の布石を打っている。

 各社の取り組みはそれぞれ異なるが,オープンソース・ソフトウエアの実力が向上し,普及が進んでいく中で,どのように自社のソフトウエア製品ビジネスを成立させるか,各社は知恵を絞っている。確かなことは,J2EE分野では,商用製品ベンダーがオープンソースを無視したり,対立したりする姿勢はもはや通用しないということだ。

 オープンソースは,商用ソフトウエアの代用品なのではない。イノベーションを主導する存在となっているのだ。

オープンソースの発想を経営に持ち込む

 ここで,次のような疑問を持つ方もいるかもしれない。「商用ソフトウエアを有償で売るビジネスは,今後縮小してしまうのか?」。はっきり言えば,市場が成長せずゼロサム・ゲームである場合にはそうなる。J2EE分野ではオープンソース製品を利用する比率が上がるだろう,との予測が一般的だからだ。

 では,オープンソースが幅を効かせつつあるJ2EEの世界でビジネスを成長させるには,何をすればいいのか(注1)。そのヒントが,JavaOneにあった。

注1:一般的な回答としては,ソフトウエア製品の販売から,コンサルティング,システム構築支援,運用支援などのサービスへとビジネスの比重を移すこと,となるだろう。またBEAのように,オープンソース製品を実行させる「エンジン」として自社ソフトウエア製品を売り込むという方法もある。本記事では,JavaOneで見聞きした「別の次元の回答」を記した。