発足後50年に渡り致命的な障害もなく稼働していた全銀ネットこと全国銀行資金決済ネットワークがなぜ急に大規模障害を引き起こしたのか。
憶測も含みますが、紹介しようと思います。
障害の原因
原因はRCと呼ばれる全銀センターと通信するための中継コンピュータをバージョン17から23に切り替える際にソフトウェアにバグが混入したこととのことです。
記事執筆現在はバグは修正され、障害も復旧しています。
障害の遠因
あくまでこれは予測ですが使用されているハードウェアもソフトウェアも規格が古すぎるのも今回の障害の一因だと思われます。
使用されているハードウェア
この記事にあるように、全銀ネットのシステムにはメインフレームと呼ばれる汎用性のはの字もない太古のコンピュータが使われています。
全銀ネットのメインフレームは富士通製が採用されており、すでに富士通はメインフレームの製造・販売・保守から撤退を発表しています。
使用されているソフトウェア
レガシーとも揶揄されるメインフレームに加え、COBOLという1959年生まれの還暦を過ぎたおじいちゃんプログラミング言語を使用していたことも原因の1つと考えられます。
古い=悪いとは言いませんが、古いかつ人気も低いとなると、そもそも扱えるエンジニアが限られ、開発が困難になります。
全銀ネットが選択した今後の展望
全銀ネットも上記した内容は問題だと考えていたらしく、以下のような対策を計画していました。
メインフレームとCOBOLからの脱却
今回の障害とは関係なく、全銀ネットはメインフレームとCOBOLから脱却して特定のベンダー(開発会社)に依らないシステムを作ろうとしているようです。
メインフレームからオープン基盤へ
オープン基盤とはメインフレームのような独自OSなどで構成されたものではなく、基本的にUNIX系やLinuxなどのオープンソースで構成されたコンピュータのことを言います。
ちょっとすごいパソコンみたいなイメージです。
COBOLからJavaへ
ソフトウェアも比較的新しく、人気も高いJavaというプログラミング言語に移行するようです。
オープン基盤かつJavaでの開発となれば多数のエンジニアが対応可能であり、ベンダーロックインに陥りにくいとの考えだと思われます。
実際、NTTデータ、日本IBM、NEC、日立製作所、BIPROGY(旧日本ユニシス)、富士通などの複数企業に次期システムの提案依頼を出したようです。
記事執筆現在ではNTTデータに決定したようです。
COBOLとJavaの比較
「Hello World」と出力するソースコード例を以下に示します。
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLO-WORLD.
000300 PROCEDURE DIVISION.
000400 MAIN-PROCEDURE.
000500 DISPLAY "Hello World"
000600 STOP RUN.
000700 END PROGRAM HELLO-WORLD.
public class Main {
public static void main(String[] args) {
System.out.print("Hello World");
}
}
Javaの方が大分わかりやすいですね。
ネット上で見かけたデマ
3通りのURLを貼り付けていますが、削除対策であり、3つとも内容は同じです。
あたかもCOBOL→Javaでの障害のように書かれていますが、記事執筆現在判明している記事では障害を起こしたのはメインフレームであり、次期全銀システムではありません。
しかも障害の原因が次期システムを担う「怪しい営業」であると表現しており、NTTデータへの名誉毀損と取られかねません。
安易に他者を貶める行為はしない、見かけても拡散しないようにしましょう。
まとめ
障害に繋がりうる要因を排除するのはエンジニアの責務ですが、システム開発に障害はつきものです。
批判はあって然るべきですが、誹謗はやめてあげてほしいです。
コメント