ミドルウェアという言葉はシステム開発に携わっていると耳にすることが多いでしょう。この記事を通じてミドルウェアを理解していくにあたって、ミドルウェアは仲介役と捉えて読んで頂けると良いかと思います。この記事ではミドルウェアを理解するために役割や種類、代表例などについて簡単に解説していきます。
『OSとアプリケーションを仲介するソフトウェアのこと』
ミドルウェアとはコンピュータに搭載される基本ソフトであるWindowsやLinuxといったOS(オペレーティングシステム)と様々な処理を行うアプリケーションとの仲介をし、それらを動かすための役割を持つソフトウェアのことです。ミドルウェアの代表的な例としてデータベース管理サーバーやWebサーバー、アプリケーションサーバーなどが挙げられます。
英語表記は“Middleware”
となっております。
※英語で表現される機会もあるため参考までに
ミドルウェアの役割について理解するには冒頭でも説明した通り『OSとアプリケーションを仲介するソフトウェア』とイメージすることが近道でしょう。OS(オペレーティングシステム)とアプリケーションを仲介し、様々なプログラムの処理・動作などの受け渡しを行います。
各アプリケーションはミドルウェアへ要求を実施し、ミドルウェアはOSへ必要な要求してその結果をアプリケーションに返します。このときミドルウェア自体が各アプリケーションの起動、停止、監視などの制御を行う場合もあります。また他にもデータ管理、トランザクション管理、タスク管理、プログラム管理などもミドルウェアの役割として挙げられます。
ミドルウェアの代表的な3種類について見ていきましょう。今回はWebシステムをイメージしたミドルウェアの基本構成に従ってWeb3層構造と呼ばれているWebサーバー、アプリケーションサーバー、データベース管理サーバーについて説明します。
データベースサーバー(DBサーバー)とは、アプリケーションに必要なデータを格納するサーバーです。データベースサーバーは様々なデータの格納先として必要となっており、データの作成(Create)、データの読み出し(Read)、データの更新(Update)、データの削除(Delete)などの機能を持ち合わせております。これらの4機能を総称してそれぞれの頭文字を並べた”CRUD(クラッド)”と呼ばれてます。データベース管理サーバーの代表的なものとしてOracleDB、MySQL、PostgreSQLなどが挙げられます。
Webサーバーとは、Webページを表示させるために必要な様々なファイルを保管、提供するサーバーです。主に文字や画像を認識させるために記述されたHTMLファイル。ウェブページのレイアウトやデザインを指定するCSSファイル。画像データが格納された画像ファイルなどの格納や表示を提供するためのサーバーコンピューターを表します。Webサーバーの代表的なものとしてApache、GoogleWebServer、nginxなどが挙げられます。
アプリケーションサーバーとはWebサーバーより受け取った情報を処理するためのものです。WebサーバーからのリクエストをJavaやPHPなどのサーバサイド言語などで作成されたアプリケーションを実行して動的なコンテンツの生成をします。その際にデータベースが所持する固有のデータを必要とする場合にはデータベースサーバーへリクエストを行い、受け取ったデータを加工して動的コンテンツに埋め込みます。アプリケーションサーバーの代表的なものとしてTomcat、Unicorn、Pumaなどが挙げられます。
ミドルウェアを理解するためにミドルウェアの役割や種類、代表例について解説させて頂きました。ミドルウェアを一言で表すと『OSとアプリケーションを仲介するソフトウェアのこと』です。システムを利用するユーザーからはなかなか意識されない部分ですが、開発者としてシステムに携わる場合には必ず理解しておかなければならない非常に重要な要素です。特にWebサービスの発展が著しい現代ではWeb3構造と呼ばれるWebサーバー、アプリケーションサーバー、データベース管理サーバーの3種類のミドルウェアについても把握は必須です。ミドルウェアについてこの記事で書かれている内容は最低限理解しておくようにしましょう。