今回のハードウェアの信頼性について説明する。その前に、お話を一つ。
人里離れた温泉に向かって山道をドライブしていると、なんだかエンジン音がおかしい。何が起こったのか分からないまま走っていたら、とうとう止まって動かなくなってしまった。
ボンネットを上げて見てはみたが、プロじゃないのでさっぱり分からない。携帯電話で修理屋を呼ぼうとしたが、山奥なので電波が届かない。もちろん近くにガソリンスタンドや公衆電話があるはずもない。通りかかる車もなく、家族を残して私は歩いて山を下り始めた。幸いにも民家を見つけたので、電話を借りて修理屋に連絡がついたが、到着するまで1時間以上待たされた。
この間、家族は暖房もない山中で心細い時間を過ごし、生命の危険すら意識したと、後で聞いた。やっと来たレッカー車に牽引されて何とか街に戻れたが、修理するのにまた何時間か待たされた。原因を聞いても、よく分からないので複数の部品を交換しておいたとしか答えない。
また故障しないかとヒヤヒヤしながら、すっかり暗くなった山道を再び走っていると片方のヘッドライトが消えてしまった。もう一方のヘッドライトは大丈夫だったので、少し暗いがそのまま走り、目的の温泉についたときにはすっかり疲れ果てていた。せっかくの温泉旅行もこのことで台無し、悲惨な休暇となってしまった。
RASとRASIS
もちろんこれはフィクションだが、ここまでではないにせよ、これに近い経験をされた方があるかと思う。実際、30年以上前の車は今ほどの信頼性はなく、長距離を走る前には故障することを心配するのが普通だった。10年も故障しない車なんて考えられなかったから、2年に1回の車検や半年ごとの定期点検は安全のために重要だった。
ともかく、壊れにくいことが最低限の信頼性であり、ここでは「狭義の信頼性(Reliability、以下単に信頼性)」と呼ぶことにする。また、万一壊れた場合にでも、全体の機能には影響しないようにすることを「可用性(Availability)」、壊れた部分を的確に見つけてすぐに修理することを「保守性(Serviceabiliy)」と呼び、これらの頭文字をとった「RAS」を「広義の信頼性」と呼ぶことにする。
先の例でいえば、ヘッドライトが二重化されているのが可用性、修理屋がすぐに来て短時間で回復できることが保守性に当る。なお、「保全性(Integrity)」と「機密性(Security)」を加えた「RASIS」を広い意味での信頼性とする場合もあるが、今回は触れないことにする。
社会を支える「骨格」
身近な車の例でお話したが、コンピュータの歴史にも少し触れてみよう。
もともとコンピュータは「計算機」であり、そろばんや計算尺に代わって高速に計算を行う用途に使われてきた。大きくは、お金の計算などの“事務用”と構造解析などの“科学技術計算用”に分けられ、それぞれ専用のコンピュータが開発・製造されていた。
前者が十進数であり後者が浮動小数点数、あるいは、前者がCOBOLで後者がFORTRANでプログラムされたとイメージすれば分かりやすいと思う。
当時高価だった計算機を用途ごとに作るのは効率的ではないので、どちらの用途にでも使用できる計算機が生まれ、「汎用コンピュータ」と呼ばれて広く利用されることになった。汎用コンピュータは、企業内での使用にとどまらず、座席予約や銀行オンラインシステムなど一般の人も利用する社会的なインフラストラクチャとして活用・発展することになる。
その後技術も進歩し、小形で安価なコンピュータも出現し始める。ミニコンピュータやマイクロコンピュータと呼ばれるコンピュータがそれに当るが、まだ部門内や趣味としての用途が主だったので、これらと区別するために汎用コンピュータのことを「メインフレーム」と呼ぶようになった。まさに社会を支える「骨格」としての役割をメインフレームが負うことになり、当然それに伴って、広義の信頼性を兼ね備えることが必須要件になってきた。
銀行オンラインシステムは、1980年代に第3次オンラインとしてメインフレームを用いた大規模なシステム開発がなされ、他の銀行口座でもATM(Automated Teller Machine)から現金が引き出せるなど、現在の形に近い運用が行われるようになった。当時は、平日の9時から5時のようにATMが稼働する時間は限定されていた。もちろん、月次引き落としなどのバッチジョブの走行で、装置は夜間や休日も稼働させていたが、緊急の場合などは休日の夜に装置を止めて点検・修理することは可能だった。
現在ではATMの24時間稼働や全世界からのアクセスを行うなど、24時間365日ノンストップのサービスが求められ、正月などの連休ですら点検や修理の時間を確保することが難しくなっている。これに対応するには、単に壊れないだけではなく、稼働しながら点検・修理、さらにはシステムの増設・更新まで行えるようにする技術が必須になっている。