こんなやり方ありか!?COBOLを使ってWEBアプリケーションを開発する方法

電機メーカーでの会社員日記

サラリーマン初めての業務(プログラム開発。社内ではものづくり実習と呼ばれていました)は難なく終了しました。期間的には約半年、工数換算すると5人月というところでした。

大手電機メーカーでも新入社員にプログラミングをさせる理由と効果
SE研修が終わり、私の配属先での最初のお仕事は以下の内容でした。 「実際に社内で使われるプログラムを5000Step開発...

さて、次に任されたのは勤怠システムのログイン制御の部分でした。

と言っても、実は課長から、

「ホームページをちょっといじって欲しい」

という形で依頼を受けたので、てっきりHTMLファイルを編集する程度と思っていました。
…ところが実はこの作業とは、

「COBOLで作られたWEBアプリケーションを改造する」というとんでもないものでした。

COBOLでWEBアプリケーションが作れてしまう不思議

私が任された仕事は勤怠管理システムのログイン制御部分の改修でした。

WEBアプリケーションであるため、当然Javaか何かだろう。と思っていたのですが、実際に任されたものはCOBOLプログラムを用いた開発でした。

 

…?
……COBOLでWEBアプリケーション?

 

私の中では、COBOLとはバッチ処理に利用する言語という意識だったため、一体何を言っているんだと不思議に思いました。

実はCOBOLはWEBルーチンが利用でき、Javaなどと同様にWEBサービスが提供できます。

ただ、内容はかなり面倒臭く、職人芸というか、こんなのありか?、という手法を使って実現します。

 

具体的には、PRINT命令でHTMLやJava Scriptタグを出力し、それをWEBサービスとして読み込ませ展開します。

PRINT ‘<HTML>’
PRINT ‘<HEAD>’

みたいな命令をひたすらプログラム中に記載しました。

特にCookieの制御が辛く、セッションに変数値を埋め込むためのPRINT命令をJava Scriptで書き値を格納した後に、即座にリダイレクトをかけてCookieを設定した状態で別処理に飛ばす。という無茶なやり方をします。

 

はっきり言ってCOBOLでやる意味は全くないと思うのですが、私が入社した会社ではこのような無茶苦茶なアプリケーションが存在していました。

マニアックすぎる処理のため、当然WEB上で参考になるホームページなどはなく、社内の誰かが書いたプログラムを参考にやり方を覚えて必死になって改修を行いました。

かなりタイトな納期でこの仕事を受け持っていたのですが、休日出勤などを重ねて何とか改修に成功しました。

 

なお、この仕事は主婦の社員さんと一緒になって作りました。

この方とは最初は仲が良かったのですが、途中で少し関係が悪くなり、微妙な関係性のまま私が退職してしまったため、今でも少し気になっています。完全な余談です。

 

世の中には色々なシステムがあることを知る

このプロジェクトから学んだことは、世の中には色々な仕掛けで動くシステムがあるということでした。

学生時代を含めて、これまでは一般的な方法で定番のアプリケーションを作ってきましたが、実際の現場には一筋縄ではないかないものが五万とあります。

そういった泥臭い状況にも、苦戦しながらも何とか対応できる。そのような素養をこのプロジェクトで培った気がします。

ちなみに、こんなシステムを保守しているのは私がいた課くらいのものだったようで、後日同期に話をした際に驚嘆されました。

 

以後は、このようなマニアックな仕様を見ることはなく、大体はaspやJavaを使った現場でした。新入社員時代に本当にとんでもない現場を見たものだ…、と今でも鮮明に思い出します。

なお、COBOLを使ったWEBアプリ開発に関する知見は、富士通さんや日立製作所さんが詳しいので悩んだらコンタクトを取ってみると良いでしょう。

専用のフレームワークを持っているので強いです。

コメント