SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

翔泳社 新刊紹介(AD)

やりたいことを実現するシステムをイメージできるように 『図解まるわかり サーバーのしくみ』第1章公開

  • X ポスト
  • このエントリーをはてなブックマークに追加

 サーバーの仕組みや役割を理解することは、システムを理解することに他なりません。翔泳社から発売した『図解まるわかり サーバーのしくみ』から、システムの司令塔として3つの形態を持つサーバーの仕組みを紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加
本記事は『図解まるわかり サーバーのしくみ』の「第1章 サーバーの基本~司令塔としての3つの形態~」からの抜粋です。掲載にあたり、一部を編集しています。

1-1 サーバーを理解することはシステムを理解すること

システムとサーバー

 社会ではさまざまなシステムが動いています。

 個人として利用するシステムでは、オンラインショッピングの注文システム、銀行やコンビニのATMシステム、Suicaなどの交通機関のシステムなどが身近な存在です(図1-1)。

図1-1 社会に存在するさまざまなシステム

 ビジネスという視点で見ると、企業や団体での業務システムが真っ先に頭に浮かぶでしょう。コンビニやスーパーのPOSシステム、工場の生産を管理するシステム、携帯電話の通話を管理するシステム、人工衛星を利用する科学技術のシステムなど、例を挙げるときりがありません。

 このような多様で規模も大小さまざまなシステムをひとくくりで理解するのは難しいことです。

 しかし、どのようなシステムも一定の規模の役割を果たすことを目的とするのであれば、必ずサーバーが存在します。

サーバーの役割

 大半のシステムは、外見であるハードウェアとしては、サーバーと配下のコンピュータ、そしてそれらをつなぐネットワーク機器で構成されています。サーバーはその中で中心的な役割を果たしています(図1-2)。

図1-2 サーバーの役割
※サーバーと配下のコンピュータの間にはルータやハブなどのネットワーク機器がある

 また、中身であるソフトウェアとしては、「何がしたいか、何をさせたいか」に応じたアプリケーションソフトが動いています。サーバーはアプリケーションソフトを動作させる主役でもあります。

 このようにサーバーはシステムの中で重要な役割を果たしています。サーバーからシステムを見ていくことで、さまざまなシステムを理解することが容易になるとともに、やりたいことを実現するシステムがイメージできるようになるでしょう。

1-2 サーバーはシステムの司令塔

司令塔としての存在

 前節でサーバーはシステムにおいて、ハードウェアとソフトウェアの両面から重要な役割を果たしていることを述べました。これをスポーツの世界でたとえるなら「司令塔」のような存在です。たくさんの選手が同時に動いているサッカーやラグビー、その他の競技では司令塔が誰であるかが必ず話題になります。状況を分析して選手に適切な指示をする、選手の疑問に答えるなど、サーバーはまさにそのような存在です(図1-3)。

図1-3 サーバーはスポーツにおける司令塔のような存在

 近年はAIの活用により、まだ一部ですが判断を要することもできるようになりつつあります。

 スポーツの世界と異なる部分があるとすれば、精神的な支柱ではないことです。あくまで技術的あるいはマネジメントの立場に徹しています。

サーバーの3つの利用形態

 サーバーには、次のように3つの利用形態があります(図1-4)。

図1-4 サーバーの3つの利用形態

クライアントからの要求に対応して処理を実行する形態
 サーバーに接続されているクライアントPCのような配下のコンピュータからの要求に対応して受動的に処理を実行します。

サーバーから能動的に処理を実行する形態
 サーバーが配下のコンピュータやデバイスに対して能動的に処理を実行します。

高い性能を活用した形態
 サーバー自体が高性能なハードウェアであることから、その特長を活かした処理を実行します。近年注目されている機能です。

 この後、それぞれの解説を進めていきますが、もちろん組み合わせて使われることもあります。

1-3 クライアントからの要求に対応して処理を実行する形態

サーバーの基本的な利用形態

 サーバーといえばクライアントからの要求に対応することが基本的な利用形態です。「クラサバ」、「クライアント・サーバー」などと呼ばれるときは、そうした役割を期待されています。システムとしては配下のクライアントPCなどからの要求に応える処理で、クライアントからサーバーに要求することに始まり、サーバーは要求された処理を受動的に実行します。

 特徴として次の3点が挙げられます(図1-5)。

図1-5 受動的な利用形態の特徴
  • サーバー1台に対してクライアントは複数台
  • サーバーとクライアントで共通のソフトウェアを利用することが多い(サーバー用、クライアント用に分けられる場合もある)
  • クライアントがサーバーに対して随時要求を上げてくる

受動的な利用形態の代表的な例

 受動的な利用形態の代表的な例として、次のようなものがあります(図1-6)。

