Интеграционная шина wso2 это

WSO2 — один из самых значимых вендоров интеграционных решений в мире

Видео:Цифровизация вашей компании при помощи WSO2 API Manager 4.0Скачать

Цифровизация вашей компании при помощи WSO2 API Manager 4.0

Forrester

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

Видео:Интеграционная шина - обмен данными между подразделениями предприятияСкачать

Интеграционная шина - обмен данными между подразделениями предприятия

Gartner

В исследовании Гартнера рассматриваются 4 поставщика решений, используемых в IoT. В отчете они рассматриваются с точки зрения предоставляемых способов интеграции, корреляции и анализа различных источников данных.

Видео:Интеграционная шина предприятия. Структура правила экспортаСкачать

Интеграционная шина предприятия. Структура правила экспорта

WSO2 это

Комплексная платформа

WSO2 предлагает комплексное решение, состоящее из более чем 20 продуктов, закрывающих весь спектр задач от интеграции и управления API до аналитики и управления правами доступа. Архитектура решения позволяет использовать только те продукты, которые необходимы для решения ваших задач.

100% Open-Source

Все продукты WSO2 распространяются под лицензией с полностью открытым исходным кодом. Это позволяет вам использовать продукты без каких-либо лицензионных платежей. Никаких черных ящиков — вы можете провести аудит или выполнить модификацию любых элементов.

Решение, которому доверяют

WSO2 используют ведущие компании мира. Такие гиганты как eBay, Cisco, Boeing доверили продуктам WSO2 решение критически-важных задач.

Сквозная интеграция

Все продукты компании WSO2 построены на одной платформе — Carbon, что обеспечивает сквозную интеграцию и единый подход к развертыванию и управлению всеми подсистемами комплекса.

Облачное решение

Вы можете развернуть компоненты WSO2 как в инфраструктуре своей организации, так и в частном, публичном или гибридном облаке. Поддержка облачных технологий заложена в основу архитектуры решений WSO2.

Видео:023 - WSO2 EI - Pass Parameter to EndpointСкачать

023 - WSO2 EI - Pass Parameter to Endpoint

Готовые решения WSO2

Каждое решение состоит из отдельных элементов. Вы можете спроектировать собственную систему, используя компоненты WSO2 как кубики построения Enterprise-архитектуры.

Управление API

WSO2 API Manager — это корпоративное решение, поддерживающее публикацию API, управление жизненным циклом, разработку приложений, управление доступом, ограничение скорости и аналитику в интегрированном комплексе.

Интеграция

WSO2 Enterprise Integrator — мощная интеграционная шина. Она обеспечивает обмен и преобразование данных между системами, SaaS-приложениями, сервисами и API. Решение включает ESB, брокер сообщений, сервер приложений, сервер служб данных, сервер исполнения бизнес-процессов и платформу для размещения микросервисов msf4j.

Идентификация и управление доступом

WSO2 Identity Server эффективно выполняет сложную задачу управления идентификацией, безопасностью и конфиденциальностью для корпоративных приложений, сервисов и API.

Умная аналитика

Интеллектуальный и высокоэффективный анализ продуктовых данных в реальном времени. WSO2 Data Analytics Server позволяет обрабатывать данные, идентифицировать шаблоны и реагировать в течение милисекунд.

Интернет вещей (IoT)

Теперь мобильные устройства и бытовая электроника могут быть частью вашего бизнеса.

WSO2 IoT Server позволяет подключаться и управлять своими устройствами. Можно управлять приложениями, настройками безопасности и данными, предусмотрена визуализация данных со счетчиков.

Видео:What is WSO2 Enterprise IntegratorСкачать

What is WSO2 Enterprise Integrator

Ключевые продукты WSO2

Видео:Опыт внедрения ESB интеграционной шины в ПАО «Газпром Нефть» Михаил ХаритоновСкачать

Опыт внедрения ESB интеграционной шины в ПАО «Газпром Нефть»  Михаил Харитонов

Для каких задач подходит WSO2

При каких типах архитектуры используется WSO2?

Мультикомпонентная архитектура, где требуются коммуникации между разными системами.

Какое количество систем можно подключить? Какие ограничения есть?

Какое количество транзакций может осуществлять система?

