クライアントサーバモデル (英 : client-server model )は、機能やサービスを提供するサーバ と、それを利用するクライアント とを分離し、ネットワーク通信によって接続する、コンピュータネットワーク のソフトウェアモデル(ソフトウェアアーキテクチャ )である。単にクライアント・サーバ と呼ばれたり、C/S などと表記されたりすることも多い[ 1] 。俗にクラサバと略されることもある。
概要
クライアント・サーバ 型ネットワークの一例。1つのサーバ(図中央)と1つ以上のクライアントからなり、一対多の通信を行なう。
かつてのネットワークでは、メインフレーム と呼ばれる大型コンピュータに接続された端末 から利用者が操作する形態が中心であった。当時の端末は文字の入力受付と表示を行なうのみの貧弱な処理能力しかなかったため、あらゆる計算 はメインフレームによって集中的に処理されていた。
その後、UNIX ワークステーション など表示能力と処理能力の高いコンピュータを多数配置することがコスト的に容易な時代になった。その結果、特定の役割を集中的に担当するコンピュータ(サーバ)と、利用者の操作するコンピュータ(クライアント)に役割を分け、これらが相互にネットワークで接続されるクライアントサーバモデル が一般化した。このモデルでは、クライアントがサーバに「要求」を送信し、サーバがそれに「応答」を返す形で処理が行われる。
クライアントサーバモデル以外のネットワークアーキテクチャとしては、ピア・ツー・ピア モデルも広く利用されている。これは、クライアントやサーバといった役割を固定化せず、ネットワークに参加するコンピュータ(ノード)が場合によってどちらとしても働くというものである。
サーバとクライアントのやり取りを記述するためには、UML のシーケンス図 が利用できる。
サーバの種類
サーバの代表的な役割には次のようなものが存在する。いずれも前述のような形態をとっており、現在のコンピュータシステムでは一般的な概念となっている。
ソフトウェアテスト の目的で、クライアント端末内にローカルサーバを構築し、閉じた環境内でローカルホスト 経由の通信を行なうこともある。
例
例えば、World Wide Web (Web) 上のオンラインストアを利用する場合、オンラインストアの利用者が使っているコンピュータやウェブブラウザ がクライアント に相当し、オンラインストアのデータベース管理システム やWebサーバがサーバ に相当する。Webブラウザがウェブページ を表示する要求を送ると、サーバは必要な情報からウェブページのデータを動的に生成し、これを応答として返す。これを受信したクライアント側のWebブラウザがページを表示することで、利用者がそのウェブページを閲覧・利用することができる。
狭義のクライアント・サーバ
広い意味でクライアント・サーバと呼ばれる場合、前述のようにクライアントとサーバと処理を役割分担している分散コンピューティング のことを意味することがある。この場合、サーバがさらに数層分けられる多層アーキテクチャ を含める場合がある。
一方で、狭い意味でクライアント・サーバと呼ばれる場合には、2層アーキテクチャやリッチクライアント モデルを指す場合がある。
脚注
関連項目