よく聞くけど意外とわからない言葉その2 「Web3階層」
こんにちは。
今回は、「Web3階層」という用語についてお伝えしていきます。
確かに良く聞く言葉ではあるんですが、「じゃあ説明してよ」と言われると意外とわからないものですよね。 というわけで、簡単に説明していきます。
実は、Web3階層には「Webアプリケーション」という用語がくっついて来ます。
Webアプリケーションとは?
現在、日常的にWebアプリケーションを利用していない人はほとんどいないでしょう。 ネットショッピングをしたり、SNSにつぶやきを投稿したり、スケジュール管理をしたり・・・ これらに共通するのは、Webブラウザを使って利用していることです。
通常、Webブラウザを利用して、いわゆる「アプリ」のように使えるサービスのことを 「Webアプリケーション」と呼んでいきます。「Amazon.co.jp」「Twitter」「Facebook」等が有名どころなのではないでしょうか。
じゃあWeb3階層って何?
一つ上の項目で、「Webアプリケーション」が何なのかというお話をしたと思います。 では、「Webアプリケーション」を作るにはどうしたら良いのでしょうか?
世の中にはいろいろなモノが溢れていますが、どれをとっても、微妙に作り方は異なると思います。 例えば、手帳はいろいろなメーカーが販売していて、いろいろな種類があり、おそらく会社ごとに作り方は若干違うでしょう。 ですが、何もかもが違うわけではなく、大まかで一般的な「セオリー」が存在するはずです。
Webアプリケーションを作るときも同じで、「こうするとイイよ」と先人たちが貯めてくれたセオリー、 これが「Web3階層」です。
Webアプリケーションはどうやって作るの?
「Webアプリケーション」を作るには、物理的なハードウェアも必要ですし、プログラマが開発したソフトウェアも必要です。 「ソフトウェア」のイメージがつかない人は、「業務用のアプリ」だと思って下さい。
まとめると、
どのハードウェアをどこに配置してどのハードウェアと繋げ、
各ハードウェアにはどんなソフトウェアをインストールするのか
このノウハウこそがWeb3階層です。
具体的には、下図のような構成が一般的です。
簡単に説明しますと、
Webサーバ・・・例えるなら受付。お客さんからの要求を受け付け、すぐに答えられるものはその場で回答(応答)する
アプリケーションサーバ・・・Webサーバでは処理できないもの(難しい判断や処理等)を担当し、保存しなければいけない情報や、データベースから貰わなければいけない情報があればデータベースサーバと連携していく
データベースサーバ・・・単純に言うとデータの倉庫。ひたすらデータを綺麗に貯めこむだけ。
矢印をつけると、こんな感じになりますね。
いずれのサーバも、基本的にはただのコンピュータを設置すると思ってもらってOKです。 但し、家電量販店などに売られている普通のパソコンではなく、 多数のユーザからのリクエストを同時に捌いてもパンクしないような高性能なコンピュータが選定されることが多いです。 基本的には、値段も高いですね。
じゃあソフトウェアは?
ソフトウェアも、自由に選んでOKです。 よくある構成はこんな感じです。
【無償製品で埋める場合】
Webサーバ・・・OSはLinux、WebサーバとしてApacheをインストール
アプリケーションサーバ・・・OSはLinux、アプリケーションサーバとしてTomcatをインストール
データベースサーバ・・・OSはLinux、データベースとしてMySQLあるいはPostgreSQL等
【Microsoft社製品で埋める場合】
Webサーバ・・・OSはWindows Server、WebサーバとしてMicrosoft IISをインストール
アプリケーションサーバ・・・OSはWindows Server、アプリケーションサーバは上記のIISで問題なし
データベースサーバ・・・OSはWindows Server、データベースサーバはSQL Serverをインストール
というのが非常に多いですね。
もちろん、基本的に無償製品を利用するけど、データベースだけはOracle社のOracle Databaseを使う、なんてこともあります。
各サーバは、物理的に別れている可能性もありますが、物理的には別れていない同一のコンピュータ、ということもあります。
結局、Web3階層は論理的な話だと思って頂ければOKです。
さいごに
結局のところ、Web3階層はただの「セオリー」です。 型破りな構成にしても良いですし、まったくの新しい概念を生み出しても良いです。 もちろん、ハードルは高いでしょうけれども。
では、今日はこの辺で!