Chapter5 Webアプリケーションの基本(01〜04)
目次
01 Webアプリケーションの3層構造
Webアプリケーション:ネットワークを介してWebブラウザ上で動作する
アプリケーション。
基本的に3層構造(3層アーキテクチャ)になっている
3層構造 :アプリケーションの構造の考え方のひとつ。
「プレゼンテーション層」「アプリケーション層」
「データ層」に分かれる
プレゼンテーション層:UIとなる
アプリケーション層:業務処理を行う
データ層:データ処理や保管を行う
●負荷分散
複雑な処理→アプリケーション層とデータ層の負荷↑
アクセス集中→プレゼンテーション層の負荷↑
3層アーキテクチャでは層別に動作させるサーバー機器を分けることが可能
●改修範囲の限定
層別に分かれていると改修範囲が小さくなる
02 MVCモデル
MVCモデル:アプリケーションの構造の考え方のひとつ。
Model:アプリケーションの扱うデータと業務処理
View:ユーザーへの出力
Controller:必要な処理をModelやViewに伝える
●3層アーキテクチャとの違い
混同しやすいが、根本的に異なる
3層アーキテクチャ:階層構造の最上層「プレゼンテーション層」と最下層「データ層」が直接やりとりをすることはない
MVCモデル:各要素が相互にやりとりする
●MVCモデルの利点
開発や改修の分業が容易になる
要素ごとに個別の開発が可能
機能追加が容易
03 フレームワーク
フレームワーク:一般的な処理の流れを「雛形」として準備したもの。
Webアプリケーションごとの独自の内容を開発者が埋めることで
プログラムが開発できる
メリット:プログラム開発の手間を削減できる
比較的容易にプログラムの開発ができる
デメリット:雛形はMVCモデルのような特定のパターンで作られているため、
フレームワークを用いた開発では、その雛形に沿う形のプログラムしか
作れない
●いろいろなフレームワーク
Spring Boot
Cake PHP
04 Webサーバー
Webサーバー:Webアプリケーションにおいて、
Webクライアントに対する窓口の役割を果たすプログラム
冗長化:1台が故障しても別のサーバーだけでサービスが続けられるようにすること
●求められるサーバー機器の性能
利用者が多いWebアプリケーション:リクエストの量が増える
→レスポンス処理の速さが要求される
静的ページのリクエストが多い場合:静的ページを読み込むためのハードディスクの読み取りが速く、ハードディスクの読み取りをサポートするメモリの容量が大きいこと
動的ページのリクエストが多い場合:アプリケーションサーバーへのデータ連携処理を速くするため、CPUの性能が高いこと
●静的コンテンツの配置
静的コンテンツはWebサーバーと同じサーバー機器上に置かなくてもよい
別の機器であっても、Webサーバーからアクセスできる場所にあれば問題ない
△別のサーバー機器上にある場合、ネットワーク越しにコンテンツを取りに行くためレスポンスが遅くなる
複数台の機器でWebサーバーが動作しているときは、機器間で同じコンテンツを持つようにコンテンツの同期を行う方法を考える必要がある
担当:やし