例えば、Webブラウザに文字や画像を表示するとき、クライアントサーバーシステムでは、上の図のように複数のソフトウェアがそれぞれの役割を分担し、連携して処理を行います。
クライアントサーバーシステムとは?
「依頼する側(クライアント)」と「提供する側(サーバー)」という役割分担の構造になっている事です
クライアントサーバシステム(Client-Server System)は、クライアントとサーバーという役割を持つコンピュータやソフトウェアが、ネットワークを通して処理を行うシステム構成です。
1. ソフトウェア単位での分かれ目(機能の分離)
①(ブラウザ):
・表示用データを画面に表示
ユーザーが操作する画面です。Chrome、Safariなどで、サーバーから受け取った表示用データを画面に表示します。

②(クライアント):
・ユーザー(利用者)からの指示の受け取り
・リクエストの作成
・レスポンスを表示用データに変換
ユーザーの入力や画面操作を受け取ってリクエストを作成し、返ってきたレスポンスを表示用データに変換します。

(①②はブラウザ側のはたらきです)
③(プレゼンテーション層/マネージャー):
・リクエストの受け取り
・内容を判断し指示を出す
・指示の処理結果を受け取る
・クライアントに結果を返す
クライアントからのHTTPリクエストを受け取り、内容を判断してビジネスロジック層へ指示します。処理結果を受け取り、クライアントにレスポンスを返します。Nginx、Apache などのWebサーバーが代表例です。

④(ビジネスロジック層/アクション):
・計算や処理(演算)を実行
・データベースからデータを取得
・結果を返す
指示に従って必要な計算や処理(演算)を実行し、データベースからデータを取得して結果を返します。Tomcat、Node.js、Python などが代表例です。

⑤(データベース):DB管理システムがデータを保存・検索・更新し、必要なデータを提供します。MySQL、PostgreSQL などが代表例です。
それぞれの役割が連携することで、最終的にWebブラウザへ文字や画像などを表示できます。
※実際のWebシステムでは、構成によって処理の分け方や使用するソフトウェアが異なります。上の図は、処理の流れや役割を覚えるために単純化したイメージです。
2. コンピュータ(物理構成)単位での分かれ目
物理的に「クライアントとサーバー」に別れている場合もクライアントサーバーシステムと呼びます。
完全に物理マシンを分ける構成(標準的な大・中規模システム)
例えば、ネットを挟んで合計4台の異なる物理コンピュータ(または仮想マシン)に分かれている場合、
- 【端末1】 ユーザーの手元にあるPC・スマホ(①ブラウザ・②クライアントが動作)
===(インターネット)===
【端末2】 Webサーバー専用マシン(③の処理)
===(社内ネットワーク/LAN)===
【端末3】 APサーバー専用マシン(④の処理)
===(社内ネットワーク/LAN)===
【端末4】 DBサーバー専用マシン(⑤の処理)
という組み合わせにする事もできます。
サーバー側を1台にまとめる構成(小規模システム)
インターネットを境目にして、物理的には2台のコンピュータに分かれます。この場合もクライアントサーバーシステムと呼びます。
- 【端末1】 ユーザーのPC・スマホ(クライアント機器)
===(インターネット)===- 【端末2】 サーバー用コンピュータ1台
- この1台のコンピュータの中で「Webサーバーソフト」「APサーバーソフト」「DBサーバーソフト」が同時に動きます。
※この記事の文章は、生成AIを使用して作成・編集しています。内容については筆者が確認したうえで掲載しています。
※※画像は生成AIを使用して作成しています。
※基本情報技術者試験の学習をしているのですがあまりにも覚えられなくて擬人化して遊んでいたものです。参考になれば嬉しいです。

コメント