クライアント/サーバ
(client-server)
クライアント/サーバシステム、クライアントサーバモデル、クライアントサーバ方式などの表現がある。意味が広範なので、以下にいくつかの説明(解釈)を述べる。
1. クライアントは、ユーザが直接操作するデバイス(例えば、パソコン、スマートフォン)を指す。サーバはリソースを提供するコンピュータやプログラムを指す。クライアントはサーバにリソースを要求し、サーバはレスポンスをユーザに表示する。サーバはハードウェアとは限らない。たとえばメールを管理しているプログラムであるメールサーバ、メモリにデータを保管しているデータサーバなどがある。
2. クライアント/サーバシステムとは、サービスを利用するコンピュータ(クライアント)と、サービスやデータを提供するコンピュータ(サーバ)とが、ネットワークを介して通信しながら動作するシステムを指す。サーバ/クライアントシステムとも呼ばれ、1980年代以降に普及した。
3. クライアントサーバモデルは、機能やサービスを提供するサーバと、それを利用するクライアントとを分離し、ネットワークを介してつながるコンピュータネットワークのソフトウェアモデル(ソフトウェアアーキテクチャ)である。略して「クライアント・サーバ」や「クラサバ」と呼ばれたり、C/Sと略記されたりする。
4. クライアントサーバシステムは、分散型コンピュータシステムの1種で、クライアントとサーバと呼ばれるコンピュータがネットワークで接続されている状態、あるいはネットワーク自体を指す。サーバコンピュータはプリンタを始めとしたハードウェア資源、アプリケーションソフトなどを集中管理している「親機」のようなもの。クライアントはサーバが管理している資源を利用するためのコンピュータで「子機」のようなものである。
client(クライアント)は元々、「広告代理店に広告を依頼した人。広告主」。なので、「顧客、依頼人、施主」などの意味がある。ここでは単にサービスの使用者(ただの端末にすぎない)なのに、サービスを享受する立場として、顧客に相当する英語が使われている。server(サーバ)は「survice(サービス)を行う者」。つまりサービスの提供者。関連する英語の、servant(サーバント)は「主人(master、マスタ)に使える下僕、召使、使用人」、である。つまりサーバはマスタに使われるイメージで、制御・支配する親器ではなく制御・支配される子器のように連想される。つまり、サーバよりクライアントの方が上位の(偉そうな)イメージがある。
「サーバ(親機)が管理している資源をクライアント(子機)は使う」、という説明は、実体として正しいが、元来のクライアント/サーバとは違う(誤解を招く)説明だと筆者は感じる。そもそも、サーバとクライアントというネーミングは、サーバがクライアントを管理しているというイメージがつきにくい。管理者と制御される側の関係を示す用語に、マスタ/スレーブがある。これは「マスタ(主人)とスレーブ(奴隷)」という意味なので、これまた極端なネーミングである。欧米のIT/ネットワーク用語であるクライアント/サーバは誤解を招くので不適切、マスタ/スレーブは下品なネーミング、と思うのは筆者だけであろうか。
一般には「クライアント/サーバ」で、サーバが先頭の「サーバ/クライアント」という表記はほとんどされない。サーバよりクライアントの方が重要であることを伺わせる。「サーバ」は「サーバー」という表記もあり、表現は不統一。
クライアントサーバ方式では、利用者が操作するクライアント(端末)からの要求に基づいて、サーバがデータの提供を行う。一方、ピアツーピア(P2P)方式では情報を一元管理するサーバが存在せず、ネットワークに接続している端末同士で直接データの検索や転送を行う。
.png)