Ключові висновки
- Проміжне програмне забезпечення забезпечує структуровані протоколи для підключення додатків, спрощуючи розробку та забезпечуючи ефективне підключення.
- Проміжне програмне забезпечення забезпечує швидший перехід змін і надає легкодоступні робочі інструменти.
- Проміжне програмне забезпечення — це форма модульності, яка приносить переваги всім формам програмування, від високорівневого до низькорівневого.
Можливо, ви чули, як люди використовують термін «проміжне програмне забезпечення» в різних контекстах, і задавалися питанням, про що вони говорять. Відкрийте для себе широкий і багатий набір технологій і процесів, які вони можуть мати на увазі.
Проміжне програмне забезпечення означає багато речей
Проміжне програмне забезпечення — це гнучкий термін, який люди використовують для позначення різних речей. У найширшому розумінні це можна вважати «програмами, які працюють між іншими програмами». Іншими словами, будь-яке програмне забезпечення, яке залежить від окремого коду для надання вхідних даних і обробки вихідних даних.
Деяке проміжне ПЗ існує як повномасштабна програма, яка перетворює дані з одного стану в інший із чітко визначеними протоколами та форматами даних для використання іншим кодом. Але проміжне програмне забезпечення також може бути таким же гранульованим, як одна функція, що підключається до ряду інших функцій, які виконує фреймворк.
Як і багато іншого програмного забезпечення, проміжне програмне забезпечення використовує переваги концепції модульності: розбиває складний процес на менші, більш керовані частини.
Як працює проміжне програмне забезпечення?
Проміжне програмне забезпечення зазвичай настільки ж надійне, як і його протоколи та загальнодоступна поведінка. Суворі протоколи зв’язку дозволяють програмістам писати програмне забезпечення, яке відповідає стандартам і функціонує правильно.
Сервер веб-додатків діє як проміжне програмне забезпечення для з’єднання інтерфейсу веб-сайту користувача з логікою та моделлю даних, які надають серверна програма та база даних. Оскільки він не тісно пов’язаний із системами, які з ним спілкуються, ви можете — принаймні, теоретично — замінити сервер додатків на сумісний без необхідності переписувати код додатка чи реструктуризувати базу даних.
Компоненти проміжного програмного забезпечення часто використовують такі технології, як JSON, REST, XML і SOAP. Усі вони зрілі, популярні та текстові, що значно полегшує заміну чи зміну порядку компонентів. Їхній текстовий формат і широкий спектр наборів інструментів також спрощують і надійніше налагоджують.
Різні типи проміжного ПЗ
Оскільки цей термін дуже широкий, існує багато різних прикладів і способів використання проміжного ПЗ. Деякі з найпоширеніших включають:
- Посередники повідомлень, які додають структуру міжпроцесному зв’язку.
- Сервер веб-додатків і веб-фреймворки.
- Ігрові механізми, які забезпечують типову поведінку, яку можна використовувати, розширювати або замінювати.
- Платформи потокової передачі подій, такі як Apache Kafka.
Використання проміжного ПЗ у розробці програмного забезпечення
Одне з найвідчутніших застосувань проміжного програмного забезпечення — через веб-фреймворки. Більшість фреймворків забезпечують основне середовище, яке можна налаштувати та розширити відповідно до власних вимог. Модель часто передбачає проходження HTTP-запитів через низку вбудованих і спеціальних функцій у визначеному порядку та повернення HTTP-відповіді в кінці.
Фреймворк Express.js використовує цю модель для підтримки налаштування. Візьмемо цей приклад функції проміжного програмного забезпечення, написаної на JavaScript:
app.use('/user/:id', (req, res, next) => {
console.log('Request Type:', req.method)
next()
})
Функція надзвичайно проста:
Останній крок до наступного є життєво важливим кроком у процесі проміжного ПЗ і демонструє, наскільки універсальним може бути підхід. Поки кожна функція проміжного програмного забезпечення працює незалежно, ви можете міняти їх місцями та легко змінювати порядок поведінки всього ланцюжка.
Фреймворк PHP, Laravel, має майже ідентичне налаштування проміжного ПЗ. Зверніть увагу, як простір імен явно визначає цей клас як «проміжне програмне забезпечення».
namespace App\Http\Middleware;use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;class EnsureTokenIsValid
{
* Handle an incoming request.
*/
public function handle(Request $request, Closure $next): Response
{
if ($request->input('token') !== 'my-secret-token') {
return redirect('home');
}return $next($request);
}
}
Знову ж таки, роль цього конкретного класу дуже специфічна: все, що він робить, це перевіряє запит, щоб побачити, чи містить він маркер. У цьому випадку функція проміжного програмного забезпечення може розірвати ланцюжок, відмовившись викликати наступну функцію та натомість відправивши перенаправлення. Функція перенаправлення поверне відповідний об’єкт Response, який має повернути функція проміжного програмного забезпечення як частину свого контракту підпису.
Цей останній приклад показує, як Django, веб-фреймворк на основі Python, обробляє проміжне програмне забезпечення. Django використовує термін «плагін» для опису своєї архітектури проміжного програмного забезпечення, який схожий на інші відповідні терміни, які ви можете почути, як «гачок» або «зворотний виклик». По суті, це просто інший випадок налаштування проміжного програмного забезпечення, що забезпечує гнучкість структурованого процесу.
def simple_middleware(get_response):
def middleware(request):
response = get_response(request)
return response
return middleware
Потім ви можете керувати тим, яке проміжне програмне забезпечення працює та в якому порядку, за допомогою простого масиву:
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
Django забезпечує поведінку за замовчуванням, як-от клас CommonMiddleware, від якого виграють більшість програм; він забороняє доступ до певних «поганих» агентів користувача та обробляє нормалізацію URL-адрес. Досить часто критично важливе проміжне програмне забезпечення, орієнтоване на безпеку, запускається на ранніх стадіях конвеєра, але ця гнучкість дозволяє налаштувати порядок залежно від потреб вашої програми.
Чому проміжне ПЗ корисне?
Проміжне програмне забезпечення полегшує підключення додатків, які не призначені для підключення. Він надає функціональні можливості для їх інтеграції разом із надійними структурованими протоколами, за допомогою яких вони можуть спілкуватися.
У результаті проміжне програмне забезпечення має деякі важливі переваги, зокрема:
- Оптимізована розробка програм і скорочений час виходу на ринок.
- Ефективне підключення.
- Швидший перехід змін.
- Легкодоступні робочі інструменти.
Зрештою, проміжне програмне забезпечення — це форма модульності, концепція, яка є корисною при застосуванні до всіх форм програмування, від найвищого рівня до найнижчого.