Открыть сервис

Промежуточное программное обеспечение

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

История развития

Ранние этапы (1960–1980-е)

Первые прообразы middleware появились в мейнфреймовых системах 1960-х годов, где для обмена данными между терминалами и центральным процессором использовались специализированные протоколы (например, IBM CICS). С развитием локальных сетей в 1980-х возникла потребность в стандартизации взаимодействия между приложениями на разных компьютерах. В 1984 году компания Sun Microsystems представила протокол ONC RPC (Open Network Computing Remote Procedure Call), который позволял программам вызывать функции на удалённых машинах. В это же время появились первые коммерческие продукты, такие как DEC Message Queue (1985) и IBM MQSeries (1989), ориентированные на асинхронную передачу сообщений.

Расцвет в эпоху распределённых систем (1990-е)

С распространением архитектуры «клиент-сервер» и интернета в 1990-х годах middleware стало ключевым компонентом корпоративных информационных систем. В 1992 году консорциум Object Management Group (OMG) опубликовал спецификацию CORBA (Common Object Request Broker Architecture), которая позволяла взаимодействовать объектам, написанным на разных языках программирования. В 1995 году компания Microsoft выпустила DCOM (Distributed Component Object Model) для Windows-среды. В 1998 году появилась спецификация Java RMI (Remote Method Invocation), ставшая основой для Java EE. В этот же период активно развивались системы управления очередями сообщений (message-oriented middleware, MOM), такие как IBM WebSphere MQ и TIBCO Rendezvous.

Современный этап (2000-е — настоящее время)

С переходом к сервис-ориентированной архитектуре (SOA) в начале 2000-х годов middleware эволюционировало в сторону интеграционных платформ (Enterprise Service Bus, ESB). Примеры: IBM WebSphere ESB, Oracle Service Bus, Mule ESB. С распространением облачных вычислений и микросервисной архитектуры в 2010-х годах появились лёгкие решения, такие как RabbitMQ (2007), Apache Kafka (2011), gRPC (2015). Современное middleware всё чаще реализуется как набор контейнеризированных сервисов (Docker, Kubernetes) и использует принципы реактивного программирования.

Основные функции

Middleware решает следующие задачи:

Классификация

По типу взаимодействия

ТипОписаниеПримеры
Удалённый вызов процедур (RPC)Позволяет вызывать функции на удалённом сервере как локальныеgRPC, Apache Thrift, Java RMI
Очереди сообщений (MOM)Асинхронная передача сообщений через брокерыRabbitMQ, Apache ActiveMQ, IBM MQ
Потоковая обработка событийНепрерывная обработка потоков данных в реальном времениApache Kafka, Apache Flink, Amazon Kinesis
Объектные брокеры (ORB)Взаимодействие распределённых объектовCORBA, DCOM, Java RMI-IIOP
Интеграционные шины (ESB)Централизованная маршрутизация и трансформация сообщенийMuleSoft, WSO2, IBM Integration Bus

По сфере применения

Архитектурные подходы

Традиционная архитектура (брокер сообщений)

В классической схеме middleware выступает как центральный узел, через который проходят все сообщения между приложениями. Брокер (например, RabbitMQ) принимает сообщения от отправителей, помещает их в очереди и доставляет получателям. Этот подход упрощает контроль трафика, но создаёт единую точку отказа.

Шинная архитектура (ESB)

Enterprise Service Bus представляет собой распределённую интеграционную платформу, где middleware обеспечивает маршрутизацию, трансформацию и оркестровку сервисов. ESB часто включает адаптеры для подключения legacy-систем. Недостаток — сложность конфигурации и снижение производительности при большом количестве преобразований.

Микросервисная архитектура

В современных системах middleware часто реализуется как набор лёгких сервисов, взаимодействующих через API-шлюзы и очереди событий. Например, в стеке Kubernetes роль middleware выполняют Ingress-контроллеры, Service Mesh (Istio, Linkerd) и брокеры сообщений. Каждый микросервис использует middleware только для конкретных задач (аутентификация, логирование, межсервисная связь).

Примеры реализации

Промышленные решения

Открытые проекты

Применение в России

В российских компаниях middleware активно используется в банковском секторе (Сбербанк, ВТБ), телекоммуникациях (Ростелеком, МТС) и государственных информационных системах. С 2014 года наблюдается тенденция к импортозамещению: разрабатываются отечественные решения, такие как «СберТех» (платформа Platform V), «1С-Битрикс» (корпоративный портал) и «РЭУ-М» (система управления очередями). В 2022 году Минцифры России утвердило перечень рекомендованных middleware-продуктов для госорганов, включающий решения на базе Open Source (RabbitMQ, PostgreSQL, Apache Kafka) с адаптацией под требования ФСТЭК.

Критика и ограничения

Перспективы развития

Современные тенденции включают:

Источники

  1. Tanenbaum A. S., Van Steen M. «Distributed Systems: Principles and Paradigms» (2007).
  2. Hohpe G., Woolf B. «Enterprise Integration Patterns» (2003).
  3. Спецификация OMG CORBA 3.0 (2002).
  4. Документация Apache Kafka (версия 3.5, 2023).
  5. «Программа импортозамещения ПО в России» — Минцифры РФ (2022).
  6. Статья «Middleware: история и классификация» — журнал «Открытые системы» (2021).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →