Démystification de la modernisation IBMi
Modularisation et utilisation des programmes de service :
Convertir les programmes en RPG en RPGLE : c’est bien.
Mais appréhender et mettre en place le concept de programmes de service : c’est mieux.
L’idée qui se cache derrière ce concept est de développer de petits programmes de service, facilement maintenables puisque répondant chacun à une et une seule fonctionnalité bien spécifique. Ces services pourront être ensuite consommés, à chaque instant, par les différents traitements.
Cela permet :
- D’éviter le code redondant. Puisque le code de la fonctionnalité n’est présent que dans le service et non plus dans chaque chaine de traitement qui utilise sa fonction.
- De gagner énormément de temps en maintenance puisque seul le service est à modifier en cas d’évolution de la fonctionnalité concernée.
- De gagner en performance grâce aux groupes d’activation.
En effet les groupes d’activation permettent de garder en mémoire le service précédemment appelé au sein du même groupe d’activation. Contrairement à un appel de programme classique qui va être monté en mémoire puis déchargé à chaque appel. - D’exposer, si nécessaire, ces programmes de services très simplement grâce au serveur intégré à l’IBMi via IWS (websphère), les rendant ainsi également accessibles à des applicatifs hors IBMi.
Ces programmes de services, une fois développés, doivent pouvoir être réutilisés par tous et il ne faut pas qu’une même fonctionnalité face l’objet de plusieurs programmes de service, c’est l’opposé du but recherché.
Pour cela, il est fortement conseillé de mettre en place un dictionnaire de service permettant de :
- Rechercher les services et les procédures exportées :
- par leur nom
- par leur fonction
- par les tables mise à contribution
- D’identifier les paramètres en entrée et en sortie de chaque procédure exportée.
En indiquant leur rôle et leur format.
- De visualiser quelles tables sont utilisées par chaque procédure exportée.
Ceci permettra aux développeurs de trouver facilement le service qui répondra à leur besoin et évitera qu’une même fonctionnalité fasse l’objet de plusieurs services.
(Pour plus d’informations : Rappel des concepts ILE : programmes de services)