digital-narcis.org
 
基礎情報学/ネオ・サイバネティクスの研究,論考発表サイト
 

日本語 | English

瑞穂の国ゆらゆら

◎銀行の厄年

 国有化の噂も出て、今年も昨年につづき、銀行にとっては厄年らしい。

 昨年秋の中間決算で発表された合理化策はひどかった。一番目立つのは、第一勧銀、富士銀、興銀を併せ、世界最大の金融機関として華々しく発足した「みずほフィナンシャル・グループ」である。年収を平均十パーセント減らし、約三万人の行員のうち六千人をリストラするという。

 みずほ銀の行員は気の毒である。昨年はコンピュータ障害でも随分叩かれた。そう、あのATM(現金自動預入払出機)トラブルが起きたのは、たしか四月一日、まさにみずほ銀が発足した朝のことだった。

 口座からの振り替え、引き落としができない。送金処理だけでなく、電気、ガス、クレジットなどの料金支払もストップし、二重引き落としさえ生じた。人海戦術の手作業で対応したものの、なかなかシステムは復旧せず、混乱は日に日に拡大するばかり。

 ついには社長も衆院委員会に呼びつけられる。某大臣殿は「今時、ATM故障なんか、アホなことあるかいな」と塩辛い顔で一喝したという(もしかしたらこの大臣殿、ATMが巨大なシステムの一部ではなく、独立した機械だと思いこんでいたのかもしれないが)。ともかく、正常処理に戻るまでの約一ヶ月間、みずほ銀はマスコミをはじめ各方面からの集中非難を浴び続けた。

 さて事件の主要因は、三行の内輪もめということでケリがついたようである。これまで第一勧銀はIBM、富士銀は富士通、興銀は日立のコンピュータを使っていたのだが、それぞれが自行の技術に固執し、統合作業が順調に進まなかったというわけだ。それで経営責任が問われたのだろう。

 だがはたして原因は「意地のはりあい」とか「たるみ」などだけだろうか。それも有ったのかもしれないが、僕から見ると、本質的な問題がなおざりにされている。端的にいえば、異機種のオンライン・リアルタイム・システムを短期間で統合するなど、もともと無謀きわまりない話なのだ。

 断っておくが、僕は一介の貧乏人だ。みずほ銀に限らず、銀行の肩をもつ義理など全くない。ただもしかしたら、みずほ銀の障害はただの人災ではなく、もっと大きな何かを象徴しているという気がするのである。これを人災と片づける人々は、コンピュータ社会というものを甘く見ているのではないか。

◎みずほ銀の障害

 障害が生じたのは、第一勧銀の富士通システムと富士銀のIBMシステムとをむすぶ結合部分である。どうやら、既存の二つのシステムを温存して、それらをつなぐ中継システムを作り、四月の発足に間に合わせようとしたらしい。

 最初から一個の新統合システムを建設すればよかったという意見も出た。だがこのためには、刻々と内容が変化する稼働中の顧客ファイル類を、すべて新システムに一挙に移設しなくてはならない。メーカーが違うと細かい相違が多いから、これは相当の難事である。とすれば、中継システムで仮につないでおき、組織固めが進んだ段階で新システムへ移行するというのは、決して悪い案ではない。だが、障害はこの中継システムで起きた。

 噂によると、データ処理量が多すぎてオーバーフローしたという。そうでなくても三月末から四月初めは期末の決算で、データ処理量は激増する。それに直前の数日間は、切り替えのためシステムを停止していたはずだ。多分、これらを併せて何日分ものデータが集中豪雨のように押し寄せたのだろう。

 リアルタイム・プログラムを作るとき、設計者はおよその処理量を予測する。その範囲内で整合的に動くようにプログラムを組む。予測をはるかにこえるデータが到着すると、長い待ち行列ができる。プログラムの論理自体は間違いなくても、二次効果でやがて誤動作が生じてしまう。恐らくそんな原因ではなかったのだろうか。

 つまり、単純ミスではなく、処理量が例外的に多かったために不幸な誤動作が累積し、組み合わさったのではないかという気がするのである(ただし僕は調査をしたわけではないので、これは単なる推測にすぎないが)。

