Apache Harmony

Apache Harmonyの最新ニュースをまとめて検索!

Apache Harmony
開発元 Apacheソフトウェア財団
最新版 5.0 M9 / 2009年4月15日
プラットフォーム クロスプラットフォーム
種別 Java SE
ライセンス Apacheライセンス
公式サイト http://harmony.apache.org/
  

Apache HarmonyオープンソースなフリーなJava実装である。Java SE 5.0を元にしている。Apacheライセンス Version 2 にて提供される。2005年5月に開始され、2006年10月にはApache財団のトップレベルプロジェクトとなった。

目次

[編集] 歴史

[編集] 立ち上げ

HarmonyプロジェクトはフリーなJava実装の開発者たちを統括する動きと捉えられていた。多くの開発者はこの動きがApache, GNU等のプロジェクトとして纏まると期待していた。まずGNU開発者がプロジェクトの立ち上げ準備に関わったが、後にHarmonyではGNU Classpathのコードは利用しないと決定した。ライセンス互換上の問題で、Harmonyと他プロジェクト間でのコードの共有が難しくなるという問題があったためである。Apache開発者たちは必要なクラスをスクラッチから書き始め、またソフトウエア会社からコードの寄贈を募集した。

[編集] スクラッチから書き直す意味

GNU ClasspathとApacheプロジェクトが袂を分かったのは、GPLApacheライセンスの違いにある。多くの組織や個人がこの相違点を取り上げ、派生物には公開義務が無いApacheライセンスの適用を望むとの意見が寄せられた。GNU Classpathは独占的ソフトウエアとのリンクは可能だが、GNU Classpath自身の非公開派生物を作成するのは法的に困難なためである。

しかし、いくらかのフリーソフトエア開発者は、これらのライセンスやコミュニティ哲学の違いは別個に実装を行うまでは違わず、妥協点を探せなくはないと頻繁に否定的な意見を述べている。だが、時折現れるこういったプロジェクトへの反対的な提案は幅広い支持を得ていない。フリーソフトウエア支持者は以下の単純な言葉でこれを切って捨てている。"more free software is not a problem(フリーソフトウエアが多いことは問題ではない)".

[編集] SunのTCKライセンスを巡る問題

2007年4月10日、Apache財団(ASF)はSun MicrosystemsのCEO、Jonathan Schwartz宛にJava SE 5 テクノロジ互換キット (TCK)についての公開書簡を送った[1]。TCKのライセンスはHarmonyユーザに利用範囲の制限を課すものでJCPのルールに反しているから、ASFにとって承諾しがたいものであると主張している。

  • テクノロジ互換キット(Technology Compatibility Kit)は、Java SE5仕様に実装が準拠しているかを確認するためのテストキットで、SunがJavaの仕様ライセンス内で規定している。

Sunは企業のブログ上で回答し、TCKを含めJavaのオープンソース実装プラットフォームをGPLで提供したいが、まずはGNU/Linuxコミュニティに対してJavaプラットフォームのGPL提供を優先するとした。 このやりとりは一部からオープンなやり方ではないとSunやASFは批評を受けたが、結果的にはクラスライブラリ開示のスケジュールを考えると、より多くの提供をSunから受けることを目的にASFは強気に振舞ったのだと考える人もいた。

[編集] 開発チーム

立ち上がるとすぐに、プロジェクトは既に開発に着手していたいくつかの会社から大きなコード寄贈を受けて動き出した。しかしながらメーリングリスト上での全般的な議論は常に開かれていた。

その後、プロジェクトにはASF管理者により[2]アパッチ流の開発方式[3]を取り入れたことにより、大きく成功したといえるだろう。2006年11月時点、プロジェクトチームのコミッターは16人の開発者及び、IBMインテルに属する16の開発チームで構成されている[4]

[編集] 最近の開発状況

2006年10月、Apache HarmonyプロジェクトはApache財団の公式プロジェクト(Top level Projects)に昇格された。

