Apache Harmony


Apache_Harmony

Apacheのハーモニーは引退しているオープンソース、フリーのJava実装によって開発され、Apache Software Foundationの。 2005年5月初旬に発表され、2006年10月25日、取締役会はApacheHarmonyをトップレベルのプロジェクトにすることを決議しました。Harmonyプロジェクトは、(2011年2月の時点で)J2SE 5.0で99 %、Java SE 6で97%の完全性を達成しました。 Androidのためものの、オペレーティングシステムは、歴史的に、調和の主要なユーザーとなっているアンドロイドヌガー、それはますますに依存しているのOpenJDKのライブラリ。 Apache Harmony 開発者
Apache Software Foundation
最終リリース .x  5.0M15 / 2010年9月15日; 11年前 (2010-09-15) 6.x 6.0M3 / 2010年9月15日; 11年前 (2010-09-15)
リポジトリ
svn .apache .org / repos / asf / harmony /
で書かれている C、Java オペレーティング・システム Linux、Windows タイプ
Java仮想マシン、Javaライブラリ
ライセンス
Apacheライセンス2.0
Webサイト
調和.apache .ORG
2011年10月29日、プロジェクトリーダーのTim Ellisonが、プロジェクトを廃止するかどうかの投票を開始しました。結果は20対2で賛成であり、プロジェクトは2011年11月16日に廃止されました。

コンテンツ
1 歴史
1.1 印心 1.2 SunからTCKライセンスを取得するのが難しい 1.3 AndroidSDKで使用 1.4 プロジェクトの終了
2 開発チーム
3 最終開発状況
3.1 建築 3.2 サポートプラットフォームとオペレーティングシステム 3.3 クラスライブラリのカバレッジ 3.43.4 ドキュメンテーション 3.5 ツール 3.6 仮想マシンのサポート
4 アプリケーションの状態
5 も参照してください
6 参考文献
7 外部リンク

歴史

印心
Harmonyプロジェクトは当初、フリーJava実装のすべての開発者を団結させるための取り組みとして考案されました。多くの開発者は、それが上記のプロジェクトであろうと予想 GNU、Apacheのおよび他のコミュニティ。GNU開発者は、最初の準備計画に招待され、参加しました。その後、Apacheは、HarmonyをApache License v2で利用できるようにしたかったため、GNUClasspathのコードを使用しないことを決定しました。次に、Apache開発者は必要なクラスを最初から作成し、ソフトウェア会社からの必要な大規模なコードの寄付を期待します。プロジェクト開始時のさまざまな誤解や、IBMなどの大手企業からの既存のコードの大量寄付の提案により、無料のJavaコミュニティの一部の人々は、プロジェクトをApacheプロジェクトではなく企業コンソーシアムと見なしました。
GNUClasspathプロジェクトとApacheHarmonyプロジェクト間の非互換性の主なポイントの1つは、互換性のないライセンスでした。リンク例外を伴うClasspathのGNU General PublicLicenseとHarmonyのApacheLicenseです。

SunからTCKライセンスを取得するのが難しい
参照:
テクノロジー互換性キット
2007年4月10日、Apache Software Foundationは、SunMicrosystemsのCEOであるJonathanSchwartzに、プロジェクトが実証するために必要なテストキットであるJava SE 5テクノロジー互換性キット(TCK)の許容可能なライセンスを取得できないことについて公開書簡を送信しました。Java SE5のSun仕様ライセンスで必要とされるJavaSE 5仕様との互換性ライセンスをASFに受け入れられないものにしているのは、ユーザーが利用できる「使用分野」の制限を通じて権利制限を課しているという事実です。ハーモニーの、Javaコミュニティプロセスルールに準拠し
Sunは同社のブログで答え それは下のJavaプラットフォームのオープンソース実装を作成することを意図していることGPLその優先順位を作ることだったということはなく、TCKを含むが、Javaプラットフォームは、にアクセス可能な、Linuxの下のコミュニティGPLなどできるだけ早く。
この回答はいくつかの反応を引き起こし、Sunがオープンレターに「十分にオープンな方法で」応答しなかったことを批判したか、Apache SoftwareFoundationでした。ASFは、特にオープニングクラスライブラリのタイムスケールを考慮して、Sunからより多くの外交で得られた可能性のあるものを積極的に要求するために賢明に行動しなかったと考える人もいます。
Sunは2007年5月にOpenJDKをリリースし、OpenJDKから実質的に派生したGPL実装のOpenJDKコンテキストでTCKを実行できるようにする特定のライセンスを提供しました。これは、GPLライセンスを受けていないApacheHarmonyには適用されません。2010年12月9日、Apache SoftwareFoundationはJavaCommunity Process実行委員会を辞任し、Harmonyプロジェクトで使用するためにApacheに受け入れられるライセンスを取得することの難しさに抗議しました。