図1-6 受動的な利用形態の代表的な例
  • ファイルサーバー
  • プリントサーバー
  • メールやWeb のサーバー
  • IoT サーバー(デバイスが随時データを上げてくる場合)

 これまで一般的にサーバーと呼ばれていたものは本節で解説しているクライアントからの要求に対応する形態に属していることがわかります。企業や団体における業務システムも大半はこの形態です。しかしながら、それだけではないというのが現代のサーバーやシステムの興味深いところです。続いてサーバーから能動的に処理を実行する形態について見ていきます。

1-4 サーバーから能動的に処理を実行する形態

配下のコンピュータやデバイスに対して能動的に処理を実行する形態

 クライアントからの要求に対する処理との明確な違いは、サーバーから処理を開始・実行することです。サーバーがクライアントPCや配下のコンピュータ、デバイスに対して命令する、処理を実行する形態です。

 特徴として次の3点が挙げられます(図1-7)。

図1-7 サーバーからの処理の特徴
  • サーバー1台に対してクライアントは複数台
  • 必ずしもサーバーとクライアントで共通のソフトウェアを利用するわけではない
  • サーバー側で処理のタイミングを定めて実行する

能動的な利用形態の代表的な例

 能動的な利用形態の代表的な例として、次のものがあります(図1-8)。

図1-8 能動的な利用形態の代表的な例
  • 運用監視サーバー
  • RPA サーバー
  • BPMS サーバー
  • IoT サーバー(IoT デバイスを呼び出す場合など)

 上記の例を見ると、一般になじみは薄いのですが、企業や団体のシステムや業務の運営において重要な役割を果たしているサーバーであることがわかります。

1-5 高い性能を活用した形態

高性能な処理の特徴

 前節まではサーバーと配下のコンピュータという構成で、処理を実行するのがクライアント起点か、サーバー起点かの違いがありました。

 ここで解説するのはこれまでとは異なる観点での処理です。

 詳しくは第2章で紹介しますが、サーバーはPCと異なり高い性能を有しています。PCが普通の自動車だとすると、サーバーは用途に応じて性能や規模を変えることができるので、F1、戦車、大型トラックなどにたとえることができます。これらの車両は、一般の自動車とは異なる次元の高い成果を上げることができます。

 特徴は、次の通りです(図1-9)。

図1-9 高性能な処理の特徴
  • サーバーとクライアントの構成とサーバー単体に近い構成もある
  • サーバー側で独自の処理を実行する
  • PCではできない高い性能が求められる

高い性能を活用した形態の代表的な例

 代表的な例として、次のようなものがあります。

  • AIサーバー
  • ビッグデータサーバー

 例を見ると、今後の拡大が期待できる分野であることがわかります。

 ここまでサーバーの利用形態を大きく3つに分けて紹介してきました。「クラサバ」というイメージに捉われて考えてしまうと、サーバーからの能動的な処理や高い性能を活用した利用形態が見えなくなってしまう可能性があることが理解できると思います。現在のサーバーの利用方法にはさまざまな可能性があることを意識しておいてください(図1-10)。

図1-10 サーバーのさまざまな形態

1-6 サーバーに接続する機器

クライアントにはさまざまな種類がある

 「サーバーに接続する機器は?」と質問されたら、多くの方はクライアントPCと答えるでしょう。以前からクライアント・サーバー、クラサバなどの呼び方があるくらいですから模範的な回答です。

 クライアントPCといっても、デスクトップPC、ノートブックPCなどさまざまにあります。以前はこの2つが代表選手でした。

 しかしながら、現在のリモート環境ということを意識すると、ノートブックPCに加えてタブレットなどもあります。さらに幅を広げるとスマートフォンなどもあり得ます(図1-11)。

図1-11 多様化するクライアント

 リモート環境で接続する場合には第5章で解説するIMAPサーバーなどが必要になりますが、このような環境を構築している企業や団体も増えています。

多様化するデバイス

 冒頭からサーバーと配下のコンピュータやデバイスという言い方をしてきました。

 これは上記のクライアントPCだけでなく、IoT機器などもサーバーに接続するデバイスに含めたいからです。

 例えば、図1-12のように、各種のカメラで取得した画像をサーバーで解析することもできます。

図1-12 IoT時代で多様化するデバイス

 ICタグ自体はデバイスというほどの機能はありませんが、ICタグの中のデータをサーバーに読み込ませて処理することも行われています。

 つまり、現在のシステムを考えるときにサーバーに接続できるデバイスは、PCやスマートフォン以外にもさまざまなものがあり多様化しているということです。

 例えば、ドローンやネットワークに接続できるロボットなどであってもいいのです。

瞬発系か持久系か?

アプリケーションの視点

 サーバーを考えるときに何をしたいか・させたいかが重要であることは冒頭でも説明しました。本節ではアプリケーションの視点で考えてみます。

 普段利用するシステムでは、次のように大きく2つに分けることができます。

入出力を重視するシステム
 入力したデータに対して処理結果を迅速に返すシステムです。

集計や分析を重視するシステム
 個別に入力されたデータの集計や分析を重視するシステムです。

 図1-13は、現実にはどちらかといえばいずれかを重視するということですが、大半のシステムは両者を兼ね備えています。

図1-13 入出力を重視するシステムと集計・分析を重視するシステム

瞬発力と持久力

 入出力を重視するシステムはレスポンスが重要ですから、早押しクイズのように瞬発力を重視するシステムです。集計・分析を重視するシステムは全体のデータの入力状況を見ながら処理を進めていくので、長時間にわたる入学試験のように持久力が要求されるシステムです(図1-14)。

図1-14 瞬発力が求められるタイプ、持久力が求められるタイプ

 いずれにしても処理を間違うことは許容されません。

 近年注目されているプロセスを重視するシステムは後者に位置づけられます。

 ここまでサーバーの3つの利用形態や接続する機器に関して述べてきました。それらに加えてサーバーの中身としてのアプリケーションの特性も想定することができれば、システムやサーバーの検討は確実に前に進みます。

1-8 システムをモデル化して整理する

モデル化の例

 これまで述べてきたことを整理してみます。

 図1-15のように各種のシステムに接続する機器とやりたいことをもとに整理してみます。最後の項目にはそれぞれのシステムの例におけるサーバーの利用形態を示しています。

図1-15 システムをモデル化して整理する

 例えば、サーバーがクライアントPCや各種のデバイスからデータを取得して更新するようなモデルであれば、使われるデバイスはさまざまです。仮に入出力を重視するシステムだとすると、瞬発力を発揮する高速なサーバーが必要と想定することができます。また、システムとしての物理的なイメージもわいてきます。

 このように軸を決めてモデル化できると、関係者でシステムやサーバーに関する期待や要求を具体的に確認できるとともに、求めていない機能も明確にできます。

1-6 モデル化での留意点

 何をしたいのか、どのような処理を求めているのかについて関係者間で共通認識を持つことが重要です。ここではわかりやすさのために接続する機器の種類や数量、さらにどのようなデータをやりとりするかから入って、入出力重視と集計・分析重視の2つにまとめています。

 あらためて、どのように使いたいか、どのようなシステムなのかというサーバーの中身のソフトウェア的な要求と、箱であるハードウェアとしてのサーバーはどのようなものが適切かをあわせて検討していくことが必要です(図1-16)。

図1-16 ソフトウェアとハードウェアの視点からの要求

 そのためには中身と外見、アプリケーションソフトとハードウェアの両面から考える必要があります。

1-9 基本的なシステム構成

基本的なシステム構成の例

 ここまででサーバーとシステムに関しての基本的なことは理解できたかと思います。ここではシステム構成例に関して見ておきます。

 最もシンプルな構成は、複数台のクライアントPCとサーバー1台で、企業や団体の部門の業務システムやファイルサーバーなどの例です。

 図1-17ではサーバーを上に配置して下にクライアントPCを置いています。両者の間にはネットワーク機器のルータやハブがあり、LAN環境で接続されています。よくあるケースとしては企業や団体の部・課・グループごとにハブが設置されます。

図1-17 基本的なシステム構成

 例えばハブのLANポート数が24なら、24人ごとにハブが必要ということになります。実際には1台のクライアントから複数のさまざまなサーバーに接続されています。

増えている無線LAN

 近年、個人宅でもWi-Fiを利用している方が増えているように、オフィスでの無線LANの活用も増えています。

 図1-17と図1-18を比べると、図1-18の構成の方が有線のLANケーブルの敷設をする必要がないことから、オフィスレイアウトや座席などの自由度が高いことがわかります。

図1-18 無線LANを活用した構成

サーバーは司令塔

 図1-17と図1-18を見ると、サーバーがシステムにおける司令塔であるということを再認識できると思います。

図解まるわかり サーバーのしくみ

Amazon SEshop その他


図解まるわかり サーバーのしくみ

著者:西村泰洋
発売日:2019年4月5日(金)
価格:1,814円(税込)

こんな方におすすめ!

・サーバー全体の概要を知りたい方
・サーバーのイメージがわかなくて困っている方
・サーバーに関わる技術と機器の役割を知りたい方
・現場の実態など、最新動向についても知りたい方

 

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
翔泳社 新刊紹介連載記事一覧

もっと読む

この記事の著者

渡部 拓也(ワタナベ タクヤ)

 翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11459 2019/04/12 07:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング