Oracle Enterprise Service Bus

Oracle Enterprise Service Bus
Oesb-logo.svg
Разработчики: Oracle Corporation
Выпущена: 1 October 2006 года; 15 years ago (2006-10-01)
Постоянный выпуск: 12.2.1.3.0 (в составе Oracle SOA Suite)
Состояние разработки: Активное
Написана на: Java
Операционная система: GNU/Linux, MS-Windows
Веб-сайт https://www.oracle.com/middleware/technologies/soasuite.html

Oracle Enterprise Service Bus (Oracle ESB) – основной компонент сервисно-ориентированной архитектуры, разработанный компанией Oracle Corporation. Oracle ESB используется для подключения, преобразования, маршрутизации бизнес-документов в виде сообщений в формате XML на предприятии и за его пределами. Oracle ESB также позволяет осуществлять мониторинг и управление бизнес данными с минимальным воздействием на существующие приложения. Реализуется как набор веб-служб, взаимодействующих по протоколу доступа к объектам SOAP (Simple Object Access Protocol).

Общие сведения и структура

Oracle Enterprise Service Bus является основой для служб, которые используют сервис-ориентированную архитектору (SOA) и событийно-ориентированную архитектуру (EDA). Oracle ESB является компонентом Oracle SOA Suite. Данный пакет обеспечивает интегрированную среду разработки и предоставляет общую архитектуру для разработки корпоративных приложений. Oracle SOA Suite позволяет создавать, управлять и организовывать службы в составные приложения и бизнес-процессы. Oracle ESB состоит из следующих компонентов[Источник 1]:

  • ESB Server – Сервер, проверяющий раздел управления на наличие обновлений с сервера ESB Metadata Server и обновляющий его кэш.
  • Oracle ESB Control – веб-интерфейс, предоставляющий возможность управления, администрирования и мониторинга служб, зарегистрированных с помощью ESB Metadata Server.
  • ESB Metadata Server – база данных, хранящая метаданные ESB, такие как: схемы, преобразования и правила маршрутизации. На этот сервер регистрируются сервисы ESB, которые были разработаны в среде Oracle JDeveloper и настроенные с помощью Oracle ESB Control.
  • Oracle JDeveloper – графическая среда разработки, моделирования, редактирования и проектирирования служб, входящих в систему Oracle Enterprise Service Bus.
Системные требования Oracle ESB[Источник 2]
Элемент Минимальные требования
Частота процессора 1 ГГц
Оперативная память 1.5 ГБ
Свободное место на ЖД 2 ГБ
Размер раздела SWAP 1.535 ГБ
Веб-Браузер Internet Explorer 6.0 SP2, Netscape 7.2, Mozilla 1.7, Firefox 1.0.4, Chrome

Возможности

Создание соединений

Подключения и соединения в Oracle ESB происходят с помощью различных служб, а также с помощью протокола SOAP. Службы вызова протокола SOAP обеспечивают связь с внешними клиентами SOAP, такими как Oracle Business Process Execution Language Process Manager, Apache Axis и Microsoft .NET Framework. Есть возможность вызывать службы Oracle ESB из этих клиентов или эти продукты из Oracle ESB. Oracle ESB использует привязки WSIF (Web Services Invocation Framework) в документах WSDL (Web Services Description Language) для выполнения собственных вызовов Java с помощью внешнего интерфейса. WSIF также используется внутри структуры JCA (Java EE Connector Architecture). Адаптеры Oracle Application Server предоставляют двунаправленный доступ к данным в режиме реального времени к любому источнику данных на предприятии. Адаптер прослушивает или опрашивает события в исходном приложении. При прослушивании событий адаптер регистрируется как «слушатель» приложения, который настроен и готов для передачи событий на контроллер адаптера. Адаптер также может опросить серверное приложение, базу данных или файл для поиска событий, которые отслеживаются Oracle Enterprise Service Bus. Сервер Oracle ESB Server позволяет определять входящие и исходящие службы адаптера. Входящая служба адаптера получает данные из внешнего источника данных и преобразует их в XML-сообщение. Служба исходящего адаптера отправляет данные в целевое приложение путем преобразования XML-сообщения в формат целевого приложения. Сервер Oracle Enterprise Service Bus в настоящее время поддерживает следующие адаптеры Oracle: cлужба адаптера протокола FTP (File Transfer Protocol), базы данных, JMS (Java Message Service), MQ (Message Queue), AQ (Oracle Advanced Queuing), приложения Oracle и адаптеры других разработчиков.

Преобразование документов

Oracle ESB включает в себя преобразователь данных (Data Mapper), запущенный в среде Oracle JDeveloper, работа которого основана на стандартном паттерне проектирования. Приложение создаёт файл XSL (eXtensible Stylesheet Language) для преобразования данных из одной схемы XML в другую, что позволяет обмениваться данными между приложениями, использующими разные схемы. На рисунке 1 показан инструмент преобразования данных Oracle JDeveloper, который используется для сопоставления одной схемы XML с другой. Схема на рисунке разделена на три столбца. Первый столбец содержит исходные элементы (помеченные как Source), второй столбец показывает связи сопоставления между исходными и целевыми элементами (без метки), а третий столбец содержит целевые элементы (помеченные как Target). В этом примере в первом столбце перечислены элементы в CommonCustomer.xsd, а в третьем столбце перечисляются элементы в CustomerDB.XSD.