AndroidSDKで使用
GoogleのAndroidプラットフォーム(バージョン4.4までのDalvik、およびその後継であるAndroidランタイム(ART))で使用される仮想マシンは、クラスライブラリのコアにHarmonyのサブセットを使用します。 しかしながら、のDalvikのに整列しないのJava SEやJavaのME クラスライブラリプロファイル(例えばためのJ2MEのクラス、AWTとSwingはサポートされていません)。
Android 7.0「Nougat」は、HarmonyをOpenJDKに置き換えました。

プロジェクトの終了
2010年10月11日、プロジェクトの最大の参加者であるIBMは、OpenJDKプロジェクトにOracleに参加することを決定し、その取り組みをHarmonyからOracleリファレンス実装に効果的にシフトしました。 IBMのLinuxおよびオープンソースの責任者であるBobSutorは、「IBMは開発努力をApache ProjectHarmonyからOpenJDKにシフトする」とブログに書いています。 2011年3月、IBMのTim Ellisonは、ハーモニーのプロジェクト管理委員長を辞任したと発表しました IBMの解任後、プロジェクトの活動レベルは大幅に低下しました。
2011年10月29日、プロジェクトリーダーのTim Ellisonによって、harmony-devメーリングリストでプロジェクトを終了するかどうかの投票が開始されました。11月3日の結果は引退を支持して20対2でした。 2011年11月16日、Apache SoftwareFoundationの取締役会はプロジェクトを終了するための動議を可決しました。ある監督、ラリー・ローゼンは、提案のメリットではなくタイミングに基づいて、「いいえ」の票を投じた。それ以外は全会一致でした。プロジェクトは2011年11月16日に廃止されました。

開発チーム
当初、Apache Harmonyは、いくつかの企業から大きなコードの貢献を受けました。開発に関する議論は、オープンなメーリングリストで行われました。その後、Apache Software Foundationのメンターは、開発プロセスを「Apacheの方法」 にさらに一致させることに多大な努力を払い、彼らの努力は成功したように見えました。

最終開発状況
Apache Harmonyは、2006年10月29日に公式のApacheプロジェクトに受け入れられました。

建築
Dynamic Runtime Layer仮想マシンは、次のコンポーネントで構成されています。
VMコア:そのサブコンポーネントとともに、ほとんどのJVM制御機能が集中しています。
ポーティングレイヤー:プラットフォーム固有の詳細を単一のインターフェイスの背後にある他のVMコンポーネントから隠し、Apache PortableRuntimeレイヤーに基づいています。
ガベージコレクタ:割り当てのJavaヒープメモリ内のオブジェクトと様々なアルゴリズムを使用して、到達不能オブジェクトを再利用
実行マネージャー:メソッドをコンパイルするための実行エンジンを選択し、プロファイルと動的再コンパイルロジックを処理します。
クラスライブラリ:Java標準ライブラリです。
オペレーティングシステムのスレッド化を処理するスレッドマネージャー
実行エンジン:次のもので構成されます。
メソッドコードのコンパイルと実行のためのジャストインタイムコンパイラ。
デバッグを容易にするためのインタプリタ。

サポートプラットフォームとオペレーティングシステム
このプロジェクトは、多くのプラットフォームやオペレーティングシステムでの開発を容易にするポータブルな実装を提供しました。主な焦点は、x86およびx86-64アーキテクチャ上のWindowsおよびLinuxオペレーティングシステムでした。
Windows 2000 Windows XP、Server 2003、Vista Linux RHEL、SLES、Debian、Gentoo、Fedora FreeBSD AIX Mac OS X
IA-32(Pentium III以上) 番号 はい はい 番号 該当なし 該当なし
x86-64(Intel 64、AMD64) 該当なし はい はい 該当なし 該当なし 該当なし
Itanium(IA64、IPF) 該当なし 番号 はい 該当なし 該当なし 該当なし
PowerPC32ビット 該当なし 該当なし 番号 該当なし 該当なし 該当なし
PowerPC64ビット 該当なし 該当なし 番号 該当なし 番号 該当なし
zSeries31ビット 該当なし 該当なし 番号 該当なし 該当なし 該当なし

