ホスト系Rationalツール
紆余曲折を経て、久しぶりにRationalツールを使った仕事に関われたのですが、なんと未経験のホスト系でした。
オープン系がメインのRationalツールにメインフレーム用のツールなんてあるの? と思う方が多いと思います。しかし、これがびっくり、恥ずかしながら僕も今回の仕事ではじめて触ったのですが、最近のRationalはメインフレーム用のツールも充実しているのですね。
Rationalではメインフレーム用のツールを「エンタープライズ・モダナイゼーション」というカテゴリーでくくっています。
実は今まで入社以来、ホスト系はまともに触ったことがありませんでした。オープン系のOSとはまったく違った概念のOSの元、黒い画面でCOBOLとかを昔ながらの方法でゴリゴリ書いているという印象で、近寄りがたい、否、できれば近寄りたくない世界でした。プログラミングを始めた早い段階でTurbo C++という統合環境に慣れてしまった僕は、UNIXのパイプとかは大好きですが、プログラムの開発にコマンド・ベースで云々は、しんどい世界です。
まあ、実際現場ではそのような昔ながらの開発方法が行われていることも多く、それゆえに重要だとは認識されながらも、若い方からは敬遠されるという傾向があると思います。
しかし、最新のメインフレーム用Rationalツールを使うと、言語が昔ながらなのは仕方のない(ほとんど使われることはありませんが、実は最新のCOBOLではオブジェクト指向や例外処理などバリバリに対応されています)ところですが、開発環境はほぼ最新のJavaと遜色のないレベルが実現できることが分かりました。独特のエディタでゴリゴリ、プログラムとJCLを書いては直し、書いては直すという流れを、Eclipse上でのオート・コンプリート、文法チェック、ローカルでの単体テスト、デバッグというような近代的な開発に変えることができるのです。
検証してみたのは以下のツールです。オープン系でも使えるツールも同時に検証していましたが、これらはよく知られているので、今回はご紹介しません。
●Rational Developer for System z(以下、RDz)
メインフレームのCOBOLやPL/Iの開発をEclipseベースでできるツールです。COBOLはプログラムの書き方が特にカラム位置がかなりシビアな言語で、現在のRubyやPerlのようにかなりフリー・フォーマットに書ける言語に慣れているとかなりストレスがたまったりするのですが、これがコードアシストや常時働く文法チェックでかなり軽減されます。
さらに使用するデータベースやミドルウェア(CICSなど)にもよりますが、単体テストぐらいまでならローカルのCOBOLコンパイラが内蔵されていてコンパイル、テストできるので、ホストの難しい概念を知らなくてもプログラムが作成できます。ホスト側と連携したJCLの実行やテスト、デバッグなどもできます。ただし、これにはホスト側にもRDzのモジュールをインストールする必要があります。
感覚的にはメモ帳でソースを書いて、javacでコンパイル、Javaで実行の世界から、EclipseやNetBeansの世界に変わったぐらいの劇的な変化があると思います。個人的にはかなり抵抗感があったCOBOLもEclipseの環境で自己完結できるようになると、だいぶその抵抗感が和らぎました。
でも、やっぱりRDzは高いですよね。それでもメインフレームのCOBOLの開発をしなければならない方もいらっしゃると思います。
そのような方には、RDzのCOBOL Editorの部分がオープンになったCOBOL IDEがeclipse.orgから公開されています。ベータ版ですが、最新のEclipse 3.4対応版があります。昔ながらのCOBOL開発がしんどいという方はぜひ触ってみるとよいと思います。RDzも体験版がありますので、日本語かつフルスペックを体験してみたい方は体験版を申し込んでみてください。
●Rational Host Access Transformation Services V7.5
こちらは、3270や5250の画面を実行時に動的に変換してWebアプリケーションにしてしまうというものです。一般にメインフレームの資産を活用する場合、すべてオープン系で作り直すのはコストや品質上厳しいことが多いため、ビジネス・ロジック以下をサービスとして再利用するSOAの形をとることが多いと思いますが、SOAもそれなりにコストと労力がかかります。
このツールはプレゼンテーション・ロジックも含めて再利用するので、最小限の労力で既存のホスト系アプリケーションをWebアプリケーションにできます。
……とは言っても、本当に最小限の労力だと単に元々のホスト系アプリケーションがWebブラウザ上で操作でき、画面がちょっときれいになったかなという程度なので、本格的に今のWebアプリケーション並みに使い勝手をよくしようとすると、このツールでもいろいろカスタマイズが必要になります。リッチ・クライアントを使って使い勝手を上げたいといった要望がある場合は、先ほどのSOAでサービス化したほうがレイヤー分割も含めて適切かもしれません。
とはいえ、今までの黒い画面が数ステップでWebアプリケーションに変身してしまう姿は圧巻です。後は、ブラウザとHTTPのポートさえ空けておけば、操作できるようになるので、リモートからの操作にも便利です。
今回は2種類のホスト系Rationalツールを検証してみましたが、最新の開発環境だとメインフレーム・アプリケーションの開発もオープン系に近い形でできることがわかりました。いわゆる業務システムでプログラマやSEをする限りいつかはホスト系に関わることはあると思いますので、そんな時、ホスト系の開発環境にも便利なものがたくさんあることを知っているとプロジェクトで重宝されるかもしれません。
ということで、ホスト系Rationalツールの巻でした。