近年ECサイトのなどでよく採用されているコンピュータの処理形態に、『3層クライアントサーバシステム』があります。
『3層クライアントサーバシステム』という言葉、Web界隈ではしばしば耳にするワードですが、実際どんなものなのかよくわからないという方も多いのではないでしょうか?
今回の記事では、
- コンピュータの処理形態
- 3層クライアントサーバシステムの仕組み
- 3層クライアントサーバシステムのメリット
が理解できるようになることを目標にしています!
それでは、一緒に学んでいきましょう!!
コンピュータの処理形態
コンピュータは1台でも動きますが、基本はネットワークを介して複数のコンピュータが連携することで様々なサービスを受けることができます。
複数のコンピュータが連携して動く処理形態は大きく2つあります。
それが、『集中処理』と『分散処理』です。
集中処理
かつての主流の処理方法です。小型コンピュータのスペックが余りにも低かった頃は、大型コンピュータ(ホストコンピュータ)が全ての処理を集中的に行っていました。
この処理方法のメリットは以下の通りです。
- データの維持・管理がしやすい(一貫性を保てる)
- セキュリティの確保が容易
一方で、デメリットもあります
- ホストコンピュータが壊れるとすべてが終わる
1台で一括管理しているので、運用が容易な分、アクシデントが起こるとシステム全体が止まってしまいます。
分散処理
コンピュータ1台1台の性能が向上してくると、従来の集中処理ではなく分散処理の考え方が生まれました。
分散処理では複数のコンピュータに負荷を分散させることができます。
分散処理のメリットとしては、
- 一部のコンピュータに問題が生じても、全体には影響しない
一方、
- データの一貫性を管理しづらい
- 集中処理と比べ、セキュリティの確保が難しい
といったデメリットがあります
クライアントサーバシステム
コンピュータ1台の性能が向上したことで分散処理が可能になりましたが、デメリットもいくつかありました。
そこで、分散処理の形式でありながら集中処理のいいところも取り込んだ処理形態が出てきました。
それが、『クライアントサーバシステム』です。
ざっくり言うと、クライアントは「サービスを要求する側」サーバーは「サービスを提供する側」です。
通常の処理はクライアント自身で行いますが、サーバーに処理を求めたほうが効率的である場合は、サーバーにリクエストを投げます。
では、サーバーに処理を求めたほうが効率的である場合とはどのような場合なのでしょう。
それは、それぞれのコンピュータ上ではなく、どこか1か所で集中的に処理を行ったり、資源を管理したほうが良い場合です。
例えば、ファイルを共有できるファイルサーバがあれば、ファイルサーバ上にファイルを置くことで自由にファイルを共有することができます。
ファイルサーバがなければ、各クライアント間で個別にやり取りしなければならず、非常に手間がかかります。
サーバにも種類があります。ファイルサーバ以外にも、以下のようなものが例としてあげられます。

ちなみに、「サーバ」や「クライアント」というのはあくまで役割を示す言葉です。なので、サーバという機械があるわけではありません。
サーバAがサーバBにリクエストを送る際、サーバAの立場はクライアントになります。
3層クライアントサーバシステムとは
「3層クライアントサーバシステム」とは、クライアントサーバシステムの機能を『プレゼンテーション層』、『ファンクション層』、『データ層』の3つに分けて構成されたシステムを指します。

クライアント側では画面が表示され、ユーザーが操作を行います。
サーバ側では、リクエストに対しアプリケーションが動作し、結果をクライアント側に返します。
通常のクライアントサーバシステムとの違い
通常のクライアントサーバシステムは「2層クライアントサーバシステム」とも呼ばれます。
2層クライアントサーバシステムでは、プレゼンテーション層とアプリケーション層が一体となって、クライアント側に実装されています。
アプリケーション層が実装されている場所の違いが、「2層クライアントサーバシステム」と「3層クライアントサーバシステム」の違いです。
2層クライアントサーバシステムでは、以下のような問題が生じてしまいます。
- アプリケーションに修正を加える際、全てのクライアントのアプリケーションを修正する必要がある
- ネットワーク上で多くのデータをやり取りする必要があり、ネットワーク回線を圧迫してしまう
- データベースをロックする時間が長くなってしまう
3層クライアントサーバシステムの利点
2層クライアントサーバシステムの問題を解消するために考案されたのが、3層クライアントサーバシステムです。
アプリケーション層がサーバ側にあることで、以下のような利点が得られます。
- アプリケーションに修正が生じても、サーバ側だけを修正すればよい
- クライアント側は画面操作を行うだけでよい(シンクライアントを利用できる)
- 通信するのは処理リクエストと結果のみなので、ネットワーク上での通信量を抑えることができる
- サーバ側でアプリケーションの処理が完結するので、データベースのロック時間が短くなる
こんなにも利点があるなんて、3層クライアントサーバシステム最高!
まとめ
3層クライアントサーバシステムについて少しでも理解を深めてもらえたでしょうか。
3層クライアントサーバシステムは、ECサイトとの親和性が高いといわれています。今後Amazon や楽天で買い物をするとき、
「あぁ、このサイト、3層クライアントサーバシステムなのか」
と思いを馳せることで、買い物も捗るかもしれませんね???
ではでは👋