Webアプリケーションの3層構造
- ネットワークを介してWebブラウザで動作するアプリケーションをWebアプリケーションと呼ぶ。
- Webアプリケーションは基本的に3層構造になっている。
-
プレゼンテーション層
- ユーザーインターフェースとなる。
- WebブラウザとWebサーバーが役割を担う。
- クライアントサイド・スクリプトが動作する。
-
アプリケーション層
- 業務処理を行う。
- アプリケーションサーバー(APサーバー)が役割を担う。
- サーバーサイド・スクリプトが動作する。
-
データ層
- データ処理や保管を行う。
- データベースサーバー(DBサーバー)が役割を担う。
-
プレゼンテーション層
- 負荷分散
- 改修範囲の限定
MVCモデル
-
Model:データと業務処理に関する部分
-
View:結果をユーザーに出力する部分
-
Controller:ユーザーの命令を受けて各部に指示を出す部分
-
メリット
-
3層アーキテクチャとMVCモデルの関係
- 3層アーキテクチャ:Webシステム全体の設計方針
- MVCモデル:サーバーサイド・スクリプトの石器方針
フレームワーク
- 一般的な処理の流れを「ひな形」として準備しておき、Webアプリケーションごとの独自の内容を開発者が埋めることでプログラム開発できるようにしたもの。
- 近年は多人数での開発が一般的となっているので、フレームワークは特に重宝されている。
Webサーバー
-
Webサーバーの仕事は、静的ページのデータや、APサーバーから転送された動的ページのデータをWebクライアントに転送すること。
-
「冗長化」:Webサーバーの機器台数を多くし、1台あたりの負担を少なくするとともに、1台が故障しても別のサーバーだけでサービスを続けられるようにする構成。
Webクライアント
- Webサーバーとのやりとりを行い、Webシステムを利用するためのプログラム。
- 基本的な機能は、Webサーバーへリクエストを送り、Webサーバーからのレスポンスを受け取ってそれを解釈すること。
- 最も利用されているのはWebブラウザ。
- 地図、天気、ニュースなど特定の情報に特化した専用クライアントもある。特にスマートフォンでは多数の専用クライアントが公開されている。
アプリケーションサーバー
- Webアプリケーションの中核となる業務処理を行うプログラム。
- 基本的に多機能であり、業務処理が複雑になればなるほど負荷が高くなる。そのため、動作させるサーバ-機器にはサーバーサイド・スクリプトを動作させるためのメモリ容量やCPU性能が重視される。
-
セッション管理
-
トランザクション
データベース管理システム(DBMS)
- 蓄積されたデータはデータベース(DB)に格納されましたが、そのデータベースを管理する役割を担うもの。
- データベースにとって保持するデータの保全は非常に重要。そのためDBサーバーも基本的に冗長化構成をとる。
キャッシュサーバー
-
「リクエストに対するレスポンスを覚えておく」役割を実現するプログラム
-
キャッシュ:「リクエストに対するレスポンスの記憶」
-
CDN(Contents Delivery Network):世界各地に設置されたコンテンツキャッシュサーバーで構成されるネットワーク。CDN全体として1台のキャッシュサーバーのように動作する。
Ajax
-
同期処理:クライアントとサーバーが交互に処理を行い、同調して通信を行うこと。
- HTMLファイルを受け取ってから表示の処理を行うため、全体としてページの更新に時間がかかってしまう。
- 送信するデータも多くなりがちで、サーバーに負担がかかってしまう。
- Ajax:Webブラウザ上でクライアントサイド・スクリプトとして動くJavaScriptが直接Webサーバーと通信を行い、取得したデータを用いて、表示するHTMLを更新する。
-
非同期通信:Webサーバーからのレスポンスを待つ間もクライアント側であるJavaScriptがレスポンスに左右されない箇所のHTMLを更新したり、ユーザーからの入力を受け付けることができる。レスポンス待ちの時間を有効活用することができ、ページの更新がより速くなる。
Webプログラミング
- プログラミング言語を使ってWebアプリケーションを開発すること
WebAPI
-
WebAPIは、アプリケーションがWebサーバーの機能を利用するためのインターフェース。
-
XML-RPC:XMLを送信することで処理の実行を要求するプロトコル。受信するデータの形式にもXMLを使う。
-
SOAP:XML-RPCの機能を拡張したもの。
-
REST:設計思想。シンプルな設計で、かつデータの形式をXMLに限定されずJSONのような軽量なデータも利用できることから、SOAPに代わり現在主流となっている。
マッシュアップ
- 注意点
CGI
サーバー感の連携
-
CGIを利用せずにサーバーサイド・スクリプトを動作させる場合は、WebサーバーがAPサーバーにデータの処理を依頼し、APサーバーがサーバーサイド・スクリプトを動作させるという流れになる。
-
利用するプロトコル
- APサーバー:HTTPのほかにAJPやWebSocketといったプロトコルが利用されている。
- DBMS:それぞれ独自のプロトコルが採用されており、各APサーバーがそのすべてに対応することは難しいため、APサーバーとDBMS間で通信を行うためにODBCというAPIが開発されている。
参考:Web技術の基本