表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
5/8

コの業界

 たまにはコロナじゃない事も……そうだな、直接ではないけど本職に絡んだ事でも書いておこう。

 と言っても、世間をにぎわせ終わったネタくらいしかないけど。

 日本で一番でかいと言ってもいい、メガバンクが去年、何度となくシステムトラブルを引き起こし、金融庁が立ち入ったとか何とか言う、アレです。ATMが停止してカードが飲み込まれちゃったとか、ニュースになってましたよね?

 システムがトラブルを引き起こす、というのは仕方ない、としておきます。あのシステムの詳細はさすがに知らないので、外野がアレコレ言えないと言うのもありますが、「人が作った物である以上、ミスはつきもの」ですからね。我々は神様ではないのですから。

 そう、一応はコの業界で暮らしている作者含め、業界の面々は「まあ、そういうものだし」と見ているのだけれど、ITジャーナリストとかいう人々は、それをネタに記事を書くのが飯の種なので色々と書いているようで。

 そして、一年ほど前、コの業界の半数以上――イヤもっとか?――が突っ込みを入れるような記事が書かれました。あの銀行でこれから起こるヤバい事、みたいな感じの記事で、検索すれば今でも読めるかと。

 内容はというと……ざっくり言ってしまうと、システムが複雑怪奇なのでどこでトラブルを起こすか予想も付かない、と言う事を書いているのだけれど、その原因というのがコの業界の人々から総突っ込みを受けるレベルの内容。

 簡単にまとめるとこんな感じ。


 COBOLという古い言語を使っているから複雑怪奇になっている


 夜間バッチなんて時代遅れの仕組みを使っているから問題を引き起こす


 この二つが「見当違いも甚だしい指摘」「何も知らない人間が書いているよな」と突っ込みを受けていたポイント。

 書かれていた二つの突っ込みポイントは何を言いたいのか、何がおかしいのか……コンピュータに詳しくない方にもわかるような説明を書いてみますかね。


 まず一つ目の「COBOLという古い言語~」だけど、これに関しては……何言ってるのかちょっとわからない、と言いたい。

 まず、COBOLという言語について簡単に。歴史をたどると1959年に事務処理用に開発されたプログラミング言語、とWikipediaに書いてありました。長い歴史があるとは思っていたけど70年以上使われているとは。

 1959年……昭和34年だそうです。その年に何があったのかというと……うん、南極観測隊がタロとジロの生存確認と言うニュースがありました、というくらい古くからあるコンピュータのプログラミング言語です。古いと言えば古いが、コの業界、COBOLなんて古いものはダメだと、と思っている人間は……いないと思います。ごく一部の意識高い系な人以外は。

 正確な統計をどこも取ってないというか、取れないので、感覚的なものでしかないらしいのですが、世界中の企業で動いている業務システムの半分くらいはCOBOLで書かれた物が今でも動いているのでは?とも言われているほど、いまだ現役の言語です。特に銀行系では今も現役のところが多いようです。詳細を公開している企業なんてほとんどないので、推測ですが、コの業界にいると、「ああ、○○銀行ね。あそこはどこそこのメーカーのコンピュータだよ」というのは何となくわかったりします。なぜわかるのかというのはいずれ機会がありましたらと言う事で。

 さて、なんで銀行系で、というのは割と簡単な理由があります。

 コンピュータが使う数値は二進数、というのはよく知られている事ですが、この二進数という奴、小数点以下の数字を表現するのがとにかく苦手です。二進数で小数点以下というのは……2のn乗分の一となるので、0.5、0.25、0.125……となり、実は0.1が表現出来ません。そのため、少し前のコンピュータ・プログラミング言語では0.1を10回足しても1にならないのは良くある事でした。ところが、COBOLは数値を10進数で扱いますので、0.1を10回どころか0.01を100回足したときも1になる事が保証されているのです。お金という、厳格に扱わなければならないものを相手にするのに適したプログラミング言語なのです。


 そして、二つ目の夜間バッチについて。

 コの業界以外には馴染みのない単語ですが、要するに昼間、窓口やらATMといった業務を動かし続け、店を閉めたあと、翌日の朝までの間に色々な処理をする、と言うものと思っていただければだいたい合ってます。銀行系の場合、クレジットカードや公共料金の引き落としとか、給与の振り込みと言った、あらかじめ特定の日に実行するコトが決まっている事を夜のうちにまとめて処理する、と言うものです。

 例えば、給料日が二十五日の人の口座を考えてみます。二十四日の営業終了時の残高が十万円で、振り込まれる給与が二十万と言う場合、二十五日の営業開始時点で既に残高が三十万になっています。これは二十五日の……だいたい二~五営業日前くらいまでに会社からこの人の口座に給与として二十万振り込んでくれ、と言うデータを受け取っていて、それを閉店後、朝までの間に会社の口座から二十万引き出して社員の口座に振り込む、と言う処理をやっているわけです。

 当然、銀行の規模や、日によって処理する量は増減しますが、多いときにはこの手の処理が数万件どころか数十万件、数百万件と言う単位で処理されます。これを昼間やったらどうなるかというと……まず、二十四日の昼間には処理出来ません。会社が社員に対して給料日が二十五日と示している以上、土日祝日などでもない限り、給料日前に振り込む事は決して出来ません。では、二十五日の営業開始後に処理する?その社員が何らかの理由があって二十五日に有休とって朝イチで引き出しに行ったら振り込まれていない……それもまずいでしょう。

 作者は銀行のシステム開発に関わった事はないのですが、一つだけ言えるのは、銀行のシステムで夜間バッチ無しとかあり得ん、と。ただ一方で、夜間のウチに処理を完結させるためには色々な工夫も必要で、お金を増やす処理、減らす処理それぞれが綿密に連携しないとまずいので相当な苦労をするはず、です。

 一応、元記事を読むと銀行自体の体制にも問題があって、というのが書かれてますが、そっちの方が問題だろうに……

 コの業界の人の認識として、あえて好意的に解釈すると、こんな感じかな……


 COBOLを使用している部分とそうでない部分、というようにシステムが複雑な構造になってしまっている。

 夜間バッチを効率よく処理出来るような設計がされていないため、処理時間の見通しや負荷分散の考慮がされていない。


 一番の問題は開発体制なんですけどね。

 なんでも、システム開発プロジェクトに参加した企業は約千社。日本にはシステム開発を請け負う会社が約一万あるそうなので、約一割の会社が参加した、と言う事になるほどの巨大プロジェクトだったわけです。平成のサグラダファミリア、なんて表現をされたりもしていましたね。意志決定をする経営層の意見がまとまらないまま、というのが足を引っ張り……これ以上は書かないでおこう、うん。

ちなみに作者はCOBOL以外のプログラミング言語をどのくらい使えるのかというと、十前後。あまり多くは無い、です。

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