Apache Harmony

редактировать

Apache Harmony
Apache Harmony Logo.png
Разработчик (и) Apache Software Foundation
Окончательный выпуск
5.x5.0M15 / 15 сентября 2010 г.; 10 лет назад (15.09.2010)
6.x6.0M3 / 15 сентября 2010 г.; 10 лет назад (15.09.2010)
Репозиторий Измените это в Викиданных
Написано наC, Java
Операционная система Windows, Linux
Тип Виртуальная машина Java, Java Библиотека
Лицензия Лицензия Apache 2.0
Веб-сайтharmony.apache.org

Apache Harmony - это устаревшая с открытым исходным кодом, бесплатная реализация Java, разработанная Фонд программного обеспечения Apache. Об этом было объявлено в начале мая 2005 года, а 25 октября 2006 года Совет директоров проголосовал за превращение Apache Harmony в проект высшего уровня. Проект Harmony достиг (по состоянию на февраль 2011 г.) 99% полноты для J2SE 5.0 и 97% для Java SE 6. Операционная система Android исторически была основным пользователем Harmony, хотя, начиная с Android Nougat, она все больше полагается на библиотеки OpenJDK.

Октябрь 29 ноября 2011 года руководитель проекта Тим Эллисон начал голосование по вопросу о прекращении проекта. Результат был 20 против 2, и проект был закрыт 16 ноября 2011 года.

Содержание

  • 1 История
    • 1.1 Инициирование
    • 1.2 Несовместимость с GNU Classpath
    • 1.3 Проблемы с получением Лицензия TCK от Sun
    • 1.4 Использование в Android SDK
    • 1.5 Конец проекта
  • 2 Команда разработчиков
  • 3 Последний статус разработки
    • 3.1 Архитектура
    • 3.2 Платформа поддержки и операционная система
    • 3.3 Охват библиотеки классов
    • 3.4 Документация
    • 3.5 Инструменты
    • 3.6 Поддержка виртуальных машин
  • 4 Состояние приложения
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки

История

Инициирование

Проект Harmony изначально задумывался как попытка объединить всех разработчиков бесплатных реализаций Java. Многие разработчики ожидали, что это будет проект выше GNU, Apache и других сообществ. Разработчики GNU были приглашены и участвовали во время начального подготовительного планирования.

Несовместимость с GNU Classpath

Несмотря на впечатление, произведенное подготовительным планированием, было решено не использовать код из GNU Classpath, и что Harmony будет использовать несовместимую лицензию; тем самым блокируя сотрудничество между Harmony и существующими бесплатными проектами Java. Разработчики Apache тогда напишут необходимые классы с нуля и будут ожидать необходимых крупных пожертвований кода от компаний-разработчиков программного обеспечения. Различные недоразумения в начале проекта, а также тот факт, что крупные компании, такие как IBM, предложили предоставить большой объем существующего кода, вызвали некоторую путаницу в сообществе свободной Java в отношении реальных целей проекта.

Одним из основных моментов несовместимости между проектами GNU Classpath и Apache Harmony были несовместимые лицензии: Стандартная общественная лицензия GNU Classpath с исключением связи по сравнению с лицензией Apache от Harmony..

Проблемы с получением лицензии TCK от Sun

10 апреля 2007 года Apache Software Foundation отправил открытое письмо в Sun Microsystems Генеральный директор, Джонатан Шварц в связи с невозможностью получить приемлемую лицензию на Java SE 5 Technology Compatibility Kit (TCK), тестовый комплект, необходимый для проект для демонстрации совместимости со спецификацией Java SE 5, как того требует лицензия на спецификацию Sun для Java SE 5. Wha t делает лицензию неприемлемой для ASF, потому что она налагает ограничения прав через ограничения на «область использования», доступную для пользователей Harmony, что не соответствует правилам Java Community Process.

Sun ответила в блоге компании, что намеревается создать реализацию платформы Java с открытым исходным кодом под GPL, включая TCK, но их приоритетом было сделать Платформа Java доступна сообществу GNU / Linux под GPL как можно быстрее.

Этот ответ вызвал определенную реакцию: либо критику Sun за то, что он не ответил «достаточно открыто» на открытое письмо, либо, скорее, Apache Software Foundation ; некоторые считают, что ASF поступил неразумно, агрессивно требуя от Sun чего-то, что они могли бы получить с большей дипломатичностью, особенно с учетом временных рамок библиотеки начальных классов.

