Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Применение многоадресного вещания для организации взаимодействия компонентов информационных систем

Информационные технологии
22.07.2026
14
Поделиться
Аннотация
В статье автор исследует возможность применения многоадресного вещания как способа организации обмена сообщениями между составляющими информационной системы. Выполняется создание прототипа информационной системы, состоящей из двух сервисов, использующих возможности сетевого стека операционной системы на базе ядра Linux для обмена сообщениями о событиях посредством многоадресного вещания и выполнении процессов. На основании полученных результатов функционирования прототипа выдвигается предположение о возможности реализации данной концепции, а также предлагается вариант её улучшения.
Библиографическое описание
Цветков, А. А. Применение многоадресного вещания для организации взаимодействия компонентов информационных систем / А. А. Цветков. — Текст : непосредственный // Молодой ученый. — 2026. — № 30 (633). — URL: https://moluch.ru/archive/633/139351.


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

В условиях активного внедрения информационных технологий в деятельность компаний к системам предъявляются повышенные требования к скорости работы, безопасности и устойчивости к высоким нагрузкам. Помимо этого, постоянно меняющиеся тренды вынуждают компании предлагать новые и уникальные услуги, тем самым создавая необходимость постоянно дорабатывать свои информационные системы. Именно поэтому в настоящее время акцент при проектировании делается на уменьшение связанности их составляющих, в следствие чего концепция разделения системы на сервисы и выстраивания их взаимодействия получила широкое распространение. Наиболее известной реализацией такой концепции является сервис-ориентированная архитектура (SOA), или же конкретная её разновидность — микросервисная архитектура, отличающаяся от SOA общесистемной стандартизацией способов взаимодействия составляющих систем и возможностью масштабирования за счёт быстрого запуска копий сервисов [1].

В микросервисной архитектуре каждый сервис отвечает за выполнение определенных бизнес-функций, связанных с некоторым элементом предметной области или группой связанных процессов. Безусловно, при проведении большинства процессов в системе, где ответственность разделена, возникает необходимость в межкомпонентном, или говоря иначе, межсервисном взаимодействии. К примеру, обработка заказа в книжном магазине после выбора покупателем позиции к приобретению требует выполнения нескольких процессов — выставление счёта, проведение оплаты и выдача доступа к приобретенному экземпляру после проверки факта оплаты. В дополнение, на почту клиенту может потребоваться отправка чека, что в отношении самого процесса является неприоритетной задачей, но обязательной в соответствии с требованиями законодательства. Именно поэтому существует несколько способов межсервисного взаимодействия в системах. Часто можно наблюдать их комбинацию, так как в рамках процесса одним задачам требуется выполнение действий сторонним сервисом практически мгновенно (синхронно), а другим достаточно выполнения с задержкой (асинхронно).

Наиболее популярным инструментом для организации асинхронного взаимодействия является брокер сообщений. Это специальный программный компонент, который работает по модели «издатель-подписчик». Сервис-издатель публикует некоторое сообщение о событии, а сервис-подписчик реагирует на него в зависимости от определенных в нём бизнес-правил. Бесспорным преимуществом такого компонента является возможность хранения им сообщений, пока они не будут прочитаны потребителем. К тому, же в отличии от синхронной реализации, например, через оповещение о событиях посредством REST API, это позволяет гибко масштабировать систему — добавлять новые узлы-обработчики, что является одним из методов противостояния высоким нагрузкам, или же с минимальными затратами на разработку модифицировать отдельные сервисы, что бывает удобно в системах, которые работают как в «облаке», так и распространяются в коробочном исполнении. Однако использование брокера в системе требует высокой квалификации сопровождающей её персонала, так как только при грамотной настройке будет гарантироваться корректная маршрутизация и низкий процент потерянных сообщений. Это делает их использование в небольших, но нагруженных системах нецелесообразным. К тому, же централизация в такой модели может стать точкой отказа. Конечно, современные брокеры сообщений имеют возможность объединения их в кластеры, однако для небольших систем это становится избыточным.

Исследуя профильное направление компьютерных наук, занимающееся передачей данных, а именно технологий систем связи и компьютерных сетей, можно подметить один из способов передачи данных — многоадресное вещание. Такой способ позволяет эффективно передавать данные множеству получателей одновременно за счёт отправки одной копии потока. Для сравнения стоит сказать, что в случае с одноадресной передачей для каждого получателя создаётся своя копия потока, из‑за чего суммарная нагрузка на источник и сеть линейно растёт с числом клиентов. В качестве еще одного аргумента в пользу многоадресного вещания можно привести возможность управления доставкой потока сетевыми устройствами за счёт протокола IGMP (Internet Group Management Protocol), что избавляет источник данных от необходимости управлять доставкой, а нативная поддержка сетевым стеком операционных систем на базе ядра Linux упрощает использование такого способа передачи данных при разработке прикладных решений [2].

