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