基本情報技術者単語帳 - システム構成要素

集中処理 【集中型システム】

コンピュータシステムの処理方式の一つで、データの処理を一台のコンピュータ(あるいは一か所の施設)で集中的に行う方式。

データの入出力などを行なう端末やコンピュータが様々な箇所に複数(規模によっては多数)配置されるが、そこではデータの処理は行わず、中央のコンピュータ(施設)にデータを運搬あるいは送信し、集中的に処理を実行する。

管理が容易でコスト効率が高く、セキュリティを確保しやすいが、システム全体の性能や容量が中央コンピュータのそれに制約されるほか、中央コンピュータに障害などが発生すると全体が停止するリスクがある。

一方、端末などに処理能力を持たせたり、複数の大型コンピュータや施設を設置するなどして、複数のコンピュータや施設で分散して並列に処理を行う方式を「分散処理」(decentralized processing)という。

分散処理 【分散システム】

コンピュータが行う処理や取り扱うデータなどを分割し、複数のコンピュータシステムに割り振ってそれぞれが独立に実行すること。HPCクラスタやグリッドコンピューティングなどの方式が含まれる。

複数の実行主体で矛盾なく処理を分担できるよう特別に設計されたソフトウェアを用い、処理やデータを細かい単位で複数のシステムに割り当てて同時並行に進める。単体では平凡な性能のコンピュータでも、多数を連携させて分散することにより全体としては巨大な演算性能を得ることができる。

一か所の施設などに同じ機種やOSで稼働するコンピュータを集め、ネットワークで接続して連携させたものを「クラスタシステム」あるいは「コンピュータクラスタ」と呼び(性能目的の場合は特にHPCクラスタと呼ばれる)、インターネットなどを通じて広域的に、あるいは様々な機種のコンピュータを束ねて処理を依頼する方式を「グリッドコンピューティング」(grid computing)という。

一方、一台のコンピュータに複数のマイクロプロセッサ(CPU/MPU)を搭載(あるいは一つのプロセッサに複数のプロセッサコアを内蔵)し、複数のプログラムやデータを同時に処理することは「マルチプロセッシング」(multiprocessing)あるいは「並列処理」(parallel processing/並列コンピューティング/parallel computing)という。

個々の処理やデータの関連性や相互依存性が強く、ノード間のデータ送受信や全体の調整・統合処理が頻繁に必要となる科学技術シミュレーションなどは並列処理が向いており、相互の関連性が低くノード間の緊密な連携が不要な暗号解読などの処理には分散処理が向いている。

バッチ処理 【一括処理】

複数のプログラムからなる作業において、あらかじめ一連の手順を登録しておき、まとめて連続的に実行する方式。または、一定期間や一定量ごとにデータをまとめて一括して処理する方式。

利用者は起動するプログラムやパラメータ、使用するデータファイルなどを指定したバッチジョブを作成し、システムのジョブスケジューラに起動日時や起動間隔などを登録する。システムは指定された日時や間隔に従ってジョブを起動し、指定されたプログラムを順番に実行する。

企業における受発注データの集計処理など、一定期間のデータを集めて処理する必要がある場合によく利用される。金融機関などでは利用者のいない夜間にコンピュータシステムでバッチ処理を行い、まとめて入出金・送金処理などを執行する場合もある。

“batch” は一束、一回分、ひとまとまりといった意味で、コンピュータが開発された初期の1950~60年代に、処理するプログラムやデータを記録した紙製の用具(パンチカードなど)をまとめてオペレータに渡し、集中的に処理したことが由来とされる。

一方、利用者が端末を操作して起動するプログラムを逐次入力していく処理方式をインタラクティブ処理(対話処理)あるいはリアルタイム処理(実時間処理)という。

リモートバッチ処理 (遠隔バッチ処理)

バッチ処理のうち、支店などで入力したデータを通信回線などを通じて遠隔地のホストコンピュータに送り、定期的にまとめて処理する方式をリモートバッチあるいは遠隔バッチなどという。

一定期間ごとにまとめてデータを処理するバッチ処理の方式の一つで、業務を遂行する現場にある端末やコンピュータから、本社や計算センターなどに設置したホストコンピュータにデータを送信し、バッチ処理を実施、送信元に処理結果を送り返す。

リアルタイム処理 【実時間処理】

データの処理要求が発生したときに、即座に処理を実行して結果を返す方式。コンピュータが利用者の指示や状況の変化に呼応してすぐに処理を実行する。

「即時」の意味合いはシステムの種類によって微妙に異なっており、業務システムなどではバッチ処理と対比して処理要求を受けたら即座にシステムに投入する(開始が実時間の)方式をリアルタイム処理というが、組み込みシステムなどでは処理ごとに設定された制限時間を超過しないよう制御する(終了が実時間の)方式をリアルタイム処理と呼ぶ。

業務システムなどのリアルタイム処理

企業の情報システムなどのデータ処理の方式の一つで、利用者の操作や外部からの処理要求などが届くと間を置かず即座に処理を実行する方式をリアルタイム処理という。

一定期間や一定量ごとにデータをまとめて一括して処理するバッチ処理と対比される方式で、システムの負荷の調整は難しいが利用者にとっては要求が即座に反映されるため利便性が高い。利用者の操作に基づいて行う場合を特に「インタラクティブ処理」(対話処理)という。

組み込みシステムなどのリアルタイム処理

機械の制御などを行うコンピュータシステムでは、処理を現実の世界に反映させるための終了期限が決まっている場合がある。例えば、自動車のブレーキアシストシステムが一回の障害物検知処理に何分もかけていたら、ブレーキ操作を行う前に障害物に激突してしまう。

このような場合に、反応を返すまでの遅延時間に許容範囲を設定して、それを超えないように命令の実行順序などを工夫する処理方式をリアルタイム処理という。一般的な汎用コンピュータ向けのオペレーティングシステム(OS)ではそのような処理は難しいため、専用に設計された「リアルタイムOS」(RTOS:real-time OS)が用いられる。

このうち、自動車のエアバッグ制御システムのように期限(デッドライン)までに処理が終了しないとシステム自体に致命的な問題が生じるものを「ハードリアルタイムシステム」(hard real-time system/immediate real-time system)という。

一方、座席予約システムのように遅延に応じて結果の価値が漸減するが致命的な結果は招かないものを「ソフトリアルタイムシステム」(soft real-time system)という。両者の中間で、期限を過ぎると処理の価値はゼロになるがシステム自体は致命的な影響を受けないものを「ファームリアルタイムシステム」(firm real-time system)と分類することもある。

並列処理 【パラレルプロセッシング】

コンピュータに複数の処理装置を内蔵し、複数の命令の流れを同時に実行すること。互いに独立した複数のプログラムを同時に実行でき、全体として性能向上が可能だが、前後関係や依存関係にあるプログラムは並列化できない。

一台のコンピュータに複数のCPU(マイクロプロセッサ/MPU)を搭載して並列に処理を行う方式を「マルチプロセッサ」(マルチプロセッシング)、一つのCPUの内部に複数の演算・制御回路(プロセッサコア)を設け、それぞれが独立に処理を実行する方式を「マルチコアプロセッサ」という。

また、個々の命令のほとんどは実行に際し限られた回路しか使用しないという性質を利用して、空いている回路で実行できる別の命令を同時に投入する同時マルチスレッディング(SMT: Simultaneous Multithreading)も、不完全ながら広義には並列処理の一種と考えることもできる。

複数の命令の流れを同時刻に独立に進めることができるため、単一の処理装置を用いる場合に比べ、最大で装置の数を乗じた処理性能(プロセッサ4基なら4倍)を発揮できる可能性がある。ただし、すべてのソフトウェアや処理内容が完全な並列化に対応できるわけではないため、最大性能を完全に発揮できる場面は限られる。

並行処理 (concurrent processing)

コンピュータの単一の処理装置を複数の命令の流れで共有し、同時に実行状態に置くこと。ある瞬間に実行される命令の流れは一つだが、巨視的には同時に複数の命令の流れが実行されているように見える。

処理装置の処理時間を極めて短い時間ごとに分割し、実行する命令の流れを次々に切り替えることにより、複数の命令の流れを同時に実行することができる。

複数の異なるプログラムを並行して進めることをマルチプロセス(マルチタスク)、一つのプログラム内で複数の命令の流れを並行して進めることをマルチスレッドという。

使用する処理装置は一つであるため、並列処理とは異なり、命令の流れを増やしたからといって全体の処理性能が向上することはない。むしろ、命令の流れを切り替える処理(コンテキストスイッチ)の分だけ性能は劣化してしまう。

クライアントサーバシステム 【CSS】

通信ネットワークを利用したコンピュータシステムの形態の一つで、機能や情報を提供する「サーバ」(server)と、利用者が操作する「クライアント」(client)をネットワークで結び、クライアントからの要求にサーバが応答する形で処理を進める方式。

サーバはシステムで利用されるデータを保存・管理したり、接続された周辺機器などのハードウェアを管理したり、何らかのデータ処理機能を有するコンピュータやその上で動作するソフトウェアで、これらの機能や情報などをネットワークを通じて外部に提供することができる。

クライアントはサーバから機能や情報の提供を受ける機器やソフトウェアで、利用者が手元で操作し、画面表示や入力の受付などを担当する。クライアントはネットワークを通じてサーバに様々な要求を送り、サーバがこれに応えて処理を行い、応答を返す。

狭義には、企業などの情報システムの実装形態の一つで、機能や情報を提供するサーバソフトウェアと、これに対応する専用のクライアントソフトウェアにより役割を分担して処理を進める方式のことをクライアントサーバ処理と呼ぶことがある。

この文脈では、クライアントとしてWebブラウザなど汎用の製品を用いる「Webアプリケーション」(Web系システム)などは区別・対比される。広義には(あるいは、原理的には)、Webもクライアント-サーバ型のモデルで実現されるシステムであるため注意が必要である。

他の方式との違い

1980年代頃から普及し始めたシステム形態で、それ以前はメインフレームなどの大型コンピュータ(ホスト)などに通信回線を通じて入出力端末(ターミナル)を接続し、ホストが集中的に処理を行う方式が一般的だった。

クライアントサーバ処理と比べると、ホストとサーバ、ターミナルとクライアントの役割はそれぞれ似ているが、ターミナルにコンピュータとしての機能がなく表示や操作に単純な方式しか利用できない一方、クライアントは独立した一台のコンピュータやデジタル機器であり、サーバから受信したデータを用いて複雑な処理や表示、操作などを利用者に提供することができる。

ちなみに、サーバとクライアントのように非対称に役割を分担するのではなく、対等な機能や立場のコンピュータやソフトウェアがネットワークを通じて相互に要求や応答を送り合って一つの機能を実現する形態もあり、「ピアツーピアシステム」(Peer to Peer system、P2Pシステム)などと呼ばれる。

トランザクション処理 【TP】

関連する複数の処理や操作を一つの処理単位にまとめて管理する方式。処理に矛盾が生じないよう、途中でいずれかが失敗したら実行開始前の状態に戻す操作が行われる。

複数の処理を連結した処理単位を「トランザクション」(transaction)という。関連付けられた複数の処理が「すべて成功」か「すべて失敗」のどちらかであることを保証し、途中で処理が停止・失敗した場合にはすでに完了済みの処理を取り消して、トランザクション開始前の状態に戻すようになっている。

例えば、資金の移動を情報システムで処理する場合、「出金処理は完了したが入金処理には失敗した」状態で処理を終了することは許されない。このような場合に、入出金処理全体を一つのトランザクションとしてまとめて管理し、いずれかの処理が失敗したら残りも取り消して、すべて成功したときに初めて全体を完了とする。

トランザクション処理に求められる4つの特性を「ACID特性」という。複数の処理が一体不可分であることを表す “Atomicity”(原子性)、処理の前後でデータの整合性が保たれることを表す “Consistency” (一貫性)、他の処理へ影響を与えず、また影響を受けないことを表す “Isolation” (独立性)、処理結果が失われず永続することを表す “Durability”(耐久性)の頭文字をつなぎ合わせたものである。

データベースシステムなどでトランザクション処理が必要な場合は、データベース管理システム(DBMS)の機能やTPモニタなどの専用のミドルウェアを用いて複数の処理の一体的な管理を行う。一連の処理全体が成功してデータの変更を反映させることを「コミット」(commit)、途中で中断や失敗が生じて開始前の状態に戻すことを「ロールバック」(rollback)という。

インタラクティブ 【対話型】

相互に作用する、対話的な、双方向の、相乗効果の、などの意味を持つ英単語。ITの分野では、情報の送り手と受け手の関係が固定的ではなく、その場で互いにやり取りできる状態を指す。

情報システムやソフトウェアでは、利用者の操作や入力に対してシステムが即座に反応を返し、相互にやり取りをする中で処理を進めていくような操作方式を対話型処理であるという。

メディアコンテンツでは、内容を利用者に一方的に与えるのではなく、利用者の働きかけにより刻々と内容が変化することを対話型処理であるという。

特に、(ビデオゲームのようにもともと対話型処理なものではなく)映像作品のように元来は内容が固定的で一方通行に提供されるものに対話的に変化する要素を取り込んだ場合に対話型処理という語が用いられることが多い。

冗長構成

情報システムなどの構成の一種で、設備や装置を複数用意し、一部が故障しても運用を継続できるようにしたもの。システムなどが持つそのような性質を「冗長性」、そのような構成法を「冗長化」という。

冗長構成としてよく用いられるのが同じ機能の機器や回線、システムなどを二系統用意する「二重化」で、片方が故障などで停止してももう一方で運用を継続し、その間に故障した系統の修理や交換などを行なって復旧させる方式である。

このうち、普段から両系統を併用して負荷分散を兼ね、片方が停止したら半分の能力で処理を続行する方式を「デュアルシステム」「アクティブ/アクティブ構成」などと呼び、普段は片方を使用してもう一方は待機させ、停止したら即座に切り替えて引き継ぐ方式を「デュプレックスシステム」「アクティブ/スタンバイ構成」などという。

冗長構成ではコストや設計上の制約などから必ずしもすべての要素を冗長化できるとは限らず、冗長化できなかった要素は停止すると系全体が停止する「単一障害点」(SPOF:Single Point Of Failure)となる。SPOFはシステムの「弱点」「急所」であり、最終的にどこにSPOFが残ったのかを把握しておく必要がある。

ロードバランシング 【負荷分散】

同種の複数の機器やシステムの間で、負荷がなるべく均等になるように処理を分散して割り当てること。そのような負荷の振り分けを行う機器やシステムを「ロードバランサ」(load balancer)という。

同等の機能を持つ2台以上の機器やシステムを用意し、それらの間で外部からの処理要求を振り分けることにより、全体として性能や容量、耐障害性の向上を図ることができる。コンピュータ内部のCPUやストレージなどについて行われることもあるが、単に負荷分散と言った場合はネットワーク上でサーバへの処理要求を分散する「サーバロードバランシング」を指すことが多い。

サーバロードバランシング (サーバ負荷分散/SLB:Server Load Balancing)

通信ネットワーク上で、外部からサーバへの処理要求やデータ送信要求を複数のサーバ機で分散して処理することを「サーバロードバランシング」(SLB:Server Load Balancing)あるいは「サーバ負荷分散」という。

同等の構成にしたサーバ機を複数(場合によっては多数)用意し、外部との接続部分にロードバランサを設置する。ロードバランサは外部からの接続要求を一定のルールに基いて各サーバ機に振り分け、処理を分散する。

要求の割り当て方にはいくつかの方式があり、各装置に順番に均等に割り当てる「ラウンドロビン」方式や、現在の接続(コネクション)数が最も少ないものを選択する「最小接続」(リーストコネクション)方式、最も早く反応した装置に割り当てる「最速応答時間」方式などがある。

また、インターネット上の国際的なサービスなどでは、クラウドサービスなどを利用してサーバ機を地理的に分散して配置し、クライアントから地理的に最も近いサーバを選んで接続させる「GSLB」(Global Server Load Balancing:広域負荷分散)といった方式が利用される場合もある。

通信プロトコルやアプリケーションによっては同じ利用者が一定の文脈(セッション)のもとで繰り返し要求を送信することがあり、その都度別のサーバに接続されると処理に矛盾が生じるため、同一セッション中は前回と同じサーバに割り当てるといった制御が必要になる場合もある。

デュアルシステム

機器やシステムの信頼性を高める手法の一つで、同じシステムを二系統用意して、常に両者で同じ処理を行う方式。処理結果を相互に照合・比較することにより高い信頼性を得ることができる。

まったく同じ構成のシステムを二系統用意して接続し、どちらも稼働状態に置く。外部からの処理依頼は両方に送られ、同時に処理を行い、結果を互いに照合してチェックする。

一方がトラブルやメンテナンスで停止した場合はもう一方で処理を続行し、復帰したら再び両者で同時に処理を行う体制に戻す。二系統用意して普段は一系統のみで運用する方式は「デュプレックスシステム」(duplex system)という。

デュプレックスシステム

機器やシステムの信頼性を高める手法の一つで、同じシステムを二系統用意して、普段は片方を稼働させ、もう片方は待機させておく方式。「アクティブ/スタンバイ構成」とも呼ばれる。

平常時に処理を行う系統を主系、本番系、アクティブ系などと呼び、主系がトラブルやメンテナンスで停止したときに肩代わりする系統を従系、待機系、予備系、スタンバイ系などという。

待機や切り替えの仕方により、ホットスタンバイ、ウォームスタンバイ、コールドスタンバイなどの種類がある。二系統用意してどちらも両方とも稼働させる方式は「デュアルシステム」(dual system)という。

クラスタ

(果物や花の)房、塊、群れ、集団などの意味を持つ英単語。同種のものがたくさん密集している様子を表す。

SNSのクラスタ

SNSなどのネットサービスやソーシャルメディアで、似たような属性(所属や趣味、政治信条など)や共通点を持った利用者同士が相互に繋がって形成された集団をクラスタということがある。

グループ機能のようなサービス上の機能などで明確に組織化されたものというよりも、友達関係や購読関係を通じて緩やかに連帯する一群の利用者という意味合いで用いられることが多い。

コンピュータクラスタ

企業の情報システムなどで、複数のコンピュータを連結・連携し、利用者や他のコンピュータに対して全体で一台のコンピュータであるかのように振舞うシステムを「コンピュータクラスタ」「クラスタシステム」と呼び、単にクラスタと略すことがある。そのようにコンピュータを束ねることを「クラスタリング」(clustering/クラスタ化)という。

クラスタ化されたコンピュータ群はまとめて一台のコンピュータを扱うように管理・運用することができ、いずれかが障害などで停止してもシステム全体が止まることはなく、処理を続行したまま修理や交換が行える。

ストレージのクラスタ

記憶装置の分野で、ハードディスクなどの円盤(ディスク)状の記録媒体をオペレーティングシステム(OS)が管理する際の最小の単位をクラスタということがある。

ディスク状の記憶媒体は、木の年輪のように同心円状の「トラック」に分割され、これをさらに放射状に等分した「セクタ」に分割される。

OSが媒体を管理する場合は、セクタ単位では小さすぎる(管理に必要な容量が多すぎる)ため、複数のセクタをまとめたクラスタ単位で管理することが多い。1クラスタを何セクタとするかは媒体やOSの種類によって様々である。

マルチプロセッサ 【マルチCPU】

一台のコンピュータシステムに複数のマイクロプロセッサ(CPU/MPU)を搭載すること。複数のプロセッサで異なるデータや命令を並列に処理することでシステム全体の処理能力を向上させることができる。

各プロセッサが対等な立場で処理を分担する方式を対称型マルチプロセッシング(SMP)、複数のプロセッサの間で役割分担や制御-非制御の関係などが存在し、対称な関係になっていないような方式を非対称型マルチプロセッシング(AMP/ASMP)という。

複数のプロセッサが同一の基板や筐体に収納され、電子回路のレベルで結合されたシステムを密結合マルチプロセッサ、複数のコンピュータを高速な通信路で結んで仮想的に一台のコンピュータのように振る舞わせるシステムを疎結合マルチプロセッサという。後者はクラスタシステムあるいはコンピュータクラスタと呼ばれる方が一般的である。

一つのマイクロプロセッサに複数のプロセッサコア(CPUコア)を搭載し、マルチプロセッサシステムと同じように並列処理が可能なプロセッサをマルチコアプロセッサ(multicore processor)という。

密結合マルチプロセッサ (TCMP:Tightly Coupled Multi-Processor)

マルチプロセッサシステムの構成法の一つで、複数のプロセッサがメインメモリを共有し、一つのOSによって制御されるものを密結合マルチプロセッサという。共有メモリと各プロセッサ固有のメモリの2階層になっている場合もある。一つのプロセッサパッケージに複数の独立したプロセッサコアが搭載されているマルチコアプロセッサは密結合マルチプロセッサの一種とみなされることがある。

