OPM与ILE编程模式的区别
OPM是传统编程模式,即一个可执行的程序只用一种语言编程;一个可执行程序只有一段程序代码组成;程序之间的调用关系是动态的调用关系。
ILE是多语言开发集成编程模式,即一个可执行程序是用多种语言集成编程,如RPG、CL、COBOL、C、C++等,程序的组成部分是module,module间的调用和连接关系是静态连接。比如,一个可执行rpg程序,可以根据功能划分为多个procedures,又可以根据处理调用关系,把这些procedures组成若干个modules,然后再用crtbndrpg生成一个可执行的程序。
在维护程序代码方面,OPM与ILE模式编程差别就更明显了。以上面说明为例。ILE模式,因为一可执行程序是由多个module组成,如果程序的某个module进行了修改,只用重新编译这个module,然后用updpgm把这个module从新更新到这个程序就可以了。如果用OPM就得把整个程序重新编译。仅仅从这点出发,不能体现ile的优势。因为module是可以让多个也执行程序组合调用的,程序员只要对所关心的程序代码段进行修改和更新就行了。就体现ILE的优势了。另外400的多线程处理只有在module层次才能实现,opm模式不能实现。
问题1):
还是不明白OPM模式!!我平时用编译rpgle时用crtbndrpg,编译cl时用crtbndcl,这是ile的东西吧
答:
我想,你可能只是用ILE的方式生成OPM的程序。比如,一个可执行rpg程序,可以根据功能划分为多个procedures,又可以根据处理调用关系,把这些procedures组成若干个modules,然后再用crtbndrpg生成一个可执行的程序。而不像OPM,一个可执行程序是从头到尾,只写成一个处理串代码。
问题2):
active group是什么啊?
答:
active group是提高程序运行效率的一种手段。比如,为了是某个module长期驻留在物理内存,可以定义active group的运行参数,让其长期驻留在内存,以减少程序块的页进页出,从而提高系统运行效率。
os/400采用统一地址寻址,即物理内存和硬盘地址统一寻址,程序和数据都被系统分为某个尺寸的“页,page”,程序有效运行时,从硬盘调入物理内存,为页进,page in。程序或数据块在物理内存中不再使用,或超出ideal时间,就会从物理内存调入到硬盘,这就是页出,page out。
问题3):
平时我写程序后,可以用编译成模块,然后再将模块编译成PGM,我用的就是ILE?还有服务程序(service moduel)。我应该是在ILE环境中编程的 ,那么OPM是怎么的一个过程?怎样的情况下才用到它?
答:
目前网上,我还没有看到一本创建服务程序的比较好的书或资料。
服务程序可以看我的blog的《创建服务程序三步曲》,passthru.cublog.cn
(参见答1)