クライアントサーバーモデル
クライアントサーバーモデルは、サーバーが1台以上のクライアントにリソースやサービスを提供する仕組みを説明するものです。サーバーの例としては、Webサーバー、メールサーバー、ファイルサーバーなどがあります。これらのサーバーはそれぞれ、デスクトップコンピューター、ノートパソコン、タブレット、スマートフォンなどのクライアントデバイスにリソースを提供します。ほとんどのサーバーはクライアントと1対多の関係にあります。つまり、1台のサーバーが同時に複数のクライアントへリソースを提供できます。
クライアントがサーバーへの接続を要求すると、サーバーはその接続を受け入れるか拒否できます。接続が受け入れられると、サーバーは特定のプロトコルを使ってクライアントとの接続を確立し、維持します。たとえば、メールクライアントは、メッセージを送信するためにメールサーバーへのSMTP接続を要求することがあります。次に、メールサーバー上のSMTPアプリケーションが、メールアドレスやパスワードなどの認証情報をクライアントに要求します。これらの認証情報がメールサーバー上のアカウントと一致すると、サーバーはメールを目的の受信者に送信します。
オンラインマルチプレイヤーゲームでも、クライアントサーバーモデルが使われています。例として、World of Warcraft、StarCraft、Overwatchなどのオンラインゲームをホストする、BlizzardのBattle.netサービスがあります。プレーヤーがBlizzardのアプリケーションを開くと、ゲームクライアントは自動的にBattle.netサーバーに接続します。プレーヤーがBattle.netにログインすると、ほかに誰がオンラインかを確認したり、ほかのプレーヤーとチャットしたり、ほかのゲーマーと対戦したり協力して対戦したりできます。
インターネット上のサーバーは通常、一度に複数のクライアントへの接続を提供しますが、各物理マシンが処理できる通信量には限りがあります。そのため、人気のあるオンラインサービスでは、分散コンピューティングと呼ばれる技術を使って、クライアントを複数の物理サーバーに分散させます。ほとんどの場合、ユーザーがどの特定のマシンに接続しているかは重要ではありません。どのサーバーも同じサービスを提供するためです。
NOTE: クライアントサーバーモデルは、クライアント同士が直接接続するP2Pモデルと対比できます。P2P接続では、各マシンがクライアントとサーバーの両方として動作するため、中央サーバーは必要ありません。
知識をテストする