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

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

Итак, рассматривать нужно все нижеописанные пункты вместе и накладывать ответы на эти вопросы друг на друга:

1. Должна ли система, отправляющая запрос, останавливать свою работу, пока ждет ответ на этот запрос? - Должна обязательно: REST / SOAP / сервисная шина - Не должна, но в случае ошибок допустима остановка процесса: REST / SOAP / сервисная шина / смешанные интеграции (REST + очереди, REST с callback) - Не должна никак: очереди / ETL 2. Нужно ли получение информации в одной системе сразу же, как она появилась в другой системе: - Нужно получение сразу: REST / SOAP / сервисная шина - Допускается временной лаг: очереди / ETL 3. Как долго будет обрабатываться запрос? - До 1 минуты: REST / SOAP / очереди / сервисная шина - Более 1 минуты: очереди / ETL / смешанные интеграции (REST + очереди, REST с callback) 4. Частота/периодичность/количество запросов: - Частые и регулярные запросы: очереди / сервисная шина - Редкие, нерегулярные запросы: REST / SOAP / сервисная шина / очереди 5. Передаваемый объем (= размерность) каждого запроса: - Большой: ETL - Небольшой: REST / SOAP / сервисная шина / очереди

Вопросы чеклиста, которые перечислены выше, стоит рассматривать “примитивно”: 1. представляя, что у нас самая простая задача на интеграцию 2 систем между собой 2. шаблон интеграции мы выбираем “в идеале”, как по учебнику 3. рассматриваются средства интеграций, которые могут быть использованы в 90% компаний 4. не рассматриваются высоконагруженные системы

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

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

Кстати, кандидаты, которые не могут обосновать выбор конкретного способа интеграции, в большинстве случаев автоматически не проходят собес - например, когда говорят, что надо использовать REST (вторая половина кандидатов то же самое говорит про очереди), потому что это быстро, современно и тд. Хорошо, а шина не быстрая и не современная? :) а остальные способы интеграций? Нужно же не продать какой-то один известный тебе способ интеграции, а выбрать наилучший исходя из конкретной задачи.

А чтобы это уметь, как раз нужно учитывать скорость обработки данных, нагрузку на системы, как срочно нужно будет передавать данные и т.д. Как-то так.