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

Node.js задняя часть внешний интерфейс Express

Эта статья представляет собой отчет о моей коллекции и личном понимании промежуточного программного обеспечения. Он представляет только личный уровень и личное понимание. Если у вас есть какие-либо вопросы, пожалуйста, спросите Yazheng.

Википедия:

Промежуточное программное обеспечение (англ. Middleware) — это программное обеспечение, которое обеспечивает связь между системным программным обеспечением и прикладным программным обеспечением, чтобы облегчить связь между программными компонентами, особенно централизованную логику прикладного программного обеспечения для системного программного обеспечения.В современных средах приложений информационных технологий, таких как Это широко используется в веб-сервисах, сервис-ориентированной архитектуре и так далее. Такие базы данных, Tomcat от Apache, WebSphere от IBM, сервер приложений WebLogic от BEA, промежуточное ПО серии Tong от Dongtong и промежуточное ПО от Kingdee — все это промежуточное ПО.

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

  • Корпоративная служебная шина (ESB: корпоративная служебная шина): ESB — это открытое, основанное на стандартах распределенное синхронное или асинхронное промежуточное ПО для обмена сообщениями. ESB обеспечивает безопасное взаимодействие для корпоративных приложений благодаря такой поддержке, как XML, интерфейсы веб-служб и стандартизированные документы маршрутизации на основе правил.
  • Монитор обработки транзакций (TP: Transaction Processing): Предоставляет функции мониторинга для обработки транзакций, происходящих между объектами, чтобы гарантировать успешное выполнение операции.
  • Распределенная вычислительная среда (DCE: распределенная вычислительная среда): относится к набору технических услуг, необходимых для создания распределенных приложений, работающих на разных платформах.
  • Удаленный вызов процедур (RPC: удаленный вызов процедур): относится к стандарту, требуемому, когда клиент отправляет запрос на сервер для запуска программы.
  • Object Request Broker (ORB: Object Request Broker): Предоставляет пользователям интерфейс для связи с объектами в других распределенных сетевых средах.
  • ПО промежуточного слоя для доступа к базе данных: позволяет пользователям получать доступ к базам данных в различных операционных системах или приложениях. SQL является одним из таких промежуточных программ.
  • Передача сообщений: система электронной почты является одним из промежуточных программ этого типа.
  • Программное обеспечение промежуточного слоя на основе XML: XML позволяет разработчикам создавать документы для обмена структурированной информацией через Интернет.

ОК, здесь, или взгляд невежественной силы. . . Не отчаивайтесь, потому что индустрия, специализирующаяся на хирургии, промежуточное программное обеспечение является относительно широкой концепцией, мы смотрим на узкий диапазон, смотрим на промежуточное программное обеспечение, связанное с Интернетом, простой момент:

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

ПО промежуточного слоя узла

Сказав так много, кажется, что нет никакого существенного содержания.Это все абстрактные концепции.Давайте немного попрактикуемся и узнаем о промежуточном программном обеспечении Node. В последние годы микросервисная архитектура становится все более популярной в корпоративной разработке, но она непреднамеренно приводит к все большему количеству споров между фронтенд-студентами и бэкэнд-студентами по поводу детализации API-интерфейсов:

  • «Разве вы не можете просто запросить 2 интерфейса, а затем собрать их самостоятельно?» — Студенты Back-end занимаются погружением и развязкой услуг.
  • «Одним HTTP меньше, неужели так сложно добавить интерфейс?» — фронтенд-одноклассники ближе всего к пользователю, и нужно учитывать гибкость пользовательского опыта.

Сводится к одному вопросу:«Интерфейс, разработанный на стороне сервера, ориентирован на пользовательский интерфейс или просто на общий сервис? 』

Предложение BFF

В 2015 году Сэм Ньюман предложил этоPattern: Backends For Frontends, называемый BFF, также широко известный как клейкий слой в Китае.

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

  • Сервисная автономия снижает расходы на связь и приносит гибкость и эффективность.
  • Ешьте свою собачью еду.
  • BFF не ограничивает конкретные технологии, и команда выбирает модели в соответствии со своими собственными технологическими стеками: Java/Node/PHP/Python/Ruby...
  • Общий шлюз среднего уровня, основанный на технологии GraphQL, только что стал очень хорошим решением.
  • В большинстве фронтенд-команд они склонны выбирать Node.js с лучшей экологией и более знакомым синтаксисом.

Почему узел?

Без него такой промежуточный слой нужен, но back-end студенты не хотят им управлять (да и не умеют), поэтому большинство front-end студентов выбирают более удобный Node.js, т.е. все.

Итак, на Node?

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

Экспресс промежуточное ПО

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

Функция промежуточного программного обеспечения и классификация

Суть промежуточного ПО — это функция, которая делает то, что мы хотим в процессе получения запроса и возврата соответствующего процесса. То, что он делает, описано в документации Express следующим образом:

выполнить любой код. Измените объекты запроса и ответа. Завершите цикл запрос-ответ. Вызовите следующее промежуточное ПО в стеке.

В документации Express они разделены на пять категорий, но их принципы одинаковы, но используются они по-разному:

Промежуточное ПО уровня приложения промежуточное ПО уровня маршрута промежуточное ПО для обработки ошибок Встроенное промежуточное ПО стороннее промежуточное ПО

Применение

очень простой.

var express = require('express')
var app = express();
app.use('/user', function (req, res, next) {
  //TODO
  next();
});
app.listen(8080)

Суммировать: Ориентированное на Front-end промежуточное ПО Node не улучшает производительность наших приложений, но регулирует процесс разработки, повышает эффективность нашей работы и быстрее решает проблемы, а стоит ли его использовать, зависит от местных условий.

Ссылаться на:Подробное объяснение принципа промежуточного программного обеспечения Express Почему интернет-компании начинают использовать node.js в качестве промежуточного ПО для веб-сервисов? Что хорошего?

исходный адрес