【5分で解説】クライアントサーバシステムとは?メリット・デメリットのすべて

IT-Skills

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

クライアントサーバシステム概念図

クライアントサーバシステムは、現代のシステム設計の主流です。一方で、システムのアーキテクチャは目に見えない部分でもあるため、イマイチ理解しづらい部分でもありますよね。

実は、クライアントサーバシステムは1つずつ丁寧に理解すれば決して難しい概念ではありません。このページでは、イメージ図を多く使いながら初心者の方でもわかりやすいように解説しています。

このページで学べる内容

  • クライアントサーバシステムとは何か?
  • クライアントサーバシステムの処理内容
  • クライアントサーバシステムのメリット/デメリットについて

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

IT系企業の方や、今後システム関連に携わる方であれば知らないと恥ずかしい内容ばかりですので、是非最後までご覧ください。

それでは早速解説を始めます。

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

クライアントサーバシステムをイメージ図で表したのが以下の図です。

クライアントサーバシステムでポイントとなるのは、「クライアント」と「サーバ」です。一言で言えば「クライアント」と「サーバ」の2つから成り立つシステムのことを「クライアントサーバシステム」と呼んでいます。

クライアントサーバシステムでポイントとなるのは、「クライアント」と「サーバ」です。一言で言えば「クライアント」と「サーバ」の2つから成り立つシステムのことを「クライアントサーバシステム」と呼んでいます。

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

せっかくなので、どのようにあなたがこのページを見ることができているのかを解説しながら、クライアントサーバシステムの仕組みを深堀していきましょう。

クライアントサーバシステムの例

クライアントサーバシステムのイメージをつかむためには、①ユーザと②クライアント、そして③サーバをそれぞれ分けて考える必要があります。

※登場する3つを一度に考えようとすると難しいかもしれません。

分かりやすく考えるためには・・・

  1. ①ユーザから②クライアントの処理
  2. ②クライアントから③サーバの処理

の2段階で考えていきます。

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

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

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

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

あなたは、このサイトを「ブラウザ」を通してみていますよね。ページを見たり、画像を保存したり、Googleで検索をしたりします。つまり、「次のページを見たい」「画像を保存したい」「サイト内検索をしたい」という要求を「クライアント」へ送っていると言えます。

ページを見たり、画像を保存したり、Googleで検索をしたりします。つまり、「次のページを見たい」「画像を保存したい」「サイト内検索をしたい」という要求を「クライアント」へ送っていると言えます。
クライアント(ブラウザ)へ処理を要求

ユーザからの要求を受け取るのは、クライアントということです。このタイミングでサーバはまだ何も処理を行っていません。

要求を受け取ったクライアントは、その要求をサーバ側に送信していきます。

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

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

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

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

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

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

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

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

マインド マップ, ブレイン ストーム, アイデア, 技術革新, 想像力, インスピレーション, 電球

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

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

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

メリット1:負荷分散

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

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

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

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

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

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

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

メリット2:部分的な故障に強い

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

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

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

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

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

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

メリット3:柔軟なシステム変更に強い

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

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

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

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

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

クライアントサーバシステムには、このように大きなメリットがあり(もっとメリットはありそうです。)現代のシステムアーキテクチャの主流となっています。近年では、さらに「サーバ」を3層に細分化して構築する「3層アーキテクチャ」が主流となっています。

タイトルとURLをコピーしました