Что такое промежуточное ПО? - PullRequest
174 голосов
/ 25 мая 2010

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

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

Ответы [ 14 ]

181 голосов
/ 25 мая 2010

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

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

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

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

81 голосов
/ 25 мая 2010

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

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

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

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

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

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

  • распределенный кеш
  • очередь сообщений
  • монитор транзакций
  • переписчик пакетов
  • автоматизированная система резервного копирования
18 голосов
/ 25 мая 2010

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

Начинается с

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

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

15 голосов
/ 25 мая 2010

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

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

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

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

12 голосов
/ 23 июля 2016

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

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

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

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

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

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

9 голосов
/ 04 сентября 2016

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

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

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

8 голосов
/ 03 марта 2016

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

5 голосов
/ 19 мая 2018

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

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

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

4 голосов
/ 20 декабря 2017

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

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

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

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

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

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

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

2 голосов
/ 25 мая 2010

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

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

...