クラスライブラリのカバレッジ
ソフトウェア会社からの期待される寄付は実際に受け取られました。Apacheのハーモニーは今含め、作業のコードが含まれているスイング、AWTおよびJavaの2Dによって寄与されたコードインテル。
2011年2月の時点で、HarmonyプロジェクトはJDK 5.0で99 %、Java SE 6で97%の完全性を達成しました。
Apache Harmonyプロジェクトの進行状況は、J2SE1.4およびJavaSE5.0に対して追跡できます。また、Java SE6.0用に開発中のHarmonyv6.0用のブランチが
Apache Harmonyの開発者は、いくつかの既存のフィールドテスト済みのオープンソースプロジェクトを統合して、目標を達成します(車輪の再発明ではありません)。これらのプロジェクトの多くは成熟していてよく知られており、ライブラリの他の部分は最初から作成する必要がありました。
これは、ApacheHarmonyプロジェクトで使用されている既存のオープンソースコンポーネントのリストです。それらのいくつかは、プロジェクトが開始される前に使用されていました。
成分 説明
ICU Unicodeサポートおよびソフトウェアの国際化とグローバリゼーションのための成熟したC / C ++およびJavaライブラリ
Apache Xalan XPath言語を実装するJava、C ++用のXSLTスタイルシートプロセッサ
Apache Xerces Java、C ++、Perl用のXMLパーサーライブラリ
Apacheポータブルランタイム クロスプラットフォームの抽象化ライブラリは、プラットフォームの独立性を提供します
Apache CXF 堅牢で高性能なWebサービスフレームワークは、SOAP、XML / HTTP、RESTful HTTP、CORBAなどのプロトコル上で機能します
BCEL バイナリJavaクラス、つまりバイトコードを分解、変更、および再構成するためのライブラリ
MX4J アプリケーション、システムオブジェクト、デバイス、およびサービス指向ネットワークを管理および監視するためのJava Management Extensions(JMX)ツール
VMマジック 直接メモリ操作などを追加することにより、Javaでのシステムプログラミングを容易にするJava言語の拡張機能のセット。
弾む城 JavaおよびC#用の軽量暗号化のライブラリコレクション
ANTLR 言語ツールは、多くのターゲット言語のアクションを含む文法記述から認識機能、インタプリタ、コンパイラ、および翻訳者を構築するためのフレームワークを提供します

ドキュメンテーション
ハーモニーは、代替のフリーJava実装ほど文書化されたとえば、GNU Classpathでは、中央CORBAクラス(ORB)のすべてのメソッドに、標準の抽象APIクラスと実装の両方に説明コメントがにおいて、陽子のプロジェクト、ハーモニーによって使用される、最も方法標準宣言の両方のとクラスを実装する 2006年10月の終わりに文書化した。また、GNUクラスパスは、両方の新旧CORBAをサポート機能(Sunの実装と同じ)。ハーモニーは、別の方法で、古い標準(ORB.connect(Object))の中心的な方法を完全に実装しないままにしました。

ツール
Javaプラットフォームの完全な実装には、Javaソースコードをバイトコードに変換するコンパイラ、JARファイルを管理するプログラム、デバッガ、アプレットビューアおよびWebブラウザプラグインなども必要です。Harmonyには、コンパイラ、appletviewer、jarsigner、javah、javap、keytool、policytool、およびunpack200が

仮想マシンのサポート
Harmonyには、Harmony Class Libraryを実行する7つの仮想マシンの実装があり、それらはすべて外部グループからの寄付でした。
JCVMの インタプリタに基づくJCHarmony Edition VM「JCHEVM」は、作者であるArchieCobbsによって寄稿されました。
BootJVMは、DanielLydickによって提供された単純なブートストラップ仮想マシンです。
Sable Research Groupの著者によって寄稿された、高度なポータブルインタプリタであるSableVM。および動的ランタイムレイヤー仮想マシン。
DRLVM、Intelによって提供されたジャストインタイムコンパイラ。
BEAは、ApacheHarmonyクラスライブラリを実行するJRockitVMの評価バージョンが利用可能になったことを発表しました。
JikesRVM、ApacheHarmonyクラスライブラリを使用するオープンソースのメタサーキュラーJVM。
Ja.NET SEは、.NET FrameworkCLRで実行されるJava5 JDK(クラスライブラリ、ツールなど)を提供するオープンソースプロジェクトです。Ja.NET SEは、ApacheHarmonyクラスライブラリに基づいています。
2006年11月の終わりには、これらの仮想マシンが提供する言語サポートが不完全でまだあった、とビルド命令が使用することをお勧めIBMの独自のクラスライブラリのテストスイートを実行する代わりにJ9を。ただし、これはもう必要ありません(2007年7月現在)。
プロジェクトの残りの部分については、DRLVM仮想マシンの開発が停滞しています(2011年5月現在)。

アプリケーションの状態
Harmonyは、その構想以来、重要なJavaアプリケーションを実行する能力が向上しました。 2007年7月の時点で、サポートされているアプリケーションは次のとおりです。
Eclipse:HarmonyのDRLVM +クラスライブラリでの36000リファレンス実装(RI)テストパスの99.3%。
Apache Tomcat:RIテストの100%に合格します。
JUnit:RIテストの100%に合格します。
Apache Ant:RIテストの97%が合格です。
Apache Derby、Apache Axis、Log4j、Apache Velocity、Apache Cocoon、jEdit、Apache Commonsなど、他のアプリケーションは高い成功率で合格します。
ただし、Harmonyの不完全なライブラリにより、他のいくつかのアプリケーションを起動できませんでした。
ArgoUML:Javaアプレットの実装が必要なため、Harmonyではまだ利用できませんでした。
ApacheGeronimoはApacheHarmonyで実行されますが、いくつかの問題と回避策が
セキュリティクラスが実装されていないため、Vuze(以前はAzureus)。

も参照してください
image"
 無料のオープンソースソフトウェアポータル
icon
 コンピュータプログラミングポータル
GNUクラスパス
Java仮想マシンのリスト
フリーJava実装
Javaクラスライブラリ OpenJDK アイスティー

