Показаны сообщения с ярлыком WebSphere Liberty. Показать все сообщения
Показаны сообщения с ярлыком WebSphere Liberty. Показать все сообщения

вторник, 17 июля 2018 г.

IBM открывает себя: WebSphere с открытым исходным кодом на JVM с открытым исходным кодом

Давно не писал заметки в блог, но есть новость и ей хочется поделиться: мой первый (и, я очень надеюсь - не последний), вклад в продукт с открытым исходным кодом Eclipse OpenJ9 был принят сообществом. Это - повод, а рассказать в данной заметке я хочу о проектах с открытым кодом, вышедших за последние годы из недр корпорации IBM. Возможно некоторые из них будут интересны вам лично или вашему бизнесу.

  • OpenLiberty - открытый сервер приложений Java EE, на базе него собирается WebSphere Liberty Profile. В качестве системы сборки используется Gradle (тесно интегрированная с bndtools, т.к. проект целиком и полностью основан на OSGi).

  • OpenJ9 - JVM с открытым исходным кодом, построенная на базе библиотеки классов из OpenJDK и другого проекта - OMR, содержащего кросс-платформенные компоненты для построения надежной и высокопроизводительной среды исполнения (т.е. на базе OMR можно построить не только JVM, но и среду исполнения для Python, Ruby или любого другого языка программирования). Какие это компоненты? Сборщик мусора, JIT-компилятор, библиотека общих кросс-платформенных функций, профайлер и т.д.

OpenJ9 и OMR открыты под эгидой сообщества Eclipse Foundation.

Теперь несколько слов о том, как собрать OpenJ9. Стоит сказать большое спасибо разработчикам за том, что они опубликовали довольно подробную инструкцию по сборке проекта с использованием вспомогательного Docker-образа и утилиты Make. Инструкция для JDK 8 может быть найдена по ссылке: Build_Instructions_V8.md, а для JDK 9 - Build_Istructions_V9.md. Обе инструкции подразумевают создание вспомогательного Docker-контейнера, содердащего компилятор C++, линковщик и все необходимые утилиты, библиотеки и заголовочные файлы. Т.е. можно не "захламлять" основное рабочее окружение если, например, разработка на C++ не является вашей основной деятельностью, а вам просто нужна свежая сборка JVM для тестов или экспериментов.

пятница, 24 ноября 2017 г.

Разворачиваем собственную среду исполнения WebSphere Liberty (с microprofile-1.2) в облаке IBM Cloud

WebSphere Liberty - это быстрый, динамичный и простой в использовании сервер приложений Java EE, основанный на проекте с открытым исходным кодом Open Liberty. Идеален для разработки, но так же и сертифицирован для промышленного использования как в IT предприятия, так и в облачном окружении.

IBM Bluemix (сейчас именуемая IBM Cloud) - это последнее облачное предложение от IBM. Облако позволяет организациям и разраотчикам быстро и просто создавать и разворачивать свои приложения в облаке. Bluemix - это реализация открытой облачной архитектуры от IBM, основанной на Cloud Foundry - Platform as a Service (PaaS) с открытым исходным кодом. IBM Cloud Foundry предлагает среды исполнения для Java, Node.JS, PHP, Python, Ruby, Swift и Go. Также доступны созданные сообществом билдпаки (build pack).

Хотя IBM Cloud уже предоставляет среду исполнения для WebSphere Liberty, иногда ее возможностей недостаточно и разработчикам требуется своя собственная версия платформы, например легковесная Liberty Kernel или старая версия для проверки обратной совместимости, или WebSphere Liberty, снабженная специфичными для разрабатываемого приложения возможностями (features).

В данной статье я хочу показать как можно развернуть вашу собственную инсталляцию WebSphere Liberty в облаке IBM Cloud, будто обычное Java-приложение. Инсталляция будет снабжена последней версией MicroProfile - открытого форума для сотрудничества над созданием микросервисов, основанных на Enterprise Java, - анонсированной 3-го октября 2017-го года.

