Dynamiser l'offre logicielle sous OpenVMS

Gérard Calliet et Thierry Uso, le 7 Août 2007.

:: :: Une offre logicielle limitée

OpenVMS représente désormais un marché de niche considéré comme peu rentable par la plupart des éditeurs de logiciels. Ceux-ci abandonnent leurs logiciels fonctionnant sous OpenVMS (SAP), ou arrêtent de les faire évoluer; quant aux nouveaux logiciels, ils ne fonctionnent que très rarement sous ce système d’exploitation. En conséquence, l’offre logicielle sous OpenVMS est actuellement des plus limitées. De plus, les logiciels disponibles sont perçus comme soit trop coûteux (Oracle, BEA Web Logic…), soit de conception ancienne (les approches modernes telles que client léger Web 2.0 ou client riche sont rarement utilisées; voir tableau ci-dessous).

Conception Interface Gestion Réseau/serveur Offre OpenVMS
Emulation de terminal - +++ +++ importante
Serveur X11 +++ ++ - moyenne
Client lourd +++ - ++ moyenne
Client léger + ++ + faible
Client léger Web 2.0 ++ ++ ++ très faible
Client riche +++ +++ ++ très faible

Confrontées à cette carence de l’offre logicielle sous OpenVMS, de nombreuses entreprises se voient contraintes d’abandonner OpenVMS. La spirale négative “carence de l’offre – abandon d’OpenVMS – diminution de l’offre” est extrèmement dangereuse pour l’avenir d’OpenVMS. Nous allons décrire trois approches pour tenter de sortir de cette spirale :

:: :: Porter des logiciels libres sous OpenVMS

Le portage d’un logiciel libre sous OpenVMS est une opération généralement moins lourde techniquement que la rénovation d’un logiciel existant ou le développement ex-nihilo d’un logiciel. Il en résulte un coût lui aussi moins élevé.

Cependant le portage n’est pas applicable dans tous les cas. Parfois :

Il est aisé de trouver des logiciels libres de bonne qualité dans les domaines de la gestion de contenus (wiki, gestion électronique de documents…), de la gestion de projets (issue et bug tracker…) mais bien plus difficile pour l’instant dans le domaine de la gestion commerciale (ERP, CRM…). Quant à des domaines très spécialisés tels que la gestion d’un laboratoire d’analyse médicale ou le contrôle d’un processus chimique, ils se caractérisent par une absence de logiciels libres.

Parmi les logiciels libres de bonne qualité, seule une fraction d’entre eux sont portables sous OpenVMS à un coût raisonnable. Les problèmes plus ou moins rédhibitoires rencontrés le plus souvent lors des tentatives de portage sont :

Notons enfin que la société désirant proposer un logiciel libre à un de ses clients doit s’écarter d’un business model d’éditeur de logiciels au profit de celui de société de services. En effet, la rémunération doit provenir principalement des services autour du logiciel (installation/configuration, support, développement de fonctions spécifiques…) et non plus de la vente du logiciel lui-même. En fonction de son domaine et de sa licence (GPL vs BSD), un logiciel libre se prêtera plus ou moins bien à un business model orienté services.

Voici un échantillon de logiciels libres de bonne qualité ainsi que leur disponibilité sous OpenVMS. Ceux-ci sont regroupés par domaine (wiki, gestion électronique de documents, gestion de projets, ERP, CRM).

Wiki Environnement Prérequis Remarques OpenVMS
xWiki Java Servlet container, BDD HSQLDB oui
Mediawiki PHP5+Perl Server Web, BDD - non
moin moin Python Serveur Web fichiers plats oui
PmWiki PHP Serveur Web fichiers plats oui

GED Environnement Prérequis Remarques OpenVMS
Alfresco Java Servlet container, BDD - non
Nuxeo Java Jboss, BDD - non
KnowledgeTree PHP Serveur Web, BDD pb PHP? non
Contineo Java Servlet container, BDD - oui

G. de projets Environnement Prérequis Remarques OpenVMS
Tutos PHP Server Web, BDD ~groupware ??
Scarab Java Servlet container, BDD bug tracker ??
Mantis PHP Serveur Web, MySQL bug tracker oui
trac Python Server Web, BDD bug tracker ??
ttraq Java Servlet container, MySQL time tracker oui
Jtraq Java Servlet container, MySQL issue tracker oui

