вторник, 22 апреля 2014 г.

Возможности Oracle SOA Suite для интеграции унаследованных приложений

Возможности Oracle SOA Suite для интеграции унаследованных приложений

В данной заметке мы рассмотрим возможности, которые предоставляет Oracle SOA Suite для подключения унаследованных приложений к сервисно-ориентированной инфраструктуре предприятия.

Прежде всего стоит оговориться, что под унаследованными приложениями мы будем понимать приложения, которые не предоставляют возможности подключения с помощью стандартного механизма интеграции - Web Service'ов и в то же время не являются хорошо известными и широко используемыми корпоративными приложениями, т.е. к ним не существует стандартных адаптеров. Таким образом такие лидеры рынка как SAP, OeBS, JDEdwards и Siebel не попадают под наше определение унаследованных приложений.

Теперь можно рассмотреть конкретные механизмы интеграции, предлагаемые стеком продуктов Oracle Fusion Middleware. Для Oracle SOA Suite данными механизмами являются технологические адаптеры.


Технологические адаптеры Oracle SOA Suite реализованы по спецификации J2EE Connector Architecture, что обеспечивает единые принципы разработки, а так же упрощает администрирование. К тому же использование открытой спецификации позволяет сторонним разработчикам реализовывать свои адаптеры. Замечательный пример реализации дополнительного адаптера и его интеграции в JDeveloper - адаптера к SSH - приведен в презентации наших соотечественников Дмитрия Нефедкина и Дмитрия Володина Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW.

Однако рассмотрим все же стандартные адаптеры, поставляемые вместе с Oracle SOA Suite.


DB Adapter

Адаптер для подключения к базам данных, DB Adapter. Используется для получения и/или изменения информации в базах данных, работающих под СУБД различных производителей. Незаменимый адаптер при подключении к унаследованным системам, построенным по двузвенной архитектуре - данные, бизнес-логика и API для доступа к бизнес-логике находятся в базе данных. Сам Oracle SOA Suite при этом выступает клиентом к базе данных, таким же как приложение на Delphi или Oracle Forms. Данный адаптер позволяет выполнять следующие операции:

  • вызывать хранимые процедуры;

  • осуществлять последовательный опрос (полинг) таблиц и представлений с целью обнаружения изменений;

  • осуществлять стандартные запросы к базе данных: выбор, вставку, обновление, вставку-обновление и удаление записей;

  • осуществлять произвольные запросы к базе данных.


Подробнее ознакомиться с настройкой адаптера для вызова хранимых процедур можно в заметке Практический пример построения сервиса на Oracle Service Bus. Хороший обзор всех основных возможностей данного адаптера приведен так же в главе 7 Communicating with the Database книги Oracle Service Bus 11g Development Coockbook.

JMS Adapter

Java Message Service (JMS) является стандартным способом обмена сообщениями между приложениями, построенными на базе платформы Java EE. В состав Oracle SOA Suite входит адаптер, позволяющий отправлять сообщения в JMS-очередь, считывать сообщения из очереди, а так же выполнять операции вида "запрос-ответ" с помощью JMS, при этом данные операции могут выполняться как синхронно, например с помощью операции Invoke в BPEL, так и асинхронно, путем отправки сообщения в очередь запросов и последующего отложенного считывания сообщения из очереди ответов.


Адаптером поддерживаются следующие типы сообщений:
- текстовые, в частности обмен с помощью XML;
- байтовые;
- пары ключ значение (MapMessages).

JMS-адаптер как и DB-адаптер поддерживает транзакции. Подробнее про настройку транзакционного взаимодействия посредством JMS-адаптера можно прочитать в заметке Транзакционное чтение из JMS-очереди в Oracle SOA Suite, а про использование MapMessages - в заметке Формирование MapMessage с помощью JMS-адаптера Oracle SOA Suite.

AQ Adapter

Адаптер, предназначенный для обмена сообщениями посредством подсистемы Oracle Advanced Queuing - очередей сообщений, реализуемых СУБД Oracle. Использование данного адаптера совместно с AQ-очередями является хорошей заменой DB-адаптеру, осуществляющему полинг таблиц событий с целью захвата изменений данных в унаследованном приложении.

Подобно JMS-адаптеру AQ-адаптер поддерживает операции: считывание из очереди (Dequeue), запись в очередь и асинхронное взаимодействие вида "запрос-ответ" (Enqueue/Dequeue).


MQ Adapter

