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

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

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

13 ответов


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

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

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

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


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

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

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

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

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

некоторые примеры из промежуточного:

  • распределенного кэша
  • очереди сообщений
  • монитор транзакций
  • пакета рерайтером
  • автоматизированная система резервного копирования

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

начинается с

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

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


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

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

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

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


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

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

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

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

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

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


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


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

  1. обработка исключений / ошибок
  2. статический файл сервер
  3. проверка подлинности
  4. в MVC Middlewares

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


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

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

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


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

примеры задач, которые обычно реализованы middleware:

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

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

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

лично я ненавижу термин "промежуточное ПО" за его универсальность, но он широко используется.

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


некоторые примеры промежуточного ПО: CORBA, Remote Method Invocation (RMI),...

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


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


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

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

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

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

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


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