ILEプログラム作成(CRTPGM) でモジュール(*MODULE)
をバインドして作成するのと
サービス・プログラム(*SRVPGM)
をバインドして作成するのとではどちらを選択すべきなのであろうか?
モジュール(*MODULE)
をバインドする方法では
- CRTRPGMOD で *MODULE を作成
- CRTPGM で *MODULE をバインドして *PGM を作成
これに対してサービス・プログラム(*SRVPGM)
を作成してバインドするのは
- CRTRPGMOD で *MODULE を作成
- CRTSRVPGM で *MODULE から *SRVPGM を作成
- CRTPGM で *SRVPGM をバインドして *PGMを作成
のように手間が少しかかる。
しかし *MODULE
が変更された場合は *PGM
を再作成しなければならないが*SRVPGM
が
変更されたときは *PGM
を再作成する必要はない。
元々モジュール化する目的はオブジェクト指向に基づいてオブジェクトの再利用にある。
モジュールの個数が増えてきたときには、モジュールを変更しようとすると、どの *PGM
を
再コンパイルしなければならないのかを調べる必要があり、これは管理上大変なことになるのは
容易に想像がつく。
VC++ のコンパイラーでも同じ構造を持っているが*SRVPGM
とは Windows の世界でいう
DLL に相当する。
DLL が変更されたからといって その DLLを使用している EXE を再作成する必要はない。
DLL はそのような目的で使用されているのである。
さらに *SRVPGM
では実行時に元の *MODULE
が存在している必要はない。
大規模開発だけなく拡張性に富んだ開発を指向するのであればサービス・プログラム
(*SRVPGM)
の使用を強くお勧めする。