原因は多分しょぼい

その他

先日、マイナンバーカードによる証明書発行不具合が発生した。とニュースになりました。
コンビニでの交付サービスです。住民票とか戸籍謄本とかが24時間交付できるサービスで非常に便利なものです。

どんな不具合だったかというと、他人の証明書が交付されるというもの。横浜市で十数件。川崎市でも1件発生したとのこと。人ごとではありません(が、そうそう当たるモノでもないし、利用するサービスでもないですが)。

新聞の記事を読み解くと
・マイナンバーカードのシステム自体には問題は無い
・証明書発行システムは国ではなく各自治体で整備
・今回問題があったシステムはすべて富士通Japan製
とのこと。

2番目の「各自治体がシステム整備」は、自治体ごとに利用しているシステムが別々という事情があるようです。
今回の問題で厚生労働省は「システムを停止して点検。自治体も協力して欲しい」と要請を出した。 ←イマココ

川崎市の情報では、
・戸籍全部事項証明書を申請したところ、別人の証明書が発行された
・市内2箇所のコンビニで2人が1秒以内のほぼ同じタイミングで申請したところ、先に申請した人に後の人の申請内容を上書きした
・川崎市独自の「個別連携システム」(戸籍システムとコンビニ甲府システムとのデータ連係システム)が原因
・「個別連携システム」は富士通Japan製
とのこと。

※ここまでの情報はすべて朝日新聞の記事の内容を抜粋

 
 
私はSEの端くれなので、この問題を考えてみようかな。と思ったのですが、記事を読んでいる途中から「アホな設計してるなぁ」とあきれてしまいました。なんとなく大まかな原因が見えてきてしまい・・・(ここには書きません)。もっとも新聞記事からだけの情報なので信憑性は低いのですが、私はいつもこんな情報からシステムの不具合を推測して試験を行う立場で、対策した内容について対応者に突っ込みを入れるなどしている関係でついつい・・・(笑)
なので、「そんな考えもあるよね」程度で読んでいただければと思います。

 
まず「1秒以内のほぼ同じタイミングで」とありますが、自宅のPCなどでもそうですが、処理能力はどうですか?たとえば皆さん大好きなダブルクリック。1秒で何回マウスクリックできますか?5回くらいとしましょうか。つまり、1秒で5回はPCに処理依頼ができるわけです。個人用PCでもそれくらいは出来るのです(実際もそんなもんではないです。その後の動作についてはソフト次第なので別の問題です)。
今回のようなシステムでは「1秒間にXXX回の要求を処理できること」という定義が行われているはずです。なのでたかだか2名が1秒以内に同じ操作(IDは違うので別データ)をしたところで問題は発生しない。というのが普通の考えになります。

では、なぜ今回のような問題が発生したのか?
それは、「1秒以内のほぼ同じタイミングで」ではなく「最初の要求から終了までの間に、別の同じ要求処理が行われた」というところがポイントになるでしょう。ということです。

一人目の証明書要求の処理に3秒程度かかった。その3秒の間に二人目の証明書要求が行われ、一人目の証明書要求を上書きした。

これが今回の問題の動作だったと考えられます。(3秒というのは適当(それっぽい数値)です。「それくらい」といったイメージです)
では、このどこで「上書き」が発生するのか?という点を考えていきます。

・・・というような感じで考えていきます。
皆さん、いろいろ考えてみましょう。頭は使うモノです。錆びさせてはもったいないです。