疎結合マルチプロセッサ (LCMP:Loosely Coupled Multi-Processor)

マルチプロセッサシステムの構成法の一つで、複数のプロセッサがそれぞれメインメモリなどを持ち、別々のOSインスタンスによって動作するものを疎結合マルチプロセッサという。

ストレージ(外部記憶装置)など一部の装置を共用する場合もあるが、多くの場合、単体で完結して動作する独立したコンピュータを通信インターフェースを介して連携して動作させ、全体を一つのシステムとする構成が多い。このようなシステムはクラスタシステム(コンピュータクラスタ)とも呼ばれる。

ロードシェア 【ロードシェアリング】

情報システムや通信システムの構成法の一つで、同じ機材などを複数用意して、処理を振り分けて負荷を分散する方式。

業務用のコンピュータシステムや通信回線などで採用される構成法で、同じ構成の系を複数同時に使用して負荷を振り分けることにより、性能や容量を向上させることができ、一系統が停止しても性能を落として処理を継続することができる。

類似する概念に「ロードバランシング」(load balancing)があり、ほとんど区別せずほぼ同義として用いる場合もある。両者を区別する場合には、ロードバランシングが負荷の均等な分散を目的に動的に処理を振り分ける方式を指す一方、ロードシェアリングは負荷を対象ごとや種類ごとなどで静的・固定的に割り付け、負荷の均一化自体は特に目指さない構成を指すことが多い。

バックアップサイト

災害などで主要なITシステム拠点での業務の続行が不可能になった際に、緊急の代替拠点として使用する施設や設備のこと。または、Webサイトが停止した場合に備えて用意された、予備のWebサイト。

情報システムのバックアップサイト

企業などの情報システムで、普段使用している施設(データセンターなど)が何らかの理由で利用できなくなった場合に、代替として利用する施設をバックアップサイトという。「DRサイト」(ディザスタリカバリサイト)とほぼ同義である。

業務システムを設置・運用する拠点施設で、サーバコンピュータやソフトウェア、通信回線など、システム稼働に必要な一通りの資源が揃っている。広域的な自然災害などの際に通常使用しているメインサイトと同時に被災しないよう、ある程度地理的に離れた場所に用意するのが原則である。

メインサイトの機能を完全に代替でき、システムのすべての機能やサービスを提供できるサイトを構成する場合もあるが、高コストとなる。一般的には基幹業務の継続のために最低限必要な機能を維持することを目標に設備などを絞り込むことが多い。

Webサイトのバックアップサイト

Webサイトについてバックアップサイトという場合は、普段提供しているサイトがシステム障害やメンテナンスなどで一時的に停止した場合に代替となるサイトのことを指す。「ミラーサイト」(mirror site)とほぼ同義。

本サイトとは別の機材あるいは施設で運用し、掲載内容や提供するサービスは本サイトと同等になるよう随時複製が行われる。意図せずサービスが停止すると顧客に損害が生じることがある金融機関のネットサービスなどでよく提供される。

DRサイト 【Disaster Recovery site】

災害などで主要なITシステム拠点での業務の続行が不可能になった際に、緊急の代替拠点として使用する施設や設備のこと。

業務システムが稼働しているデータセンターや情報システム拠点の機能の一部または全部を肩代わりする能力を持った施設で、普段から緊急時に備えてデータのバックアップなどを行なう。自然災害などの際に主要拠点と同時に被災しないよう、物理的に遠方にある必要がある。

主要拠点の完全な複製であれば完全な代替システムを提供できるが、通常時には使用しない施設・設備に同等の投資をすることは難しいため、基幹業務を止めないために最低限必要な機能を短期間緊急に提供するのに必要な設備のみで構成されることが多い。

普段の待機状態や引き継ぎ方法によっていくつかの運用方式がある。「ホットサイト」(hot site)は本システムと同じシステムを稼働させて常にデータの同期などを行いながら待機し、障害時に即座に切り替えられるようにする。

「ウォームサイト」(warm site)は本サイトとほぼ同じシステムを導入して非稼動状態で待機させておき、障害発生後にシステムを起動して運用を引き継ぐ。「コールドサイト」(cold site)は代替用の施設や通信回線などインフラ部分だけを確保しておき、障害が発生してから必要な機材の搬入や設定作業などを行って運用を引き継ぐ。

本システム停止時に引き継ぎ、切り替え作業を最も速く実施できるのはホットサイトで、次いでウォームサイト、コールドサイトの順になるが、平常時の運用コストが嵩むのもこの順であり、システムの重要性やかけられるコストなどに応じて運用方式が選択される。

ホットサイト (hot site)

企業の情報システムのバックアップ施設などの運用方式の一つで、遠隔地に設けた施設に本運用とほぼ同じシステムを導入し、常時データ複製などを行いながら稼動状態で待機しておき、障害発生時に直ちに切り替えて運用を引き継ぐ方式。他の方式に比べ最も迅速に切り替え作業を完了できるが、設備などの設営や維持にかかるコストは最も高い。

ウォームサイト (warm site)

企業の情報システムのバックアップ施設などの運用方式の一つで、遠隔地に設けた施設に本運用とほぼ同じシステムを導入し、非稼働状態で待機しておき、障害発生後にシステムを起動して運用を引き継ぐ方式。ホットサイトとコールドサイトの中間的な方式で、引き継ぎにかかる時間やコストも両方式の中間程度となる。

コールドサイト (cold site)

企業の情報システムのバックアップ施設などの運用方式の一つで、遠隔地に建物や通信回線など最低限のインフラだけを確保しておき、障害が発生してから必要な機材の搬入や設定作業、バックアップデータの導入などを行なう方式。他の方式に比べ引き継ぎに時間が掛かるが、設備などの設営や維持にかかるコストは安く済む。

DRサイト 【Disaster Recovery site】

災害などで主要なITシステム拠点での業務の続行が不可能になった際に、緊急の代替拠点として使用する施設や設備のこと。

業務システムが稼働しているデータセンターや情報システム拠点の機能の一部または全部を肩代わりする能力を持った施設で、普段から緊急時に備えてデータのバックアップなどを行なう。自然災害などの際に主要拠点と同時に被災しないよう、物理的に遠方にある必要がある。

主要拠点の完全な複製であれば完全な代替システムを提供できるが、通常時には使用しない施設・設備に同等の投資をすることは難しいため、基幹業務を止めないために最低限必要な機能を短期間緊急に提供するのに必要な設備のみで構成されることが多い。

普段の待機状態や引き継ぎ方法によっていくつかの運用方式がある。「ホットサイト」(hot site)は本システムと同じシステムを稼働させて常にデータの同期などを行いながら待機し、障害時に即座に切り替えられるようにする。

「ウォームサイト」(warm site)は本サイトとほぼ同じシステムを導入して非稼動状態で待機させておき、障害発生後にシステムを起動して運用を引き継ぐ。「コールドサイト」(cold site)は代替用の施設や通信回線などインフラ部分だけを確保しておき、障害が発生してから必要な機材の搬入や設定作業などを行って運用を引き継ぐ。

本システム停止時に引き継ぎ、切り替え作業を最も速く実施できるのはホットサイトで、次いでウォームサイト、コールドサイトの順になるが、平常時の運用コストが嵩むのもこの順であり、システムの重要性やかけられるコストなどに応じて運用方式が選択される。

ホットサイト (hot site)

企業の情報システムのバックアップ施設などの運用方式の一つで、遠隔地に設けた施設に本運用とほぼ同じシステムを導入し、常時データ複製などを行いながら稼動状態で待機しておき、障害発生時に直ちに切り替えて運用を引き継ぐ方式。他の方式に比べ最も迅速に切り替え作業を完了できるが、設備などの設営や維持にかかるコストは最も高い。

ウォームサイト (warm site)

企業の情報システムのバックアップ施設などの運用方式の一つで、遠隔地に設けた施設に本運用とほぼ同じシステムを導入し、非稼働状態で待機しておき、障害発生後にシステムを起動して運用を引き継ぐ方式。ホットサイトとコールドサイトの中間的な方式で、引き継ぎにかかる時間やコストも両方式の中間程度となる。

コールドサイト (cold site)

企業の情報システムのバックアップ施設などの運用方式の一つで、遠隔地に建物や通信回線など最低限のインフラだけを確保しておき、障害が発生してから必要な機材の搬入や設定作業、バックアップデータの導入などを行なう方式。他の方式に比べ引き継ぎに時間が掛かるが、設備などの設営や維持にかかるコストは安く済む。

DRサイト 【Disaster Recovery site】

災害などで主要なITシステム拠点での業務の続行が不可能になった際に、緊急の代替拠点として使用する施設や設備のこと。

業務システムが稼働しているデータセンターや情報システム拠点の機能の一部または全部を肩代わりする能力を持った施設で、普段から緊急時に備えてデータのバックアップなどを行なう。自然災害などの際に主要拠点と同時に被災しないよう、物理的に遠方にある必要がある。

主要拠点の完全な複製であれば完全な代替システムを提供できるが、通常時には使用しない施設・設備に同等の投資をすることは難しいため、基幹業務を止めないために最低限必要な機能を短期間緊急に提供するのに必要な設備のみで構成されることが多い。

普段の待機状態や引き継ぎ方法によっていくつかの運用方式がある。「ホットサイト」(hot site)は本システムと同じシステムを稼働させて常にデータの同期などを行いながら待機し、障害時に即座に切り替えられるようにする。

「ウォームサイト」(warm site)は本サイトとほぼ同じシステムを導入して非稼動状態で待機させておき、障害発生後にシステムを起動して運用を引き継ぐ。「コールドサイト」(cold site)は代替用の施設や通信回線などインフラ部分だけを確保しておき、障害が発生してから必要な機材の搬入や設定作業などを行って運用を引き継ぐ。

本システム停止時に引き継ぎ、切り替え作業を最も速く実施できるのはホットサイトで、次いでウォームサイト、コールドサイトの順になるが、平常時の運用コストが嵩むのもこの順であり、システムの重要性やかけられるコストなどに応じて運用方式が選択される。

ホットサイト (hot site)

企業の情報システムのバックアップ施設などの運用方式の一つで、遠隔地に設けた施設に本運用とほぼ同じシステムを導入し、常時データ複製などを行いながら稼動状態で待機しておき、障害発生時に直ちに切り替えて運用を引き継ぐ方式。他の方式に比べ最も迅速に切り替え作業を完了できるが、設備などの設営や維持にかかるコストは最も高い。

ウォームサイト (warm site)

企業の情報システムのバックアップ施設などの運用方式の一つで、遠隔地に設けた施設に本運用とほぼ同じシステムを導入し、非稼働状態で待機しておき、障害発生後にシステムを起動して運用を引き継ぐ方式。ホットサイトとコールドサイトの中間的な方式で、引き継ぎにかかる時間やコストも両方式の中間程度となる。

コールドサイト (cold site)

企業の情報システムのバックアップ施設などの運用方式の一つで、遠隔地に建物や通信回線など最低限のインフラだけを確保しておき、障害が発生してから必要な機材の搬入や設定作業、バックアップデータの導入などを行なう方式。他の方式に比べ引き継ぎに時間が掛かるが、設備などの設営や維持にかかるコストは安く済む。

稼動系 【アクティブ系】

同じシステムを複数用意して耐障害性を高めたシステムで、通常時に稼動しているシステムのこと。すべてを主系とする運用と、一つを主系として残りを待機させる運用がある。

情報システムや通信回線では信頼性を高めるために、まったく同じように機能する複数の機材やシステムのセットを用意することがあり、これを「二重化」「冗長化」などという。

このうち、通常時に稼働している系統のことを「稼働系」「アクティブ系」「運用系」「現用系」「主系」などと呼ぶ。すべての系統を主系として運用し、負荷分散を兼ねる方式を「アクティブ/アクティブ構成」という。

一方、普段は一つの系統を主系とし、これがトラブルで停止したら待機していた残りの系統が処理を引き継ぐ方式は「アクティブ/スタンバイ構成」という。この場合、普段は運用されず待機状態になっている系統のことを「待機系」「スタンバイ系」「予備系」「副系」「従系」などという。

待機系 【スタンバイ系】

同じシステムを複数用意して耐障害性を高めたシステムで、通常時は使用されずに待機しており、障害発生時などに処理を引き継ぐシステムのこと。

情報システムや通信回線では信頼性を高めるために、まったく同じように機能する複数の機材やシステムのセットを用意することがあり、これを「二重化」「冗長化」などという。

このうち、通常時は一つの系統を用いてシステムを運用し、これがトラブルで停止すると残りの系統に交代して運用を継続する方式を「アクティブ/スタンバイ構成」という。通常時に稼働する側を「稼働系」「アクティブ系」「運用系」「現用系」「主系」、非常時に備え待機している側を「待機系」「スタンバイ系」「予備系」「副系」「従系」などという。

一方、普段からすべての系統を稼働させ、負荷分散も兼ねる方式は「アクティブ/アクティブ構成」という。この場合は従系は存在しない。

密結合

システムの構成要素間の結びつきや互いの依存関係、関連性などが強く、各々の独立性が低い状態のこと。逆に、要素間の結びつきが弱く独立性が高い状態のことは「疎結合」(loose coupling)という。

密結合な設計では各要素が互いに深く結びついており、一部分の変更が他の要素に影響を及ぼす度合いが大きい。要素間の連携や通信にかかる負荷が小さいため性能を高めたり必要な容量を削減したりしやすいが、互換性や拡張性、担当や責任の分担のしやすさ、不具合発生時の原因追及のしやすさなどの点では劣ることが多い。

マルチプロセッサ型コンピュータやネットワークシステムなどで機器間や装置間の関係性を表す概念として用いられるほか、プログラミングやソフトウェア開発では、設計・実装指針としてプログラム部品間の結合度をどの程度にするかが重要となる。

疎結合

システムの構成要素間の結びつきや互いの依存関係、関連性などが弱く、各々の独立性が高い状態のこと。逆に、要素間の結びつきが強く独立性が低い状態のことは「密結合」(tight coupling)という。

疎結合な設計では各要素が互いに深く結びついてはおらず、一部分の変更が他の要素に影響を及ぼす度合いが小さい。互換性や拡張性、担当や責任の分担のしやすさ、不具合発生時の原因追及のしやすさなどで優れるが、要素間の連携や通信にかかる負荷が大きく、性能や必要な容量などで不利になることがある。

マルチプロセッサ型コンピュータやネットワークシステムなどで機器間や装置間の関係性を表す概念として用いられるほか、プログラミングやソフトウェア開発では、設計・実装指針としてプログラム部品間の結合度をどの程度にするかが重要となる。

P2P 【Peer to Peer】

ネットワーク上で機器間が接続・通信する方式の一つで、機能に違いのない端末同士が対等な関係で直に接続し、互いの持つデータや機能を利用しあう方式。また、そのような方式を用いるシステムやソフトウェアなどのこと。

一般的なネットワークシステムでは、データや機能の提供側と利用側に役割が分割されたクライアントサーバ方式がよく用いられる。利用者が操作するクライアントからの要求に基づいてサーバがデータや機能を提供する形態で、実装や運用が容易なため広く普及している。

ピアツーピア方式はこれと対比され、クライアントやサーバといった役割の違いがなく、同等の機能が実装されたソフトウェア同士が接続を結び、互いにデータや機能を提供し合う。三台以上の端末が互いに通信する場合、これをP2Pネットワークという。

通信や処理が特定のサーバに集中するクライアントサーバ方式に比べ、拡張性(スケーラビリティ)や耐障害性が高く、低コストで運用できる。また、用途や実装方式によっては通信の匿名性を高める効果が期待できる場合もある。

ただし、一元的なデータや状態の記録や管理が必要な用途には向かず、性能の安定性や処理の確実性、データの真正性なども期待しにくい。適用可能な用途であってもシステムの実装は困難で、システム全体の制御や動作確認、セキュリティの確保なども容易ではない。

ピュアP2PとハイブリッドP2P

すべての端末の機能や役割が完全に同一な、本来の意味でのピアツーピアシステムのことを特に「ピュアP2P」(pure P2P)ということがある。同じソフトウェアを導入したコンピュータが複数集まれば利用できるため運用しやすいが、すべての情報が各端末に分散しているため通信効率は低い。

一方、一部の端末にデータの所在や端末の接続状態などの情報を集め、データや端末を効率的に探索・接続できるようにした方式を「ハイブリッドP2P」(hybrid P2P)という。ある種のサーバに情報を集中して通信効率を高めた方式で、運用のためには性能や回線容量の大きなサーバ用の端末を誰かが常に用意しなければならない。

歴史

2000年代初頭に、不特定多数の利用者がインターネット上でパソコン上のファイルを共有・交換できるピアツーピア方式のソフトウェアが多数登場し、ピアツーピアという用語及び概念が浸透した。そうしたファイル共有ソフトを指して「ピアツーピアソフト」と呼ぶこともあった。

電話のようにメッセージを交換する通信方式としても用いられ、一部のIP電話システムやメッセンジャーなどは利用者間の接続の仲介(呼び出し)を中央サーバが行い、メッセージの交換自体はピアツーピア方式で行うハイブリッドP2Pとして実装されている。

音声や動画などの大容量のデータを多数の利用者に効率よく配信する通信方式としても期待され、端末間でバケツリレー式にデータを運んでいく放送型の動画・音声配信サービスなども登場した。

2010年代になると、台帳などの記録情報を不特定多数の端末間で改ざん不可能な状態で交換・共有するブロックチェーン技術が発明され、仮想通貨(暗号通貨)の技術的な基盤としてピアツーピア方式が再び注目を集めるようになった。

グリッドコンピューティング

ネットワークを介して多数のコンピュータを連携させ、全体として高性能な並列システムとして利用する方式。特に、インターネットなどを通じて広域的に、あるいは様々な機種のコンピュータを束ねて処理を分散する方式のこと。

グリッドに参加するコンピュータは専用のクライアントソフトを稼働させ、グリッドを制御する中央システムのサーバと通信する。中央システムでは膨大な演算を要する巨大な問題を小さなタスクに分割し、各クライアントに配信する。多数のコンピュータが少しずつ処理を分担することにより、グリッド全体としては大規模な並列コンピュータのように振る舞う。

スーパーコンピュータやクラスタシステムなど集中設置型の並列システムと比べ、すでに使われているコンピュータの空いた計算時間を提供してもらうことで計算資源を確保できるため、一組織では実現の難しい超大規模な並列システムを構築できるが、提供者の事情や利用状況により資源量が不安定に変動する場合もある。

また、サーバとクライアント間、およびクライアント同士は低速な回線で低頻度にしか通信できない疎結合システムであり、緊密な連携はできないため、処理間に複雑な依存関係がある場合や頻繁に大量のデータを送受信するような課題には向かない。

処理やデータの間に関連性が薄く、多数の対象に同じ処理を繰り返し適用するような分野が適しており、暗号の解読や、タンパク質や化合物の構造解析、宇宙観測のデータ処理などで実用化されている。インターネットを通じて広く一般にボランティアとして参加を募る学術研究プロジェクトなども行われている。

仮想化 【バーチャライゼーション】

コンピュータを構成する様々な資源(CPU、メモリ、ストレージ、OSなど)を、物理的な構成とは独立に論理的な単位に編成し直すこと。複数の資源を統合して一つに見せかけたり、一つの資源を分割して複数に見せかけたりすることができる。

例えば、一つのCPUをハードウェア的な仮想化技術によって論理的に二つに分割することで、そのコンピュータ上で動作するOSやアプリケーションソフト、コンピュータを操作する利用者からは、あたかも二つのCPUが並列に動作しているように見える。また、複数台のストレージ装置をまとめて論理的に統合することで、利用者側からは大容量の大きな装置が一台存在するように扱うことができる。

CPU仮想化、ストレージ仮想化など、仮想化の対象によって様々な「○○仮想化」が存在するが、何らかの特定の資源についての仮想化を「リソース仮想化」、コンピュータ全体の仮想化(一台を複数台に見せかける)を「プラットフォーム仮想化」(サーバコンピュータの場合は「サーバ仮想化」)という。

単に仮想化といった場合はプラットフォーム仮想化を指すことが多い。「ハイパーバイザ型仮想化」「コンテナ型仮想化」「ホスト型仮想化」などいくつかの実装方式があり、性能や動作するOSの種類などに違いがある。近年ではシステム基盤としてクラウドサービスとコンテナ型仮想化を組み合わせる方式が広く普及している。

VM 【Virtual Machine】

コンピュータやCPU(マイクロプロセッサ)の機能を模倣し、まったく同じように振る舞うソフトウェア。また、そのようなソフトウェアによってコンピュータ内に構築された仮想的なコンピュータ。

仮想化技術におけるVM

