OSとアプリケーションの中間に位置し、共通的な機能を提供するソフトウェア。
ミドルウェアとは、OS(基本ソフトウェア)とアプリケーションの中間(ミドル=真ん中)に位置し、多くのアプリが共通して必要とする機能を提供するソフトウェアのことです。
身近な例で考えると、マンションの管理人さんに似ています。住人(アプリ)が「ゴミ出し」「宅配の受け取り」をいちいち自分でやらず、共通の作業を管理人にお願いするように、データ保存や通信といった「どのアプリでも必要な作業」をミドルウェアにまかせます。
上の図解のように、ミドルウェアはアプリとOSの橋渡し役です。これがあるおかげで、アプリ開発者は毎回ゼロからデータベースや通信の仕組みを作らずに済み、開発がぐっと楽になります。
ミドルウェアには分野ごとにさまざまな種類があります。代表的なものは次のとおりです。
・DBMS:データベース(大量のデータの保管庫)を管理・操作するソフト
・Webサーバ:ブラウザからのHTTP要求を受け付けてWebページを返すソフト
・アプリケーションサーバ:業務ロジックなどの動的な処理を実行するソフト
・トランザクションモニタ:複数の処理を「ひとまとまり」として正しく実行する仕組み
・メッセージング(MOM):システム間でデータ(メッセージ)を確実にやり取りするソフト
MOMは Message-Oriented Middleware(メッセージ指向ミドルウェア)の略です。郵便ポストのように、送り手と受け手が同時につながっていなくてもメッセージを預けて確実に届けられるのが特徴です。
OSとミドルウェアは「アプリの土台」という点では似ていますが、役割の階層が違います。
OSは、CPU・メモリ・ディスクといったハードウェア資源を直接管理する一番下の基盤です。これに対してミドルウェアは、そのOSの上で動き、データベース管理や通信などの特定分野の共通サービスを提供してアプリ開発を楽にします。
料理にたとえると、OSは「ガスと水道(インフラ)」、ミドルウェアは「下ごしらえ済みの食材や調理器具」のような関係です。アプリ(料理人)はインフラを意識せず、用意された道具を使って効率よく目的の料理を作れます。