Содержание


The WebSphere Contrarian (Альтернативное мнение по продуктам WebSphere)

Могу ли беспрепятственно выбрать Liberty Profile?

Comments

Серия контента:

Этот контент является частью # из серии # статей: The WebSphere Contrarian (Альтернативное мнение по продуктам WebSphere)

Следите за выходом новых статей этой серии.

Этот контент является частью серии:The WebSphere Contrarian (Альтернативное мнение по продуктам WebSphere)

Следите за выходом новых статей этой серии.

Не знаю как вы, а когда я слышу слово "liberty" (свобода), я думаю и о "свободе выбора”. Подозреваю, что я ассоциирую эти два термина друг с другом по той причине, что в качестве студента – довольно давно – я изучал курс "История экономики". Среди классических экономистов в этом курсе упоминался Джон Стюарт Милль (John Stuart Mill), который был сторонником свободного рынка и часто использовал в своих экономических концепциях термины "свобода" и "свобода выбора". Несомненно, труды Милля произвели на меня сильное впечатление, поскольку я вспоминаю это так много лет спустя, и именно этот аспект моего образования подсказал мне вопрос, поставленный в заголовке этой статьи. (Кроме того, для ясности: я не был современником г-на Милля много лет назад – это был курс по истории экономики, а не по современной экономике. Я просто обязан это сказать.)

