Modernization strategies for 5250 softs


Welcome page
Tool box
Cette page a été mise à jour le 16 juin 2008.  Contact
page d'accueil
Boite à outils
Hello,   Bonjour,  
english is not my mother tongue, so be compliant with vocabulary and grammar.  
But this don't make me afraid about sharing my experiences and ideas.    
I hope you will have as many pleasure into reading this paper as I had to write it.
Je suis beaucoup plus à l'aise en Français qu'en Anglais, mais cela ne m'a pas empêché de tenter une traduction de mes idées et expériences. J'espère que vous aurez autant de plaisir à lire cet article que j'en ai eu à l'écrire.

Modernization strategies for a quick ROI

Moderniser : pourquoi, comment, quelle rentabilité ?

Did you already hear this?  Avez vous déjà entendu ceci ?
Our customers enjoy using the web presence of our competitors on the internet, to such point that they forgot to consult us. Nos clients ont plaisir à utiliser les services WEB de nos concurrents sur l'internet, à tel point qu'ils en oublient de nous consulter.
Do you feel concerned? (a few, many?) Vous vous sentez concernés ? (un peu, beaucoup ?)
If this sounds like you, you might be relieved to know that you're not alone in your confusion. Si cela vous semble coutumier, soyez rassuré, vous n'êtes pas seuls dans cette galère.
This article is going to propose you different approaches that are going to reassure you.  Cet article va vous proposer différents approches qui vont vous rassurer.
With this guide line: Do not take care of all possible, but only what is useful. Avec cette ligne de conduite : ne pas se préocupper de tout ce qui est possible, mais de ce qui est utile.

Where are you (and me) ?

Où en sommes nous ?

You have one of the best hardware, one of the best operating system, one of the best database. Vous disposez d'une des meilleures plateforme matérielle, d'un des meilleurs système d'exploitation, d'une des meilleures bases de données
With this you have built an application that match perfectly your business; and you make money with it. Et avec tout cela vous avez construit une application qui colle parfaitement avec votre activité. C'est comme cela que vous gagnez de l'argent.
But the OS is so powerfull that code written 20 years ago continues to work perfectly ... if we consider good the architecture rules that serve user requirements defined in the 80's (IE MSDOS, Command line, Multiplan, Notepad, Green screen, ...). Mais cet OS est si bien fait que les programmes écrits il y a 20 ans continuent à fonctionner parfaitement ... si l'on considère correctes les règles d'architecture qui satisfaisaient les besoins des utilisateurs des années 80 (MSDOS, la ligne de commande, Multiplan, le bloc-note, les écrans verts, ...).
That is to say : you have a monolitic application. Pour résumer : vous disposez d'une application monolithique.
This monolitic application is for example your customers order entry application Cette application est par exemple votre logiciel de saisie de commandes client
Today, the interest of a good old home-grown monolithic application, it is that it is effective, finely tailored, known on the finger tip as well by the maintenance team than by the users. Aujourd'hui, l'intérêt d'une bonne vieille application monolithique maison, c'est qu'elle est performante, sur-mesure, connue sur le bout du doigt aussi bien par l'équipe de maintenance que par les utilisateurs.
And the users, accustomed to their application, don't want to use the internet for the head-down keying. It is true that it is not made for. Et les utilisateurs, habitués à leur application, ne veulent pas utiliser l'internet pour la saisie de masse. c'est vrai que ce n'est pas fait pour.
Not easy in these conditions to convince the users, the computer team, and especially the big boss that it is necessary to change all that. Pas facile dans ces conditions de convaincre les utilisateurs, l'équipe informatique, et surtout le grand chef qu'il faut changer tout cela.
On the other hand, there is a strong probability that these information your (paid) users are keying so quickly into this monolithic application is already available on the internet : the internet already allows your customers to follow orders. Par contre, il y a une forte probabilité pour que les informations saisies si rapidement par vos utilisateurs (salariés) dans cette application monolithique soient déjà consultables sur internet : l'internet permet à vos clients de suivre leurs commandes.
And there, you are locked: it is not possible to allow your customers to key themselves their orders: it would be necessary to rewrite your application. Et là, vous êtes bloqués : pas possible de permettre à vos clients de saisir leurs commandes : il faudrait pour cela réécrire votre application de saisie.
And for several reasons:
Et pour plusieurs raisons :
Historic reasons Des raisons historiques
You are lucky maybe to have an application completely home-grown. But probably, the core of the application is a tiers solution (that to say an old ERP) on which you embroidered a lot of specifics. You probably have the source code of this ERP. Your supplier gave it to you gladly, because you have a maintenance contract. By way of this maintenance contract, you abstained from modifying the code source, just to remain compatible with the evolutions that your supplier send sometimes to you.
Vous avez peut-être la chance d'avoir une application totalement maison. Mais fort probablement, le noyau de l'application est une solution tierce (un vieil ERP quoi) sur lequel vous avez brodé beaucoup de spécifique. Vous avez probablement le code source de cet ERP. Votre fournisseur vous l'a volontiers donné, puisque vous avez un contrat de maintenance. Du fait même de ce contrat de maintenance, vous vous êtes abstenus de modifier le code source, juste pour rester compatible avec les évolutions que vous envoie de temps en tempsvotre fournisseur.
There is therefore, among your files and programs, an “untouchable” layer .
Il y a donc, parmi vos fichiers et programmes, une partie "intouchable".
Commercial reasons Des raisons commerciales
Among the information currently mandatory to enter a customer order in your application, some must not be seen by the customers. For example, the reserved stock list,…
Screen revamping does not permit to reorganize your business rules.
parmi les informations actuellement obligatoires, certaines ne doivent pas être vues par les clients. Par exemple, la liste des stocks réservés, …
l'enjolivement d'écran (le ravalement de façade) ne permet pas de réorganiser  l'activité commerciale, bien au contraire.
 Your application (at least the layer on the internet) will need to execute itself in 2 phases 
