Jump to content

Апач Гармония

Апач Гармония
Разработчик(и) Фонд программного обеспечения Apache
Финальный выпуск
5.х 5,0М15 / 15 сентября 2010 г .; 13 лет назад ( 15.09.2010 )
6.х 6,0М3 / 15 сентября 2010 г .; 13 лет назад ( 15.09.2010 )
Репозиторий
Написано в С , Ява
Операционная система Линукс , Винда
Тип Виртуальная машина Java Java , библиотека
Лицензия Лицензия Апач 2.0
Веб-сайт harmony.apache.org

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

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

Инициация

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

Проект Harmony изначально задумывался как попытка объединить всех разработчиков свободных реализаций Java . Многие разработчики ожидали, что это будет проект выше [ нужны разъяснения ] GNU и другие сообщества , Apache . Разработчики GNU были приглашены и участвовали в первоначальном подготовительном планировании. [7] Затем Apache решил не использовать код из GNU Classpath , поскольку хотел, чтобы Harmony был доступен по лицензии Apache v2. [8] Затем разработчики Apache писали необходимые классы с нуля и ожидали необходимых крупных пожертвований кода от компаний-разработчиков программного обеспечения . Различные недопонимания в начале проекта и предложения крупных компаний, таких как IBM , о пожертвовании большого количества существующего кода, побудили некоторых людей в сообществе свободного Java рассматривать проект как корпоративный консорциум, а не как проект Apache. [9]

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

Сложности получения лицензии TCK от Sun

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

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

Сан ответил в блоге компании [12] [13] что они намеревались создать реализацию платформы Java с открытым исходным кодом под лицензией GPL , включая TCK, но их приоритетом было сделать платформу Java доступной для сообщества Linux под лицензией GPL как можно быстрее.

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

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

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

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

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

Android 7.0 «Nougat» заменил Harmony на OpenJDK . [3]

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

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

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

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

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

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

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

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

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

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

Архитектура

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

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

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

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

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

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

Windows 2000 Windows XP , Сервер 2003 , Виста Linux RHEL , SLES , Debian , Gentoo , Fedora FreeBSD ЭКС Мак ОС Х
IA-32 (Pentium III или лучше) Нет Да Да Нет
x86-64 (Интел 64, AMD64) Да Да
Итан (IA64, IPF) Нет Да
PowerPC 32-разрядная версия Нет
PowerPC 64-разрядная версия Нет Нет
zSeries 31-разрядная версия Нет

Охват библиотеки классов

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

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

По состоянию на февраль 2011 г. , проект Harmony достиг 99% полноты для JDK 5.0 и 97% для Java SE 6 . [2]

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

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

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

Компонент Описание
отделение интенсивной терапии Развитые библиотеки C/C++ и Java для Unicode поддержки , а также интернационализации и глобализации программного обеспечения.
Апач Ксалан Процессор таблиц стилей XSLT для Java , C++, реализующий XPath. язык
Апач Ксерцес Библиотека синтаксического анализатора XML для Java, C++, Perl
Портативная среда выполнения Apache Межплатформенная библиотека абстракций, обеспечивающая независимость от платформы.
Апач CXF Надежная, высокопроизводительная платформа веб-сервисов, работающая по таким протоколам, как SOAP , XML/HTTP, RESTful HTTP, CORBA.
БКЭЛ Библиотеки для декомпозиции, изменения и перекомпоновки двоичных классов Java, т. е. байт-кода.
MX4J Инструменты Java Management Extensions (JMX) для управления и мониторинга приложений, системных объектов, устройств и сервис-ориентированных сетей.
ВМ Магия Набор расширений языка Java для облегчения системного программирования на Java путем добавления операций с прямой памятью и т. д.
Надувной замок Коллекция библиотек облегченной криптографии для Java и C#.
АНТЛР Языковой инструмент предоставляет основу для создания распознавателей, интерпретаторов, компиляторов и переводчиков на основе грамматических описаний, содержащих действия на многих целевых языках.

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

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

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

Инструменты

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

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

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

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

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

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

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

Статус заявки

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

С момента своего создания Harmony расширила возможности выполнения нетривиальных Java-приложений. [43] По состоянию на июль 2007 г. , поддерживаемые приложения включают:

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

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

См. также

