■ クライアントとサーバ
「クライアント」も「サーバ」も良く聞く言葉だが、あいにくどちらもよく知らない、という人のためにそれぞれをまず解説しておこう。
クライアント(client):
一般的に、クライアントとは「お客」のことであり、TVドラマのビジネスシーンなどでは、よく「課長!クライアントと契約がとれました!」なーんてうそ臭いせりふを言っている(どうしてうそ臭いかというと、
現実にはクライアントなどといわずに「三友商事」とか「住井物産」とか言うからである)。単なるお客ではなく、ちゃんと契約している相手のことを言う「顧客」のほうが近いかも。
IT用語では、クライアントはサービスを受け取る側という意味。クライアントPCといえばユーザが操作している側のPCであるし、クライアント・ソフトといえばブラウザなんかのことである。
サーバ(server):
するとサーバはどうなるか。クライアントの逆である。サービスを提供する側、というわけだ。決してコーヒーが入っている入れ物のことではない。サーバとは、やはりコンピュータを指すこともあれば、ソフトウェアを指すこともある。
いちいち面倒なので「サーバ・マシン」とか「サーバ・ソフトウェア」とかいわないだけだ。文脈から判断するのである。
サーバ・ソフトウェアにはご存知webサーバ、FTPサーバのほかに、telnetサーバ、データベースサーバ、ゲームサーバなどいろいろある。
ハードウェアを指すときには、DBサーバ、ファイルサーバ、プリンタサーバ、などという風に、提供しているサービスを頭につけて言う。なので紛らわしいことになる。
ともかく、何らかのサービスをネットワーク越しに提供するソフトウェアを「サーバ(ソフトウェア)」、
サーバ・ソフトウェアが稼動しているマシンを「サーバ(マシン)」、
サーバ・マシン用に設計されたハードウェアを「サーバ(専用機)」というのである。全部サーバである!!
問題1:「きのう、ついにサーバ買っちゃったよ!」というときのサーバはどの意味でしょうか?
問題2:「サーバ・ダウンだって!?」というときは?
■ クライアント・サーバ
復習すると、「クライアント」はサービスを受け取る側、たとえばIEやFireFoxを指し、「サーバ」はサービスを提供する側、たとえばWebサーバのapacheを指す。
ところが、続けてクライアント・サーバというと、ネットワーク・アプリケーションのタイプ(クライアント・サーバ型)のことなのである。
今日ではネットワーク・アプリケーションといえばWebアプリケーションが主流だが、そうでないものはたいていが基本的にクライアント・サーバ型と思ってよい。
「特定のポートを使用し、特定の相手としかやりとりを行わない、特定の用途向けに作成されたネットワーク・アプリケーション」をいうのである。
要は、クライアント側とサーバ側のソフトがセットで作られたもの、と考えればよい。
Webアプリケーションのように、HTTPというプロトコルが公開されているオープンなネットワーキングとは趣を異にするわけだ。
例をあげると、非クライアント・サーバの代表格が「インターネット掲示板」。クライアント・サーバの代表格は「ネットゲームやIRC(チャット)」である。
どちらもインターネット経由で相手とおしゃべりできるが、両者を比べるとリアルタイム性と閉鎖性に差があることがわかる。クライアント・サーバ型のキーワードは同期である。
若葉塾にも「Java実践コース」があって、そこでは非クライアント・サーバ型、クライアント・サーバ型のいずれも対象とするプログラミングを扱う。
ちなみに、一時期はWebアプリケーション全盛期だったが、現在ではセキュリティや操作性の問題から、クライアント・サーバ型が見直されてきている。また両者を使い分けた複合型も増えてきた。
■ タブー
クライアント・サーバを略して「クラサバ」という人がいるが、良い子の皆さんは決して真似してはいけない。十分に意味を理解した者同士が時間の節約のためにそう使うのであって、
そうでない人間が使うのは恥ずかしい上に、元の意味がよくわからなくなる。(海外のカンファレンスに行って「クラサバ」というと恥をかく。)
また、C++を「シープラスプラス」と読まずに、「シープラプラ」と言うのも同様。
余談だが、プロがアマチュアであるユーザに向かって「クラサバ」と言うのも同じく恥ずかしいことなのでプロの方も気をつけていただきたい。
クライアント・サーバ
|