はじめに
2000年前後から、Webアプリの開発が増え始めた。開発言語はJavaが主流であり、PerlやPHPなども一部使われている。エンタープライズ(基幹業務)をWebアプリで開発するケースは少ないが、確実に増えてきている。ほとんどがJavaである。
そんな中で、データの一括処理や大量帳票の印刷などのバッチ業務ではCOBOLが利用されている。バッチ業務はWebアプリである必要がないので、クライアントサーバシステム(CSS)の資産を流用できることも大きな理由だが、若いJavaのプログラマが大量データを扱うバッチ業務の作り方を知らないことが一番の理由だと考える。
しかし、Rubyで基幹業務開発を行なう場合に、Javaと同じようにバッチ業務にCOBOLを利用したのでは、わざわざRubyを採用する付加価値が少ない。
今回の開発では、バッチ業務を敢えてRubyで開発することにした。そうすれば、1人のエンジニアがオンラインもバッチも両方見ることができる。プログラム部品も両方で共有できる。これは、基幹業務開発の重要な条件である「生産性」と「品質」に好ましい結果を引き出すことになる。
そのためには、Ruby開発環境として「バッチ業務のジョブ管理機能」「ジョブスケジュール機能」「帳票印刷スプール機能」が必要であった。また、言語仕様が豊富なRubyならではのメンテナンス性に関する懸念や、インタプリタであるスクリプト言語の実行性能に関する不安など、基幹業務の開発言語としての課題が存在した。