完璧なシステムは作れないが,対策を講じる努力はしよう ―― 『システムはなぜダウンするのか』

大野 典宏

tag: 組み込み Interface

書評 2009年3月 6日

完璧なシステムは作れないが,対策を講じる努力はしよう

f1.jpg

大和田尚孝著
日経コンピュータ監修
日経BP社
ISBN-10: 482228381X
ISBN-13: 978-4822283810
312ページ
2,400円(税別)
2009年1月
Amazon.co.jpで購入

http://www.assoc-amazon.jp/e/ir?t=kumikomi-22&l=as2&o=9&a=482228381X

 2009年になって「盤石の大帝国」と思われていたGoogleが2回もエラーを起こし,たいへんな騒ぎになりました.

 まず,1月31日,検索結果のすべてに「このサイトはコンピュータに損害を与える可能性がある」という表示が出てしまいました.これは,悪意があるサイトを登録する際に,"/"というURLに必ず含まれる記号を入力してしまったために全部のWebサイトが対象だと表示されてしまったわけです.

 また,2月24日にGmailにアクセスできないという不具合が発生しました.新しいプログラムのバグにより負荷の集中が起こり,それが連鎖してしまったとのことです.

 これらの続いた不具合により,「Googleはいったい何をしているんだろう?」という不安を感じた人も多いかもしれません.特に,有料サービスのGoogle AppsでGmailを仕事で使っているユーザは大迷惑を被った訳ですから.

 このような事故は,Googleだけに限ったことではありません.ATMが停止してしまったり,電車が止まってしまったり,株の誤発注があって損失が出たりと,システムの不具合により,社会的に大きな被害を与える可能性がある世界で我々は生活しているのです.

 特に極端な例としては,枯れた技術を使い,何重にもバックアップ・システムを構築して安全を図っているはずのスペース・シャトルが何度も爆発したり,原子力発電所が緊急停止するという事故まで起こっている以上,ミスを取り除くことは不可能だと断言してしまっても過言では無いかもしれません.

 ひょっとしたら,明日の朝には預金残高が0になっている可能性だって「絶対に無い」と保証できる人はいないわけです.

 「失敗に達人というものはいない.人は誰でも,失敗の前には凡人である」というプーシキンの言葉の通り,みんな失敗しようとして何かを行っている人はいないのです.というか,そういう人がいたら,すぐに病院に行くべきでしょう.

 また,「重大災害を1とすると,軽傷の事故が29,そして無傷災害は300になる」という統計事例が「ハインリッヒの法則」として知られています.

 つまり,完ぺきなシステムというものを実現することが不可能である以上,いつでも1:29:300の比率,1/300の確率で重大事故に至るというわけです.

 でも,「人は必ず失敗する」とか「失敗の前には凡人である」と言われても,それで損失を被るのでは安心して生活できません.そこで,過去の失敗を分析することによって,システムの設計時には予測できなかった何が起こったのか,それを解決するためには何に気をつけなければならないのかを知り,その後に反映させなければなりません.同じ事故を繰り返したら,エンゲルスの言葉にあるとおり,「歴史の事件や人物は,いわば2度現われる.1度目は悲劇として,2度目は喜劇として」なのです.

 だいたい,大規模な事故の原因を探ると,後になって,「人の単純な勘違い」とか,「システム設計時における予測の甘さ」,「バグ」,「不慮の事故」に大別されます.最後の不慮の事故に対しては,そのような事故を想定して対策を講じておくしかないのですが,その他の三つは「起こってみない限り発覚しない」ので厄介です.システムのバグなどは,たとえばモジュールAは完ぺき,モジュールBは完ぺきだと証明されても,モジュールAとモジュールB間のデータ転送や数値変換の仕様が合っていて必ず動くという保証はないわけです.システムが大規模になり,モジュールが増えたら,「全ての組み合わせ」が天文学的な数値になってしまうようであれば,全部のテストをしている時間などあるわけがありません.

 まあ,たいていの場合には,想定される組み合わせは限られるので,それで通常に動いている例の方が多いのですが,「ハインリッヒの法則」によって,あり得ないと思っていた組み合わせが起こって大事故に至る可能性はあるのです.

 評者は別に読者を脅かしたいわけではありません.現実に,そういうリスクが存在する世の中で暮らしているということだけは忘れてはいけないという事実を述べているだけです.

 さて,本書は,そういったミスの例を詳細にわたって紹介しています.かなり詳しく,事例も多いのでとても勉強になります.こういう前例があるということを知っていながらチェックを怠って失敗したら,エンゲルスが言ったとおり「喜劇」になってしまいます.

 少なくとも,どこにミスが入りやすいのかを知っておくとか,どこを重点的にチェックするべきだとか,十分なマージンを持たせるとか,多重化しておくといった対策を立てなければ,1/300の事故を引き起こしかねない立場にいるのだという自覚は必要だと思います.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日