vendredi, juillet 18, 2008

les outils du projet NACA de Publicitas en Open Source

UPDATE 01-2012: Le projet NACA a donné naissance à Eranea, société dédiée à la migration 100% automatisée de grandes applications métier vers Java et Linux. Voir  www.eranea.com ou email à contact@eranea.com pour plus d'informations
________________________________________________________________________________

Beaucoup attendaient cette info suite à mes divers articles autour de notre projet NACA de migration 100% automatisée de notre application COBOL sur mainframe vers Linux Java.

Nous l'avions annoncé à Mont-De-Marsan aux RMLL 2008.

Eh bien, c'est fait: Publicitas publie ses outils NACA de conversion Cobol vers Javaen Open Source (GPL/LPGL).

Voir tous les détails et le code source originaux sur ce post de notre nouveau blog dont je reprends ici intégralement le texte du billet ci-après. Merci de mettre vos commentaires sur blog Publicitas (en double sur les 2 serait l'idéal. merci d'avance!):

===========================================================
"Publicitas publie sous licence Open Source (GPL/LGPL) le code source des outils développés dans le cadre du projet NACA (migration de son mainframe IBM/zOS sous Cobol vers des serveurs Intel/Linux sous Java) vers la communauté de l’Open Source. Cette publication a été récemment annoncée aux RMLL2008 de Mont-De-Marsan.
Pour ceux qui veulent commencer par télécharger les fichiers. Le fichier zip complet est ici: NACA-Package (Runtime, transcoder, Tests + docs) (3)
Cette version est clairement une première livraison (v1.0) : elle sera améliorée par les contributions (tierces) et documentée au fil du feedback donné par les testeurs externes qui feront fonctionner ces programmes Java sur leur propre infrastructure. De nouvelles versions sont également à prévoir autour des librairies JLib et NacaRT qui continuent par leur fonction même à être utilisées productivement par Publicitas et étendues au fil des évolutions de nos systèmes
La licence retenue est la licence GPL du GNU pour l’outil principal de transcodage et sa petite sœur LGPL pour les librairies associées.
Pourquoi ce choix ? Parce que nous souhaitons éviter le détournement de notre travail par des prestataires de services à but lucratif souhaitant utiliser ces programmes .pour leur seul bénéfice en le ramenant vers une zone propriétaire.
La GPL place, pour ces prestataires, sur les outils NACA un bon nombre de contraintes qui imposent le retour vers la communauté Open Source d’un maximum des améliorations faites par des tiers sur le transcodeur et ses librairies associées. Elle offre, par contre, une grande liberté aux sociétés utilisatrices finales.
La LGPL permet par ailleurs à des éditeurs de logiciels applicatifs de convertir leurs applications via nos outils (NacaTrans), de livrer nos bibliothèques runtime (NacaRT et JLib) en mode source mais de garder les bibliothèques de leur propre application en mode binaire afin de garder leur valeur compétitive dans le secteur industriel de leur application.
Les outils que nous publions aujourd’hui (v1.0) dans le fichier zip
  • ·Doc: un ensemble de documents explicatifs autour de ces outils. Votre feedback sur leur contenu, leurs déficits nous permettra de les améliorer.
  • NacaTrans (licence GPL - approx. 83′00 lignes de code code & 690 classes Java): notre transcodeur qui nous a permis de transcoder les 4 millions de ligne de Cobol de notre application PUB 2000. C’est en quelque sorte un compilateur qui analyse d’abord la structure des programmes Cobol initiaux (supposés 100% opérationnels) pour les amener dans une structure xml intermédiaire avant de générer un code Java faisant massivement appel aux classes et fonctions de la librairie de runtime NacaRT. Ce code Java généré a la particularité intentionnelle de ressembler au maximum au code source Cobol initial afin de favoriser la poursuite de la maintenance par les développeurs initiaux. L’exhaustivité de ce compilateur par rapport aux multiples standards du langage Cobol n’est clairement pas garantie: NacaTrans compile correctement nos 4 millions de ligne de COBOL. C’est la seule garantie. Cependant des tests complémentaires avec du code COBOL applicatif en provenance d’autres sociétés nous laisse croire que le taux de couverture du langage est excellent. Nous l’améliorerons encore avec le feedback de la communauté.
  • NacaRT et Jlib (licence LGPL - approx 153′000 lignes de code & 890 classes Java): ce sont les bibliothèques de runtime qui réalisent toutes les fonctions de gestion / fonctionnement d’un système transactionnel classique. Elles émulent tous les verbes d’un moniteur transactionnel comme CICS (voir docs) et réalisent aussi entre autres l’émulation du langage Cobol (par exemple, structure COMMAREA à masques multiples, formats de données COMP-X spécifique à COBOL, etc…)
  • · NacaRTTest (licence GPL): une suite de tests nous permettant de valider le fonctionnement correct de nos algorithmes de compilation. Pour toute personne qui installe la suite NACA dans son environnement, c’est la partie à faire fonctionner en priorité car elle tend à garantir une bonne installation de l’ensemble des composants
