Анализ данных • 28 ноября 2023 • 5 мин чтения

О чём говорят системы: разбираемся в интеграциях

Приложение интернет-магазина выглядит как одна система, но технически это несколько связанных систем. Разработчики называют такую связь интеграцией. Рассказываем, как она устроена.

Что такое системная интеграция

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

Когда клиент делает заказ, информация о нём автоматически передаётся сервису доставки. Покупатель получает уведомление и забирает заказ. В магазин возвращается информация о том, что заказ забрали и когда это произошло. Так сотрудники автоматически отслеживают статус каждого заказа и не тратят время на коммуникации с курьерами или сервисами с постаматами.

Цели системной интеграции

Интеграции нужны, чтобы отдать системам рутинные задачи, которые люди делают вручную. Меньше ручного труда — быстрее и дешевле процессы для бизнеса.

Онлайн-магазин цветов использует три системы, которые друг с другом не связаны:
CRM-система — в ней хранится информация о продажах и клиентах;
● система учёта товаров на складе — в ней хранится актуальная информация о количестве цветов, упаковочной бумаги и лент;
● бухгалтерская система — для финансового учёта.

Системы не обмениваются данными, поэтому сотрудникам, которые с ними работают, приходится делать много ручной работы. Отдел продаж готовит копии счётов для бухгалтерии. Бухгалтеры вручную регистрируют поступления денег на счёт. Сотрудники склада отправляют накладные в бухгалтерию и не отгружают товар, пока менеджеры по продажам им не скажут.

Один день в офисе, где системы не интегрированы

Если интегрировать три системы, то они будут автоматически обмениваться информацией. Бухгалтеры будут видеть в 1С данные об оплатах, менеджерам по продажам не придётся запрашивать документы у бухгалтерии, а сотрудники склада будут получать уведомления о новых заказах и сразу собирать их. Лишних коммуникаций и бумажной работы станет меньше.

Системной интеграцией занимаются разработчики: продумывают архитектуру, пишут код, настраивают параметры. Но технической команде нужна документация, чтобы реализовать всё так, как задумал бизнес. За неё отвечает системный аналитик. Он анализирует требования от бизнеса и соотносит их с техническими возможностями систем и команды. Результат работы системного аналитика — подробно описанные требования, на которые ориентируются разработчики.

Интеграцию студенты изучают на курсе «Системный аналитик» в блоке «Архитектура систем». Вместе с преподавателями, ревьюерами и наставниками они разбирают стили архитектуры и способы её моделировать. В продвинутой программе — изучают требования к разным архитектурам.

Спрос на системных аналитиков продолжает расти
Обучайтесь на реальных рабочих задачах, освойте новые инструменты за 9 месяцев и получите 5 проектов в портфолио к концу курса «Системный аналитик». Начните с бесплатной вводной части.

Типы системной интеграции

Бывают интеграции приложений, данных, корпоративных приложений. Разберём подробнее разные типы.

Пять методов системной интеграции

Есть две классификации методов интеграции — по иерархии и по способу взаимодействия. С точки зрения иерархии интеграции бывают вертикальные и горизонтальные, по способу взаимодействия — «точка-точка», «звезда» или смешанный метод. Разберём эти виды системной интеграции подробнее:

1. Вертикальная интеграция

Представим, что владелец кондитерской не просто продаёт яблочные пироги, но и печёт их, а ещё владеет яблочным садом и контролирует сбор урожая. То есть он отвечает за весь процесс — от выращивания деревьев и покупки удобрений до запуска рекламной кампании кондитерской. В этом случае в системе управления производством и бизнесом будет несколько уровней:

● системы, которые обрабатывают данные по выращиванию и сбору урожая;
● системы, которые управляют процессом выпекания;
● системы, связанные с продажами;
● рекламные сервисы.

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

2. Горизонтальная интеграция

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

У Ипполита несколько пиццерий в разных городах. Он решает объединить их в одну крупную сеть и внедряет общую систему управления запасами, обработки заказов и отслеживания продаж. Где бы ни находился ресторан, готовить, продавать пиццу и вести учёт будут по одним и тем же алгоритмам. А данные по всем пиццериям не придётся собирать отдельно — они будут подтягиваться из разных баз в один интерфейс.

3. Интеграция «точка-точка»

Друзья Юры живут в разных частях города. Он хочет организовать вечеринку и собрать всех дома. Юра звонит или пишет в мессенджер каждому другу и договаривается о времени и месте встречи. По такому же принципу работает интеграция «точка-точка». В IT этот метод используют, когда нужно настроить связь между парами программ напрямую. Каждая программа знает, с кем ей общаться, и они обмениваются информацией, как друзья по телефону.

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

4. Интеграция «звезда» или «спагетти»

Этот тип используют, когда нужно интегрировать несколько разных систем. Если соединять их по принципу «точка-точка», связей будет слишком много — как будто сварили огромную тарелку спагетти. Управлять такой системой сложно. Поэтому разработчики устанавливают центральную систему — что-то вроде универсального переводчика. Программы и сервисы общаются и передают информацию через этот центр.

Такой системой может стать, например, интеграционная шина — программа, которая выполнит роль посредника для нескольких систем. Подход упрощает управление и обмен данными.

Для «звезды» подойдёт метафора с расследованием преступления. Детектив выступает в роли центральной системы, через которую проходят данные из опросов свидетелей, экспертные заключения, архивные материалы. Без него вся эта информация теряет смысл

