自動改札機トラブルの原因 ― 2007年10月13日 01時01分00秒
昨日(10/12)、日本信号製の自動改札機が起動しないというトラブルがありました。
サーバとのデータのやり取りで改札機側が異常を検出して意図的に電源を落としたということですね。
このような「仕様」がまともなのかどうかということを考えてみましょう。
あたかも日本信号というメーカが悪いような印象を受けてしまいますが、問題はそこではないと思います。つまり、サーバとの通信の問題で起動しないという仕様そのものに問題があると思います。恐らく、この仕様は全てのメーカの自動改札機に組込まれているのでしょう。
このシステムの考え方(このシステムの設計者)は「フェールセーフ」を全く誤解しています。データに異常があって仮に正常な運賃計算が出来ないとしましょう。そのときの「フェールセーフ」とは、例えば運賃を無料にしても改札自体は機能する、ということです。自動改札機を起動しない、ということはフェールセーフでも何でもありません。
この自動改札システムの設計者は恐らくそのような根本的な思想を分かっていません。ミスをしたらユーザではなく事業者側がそのツケを払うのが「フェールセーフ」の基本です。安直にシステムをダウンさせることではありません。「異常時には安全サイドの動作をさせる」ということはそういうことです。
また、そのような仕様だからこそ、同じソフトウェアで動作する自動改札機が一斉に動作しないという多大な不具合になってしまうわけです。
そもそも、何のために毎日始発前にサーバとデータのやり取りをする必要があるんでしょうか?何らかの設定データであれば、毎日通信するような無駄は不要です。
組込みシステムでもよく「リフレッシュ」などと称して、「念のため同じデータを周期的にやり取りする」ということが行なわれます。これはハードウェアに異常があっても周期的にデータを上書きすることにより現象を表に出さないという目的によるもので、なるべくシステムの「再起動」や「停止」を発生させないという効果があります。
今回の自動改札機の問題はこの「リフレッシュ」目的のデータ通信なのであれば、尚更、設計思想が間違っています。
運賃データなどは日々変更されるデータではありませんから、変更があるときだけサーバ側からイベントを通知してそれに対する改札機側の対応は個体に依存するやり方でデータの更新を掛けるなど、一斉にセッションが発生しないような処理とすることが必要です。サーバ側から一斉にデータの更新を要求する、というような一斉処理の思想がもしあるのであればいずれまた同じようなトラブルが発生することでしょう。 特に、今回はサーバ側に問題がなかったために改札機側のトラブルに見えますが、サーバが送信するデータが全ての改札機に対して間違っているような場合は、今度は、メーカに関係なく、一斉に自動改札機が動作しなくなるということになります。
さて、似たような話で、システムの二重化などがあります。IP電話などのサーバでも待機系に切り替わっても異常を増長させることになった事例が過去にあったと思います。これもフェールセーフの実装を間違ったためで、これらの事例を総合的にみると、まともな制御システムの設計ができる人間が少なくなっていることを感じてしまいます。
たまたまみてたらこちらにも記事があったのでトラックバックしました。
コメント
トラックバック
このエントリのトラックバックURL: http://kumikomi.asablo.jp/blog/2007/10/13/1850576/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
※投稿には管理者が設定した質問に答える必要があります。