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




нужны middleware (11)

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

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


Answers

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

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

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

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


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


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

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

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

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

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

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


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

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

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


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


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

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

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

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

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

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

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

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

Он начинается с

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

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


Некоторые примеры промежуточного программного обеспечения: CORBA, Remote Method Invocation (RMI), ...

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


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

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

  • Сжатие ответа Gzip
  • Проверка подлинности HTTP
  • Ведение журнала запросов

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

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

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

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


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

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

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

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

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


Маршрутизация означает определение того, как приложение реагирует на запрос клиента на конкретную конечную точку, которая представляет собой URI (или путь) и конкретный метод HTTP-запроса (GET, POST и т. Д.). Каждый маршрут может иметь одну или несколько функций обработчика, которые выполняются, когда маршрут согласован.

В Express 4.0 Router нам предоставляется больше гибкости, чем когда-либо прежде, при определении наших маршрутов.

express.Router () используется несколько раз для определения групп маршрутов.

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

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

app.route () используется как ярлык для маршрутизатора для определения нескольких запросов на маршруте

когда мы используем app.route (), мы присоединяем наше приложение к этому маршрутизатору.

var express = require('express'); //used as middleware
var app = express(); //instance of express.
app.use(app.router);
app.use(express.static(__dirname + '/public')); //All Static like [css,js,images] files are coming from public folder
app.set('views',__dirname + '/views'); //To set Views
app.set('view engine', 'ejs'); //sets View-Engine as ejs
app.engine('html', require('ejs').renderFile); //actually rendering HTML files through EJS. 
app.get('/', function (req, res) {
  res.render('index');  
})
app.get('/test', function (req, res) {
  res.send('test')
})