仮想化技術におけるVMはコンピュータ全体の動作を模したソフトウェアで、その上でオペレーティングシステム(OS)を起動して制御することができる。OSやその上で動作するソフトウェアからはある特定の仕様を持つ物理的なコンピュータであるかのように見える。

VM上でソフトウェア環境を構築することにより、一台の物理的なコンピュータをあたかも複数台あるかのように分割し、それぞれを別の利用者が互いに影響を与えず独立に操作したり、それぞれ別のOSを動作させたりすることができる。また、ある機種向けのOSやソフトウェアを、その機種を模したVMを用意することで別の機種上で動作させることができる。

ただし、VMを動作させることによる処理能力の消費が大きく、物理的なコンピュータをそのまま使う場合よりも性能が大きく制約される。また、導入や運用には高度な知識や技能が必要なシステムが多く、構造が複雑なためトラブルが発生した場合に対処するのが難しい。

コンピュータのハードウェア資源を管理し、VMを実行するソフトウェアを「ハイパーバイザー」(hypervisor)という。通常はハードウェア上でOSが実行されるが、仮想化環境ではハードウェア上でハイパーバイザーが動作し、ハイパーバイザーが用意した個々のVM上でOSが実行される。

ソフトウェアの実行環境としてのVM

ソフトウェアの実行環境としてのVMは、ある仕様を持つCPUのように振る舞うソフトウェアで、そのプロセッサ向けのプログラムコードを読み込んで実行することができる。

VMに実装されているのは実際には存在しない架空のプロセッサの機械語(マシン語)の命令セットで、その架空の機械語で記述されたプログラムを読み込んで、自らが動作しているコンピュータのCPUが解釈できる実際の機械語プログラム(ネイティブコード)に変換して実行する。

この架空のプロセッサ向けのプログラムを「中間コード」という。命令語が1バイトで構成されるものを特に「バイトコード」と呼ぶ。プログラミング言語で記述されたソースコードは開発者側でコンパイラなどによって一旦中間コードのプログラムに変換されて利用者へ提供され、利用者側のVMで動的に実行可能コードに変換される。

このように中間コードとVMを介在させることにより、開発者側はプログラミング言語から中間コードへのコンパイラが提供されていれば、利用者の機種やOSごとに配布プログラムを用意する必要がなくなる。利用者側はその中間コードのVMが利用できれば、ソフトウェアが自分の機種やOS向けに個別に対応していなくても使用できるようになる。

この仕組みを利用する著名な例として、Java言語の実行環境である「Java仮想マシン」(Java VM)や、.NET共通仕様を満たす様々なプログラミング言語で対応プログラムを開発できる「.NET Framework」「.NET Core」などがある。

VDI 【Virtual Desktop Infrastructure】

企業などで、デスクトップ環境を仮想化してサーバ上に集約したもの。利用者はクライアント機からネットワークを通じてサーバ上の仮想マシンに接続し、デスクトップ画面を呼び出して操作する。

VDIではサーバコンピュータ上に社員数などに見合った多数の仮想マシンを用意し、それぞれにデスクトップOSと必要なアプリケーションソフトをインストールする。社員などがコンピュータを使うときは、個々人に配布されたパソコンや専用のシンクライアント端末などからネットワークを通じてサーバに接続し、自分のデスクトップ画面を呼び出して利用する。

従来のような各個人のパソコン自体にOSやソフトが入っている方式に比べ、サーバで集中管理することによりソフトウェアの追加や更新、修正などのメンテナンスが容易となる。物理的なコンピュータの実体とデスクトップ環境が切り離され、どのコンピュータからでも自分用の画面・環境を呼び出して使えるため、異動や出張、在宅勤務、フリーアドレス制などに柔軟に対応できる。

また、手元のコンピュータにデータやプログラムなどを保管しないため、USBストレージなどを通じたウイルス感染や情報漏えいを防ぎやすい。利用者の手元のマシンはキーボードやマウスの入力を受け付けてサーバに送信し、画面イメージを受信してディスプレイ装置に映すだけでよいため、パソコンより単純で安価な専用端末を導入できる場合もある。

SBC (Server-Based Computing:サーバベースコンピューティング)

企業の情報システムなどで、アプリケーションソフトをサーバコンピュータ上で実行し、利用者が使っているパソコンなどに画面を転送して利用する方式をSBCという。

これまでの一般的な情報システムでは、利用者に配布されたパソコンなどに個別にアプリケーションソフトが導入され、手元のパソコンでソフトを起動してデータを作成・保管していた。SBCではアプリケーションソフトやデータはすべてサーバで集中管理され、手元のパソコン(クライアントPC)はキーボードやマウスから操作・入力を受け付けてネットワークを通じてサーバに送り、サーバから画面情報を受け取ってディスプレイに表示するだけとなる。

ソフトウェアとデータはサーバ上で集中管理されるため、ソフトウェアの更新や、社員の配置転換・オフィスのレイアウト変更への対応、データの持ち出し・漏洩の防止、利用者間のデータの共有などは容易になるが、高性能なサーバコンピュータが必要であり、また、動画やグラフィックスを多用するようなソフトウェアには向かない。

クラウドコンピューティング 【クラウドシステム】

コンピュータの機能や処理能力、ソフトウェア、データなどをインターネットなどの通信ネットワークを通じてサービスとして呼び出して遠隔から利用すること。

「クラウド」(cloud)とは「雲」という意味で、IT業界ではシステム構成図などを描く際にネットワークの向こう側にある外部のコンピュータやシステムなどをまとめて雲の形の絵記号で記す慣例があることから、このように呼ばれるようになった。

従来のコンピュータ利用方式では、利用者が直接操作する端末や、同じ建物内にあるサーバなど、システム利用側が自ら保有、設置する機器上でソフトウェアやデータを管理していたが、クラウドコンピューティングではシステム本体は専門の管理施設に集約し、利用者はインターネット等の広域回線網を介してこれを使用する。

コンピュータや通信回線の性能が向上したことから実用的になった利用方式で、通常は機器を設置、運用する専門の事業者(クラウドプロバイダー)が契約者に機器やシステム、ソフトウェアの使用権を貸与するクラウドサービスの形で提供される。

インターネットから誰でも利用できるようなサービスやシステムを「パブリッククラウド」、大企業などが自社ネットワーク上で社員などが利用するために内部的に構築・運用するものを「プライベートクラウド」、両者を組み合わせたものを「ハイブリッドクラウド」という。クラウドと対比して従来型のシステムを指す場合は「オンプレミス」(on-premises)型という。

IaC 【Infrastructure as Code】

シラバス:Ver.9.0 (2023年)

コンピュータやソフトウェアの構成や設定に関する情報をプログラムコードとして記述し、専用のソフトウェアによって自動的に適用する手法。システム管理から手作業を減らして自動化、省力化を進め、安全性や安定性の向上にも資する。

情報システムを運用するためのコンピュータには、オペレーティングシステム(OS)やアプリケーションソフト、ミドルウェア、プログラミング言語の実行環境、追加で必要なプログラム部品(モジュール、コンポーネント)などを展開する必要があり、それらの導入や設定、構成の変更といった操作はコマンドラインツールなどを用いて管理者が手作業で行うことが多かった。

IaCでは構成管理ツールなどのソフトウェアを用いて、指定した作業を自動的に実施するようにすることができる。管理者は簡易なプログラミング言語(ドメイン固有言語)やマークアップ言語などを用いて設定ファイルにシステムの構成や設定などをコードとして記述すると、その内容に従ってツールが自動的にシステムの状態を変更してくれる。

作業内容をコード化することで実施内容が記録されるため、手作業の単純なミスを削減することができ、不具合が生じても後から検証しやすくなる。過去に実施した作業を参照したり、手順がいつどのように変更されたのかをバージョン管理することもできる。同じ環境を何台も用意しなければならない場合もツールが作業を自動的に実施してくれる。

ツールによってコードの書き方は異なるが、大きく分けると「宣言型」(declarative)と「命令型」(imperative)の2種類がある。命令型は「システムに行わせる手続き」をコードとして記述する方式で、従来管理者が打ち込んで実行していたコマンドを保存して自動実行するようなイメージである。宣言型は「システムがあるべき姿」を記述する方式で、どのような手続きでそれを実現するかはツール側で決定する。

IaCを実現するツールのうち、サーバの構成管理ツールとしてはオープンソースソフトウェアの「Chef」や「Puppet」「Ansible」などがよく用いられる。近年ではクラウドサービスの利用拡大に伴いクラウド環境でIaCを行うためのツールやサービスが注目されており、米ハシコープ(HashiCorp)社の「Terraform」、米アマゾンドットコム(Amazon.com)社の「Amazon Cloud Formation」などがよく知られる。

SaaS 【Software as a Service】

ソフトウェアをインターネットを通じて遠隔から利用者に提供する方式。利用者はWebブラウザなどの汎用クライアントソフトを用いて事業者の運用するサーバへアクセスし、ソフトウェアを操作・使用する。従来「ASPサービス」と呼ばれていたものとほぼ同じもの。

従来、ソフトウェアを使用するには利用者がパッケージなどを入手して手元のコンピュータにプログラムを複製、導入し、これを起動して操作する方式が一般的だった。SaaSではソフトウェアの中核部分は事業者の運用するサーバコンピュータ上で実行され、利用者はネットワークを通じてその機能を遠隔から利用する。

利用者側には表示・操作(ユーザーインターフェース)のために最低限必要な機能のみを実装した簡易なクライアントソフトが提供される。専用のクライアントを導入する場合もあるが、一般的には全体をWebアプリケーションとして設計し、利用者はWebブラウザを通じてWebページとして実装されたクライアントを都度ダウンロードして起動する形を取ることが多い。

SaaS方式のソフトウェア提供は2000年代中頃からSFA(営業支援システム)やグループウェアなど業務用ソフトウェアを中心に広まり始め、2010年代以降はERPなどの大規模システム、あるいはオフィスソフト、ゲーム、メッセージソフト(Webメールなど)といった個人向けを含む様々な種類のソフトウェアで一般的になっている。

利用者側の特徴

利用者はサービスへ登録・加入するだけで、ソフトウェアの入手や導入を行わなくてもすぐに使い始めることができる。データも原則としてサーバ側に保管されるため、ソフトウェアやデータの入ったコンピュータを持ち歩かなくても、移動先などで普段とは別の端末からログインして前回の作業の続きを行うことができる。

料金もパッケージソフトのように最初に一度だけ所定の金額を支払う「買い切り」型ではなく、契約期間に基づく月額課金や、何らかの使用実績に応じた従量課金が一般的となっている。登録や利用は原則無料で高度な機能や容量などに課金する方式や、広告を表示するなどして完全に無償で提供されるサービスもある。

ただし、利用のためにはインターネット環境が必須で、回線状況によっては操作に対する応答に時間がかかる場合もある。また、サービスを脱退したりサービスが終了してしまうとソフトウェアを使用できなくなり、サーバ側に保存したデータにもアクセスできなくなる。データについては特定の形式でまとめて利用者側にダウンロードできる機能が提供されている場合もある。

事業者側の特徴

提供者側から見ると、システムの中核部分はサーバ側で実行され、Webブラウザなどをクライアントとするため、機種やオペレーティングシステム(OS)ごとに個別にソフトウェアを開発・提供する場合に比べ様々な環境に対応しやすい。

また、サーバ側でソフトウェアを常に最新の状態に保つことができ、機能追加や不具合の修正などを利用者側へ迅速に反映できる。機能を細かく分けて利用者が自分に必要なものだけを選んで契約するといった柔軟な提供方式にも対応しやすい。

ただし、処理の多くをサーバ側で行う必要があるため、利用者数や利用頻度などに応じてサーバの台数や性能、データ保管容量などを適切に用意し、必要に応じて増強しなければならない。インターネットを通じてサービスを提供するため回線容量なども提供規模に応じて必要で、単にソフトウェアを販売するより事業者側の投資やコストは重くなりがちである。

PaaS/IaaSとの違い

インターネットを通じて様々な資源や機能をサービスとして遠隔の顧客へ提供する事業形態はSaaS以外にも存在し、総称して「XaaS」(X as a Service:サービスとしての○○)と呼ぶ。

このうち、導入・設定済みのOSやサーバソフト、言語処理系など、アプリケーション実行環境一式(プラットフォーム)をサービスとして遠隔から自由に利用できるようにしたものを「PaaS」(Platform as a Service:サービスとしてのプラットフォーム)という。

また、情報システムの稼動に必要な機材や回線などのIT基盤(インフラ)をサービスとして提供するものを「IaaS」(Infrastructure as a Service:サービスとしてのインフラ)という。これらは主に企業などの情報システム部門やネットサービス事業者などが自らのアプリケーションの実行環境として使用するために提供される。

PaaS 【Platform as a Service】

ソフトウェアの実行環境をインターネット上のサービスとして遠隔から利用できるようにしたもの。また、そのようなサービスや事業モデル。コンピュータシステムをOS導入済みの状態で貸与するものが一般的。

通常の場合、企業などで業務用システムなどを運用するには、コンピュータなどの機器にオペレーティングシステム(OS)、プログラミング言語処理系、ライブラリ、ミドルウェア、フレームワークなどを導入・設定し、実行環境を構築しなければならない。

PaaSは専門の事業者がデータセンターに設置したサーバにこのようなソフトウェア環境を構築したもので、これをインターネットを経由して契約者に貸し出して利用させる。顧客は実行したいアプリケーションを持ち込んで実行するだけですぐにシステムを運用でき、メンテナンスや障害対応なども事業者に任せることができる。

PaaSでは利用者が操作・設定可能なのはOSよりも上の階層であり、ハードウェアや仮想マシンの動作に直に介入することはできないが、逆に、これらの設定や運用などを自ら行う必要がなく、事業者側にすべて任せることができると捉えることもできる。

提供されるコンピュータは仮想化されており、利用者が必要に応じて性能などを指定することができる場合が多い。設備が固定されている自社運用(オンプレミス)とは異なり、突発的な負荷の増大に合わせて一時的に性能や容量を割り当てたり、負荷に応じて柔軟に性能の伸縮や契約の切り替えを行える点が大きな特徴である。

料金は契約期間に応じた月額基本料金にシステムの使用量(CPU実行時間や外部への送信データ量など)に応じた従量課金を加えた課金体系になっていることが多い。契約者は固定的に人員や設備を抱えることなく必要な分だけサービス料を支払って利用する形となる。

よく知られるPaaSとしては、米アマゾンドットコム(Amazon.com)がAmazon Web Services(AWS)の一部として提供している「Amazon Lambda」や「Elastic Beanstalk」などのサービス、米グーグル(Google)社がGoogle Cloud Platform(GCP)の一部として提供している「Google App Engine」(GAE)、米マイクロソフト(Microsoft)社がMicrosoft Azureの一部として提供している「Azure Cloud Services」、米セーフルフォース・ドットコム(Salesforce.com)社の「Force.com」や「Heroku」、などがよく知られる。

一方、仮想化されたハードウェア環境を遠隔からサービスとして操作・利用できるようにしたものを「IaaS」(Infrastructure as a Service)、具体的な特定のアプリケーションをインターネットを通じてサービスとして利用できるようにしたものを「SaaS」(Software as a Service)という。

IaaS 【Infrastructure as a Service】

情報システムの稼動に必要なコンピュータや通信回線などの基盤(インフラ)を、インターネット上のサービスとして遠隔から利用できるようにしたもの。また、そのようなサービスや事業モデル。

専門の事業者がデータセンター施設に設置・運用しているコンピュータやネットワーク環境などを契約者が借り受け、遠隔から操作して自分の必要なソフトウェアを組み込んで稼働させることができる。事業者のコンピュータなどを借り受けて使用するレンタルサーバやホスティングサービスは従来からあり、IaaSもその延長にあるが、より柔軟で包括的なサービスを指すことが多い。

IaaSの場合、一台単位で物理的に固定されたコンピュータ自体を貸し出すのではなく、物理コンピュータ上に仮想化技術で作り出された特定の仕様を持つ仮想サーバ(サーバインスタンス)を単位に契約が行われることが多い。これにより、メンテナンスや障害発生時などに速やかに別の機材に移転して稼働を続行したり、処理の負荷の増減に合わせて柔軟に資源の追加・削減(スケーリング)ができるといった利点がある。

料金は月額固定制の場合もあるが、基本料金に加えて一ヶ月の資源の使用量(外部へのデータ送信量など)の実績に応じた従量制を取るサービスが多い。企業などでシステムを運用する場合、自社内設置(オンプレミス)だと固定的に設備(その多くは税法上の資産)や人員を抱えることになるが、金額が同水準でもサービス料の形で支払う方が財務・会計の都合上好ましい場合も多い。

IaaSで提供されるのはコンピュータのハードウェア環境であるため、使用するオペレーティングシステム(OS)やミドルウェア、アプリケーションソフトなどは契約者側で用意して導入・設定する必要がある。OSなど特定の環境がある程度導入済みのコンピュータをサービスとして提供する形態は「PaaS」(Platform as a Service)という。

代表的なサービスとして、米アマゾンドットコム(Amazon.com)がAmazon Web Services(AWS)の一部として提供している「Amazon Elastic Compute Cloud」(Amazon EC2)や、米グーグル(Google)社がGoogle Cloud Platform(GCP)の一部として提供している「Google Compute Engine」(GCE)、米マイクロソフト(Microsoft)社がMicrosoft Azureの一部として提供している「Azure IaaS」などがよく知られる。

FaaS 【Function-as-a-Service】

クラウドサービスの一種で、クラウド事業者が運用するWebサーバ上に契約者用のスペースを作り、プログラムを配置するだけで即座に実行できるようにするもの。いわゆる「サーバーレス」型サービスの一つ。

PaaSやIaaSなどのクラウドサービスでは、ハードウェア環境やオペレーティングシステム(OS)環境までは事業者側が用意するが、Webサーバソフトウェアや各種ミドルウェア、プログラミング言語の実行環境などは契約者側で整備しなければならない。自由度は高いが初期設定の手間や運用の負担が大きい。

FaaSでは大規模なWebサーバを事業者側が既に運用しており、そこに契約者がプログラムを置いて実行できる場所を提供する。契約者は手続き後に指定された場所に自作のプログラムをアップロードするだけで、すぐにインターネット上にこれを公開し、運用することができる。

契約者側ではサーバ導入などの初期設定はほとんど不要で、サーバの運用やメンテナンス、各種ソフトウェアのアップデートなどの管理業務もすべて事業者側が行ってくれるため、契約者は自作のプログラムの開発に専念することができる。

性能や容量の割り当ても完全に動的に行われるため、利用がなければ費用もかからず、突然の利用増にも瞬時に自動で対応することができる。ただし、開発に用いるプログラミング言語やデータベース管理システムなどのミドルウェア、APIなどは原則として事業者側に用意されているものしか利用できないという制約がある。

このようなサーバの運用形態・利用形態は「サーバーレスコンピューティング」(serverless computing)と呼ばれ、FaaS以外にもモバイルアプリのサーバ側機能をまとめて提供する「BaaS」(Backend-as-a-Service)などがある。

FaaS型のクラウドサービスとしては米アマゾンドットコム(Amazon.com)社の「AWS Lambda」や米マイクロソフト(Microsoft)社の「Azure Functions」、米グーグル(Google)社の「Google Cloud Functions」など大手クラウド事業者のサービスがよく知られる。

サーバーレス 【サーバーレスアーキテクチャ】

シラバス:Ver.9.0 (2023年)

ネットワーク上で運用するソフトウェアやサービスについて、これを実行する専用のサーバを用意せず、クラウド事業者が運用する出来合いのサーバ環境の一部を間借りして運用する方式。“serverless”(サーバ無しの)という名前だが本当にサーバ自体が存在しないわけではない。

開発者がアプリケーションをネットワークに公開したい場合、通常は自前のサーバ設備を用意したり、サーバを貸与するホスティングサービスなどに申し込んで専用のソフトウェア実行環境の導入や初期設定を行い、アプリケーションを配備して実行を開始する。

一方、サーバレス方式の場合、クラウド事業者に利用を申し込む所までは同じだが、サーバ環境は事業者側で既に運用されており、アプリケーションを構成するプログラムなどを送信するだけで即座に実行を開始することができる。

初期設定や管理、運用などはすべて事業者側が行ってくれるため、契約者は自前のアプリケーション開発に集中することができる。利用料金も従量課金制の場合が多く、配備したプログラムが実行される度に、外部からのリクエスト回数やCPU実行時間などに単価を乗じた金額が請求される。

性能や容量の割り当ても完全に動的に行われるため、利用がなければ費用もかからず、突然の利用増にも瞬時に自動で対応することができる。ただし、開発に用いるプログラミング言語やミドルウェア、APIなどは原則として事業者側に用意されているものしか利用できないため、サーバをゼロから自前で構築する場合に比べて自由度は低い。

