【みどるうぇあ】

ミドルウェア とは?

💡 OSとアプリの間で働く「縁の下の力持ち」
📌 このページのポイント
アプリケーション層 Webアプリ スマホアプリ バッチ処理 ミドルウェア層 Webサーバー Nginx / Apache データベース MySQL / PostgreSQL キュー RabbitMQ / Redis 認証サービス OAuth / JWT OS / ハードウェア層 Linux / Windows / CPU・メモリ・ストレージ
ミドルウェアはアプリとOSの中間で、アプリが共通して使う機能を提供する
ひよこ ひよこ

ミドルウェアって何?難しそう…

ペンギン先生 ペンギン先生

難しくないよ!OSとアプリの「中間」で動くソフトウェアのことだよ。ファミレスに例えると、ホールスタッフ(アプリ)と厨房設備(OS)の間をつなぐ「共通で使うキッチン道具」みたいなイメージかな。

ひよこ ひよこ

具体的にはどんなものがあるの?

ペンギン先生 ペンギン先生

データベースMySQLPostgreSQL)、Webサーバー(NginxApache)、メッセージキューRabbitMQ)あたりが代表的だよ。アプリが「データを保存したい」「ウェブページを返したい」という仕事を、これらミドルウェアがやってくれるんだ。

ひよこ ひよこ

なんでアプリに直接その機能を入れないの?

ペンギン先生 ペンギン先生

複数のアプリが同じ機能を使いたいとき、ミドルウェアを共有すると効率的だからだよ。MySQLを1つ用意して、いろんなアプリからそこに接続する、っていう使い方ができるんだ。

ひよこ ひよこ

ミドルウェアとフレームワークって何が違うの?

ペンギン先生 ペンギン先生

実は開発者でも人によって答えが変わるくらい定義が揺れているんだ。たとえばNginxは「Webサーバー」とも「ミドルウェア」とも呼ばれるし、ExpressというNode.jsフレームワークも「ミドルウェアの集まり」と説明されることがある。「ライブラリ・フレームワーク・ミドルウェアの違いは?」と聞かれると、文脈や人によって答えが変わるくらい境界が曖昧なポイントなんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ミドルウェア」って出てきたら「OSとアプリの間で動く共通サービスのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「middleware」 = 中間のソフトウェア(middle+software)
💬 middleは「中間」。OSとアプリの「中間」にいるから「ミドルウェア」。位置関係で覚えよう
← 用語集にもどる