Транзакций могут быть миллионы в день. При необходимости в кластер просто добавляются ноды.

Что с настройкой доступа групп и конкретных пользователей?

Есть возможность сделать RBAC — Role Based Access Control.

Насколько сложно настроить и запустить такую кучу компонентов?

Все компоненты построены на одной платформе — Carbon. Поэтому всё программирование можно свести к работе с админкой — всё можно создать через неё. Все настройки тщательно и подробно описаны в документации.

Читайте также: Давление в шинах ява 360

Какова совокупная стоимость продукта? Что входит в стоимость?

В стоимость входит:
1. Саппорт первого уровня на русском
2. Поддержка WSO2 на уровне 24 на 7
3. Периодические патчи с исправлениями
4. Периодические патчи безопасности

Видео:WSO2 Live Dashboard DemoСкачать

WSO2 Live Dashboard Demo

Web-приложение WSO2 — добавляем шину

Видео:[Russian] Changing the IT landscape of Bank ZENIT with WSO2, WSO2 WebinarСкачать

[Russian] Changing the IT landscape of Bank ZENIT with WSO2, WSO2 Webinar

В прошлых постах серсии мы рассмотрели:

Теперь рассмотрим как реализовать проверку прав доступа на уровне доступа к данным. Для этого мы будем использовать интеграционную шину WSO2 ESB.

Видео:How to use Payload factory mediator wso2 EI 6.6.0 By ESB Intergration Part IIСкачать

How to use Payload factory mediator wso2 EI 6.6.0 By ESB Intergration Part II

Для чего нужна интеграционная шина

По идее, сам сервер WSO2 DSS имеет возмоность авторизовать доступ к сервисам — зачем нам промежуточный слой? На самом деле в данном случае — это просто пример. Но, при разработке сложных корпортативных информационных систем является правилом хорошего тона избегать прямого взаимодействия между системами. Иначе возникает интеграционное спаггети.

Интеграционная шина wso2 это

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

Интеграционная шина wso2 это

Одно из основных назначений шины — это реализация Proxy Service — в нашем случае это будет сервис между веб-приложением и WSO2 DSS на котором будет реализована авторизация запросов.

Интеграционная шина wso2 это

Видео:WSO2 Enterprise Integrator #1 - Components, Architecture, and FeaturesСкачать

WSO2 Enterprise Integrator #1 - Components, Architecture, and Features

Реализация Proxy Service-а

Для реализации будем использвать WSO2 ESB 4.9.0 — скачать можно с сайта WSO2. Установка шины описана в одном из предыдущих постов — она штатная.

Не забываем прописать Offset=3 в repository/conf/carbon.xml — таким образом сервер не будет конфликтовать с другими серверами WSO2 использующимися в примере. Соответсвенно панель администратора будет доступна по адресу: https://144.76.92.85:9446/carbon

