見出し画像

古いアプリの移行問題

富士通のメインフレーム撤退問題

NECメインフレーム上のCOBOL言語で書かれたシステムを刷新しようとして京都市が2014年から2020年まで2度に渡って失敗を繰り返したニュースにはレガシーシステムを使い続けることの難しさを物語っているので注目していたが、2022年になってとうとう富士通が2030年にメインフレーム事業から撤退するとのニュースが飛び込んできた。京都市のようにレガシーシステムの刷新に苦しんでいる企業はとうとうタイムリミットを切られてしまったわけだ。AWS(アマゾンウェブサービス)などではCOBOLで書かれたシステムのクラウドへの移行を支援するパッケージをアナウンスしていたりするので、なぜ移行が進まないのか不思議だったが、先日ある経済紙の「COBOL移行の闇」という記事を見て納得した。その記事で指摘しているのはその昔COBOLでのシステム開発を簡略化するために「CASE」というノーコードプログラムツールを使って作成した案件が多数あったらしい。つまり、人がCOBOL言語でプログラムを書いたのではなく、仕様を入力するとCOBOLを自動生成するツールを使った部分が多くあり、しかもそのツールは色々なベンターが多数開発していて今はもう開発を終了しているという。プログラマーが聞いたら正真正銘のホラーである。自動生成されたCOBOLコードは人間には解読できないが、CASEツールはもう開発が終了して存在しない・・・・詰んでいるよ。

わが身にも同じ問題が発覚する

先のは話は実は他人ごとではない。私自身が2000年以前に作成したCAI(教育用プログラム)が未だに学習塾で使われていて、DOS、Windows95、Windows98、Windows2000、WindowsXPとOSを乗り換えて20年以上使われ続けていたのだが、とうとうWindows7で動かなくなってしまった。Windows7のXPモードでも動かず、Windows7上でVMWareを使ってWindowsXPを仮想OSとして動かすことで何とか動いたものの、システムのオーバーヘッドために微妙に遅くて使い物にならなかった。
自分が作ったプログラムなのだから今のOS用に別の言語で作り直せということになるが、それなりの手間がかかるんだなこれ。
そこで、Windows7のパソコンに無理やりWindowsXPをセットアップして動かすことにした。ただし、さすがにLANドライバが動作しないので、WindowsXPで動くLANアダプタを入手しなければならない。
規模は小さいとはいえ、先のCOBOLの移行と同じ問題が発生している。

3つの選択肢

整理するとレガシーシステムを使い続けるには3つの選択肢があると思われる。
1.システムが動作しているOSを仮想化などでの技術で動かし続ける。
2.古いプログラムを最新のものに書き換える。
3.仕様を元に作り直す。
コスト的には1<2<3となるだろうか。
そもそも3については京都市などのケースでは仕様を理解している人間が退職などに現場にいないのでやりようがなく、2を失敗したというケースで、いつまでOS環境が引っ張れるかが鍵となっているのだろう・・・悪夢だ。
現在も「ノーコードプログラム」とかいって宣伝しているが、ツールを使った開発の行き着く先は真っ暗闇だ。私はやりたくないな。


この記事が気に入ったらサポートをしてみませんか?