RPG
95. モジュールかサービス・プログラムか?
ILEプログラム作成(CRTPGM) でモジュール(*MODULE) をバインドして作成するのと
サービス・プログラム(*SRVPGM) をバインドして作成するのとでは どちらを選択すべき
なのであろうか?

モジュール(*MODULE) をバインドする方法では
1. CRTRPGMOD で *MODULE を作成
2. CRTPGM で *MODULE をバインドして *PGM を作成
これに対してサービス・プログラム(*SRVPGM) を作成してバインドするのは
1. CRTRPGMOD で *MODULE を作成
2. CRTSRVPGM で *MODULE から *SRVPGM を作成
3. CRTPGM で *SRVPGM をバインドして *PGMを作成
のように手間が少しかかる。

しかし *MODULE が変更された場合は *PGM を再作成しなければならないが *SRVPGM
が変更されたときは *PGM を再作成する必要はない。
元々モジュール化する目的はオブジェクト指向に基づいてオブジェクトの 再利用にある。
モジュールの個数が増えてきたときには、モジュールを 変更しようとすると、どの *PGM
再コンパイルしなければならないのかを 調べる必要があり、これは管理上大変なことになるのは
容易に想像がつく。
VC++ のコンパイラーでも同じ構造を持っているが *SRVPGM とは Windows の世界でいう
DLL に相当する。
DLL が変更されたからといって その DLLを使用している EXE を再作成する必要はない。
DLL はそのような目的で使用されているのである。

さらに *SRVPGM では実行時に元の *MODULE が存在している必要はない。
大規模開発だけなく拡張性に富んだ開発を指向するのであれば サービス・プログラム
(*SRVPGM) の使用を強くお勧めする。
PREVIOUS INDEX NEXT
HOME