【初心者向け】ミドルウェアとは?種類や役割、機能を徹底に解説!
こんにちは。
最近流行りのポケカのゲームを始めました ビヨンドの キタ です。
前回は、サーバーが起動する仕組みのついての記事をブログにしました。
今回はミドルウェアとは何なのかを、分かりやすく解説していこうと思います。
普段生活しているとあまり聞き馴染みのない言葉かもしれませんが、実はシステムが稼働するにはミドルウェアは欠かせない大事なものになります。
今回はミドルウェアの機能や種類などを、図解を含めて初心者でもわかるように解説していきますので、ぜひ最後までご覧ください。
ミドルウェア とは
まず、結論としてミドルウェアとは、中間ソフトウェア と呼ばれるものになります。
役割としては、名前の通りOS(オペレーティングシステム)とアプリケーションの間に入って、橋渡し的な役割を担ってくれるソフトウェアになっています。
ミドルウェアは数多くの種類が存在しており、それぞれ特定の機能に特化しており、OSとアプリケーションの補助をしてくれます。
ここで少し用語の復習もしていきましょう。
OSとは
OSとは、Operating Systemの略で、役割としてはコンピュータを使っていて、当たり前の機能を制御している最も基本的なソフトウェアになります。
言い換えてしまえば、当たり前の機能しか提供できないため、応用的な機能はOSだけでは提供できません。
アプリケーションとは
アプリケーションとは、応用ソフトウェアと言われます。
こちらはOSとは別で、応用的な作業を可能にするソフトウェアのことになります。
例を挙げると、Microsoftの表計算ソフトのExcelや文章作成ソフトのWord等がこれに当たるかと思います。
更にインフラの業務に、よりフォーカスして説明をしていくと
例えばコンテンツ管理システム(CMS)のWordpressや、ビヨンドで提供しているような 予約管理システムのEDISONE(エジソン) などが、インフラの業務に関わる応用ソフトウェアに当たります。
具体的なミドルウェアの役割
では、先ほど例に挙げた予約システムを元に深堀をしていきます。
予約システムといえば、会議室やお店の予約などに使われるサービスかと思いますが、これがOSだけで作れるかというとそういうわけではありません。
予約システムを作ろうと考えたときに必要になってくるのが、まず予約機能を提供するアプリケーション。
つまり、開発者が記述したプログラムのコードになります。
ただし、アプリケーション(コード)だけでは予約システムが出来上がらず、管理画面や予約情報などをブラウザで表示する機能だったり、予約時のデータを保存/管理する機能や予約時にメールを送信する機能が必要になってきます。
このように予約システムを分解して考えたときに複数の機能が必要になってきます。
これらの複数の機能は、それぞれの用途に特化したミドルウェアを利用する前提で実装されています。
具体的な機能を上げると下の通り
Webページ = Apache
データを保存/管理 = データベース/MySQL
メールを送信する機能 = Postfix
というように、それぞれの役割を果たすミドルウェアが必要になります。
代表的なミドルウェア
上の図が代表的なミドルウェアの種類になります。
よく使われる構成としてはLinux(OS)+ Apache(Webページ)+ MySQL(データベース)+ PHP(プログラミング言語)でそれぞれ頭文字をとって LAMP と呼ばれるのですが、この構成でサーバーが作られる場合が多いです。
①Apache
Apacheは世界中で最も多く利用されている Webサーバー といわれています。
※現在は後述するNGINXとNo.1を競い合っているようです。
大規模な商用サイトから自宅で趣味でサーバー構築する際でも幅広く利用されているミドルウェアになります。
ネット上での情報も多く存在しており、サーバー構築の入り口としてよく利用されています。
②NGINX
こちらもApacheと同じ役割の Webサーバー になり、世界中で利用されています。
Apacheよりも多機能であり、リバースプロキシする機能や、負荷分散をするロードバランサーやHTTPリクエストをキャッシュするような機能を持っています。
③MySQL
関係データベース管理システム(RDBMS)と呼ばれるミドルウェアになっており
名前の通りデータベースの保存/管理する役割を持っています。
こちらも世界で最も利用されているRDBMSになります。
また、データベースと同じ役割でPostgreSQLというミドルウェアも利用される場合も多いです。
④Postfix
Postfixは、メールサーバーを構築されるときによく利用されるミドルウェアとなっており
メールを送信/転送してくれるような役割を持っています。
要件によりますが、メールの送受信が必要な場合は後述のDovecotというものと一緒に利用される場合が多いです。
⑤Dovecot
こちらは役割としてはPostfixと似ているのですが
IMAP/POP3 つまりメールの受信をする機能を持ったミドルウェアになります。
端的に説明すると、Postfix = メール送信用 で Dovecot = メール受信用 というように覚えると分かりやすいかと思います。
全体図
最後に、図を使って説明をしておさらいをしていきます。
流れをざっとまとめると以下の通りになります。
- ユーザからWebページの要求を受け取る(Apache)
- アプリケーションプログラムが動く(PHP)
- プログラムが予約管理データからデータ照合を行う(MySQL)
- Webページの要求を返す(Apache)
- 予約完了メールを送信する (Postfix)
というような流れになります。
最後に
ここまで、ミドルウェアとは?という部分から機能や種類などについて詳しく解説をしていきました。
ミドルウェアには様々な種類があり、それぞれの用途別で機能に特化しています。
普段私たちが利用している様々なシステムの裏ではミドルウェアさんが中間ソフトウェアとして助けてくれてるのですね。いつも有難う。ミドルウェアさん。
本記事は弊社で運営を行っているチャンネルの ねずみさん家のインフラエンジニア道場 の動画を参考に作成をしています。
インフラに関する知識をゼロから学べる素晴らしいチャンネルとなっておりますので、気になる方は是非チャンネル登録と高評価をお願いいたします!