ERP Environnement Prérequis Remarques OpenVMS
Compiere Java Jboss, BDD - non
OFbiz/Neogia Java Servlet container, BDD - ??
ERP5 Python Zope, BDD - non
TinyERP Python Server Web, PostgreSQL - non
Dolibarr PHP Server Web, MySQL pb MySQL? non
OpenBlueLab Java Servlet container, eXist Cocoon, UML ??

CRM Environnement Prérequis Remarques OpenVMS
SugarCRM PHP5 Serveur Web, BDD - non
Vtiger PHP5 Server Web, BDD - non
OpenCRX Java Jboss, BDD - non
XRMS PHP Server Web, MySQL - oui

:: :: Rénover des logiciels existants

Le monde du logiciel a vu récemment :

Le point commun de ces deux tendances est l’importance accordée à l’intégration de modules logiciels spécialisés et hétérogènes ce qui rend le plus souvent caduque la reécriture “from scratch” des logiciels au profit de leur rénovation.

Les méthodes modernes de rénovation logicielle s’appuient sur les deux tendances décrites ci-dessus et peuvent se classer en deux catégories :

Le revamping se limite à traduire de façon quasi-automatique l’interface utilisateur traditionnelle (émulation de terminal) en une interface client léger Web (voir Web 2.0). Les outils de revamping permettent une rénovation logicielle rapide mais en introduisant une dépendance technologique et sans offrir de véritable évolution fonctionnelle.

L’intégration de modules logiciels “legacy” permet un retour sur investissement substantiel mais le résultat est le plus souvent peu attractif en termes d’ergonomie et d’interactivité.

legacy
Figure 1: Application Legacy

revamping
Figure 2: Revamping

integration
Figure 3: Intégration

Les produits (propriétaires ou opensources) permettant la rénovation logicielle en environnement OpenVMS sont moins nombreux qu’en environnement UNIX ou mainframe IBM. D’autre part, la plupart des outils notamment de revamping conçus initialement pour l’environnement mainframe (émulation de terminal en mode bloc) conduisent à des interfaces perçues comme peu ergonomiques par les utilisateurs habitués à l’émulation de terminal en mode caractère d’OpenVMS.

Le développeur se doit donc d’adopter une démarche spécifique pour mener à bien une rénovation logicielle en environnment OpenVMS qui soit à la fois de qualité (client léger Web 2.0 ou client riche) et économiquement viable pour l’entreprise. Il ne peut pas s’appuyer uniquement sur les produits proposés par les éditeurs de logiciels; il lui faut aussi trouver des solutions architecturales prenant en compte les spécificités et points forts de ce système d’exploitation.

Voici un échantillon de produits (outils de revamping, frameworks, middlewares…) pouvant être utilisés pour la rénovation logicielle ainsi que leur disponibilité sous OpenVMS.

Produit Caractéristique Technologie Licence OpenVMS
Powerterm Host Publisher revamping frontend server Ericom oui
Verastream Host Integrator revamping frontend server AttachmateWRQ oui
Legasuite GUI revamping frontend server Seagull oui
Orbeon forms framework Java Web 2.0, Xforms LGPL ou prop. oui
ZK framework Java Web 2.0, XUL GPL ou prop. oui
XULfaces framework Java Web 2.0, XUL+JSF LGPL ou prop. ??
XUI framework Java Client riche, XUL MPL ou prop. ??
Bridgeworks legacy integration EJB ou COM gratuit HP AXP
Legasuite Integration Engine legacy integration composants Seagull oui
BEA Aqualogic SOA middleware java SOA, J2EE BEA oui
Fuse ESB middleware Java SOA, JBI APL ou prop. ??

:: :: Développer de nouveaux logiciels multiplateformes

La plupart des décideurs confrontés au choix d’un progiciel considèrent que le système d’exploitation utilisé est une “commodité” dont la qualité présumée est moins importante que le coût (licence + plateforme matérielle). Dans le cas d’OpenVMS, s’ajoute souvent aussi la perception erronée que ce système d’exploitation est en fin de vie.