サーバレス方式のクラウドサービスには、開発したプログラムを関数単位で公開できる「FaaS」(Function-as-a-Service)と、アプリケーションが必要とする機能をAPIを通じて提供する「BaaS」(Backend-as-a-Service)がある。前者としては米アマゾンドットコム(Amazon.com)社の「AWS Lambda」や米マイクロソフト(Microsoft)社の「Azure Functions」、米グーグル(Google)社の「Google Cloud Functions」などが、後者としてはGoogle社の「Firebase」などがよく知られる。

エッジコンピューティング

ネットワークに多数の端末が接続されたシステムにおける処理形態の分類の一つで、端末自身あるいは端末に近い場所にあるサーバが情報の集約や処理などを行う方式。遠隔地のサーバで集中的に処理を行うクラウドコンピューティングと対比される。

主にIoTシステムの実装方式として注目される方式で、制御対象の機器やセンサーなどがネットワークを通じて近隣のサーバに情報を送信し、サーバは処理を行って結果や指示を機器に送り返す。

クラウド方式との違いはサーバの設置場所で、インターネットを通じて遠隔地のデータセンターに繋ぐのではなく、地理的、ネットワーク的に近い施設や設備でサーバを運用する。自動車やスマートフォン、ドローンなど末端が移動体であるシステムでは、端末自身に処理能力を持たせる場合も含まれる。

クラウド方式では端末の数が多い場合にインターネットを通過するトラフィック(通信量)が増加しコスト要因となるが、エッジコンピューティングでは局所的な通信のみで処理を完結させることができる。リアルタイム性が重視される用途では遠隔地との通信に伴う遅延(待ち時間)を抑えられることも利点となる。

一か所の施設や設備に処理を集中させると、そこがシステム障害や災害などで停止するとシステム全体が停止してしまう危険があるが、サーバが分散していれば影響を局所化することができる。サーバやネットワークを私的に敷設した設備の範囲に留めることができれば、インターネットやパブリッククラウドなどの公衆サービスを利用することによるセキュリティリスクも低減される。

マイグレーション 【マイグレ】

移行、移転、移住、移動、乗換などの意味を持つ英単語。ITの分野では、ソフトウェアやシステム、データなどを別の環境に移転したり、新しい環境に切り替えたりすることを意味することが多い。

情報システムのマイグレーション

既存のコンピュータシステムを構成する機器やオペレーティングシステム(OS)、アプリケーションソフトなど(のいずれかあるいはすべて)を、新しく用意した別の製品に入れ替えることをマイグレーションという。

ソフトウェアの部分的な修正や一部の装置の交換のような部分的な差し替えではなく、システムを全面的に刷新して新しい環境に置き換えることを指す。既存システムのどの部分を残すか(機種は同じ、OSは同じ、既存ソースコードを流用等)によって様々な手法が用いられる。

特に、旧式あるいは時代遅れ、サポート切れといった古いシステムから、現代的な新式の環境で新たにシステムを作り直して移転することを「レガシーマイグレーション」(legacy migration)という。

同じソフトウェアの旧版から新版に入れ替えることを一般的には「アップグレード」(upgrade)というが、新しい環境への移行という意味でこれをマイグレーションに含める場合もある。

データマイグレーション

異なる装置やソフトウェア、データ形式などの間でデータを移動することを「データマイグレーション」(data migration)という。

データの内容自体はそのままで、古い記憶媒体や装置から新しいものに移し替える場合と、異なるソフトウェアやデータ形式で扱えるよう変換して移転する場合がある。

仮想マシンのマイグレーション

コンピュータの仮想化で、物理コンピュータ上にソフトウェア的に構築された仮想マシン(VM:Virtual Machine)を別の物理コンピュータに移動することをマイグレーションという。

仮想マシンはオペレーティングシステム(OS)やアプリケーションソフトなどから見れば物理コンピュータと同じように振る舞うが、自身は物理コンピュータのメインメモリ上に展開されたソフトウェアであるため、ある瞬間の実行状態をデータとして別のコンピュータに伝送することで複製・移転することができる。

仮想マシン上で稼働しているソフトウェアを一時停止して移転後に再開する方式を「クイックマイグレーション」あるいは「コールドマイグレーション」、実行状態のまま一瞬で移転することを「ライブマイグレーション」あるいは「ホットマイグレーション」という。

ライブマイグレーション 【ホットマイグレーション】

あるコンピュータ上で動作している仮想マシン(VM)を、その上で稼働中のソフトウェアを実行状態に置いたまま丸ごと別のコンピュータに移動すること。ソフトウェアを停止せずにハードウェアのメンテナンスや入れ替え、構成の変更などに柔軟に対応することができる。

ライブマイグレーションを行なうと、ある物理コンピュータ上で動作している仮想マシン上のメモリイメージが丸ごと別のコンピュータ上の仮想マシンに移し替えられ、稼働中のOSやアプリケーションソフト、ネットワーク接続などを一切停止・切断させることなく新しいコンピュータ上で動作を継続することができる。

厳密には切り替えの瞬間に最短でミリ秒単位の瞬断が生じるが、外部とのコネクションのセッションなどは維持され、利用者や外部の別のシステムにとって移動に伴うサービスの中断が生じることはない。

ライブマイグレーションを行うには仮想マシンを構築・制御している仮想マシンモニタ(ハイパーバイザ)が対応している必要がある。また、一瞬で移動を行うには移転先を同一LAN内など近接した範囲に限定したり、ストレージを移転元と共有する必要があるなど一定の制約が生じる(長時間かけて遠隔地やストレージごと移動できるシステムも存在する)。

一方、稼働中のシステムを一旦停止して別の仮想マシンへ移動する方式は「クイックマイグレーション」(quick migration)あるいは「コールドマイグレーション」(cold migration)と呼ばれる。

ハイパフォーマンスコンピューティング 【HPC】

大規模で高性能なコンピュータシステムを用いて、膨大な数の計算を必要とする処理を行うこと。また、そのようなシステムを構成・運用するための理論や技術に関する研究分野。一般的にはスーパーコンピュータを利用した科学技術計算などを指すことが多い。

自然現象や人工物の振る舞いを再現・予測するシミュレーションや、化学物質やタンパク質、DNAなどの解析や探索、巨大なデータの分析など、科学技術、工業、ビジネスで必要となる非常に計算量の多い処理をコンピュータに行わせることを指す。

多数のマイクロプロセッサ(CPU/MPU)を動員して膨大な数の命令を同時に実行する並列処理によって高い性能を得る手法が一般的となっている。中でも単一のシステムで市販の業務用コンピュータの10万台、100万台分にも及ぶ巨大な計算能力を有するスーパーコンピュータ(supercomputer)を用いる方式が代表的だが、多数のコンピュータを連結して構成する、より小規模なHPCクラスタなどを用いる場合もある。

近年では、もともとコンピュータグラフィックス処理のために開発され、特定の計算処理についてワンチップで同時に数千を実行できるGPU(Graphics Processing Unit)を汎用的な計算用途に転用するGPGPU(General Purpose GPU/GPUコンピューティング)と呼ばれる安価な手法・システムが急激に普及している。

クライアントサーバシステム 【CSS】

通信ネットワークを利用したコンピュータシステムの形態の一つで、機能や情報を提供する「サーバ」(server)と、利用者が操作する「クライアント」(client)をネットワークで結び、クライアントからの要求にサーバが応答する形で処理を進める方式。

サーバはシステムで利用されるデータを保存・管理したり、接続された周辺機器などのハードウェアを管理したり、何らかのデータ処理機能を有するコンピュータやその上で動作するソフトウェアで、これらの機能や情報などをネットワークを通じて外部に提供することができる。

クライアントはサーバから機能や情報の提供を受ける機器やソフトウェアで、利用者が手元で操作し、画面表示や入力の受付などを担当する。クライアントはネットワークを通じてサーバに様々な要求を送り、サーバがこれに応えて処理を行い、応答を返す。

狭義には、企業などの情報システムの実装形態の一つで、機能や情報を提供するサーバソフトウェアと、これに対応する専用のクライアントソフトウェアにより役割を分担して処理を進める方式のことを2層クライアントサーバシステムと呼ぶことがある。

この文脈では、クライアントとしてWebブラウザなど汎用の製品を用いる「Webアプリケーション」(Web系システム)などは区別・対比される。広義には(あるいは、原理的には)、Webもクライアント-サーバ型のモデルで実現されるシステムであるため注意が必要である。

他の方式との違い

1980年代頃から普及し始めたシステム形態で、それ以前はメインフレームなどの大型コンピュータ(ホスト)などに通信回線を通じて入出力端末(ターミナル)を接続し、ホストが集中的に処理を行う方式が一般的だった。

2層クライアントサーバシステムと比べると、ホストとサーバ、ターミナルとクライアントの役割はそれぞれ似ているが、ターミナルにコンピュータとしての機能がなく表示や操作に単純な方式しか利用できない一方、クライアントは独立した一台のコンピュータやデジタル機器であり、サーバから受信したデータを用いて複雑な処理や表示、操作などを利用者に提供することができる。

ちなみに、サーバとクライアントのように非対称に役割を分担するのではなく、対等な機能や立場のコンピュータやソフトウェアがネットワークを通じて相互に要求や応答を送り合って一つの機能を実現する形態もあり、「ピアツーピアシステム」(Peer to Peer system、P2Pシステム)などと呼ばれる。

3階層システム 【3階層アーキテクチャ】

クライアントサーバシステムの構成法の一つで、ソフトウェアの機能をユーザーインターフェース、ビジネスロジック、データベースの3階層に分割して組み合わせる手法。

情報システムの機能を、利用者への表示や操作の受付を行うユーザーインターフェースを実装した「プレゼンテーション層」、業務に固有の具体的な処理や手順などを実装した「アプリケーション層」(ビジネスロジック層/ロジック層/ファンクション層/トランザクション層とも呼ばれる)、永続的なデータの記録や読み書きを実装した「データ層」(データベース層/データアクセス層)の3階層に分割してそれぞれ独立したソフトウェアとして開発する。

このような階層に分割して通信・連携方法を明確化しておくことにより、それぞれの階層に変更が生じても、修正したり入れ替えるのは当該階層のソフトウェアのみとすることができる。また、サーバ側のソフトウェアやコンピュータをアプリケーション層とデータ層で分離して独立に開発・運用することができる。特に規模の大きなシステムで開発効率や柔軟性を高めることができるとされる。

データベース 【DB】

複数の主体で共有、利用したり、用途に応じて加工や再利用がしやすいように、一定の形式で作成、管理されたデータの集合のこと。現代では専用の管理システムで構築・運用するデータの集合体を指すことが多い。

コンピュータ上でソフトウェアによって管理され、特定の構造や形式に従って同種のデータ群を蓄積したものを指すことが多い。「データベース」の語は文脈によって、実際に蓄積されたデータの集合体そのものを指す場合と、これを管理する「データベース管理システム」(DBMS:Dababase Management System)を指す場合、両者やデータを利用するアプリケーションソフトなどを含めたシステム全体を指す場合がある。

DBMSは管理者が設定した一定の形式や構造に従ってデータをストレージ装置などに記録・蓄積するシステムで、大量のデータを系統立てて保管することができる。必要に応じて検索、抽出、加工することができるため、企業の情報システムのデータ管理の中核として利用されることが多い。

リレーショナルデータベース

データベースにはデータをどのような構造や方式で格納、管理するかによって様々な種類がある。今日最も一般的に利用されるのは「リレーショナルデータベース」(RDB:Relational Database/関係データベース)と呼ばれるもので、一件のデータを複数の属性の値の組として表現し、組を列挙することでデータを格納していく。属性を列、組を行とする表(テーブル)の形で示されることが多い。

RDBの操作は「SQL」(Structured Query Language)と呼ばれる専用の問い合わせ言語で行われることが多い。命令語と操作対象、条件などを連ねてDBMSに指示を与える言語で、テーブルの作成や削除、テーブルへのデータの追加や上書き、削除、DBMS自体の設定の変更などの操作を行うことができる。

リレーショナルデータベースを管理するためのDBMSのことを「リレーショナルデータベース管理システム」(RDBMS)という。Microsoft AccessやFileMaker Proのようなデスクトップアプリケーションから、企業などの情報システムで専門の技術者が運用するOracle DatabaseやMicrosoft SQL Server、MySQL、PostgreSQLなどのサーバアプリケーションまで様々な規模、機能の製品がある。

ストアドプロシージャ 【ストアードプロシージャ】

データベース管理システム(DBMS)の機能の一つで、データベースに対する連続した複数の処理を一つのプログラムにまとめ、データと共に保存できるようにしたもの。処理はDBMS側で行われ、外部からはクエリを発行するのと同じ手順で実行できる。

SQL文や専用の言語を組み合わせて処理手順を記述しDBMSに保存すると、すぐに実行可能な形式に変換されて外部から呼び出し可能な状態になる。複数のSQL文を組み合わせた複雑な処理を記述でき、一度の呼び出しでまとめて実行することができる。条件分岐やループなどの制御構文、変数、例外処理など一般のコンピュータプログラムと変わらない高度な機能を利用できる場合もある。

外部のプログラムからSQL文を発行してデータを受け取り処理する場合に比べ、すでにSQL文の構文解析などが済んだ状態で保存されているため高速に実行することができ、また、DBMSから呼び出し側へSQL文の実行結果を受け渡すのにかかる時間や帯域幅も節約できる。

また、ストアドプロシージャの保存も実行もDBMS自体の機能であるため、呼び出し側のシステムやプログラミング言語などの種類や環境に依らず同じように利用できる。SQLによる操作をストアドプロシージャ側にまとめることで、呼び出し側プログラムのソースコードからSQL文を排除して読みやすさや保守性を向上させることも可能である。

処理の記述に用いられる言語は、SQLの標準規格であるSQL99から定義された「SQL/PSM」(Persistent Stored Module)という標準が一応は存在するが、Oracle Databaseの「PL/SQL」やMicrosoft SQL Serverの「Transact-SQL」など各DBMS独自の言語を用いるのが一般的で、互換性は低いのが現状である。

また、汎用のプログラミング言語に比べ機能や拡張性、開発ツールなどの環境は劣るため、過度に処理内容をストアドプロシージャ側に寄せようとすることで却ってシステム全体の生産性や保守性を下げてしまう場合もある。

ストアドファンクション (stored function)

データベースに対する連続した複数の処理を関数(function)の形でまとめ、必要に応じて呼び出せるようにしたものを「ストアドファンクション」という。基本的な仕組みはストアドプロシージャと同じで、SQL文やプログラミング言語を組み合わせて処理を記述し、一括して実行できるようデータベース内に保存しておく。

ストアドプロシージャとの違いは呼び出し側への返り値の有無で、ストアドファンクションは関数であるため実行結果を何らかの値として返却する。利用できる機能などに違いは無いことが多いが、入力値の変換や判定などに用いられることが多く、UPDATE文やDELETE文などでデータベースの内容を変更する操作は行わないことが多い。

3階層システム 【3階層アーキテクチャ】

クライアントサーバシステムの構成法の一つで、ソフトウェアの機能をユーザーインターフェース、ビジネスロジック、データベースの3階層に分割して組み合わせる手法。

情報システムの機能を、利用者への表示や操作の受付を行うユーザーインターフェースを実装した「プレゼンテーション層」、業務に固有の具体的な処理や手順などを実装した「アプリケーション層」(ビジネスロジック層/ロジック層/ファンクション層/トランザクション層とも呼ばれる)、永続的なデータの記録や読み書きを実装した「データ層」(データベース層/データアクセス層)の3階層に分割してそれぞれ独立したソフトウェアとして開発する。

このような階層に分割して通信・連携方法を明確化しておくことにより、それぞれの階層に変更が生じても、修正したり入れ替えるのは当該階層のソフトウェアのみとすることができる。また、サーバ側のソフトウェアやコンピュータをアプリケーション層とデータ層で分離して独立に開発・運用することができる。特に規模の大きなシステムで開発効率や柔軟性を高めることができるとされる。

3階層システム 【3階層アーキテクチャ】

クライアントサーバシステムの構成法の一つで、ソフトウェアの機能をユーザーインターフェース、ビジネスロジック、データベースの3階層に分割して組み合わせる手法。

情報システムの機能を、利用者への表示や操作の受付を行うユーザーインターフェースを実装した「プレゼンテーション層」、業務に固有の具体的な処理や手順などを実装した「アプリケーション層」(ビジネスロジック層/ロジック層/ファンクション層/トランザクション層とも呼ばれる)、永続的なデータの記録や読み書きを実装した「データ層」(データベース層/データアクセス層)の3階層に分割してそれぞれ独立したソフトウェアとして開発する。

このような階層に分割して通信・連携方法を明確化しておくことにより、それぞれの階層に変更が生じても、修正したり入れ替えるのは当該階層のソフトウェアのみとすることができる。また、サーバ側のソフトウェアやコンピュータをアプリケーション層とデータ層で分離して独立に開発・運用することができる。特に規模の大きなシステムで開発効率や柔軟性を高めることができるとされる。

3階層システム 【3階層アーキテクチャ】

クライアントサーバシステムの構成法の一つで、ソフトウェアの機能をユーザーインターフェース、ビジネスロジック、データベースの3階層に分割して組み合わせる手法。

情報システムの機能を、利用者への表示や操作の受付を行うユーザーインターフェースを実装した「プレゼンテーション層」、業務に固有の具体的な処理や手順などを実装した「アプリケーション層」(ビジネスロジック層/ロジック層/ファンクション層/トランザクション層とも呼ばれる)、永続的なデータの記録や読み書きを実装した「データ層」(データベース層/データアクセス層)の3階層に分割してそれぞれ独立したソフトウェアとして開発する。

このような階層に分割して通信・連携方法を明確化しておくことにより、それぞれの階層に変更が生じても、修正したり入れ替えるのは当該階層のソフトウェアのみとすることができる。また、サーバ側のソフトウェアやコンピュータをアプリケーション層とデータ層で分離して独立に開発・運用することができる。特に規模の大きなシステムで開発効率や柔軟性を高めることができるとされる。

クライアント

顧客、依頼人、得意先、施主などの意味を持つ英単語。ITの分野では、他のコンピュータやソフトウェアから機能や情報の提供を受けるコンピュータやソフトウェアのことをクライアントという。

コンピュータシステムの構成のうち、機能や情報を提供する側である「サーバ」(server)と、機能や情報の提供を受けて利用する側である「クライアント」(client)に役割を分けた方式を「クライアントサーバシステム」(client-server model)という。

クライアントはサーバの機能や情報の提供を受け、自らは利用者への情報の提示や入力・操作の受け付けなどを担当することが多い。クライアントがサーバに処理要求(リクエスト)を送り、サーバがこれに応じて処理を行い、結果を返答(レスポンス)する、という形で一連の処理が進められる。

コンピュータ(ハードウェア)のことを明示的に指し示す場合は「クライアントコンピュータ」「クライアントマシン」「クライアント機」などと呼ばれ、ソフトウェアのことを指す場合は「クライアントソフト」「クライアントソフトウェア」「クライアントプログラム」などと呼ばれる。また、「メールクライアント」「DHCPクライアント」のように、システムや通信方式などの種類を冠して「○○クライアント」と称することも多い。

ファットクライアントとシンクライアント

企業の情報システムなどのクライアントコンピュータのうち、パソコンなど単体でも利用される汎用コンピュータを流用したものを「ファットクライアント」(fat client)、独立したコンピュータとしては機能せず、サーバへ接続して利用することに特化した特殊なクライアント専用機を「シンクライアント」(thin client)という。

シンクライアントは企業などで多数のクライアントが必要な場合に、管理コスト低減やセキュリティ向上のために導入される。自らはデータの処理・保存などの能力をほとんどまったく持たず、通信・入出力機能のみの構成としたものは「ゼロクライアント」(zero client)と呼ばれることもある。

ターミナルとの違い

大型コンピュータ(メインフレーム)などの分野では、コンピュータ本体など集中的に処理を行う機械を「ホスト」(host)、利用者が操作する端末装置を「ターミナル」(terminal)と呼ぶことがある。

これらはサーバとクライアントの役割分担に似ているが、ターミナルにはコンピュータとしての機能が(ほとんど)なく本質的には入出力装置のセットに過ぎない一方、クライアントは独立した一台のコンピュータとして、サーバから受信したデータを用いて複雑な処理や表示、操作などを利用者に提供することができる。

サーバ 【サーバー】

コンピュータネットワークにおいて、他のコンピュータに対し、自身の持っている機能やサービス、データなどを提供するコンピュータのこと。また、そのような機能を持ったソフトウェア。

