понедельник, 15 мая 2017 г.

Микросервисы, SOA и API: друзья или враги?


Оригинал: Microservices, SOA, and APIs: Friends or enemies? by Kim Clark, опубликован 21 января 2016.

Сравнение ключевых концепций архитектуры приложений и интеграции для развивающегося предприятия.


Введение


При сравнении микросервисной и сервисно-ориентированной (SOA) архитектуры практически невозможно прийти к согласию о том, как же все-таки они соотносятся друг с другом. Добавление в список еще и application programming interfaces (APIs) картину очевидно не проясняет. Некоторые могут сказать, что это вообще абсолютно изолированные друг от друга понятия, не имеющие ничего общего и предназначенные для решения разных задач. Другие заметят, что данные концепции разделяют общие принципы и созданы для достижения неких общих целей. Микросервисная архитектура может казаться этакой "тонкоструктурной (fine-grained) SOA" или "правильно внедренной SOA".

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

четверг, 16 марта 2017 г.

Oracle BPM Suite 12.2.1.2 Quick Start: установка, настройка, развертывание и тестирование бизнес-процесса на языке BPMN 2.0

Oracle BPM Suite - решение от корпорации Oracle для моделирования и исполнения бизнес-процессов предприятия с использованием нотации BPMN 2.0. Для моделирования бизнес-процессов используется интегрированная среда разработки JDeveloper. Корпорация Oracle распространяет специальный дистрибутив продукта, предназначенный для разработчиков, который включает в себя сервер приложений Oracle WebLogic, на котором работает BPM Suite, сам BPM Suite и интегрированную среду разработки JDeveloper - Quick Start.


В данной статье мне хочется поделиться с читателями информацией о том, как получить пакет Oracle BPM Suite 12.2.1.2 Quick Start с сайта edelivery.oracle.com, установить его на машину разработчика, создать первый бизнес-процесс в JDeveloper, настроить встроенный в среду разработки домен сервера приложений, включающий в себя BPM Suite, SOA Suite, Oracle Service Bus и использующий Apache Derby в качестве СУБД, развернуть созданный процесс в данном домене и запустить его тестовый экземпляр.


понедельник, 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.

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

Первое знакомство с Red Hat JBoss Fuse

Здравствуйте, коллеги.

Сегодня проводил семинар в Accenture Riga Delivery Center по поводу интересной для меня темы Red Hat JBoss Fuse и решил поделиться своими впечатлениями от этой сервисной шины с вами.

Что такое Red Hat JBoss Fuse? По сути это - среда исполнения для реализации набора паттернов интеграции корпоративных приложений (Enterprise Application Integration Patterns (EIP)) Apache Camel.


Данная среда исполнения поставляется в двух вариантах:

  • Apache Karaf - готовая к промышленному использованию реализация стандарта OSGi.

  • Red Hat JBoss Enterprise Application Platform - широко известный Java EE-совместимый сервер приложений с коммерческой поддержкой. К сожалению, Red Hat JBoss Fuse устанавливается только на версию 6.4.0 данного сервера приложений, реализующую лишь стандарт Java EE 6, что приводит к проблемам, некоторые из которых описаны ниже.

четверг, 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) принят другой подход. Целью данной статьи является продемонстрировать какие именно преимущества с точки зрения обеспечения высокой производительности можно получить, просто выбрав правильный тип драйвера.


пятница, 27 мая 2016 г.

Не очередями сообщений едиными или что такое федерализация данных

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

Одним из очевидных и наиболее популярных подходов к интеграции данных является их распространение путем передачи из базы данных одного приложения в базу данных другого. Tак как бизнес хочет видеть данные в каждом приложении, участвующем в бизнес-процессах компании, как можно быстрее, обмен информацией реализуется путем передачи небольших порций данных по очередям сообщений (синхронное распространение данных оставим вне рассмотрения, в последнее время оно не является мейнстримом, т.к. привносит с собой сильную связность между информационными системами). Поскольку современные решения класса Enterprise Service Bus (ESB) содержат удобнейшие зачастую декларативно настраиваемые адаптеры к большому количеству СУБД и провайдеров очередей сообщений (Message-oriented Middleware (MOM)), а также поставляются с визуальными редакторами, в разы ускоряющими разработку, то их и выбирают для решения вышеозначенной задачи. В итоге внедрение сервисной шины предприятия воспринимается как реализация асинхронного обмена данными между несколькими источниками, в большинстве своем представляющими собой реляционные базы данных тех или иных корпоративных приложений. Вариантом подхода является вставка данных не непосредственно в базу, а через некие сервисы, предоставляемые системой-приемником, что абстрагирует детали строения ее базы данных от разработчиков интеграции.



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

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

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