Sun выпустила OpenJDK в мае 2007 года, вместе с конкретной лицензией, позволяющей запускать TCK в контексте OpenJDK для любой реализации GPL, в значительной степени основанной на OpenJDK. Это не распространяется на Apache Harmony, на который не распространяется GPL. 9 декабря 2010 г. Apache Software Foundation вышла из состава Исполнительного комитета процесса сообщества Java в знак протеста против трудностей с получением лицензии, приемлемой для Apache для использования с проектом Harmony.

Использование в Android SDK

Виртуальная машина, которая используется на платформе Google Android (Dalvik до версии 4.4 и его преемнике, Android Runtime (ART)) использует подмножество Harmony в качестве ядра своей Библиотеки классов. Однако Dalvik не выравнивается ни с Java SE, ни с профилями Java ME Class Library (например, J2ME классы, AWT и Swing не поддерживаются).

Android 7.0 "Nougat" заменил Harmony на OpenJDK.

Конец проекта

11 октября 2010 г. IBM, безусловно, самый крупный участник в проекте решил присоединиться к Oracle в проекте OpenJDK, эффективно переключив свои усилия с Harmony на эталонную реализацию Oracle. Боб Сутор, глава IBM по Linux и ПО с открытым исходным кодом, написал в блоге, что «IBM перенесет свои усилия по разработке с Apache Project Harmony на OpenJDK». В марте 2011 года Тим Эллисон из IBM объявил, что ушел с поста председателя по управлению проектами в Harmony. После выхода IBM уровень активности проекта значительно снизился.

29 октября 2011 года был проведен опрос был начат в списке рассылки harmony-dev руководителем проекта Тимом Эллисоном о том, следует ли закрыть проект. Результат 3 ноября был 20: 2 в пользу выхода на пенсию. 16 ноября 2011 года совет директоров Apache Software Foundation принял предложение о прекращении проекта. Один директор, Ларри Розен, проголосовал «против», основываясь на времени, а не на достоинствах предложения; в остальном он был единодушен. Проект был закрыт 16 ноября 2011 года.

Команда разработчиков

Вначале Apache Harmony получила несколько крупных взносов кода от нескольких компаний. Обсуждения разработки проходили в открытых списках рассылки. Позже наставники фонда Apache Software приложили много усилий для того, чтобы привести процесс разработки в соответствие с «подходом Apache», и казалось, что их усилия увенчались успехом.

Последний статус разработки

Apache Harmony был принят в число официальных проектов Apache 29 октября 2006 г.

Архитектура

Виртуальная машина Dynamic Runtime Layer состоит из из следующих компонентов:

  1. Ядро ВМ: со своими подкомпонентами концентрирует большинство функций управления JVM.
  2. Уровень переноса : скрывает специфичные для платформы детали от других компонентов ВМ за единым интерфейсом и основан на слое Apache Portable Runtime.
  3. Сборщик мусора : выделяет объекты Java в памяти кучи и восстанавливает недоступные объекты с помощью различных алгоритмов
  4. Execution Manager : выбирает механизм выполнения для компиляции метода, обрабатывает профили и логику динамической перекомпиляции.
  5. Библиотека классов : стандартная библиотека Java.
  6. Диспетчер потоков, который обрабатывает потоки операционной системы
  7. Механизм выполнения: состоит из следующего:
    1. JIT-компилятор для c компиляция и выполнение кода метода.
    2. Интерпретатор для упрощения отладки.

Платформа поддержки и операционная система

Проект предоставил переносимую реализацию, упрощающую разработку на многих платформы и операционные системы. Основное внимание уделялось операционным системам Windows и Linux на архитектурах x86 и x86-64.

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)Н / ДНетДаН / ДН / ДН / Д
32-битный PowerPC Н / Д AН / ДНетН / ДН / ДН / Д
PowerPC 64- бит н / дн / пн / дн / дн / дн / д
zSeries 31-битН / ДН / ДНетН / ДН / ДН / Д

Покрытие библиотеки классов

Ожидаемые пожертвования от компаний-разработчиков программного обеспечения были eived. Apache Harmony теперь содержит рабочий код, включая код Swing, AWT и Java 2D, которые были предоставлены Intel.

по состоянию на февраль. В 2011 году проект Harmony достиг 99% завершенности для JDK 5.0 и 97% для Java SE 6.

. Прогресс проекта Apache Harmony можно отслеживать по J2SE 1.4 и Java SE 5.0. Кроме того, в разработке для Java SE 6.0 находится ветка Harmony v6.0.

Разработчики Apache Harmony объединяют несколько существующих, протестированных на практике проектов с открытым исходным кодом для достижения своей цели (не изобретать колесо ). Многие из этих проектов являются зрелыми и хорошо известными, а другие части библиотеки нужно было писать с нуля.