コンピュータ(ハードウェア)のことを明示的に指し示す場合は「サーバコンピュータ」「サーバマシン」「サーバ機」などと呼ばれ、ソフトウェアのことを指す場合は「サーバソフト」「サーバソフトウェア」「サーバプログラム」などと呼ばれる。「SV」「srv」「srv」などの略号で示されることもある。

一方、ネットワークを通じてサーバにアクセスし、その機能やサービス、データなどを受信したり利用したりするコンピュータやソフトウェアは「クライアント」(client)と呼ばれる。WebサーバにアクセスするためのWebブラウザなどが該当する。サーバとクライアントを組み合わせて構成するシステム「クライアントサーバシステム」という。

いわゆる大型汎用機(メインフレーム)などの分野では、実際の処理を担うコンピュータ本体や内部で動作するソフトウェアを「ホスト」(host)、ホストへ接続してデータ入力や画面出力を行なう装置やソフトウェアを「ターミナル」(terminal)と呼ぶ。

一般の外来語としては「ウォーターサーバー」のように末尾に長音記号「ー」を付す表記・発音が一般的だが、ITの分野では歴史的に3音以上の末尾にある “-r” 音の長音記号を省略する慣例があり、「サーバ」と表記することが多い。近年では一般的な表記にならって「サーバー」と表記する例も増えている。

サーバの種類

通常、個々のサーバ機やサーバソフトは外部に提供する機能やサービス、対応しているデータ形式やプロトコル(通信規約)が決まっており、「データベースサーバ」「Webサーバ」「ファイルサーバ」のように、提供する機能などの種類を冠して「○○サーバ」と呼ぶ。

サーバコンピュータは多数のクライアントからの処理要求に応えるため、内部の装置に高性能・大容量のものを搭載することが多い。タワー型サーバなどパソコンと同じような形態の機種と、ブレードサーバやラックマウントサーバなどサーバ専用の形態で提供される製品がある。

企業などの情報システムでサーバをクライアントと同じ建物に設置して自社運用する方式を「オンプレミス」(on-premise)という。一方、専門の事業者が運用するデータセンターに設置されたサーバを間借りしてインターネットや専用回線を通じて利用する方式を「クラウド」(cloud)という。

シンクライアント 【シンクラ】

企業や官庁などの情報システムで、利用者が操作するコンピュータ(クライアント)に最低限の機能しか持たせず、サーバコンピュータが集中的にソフトウェアやデータなどの資源を管理する方式。また、そのような機能を絞った低価格のクライアント専用機器。

オフィスにパソコンが普及し業務に使われるようになったが、一般的なパソコン製品は一台ごとに独立にアプリケーションソフトやストレージを持つため、ソフトウェアの導入や更新、ファイルなどのデータの共有や管理などが煩雑で、従業員の数だけフル機能の(高価な)コンピュータを用意しなければならないという難点があった。

そこで、ソフトウェアやデータの管理は構内ネットワーク(LAN)上のサーバで集中的に行い、各従業員にはサーバに接続して操作するための最低限の機能のみを持った低価格の専用端末を配備するという手法が提唱された。このような手法や、そのために用いられる単体では機能しない操作用コンピュータをシンクライアントシステムと呼ぶ。

シンクライアントシステム端末は画面やキーボード、マウスなどの入出力装置・機能と、イーサネット(Ethernet)やWi-Fiなどのネットワーク・通信機能、シンプルなオペレーティングシステム(OS)などで構成される。アプリケーションの追加やシステム構成の変更はできないようになっていることが多い。

起動すると利用者の識別や認証を行い、リモートデスクトップ(仮想デスクトップ)などを用いてサーバ上に展開されたその利用者用の操作画面を呼び出してサーバ内のソフトウェアやデータを使用することができる。パソコンのように単体で起動してもできることはほとんど(あるいはまったく)ない。

一般的なシンクライアントシステム製品はCPUや小容量のローカルストレージ、その中に記録された機能制限版のパソコン向けOSなどを備え、低価格パソコンのような構成となっていることが多いが、情報の処理・保存機能を一切持たず、表示・操作・通信の機能のみを持ったものものあり、「ゼロクライアント」(zero client)と呼ばれる。

RPC 【Remote Procedure Call】

あるコンピュータで動作するソフトウェアから、通信回線やコンピュータネットワークを通じて別のコンピュータ上で動作するソフトウェアへ処理を依頼したり、結果を返したりするための規約。

プログラム中の手続きや関数、メソッドなどを呼び出すのと同じ手順でネットワーク越しに別のコンピュータ上のプログラムを呼び出す手法であり、プログラマがネットワークによる通信手順の詳細な実装をする必要はない。

RPC仕様では呼び出し側、手続き側の双方がRPCによる呼び出しに対応するためのAPIと、ネットワーク上で呼び出し要求メッセージや応答メッセージを送受信するための通信規約(RPCプロトコル)を定めている。同じRPC仕様に準拠した仕組みを採用していれば、機種やOS、プログラミング言語などが異なっていても共通の手順で呼び出すことができる。

RPCの種類

RPCには互いに互換性の無い様々な規格や実装があり、それらの総称を指すが、文脈によっては個別の具体的な規格を指すことがある。

例えば、UNIX系OSでRPCという場合は、1980年代前半に当時の米サン・マイクロシステムズ(Sun Microsystems)社が考案し各種のUNIX系OSに広まったONC RPC(Open Network Computing RPC)のことを指すことが多い。また、Windows環境では開発元の米マイクロソフト(Microsoft)社がDCE/RPCを元に拡張したMicrosoft RPC(MSRPC)のことを指す場合がある。

Web/HTTP通信の仕組みをRPCに応用した規格もあり、メッセージをXMLで記述するXML-RPCやJSONで記述するJSON-RPCなどがある。

Webシステム 【ウェブシステム】

情報システムのWeb技術を用いて実装したもの。WebサーバやWebブラウザ、HTTP、HTML、JavaScriptなどのWeb技術を組み合わせてシステムを構成する。

クライアントサーバ方式の一種で、Webサーバがデータの保存や処理を行い、利用者がWebクライアント(通常はWebブラウザ)でサーバにアクセスし、データの閲覧や操作を行う。データはサーバ側で管理され、ブラウザさえあればどこからでも利用できる。

サーバとクライアントの間の通信方式(プロトコル)にはHTTPやHTTPSを、操作画面の構成にはHTMLやCSS、JavaScriptなどを用いる。インターネット上で標準的に用いられているWeb関連技術や開発ツールなどをそのまま流用することができ、ゼロからこれらの技術仕様や実装を設計・開発しなくて良いという利点がある。

また、WebサーバやWebブラウザをはじめ、WebアプリケーションフレームワークやJavaScriptライブラリなど多くのオープンソースソフトウェアや無償配布のソフトウェアを活用することができ、コスト低減や開発期間の短縮が期待できる。

特に、Webブラウザはほとんどの企業や家庭で導入されて日常的に利用されており、専用のクライアントソフトを端末に導入したり操作法に習熟する必要がないため、一般消費者向けのネットサービスなどで特に強い優位性となる。

ただし、Web技術はもともと静的な文書をページ単位で記述・伝送・閲覧することを想定したシステムとして始まったため、ネイティブアプリケーションのように端末の機能をフルに活用できるわけではなく、用途によっては専用システムを開発する場合に比べて機能や性能に大きな制約が生じることがある。

Webブラウザ 【ウェブブラウザ】

Webページを閲覧するためのアプリケーションソフト。利用者の指定したWebページを管理するWebサーバへデータの送信を要求し、送られてきたHTMLファイルや画像ファイルなどを読み込んで指定されたレイアウトで表示する。

利用者の指定したアドレス(URL)にアクセスし、WebサーバからWebページを構成するHTMLファイルやスタイルシート(CSS)、スクリプト(JavaScript)、画像、音声、動画などのデータを受信して、一枚のページに組み立てて画面に表示する。

入力フォームを使用して利用者側からデータやファイルをWebサーバに送信したり、表示されたページの保存や印刷を行ったり、簡易なプログラム(スクリプト)の実行機能を利用して制作されたソフトウェアやアニメーションなどを再生・動作させることもできる。

主要なWebブラウザには、「プラグイン」「アドオン」「拡張機能」(エクステンション)などの名称で、第三者の開発した機能を追加する仕組みが備わっており、様々な企業や個人が開発した追加機能が公開されている。

読み込むWebページの指定は、URL(Webアドレス)を表示欄に利用者が直接入力するか、表示されたページ中にある他のページへのリンク(ハイパーリンク)を指定するか、利用者の保存したURLの一覧(ブックマーク/お気に入り)から選択するなどの方法で行う。

サーバとの通信はHTTP(Hypertext Transfer Protocol)と呼ばれる通信規約(プロトコル)によって行われ、その基盤としてインターネットなどで標準のTCP/IPが用いられる。SSL/TLSを用いて通信経路を暗号化(HTTPS)したり、ローカルファイルを読み込む機能も備えていることが多い。

Webブラウザの種類

一般的なフル機能のWebブラウザ製品の他に、画像や動画などメディアデータは無視して文字(テキスト)部分だけを抽出して表示する「テキストブラウザ」、文字情報を音声合成機能で読み上げる「音声ブラウザ」(読み上げブラウザ)などがある。

パソコン向けでは、米グーグル(Google)社の「Google Chrome」(グーグル・クローム)や米マイクロソフト(Microsoft)社の「Microsoft Edge」(マイクロソフト・エッジ)、米モジラ財団(Mozilla Foundation)の「Firefox」(ファイアーフォックス)が人気で、Mac(macOS)では開発元の米アップル(Apple)社の「Safari」(サファリ)が標準的に使われる。

スマートフォンやタブレット端末の場合、Androidでは標準で組み込まれるAndroid版Chromeが、iOS(iPhone/iPad)でもやはり標準で組み込まれるiOS版Safariが使われることが多い。また、これらの環境では標準ブラウザの機能を部品(モジュール)化したものをアプリケーションソフトに組み込む「WebView」(ウェブビュー)という仕組みがあり、多くのアプリがこの仕組みを利用してWebブラウザの機能を内蔵している。

Webサーバ 【ウェブサーバ】

Webシステム上で、利用者側のコンピュータに対しネットワークを通じて情報や機能を提供するコンピュータ。また、そのような機能を実装したソフトウェア(Webサーバ・ソフトウェア)。

Webはクライアントサーバ型のシステムで、利用者が操作するWebクライアントと、クライアントの求めに応じてデータや機能を提供するWebサーバが連携して動作する。クライアントにはWebブラウザが用いられることが多いが、利用者が直に操作しないクローラー(ボット)なども存在する。

Webサーバはクライアントからの求めに応じて自身の管理するファイルを送信したり、内部で何らかの処理を行ったり、クライアントから受信したデータを保存したりすることができる。クライアントから要求やサーバからの応答は「HTTP」(Hypertext Transfer Protocol)という通信規約(プロトコル)に基づいて行われる。

クライアントからのサーバの指定、サーバ内の資源の指定は「http://~」あるいは「https://~」で始まる「URL」(Uniform Resource Locator)という記法が用いられる。例えばブラウザで「https://www.example.jp/corp/about.html」の表示を指示すると、「www.example.jp」というWebサーバへ接続を行い、「/corp/about.html」という位置にあるファイルの送信を要求する。

利用者の操作や入力をブラウザから受け取って処理を行い、その結果を反映した応答データを動的に生成して返す機能もあり、アプリケーションソフトのように対話的に機能を利用するシステムを作ることができる。これを「Webアプリケーション」と呼び、多くのネットサービスの実装方式となっている。

Webサーバソフトウェアには様々なものがあるが、汎用のWebサーバとして人気のものとしてはオープンソースの「Apache HTTP Server」や「nginx」などの人気が高い。企業向けの製品としては米マイクロソフト(Microsoft)社の「Internet Information Services」(IIS)がよく用いられる。

RAID 【Redundant Arrays of Inexpensive Disks】

複数のストレージ装置を専用のシステムで管理し、あたかも一台の装置であるかのように統合的に運用する仕組み。データの記録や読み出しは専用のシステムによって自動的に行われ、ソフトウェアや利用者からは一台のストレージ装置のように扱うことができる。

データを複数台に分散して記録することにより、高速化や耐障害性の向上が図られる。コントローラカードなど専用のハードウェアで管理する「ハードウェアRAID」が一般的だが、コンピュータ上で実行されるソフトウェアで実現する「ソフトウェアRAID」もある。

種類

データの記録方法により「RAID 0」から「RAID 6」まで7種類が定義されている。それぞれ高速性や耐障害性が異なり、末尾の数字が大きいほど新しいとか優れているというわけではない。一般によく用いられるのは「RAID 0」「RAID 1」「RAID 5」およびこれらの組み合わせで、RAID 2~4はあまり用いられない。

「RAID 0」は「ストライピング」とも呼ばれ、データを均等に振り分けて分散記録する方式である。アクセス速度は向上するが、いずれか一台が壊れるとデータの読み出しができなくなるため、耐障害性は一台の場合よりも低下する。現在では単独で用いることはあまりない。

「RAID 1」は「ミラーリング」とも呼ばれ、データを複数台に同時に記録する方式である。いずれか一台が壊れても複製が残るためデータが失われることはなく、耐障害性が向上するが、複製を増やせばその分だけ記憶容量の利用効率は低下する。

「RAID 5」は「分散パリティ」とも呼ばれ、データから「パリティ」という誤り訂正符号を生成してデータと共に分散記録する方式である。パリティは一台分の容量で済むため、台数を増やせば単純に複製を取るより記憶容量の利用効率を向上させることができる。

信頼性を高めるRAID 1やRAID 5と、アクセス速度を高めるRAID 0を組み合わせる手法もある。RAID 0とRAID 1の組み合わせには、どちらを先に行うかによって「RAID 01」(RAID 0+1)と「RAID 10」(RAID 1+0)があり、RAID 5とRAID 0の組み合わせには「RAID 50」(RAID 5+0)がある。

歴史

RAIDの概念は1987年にカリフォルニア大学バークリー校(UCB)のデービッド・パターソン(David A.Patterson)氏、ガース・ギブソン(Garth Gibson)氏、ランディ・カッツ(Randy Katz)氏の3人によって提唱された。1990年代に企業向けのストレージシステムなどに導入され、2000年代以降は個人向けの小型のシステムでもRAID構成が可能な機種が登場している。

NAS 【Network-Attached Storage】

ネットワークに直接接続し、コンピュータなどからネットワークを通じてアクセスできる外部記憶装置(ストレージ)。企業や家庭内のLANで共有ファイルなどの保存に利用されたり、デジタルビデオレコーダー(HDDレコーダーやBlu-rayレコーダー)が動画の保存先として利用したりする。

簡易なコンピュータ本体にハードディスクやSSDなどの記憶装置と、ネットワークインターフェース、OS、管理用ソフトウェアなどを内蔵したファイルサーバ専用機で、記憶装置をネットワークに直に接続したように扱うことができることからこのように呼ばれる。

ネットワークに接続されたほかのコンピュータなどからは通常のファイルサーバと同様に複数のコンピュータ・利用者間の共有ディスクとして使用することができる。ファイルシステムやネットワーク通信機能は最初から内蔵されているため、システムへの導入や追加が容易で、異なる種類の複数のサーバからのデータの共有も楽に行うことができる。高級機になると、複数のディスクを備え、RAID機能やホットスワップ機能を持ったものもある。

DAS (Direct-Attached Storage)

コンピュータに直接接続された記憶装置(ストレージ)のことをDAS(Direct-Attached Storage)ということがある。コンピュータの筐体に内蔵、あるいはケーブルにより外付けされている、ハードディスクやSSD、光学ドライブ、テープドライブなどが該当する。

ストレージを何らかのネットワークを介してコンピュータに接続するNAS(Network-Attached Storage)やSAN(Storage Area Network)と対比して、もとからある旧来のストレージ形態を区別するために後から考案されたレトロニム(retronym)である。

SAN 【Storage Area Network】

複数のコンピュータとストレージ(外部記憶装置)の間を結ぶ高速なネットワーク。主に業務用の大規模システムなどで用いられる。

ハードディスクやSSD、磁気テープなどのストレージ装置と、サーバなどのコンピュータを繋ぐネットワークで、専用のプロトコル(通信規約)や機器、配線などを用いて構築される。

LANなど汎用のコンピュータネットワークとは切り離されて独立に運用されるため、LAN側の機器や回線に負荷をかけずに大規模なストレージを構築することができる。

機器間の通信にFibre Channel(ファイバーチャネル)を用い、光ファイバーやFCスイッチ、FCP(Fibre Channel Protocol)などを組み合わせて構築されるSANを「FC-SAN」、Ethernet(イーサネット)やTCP/IP、iSCSIなどを用いるものを「IP-SAN」という。

一方、LANにコンピュータと同列にストレージ装置(ファイルサーバ専用機)を繋いだものは「NAS」(Network Attached Storage:ネットワーク接続ストレージ)と呼ばれる。

FC-SAN (Fibre Channel SAN)

SANの実装方式の一つで、装置間の接続にFibre Channel(ファイバーチャネル)を用いるもの。単にSANといった場合はこちらを指すことが多い。

ネットワークにFibre Channelを採用し、装置間の接続には光ファイバーが、通信プロトコルにはFCP(Fibre Channel Protocol:ファイバーチャネルプロトコル)が、集線装置としてFCスイッチ(Fibre Channel Switch:ファイバーチャネルスイッチ)用いられる。

IP-SANに比べ性能では優るがコストが高く、Fibre Channelに精通した技術者は汎用的なネットワーク技術に比べ限られている。

IP-SAN (Internet Protocol SAN)

SANの実装方式の一つで、装置間の接続にEthernet(イーサネット)やTCP/IPなど、汎用的なネットワーク技術の一部を流用したもの。

ネットワークは通常のコンピュータネットワークと同じようにEthernet(Gigabit Ethernetや10Gigabit Ethernetなど)やネットワークスイッチ、TCP/IPを組み合わせて構築し、ストレージ装置との通信部分にiSCSIやiFCP、FCIP(Fibre Channel over IP)などのプロトコルを用いる。

FC-SANに比べ汎用的な技術や装置を用いるためコストを抑えることができ、熟練した技術者も確保しやすいが、性能では劣る。

RAID 0 【Redundant Arrays of Inexpensive Disks 0】

複数のストレージ装置(ハードディスクなど)をまとめて一台の装置のように管理するRAID技術の方式(RAIDレベル)の一つで、複数の装置に均等にデータを振り分け、並行して同時に記録することで読み書きを高速化する方式。

RAID(Redundant Arrays of Inexpensive Disks)は複数のストレージ装置を一体的に運用し、広大な単一の記憶領域を作り出したり耐障害性を高める技術で、「RAID 0」から「RAID 6」までの7種類が定義されている。

RAID0はそのうちの一つで、最低2台の記憶装置を用意し、データを記録する際に均等な大きさのブロック単位に分割して、複数のドライブに分散して同時に書き込む。理想的には2台なら2倍、3台なら3倍といった具合に書き込み速度が向上する。

読み出し時には、ある特定のデータはそれが記録された1台の装置から読み出すため速度は変わらないが、大量のデータを読み出す場合には複数台から並行して読み出すことができ、速度向上が期待できる。

他のRAIDレベルとは異なりデータの冗長化を行わないため、いずれか1台が破損するとシステム全体の故障となり、破損した装置に記録されていたデータは喪失する(残りの装置に記録されたデータを繋ぎ合わせても意味をなさない場合も多い)。システム全体の信頼性は1台の場合よりも低下し、台数が増えるほど故障率は上がっていく。

JBOD(スパニング)との違い

複数のストレージを束ねて一台として運用する手法には「JBOD」(Just a Bunch of Disks)あるいは「スパニング」(spanning)と呼ばれる手法もあるが、これは領域を前後に連結して大きな連続した領域として用いるイメージで、RAID0のように装置間で並列分散して同時にデータを記録するわけではない。

使用できる容量が台数分だけ向上する点は同じだが、JBODでは読み書き時に一度に一台の装置のみを用いるため、速度向上は期待できない。ただし、RAID0のようにデータが細かく分割・分散されない分、いずれか一台が故障しても他の装置に残されたデータは無事である確率は高い。

他のRAIDレベルとの組み合わせ

RAID0は単体で使用する場合の他に、他のRAIDレベルと組み合わせて信頼性と速度を同時に向上させるために用いられることがある。その際、複数台のドライブのセットを複数用意し、セット間とドライブ間でそれぞれ異なるRAIDレベルを適用する。

「RAID 1」(ミラーリング)と組み合わせる場合、セット間でRAID 1により複製を、セット内のドライブ間でRAID0により分散記録する方式を「RAID 01」(RAID 0+1)、逆にセット間でRAID0、ドライブ間でRAID 1を適用する方式を「RAID 10」(RAID 1+0)という。

「RAID 5」と組み合わせる場合、セット間でRAID0により並列分散し、セット内のドライブ間でRAID 5によりパリティ生成と分散記録を行う方式を「RAID 50」(RAID 5+0)という。これとは逆の、ドライブ間でRAID0、セット間でRAID 5を行うのは意味がないため「RAID 05」(RAID 0+5)は存在しない。

RAID 1 【Redundant Arrays of Inexpensive Disks 1】

複数のストレージ装置(ハードディスクなど)をまとめて一台の装置のように管理するRAID技術の方式(RAIDレベル)の一つで、複数の装置にまったく同じデータを同時に書き込む方式。

RAID(Redundant Arrays of Inexpensive Disks)は複数のストレージ装置を一体的に運用し、広大な単一の記憶領域を作り出したり耐障害性を高める技術で、「RAID 0」から「RAID 6」までの7種類が定義されている。

RAID1はそのうちの一つで、最低2台以上の装置を用意し、単純にそれぞれの装置に同じデータを同じように記録していく。いずれか1台が破損しても、残りの装置からデータを読み出して新しい装置に複製することで復旧することができる。

2台でシステムを構成する場合、書き込みや読み出しにかかる時間は1台のときと変わらず、使用できる容量は本来の全体の容量の半分(1台分)となる。3台以上で複製を取る構成にすることもできるが、2台が同時に破損する確率は通常極めて低いため、通常は2台(2系統)構成とする。

RAID 0との組み合わせ

RAID1は単独で使用されるほかにも、他のRAIDレベルと組み合わせて用いることもある。複数台に分散して記録する「RAID 0」(ストライピング)と組み合わせ、性能と信頼性の両方を同時に向上させる手法がよく用いられる。

2台以上のドライブのセットを2系統以上用意し、セット間でRAID1により複製を、各セット内のドライブ間でRAID 0により分散記録を行う方式を「RAID 01」(RAID 0+1)という。これとは逆に、セット間でRAID 0により分散記録を、各セット内のドライブ間でRAID1による複製を行う方式を「RAID 10」(RAID 1+0)という。

RAID 10 【RAID 1+0】

シラバス:Ver.9.0 (2023年)

複数のストレージ装置(ハードディスクなど)をまとめて一台の装置として管理するRAID技術の方式の一つで、同じデータを同時に記録(RAID 1)するドライブのセットを複数用意して、それらの間で並列に分散記録(RAID 0)する方式。

RAID(Redundant Arrays of Inexpensive Disks)は複数のストレージ装置を一体的に運用し、広大な単一の記憶領域を作り出したり耐障害性を高める技術で、「RAID 0」から「RAID 6」までの7種類が定義されている。

RAID10はRAID 0とRAID 1を組み合わせた方式で、2台以上のドライブをまとめたセットを2セット以上用意する。セット内ではミラーリング(RAID 1)を行い、同じデータを複数のドライブに同時に記録する。セット間ではストライピング(RAID 0)を行い、データを均等に割り振って並列に記録する。

速度と耐障害性の両方を同時に高めることができる方式で、最低4台のドライブが必要となる。いずれかのセットですべてのドライブが同時に故障するとデータが復旧できなくなる。ただし、RAID 1の台数に応じて記憶容量の利用効率は低下する。例えば、2台1セットの場合は本来の容量の半分しか記録できない。

これとは逆に、ストライピングとミラーリングの順序を入れ替え、ストライピングされたドライブのセット間でミラーリングを行う方式を「RAID 01」(RAID 0+1)という。RAID10ではセット内のすべてのドライブが同時に故障しない限りデータは失われないが、RAID 01では全セットのいずれか一台が同時に故障するとデータが失われるため、RAID10の方が信頼性が高いとされる。

RAID 2 【Redundant Arrays of Inexpensive Disks 2】

複数の外部記憶装置(ハードディスクなど)をまとめて一台の装置として管理するRAID技術の方式の一つで、ハミングコードと呼ばれる誤り訂正符号を生成し、データとは別に分散して記録する方式。効率の悪さなどからほぼ使われていない。

データはビット単位またはバイト単位で均等に分割し、複数のドライブに分散して並列に記録される。その際、分割される一連のデータから誤り訂正符号(ECC:Error-Correcting Code)を生成し、専用のドライブ群に分散して記録する。最小構成では2台のデータ記録用ドライブに対して3台のECC記録用ドライブが必要である。

同時に2台が故障してもデータを修復できる強力な誤り訂正機能を提供するが、ECCの生成や復旧のための処理が膨大で性能が悪く、また、最小構成ではECC用の方が台数が多いなど記憶容量の効率が悪い(ただし、効率が最も悪いのが最小構成で、全体の台数が増えれば効率は相対的に向上する)。装置の信頼性が低い時代には一部で実用化の動きもあったとされるが、結局広く普及するには至らず現代では概念上の存在となっている。

RAID 3 【Redundant Arrays of Inexpensive Disks 3】

複数のストレージ装置(ハードディスクなど)をまとめて一台の装置として管理するRAID技術の方式の一つで、1台を誤り訂正符号の記録に割り当て、残りの装置にビット単位やバイト単位でデータを分散記録する方式。

RAID(Redundant Arrays of Inexpensive Disks)は複数のストレージ装置を一体的に運用し、広大な単一の記憶領域を作り出したり耐障害性を高める技術で、「RAID 0」から「RAID 6」までの7種類が定義されている。

RAID3はそのうちの一つで、RAID3では最低3台の記憶装置を用意し、データを均等に分散して並列に記録する。その際、「パリティ」と呼ばれる誤り訂正符号を算出して特定の1台に記録していく。いずれか1台が故障しても残りの装置から元のデータを復元することができる。同時に2台が故障するとデータは失われる。

データ自体の記録は並列に行われるため高速化されるが、パリティの記録は特定の1台に集中するため台数が増えるとここがボトルネックになることがある。複雑な誤り訂正符号を利用する方式に比べると、パリティは単純で高速に算出・復元できるが誤り訂正能力は低い。

データの分散記録をビットやバイトなど細かい単位ではなく、ある程度長いブロック単位としたものは「RAID 4」、データとパリティをブロック単位で分散記録するものは「RAID 5」と呼ばれる。RAID 5に比べRAID3やRAID 4はあまり普及していない。

RAID 4 【Redundant Arrays of Inexpensive Disks 4】

複数のストレージ装置(ハードディスクなど)をまとめて一台の装置として管理するRAID技術の方式の一つで、1台を誤り訂正符号の記録に割り当て、残りの装置にブロック単位でデータを分散記録する方式。

RAID(Redundant Arrays of Inexpensive Disks)は複数のストレージ装置を一体的に運用し、広大な単一の記憶領域を作り出したり耐障害性を高める技術で、「RAID 0」から「RAID 6」までの7種類が定義されている。

RAID4はそのうちの一つで、最低3台の記憶装置を用意し、データを均等に分散して並列に記録する。その際、「パリティ」と呼ばれる誤り訂正符号を算出して特定の1台に記録していく。いずれか1台が故障しても残りの装置から元のデータを復元することができる。同時に2台が故障するとデータは失われる。

データ自体の記録は並列に行われるため高速化されるが、パリティの記録は特定の1台に集中するため台数が増えるとここがボトルネックになることがある。複雑な誤り訂正符号を利用する方式に比べると、パリティは単純で高速に算出・復元できるが誤り訂正能力は低い。

データの分散記録をある程度長いブロック単位ではなくビットやバイトなど細かい単位で行うものは「RAID 3」、データと共にパリティもブロック単位で分散記録するものは「RAID 5」と呼ばれる。RAID 5に比べRAID 3とRAID4はあまり普及していない。

RAID 5 【Redundant Arrays of Inexpensive Disks 5】

複数のストレージ装置(ハードディスクなど)をまとめて一台の装置として管理するRAID技術の方式の一つで、書き込むデータから誤り訂正符号を生成し、データとともに分散して記録する方式。

RAID(Redundant Arrays of Inexpensive Disks)は複数のストレージ装置を一体的に運用し、広大な単一の記憶領域を作り出したり耐障害性を高める技術で、「RAID 0」から「RAID 6」までの7種類が定義されている。

RAID5はそのうちの一つで、最低3台の記憶装置を用意し、データを各装置に均等に分散して並列に記録する。その際、一定の長さのデータごとに「水平パリティ」と呼ばれる誤り訂正符号を算出し、データとともに分散して記録する。

パリティチェックは一か所の誤りを検出でき、誤りの位置が分かれば正しい値への訂正もできる。RAIDの用途では破損した装置がどれかは分かるため、いずれか1台が故障しても残りの装置に記録されたデータとパリティから元のデータを復元することができる。同時に2台以上が破損すると記録されたデータは失われる。

装置が何台あってもパリティは1台分の容量だけで済むため、台数を増やせば増やすほど効率よくデータを保存することができる。また、RAID 3やRAID 4と違ってデータだけでなくパリティも一定のブロックごとに各装置に分散して記録するため、読み書き速度の向上を期待できる。

RAID5とRAID 0を組み合わせ、RAID 5でパリティ生成・分散記録したドライブのセットを複数用意して、それらの間でストライピング(RAID 0)する方式を「RAID 50」あるいは「RAID 5+0」という。ドライブの台数は多く必要になるが、信頼性能向上と読み書き性能の向上を同時に図ることができる。

RAID 6 【Redundant Arrays of Inexpensive Disks 6】

複数の外部記憶装置(ハードディスクなど)をまとめて管理するRAID技術の方式の一つで、データから誤り訂正符号を2つ生成し、データとともに分散して書き込む方式。

RAID(Redundant Arrays of Inexpensive Disks)は複数のストレージ装置を一体的に運用し、広大な単一の記憶領域を作り出したり耐障害性を高める技術で、「RAID 0」から「RAID 6」までの7種類が定義されている。

RAID6はそのうちの一つで、最低4台の記憶装置を用意し、データを各装置に均等に分散して並列に記録する。その際、一定の長さのデータごとに「パリティ符号」(parity code)と呼ばれる誤り訂正符号を2種類算出し、データとともに分散して記録する。

これにより、いずれか1台、あるいは2台が同時に故障しても、残りの装置に記録されたデータとパリティから元のデータを復元することができる。同時に3台以上が破損すると記録されたデータは失われる。パリティの分だけ容量が圧迫されるため、実質の記憶容量は4台の構成で元の容量の50%(2台分)、5台の構成で60%(3台分)となる。

RAID 5のパリティを2つに増やした方式と考えることができ、対障害性が向上しているが、パリティが増えた分だけ書き込み時の処理が増えて性能が落ちるほか、記憶容量の利用効率も下がる。故障した装置の交換・復旧を待つ間にもう一台が故障するという事象が起きる確率は低く、RAID 5の応用で対応可能なケースが大半なため、あまり普及していない。

RAID 0 【Redundant Arrays of Inexpensive Disks 0】

複数のストレージ装置(ハードディスクなど)をまとめて一台の装置のように管理するRAID技術の方式(RAIDレベル)の一つで、複数の装置に均等にデータを振り分け、並行して同時に記録することで読み書きを高速化する方式。

RAID(Redundant Arrays of Inexpensive Disks)は複数のストレージ装置を一体的に運用し、広大な単一の記憶領域を作り出したり耐障害性を高める技術で、「RAID 0」から「RAID 6」までの7種類が定義されている。

ストライピングはそのうちの一つで、最低2台の記憶装置を用意し、データを記録する際に均等な大きさのブロック単位に分割して、複数のドライブに分散して同時に書き込む。理想的には2台なら2倍、3台なら3倍といった具合に書き込み速度が向上する。

読み出し時には、ある特定のデータはそれが記録された1台の装置から読み出すため速度は変わらないが、大量のデータを読み出す場合には複数台から並行して読み出すことができ、速度向上が期待できる。

他のRAIDレベルとは異なりデータの冗長化を行わないため、いずれか1台が破損するとシステム全体の故障となり、破損した装置に記録されていたデータは喪失する(残りの装置に記録されたデータを繋ぎ合わせても意味をなさない場合も多い)。システム全体の信頼性は1台の場合よりも低下し、台数が増えるほど故障率は上がっていく。

JBOD(スパニング)との違い

複数のストレージを束ねて一台として運用する手法には「JBOD」(Just a Bunch of Disks)あるいは「スパニング」(spanning)と呼ばれる手法もあるが、これは領域を前後に連結して大きな連続した領域として用いるイメージで、ストライピングのように装置間で並列分散して同時にデータを記録するわけではない。

使用できる容量が台数分だけ向上する点は同じだが、JBODでは読み書き時に一度に一台の装置のみを用いるため、速度向上は期待できない。ただし、ストライピングのようにデータが細かく分割・分散されない分、いずれか一台が故障しても他の装置に残されたデータは無事である確率は高い。

他のRAIDレベルとの組み合わせ

ストライピングは単体で使用する場合の他に、他のRAIDレベルと組み合わせて信頼性と速度を同時に向上させるために用いられることがある。その際、複数台のドライブのセットを複数用意し、セット間とドライブ間でそれぞれ異なるRAIDレベルを適用する。

「RAID 1」(ミラーリング)と組み合わせる場合、セット間でRAID 1により複製を、セット内のドライブ間でストライピングにより分散記録する方式を「RAID 01」(RAID 0+1)、逆にセット間でストライピング、ドライブ間でRAID 1を適用する方式を「RAID 10」(RAID 1+0)という。

「RAID 5」と組み合わせる場合、セット間でストライピングにより並列分散し、セット内のドライブ間でRAID 5によりパリティ生成と分散記録を行う方式を「RAID 50」(RAID 5+0)という。これとは逆の、ドライブ間でストライピング、セット間でRAID 5を行うのは意味がないため「RAID 05」(RAID 0+5)は存在しない。

ミラーリング 【ミラー化】

「鏡写し」という意味の英単語で、IT分野では同じ内容を同時に二ヶ所に反映することを指す。複数の表示機器に同じ内容を同時に映し出すことや、複数の記憶装置に同じデータを同時に記録することなどを表す。

画面ミラーリング

コンピュータの画面出力を複数の表示装置(ディスプレイ)に同時に行うことを画面ミラーリングあるいはスクリーンミラーリングという。携帯機器などの本体付属の画面と外部の別の表示装置に同時に出力する方式を指すことが多い。

例えば、スマートフォンの画面を接続先のテレビやディスプレイ画面のにも出力し、手元で操作しながら同時に大画面で表示する、といったことが可能になる。ディスプレイケーブルなどで直に繋ぐ方式と、表示装置側の外部入力端子に専用の小さな受信装置を挿入し、これを端末と無線接続して表示内容を転送する方式がある。

iPhoneの場合はAirPlayによる無線接続やLightningコネクタ-HDMI変換ケーブルによる有線接続が、Androidの場合はChromecastやFire TV Stickなどの受信装置による無線接続やマイクロHDMIケーブルによる有線接続などがよく用いられる。

ストレージのミラーリング

一台のコンピュータ(システム)に複数のストレージ(外部記憶装置)を接続し、データを書き込む際に同じ内容を二台同時に書き込むことをミラーリングと言い、ハードディスクを用いる場合を特にディスクミラーリングという。

複数のストレージの一体的運用について定めたRAID技術では「RAID 1」(RAIDレベル1)として知られている。二台の装置にはまったく同じ内容のディレクトリやファイルが記録され、一台が破損して読み出せなくなっても残りの一台から内容を読み出すことができる。

破損した方を入れ替えて再び内容を同期させることで、データの喪失やシステムの停止を伴わずにストレージ装置の障害対応が可能になる。一台の場合に比べ(二台同時に)故障する確率は元の2乗と大幅に減少するが、記憶容量の利用効率は半分となる。

コンピュータに専用の制御装置を導入してこれに二台のストレージを接続して行う方式と、通常の方式で繋いだ二台のストレージを用いてOSの機能や専用のソフトウェアが実施する方式がある。後者の方が手軽に導入できコストも安いが、性能や障害時の対応などは前者が優る。

サーバやサイトのミラーリング

ネットワーク上でサーバの機能や内容を複数台で同期し、同じ内容を複数のサーバから提供できるようにすることをミラーリングという。そのように複製されたサーバを「ミラーサーバ」、Webサイトを「ミラーサイト」という。

複数のサーバが同じ機能や内容を提供することで、一台が障害やメンテナンスで停止してもサービスを継続できる。また、構成や制御方式によってはアクセス要求が多い場合にミラーサーバ間で負荷分散を行い一台あたりの負荷を軽減することもできる。

パリティビット 【パリティデータ】

データの伝送や記録の際に生じる誤りを検知できるように算出・付加される符号の一つで、ビット列中に含まれる「1」の数が偶数か奇数かを表すもの。これを利用した誤り検出方式を「パリティチェック」(parity check)という。

データを0と1が並んだビット列で表したときに、各ビットの値を足し合わせた値が奇数であるか偶数であるか(「1」の数が奇数か偶数か)を1ビットの値として表す。

和が奇数のときに1とする(偶数なら0)ものを「偶数パリティ」(even parity)、偶数のときに1とするものを「奇数パリティ」(odd parity)という。パリティを足すことでどのビット列も偶奇性が同じになる(偶数パリティを含めた全ビットの和は常に偶数)という意味でこのように呼ばれる。

データの送り手(送信者や書き込み時)は元のデータに対して一定の長さごとにパリティを算出して付加する。受け手(受信者や読み込み時)は受け取ったデータから同じようにパリティを算出し、付加されたパリティと比較する。

両者のパリティが一致すれば、パリティを含めたビット列中には誤りが存在しないか偶数個存在し、一致しなければ奇数個の誤りが生じていることが分かる。一つのパリティだけではどの位置に誤りがあるかは分からず、正しい値に訂正することはできない。

バースト誤りのような特殊な状況を除き、通常の用途では短いビット列中に同時に複数の誤りが生じる可能性は低いため、実用上はパリティが一致しなければ1ビットの誤りが含まれ、一致すれば誤りが生じていないとみなすことが多い。

障害

ITの分野では、機器やソフトウェア、システム、通信回線などに異状が生じ、本来の機能を発揮できなくなることを指す。英語の “failure” に対応する概念とされることが多い。

システムなどの障害

システムなどが何らかの原因により機能の喪失や性能の低下を強いられたり、稼働を停止してしまっている状態を意味する。

機器やソフトウェア、部品などの故障・不良(fault)、欠陥・不具合(defect)が原因であることが多いが、操作ミスなど人為的な失敗や、悪意や故意に基づく攻撃や破壊、自然災害や事故などの外的要因、想定外あるいは設計限界を超えた使用環境などにより引き起こされる場合もある。

無線通信の障害

無線通信や放送などでは、遮蔽物や電磁的なノイズなどの影響で電波の受信感度が悪い状態を「電波障害」(radio disturbance)あるいは「受信障害」という。また、電波の影響で電子機器が誤作動することも電波障害(あるいは電磁波障害)という。

フォールトマスキング

シラバス:Ver.9.0 (2023年)

システムや装置の信頼性についての考え方の一つで、障害が発生しても外部に影響が伝播しないような仕組みにすること。

例えば、同じ処理を実行する3つ以上の独立したシステムを同時に稼動させ、それらの処理結果を比較して最も多い結果を出力として採用する、といった手法がある。

一系統が誤った結果を出力しても、他のシステムとの多数決により棄却され、外部に誤った結果を伝えることを防ぐことができる。各系統の仕様のみを共通とし、詳細な実装はそれぞれ別にする場合もある。

また、ある障害が別の障害の存在を隠蔽し、外部から気づかない状態に陥ることをフォールトマスキングという場合もある。「ディフェクトマスキング」(defect masking/欠陥マスキング)とも言う。

フォールトトレランス 【フォールトトレラント】

機器やシステムなどが持つ性質の一つで、構成要素の一部が故障、停止などしても予備の系統に切り替えるなどして機能を保ち、稼動を続行できること。また、そのような仕組みや設計方針。

事故や故障などが起きることを前提に、重要な機能を提供する機器を複数用意したり、一か所の問題が他へ拡大しにくい構造にするなどの手法で備え、一部が機能を失っても全体の性能や機能を落とさずに稼働を続行するような仕組みや考え方を意味する。

例えば、電源装置を二重化して片方が故障しても電源が落ちないコンピュータや、停電すると発電機が起動して電力を供給し続けるビル、二系統の通信回線を引き込み、片方が不通になってももう一方で外部と通信し続けるデータセンターなどがフォールトトレラントシステムを考慮した設計と言える。

とはいえ、どのような損害を受けてもいつまでも正常に稼働し続けるシステムは作ることができないため、損害を受けてから機能を維持し続けられる時間が限られたり(発電機を備えたビルでも多くは数日分の燃料しか備蓄できない)、損害の大きさによっては稼働は継続するが機能や性能が低下したりすることもある。

