読書会でまとめたものになります

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モデルのような特定のパターンで作られているため、

      フレームワークを用いた開発では、その雛形に沿う形のプログラムしか

      作れない

●いろいろなフレームワーク

Java EE

Struts

Spring Boot

Cake PHP

Ruby on Rails

04 Webサーバー

Webサーバー:Webアプリケーションにおいて、

       Webクライアントに対する窓口の役割を果たすプログラム

冗長化:1台が故障しても別のサーバーだけでサービスが続けられるようにすること

●求められるサーバー機器の性能

利用者が多いWebアプリケーション:リクエストの量が増える

                 →レスポンス処理の速さが要求される

 

静的ページのリクエストが多い場合:静的ページを読み込むためのハードディスクの読み取りが速く、ハードディスクの読み取りをサポートするメモリの容量が大きいこと

 

動的ページのリクエストが多い場合:アプリケーションサーバーへのデータ連携処理を速くするため、CPUの性能が高いこと

●静的コンテンツの配置

静的コンテンツはWebサーバーと同じサーバー機器上に置かなくてもよい

別の機器であっても、Webサーバーからアクセスできる場所にあれば問題ない

△別のサーバー機器上にある場合、ネットワーク越しにコンテンツを取りに行くためレスポンスが遅くなる

複数台の機器でWebサーバーが動作しているときは、機器間で同じコンテンツを持つようにコンテンツの同期を行う方法を考える必要がある

 

担当:やし