Что такое промежуточное ПО?

204

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

Или у вас есть пример программного обеспечения, которое не является промежуточным?

Мишель
источник

Ответы:

219

Допустим, ваша компания производит 4 разных продукта, у вашего клиента есть еще 3 разных продукта от еще 3 разных компаний.

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

Вы (мудрый разработчик) сказали, почему бы нам просто не интегрировать все разные системы и не заставить их работать вместе в однородной среде? Менеджер клиентов смотрит на вас ... Вы продолжили, мы будем использовать Middleware, мы изучим входы / выходы всех различных систем, используемые ими ресурсы, а затем выберем подходящую платформу Middleware.

Продолжая объяснять нетехническому менеджеру.
С средним каркасом Middleware первая система будет производить X, система Y и Z будет потреблять эти результаты и так далее.

medopal
источник
Отличный пример! Таким образом, разве это не станет гетерогенной средой? не однородный.
Рабия Наз хан
Промежуточное программное обеспечение - это компонент данных (агрегация + преобразование).
сверхобмена
92

Промежуточное ПО - ужасно туманный термин. Что такое «промежуточное программное обеспечение» в одном случае не будет в другом. В целом можно ожидать, что что-то, относящееся к промежуточному программному обеспечению, будет иметь следующие характеристики:

  • В основном (обычно исключительно) программное обеспечение; обычно не требуется никакого специального оборудования.

  • Если бы этого не было, приложения, которые от него зависели, должны были бы включить его как часть своего приложения и были бы в значительной степени дублированы.

  • Почти наверняка соединяет два приложения и передает данные между ними.

Вы заметите, что это почти то же самое определение, что и операционная система. Так, например, стек TCP / IP или кэширование можно считать промежуточным ПО. Но ваша ОС также может предоставлять те же функции. Действительно, промежуточное ПО можно рассматривать как специальное расширение операционной системы, специфичное для набора приложений, которые зависят от него. Он просто предоставляет сервис более высокого уровня.

Некоторые примеры промежуточного программного обеспечения:

  • распределенный кеш
  • очередь сообщений
  • монитор транзакций
  • переписчик пакетов
  • автоматизированная система резервного копирования
Джон Феминелла
источник
20

У Википедии есть довольно хорошее объяснение: http://en.wikipedia.org/wiki/Middleware

Начинается с

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

Что такое Middleware, дает несколько примеров.

aioobe
источник
1
Я сам нашел это уже, но кажется, что википедия говорит, что все является промежуточным программным обеспечением, или у вас есть пример программного обеспечения, которое не является промежуточным программным обеспечением
Мишель,
2
Я бы уточнил, добавив ... «одна или несколько машин для взаимодействия, которые изначально не смогут». В противном случае, согласитесь, ничего плохого в этом ответе.
Джерили
1
Лучше сказать «один или несколько [процессов] взаимодействовать, которые изначально не смогут».
fstuijt
19

Есть (по крайней мере) три разных определения, которые мне известны

  • в бизнес-вычислениях промежуточное ПО - это программное обеспечение для обмена сообщениями и интеграции между приложениями и службами.

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

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

Пит Киркхэм
источник
15

Проще говоря, Middleware - это программный компонент, который предоставляет сервисы для интеграции разнородных систем.

В сложной корпоративной среде существует ряд проблем, когда вам необходимо объединить две или более корпоративных систем вместе, чтобы общаться друг с другом. Обычно эти системы не понимают язык друг друга, поскольку они разрабатываются на разных платформах с использованием разных языков (таких как C ++, Java, Cobol и т. Д.).

Таким образом, здесь появляется промежуточное программное обеспечение в картинке, которое предоставляет такие услуги, как

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

Типичным примером промежуточного программного обеспечения являются продукты ESB, такие как IBM Message Broker (WMB / IIB), WESB, Datapower XI50, Oracle Fusion, Mule и многие другие.