◎銀行オンライン・システム

 勘定系のオンライン・バンキングなど、素人目には単純至極に見えるだろう。基本は足し算と引き算、それにせいぜい利子の計算だけでいい。だが実はこれに加え、途方もなく面倒かつ精緻な処理が付随するのである。

 たとえば、ある口座への入出金処理がたまたま同時に実行されるとしよう。このとき致命的なミスが生じる恐れがある。仮に僕が講談社の口座に書籍代一万円を振り込み、同時にどこかの印刷会社が別のATMを使って同じ口座から百万円引き落とすとする。正しくは、処理後の口座残高は九九万円減少となるはずだ。ところがタイミングによっては、残高が一万円の増加となったり、逆に百万円の減少になったりする。コンピュータは、現在の残高をファイルから読み込み、加減算の後、結果の残高をファイルに書き出すので、二つの処理が並行して残高を書き込むと誤りが生じるのだ。

 これを防ぐため、同時実行制御といって、処理ごとにアクセスする口座残高に「鍵」をかける。処理実行中に誰かから書き込まれないためである。だが、それだけでは済まない。僕(の処理)が口座残高Aの鍵をかけて計算し、次に口座残高Bの鍵を要求したとしよう。このとき運悪く、印刷会社(の処理)が口座残高Bの鍵を持っていて、次に口座残高Aの鍵を要求中としよう。すると、僕と印刷会社とは互いに処理待ちになり、いわゆる「デッドロック」状態となって、処理が完全にストップしてしまう。そこで次はデッドロック防止用の方策が登場するのだが、まあここではキリが無いので省略させていただく。

 こういった論理的障害の対策に加えて、物理的障害の対策も不可欠である。コンピュータ本体がダウンしたらどうしようもない。そこで、二重系といって二つのコンピュータで同時処理するとか、一方を待機させておいてダウンした途端に切り替えるなどの方策をとる。ダウンといっても部分障害もあるから、切り替えのタイミングは複雑だ。それに、ダウンするのは本体だけはない。もしディスクが壊れたらどうするか。回線が切断されたらどうするか。地震や火災などで二重系のコンピュータがすべて破壊されたらどうするか。……何があろうと、何百億円の残高情報だけは死守しなくてはならないのである。

 信頼性をあげるために、顧客ファイルのコピーを複数もつ方策はどうだろうか。しかし、たとえば同じ口座残高が東京のコンピュータと大阪のコンピュータの両方に記録されていたとすると、入出金のたびに二つを同時に書き換えなくてはならない。もし東京・大阪間の回線にトラブルがあってデータ送信のタイミングがずれると、致命的な混乱が起きる。つまり、刻々変更される顧客ファイルは原則として一個でなくてはならない。

 通常よく行われるのは、膨大な顧客ファイルの内容をすべて一定間隔で(たとえば毎晩真夜中に)ディスクに書き出しておくことだ。一方で当ファイルに関する一日分の全処理のデータを「ジャーナル」と呼ばれる磁気テープに逐次記録しておく。いったんファイル障害が起きれば、前日のコピーからファイル内容を障害前の状態に戻し、ジャーナルからデータを逐次読み込んで処理を再現する。

 ――などなど幾らでも書けるが、こんなものはほんの一部にすぎない。ともかく、稼働している銀行オンライン・システムとは、途方もなく複雑精緻な論理の巨峰なのだ。むろん、その詳細は厳重な社外秘である。幾重にもセキュリティの壁が築かれていて、たとえ担当者でも細部のすみずみまで熟知しているわけではない。知識は担当守備範囲に限られる。さらにセキュリティ上はそのほうが望ましいとも言えるのだ。

◎「完全」の無い世界

 パソコンが普及して、誰でもコンピュータを使えるようになった。

 僕にはパソコンで遊ぶ趣味など全然ないので、マニアにはとてもかなわない。文系のマニアも結構多くて、いろいろな雑誌にコンピュータについての評論的文章が載っている。ふむふむと拝読しているが、ときおり苦笑してしまうのは、コンピュータ社会の捉え方があまりに幼稚で偏っているからだ。

 コンピュータとはパソコンのことだけではない。パソコンが壊れてメールが送れなくても、たぶん人命に影響はないだろう。だが、社会的インフラが転覆すればそうはいかない。巨大な国際金融機関のコンピュータ・システムに大混乱が発生すれば、その被害は想像をこえる。なけなしの預金が消え去るばかりか、戦争さえ起きるかもかもしれない。みずほ銀のケースは、大噴火のほんの予兆ではないのだろうか。

 大手銀行の合併は、不良債権処理など、専ら経済的観点だけから論じられている。だが、これは一面的すぎるというものだ。僕たちの生活を支えるベースは、今やコンピュータの中に移行しつつあるのである。

 この国でオンライン・バンキングが始まったのは三十数年前のことである。一番手はたしか一九六五年の三井銀行だった。以来、システムは複雑大規模化の一途をたどり、ハードウェア/ソフトウェアの技術も洗練され続け、大手銀行のオンライン・システムは、通常ならまず金城鉄壁である。だが、精巧緻密に組み立てられ、セキュリティ・ルールで固められたシステムは、そうたやすくいじったり統合したりできるものではない。

 IT、とくにソフトウェアとは、その性質上、過去をひきずる技術である。新方式がいくら優れていても、すぐ乗り換えることは難しい。ファイルの互換性や、古い機械を使うユーザーへの配慮も大切だからだ。

 だからコンピュータ社会とは、ある意味で保守的にならざるをえない社会である。大規模なプログラムを作った経験者なら、誰でも「ソフトウェアに完全は無い」ことを知っている。設計者は知力をふりしぼり、あらゆる事態に対処しようと努める。しかし、一定の論理的複雑さを超えると、人間の想像をこえた異常な事態が必ずおきてくるのだ。

 とすれば当然、「これまでうまく動いていたプログラム」を尊重し、問題がおきれば最小限の修正で対処しようということになる。技術者の経験知である。ところが世間は、コンピュータ社会とは進展の速い社会、ドッグイヤーでめまぐるしく変化させていくべき社会だと信じ込んでいる。

 銀行オンライン・システムの本格的統合は今後まだまだ続く。世間の無理解のもと、担当技術陣の苦悩も無視して、それらは脅迫的なスケジュールで強行されていくのだろう。

 大規模なコンピュータ・システム統合の最上策は唯一つである。正確綿密なドキュメントを残し、後世に憂いを残さぬよう、慎重な上にも慎重に進めることだ。だが、そんな余裕など、担当技術陣に与えられそうにない。こうして論理の上に論理が危うく重ねられ、バベルの塔が積み上げられていく。

 ことは銀行システムだけではないのだ。電気、ガス、水道、鉄道、飛行機、原子力その他、みな同じである。あらゆる基幹の社会的インフラが、コンピュータの大規模で複雑な論理の上に乗っている。そして、ゆらゆらと揺れている。