Help us understand the problem. What is going on with this article?

この一冊で全部わかるWEB技術の基本 chapter5 WEB

はじめに

業務研修の中でタイトルにある本を読むことになったのでまとめとして書いています。
この記事が僕と同じような初心者エンジニアさんのお役に立てれば幸いです。

Webアプリケーションの三層構造

Webアプリケーションは基本的に三層に別れている

-プレゼンテーション層=Webブラウザ&Webサーバ
ユーザーへの表示、操作受け付け
-アプリケーション層=アプリケーションサーバ
ユーザからの命令実行、表示画面の作成
-データ層=DBサーバ
データの抽出、更新、保管

三層にすることでのメリットは二点
①負荷分散
層別されていないAPであれば全ての処理を実施することになる、小規模なシステムでは大丈夫だが複雑な処理になると負荷が大きくなる。
三層に分けることで負荷を分散できる。
②改修範囲の限定
改修が必要になった時、例えばデータの改修であればデータ層だけを改修すればいいので、コストを抑えれらる。

MVCモデル

Model(データ処理)、View(ユーザに出力)、Cntorller(ユーザからの命令をモデルとヴューに指示)の三つの部分からなる。
MVCモデルのメリットは上記の三層構造と似ているが、異なる点として以下が挙げられる。

・三層アーキテクチャはWebシステム全体の設計方針であり、MVCはサーバサイド・スクリプトの設計方針だから対象とする範囲が違う
・三層アーキテクチャは階層構造だが、MVCは相互に関わりあう

Webサーバ

Webクライアントに対する窓口の役割を果たし、静的ページのデータやAPサーバから転送された動的ページのデータをクライアントに転送する。
Webサーバが動作しなくなるとサービスが提供できなくなるため、冗長化という構成をとっている。
・冗長化=サーバの機器台数を多くし、一台当たりの負担を少なくするとともに一台が故障しても別のサーバだけでサービスを続けられるようにする

Webクライアント

Webサーバから送られてきた「HTTPレスポンスを解釈し、ユーザに表示する役割を持つ。
代表的なものが、Webブラウザだがこれ以外にもFacebookやTwitter専用クライアントもある。
 

アプリケーションサーバ

サーバーサイド・スクリプトを実行し、DBへデータ検索や更新、Webサーバに動的ページの転送をしたりする。
三層アーキテクチャの中では一番処理の複雑で負荷が高い。

セッション管理

ログインが必要なサイトなどの場合は、APサーバがセッションIDを発行して一つのセッションとして管理する

トランザクション管理

予約サイトなどの「全てのやり取りが成功するまで完了しない処理」はリクエスト/レスポンス単位でなく、複数の処理をトランザクション単位で管理している

データベース管理システム

データの扱いは非常に注意を払う必要があり、冗長化構成をとっている。
手法として、ミラーリング・レプリケーション・シェアードティスクなどがある。

キャッシュサーバ

キャッシュサーバは「リクエストに対するレスポンスを覚えておく」という役割を持つ。
その覚えておいた記憶を「キャッシュ」と呼び、文書や画像、動画といったコンテンツのキャッシュを「コンテンツキャッシュ」、DBMSのデータ検索要求(クエリ)の結果のキャッシュが「クエリキャッシュ」と呼ばれる。
コンテンツやデータの変動を加味した有効期限が定められている。

Ajax

以前のWEBサイトは同期通信が主だった。同期通信とはクライアントとサーバーが交互に処理を行い、同調して通信を行うこと。
問題点としてレスを待つ間、クライアントは待つことしかできないから効率が悪くなってしまう。
この欠点を補うために登場したのがAjax。
JavaScriptが直接Webサーバと通信を行い、XMLデータとして更新に必要なデータのみをやり取りするため、サーバの負担が少ない。
また、AjaxはWebブラウザの代わりにブラウザ上で動くJSだけが通信を行うため、非同期通信を実現できる。よってレスポンスを待つ間もユーザからの入力などレスポンスに左右されないところは操作することができる。

WebAPI

プログラムがクライアントとしてデータを送信し、サーバからデータを返送してもらう窓口がWebAPI。
EX>Twitter投稿いボタンを押すと指定している投稿もされる。
APIの様々な手法=XML-RPC,Atom,SOAP

マッシュアップ

複数のWebサービスを組み合わせて新たなWebサービスを生み出すこと。
よく使うAP「googleの位置情報」や「アマゾンの購入状況」など。

CGI

Webサーバがクライアントからの要求に応じてサーバサイド・スクリプトを起動すルための仕組みがCGI。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした