Перейти к основному содержимому

Как выбрать тип межсистемной интеграции

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

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

Критерии выбора

  1. Периодичность межсистемного взаимодействия

    • По расписанию: система Б получает сведения из системы А раз в определенный период времени (минута, час, сутки и пр.)
    • По событию: передача данных и удаленные вызовы функций выполняются при наступлении какого-то события в одной из систем или внешнем мире
    • По запросу: по явному запросу пользователя или другой системы
  2. Допустимая задержка обработки данных

    • Это время, которое проходит с момента появления данных в источнике до их получения приемником
    • Если данные нужно обрабатывать в реальном времени или с минимальной задержкой, то подходят технологии потоковой передачи, такие как gRPC
  3. Степень связанности и зависимости систем

    • Чем сильнее системы связаны и зависят друг от друга, тем выше требования к согласованности и актуальности данных
  4. Степень изменчивости и динамичности систем

    • Чем чаще и сильнее системы меняются и развиваются, тем выше требования к гибкости и масштабируемости интеграции
    • В таких случаях не подходит единая база данных, так как невозможно менять схему данных настолько часто, насколько это необходимо
  5. Масштабируемость

    • Это способность системы к росту путем увеличения количества вычислительных узлов (серверов)
    • Пример: Kafka обеспечивает высокую пропускную способность и автоматическую балансировку нагрузки при передаче большого количества сообщений
    • Важно учитывать количество источников и приемников данных, которые должны быть подключены к системе интеграции
  6. Совместимость всех систем с выбранным типом интеграции

    • Разные приложения могут быть реализованы в разных архитектурных стилях и парадигмах разработки
    • Если выбран способ файловой интеграции, необходимо убедиться, что интегрируемые системы поддерживают работу с предоставляемыми форматами

Итоги

  • Файловая интеграция
    Подходит для передачи небольших объемов простых данных между слабосвязанными и малоизменяемыми системами.
    Преимущества: простота и низкая стоимость
    Недостатки: низкая производительность, ненадежность и неактуальность данных

  • Общая база данных
    Подходит для передачи больших объемов сложных данных между сильносвязанными и зависимыми системами.
    Преимущества: высокая скорость и согласованность данных
    Недостатки: высокая стоимость, жесткость и риск потери данных

  • Удаленный вызов процедур
    Подходит для передачи средних объемов сложных данных между сильносвязанными и зависимыми системами.
    Преимущества: гибкость и надежность
    Недостатки: низкая масштабируемость, высокая сложность и риск ошибок

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

Подборка материалов по теме

  1. Шаблоны интеграции корпоративных приложений — книга Хопа и Вульфа
  2. 7 главных требований к интеграции ИС, чтобы определить решение — BABOK School
  3. Типы системной интеграции
  4. Базовое проектирование и разработка требований к интеграции систем (для начинающих аналитиков)
  5. Интеграции IT систем и при чем тут бар?