一方、問題の個所を切り離したり停止するなどして機能や性能を低下させて稼働を継続することは「フェイルソフト」(fail soft)、問題が起きた時になるべく安全な状態に移行するよう制御することは「フェイルセーフ」(fail safe)、誤操作しても危険が生じない、あるいは誤操作できない構造や仕組みに設計することは「フールプルーフ」(foolproof)とそれぞれ呼ばれる。フォールトトレラントシステムをこれらの概念の総称として用いることもある。

また、なるべく故障や障害が生じないようにすることは「フォールトアボイダンス」(fault avoidance)と呼ばれ、フォールトトレランスと対になる概念として用いられる。

フォールトアボイダンス

システムや装置の信頼性についての考え方の一つで、なるべく故障や障害が生じないようにすること。個々の構成要素の品質を高めたり、十分なテストを行ったりして、故障や障害の原因となる要素を極力排除することで信頼性を高めるという考え方。

“avoidance” は「回避」という意味で、障害の発生自体を避けられるように対象の品質や信頼性を高めようとする発想を指す。具体的な方策として、信頼性の高い部品や材料の採用、試験や検証の徹底、高品質な個体の選別、人員の教育・訓練の充実などがある。

そうは言っても、人が作ったもの、人が運用するものに関して障害や故障が一切起きないようにすることは難しいため、多少の障害が発生しても全体の機能が停止しないような仕組みや設計にしておくことが重要であるという考え方もある。このような考え方は「フォールトトレランス」(fault tolerance)という。

フェイルセーフ 【フェールセーフ】

機器やシステムの設計や構造などについての考え方の一つで、一部の故障や破損、操作ミス、誤作動などが発生した際に、なるべく安全な状態に移行するような仕組みにしておくこと。社会的な仕組みに関する規定や手順などにこの考え方を適用することもある。

機器の操作や使用に際して、故障や誤作動、誤操作などが起きるものだという前提に立ち、実際にそのような状況が生じたときに周囲の人や物に害が及ばないよう、自動的に安全側に導くような制御方式や動作原理を設計や構造に組み込む考え方である。

例えば、転倒すると自動的に消火する石油ストーブや、制御装置が停電すると制御棒が自重で落下して核反応を停止させる原子炉、停電・故障すると遮断桿が降りた状態で停止する踏切、全エンジンが停止しても滑空して着陸できる飛行機などがフェールセーフな設計と言える。

また、建設現場や工場などの生産現場、鉄道の運行、航空管制、情報システムの運用など、何らかの社会的な活動や仕組みの運用においても、誰か一人の失敗や勘違い、どこか一か所の不良が即座に重大な事故や損害に繋がらないように定められた規定や手順、仕組みなどもフェールセーフという。

これに対し、一部が機能を失っても全体としての機能を保ち、正常に稼動させ続けることは「フォールトトレランス」(fault tolerance)あるいは「フォールトトレラント」(fault tolerant)という。

また、不具合が生じた箇所を停止したり切り離すなどして残りの部分で機能や性能を落として運転を継続するような設計・思想は「フェイルソフト」(fail soft)、誤操作しても危険が生じない、あるいは誤操作できない構造や仕組みに設計することは「フールプルーフ」と呼ばれる。

フェイルソフト 【フェールソフト】

機器やシステムの設計などについての考え方の一つで、事故や故障が発生した際に、問題の個所を切り離すなどして被害の拡大を防ぎ、全体を止めることなく残りの部分で運転を継続すること。

故障などが起きることを前提に、問題の個所を停止させたり、切り離したり、他の個所へ被害が拡大しにくい構造にするなどして、できるだけシステム全体を停止させずに性能・機能を落として稼働を継続(縮退運転)するような仕組みや考え方を意味する。

例えば、複数のエンジンを積んだ航空機では、エンジンに火災が発生すると燃料の供給を断って延焼を防ぎ、残ったエンジンで速度を落として飛行を継続できるような設計になっている。情報システムの運用でも、機材を二重化するなどの手法で一部が故障で停止しても性能を落として稼働を続行するなどの対策が行われることがある。

これに対し、一部が機能を失っても全体としての機能を保ち、正常に稼動させ続けることは「フォールトトレランス」(fault tolerance)あるいは「フォールトトレラント」(fault tolerant)、問題が起きた時になるべく安全な状態に移行するよう制御するような設計・思想は「フェイルセーフ」(fail safe)、誤操作しても危険が生じない、あるいは誤操作できない構造や仕組みに設計することは「フールプルーフ」(fool proof)とそれぞれ呼ばれる。

フールプルーフ

機械やソフトウェアなど人が使う道具の設計についての考え方の一つで、利用者が操作や取り扱い方を誤っても危険が生じない、あるいは、そもそも誤った操作や危険な使い方ができないような構造や仕掛けを設計段階で組み込むこと。また、そのような仕組みや構造。

フールプルーフ設計では「人間は間違えるものである」「理解が不十分な人が取り扱うこともある」という前提に立ち、誤った使い方をしても利用者や周囲の人を危険に晒したり、機器が破損したり、致命的な事態や損害を生じさせないような構造に設計する。

また、そもそも誤った使い方ができないような構造や操作方法にしたり、危険な使い方をしようとすると機能が停止したり自動的に初期状態に戻ったりするような機構を組み込むといった対策が行われることもある。

よく知られる例としては、正しい向きにしか挿入できない電池ボックスや、扉や蓋が完全に閉じなければ起動しない電子レンジや洗濯機、シフトレバーをパーキングかニュートラルに入れてフットブレーキを踏んだ状態でないとエンジンが始動しない自動車、左右に離れたボタンやレバーを両手で同時に操作しなければ降りてこない裁断機やプレス機、人が座っていないと水を噴射しない洗浄便座などがある。

似た概念として「フェイルセーフ」(fail-safe)がある。これは機器の一部が損傷、故障、停止などしても危険が生じないような構造や仕組みを導入する設計思想のことである。停電すると棹が下がったままになる踏切などが該当する。

アクティブ/スタンバイ構成 【相互待機型】

同じシステムを複数用意して耐障害性を高めたシステムで、いくつか(2系統の場合は片方)を待機状態にして、障害時に切り替えて処理を引き継ぐ方式。

情報システムや通信回線では信頼性を高めるために、同じように機能する複数のシステムを用意することがあり、これを「二重化」「冗長化」などという。アクティブ-スタンバイ構成は用意したシステムを通常時に使用する稼働系と通常時は使わずに待機している待機系に分ける。

稼動系に障害が発生して処理の続行が不可能になると、直ちに待機系が起動して処理を引き継ぐ。この動作を「フェイルオーバー」と呼び、信頼性の高いシステムでは1秒以下の短時間で切り替えを行い処理が途切れないようにする。

これに対し、用意した系統をすべて同時に稼動させる方式を「アクティブ/アクティブ構成」という。複数系統に処理を振り分けることで負荷分散を図ることができる。

アクティブ/アクティブ構成 【運用待機型】

同じシステムを複数用意して耐障害性を高めたシステムで、すべての系統を常に同時に稼動させる方式。

情報システムや通信回線では信頼性を高めるために、同じように機能する複数のシステムを用意することがあり、これを「二重化」「冗長化」などという。アクティブ-アクティブ構成は用意したすべての系統を同時に稼働して処理を振り分けるもので、負荷分散による性能向上も図っている。

いずれかの系で障害が発生して処理が続行できなくなると、これを切り離して残りの系で処理を継続する。修理や交換で機能が回復すると、再び稼働系の集団に復帰して処理を分担するようになる。

これに対し、用意した系統のいくつか(2系統の場合は片方)を待機状態にして、障害時に切り替えて処理を引き継ぐ方式を「アクティブ/スタンバイ構成」あるいは「アクティブ/パッシブ構成」という。

レスポンスタイム 【応答時間】

システムや装置などに要求や入力が与えてから、反応を送り返すまでにかかるの時間のこと。また、その平均。この時間が短いほど、利用者や他のシステムなど外部にとっての「待ち時間」が少ないことを意味する。

コンピュータや情報システムなどの場合には、要求や入力が終了した時点から、応答や出力が開始される時点までの時間のことをレスポンスタイムと呼んでいる。

通信回線やネットワークを介してデータを送受信するようなシステムの場合は、相手方が送信を終えてから受信が始まるまでの時間を指し、信号が伝送路を往復する時間が含まれる。

ディスプレイの応答時間

画面表示装置(ディスプレイ)などの場合、画素の色を変更するのにかかる時間のことをレスポンスタイムと呼ぶ。この時間が短いほど高速に画面を切り替えることができ、動きの激しい映像などを精細に表示することができる。

単にレスポンスタイムといった場合は黒(消灯)から白(全点灯)に切り替えて再び黒に戻す動作にかかる時間を指すことが多いが、近年では実際の使用時に頻度の高い「中間色から別の中間色に切り替える速度」を表す「GTG」(Gray To Gray/G to G/中間階調応答速度)という指標もよく用いられる。

スループット

機器や通信路などの性能を表す特性の一つで、単位時間あたりに処理できる量のこと。ITの分野では、コンピュータシステムが単位時間に実行できる処理の件数や、通信回線の単位時間あたりの実効伝送量などを意味することが多い。

処理の場合

コンピュータの性能について言う場合は、単位時間あたりに与えられた処理を完遂できる回数を表す。CPUやメモリ、ストレージなど装置の構成や性能、処理内容などが複雑に影響しあって決まるため、単一で単純な指標はない。分野や用途に応じて業界団体などが用意した試験用のソフトウェア(ベンチマークプログラム)を実行し、処理件数を計測して相対的な値として表すことが多い。

通信の場合

通信回線や装置のデータ入出力の性能について言う場合は、伝送路を通じて単位時間あたりに送受信できるデータ量を表す。単位として、1秒あたりに伝送できるビット数である「ビット毎秒」(bps:bits per second)や1秒あたりのバイト数「バイト毎秒」(Bytes/s)、および、これらに大きさを表す接頭辞を付けたもの(Mbps、MBytes/sなど)を用いる。

通信システムやプロトコルなどについて用いる場合は、伝送路自体が全体として運べる理論的なデータ量から、制御データや誤り訂正符号などのオーバーヘッド分を差し引いた、実質的に相手方に伝達されるデータ(ペイロード)の量を表すこともある。

スループットとレイテンシ

処理や伝送の「速さ」はスループットだけでは決まらず、状況によっては一回ごとにかかる遅延時間(レイテンシ)が大きく影響する場合がある。一般に、大量のデータを連続的に扱う場合はスループットが支配的な要因となるが、二者が双方向的に相手からの応答を待って短く何度も繰り返し伝送を行うような系(通話など)ではレイテンシが支配的となることがある。

例えば、高解像度の映像を伝送できる高スループットの衛星回線でテレビ中継を行っても、出演者が回線越しに会話をすると発言ごとに数秒の「間」が生じることがある。これは衛星が遠く電波の到達に時間がかかることによるレイテンシの影響である。

実効スループット (有効スループット)

通信速度や処理能力の尺度の一つで、実際に通信や計算を行ったときの単位時間あたりの処理能力やデータ転送量のことを実効スループット(effective throughput)あるいは有効スループットという。

システムの処理能力の意味では、実際のデータを処理したときの単位時間あたりの処理能力を表し、理論上の最大処理能力(理論スループット)が同じでも、処理させるデータの選び方などの条件によって実効スループットは変化する。標準化されたベンチマークテストなどによって計測される。

通信速度の意味では、理論上実現可能な単位時間あたりのデータ転送量(理論スループット)から、エラー訂正による損失や、プロトコルのオーバーヘッド、データ圧縮による影響などを差し引いた、実効速度を表す。このため、実効スループットは通信環境や転送するデータの選び方などの影響を受ける。特定の環境のもとで実際に大きなファイルを送受信してみて、かかった時間を測って計測される。

ベンチマーク 【ベンチマークテスト】

性能や成績などの評価手法の一つで、同種の他の対象と同じ条件で測定値を求め、相対的な比較を行う方式。また、その際に比較に用いる対象や指標のこと。

ITの分野では、ICチップやコンピュータシステムなどの性能比較でよく用いられる手法だが、IT以外の分野でも、金融商品や企業業績、工業製品などで標準的な比較手法の一つとしてよく知られる。

機器やシステムの性能を比較する場合、テスト用に開発されたコンピュータプログラム(ベンチマークソフト)を実際に実行してみて、実行時間を計測してそれぞれの被検体の性能とする。ソフトウェアの比較の場合には、同じ機材を用いてテスト用に用意されたデータや入力を処理させてみて、実行時間を計測する。

半導体チップやコンピュータ、ソフトウェア、情報システムなどは構成要素が多く構造が複雑なため、外形的な仕様や諸元の値からは具体的な性能を知ることが難しい。このため、ベンチマークによって同じ製品の前の世代や同世代の別の開発元の製品などと相対的な比較を行うことで性能を評価することが多い。

ベンチマークはある特定のプログラムやデータを処理したときの性能に過ぎず、別の対象や条件のもとでは、当然異なった結果が得られる。メーカーが製品の性能アピールに用いるような一般的なベンチマークプログラムは様々な分野や状況に共通する最大公約数的な使用環境を想定して開発されることが多いため、分野や用途によってはまったく当てはまらないこともある。具体的に使用するアプリケーションが決まっているのであれば、それを用いてベンチマークテストを行うのが望ましいとされる。

TPC 【トランザクション処理性能評議会】

コンピュータシステムの性能評価の方法や基準などを策定する業界団体の一つ。世界の大手コンピュータメーカーやソフトウェアメーカーなどが参加しており、データベースシステムなど企業の情報システムなどで用いるシステムの性能指標の策定を行っている。

性能の評価は、特定のプログラムを実行してみて単位時間あたりの処理件数や実行時間を計測するベンチマーク方式を採用しており、実際の利用環境に近い状態で性能を測ることができる。ソフトウェアの種類や処理の種類によって多数の指標が公開されており、オンライントランザクション処理(OLTP)システムのためのTPC-Cなどが有名。

TPC-C / tpmC

TPC-Cは現存するTPCベンチマークのうち最も古く、また最も有名で頻繁に引用される指標である。卸売業の注文や支払いを模したテストプログラムを実行し、1分あたりの処理件数で性能を評価するもので、「tpmC」(transaction per minute C)という単位で結果を表記する。また、システムの価格や耐用年数などから処理1件あたりにかかる費用を「Price/tpmC」という単位で評価する。

TPS (Transactions Per Second:トランザクション毎秒)

コンピュータシステムの処理性能の指標の一つで、トランザクション処理を毎秒何件実行できるかを表したもの。データベース管理システム(DBMS)やデータベース向けサーバコンピュータの性能指標としてよく参照される。

トランザクション処理とは、送金処理における入出金のように互いに関連・依存する複数の処理をまとめ、一体不可分の単位として処理する方式のこと。あるシステムが1秒間に1件のトランザクションを完了させられる場合、その処理速度は1TPSであるという。

異なるシステムの性能を比較する場合には同じデータによるテスト(ベンチマークテスト)が必要だが、業界団体のTPC(トランザクション処理性能評議会)が標準的なベンチマークを作成しており、各社はTPCベンチマークテストで計測したTPS値をシステムの性能として公表している。

SPEC 【Standard Performance Evaluation Corporation】

コンピュータシステムを実際の使用環境に近い状態で性能測定する標準的な手法を策定し、測定結果を登録・公表する国際的な非営利団体。1988年に大手コンピュータメーカーなどを中心に設立された。本部はアメリカ・バージニア州ゲインズビル。

コンピュータシステムの性能を計測するベンチマークプログラムの開発・提供や測定結果の公開を行なっている。ベンチマークは対象となる機器やソフトウェア、システムの種類ごとに開発されている。

また、性能を計測したい処理内容(整数演算と浮動小数点演算など)ごとに分かれている場合もある。プログラムは機種に依存しないプログラミング言語や開発環境で作成され、実際の使用状況を模した処理を行なって実行時間を計測する。

分科会

いくつかの分科会が設置されており、CPUや汎用のコンピュータシステムを対象とする「OSG」(Open Systems Group)、大規模システムやスーパーコンピュータなどを扱う「HPG」(High-Performance Group)、グラフィックス処理システムを対象とする「GWPG」(Graphics and Workstation Performance Group)、組み込みシステムを対象とする「EG」(Embedded Group)などがある。

個別のベンチマークを検討・開発するグループ以外にも、ベンチマークや計測手法の研究開発を担う「RG」(Research Group)、ベンチマーク手法の国際標準化を推進する「ISG」(International Standards Group)などの分科会が設置されている。

主なベンチマーク

SPECintのベンチマークおよび測定値は、「SPECint2006」のように「SPEC」に続けてベンチマーク名、発表年を記載し区別する。同じベンチマークでも年を経て改訂されることがあり、年号が異なるベンチマークの結果は直接比較することができない。

著名なベンチマークには、CPU(マイクロプロセッサ)の整数演算性能を計測する「SPECint」シリーズや、浮動小数点演算性能を計測する「SPECfp」シリーズなどがある。現在ではこれらを合わせて「SPEC CPU」シリーズとなっている。近年ではクラウドサービスの性能を示す「SPEC Cloud IaaS」、仮想化環境の性能を示す「SPECvirt Datacenter」なども追加されている。

SPEC 【Standard Performance Evaluation Corporation】

コンピュータシステムを実際の使用環境に近い状態で性能測定する標準的な手法を策定し、測定結果を登録・公表する国際的な非営利団体。1988年に大手コンピュータメーカーなどを中心に設立された。本部はアメリカ・バージニア州ゲインズビル。

コンピュータシステムの性能を計測するベンチマークプログラムの開発・提供や測定結果の公開を行なっている。ベンチマークは対象となる機器やソフトウェア、システムの種類ごとに開発されている。

また、性能を計測したい処理内容(整数演算と浮動小数点演算など)ごとに分かれている場合もある。プログラムは機種に依存しないプログラミング言語や開発環境で作成され、実際の使用状況を模した処理を行なって実行時間を計測する。

分科会

いくつかの分科会が設置されており、CPUや汎用のコンピュータシステムを対象とする「OSG」(Open Systems Group)、大規模システムやスーパーコンピュータなどを扱う「HPG」(High-Performance Group)、グラフィックス処理システムを対象とする「GWPG」(Graphics and Workstation Performance Group)、組み込みシステムを対象とする「EG」(Embedded Group)などがある。

個別のベンチマークを検討・開発するグループ以外にも、ベンチマークや計測手法の研究開発を担う「RG」(Research Group)、ベンチマーク手法の国際標準化を推進する「ISG」(International Standards Group)などの分科会が設置されている。

主なベンチマーク

SPECfpのベンチマークおよび測定値は、「SPECint2006」のように「SPEC」に続けてベンチマーク名、発表年を記載し区別する。同じベンチマークでも年を経て改訂されることがあり、年号が異なるベンチマークの結果は直接比較することができない。

著名なベンチマークには、CPU(マイクロプロセッサ)の整数演算性能を計測する「SPECint」シリーズや、浮動小数点演算性能を計測する「SPECfp」シリーズなどがある。現在ではこれらを合わせて「SPEC CPU」シリーズとなっている。近年ではクラウドサービスの性能を示す「SPEC Cloud IaaS」、仮想化環境の性能を示す「SPECvirt Datacenter」なども追加されている。

モニタリング

監視、観察、観測、測定、検査、傍受、追跡などの意味を持つ英単語。対象の状態を連続的あるいは定期的に観察・記録し、継続的に監視し続けるという意味で用いられる。

ITの分野では、コンピュータシステムや通信機器などの状態をソフトウェアなどによって自動的、定期的に調べ、結果を時系列に記録する活動をモニタリングということが多い。記録は問題発生時の詳細や原因の調査、性能改善、システム監査などのために利用される。

具体的な測定・監視内容は対象や目的により様々だが、資源の占有・利用状況(メモリ使用率やCPU使用率、回線利用率など)、性能や応答時間、実行中のプログラムやその状態、内部の各装置が正常に稼働しているか、そもそも機器が応答するか否か(死活監視)、などを調べることが多い。

ネットワーク上で多数の機器を管理する場合は、SNMP(Simple Network Management Protocol)などの標準規格や専用の管理ソフトを用いて、遠隔から複数の機器をリアルタイムにモニタリングするシステムを構築する場合もある。

映像の表示装置のように、観察や測定に用いる機材のことを「モニター」(monitor)という。分野によっては、「消費者モニター」のように人員や組織を指したり、「トランザクションモニター」のように状態監視の機能を実装したソフトウェアを指すこともある。

キャパシティ 【キャパ】

定員、収容能力、最大積載量、許容量、受容力、包容力、などの意味を持つ英単語。ITの分野では、ソフトウェアやシステム、装置などが発揮できる最大の能力を指すことが多い。