参考文献
^ 「プロジェクト立ち上げからの元のFAQ質問」。harmony.apache.org 。ライセンスでオープンソースの実装が許可されているJavaSEの最初のバージョンであるJavaSE 5から始めますが、Java SE6以降のバージョンでは続行します。
^ “”クラスライブラリコンポーネントのステータス””。harmony.apache.org 。
^ アマデオ、ロン「AndroidNはOpenJDKに切り替わり、GoogleはOracleにGPLによって保護されていることを伝えます」。ArsTechnica。コンデナスト。
^ エリソン、ティム「ApacheHarmonyを屋根裏部屋に移動(更新)」。org.apache.harmony.dev。 代替URL
^ エリソン、ティム「ボードは屋根裏部屋の解決を受け入れました」。org.apache.harmony.dev。 代替URL
^ 「(Apache)Harmonyの終わり」。H. 2011年11月4日。
^ Mark Wielaard””調和!”” 。Apacheは、完全に無料のj2se実装に関する議論の提案を作成しました。彼らはそれを「ハーモニー」と呼んでいます。これは(現時点では)コードに関するものではなく、そのような獣に到達するための方向性を見つけることに関するものです。Dalibor、Tom、Jeroenと私は、その議論で彼らを助け、おそらくそれのために良いアーキテクチャをセットアップする方法を彼らに示すように頼まれました。
^ Geir Magnusson Jr.「フリーJava実装の提案」。Apache。
^ Mark Wielaard「無料のJavaに向けて」。LWN.net。これはすべて、Intelから提供されたコードが利用可能になったにもかかわらず、Harmonyをサポートする元のフリーソフトウェアプロジェクトと現在ApacheHarmonyとして知られているプロジェクトとの間に実際的な協力関係がないことを意味します。これらすべてにより、一部の人々は、ハーモニーを完全なコミュニティプロジェクトではなく、ASFプロジェクトを装った企業コンソーシアムと考えるようになりました。
^ 「SunMicrosystemsへの公開書簡-JCK」。apache.org。
^ ASFによると、1)仕様リードは、そのような独立した実装を作成または配布するライセンシーの権利を制限または制限する契約条件または契約を課すことはできません(セクション5.C.III)、および2)仕様リードは仕様の互換性のある実装に対して、必要なすべてのIPをロイヤリティフリーでライセンス供与します(セクション5.B)。
^ 「記録上」。
^ 「SuntoApache:「オープンソースプロセスは旅です」-JavaIoT」。
^ 「開いた太陽からの沈黙」。イアン・スケレット。
^ 「マークJ.ウィーラード」。
^ ギルバート、デイブ「Apacheがその公開書簡を後悔する5つの理由」。
^ 「OpenJDKコミュニティTCKライセンス契約V1.1」(PDF)。サンマイクロシステムズ。ライセンシーの実装が実質的にOpenJDKコードから派生していることを条件とし、そのような実装がサードパーティに配布されている、または配布される予定の場合、SunはGPLライセンスに基づいて配布され、Sunの知的財産の範囲でライセンシーに付与します。 TCKの所有権。これは、ライセンシーの実装を開発およびテストする目的でのみTCKを内部的に使用するための、世界規模の個人的、非独占的、譲渡不可、制限付きライセンスです。
^ 「ASFはJCP実行委員会を辞任する」。Apache SoftwareFoundation。
^ 「ApacheはOracleの乱用に抗議してJavaガバナンスグループを終了します」。ArsTechnica。
^ 「GoogleのAndroidSDKは、JavaLiteとApacheHarmonを優先してJavaMEをバイパスします」。infoq.com。JavaSEまたはJavaMEのフルバージョンを提供する代わりに、Googleは2つの面で分岐しています。まず、コアJavaパッケージの限定されたサブセットが提供されます。(…)このルートを進むことにより、Androidは、開発言語としてJavaを使用しているが、完全なJDKをサポートしていない別のGoogleプロジェクトGWTの足跡をたどっています。
^ 「パッケージインデックス」。オープンハンドセットアライアンス。
^ 「OracleとIBMが協力してOpenJDKを通じてJavaイノベーションを加速する」。オラクル株式会社。
^ ライアンポール。「Java戦争:OracleがApache Harmonyを回避するため、IBMはOpenJDKに参加します」。ArsTechnica。
^ ボブスーター。「IBMはOpenJDKコミュニティに参加し、オープンソースのJavaの取り組みを統合するのに役立ちます」。IBMは、開発努力をApache ProjectHarmonyからOpenJDKにシフトします。同じことをしたい他の人のために、私たちは可能な限り簡単に移行できるように協力します。IBMは、他のApacheプロジェクトにも引き続き積極的に関与します。
^ ティムエリソン「Harmonyプロジェクトの再起動」。
^ 「ApacheHarmonyの未来は何ですか?」。infoq.com。
^ 「メーリングリストアーカイブ:[email protected]」。apache.org 。
^ 「取締役会議事録の」。Apache SoftwareFoundation。ラリーは、彼が退職に反対していないことに注意することを望みます、彼は単にメッセージングに取り組むためにより多くの時間を持っていることを好んだでしょう。
^ レオシモンズ「私たちはすべての開発がここで行われることを望んでいます」。
^ 「アパッチウェイ」。
^ ハーモニードキュメンテーションチーム。「ApacheHarmony-サポートされているプラ​​ットフォーム」。harmony.apache.org。
^ 「JDK_5.0とHarmony_5.0の比較結果」。
^ http://cvs.savannah.gnu.org/viewcvs/*checkout*/classpath/org/omg/CORBA/ORB.java?rev=1.2.2.12&root=classpath
^ http://cvs.savannah.gnu.org/viewcvs/*checkout*/classpath/gnu/CORBA/OrbFunctional.java?rev=1.6&root=classpath
^ 「ハーモニーは最新のヨーコジャーを使用しています…」 2006年9月27日。
^ http://svn.apache.org/repos/asf/incubator/yoko/trunk/yoko-spec-corba/src/main/java/org/omg/CORBA/ORB.java
^ http://svn.apache.org/repos/asf/incubator/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBCORBA/ORB_impl.java
^ 「ApacheHarmony-プロジェクトロードマップ」。
^ 「ハーモニークラスライブラリ用のJRockitH27.2.1がリリースされました」。
^ 「JikesRVM3.0 + Apache Harmonyを発表しました!」。
^ 「JanetDev」。
^ 「Subversionコミット」。harmony.apache.org 。
^ “”Application_Status””。apache.org。
^ 「アーカイブされたコピー」。
> ^ 「Apache_Tomcat」。apache.org。
^ 「JUnit」。apache.org。
^ “”Apache_Ant””。apache.org。
^ 「ApacheHarmony」。apache.org。

外部リンク
公式サイト
image   Apache Harmony FAQ
ApacheHarmonyソースコードリポジトリ
JavaOne2006オンラインハーモニーセッション
JavaOne2007オンラインハーモニーセッション
ApacheのハーモニーJavaPolis 2006でのGeir Magnusson氏ジュニアによって
Javaオープンソースの議論-議論の良い要約
Apache Harmonyの未来は何ですか?
ApacheHarmonyがプロジェクトマネージャーを失う
image