2層・3層クライアントサーバシステムの違いを図解で説明
〜3層が選ばれる理由〜
「2層クライアントサーバシステム」と「3層クライアントサーバシステム」の違いを説明できますか?
クライアントとサーバに分かれていることは知っていても、層の数が何を表しているのかは分かりにくいと思います。
2層と3層の違いについて、図を使って説明していきます。
クライアントサーバシステム自体の説明は、クラサバとは?の記事を読んでみてください。
2層と3層の違いは?
システムの役割は、大きく次の3つに分けることができます。
- 画面: 利用者に見せる部分
- 処理: 業務の計算や判断をする部分
- データ: 情報を保存する部分
2層と3層の違いは、この3つをどこに置くかです。

2層は、画面と処理をクライアントに置きます。
3層は、処理をアプリケーションサーバに移して、3つの役割を分けます。
ここでの層は、役割を論理的に分けたものです。実際には分かれたサーバで動かすことが多いですが、1台のサーバにアプリケーションとDBを同居させても3層です。
2層クライアントサーバシステム
2層は、クライアントがDBサーバに直接接続する構成です。
クライアントにインストールしたアプリが、画面の表示と処理の両方を行います。

流れは次のようになります。
① クライアントのアプリが、DBサーバにSQLを送る
② DBサーバが、SQLを実行する
③ DBサーバが結果を返し、アプリが画面に表示する
サーバはDBサーバだけなので、構成が単純です。
小規模なシステムであれば、作りやすい構成です。
3層クライアントサーバシステム
3層は、クライアントとDBサーバの間にアプリケーションサーバを置く構成です。
クライアントの役割は、画面の表示と、処理の依頼だけになります。

流れは次のようになります。
① クライアントが、アプリケーションサーバに処理を依頼する
② アプリケーションサーバが、DBサーバにSQLを送る
③ DBサーバが、データを返す
④ アプリケーションサーバが、結果をクライアントに返す
クライアントがDBサーバに直接接続しないところがポイントです。
3層が選ばれる理由
3層が選ばれる一番の理由は、処理を変更しやすいことです。
例えば、消費税の計算方法を変更する場合を考えてみましょう。

2層では、処理がクライアントにあるので、全てのパソコンのアプリを更新しなければなりません。
パソコンが100台あれば、100台分の作業が必要です。
3層では、アプリケーションサーバを更新するだけで済みます。
他にも、次のような良い点があります。
- クライアントの性能が低くても動かしやすい
- 利用者が増えた時に、アプリケーションサーバを増やして対応しやすい
- DBサーバをクライアントから切り離せるので、守りやすい
Webシステムも3層で考えられる
3層の考え方は、Webシステムでも同じです。
試験では、3つの層を次の名前で呼びます。
- プレゼンテーション層: 画面を表示する
- ファンクション層: 業務の処理をする
- データ層(データベースアクセス層): データを管理する

Webシステムでは、ブラウザがプレゼンテーション層の役割をします。
ブラウザさえあれば使えるので、パソコンごとにアプリをインストールする必要もありません。
Webシステムの仕組みは、Webシステムを図解で解説で説明しています。
2層と3層の比較
2つの違いをまとめると、次のようになります。

3層の方が良い点は多いですが、サーバの台数が増えやすいので、費用や管理の手間は増えます。
小規模で変更の少ないシステムなら、2層が向いていることもあります。
まとめ
今回は2層と3層のクライアントサーバシステムの違いについて説明しました。
2層は画面と処理がクライアントにあり、3層は処理がアプリケーションサーバにあります。
基本情報技術者試験では、プレゼンテーション層、ファンクション層、データ層(データベースアクセス層)という3つの名前と、それぞれの役割を押さえておきましょう。
「画面、処理、データがどこにあるのか」を考えるようにすると、システムの構成図が読みやすくなると思います。