[ редактировать ]
  1. ^ «Оригинальные часто задаваемые вопросы по запуску проекта» . Harmony.apache.org . Проверено 27 февраля 2011 г. Мы начинаем с Java SE 5, поскольку это первая версия Java SE, для которой лицензия допускает реализацию с открытым исходным кодом, но мы продолжим с Java SE 6 и всех последующих версий.
  2. ^ Перейти обратно: а б «Состояние компонента библиотеки классов» . Harmony.apache.org . Проверено 27 февраля 2011 г.
  3. ^ Перейти обратно: а б Амадео, Рон (7 января 2016 г.). «Android N переключается на OpenJDK, Google сообщает Oracle, что он защищен лицензией GPL» . Арс Техника . Конде Наст . Проверено 1 июля 2016 г.
  4. ^ Перейти обратно: а б Эллисон, Тим (3 ноября 2011 г.). «Переместить Apache Harmony на чердак (обновлено)» . org.apache.harmony.dev. Архивировано из оригинала 14 декабря 2013 г. Альтернативный URL. Архивировано 7 февраля 2013 г. в Wayback Machine.
  5. ^ Перейти обратно: а б Эллисон, Тим (16 ноября 2011 г.). «Правление приняло чердачное постановление» . org.apache.harmony.dev. Архивировано из оригинала 14 декабря 2013 года . Проверено 27 ноября 2011 г. Альтернативный URL. Архивировано 14 марта 2013 г. на Wayback Machine.
  6. ^ «Конец (Apache) гармонии» . Х. 4 ноября 2011 г.
  7. ^ Марк Вилаард (9 мая 2005 г.). «Гармония!» . Архивировано из оригинала 16 мая 2008 года . Проверено 21 октября 2010 г. Apache выдвинул предложение для обсуждения полной бесплатной реализации j2se. Который они называют «Гармония». Речь идет (на данный момент) не о коде, а о поиске направления, как добраться до такого зверя. Далибора, Тома, Джеруна и меня попросили помочь им в этом обсуждении и, возможно, показать, как создать для него хорошую архитектуру.
  8. ^ Гейр Магнуссон-младший (24 мая 2006 г.). «Предложение по бесплатной реализации Java» . Апач .
  9. ^ Перейти обратно: а б Марк Вилаард (24 мая 2006 г.). «На пути к свободной Java» . LWN.net . Все это означает, что, несмотря на то, что сейчас имеется некоторый код, подаренный Intel, практического сотрудничества между первоначальными проектами бесплатного программного обеспечения, поддерживающими Harmony, и проектом, теперь известным как Apache Harmony, не существует. Все это заставило некоторых людей думать о Harmony как о консорциуме компаний под видом проекта ASF, а не как о полноценном общественном проекте.
  10. ^ «Открытое письмо Sun Microsystems — JCK» . apache.org.
  11. ^ Согласно ASF, 1) руководитель спецификации не может налагать какие-либо договорные условия или обязательства, которые ограничивали бы право любого лицензиата создавать или распространять такие независимые реализации (раздел 5.C.III), и 2) руководитель спецификации должен лицензировать всю необходимую интеллектуальную собственность без лицензионных отчислений для любой совместимой реализации спецификации (раздел 5.B).
  12. ^ «В записи» . Архивировано из оригинала 21 апреля 2007 года.
  13. ^ «Sun to Apache: «Процесс с открытым исходным кодом — это путешествие» — Java IoT» . Архивировано из оригинала 9 июля 2008 года . Проверено 14 апреля 2007 г.
  14. ^ «Тишина открытого солнца» . Ян Скерретт . 16 апреля 2007 г.
  15. ^ «Марк Дж. Вилаард» Архив блога » OpenJCK» . Проверено 27 августа 2023 г.
  16. ^ Гилберт, Дэйв (16 апреля 2007 г.). «Пять причин, по которым Apache пожалеет об этом открытом письме» . Архивировано из оригинала 18 апреля 2007 года . Проверено 8 марта 2008 г.
  17. ^ «Лицензионное соглашение TCK сообщества OpenJDK, версия 1.1» (PDF) . Сан Микросистемс . Проверено 8 марта 2008 г. При условии, что реализация Лицензиата в значительной степени является производной от кода OpenJDK и, если такая реализация распространяется или будет распространяться третьей стороне, она распространяется по лицензии GPL, Sun настоящим предоставляет Лицензиату в пределах интеллектуальных прав Sun. Права собственности на TCK, глобальная, личная, неисключительная, не подлежащая передаче, ограниченная лицензия на использование TCK для внутренних целей и исключительно с целью разработки и тестирования реализации Лицензиата.
  18. ^ «АФС выходит из исполнительного комитета JCP» . Фонд программного обеспечения Apache. 9 декабря 2010 г.
  19. ^ «Apache покидает группу управления Java в знак протеста против злоупотреблений Oracle» . Арс Техника. 9 декабря 2010 г.
  20. ^ «Google Android SDK обходит Java ME в пользу Java Lite и Apache Harmon» . infoq.com. 12 ноября 2007 года . Проверено 31 мая 2009 г. Вместо того, чтобы предоставить полную версию Java SE или Java ME, Google разошлась по двум направлениям. Во-первых, предоставляется ограниченное подмножество основных пакетов Java. (...) Идя по этому пути, Android идет по стопам другого проекта Google, GWT, который использует Java в качестве языка разработки, но не поддерживает полный JDK.
  21. ^ «Индекс пакета» . Открытый альянс мобильных телефонов . Архивировано из оригинала 27 июня 2009 года . Проверено 31 мая 2009 г.
  22. ^ «Oracle и IBM сотрудничают для ускорения инноваций в Java с помощью OpenJDK» . Корпорация Оракл . Архивировано из оригинала 14 октября 2010 года . Проверено 22 октября 2010 г.
  23. ^ Райан Пол (13 октября 2010 г.). «Java-войны: IBM присоединяется к OpenJDK, в то время как Oracle избегает Apache Harmony» . Арс Техника . Архивировано из оригинала 19 октября 2010 года . Проверено 22 октября 2010 г.
  24. ^ Боб Сьютор. «IBM присоединяется к сообществу OpenJDK и поможет объединить усилия по разработке Java с открытым исходным кодом» . Архивировано из оригинала 18 октября 2010 года . Проверено 22 октября 2010 г. IBM перенесет свои усилия по разработке с Apache Project Harmony на OpenJDK. Для тех, кто хочет сделать то же самое, мы будем работать вместе, чтобы сделать переход максимально простым. IBM по-прежнему будет активно участвовать в других проектах Apache.
  25. ^ Тим Эллисон (14 марта 2011 г.). «Перезагрузка проекта Гармония» . Проверено 20 марта 2011 г.
  26. ^ «Каково будущее Apache Harmony?» . infoq.com. 14 марта 2011 года . Проверено 20 марта 2011 г.
  27. ^ «Архив списка рассылки: [адрес электронной почты защищен] » . apache.org . Проверено 11 сентября 2011 г.
  28. ^ Перейти обратно: а б «Протокол заседания Совета директоров» . Фонд программного обеспечения Apache. 16 ноября 2011 года . Проверено 8 августа 2012 г. Ларри хотел бы отметить, что он не против увольнения, он просто предпочел бы иметь больше времени для работы над сообщениями.
  29. ^ Лео Саймонс (24 июля 2006 г.). «Мы бы хотели, чтобы все развитие происходило именно здесь» . Архивировано из оригинала 29 сентября 2007 года . Проверено 28 июля 2006 г.
  30. ^ «Путь апачей» . Архивировано из оригинала 21 августа 2006 года . Проверено 28 июля 2006 г.
  31. ^ Группа документации Harmony. «Apache Harmony — Поддерживаемые платформы» . Harmony.apache.org.
  32. ^ «Результаты сравнения JDK_5.0 и Harmony_5.0» . People.apache.org . Проверено 27 августа 2023 г.
  33. ^ Путь к классам [ постоянная мертвая ссылка ]
  34. ^ Путь к классам [ постоянная мертвая ссылка ]
  35. ^ «Harmony использует новейшие банки Yoko...» 27 сентября 2006 г.
  36. ^ «Лицензия» . apache.org . Проверено 27 августа 2023 г.
  37. ^ «Лицензия» . apache.org . Проверено 27 августа 2023 г.
  38. ^ «Apache Harmony — дорожная карта проекта» . Harmony.apache.org . Проверено 27 августа 2023 г.
  39. ^ «[общие] JRockit H27.2.1 для библиотеки классов Harmony выпущен сейчас» .
  40. ^ «Анонсируем Jikes RVM 3.0 + Apache Harmony!» .
  41. ^ «Джанет Дев» .
  42. ^ «Подрывные действия» . Harmony.apache.org . Проверено 28 мая 2011 г.
  43. ^ «Статус_приложения» . apache.org. Архивировано из оригинала 10 августа 2007 года . Проверено 4 ноября 2006 г.
  44. ^ «Модульные тесты Eclipse проходят на DRLVM — Harmony Wiki» . Архивировано из оригинала 8 февраля 2007 года . Проверено 4 ноября 2006 г.
  45. ^ «Апач_Томкат» . apache.org. Архивировано из оригинала 10 февраля 2007 года . Проверено 4 ноября 2006 г.
  46. ^ «Юнит» . apache.org.
  47. ^ «Апач_Ант» . apache.org. Архивировано из оригинала 10 февраля 2007 года . Проверено 4 ноября 2006 г.
  48. ^ «Гармония Апачей» . apache.org.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7171bb6e468bd70a8481bbd78282a4b3__1721232000
URL1:https://arc.ask3.ru/arc/aa/71/b3/7171bb6e468bd70a8481bbd78282a4b3.html
Заголовок, (Title) документа по адресу, URL1:
Apache Harmony - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)