Так или иначе, но профиль IBM WebSphere Application Server Liberty Profile был очень хорошо принят сразу же после его представления в середине 2012 года, а непрерывное расширение набора функций Liberty Profile привело к тому, что у меня часто просят совета относительно целесообразности применения Liberty Profile. Прежде, чем углубляться в факторы, которые необходимо учитывать при принятии этого решения, имеет смысл кратко рассмотреть “набор уровней” профиля IBM WebSphere Application Server Full Profile (полный" профиль) и профиля Liberty Profile.

Профиль: Перегруженный термин?

Концепция профиля (profile) впервые появились в версии IBM WebSphere Application Server V6.0; профили были призваны отделить двоичный код WebSphere Application Server от конфигурации среды исполнения WebSphere Application Server. Конечная цель введения профилей состояла в том, чтобы избавиться от необходимости нескольких отдельных установок, учитывающих специфику диспетчера развертывания, агентов узлов и серверов приложений, что порождало несколько наборов двоичного кода на одном физическом сервере. Профили позволили ограничиться однократной установкой двоичного кода, а затем создать один или несколько "профилей" с помощью инструмента Profile Management Tool или скрипта manageProfiles(.bat/sh), при этом все эти профили использую один и тот же набор двоичных файлов. Это избавляло от необходимости устанавливать на каждом сервере несколько наборов двоичного кода и вносить в него исправления, а также экономило дисковое пространство. Первоначально в версии WebSphere Application Server V6.0 имелось три профиля: Deployment Manager, Application Server, Custom (Node-агент без заранее созданного сервера приложений). Дополнительные профили были реализованы в версиях WebSphere Application Server V6.1 и V7.0: Enterprise Proxy Server, Job Manager, Admin Agent, Secure (DMZ) Proxy Server.

Через некоторое время вышла спецификация Java EE 6, в которой появился профиль Web Profile, определенный в этой спецификации следующим образом: “Web Profile – это профиль Java Platform Enterprise Edition, специально ориентированный на веб-приложения” (что выглядит, по крайней мере для меня, циклическим определением; лично я всегда использовал фразу “подмножество API-интерфейсов Java EE Platform , используемых для веб-приложений”, чтобы точнее определить профиль Java EE Web Profile без повторного использования слова "профиль" для описания профиля).

Еще один любопытный момент (по крайней мере, для меня): API-интерфейсы веб-сервисов Java EE (JAX-WS, JAXB и т. д.) не входят в состав профиля Java EE Web Profile, хотя в спецификации Web Profile он определяется следующим образом: “новые возможности подключения в спецификации Servlet, позволяющие приложениям пользоваться библиотеками, которые расширяют контейнер сервлетов с минимальными издержками на конфигурирование”, а затем интерфейс JAX-RS продолжает рассматриваться как API-интерфейс Java EE, не включенный в профиль Web Profile, который “можно подключить к веб-контейнеру”. По-видимому, к веб-сервисам следует относиться подобным способом.

Так или иначе, профиль Java EE Web Profile также является частью (или подмножеством) спецификация Java EE 7, таким образом, он, видимо, сохранится, по крайней мере, на обозримое будущее. Следует также отметить, что для профиля Java EE 7 Web Profile интерфейс JAX-WS является обязательным (это больше не "подключаемая" опция, как это было в профиле Java EE 6 Web Profile).

Наконец, в версии WebSphere Application Server V8.5.0, был представлен профиль Liberty Profile. Хотя профиль Liberty Profile также обеспечивает отделение двоичных файлов от конфигурации, он основан на ином наборе двоичного кода и использует другую модель конфигурирования. Но в отличие от предшествующих профилей, термин Liberty Profile охватывает и конфигурацию, и двоичный код. Как результат, в лексикон профилей был добавлен еще один термин – словосочетание Full Profile (полный профиль) для обозначения профиля среды исполнения WebSphere Application Server до появления Liberty Profile.

Конечно, поскольку Liberty Profile отличается от предыдущих версий WebSphere Application Server с точки зрения набора двоичных файлов и модели конфигурирования, можно утверждать, что Liberty Profile – это вообще не профиль, по крайней мере, не в общепринятой терминологии продукта WebSphere Application Server. Увы, термин уже устоялся, и теперь можно только надеяться, что в процессе развития WebSphere и сообщества Java для использования будет найден другой термин, если такая необходимость возникнет в будущем.

И действительно, когда в версии WebSphere Application Server V8.5.5.0 была добавлена вторая конфигурационная опция для Liberty Profile, не было никакого упоминания о “профиле"; вместо этого данный процесс управления на основе Liberty Profile носит название коллективный контроллер (collective controller), а первоначальная конфигурационная опция Liberty просто называется "сервером".

Наконец, что касается профилей, другая, упрощенная модель конфигурирования для Liberty Profile разрешает "создавать профиль" путем простого добавления одной строки в файл server.xml среды Liberty Profile, избавляя от необходимости в инструменте управления профилями или скрипта, как это требуется в случае WebSphere Application Server Full Profile.

Где использовать Liberty Profile?

В первое время после представления опции Liberty Profile она обычно рассматривалась как среда исполнения при разработке, благодаря таким особенностям, как малое потребление памяти и быстрый запуск; оба этих качества высоко ценят разработчики приложений, которым в процессе своей деятельности часто приходится развертывать новые версии приложения. Кроме того, большинство контейнерных сервисов и функций, доступных на момент выпуска, лучше подходили для использования при разработке. Как результат, сформировалось распространенное заблуждение, что Liberty Profile подходит только для разработки, а на самом деле Liberty Profile подходил и продолжает подходить для использования в производственной среде; и действительно, один из заказчиков внедрил профиль Liberty Profile в свою производственную среду уже через несколько месяцев после его выпуска.

Такое мнение было ошибочным, хотя для многих это оказалось неожиданностью. Решение инвестировать в Liberty Profile – это результат запросов от заказчиков, выражающих мнение групп системного администрирования и эксплуатации, а не только групп разработчиков. - Около пятнадцати лет назад вышла версия WebSphere Application Server V4.0, в которой была реализована компонентная среда исполнения сервера приложений, которую можно быть сконфигурировать таким образом, чтобы в ней присутствовали только возможности и функции, необходимые с точки зрения приложений и эксплуатации.

В последующие годы такие запросы участились и стали еще более настойчивыми. При создании версий WebSphere Application Server 6.0, 6.1, 7.0 и 8.0 разработчики WebSphere приложили масштабные усилия к тому, чтобы "облегчить" Full Profile. С этой целью они удалили зависимости между различными контейнерными сервисами, реализовали запуск контейнерных сервисов только при необходимости, а также оптимизировали другие аспекты. Несмотря на определенные успехи, архитектура Java EE для Full Profile препятствовала дальнейшим улучшениям в этой области. В WebSphere Application Server Liberty Profile была применена новая архитектура на базе спецификации OSGi, в которой каждый контейнерный сервис и каждая функция среды исполнения реализуются как OSGi-пакеты, что позволяет "точно подогнать" среду исполнения как для среды разработки, так и для производственной среды. Кроме того, архитектура OSGi и предоставление функциональности в виде OSGi-пакетов обеспечивает возможность инкрементного выпуска (так называемая "непрерывная поставка") новых возможностей и функций, не дожидаясь этапного релиза, как это по-прежнему необходимо в случае WebSphere Application Server Full Profile.

Акцент текущих инвестиций на Liberty Profile отражает как нашу способность выпускать новые функции, не дожидаясь очередного крупного релиза, так и спрос потребителей на дополнительные возможности, которые в настоящее время доступны только в редакции Full Profile (например, SAML, VMM/федерированные репозитарии, распределение сертификатов, управление состоянием, управление редакцией приложения и т. д.). Этот спрос выражают все представители наших заказчиков, и внешних, и внутренних (по последним данным среда Liberty Profile встроена более чем в 150 продуктов IBM).

Где использовать Full Profile?

Продукт IBM WebSphere Application Server Full Profile остается центральным элементом портфеля IBM Systems Middleware. IBM продолжает инвестировать в редакцию Full Profile, что отражает высокий уровень ее распространения у заказчиков и их значительные капиталовложений в инфраструктуру, основанную на традиционной редакции продукта WebSphere Application Server. Кроме того, мы продолжаем принимать и располагать по приоритетам т. н. "Запросы на улучшение" (Request For Enhancement, RFE), в которых нас просят реализовать в Full Profile обновленные и новые возможности, даже несмотря на то, что к этапным (интегрированным) релизам обязательно привязан выпуск новых возможностей в архитектуре Full Profile.

Свидетельством наших инвестиций в WebSphere Application Server Full Profile является следующее "Заявление о направлениях развития" (Statement of direction), опубликованное в начале текущего года (см. раздел Ресурсы).

"IBM планирует сертифицировать продукт WebSphere Application Server на совместимость со спецификацией Java EE 7 Full Platform. Продукт WebSphere Application Server существенно продвинулся в достижении этой цели благодаря возможностям опции WebSphere Application Server Liberty Profile, доступной в репозитарии WebSphere Liberty Repository в соответствии с моделью непрерывного выпуска. Предполагается, что использование этого подхода позволит добиться полной совместимости профиля WebSphere Application Server Liberty Profile со спецификацией Java EE 7 Full Platform. Кроме того, в планах IBM остается сертификация профиля WebSphere Application Server Full Profile на совместимость со спецификацией Java EE 7 Full Platform".

Короче говоря, вы можете быть уверены в отсутствии каких-либо планов по прекращению выпуска или инвестиций в профиль WebSphere Application Server Full Profile.

Сравнение редакции Liberty Core и профиля Liberty Profile

Профиль Liberty Profile зачастую путают с редакцией Liberty Core. Многие неправильно ассоциируют профиль Liberty Profile исключительно с редакцией Liberty Core. Действительно, профиль Liberty Profile поставляется вместе с редакцией Liberty Core, однако необходимо понимать, что профиль Liberty Profile также входит в следующие редакции (вместе с профилем Full Profile): WebSphere Application Server – Express, WebSphere Application Server, WebSphere Application Server for Developers, WebSphere Application Server Network Deployment и WebSphere Application Server for z/OS.

На рис. 1 показан состав профилей в зависимости от редакции продукта.

Рисунок 1. Профили продукта WebSphere Application Server V8.5.5 по редакциям
WebSphere Application Server V8.5.5 profiles by product
WebSphere Application Server V8.5.5 profiles by product

Как показано на рис. 1, существующие пользователи WebSphere Application Server получают оба профиля (Liberty Profile и Full Profile) “в одном пакете”. Только пользователи, купившие редакцию Liberty Core, ограничены установочными образами Liberty Profile.

В каждой редакции, показанной выше, профиль Liberty Profile имеет определенные различия.

  • Профиль Liberty Profile в редакции Liberty Core предоставляет API-интерфейсы профиля Java EE Web Profile, а также функциональность OSGi-приложений и некоторые дополнительные средства управления и безопасности уровня Core.
  • Профиль Liberty Profile в редакции WebSphere Application Server поддерживает дополнительные API-интерфейсы приложений; в последнем выпуске доступен профиль Java 7 EE Full Platform. Дополнительные возможности включают опции JCA-подключения и некоторые объектные базы данных (или NoSQL, по желанию пользователя).
  • Профиль Liberty Profile в редакции WebSphere Application Server Network Deployment имеет дополнительные возможности управления по сравнению с редакцией WebSphere Application Server, коллективный контроллер и подмножество функций Intelligent Management, доступных в профиле Full Profile редакции Network Deployment.
  • Профиль Liberty Profile в редакции WebSphere Application Server for z/OS поддерживает определенные функции для использования возможностей платформы z/OS.

На рис. 2 показана функциональность Liberty Profile в зависимости от редакции.

Рисунок 2. Функциональность Java EE 7 профиля Liberty Profile по редакциям
Liberty profile features by product
Liberty profile features by product

Когда следует выбирать свободу, предлагаемую профилем Liberty Profile

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

  • Применяйте Liberty Profile в качестве среды разработки на настольной системе, а официальное тестированием и производственное применение по-прежнему осуществляйте в среде Full Profile.

    Это с большой вероятностью гарантирует успех, поскольку среда Liberty Profile потребляет мало ресурсов и быстро запускается. В результате разработчики будут счастливы – и более продуктивны. В этом сценарии гарантированное соответствие между контейнерами Liberty Profile и контейнерами Full Profile означает, что с точки зрения приложения контейнеры обоих профилей функционируют одинаково. Разработчики могут начать использовать профиль Liberty Profile в своей локальной среде разработки, а официальные среды интеграции, тестирования и производства будут по-прежнему использовать существующие навыки и инфраструктуру WebSphere Application Server Full Profile.

    Поскольку профиль Liberty Profile предлагает лишь подмножество API-интерфейсов, доступных в профиле Full Profile, вам нужно ответить на следующий вопрос: “Способно ли данное приложение исполняться в профиле Liberty Profile?” К счастью, для осуществления такой оценки имеются соответствующие инструменты.

    • WebSphere Application Server Migration Toolkit – это предлагаемый бесплатно Eclipse-плагин (см. раздел Ресурсы), который сканирует исходный код приложения и осуществляет высокоуровневую оценку того, какие технологии Java EE использует эти приложения и какие профили WebSphere Application Server (Full Profile или Liberty Profile) предоставляют необходимые контейнерные сервисы. Дополнительно осуществляется построчный анализ требуемых изменений программного кода и предоставляется подробная информацией для осуществления изменений, а там, где это возможно – быстрое внесение изменений для исправления кода.
    • Migration Toolkit for Application Binaries (см. раздел Ресурсы) – это инструмент, исполняемый из командной строки, а не из среды Eclipse. Другими словами, системные администраторы, не знакомые с Eclipse IDE, могут легко оценить пригодность приложения для Liberty Profile, не обращаясь к исходному коду приложения.

    Недавно реализованная поддержка Java EE 7 в Liberty Profile также означает, что разработчики могут приступить к созданию приложений, использующих API-интерфейсы Java EE 7, а затем, когда спецификация Java EE 7 будет доступна на Full Profile, новые приложения Java EE 7 можно будет развернуть в производственной среде на основе Full Profile.

  • Используйте ассистируемое управление жизненным циклом для профиля Liberty Profile в производственной среде.

    Ассистируемое управление жизненным циклом – одна из функций интеллектуального управления, реализованных в редакции WebSphere Application Server Network Deployment V8.5 – позволяет осуществлять операционных контроль и мониторинг серверов связующего уровня (то есть не серверов WebSphere Application Server Full Profile) в ячейке Network Deployment. С помощью этой функции вы можете приступить к приобретению эксплуатационного опыта с серверами Liberty Profile, используя при этом имеющиеся навыки и существующую инфраструктуру Network Deployment Full Profile. Серверы Liberty Profile добавляются в ячейку Network Deployment Full Profile, что позволяет с помощью диспетчера развертыванию редакции Network Deployment осуществлять запуск/остановку, запросы на маршрутизацию и мониторинг.

  • Другие опции

    Также имеются и другие разнообразные опции, предназначенные для управления каждым сервером Liberty Profile индивидуально или с использованием коллективного контроллера Liberty Profile в качестве единой точки управления. Эти опции требуют детального анализа конфигурации и архитектуры администрирования Liberty Profile, поэтому я пока отложу их рассмотрение. Однако чтобы заинтересовать вас, я хочу сообщить, что Liberty Profile обеспечивает свободу не только разработчикам, но и администраторам.

Заключение

Цель этой статьи состояла в том, чтобы развеять некоторые распространенные заблуждения о профиле Liberty Profile, чтобы вы смогли разумно оценивать его применимость на своем предприятии. Надеюсь, мне это удалось. Конечно, очень многие аспекты остались не охваченными, поэтому я собираюсь в ближайшее время вернуться к этой тематике и рассмотреть другие опции (для производственной среды), которые помогут вам определять целесообразность применения профиля Liberty Profile на основе ваших прикладных и операционных потребностей.


Ресурсы для скачивания


Похожие темы


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=WebSphere, Облачные вычисления
ArticleID=1031342
ArticleTitle=The WebSphere Contrarian (Альтернативное мнение по продуктам WebSphere): Могу ли беспрепятственно выбрать Liberty Profile?
publish-date=05102016