SlideShare a Scribd company logo
1 of 45
Download to read offline
API led strategy with WSO2
November 10, 2020
Hello!
Stefano Negri
Solution Architect
stefano@wso2.com
https://www.linkedin.com/in/stefano-negri-0b6730/
IT as business value
IT moved from cost center (supporting business) to business
enabler, capable to generate revenue.
Examples are:
- UBER, AIRBNB, Flixbus,...
- Blockchain
- Open Banking, Payment
systems
- ….
The value is in IT Digital Assets:
- Enterprise Data
- Applications
- Workflow processes
- System based on proprietary
protocols
- ….
API as a product
API products enable enterprise data sources and processes (IT
digital assets) to be monetized
But API is a middleware!
APIs are products, and they are the mechanism through which value is exchange in
modern businesses
Building the API: Integration
SOAP
REST
XXX
Building the API: API Management
REST
SOAP
XXX
API first development
WSO2 Enterprise Integrator
WSO2 API Manager
Bottom up approach: digitalise your assets
Functional
backends
External and internal
client apps
API
Manager
Integration
Layer
Employee
API
Employee
API
Employee
1
2
Functional
backends
External and internal
client apps
API
Manager
Integration
Layer
Account
API
Account
API
Account
1
2
Account (swagger)
2
2
Top down approach
WSO2ВЗЕНИТЕ
ИЗМЕНЕНИЕ ИТ-ЛАНДШАФТА БАНКА ЗЕНИТ
С ПОМОЩЬЮ ПРОДУКТОВ WSO2
• Банк учрежден в 1994 г.
• Уставный капитал 33 545 млн руб.
Основной акционер – ПАО «Татнефть»
им. В. Д. Шашина (71,12%).
• В сентябре 2018 года был запущен
поэтапный процесс интеграции дочерних
банков. В объединенный банк вошли:
• Банк ЗЕНИТ
• Девон-Кредит (ноябрь 2019)
• Липецккомбанк (ноябрь 2019)
• Спиритбанк (май 2020 года)
• Банк ЗЕНИТ Сочи (май 2020 года)
• Сеть подразделений:
• головной офис (Москва);
• 5 филиалов (Санкт-Петербург, Ростов-на-
Дону, Казань, Новосибирск, Екатеринбург);
• 61 дополнительный офис;
• 48 операционных касс вне кассового узла;
• 16 операционных офисов.
2
Онас
Банк ЗЕНИТ –
банк группы компаний «Татнефть»
Интеграция
Банковской группы
Модернизация
систем ДБО
Повышение
эффективности
Продвижение
розничных продуктов
Кросс-продажи
3
Новаястратегия-новыезадачи
Большое
количество систем
Внедряются новые
системы, медленно
угасают унаследованные
системы, включая
системы дочерних
банков.
Системы
меняются
Новые системы
приходят на смену
старым, некоторые
исчезают или
объединяются с
другими системами.
Повторное
использование API
Часто одна и та же
информация или
функциональность
требуется разным
системам.
Разделение
доступа
Доступ различных
систем к различным
подмножествам
имеющихся API.
Стандартизация
и учет
Унификация способов
взаимодействия для
каждой системы,
создание реестра API.
4
ТежезадачивпереводенаязыкIT
5
WSO2!
Нопочему?
• Проверенное решение
• Гартнер плохого не посоветует
• Комплексное решение на единой
платформе.
• Open Source
• Можно было использовать
бесплатно без функциональных
ограничений.
• Есть партнеры в России.
Micro Integrator
• Интеграция API, сервисов, СУБД, систем обработки
сообщений (ActiveMQ, RabbitMQ, Kafka), различных
приложений.
• Варианты использования
• Microservices
• ESB –style
• Графическая среда разработки (Integration Studio)
• Дружит с Docker и Kubernetes
• Локальное, облачное и гибридное развертывание.
• Интеграция с ELK, Prometheus и Jaeger, собственная
аналитика.
• Поддержка отладки, unit тестов и CICD (Jenkins,
Travis).
• Самая быстрая среда выполнения интеграции,
проверенная временем на миллиардах транзакций
в тысячах развертываний.
Streaming Integrator
WSO2 Streaming Integrator включает конструктор
потоков и механизм потоковой обработки с
мощными функциями мониторинга и аналитики.
Возможности среды выполнения потоковой
передачи позволяют пользователям обрабатывать
все источники данных как потоки данных, применять
операции обработки потока (Siddhi Streaming SQL) и
публиковать в одном или нескольких местах
назначения. Он также имеет расширенные
возможности обработки и исправления ошибок.
WSO2 Streaming Integrator позволяет реализовать
потоковую передачу ETL, сбор измененных данных
(CDC), а также обрабатывать большие файлы и API-
интерфейсы в реальном времени.
Вы можете подключать и реализовывать
управляемые событиями архитектуры с системами
распределенной потоковой передачи, такими как
Kafka, Amazon SQS и другими.
ПродуктыWSO2:EnterpriseIntegrator7.x
6
API Manager 3.2
WSO2 API Manager - это решение корпоративного класса с открытым
исходным кодом, которое поддерживает публикацию API, управление
жизненным циклом, разработку приложений, контроль доступа,
ограничение скорости и аналитику в одной четко интегрированной
системе.
• API Gateway и Microgateway – централизованный и
децентрализованный API-шлюзы, обеспечивающие безопасный и
быстрый доступ к сервисам и микросервисам.
• Вопросы безопасности API – аутентификация и авторизация доступа к
сервисам в традиционной и микросервисной архитектурах
• Мониторинг поведения системы и использования API
• Возможность создания из API продуктов и их монетизации
• Магазин API (он же Developer Portal)
• API Operator for Kubernetes, API Controller – инструменты для
развертывания API в Kubernetes, объединения групп микросервисов
в отдельные API, обеспечения большей гибкости для создания
конвейеров CI / CD для API.
• Интеграция с Istio для обеспечения безопасного доступа и
управления API-интерфейсами сервисной сети.
• Поддержка жизненного цикла API
• Представление GraphQL сервисов как управляемых API-интерфейсов
• Гибридное решение по управлению API (облака + on-premise
microgateway)
Identity Server
Расширяемая удобная для разработчиков платформа для
федерации, аутентификации и управления удостоверениями
(identities) как в корпоративной, так и в облачной среде.
• Единый вход (SSO) в корпоративную / облачную среду и
федерация
• Надежная аутентификация, в том числе многофакторная
• Управление учетными записями и предоставление
удостоверений
• Контроль доступа
• Безопасность API и микросервисов
• Мониторинг, отчетность и аудит
• Соответствие GDPR
• Гибкость развертывания
• Подключаемая, расширяемая, с настраиваемым
интерфейсом (темы).
ПродуктыWSO2:APIManagerи IdentityServer
7
WSO2APIManager
8
API Publisher – разработка и управление API:
• Создание с нуля или импорт готовых описаний
API или веб-сервисов
• Назначение прав доступа (доступ по ролям к
API в целом и к областям (scope) внутри API
• Возможность прототипирования или
назначение URL существующего API или
сервиса
• Возможность дополнительной обработки
сообщений
• Определение других свойств API
• Возможность версионирования и назначения
версии API по умолчанию
• Публикация API (поддержка жизненного
цикла)
API Publisher – разработка и управление API:
• Создание с нуля или импорт готовых описаний
API или веб-сервисов
• Назначение прав доступа (доступ по ролям к
API в целом и к областям (scope) внутри API
• Возможность прототипирования или
назначение URL существующего API или
сервиса
• Возможность дополнительной обработки
сообщений
• Определение других свойств API
• Возможность версионирования и назначения
версии API по умолчанию
• Публикация API (поддержка жизненного
цикла)
API Store (Depeloper Portal):
• Создание приложений, в рамках которых
будут использованы API
• Подписки на доступные API
• Генерация ключевой информации (токены)
для доступа к API
API Store (Depeloper Portal):
• Создание приложений, в рамках которых
будут использованы API
• Подписки на доступные API
• Генерация ключевой информации (токены)
для доступа к API
ESB profile
На базе Apache Synapse
• Маршрутизация сообщений
• Фильтрация сообщений
• Преобразование сообщений
• Обогащение содержания
сообщений
• Переключение протоколов
• Цепочки вызовов сервисов
• Сохранение и пересылка
сообщений
• Балансировка нагрузки
• Потоковая передача данных
• Data services
Message Broker profile
На базе Apache Qpid
• JMS v1.0 и v1.1 API
• Протоколы AMQP 0.91, MQTT
• Поддержка AMQP клиентов
на Java, .Net, C, C++, PHP,
Ruby, Erlang и т. д.
• Гибкая масштабируемая
архитектура
• Поддержка распределенных
очередей
• Поддержка модели
Publish/Subscribe
• Консоль управления
• Контроль доступа
• Средства мониторинга
Business Process profile
Длительные процессы
интеграции (бизнес-процессы)
создаются с использованием
следующих стандартов:
• подмножество BPMN 2.0
• WS-BPEL 2.0
• BPEL4People
• WS-Human Tasks.
Используются движки:
• BPMN на базе Activiti 5.21.0
• BPEL на базе Apache ODE
Analitycs profile
Является экземпляром WSO2
Stream Processor. Настроен по
умолчанию для мониторинга
статистики передачи
сообщений в профиле ESB.
Состоит из двух компонентов:
Worker и Dashboard. Worker
обрабатывает потоки данных,
отправляемые из профиля ESB,
и публикует статистику в базе
данных. Dashboard читает
статистику, опубликованную
Worker'ом, и отображает
статистику на дашборде.
Worker и Dashboard - два
отдельных экхемпляра WSO2
EI, связанные через базу
данных.
WSO2EnterpriseIntegrator6.x
9ESB
Business Process
Схемаразвертывания
WSO2вБанкеЗЕНИТ
10
КакмыиспользуемAPIManager
11
• Одна система – один пользователь
• «Вечные» токены
• Роли и области (scope)
Управление доступом
систем к API
Управление доступом
систем к API
• Используем «Песочницу» для dev контура
• Используем «Production» для test контура
• Один пользователь – разные токены
Разделение
непроизводственных
контуров
Разделение
непроизводственных
контуров
• Извне зоны PCS DSS доступ к ESB только через API Manager (кроме ДБО ФЛ)
• API Manager находится в PCI DSS, но не обрабатывает номера карт
Промежуточный сервер в
зоне PCI DSS
Промежуточный сервер в
зоне PCI DSS
• Используем JavaScript для быстрого создания «заглушек»Прототипирование APIПрототипирование API
• С помощью механизма Message Mediation Policies добавляем информацию
о контексте вызова (имя пользователя, API, …) для обработки в ESB.
• Также можно удалять «лишнюю» информацию из ответа ESB.
Обогащение/фильтрация
данных
Обогащение/фильтрация
данных
КакмыиспользуемEnterpriseIntegrator
12
Маршрутизация сообщенийМаршрутизация сообщений
Построение цепочек вызовов
сервисов и объединение
полученных данных
Построение цепочек вызовов
сервисов и объединение
полученных данных
Работа с СУБД
(Data Services)
Oracle, MS SQL
Работа с СУБД
(Data Services)
Oracle, MS SQL
Изменение форматов
сообщений
•XML/JSON/CSV..
•Маскировка форматов вызовов при
смене API
Изменение форматов
сообщений
•XML/JSON/CSV..
•Маскировка форматов вызовов при
смене API
Гарантированная доставка
сообщений
(Message Store)
Гарантированная доставка
сообщений
(Message Store)
Балансировка нагрузки и
непрерывность работы (кластер)
Балансировка нагрузки и
непрерывность работы (кластер)
Горячая замена кода и части
настроек
Горячая замена кода и части
настроек
Возможности мониторинга с
помощью JMX
Возможности мониторинга с
помощью JMX
Потоковая передача больших
объемов данных
Потоковая передача больших
объемов данных
Бизнес-процессы
(в ограниченном объеме)
Бизнес-процессы
(в ограниченном объеме)
Использование/преобразование
транспортных протоколов
•HTTP (SOAP, REST)
•Файлы на диске
•SMTP
•AMQP (RabbitMQ)
•FTP
Использование/преобразование
транспортных протоколов
•HTTP (SOAP, REST)
•Файлы на диске
•SMTP
•AMQP (RabbitMQ)
•FTP
КонцепцияDataserviceвWSO2
13
Dataservice позволяет получить доступ к
источникам данных через REST или SOAP
вызовы.
Основные возможности:
• Поддержка любых баз данных: MSSQL,
DB2, Oracle, MySQL,
PostgreSQL/EnterpriseDB, H2 или любая
другая база через JDBC драйвер;
• Поддержка протоколов: HTTP, HTTPS;
• Комбинирование данных из различных
источников;
• Полный набор команд для работы с
данными: INSERT, UPDATE, DELETE, SELECT,
CALL, ...
• Представление данных в виде JSON, XML
или OData форматов
<Result xmlns="http://ws.wso2.org/dataservice">
<ResultRow>
<C_CODE>19</C_CODE>
<C_NAME>Собственность потребительской кооперации</C_NAME>
</ResultRow>
<ResultRow>
<C_CODE>51</C_CODE>
<C_NAME>Собственность политических общественных объединений</C_NAME>
</ResultRow>
</Result>
DS – является самым важным компонентом интеграции в нашей системе. Он позволяет обращаться к объектам
баз данных.
СозданиеDataservice
14
<body>
<p:ProcessUnprocessedRow xmlns:p="http://ws.wso2.org/dataservice">
<!--Exactly 1 occurrence-->
<p:Id>12</p:Id>
</p:ProcessUnprocessedRow>
</body>
<Result xmlns="http://ws.wso2.org/dataservice">
<ResultRow>
<C_CODE>19</C_CODE>
<C_NAME>Собственность потребительской кооперации</C_NAME>
</ResultRow>
<ResultRow>
<C_CODE>51</C_CODE>
<C_NAME>Собственность политических общественных объединений</C_NAME>
</ResultRow>
</Result>
Банк ЗЕНИТ (Альметьевск)Банк ЗЕНИТ (Альметьевск)
ДБОфизическихлиц
15
ДБО ФЛ
ЗЕНИТ Онлайн 2.0
ДБО ФЛ
ЗЕНИТ Онлайн 2.0
ESBESB
Банк ЗЕНИТ СочиБанк ЗЕНИТ Сочи
АБС
Инверсия
АБС
Инверсия
Банк ЗЕНИТ (Москва)Банк ЗЕНИТ (Москва) Девон-Кредит (Альметьевск)Девон-Кредит (Альметьевск)
АБС
ЦФТ
АБС
ЦФТ
Платеж-
ный хаб
AnyWay
Платеж-
ный хаб
AnyWay
Card
Processing
Way4
Card
Processing
Way4
Card
Processing
TP II
Card
Processing
TP II
Платеж-
ный хаб
AnyWay
Платеж-
ный хаб
AnyWay
BPSBPS
Сервер
лояль-
ности
Сервер
лояль-
ности
АБС
ЦФТ
АБС
ЦФТ
СобытийнаямодельдляДБОФЛ(оперативноехранилищеданных)
16
Card
processing
Card
processing
Сервер
лояльности
(бонусы)
Сервер
лояльности
(бонусы)
АБС ЦФТАБС ЦФТ
BridgeBridge
Оперативное
хранилище
данных
ДБО ФЛ
Оперативное
хранилище
данных
ДБО ФЛ
SOAP XMLSOAP XML
Message
store
Message
store
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
store
Message
store
Message
store
Message
store
Message
store
Message
store
Message
store
Message
store
Message
store
Message
store
Message
processor
Message
processor
APIAPI
ProxyProxy
ProxyProxy
ProxyProxy
APIAPI
ProxyProxy
Data
Service
Data
Service
Message
store
Message
store
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
processor
Message
store
Message
store
Message
store
Message
store
Message
store
Message
store
Message
store
Message
store
Message
store
Message
store
Message
processor
Message
processor
APIAPI
MessageStore
17
Временное хранилище сообщений внутри шины. Используется для регулирования скорости обработки
сообщений на стороне вызываемой системы или для гарантированной доставки, когда вызываемая система
может быть временно недоступна.
Хранилище может располагаться в:
• ОЗУ сервера WSO2;
• Внешней базе данных (через jdbc);
• JMS;
• Rabbit MQ;
• Собственной реализации пользователем.
MessageProcessor
18
Обработчик сообщений, загруженных в хранилище Message Store. Забирает сообщения с заданной частотой и
отправляет их на обработку. В зависимости от настроек может использоваться для гарантированной доставки
сообщений.
MessageProcessor
19
Существует 2 типа процессоров:
• Scheduled Message Forwarding Processor;
• Message Sampling Processor.
Первый читает сообщение из очереди и отдаёт его в Endpoint. Если сообщение успешно доставляется в Endpoint,
сообщение считается обработанным и удаляется из очереди. Если происходит ошибка, сообщение будет
переотправлено позднее.
Второй читает сообщение и отдаёт его в Sequence (последовательность медиаторов). При этом не
подразумевается гарантированная успешная обработка сообщения, «отправил и забыл».
ЗадачапередачиданныхизпроцессингавАБС
20
Существует необходимость пакетной передачи сообщений из процессинга в АБС. Каждый пакет - csv-файлы с
различными данными клиентов (перс. данные, счета, адреса, …). Файлы связаны между собой: есть основой
файл, содержащий информацию о клиенте и подчинённые, которые должны загрузиться после основного.
Для решения этой задачи мы воспользовались технологией Smooks и пакетной загрузкой данных внутри Data
Service. Использовали следующие компоненты шины:
• Inbound Endpoint;
• Smooks Mediator;
• Data Service
ПроцессингПроцессинг SequenceSequence АБСАБС
Inbound
Endpoint
Inbound
Endpoint
SmooksSmooks
Data
Service
Data
Service
Smooks
21
Smooks - это платформа для обработки структурированных данных, таких как XML или CSV. Она предоставляет как
API, так и модель конфигурации, которая позволяет нам определять преобразования между предопределенными
форматами (например, XML в CSV, XML в JSON и т. д.).
<body>
<p:InsertToPhone_batch_req xmlns:p="http://ws.wso2.org/dataservice">
<p:InsertToPhone>
<p:LOAD_ID>OW-14916019-20200727000000</p:LOAD_ID>
<p:CLIENT_ID>8992894</p:CLIENT_ID>
<p:PHONE_ID></p:PHONE_ID>
<p:TYPE>1</p:TYPE>
<p:CODE></p:CODE>
<p:NUM>7904690****</p:NUM>
</p:InsertToPhone>
<p:InsertToPhone>
<p:LOAD_ID>OW-14916079-20200727000000</p:LOAD_ID>
<p:CLIENT_ID>8430737</p:CLIENT_ID>
<p:PHONE_ID></p:PHONE_ID>
<p:TYPE>1</p:TYPE>
<p:CODE></p:CODE>
<p:NUM>7952591****</p:NUM>
</p:InsertToPhone>
</p:InsertToPhone_batch_req>
</body>
Smooks
22
Для преобразования CSV-> XML был написан конфигурационный файл
Форматирование
XML по умолчанию
Форматирование
XML по умолчанию
Цикл по элементам
строк
Цикл по элементам
строк
Корректное
осормление пустых
элементов (nil)
Корректное
осормление пустых
элементов (nil)
Задачагарантированнойдвунаправленнойдоставкисообщений
23
Существует необходимость гарантированной двунаправленной доставки сообщений из АБС в другие системы
банка. Для решения этой задачи мы использовали следующие компоненты WSO2 EI:
• Inbound Endpoint;
• Proxy Service;
• Message Store;
• Message Processor;
• File Connector.
Была предложена и внедрена такая архитектура
Message
Store 1
Message
Store 1
Message
Store 2
Message
Store 2
Message
Processor
1
Message
Processor
1
Message
Processor
2
Message
Processor
2
File
Connector
1
File
Connector
1
Data
Service 2
Data
Service 2
АБСАБС
Процес
синг
Процес
синг
Процес
синг
Процес
синг
Sequen
ce 2
Sequen
ce 2
Proxy
Service
2
Proxy
Service
2
АБСАБС
Proxy
Service
1
Proxy
Service
1
Sequen
ce 1
Sequen
ce 1
DB
InbEP
DB
InbEP
File
InbEP
File
InbEP
InboundEndpoint
24
Позволяют получать сообщения из внешних систем и передавать его на обработку (Sequence).
По типу реализации могут быть:
• "Слушателями". Ожидают вызова внешней стороной. Например, HTTP или WebSocket.
• "Опрашивателями". Периодически опрашивают источник данных, например БД или папка с файлами.
• "Событийные". Подключаются единожды к внешнему источнику и далее ждут от него сообщений, например
очереди RabbitMQ.
ФайловыйInboundEndpoint
25
Позволяет читать файлы из папки, формировать их них
сообщения и дальше обрабатывать это сообщение
логикой на шине. В зависимости от результата
обработки, файл перемещается в одну из двух папок.
ПередачакредитныхзаявоксвнешнихсайтоввCRM
26
Для передачи данных с внешних сайтов необходимо было реализовать чтение XML-файлов определённого
формата с помощью SFTP протокола из внешнего, по отношению к шине, ресурса. Прочитанные файлы
необходимо с помощью REST-вызовов загрузить в CRM. Взаимодействие было организовано с помощью:
• Дополнения к шине под названием File Connector (search, read, delete);
• Scheduled Task.
Внешний
сайт
Внешний
сайт
Proxy
Service
Proxy
Service
SequenceSequence
File
Connector
sftp://
File
Connector
sftp://
Scheduled
Task
Scheduled
Task
CRMCRM
FileConnector
27
Connectors - набор расширений для шины, позволяющих обращаться к внешним системам через их API. Их можно
скачать из магазина: https://store.wso2.com/
Мы использовали File connector, позволяющий создавать,
удалять, архивировать, читать файлы как расположенные
локально, так и ftp ресурсах. Для каждого существует
понятная документация
ПреобразованиеDatabaseViewвпотокпочтовыхсообщений
28
Задача рассылки почтовых уведомлений из таблиц.
Рассылка состоит из двух фаз.
Первая фаза - подготовка данных для отправки. Происходит чтение данных из нескольких таблиц и формируются
данные для загрузку в промежуточную таблицу (адресная часть и форматированное тело письма).
Вторая фаза - Чтение по одной записи из промежуточной таблицы и рассылка писем.
Отправка осуществляется с помощью Inbound Endpoint и настроенного mailTo Траспорта:
В задаче онлайн покупки валюты мы использовали механизм распределённых транзакций.
• Из внешнего сервиса приходит заявка на покупку валюты;
• Шина принимает заявку и сразу отвечает сервису, что заявка принята;
• Шина начинает распределённую транзакцию и вызывает процедуру по покупке валюты в АБС (долго);
• Шина дожидается завершения процедуры в АБС и вызывает внешний сервис, сообщая ему результат
выполнения процедуры в АБС;
• Внешний сервис отвечает подтверждением сделки или отказом;
• В зависимости от ответа сервиса шина завершает распределённую транзакцию или откатывает её.
Для механизма распределённых транзакций нужен специальный источник данных:
Онлайнконвертациявалюты.Распределенныетранзакции.
29
Управление распределёнными транзакциями осуществляется с помощью медиаторов:
Онлайнконвертациявалюты.Распределенныетранзакции.
30
«Маркетплейс» — онлайн-сервис, позволяющий гражданам приобретать финансовые продукты от разных
организаций на одной платформе в круглосуточном режиме.
Для обеспечения юридически значимого документооборота необходимо использование ЭЦП, основанной на
алгоритмах ГОСТ. Для их реализации используется отдельная java-машина со встроенной КриптоПро JCP и
отдельный сервер Micro Integrator.
ИспользованиеMicroIntegrator.
31
Используя продукты WSO2 мы смогли:
• Проинтегрировать новую единую
систему ДБО физлиц с АБС и
карточными процессингами 3-х
Банков группы (2 разные АБС, 2
разных процессинга, 3 схемы работы с
пластиковыми картами), частично
переиспользуя при этом API от двух
унаследованных систем ДБО.
• Поддержать процесс слияния
дочерних банков
• Переиспользовать часть созданного
API в разных проектах (ДБО физлиц,
CRM).
• Создать «витрину» API для
дальнейшего переиспользования в
других проектах.
• Переинтегрировать различные
системы банка со старой на новую
АБС.
• Проинтегрировать между собой
системы различных банков группы.
32
Чтомы
получили?
Как нам помогли
продукты WSO2?
Что мы еще не успели, но очень хотим сделать.
Планыпоразвитию
33
www.zenit.ru
Павел Рыбаков
rybakov@zenit.ru
Станислав Беляев
s.belyaev@zenit.ru
Спасибозавнимание!
34
Будем рады ответить на ваши вопросы.

More Related Content

More from WSO2

CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfWSO2
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoWSO2
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsWSO2
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital BusinessesWSO2
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)WSO2
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformationWSO2
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesWSO2
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready BankWSO2
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIsWSO2
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native DeploymentWSO2
 
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”WSO2
 
API Revisions - WSO2 API Manager Community Call (10/27/2021)
API Revisions - WSO2 API Manager Community Call (10/27/2021)API Revisions - WSO2 API Manager Community Call (10/27/2021)
API Revisions - WSO2 API Manager Community Call (10/27/2021)WSO2
 
[2021 Somos Summit] - Rethinking Identity Access Management and The Rise of t...
[2021 Somos Summit] - Rethinking Identity Access Management and The Rise of t...[2021 Somos Summit] - Rethinking Identity Access Management and The Rise of t...
[2021 Somos Summit] - Rethinking Identity Access Management and The Rise of t...WSO2
 
[ICT Spring 2021] - Managed Crowd: The Future of Business as We Know It!
[ICT Spring 2021] - Managed Crowd: The Future of Business as We Know It![ICT Spring 2021] - Managed Crowd: The Future of Business as We Know It!
[ICT Spring 2021] - Managed Crowd: The Future of Business as We Know It!WSO2
 
[EIC 2021] Securing the Digital Double - The Path to a Trusted Digital Ecosystem
[EIC 2021] Securing the Digital Double - The Path to a Trusted Digital Ecosystem[EIC 2021] Securing the Digital Double - The Path to a Trusted Digital Ecosystem
[EIC 2021] Securing the Digital Double - The Path to a Trusted Digital EcosystemWSO2
 
[EIC 2021] The Rise of the Developer in IAM
[EIC 2021] The Rise of the Developer in IAM[EIC 2021] The Rise of the Developer in IAM
[EIC 2021] The Rise of the Developer in IAMWSO2
 
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...WSO2
 
[apidays Live Australia] How does leveraging de-centralised architecture impr...
[apidays Live Australia] How does leveraging de-centralised architecture impr...[apidays Live Australia] How does leveraging de-centralised architecture impr...
[apidays Live Australia] How does leveraging de-centralised architecture impr...WSO2
 
[apidays Live Australia] How do you enhance customer experience through event...
[apidays Live Australia] How do you enhance customer experience through event...[apidays Live Australia] How do you enhance customer experience through event...
[apidays Live Australia] How do you enhance customer experience through event...WSO2
 

More from WSO2 (20)

CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdf
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing Choreo
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected Products
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital Businesses
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformation
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking Experiences
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready Bank
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment
 
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
 
API Revisions - WSO2 API Manager Community Call (10/27/2021)
API Revisions - WSO2 API Manager Community Call (10/27/2021)API Revisions - WSO2 API Manager Community Call (10/27/2021)
API Revisions - WSO2 API Manager Community Call (10/27/2021)
 
[2021 Somos Summit] - Rethinking Identity Access Management and The Rise of t...
[2021 Somos Summit] - Rethinking Identity Access Management and The Rise of t...[2021 Somos Summit] - Rethinking Identity Access Management and The Rise of t...
[2021 Somos Summit] - Rethinking Identity Access Management and The Rise of t...
 
[ICT Spring 2021] - Managed Crowd: The Future of Business as We Know It!
[ICT Spring 2021] - Managed Crowd: The Future of Business as We Know It![ICT Spring 2021] - Managed Crowd: The Future of Business as We Know It!
[ICT Spring 2021] - Managed Crowd: The Future of Business as We Know It!
 
[EIC 2021] Securing the Digital Double - The Path to a Trusted Digital Ecosystem
[EIC 2021] Securing the Digital Double - The Path to a Trusted Digital Ecosystem[EIC 2021] Securing the Digital Double - The Path to a Trusted Digital Ecosystem
[EIC 2021] Securing the Digital Double - The Path to a Trusted Digital Ecosystem
 
[EIC 2021] The Rise of the Developer in IAM
[EIC 2021] The Rise of the Developer in IAM[EIC 2021] The Rise of the Developer in IAM
[EIC 2021] The Rise of the Developer in IAM
 
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
 
[apidays Live Australia] How does leveraging de-centralised architecture impr...
[apidays Live Australia] How does leveraging de-centralised architecture impr...[apidays Live Australia] How does leveraging de-centralised architecture impr...
[apidays Live Australia] How does leveraging de-centralised architecture impr...
 
[apidays Live Australia] How do you enhance customer experience through event...
[apidays Live Australia] How do you enhance customer experience through event...[apidays Live Australia] How do you enhance customer experience through event...
[apidays Live Australia] How do you enhance customer experience through event...
 

Changing the IT landscape of Bank ZENIT with WSO2

  • 1. API led strategy with WSO2 November 10, 2020
  • 3. IT as business value IT moved from cost center (supporting business) to business enabler, capable to generate revenue. Examples are: - UBER, AIRBNB, Flixbus,... - Blockchain - Open Banking, Payment systems - …. The value is in IT Digital Assets: - Enterprise Data - Applications - Workflow processes - System based on proprietary protocols - ….
  • 4. API as a product API products enable enterprise data sources and processes (IT digital assets) to be monetized But API is a middleware! APIs are products, and they are the mechanism through which value is exchange in modern businesses
  • 5. Building the API: Integration SOAP REST XXX
  • 6. Building the API: API Management REST SOAP XXX
  • 10. Bottom up approach: digitalise your assets Functional backends External and internal client apps API Manager Integration Layer Employee API Employee API Employee 1 2
  • 11. Functional backends External and internal client apps API Manager Integration Layer Account API Account API Account 1 2 Account (swagger) 2 2 Top down approach
  • 12. WSO2ВЗЕНИТЕ ИЗМЕНЕНИЕ ИТ-ЛАНДШАФТА БАНКА ЗЕНИТ С ПОМОЩЬЮ ПРОДУКТОВ WSO2
  • 13. • Банк учрежден в 1994 г. • Уставный капитал 33 545 млн руб. Основной акционер – ПАО «Татнефть» им. В. Д. Шашина (71,12%). • В сентябре 2018 года был запущен поэтапный процесс интеграции дочерних банков. В объединенный банк вошли: • Банк ЗЕНИТ • Девон-Кредит (ноябрь 2019) • Липецккомбанк (ноябрь 2019) • Спиритбанк (май 2020 года) • Банк ЗЕНИТ Сочи (май 2020 года) • Сеть подразделений: • головной офис (Москва); • 5 филиалов (Санкт-Петербург, Ростов-на- Дону, Казань, Новосибирск, Екатеринбург); • 61 дополнительный офис; • 48 операционных касс вне кассового узла; • 16 операционных офисов. 2 Онас Банк ЗЕНИТ – банк группы компаний «Татнефть»
  • 15. Большое количество систем Внедряются новые системы, медленно угасают унаследованные системы, включая системы дочерних банков. Системы меняются Новые системы приходят на смену старым, некоторые исчезают или объединяются с другими системами. Повторное использование API Часто одна и та же информация или функциональность требуется разным системам. Разделение доступа Доступ различных систем к различным подмножествам имеющихся API. Стандартизация и учет Унификация способов взаимодействия для каждой системы, создание реестра API. 4 ТежезадачивпереводенаязыкIT
  • 16. 5 WSO2! Нопочему? • Проверенное решение • Гартнер плохого не посоветует • Комплексное решение на единой платформе. • Open Source • Можно было использовать бесплатно без функциональных ограничений. • Есть партнеры в России.
  • 17. Micro Integrator • Интеграция API, сервисов, СУБД, систем обработки сообщений (ActiveMQ, RabbitMQ, Kafka), различных приложений. • Варианты использования • Microservices • ESB –style • Графическая среда разработки (Integration Studio) • Дружит с Docker и Kubernetes • Локальное, облачное и гибридное развертывание. • Интеграция с ELK, Prometheus и Jaeger, собственная аналитика. • Поддержка отладки, unit тестов и CICD (Jenkins, Travis). • Самая быстрая среда выполнения интеграции, проверенная временем на миллиардах транзакций в тысячах развертываний. Streaming Integrator WSO2 Streaming Integrator включает конструктор потоков и механизм потоковой обработки с мощными функциями мониторинга и аналитики. Возможности среды выполнения потоковой передачи позволяют пользователям обрабатывать все источники данных как потоки данных, применять операции обработки потока (Siddhi Streaming SQL) и публиковать в одном или нескольких местах назначения. Он также имеет расширенные возможности обработки и исправления ошибок. WSO2 Streaming Integrator позволяет реализовать потоковую передачу ETL, сбор измененных данных (CDC), а также обрабатывать большие файлы и API- интерфейсы в реальном времени. Вы можете подключать и реализовывать управляемые событиями архитектуры с системами распределенной потоковой передачи, такими как Kafka, Amazon SQS и другими. ПродуктыWSO2:EnterpriseIntegrator7.x 6
  • 18. API Manager 3.2 WSO2 API Manager - это решение корпоративного класса с открытым исходным кодом, которое поддерживает публикацию API, управление жизненным циклом, разработку приложений, контроль доступа, ограничение скорости и аналитику в одной четко интегрированной системе. • API Gateway и Microgateway – централизованный и децентрализованный API-шлюзы, обеспечивающие безопасный и быстрый доступ к сервисам и микросервисам. • Вопросы безопасности API – аутентификация и авторизация доступа к сервисам в традиционной и микросервисной архитектурах • Мониторинг поведения системы и использования API • Возможность создания из API продуктов и их монетизации • Магазин API (он же Developer Portal) • API Operator for Kubernetes, API Controller – инструменты для развертывания API в Kubernetes, объединения групп микросервисов в отдельные API, обеспечения большей гибкости для создания конвейеров CI / CD для API. • Интеграция с Istio для обеспечения безопасного доступа и управления API-интерфейсами сервисной сети. • Поддержка жизненного цикла API • Представление GraphQL сервисов как управляемых API-интерфейсов • Гибридное решение по управлению API (облака + on-premise microgateway) Identity Server Расширяемая удобная для разработчиков платформа для федерации, аутентификации и управления удостоверениями (identities) как в корпоративной, так и в облачной среде. • Единый вход (SSO) в корпоративную / облачную среду и федерация • Надежная аутентификация, в том числе многофакторная • Управление учетными записями и предоставление удостоверений • Контроль доступа • Безопасность API и микросервисов • Мониторинг, отчетность и аудит • Соответствие GDPR • Гибкость развертывания • Подключаемая, расширяемая, с настраиваемым интерфейсом (темы). ПродуктыWSO2:APIManagerи IdentityServer 7
  • 19. WSO2APIManager 8 API Publisher – разработка и управление API: • Создание с нуля или импорт готовых описаний API или веб-сервисов • Назначение прав доступа (доступ по ролям к API в целом и к областям (scope) внутри API • Возможность прототипирования или назначение URL существующего API или сервиса • Возможность дополнительной обработки сообщений • Определение других свойств API • Возможность версионирования и назначения версии API по умолчанию • Публикация API (поддержка жизненного цикла) API Publisher – разработка и управление API: • Создание с нуля или импорт готовых описаний API или веб-сервисов • Назначение прав доступа (доступ по ролям к API в целом и к областям (scope) внутри API • Возможность прототипирования или назначение URL существующего API или сервиса • Возможность дополнительной обработки сообщений • Определение других свойств API • Возможность версионирования и назначения версии API по умолчанию • Публикация API (поддержка жизненного цикла) API Store (Depeloper Portal): • Создание приложений, в рамках которых будут использованы API • Подписки на доступные API • Генерация ключевой информации (токены) для доступа к API API Store (Depeloper Portal): • Создание приложений, в рамках которых будут использованы API • Подписки на доступные API • Генерация ключевой информации (токены) для доступа к API
  • 20. ESB profile На базе Apache Synapse • Маршрутизация сообщений • Фильтрация сообщений • Преобразование сообщений • Обогащение содержания сообщений • Переключение протоколов • Цепочки вызовов сервисов • Сохранение и пересылка сообщений • Балансировка нагрузки • Потоковая передача данных • Data services Message Broker profile На базе Apache Qpid • JMS v1.0 и v1.1 API • Протоколы AMQP 0.91, MQTT • Поддержка AMQP клиентов на Java, .Net, C, C++, PHP, Ruby, Erlang и т. д. • Гибкая масштабируемая архитектура • Поддержка распределенных очередей • Поддержка модели Publish/Subscribe • Консоль управления • Контроль доступа • Средства мониторинга Business Process profile Длительные процессы интеграции (бизнес-процессы) создаются с использованием следующих стандартов: • подмножество BPMN 2.0 • WS-BPEL 2.0 • BPEL4People • WS-Human Tasks. Используются движки: • BPMN на базе Activiti 5.21.0 • BPEL на базе Apache ODE Analitycs profile Является экземпляром WSO2 Stream Processor. Настроен по умолчанию для мониторинга статистики передачи сообщений в профиле ESB. Состоит из двух компонентов: Worker и Dashboard. Worker обрабатывает потоки данных, отправляемые из профиля ESB, и публикует статистику в базе данных. Dashboard читает статистику, опубликованную Worker'ом, и отображает статистику на дашборде. Worker и Dashboard - два отдельных экхемпляра WSO2 EI, связанные через базу данных. WSO2EnterpriseIntegrator6.x 9ESB Business Process
  • 22. КакмыиспользуемAPIManager 11 • Одна система – один пользователь • «Вечные» токены • Роли и области (scope) Управление доступом систем к API Управление доступом систем к API • Используем «Песочницу» для dev контура • Используем «Production» для test контура • Один пользователь – разные токены Разделение непроизводственных контуров Разделение непроизводственных контуров • Извне зоны PCS DSS доступ к ESB только через API Manager (кроме ДБО ФЛ) • API Manager находится в PCI DSS, но не обрабатывает номера карт Промежуточный сервер в зоне PCI DSS Промежуточный сервер в зоне PCI DSS • Используем JavaScript для быстрого создания «заглушек»Прототипирование APIПрототипирование API • С помощью механизма Message Mediation Policies добавляем информацию о контексте вызова (имя пользователя, API, …) для обработки в ESB. • Также можно удалять «лишнюю» информацию из ответа ESB. Обогащение/фильтрация данных Обогащение/фильтрация данных
  • 23. КакмыиспользуемEnterpriseIntegrator 12 Маршрутизация сообщенийМаршрутизация сообщений Построение цепочек вызовов сервисов и объединение полученных данных Построение цепочек вызовов сервисов и объединение полученных данных Работа с СУБД (Data Services) Oracle, MS SQL Работа с СУБД (Data Services) Oracle, MS SQL Изменение форматов сообщений •XML/JSON/CSV.. •Маскировка форматов вызовов при смене API Изменение форматов сообщений •XML/JSON/CSV.. •Маскировка форматов вызовов при смене API Гарантированная доставка сообщений (Message Store) Гарантированная доставка сообщений (Message Store) Балансировка нагрузки и непрерывность работы (кластер) Балансировка нагрузки и непрерывность работы (кластер) Горячая замена кода и части настроек Горячая замена кода и части настроек Возможности мониторинга с помощью JMX Возможности мониторинга с помощью JMX Потоковая передача больших объемов данных Потоковая передача больших объемов данных Бизнес-процессы (в ограниченном объеме) Бизнес-процессы (в ограниченном объеме) Использование/преобразование транспортных протоколов •HTTP (SOAP, REST) •Файлы на диске •SMTP •AMQP (RabbitMQ) •FTP Использование/преобразование транспортных протоколов •HTTP (SOAP, REST) •Файлы на диске •SMTP •AMQP (RabbitMQ) •FTP
  • 24. КонцепцияDataserviceвWSO2 13 Dataservice позволяет получить доступ к источникам данных через REST или SOAP вызовы. Основные возможности: • Поддержка любых баз данных: MSSQL, DB2, Oracle, MySQL, PostgreSQL/EnterpriseDB, H2 или любая другая база через JDBC драйвер; • Поддержка протоколов: HTTP, HTTPS; • Комбинирование данных из различных источников; • Полный набор команд для работы с данными: INSERT, UPDATE, DELETE, SELECT, CALL, ... • Представление данных в виде JSON, XML или OData форматов <Result xmlns="http://ws.wso2.org/dataservice"> <ResultRow> <C_CODE>19</C_CODE> <C_NAME>Собственность потребительской кооперации</C_NAME> </ResultRow> <ResultRow> <C_CODE>51</C_CODE> <C_NAME>Собственность политических общественных объединений</C_NAME> </ResultRow> </Result> DS – является самым важным компонентом интеграции в нашей системе. Он позволяет обращаться к объектам баз данных.
  • 25. СозданиеDataservice 14 <body> <p:ProcessUnprocessedRow xmlns:p="http://ws.wso2.org/dataservice"> <!--Exactly 1 occurrence--> <p:Id>12</p:Id> </p:ProcessUnprocessedRow> </body> <Result xmlns="http://ws.wso2.org/dataservice"> <ResultRow> <C_CODE>19</C_CODE> <C_NAME>Собственность потребительской кооперации</C_NAME> </ResultRow> <ResultRow> <C_CODE>51</C_CODE> <C_NAME>Собственность политических общественных объединений</C_NAME> </ResultRow> </Result>
  • 26. Банк ЗЕНИТ (Альметьевск)Банк ЗЕНИТ (Альметьевск) ДБОфизическихлиц 15 ДБО ФЛ ЗЕНИТ Онлайн 2.0 ДБО ФЛ ЗЕНИТ Онлайн 2.0 ESBESB Банк ЗЕНИТ СочиБанк ЗЕНИТ Сочи АБС Инверсия АБС Инверсия Банк ЗЕНИТ (Москва)Банк ЗЕНИТ (Москва) Девон-Кредит (Альметьевск)Девон-Кредит (Альметьевск) АБС ЦФТ АБС ЦФТ Платеж- ный хаб AnyWay Платеж- ный хаб AnyWay Card Processing Way4 Card Processing Way4 Card Processing TP II Card Processing TP II Платеж- ный хаб AnyWay Платеж- ный хаб AnyWay BPSBPS Сервер лояль- ности Сервер лояль- ности АБС ЦФТ АБС ЦФТ
  • 27. СобытийнаямодельдляДБОФЛ(оперативноехранилищеданных) 16 Card processing Card processing Сервер лояльности (бонусы) Сервер лояльности (бонусы) АБС ЦФТАБС ЦФТ BridgeBridge Оперативное хранилище данных ДБО ФЛ Оперативное хранилище данных ДБО ФЛ SOAP XMLSOAP XML Message store Message store Message processor Message processor Message processor Message processor Message processor Message processor Message processor Message processor Message processor Message processor Message store Message store Message store Message store Message store Message store Message store Message store Message store Message store Message processor Message processor APIAPI ProxyProxy ProxyProxy ProxyProxy APIAPI ProxyProxy Data Service Data Service Message store Message store Message processor Message processor Message processor Message processor Message processor Message processor Message processor Message processor Message processor Message processor Message store Message store Message store Message store Message store Message store Message store Message store Message store Message store Message processor Message processor APIAPI
  • 28. MessageStore 17 Временное хранилище сообщений внутри шины. Используется для регулирования скорости обработки сообщений на стороне вызываемой системы или для гарантированной доставки, когда вызываемая система может быть временно недоступна. Хранилище может располагаться в: • ОЗУ сервера WSO2; • Внешней базе данных (через jdbc); • JMS; • Rabbit MQ; • Собственной реализации пользователем.
  • 29. MessageProcessor 18 Обработчик сообщений, загруженных в хранилище Message Store. Забирает сообщения с заданной частотой и отправляет их на обработку. В зависимости от настроек может использоваться для гарантированной доставки сообщений.
  • 30. MessageProcessor 19 Существует 2 типа процессоров: • Scheduled Message Forwarding Processor; • Message Sampling Processor. Первый читает сообщение из очереди и отдаёт его в Endpoint. Если сообщение успешно доставляется в Endpoint, сообщение считается обработанным и удаляется из очереди. Если происходит ошибка, сообщение будет переотправлено позднее. Второй читает сообщение и отдаёт его в Sequence (последовательность медиаторов). При этом не подразумевается гарантированная успешная обработка сообщения, «отправил и забыл».
  • 31. ЗадачапередачиданныхизпроцессингавАБС 20 Существует необходимость пакетной передачи сообщений из процессинга в АБС. Каждый пакет - csv-файлы с различными данными клиентов (перс. данные, счета, адреса, …). Файлы связаны между собой: есть основой файл, содержащий информацию о клиенте и подчинённые, которые должны загрузиться после основного. Для решения этой задачи мы воспользовались технологией Smooks и пакетной загрузкой данных внутри Data Service. Использовали следующие компоненты шины: • Inbound Endpoint; • Smooks Mediator; • Data Service ПроцессингПроцессинг SequenceSequence АБСАБС Inbound Endpoint Inbound Endpoint SmooksSmooks Data Service Data Service
  • 32. Smooks 21 Smooks - это платформа для обработки структурированных данных, таких как XML или CSV. Она предоставляет как API, так и модель конфигурации, которая позволяет нам определять преобразования между предопределенными форматами (например, XML в CSV, XML в JSON и т. д.). <body> <p:InsertToPhone_batch_req xmlns:p="http://ws.wso2.org/dataservice"> <p:InsertToPhone> <p:LOAD_ID>OW-14916019-20200727000000</p:LOAD_ID> <p:CLIENT_ID>8992894</p:CLIENT_ID> <p:PHONE_ID></p:PHONE_ID> <p:TYPE>1</p:TYPE> <p:CODE></p:CODE> <p:NUM>7904690****</p:NUM> </p:InsertToPhone> <p:InsertToPhone> <p:LOAD_ID>OW-14916079-20200727000000</p:LOAD_ID> <p:CLIENT_ID>8430737</p:CLIENT_ID> <p:PHONE_ID></p:PHONE_ID> <p:TYPE>1</p:TYPE> <p:CODE></p:CODE> <p:NUM>7952591****</p:NUM> </p:InsertToPhone> </p:InsertToPhone_batch_req> </body>
  • 33. Smooks 22 Для преобразования CSV-> XML был написан конфигурационный файл Форматирование XML по умолчанию Форматирование XML по умолчанию Цикл по элементам строк Цикл по элементам строк Корректное осормление пустых элементов (nil) Корректное осормление пустых элементов (nil)
  • 34. Задачагарантированнойдвунаправленнойдоставкисообщений 23 Существует необходимость гарантированной двунаправленной доставки сообщений из АБС в другие системы банка. Для решения этой задачи мы использовали следующие компоненты WSO2 EI: • Inbound Endpoint; • Proxy Service; • Message Store; • Message Processor; • File Connector. Была предложена и внедрена такая архитектура Message Store 1 Message Store 1 Message Store 2 Message Store 2 Message Processor 1 Message Processor 1 Message Processor 2 Message Processor 2 File Connector 1 File Connector 1 Data Service 2 Data Service 2 АБСАБС Процес синг Процес синг Процес синг Процес синг Sequen ce 2 Sequen ce 2 Proxy Service 2 Proxy Service 2 АБСАБС Proxy Service 1 Proxy Service 1 Sequen ce 1 Sequen ce 1 DB InbEP DB InbEP File InbEP File InbEP
  • 35. InboundEndpoint 24 Позволяют получать сообщения из внешних систем и передавать его на обработку (Sequence). По типу реализации могут быть: • "Слушателями". Ожидают вызова внешней стороной. Например, HTTP или WebSocket. • "Опрашивателями". Периодически опрашивают источник данных, например БД или папка с файлами. • "Событийные". Подключаются единожды к внешнему источнику и далее ждут от него сообщений, например очереди RabbitMQ.
  • 36. ФайловыйInboundEndpoint 25 Позволяет читать файлы из папки, формировать их них сообщения и дальше обрабатывать это сообщение логикой на шине. В зависимости от результата обработки, файл перемещается в одну из двух папок.
  • 37. ПередачакредитныхзаявоксвнешнихсайтоввCRM 26 Для передачи данных с внешних сайтов необходимо было реализовать чтение XML-файлов определённого формата с помощью SFTP протокола из внешнего, по отношению к шине, ресурса. Прочитанные файлы необходимо с помощью REST-вызовов загрузить в CRM. Взаимодействие было организовано с помощью: • Дополнения к шине под названием File Connector (search, read, delete); • Scheduled Task. Внешний сайт Внешний сайт Proxy Service Proxy Service SequenceSequence File Connector sftp:// File Connector sftp:// Scheduled Task Scheduled Task CRMCRM
  • 38. FileConnector 27 Connectors - набор расширений для шины, позволяющих обращаться к внешним системам через их API. Их можно скачать из магазина: https://store.wso2.com/ Мы использовали File connector, позволяющий создавать, удалять, архивировать, читать файлы как расположенные локально, так и ftp ресурсах. Для каждого существует понятная документация
  • 39. ПреобразованиеDatabaseViewвпотокпочтовыхсообщений 28 Задача рассылки почтовых уведомлений из таблиц. Рассылка состоит из двух фаз. Первая фаза - подготовка данных для отправки. Происходит чтение данных из нескольких таблиц и формируются данные для загрузку в промежуточную таблицу (адресная часть и форматированное тело письма). Вторая фаза - Чтение по одной записи из промежуточной таблицы и рассылка писем. Отправка осуществляется с помощью Inbound Endpoint и настроенного mailTo Траспорта:
  • 40. В задаче онлайн покупки валюты мы использовали механизм распределённых транзакций. • Из внешнего сервиса приходит заявка на покупку валюты; • Шина принимает заявку и сразу отвечает сервису, что заявка принята; • Шина начинает распределённую транзакцию и вызывает процедуру по покупке валюты в АБС (долго); • Шина дожидается завершения процедуры в АБС и вызывает внешний сервис, сообщая ему результат выполнения процедуры в АБС; • Внешний сервис отвечает подтверждением сделки или отказом; • В зависимости от ответа сервиса шина завершает распределённую транзакцию или откатывает её. Для механизма распределённых транзакций нужен специальный источник данных: Онлайнконвертациявалюты.Распределенныетранзакции. 29
  • 41. Управление распределёнными транзакциями осуществляется с помощью медиаторов: Онлайнконвертациявалюты.Распределенныетранзакции. 30
  • 42. «Маркетплейс» — онлайн-сервис, позволяющий гражданам приобретать финансовые продукты от разных организаций на одной платформе в круглосуточном режиме. Для обеспечения юридически значимого документооборота необходимо использование ЭЦП, основанной на алгоритмах ГОСТ. Для их реализации используется отдельная java-машина со встроенной КриптоПро JCP и отдельный сервер Micro Integrator. ИспользованиеMicroIntegrator. 31
  • 43. Используя продукты WSO2 мы смогли: • Проинтегрировать новую единую систему ДБО физлиц с АБС и карточными процессингами 3-х Банков группы (2 разные АБС, 2 разных процессинга, 3 схемы работы с пластиковыми картами), частично переиспользуя при этом API от двух унаследованных систем ДБО. • Поддержать процесс слияния дочерних банков • Переиспользовать часть созданного API в разных проектах (ДБО физлиц, CRM). • Создать «витрину» API для дальнейшего переиспользования в других проектах. • Переинтегрировать различные системы банка со старой на новую АБС. • Проинтегрировать между собой системы различных банков группы. 32 Чтомы получили? Как нам помогли продукты WSO2?
  • 44. Что мы еще не успели, но очень хотим сделать. Планыпоразвитию 33