[編集] ライブラリ実装

当初期待したソフトウエア会社からのコード寄贈は実際となっている。現在Apache Harmonyの作業コードにはIntelより寄贈された Swing, AWT , Java 2D のコードを含んでいる。

クラスの実装については、GNU Classpathが2007年7月時点で100%に達する見込みであるのに対してHarmonyは遅れているが、2006年のJavaOneカンファレンスでは動作する状態である事が示されている。

また、HarmonyのテストスィートはGNU Classpathと比べてより厳密なものとなっている。(2006年10月の時点で、GNU Classpathは20000 tests [2]、Harmonyは 50000 [3] である)

Harmonyプロジェクトの進捗は J2SE 1.4[5] と Java SE 5.0.[6]を追っている状態であり、Harmony v6.0 は java SE 6.0[4] の別ブランチと見なす事ができる。

[編集] 文書化

現在のところ Harmony は他のフリーの Java 実装よりドキュメント化が進んでいない。 たとえば、GNU Classpath では中心的な CORBA のクラス (ORB) の各メソッドに関して、 抽象 API クラス [5] と実装クラス [6] について説明のコメントが付いている。Harmony で使用されている [7] Yoko プロジェクトでは、大半のメソッドについて 標準の宣言[8] および実装クラス [9] のドキュメント化がされていない(2006年10月時点)。また、GNU Classpath は、(Sunの実装同様) CORBA の機能について古いものと現在のものの両方をサポートしている。Harmony では、古い規格に基づく代表的なメソッド(ORB.connect(Object)) が全く実装されていないままである。

[編集] ツール

Java プラットフォームの完全な実装には、たとえば Java ソースコードをバイトコードに変換するコンパイラJarファイルを管理するプログラム、デバッガアプレットビューアー、ウェブブラウザプラグインなどが必要である。Harmony は現在コンパイラのみを備えている[10].。

[編集] 仮想マシンのサポート

Harmony は現在、いずれも外部からの寄付による4種類の Java VM 実装をサポートしている。

  • JC Harmony Edition VM, "JCHEVM," JCVM's インタプリタ に基づいており、Archie Cobbs によって寄贈された。
  • BootJVM, シンプルなブートストラップ可能な仮想マシンで、Daniel Lydick によって寄贈された。
  • SableVM は先進的でポータブルなインタプリタで、Sable Research Group および Dynamic Runtime Layer Virtual Machine の作者達によって寄贈された。
  • BEA は Apache Harmony クラスライブラリが動作する JRockit VM の評価版が利用できることを発表している[7]

2006 年 11 月の時点でこれらの仮想マシンによる言語のサポートは完全ではなかったため、クラスライブラリのテスト[11]を実行するためのビルドの手順として IBMプロプライエタリ の VM である J9 を使うよう推奨されていたが、2007年7月時点では J9 は不要となっている。

DRLVM 仮想マシンの開発が積極的に進んでおり (2006年7月時点)、進展が期待できる。

[編集] 実行可能なアプリケーションの状況

構想の時点から、Harmnoy は重要な Java アプリケーション(リンク参照)を実行する能力を着実に向上させてきた。2007年7月の時でたとえば下記のアプリケーションがサポートされている。

しかし、Harmony のライブラリ実装が不完全であるため、実行できないアプリケーションもある。

  • ArgoUML: Harmony では利用できない Javaアプレット の実装を必要とする。
  • Apache Geronimo は、若干の修正により(問題もあるが)Apache Harmony 上で動作する[8]
  • Azureus セキュリティのクラスが未実装である。

[編集] 関連項目

  • GNU Classpath
  • List of Java virtual machines
  • Free Java implementations
  • Java Class Library

[編集] 参照

[編集] 外部リンク

最終更新 2009年7月13日 (月) 07:24 (日時は個人設定で未設定ならばUTC)。
【Apache Harmony】変更履歴

ご利用上の注意