Рисунок 1 – Пример сопоставления одной схемы XML с другой

Маршрутизация на основе содержимого и заголовка

Данные, содержащиеся в XML-сообщениях, распространяются из исходного приложения в целевое приложение с помощью служб маршрутизации. Служба маршрутизации определяет способ передачи сообщения из одной точки в другую в среде Oracle ESB так, как это определено правилами маршрутизации, применяемыми к XML-сообщению. Есть возможность определить правила маршрутизации сообщений на основе содержимого сообщений и на основе фильтрации заголовков. Параметры, использующиеся для конфигурации правил маршрутизации:

  • Выражение фильтра;
  • Применяется ли преобразование документа;
  • Является ли выполнение синхронным или асинхронным;
  • Уровень приоритета для выполнения.

Архитектура

На рисунке 2 изображена схема, иллюстрирующая архитектуру Oracle ESB. Службы ESB разработаны и настроены с помощью пользовательских интерфейсов Oracle JDeveloper и Oracle ESB Control. Проект ESB, содержащий службы, должен быть зарегистрирован на сервере ESB. Сервер ESB поддерживает несколько протоколов: HTTP/SOAP, JMS, JCA, WSIF и Java. Они обеспечивают гарантированную и надежную доставку сообщений с использованием синхронных/асинхронных запросов/ответов или моделей публикации/подписки. Сервер ESB не поддерживает программный интерфейс вызова удаленных методов в языке Java. (Remote Method Invocation).

Рисунок 2 – Архитектура Oracle Enterprise Service Bus

При регистрации проекта на сервере ESB файлы EDB (Enterprise Database) развертываются на сервере метаданных. Далее на этом сервере выполняются следующие задачи JMS: управление, мониторинг, повторная отправка и отсрочка сообщений. Также на сервере метаданных работают следующие интерфейсы: консоль, WSIL, WebDAV (Web Distributed Authoring and Versioning) и провайдер SOAP. Созданные или обновленные файлы определений служб переводятся и записываются в реляционной форме в формате ORAESB в репозитории базы данных, а файлы XSD, XSL, WSDL и файлы связи записываются в файловую систему. Файлы конфигурации сервиса содержат указатели на файлы XSD, XSLT, WSDL и файлы связи.

Сервер среды ESB или несколько серверов в кластере обращаются к файлу управления на сервере метаданных для кэширования информации о службах среды ESB. Серверы среды ESB прослушивают раздел управления, чтобы получать уведомления о любых изменениях метаданных, а также выполняют следующие операции: хранение кэша, хранение логов ошибок JMS, хранение ядра XML/XSL и выполнение служб адаптера JCA.

Пример использования

В большинстве бизнес-сред данные клиентов хранятся в разных источниках: у бизнес-партнеров, в устаревших и корпоративных приложениях, в базах данных и т.д.. Задача интеграции этих данных может быть решена с помощью Oracle Enterprise Service Bus. Система обеспечивает доступ к данным в режиме реального времени для всех приложений, включенных в сеть.

Например, Oracle Enterprise Service Bus может принимать данные, содержащиеся в текстовом файле, преобразовывать их в формат, подходящий для обновления базы данных с информацией о клиентах. Пример использования и возможностей Oracle ESB приведен на рисунке 3:

Рисунок 3 – Пример использования Oracle ESB

В данном примере:

  • Oracle ESB получает данные клиента из файловой системы в виде текстового файла через службу адаптера входящих файлов CustIn. Служба адаптера CustIn отправляет сообщение службе маршрутизации с именем CustIn_RS.
  • Служба маршрутизации CustIn_RS преобразует файл в формат XML и отправляет сообщение службе маршрутизации CustOut_RS.
  • Служба маршрутизации CustOut_RS направляет сообщение в службу файлового адаптера CRMOut.

Oracle ESB позволяет настраивать работу ожидающих сервисов, например:

  • CustOut_RS может определить, нужно ли отправлять информацию из сообщения в базу данных с помощью фильтров и правил маршрутизации.
  • Если сообщение послано на сервис CustDBOut, данный сервис должен вызваться немедленно, и управление не будет возвращаться до тех пор, пока сервис не получит сообщение.
  • Если сообщение послано на сервис CRMOut, управление возвращается незамедлительно.


Установка

Установка Oracle SOA Suite

  1. Необходимо загрузить с официального сайта Oracle Application Server SOA Suite
  2. Перейти на Disk1
  3. Запустить setup.exe
  4. Выбрать пункт Basic Install
  5. Ввести данные: имя пользователя и пароль (Рисунок 4)
  6. Начать установку, нажав кнопку Install
  7. Выбрать компоненты (включая Oracle ESB) (Рисунок 5)
  8. После установки всех компонентов необходимо выйти из меню установке, нажав Exit
