iCafe | IBM i / AS400等に関する技術情報ポータルサイト

IBM i / AS400等に関する技術情報ポータルサイト

スペシャル
【激論!】RPGは残す?残さない? をうけて(2)

2018年8月20日


前回はJavaと対比しながら、アプリケーション資産の継承性という、RPGが備える独自の価値を説明いたしました。もちろんそれだけで開発プロジェクト用の言語が決定されるわけではなく、一方では様々な懸念事項ないし否定的見解があります。今回はそれらを一つずつ検討してまいります。

 

-1: ユーザー・インターフェースを刷新するには

今でも多くのユーザーが、5250エミュレータと呼ばれるソフトウェアを導入したPC上で、RPGアプリケーションを利用しています。5250とは1970年代に登場したIBM製専用端末の型式番号、エミュレータ(Emulator)とは模倣する者、すなわち昔の5250機であるかのように振る舞うソフトウェアが現在の汎用PC上で稼働しているというわけです。この機能を備える代表的なソフトウェア製品に、IBM i Access(IBM製品番号5770-XW1)のWindows版ないしJava版(ACS: Access Client Solutionsとも呼ばれます)があります。特に業務分野においてWindows10が採用されるケースが増加するに連れて、IBM i Access についても、Windows10をサポートしないWindows版から、Windows10に加えてMacやLinuxもサポートするACSへとシフトしつつあります。

RPGはCUIを使用しなければならない、といった技術的制約はどこにもありません。確かにプログラミングにおいてCUI画面を定義する手段がありますが、既存プログラムに全く手を付ける事無く、ブラウザやモバイル機器に対応させる方法があります。IBM i 内部で5250画面イメージが仮想的に生成された段階で、それをHTML化してHTTPサーバーに乗せて外部に送信すれば、ブラウザで受け取る事ができるようになります。このような機能を持っていて実績が豊富なIBM製品の一つに、HATS(Host Access Transformation Services)というソフトウェアがあります。CUIをGUI対応化できるだけでなく、画面設計の過程において、キー操作マクロを埋め込んだり、画面遷移を変更したりする事もできます。弊社ベル・データでは同様の位置付けの製品として、aXesを推奨しており、多くのお客様にご利用いただいています。IBM i のオープン化を手軽に実現するための製品として、他にも数多くの選択肢があります。

 

-2: 現代的プログラミング・スタイルを採用する事は可能なのか

RPGプログラマー人口を確保し増員するためにIBMが打った対策はフリーフォーム(以下FF)化、すなわちJavaやPHPなどと類似の構文に基づいたプログラミングを行えるようにする事です。凡そプログラミングにおいて記述しているのは、処理をする、判断をする、処理の順序を変える、のたった3種類の事しかありません。FF RPGにおけるそれぞれの記述の仕方は他のオープンな言語と同じかコマンドの綴りが極めて類似しているので、他言語の経験者であれば何を意図した記述なのか容易に想像する事ができます。例えば繰り返し演算や条件式の後のインデント(桁ずらし)の仕方、四則演算式の記法、条件式の書き方などは他の言語と変わるところはありません。もちろん細かなレベルでの独自性はありますので、マニュアルを参照する必要はあるでしょう。例えばC言語を習得していれば、細かな点についてはマニュアルで確認しながら、Pythonプログラムを何とか作成できるのと同程度のレベルのものです。未経験である事は、今後も触れない事の理由にはなりません。

 

-3: 保守性とパフォーマンスを向上させるには

FF RPGと聞くとどうしてもその構文に着目しがちではありますが、ILE RPGのバリエーションである事を認識しておきたいと思います。製品名だけを聞くと混乱しそうなので、ご存知の方もいらっしゃるかも知れませんが、ここで念のためにRPGのいくつかの世代について復習しておきましょう。

1988年にAS/400と共に登場したのはRPG/400でした。当時は既に先代機にあたるシステム38上でRPGⅢがサポートされており、これの発展形として位置付けられていました。すなわち厳密にはAS/400のRPG/400とシステム38のRPGⅢとは区別されていたのですが、同じ世代のRPGなので、RPG/400イコールRPGⅢという認識が定着しています。次に登場したのは1994年のILE RPGです。正式な製品名称ではありませんが、RPGⅢの次だからRPGⅣと呼ばれる事もあります。そしてILE RPGは2014年のIBM i 7.2の登場と共に、フリーフォームをサポートするよう機能強化されました。順番に記述すると、RPG/400(RPGⅢ) → ILE RPG(RPGⅣ) → フリーフォーム化されたILE RPG(FF RPG)と発展してきたわけです。

ILE RPGはRPG/400と比べて何が変わったのかという点を確認しておきたいと思います。詳しくはWeb上に掲載されている、Knowledge Centerと呼ばれるIBMのマニュアル、もしくは新旧のプログラム・モデル対比表(旧来のプログラム・モデルはOPM: Original Program Modelと呼ばれます)を参照いただければと思います。ILEの最大の特徴は、プログラムのモジュール化が可能になった点、そして実行コード生成の際にバインドというプロセスが新たに追加された点にあります。RPG/400においてはコンパイルしたらすぐに実行プログラムが生成されておりました。ILE RPGでは、まずソースコードをコンパイルしてモジュールを生成し、必要であれば他のモジュールも同様の手順で用意しておきます。この時点ではモジュールは実行可能ではありません。最後に全てのモジュールをバインド(他システムのリンクに相当)して実行可能なプログラムを生成します。この変更によって、いくつかのメリットを享受できるようになりました。

  • 人間が見通せるソースコード行数には限界があります。大きな機能を開発する場合でも、複数の小さな機能に分解し、個々のソースコード行数を適切なサイズ以下に抑える事で保守性を高める事ができます。
  • 個々のソースコードを小さくすることによってコンパイルのスピードを高める事が可能になりました。
  • RPG/400では動的(Dynamic)プログラム呼び出し、ILE RPGでは静的(Static)プログラム呼び出し方式を採用しています。前者だとプログラム実行中に呼び出し作業を行うオーバーヘッドがあるのに対して、後者ではバインド時に予め呼び出し作業を完了させてしまいますので、プログラム実行時のパフォーマンスが向上します。RPG/400においてオーバーヘッドを避けようとしたら、行数の大きな単一ソースコードを作成しなければなりませんので、保守性を損ねる可能性があります。
  • モジュール生成にあたって複数の言語を活用することができます。ILEモデルを採用するRPG、COBOL、C/C++、CLがバインド対象になりますので、適材適所の言語を選択できます。
  • ILEプログラムは旧来のRPG/400と共存可能ですので、徐々に新テクノロジーへと移行する事ができます。

次回もRPGの課題と対策を続けます。

ではまた

 

<Company Information>
ベル・データ株式会社
事業所:本社(東京都新宿区)/東日本支店/名古屋支店/大阪支店/九州支店/熊本営業所
設立: 1991年7月
事業内容:インフラストラクチャー インテグレーター事業/システムインテグレーター事業/クラウド・アウトソーシング事業/情報提供サービス
URL:www.belldata.com/index.html


この記事のあとにはこちらの記事もおススメです。

関連キーワード

メールマガジン登録

注目キーワード

フリーワード検索

お探しの情報に関する単語を入力してください。

資料ダウンロード

iCafeではIBM iに関するさまざまな資料を掲載しています。お探しの資料をぜひさがしてみてくださいね。

アクセスランキング