IT – интеграция Современный подход в банках
Интеграция – объединение частей в целое
Каких частей?
Наивный подход к Интеграции
Нужна ли системная интеграция?
Одна система
Много систем и слой интеграции
Интеграция…?
Основные подходы к интеграции
Принцип работы файлового обмена
Пример из жизни (Файловый обмен)
Пример из жизни (Файловый обмен)
Файловый обмен
Основные подходы к интеграции
Принцип работы RPC
Принцип работы RPC на самом деле
RPC
Основные подходы к интеграции
Принцип работы общей БД
Общая БД
Основные подходы к интеграции
Принцип работы MOM
Интеграция
Интеграция
Интеграция
MOM
Основные подходы к интеграции
Принцип работы Web сервисов
Принцип работы Web сервисов
Web сервисы
Основные подходы к интеграции
Наивный подход к Интеграции 2
Наивный подход к Интеграции 2
Шина интеграции (ESB)
Промежуточное ПО, централизирующие задачи обмена данными между системами
Иногда этого не хватает…
Иногда этого не хватает…
…Иногда появляется система - особая снежинка, которая ничего не умеет
API шины интеграции SonicESB
Обычно возможности обратиться на шину достаточно
… Но иногда не достаточно только попасть на шину
… Но иногда не достаточно только попасть на шину
… Необходимо еще и преобразовать формат
… или трансформировать сообщение внутри формата
Некоторые системы представляют одинаковые данные в разных форматах
Репликация данных
Репликация данных
А иногда и дождаться ответа от всех
Возможности шины интеграции
Среда разработки
Пример взаимодействия
Пример взаимодействия
Сегодня мы узнали
Основные подходы к интеграции
Тема ESB и интеграции на этом не исчерпана
Список литературы
IT – интеграция Современный подход в банках

IT-интеграция. Современный подход в банках

1. IT – интеграция Современный подход в банках

Автор: Бухматов Павел

2. Интеграция – объединение частей в целое

3. Каких частей?

Информационных систем!
- Бизнес-логика
- Интерфейс пользователя
- СУБД
- Операционные системы
- Языки программирования
- Серверы
- Сети
- Платформы виртуализации

4. Наивный подход к Интеграции

5. Нужна ли системная интеграция?

Много систем и
интеграционный слой
Одна система
VS

6. Одна система

+ Легко настроить
мониторинг и отладку
+ Просто развертывать
+/– Весь код в едином
контексте
–/+ Сложно обновлять
– Ошибки имеют
глобальный характер
– Тяжело масштабируется
– Ошибки тяжело
отследить

7. Много систем и слой интеграции

+ Ошибки в системах имеют
локальный характер
+ Легче масштабируется
+ Легче разворачивается
– Может отвалиться весь
интеграционный слой (?)
– Мониторинг — сложная
задача
– Ошибки все еще тяжело
отследить…

8. Интеграция…?

9. Основные подходы к интеграции

• Файловый обмен

10. Принцип работы файлового обмена