Рисунок 4 – Ввод имени пользователя и пароля при установке
Рисунок 5 – Выбор компонентов при установке

Запуск и остановка сервисов Oracle ESB

  • Для использования интерфейса работы с сервисом Oracle ESB необходимо перейти в терминале в папку
Oracle_Home\opmn\bin
  • Для запуска всех сервисов
opmnctl startall
  • Для проверки статуса сервисов
opmnctl status
  • Для остановки сервисов
opmnctl shutdown

Настройка ESB c помощью JDeveloper

Для создания соединений необходимо использовать программу Oracle JDeveloper.

Создание соединения с приложением

Для создания соединения, контролирующего связь приложения с сервером необходимо[Источник 3]:

  1. После запуска JDeveloper перейти во вкладку View и выбрать пункт Connection Navigator для отображения текущих соединений.
  2. Выбрать пункт New Application Server Connection для запуска мастера создания соединения.
  3. Выбрать название соединения и его тип.
  4. Ввести имя пользователя, пароль, место хранения пароля.
  5. Ввести параметры соединения: имя хоста, порт OPMN, имя группы/OC4J.
  6. Провести тестирование с помощью доступной утилиты.

Создание соединения с базой данных

Мастер настройки соединения к базе данных аналогичен мастеру создания соединения с приложением. Для создания соединения необходимо:

  1. В меню Connection Navigator выбрать пункт New Database Connection.
  2. Выбрать название соединения и его тип.
  3. Ввести имя пользователя, пароль, место хранения пароля.
  4. Ввести параметры соединения: драйвер, имя хоста, порт JDBC, SID, библиотека драйвера.
  5. Провести тестирование с помощью доступной утилиты.

Создание соединения с сервером интеграции

Мастер настройки соединения к базе данных аналогичен мастеру создания соединения с сервером интеграции. Для создания соединения необходимо:

  1. В меню Connection Navigator выбрать пункт New Integration Server Connection.
  2. Выбрать название соединения
  3. Ввести параметры соединения: сервер приложения, имя хоста, порт.
  4. Провести тестирование с помощью доступной утилиты.

Создание приложений и проекта ESB

Для дальнейшей настройки Oracle ESB необходимо создать файл проекта ESB. ESB Project - это все файлы, связанные с Oracle ESB. Приложение и проект создаются в Oracle JDeveloper через вкладку New.

Создание систем ESB и групп служб

Системы ESB и группы служб являются единицами организации служб для Oracle ESB. Они создаются через меню Applications Navigator во вкладке Design -> Create System/Group.

Добавление файлов в проект

Рисунок 6 – Пример импортированных файлов в проект

Добавление файлов в ESB Project необходимо для определения структуры сообщений, которые будут интегрированы в систему с помощью Oracle ESB. Для перехода в меню импорта необходимо перейти в меню File и нажать кнопку Import. Пример добавленных файлов в проект демонстрируется на рисунке 6.

Регистрация проекта ESB и сервисов с помощью сервера ESB

Для регистрации проекта ESB и служб используется подключение к серверу интеграции. Регистрация на сервере метаданных ESB необходима для запуска и управления службами в Oracle ESB Control. Для регистрации необходимо:

  1. Перейти в меню Application Navigator данного проекта.
  2. Выбрать пункт Register with ESB.
  3. Выбрать локальный сервер ESB или другой сервер интеграции.

Синхронизация служб с сервера ESB

При изменении метаданных на сервере ESB необходимо получать обновленные данные в JDeveloper. Для этого существует опция Sync from ESB Server во вкладке проекта Design.

Доступ к панели управления Oracle ESB Control

Панель управления Oracle ESB Control (рисунок 7) является веб-интерфейсом, к которому можно обратиться после запуска служб и настройки Enterprise Service Bus по адресу:

http://host_name:port_number/esb
Рисунок 7 – Oracle ESB Control

Заключение

Oracle Enterprise Service Bus является отличным решением в случае необходимости создания связи между всеми корпоративными приложениями на базе обмена сообщений. Данная система повышает скорость передачи информации в компании (на предприятии) и обладает большим количеством средств конфигурации, обеспечивается достаточная гибкость в настройках. Однако данное решение имеет некоторые недостатки:

  • Сложность реализации, растущая пропорционально количеству используемых сервисов
  • Требование больших ресурсов

Источники

  1. Introduction to Oracle Enterprise Service Bus // Oracle® Enterprise Service Bus Developer's Guide. [2006 — ]. URL: https://docs.oracle.com/cd/E11036_01/doc.1013/e10295/esb_intro.htm (дата обращения 05.04.2019).
  2. Installing the Oracle Enterprise Service Bus // Oracle® Enterprise Service Bus Quick Start Guide. [2006 — ]. URL: https://docs.oracle.com/cd/E11036_01/integrate.1013/b28212/install.htm (дата обращения 05.04.2019).
  3. Developing the Enterprise Service Bus // Oracle® Enterprise Service Bus Developer's Guide. [2006 — ]. URL: https://docs.oracle.com/cd/E11036_01/doc.1013/e10295/esb_jdev.htm (дата обращения 05.04.2019).