Далее для создания простейшего Proxy Service:

  • входим в админку (admin/admin)
  • Main -> Manage -> Services -> Add -> Proxy Service
  • Выбираем Pass Through Proxy
  • Для создания сервиса нам надо знать исходный End-Point — для этого заходим в админку WSO2 DSS, идем в сервисы, кликаем на нашем сервисе и копируем URL end-point-а ( в нашем случае https://localhost:9445/services/WSO2HealthIT/) :

Интеграционная шина wso2 это

  • В WSO2 ESB при создании сервиса указываем имя: WSO2HealthITProxy и его end-point

Интеграционная шина wso2 это

  • Кликаем Create — простейший Proxy Service готов.

Видео:019 - WSO2 EI - Sequence TemplateСкачать

019 - WSO2 EI - Sequence Template

Изменения в Веб-Приложении

В нашем приложении мы захардкодили URL сервиса в двух местах:

  1. QueryPatientDetailServlet.java — переменная dataServiceEP
  2. RegisterPatientServlet.java — DSSServerURL

Заменим обе переменные на новый URL : http://localhost:8283/services/WSO2HealthITProxy (который теперь указывает на шину).

Деплоим приложение — проверяем что все продолжает работать. При этом в админке шины в информации о нашем proxy service-е мы можем увидеть, что работа идет именно через него (через статистику)

Интеграционная шина wso2 это

Видео:013 - WSO2 EI - Enrich MediatorСкачать

013 - WSO2 EI - Enrich Mediator

Интеграция XACML в Proxy Service

Как мы помним — штатным средством для описания прав доступа является протокол XACML — дальше мы научим шину управляеть доступом к сервису используя этот протокол.

Читайте также: Размер шин для короллы 150

Передача авторизационной информации из веб-приложения

Но для начала необходимо передать информацию о пользователе из приложения в шину. Для этого вносим изменения в классы QueryPatientDetailServlet и RegisterPatientServlet и инициализацию сервиса — добавляем информацию о пользователе в header-ы запроса

В дальнейшем ESB получит эти данные из заголовка и будет знать, «кто» вызвал сервис.

Добавляем Entitlement медиатор в Proxy Service

Теперь вносим изменения в наш Proxy Service. Кликаем Edit на странице сервиса.

Можно использовать графический редактор, но на практике проще использовать XML-редактор (Switch to Source View в редакторе).

Для начала нам надо получить пользователя из заголовка:

Далее добавляем сам сервис

Итак — аналогично EntitlementFilter в веб-приложении мы обращаемся к WSO2 IS ( https://localhost:9444/services ) запрашивая информацию может ли указанный пользователь выполнять текущую операцию или нет.

  • onReject — мы генерируем ошибку (makefault) которую потом обработаем в веб-приложении.
  • onAccept — мы передаем управление в исходный сервис

В out-sequence нам надо убрать заголовки запроса (относящиеся к безопасности и просто отправить ответ):

Добавляем правила доступа в WSO2 IS

Теперь надо добавить правиа доступа в WSO2 IS — аналогично тому, как мы это делали в свое время для веб-приложения

Логинимся в WSO2 IS (admin/admin) и далее Administration -> Add New Entitlement Policy -> write policy in XML

Берем dssOperationsProxy из исходников (https://github.com/akakunin/wso-health-tutorial/blob/3.0.x/is/dssOperationsPolicy.xml), сохраняем, далее «Publish to my PDP» и далее идем в Policy View и включаем Policy.

Не останавливаясь сейчас на формате XACML, в данном XML мы описали следующие правила:

Permissions user hasAccess URLAllow/ Deny
read.*/WSO2HealthITProxy/patientDetailsByNumberAllow
read.*/WSO2HealthITProxy/registerPatientDeny
write.*/WSO2HealthITProxy/patientDetailsByNumberAllow
write.*/WSO2HealthITProxy/registerPatientAllow

Видео:How to use DBLookup Mediator wso2 EI 6.6.0 By ESB Intergration Part IСкачать

How to use DBLookup Mediator wso2  EI 6.6.0  By ESB Intergration Part I

Добавляем обработку ошибок

Последним шагом будет обработка ошибок.

Обработка ошибок DSS

Наш Proxy Service «оборачивает» вызов к DSS. Если «что-то пойдет не так» то в сервисе будет вызван faultSequence. По этому, в наш сервис необходимо добавить

Так же необходимо будет создать в ESB Sequence: Manage -> Sequences -> Add Sequence с именем wso2HealthITFaultHandler и кодом из репозитория: https://github.com/akakunin/wso-health-tutorial/blob/3.0.x/esb/wso2HealthITFaultHandler.xml )

Как итог — если с возникнет какая-либо ошибка ( на стороне DSS или например ошибка доступа) клиент в веб-приложении получит SoapFault Exception. Соотвественно везде где мы обращаемся к сервису нам необходимо добавить обработку Exception-а:

  • В QueryPatientDetailServlet надо добавить следующий обработчик:
  • RegisterPatientServlet — просто поймать Exception

Как итог данного упражнения, мы добавили шину для связи между сервисами данных и веб-приложением, в которой реализовали проверку прав доступа и обработку ошибок.

Видео:Error handling with WSO2 Enterprise Service BusСкачать

Error handling with WSO2 Enterprise Service Bus

WSO2: Настройка прокси к сервису с аутентификацией по логину и паролю

Задача

Есть приложение, которое может запрашивать данные по определённому протоколу и есть сервис, который может отдавать данные, но по другому протоколу и требует авторизации по логину и паролю.
В приложении нет учётных данных необходимых для доступа к сервису. Необходимо подружить приложение и сервис.

Решение

Использовать шину: WSO2 Enterprise Service Bus, на которой настроить прокси-сервис.

Используем WSO2 ESB версии 4.7.0.

Создаём политики

Так как целевой сервис защищён по стандарту WS-Security, то и доступ к нему будем настраивать по всей строгости стандарта.
Политики создаются как ресурсы в локальном репозитории, в интерфейсе: Manage — Service Bus — Local Entries — Add Local Entries — Add In-lined XML Entry.

Политика для исходящих сообщений

Здесь и в дальнейшем имена могут даваться произвольные, но буду акцентировать на них внимание, потому что через них будут связываться все артефакты в одно целое
Указываем имя: service-policy
Указываем политику:

Основной частью в этой политике является указание имени пользователя целевого сервиса и класса, который в нашем случае просто подставит необходимый пароль, класс s.e.r.PasswordCallBackHandler:

Пакуем в jar и кладём в WSO2_HOME/repository/components/lib/.
Рестартуем WSO2.

Политика для входящих сообщений

Указываем имя: empty-policy.
Указываем политику:

Создаём Address Endpoint

Указываем имя: my-endpoint.
Указываем адрес сервиса.
В дополнительный опциях отмечаем использование WS-Security и указываем политики для исходящих и входящих сообщений созданные ранее.
Исходник Endpoint’а:

Создаём XSLT-преобразование сообщений

XSLT-преобразования создаются там же где и политики: Manage — Service Bus — Local Entries — Add Local Entries — Add In-lined XML Entry.

Преобразование входящего сообщения

Нам необходимо привести запрос нашего приложения к виду, который понимает сервис:
Указываем имя: in-xslt
Указываем преобразование:

Преобразование в исходящее сообщение

Нам нужно ответ сервиса привести к виду, понятному для приложения. Шаг идентичен шагу для входящего сообщения, только имя: out-xslt.

Создаём Proxy Service

В UI: Manage — Service — Add — Proxy Service — Custom Proxy
Указываем имя: external-service. По этому имени будет доступен ваш сервис на шине, например: localhost:8280/services/external-service.
В нашем случае снимаем отметку с протокола https.
Дальше переключаемся в режим исходно кода (switch to source view) и приводим содержимое приблизительно к следующему:

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

Дополнительно

Чтобы следить за тем, во что превращает наша прокси сообщения, использовал fiddler
Прокси пробрасывает заголовок Action пришедшие из приложения, а сервис ругается?

Добавляем медиаторы в последовательность прокси сервиса, удаляем заголовок Action:

Прокси возвращает данные в некорректной кодировке?

Указываем кодировку, в которой возвращаем сообщения:

Ответ сервиса состоит из нескольких частей?

WSO2 по умолчанию считает что ответ должен состоять из одной части, поэтому передают на преобразование то что находится по пути: s11:Body/child::*[position()=1] | s12:Body/child::*[position()=1], как результат мы можем трансформировать только первую часть, чтобы это исправить меняем вызов преобразователя в сервисе:

… и учитываем это в преобразователе:

Нерешённые вопросы

Пришлось настраивать две политики безопасности

Есть ощущение что можно обойтись одной, но с единой политикой выходила ошибка, о том, что ответ сервиса не содержит заголовков безопасности. А он действительно их не содержит. Чтоб это обойти пришлось писать пустую политику для ответа.

Не найдено встроенного решения для хранения учётных данных стороннего сервиса

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

  • Свежие записи
    • Нужно ли менять пружины при замене амортизаторов
    • Скрипят амортизаторы на машине что делать
    • Из чего состоит стойка амортизатора передняя
    • Чем стянуть пружину амортизатора без стяжек
    • Для чего нужны амортизаторы в автомобиле
    • Правообладателям
    • Политика конфиденциальности

    Автоподбор © 2023
    Информация, опубликованная на сайте, носит исключительно ознакомительный характер


    🔍 Видео

    How to configuration analytics EI WSO2Скачать

    How to configuration  analytics EI WSO2

    011 - WSO2 EI - Filter MediatorСкачать

    011 - WSO2 EI - Filter Mediator

    001 - WSO2 - Enterprise IntegratorСкачать

    001 - WSO2 - Enterprise Integrator
Поделиться или сохранить к себе:
Технарь знаток