02 IBM iの開発言語

開発言語は世の中に数多く存在するが、IBM iにおいてもさまざまな開発言語がサポートされている。従来よりIBM i上では生産管理、販売管理、人事、給与、経理といった基幹業務アプリケーションの利用が多く、信頼性と生産性の高い言語としてRPGやCOBOL、C/C++などが使われてきた。

その一方、Web、モバイルなどの業務要件に対応するために、オープンソースソフトウェアのJava、JavaScript、PHPなどの言語も積極的に取り込まれ、利用できる環境が整っている。ここではIBM iでよく使われる代表的な言語について紹介する。

 

RPG
フリーフォームへの拡張が続く

RPGはIBM i専用のプログラムで、「Report Program Generator」の略称である。当初はその名のとおり報告書を作成するための簡易言語として発表されたが、その後拡張が続けられ、現在は一般のプログラム言語と同様の機能をもつ。

最新版は第4版にあたる「RPG Ⅳ」である。統合化言語環境(ILE:Integrated Language Environment)に対応しているので、「ILE RPG」とも呼ばれる。

ILEとはプログラミング・モデルの1つで、IBM iでサポートされる複数開発言語間で可搬性を保つために提供される共通の環境である。これにより異なる言語で作成されたモジュールを統合するプログラムの作成が容易となる。なお、RPGⅢまでのRPGは、ILE RPGと対比して「OPM」(オリジナル・プログラム・モデル)と呼ばれる。

RPGは、IBM iの開発言語を語るうえで、なくてはならない言語である。しかしながら、現在主流のオープン系技術者には馴染みがなく難解と思われている。その問題を解決するために、既存のRPGをベースとしつつ、JavaやCのようなフリースタイルで記述できる「フリーフォームRPG」と呼ばれる機能が強化された。

RPGはコンパイラ言語であり、ソース・プログラムを記述し、コンパイルによって実行可能なオブジェクトを生成するが、ソース・プログラムはプログラム処理内容に応じて最大7種類の仕様書に記述する。この仕様書の記述は、従来固定フォームなので桁位置を意識する必要があった。それが、フリーフォームRPGにより桁位置にとらわれず柔軟に書くことが可能になった。

COBOL
他プラットフォームからの移行が容易

COBOLもまた、基幹業務において長年にわたり使用され続けている開発言語の1つである。COBOLの特徴として、多くのプラットフォームでサポートされているので、異なるプラットフォームへのコンバージョンが比較的容易な点が挙げられる。

IBM iにおいても同様で、汎用機(メインフレーム)からのダウンサイジング先としてIBM iが採用され、汎用機のCOBOLアプリケーションをコンバージョンして使い続けるケースは非常に多い。

Java
IBM iにいち早く取り込んだオープン言語

オブジェクト指向プログラミング言語であるJavaは、「Write Once、Run Anywhere」の言葉どおり、プラットフォームに依存せず、JVM(Java Virtual Machine、Java仮想マシン)上で同じようにプログラムを実行できる特徴がある。Webとの相性もよく、ブラウザやスマホで使用されるアプリケーションから、企業の大規模なアプリケーションまで、幅広い分野で使われている。

Webブラウザ上で動作する技術として開発されたJavaであるが、現在ではサーバーサイドのアプリケーション構築でも多用されている。IBM iでは早くからJavaに取り組み、マイクロコード(SLIC)にJVMを組み込み、安定した環境を提供している。

またIBMのほかのプラットフォームと同様に、IBM iにおいても「IBM Technology for Java Virtual Machine」が提供されており、32ビット版または64ビット版を選択できる。

CL
一貫した命名規則など使いやすさが特徴

CLもRPGと同様に、IBM i専用の言語で「Control Language」の略称である。CLはシステムにある特定の指示を与えるコマンドの集合で、メニューから呼び出すことも、直接コマンドを呼び出して実行することもできる。

ほかのシステムと比較して、CLコマンドはユーザーの使いやすさを重視した設計となっているのが特徴である。たとえばCLコマンド自体が一貫した命名規則をもっているため、この規則を理解すれば、コマンド自体が正確にわからなくてもコマンドにたどり着くことができる。WindowsやLinuxでは、コマンド自体を知らないと操作が進まないことに比べると、ユーザーの負担はかなり軽い。

また、CLコマンドのみでソース・プログラムを作成し、コンパイルして、CLプログラムとして実行させることも可能である。WindowsやLinuxにおけるシェル・スクリプトをイメージするとよいだろう。CLプログラムにも、統合化言語環境への対応によって、ILEまたはOPMの2つのタイプがある。

PHP、Ruby/Rails、
Python、Node.js

上記で紹介した以外に、PHP、RubyおよびそのフレームワークであるRails、Python、Node.js(サーバーサイドでJavaScriptを使用)などの開発言語に対応し、オープンな開発・実行環境を提供している。

ユーザーのインターフェースは、PCからタブレット、スマートフォンへと急速に変化している。インターフェースの開発には実績のあるPHPやJavaScriptなどで実装し、データベース処理を含むビジネスロジックはRPGで開発するような、適材適所で言語を使い分ける開発が、これからの主流となるだろう。[松川 真由美]

More Posts