Dès lors, il est compréhensible que les éditeurs de logiciels soient de plus en plus réticents à développer spécifiquement pour l’environnement OpenVMS. Or, la mise sur le marché de nouveaux progiciels fonctionnant sous ce système d’exploitation est vitale; elle permettrait à bon nombre d’entreprises de renouveler leurs applications en restant dans un environnement qu’elles apprécient par ailleurs pour ses qualités intrinsèques.

La seule solution économiquement viable pour les éditeurs de logiciels est le développement multiplateforme car il répond au marché OpenVMS sans en être limité par la taille. Ce type de développement nécessite néanmoins un certain nombre de précautions parmi lesquelles :

Le tableau ci-dessous compare les principaux langages de développement selon des critères pertinents pour les éditeurs de logiciels et indique la disponibilité de compilateurs sous OpenVMS. Il ressort de ce tableau que certains langages sont à privilégier (Java, Python, Ada) et d’autres à exclure (Cobol, Fortran, Pascal).

Langage Portabilité Librairies1 Coût2 OpenVMS
Java +++ +++ +++ AXP, I64
Python ++ ++ +++ AXP, I64
PHP ++ ++ ++ AXP+I64=PHP4
Ada +++ + +++ VAX=DECada, AXP+I64=Gnat
C++ + ++ - VAX, AXP, I64
C + ++ - VAX, AXP, I64
Pascal - - ++ VAX, AXP, I64
Fortran + + + VAX, AXP, I64
Cobol - - + VAX, AXP, I64

Dans une optique multiplateforme, l’accès aux données par RMS est bien évidemment à exclure au profit de SQL. Le tableau ci-dessous liste les principales bases de données relationnelles et leur disponibilité sous OpenVMS. Il ressort de ce tableau l’absence actuellement de solution à la fois fiable et économique sous ce système d’exploitation.

BDD relationnelle Licence OpenVMS
Oracle SI Oracle VAX, AXP, I64
Oracle RDB Oracle VAX, AXP, I64
Mimer Mimer VAX, AXP, I64
Ingres CA VAX, AXP
OpenIngres GPL AXP
MySQL GPL ou prop. AXP, I64
PostgreSQL BSD non
SQLite domaine public pb accès concurrent

Le tableau ci-dessous liste les principaux serveurs Web et leur disponibilité sous OpenVMS. Apache est la solution la moins performante et scalable sous ce système d’exploitation.

Serveur Web Technologie Licence OpenVMS
Apache PHP, Perl, CGI APL oui (CSWS)
WASD PHP, Perl, Python, CGI GPL oui
Tomcat Servlet Container APL oui (CSWS_JAVA)
Jetty Servlet Container APL oui
BEA Weblogic Servlet + EJB Container BEA oui
JOnAS Servlet + EJB container LGPL oui
Jboss Servlet + EJB Container LGPL ou prop. ??
Geronimo Servlet + EJB Container APL ??

:: :: Conclusion

L’article a décrit trois approches possibles pour redynamiser l’offre logicielle sous OpenVMS :

Selon la situation, l’éditeur de logiciels favorisera une approche plutôt qu’une autre. Notons que plus il y aura de composants opensources sous OpenVMS, plus ces trois approches seront viables économiquement et techniquement.

Seule une offre logicielle redevenue conséquente permettra à OpenVMS d’être à nouveau choisi pour ses qualités intrinsèques.

Glossaire

APL – Apache Public License
BSD – Berkeley Software Distribution
CGI – Common Gateway Interface
CRM – Customer Relationship Management
EJB – Enterprise JavaBeans
ERP – Enterprise Resource Planning
GPL – General Public License
J2EE – Java 2 Enterprise Edition
JBI – Java Business Integration
JSF – Java Server Face
JVM – Java Virtual Machine
MPL – Mozilla Public License
SOA – Service-Oriented Architecture
XML – eXtensible Markup Language
XUL – XML User interface Language

Notes

1 Librairies standards du langage et librairies opensources

2 Le coût intègre le développement et le déploiement mais pas l’acquisition du compilateur

aleft A propos des Technical Update Days 2006 Utilitaires pour l'ingénieur système OpenVMS aright