Tous ces composants sont livrés avec les fichiers de description de projet au format Eclipse afin de faciliter leur prise en main via des outils standards du monde Java.
Maintenant, la question que vous vous posez sûrement: pourquoi cette démarche?
  • Parce que Publicitas, ayant beaucoup reçu de la communauté Open Source pour le projet NACA, souhaite rendre autant que possible. Avec cette publication, nous pensons livrer une contribution à forte valeur ajoutée et très pointue contribuant activement à notre tour à la dynamique Open Source
  • Parce que nous pensons que nos outils éprouvés à l’aune de notre propre projet de migration puis à celle d’une année complète de fonctionnement opérationnel peuvent être une excellente base pour des projets similaires dans d’autres entreprises souhaitant elles-aussi bénéficier de tous les bénéfices de l’Open Source abondamment évoqués dans notre série d’articles sur le sujet.
  • Parce que nous souhaitons encore améliorer nos outils qui restent encore abondamment utilisés chez nous: ils gèrent toujours nos 750′000 transactions quotidiennes. Bien sûr , nous souhaitons travailler encore les librairies runtime (Jlib + NacaRT) puisque la version Java de PUB 2000 s’appuie abondamment dessus mais aussi sur le transcodeur NacaRT puisque nos équipes de développement ont fait le choix pour des raisons spécifiques de continuer à maintenir une fraction minoritaire de nos programmes directement en Cobol et de les recompiler au vol en Java. Nous avons développé un plug-in Eclipse à cette intention
  • Parce que Consultas, notre société informatique essentiellement interne, a développé une palette de compétences très spécifiques à cette occasion. Sans en faire son cœur d’activité mais pour malgré tout valoriser ce savoir-faire et surtout permettre à ses ingénieurs de se frotter à d’autres problématiques similaires pour s’aguerrir encore, Consultas prendrait volontiers quelques mandats de support / mise en place / extension de ces outils pour d’autres sociétés se lançant dans leur “propre NACA”.
Voilà, à vous de jouer: prenez le package complet NACA-Package (Runtime, transcoder, Tests + docs) (3) et mettez-le en place dans votre contexte. Faites-nous part de vos suggestions par vos commentaires sur ce billet.
PS: pour des contacts autour de projets particuliers, vous pouvez nous contacter aussi plus spécifiquement par email à cette adresse: naca-contact@publicitas.com"
===================================================================
Source: blog Media & Tech (par didier durand)

6 commentaires:

Benoît a dit…

Bravo, c'est une démarche généreuse.
J'ai eu l'occasion d'évoquer votre travail (en pointant vers tes articles) une ou deux fois dans des discussions techniques. Je me réjouis d'y jeter un oeil !

Guillaume a dit…

Bravo à toute l'équipe,
ça me fait rudement plaisir de voir un projet aussi beau être publier sous GPL.

d.durand a dit…

Bonjour Benoît,

merci!
didier

d.durand a dit…

Salut Guillaume,
Ravi de voir que le projet te plaît toujours autant.
A bientôt!
didier

Sylvain a dit…

Salut Didier,

Content de voir ce projet commencer une seconde vie ! Et aussi de voir l'intérêt de la communauté pour lui !
Ne serait-ce pas intéressant de mettre en place un forum pour partager les expériences autour de ces outils ?
En tous cas bravo pour la démarche.

d.durand a dit…

Salut Sylvain,

Ravi que l'idée de plaise!

La communauté est en marche: voir http://code.google.com/p/naca. Le groupe de discussion est en création.

a+
didier