- 追加された行はこの色です。
- 削除された行はこの色です。
Open棟梁Project - マイクロソフト系技術情報 Wiki
* 目次 [#z629ff52]
#contents
*概要 [#ne6d30eb]
*はじめに [#efa3a83c]
**Webシステムの状態管理方式 [#t8b2d188]
2層C/Sシステムでは、クライアント側プログラムがDBに直接接続し、状態 を一元管理するという方式が採用されている。これに対し3層C/SシステムやWebシステムでは、APサーバの拡張性・信頼性を確保するために、サーバの状態を保持しないで「サーバへのリクエスト」・「クライアントへのレスポンス」の間で必要な情報を持ち回り、サーバがリクエストを受け付けたときサーバ側で状態を復元するという方式が一般化した 。しかし、近年のWebシステムにおいては、サーバに状態を保持した場合も拡張性・信頼性を確保するための技術 も登場しており、サーバ側のメモリ領域にユーザ毎に確保される「Session」を使用して、状態を保持するケースが多数を占めるようになってきている。このため、3層C/SシステムやWebシステムの「状態管理方式」の大枠は、次の2つの方式に分けることができる。
表1 3層C/SシステムやWebシステムの状態管理方式
|項番|状態管理方式|説明|h
|1|サーバ ステートレス|サーバ側の状態保持領域を利用しない。|
|2|サーバ ステートフル|サーバ側の状態保持領域を利用する。|
特にWebシステムの「状態管理方式」は、クライアント側で状態を一元管理することができないため、クライアント側とサーバ側の双方で連携して状態を管理する必要があり、2層・3層C/Sアプリケーションと比べて複雑である。このため、本ドキュメントではWebアプリケーション用のAPサーバであるASP.NETを使用したASP.NETアプリケーションの「状態管理方式」に関する、下記の項目について説明する。
・ ASP.NETアプリケーションの一般的な「状態管理方式」
・ ASP.NETアプリケーションの開発で使用可能な「状態管理技術」
実装上の考慮点
性能の考慮点
・ 拡張性・信頼性を確保するための、負荷分散(冗長化)構成を組む際の考慮点
特に、「状態管理方式」の選択や「状態管理技術」の使い方を誤れば、性能の悪化や保守性の悪化、予期せぬセキュリティ問題が発生したり、拡張性・信頼性の要件が満たせないという問題などにも結びついたりするので注意が必要である。