IT-Skills

クライアントサーバシステムとは?メリット・デメリット

クライアントサーバシステムとは、システムの構築方法の分類の1つであり、サービス(実際の処理)を提供する「サーバ」と、サービスをリクエストする「クライアント」とで役割を分担したシステムのことです。

システム黎明期では、「サーバ」の役割も「クライアント」の役割も担う汎用機が全ての処理を実施する「集中型システム」が主流でした。

なぜ、現代のシステムは「クライアントサーバシステム」を採用しているのか?

そして、結局のところ「クライアントサーバシステム」とは分かりやすく言うと、どんなシステムなのか?

この2点に絞って、本記事でIT初心者向けに分かりやすく解説します。

クライアントサーバシステムとは?

クライアントサーバシステムを分かりやすくイメージ図で表してみました。

登場人物は3人です。ユーザと「クライアント」・「サーバ」です。

今ご覧になっているこのページ(ビズドットオンライン)もクライアントサーバシステムに分類されます。

せっかくなので、どのようにユーザ(あなた)がこのページを見ることができているかで解説したいと思います。

ユーザからクライアントの処理

ここで言うクライアントとは、あなたのパソコン・スマートフォンであり、もっと詳細に言えば「ブラウザ」です。

※ブラウザ・・・chromeとかInternet Explorerなどのことです。

あなたは、このサイトを「ブラウザ」を通してみており、次のページを見たり、保存したり、はたまたサイト内検索をしたりします。

つまり、「次のページを見たい」「画像を保存したい」「サイト内検索をしたい」という要求を「クライアント」へ送っていることになります。

先ほどのイメージ図で言えば、下記赤字部分の処理に該当します。

クライアントからサーバの処理

ユーザ(あなた)からの要求を受け取った「クライアント」は、その要求をシステムの言葉に翻訳し、サーバ側へ送ります。

「次のページを見たい」⇒「URL:xxx のページ情報が欲しい」

のように、具体的な処理内容に変換し「サーバ」側へ送付します。

要求を受け取った「サーバ」は、該当するページを「クライアント」に返し、「クライアント」はさらに「ユーザ(あなた)」にページの内容を返すのです。

結果として、あなたは目的のページをパソコン・スマートフォンから見ることができているわけです。

このように、それぞれの「要求」と「応答」をリレーすることによって、1つのシステムとして成立させる仕組みをクライアントサーバシステムと呼ぶのです。

クライアントサーバシステムのメリット

ここまで読んでいただいた方の中には「なんでこんなややこしい仕組みにしているの?」という疑問をお持ちの方もいるかもしれません。

なぜ、「わざわざ」クライアントとサーバを別にする必要があるのか?

ここからは、クライアントサーバシステムのメリットを解説していきたいと思います。

負荷分散

1つ目のメリットは、負荷分散です。

集中型システムでは、1つの汎用機に負荷が寄ることになります。

「負荷」とは、大人数が一気に利用する際に生まれる力のことです。例えば、このブログも集中型システムの形態をとっていた場合どうなるか?

ページを開くのも画像を保存するのも、見ているユーザごとに処理をこなさなければなりません。常に1000人が見ている状態で、0.1秒単位でページ情報とユーザの処理状態を認識し、処理を繰り返すのです。

クライアントサーバシステムであれば、そこらへんの処理を「クライアント」が担い、「サーバ」側では限られた処理(ページ情報を返す・画像の情報を送る)のみで事足ります。

(ページのスクロールや、ユーザのセッション管理は不要です。)

負荷分散を避けられることが、大きなメリットであることは間違いありません。

部分的な故障に強い

2つ目のメリットがこれです。

例えば、だれか一人によって「ブラウザ」が壊されても、「サーバ」側は影響を受けません。

他の人の「クライアント」であれば、問題なくページの閲覧を続行できます。

また、故障時の問題特定も素早くできるようになります。

「ページが開かない」という問題が起こった際に、他の「クライアント」からページを開けるのであれば、「クライアント」の問題であると特定できますし、逆に他の「クライアント」からも同様に見れないのであれば、「サーバ」側の故障であると素早く特定できます。

これが、集中型システムであれば問題の切り分けに時間がかかり、復旧までに時間を要することになります。

柔軟なシステム変更に強い

このブログは、週に2~3回の速度で更新していますが、その際に「クライアント(ブラウザ)」の変更は不要です。

デザインをちょっと変えたいと思って、週に1回程度デザイン変更を行っていますが、「サーバ」側に対する処理のみでそれが可能です。

もし、これが集中型システムの形態をとっていた場合、一度「クライアント(ブラウザ)」を一時停止させなければなりません。

クライアントサーバシステムであれば、クライアントかサーバ、それぞれどちらかだけを変更すればよいですし、その際もう一方への影響は与えません。

ピンポイントで変更をしたい、ちょっとだけ変更したい。もし集中型システムであれば、ブラウザもサーバも停止させる必要が出てきてしまうため、変更は断念です。

クライアントサーバシステムには、このように大きなメリットがあり(もっとメリットはありそうです。)現代のシステムアーキテクチャの主流となっています。

新着記事はこちら

【SAP】ビュー(view)を1から説明

さて、ざっくりビューとは何でしょうか?と …
続きを読む

【ABAP】内部テーブルのテーブルデータ型とは?

内部テーブルと一口に言っても、ABAPを …
続きを読む

【SAP】SE11―ABAPディクショナリでできること一覧

本ページでは、トランザクションコード:S …
続きを読む

【SAP】アドオンテーブル作成―全6ステップ解説

検索しても意外と出てこない「アドオンテー …
続きを読む