【BiTT】俺のクローン作るしかなくね!?
【BiTT】俺のクローン作るしかなくね!?
2020.02.28

Webディレクターが知ってそうで知らない「ミドルウェア」のお話

Jack

こんにちは、マネージャーのJackです。

本日は、ミドルウェアの話をしたいと思います。

ディレクターなら誰しも、この用語を聞いたことがあるはず。だけど、本当はよくわかっていなかったり、なんとなくわかったふりしちゃう人もいるのでは?

ミドルウェアとは

ミドルウェア(英: Middleware)は、コンピュータの分野で、コンピュータの基本的な制御を行うオペレーティングシステム(OS)と、各業務処理を行うアプリケーションソフトウェアとの中間に入るソフトウェアのこと。

通常はオペレーティングシステムの機能の拡張、あるいはアプリケーションソフトウェアの汎用的(共通的)な機能を集めたものである。アプリケーションソフトウェアはミドルウェアに要求を出すと、ミドルウェアがオペレーティングシステムに必要な要求を出し、結果をアプリケーションソフトウェアに返す。あるいはミドルウェア自体が各アプリケーションソフトウェアの起動・停止・監視などを含めた制御を行う。

引用)ミドルウェア – Wikipedia

みんな大好きウィキペディアからの引用です。

わかる、言っていることは非常にわかる。ただ、長い。非エンジニアには、少しわかりづらいですよね。

 
ミドルウェアは、OSとアプリケーションの間に挟まれているもの、という感じがします。簡単に記載すると、下記のような感じです。

図の一番左のオペレーティング・システム(OS)がみなさんがよく利用しているWindowsやMac、サーバだとUbuntuやCentOSなどのシステムとなります。

図の一番右がWebサイトなどのWebブラウザ上で閲覧できるページや、エディタなどMacやWindowsで利用しているツールです。

そして、図の中央のミドルウェアが、アプリケーション側で命令した処理(エディタだと入力処理)を、OSへ伝えて適切な処理(エディタだとファイルの保存やテキスト表示)を返す処理を実行します。

なんとなく、概要は掴めたでしょうか?

Webサイト制作でよく利用されるミドルウェアは?

次に、ミドルウェアでよく利用されるものを紹介したいと思います。

Webサイト制作でよく利用されるミドルウェアは、下記となります(※あくまで一部です!)。

Webサーバ Apache、IIS、Nginx
DBサーバ MariaDB、MySQL、OracleDB、PostgreSQL etc
アプリケーションサーバ Tomcat(Java)、GlassFish(Java)、Unicorn(Ruby)など

ここでは、Webサイト制作でよく利用するWebサーバとDBサーバ、そしてWordPressなどのプログラムを動かすミドルウェアについて話していきたいと思います。

Webサーバを動かすミドルウェアは?

よくWebサイト制作で利用するWebサーバを動かすミドルウェアは、下記が有名です。

  • Apache
  • Nginx
  • IIS

弊社では、新規で制作するWebサイトはNginxというミドルウェア利用している頻度が高いです。また、リニューアル案件で既存のサーバを利用したいというお客様は、Apacheを利用しているケースが多いですね。

リニューアル案件でかつ既存サーバを利用する場合は、よくエンジニアから「NginxやApaheのバージョンっていくつですか?」と聞かれることがあります。これには意味があって、古いバージョンだとそもそもアプリケーションが動かなかったりするのです。

ですので、エンジニアから聞かれた際はしっかりと回答できるようにしつつ、不明だった場合は、エンジニアと一緒になりながら確認するようにしましょう。

DBサーバを動かすミドルウェアは?

続いて、DBサーバを動かすミドルウェアについて説明いたします。

Webサイト制作で利用されるのは、下記ミドルウェアが有名です。

  • MariaDB
  • MySQL
  • PostgreSQL

こちらも一部ではありますが、ふだんエンジニアが「データベースが……◯◯で……」みたいな会話はしているときは、ディレクターは上記のようなミドルウェアを使っているんだな、というのを頭の片隅に入れておくと良いでしょうか。

データベースと一概に言ってもいろいろあります。もちろん、古いバージョンだと脆弱性が残っていたりしますので、エンジニアからバージョンの質問や確認を受けた際は、答えられるようにしておきましょう。

アプリケーションを動かすミドルウェアは?

さいごにアプリケーションを動かすミドルウェアについて説明します。

これは、サイト訪問者からのリクエストを受け付けて、そのリクエスト内容をDBサーバに橋渡しをするプログラムのことです。

Javaだと、Tomcat、GlassFishが、RubyだとUnicornが有名です。

ちなみに、PHPやPythonなどはWebサーバがアプリケーションサーバとして動作するので、TomcatやUnicornなどのようなアプリケーションサーバを導入する必要はありません。Nginxには、NGINX UnitというPHP、Go、Pythonなどに対応した軽量アプリケーションサーバが提供されています。

NGINX Unit

おわりに

本日は、Webサイトを動かすミドルウェアについて簡単に紹介させていただきました。

ディレクターがすべてを把握する必要はありませんが、用語だけでも抑えてエンジニアと円滑なコミュニケーションが取れるようにしておきたいですね!

以上、Jackでした!