Таким образом, промежуточное программное обеспечение находится в основном между приложениями-потребителями и приложениями-поставщиками услуг и помогает этим приложениям общаться друг с другом.

SAK123
источник
14

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

  1. Обработка исключений / ошибок
  2. Статический файловый сервер
  3. Аутентификация
  4. MVC промежуточное программное

Как показано на приведенной выше схеме, в ASP.NET имеются различные компоненты промежуточного программного обеспечения, которые получают входящий запрос и перенаправляют его в класс C # (в данном случае класс контроллера).

Эльдияр Талантбек
источник
10

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

falcucci
источник
6

Существует общее определение в разработке веб-приложений, которое (и я делаю эту формулировку, но она, кажется, подходит): компонент, который предназначен для изменения HTTP-запроса и / или ответа, но не (обычно) не обслуживает ответ в целом, предназначенный для объединения в цепочку для формирования поведенческих изменений во время обработки запросов.

Примеры задач, которые обычно реализуются промежуточным ПО:

  • Сжатие ответа Gzip
  • HTTP-аутентификация
  • Запрос регистрации

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

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

Лично я ненавижу термин «промежуточное программное обеспечение» за его универсальность, но он широко используется.

Вот дополнительное объяснение, конкретно применимое к Ruby on Rails.

Брэд Пибоди
источник
6

Middleware стоит между веб-приложениями и веб-сервисами, которые изначально не могут общаться и часто написаны на разных языках / платформах.

Одним из таких примеров является OWIN middleware for .NETсреда, прежде чем люди были вынуждены размещать веб-приложения в программном обеспечении для хостинга Microsoft IIS. После разработки owin добавлена ​​возможность размещения как в IIS, так и в self host, в IIS была просто добавлена ​​поддержка Owin, которая выполняла роль интерфейса. Также стало возможным host .NET web apps on Linux via Mono, в который снова добавлена ​​поддержка Оуэна.

Кроме того, добавлена ​​возможность создавать Single Page Applicationsконтекст обработки Httpзапросов / ответов для Owin, так что помимо owin вы можете добавить authentication/authorizationлогику через OAuth2, например, вы можете настроить промежуточное ПО для регистрации класса, который содержит логику аутентификации пользователя (например, для реализации OAuth2) или класс, который содержит логику того, как управлять http-запросами / ответными сообщениями, и таким образом вы можете заставить одно приложение взаимодействовать с другими приложениями / службами через другой формат данных (например, json, xml и т. д., если вы ориентируетесь на веб).

Даниил
источник
3

Некоторые примеры промежуточного программного обеспечения: CORBA, Удаленный вызов метода (RMI), ...

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

fstuijt
источник
2

Исходя из моего собственного опыта работы с Интернетом, между пользователями (веб-браузером) и базой данных была промежуточная программа. Это было программное обеспечение, которое брало материал, который вводили пользователи (например: заказы на iPad, выполняло некоторую магическую бизнес-логику, то есть проверяла, достаточно ли iPad, чтобы выполнить заказ) и обновляло базу данных бэкэнда, чтобы отразить эти изменения.

eviljack
источник
2

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

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

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

Пример 3: У вас есть несколько разрозненных программ, и вам нужно, чтобы они общались друг с другом или отправляли данные в общем формате, понятном для всех систем, тогда именно здесь пригодятся системы промежуточного программного обеспечения.

Надеюсь, что предоставленная информация поможет.

Афзал Хак
источник
2

это программный уровень между операционной системой и приложениями на каждой стороне распределенной вычислительной системы в сети. Фактически он соединяет разнородные сетевые и программные системы.

Марьям Шейх
источник
0

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

стог
источник
0

Если я не ошибаюсь, в рамках программных приложений , основанных на контексте , вы можете рассмотреть middlewareследующие роли, которые можно комбинировать для выполнения определенных действий между пользователем requestи приложением response.

  • адаптер
  • дезинфицирующее средство
  • Validator
ANM Saiful Ислам
источник