具体的な内容は対象の種類によって異なり、記憶装置であれば記録できる最大データ量や管理できる最大要素数、通信回線であれば最高通信速度、マイクロプロセッサであれば単位時間あたりの最大命令実行回数、Webサイトであれば最大同時接続数などのことを指す。

キャパシティプランニング (capacity plannning/キャパプラ)

情報システムを開発・改修する際に、機材の台数や処理性能、記憶容量、回線容量などの計画を立てることを「キャパシティプランニング」という。俗に「キャパプラ」と略されることもある。

利用者数や利用頻度、処理の内容、扱うデータの種類や容量、必要とされる信頼性、予算などからシステムのハードウェアやネットワークの構成を検討し、機材の種類や性能、台数、配置などの具体的な計画を作成する。

サイジング

大きさを調整するという意味の英単語で、ITの分野ではシステムやその構成要素について必要とされる規模や性能を見積もったり、状況に応じて適切な規模に拡張あるいは縮減することを指す。

システムの設計や調達に際し、利用規模に対して性能や容量が過小だと負荷に耐えられず障害を引き起こすが、過大だとコストの無駄が大きくなる。ピーク時に必要となる性能などについて適正な見積もりを行いサイジングに反映させることが重要となる。特に、サーバの運用規模を決めることを「サーバサイジング」という。

また、全体の規模ではなく、構成要素となる機器などの大きさや性能などを決めることを指してサイジングという場合もある。例えば、単一の大型コンピュータで運用していたシステムを、多数の小規模サーバを連結したものに置き換えることを「ダウンサイジング」(downsizing)という。

スケールアウト 【水平スケール】

コンピュータシステムの性能を増強する手法の一つで、コンピュータの台数を増やすことでシステム全体の性能を向上させること。処理を並列化、分散化できるシステムで適用される。

同じ構成・機能のコンピュータを複数台設置し、処理を分担することで全体としての性能を向上させる。安価なコンピュータを多数追加することで性能を向上させられるためコスト面で有利な場合が多く、また、システム全体として一台のコンピュータでは不可能な規模や性能を実現することもできる。ただし、物理的な機器が増えるため設置面積や消費電力、装置の故障・交換頻度などの面では不利となる。

一方、コンピュータの構成部品を増設・交換するなどして性能や容量を拡張する手法のことを「スケールアップ」(scale up)という。処理の分散化が難しく単体のコンピュータの性能が重要なシステムで適用される。

スケールアップ 【垂直スケール】

コンピュータシステムの性能を増強する手法の一つで、コンピュータの構成部品をより高い性能や容量のものに交換・増設することにより拡張すること。コンピュータ自体を丸ごとより高い性能のものに入れ替える場合もある。

メインメモリ(RAM)やストレージ(外部記憶装置)を増設して容量を増やしたり、より大きな容量の製品に入れ替えたり、CPU(マイクロプロセッサ)をより高性能なものに置き換えたりすることにより処理能力の向上を図ることを指す。

一部のデータベース系のシステムなど、機能的に複数台への分散や並列化が難しく、単体のコンピュータの性能がシステム全体の性能を大きく左右するような場合に用いられる性能向上手法である。一般に装置の価格は性能や容量が高いほど価格性能比が悪化していくため、高性能なシステムをスケールアップしていくのは極めて高コストとなる。

一方、コンピュータなどシステムを構成する機器の台数を増やすことにより能力の向上を図ることは「スケールアウト」(scale out)という。並列化や分散化が容易なシステムに適用でき、低コストな機器を多数投入することで安価に性能を向上できるとされる。

プロビジョニング

設備やサービスに新たな利用申請や需要が生じた際に、資源の割り当てや設定などを行い、利用や運用が可能な状態にすること。対象や分野によって「サーバプロビジョニング」「ユーザープロビジョニング」「サービスプロビジョニング」などがある。

“provision” は提供、準備、用意、引当、蓄え、などの意味で、ITの分野ではもともと通信事業者が加入者の求めに応じて回線を開通させるまでの一連の作業工程などのことを指していたが、他の分野でも資源の割り当てや初期設定などの工程を指す用語として広まった。

ユーザープロビジョニング

コンピュータシステムを新規の利用者が使えるようにする場合、ユーザーアカウントの作成やアクセス権限の指定、ソフトウェアの設定、個人用フォルダの割り当てなどの操作や作業を行う必要がある。これをユーザープロビジョニング、アカウントプロビジョニングなどという。

業務用のアプリケーションソフトなどの利用権(ライセンス)をまとめ買いしているような場合、どの利用者がどのアプリケーションを使用するかを管理し、必要に応じて適切に権限を付与・移転・剥奪する必要がある。このようなライセンス管理をライセンスプロビジョニングという。

サーバプロビジョニング

情報システムの運用などで、アクセス需要に応じてサーバコンピュータへオペレーティングシステム(OS)や必要なソフトウェアを導入し、システムやネットワークなどについての設定を行い、実運用に投入するまでの作業や操作をサーバプロビジョニングという。

すでに使用しているサーバの用途や設定の変更などを含む場合もある。必ずしも物理的なコンピュータの初期設定とは限らず、近年では仮想化された環境上に新たな仮想サーバを立ち上げる自動化されたプロセスを指すことも多い。

仮想マシン(VM)などにストレージ領域を割り当てるプロビジョニングでは、必要な容量を見積もって仮想ディスク作成時に固定的に確保する方式を「シックプロビジョニング」(thick:太い)、初期には最低限の容量のみ確保し、必要に応じて後から柔軟に追加する方式を「シンプロビジョニング」(thin:細い)という。

RASIS 【Reliability, Availability, Serviceability, Integrity and Security】

コンピュータシステムが期待された機能・性能を安定して発揮できるか否かを示すのに用いられる代表的な5つの特性の頭文字を繋ぎ合わせた用語。

「R」は “Reliability” の略で、「信頼性」と訳される。障害や不具合による停止や性能低下の発生しにくさを表す。稼働時間当たりの障害発生回数(MTBF:Mean Time Between Failures)などの指標で表すことが多い。

「A」は “Availability” の略で、「可用性」と訳される。稼働率の高さ、障害や保守による停止時間の短さを意味する。稼働が期待される時間に対する実際の稼働時間の割合(稼働率)などの指標で表すことが多い。

「S」は “Serviceability” の略で、「保守性」あるいは「運用性」と訳される。障害からの復旧やメンテナンスのしやすさを表す。障害発生から復旧までの平均時間(MTTR:Mean Time To Repair)などの指標で表すことが多い。

「I」は “Integrity” の略で、「保全性」あるいは「完全性」と訳される。システムが管理するデータの一貫性が維持される性質を表し、過負荷や障害、誤操作などによるデータの破壊や喪失、不整合などの起こりにくさを意味する。

「S」は “Security” の略で、「安全性」あるいは「機密性」と訳される。外部の攻撃者や内部犯、マルウェアなどによる攻撃への耐性を表し、不正侵入や遠隔操作、データやプログラムの改竄や破壊、機密データの漏洩などの起こりにくさを意味する。

RASとの違い

元になった概念は先頭3つを繋いだ「RAS」(Reliability, Availability and Serviceability)で、1970年代に米IBM社がメインフレーム製品の特性を表す用語として提唱した。「RASIS」は日本語以外の資料には記載が極めて乏しく、欧米圏ではその後も(現在も)専らRASの用語が用いられており、RASISは日本で独自に拡張されて広まった用語であると考えられる。

信頼性 【リライアビリティ】

一定の条件下で安定して期待された役割を果たすことができる能力。機械やシステムの場合は故障など能力の発揮を妨げる事象の起こりにくさ。日常的には「情報の信頼性」というように、信憑性や信用性に近い意味合いでも用いられる。

人工物について信頼性という場合、定められた条件(製造元の指定する定格値など)下で一定の期間(耐用年数など)、期待される機能を提供し続けることができる性質を表す。

修理不能な製品の場合は故障や破損のしにくさがそのまま信頼性とみなされ、平均故障率(FIT:Failure In Time)や平均故障時間(MTTF:Mean Time To Failure)などの指標が用いられる。修理可能な製品では平均故障間隔(MTBF:Mean Time Between Failures)などで表され、保守性(maintainability/serviceability)を含んだ概念となる。

信頼性にいくつかの性質を加えて、システムが期待された機能・性能を安定して発揮できるか否かを検証するための評価項目として用いる場合がある。よく知られるのは信頼性に可用性(Availability)と保守性(Serviceability)を加えた「RAS」で、これに完全性(Integrity)と機密性(Security)を加えたものは「RASIS」という。

可用性 【アベイラビリティ】

システムなどが使用できる状態を維持し続ける能力。利用者などから見て、必要なときに使用可能な状態が継続されている度合いを表したもの。

可用性の高さは、使用可能であるべき時間のうち実際に使用可能であった時間の割合(稼働率)で示されることが多い。例えば、24時間365日の稼働が求められるシステムの稼働率が99.9999%であるとすると、年間平均で約31.5秒間使用不能な時間が生じることを意味する。

重要な業務システムなどに用いるため、装置の二重化や複数のコンピュータによるクラスタリングなどの措置を講じ、装置の故障やメンテナンスがあってもシステムが提供する機能やサービスが停止・中断しない状態を「高可用性」(HA:High Availability)という。

似た概念に「信頼性」(reliablity)があるが、これは機器などの故障、破損、障害の起きにくさ、停止しにくさを指す。定量的には、単位期間あたりに故障が起きる確率である故障率や、故障から次の故障までの平均期間である平均故障間隔(MTBF)などで表される。

ある一つの装置などについては可用性の高さと信頼性の高さは一致することもあるが、複雑・大規模なシステムでは、装置やシステムを複数用意して一つが停止しても全体が停止しないようにすることで、低い信頼性の要素を組み合わせて高い可用性を確保することもできる。

情報システムに求められる特性として、可用性、信頼性、保守性(整備や修理のしやすさ)の3つの頭文字を繋げた「RAS」(Reliability Availability Serviceability)や、さらに完全性(Integrity)、機密性(Security)の2つを追加した「RASIS」の概念がよく用いられる。

保守性 【保全性】

機器やソフトウェア、システムなどが備える特性の一つで、所定の条件で修理や交換などの保守作業を実施することで、機能や状態が維持される性質。また、その容易さ。

機器やシステムなどの場合には、一定の水準の機能や性能を保つ上で、日常的にどのくらいの作業が必要になるかといった点や、一部が老朽化したり故障した際に、いかに容易に発見や修理、交換を行えるかといった点が中心となる。

ソフトウェアの場合には、誤りや不具合の発見・修正のしやすさや、事前に予定されていなかった仕様変更や機能追加などの行いやすさ、ソースコードの読みやすさといった点が中心となる。

インテグリティ 【完全性】

誠実、正直、完全(性)、全体性、整合性、統合性、などの意味を持つ英単語。ITの分野では、システムやデータの整合性、無矛盾性、一貫性などの意味で用いられることが多い。

データインテグリティ (data integrity/データ完全性)

データの処理・読み込み・書き込み・保管・転送などに際して、目的のデータが常に揃っていて、内容に誤りや欠けが無いこと(および、それが保証されていること)をデータの完全性という。日本語で「完全性」の訳語が当てられることもある。

データベースにおける正規化や制約の設定などが不十分でデータ間の関係に矛盾が生じたり、装置の障害やソフトウェアのバグによって内容の欠損や変質が起きたり、外部の攻撃者によって改竄されたりすると、完全性が損なわれることになる。

MTBF 【Mean Time Between Failures】

機器やシステムなどの信頼性を表す指標の一つで、稼働を開始(あるいは修理後に再開)してから次に故障するまでの平均稼働時間。例えば、この値が10年ならば「10年の稼働時間の間に平均1回故障する」ことを表す。

ある期間における(あるいは複数の同じ機器における)機器の稼働時間の和を、その間に発生した故障の回数で除して求められる。例えば、あるシステムの運用状況を1年間調べた結果、総稼働時間が8000時間で故障による停止が4回起こっていた場合、MTBFは8000/4で2000時間となる。

一般にMTBFが大きいほど故障から次の故障までの間隔が長く、長期間安定的に利用できる。MTBFは何度も繰り返し修理して使用する前提の指標であり、故障、破損したら修理できず破棄・交換される機器の場合には、同様の指標のことを「MTTF」(Mean Time To Failure:平均故障時間)と呼ぶ。

機器やシステムの種類や用途によっては、始動してから停止せず稼働させ続ける連続動作時のMTBFと、始動・停止を繰り返す間欠動作時のMTBFを別に求めて表示することもある。多くの機器では連続動作の方が使用環境としては過酷なためMTBFが短くなるが、始動時や停止時に大きな負荷のかかる機器(蛍光灯やハードディスクなど)では間欠動作時の方がMTBFが短くなることもある。

MTBFが数か月から数年以上に及ぶ機器などの場合、実際にそれより長い期間、同じ機器を試験し続けることは現実的でないため、大量の(新品の)機器を用意して並列に試験し、稼働時間と故障回数を合算して算出することが多い。この場合、いずれの機器も新品状態から短い期間しか観察されないため、長年使用し続けた時に生じる摩耗や劣化による故障を正しく反映しない場合もある。

MTTR・稼働率との関係

これに対し、一回の故障・修理にかかる平均時間のことは「MTTR」(Mean Time To Repair)という。MTBFを、MTBFとMTTRの和で除したものは全時間に対する稼働時間の割合、すなわち稼働率(operating ratio)となる。

例えば、ある装置のMTBFが999時間、MTTRが1時間であれば「平均999時間稼働するごとにトラブルで停止し、平均1時間の復旧時間を挟んで稼働を再開する」ことを意味するため、稼働率は999/(999+1)で0.999(99.9%)となる。

MTTR 【Mean Time To Repair】

機器やシステムなどの保守性を表す指標の一つで、故障などで停止した際に、復旧にかかる時間の平均。例えば、この値が10時間ならば「修理に平均10時間かかる」ことを表す。

ある期間のうち、故障などで停止してから稼働を再開するまでにかかった時間(ダウンタイム)の和を停止回数で除して求められる。例えば、あるシステムが調査期間中に10回停止し、停止時間の合計が100時間だった場合、MTTRは100/10で10時間となる。

MTTRが小さいほど復旧までの時間が短いことを表し、機器やシステム自体の保守性(serviceability)や運用組織の即応性や熟練度が高いことを意味する。MTTRの算出には稼働時間の長さは考慮されないため、対象の信頼性の高さ、堅牢性などは別の指標で測る必要がある。

MTBF・稼働率との関係

これに対し、故障(後の再始動)から次の故障までの平均稼働時間を「MTBF」(Mean Time Between Failure)という。MTBFを、MTBFとMTTRの和で除したものは全時間に対する稼働時間の割合、すなわち稼働率(operating ratio)となる。

例えば、ある装置のMTBFが999時間、MTTRが1時間であれば「平均999時間稼働するごとにトラブルで停止し、平均1時間の復旧時間を挟んで稼働を再開する」ことを意味するため、稼働率は999/(999+1)で0.999(99.9%)となる。

稼働率

設備などがある期間に受けた要求に対して実際に提供した能力の割合。ITの分野では、全時間に対する稼働時間の割合を意味する。この値が高いほど可用性が高いことを示している。

機器やシステム、回線などについて、稼働が期待される全時間のうち、故障やメンテナンスで停止している時間を除いた実質の稼働時間の比率を表す。この値が高いほど可用性・信頼性の高いシステムであると言える。例えば、24時間365日無停止が期待されるシステムの稼働率が99.999%の場合、1年間に5分程度停止していることになる。

他の産業分野では、生産実績(あるいは生産需要、要求)に対する生産能力の比率を意味し、需要に対して十分な能力が提供されているかどうかを測る指標となる。例えば、1日100個の生産能力を持つ製造機械がある日に50個生産すれば、その日の稼働率は50%となる。また、100室のホテルがある日50室埋まっていれば、その日の稼働率は50%となる。

この場合、稼働すべき時間に対して実際に稼働できている時間の比率は「可動率」と呼ばれる。IT業界での稼働率は他業界での可動率にあたる。

故障率曲線 【バスタブ曲線】

機器や装置などの稼働開始からの時間経過と故障の発生率の関係を図に表したもの。曲線の形状が浴槽を横から見た時の形に似ていることから「バスタブ曲線」とも呼ばれる。

横軸に時間、縦軸に故障率を取り、原点を稼働開始、故障率0として時間の経過に伴う故障率の増減を曲線で図示する。

稼働開始すぐは初期不良の顕在化などから故障率が高い水準からスタートし、その後急激に減少する「初期故障期」と呼ばれる。この段階での故障は設計ミスや製造不良によるものが多い。

ある程度時間が経過すると、故障率が低い一定の水準で推移する、安定した「偶発故障期」に移行する。この期間における故障は偶発的な要因によるものが多い。

稼働開始から長い時間が経過すると、次第に故障率が上がり始め、時間とともに上昇率も増大していく「摩耗故障期」を迎え、やがて製品寿命を迎える。長期間使用したことによる摩耗や劣化、損耗などが蓄積し、故障に繋がる期間である。

イニシャルコスト 【初期費用】

物事を始めたり、新しい物を使い始める際に、最初に必要になるコストのこと。使用開始までにかかるコストで、物品の購入代金やサービスの契約料、運搬や設置、設定などにかかる費用が該当する。

ITの分野では、機器やソフトウェア、システム、サービスなどを新たに利用する際に、利用を開始する時点までに必要となる費用の合計を意味する。

調達計画の作成や製品の購入、設置や配線、初期設定、利用者のトレーニングなどのために支払う代金や経費が含まれる。オーダーメイドの製品では設計や開発、製造、テストなどにかかる費用も含まれる。旧システムやサービスからの移行費用を含める場合もある。

一方、使用開始の後、使用を継続するためにかかる費用のことは「ランニングコスト」(running cost)という。電気代などのインフラ費用、リース代やサービスの利用料金、状態の監視や点検、修理、交換、消耗品の補充や交換、利用者への対応などにかかる費用が含まれる。関連業務に携わる人員の人件費や施設の家賃などを含める場合もある。

初期コストとランニングコスト、および使用終了後の廃棄コストや(後継製品・サービスへの)移行コストをすべて合計したものは「総所有コスト」(TCO:Total Cost of Ownership)と呼ばれる。

TCO 【Total Cost of Ownership】

機器やソフトウェア、システムなどの入手、導入から使用終了、廃棄に至るまでにかかる費用の総額。ITの分野では情報システムの導入から破棄までにかかる総コストを表すことが多い。

システムの開発や購入、導入などにかかるイニシャルコスト(初期費用)と、利用期間中の運用や保守、管理などにかかるランニングコスト、利用終了時の撤去や廃棄、後継システムへ引き継ぐための準備などにかかるコストなど、システムに関連する全期間にまたがる費用の総体を意味する。

従来、企業などが導入する製品の選定にあたっては、その購入価格や開発費などのイニシャルコストが重視されてきたが、初期費用が低廉でも運用や管理、廃棄に高額の費用がかかっては全体としては高コストになってしまうため、総所有費用の算出や見積もりを行なって比較するべきであるとする考え方が普及した。

見えにくいコスト

イニシャルコストは製品価格、開発委託料のような「見えやすい」コストが多い一方、ランニングコストには「見えにくい」コストが多くある。

保守契約の費用や消耗品の価格などは見えやすいが、不具合や脆弱性が多い低品質の製品だと、システム障害やサイバー攻撃などによる停止が頻発し、その対応コストに加えて業務が停止することによる逸失利益もコストとなる。

また、使いにくいシステム、分かりにくいシステムでは、利用者の教育・訓練コストやシステム部門のサポート対応コスト、誤操作による生産性の低下などのコスト増を招くことになる。これらは調達コストの安易な引き下げによって生じることも多いため、導入製品の選定や開発にあたっては運用時のコストを十分に見極めて総所有費用を最適化する視点が欠かせないとされる。

ランニングコスト 【運用コスト】

施設や設備を使用中にかかる費用のこと。対象の使用開始から終了(廃棄・売却など)までの間に必要な費用で、使用や管理、保守、修理などにかかる費用の総体である。

対象によって内訳は異なるが、典型的な費用としては使用時の光熱費や通信費、消耗品の購入費、点検や修理の代金、(自動車や建物などの場合)税金や保険料などが該当する。同じ対象でも使い方によって異なり、また、総額は使用期間に応じて増大していくため、算定や比較を行う場合には典型的な使用状況を想定した単位期間あたりの額を算出することが多い。

一方、対象の購入や製造、導入にかかる費用のことは「イニシャルコスト」(initial cost)という。使用開始にあたり最初に一度限り必要になるコストのことを指す。例えば、プリンタの購入代金はイニシャルコスト、一回の印刷にかかる用紙やインクの費用、電気代がランニングコスト(正確を期せば廃棄までに想定される修理代金を一回あたりに分割した費用なども含まれる)となる。

ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる