クライアント・サーバーシステムとは?仕組みをわかりやすく解説
Webサービスやアプリを使っているとき、裏側ではどのようなやり取りが行われているのでしょうか。その仕組みを理解するうえで欠かせないのが「クライアント・サーバーシステム」という考え方です。
クライアント・サーバーシステムとは
クライアント・サーバーシステムとは、コンピュータを「サービスを要求する側」と「サービスを提供する側」の2種類に分けて役割を担わせる仕組みです。
- クライアント: サービスを要求する側。スマートフォンやPCのWebブラウザがこれにあたります
- サーバー: サービスを提供する側。クライアントからのリクエストに応じてデータや処理結果を返します
たとえば、ブラウザでWebサイトを開くとき、ブラウザ(クライアント)がサーバーにページの内容を要求し、サーバーがHTMLやデータを返す、というやり取りが行われています。
サーバー側ではあらかじめプログラムが起動した状態で待機しており、クライアントからのリクエストが来たタイミングで処理を実行して応答します。
3層クライアント・サーバーシステムとは
実際のWebアプリケーションでは、役割をさらに細かく分けた「3層クライアント・サーバーシステム」が広く採用されています。3つの層はそれぞれ次のような役割を担います。
プレゼンテーション層
ユーザーに直接見える部分です。WebブラウザやスマートフォンアプリのUIがこれにあたります。ユーザーの入力を受け取り、処理結果を画面に表示する役割を担います。
ファンクション層(アプリケーション層)
ビジネスロジックを処理する中間層です。プレゼンテーション層から受け取ったデータを加工・処理し、必要に応じてデータ層にアクセスします。アプリケーションサーバーとも呼ばれます。
データ層
データベースへのアクセスを担当する層です。データの保存・取得・更新といった操作を行います。データベースサーバーがこの役割を担います。
この3層に分けることで、各層を独立して開発・保守できるようになります。たとえば、UIだけを変更したいときはプレゼンテーション層だけを修正すれば済むため、影響範囲を最小限に抑えられます。
まとめ
クライアント・サーバーシステムの基本的な考え方は、「役割を分けて、それぞれが得意なことに専念する」というシンプルな原則に基づいています。
| 層 | 役割 | 担当コンポーネント |
|---|---|---|
| プレゼンテーション層 | UI・入出力 | Webブラウザ、スマホアプリ |
| ファンクション層 | ロジック処理 | アプリケーションサーバー |
| データ層 | データ管理 | データベースサーバー |
現在のWebサービスのほとんどはこの構成をベースにして作られています。システムの構成を理解するための第一歩として、この3層の役割分担を覚えておくと役立ちます。
記事の更新をメールで受け取る
質問・リクエストを送る
記事についての質問や、取り上げてほしいテーマがあればお気軽にどうぞ。いただいた質問はブログ記事として回答し、Q&Aページで公開することがあります。