詳細はクライアントサーバモデルを参照
サーバ(情報提供者)とは、クライアント(情報利用者)と対で使用される名称である。
複数のコンピュータがネットワーク接続された環境、すなわちコンピュータネットワーク上で、各々のコンピュータが同じ内容の情報資源(データ)を参照したいことがある。このような場合、そのデータを各コンピュータにコピーしていては、記憶領域や保守などの面で多大な無駄が生じる。
クライアント・サーバ・モデルはこれを解決する手段で、特定のコンピュータ(サーバ)が情報やその処理作業を集中的に管理することで、ネットワーク全体での記憶領域を最小限にとどめると共に、共有される情報の同期等の手間を省き、情報伝達や保守の効率を高めるものである。他のコンピュータはクライアントとして稼動し、必要に応じてサーバからサービスを受けとる。
クライアント・サーバ・モデルは、コンピュータを単位としたものだけではなく、アプリケーションやプロセスを単位として捉えられることもある。
クライアント・サーバ・モデル/型/システム/コンピューティングなどとも言う。
ホスト・ターミナルシステムとクライアント・サーバシステムの違いについてはクライアントの項目を参照。
サーバには、クライアントに提供するサービスにより様々な種類があり、必要に応じてネットワーク上に複数のサーバを設置し組み合わせて使用する。例えばWebサービスとメールサービスのサーバアプリケーションを1台で同時に実行して、ウェブサーバとメールサーバを兼ねることもできるが、負荷や管理(ライセンス、セキュリティ、障害対策、起動停止運用)などの都合から1台ずつのサーバに分けて運用することもある。
また、同じサーバアプリケーションを複数台のサーバで実行しながら負荷を分散し、耐障害性を向上させることができる(スケールアウト)。
ウェブサーバなどで、アクセスが集中して負荷が増大することにより、処理が追いつかなくなって見かけ上サーバが機能を停止したようになる、いわゆる「飛ぶ」あるいは「クラッシュする」状態に陥ることがある。また「飛ぶ」まではいかなくても、極端に転送量が小さくなって、ウェブサイトのページを開くにもとても長い時間がかかることがある。
オンラインゲームなどでは膨大な量のデータやユーザーによるトラフィックのため、常にサーバはクラッシュの危機にさらされている。さらにイベント時期やパッチファイル配布のタイミングには天文学的な量のデータの転送があるため、特にクラッシュしやすい。このような事例を避けるため、有名なオンラインゲームでは多数のサーバを共通のソフトウエア構成にして運用し、1台当たりにかかる負荷を分散している。
現在の一般的なパソコン用OS(Windows XPやMacintoshなど)では、上記サーバ機能をOSの機能の一つとして持っているため、サーバ的な利用を行なうことが出来る。
サーバ用途として提供されているソフトウェアでは、個人が利用するソフトウェアと比べ下記のような特徴がある。
アカウントコントロール - 利用者と利用者ごとの権限の設定を行なうことが出来る。
同時アクセス - 単一の情報に対して、複数のユーザーが同時にアクセスすることを前提としている。
セキュリティー - 多数のユーザーに解放されるため、クライアント向け製品と比べ強固である。
安定性 - 電源を切ることなく連続で動き続けるために、安定度が高い。
主に開発元からサーバ用として発売・配布されているOSには下記のようなものがある
メインフレーム専用OS
z/OS
MSP/XSP
VOS3
ACOS
OS1100/MCP
UNIX
HP-UX
Solaris
AIX
Mac OS X Server、他
Linux
Red Hat Enterprise Linux、他
Windows
Windows Server、他
主に開発元からサーバ機能を提供するとして販売・配布されているソフトウェアには下記のようなものがある
データベースサーバ:データベース処理
トランザクションサーバ:トランザクション処理
アプリケーションサーバ:アプリケーション処理(特にJavaアプリケーションサーバ)
Webサーバ(HTTPサーバ):Webアプリケーション処理(Apacheなど)
メールサーバ:メールサービス(Sendmailなど)
FTPサーバ:ファイル転送
ファイルサーバ:ファイル共有
プリントサーバ:プリンタ共有
DNSサーバ、DHCPサーバ、プロキシーサーバ
これらソフトウェアは、1台のコンピュータに複数搭載する事もあり、またクライアント・コンピュータ内に搭載することもある(専用端末内の特定業務用データベース、家庭のPCでのプリントサーバ兼用など)。
コンピュータ(ハードウェア)としてのサーバには、大型サーバから小型まで多種多様の物が存在する。主にハードウェアで重視されるのは、耐障害性、処理能力、拡張性などであり、この点、低コスト重視の個人向けパソコンとは大きく異なる。
主な種類には以下がある。
Windowsサーバ(x86サーバ、IAサーバ)
UNIXサーバ(Linuxサーバ、Mac OS X)
メインフレームサーバ、ミッドレンジサーバ(後述のように「サーバ」とは呼ばない場合も多い)
専用機器(アプライアンスなど)
一般的には、これらサーバは以下の特徴がある。
多数のクライアントからの処理を確実に実行するため、高性能・高信頼性・高価格である
サーバ用OS(WindowsならばWindows Server)をメーカーが正式サポートしている
サーバに求められる高速・大容量の周辺機器(SANなど)をメーカーが正式サポートしている