Это список существующих компонентов с открытым исходным кодом, которые используются в проекте Apache Harmony; некоторые из них использовались до начала проекта.

КомпонентОписание
ICU Зрелые библиотеки C / C ++ и Java для поддержки Unicode и интернационализации и глобализации программного обеспечения
Apache Xalan XSLT обработчик таблиц стилей для Java, C ++, который реализует XPath язык
Apache Xerces Библиотека парсера XML для Java, C ++, Perl
Apache Portable Runtime Кросс-платформенная библиотека абстракции, обеспечивает независимость от платформы
Apache CXF Надежная, высокопроизводительная структура веб-сервисов работает через протоколы такие как SOAP, XML / HTTP, RESTful HTTP, CORBA
BCEL Библиотеки для декомпозиции, изменения и перекомпоновки двоичных классов Java, т. е. байт-код
MX4J Java Management Extensions (JMX) инструменты для управления и мониторинга приложений, системных объектов, устройств и сервис-ориентированных сетей
VM Magic Набор расширений языка Java для облегчения системное программирование на Java путем добавления операций с прямой памятью и т. д.
Bouncy Castle Коллекция библиотек облегченной криптографии для Java и C#
ANTLR языковой инструмент, предоставляет основу для создания распознавателей, интерпретаторов, компиляторов и переводчиков из грамматических описаний, содержащих действия во многих целевые языки

Документация

Harmony менее документирован, чем альтернативные бесплатные реализации Java. Например, в GNU Classpath каждый метод центрального класса CORBA (ORB) имеет поясняющий комментарий как в стандартном абстрактном классе API, так и в реализации. В проекте Yoko, используемом Harmony, большинство методов как в стандартном объявлении, так и в реализующем классе были недокументированы в конце октября 2006 года. Кроме того, GNU Classpath поддерживал как старые, так и новые функции CORBA (такие же, как реализация Sun). Иначе говоря, Harmony оставила полностью нереализованным центральный метод старого стандарта (ORB.connect (Object)).

Инструменты

Полная реализация платформы Java также требует компилятора, который переводит исходный код Java в байт-коды, программу, которая управляет JAR-файлы, отладчик и апплет просмотрщик и веб-браузер плагин, и это лишь некоторые из них. Harmony имеет компилятор, appletviewer, jarsigner, javah, javap, keytool, policytool и unpack200.

Поддержка виртуальных машин

Harmony имеет семь реализаций виртуальной машины, на которых запущена библиотека классов Harmony, все из которых были пожертвованы внешними группами:

  • JC Harmony Edition VM, «JCHEVM», на основе интерпретатора , предоставленный автором, Арчи Коббсом.
  • BootJVM, простая виртуальная машина начальной загрузки, предоставленная Дэниелом Лидиком.
  • SableVM, продвинутый портативный интерпретатор, внесенный авторами из; и виртуальная машина динамического уровня выполнения.
  • , оперативный компилятор, предоставленный Intel.
  • BEA, объявила о доступности оценочной версии JRockit VM под управлением Apache Библиотека классов Harmony.
  • JikesRVM, мета-круговая JVM с открытым исходным кодом, использующая библиотеку классов Apache Harmony.
  • , проект с открытым исходным кодом, предоставляющий JDK для Java 5 (библиотеки классов, инструменты и т. д.), которые работают в среде .NET Framework CLR. Ja.NET SE основан на библиотеках классов Apache Harmony.

В конце ноября 2006 года языковая поддержка, предоставляемая этой виртуальной машиной, была еще неполной, и инструкции по сборке рекомендовали использовать IBM ' s проприетарный J9 вместо запуска набора тестов библиотеки классов. Однако в этом больше нет необходимости (по состоянию на июль 2007 г.).

Что касается остальной части проекта, разработка виртуальной машины DRLVM остановлена ​​(по состоянию на май 2011 г.).

Статус приложения

Концепция, Harmony выросла в своей способности выполнять нетривиальные Java-приложения. По состоянию на июль 2007 г. поддерживаемые приложения включают:

Однако неполная библиотека Harmony не позволяла запускать некоторые другие приложения:

  • ArgoUML : потому что ему нужен Java-апплет, которая все еще была недоступна в Harmony.
  • Apache Geronimo работает на Apache Harmony с некоторыми проблемами и обходными путями.
  • Vuze, ранее Azureus, из-за нереализованных классов безопасности.

См. Также

  • Портал бесплатного программного обеспечения с открытым исходным кодом
  • icon Портал компьютерного программирования

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-11 20:10:31
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте