Технология Jakarta EE, ранее известная как Java EE, помогает соединить старые и новые технологии — скажем, обеспечить сочетание старых и облачных приложений в гибридной облачной среде, — и позволяет приложениям эффективно взаимодействовать, утверждают опрошенные порталом Enterprisers Project эксперты.

«Java EE теперь находится под новым руководством», — отмечает Майк Милинкович, исполнительный директор Eclipse Foundation. Он напоминает, что Oracle передала Java EE в Eclipse в 2017 г., и она стала Open Source-проектом. Впоследствии название было изменено на Jakarta EE. Сегодня проект курируется рабочей группой Jakarta EE Working Group, в которую входят лидеры индустрии Java, такие как Fujitsu, IBM, Oracle, Payara, Red Hat и Tomitribe.

Jakarta EE можно рассматривать как мост между старым и новым в том смысле, что это средство для внедрения и работы с современными технологиями без отказа от инвестиций в существующие приложения и инфраструктуру. Такой отказ не выгоден для большинства компаний, не говоря уже об ИТ-специалистах, которые вложили значительное время и силы в развитие соответствующих навыков, но также хотят продолжать адаптироваться к новым инструментам и языкам.

«Jakarta EE дает предприятию два стратегических преимущества: возможность сохранить существующие инвестиции в код приложений Java EE, на котором работает бизнес, и светлое будущее для квалифицированных Java-разработчиков из штата компании», — говорит Милинкович.

Jakarta EE составляет основу многих критически важных современных корпоративных систем, отмечает Марк Литтл, вице-президент по разработке промежуточного ПО компании Red Hat. По его словам, стабильность, зрелость спецификаций и надежность реализаций, основанных на ней, являются основой ее ценности сегодня и в будущем.

Что собой представляет Jakarta EE

«Jakarta EE — это платформа коммерческого уровня, которая предлагает набор компонентов и API для разработки бизнес-приложений на Java, — говорит Милинкович. — Jakarta EE расширяет популярную платформу Java SE спецификациями для разработки и запуска масштабируемых, надежных и безопасных корпоративных приложений».

В этом определении основополагающим является понятие API: Jakarta EE — это, проще говоря, набор API и фреймворк для создания новых. Как таковая, эта платформа особенно актуальна для разработки бэкенда или серверной части.

«Jakarta EE — это зрелый фреймворк на базе Java, который в основном используется для разработки веб-сервисов или API», — говорит Дана Уайатт, старший инструктор по разработке ПО компании DevelopIntelligence.

Если вам нужно объяснить это нетехническому коллеге, вы можете просто сказать: это способ, позволяющий одному приложению общаться с другим.

«Jakarta EE используется в распределенной вычислительной среде, когда вам нужно, чтобы одно приложение коммуницировало с другим, — говорит Уайатт. — При этом приложения не обязательно должны быть написаны на одном языке программирования, и они не обязательно должны работать на одном компьютере».

Для чего используется Jakarta EE

Это определение подчеркивает актуальность Jakarta EE, поскольку распределенные вычислительные среды, а значит гибридные и мультиоблака, контейнеры и микросервисы, становятся все более распространенными. Об этом еще пойдет речь ниже, а сейчас рассмотрим один общий пример, актуальный для многих предприятий: как бэкенды любого интернет-магазина или системы заказов взаимодействуют друг с другом.

«Ваша система оформления заказа должна взаимодействовать с вашей системой авторизации кредитов, если пользователь покупает товар онлайн с помощью кредитной карты, — говорит Уайатт. — Но, возможно, вашему приложению поддержки клиентов также необходимо взаимодействовать с вашей системой авторизации кредитов, чтобы принимать платежи по телефону или даже выдавать кредиты». Jakarta EE может стать той телефонной линией, которая эффективно соединит эти различные приложения.

Другой практический пример: сеть отелей имеет собственную онпремисную инфраструктуру, но при этом хочет предоставлять определенные данные внешним партнерам.

«Сеть отелей может предоставить API, написанный с использованием Jakarta EE, который, во-первых, обеспечивает доступ к местоположению отеля и типам номеров; во-вторых, возвращает информацию о наличии мест и ценах на основе конкретных запросов; и, в-третьих, принимает запросы на бронирование, — говорит Уайатт. — Вместо того чтобы размещать этот API на собственных компьютерах, отель размещает его в публичном облаке. Затем гостиничная сеть нанимает туристические сайты, чтобы они использовали API и предоставляли номера отеля, когда онлайн-пользователи запрашивают информацию о планируемом путешествии».

Почему Jakarta EE важна

Опять же, распределенные ИТ-среды встречаются все чаще, особенно на крупных предприятиях. Компаниям нужна возможность обеспечить связь и взаимодействие приложений независимо от их местоположения, языка или других характеристик.

Им также необходимо найти баланс между существующими инвестициями и перспективными целями. Именно поэтому, говорит Милинкович, спецификации Jakarta EE эволюционируют в сторону облачно-нативного мира, признавая при этом некоторые основные реалии бизнеса и ИТ, например то, что большинство компаний из списка Fortune 500 имеют в своей кодовой базе Java. Возможно, есть более новые, более крутые языки, но Java остается главной опорой.

По его словам, Jakarta EE служит фреймворком для разработки и поддержки как нативных облачных архитектур, таких как микросервисы, так и традиционных монолитных приложений, а также для связи с новейшими парадигмами ПО, такими как контейнеры, микросервисы и оркестровка.

«Такая гибкость означает, что организации могут развивать свои корпоративные и коммерческие приложения таким образом, чтобы максимально использовать существующие инвестиции в технологии и инфраструктуру, — говорит Милинкович. — В то же время они могут разрабатывать новые, нативно-облачные приложения, которые повышают гибкость, согласованность и автоматизацию».

Одним из способов реализации этих последних преимуществ является снижение накладных расходов на разработку и эксплуатацию при переходе от монолитной к более модульной системе.

«Jakarta EE помогает избежать написания лишнего кода и значительно снизить стоимость и сложность разработки, развертывания и управления модульными серверными приложениями», — говорит Владимир Синкевич, руководитель отдела Java-разработки компании ScienceSoft.

Он также отмечает, что хотя Jakarta EE в основном используется в приложениях для крупных корпораций и госструктур, слово «enterprise» в ее названии означает скорее «большие, масштабируемые, надежные и безопасные веб-приложения», и эта платформа также может быть полезна индивидуальным разработчикам и небольшим организациям, занимающимся созданием таких приложений.

Связь с гибридным облаком

Милинкович подчеркивает открытость и нейтральность платформы Jakarta EE по отношению к производителям. Оба эти фактора имеют решающее значение для гибридных облачных и все более распределенных систем. Они также являются важным признанием современной ИТ-реальности, согласно которой переход на облачные технологии — если вы не стартап, создающий все с нуля, — не влечет за собой отказ от остального ИТ-портфеля. Именно здесь на помощь приходят API.

«Прелесть API заключается в том, что они позволяют взаимодействовать между разнородными или разрозненными системами, используя стандартный протокол обмена сообщениями, — говорит Уайатт. — Проще говоря, это означает, что приложение, написанное на старой платформе, такой как COBOL, может взаимодействовать с API, написанными для совершенно других, более новых платформ. Ни одно из приложений не заботится о том, как работает другое, ему важно только, чтобы API принимали и возвращали данные в соответствии с ожиданиями».

Почему еще важна эта технология? Jakarta EE также должна помочь предприятиям быстрее внедрять инновации благодаря более быстрому выпуску обновлений (за последние 20 лет для Java EE было выпущено лишь восемь релизов). Она также снижает барьеры для участия в сообществе: Eclipse Foundation обеспечивает прозрачный процесс итераций и инноваций в разнообразной экосистеме поставщиков, системных интеграторов и членов сообщества, без единого субъекта с главенствующей ролью.