Eclipse MicroProfile 1.2 построено на основе версии 1.1, привносит обновления для API конфигурирования приложения, а также добавляет набор новых API: проверку работоспособности (health check), устойчивость к сбоям (fault tolerance), метрики и распространение JWT. Как сказано на официальной странице проекта, цель MicroProfile - позволить сообществу развивать экосистему микросервисов на Enterprise Java в рамках коротких циклов разработки, выпуска и принятия спецификаций, некоторые из которых затем будут включены в Java JSR или другие стандарты. Сервер приложений WebSphere Liberty уже реализует данную спецификацию MicroProfile 1.2, достаточно лишь включить соответствующую возможность - microprofile-1.2 - в файл конфигурации сервера server.xml.

понедельник, 20 февраля 2017 г.

Визуализация и тестирование REST API с помощью Swagger на WebSphere Liberty

В последние годы все большую популярность набирает стандарт описания интерфейсов RESTful веб-сервисов Swagger. Фактически Swagger становится для RESTful-сервисов тем же, чем является WSDL для SOAP-сервисов. При этом разработчики серверов приложений активно добавляют поддержку данного стандарта в свои продукты. Вот и флагманский сервер приложений WebSphere Liberty корпорации IBM обзавелся новой возможностью apiDiscovery, позволяющей найти все доступные на сервере REST API и динамически создать Swagger-подобный интерфейс пользователя для тестирования найденных конечных точек.


В данной статье мы рассмотрим процесс реализации некоего REST API с помощью сервлетов, его документирования на Swagger и тестирования с помощью пользовательского интерфейса apiDiscovery. Дополнительно я расскажу о достаточно богатом механизме обнаружения сервером приложений доступных Swagger-документов и генерации таковых по аннотациям JAX-RS и Swagger.

четверг, 1 декабря 2016 г.

Сo-location как путь к высокой производительности Java EE приложений

Введение


Спецификация JDBC API, разработанная в рамках Java Community Process (JCP), определяет только лишь набор интерфейсов и базовых классов, которые в свою очередь должны быть реализованы разработчиками того или иного драйвера. Можно выделить четыре подхода к разработке драйверов JDBC:

  1. JDBC Driver - Type 1 (JDBC ODBC Bridge)

    Данный подход подразумевает, что код, написанный на языке Java, обращается к коду, реализованному на одном из нативных языков, поддерживаемых Microsoft, который уже в свою очередь общается с базой данных.

  2. JDBC Driver - Type 2 (Part Native Driver)

    Данный подход подразумевает, что код, написанный на языке Java, обращается к коду, реализованному производителем СУБД на нативном языке, который уже в свою очередь общается с базой данных.

  3. JDBC Driver - Type 3

    Данный подход подразумевает, что код, написанный на языке Java, обращается к коду, реализованному производителем сервера приложений, который уже в свою очередь общается с базой данных. В данном случае драйвер взаимодействует с программным обеспечением промежуточного слоя. Данный тип драйвера отличается особой гибкостью, поскольку не требует установки никакого кода на клиентской стороне и один драйвер может обеспечивать связь с несколькими типами СУБД.

  4. JDBC Driver - Type 4 (Thin Driver)

    Данный подход подразумевает, что реализованный производителем СУБД код драйвера, написанный на языке Java, напрямую взаимодействует с базой данных. Другими словами данный тип драйвера представляет собой чисто Java-библиотеку, транслирующую JDBC-запросы напрямую в специфичный протокол базы данных.

В мире распределенных систем наиболее используемым типом драйвера является JDBC Type 4, в то время как в мире мейнфреймов (IBM z Systems) принят другой подход. Целью данной статьи является продемонстрировать какие именно преимущества с точки зрения обеспечения высокой производительности можно получить, просто выбрав правильный тип драйвера.


понедельник, 18 апреля 2016 г.

Java EE 7 на большом железе - до 140 процессоров и 10 ТБ ОЗУ!

Очень хочу рассказать о том, что уже примерно год доступны все возможности Java EE 7 на большом железе, т.е. на вычислительной платформе, предоставляющей в ваше распоряжение до 140 процессоров и 10 ТБ оперативной памяти. Да, вы правы, речь идет о сервере приложений WebSphere Liberty Profile, работающем на мейнфрейме IBM z13.



среда, 13 января 2016 г.