write("file.txt",
"/root/user/docs/")
read("/root/user/docs/file.
txt")

11. Пример из жизни (Файловый обмен)

foo@dev:~/ESBData> ll
итого 120
-rw-r--r-- 1 foo users
223 Окт
-rw-r--r-- 1 foo users
131 Окт
-rw-r--r-- 1 foo users
917 Окт
-rw-r--r-- 1 foo users
297 Окт
-rw-r--r-- 1 foo users
317 Окт
-rw-r--r-- 1 foo users
280 Окт
-rw-r--r-- 1 foo users
234 Окт
-rw-r--r-- 1 foo users
742 Окт
-rw-r--r-- 1 foo users 1041 Окт
-rw-r--r-- 1 foo users 1041 Окт
-rw-r--r-- 1 foo users 1041 Окт
-rw-r--r-- 1 foo users 1229 Окт
-rw-r--r-- 1 foo users 1229 Окт
-rw-r--r-- 1 foo users 10520 Ноя
-rw-r--r-- 1 foo users 10520 Ноя
-rw-r--r-- 1 foo users 10520 Ноя
13
23
23
23
23
23
23
27
26
26
26
31
31
1
2
2
10:20
12:24
12:46
14:45
14:45
14:46
14:46
11:43
09:18
15:55
16:01
13:50
13:50
16:36
11:35
11:44
ats_2017.10.13_10.20.58.399.+0300.xml
ats_2017.10.23_12.24.35.144.+0300.xml
ats_2017.10.23_12.46.00.418.+0300.xml
ats_2017.10.23_14.45.00.837.+0300.xml
ats_2017.10.23_14.45.36.923.+0300.xml
ats_2017.10.23_14.46.05.834.+0300.xml
ats_2017.10.23_14.46.55.233.+0300.xml
ats_2017.10.27_11.43.09.981.+0300.xml
dep_2017.10.26_09.18.52.104.+0300.xml
dep_2017.10.26_15.55.52.874.+0300.xml
dep_2017.10.26_16.01.58.526.+0300.xml
emp_2017.10.31_13.50.02.849.+0300.xml
emp_2017.10.31_13.50.21.729.+0300.xml
lda_2017.11.01_16.36.47.582.+0300.xml
lda_2017.11.02_11.35.25.477.+0300.xml
lda_2017.11.02_11.44.12.191.+0300.xml

12. Пример из жизни (Файловый обмен)

foo@dev:~/ESBData> cat ats_2017.10.31_09.32.08.542.+0300.xml
<?xml version="1.0" encoding="windows-1251" standalone="yes"?>
<ROOT Version="2.0">
<RecordRef Vid="▒▒▒" Kod="0">
<Requisite Name="▒▒_▒▒▒" Type="String" Value="00"/>
<Requisite Name="▒▒▒_▒▒▒_▒▒▒▒▒▒_▒▒▒▒▒▒▒▒▒▒▒▒" Type="String"
Value="▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒"/>
<Requisite Name="▒▒▒▒▒▒▒▒▒▒" Type="String" Value="▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒
▒▒▒▒▒"/>
<Requisite Name="▒▒▒▒▒▒▒▒▒▒2" Type="String" Value="▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒
▒▒▒▒▒"/>
<Requisite Name="▒▒▒▒▒▒▒▒" Type="String" Value="1 2"/>
<Requisite Name="▒▒▒▒▒▒▒▒▒▒2" Type="String"
Value=" 107078, ▒▒▒▒▒▒▒ ▒▒▒▒▒ 2/1,▒▒▒▒▒▒▒ ▒▒▒▒▒ 1
119991,▒▒▒▒▒▒▒ ▒▒▒▒▒ 24"/>
<Requisite Name="▒▒▒▒▒▒▒▒" Type="DateTime" Value=""/>
</RecordRef>
</ROOT>esbuser@esb8-dev:~/ESBData/DIRECTUM>
foo@dev:~/ESBData>
encoding="windows-1251"

13. Файловый обмен

+ Работает
везде
+ Лучше
защищен от
потерь
+ Слабая
связанность
– Сложный контракт
взаимодействия
– Кодировки
– Сложно получать
актуальные данные
– Нужен механизм
переноса файлов
между жесткими
дисками

14. Основные подходы к интеграции

✓ Файловый обмен
• RPC (Remote Procedure Call)
Притворимся, что удаленный
вызов на самом деле
локальный

15. Принцип работы RPC

int add(int foo, int bar) {
return foo + bar;
}
11
<..>
int a =
add(5, 6)
<..>

16. Принцип работы RPC на самом деле

17. RPC

+ Простое
использование
+ Можно
притвориться,
что все
локально
– Сложная
конфигурация
– Нетривиальная
архитектура
– Сильное
связывание систем
– Проблемы с
передачей большого
объема данных

18. Основные подходы к интеграции

✓ Файловый обмен
✓ RPC (Remote Procedure Call)
• Общая база данных

19. Принцип работы общей БД

20. Общая БД

+ Транзакционность
+ Персистентность
(Сохранение данных
при ошибках /
катастрофах, etc)
+ Легкое
представление
иерархий
– Данные в одном
формате в
нескольких системах
– Изменять базу
сложно (Надо
менять всех
клиентов)
– Общая точка
отказа

21. Основные подходы к интеграции

✓ Файловый обмен
✓ RPC (Remote Procedure Call)
✓ Общая база данных
• Системы обмена сообщениями (MOM –
message oriented middleware)

22. Принцип работы MOM

Application C?

23. Интеграция

24. Интеграция

25. Интеграция

26. MOM

+ Слабая
связанность
+ Можно
модифицировать
отдельно от
приложений
+ Сложная логика
взаимодействия
систем реализуется
на уровне MOM
– Дополнительный
компонент
архитектуры (сама
MOM)
– Сложность
синхронного
взаимодействия
– Много поставщиков
(IBMmq, RabbitBQ,
Kafka, etc)

27. Основные подходы к интеграции

✓ Файловый обмен
✓ RPC (Remote Procedure Call)
✓ Общая база данных
✓ Системы обмена сообщениями (MOM –
message oriented middleware)
• Web сервисы

28. Принцип работы Web сервисов

HTTP(S) – это жизнь

29. Принцип работы Web сервисов

URL: http://my_company/dostuff
Внутренняя сеть

30. Web сервисы

+ Синхронны по своей
природе
+ Просты в
реализации
+ Является
общепринятым
стандартом
(Реализованы
балансировка,
авторизация и т.д.)
– Сложности с
асинхронных
взаимодействием
+/– Довольно
сложный контракт
– Сложно
передавать много
данных

31. Основные подходы к интеграции

✓ Файловый обмен
✓ RPC (Remote Procedure Call)
✓ Общая база данных
✓ Системы обмена сообщениями (MOM –
message oriented middleware)
✓ Web сервисы

32. Наивный подход к Интеграции 2

Файловый обмен
RPC
Общая BD
Web-service

33. Наивный подход к Интеграции 2

Файловый обмен
RPC
Общая BD
Web-service

34. Шина интеграции (ESB)

35. Промежуточное ПО, централизирующие задачи обмена данными между системами

Шина интеграции (ESB)
Промежуточное ПО,
централизирующие задачи
обмена данными между
системами

36.

Как «присоединиться» к
шине
Адаптер MOM (IBM,
JMS, etc.)
Адаптер БД (oracle,
postgress, etc.)
Адаптер Файлового
обмена
Адаптер Web сервисов
(SOAP, REST)

37.

Пример
Адаптер
Файлового
обмена
Адаптер Web
сервиса

38. Иногда этого не хватает…

39. Иногда этого не хватает…

Адаптер WS
Адаптер MOM
Адаптер DB
Адаптер MOM
Я НИЧЕГО НЕ
УМЕЮ!
Адаптер файлового
обмена

40. …Иногда появляется система - особая снежинка, которая ничего не умеет

…Иногда появляется система особая снежинка, которая
ничего не умеет
И для нее надо делать особый
Адаптер
… При помощи API шины!

41. API шины интеграции SonicESB

import com.sonicsw.xq.XQServiceEx;
import com.sonicsw.xq.XQInitContext;
class SpecialSnowflakeAdapter implements XQServiceEx {
@Override
@Override
@Override
@Override
@Override
public
public
public
public
public
void
void
void
void
void
init(XQInitContext initialContext)
service(XQServiceContext ctx)
start()
stop()
destroy()
}
SpecialSnowflakeAdapter

42. Обычно возможности обратиться на шину достаточно

Адаптер WS
Адаптер MOM
Адаптер DB
Адаптер MOM
Я НИЧЕГО НЕ
УМЕЮ!
SpecialSnowflakeAdapter
Адаптер файлового
обмена

43. … Но иногда не достаточно только попасть на шину

Умею
работать
с XML
Умею
работать с
JSON

44. … Но иногда не достаточно только попасть на шину

Умею
работать
с XML
XML
Умею
работать с
JSON

45. … Необходимо еще и преобразовать формат

Умею
работать с
JSON
Умею
работать
с XML
XML
JSON

46. … или трансформировать сообщение внутри формата

Умею
работать
с XML
XML
Умею работать с
XML, но с
другим!
XML*

47. Некоторые системы представляют одинаковые данные в разных форматах

Проблемы не заканчиваются
Некоторые системы
представляют одинаковые
данные в разных форматах
Пол
Система 1 Система 2 Система 3
Мужской
M
0
муж
Женский
Ж
1
жен

48.

Предоставление единого
формата на ESB
Пол
Система 1 Система 2 Система 3
Мужской
M
0
муж
Женский
Ж
1
жен
Пол
Мужской
Женский
Общий формат
M
F

49. Репликация данных

Некоторые данные нужно
отправить в несколько систем
при этом сделать только 1
вызов

50. Репликация данных

51. А иногда и дождаться ответа от всех

0
1* 0
2*
0
0
1*2*3*
3*
3*
1*2*3*

52. Возможности шины интеграции

• Присоединение систем к единой платформе
обмена (Посредствам адаптеров)
• Преобразования форматов (e.g. XML JSON)
• Трансформации форматов (e.g. XML XML)
• Предоставление единого формата полей
• Распространение (репликация) данных
• etc…

53.

Особенности коммерческих
ESB
MOM
Взаимодействие с БД
Web сервисы
Файловый обмен
• Предоставляет MOM,
Файловый обмен, БД, Web
сервисы, единый API
• Единая точка
конфигурации
• Единая точка мониторинга
• Единый подход к
разработке,
развертыванию и
обновлениям

54. Среда разработки

Любое взаимодействие между
системами можно представить
в виде последовательности
действий на шине

55. Пример взаимодействия

1. Взять сообщение из базы данных
2. Добавить заголовки basic authentication
3. Преобразовать xml
xml (По
правилам преобразования)
4. Записать сообщение в лог
5. Вызвать систем по Web сервису
6. Записать сообщение в лог

56. Пример взаимодействия

1.
2.
3.
4.
5.
6.
Сообщение берется из
БД особым адаптером Gateway
Добавить заголовки
basic authentication
Преобразовать xml
xml (По правилам
преобразования)
Записать сообщение в
лог
Вызвать систем по Web
сервису
Записать сообщение в
лог

57. Сегодня мы узнали

Что интегрировать
приложение между собой
сложно, но возможно

58. Основные подходы к интеграции

✓ Файловый обмен
✓ RPC (Remote Procedure Call)
✓ Общая база данных
✓ Системы обмена сообщениями (MOM –
message oriented middleware)
✓ Web сервисы

59.

Особенности коммерческих
ESB
MOM
Взаимодействие с БД
Web сервисы
Файловый обмен
• Предоставляет MOM,
Файловый обмен, БД, Web
сервисы, единый API
• Единая точка
конфигурации
• Единая точка мониторинга
• Единый подход к
разработке,
развертыванию и
обновлениям

60. Тема ESB и интеграции на этом не исчерпана

Более подробно можно
узнать, попав к нам на
стажировку
Или почитав умные книжки

61. Список литературы

1. Шаблоны интеграции корпоративных
приложений. : Пер. с англ. М.:ООО ‘‘И.Д.
Вильямс’’.
2. Мартин Фаулер. Шаблоны корпоративных
приложений. : Пер. с англ. М.:ООО ‘‘И.Д.
Вильямс’’.

62. IT – интеграция Современный подход в банках

Автор: Бухматов Павел
vk:
emain:
github:
vk.com/buhmatov
[email protected]
github.com/aquatir
English     Русский Правила