IV.3 CHOIX TECHNIQUES
IV.3.1 Langages de programmation
1. Java Messaging System ou JMS
JMS est une API, et cette API correspond à des services
d'échange entre des producteurs et des consommateurs de messages,
s'appuyant sur des concepts que nous avons présentés.
Au-delà de l'API donc, JMS définit les fonctionnalités
centrales des MOMs.
JMS spécifie le service, mais ne spécifie pas
comment ce service est mis en oeuvre. Chaque fournisseur, JMS Provider, est
libre de ses choix d'implémentation. Comme on l'a vu plus haut, les
protocoles d'échanges peuvent également être
considérés comme des choix d'implémentation propres
à certains MOMs, même si nous considérons qu'ils ont une
réelle importance.
La spécification JMS n'est pas en tous points complets.
Certaines fonctions essentielles au fonctionnement d'une plateforme MOM ne sont
pas décrites dans la spécification et font donc l'objet
d'implémentations particulières. C'est le cas en particulier pour
la configuration et l'administration du service de messagerie, pour la
sécurité (intégrité et confidentialité des
messages) et pour certains paramètres de qualité de service.
Par ailleurs, la plupart des MOMs proposent des fonctions
additionnelles qui se présentent comme des atouts spécifiques par
rapport aux offres concurrentes (par exemple les topics
hiérarchisés, des fonctions de sécurité et des
mécanismes de haute disponibilité, etc.). Bien sûr, la mise
en oeuvre de ces fonctionnalités se fait au détriment de la
capacité à changer de MOM, en respectant l'API JMS.Comme d'autres
spécifications d'interface, comme le SQL par exemple, la promesse de
pouvoir changer d'implémentation de MOM JMS de manière
transparente, n'est pas facilement tenue. Mais ce n'est pas très
grave.
La spécification commune apporte déjà le
bénéfice d'une communauté de vision, d'approches, et de
compétences. Un architecte peut raisonner sur la base d'un MOM sans
savoir nécessairement de quelle « marque » il sera, et un
développeur qui a pratiqué JMS avec un premier MOM, pourra
presque immédiatement en pratiquer un second.
2. Python
Python est un langage de programmation objet
interprété, multi-paradigme et multiplateformes. Il favorise la
programmation impérative structurée, fonctionnelle et
orientée objet. Il est doté d'un typage dynamique fort, d'une
gestion automatique de la mémoire par ramasse-miettes et d'un
système de gestion d'exceptions ; il est ainsi similaire à Perl,
Ruby, Scheme, Smalltalk et Tcl.
Le langage Python est placé sous une licence libre
proche de la licence BSD4 et fonctionne sur la plupart des plates-formes
informatiques, des supercalculateurs aux ordinateurs centraux5, de Windows
à Unix avec notamment GNU/Linux en passant par macOS, ou encore Android,
iOS, et aussi avec Java ou encore .NET. Il est conçu pour optimiser la
productivité des programmeurs en offrant des outils de haut niveau et
une syntaxe simple à utiliser.
Il est également apprécié par certains
pédagogues qui y trouvent un langage où la syntaxe, clairement
séparée des mécanismes de bas niveau, permet une
initiation aisée aux concepts de base de la programmation Il est
également apprécié par certains pédagogues qui y
trouvent un langage où la syntaxe, clairement séparée des
mécanismes de bas niveau permet une initiation aisée aux
concepts de base de la programmation.
|