Главная » Хабрахабр » [Из песочницы] IBM Integration Bus и с чем его едят

[Из песочницы] IBM Integration Bus и с чем его едят

image

Добрый день, уважаемый читатель.

Как упоминается в Википедии это — связующее программное обеспечение, обеспечивающее централизованный и унифицированный событийно-ориентированный обмен сообщениями между… и далее по тексту. Существует такой класс продуктов как ESB. Одним из таких ESB является IBM Integration Bus (IIB), до 9 версии именовался IBM Message Broker.
Несколько лет назад я столкнулся с таким продуктом как IIB. Примеров таких ESB не так много и применяются они достаточно узко. Данный пост позволит представить эту самую интеграционную шину во всей красе и помочь таким же ищущим как я. Пытаясь понять, что это за зверь, я обнаружил, что упоминаний о нём в русскоязычном интернете крайне мало.

Именно там, где большой документооборот и высокие требования к надёжности. В России данных продукт применяется достаточно ограниченно в банковской, страховой и логистической сфере. Как там применяется шина я до конца не знаю, но возможно для телеметрии (MQTT). Также недавно большой газовый проект искал специалистов по IIB.

Скажем система X создаёт в своей БД запись в таблице и при её появлении мы хотим вызывать REST API другого приложения с JSON внутри, где будут передаваться поля нашей записи, и проставлять метку об отправке в другой таблице приложения X. Суть данного программного обеспечения связать N систем между собой, даже если эти системы имеют абсолютно разные интерфейсы и форматы. (Когда одно приложение лезет в базу другого это плохо, но такое бывает!) Вот так выглядит типичная задача для потока IIB. И это всё с поддержкой транзакционности и гарантированной доставкой.

На чём ведётся разработка в IIB

Одной из самых удобных вещей в IIB это графическое программирование. Когда в среде Eclipse на поле вытягиваешь с палитры ноды, соединяешь их между собой и вжух, всё работает.

Выглядит это так:

image

Для трансформации сообщений или логики основной язык это ESQL (Extend SQL). Но писать код обычно тоже нужно. Синтаксически похож на PL/SQL, но заточен для работы с древовидными структурами данных.

CREATE PROCEDURE CopyMessageHeaders() BEGIN DECLARE I INTEGER 1; DECLARE J INTEGER; SET J = CARDINALITY(InputRoot.*[]); WHILE I < J DO SET OutputRoot.*[I] = InputRoot.*[I]; SET I = I + 1; END WHILE; END;

Также есть поддержка нескольких языков программирования:

  • Java
  • .NET
  • PHP

Один из удобных способов трансформации сообщения из одного формата в другой это Data Mapping:

image

Очень наглядно, в отличии от того, если делаешь это в коде.

Для этого на политре есть достаточно большое количество Input узлов. Выше я затронул вопрос трансформации сообщений, но до этого сообщение нужно получить. Самые распространённые в моей практике это:

  • MqInput
  • FileInput
  • SOAPInput
  • HTTPInput
  • TimeoutNotification

Для вывода сообщение с результатом будет примерно тот же набор. Для отдельных случаем есть возможность написть свои узлы для ввода, вывода или трансформации сообщение.

До последних версий IIB был неразрывно связан с IBM MQ, но в последней версии IIB (IBM App Connect Enterprise 11) это уже не требуется.

Если будет интерес к теме, я продолжу повествование. Так как это первый пост, я его сделал ознакомительным.

Полезные ссылки:

IBM Knoledge Center
Форум


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

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Из песочницы] ВИЧ – методы лечения от первых лекарств до сегодняшнего дня

Прежде, чем приступить к изложению материала, хотелось бы сказать несколько слов о себе: участник сообществ по борьбе с отрицанием ВИЧ („ВИЧ/СПИД диссидентством“): в 2016-2018 годах „ВИЧ/СПИД диссиденты и их дети“, с 2018 года – „ВИЧ/СПИД отрицание и альтернативная медицина“. Это ...

Изюминки прошедшей Moscow Python Conf++ 2019: трансформация в площадку для общения

Самыми горячими темами Moscow Python Conf++ оказались асинхронная разработка, а также сопоставление Python, его лучших практик и инструментария с аналогами из других языков, и его место в ландшафте современной разработки. Плюс мы пригласили выступить Бенджамина Петерсона, одного из разработчиков CPython, ...