Cette fois, l’information est sure et certaine car elle nous vient de Ian Jarman Responsable de la division POWER et de Graig Johnson Responsable IBM i : notre plateforme i, aura ses interfaces graphiques natives au moins à partir de la version 7.1 de l’ OS qui sera annoncée officiellement en 2010.
L’intention d’ IBM est d’ouvrir le RPG de façon native aux interfaces Web, aux mobiles, à XML, aux services Web mais aussi, ajoute Graig Johnson : « à n’importe quel type de terminal ». De plus, restez assis ami lecteur, Graig Johnson ajoute : « le RPG sera capable d’accéder en natif aux bases de données non DB2 comme Oracle ou MySQL. »
Voici ce que pense IBM et ce que dit Graig Johnson dans le dernier numéro de SystemiNews US de décembre 2009 : « Aujourd’hui le RPG est beaucoup trop lié aux interfaces 5250. Il y a bien des outils comme HATS ou des outils tiers capables de tout mettre dans un browser Web, mais ces solutions sont trop liées au flot 5250. Nous avons donc travaillé avec Rational et la division POWER, pour que les développeurs puissent rompre ce lien et amener le RPG vers tous les types de terminaux. » En déclarant qu’ IBM souhaite : « rompre le lien avec le flot 5250 », HATS ainsi que tous les produits tiers dits de « modernisation » passent à la trappe.
L’avenir à un nom : OPEN RPG ou encore RPG OPEN IO. Les deux appellations contiennent les deux mots que nous attendions tous depuis des lustres : OPEN et RPG soit RPG OPEN ou encore OPEN RPG… Mettez OPEN avant ou après : on ne se lassera jamais !
Jan Jarman ajoute qu’ OPEN RPG est bien une solution ouverte et pas du tout une solution verrouillée. Pour reprendre les paroles de Jan Jarman en Anglais : « not an end solution but rather an open door solution for developper. » Ce qui sous-entend que nous pourrons faire évoluer très facilement notre produit RePeGlio 5250 afin de l’adapter à la nouvelle donne OPEN du RPG. Nous proposerons au choix plusieurs rendus du même programme RPGIV généré automatiquement avec notre outil expert : 5250 ou Web ou XML… ce qui ouvre la porte à un OPEN RePeGlio ; le nom est tout trouvé.
Nous savons également depuis la conférence de Ian Jarman qu’il est question de réutiliser les programmes RPG et les instructions RPG comme EXFMT, READ ou WRITE. La modification du code s’appliquerait à la carte F où sera associé une device nouvelle par exemple quelque chose comme BROWSER au même titre que WRKSTN, avec le nom d’ un programme spécial pour gérer la présentation. La solution serait donc peu intrusive.
Nous avons là assez d’informations cumulées pour affirmer sans trop craindre de nous tromper qu’il est impossible d’obtenir un résultat aussi OPEN sans intervenir au niveau du système d’exploitation lui-même.
Si l’on souhaite comme le dit Graig Johnson « ne plus être lié au flot 5250 » tout en gardant les instructions RPG et la persistance, il n’y a pas d’autre solution, selon nous, que de faire gérer par l ‘ OS une file d’attente dédiée aux transactions. En effet, il faudra bien gérer les interruptions stateless Web page à page, d’où peut être la phrase de Graig Johnson : « Rational ET la division POWER ont travaillé ensemble… ».
Si l’on observe la compilation d’un programme RPG, on constate qu’il n’y a pas le moindre élément de présentation mais que des données dans la mémoire tampon du programme. En RPG, la présentation est totalement indépendante des traitements depuis toujours. En effet, le fichier DSPF est complètement externalisé et même compilé. Si l’ordre des données est changé entre le DSPF et la mémoire tampon du programme RPG, cela provoque, nous le savons par expérience, une erreur de niveau à l’exécution. A contrario, si la présentation est modifiée dans le DSPF, il n’y a aucune erreur de niveau tant que l’on ne change pas l’ordre des données de l’écran.
Si comme nous le pensons IBM a placé une file d’attente gérée par l’ IBM i OS entre le terminal écran et le programme RPG pour chaque travail, la présentation devrait rester indépendante de l’interface utilisateur tout en gardant l’architecture persistante. En effet, si le programme RPG reçoit par exemple la valeur 2 (2=modifier) d’un sous-fichier suite à une lecture READC, rien n’indique la manière dont cette valeur 2 a été obtenue au niveau de l’écran : soit directement en regard d’une ligne de sous-fichier 5250 ou soit à l’aide d’ une liste déroulante dans la zone option ou encore en cliquant sur une icône en regard d’une ligne de sous-fichier etc… Le programme RPG n’a besoin que de recevoir la valeur 2 et le contenu de la ligne suite à l’instruction READC pour délivrer un résultat constant.
Une hypothétique file d’attente des transactions gérée par l’ OS, entre le programme RPG et le terminal, en lieu et place du flot 5250, ouvrirait le RPG à tous les terminaux. En effet, le programme RPG ne parlerait plus qu’ à une file d’attente tampon et ainsi ne serait plus lié au flot 5250. Si le programme RPG reçoit et envoie toujours les mêmes données de communication sans se préoccuper de la nature du terminal écran derrière, nous avons bien là une ouverture par interopérabilité.
En tout cas, file d’attente tampon ou pas, avec OPEN RPG et RPG OPEN IO, IBM indique clairement sa volonté d’intégrer de façon native les nouvelles technologies à l’architecture révolutionnaire héritée de l’ OS/400.
Site RePeGlio :
www.repeglio.com Vos remarques, observations et contestations sont + que bienvenues :
jean@repeglio.com