Как выбрать тип межсистемной интеграции
В предыдущем посте мы рассмотрели 4 типа интеграции систем. Настало время подумать над тем, какой способ лучше и в каких случаях. Вопросы выбора конкретного способа реализации, например, REST vs SOAP, будут рассмотрены в других постах.
Попробуем выделить ряд критериев, которые помогут определиться. Нет такого решения, которое было бы универсальным в любой ситуации. Однако стоит учитывать, что вес того или иного критерия определяется текущими условиями и решаемыми задачами.
Критерии выбора
-
Периодичность межсистемного взаимодействия
- По расписанию: система Б получает сведения из системы А раз в определенный период времени (минута, час, сутки и пр.)
- По событию: передача данных и удаленные вызовы функций выполняются при наступлении какого-то события в одной из систем или внешнем мире
- По запросу: по явному запросу пользователя или другой системы
-
Допустимая задержка обработки данных
- Это время, которое проходит с момента появления данных в источнике до их получения приемником
- Если данные нужно обрабатывать в реальном времени или с минимальной задержкой, то подходят технологии потоковой передачи, такие как
gRPC
-
Степень связанности и зависимости систем
- Чем сильнее системы связаны и зависят друг от друга, тем выше требования к согласованности и актуальности данных
-
Степень изменчивости и динамичности систем
- Чем чаще и сильнее системы меняются и развиваются, тем выше требования к гибкости и масштабируемости интеграции
- В таких случаях не подходит единая база данных, так как невозможно менять схему данных настолько часто, насколько это необходимо
-
Масштабируемость
- Это способность системы к росту путем увеличения количества вычислительных узлов (серверов)
- Пример:
Kafkaобеспечивает высокую пропускную способность и автоматическую балансировку нагрузки при передаче большого количества сообщений - Важно учитывать количество источников и приемников данных, которые должны быть подключены к системе интеграции
-
Совместимость всех систем с выбранным типом интеграции
- Разные приложения могут быть реализованы в разных архитек турных стилях и парадигмах разработки
- Если выбран способ файловой интеграции, необходимо убедиться, что интегрируемые системы поддерживают работу с предоставляемыми форматами
Итоги
-
Файловая интеграция
Подходит для передачи небольших объемов простых данных между слабосвязанными и малоизменяемыми системами.
Преимущества: простота и низкая стоимость
Недостатки: низкая производительность, ненадежность и неактуальность данных -
Общая база данных
Подходит для передачи больших объемов сложных данных между сильносвязанными и зависимыми системами.
Преимущества: высокая скорость и согласованность данных
Недостатки: высокая стоимость, жесткость и риск потери данных -
Удаленный вызов процедур
Подходит для передачи средних объемов сложных данных между сильносвязанными и зависимыми системами.
Преимущества: гибкость и надежность
Недостатки: низкая масштабируемость, высокая сложность и риск ошибок -
Обмен сообщениями
Подходит для передачи любых объемов и сложности данных между слабосвязанными и динамичными системами.
Преимущества: гибкость и масштабируемость
Недостатки: сложности с согласованностью данных, высокая задержка и риск потери сообщений при неправильной реализации
Подборка материалов по теме
- Шаблоны интеграции корпоративных приложений — книга Хопа и Вульфа
- 7 главных требований к интеграции ИС, чтобы определить решение — BABOK School
- Типы системной интеграции
- Базовое проектирование и разработка требований к интеграции систем (для начинающих аналитиков)
- Интеграции IT систем и при чем тут бар?