Votre application (au moins la partie sur l'internet) a besoin de s'exécuter en 2 phases
  • a non validated order entry
  • a commercial validation (asynchronous therefore), ended by an acknowledgment
Perhaps, after some time, you will automate some parts of this commercial validation.
  • une saisie de commande non validée
  • une validation commerciale (asynchrone donc), terminée par un accusé de réception
même si à terme vous automatiserez une grosse partie de cette validation commerciale
Reasons bound to presentation Des raisons liées à la présentation  
The general organization of the code «glues» to the 5250 screens.
l'organisation générale du code "colle" aux écrans 5250
Reasons bound to data base Des raisons liées à la base de données
According to the keying origin (internal or internet), you won't always use the same tables, at least to distinguish what comes from the internet from what is validated.
Selon l'origine de la saisie (interne ou internet), vous n'utiliserez pas toujours les mêmes tables, ne serait-ce que pour distinguer ce qui vient de l'internet de ce qui est validé.
Reasons bound to the code himself Des raisons liées au code lui-même
In the monolithic code, the rules "business", “presentation" and "database" are intimately mixed 
dans du code monolithique, les règles "business", "présentation" et "database" sont intimement mêlées
And, major headache, et, casse-tête majeur,
You are going to meet for the same business with two applications, written in different languages by different teams.
vous allez vous retrouver pour le même besoin avec deux applications, écrites dans des langages différents par des équipes différentes.
The modernization strategy must permit to raise all these reefs, with a fast return on investment, and with a minimum of user’s disruption La stratégie de modernisation doit permettre de lever tous ces écueils, avec un retour sur investissement rapide, et avec un minimum de perturbation des utilisateurs.
All of this? And with a quick ROI? dear writer are you a little crazy ? Perhaps not. Tout ça ? Et avec un retour d'investissement rapide ? Cher auteur, seriez-vous un peu fou ? Peut-être pas.
When I say this, it's not only to add a little joie de vivre to our work day, it's because it's possible. Et quand je dis ça, ce n'est pas seulement pour ajouter un peu de joie de vivre  à cette journée, c'est parce que c'est possible.

Evolution or revolution  ?

If your profession is really classic, study seriously the ERPs, there is probably one that agrees with you. It will probably be a little more expensive than the specific code (one year of licence vs one year of maintenance), a few less efficient, but you will have externalised the heart of the maintenance processing: the maintenance is mutualised at the supplier's by all of the ERP purchaser’s licence & maintenance royalties. Si votre métier est vraiment classique, étudiez sérieusement les ERP, il y en a probablement un qui vous convient. Il sera probablement un peu plus cher que du code spécifique(un an de licence contre un an de maintenance), un peu moins efficace, mais vous aurez externalisé le coeur de la maintenance : la maintenance est mutualisée chez le fournisseur par les redevances de maintenance de tous les acheteurs de l'ERP.
But if you decidedly cannot modify your organization to make it to glue with the orientations of this unwanted ERP (the revolution doesn't suit to you), then the evolution of the existing software is going to be a winning approach. mais si vous ne pouvez décidément pas modifier votre organisation pour la faire "coller" aux orientations de votre futur ex ERP (la révolution ne vous convient pas), alors l'évolution de l'existant va être une approche gagnante.
First of all, some bibliographic references. To reassure ourselves. And to supervise the technological evolution direction.  Tout d'abord quelques références bibliographiques, pour se rassurer, et surveiller la direction des évolutions technologiques.
The redbook "Modernizing IBM eServer iSeries Application Data Access - A Roadmap Cornerstone" SG246393) give us some now well known key points, but it's time to recall them once : Le redbook "Modernizing IBM eServer iSeries Application Data Access - A Roadmap Cornerstone" SG246393) nous donne points clé maintenant bien connus. Il est temps de les rappeler:
The list of key points that we think are the main reasons why you should consider moving your data definitions and data access to SQL are the following: les principales raisons pour lesquellesi vous devriez convertir à SQL vos  définitions et vos accès aux donnéessont les suivantes :
  •  Standard-compliancy: SQL is a widely used standard.
  •  Openness: Modernizing your database provides you with more and better options to access your database using third-party tools.
  •  Performance: IBM is investing money on improving database access through SQL, not elsewhere.
  •  Available skills: In the long run, it might be easier to find developers on the market with Java and SQL rather than RPG/COBOL and DDS knowledge.
  •  Functionality: Some new functions require SQL.
  •  Data integrity: Concentrating part of your business rules in the database can cut development time and prevent bad surprises.
  • Conformité au Standard : SQL est un standard largement utilisé. 
  • Ouverture : Moderniser votre base de données vous fournit plus et de meilleures options pour accéder à votre base de données à travers des outils tiers. 
  • Performance: IBM investit beaucoup d'argent pour améliorer l'accès aux bases de données par SQL, pas ailleurs. 
  • Compétences disponibles: À long terme, ce sera peut être plus facile de trouver sur le marché des programmeurs  Java et SQL plutôt que RPG/COBOL et DDS. 
  • Fonctionnalités: Les nouvelles fonctions exigent SQL. 
  • Intégrité des données: Concentrer une partie de vos règles  métier dans la base de données peut diminuer le temps de développement et prévenir les mauvaises surprises
The redbook IBM System i Application Modernization - Building a New Interface to Legacy Applications (SG246671) Le redbook IBM System i Application Modernization - Building a New Interface to Legacy Applications (SG246671)
Without making a mistake on the target, the redbook,  Sans se tromper de cible, le redbook
  • Avoid speaking of DDS-to-SQL migration: it is already in SG246393
  • Avoid speaking of the objective of changing interface: it is about changing users.
fait l'impasse sur la migration DDS-SQL, c'est déja dans SG246393
fait l'impasse sur l'objectif du changement d'interface : il s'agit de changer d'utilisateurs.

Revamping ?

Most present users don't want to change interface. Because they will need to learn again an other application just to be able to do the same job. This the key argument for revamping. La plupart des utilisateurs actuels ne veulent pas changer d'interface. Parce qu'ils auront besoin d'apprendre encore une autre application, juste pour être capable de faire le même travail. C'est l'argument clé pour le ravalement de façade.
On the other hand it is out of mind to show on the web the information currently available on the green screens, too much internal. Par contre il est hors de question de présenter sur le web les informations actuellement disponibles sur écran vert, beaucoup trop interne.
If you intend to serve directly your customers, avoid revamping. Si vous avez l'intention d'offrir un service direct à vos clients, évitez le ravalement de façade.
It is not clearly expressed, but the "New Interfaces" aim mainly (solely ?) the New Web Users.  ce n'est pas clairement exprimé, mais les "New Interfaces" visent principalement (uniquement ? ) les nouveaux utilisateurs sur le web.
Otherwise, there is no profitability. Sinon, il n'y a pas de rentabilité.
There are today a lot of tools to construct the "New interfaces". Il y a aujourd'hui beaucoup d'outils pour construire les "Nouvelles interfaces".
There are very little that attack the foundations: DDS to SQL (or then, they don't show it). Il y en a très peu qui s'attaquent aux fondations : DDS to SQL (ou alors, ils ne le montrent pas).
Look at bibliography at the end of this article for some other interesting articles Regardez dans la bibliographie à la fin de cet article pour quelques autres articles fort instructifs (en anglais)

Guideline

Ligne de conduite

My main guide line is doing just what is necessary,  Ma principale ligne de conduite, c'est de viser le nécessaire.
To make it in such a way that every stage is profitable. Thus, if this (vast) global project is slowed, or even stopped, the ROI remained insured. Faire cela de telle manière que chaque étape soit rentable. Ainsi, si ce (vaste) projet global est ralenti, ou même stoppé, le ROI reste assuré.
We are here: Nous sommes ici :
We hope to avoid this: et nous souhaitons éviter ça :
because current technologies are based on this: (Model-View-Controller, Struts,..) parce que les technologies actuelles sont plutôt basées sur ceci (Struts, Modèle-Vue-Controlleur,...)
You can notice I've not write new technology, but current technology. Vous pouvez remarquer que je n'écris pas nouvelles technologies, mais technologies actuelles
ILE is born before Windows 95. Not really a new technology. Is there any risk to go to ILE ? yes, there is always a risk to anything. Are these risk well controlled ? yes, of course. After all, even not the least improvement in the RPG, ILE is currently a mature technology. ILE est né avant Windows 95. Pas vraiment une nouvelle techno. Y-a-t'il un risque à passer en ILE ? oui, il y a toujours un risque à tout. Est-ce que ces risques sont gérables ? oui, bien sur. Après tout, même si ce n'st pas la moindre des innovations de RPG, ILE est maintenant une technologie mature.
Pattern Recognition Ease Modern RPG Programming 
And what to say about SQL ! it is born in an IBM lab (as DDS …), during the 70's and available in the S/38. Read more on this subject in this article Et que dire de SQL ! il est né dans un laboratoire IBM (comme DS ...) dans les années 70, et déjà disponible sur le S/38. Plus de détais dans cet article (en anglais)
A Short History of the DB2 World
Ok, dear writer, perhaps I agree, but now show me something I can follow. Bien, cher auteur, peut être que je suis d'accord. Mais maintenant, montrez moi quelque chose de concret

Process

Processus

First of all, we will separate the "untouchable" code of the home code, then we increase the maintainability of the home code, a manner that focus model-view-controler patterns. Tout d'abord, il va falloir séparer le code "intouchable" du code "maison", puis augmenter la maintenabilité du code maison d'une manière qui n'avait jamais été envisagée. Une manière qui vise l'architecture Modele-Vue-Controlleur.
We will succeed in separating the three major elements of the Application Il va falloir réussir à séparer les trois éléments majeurs de l'application
  • the model
 1 Database and the whole technical code that manage the DB integrity. la base de donnée et tout le code technique qui en gère l'intégrité
 2  The heart of business: all the "business" rules that makes of your profession a so particular activity, all these details that make you different from your competitors le cœur de métier : toutes les règles "business" qui font de votre métier une activité si particulière, tout ces petits détails qui vous rendent diffétrents de vos concurrents
  • The view and controler
 3  The presentation: all the techniques that will make your customers enjoy using your presence on the internet, and especially to come back there. This phase is especially important; it is here that is going to born the return on investment. You will dedicate a pretty part of the budget there therefore. la présentation : toutes les techniques qui feront que vos clients auront plaisir à utiliser vos services sur l'internet, et surtout à y revenir. Cette phase est particulièrement importante, c'est ici que va naître le retour sur investissement. Vous y consacrerez donc une belle part du budget.
Here are now two opposite options :  Ici nous avons maintenant deux options opposées
Either the current application must take advantage of improvements foreseen when developping the version internet. In this case, the 5250 presentation will be preserved, and will constitute the first new version of this application.
Si l'application actuelle doit profiter des améliorations prévues lors du développements de la version internet, la présentation 5250 sera préservée, et constituera la nouvelle version de cette application.
Or the presentation layer will be erased merely. Sinon, la partie présentation sera purement et simplement effacée.

Surely, the first time you will modernize a business application, you will choose the first option. With the time and the experience, you will come back to the question. surement, la première fois que vous moderniserez une application métier, vous choisirez la première option. Avec le temps et l'experience, vous pourrez revenir sur la question.
I here continue with the idea to never loose anything : you need your 5250 application to continue to be your reference, the heart of your business. When your users will say to you that they effectively prefer the graphic presentation, it will be the time to remove the 5250 presentation. We are not there. Je continue maintemant avec l'idée de ne rien perdre : vous avez besoin que votre application 5250 continue d'être votre référence, votre coeur de métier. Quand vos utilisateurs vous diront qu'ils préfèrent finalement la présentation graphique, il sera temps d'enlever la partie 5250. On n'en est pas là.
The general idea is that a monolithic program treats several screens, and for every screen, it executes the loading layer then the treatment layer  L'idée générale est qu'un programme monolithique traite plusieurs écrans, et pour chaque écran, il exécute la partie chargement puis la partie traitement
And each of these layers uses some subsets Et chacune de ces parties utilise des sous-ensembles
  • database
  • business
  • presentation
  • database
  • business
  • presentation
You have surely noticed I mix the view and the controler in the layer I have named Presentation. It is deliberate. My idea is to preserve the asset that resides into the RPG or COBOL programs. This asset is your business core. Vous aurez sans doute remarqué que je mixe vue et controleur dans la couche que je nomme Presentation. C'est délibéré.L'idée est de préserver l'investissement que representent les programmes RPG ou COBOL. C'est votre coeur de métier.
RPG or COBOL are currently the best compilers to write business rules. RPG et COBOL sont actuellement les meilleurs compilateurs pour écrire le coeur de métier.
Business rules have a live span far greater than technological improvements. It's the reason why new languages are not so much experimented to carry business rules. Les règles métier ont une durée de vie largement supérieure aux améliorations technologiques. C'est pour cela que les nouveaux languages ne sont pas aussi performants pour supporter les règles métier.
Opposite, the presentation layer is very open on the subject of languages : from the oldest to the newest, each has it's own advantages. The presentation layer is very sensitive to technological improvements. Par contre, la couche Présentation est très ouverte sur le sujet Langages : du plus vieux au plus jeune, chacun a ses avantages. La couche Présentation est très sensible aux améliorations technologiques.
Back to the monolitic program. Retournons à notre programme monolitique.
For a program that displays a 5250 page pour un programme qui affiche une page 5250
  • The presentation treats everything that belongs to DSPF, PRTF, function keys, keying, navigation,.
  • The business process insures that the actions are possible
  • The database process insures that the data remain coherent
  • la présentation traite tout ce qui touche DSPF, PRTF, touches de fonction, saisie, navigation.
  • le process business s'assure que les actions sont possibles
  • le process database s'assure que les données restent cohérentes
Close you eyes 10 seconds, imagine you have separated presentation and business. (not idleness, but not so difficult). Fermez les yeux 10 secondes, imaginez que vous avez séparé présentation et métier. (c'est pas le farniente, mais c'est pas si compliqué)
Now, your business rules are implemented in clearly identified procedures, and these procedures have self-explanatory names that are really business names, for example Maintenant, vos règles métier sont mises en oeuvre dans des procédures clairement identifiées, et ces procédures ont des noms significatifs, des noms qui sont vraiment des noms métier. Par exemple
  • CreateOrder(Customer)
  • CheckProductAvailability(Product : Customer)
  • AddProduct2Order(Product : order)
  • CreerCommande(Client)
  • VerifierDisponibiliteArticle(Article : Client)
  • AjouterArticleCommande(Article : Commande)*
And the database layer is also implemented with clearly identified procedures, such as Et les règles d'intégrité des données sont elles aussi mises en oeuvre dans des procédures clairement identifiées :
  • GetCustomerAddress(list of properties)
  • SetCustomerAddress(list of properties)
  • LireAdresseClient(liste de propriétés)
  • EcrireAdresseClient(liste de propriétés)

take a break

Faites une pause

Once the code reorganized in subsets (of ILE procedures, of course), here is the new state of your application: Une fois le code réorganisé en sous ensembles (des procédures ILE, bien sur), voici le nouvel état de votre application
What misses? qu'est-ce qui manque ?
  • The application is not constructed for asynchronous working: not fready for the not-connected-mode (in a WEB application, the server never knows if the client is going to continue the order until the end). You made half of the trail toward the web.
  • l'application n'est pas construite pour un fonctionnement asynchrone, ni pour le mode non connecté (dans une application WEB, le serveur ne sait jamais si le demandeur va continuer sa commande jusqu'au bout). Vous avez fait la moitié du chemin vers le web.
What goes better? qu'est-ce qui va mieux ?
  • The user-interface didn't move (it is the goal of this stage)
  • Code it is a lot more maintainable
  • The general reorganization of the code permitted to put your finger on some particularly twisted and never clarified bugs.
  • Database is now isolated of business: the interface is supported by modules that assure the integrity. Well, sometimes, Business and Database rules continues to be interleaved. Pragmatism is the best judge. Don't forgot ROI. the project is vast but the budget is short.
  • The database and business layers are "sure" enough; we can add a SQL interface to the business rules : they are publiable. (SOA and the web services ? Yes) 
  • The existing applications, WEB or 5250, use the same path to reach the data: the data base integrity is respected, the business rules are respected.
  • l'interface utilisateur n'a pas bougé (c'est le but à cette étape)
  • le code est beaucoup plus maintenable
  • la réorganisation générale du code a permis de mettre la main sur quelques bugs particulièrement tordus et jamais élucidés.
  • la base de donnée est maintenant isolée du métier : l'interface se fait par des modules qui assurent l'intégrité. Bien que souvent, métier et données continuent d'être entrelacés. Le pragmatisme est le meilleur juge. N'oublions pas le ROI. Le projet est vaste mais le budget est serré.
  • les modules database et business sont suffisamment "surs", on peut ajouter une interface SQL aux règles métier. Elles sont publiables (SOA et services Web ? oui).
  • Les applications existantes, qu'elles soient WEB ou 5250, utilisent les mêmes moyens pour accéder aux données : l'intégrité de la base de données est respectée, les règles business sont respectées.
Here, your project can pause. You have the choice again to go or not to the web. The difference is that  Ici, votre projet peut faire une pause. Vous avez encore le choix d'aller ou pas vers le web. La différence est que
  • if you continue, now you are sure to be able to arrive there. ROI is immediate. The foundation of future is built.
  • if you don't continue, your application gained so much in maintainability that it can hold its role for even some years. ROI is Immediate. The future is built.
  • si vous continuez, maintenant vous êtes surs de pouvoir y arriver. les fondations sont prètes.
  • si vous ne continuez pas, votre application a tellement gagné en maintenabilité qu'elle peut tenir son rôle pour encore quelques années. ROI immédiat.

Stand back

Prenons du recul

You see yourselves here:  Vous vous voyez ici :
where you see
In fact you are already there En fait vous êtes déjà là
Where you are
Even if all the right cells are today empty for most of us. Même si pour la plupart d'entre nous, les cases de droite sont vides
Openness have you said? true. Ouverture ? exact.

What to do first ?

Par où commencer ?

This general modernization process must results first into evolving the database from DDS to SQL, since SQL provides naturally all database integrity management tools. And database performance constant improvements by IBM. Cette démarche aboutit à faire évoluer la database de DDS à SQL, puisque SQL fournit naturellement tous les outils de gestion de l'intégrité de la database. Et IBM améliore constamment les performances d'accès aux données via SQL.
The maintenance will be therefore surer, less complex, more efficient, more profitable. La maintenance sera ensuite plus sure, moins complexe donc plus efficace, plus rentable.
Remember : when the architecture of an application stops to evolve, maintenance costs increase 10% each year for the same level of service. Souvenez-vous : quand l'architecture d'une application arrête d'évoluer, le cout de maintenance augmente de 10% chaque année pour le même niveau de service.
Your database engineer (the guy that also holds the role of Database Administrator) will find on the market many software for the DB administration, some also runs on iDB2. La personne qui tient aussi le rôle de DataBaseAdministrator trouvera sur le marché des dizaines de logiciels d'aide à l'administration DB, certains fonctionnent aussi sur iDB2.
Otherwise, the maintainability improvement process should, by construction, also permit you Par ailleurs, la démarche d'amélioration de la maintenabilité vous a aussi permis de
  • to isolate the "untouchable" code from home code
  • to isolate the "untouchable" database from home database 
  • to create a new "modernized" database to encapsulate the two previous
  • to maximize the use of SQL and its tools (primary, foreign keys, constraints, releases,...) to assure the consistency of the set
  • to transfer as many as possible of the home database in the modernized database by transforming the PF into LF based on tables in the modernized database
  • isoler le code "intouchable" du code "maison"
  • isoler la database "intouchable" de la database "maison"
  • créer une nouvelle database "modernisée" pour encapsuler les deux précédentes
  • utiliser au maximum SQL et ses outils (clés primaires, étrangères, contraintes, déclencheurs, ...) pour assurer la cohérence du tout
  • transferer au maximum la database "maison" dans la database "modernisée" en transformant les PF en LF basés sur des tables de la database "modernisée"
Result: résultat :
Your modernized dabase will be a true SQL schema. It will be able to run under the system journaling. •    votre dabase "modernisée" est un vrai schéma SQL : il fonctionne avec la journalisation système
Your "untouchable" and "home" applications continue to run without modification, and probably without recompilation. •    vos applications "intouchable" et "maison" continuent à fonctionner sans modification, et probablement sans recompilation.
Your SQL tooling gives you free hands to construct your dreamed internet application •    votre outillage SQL vous donne les mains libres pour construire l'application internet de vos rêves
There is a constant in most articles on modernization: no one enhances the power of the SQL tools, to the benefit of converting RPG code. Il y a une constante dans la plupart des articles sur la modernisation : aucun ne montre la puissance de SQL, au bénéfice de la convertion du code RPG.

note

Note

You are now ready to search the web about optimistic lock.  Vous pouvez maintenant faire des recherches sur le web à propos du verrouillage optimiste.
Take care of embedding this requirement when reorganizing your database. Prenez le temps d'incorporer ce mécanisme quand vous réorganiserez votre base de données.
V6R1 provides the necessary basic mecanism. V6R1 amène les mécanismes de base nécessaires.
But that is the subject of an other article. Mais c'est un sujet pour un autre article.
And when you will wrap your business logic with SQL, use functions instead of stored procedures : better control, strongly typed, sql call pre-build at compilation time, easier reusability in legacy code, easier to debug, … Et quand vous incorporerez votre logique métier dans du SQL, utilisez des fonctions plutôt que des procédures stockées : meilleure gestion, typage fort, compilable, réutilisage en RPG, plus facile à débugger, ...
I’ve started preparing this paper in May 2007, so bibliography below reflects this. Month after month, I continue to read papers and news, to work on actual customer issue and answers.  This paper continues to be my guideline. J'ai commencé cet article en mai 2007, la bibliographie ci-dessous le reflète. Mois après mois, je continue à lire des articles, à travailler avec de vrai clients, avec de vraies questions. Et cet article continue d'être ma ligne de conduite.

Conclusion

Conclusion

Reality is headstrong. ROI is the key of modernization. la réalité est têtue. La clé de la modernisation, c'est le retour d'investissement.
And, here, I don't resist to the pleasure to give you this link entitled "Wyeth ensures SAP adoption, ROI with customized portals " : http://go.techtarget.com/r/3726103/1072307. Et je ne résiste pas au plaisir de vous donner ce lien intitulé "Wyeth ensures SAP adoption, ROI with customized portals " : http://go.techtarget.com/r/3726103/1072307.
It's an article about SAP. No link to the SystemI. I deliberately choosed this article, even if the context is completely different. The quality of the interface is an universal issue ; not only into the 5250 green screen world. C'est un article sur SAP. Rien à voir avec le SystemI. J'ai choisi délibérément cet article, même si le contexte est complètement différent. La qualité de l'interface utilisateur est un problème universel ; pas seulement dans le monde 5250.
It's an article about Wyeth.com, the pharmaceutical giant, and about how much an interface that target the user requirement is efficient  C'est un article sur Wyeth.com, un géant pharmaceutique. Le sujet c'est l'efficacité d'une interface qui satisfait l'utilisateur
"We went from a few hundred two years ago to over 120,000 today," Lagana  said

Bibliography

About coding improvements, have a look at Pattern Recognition Ease Modern RPG Programming (provip page) . I thought to add samples of code to this article, but scott already do the job. Sur le sujet "Améliorer le codage", regardezPattern Recognition Ease Modern RPG Programming (provip page) . J'ai songé à ajouter des exemples dans cet article, mais Scott a déjà fait tout le travail. Une version Française ? Reconnaissance de modele pour faciliter la programmation RPG moderne
About SQL and security, have a look at SQL Security (provip page) A propos de "SQL et security", regardez SQL Security (provip page)
About qshell and pase, look at  What QShell and PASE Can Do for You A propos de QSHELL et de PASE, Regardez What QShell and PASE Can Do for You
About MySQL and iDB2, look at "MySQL for i5/OS, DB2 as MySQL storage engine" thread48042  A propos de l'intégration de iDB2 et de MySQL, regardez  "MySQL for i5/OS, DB2 as MySQL storage engine" thread48042 
the redbook ""Modernizing IBM Eserver iSeries Application Data Access - a Roadmap Cornerstone"SG246393.html
The redbook "IBM System i Application Modernization - Building a New Interface to Legacy Applications"SG246671

Other considerations gleaned on the forums

autres considérations glanées sur les forums
What misses to a DB that remained DDS? qu'est ce qui manque à une DB qui est restee DDS?
  • Manual journalisation
  • Index pages 8k instead of 64k
  • No integrity constraints
  • Sometime difficult to extend (when no SCM Software Configuration manager): look at the post thread47034 about Adding fields to primary file, a thread that discuss about LVLCHK(*NO) or not a PF that has so much depending PGMs (you may never LVLCHK(*NO) any PF, there is other ways)
  • journalisation manuelle
  • index pages 8k au lieu de 64k
  • pas de contraintes d'intégrité
  • extentions difficiles : voir thread47034où l'on discute de l'ajout d'une colonne dans un fichier primaire. Une discussion qui tourne autour de l'option LVLCHK(*NO) dans le cas d'un fichier ayant beaucoup de programmes dépendants (il ne faut jamais faire LVLCHK(*NO) sur un PF, il y a d'autres moyens)

The article "Encore's extreme makeover from inside out" (provip page) (archive20806)

The explanation is well made... but the database conversion. In this experience feed back, the RPG code was embedded in stored procedures. The article doesn't evoke the database transformation. 
L'article "Encore's extreme makeover from inside out" (provip page) (archive20806)

l'explication est bien faite ... à part la partie conversion de la database. Dans ce retour sur expérience, le code RPG a été réencapsulé dans des Stored procedures ;
Mais … l'article n'évoque pas la transformation de la base de donnée. Serait-elle restée DDS ?

Other references
A Roundtable on Application Modernization, Part 1 
http://www.systeminetwork.com/artarchive/20710/channel//subart//index.html 
A Roundtable on Application Modernization, Part 2 
http://www.systeminetwork.com/artarchive/20731/A_Roundtable_on_Application_Modernization__Part_2.html 
List problems encountered when moving to SQL here, a threat started by Paul Conte
http://www.systeminetwork.com/isnetforums/showthread.php?t=42658 
Why evolve? A thought titillating threat started by Jean-Paul Lamontre (it's me)
http://www.systeminetwork.com/isnetforums/showthread.php?t=46315 
System i modularization: Seven how-to tips--part 1
Ron Turull
http://search400.techtarget.com/tip/0,289483,sid3_gci1245537,00.html 
System i modularization: Seven how-to tips--part 2
Ron Turull
http://search400.techtarget.com/tip/0,289483,sid3_gci1247267,00.html 

and for the fun, so true:
Numerology: How to Make IT a Secret Weapon
Check out these seven strategies for a successful IT operation:
  • Make sure senior managers understand IT's strategic potential and provide full support. 
  • Focus your biggest in-house IT investments in areas unique to your business that can differentiate you — not in standard functionality you can buy off the shelf. 
  • Generate competitive advantage from a combination of technology projects rather than from a single "big bang" initiative. 
  • Foster a continuous improvement culture and mind-set when it comes to technology — you're always just a half step ahead of your nearest competitor. 
  • Tie technology investments tightly to your business model to make sure they have the most impact on the business. 
  • Leverage technology on both the cost and customer-facing sides of your business. 
  • Keep as much control as possible over technology projects that will truly give you an advantage — which may translate to build versus buy or outsource.
Source: InfoWorld Magazine "7 Winning IT Strategies"