Retombée en enfance
Par Fred le mercredi 22 juin 2011, 22:29 - Développement - Lien permanent
Il y a quelques années alors que j'étais jeune, beau avec un peu plus de cheveux, je passais brillamment ma soutenance de fin d'études.
Quelques 13 ans plus tard, me revoilà à essayer de refaire les mêmes expériences tel le professeur Frankenstein...
Bon, je n'essaie pas de ressusciter les morts ou de fabriquer une sorte de zombie avec des bouts de cadavre.
Ceci dit, la dernière proposition est pas mal car le but de la manip est de faire un gros programme avec pleins d'autres qui causent entre eux.
Le suspense a assez duré, je parle ici de CORBA et plus généralement d'architecture distribuée.
La seule différence avec mes études est que cette fois-ci, c'est en Ada... Forcément. Et sous FreeBSD... Forcément aussi :D
En fait, j'ai commencé à m'amuser à faire ce que je fais déjà pour le boulot, des Web services en Ada avec AWS, histoire de voir les performances que l'on pouvait tirer de tout ça.
Ceux qui m'ont déjà lu ici savent aussi que j'ai le privilège de travailler avec le BPEL. Cette horreur fonctionne dans un bus d'entreprise[1] et que toute cette magnifique architecture fonctionne le plus cair du temps en Java.
C'est là que mon esprit malade à commencer à germer. Comment faire un ESB en Ada ?
Pour faire causer des services Web, facile, il suffit d'utiliser AWS mais dans le bus ?[2]
La solution est devenue aussi flagrante, il faut PolyORB.
Petit tour d'horizon des ports de l'OS du Bien, il y a un beau compilateur Ada tout neuf que l'on doit à Mr Marino et son équipe mais point de PolyORB à l'horizon. qu'à cela ne tienne, je suis informaticien quand même !!!
Du coup, zou, je télécharge la dernière version et hop, je compile :
fred@coruscant:~/Dev/Ada/PolyORB/polyorb-gpl-2011-src>./configure \ --with-appli-perso="corba moma dsa" \ --with-proto-perso="giop soap" \ --with-corba-services="event naming ir notification time" fred@coruscant:~/Dev/Ada/PolyORB/polyorb-gpl-2011-src>gmake
Et là, ça compile pendant quelques minutes avant de crasher lamentablement par un magnifique :
PCS version mismatch: expander 4, PCS (polyorb_dsa) 5 compilation abandoned PCS version mismatch: expander 4, PCS (polyorb_dsa) 5 s-parint.adb:764:39: run-time configuration error compilation abandoned s-parint.adb:764:39: entity "System.Partition_Interface.Ta_I" not defined gnatmake: "/home/fred/Dev/Ada/PolyORB/polyorb-gpl-2011-src/src/dsa/polyorb-dsa_p-storages-dsm.adb" compilation error gnatmake: "/home/fred/Dev/Ada/PolyORB/polyorb-gpl-2011-src/src/dsa/s-shasto.adb" compilation error gnatmake: "/home/fred/Dev/Ada/PolyORB/polyorb-gpl-2011-src/src/dsa/s-parint.adb" compilation error gmake: *** [polyorb_src_dsa.gpr] Erreur 4
Bon, pour votre info, bande d'ignares, DSA, c'est la distribution vue par Ada. Avantage du truc, c'est dans la norme et ça demande vachement moins de code que du CORBA donc je voulais me garder ça sous le coude.
Bien sûr, en bourrin que je suis, je ne lis pas tout et me dis :
Andouille, t'as qu'à prendre la dernière version !!
Première constatation, je me traite souvent d'andouille. deuxième constation plus intéressante, l'adresse du référentiel Subversion sur la page de PolyORB. C'est parti :
fred@coruscant:~/Dev/Ada/PolyORB/>svn co http://svn.eu.adacore.com/anonsvn/Dev/trunk/polyorb
Quelle ne fut pas ma déception de revoir le message maudit !!!
Après un long moment de lamentations, j'ai relu le message d'erreur quasi limpide[3]
PCS version mismatch: expander 4, PCS (polyorb_dsa) 5
Tiens, y a des trucs qui causent pas ? PolyORB est en version 5 et l'autre en 4.
J'ai donc trouvé qu'il s'agit du compilateur qui est trop ancien
par rapport au middleware. Qu'à cela ne tienne, j'ai accès au subversion. Oui mais quoi récupérer ? La version de PolyORB de la même époque[4] que mon compilateur.
fred@coruscant:~/Dev/Ada/PolyORB/>svn co -r \{15042011\} http://svn.eu.adacore.com/anonsvn/Dev/trunk/polyorb
Et là, miracle, ça compile et ça s'installe.
Vous vous dites forcément
Et après ?
Ben après, pour l'instant, j'ai juste fait joujou avec les exemples CORBA et DSA.
Ce billet ne sert donc qu'à savoir compiler PolyORB sur FreeBSD avec la version courante[5] de gnat-aux... Désolé pour le dérangement
Comme disent les Anglais, more to come later[6]
Notes
[1] Attention, ça devient hype à mort
[2] Et oui, déjà en quatrième, on se rend plein de services dans le bus... Bon, passons.
[3] Après une bonne recherche du Google quand même et surtout la lecture du fichier README.DSA :D
[4] Ou presque, j'ai pas retrouvé exactement la date
[5] A la date d'aujourd'hui
[6] Si ça se trouve, ils disent même pas ça
Commentaires
Bon jour,
svn -r 170161
sur le freeBSD utilisant excellent gnat-aux.
de Marino après lecture de votre blog.
le polyorb, à l'heure actuelle. Jusqu'ici, il va assez bien.
à la votre,
Charlie.
la picoseconde désolée si ceci le lit drôle… est passée par un traducteur : /.
@charlie5 :
you should have written your comment in english, translators are not so good :D
Anyway, I'm happy this helped you.
Maybe I would have to translate this post into english, this way, many non-french speaking people could read it... As far as many people read this blog