【みどるうぇあ】

ミドルウェア とは?

最終更新:
💡 アプリの共通機能や連携を支える橋渡し役

アプリケーションの動作やシステム同士の連携を支えるソフトウェアです。Webサーバーなどの例と、Expressでいうミドルウェア関数の違いを説明します。

📌 このページのポイント
アプリの共通機能を支える橋渡し役アプリケーション注文の受付・画面の表示など機能を利用ミドルウェアWeb応答データ保存連携OS・ハードウェアなどの基盤Expressでは処理をつなぐ関数の名前
共通機能を支えるソフトウェアを表した構成例です。Expressのミドルウェア関数など、同じ言葉でも指す対象は文脈で変わります。
ひよこ ひよこ
ミドルウェアって、OSとアプリの真ん中にあるもの?
ペンギン先生 ペンギン先生
それは代表的な説明だよ。アプリが使う通信やデータ管理などを支えるソフトウェアで、システム同士の橋渡しもするんだ。必ずOSとアプリの間の1か所に置くというより、役割を表す言葉と考えるとわかりやすいよ。
ひよこ ひよこ
例えば、どんなものがあるの?
ペンギン先生 ペンギン先生
Webサーバー、データベース管理システム、メッセージを仲介する仕組みなどがあるよ。アプリはそれらを利用して、Webの応答や記録の保存、別のサービスとの連携を行えるんだ。製品の分類や構成によって、どこまでをミドルウェアと呼ぶかは変わるよ。
ひよこ ひよこ
なぜアプリの中で全部作らないの?
ペンギン先生 ペンギン先生
共通機能を再利用できるからだよ。例えば注文アプリが、データ保存やメッセージ配送の仕組みまで毎回一から作る必要を減らせるんだ。ただし接続方法や設定、障害時の対応は必要なので、導入するだけで運用が不要になるわけではないよ。
ひよこ ひよこ
Expressのコードにもmiddlewareって出てきたよ。別の製品なの?
ペンギン先生 ペンギン先生
Expressでは、HTTPリクエストの処理に挟む関数をそう呼ぶよ。リクエストとレスポンスを扱い、ログを記録したり認証を確認したりできるんだ。処理を終えない場合はnext()で次へ渡す必要があるよ。同じ言葉でも、ここでは処理をつなぐ関数を指しているんだ。
ひよこ ひよこ
覚えるときは、何に注目すればいい?
ペンギン先生 ペンギン先生
何と何をつなぎ、どんな機能を引き受けるのかを見よう。製品全体を指すのか、フレームワーク内の関数を指すのかも文脈で確かめると、説明が食い違って見えても理解しやすいよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ミドルウェア」って出てきたら「アプリの共通機能や連携を支える橋渡し役」と思えばだいたいOK!
📖 おまけ:英語の意味
「middleware」 = 中間のソフトウェア(middle+software)
💬 middleは中間、wareはソフトウェアの一部。アプリの共通機能やシステム間の連携を支える役割を表すよ

参考資料

← 用語集にもどる