Одной из самых распространенных в мире реализаций программного обеспечения промежуточного слоя, основанного на обмене сообщениями (Message Oriented Middleware, (MOM)) является IBM WebSphere MQ (MQ Series). Естественно, что Oracle SOA Suite содержит адаптер, позволяющий подключаться к данной реализации очередей.

MQ Adapter позволяет реализовать следующие операции: запись сообщения в очередь (Put), в том числе синхронное считывание из очереди (Get), синхронная/асинхронная отправка сообщения в очередь запросов и считывание ответа из очереди ответов (Send Message to MQ and Get Reply/Reports), синхронное/асинхронное считывание сообщения из очереди и запись в другую очередь (Get Message from MQ and Send Reply/Reports).


К достоинствам адаптера следует отнести встроенную поддержку родных IBM'овских форматов: CICS и IMS при считывании данных.


А так же поддержку массовых операций - записи одновременно в несколько очередей при выполнении операции Put.


File Adapter и FTP Adapter

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

Файловый адаптер поддерживает следующие операции: асинхронное считывание файлов (Read File), по сути - полинг директории на диске, запись файла (Write File), синхронное считывание файла (Synchronous Read File), позволяет по команде считать содержимое выбранного файла, а так же получение списка файлов в одном или нескольких каталогах (List Files).


Одним из преимуществ файлового адаптера Oracle SOA Suite является т.н. Native Format Builder, доступный при нажатии на "шестеренку" на странице Messages мастера настройки адаптера.


Native Format Builder позволяет построить XSD-представление файла на основе его формата. Поддерживаются следующие типы форматов:

- поля переменной длины, разделенные специальными символами (Delimited);
- поля фиксированной длины (Fixed Length);
- сложные типы (записи, которые могут включать в себя несколько различных типов);
- XML, описанный с помощью DTD;
- Cobol Copybook.


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


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


HTTP Binding

Для интеграции с приложением, имеющим RESTful API можно использовать HTTP Binding. Данный адаптер позволяет как сделать разрабатываемый композит доступным по протоколу HTTP (режим Service, при этом можно выбрать реализуемый шаблон обмена сообщениями: однонаправленный обмен или "запрос-ответ"), так и наоборот - подключиться в композите к существующему сервису (режим Reference).


Данный адаптер поддерживает как GET, так и POST HTTP-запросы, при этом для POST-запросов можно выбрать представление содержимого: или url-encoded, или XML.

EJB Service

Технология Enterprise Java Beans является стандартом в мире Java EE для построения компонентов, реализующих бизнес-логику. В состав Oracle SOA Suite входит адаптер, позволяющий использовать композитное приложение как EJB, а так же наоборот - подключать EJB-компоненты к композитному приложению. При этом все взаимодействие осуществляется в рамках распределенных транзакций, тем самым обеспечивая согласованность изменения данных при интеграции приложений.


Заключение

Мы рассмотрели стандартные средства интеграции с унаследованными системами, входящие в поставку Oracle SOA Suite. Приведенный в данной статье список конечно же не является исчерпывающим. Oracle предлагает более трехсот адаптеров для подключения к различным системам, в том числе и таким известным как SAP ERP, Oracle e-Business Suite, JDEdwards, Siebel CRM и Oracle Fusion Applications. Например у Сурового есть опыт подключения SAP ERP к Oracle SOA Suite с помощью соответствующего адаптера, причем SAP ERP являлся как источником, так и приемником сообщений. Впечатления довольно положительные.

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

Для подключения систем, которые не могут общаться с внешним миром никак иначе, чем публикуя и/или считывая файлы, приходится использовать файловый и FTP-адаптеры. При этом под невозможностью общаться иначе как следует понимать не столько ограничения самого программного обеспечения, сколько ограничения конкретного внедрения, когда сначала интеграция была не нужна, а затем такая необходимость появилась, но приглашать специалистов по системе дорого. Таким образом через FTP-адаптеры мы реализовывали подключение IBM FileNet к Oracle SOA Suite.

В крупных сервисно-ориентированных инфраструктурах, включающих в себя лидера рынка MOM - IBM WebSphere MQ - по понятным причинам используется MQ Adapter, правда в России я практически не видел, чтобы в качестве MOM использовался MQ, а в качестве средства интеграции при этом - продукты Oracle, однако, судя по презентациям, на Западе такие решения встречаются.

Комментариев нет:

Отправить комментарий