Выполним построение прототипа информационной системы, состоящей из двух сервисов — сервиса задач и сервиса почтовых уведомлений, обменивающихся сообщениями о произошедших в них событиях при помощи многоадресного вещания при проведении некоторого бизнес-процесса создания и делегации задачи. Реализацию сервисов выполним на языке Python с использованием библиотеки multicast. Данная библиотека позволяет отправлять и получать сообщения по сети посредством многоадресной рассылки , используя возможности сетевого стека операционной системы на ядре Linux [3]. На рис. 1–2 представлены листинги исходного кода сервисов.

Листинг исходного кода сервиса задач с функциями отправки и получения сообщений посредством многоадресного вещания

Рис. 1. Листинг исходного кода сервиса задач с функциями отправки и получения сообщений посредством многоадресного вещания

Листинг исходного кода сервиса почтовых уведомлений с функциями отправки и получения сообщений посредством многоадресного вещания

Рис. 2. Листинг исходного кода сервиса почтовых уведомлений с функциями отправки и получения сообщений посредством многоадресного вещания

Программы используют многопоточность для разделения задач отправки и обработки получаемых сообщений. После запуска программы сервиса задач выполняется создание задачи посредством функции task_create() , в которой также вызывается функция publisher(), отправляющей сообщение «Task was created successfully» в сеть по адресу многоадресного вещания 224.0.0.1 . Запущенная программа сервиса почтовых уведомлений прослушивает данный адрес и при поступлении сообщений начинает их обработку — выполняет чтение сообщения и запуск соответствующего бизнес-сценария. В данном примере таким сценарием является отправка оповещения на почту посредством функции send_mail() и публикация сообщения « Email was sent successfully » в сеть по адресу многоадресного вещания 224.0.0.1. В сервисе задач также задано правило обработки события отправки письма, и поэтому при получении данного сообщения из сети сервис задач выполняет бизнес-сценарий делегации задачи, реализованной в функции task_delegate() . На рис. 3. представлено логирование обмена сообщениями и отработки бизнес-сценариев сервисами.

Логирование обмена сообщениями и отработки бизнес-сценариев сервисами

Рис. 3. Логирование обмена сообщениями и отработки бизнес-сценариев сервисами

Нельзя не упомянуть о главном недостатке подобного исполнения — потеря сообщений при недоступности получателя. Дело в том, что многоадресное вещание изначально разрабатывалось для сервисов реального времени — например, IPTV (Internet Protocol Television) и сохранение состояния не было предусмотрено осознано. Одним из решений данной проблемы, вызванной ограничением многоадресного вещания, может стать добавление кэширующих компонентов в составе сервиса-подписчика (рис. 4). При недоступности всех экземпляров сервиса-подписчика сообщения принимаются кэширующим компонентом сервиса и при восстановлении работоспособности первый экземпляр сервиса выполняет обработку имеющихся в кэше данных.

Схема обмена сообщениями при использовании кэширующего компонента

Рис. 4. Схема обмена сообщениями при использовании кэширующего компонента

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

Литература:

1. SOA vs. Микросервисы: в чём отличия. — Текст: электронный // Джеймикс: [сайт]. — URL: https://www.jmix.ru/tech-hub/soa-vs-mikroservisy/ (дата обращения: 19.07.2026).

2. IP Multicast Routing Technology Overview. — Текст: электронный // Cisco Systems: [сайт]. — URL: https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/ 17–1/configuration_guide/ip_mcast_rtng/b_171_ip_mcast_rtng_9300_cg/ip_multicast_routing___technology_overview.pdf (дата обращения: 19.07.2026).

3. Multicast Python Module. — Текст: электронный // PyPI: [сайт]. — URL: https://pypi.org/project/multicast/ (дата обращения: 19.07.2026).

Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Похожие статьи
Разработка и внедрение приложения «Информирование клиентов» с микросервисной архитектурой в электронную торговую площадку
Брокеры сообщений в системах обработки данных
Архитектура и оценка эффективности распределённой системы фоновых задач
Применение микросервисной архитектуры при разработке CRM-систем для автоматизации бизнес-процессов в сфере услуг
Обзор систем обмена сообщениями
Сравнительный анализ производительности REST- и Event-driven архитектур в среде Kubernetes
Разработка веб-приложения для организации мероприятий
Разработка расчетной системы промышленного предприятия «МетСервис-А»
Эволюция архитектурных стилей при разработке информационных систем: от монолитных приложений к микросервисной архитектуре
Разработка программного модуля обработки результатов массовых спортивных соревнований с нагрузкой до 150 тысяч участников

Молодой учёный