0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

エンジニアになって半年ですが、「ミドルウェア」って結局なんだっけ?となったので、調べてみました。

1. ミドルウェアとは?

OSとアプリケーションの間で立ち回るソフトウェアで、OSほど汎用的ではないものの、多くのアプケーションで必須となるシステムを担っているそうです。

2. ミドルウェアの種類

代表的なミドルウェアに、webサーバ、アプリケーションサーバ、データベース管理を担うミドルウェアがあるそうです。これら3つは「web三構造」と呼ばれる、代表的なWebアプリの構造を構成しいます。

他にも、システムのバックアップやシステムの監視、サーバの冗長化など、「運用ミドルウェア」と呼ばれるミドルウェアがあります。確かに、OSが担う役割ではないけれど、アプリケーションを動かす際には必須の機能ですね。

3. web3構造

先述した通り、webサーバ、アプリケーションサーバ、データベース管理サーバの3つのミドルウェアで構成されるシステムを、「web3構造」と呼ぶそうです。1つ1つの役割を簡単にみていきます。

a. webサーバ

ユーザーのリクエストに応じて、ページを表示するためのファイルを返すためのサーバです。代表的なものには、apacheやnginxがあります。毎回同じページを返す場合は、webサーバのみで完結しますが、リクエストによって表示内容が変わる場合(動的コンテンツ)、アプリケーションサーバに問いかけて、情報を得る役割も担います。

b. アプリケーションサーバ

アプリケーションの実行環境を提供するサーバです。動的なコンテンツを生成し、webサーバを介してwebページに表示することができます。また、動的コンテンツだけではなく、DBにある特定のデータを表示したい場合には、データベース管理サーバに問い合わせ、データを取得することができます。

c. データベース管理サーバ

DBMS(データベース管理システム)が稼働するためのサーバ。データの一元管理をしていて、データの保存や更新、バックアップを行うことができます。アプリケーションサーバからデータを要求された時は、DBMSで特定のデータを取得することができます。

4. まだまだありそうミドルウェア

私は、現在Djangoを使った開発を行っていますが、settings.pyを覗きに行くと、色々なミドルウェアが登録されています。djangoのSecurityMiddleware とか、 SessionMiddleware とか…。この辺りは、まだノータッチなので、引き続き勉強して、次の記事でまとめてみます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?