03 IBM i開発の基礎 [CL設計・開発]

CL設計、開発

CLプログラムは、CLコマンドをグループ化してプログラムとしたものである。WindowsのバッチファイルやWindows PowerShell、Linuxのシェルスクリプトのようなものである。一連の処理手順をCLプログラムでバッチ処理化することにより、CLコマンド単体で実行した場合と比較して、操作を高速化し、操作の確実性を向上させることができる。

またコンパイルすればプログラム・オブジェクトとして取り扱えるので、RPGなどと同様の実行環境で使えるのもメリットである。定型的な操作が求められる毎日のシステム運用において、CLプログラムの使用は必須である。

ここではCL開発について紹介するとともに、モジュール、サービス・プログラムといったILE言語共通の概念についても説明する。従来のプログラム・モデルであるOPMと比較して、多くの利点をもつILEの理解を深めていただきたい。

プログラムの設計

はじめに、プログラム設計の流れについて簡単に説明する。これは開発で使用する言語に依存せず、共通の概念である。

新規の業務アプリケーション要件がまとまり、処理フローが確定したら、システム全体をサブシステム化する。サブシステム化では、その単位での実行および管理が可能である範囲を目安に分割する。続いて、各サブシステム単位で、保守容易性や拡張性を考慮して、コンポーネントに分割する。コンポーネントのなかで処理概要を決定し、使用する入力用および出力用のデータベース・ファイルを決定する。さらに各コンポーネントのなかで、モジュール分割を行う。たとえば共通機能はモジュール化し、ロジックの重複を排除し、再利用により有効活用できるようにする。

CLプログラム開発の流れ

CLプログラム開発ではソース・プログラムを記述し、コンパイルにより最終的に実行可能なプログラム・オブジェクトを生成する(図表1)が、図表2に示すとおり、ILEとOPMでは方法が異なる。

 

図表1 画像をクリックすると拡大します】

 

図表2 画像をクリックすると拡大します】

 

OPMではソース・プログラムのコンパイルにより、1つのプログラム・オブジェクト(*PGM。以下、プログラム)が生成される。

一方、ILEではプログラムの作成方法が2種類ある。1つはILEプログラムの一般的な作成手順で、ソース・プログラムをコンパイルし中間的なオブジェクトであるモジュール・オブジェクト(*MODULE。以下、モジュール)を生成後、1つ以上のモジュールを組み込んで(これを「バインド」と呼ぶ)、プログラムを生成する方法である。もう1つは、OPMと同様にソース・プログラムからワンステップで、単一モジュールのみを含むプログラムを作成する方法である。

 

● モジュール

ここでモジュールについて説明を補足し、ILEについての理解を深めることとする。

モジュールは単体では直接実行できないので、バインドが必須である。またモジュールは作成言語に依存しないため、ほかの言語で生成されたモジュールもバインドし、ILEプログラムを作成することができる。このような複数の言語で開発し、ILEコンパイラで生成されたモジュールをバインドしてILEプログラムを作成できる環境を、「ILE」(統合化開発環境)と呼ぶ。

つまりILEでは、複数のモジュールでプログラムを作成することが標準モデルであるが、モジュール化によりロジックの重複を排除することでアプリケーションの品質や保守性の向上を実現している。

 

● サービス・プログラム・オブジェクト

なお実際のILEプログラムには、モジュール以外にサービス・プログラム・オブジェクト(*SRVPGM。以下、サービス・プログラム)を組み合わせることも可能である。サービス・プログラムとは、1つ以上のモジュール、またはほかのサービス・プログラムから生成されるIBM iオブジェクトであるが、ほかのプログラムまたはサービス・プログラムからの呼び出しで実行できる。

サービス・プログラムの利点の1つとして保守容易性が挙げられる。モジュールでロジックの変更が発生した場合、モジュールの再コンパイルと、該当モジュールを組み込んだすべてのプログラムの再バインドが必要となるが、サービス・プログラムでは、ロジック変更によりモジュールの再コンパイルは必要となるものの、サービス・プログラムを呼び出しているプログラム自体の再バインドは不要である。

利点の2つ目は、実行時のパフォーマンスである。プログラムにバインドされたサービス・プログラムは、プログラムが呼ばれてメモリ上にロードされる時点で、必要なサービス・プログラムも一緒にロードされるため、高速な動作が実現される。

 

CLプログラムの特徴

最後に、CLソース・プログラムを参照しながら、CLプログラムの特徴を説明する。

ソース・プログラムは新規に作成もできるが、CLコンパイラのオプションで検索が許可されていれば、RTVCLSRC(CLソース仕様検索)コマンドを使用して、既存のCLプログラムまたはCLモジュール・オブジェクトからCLソース・コードを検索できる。

図表3は、システムのIPL時に起動するスタートアップ・プログラムを、RTVCLSRCコマンドを用いて検索したCLソース・プログラムである。とくにスタートアップ・プログラムは、システム提供されるスタートアップ・プログラムに、たとえばWAS(WebSphere Application Server)などのミドルウェアの開始コマンドを追加するといったカスタマイズを加えることが多いため、この方法がよく利用される。

 

図表3 画像をクリックすると拡大します】

 

ソース・プログラムでは、PGMおよびENDPGMを用いてプログラムの始まりと終わりを示す(図表4)

・・・・・・・・

図表4 CLソース・プログラムの開始と終了

PGM  PARM(パラメータリスト)
DCLF ファイルの定義DCL
変数名の定義
CLコマンド1
CLコマンド2
CLコマンド3
CLコマンド4


・ENDPGM

・・・・・・・・

使用できるコマンドは、対話型インターフェースでCLコマンドとして使用するものと同じであるが、CLプログラムのなかでのみ利用できるコマンドも存在する。また変数、式、組み込み関数なども扱える。桁位置は、RPGのように桁固定ではなく自由に記述が可能である。各行ではキーボードのPF4キーを押下することによりプロンプト表示されるが、そちらを利用すると、桁位置を自動修正してくれ、見やすい表記となる。[松川 真由美]

 

More Posts