У «звезды» есть преимущества перед «точкой-точкой». Например, если убрать CRM-систему, которая интегрирована с шиной, остальные системы продолжат работать. Но если что-то случится с шиной, то перестанет работать весь контур систем, которые через неё интегрируются.

5. Смешанная

В этом случае на проекте часть систем обмениваются данными через общую точку, а часть интегрированы попарно. Например, сайт, база данных и платёжные системы обмениваются данными через API — специальный программный интерфейс. А система нотификаций, которая отправляет уведомления клиентам, интегрирована только с сайтом. Всё, что нужно для работы, система получает от него.

Преимущества и проблемы системной интеграции

Если бы системную интеграцию не придумали, технологии застряли бы на уровне раннего интернета. Разберём её главные преимущества:

Эффективность процессов. Интеграция автоматизирует часть процессов и помогает экономить ресурсы компании. Сотрудники тратят меньше времени на рутинные задачи и могут переключиться на более сложные и творческие.

Единый взгляд на данные. Интеграция системы аналитики с соцсетями, рекламными площадками и CRM помогает собрать всю маркетинговую информацию. Бизнес сможет на неё опираться и запускать эффективные рекламные кампании.

Свобода и гибкость. Интеграция нескольких облачных сервисов для управления проектами помогает распределённой команде работать так же эффективно, как если бы она сидела в одном офисе.

Интеграция систем может оказаться сложнее, чем разработка с нуля. Если заранее не выяснить все требования и особенности систем, то проект может зайти в тупик и принесёт бизнесу убытки. Разберём несколько проблем, которые могут возникнуть у команды:

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

Проблема интеграций систем с разной степенью обновления напоминает сложности в общении разных поколений

Разные форматы, протоколы и стандарты данных. Люди, которые говорят на разных языках, не понимают друг друга. Системы тоже. Чтобы настроить их взаимодействие, могут использовать интерфейсы взаимодействия — API. У этих программных интерфейсов есть инструкции, в которых чётко прописано:
● как одна система может запросить данные;
● в каком виде другая система эти данные пришлёт.
Для успешной интеграции все участники должны согласиться с правилами взаимодействия и строго им следовать.

Трудности в масштабировании. Когда дело доходит до расширения бизнеса, не все системы могут быть к этому готовы. Одни смогут выдержать десятки тысяч запросов от пользователей, другие — будут зависать. Прежде чем интегрировать системы, стоит провести нагрузочное тестирование систем, которые работают в продукте. Так получится выяснить, что нужно доработать.

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

Как подходить к системной интеграции

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

Исправлять ошибки во время разработки дороже, чем до. Например, можно ошибиться в документации API. Разработчик выполнит задачу, опираясь на то, что описал системный аналитик, а найдут эту ошибку только на этапе тестирования. Ещё хуже — когда продукт будет доступен пользователям. Придётся переписывать документацию и код. Всё это — время сотрудников и бюджет заказчика.
Придётся изучать чужие системы. Когда аналитик работает с внутренними сервисами компании, он многое уже знает и в любой момент может пообщаться с командой. При интеграции с внешними сервисами ему придётся работать с незнакомой системой, которую разработала чужая команда из другого города или даже страны. Придётся анализировать всё с нуля, выявлять источники данных, изучить документацию интегрируемой системы. Одна фраза в документации может означать целый процесс, который легко упустить.
На документацию придётся потратить больше времени. Системные требования для простой формы на сайте можно написать и за пару часов. Интеграции — задача посложнее. Чем детальнее расписаны все возможные сценарии интеграционного процесса, тем лучше. Это поможет избежать любых разночтений в требованиях и разногласий с заказчиком.

Советы экспертов

Юлия Кононенко

Интеграции нужны информационным системам как воздух. Без обмена данными они просто не смогут выполнять большую часть функций, важных для бизнеса. Для системного аналитика разбираться в интеграциях — базовое требование. Знания о том, как в мире развиваются системы, нужно постоянно обновлять. Следить за трендами, искренне интересоваться тем, что скрывается за красивыми картинками сайтов. Понимать, что интеграции не ограничиваются синхронным и асинхронным взаимодействием — это только верхушка айсберга. Новичкам советую познакомиться с каналом Марка Ричардса — опытного архитектора ПО. Он очень ёмко и по делу даёт материалы по архитектуре систем.

Маргарита Нижельская

При изучении таких сложных тем, как архитектура и интеграции, полезно вести словарик терминов. Одно незнакомое слово может потянуть за собой неверную интерпретацию учебного материала. Читая статьи или книги на тему интеграций и архитектуры, обращайте внимание на непонятные слова и пробуйте составлять для себя карту терминов. Ещё один бонус этого упражнения — будете гораздо увереннее чувствовать себя на встречах с разработчиками и архитекторами.
Статью подготовили:
Юлия Кононенко**
Яндекс Практикум
Эксперт по системному анализу
Маргарита Нижельская
Яндекс Практикум
Автор курса «Системный аналитик», специалист по системному и бизнес-анализу
Яндекс Практикум
Редактор
Полина Овчинникова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться
Знакомство с IT: Бесплатный гид Практикума по профессиям
Fri Feb 16 2024 19:12:14 GMT+0300 (Moscow Standard Time)