japan.internet.com
japan.internet.com メンバーID
Twitter
Facebook
RSS
ピックアップ
2006年3月10日 09:00

「Apache Harmony」プロジェクトはいかにして生まれたか――1

著者Maria Winslowオリジナル版を読む海外海外発
Harmony の発端

オープンソース Java インプリメンテーションである Harmony は現在、 Apache Software Foundation においてインキュベーターのステータスにある。

Harmony プロジェクトの使命は、 J2SE 5 の互換性のある独立したインプリメンテーションを Apache License v2 で作成し、 「独立したインプリメンテーションがランタイムコンポーネントを共有し、 ランタイムコンポーネントの独立した革新を可能にすべく、 コミュニティの開発によるモジュール型ランタイム(VM およびクラスライブラリ)アーキテクチャを作り出す」ことだ。

現在は、JBoss や Geronimo(オープンソースアプリケーションサーバー)から MyFaces や Spring(オープンソース Web アプリケーションフレームワーク)まで、 Java 関連では多数のオープンソース作業が進んでいるが、 Java 本体はまだプロプライエタリな部品のままだ。 もし Harmony が成功すれば、Sun の存在する意義はあるのだろうか?

同プロジェクトの発起人の1人である Dalibor Topic 氏にインタビューを試みて、 同プロジェクトの歴史と Java コミュニティにとっての重要性、 そして今後の計画について詳しく話してもらった。

LinuxPlanet: Harmony プロジェクトはそもそもどのようにして始まったのですか?

Dalibor Topic: 私自身は Apache Software Foundation のメンバーではなく、 Apache の初期の歴史をきちんとお話しすることはできませんので、 ここでは Apache Harmony と結びつくブリッジの構築が始まったころの様子について、 私見をお話しします。

私は、Kaffe.org バーチャルマシンのメンテナンスに携わっており、 GNU Classpath クラスライブラリのプロジェクトにも参加しています。 これらは、完全なフリーソフトウェア Java インプリメンテーション実現を目指して、 かなり以前から進められている姉妹プロジェクトです。

2003年には、Apache Software Foundation の Apache Ant などのプロジェクトが、 Kaffe.org バーチャルマシンの当時の最新バージョン上でうまく動くようにする作業に携わっていました。 これが、Kaffe と GNU Classpath の両プロジェクト統合の発端であり、 Kaffe、GNU Classpath、および Apache の開発者たちが出会ったきっかけです。

そして、複数の優れた Apache ソフトウェアを、 完全にフリーなスタック上で動かす必要性から、 Kaffe.org は徐々にそのクラスライブラリを GNU Classpath に切り替え始めたのです。

2004年後半になると、GNU Classpath の Mark Wielaard 氏と私が、 Java で書かれた人気の高いフリーソフトウェアの自動回帰テストで、 GNU Classpath と Kaffe の品質を向上させる方法を模索し始めました。 これがすぐに Apache Gump プロジェクトへとつながりました。

これは今も継続中の統合プロジェクトで、 人気の高いソフトウェアの動作を止めるようなバグが発生した場合、 公開版がそれを引きずらないよう通知を行うものです。 Apache を開発した Leo Simons と Stefano Mazzochi の両氏のおかげで、 Kaffe で Apache Gump を何とか設定し、 そこで回帰テスト環境を構築できるようになったのです。

このコラボレーション以降、ほかの Apache 開発者とも関係が深まり、 Apache Geronimo の Geir Magnusson Jr. 氏や、 Apache Axis プロジェクトの Davanum Srinivas 氏とも知り合うことができました。

2004年終わりにボストンで開催された Red Hat Free Runtimes サミットでは、 Free Software Foundation の gcj プロジェクトに携わる Tom Tromey 氏、 SouJava の Bruno Souza 氏、 Sun の Java Community Process を率いる Onno Kluyt 氏、 Geir、Mark、そして私が集まり、 Java のフリーソフトウェアインプリメンテーション実現方法を協議しました。

Sun Microsystems は、 自社のインプリメンテーションを公開することに全く関心を示していませんでしたが、 Onno は Sun に、 これまで存在していた法的障害を排除させるという約束をしてくれました。

今までは、 これがフリーソフトウェアのインプリメンテーションがプロプライエタリなランタイムとの互換性認定を受けることを不可能にしていたのです。 Geir は、J2EE のフリーソフトウェアインプリメンテーションである Apache の Geronimo を確実に実現すべく以前から Onno と協力していましたので、 Onno は フリーソフトウェア J2SE インプリメンテーションの認定実現にも興味があり、Bruno は JCP に関する経験が豊富でした。

2005年春には、Geir、Bruno、 そして私が CafeBrazil カンファレンスで再び協議を行いました。 われわれは、Apache Geronimo で具体化されたコンセプトと同じようなモジュール型の Java ランタイムとクラスライブラリの開発方法について議論しました。

そこで出たアイデアのひとつが、 ほかのモジュールを透過的に組み込めるよう、 VM のパーツに入念に定義されたインターフェイスとクラスライブラリを用意するというものでした。

そうすれば、企業や独立系の開発者が、 パーツの開発を巡って、 協力も競合もできるようになります。 この「協調競争」の概念は、 GNU Classpath (現在1.5 API の約90%を占める)でうまく機能し、 ランタイムコンポーネントとクラスライブラリで競合も協調もする20数種類以上のランタイムで利用されています。

Apache Software Foundation がこれまで JCP や Sun Microsystems にうまく対応してきたこと、 このようなプロジェクトが独立系の開発者やプロプライエタリな Java ランタイムを開発する企業の双方にとって魅力的なものとなる可能性、 そしてJava 開発者間における ASF の評判の高さを考慮すると、 ASF のインキュベーターステータスは適切な素晴らしい環境でした。

Apache 内部でさらに話を進めたところ、 Apache Harmony プロジェクトのインキュベーションが提案され、承認されました。 そこでわれわれは、 コントリビューションの法的枠組み作りに着手し、 Archie Cobbs 氏、IBM、 および Intel による最初の大きなコントリビューションを組み入れたのです。
プリンター用
記事を転送
この記事をクリップ!
japan.internet.com Androidアプリ
japan.internet.com Androidアプリ Android で japan.internet.com のニュースがどこでも、いつでも読めて、ニュースをTwitterに直接つぶやいたり、Facebookにコメントできる。 人気ニュースランキング、ブックマーク機能なども使えます。詳しくは こちらから
注目のトピックス
Copyright 2012 internet.com K.K. (Japan) All Rights Reserved.