Пишем простой RESTful веб-сервис на Spring Web MVC

Суровый разместил на GitHub'е новый репозиторий, в котором будет собирать примеры использования Spring Framework 4.x. И сегодня я поделюсь с уважаемыми читателями блога примером простого RESTful веб-сервиса, реализованного на базе фреймворка Spring Web MVC и не содержащего ни строчки XML за исключением pom.xml.


Архитектура сервиса


Задачей примера было продемонстрировать реализацию классической многослойной архитектуры, к которой тяготеет большинство приложений, построенных на основе Spring Framework. Точкой входа является контроллер MessageController, в который инжектируются "сервисы" MessageService и ZShopService:

пятница, 22 мая 2015 г.

А вот о работе

Как-то так получилось, что Суровый перестал радовать своих читателей и подписчиков хорошими техническими статьями. За последние несколько месяцев было сделано довольно много, но тема моя настолько специфична - Java и WebSphere Application Server на мейнфреймах IBM (теперь это называется z Systems), что я даже не знаю, будут ли технические статьи по данной теме восстребованы широкой общественностью.

Давайте лучше поговорим немного о другом.

Возможно среди читателей и подписчиков моего блога есть специалисты, эксплуатирующие WebSphere Application Server или другие продукты Middleware от IBM: WebSphere MQ, WebSphere Message Broker, IBM Integration Bus, CICS (!)). Возможно также в вашей компании используются средства мониторинга и автоматизации Tivoli. И все это богатство работает на мейнфрейме, или вы планируете миграцию на мейнфрейм. Наверняка у вас есть вопросы, какие-то замечания, предложения или даже проблемы, связанные с работой наших продуктов. Пожалуйста не стесняйтесь, просто пишите мне на почту psamolysov@ru.ibm.com. Если вы работаете у партнера, разрабатывающего программное обеспечение для мейнфреймов, или задумываетесь о поддержке вашим продуктом этой замечательной платформы, то так же прошу обращаться по любым возникающим вопросам.

Моя роль в IBM называется Client Technical Professional. Это значит, что каждую неделю я должен посещать заказчиков, общаться с их техническими специалистами и помогать решать возникающие вопросы. Помогать вам - это моя непосредственная рабочая обязанность, поэтому даже не думайте стесняться, не зависимо от того, куплена или нет вашей организацией поддержка на тот или иной продукт!

Отдельно отмечу (потому что хотя бы для меня самого это очень важно), в обращении за помощью нет ничего постыдного. Если вы попросили у меня совет или консультацию, то это не значит, что я хоть в чем-то умнее вас или являюсь более квалифицированным специалистом. Вовсе нет! Просто у меня есть бейджик с надписью IBM, который дает право обращаться к действительно умным коллегам внутри компании, включая разработчиков продуктов из зарубежных лабораторий и даже к архитектору IBM JVM (так мне недавно удалось ответить на один интересный вопрос нашего крупнейшего заказчика). Не использовать такие возможности на мой взгляд недальновидно.

Понравилось сообщение - подпишитесь на блог

среда, 3 декабря 2014 г.

Как подружить IDE Eclipse и WebSphere Liberty Profile

В шестой версии спецификации Java EE было введено понятие профилей. Как определено в спецификации, профиль - это набор технологий и API, предназначенный для создания соответствующего типа приложений. В Java EE 6 определены следующие профили:

  • Full Platform - предназначен для разработчиков, которым нужен полный набор технологий Java EE для создания корпоративных приложений.

  • Web Profile - обеспечивает поддержку веб-технологий и является подмножеством full platform. Предназначен для разработчиков, не нуждающихся в полном наборе технологий Java EE.

Хорошая новость заключается в том, что сервер приложений IBM WebSphere Application Server обеспечивает поддержку обоих профилей. Если вам нужна вся мощь платформы Java EE, то вы можете воспользоваться IBM WebSphere Application Server Full Profile, если же вам нужна удобная среда для разработки и эксплуатации веб-приложений с дополнительными возможностями (EJB, MOM, Web-services, NoSQL-СУБД, интеграция с z/OS), то к вашим услугам IBM WebSphere Application Server Liberty Profile, о работе с которым я расскажу в данной статье.