クライアントが要求し、サーバが応答してサービスを提供する構成。
クライアントサーバシステムとは、サービスを要求する側(クライアント)と、それに応答する側(サーバ)に役割を分けた構成のことです。クライアントが「これをしてほしい」と要求し、サーバが処理して結果を返します。
やり取りは「要求(リクエスト)」と「応答(レスポンス)」の2つで成り立ちます。クライアントが要求を送り、サーバが応答を返す──この往復が基本の動きです。
身近な例はレストランの注文です。お客さん(クライアント)が「カレーをください」と注文(要求)すると、厨房(サーバ)が調理してカレーを出します(応答)。お客さんは作り方を知らなくてよく、頼むだけで結果を受け取れます。私たちが毎日使うWebブラウザ(クライアント)とWebサーバの関係も、これとまったく同じ仕組みです。
クライアントとサーバは担当する仕事がはっきり分かれているのが特徴です。
| 役割 | クライアント | サーバ |
|---|---|---|
| 立場 | サービスを要求する側 | サービスを提供する側 |
| 主な仕事 | 画面表示・入力受付 | 処理の実行・データ保管 |
| 具体例 | Webブラウザ、メールソフト | Webサーバ、データベースサーバ |
ポイントは重い処理やデータをサーバ側に集めることです。
・クライアント:見た目(画面表示)と入力に専念する
・サーバ:計算・データ管理など中身の処理を引き受ける
こうすることで、クライアントは性能が低くても動作でき、肝心のデータはサーバ側で一括して守れます。
クライアントサーバ構成には、役割を分けたことで生まれる多くの利点があります。
・集中管理:データや処理をサーバ1か所で管理でき、更新も一括で反映できる
・セキュリティ:重要なデータをサーバに集めて守れるため安全性を高めやすい
・共有:複数のクライアントが1台のサーバを同時に利用し、同じデータを共有できる
たとえば図書館の貸出システムでは、蔵書データ(サーバ)を1か所で管理し、各窓口の端末(クライアント)から全員が同じ最新の在庫を確認できます。データが1か所に集まっているからこそ、誰が見ても食い違いが起きません。
クライアントは表示と入力に専念できるため、安価な機器でも利用でき、ソフトの更新もサーバ側で行えば全員に行き渡るという運用上の手軽さもあります。
なぜ、わざわざサーバとクライアントに分けるのでしょうか。答えは「データと処理を1か所に集めると、管理が楽になり安全になるから」です。
もし分けなかったらどうなるか、を想像してみましょう。たとえば社員100人が使う住所録データをそれぞれのPCに保存すると、誰かが住所を更新しても他の99台には反映されません。データがバラバラになり、「どれが最新か分からない」状態になります。
・サーバに集中管理するとサーバのデータだけ更新すれば全員に即座に反映できる
・重要データをサーバで守るとアクセス制限を1か所にかけられるため、セキュリティが管理しやすい
・クライアントを軽くできるとスマートフォンなど性能が低い機器でも利用できる
身近な例で考えると、銀行の口座残高です。残高は銀行のサーバに1か所だけ保管されており、ATM(クライアント)はどこからでも最新の残高を表示できます。もし口座データが各ATMにバラバラに保存されていたら、残高の食い違いが起きて大変なことになりますよね。「1か所で管理・更新」がクライアントサーバのメリットの核心です。
クライアントサーバとよく比較されるのがP2P(ピアツーピア=Peer-to-Peer)です。P2Pとはサーバを介さずに端末(ピア)同士が直接やり取りする仕組みのことです。
2つの方式の根本的な違いは「中心があるかどうか」です。
・クライアントサーバ:サーバが中心(集中型)。管理がしやすく、セキュリティを1か所で守れる。サーバが止まると全員が使えなくなるのが弱点
・P2P:端末同士が対等(分散型)。サーバが不要なので、1台が止まっても他の端末でやり取りを続けられる。一方でデータ管理やセキュリティが複雑になる
なぜ2種類あるのか。どちらが優れているかではなく、用途によって向き不向きがあるからです。Webサービス・銀行・社内システムなど「データを厳密に一元管理したい」場合はクライアントサーバが適しています。一方、特定のサーバに依存したくない場合や分散して処理したい場合はP2Pが使われます(例:ファイル共有ソフトなど)。
Q1.クライアントサーバシステムにおけるクライアントの役割として適切なものはどれか。
Q2.クライアントとサーバのやり取りの基本として適切なものはどれか。
Q3.クライアントサーバ構成の利点として適切なものはどれか。