【レポート】

JavaOne 2006 - オープンソースのJava実装「Apache Harmony」に期待

    杉山貴章  [2006/05/20]

    米国San FranciscoではSun Microsystemsの主催で16日(現地時間)より4日間の日程で2006 JavaOne Conferenceが開催されており、会場となっているMoscone Centerには世界各国から多くのJava Geekが詰めかけている。

    オープンソース版のJava EE 5実装を目指すApache HarmonyプロジェクトがApache Incubatorとして承認されたのは2005年5月18日のことである。それから丁度1年が経過し、世界中のJava技術者を沸かせたプロジェクトはどのように発展してきただろうか。18日に開かれたテクニカルセッション「Apache Harmony's Approach to Implementing Java Platform Standard Edition」において、Tim Ellison氏とGeir Magnusson Jr.氏がApache Harmonyプロジェクトの最新の動向と、今後の展望などについて語った。

    図.1 Tim Ellison氏

    図.2 Geir Magnusson Jr.氏

    セッションではまずMagnusson Jr.氏がApache Harmonyプロジェクトの概要を紹介した。Apache Harmonyプロジェクトの主な目的は次の3点である。

    • Java SE 5.0に完全に互換したオープンソースのJavaプラットフォーム実装を作成する
    • コミュニティによる開発を実現するためのモジュールアーキテクチャを作成する
    • エコシステムの知的所有権を確保する

    プロジェクトの開始以来、多くの企業や団体がJava SEのオープンソース実装に対する賛同を示し、協力を申し出てきた。例えばIBMがコア・クラスやクラスライブラリ/VMのインタフェース、Eclipseプラグイン等の実装への協力を申し出ているほか、IBM developerworksは評価ライセンスでのJVMの提供に同意している。また、Intelはセキュリティや認証系、正規表現やRMIなどの実装に協力すると表明している。オープンソース団体ではクラスライブラリの実装を行っているGNU Classpathプロジェクトが、Apache Harmonyとの提携を開始している。その他多くの協力を得た結果、現在はプロジェクトの大部分において実際に動作するコードが集まっているという。

    Apache Harmonyのアーキテクチャ構成に関する解説が行われた。図.3はその概要を示したスライドである。

    図.3

    まず、各VM毎にカーネルクラスを用意し、クラスライブラリとVM間の差異を吸収する。また、それとは別にVMへのインタフェースとなる関数をC言語で実装する。その他標準JNI(Java Native Interface)も実装する。クラスライブラリはこれらの上で動作することになる。

    Apache Harmonyのアーキテクチャには、もうひとつ重要な特徴がある。それは、Java SEプラットフォームの実装を細かいモジュール単位に分割している点である。例えばMathやPrefs、XML、Loggingなど、全て互いに独立したモジュールとして実装されている。

    図.4

    このようにすることでモジュール単位での実装の交換が可能になり、Java実行環境の公開時に任意のモジュールセットを選ぶことができるようになる。JVMにはこれらをうまく統合するためのインタフェースを用意する。この仕組みは、開発に参加する企業や団体、開発者が、ある部分では実装を統合し、またある部分では競合する個別の実装を提供するといった参加形態を可能にするという。

    続いて、セッションではいくつかのアプリケーションをApache Harmony上で動作させるデモが行われた。図.5はRSSやAtomに対応したニュースリーダ・アプリケーションである。図.6はApache TomcatをHarmony上で動作させた様子で、図.7はEclipseをHarmony上で動作させた様子である。図.8はEclipseの一部を拡大した写真だが、Harmonyのモジュールを個別に読み込んでいる様子がわかる。

    図.5

    図.6

    図.7

    図.8

    最後に、Apache Harmonyプロジェクトの今後の展開に関する言及があった。それによると、まずはクラスライブラリのモジュール機構のためにOSGiのランタイム・フレームワークを実装する予定だとのことである。これをブートストラップ・クラスローダに適用することで適切なモジュール機構を実現する。

    セッションを聴講して、Apache Harmonyの実装はかなり現実的な部分まで達していると感じた。まだ完成には到っていないながら、今後の発展を強く期待させる発表だった。

    なお、このようなオープンソース活動が活発になる一方で、Sun Microsystemsは徐々にではあるがJavaのライセンスに関する態度を軟化させてきており、本JavaOneに合わせて発表された新しいライセンスでは、GNU/LinuxやOpenSolarisにおけるJava SE 5の再配布を許可する条項が含まれている。そうなると、もしSunが将来的にJavaをオープンソースにしたらApache Harmonyプロジェクトの活動がどうなるのかといった疑問が湧く。これについて同プロジェクトは以前より態度を明らかにしており、もしそうなった場合は公開されたコードをよく精査して再利用できる部分を取り込み、Harmonyをより充実させていくとしている。

    図.9

    関連記事

    関連サイト

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン