本記事ではミドルウェアについて学んだ内容を備忘録としてまとめています。
ミドルウェアの基礎知識について簡単に説明していますので、興味がある方は是非読んでみてください。
ミドルウェアとは?
ミドルウェアは、ソフトウェアの一種で、OSとアプリケーションの間に入って両者を補助するものです。
OSでもアプリケーションソフトウェアでもできない複雑な処理を行うソフトウェアになります。
複雑な処理についての具体例は、以下で解説していきます。
また、ミドルウェアについて理解するには、OSとアプリケーションについても知っておく必要があるので、よければソフトウェアの解説記事もチェックしてみてください。
ミドルウェアの種類
続いてミドルウェアの種類と具体的にどういった処理を行っているかについて説明していきます。
まずはミドルウェアの種類を見ていきましょう。
・WEBサーバ
・アプリケーションサーバ
・データベースサーバ
以下で1つずつ説明していきます。
WEBサーバとは
WEBサーバとは、WEBブラウザからのリクエストに応じてHTMLファイルや画像などのWEBサイトのデータを送るためのサーバを指します。
他のサイトではよく静的ページを返すのがWEBサーバだという説明がありますが、静的か動的かはプログラムによってWEBページが生成されているか否かで判断できます。
例を挙げるとWEBサイトにある検索機能は検索欄に入力された文字と合致するタイトルの記事を探すプログラムが実行されるので動的と言えます。
一方でプログラムが実行されることがなく、HTMLファイルや画像をそのままWEBブラウザに返す場合、そのページは静的ページとなります。
ちなみに現在のWEBサイトは、動的ページが一般的となっています。
有名どころのWEBサーバとして、NginxやApacheなどが挙げられます。
アプリケーションサーバとは
アプリケーションサーバとは、プログラムを動かすサーバを指します。
先ほどWEBサーバは、静的ページを返すサーバと説明しましたが、アプリケーションサーバは、動的ページを生成するためのサーバと思ってもらえばいいでしょう。
処理の流れは上記の画像のように、WEBブラウザからプログラムを動かす必要があるリクエストが来た場合、WEBサーバがアプリケーションサーバに処理を要求します。
アプリケーションサーバで処理が行われ、その結果をWEBサーバに返して、最終的にWEBブラウザにリクエストの結果が返されます。
有名どころのアプリケーションサーバとして、Tomcat(Java)やUnicorn(Ruby)、Gunicorn(Python)などが挙げられます。
データベース(DB)サーバとは
DBサーバとは、システムで取り扱うデータを一元管理し、データの保存や更新、削除などを行うサーバを指します。
ブログの記事や掲示板への書き込み、コメント等は、全てデータベースで管理されています。
この記事もどこかに存在するデータベース管理サーバに要求して返ってきたデータ(記事)を表示しているわけです。
有名どころのDBサーバとして、PostgreSQLやMySQL、Oracle Databaseなどが挙げられます。
運用ミドルウェアについて
上記で紹介したミドルウェア以外に運用ミドルウェアなるものがあります。
これはOS上に存在しますが、アプリケーションを必要とせず、それ自体がアプリケーションとして機能するミドルウェアです。
ではまず運用ミドルウェアの種類を見ていきましょう。
・バックアップ
・ジョブ運用
・監視
・高可用性クラスタ
以下で1つずつ説明していきます。
バックアップとは
バックアップとは、データの状態をコピーして、問題発生時の復旧に備えることを指します。
システムを運用する上で、データは非常に重要な要素です。
この記事もどこかのDBサーバに保存されているデータをなわけで、この記事のデータが消えてしまったら記事が一生見れなくなります。
正直この記事がなくなってもどうってことはないですが、ECサイトの購買情報やネットバンキングの口座情報など消えてはいけないデータもあります。
そのため、上記の画像のようにデータのバックアップを行って、もしもの時のためにデータのコピーを控えておく必要があります。
ジョブ運用とは
ジョブとは、ユーザーがコンピュータに依頼する仕事の単位です。
システムを運用する中でログの取得やバックアップなど、様々なジョブが実行されますが、これらをその都度手動で実行する場合、負担も大きくなります。
そこで、運用ミドルウェアにこれらのジョブを任せる、というのがジョブ運用です。
あらかじめスケジュールや処理手順を決めることで、ジョブ運用を自動化できます。
監視とは
システムを運用する上で、異常がある場合はいち早く検知して、問題を解決する必要があります。
監視のための運用ミドルウェアは以下のようなものが存在します。
・ノード監視
サーバやストレージ、ネットワーク機器などの稼働状況を監視
・システムリソース監視
CPUやメモリ、ディスクなどの使用状況を監視
・プロセス監視
サーバの稼働状況を監視
・ログ監視
OSやミドルウェアのログを監視
高可用性クラスタとは
高可用性クラスタとは、サーバ冗長化に使用されるミドルウェアです。
サーバ冗長化とは、「同じ機能を持つサーバをあらかじめ複数台用意する」ことになります。
複数台用意するのは、非常時のためで、もしもの時はサーバを予備のものに切り替えます。
まとめ
今回はソフトウェアの基礎知識をご紹介しました。
最後に今回お伝えした内容をもう一度振り返っていきたいと思います。
・ミドルウェアとは、ソフトウェアの一種で、OSとアプリケーションの間に入って両者を補助するもの。
・ミドルウェアは「WEBサーバ」「アプリケーションサーバ」「データベースサーバ」
・運用ミドルウェアは「バックアップ」「ジョブ運用」「監視」「高可用性クラスタ」
今後他にも気になる言葉や技術について当ブログでまとめていきたいと思います。
お手すきの際に確認してみてください。