「Florida」を使用してRPGプログラムをJavaへ変換
金澤氏が次に検討したのは、「それではIBM iをどのように変えていくべきか」という青写真である。
選択肢は2つあった。1つはIBM i以外のサーバーへ移行し、ゼロからシステムを作り直すこと。もう1つは現行のRPGで開発したビジネスロジックを活かしつつ、そのプログラムをJavaへコンバートして維持・運用性を高めることである。
ただし、全社の案は早々に見送ることになった。理由はコストとマンパワーである。「全面的な再構築は相当のコストが予想されるうえ、基幹システムの全面再構築を担える十分な人員を充当することは難しいと考えました」(金澤氏)
そこで現行システムのRPGプログラムをJavaへコンバージョンすることを前提に、その手法を検討し始めた。
システム構成ー従来・現行・将来
「操作性の改善や機能追加などは必要であるものの、基幹システムは現行の基本的な業務要件を満たしており、ビジネスロジックそのものに問題はありません。検討すべきはRPGという開発言語であり、これがシステムのサステナビリティを阻害していると考えざるを得ませんでした。そこで一般的な言語、つまり若い世代が誰でも知っていて、かつ存分に使用できるJavaという言語に変換していくことを選んだわけです」
ここでは2つのコンバート手法が検討された。1つは海外製ツールを使用して、RPGプログラムをストレートコンバージョンする手法。もう1つは同じくJavaへのコンバージョンツールである「Florida」(フロリダ)を使って、Javaの個性を活かしたアプリケーションとしてコンバージョンする手法である。
後者の案はソルパックからの提案であったが、結論として、同社が選択したのはこちらの手法、すなわちFloridaによるJavaへのコンバージョンであった。
一般にRPGプログラムをJavaへストレートコンバージョンした場合、言語特性の違いから、データベースアクセス時にパフォーマンスが劣化したり、RPGのプログラム構造をそのままJavaに反映するため、Javaの特性や開発生産性のよさを欠いたアプリケーションが完成するケースがしばしば見られる。
しかしFloridaの場合は、取り込んだPRGソースを中間言語(Miami)に変換し、エディター機能で、ロジックの修正や使用の追加が可能。PRGの読み込み処理をJavaに変換する独自のチューニング技術により、パフォーマンスの劣化を防ぐ。またCLプログラムなどは自動変換ではなく、手作業で変換するため、全体的にJavaの特性を生かしたアプリケーションとして作成できるのが特徴だ。
「最大のテーマは今後の維持・運用性でした。そこで2つの手法で変換されたJavaプログラムを、今後のアプリケーション開発・保守を委託する日鉄ソリューションズのJava開発者に比較・検討してもらいました。その結果、Floridaで変換したプログラムのほうが、維持・運用性に優れるという結論を得て、採用を決めました」
変換されたJavaアプリケーションはオープン系のLinuxサーバーで稼働させ、データベースはDb2 for iとしてIBM i側で運用する。つまりIBM iはデータベースサーバーとして残すわけである。
「データベースもOracleやSQL Serverなどへ移行してLinuxサーバーで運用し、IBM iから完全撤退する案も検討しました。しかしDb2 for iは優れたデータベース構造を備え、テーブルもよく正規化されていたので、必ずしも今オープン系へ移行する必要はないと判断しました。Power SystemsとIBM iというマシンの優秀さはよく理解していたし、データベースサーバーとして残す案を選択したわけです」(金澤氏)