Новые версии платформы Java будут отличаться гибкостью, поддержкой стандартов OSGi (Open Services Gateway initiative) и модульностью. Об этом представители Sun Microsystems объявили на конференции JavaOne, состоявшейся в Сан-Франциско.
Были анонсированы детальные планы в отношении Java Platform, Enterprise Edition (Java EE) 6 и Java Platform, Standard Edition (Java SE) 7. Версия Java SE служит базовой платформой Java, а в версии Enterprise к ней добавлены возможности уровня предприятия.
С выпуском Java EE 6 в Sun рассчитывают обеспечить большую гибкость при реализации платформы.
«Основная идея Java EE 6 заключается в том, что я назвал бы ‘выбором оптимального масштаба’, и что, по-существу, означает выбор платформы нужного пользователю размера», — пояснил Роберто Кинничи, отвечающий в Sun за платформу Java EE.
С помощью новой версии можно будет создавать профили с учетом конкретных требований, например, профиль, ориентированный на Web-разработчиков. Пока Web-профиль определен не полностью, но он будет включать в себя технологии, которые появятся в подавляющем большинстве Web-приложений. Кроме того, будут подготовлены и другие профили, в том числе коммуникационный профиль, который включает в себя сервисы SIP.
Кроме того, планируется сократить состав платформы Java, в результате чего определенные части платформы могут стать дополнительными.
«Как правило, типичными кандидатами ‘на отсев’ являются те технологии, которые, по-существу, уже вытеснены новыми решениями», — пояснил Кинничи, приведя в качестве примера AJAX RPC и Entity Beans.
Языки скриптов тоже станут важнейшими составляющими платформы Java. Разработка Web станет проще за счет аннотаций в прикладных программных интерфейсах Web. Разработчикам придется в значительно меньшей степени редактировать дескрипторы web.xml. Библиотеки, предлагаемые независимыми производителями, будут регистрироваться автоматически, тем самым исчезнет традиционный источник ошибок.
Еще одна особенность версии Java EE 6 — это прикладной программный интерфейс для Web-сервисов с REST. «Мы осознаем потребность в новом API, полностью ориентированном на них», — заметил Кинничи.
Enterprise JavaBeans могут, благодаря шестой версии, интегрироваться в Web-приложение, избавляя разработчиков от необходимости использовать вложенные пакеты.
Точная дата выпуска Java EE 6 пока не установлена, но предполагается, что эта версия появится позднее в этом году.
Версия Java SE 7, выпуск которой запланирован на лето 2009 года, поддерживает модульность при разработке и при развертывании.
Пакет разработчика Java Development Kit (JDK) 7, базирующийся на Java SE 7, поддерживает сервисы, стандартизированные OSGi.
«Мы объявляем о готовности новой спецификации, которая определяет интероперабельность между модульной системой Java SE 7 и OSGi, — пояснил Денни Ковард, старший архитектор группы клиентского программного обеспечения компании Sun. — Для JDK 7 это означает, что разработчики, которые создают приложения, основанные на OSGi, смогут без изменений запускать их в JDK 7».
Ковард подчеркнул, что цель производимых изменений заключается в том, чтобы поддержать OSGi и помочь разработчикам обеспечить выполнение кода на JDK 7.
Поддержка OSGi как модели компоновки и развертывания была с одобрением воспринята аналитиком Энн Томас Манес из Burton Group.
«Развертывание системы в существующей версии Java — крайне тяжелый процесс», — считает Манес. По ее словам, использование OSGi для решения этой проблемы — прекрасная идея.
«Интересно, зачем нужно было делать модульную поддержку вместо того, чтобы поддерживать OSGi? Но до тех пор, пока такая модульная поддержка обеспечивает полную поддержку OSGi, все прекрасно», — заявила Манес.
В рамках плана Sun по расширению поддержки языков в Java Virtual Machine зависимости от использования только одного языка в JVM будут устранены. Разработчикам будет намного проще писать компиляторы и языки на основе других языков и выполнять их на платформе Java.
Участники конференции отмечали, что запланированная версия сервера приложений GlassFish 3 также поддерживает OSGi. Это будет поддержка динамических языков, таких как Ruby и Groovy, а также Java EE 6.
Во время JavaOne обсуждалась и еще одна технология, Lightweight UI Toolkit (LWUIT), отличительной особенностью которой является библиотека функций пользовательского интерфейса, которая позволяет разработчикам решать задачи, связанные с созданием выразительных, согласованных приложений Java для карманных устройств. Сейчас создан только первый вариант этой технологии, и летом он будет предложен как решение категории Open Source.
В Sun называют LWUIT библиотекой, которая базируется на MIDP 2.0 и реализует простую графику и модель пользовательского интерфейса с небольшими начальными требованиями к ресурсам и умеренными требованиями к производительности. В ней используется интеграция графики SVG и механизм MVC (Model View Controller) на базе функций Swing.
LWUIT работает на устройствах, выпускаемых такими компаниями, как Nokia и Sony Ericsson.