Content uploaded by Patrice Poyet
Author content
All content in this area was uploaded by Patrice Poyet on Jul 26, 2014
Content may be subject to copyright.
Etude et propositions
pour l’avenir logiciel
du CSTB
Patrice POYET
en collaboration avec
Nicolas BUS et Werner KEILHOLZ
Décembre 2004
1
TABLE DES MATIERES
INTRODUCTION GÉNÉRALE...........................................................................................10
POLITIQUE TECHNIQUE..................................................................................................12
INTRODUCTION........................................................................................................................12
LES OUTILS............................................................................................................................12
Introduction......................................................................................................................12
UML..................................................................................................................................13
.NET..................................................................................................................................15
JAVA.................................................................................................................................17
BDs et Persistance............................................................................................................18
LE FUTUR DES ENVIRONNEMENTS DE DÉVELOPPEMENT..............................................................21
Introduction......................................................................................................................21
IBM...................................................................................................................................23
Microsoft...........................................................................................................................23
L’usine logicielle : attentes et perspectives......................................................................23
QUID DU LOGICIEL LIBRE ?......................................................................................................24
Introduction......................................................................................................................24
Free as in Freedom...........................................................................................................25
Microsoft et le logiciel libre.............................................................................................26
Les organismes publics et le logiciel libre.......................................................................27
Quelques applications du logiciel libre............................................................................29
Le cas Open-Cascade.......................................................................................................30
Le logiciel libre et le CSTB : un business model ?...........................................................30
QUELQUES MOTS DES FUTURS OS............................................................................................31
Introduction......................................................................................................................31
Longhorn pour des machines surpuissantes.....................................................................31
PORTÉE JURIDIQUE ET IMPLICATION LÉGALES...................................................34
INTRODUCTION........................................................................................................................34
NOTION DE PROTECTION DES LOGICIELS...................................................................................34
QUEL BESOIN DE PROTECTION ?...............................................................................................35
LES PROTECTIONS FORMELLES.................................................................................................36
Le droit d’auteur...............................................................................................................36
Les marques déposées......................................................................................................37
Les licences utilisateur.....................................................................................................38
Les brevets........................................................................................................................39
LES ENJEUX............................................................................................................................42
PROCESSUS DÉCISIONNEL ET LOGIQUE ÉCONOMIQUE......................................43
INTRODUCTION........................................................................................................................43
OBJECTIFS DE DIFFUSION DES LOGICIELS...................................................................................44
QUELQUES OBSERVATIONS SUR LES PROCESSUS ACTUELS..........................................................45
2
RECOMMANDATIONS................................................................................................................47
POLITIQUE INDUSTRIELLE.............................................................................................48
INTRODUCTION........................................................................................................................48
SPÉCIFICITÉS DU LOGICIEL.......................................................................................................48
LA NOTION DE GAMME............................................................................................................50
QUELQUES PROJETS STRATÉGIQUES..........................................................................................51
La réalité virtuelle............................................................................................................51
Les plate-formes d’intégration.........................................................................................54
Les modèles de bâtiment...................................................................................................56
Les modèles numériques sophistiqués..............................................................................57
L’ingénierie documentaire...............................................................................................58
TENDANCES............................................................................................................................59
Convergence simulation, réglementation.........................................................................59
Simulation multidisciplinaire...........................................................................................60
Système d’information géographiques.............................................................................60
Service en ligne à titre promotionnels..............................................................................60
Intégration de codes open-source.....................................................................................60
LOGIQUE FINANCIÈRE.....................................................................................................61
INTRODUCTION........................................................................................................................61
PHASES DES PROJETS LOGICIELS...............................................................................................61
LE LOGICIEL BTP, MICRO BUSINESS ?.....................................................................................62
POLITIQUE PARTENARIATS STRATÉGIQUES...........................................................63
INTRODUCTION........................................................................................................................63
SURVOL DE L’OFFRE EXISTANTE...............................................................................................63
PARTENARIATS POUR QUELS SUJETS ?......................................................................................83
RÉFLEXIONS SUR NOTRE PORTEFEUILLE DE PROJETS......................................85
INTRODUCTION........................................................................................................................85
LES PROJETS CANDIDATS.........................................................................................................85
Gestion de patrimoine......................................................................................................85
Développement durable....................................................................................................86
Confort thermique............................................................................................................88
Matériaux.........................................................................................................................89
Confort acoustique...........................................................................................................90
Sécurité - structures..........................................................................................................92
Autres................................................................................................................................92
EXEMPLE D’ÉVALUATION SOMMAIRE DU PORTEFEUILLE............................................................93
LE DÉPARTEMENT DÉVELOPPEMENT DURABLE - DDD.......................................95
PARTICIPANTS.........................................................................................................................95
PLACE DU LOGICIEL DANS LES ACTIVITÉS DE DDD...................................................................95
CARACTÉRISTIQUES DE L'ÉDITION LOGICIELLE AU SEIN DE DDD...............................................96
Activités « énergie et environnement » s’appuyant sur des outils logiciels....................96
Expérience de DDD dans l'édition logicielle...................................................................97
Clients...............................................................................................................................98
Financements....................................................................................................................98
Partenaires.......................................................................................................................98
Technologies mises en oeuvre..........................................................................................98
3
INVENTAIRE DES DÉVELOPPEMENTS ET LOGICIELS DDD...........................................................98
FASOL V...........................................................................................................................98
SIMBAD............................................................................................................................99
SOLO 2000.......................................................................................................................99
EMMA...............................................................................................................................99
SIMSOL..........................................................................................................................100
BPOL..............................................................................................................................100
BDDQAI (Système d'Information de l'Observatoire de la Qualité de l'Air Intérieur)...100
COMET CE....................................................................................................................100
CometRes........................................................................................................................100
CometClim......................................................................................................................101
Moteurs de calculs pour la réglementation thermique...................................................101
ConsoClim (A.BOLHER)................................................................................................101
PSD.................................................................................................................................101
SYMPHONIE..................................................................................................................102
Simulation Studio (TRNSYS).............................................................................................102
SIMBAD (P.RIEDERER)................................................................................................102
MATLAB.........................................................................................................................102
SIREN 95........................................................................................................................102
EQUITY..........................................................................................................................102
FREINS À LA DIFFUSION DE LOGICIELS CHEZ DDD..................................................................103
FACTEURS FAVORABLES ET OPPORTUNITÉS.............................................................................103
Les nouvelles normes européennes.................................................................................103
Les thèmes émergeants...................................................................................................104
Systèmes d'information...................................................................................................104
Convergence des développements..................................................................................104
Valorisation des base données techniques.....................................................................104
Logiciel d'aide à la gestion des déchets de chantier......................................................104
Gestion du patrimoine....................................................................................................104
Energie renouvelables....................................................................................................105
"BEST PRACTICES" DDD.......................................................................................................105
ATTENTES DE DDD DANS LE CADRE D'UNE ACTION EDITION LOGICIELLE GÉNÉRALISÉE..........106
LE DÉPARTEMENT ACOUSTIQUE ET ECLAIRAGE - DAE....................................108
PARTICIPANTS.......................................................................................................................108
LA PLACE DU LOGICIEL DANS LES ACTIVITÉS ACOUSTIQUES DE DAE.......................................108
CARACTÉRISTIQUES DE L'ÉDITION LOGICIELLE DAE...............................................................108
Activités du domaine de l’acoustique s’appuyant sur des logiciels...............................108
Clients.............................................................................................................................109
Financements..................................................................................................................109
Partenaires.....................................................................................................................109
Technologies mises en oeuvre........................................................................................109
L'EXPÉRIENCE DE DAE DANS L'ÉDITION LOGICIELLE..............................................................110
FREINS À LA DIFFUSION DE LOGICIELS....................................................................................111
FACTEURS FAVORABLES À LA DIFFUSION DE LOGICIELS...........................................................111
OPPORTUNITÉS......................................................................................................................112
"BEST PRACTICES"................................................................................................................112
ATTENTES DE DAE DANS LE CADRE D'UNE ACTION EDITION LOGICIELLE GÉNÉRALISÉE...........113
INVENTAIRE DES DÉVELOPPEMENTS ET LOGICIELS DAE..........................................................113
Typologie........................................................................................................................113
4
ACOUBAT SOUND........................................................................................................114
MITHRA.........................................................................................................................114
MITHRASON..................................................................................................................115
EPIDAURE, EBINAUR..................................................................................................115
ICARE.............................................................................................................................115
Boite à outils pour l'acoustique......................................................................................115
Boite à outils pour la réalité virtuelle............................................................................116
CARMEN........................................................................................................................116
CASC..............................................................................................................................116
MICADO.........................................................................................................................116
MEFISSTO.....................................................................................................................116
4AS..................................................................................................................................116
PARABOLE....................................................................................................................117
ATLAS.............................................................................................................................117
LABE...............................................................................................................................117
LE DÉPARTEMENT STRUCTURE SÉCURITÉ FEU - DSSF......................................118
PARTICIPANTS.......................................................................................................................118
LE LOGICIEL DANS LES ACTIVITÉS DE DSSF...........................................................................118
ACTIVITÉS DE DSSF S’APPUYANT SUR DES OUTILS LOGICIELS................................................119
CLIENTS ET FINANCEMENTS...................................................................................................119
PARTENAIRES........................................................................................................................120
INVENTAIRE DES DÉVELOPPEMENTS ET LOGICIELS DSSF........................................................120
SYMPHONIE..................................................................................................................120
STABOS..........................................................................................................................120
BITMAC..........................................................................................................................120
FISBA.............................................................................................................................120
CIFI................................................................................................................................120
NAT.................................................................................................................................121
BATIDIM........................................................................................................................121
STABFEU.......................................................................................................................121
MARC.............................................................................................................................121
Simulation des incendies................................................................................................121
URUS..............................................................................................................................121
CIMFEU.........................................................................................................................121
BEFIM............................................................................................................................121
FREINS À LA DIFFUSION DE LOGICIELS....................................................................................122
FACTEURS FAVORABLES ET OPPORTUNITÉS.............................................................................122
Code ASTER (www.code-aster.org)...............................................................................122
Fascicules de la direction des marchés publics.............................................................122
Eurocodes.......................................................................................................................122
Saisie automatique des bâtiments (VIZALL, IFC)..........................................................122
Gestion complète du cycle de vie du bâtiment................................................................123
Méthodes de calcul simplifiées.......................................................................................123
Valorisation des données techniques..............................................................................123
Prescription de solutions logicielles...............................................................................123
Mutualisation des moyens de calculs.............................................................................123
Thèmes émergents...........................................................................................................123
Approche statistique.......................................................................................................124
ATTENTES DE DSSF DANS LE CADRE D'UNE ACTION EDITION LOGICIELLE GÉNÉRALISÉE.........124
5
Format de données.........................................................................................................124
Maîtrise du code.............................................................................................................124
Assurance qualité logicielle............................................................................................124
Stratégie commune.........................................................................................................124
DEUX MOTS DES AUTRES DÉPARTEMENTS, DRD & DT.......................................125
PARTICIPANTS.......................................................................................................................125
VISION COLLECTIVE DES DÉPARTEMENTS...............................................................................125
Pilotage...........................................................................................................................125
Positionnement/Cycle de vie :........................................................................................125
Qualité du logiciel..........................................................................................................125
Etablissement du prix.....................................................................................................126
Questions juridiques.......................................................................................................126
SURVOL DES DÉPARTEMENTS ET DRD & DT........................................................................126
SYNTHÈSE.............................................................................................................................128
QUELQUES ELÉMENTS SUR L’OFFRE COMMERCIALE EXISTANTE...............129
CALCUL................................................................................................................................129
AD DEVELOPPEMENT..................................................................................................129
ADX.................................................................................................................................129
ANCOTECH....................................................................................................................129
ARMACAD......................................................................................................................129
BUILDSOFT....................................................................................................................129
CABLOA..........................................................................................................................129
CADWORK INFORMATIQUE.........................................................................................129
DESCARTES....................................................................................................................130
ÉPICENTRE....................................................................................................................130
FAUCONNET INGENIERIE S.A......................................................................................130
FLOVENT........................................................................................................................130
GRAITEC........................................................................................................................130
iMEDIA...........................................................................................................................130
ITECH.............................................................................................................................130
LOGIBOIS.......................................................................................................................130
LUQS...............................................................................................................................130
MELBA 98.......................................................................................................................131
NAILWEB CALCUL LT...................................................................................................131
PERRENOUD..................................................................................................................131
PRO CLIM 3D.................................................................................................................131
ROBOT MILLENIUM......................................................................................................131
TEKLA XSTEEL..............................................................................................................131
TISSEYRE ET ASSOCIES................................................................................................131
VALVES...........................................................................................................................131
CAO....................................................................................................................................132
ABIS 3D...........................................................................................................................132
ABISPLAN.......................................................................................................................132
ARC+ PROGRESS 4........................................................................................................132
ARCHIBALD...................................................................................................................132
ARCHICADO..................................................................................................................132
ARCHIDATA...................................................................................................................132
ATLANTIC'S....................................................................................................................132
AUTODESK.....................................................................................................................132
6
BLM INGENIERIE..........................................................................................................132
CADWORK......................................................................................................................133
DATACAD LLC...............................................................................................................133
DP TECH........................................................................................................................133
DX CONVERT 4.0...........................................................................................................133
FELIXCAD ET FELIXCAD MOBILE...............................................................................133
FTZ..................................................................................................................................133
GESTAFF........................................................................................................................133
GRAPHILAND.................................................................................................................134
I-MAGINER.....................................................................................................................134
KITCHENDRAW.............................................................................................................134
LT ARCHI........................................................................................................................134
MENSURA VOIRIE URBAINE........................................................................................134
METALOGIC...................................................................................................................134
METRICOM....................................................................................................................134
MOSAIQUE 2000............................................................................................................134
NEMETSCHEK FRANCE................................................................................................134
PIXEDIT..........................................................................................................................135
PROFAST........................................................................................................................135
SOFT CAD......................................................................................................................135
STARBAT C.A.O/D.A.O...................................................................................................135
TEXACAD.......................................................................................................................135
THERMOTEQUE............................................................................................................135
TOP A.E.C. SA.................................................................................................................135
TOP ARCHI.....................................................................................................................135
TOPDESIGN...................................................................................................................136
TRACE............................................................................................................................136
VITRUVE.........................................................................................................................136
GESTION...............................................................................................................................136
ANAEL BTP.....................................................................................................................136
DEVIS BTP......................................................................................................................136
EURICIEL.......................................................................................................................136
Gestion BTP pour Windows.............................................................................................136
LOGICIEL OPERA..........................................................................................................136
Marge+...........................................................................................................................136
Planning BTP pour Windows...........................................................................................137
PRO G PRODUCTION....................................................................................................137
SPI SOFTWARE..............................................................................................................137
Suivi BTP pour Windows..................................................................................................137
GESTION DE PROJET...............................................................................................................137
BATIMAX........................................................................................................................137
G.I.T................................................................................................................................137
HYPERARCHI 4..............................................................................................................137
SGTI (Derbi)...................................................................................................................138
IMMOBILIER..........................................................................................................................138
ABSIA..............................................................................................................................138
AGILE.............................................................................................................................138
ALEXIA...........................................................................................................................138
ALTO INFORMATIQUE..................................................................................................138
ARAMIS...........................................................................................................................138
7
ARKIANE PROGICIELS..................................................................................................138
CERG DEVELOPPEMENT.............................................................................................139
DELGER.........................................................................................................................139
EGIDE INFORMATIQUE................................................................................................139
GAIN+ZA........................................................................................................................139
GESTRAT........................................................................................................................139
GETAL-ARGOS...............................................................................................................139
GIBTOS...........................................................................................................................139
GROUPE SEII.................................................................................................................139
HORIZON 2000 INFORMATIQUE..................................................................................139
JONQUILLE GERANCE..................................................................................................139
LIS INFORMATIQUE......................................................................................................140
LOG'IN MICROLOG.......................................................................................................140
LOGIQUE.......................................................................................................................140
LOLITA...........................................................................................................................140
MILADY..........................................................................................................................140
MIMOSA COMPTABILITE GENERALE..........................................................................140
PRIMEVERE...................................................................................................................140
PRISCA...........................................................................................................................140
PRO PLAN AMENAGEMENT.........................................................................................140
SDGI...............................................................................................................................140
SEET CECOBA ROCHER...............................................................................................140
SIMS................................................................................................................................140
SYCO...............................................................................................................................141
SYNDIC SGDI.................................................................................................................141
TRANSACTION...............................................................................................................141
VALERIA.........................................................................................................................141
VENDELIS......................................................................................................................141
MAINTENANCE......................................................................................................................141
CIRIS...............................................................................................................................141
CORIM SOLUTIONS.......................................................................................................141
SIVECO GROUP.............................................................................................................141
TECLOGIE......................................................................................................................141
MÉTRÉ..................................................................................................................................142
CALEpinage®.................................................................................................................142
CLOIsons®......................................................................................................................142
COVADIS........................................................................................................................142
Devis BTP pour Windows................................................................................................142
DK.METRE......................................................................................................................142
E BAT..............................................................................................................................142
ELCIA PRODEVIS..........................................................................................................142
L’ESTIMATEUR..............................................................................................................143
LOGIcal.prm®................................................................................................................143
LOGIceram®...................................................................................................................143
MESURA.........................................................................................................................143
MUTI DEVIS 2000...........................................................................................................143
OPTICOUPE...................................................................................................................143
PRODEVIS......................................................................................................................143
SESIA..............................................................................................................................143
TOBAGO.........................................................................................................................143
8
SITES INTERNET DE L’OFFRE COMMERCIALE EXISTANTE.............................144
RECOMMANDATIONS EN GUISE DE CONCLUSION...............................................147
INTRODUCTION......................................................................................................................147
RECOMMANDATIONS STRATÉGIQUES......................................................................................147
RECOMMANDATIONS TECHNIQUES.........................................................................................148
RECOMMANDATIONS ORGANISATIONNELLES..........................................................................149
RECOMMANDATIONS COMMERCIALES ET FINANCIÈRES...........................................................150
INITIALISATION DES RECOMMANDATIONS...............................................................................150
QUELQUES RÉFÉRENCES DE L’AUTEUR..................................................................151
INDEX....................................................................................................................................161
9
Introduction Générale
La mission logicielle telle qu’elle a été définie s’intéresse à un certain nombre de questions
fondamentales qui ont toutes un impact sur la capacité du CSTB à agir en qualité de concepteur,
développeur, producteur, éditeur et vendeur de logiciels.
Bien que de nombreuses relations existent entre ces grandes questions, il a été pour des raisons de
clarté de la présentation utile de les aborder de manière séparée, le lecteur devant conserver à l’esprit
qu’elles sont souvent intimement liées. Par exemple, il ne saurait être question de politique technique
sans s’intéresser aux dispositions organisationnelles qui peuvent être prises pour en garantir la bonne
exécution, ou encore d’une stratégie technique qui ferait fi des réalité du terrain du point de vue du
parc matériel et logiciel des utilisateurs ou de considérations commerciales lors du déploiement des
produits en faisant des hypothèses fortes sur les capacités d’équipement des clients, etc. Ainsi les
questions sont interdépendantes, et agir sur l’une sans mesurer les effets ou les conséquences sur les
autres est de peu d’utilité. C’est probablement la complexité de chacun des sujets que nous allons
aborder, couplée à leurs inter-relations qui rend l’activité logicielle difficile.
La politique technique est une question essentielle. On y abordera des thèmes comme la mesure de
la pertinence d’une solution technique, les conséquences en termes de productivité, de cohérence
entre les développements entrepris dans différents départements du CSTB, d’interopérabilité et
pérennité des développements logiciels par l’adoption de langages et de plate-formes de
développement préférentiels, de la mise en œuvre de bibliothèques de composants logiciels
réutilisables, de la documentation systématique et standardisée selon des normes de l’entreprise, de
maintenance corrective et adaptative, etc. Le champ est immense et si le CSTB peut s’enorgueillir de
posséder divers métiers celui du logiciel en tant que tel ne lui est finalement pas vraiment naturel.
Les questions de responsabilités préoccupent la Direction du CSTB, à juste titre, compte tenu des
conséquences importantes que peuvent avoir un usage erroné ou tout simplement hors des limites
prévues d’un logiciel. Ceci est particulièrement vrai compte tenu des capitaux engagés dans des
opérations de construction ou de TP, les erreurs, et malfaçons engendrés par voie de conséquences
ou autres problèmes se soldant généralement par un impact financier important voire considérable et
des délais, lesquels engendrent eux-même en retour des pénalités. Les hypothèses de modélisation
et les techniques de résolution numériques, doivent être explicitées et comprises des utilisateurs qui
doivent s’engager à décliner la responsabilité des concepteurs selon des modalités sur lesquelles
nous reviendront par la suite. Au titre de la portée juridique interviennent également les questions de
protection des logiciels, des droits qui leurs sont attachés et du transfert de ces droits aux utilisateurs,
avec toutes les limites qu’il convient d’imposer pour diverses raisons, ne seraient-ce que celles de
responsabilité qui viennent d’être exposées.
Les processus décisionnels et la logique économique doivent être bien maîtrisés et la décision de la
diffusion d’un logiciel doit être prise en parfaite connaissance de cause des implications sur les autres
activités. On peut en effet parfois penser que la mise à disposition d’un outil logiciel sophistiqué
auprès des utilisateurs finaux pourrait être de nature à diminuer les montants de contrats obtenus
lorsque ces derniers s’appuyaient sur la mise en œuvre d’un logiciel propriétaire assez sophistiqué
pour justifier de dispenser des prestations. Nous reviendrons par la suite sur ces arguments, et sans
en dire davantage, nous avons tendance à penser que la diffusion du logiciel – si elle est faite
correctement et que les utilisateurs peuvent s’appuyer sur l’éditeur en fonction que de besoin – peut
au contraire augmenter les volumes d’affaires. Ce point de vue sera argumenté par la suite.
La diffusion suppose des organisations et des démarches spécifiques tant pour le développement que
pour la promotion et la commercialisation dans un contexte où la connaissance de l’évolution rapide
des technologies informatiques reste un investissement permanent et où la cible commerciale est
souvent mouvante. Il ne suffit pas de remplir un service que l’on a pu identifier à un moment donné et
qui correspond à un besoin clair d’une population d’utilisateurs, encore faut-il que les conditions de la
cible n’aient pas changées entre le moment où le chantier est lancé et celui où la commercialisation
s’opère. Ce genre de problème s’est déjà malheureusement rencontré, ne serait-ce pour l’illustrer que
10
dans le cas où l’utilisateur ne veut plus – par exemple – d’une solution utilisant des données en local,
même si elles sont fréquemment mises à jour sous forme de CDs, mais où il souhaite pouvoir déporter
ce coût vers le fournisseur en se connectant par internet à ses serveurs. Dans ce cas, même si le
besoin est fonctionnellement satisfait par la solution proposée, le contexte technique ayant
suffisamment changé et ce de manière assez rapide pour qu’une migration devienne difficile, il est
alors très dur de commercialiser le produit qui rate sa cible. De ce point de vue, les étapes
d’investissement doivent être contrôlées régulièrement, et les décisions doivent se fonder sur une
analyse du type espérance de gains sur risque en tenant compte de la connaissance du marché, de la
concurrence, d’un business plan, etc.
Bien sûr et on le comprend aisément de ce qui vient d’être rapidement évoqué, le CSTB a tout intérêt
à mettre en place des partenariats pour s’appuyer sur des spécialistes de ces diverses questions.
Enfin, une mission comme celle-ci, conduite sur une durée de temps très limitée, n’aura permis que de
survoler l’ensemble des questions qui se posent et d’offrir un panorama nécessairement un peu
rustique de nombre de sujets qui mériteraient d’être approfondis.
Acceptons en l’augure.
11
Politique technique
Introduction
Les mérites d’une politique technique en matière logicielle peuvent s’entrevoir en observant les
phénomènes nés de son absence, et qui font que l’on maximise alors le quasi chaos en favorisant
l’émergence d’une multitude de compétences techniques ou méthodologiques sur des outils aussi
divers et incompatibles que possible.
Cette entrée en matière abrupte, ne rend compte hélas que d’une partie des problèmes en focalisant
sur les outils, qui ne constituent en un sens que le langage support qui devrait être commun pour que
les idées puissent s’échanger. Mais le plus grave est que l’extrême diversité des moyens déployés
depuis la modélisation, la conception, le codage, le test unitaire et le déploiement (entre autres) rend
l’échange et la factorisation des idées impossibles. Nous sommes trop hétérogènes et à tous les
niveaux pour espérer faire levier sur la diversité de nos compétences métier, nous sommes souvent
en matière logicielle des étrangers les uns pour les autres dans une même entreprise. Quand bien
même parviendrions nous à nous comprendre et à discerner un destin commun – qui dépasserait les
intérêts d’un service ou d’un département – et l’on citera quelques projets de cette nature que la mise
en œuvre pratique en serait rendue impossible.
Une stratégie technique, mise en place de manière progressive avec l’adhésion des acteurs, devrait
permettre de créer les conditions permettant de partager des formes d’expression et de représentation
– en matière logicielle – communes permettant aux départements de se renforcer et d’échanger des
blocs de connaissances sous forme logicielle, susceptibles d’être intégrés dans de la valeur ajoutée
créée par d’autres départements.
C’est un très vaste sujet, mais les objectifs minimaux que l’on pourrait fixer à une telle ambition
seraient de mettre en place :
des procédures et des outils standardisés pour factoriser les compétences métiers des
départements dans des logiciels grâce à une homogénéité de moyens, de méthodes et
d’outils pour les spécifications, les développements (plate-formes de développement (.NET),
langages (C#,VB.NET)), les méthodes de documentation, la maintenance (corrective et
adaptative) ;
des bibliothèques de composants logiciels réutilisables ;
des librairies d’objets logiciels (demande DAE, DDD & DSSF) et de comportements
« normalisés » associés à ces objets (code réutilisable) ;
des modèles physiques facilement intégrables à des applications ;
des bases de données d’entreprise offrant de plus si besoin un support pour la gestion de la
relation client (GRC) ;
des contenus numériques harmonisés et structurés (e.g. composants d’ouvrages, matériaux /
produits, données issues ATs, ETI, etc.),
des utilitaires logiciels partagés (Interfaçages, Pré / post processeurs, « mailleurs », outils de
rendu, etc.) ;
des ressources de haut niveau (IHM, protocoles entre objets, réseaux, etc.)
Les Outils
Introduction
Il existe pléthore de langages, d’environnements de développement, de solutions informatiques au
sens large. L’une des difficultés pour le CSTB est de ne pas se disperser dans une multitude de
solutions aussi peu compatibles les unes avec les autres que possible. Ce qui ressemble
malheureusement un peu à la situation actuelle, qui est elle même le résultat d’un ensemble de micro-
12
politiques qui cherchent individuellement à répondre au mieux aux contraintes de projets particuliers.
De tout ces environnements, il en existe des incontournables que nous allons citer ci-après et dont
nous mettrons en exergue les points forts afin de faciliter leur positionnement respectif. Il est
indispensable pour le CSTB de disposer d’une bonne compétence répartie au sein des départements
sur ces différentes solutions et plate-formes. Sans exclure bien évidemment la nécessité qui peut se
faire jour de maîtriser tel ou tel autre produit pour des raisons liées à l’exécution d’un contrat pour
lequel des contraintes spécifiques ont pu apparaître. Le tout étant de ne pas faire de l’exception une
généralité, qui est un peu la tendance actuelle, et qui contribue à l’entropie difficile à gérer à laquelle
les équipes ont une tendance endémique à s’auto exposer.
Ceci étant, la tendance en matière d’environnement de développement va aujourd’hui beaucoup plus
loin en proposant de prendre en compte la totalité du cycle de vie des logiciels, et ces nouvelles
solutions apparaîtront dans le courant de l’année 2005, une concurrence féroce se développant alors
entre les offres, dans la mesure où le cycle de vie étant intégralement couvert, il sera alors peu
probable que le client change son fusil d’épaule en cours de route d’une développement…
UML
UML (Unified Modeling Language, "langage de modélisation objet unifié") est né de la fusion des trois
méthodes qui ont le plus influencé la modélisation objet au milieu des années 90 : OMT, Booch et
OOSE.
L'approche objet est pourtant loin d'être une idée récente. Simula, premier langage de programmation
à implémenter le concept de type abstrait à l'aide de classes, date de 1967 ! Au début des années 70
déjà, Smalltalk implémente les concepts fondateurs de l'approche objet et CLOS (le Common LISP
Object System) ainsi que microCEYX de l’INRIA au début des années 80 sont parmi les plus anciens
langages objets offrant : encapsulation, agrégation, héritage. Les premiers compilateurs C++ datent
du début des années 80 et de nombreux langages orientés objets "académiques" ont étayés les
concepts objets (Eiffel, Objective C,...). Il y donc déjà longtemps que l'approche objet est devenue une
réalité. Les concepts de base de l'approche objet sont stables et largement éprouvés. De nos jours,
programmer "objet", c'est bénéficier d'une panoplie d'outils et de langages performants. L'approche
objet est une solution technologique incontournable. Ce n'est plus une mode, mais un réflexe quasi-
automatique dès lors qu'on cherche à concevoir des logiciels complexes qui doivent "résister" à des
évolutions incessantes.
L’objet est devenu pour les informaticiens incontournable. D’un concept qui était à la mode dans les
laboratoires de recherche en informatique de la fin de la décennie 80, une offre industrielle mature a
désormais émergé. Une grande partie du bénéfice d’une approche objet ne peut être retiré que si très
tôt dans le cycle de développement du logiciel on « pense » objet et on commence eu égard au cahier
des charges à spécifier en objets. Pour l’immense majorité des logiciels développés par le CSTB, et
quel que soit le stade de ces systèmes, du prototype au produit, aucune spécification objet n’est
disponible. Même pour les plus connus, les plus vendus et les plus prestigieux, pour ne pas les
nommer, le chemin vers l’objet ne fait que débuter en cette fin 2004, et il sera long car les équipes
devront s’adapter. Ors, une bonne spécification passe immanquablement par un diagramme de
classes UML (ou autre) qui permette de garantir que les structures de données satisferont aux
besoins exprimés dans le cahier des charges, qu’elles seront documentées et qu’elles
accompagneront les développements en servant de matrice à la production des classes (au sens du
code), puis de support à l’implémentation des fonctionnalités.
Pour l’heure une très petite minorité des développeurs pense « objet » et est en mesure d’employer
des méthodes de spécification comme UML pour permettre une certaine longévité aux
développements, sans même penser réutilisabilité des classes et du code qui serait éminemment
désirable. Et pourtant l’enjeu est considérable, ce d’autant plus que les moyens du CSTB en matière
logicielle sont limités et qu’ils doivent être employés au mieux. Si UML devait être retenu comme une
composante d’une politique technique logicielle pour la spécification des structures de classes, il serait
alors indispensable de s’assurer que cette connaissance soit assez largement répartie et disponible,
en veillant aux formations requises éventuellement.
13
En fait, il est plus naturel pour l'esprit humain de décomposer un problème informatique sous forme
d'une hiérarchie de fonctions élémentaires et de données, qu'en terme d'objets et d'interaction entre
ces objets. Souvent les objets ne servent que de support à l’application des fonctions et la
décomposition objet, le modèle est sous estimé et sans un cadre méthodologique approprié, la dérive
fonctionnelle de la conception est inévitable. Malheureusement, beaucoup de développeurs ne
pensent souvent objet qu'à travers un langage de programmation. Or les langages orientés objet ne
sont que des outils qui proposent une manière particulière d'implémenter certains concepts. Ils ne
permettent pas la représentation « objet » d’un système complexe que l’on souhaite modéliser de
manière indépendante des langages, et voué à une certaine pérennité d’usage de par son
universalité.
Pour remédier à ces inconvénients majeurs de l'approche objet, il nous faut donc :
un langage (pour s'exprimer clairement à l'aide des concepts objets), qui doit permettre de
représenter des concepts abstraits (graphiquement par exemple), limiter les ambiguïtés
(parler un langage commun, au vocabulaire précis, indépendant des langages orientés objet),
faciliter l'analyse (simplifier la comparaison et l'évaluation de solutions).
une démarche d'analyse et de conception objet, pour ne pas effectuer une analyse
fonctionnelle et se contenter d'une implémentation objet, mais penser objet dès le départ,
définir les vues qui permettent de décrire tous les aspects d'un système avec des concepts
objets.
L'unification et la normalisation des méthodes objet dominantes (OMT, Booch et OOSE) ne datent
que de 1995. UML est le fruit de cette fusion. UML, ainsi que les méthodes dont il est issu, s'accordent
sur un point : une analyse objet passe par une modélisation objet.
Un modèle objet est une abstraction de la réalité et consiste à identifier les caractéristiques
intéressantes des entités en vue d'une utilisation précise, ainsi qu’à déterminer les relations que ces
entités entretiennent entre elles et bien qu'un tel modèle ne représente pas une réalité absolue, il
reflète des aspects importants de la réalité, et en donne donc une vue juste et pertinente, du moins
pour l’usage auquel il est destiné. Le modèle réduit la complexité du système étudié, permet de le
simuler, le représente et reproduit ses comportements. UML permet donc de modéliser une
application selon une vision objet.
UML est une norme, un langage de modélisation objet, un support de communication, un cadre
méthodologique. Fin 1997, UML est devenu une norme de l’OMG (Object Management Group) qui
est un organisme à but non lucratif, créé en 1989 à l'initiative de grandes sociétés (HP, Sun, Unisys,
American Airlines, Philips...). Aujourd'hui, l'OMG fédère plus de 850 acteurs du monde informatique.
Son rôle est de promouvoir des standards qui garantissent l'interopérabilité entre applications
orientées objet, développées sur des réseaux hétérogènes.
L'OMG propose notamment l'architecture CORBA (Common Object Request Broker Architecture) qui
a été au cœur des projets VEGA et PERDIS conduits par SAIL au CSTB, un modèle standard pour la
construction d'applications à objets distribués (répartis sur un réseau). Pour rester simple, on peut
considérer CORBA comme une généralisation de l'architecture clients/serveurs aux objets.
Pour penser et concevoir objet, il faut savoir manipuler des concepts abstraits, indépendants des
langages d'implémentation et des contraintes purement techniques. Les langages de programmation
ne sont pas un support d'analyse adéquat pour "concevoir objet" car ils ne permettent pas de décrire
des solutions en termes de concepts abstraits et constituent un cadre trop rigide pour mener une
analyse itérative. Bien que raisonner en terme d'objets semble naturel, l'approche fonctionnelle reste
la plus intuitive pour la majorité des informaticiens et surtout des numériciens, et donc des ingénieurs
CSTB ! Voilà pourquoi il ne faut pas se contenter d'une implémentation objet, mais se discipliner à
"penser objet" au cours d'une phase d'analyse préalable.
UML permet d'exprimer et d'élaborer des modèles objet, indépendamment de tout langage de
programmation, mais c’est aussi un langage formel, défini par un métamodèle qui décrit de manière
très précise tous les éléments de modélisation (les concepts véhiculés et manipulés par le langage) et
la sémantique de ces éléments (leur définition et le sens de leur utilisation).
14
Programmer objet c’est d’abord concevoir objet, et UML est un outil indispensable pour ce faire en
offrant un support de communication performant, qui facilite la représentation et la compréhension de
solutions objet grâce à sa notation graphique qui permet d'exprimer visuellement une solution,
autorisant ainsi la comparaison et l'évaluation de solutions. De plus, l'aspect formel de sa notation,
limite les ambiguïtés et les incompréhensions. UML est donc bien plus qu'un outil qui permet de
"dessiner" des représentations mentales, il permet de parler un langage commun, normalisé mais
accessible, car visuel.
Ainsi combinés, les différents types de diagrammes UML qui sont le résultat de l’analyse, offrent une
vue complète des aspects statiques et dynamiques d'un système. Les diagrammes permettent donc
d'inspecter un modèle selon différentes perspectives et guident l'utilisation des éléments de
modélisation (les concepts objet), car ils possèdent une structure. Les modèles d'analyse et de
conception ne diffèrent que par leur niveau de détail, et l’implémentation en est rendue aisée au
travers d’une approche itérative par prototypage
UML peut être intégré à n'importe quel processus de développement logiciel de manière transparente,
ce indépendamment des langages cibles et les mérites d’UML en font un candidat incontournable
pour un organisme comme le CSTB qui souhaiterait harmoniser entre les départements les méthodes
de conception afin d’en retirer les inestimables bénéfices qu’il serait en droit d’en attendre :
documentation explicite des modèles, « ré-utilisabilité », « incrémentalité », « maintenabilité », etc.
Le futur environnement de développement de Microsoft Team System ne supportera pas
probablement pas UML mais je suis prêt à parier qu’il intègrera un module de conception graphique
visant à offrir les mêmes fonctionnalités tout en corrigeant les défauts actuels d’UML. En particulier le
fait que l’on soit en droit d’attendre un aller-retour simple au sens de facile entre la phase de
modélisation / conception et celle de production du code correspondant, ce réciproquement. En effet,
les modifications éventuelles apportées au niveau du code (en phase de test / déploiement) doivent
pouvoir être rétro-introduites dans la conception et la documentation correspondante. La richesse,
probablement excessive d’UML, rend le processus parfois impossible en l’état des technologies, et nul
doute que Microsoft gardera le meilleur d’UML pour l’agrémenter à la sauce MS et en livrer un produit
parfaitement intégré à Team System. De toutes manières, la connaissance d’UML facilitera
l’apprentissage des indispensables concepts pour bénéficier de la puissance de Team System. C’est
donc un passage incontournable pour les équipes de développement du CSTB.
.NET
Visual Studio .NET est un ensemble complet d’outils de développement pour construire des
application Web ASP, des Web Services XML, des applications « desktop » et des applications
« mobiles ». Visual Basic .NET, Visual C++ .NET, Visual C# .NET et VISUAL J# .NET utilisent tous le
même environnement de développement intégré (i.e. IDE Integrated Development Environment), qui
permet le partage d’outils et facilite la création de solutions multi-langage. De plus, ces langages sont
conçus pour offrir un levier sur le « framework » .NET, et donner ainsi accès à des technologies
essentielles qui facilitent le développement d’applications Web ASP et de Web Services XML.
La version disponible de .NET VS offre déjà un nombre impressionnant d’outils et de possibilités.
Nous allons rapidement citer les principales nouveautés :
Visual J# est un outil de développement qui permet aux développeurs Java (familiers avec la
syntaxe du langage) de créer facilement des applications et des services pour .NET, en
incorporant Java dans l’environnement de développement intégré de VS .NET. Visual J#
supporte la plupart des fonctionnalités offertes par Visual J++ 6.0, y compris les extensions
Microsoft, mais n’est pas destiné à la production d’applications s’exécutant sur la machine
virtuelle Java. Les applications ainsi construites ne s’exécuteront que sur le framework .NET,
et Visual J# a été développé indépendamment par Microsoft et ne fait l’objet d’aucun accord
avec SUN Microsystems, Inc.
VS .NET offre des outils pour le développement d’applications de type « smart device » i.e.
assistants intelligents comme le Pocket PC. Ainsi, en utilisant un sous-ensemble du
framework .NET est-il possible de créer, déboguer, et déployer des applications qui tournent
15
sur le « .NET Compact Framework » disponible sur des assistants personnels type PDAs,
téléphones mobiles, et autres matériels offrant des ressources limitées. Ceci est évidemment
particulièrement intéressant pour une industrie comme la nôtre, où les acteurs emporteront de
plus en plus d’intelligence, d’informations et de capacités de connexions à d’autres systèmes
matériels ou logiciels sur les chantiers. Le BTP sera certainement un merveilleux champ
d’application pour des PDAs intelligents de toutes sortes, le succès de VIZALL allant bien
évidemment dans ce sens.
ASP.NET Mobile Designer étend ASP.NET et le framework .NET pour permettre la création
d’applications spécifiques pour les téléphones mobiles, les PDAs et les pagers. Intégré dans
l’IDE, cet outil permet depuis VS de créer des applications Web mobiles, de modifier des
écrans Web mobiles et de les construire et les tester, sans quitter VS.
Les « Web Forms » sont une technologie ASP.NET qui permet de créer des pages Web
programmables. Ces « formulaires » Web se matérialisent sous forme de scripts et de pages
HTML que n’importe quel navigateur est capable est visualiser. L’intérêt des concevoir
graphiquement et visuellement ces composant en manipulant des contrôles et en leur
associant du code.
Les « Windows Forms » constituent la nouvelle plate-forme pour le développement
d’applications Windows Microsoft, basées sur le framework .NET. Ce framework fournit un
ensemble de classes orientées objet claires et extensibles qui permet de développer
rapidement des applications extrêmement riches. De plus, ceci peut agir en qualité d’interface
utilisateur locale dans une solution distribuée multi tiers.
Les « Web Services XML » sont des applications qui peuvent recevoir des requêtes et des
données en utilisant XML au travers d’HTTP. Ces services Web ne sont pas dépendants
d’une technologie de composants Web particuliers ou de conventions d’appel d’objets
précises et peuvent ainsi être accédées par n’importe quel langage, modèle de composant ou
système d’exploitation. Grâce à Visual Studio .NET, il est possible de créer et d’inclure des
Web Services XML à l’aide de divers langages comme Visual Basic, Visual C#, Jscript, etc.
Le support XML est total en VS. XML (Extensible Markup Language) fournit une méthode
permettant la description de données structurées, comme sous-ensemble de SGML, qui est
optimisée pour le Web. Le World Wide Web Consortium (W3C) a en charge la définition de la
norme XML de telle sorte que les données structurées en XML soient uniformes et
indépendantes des applications. Visual Studio propose XML Designer pour faciliter la gestion
de contenus XML.
Le Framework .NET est un environnement multi langage pour construire, déployer et faire opérer des
Web Services XML et des applications. Il se compose de trois parties essentielles :
Le CLR « Common Language Runtime » joue un rôle à la fois lors du développement et du
déploiement (gestion de la mémoire, des « threads », des processus, de la sécurité, des dépendances
d’un composant envers les autres composants, etc.)
Les classes de programmation unifiées consistent en un ensemble de librairies de classes, orientées
objet, hiérarchiques et extensibles (et leurs APIs). A l’heure actuelle, les développeurs C++ utilisent
les MFCs et les développeurs Java les Windows Foundation Classes. Le Framework .NET unifie ces
modèles disparates et donne également accès aux programmeurs Visual Basic et Jscript aux librairies
de classes. En offrant un ensemble d’APIs communes à tous les langages, le CLR permet de
l’héritage, de la gestion d’erreurs et du débogage dans un contexte hétérogène. Tous les langages
depuis Jscript jusqu’à C++ ont un accès comparable au framework et les développeurs sont libres de
choisir librement le langage préféré pour l’implémentation.
ASP.NET s’appuie sur les classes du framework .NET pour fournir un modèle d’application Web avec
des contrôles (e.g. menus, boites de textes, etc.) et une infrastructure qui facilite la création
d’applications Web ASP. Les contrôles tournent sur le serveur et propagent leur apparence utilisateur
en HTML vers le navigateur. Du côté serveur, les contrôles exposent un modèle de programmation
16
objet qui apporte la richesse de la programmation objet au développeur Web. ASP.NET fournit
également des services d’infrastructure (gestion de l’état des sessions, des processus, etc.) et permet
au développeur de se focaliser sur la logique métier du service Web qu’il veut développer et se
reposer sur l’infrastructure ASP.NET pour délivrer ce service via SOAP.
Tout ceci fait de .NET un environnement de premier choix pour la construction d’applications
sophistiquées, quelles soient ou non déployées sur le Web, et distribuées / réparties ou non
également.
.NET n’est pas encore très largement utilisé au CSTB et il conviendrait de prendre les mesures de
persuasion et de formation nécessaires pour que se développe une plus large culture .NET avec des
facultés de maîtrise et de développement plus largement réparties au sein des départements.
JAVA
Java est incontestablement l’un des langages et l’une des plate-formes que l’on ne peut ignorer, ce
pour de multiples raisons dont nous ne citerons que les plus évidentes. Tout d’abord il est simple, de
par son modèle 100% objet et ses techniques de compilation, Java fait partie des langages les plus
faciles à mettre en oeuvre. Il offre également plus de facilités aux concepteurs / développeurs pour
mettre en oeuvre des "design" propres, gages de modularité, de réutilisation et d’extensibilité.
Java offre de multiples librairies qui démultiplient la puissance de l’environnement. Que ce soit dans la
plate-forme même ou au travers de librairies tierces, des fonctionnalités innombrables sont
disponibles (suivant divers modèles de licences, Open Source ou commercial) pour répondre à la
plupart des besoins, qu'ils soient liés à la technologie (persistance, transactions, « threading »,
« middleware », etc.) ou au domaine lui-même (travail « collaboratif », banque, calcul, etc.).
Java est un environnement basé sur les standards. Qu'il s'agisse de protocoles internet divers et
variés, de sécurité ou encore d'accès aux données, la plate-forme Java fournit des primitives
intégrées basées sur les standards technologiques afférents. C'est le gage d'une ouverture maximale
sur l'extérieur, avec tous les bénéfices que cela peut apporter.
Java reste considéré comme portable. Bien que cela soit parfois anecdotique, la portabilité a fait
beaucoup pour Java et continue d’œuvrer dans le sens de Java. En effet, elle favorise le
développement de librairies et composants réutilisables aisément dans d'autres applications. Il est
également à noter que non seulement le code est portable, mais de plus la spécification J2EE se
place un cran au dessus en proposant divers modèles pour définir des composants métiers
réutilisables (JSP/Servlet, EJB, etc.).
Jusqu'à présent, SUN a fourni ainsi que ses partenaires tels que BEA, IBM ou BORLAND, des
environnements de développement Java de haut de gamme. Mais aujourd'hui, seul Visual Basic
s'adresse au marché de masse des développeurs en entreprise, que SUN voudrait conquérir. C'est le
but de l'environnement de développement graphique Java Studio Creator, lancé par Sun lors de sa
conférence annuelle Java-One en juin dernier, que de séduire les développeurs occasionnels et les
programmeurs peu expérimentés.
Destiné aux environnements J2EE 1.3 ou 1.4, pour des développements sous Solaris, Windows
2000/XP ou Linux, Java Studio Creator inclut le serveur d'applications Sun Java System Application
Server 8 Platform Edition, le kit de développement J2SE et un serveur de base de données SQL. Java
Studio Creator vise les développements Web simples. Il s'agit en fait d'un produit commercial bâti sur
la plate-forme open source NetBeans 3.6. Son coût est de 99 dollars par an.
Parallèlement, Sun a annoncé NetBeans 4.0, qui apporte le support de composants EJB, des services
Web, et de J2ME (Java 2 Platform Micro Edition), ainsi que la notion d'optimisation de performances.
De plus, la version 5.0 de J2SE, prévue pour le 1er semestre 2005, promet de nombreuses
améliorations du langage de programmation, des extensions de diagnostic et d'administration, le tout
associé à de meilleures performances. Lors de JavaOne, Sun en a fait la démonstration sur Longhorn,
le windows du futur, comme chacun sait :
http://msdn.microsoft.com/longhorn/
17
Il est à mon sens peu réaliste pour le CSTB de vouloir se doter des compétences – ce au niveau
requis forcément élevé - sur les deux environnements que sont respectivement .NET (ASP.NET, etc.)
et JAVA (J2EE, EJB) – ne parlons même pas des autres... La situation est que nous avons des
individus compétents dans l’une ou l’autre des technologies, mais nous manquons cruellement
d’équipes de développement depuis la modélisation, la conception, le codage, le test unitaire et le
déploiement (pour ne citer que quelques étapes) qui pourraient venir en appui des départements pour
les aider à mettre la connaissance métier « en boite », c’est à dire dans des systèmes logiciels. La
portabilité de ces plate-formes de l’une vers l’autre est limitée, ce d’autant que la majorité des
applications aujourd’hui demandent de la persistance ou du déploiement Web, qui ont recours à des
approches très différentes dans les deux technologies. Certains argumenteront que nous sommes
confrontés parfois à des situations où le client final impose une technologie (e.g. orientation « open
source »), en particulier quand nous nous insérons dans un déploiement dit « intranet » où le client
veut que nos applications soient homogènes avec ses choix informatiques internes. Je crois que c’est
peut être mal poser le problème ! La question est plutôt : devons nous chercher à nous intégrer dans
la logique intranet du client ou nous contenter de lui fournir le service par internet en le déployant avec
les technologies qui nous paraissent les plus appropriées, évitant ainsi un éventuel conflit avec ses
stratégies internes… D’une manière plus générale, les bases de données primaires – quelle qu’en soit
la nature, e.g. documentaires, matériaux, PVs essais, etc. – doivent résider au CSTB qui peut ainsi en
assurer une maintenance centralisée, organisée et contrôlée, et leur accès doit être assuré par la
consultation depuis des clients légers, de préférence des navigateurs standards chez le client, qui se
contentent d’importer depuis le serveur d’éventuels mécanismes spécifiques aux applications
envisagées.
BDs et Persistance
La persistance des données des applications logicielles est l’une des grandes questions que l’on doit
aborder pour permettre d’une part de déployer efficacement des logiciels mettant en œuvre de grand
volumes de données, mais aussi d’autre part de permettre à diverses applications de s’alimenter dans
un même réservoir d’informations, partagées pour des raisons fonctionnelles ou non d’ailleurs.
Au début des années 90 sont apparues les premières bases de données objets, et des « startup »
comme O2 technologies ont vu le jour pour offrir ces technologies novatrices. Après une phase de
maturation du marché qui a quasiment vu la disparition de ces précurseurs et de leurs solutions, des
stratégies visant à permettre un stockage relativement « normalisé » dans des bases de données
relationnelles de modèles « runtime » objet s’est imposé comme une approche pragmatique, certes
très sous-optimale à la fois du point de vue des efforts tant pour la mettre en œuvre que des
performances à l’exécution, mais une approche réaliste toutefois. On couplait ainsi le logiciel objet et
tous les avantages que nous n’avons précédemment fait que survoler, à la maturité des bases de
données relationnelles et à leur capacité à monter en charge pour les grand volumes de données,
atteignant souvent même pour des applications de taille moyenne des dizaines de millions de lignes
dans des dizaines de giga octets, ce que l’on appelle la « scalability ». Diverses solutions, dont celles
de Microsoft bien sûr, pas chères et fiables se sont imposées, depuis les petites bases jusqu’à plus
grosses avec des outils allant d’ACCESS, en passant par SQL serveur, jusqu’aux solutions
propriétaires lourdes.
Depuis peu, des solutions de bases de données orientées objets adaptées aux environnements de
développement que nous avons cités, comme .NET framework, ont vu le jour et constituent des
alternatives fort intéressantes (car moins coûteuses en temps de mise en œuvre) à la transcription
relationnelle d’un modèle objet en vu de son stockage sous une forme persistante.
Ainsi, Poet Software, l’entreprise qui a développé et commercialisé « FastObject » a été rachetée par
Versant en Mars 2004, système qui constitue à la fois une bonne solution à un problème
technologique important tout en alliant la surface commerciale et la pérennité d’une offre faite par
l’intermédiaire d’une grande entreprise du secteur, i.e. Versant.
Nous allons brièvement aborder cette solution puis essaierons de conclure sur les perspectives pour
le CSTB.
18
FastObject .NET est une solution 100% compatible avec le framework .NET et offre ainsi une
alternative orientée-objet satisfaisante au stockage traditionnel dans des bases de données
relationnelles. Le fonctionnalités offrent ainsi une persistance transparente et une gestion des états au
développeur .NET, ce qui lui permet de cesser de se préoccuper des données pour se concentrer sur
le problème métier qu’il est en train de traiter.
FastObject .NET met en œuvre le langage intermédiaire de .NET (IL) et offre ainsi du la possibilité
d’avoir recours au sein d’une même application à différents langages de programmation comme par
exemple C#, C++, J# ou VB.NET, et n’impose pas de contraintes au modèle objet dont on veut
assurer la persistance, gérant l’héritage, les interfaces ou les collections (au sens .NET) tout en étant
parfaitement intégré à Visual Studio et permettant la mise à jour des liens et dépendances avec la BD
à chaque recompilation. C’est un environnement de base de données transactionnel, qui peut monter
en charge pour gérer le multi utilisateurs grâce à la gestion de systèmes multi processeurs, de « fail-
safe », d’encodage, etc. FastObject .NET assure bien sûr la gestion des versions pour un
déploiement incrémental, l’intégrité des données grâce à des transactions ACID, et permet une
navigation à la fois facile et rapide en utilisant le modèle objet de l’utilisateur comme schéma de base
de données.
FastObject .NET se compose d’un noyau de base de données qui fournit l’essentiel des
fonctionnalités de type base de données et d’un ensemble de bibliothèques à utiliser du coté client. Le
schéma de la base de donnée et le code pour accéder aux données est généré directement à partir
du modèle objet, éliminant ainsi tout besoin de « mapping », i.e. de mise en correspondance entre le
modèle runtime et les données stockées. Les connections des clients sont maintenues grâce à des
sockets TCP/IP, et le multi tiers est géré grâce à du contrôle d’accès basé sur des mécanisme de
verrouillage des objets.
L’architecture « runtime » de FastObject .NET permet de livrer une application autonome, l’utilisateur
final n’ayant pas connaissance de l’existence de ce composant et l’installation restant aussi simple
qu’en l’absence de la BD objet.
Les principales caractéristiques de l’environnement sont :
La persistance assurée de manière transparente et la gestion des états grâce à une
amélioration du code objet. L’ajout de la persistance est non intrusif dans le modèle objet et
19
les classes peuvent être déclarées persistante et certains champs utilisés comme index sans
devoir hériter d’une classe de base particulière ou sans devoir implémenter des interfaces
spécifiques. L’ajout de code postérieurement à la compilation permet de gérer les états, les
transactions et mises à jour de la base de manière optimale ;
L’accès concurrent à la base est géré à partir de stratégies de verrouillage optimistes et
pessimistes afin de garantir la consistance des objets quand plusieurs utilisateurs ou
processus y ont simultanément accès, et le « multi threading » se base sur la mise en place
de multiples transactions, chaque thread d’une application ayant recours à une transaction
séparée ;
Le support aux modèles objets est total, i.e. héritage, polymorphisme, encapsulation, etc. et il
est n’est pas nécessaire de dégrader le modèle objet pour en assurer le stockage. La
conservation des relations qui existent entre les objets se fait de manière transparente, évitant
les mises en correspondance coûteuses lorsque des jointures de tables doivent être faites
pour restaurer le liens entre objets à partir de la consultation d’une base de données
relationnelles ;
La gestion de données complexes est rendue facile, le code intermédiaire produit pour
l’assemblage de l’application étant analysé par FastObject .NET pour modifier ce code
intermédiaire afin de supporter automatiquement la persistance. Le schéma suivant illustre le
mécanisme d’amélioration du code intermédiaire et de génération des schémas pour la base
FastObject .NET
La navigation dans le graphe d’objet est rendue facile et des techniques d’indexation
sophistiquées permettent une très bonne performance dans la recherche des objets stockés
Les requêtes sont optimisées, grâce aux index, et s’écrivent avec le standard OQL, ‘l’Object
Query Language ;
L’intégrité des données repose comme dans toute BD sur l’atomicité des transactions qui
garantit qu’une transaction est exécutée complètement ou pas du tout à destination du
stockage physique, ceci étant rendu possible grâce à un fichier de log qui permet de
reprendre – entre autre – la transaction en cas de crash du système (redo log), d’autres
mécanismes existant au niveau des données elles-mêmes « checksum », verrouillage, etc. ;
La transparence au déploiement de l’application est total, et l’utilisateur de l’application n’a
pas connaissance de l’existence de la base de données, embarquée en quelque sorte. La
base fonctionnera indéfiniment, en l’absence d’administration particulière, en raison du fait
qu’elle embarque les outils indispensable à l’allocation d’espace, à la gestion des index et des
versions des schémas, etc. En cas de migration de schéma, d’une version à la suivante de
l’application, les données sont également migrées ;
20
La capacité de monter en puissance, en particulier pour le déploiement d’applications web, en
offrant à des clients un accès à des données du serveur et en gérant le « commit » des
transactions, plus exactement la synchronisation automatique entre les clients et le serveur.
De plus la sauvegarde incrémentale des données est possible ;
Enfin, divers services sont également supportés comme la réplication, l’encryption ou la
sécurisation des communications avec la base au travers de SSL.
La description sommaire d’un environnement comme FastObject .NET a pour seule ambition de
montrer quelles sont les tendances, sachant qu’une BD objet doit permettre d’assurer la persistance
d’un modèle objet pour un effort modeste voire minime. Un stockage relationnel sera forcément plus
coûteux en termes de développement, dans la mesure où le modèle objet doit être « traduit » en
tables puis en procédures et en requêtes qui vont effectuer les jointures nécessaires entre les tables
pour « remplir » les objets. L’une ou l’autre des approches est possible, mais dans les deux cas, le
CSTB doit se doter d’une doctrine, que ce soit pour l’emploi de bases objets – et probablement en
standardiser une – ou pour la « traduction » de modèles objets en systèmes de persistance
relationnelle, afin de garantir le meilleur usage possible des bases ainsi constituées, qui peuvent dans
certains cas contenir une valeur ajoutée de premier plan (e.g. données du LABE).
Le futur des environnements de développement
Introduction
Avant de s’intéresser à ce que pourraient être les environnements de développement du futur et
l’impact majeur qu’ils auront sur les stratégies de développement logicielles à l’avenir pour ceux qui
voudront avoir une chance de rester dans la course, le tableau suivant est un résumé de ce qui est
aujourd’hui disponible et de comment ces plate-formes, toutes déjà fort puissantes, se positionnent les
unes par rapport aux autres. Il ne saurait être question de s’engager dans un projet logiciel sans
s’appuyer sur un environnement de travail visuel, intégré, permettant de gérer au mieux un projet,
apportant des fonctions poussées de déboguage ou d'automatisation des tâches (à commencer par la
compilation, la maintenance des modules, etc.), et liant vers des outils externes (CVS, test unitaire…).
A titre d’exemple, un ensemble de 15 outils répondant à ces critères, sélection qui ne se veut pas
exhaustive mais donne un bon aperçu du marché et des possibilités des offres en présence est
fournie ci-après :
21
Les environnements de développement généralistes
Editeur / Nom Langages Commentaire
Eclipse
Java. Nombreux plugins pour d'autres
langages (C#, PHP, Python, Ruby, C/C++,
Erlang, JavaScript...)
Soutenu par IBM, le projet Eclipse vise à créer
une plate-forme de développement Open
Source aussi modulaire que possible. Gratuite,
elle propose de nombreux composants
répondants aux besoins des développeurs : Ant,
CVS, Debug, Team, WebDAV...
Microsoft Visual
Studio
L'ensemble des langages soutenus par
.NET : C#, VB.NET, J#, C++, JScript.
En réalité plusieurs éditeurs vendus sous un
même nom (en attendant VS.NET 2005 qui
devrait tous les unifier sous une même
bannière). Ce sont les outils à utiliser pour tout
développement .NET professionnels, étant
conçus par Microsoft...
Les environnements de développement Java/J2EE
Editeur / Nom Commentaire
IBM WebSphere Studio
Application Developer
Basé sur le projet Eclipse, IBM y a ajouté nombre de fonctionnalités que
l'éditeur ne souhaitait probablement pas voir intégrées directement au projet
Open Source : assistants au développement, éditeur UML, support des JSF et
de Struts, outils de profiling...
Borland JBuilder
Probablement l'environnement Java le plus utilisé, celui-ci comprend un
support des JSF et de Struts, la possibilité de travailler directement avec les
serveurs BEA, IBM, Sybase ou JBoss, des outils de refactoring distribué et
d'audit de code, l'intégration de OptimizeIt...
JetBrains IntelliJ IDEA
Fournissant déjà de nombreux outils par défaut (refactoring, Ant, JUnit,
CVS...), IntelliJ IDEA dispose également d'une communauté active fournissant
nombre de plug-ins tiers. Il fréquemment cité comme éditeur le mieux conçu
pour aider le développeurs, rendant les tâches rébarbatives rapides à
concevoir...
Oracle JDeveloper
Loin de se limiter aux outils Oracle (serveur d'application, base de données...),
JDeveloper est un éditeur complet : modélisation UML, gestion d'équipe de
développement (CVS, ClearCase...), éditeur XML puissant, support des services
Web...
BEA WebLogic Workshop
Brique essentielle de la plate-forme WebLogic de l'éditeur, surtout connue pour
son serveur d'application, Workshop est un environnement solide de
programmation visuelle : classes de gestion de services Web intégrées, support
Struts et architecture MVC, support total de J2EE...
NetBeans
Soutenu par Sun, ce projet Open Source offre un environnement solide : Ant,
reconnaissance de base de données, support CORBA/RMI/JNDI/JINI, éditeurs
XML, CSS et DTD complets, débogueur, gestion des versions avec
CVS/PVCS/VSS, éditeur AWT/Swing en WYSIWYG... La version 4.0, aujourd'hui
en béta, promet beaucoup : refactoring, intégration Ant complète, support
J2SE 5.0, J2ME...
Les environnements de développement C#/.NET
Editeur / Nom Commentaire
Delphi
Avec l'intégration de C#Builder au sein de Delphi, Borland propose désormais
un outil complet .NET/Win32 qui peut ravir la plupart des développeurs :
conception d'applications Windows & Web, modélisation UML, connexion directe
aux bases de données, refactoring, test unitaire, intégration native de Borland
StarTeam...
Microsoft ASP Web Matrix
Pour ceux qui veulent programmer de manière visuelle avec ASP.NET, les
ingénieurs MS ont conçu cet outil gratuit qui permet déjà beaucoup, et intègre
notamment un serveur Web pour tester ses applications.
#develop Placé en Open Source (licence GPL), #develop propose un éditeur C#/VB.NET
avec un analyseur d'assemblage et un outil de test intégré.
Les environnements de développement PHP
Editeur / Nom Commentaire
PHP Edit
Conçu par une société française, PHP Edit a beaucoup grandit depuis ses
premiers pas pour intégrer aujourd'hui un débogueur et un éditeur UML
intégrés.
22
Zend PHP Studio
Disposant d'un profiler d'un analyser de code (même PHP5), d'un manager de
code via CVS, d'un vérificateur de syntaxe en direct, et d'un débogueur, l'outil
vendu par les créateurs de PHP reste l'un des plus aboutis.
NuSphere PHPEd
Les points forts de cet environnement populaire : intégration des classes
NuSOAP de gestion de services Web, utilisation directe des bases de données
MySQL et PostgreSQL, intégration CVS complète, navigateur HTML intégré...
Maguma Workbench L'un des éditeurs les mieux conçus, avec support PHP5, gestion de versions par
CVS, moteur de deboguage, support PHPDoc...
Les dernières éditions de JavaOne et de TechEd (prochaine conférence 5-8/07/2005 à Amsterdam)
ont confirmé la volonté des grands dont Microsoft de fournir des solutions couvrant la quasi-intégralité
du cycle de développement du logiciel. Les trois grands acteurs en la matière sont Microsoft (VS
Team System), IBM Rational (Atlantic) et Borland (Themis).
L’objectif est aussi à la marge d’ « encapsuler » les développeurs PHP, grâce à une version allégée
du célèbre Visual Studio qui verra le jour en 2005 et succèdera à Asp Web Matrix, un outil de
développement pour sites Web lancé en 2002. SUN fera évoluer Java afin qu'il puisse supporter ce
langage de script.
IBM
Quelques semaines à peine après Microsoft et Visual Studio Team System 2005, IBM a annoncé fin
juillet 2004 une stratégie identique visant une solution quasi complète de couverture du cycle de
développement. L'éditeur proposera, d'ici à la fin de l'année, une plate-forme de développement
collaboratif complètement intégrée. Basée sur Eclipse 3.0 (open source enrichi des outils de Rational),
ATLANTIC comportera des modules de modélisation, de gestion des exigences, de gestion de
configuration, de développement, de test, de déploiement, etc. ATLANTIC vise toutes les
technologies, de C à Java en passant par C# et Visual Basic .Net. Bien qu’il soit aujourd’hui possible
de construire un environnement collaboratif à partir des outils issus du portefeuille « Rational » d’IBM,
l’objectif sera de renforcer la facilité d’utilisation de tels outils afin de dépasser la population naturelle
des utilisateurs et de la base installée de Rational (i.e. les développeurs d’entreprise) pour s’aventurer
en des terres normalement tenues par Microsoft.
Microsoft
Début juillet donc, Microsoft a présenté la prochaine version de son environnement de développement
intégré (i.e. IDE Integrated Development Environment) : Visual Studio 2005. Disponible mi-2005, ce
dernier sera décliné en trois gammes : Express, Professionnel et Team System . Express vise les
débutants, couvre tous les langages de l'éditeur, et sera commercialisé quelques dizaines d'Euros.
L'édition professionnelle supporte, quant à elle, le framework .Net 2.0 et comporte un nouvel outil de
modélisation.
C’est surtout Team System qui se démarque de l’existant et montre la voie des futurs environnements
de développement et des perspectives qu’il vont offrir. L'éditeur souhaite en effet couvrir tout le cycle
de développement. Pour la première fois, tous les acteurs d'un projet informatique collaborent autour
du même outil, qui intègre toutes les fonctionnalités nécessaires et Team System Foundation devient
le pivot de l'intégration, du moins au niveau de l’implémentation.
La modélisation s'effectue dans WhiteHorse, un modeleur de services Web et de diagrammes de
classes, mais ne respecte malheureusement pas UML. En revanche, la gestion des projets et des
interactions entre développeurs s'appuie sur le serveur Team System Foundation et se révèle
particulièrement complète. Il stocke toutes les informations et expose l'ensemble de ses fonctions via
des services Web afin de faciliter l'intégration d'outils tiers.
23
Associé à Visual SourceSafe, c'est un concurrent direct d'outils tels que StarTeam de Borland. Team
System fournit de plus une batterie complète d'outils de test et inclut aussi un gestionnaire de builds
(MSBuild) et facilite les déploiements. Microsoft risque cependant de faire de l'ombre à certains
partenaires tels que Mercury, Borland et IBM Rational, qui comblaient jusqu'à présent les lacunes de
Visual Studio. Visual Studio 2005 Team System sera donc un environnement digne du futur qui
comportera des outils de travail en groupe, de modélisation et de test. Le CSTB se devra de faire des
choix et de s’y tenir afin - compte tenu des ressources limitées - de se donner les meilleures chances
d’accéder et de maîtriser les meilleurs environnements de développement qui vont apparaître dès
2005 sur le marché.
L’usine logicielle : attentes et perspectives
Pour bien mesurer l’importance de ces plate-formes de développement qui vont apparaître en 2005, et
introduire le concept d’usine logicielle, il faut savoir que les méthodes actuelles de développement se
traduisent dans l’industrie du logiciel par des chiffres désastreux : selon une récente étude menée par
Borland, seuls 16% des projets tiennent leurs engagements, tandis que 37% sont tout simplement
arrêtés en cours de route et passent pour pertes et profits. Les 47% restants dépassent le budget ou
les délais initialement prévus, ou ne satisfont pas totalement aux besoins fonctionnels.
Les grandes entreprises qui ont senti le besoin de disposer de plate-formes offrant davantage de
support pour la gestion de leurs développements logiciels se sont aujourd’hui tournées vers les
possibilités offertes aux acteurs du logiciel libre. Il y a de bonnes raisons pour cela, la principale
d’entre elles venant du fait que les acteurs du logiciels libre, étant séparés par toutes de barrières,
quelles soient géographiques, physiques, organisationnelles ou autres ont du recourir à des
techniques permettant de développer du logiciel dans ces contextes d’extrême fragmentation et de
grande diversité technique et culturelle.
Un certain nombre d’outils reviennent régulièrement dans les pratiques open source et l’on peut citer
Sourceforge , Mantis pour la recherche de bogues php/MySQL/Web http://www.mantisbt.org/ , Maven
(entre autre gestion des « build » dans une ligné remontant aux anciens « makefile »)
http://maven.apache.org/ , CVS (configurations), IntelliJ en matière d’IDE Java sophistiqué
http://www.jetbrains.com/idea/ Junit http://junit.sourceforge.net/ , Clover (tests unitaires « code
coverage tool ») http://www.cenqua.com/clover/ , etc.
Ainsi, les grandes étapes du cycle de vie d’un projet logiciel peuvent se résumer comme suit :
Création du projet ;
Définition des besoins et des exigences ;
Modélisation objet UML des objets et des fonctionnalités désirées ;
Génération des squelettes de classes ;
Développement du code proprement dit ;
Tests et profiling ;
Publication du code source sur le serveur (tous les jours) ;
Compilation et construction (automatique) de l’application – gestion des build ;
Révision automatique du code source ;
Génération automatique de la documentation ;
Packaging et déploiement ;
Gestion des évolutions et des versions ;
Le grand changement est que l’incrément de base du cycle de vie du logiciel devient la journée, ce qui
n’est pas encore habituel pour les équipes de développement. Chaque soir, le serveur chargé du
pilotage du projet et de l’intégration des contributions va effectuer une revue automatique du code et
s’assurer – par exemple – que les règles de nommage aient été respectées, que le code ne présente
pas de goulet d’étranglement préjudiciable aux performances, que les tests unitaires soient
disponibles, que la documentation ait été générée, etc. A l’heure actuelle, le seul système offrant un
serveur de projet et un seul socle client est le système de Microsoft.
En matière logicielle, 2005 sera l’année où l’on quittera le domaine de l’artisanat pour plonger dans
celui de l’industrialisation avec les usines logicielles.
24
Quid du logiciel libre ?
Introduction
L’idée du logiciel libre est ancienne et remonte au projet GNU qui a démarré en 1984 (GNU est un
acronyme récursif pour Gnu’s Not Unix). Ce projet a été lancé par Richard Stallman en 1984, l’objectif
étant un créer un système d’exploitation (OS) du style d’UNIX qui soit un OS « libre ». L’immense
majorité des personnes ayant fait de l’informatique dans ces années connaissent Richard Stallman –
entre autre pour avoir utilisé son éditeur de texte, et pour tous les curieux – les « vrais » informaticiens
– pour avoir eu la chance d’apprendre aussi comment l’on écrit un interprète LISP en C, Xemacs
ayant un langage de commande très sophistiqué se programmant en LISP (à l’époque du moins)… et
en fournissant le code source ! Finalement, la découverte de la notion de logiciel libre démarre là,
dans la reconnaissance de la capacité d’apprendre du code des autres, de pouvoir construire un
monde meilleur dans lequel les machines et les ordinateurs en particulier joueront une grande place,
un monde qui s’enrichira librement des efforts des uns et des autres. Libre ne veut pas forcément dire
gratuit et en aucun cas ne signifie du domaine public, mais nous allons revenir sur ces notions après
avoir dit quelques mots de Richard Stallman.
Richard Stallman est un personnage unique en son genre. Il obtint un BA en physique de l’Université
Harvard en 1974, travailla dans l’équipe d’Intelligence Artificielle du laboratoire du MIT, y développa
les premières versions d’Emacs en 1975, et y inventa le « dependecy-directed bactracking » du « truth
maintenance system ». En 1984 il quitta le MIT pour démarrer le projet GNU . En 1991 il reçu le prix
Grace Hopper de l’ACM pour son travail sur Emacs, en 1996 il reçu un Doctorat honoraire du KTH de
Suède, et en 1998 in obtint le prix des pionniers de l’« Electronic Frontier Fondation » avec Linus
Torvalds, bien connu pour le système d’exploitation Linux. Il accumule depuis les distinctions.
Mais la plupart des gens ignorent les relations entre GNU et LINUX , et pensent que Linus Torvalds
est l’auteur d’un système d’exploitation complet. En fait, il est l’auteur du noyau de Linux, une partie
essentielle de n’importe quel système d’exploitation et d’Unix en particulier, mais une partie qui sur
une distribution standard de Linux ne représente que 3% du volume total des sources, les
contributions en provenance du projet GNU représentant 26% !, voir http://www.gnu.org/gnu/linux-and-
gnu.html
La raison pour laquelle Linux passe à la postérité est qu’il est arrivé à un moment décisif et avant que
le projet GNU ne débouche sur un noyau fiable et complètement utilisable. En ce sens, Linus Torvalds
est le principal bénéficiaire de la démarche initiée par Richard Stallman et s’inscrit complètement dans
la philosophie du logiciel libre. En fait Linux a pris de court les auteurs et le groupe de travail de GNU
qui avaient démarré le développement de leur noyau en 1990 et qui ont rencontré de nombreuses
difficultés http://www.gnu.org/software/hurd/hurd-and-linux.html, le noyau de l’OS GNU ne devenant
disponible et fiable qu’en 2001.
Ainsi Linus Torvalds a comblé le vide qui persistait et dans sa release 0.01 reconnaît qu’un noyau seul
ne mène nulle part et que la majorité des composant qui font que le système fonctionne sont sous
licence GNU. A part Linux, il n’existe qu’un seul système d’exploitation libre, le BSD développé à
Berkeley et qui a une histoire très différente. Pour Linux, on ne devrait ainsi pas parler de Linux mais
de GNU/Linux ou de Linux/GNU.
GNU Operating System - Free Software Foundation
25
Free as in Freedom
Au delà de l’exploit technique, le plus important pour nous et pour le CSTB reste la philosophie qui
sous-tend l’existence du logiciel libre et la licence GPL (General Public Licence) qui crée un précédent
juridique dans le monde du logiciel.
La Licence Publique Générale GNU fut donc développée pour le projet GNU par la Free Software
Foundation. Elle garantit un certain nombre de choses concernant la distribution et la modification du
free software. Free se réfère à la liberté, pas seulement au prix et malheureusement la GPL a souvent
été mal interprétée. La GPL autorise quiconque le désire à vendre ses programmes et à gagner de
l'argent avec, mais impose également que tout le monde puisse parallèlement distribuer la même
chose comme il l'entend, sans restrictions. Pour une présentation complète de cette licence en
Français on pourra consulter http://www.april.org/gnu/gpl_french2.html
Il faut bien préciser que le free software protégé par la GPL ne relève pas du domaine public. Un
programme en domaine public est un programme qui n'appartient à personne, et par conséquent tout
le monde en est propriétaire. Un programme protégé par la GPL, à l'opposé, appartient à son ou ses
auteurs (cf la notion droit d’auteur). Cela signifie que le programme est protégé par les lois
internationales en vigueur pour cette discipline, et que l'auteur existe vis à vis de la loi. Le fait que le
programme puisse être distribué librement et gratuitement ne signifie pas qu'il appartienne au
domaine public. Les programmes distribués selon la GPL peuvent par contre être diffusés et utilisés
totalement gratuitement.
La GPL autorise aussi les utilisateurs à modifier les programmes et à en distribuer leur propre version.
Toutefois, tout travail dérivé d'un programme soumis à la GPL doit être obligatoirement diffusé selon
cette licence. En d'autres termes, une entreprise ne peut pas récupérer un programme protégé par la
GPL, le modifier, et le revendre sous une licence plus restrictive. Tout programme dérivé d'un
programme sous licence GPL doit être diffusé selon la GPL.
La GPL permet de distribuer et d'utiliser les programmes avec une gratuité totale. Mais elle permet
aussi de faire payer pour cela, et même de faire des bénéfices ainsi. Toutefois, la vente de
programmes soumis à la GPL n'autorise aucune restriction de licence à l'achat ; si vous achetez un
programme diffusé selon la GPL, quel que soit le vendeur, vous avez le droit de le diffuser
gratuitement par la suite, ou de le revendre le prix que vous voudrez. Les organisations vendant des
programmes libres doivent se soumettre à certaines restrictions précisées dans la GPL. Tout d'abord,
elles ne peuvent pas réduire les droits des utilisateurs qui ont acheté les programmes. Cela signifie
que si vous avez acheté un CD-ROM de programmes soumis à la GPL, vous pouvez les copier autant
que vous voulez et redistribuer ce CD-ROM sans contrepartie financière. En second lieu, les
distributeurs doivent préciser clairement aux utilisateurs que les programmes sont couverts par la
GPL. Troisièmement, ces distributeurs sont dans l'obligation de fournir, gratuitement, tout le code
source des programmes qu'ils distribuent. Ceci permet à toute personne achetant un tel programme
de pouvoir lui apporter toutes les modifications qu'il désire.
Naturellement, la viabilité d’un business model reposant sur une telle approche n’est pas évidente. Il
se peut toutefois, que dans quelques niches scientifiques ou disciplinaires particulières, une telle
démarche puisse s’inscrire dans une certaine logique. C’est le cas si l’on ne compte pas gagner
d’argent de la diffusion du logiciel, mais que la fourniture d’une prestation de conseil s’appuie sur un
logiciel dont on a une parfaite connaissance et que le client souhaite pouvoir y avoir accès, y compris
au code source, pour des raisons qui sont liées à son modèle industriel, e.g. assurer une pérennité
aux outils employés indépendamment des prestataires, etc. Dans ce cas, il convient de tarifer
correctement l’intervention, pour que la divulgation du code source (qui s’accompagne de l’usage de
la GPL) ne soit pas une perte rédhibitoire.
Néanmoins nous pensons que ces pratiques du monde du « logiciel libre » sont à la marge d’une
politique industrielle normale pour un organisme comme le CSTB et qu’elle doivent être encadrées,
parfaitement justifiées par certains projets de recherche ou certains types de prestations intellectuelles
qui en sont à l’origine. Pour être simple, en termes de perspectives offertes par les business models,
nous dirons que Richard Stallman comme William Gates sont deux individus brillants qui passent par
la même université (Harvard) en 1974 et ont deux visions radicalement différentes pour l’informatique
26
des trois décennies suivantes et démarrent deux modèles également à l’opposé l’un de l’autre en
1975, la FSF d’un côté et Microsoft de l’autre. Si ces deux initiatives ont changé le monde, l’une a
rapporté plus à son initiateur que l’autre…
Pour le CSTB, il faut quand même s’orienter vers des modèles économiques qui permettent au moins
de financer les coûts et les travaux et de garantir ensuite un auto-financement des recherches qui
assurent la genèse de la génération suivante de produits dans une logique d’économie de marché. Le
logiciel libre ne peut occuper qu’une place réduite dans cette réalité.
Le lecteur qui souhaitera s’informer davantage pourra consulter les sources suivantes :
http://www.gnu.org/ bien sûr, mais aussi http://www.opensource.org/, et http://www.aful.org/index.html
Microsoft et le logiciel libre
Le principal problème de Microsoft aujourd’hui n’est pas de mener une bataille contre le logiciel libre,
mais d’éviter d’être poursuivi de manière répétitive pour abus de situation dominante, ce qui est
indubitablement le cas. Sun et Microsoft viennent dans ce contexte d'annoncer les premiers résultats
de leur travail conjoint en matière de recherche et développement. Une collaboration qui a été initiée
suite à l'accord à l'amiable intervenu entre les deux géants en début d'année - qui visait à mettre fin à
toutes les poursuites judiciaires lancées par le premier à l'encontre du second. Ce partenariat
historique qui actait le versement à Sun d'une enveloppe de 1,95 milliard de dollars prévoyait alors
l'amorce d'un chantier de développement avec pour objectif d'améliorer l'interopérabilité des plate
formes des deux éditeurs (Java et .Net). D’autre part, l’architecture .NET fait des émule dans le
monde du logiciel libre. Mono 1.0: le clone open source de .NET est lancé. Cette plate-forme de
développement open source permet d'exécuter des applications .NET dans des environnements
Linux, Unix, Netware et Mac OS.
Cette offensive du logiciel libre survient dans un contexte d’inflation des licences logicielles. Les prix
de ces dernières pourraient doubler d'ici à 2006. Processeurs multi cœurs et capacité à la demande
changent les tarifications. Une renégociation rapide des contrats existants s'impose. Sans cette
précaution, les entreprises pourraient voir le coût de leurs licences logicielles augmenter d'au moins
50 % d'ici à 2006. Ce scénario catastrophe, signé du cabinet Gartner, s'expliquerait par l'apparition
simultanée des processeurs multi cœurs, de la capacité à la demande, de la virtualisation et de la
répartition de charge.
Dans un contexte de maîtrise des dépenses le CSTB doit prendre en considération la charge que
représente les licences des outils de développement. Ce n’est bien évidemment pas le seul critère à
retenir dans la prise de décision, mais il peut faire partie d’un ensemble plus large d’éléments
d’évaluation. Il faut toutefois garder à l’esprit que le principal levier se situe sur le cycle complet du
logiciel, depuis la spécification, en passant par le développeur jusqu’à la maintenance, et que disposer
d’environnements de développement adaptés permettant d’augmenter la productivité des intervenants
et la fiabilité des produits conduit à des économies en homme / jour qui sont d’un autre ordre de
grandeur que celles réalisées sur l’achat des environnements eux-mêmes. Le reversement de
royautés sur les « runtime » doit par contre être envisagé avec la plus grande prudence compte tenu
du caractère récurrent de la dépense, venant amputer la marge future à la distribution.
Les organismes publics et le logiciel libre
Microsoft vient de se doter d’une division "secteur public". Le rapprochement de Microsoft avec le
secteur public passe probablement par une ouverture sur le monde du logiciel libre. En effet, la
signification des logiciels libres pour l'administration publique, tout spécialement en France, est assez
particulière. Le logiciel, en terme générique, représente une matière singulière et non un produit au
sens usuel du terme: la valeur de ce logiciel augmente avec l'usage et il est possible de le partager
sans perte. Il est possible de penser que le logiciel libre permet de développer un marché local de
services basés exclusivement sur des compétences humaines en lieu et place de dépenses sur des
licences. D’une manière plus générale, le logiciel libre (communément appelé LL ou OSS/FS en
anglais) supporte des objectifs de service public et d'intérêt général:
27
Accès public par tous
Meilleur usage de l’argent dépensé
Indépendance par rapport aux vendeurs
Réutilisation et mutualisation des ressources.
Dans le secteur public près de 56% des administrations et collectivités concernées sont équipées de
serveurs Linux, contre 15% des entreprises. Toutefois, 46% des sociétés privées de plus de 2000
collaborateurs disposent de serveurs Linux. Ainsi, le ministère de l’équipement (METLTM – DPSM/SI)
à adopté en particulier une "architecture commune des applications informatiques" (ACAI) pour ses
ministères. On consultera pour en savoir plus :
http://www.equipement.gouv.fr/informatique/acai/circulaire.html
http://www.equipement.gouv.fr/informatique/acai/doc/ACAI-Circ-CCT-100.pdf
Cet ensemble de recommandations qui stipule un certain nombre de dispositions techniques
générales (SOAP[XML/http], client léger, etc.) est par ailleurs une sorte de manifeste pour le logiciel
libre et ne retient aucune des solutions proposées par Microsoft. Les noms de diverses sociétés y sont
par contre cités – comme étant parfois simplement les outils utilisés par le ministère – et on retrouvera
depuis la phase de modélisation UML les outils de Rational Software (Rose Modeler, Rose Enterprise
Edition, etc.), AMC-Designor (pour les schémas relationnels), Jbuilder de Borland pour les
applications avec livraison des sources, etc.
On retrouvera notamment dans cette liste d’outils informatiques constituant le sésame du ministère
pour les contractants :
UNIX (OS) – lisez LINUX
APACHE (serveur Web)
ORACLE (BD)
Java (et J2EE, JSP/servlets, EJB à terme)
Open Office http://www.openoffice.org/license.html
Il s’agit ainsi d’adhérer à un grand projets open source traitant aussi (et pas seulement) de :
la messagerie ;
la gestion d'agenda ;
les annuaires ;
la publication Web ;
les outils de travail collaboratif ;
La modélisation et l’échange de données (STEP ISO-10303 est malencontreusement identifié
dans le domaine de l’échange de plans et non dans celui de l’échange de données
http://www.adae.gouv.fr/upload/documents/Intro_cci_v2.pdf comme UML avec lequel il irait
mieux)
Quoi que l’on puisse penser d’ACAI et des recommandations formulées, et de la manière dont le
CSTB doit (devrait) les prendre en considération, force est de constater et de reconnaître qu’elles sont
l’aboutissement d’une réflexion approfondie sur l’état de l’art informatique et sur la manière dont un
« périmètre public » souhaite en faire usage. De ce point de vue, on peut noter que la démarche du
ministère est plus avancée que la notre, même si elle procède plus d’une logique régalienne que
d’une stratégie d’adhésion, de conviction et de mobilisation (qui est généralement celle du monde du
logiciel libre). En gros, on pourrait résumer : vous serez libres (ajoutez le mot logiciel si besoin) car
nous le voulons (pour vous) que ce soit votre choix ou non.
C’est en tous cas un choix clair et puissant, auquel on pourrait reprocher de manquer de nuance, mais
certainement pas de courage. Il doit aussi nous faire réfléchir sur nous-mêmes et nous amener à
mesurer l’urgence de prendre des dispositions adaptées pour rationaliser notre approche du logiciel.
Pour revenir à notre analyse plus générale de l’impact du logiciel libre sur le secteur public, on pourra
mentionner les éléments suivants :
28
Le CEA (Commissariat à l’Énergie Atomique) et le Ministère chinois des sciences et des
technologies ont conclu un accord de développement d’une plate-forme libre en commun.
Le parlement portugais planche sur un projet de résolution pour l’adoption et la promotion du
logiciel libre.
Selon l’agence de communication gouvernementale Agencia Brasil, le déploiement de
logiciels libres dans 15 organismes du gouvernement fédéral a engendré pour le Brésil une
économie de 9,9 millions de dollars d’octobre 2003 à septembre 2004.
Le gouvernement du Venezuela travaille sur un projet de décret établissant « de manière
officielle et obligatoire la promotion et l’adoption du logiciel libre au sein de l’administration
publique nationale » a déclaré le président Hugo Chávez le 29 septembre
La Catalogne a présenté début octobre un plan de coordination du développement du logiciel
libre sur son territoire.
La centrale gouvernementale britannique d’achats (Office of Government Commerce) a publié
un rapport très favorable au logiciel libre.
La Corée du Sud qui veut se convertir à GNU/Linux et Mozilla
Le Massachusetts qui se tourne vers le libre et les standards
Les administrations et services publics du Vietnam pourraient passer au logiciel libre d'ici
2005
L'état australien de Canberra a décidé de privilégier les logiciels libres autant que possible
dans son administration
Le Bundestag, la Chambre du Parlement allemand, analyse l'éventualité de se séparer du
système d'exploitation Windows en faveur de Linux, partiellement dû aux soucis de sécurité.
Une commission parlementaire va devoir décider début 2002 quel système d'exploitation
utiliser lorsque que le moment de remplacer les Windows NT sera venu (NT est l'OS
actuellement en service sur les machines du Bundestag, selon Volker Schroer, un conseiller
social démocratique au Bundestag.
D’une manière plus générale, on pourra penser que dès qu’un acteur devient si dominant qu’il est en
situation quasi monopolistique partout, il déclenche des réactions de rejet et de défense, voire de
paranoïa. A ce titre, parmi les arguments en faveur de Linux parfois cités, on mentionnera la
prétendue existence dans certaines versions de Windows de « backdoors » conçues pour permettre à
la NSA américaine un accès aux données des utilisateurs. Des rapports concernant des backdoors
ont déjà été mentionnés dans les médias l'année passée selon lesquels les militaires allemands
éliminaient les logiciels Microsoft des ordinateurs dits "sensibles " - ces rapports ont été niés par la
suite par le ministère de la défense. [voir "German army denies report on Microsoft ban" .
http://www.idg.net/idgns/2001/03/19/UPDATEReportGermanArmyBans.shtml]
Quelques applications du logiciel libre
Nous citerons deux exemples de déploiement potentiel de solutions à base de logiciels libres dans
des domaines importants : la persistance (base de données) et les interfaces du futur.
Travailler dans les deux univers que sont l'orienté objet et la base de données relationnelle peut être
lourd et consommateur en temps dans le monde de l'entreprise d'aujourd'hui. Hibernate est un outil de
mapping objet/relationnel pour le monde Java. Le terme mapping objet/relationnel (ORM) décrit la
technique consistant à faire le lien entre la représentation objet des données et sa représentation
relationnelle basé sur un schéma SQL. Non seulement, Hibernate s'occupe du transfert des classes
Java dans les tables de la base de données (et des types de données Java dans les types de
données SQL), mais il permet de requêter les données et propose des moyens de les récupérer. Il
peut donc réduire de manière significative le temps de développement qui aurait été dépensé
autrement dans une manipulation manuelle des données via SQL et JDBC.
Le but d'Hibernate est de libérer le développeur de 95 pour cent des tâches de programmation liées à
la persistance des données communes. Hibernate n'est probablement pas la meilleure solution pour
les applications centrées sur les données qui n'utilisent que les procédures stockées pour
implémenter la logique métier dans la base de données, il est le plus utile dans les modèles métier
orientés objets dont la logique métier est implémentée dans la couche Java dite intermédiaire.
Hibernate est un projet open-source.
29
Pour ce qui concerne les interfaces graphiques, on s'achemine vers des interfaces visuellement très
différentes de celles que l'on côtoie habituellement. Le marché s'oriente vers une programmation
événementielle, avec XML comme format de prédilection pour décrire des interfaces homme-machine,
basées sur un jeu de composants graphiques et de services déjà présents sur le poste client. Cette
convergence entre modèles de programmation client lourd et client léger présente un très gros intérêt.
Elle unifie les méthodes de développement et les outils, quelle que soit la cible de déploiement. Cela
est possible grâce à la flexibilité que procure un squelette d'application décrit en XML. Il s'agit d'un
simple fichier texte, que le serveur peut adapter ou générer en fonction du récepteur. Mais la
complexité se déplace sur le poste client. Quoi qu'il en soit, la maîtrise du navigateur sera plus que
jamais au cœur des enjeux de demain. Les éditeurs peaufinent de nouveaux langages XML, qui
permettent de générer dynamiquement des applications dialoguant avec les services métier de
l'entreprise. Il n’existe par encore de standard qui puisse mettre tous les acteurs d’accord mais il
existe déjà des solutions :
XALM (Microsoft)
SVG et XFORMS (W3C)
XUL (Mozilla)
MXML (Macromédia)
XDP (Adobe)
Le cas Open-Cascade
Open-CASCADE est une filiale de EADS Matra Datavision, fondée en janvier 2001. Cette équipe de
100 personnes (80 réalisateurs inclus) travaille en France et en Russie. Leur mission est de fournir
des services ainsi que le support pour les utilisateurs, les éditeurs de logiciels et les chercheurs
industriels pour leurs projets de développement basés sur le logiciel Open-CASCADE 3d (logiciel
libre). Les entreprises obtiennent un avantage concurrentiel via les applications contenant leur savoir-
faire spécifique. Dans beaucoup de cas, ce besoin spécifique n'est pas couvert par le logiciel
commercial de CAO ou, s'il est couvert, est difficile ou cher à mettre en application.
Le logiciel libre et le CSTB : un business model ?
Les logiciels libres sont, pour ces éditeurs, un moyen de s'affranchir de la dépendance envers d'autres
sociétés et de pouvoir apporter librement leurs compétences. Aucun frein (comme le paiement de
royautés ou encore le manque d'informations sur le fonctionnement du système) ne vient les
subordonner aux décisions conceptuelles ou stratégiques d'autres acteurs. Cette liberté permet une
compétition plus saine entre les éditeurs de logiciels. Le succès de ceux-ci ne dépend que de la valeur
ajoutée. Ces sociétés cherchent également à se diversifier pour conquérir de nouveaux marchés dans
lesquels le logiciel libre possède un potentiel certain. Par exemple, les Internet Appliances
(applications embarquées) ainsi que tous les types d'organiseurs personnels reliés à Internet et
promis à un fort développement, pourront tirer avantage de GNU/Linux par ses faibles besoins en
ressources, sa forte adaptabilité et l'absence de coûts de licences au niveau du prix de vente de ces
produits. Les solutions commerciales basées sur les logiciels libres semblent donc tout à fait viables,
même si elles obéissent à un modèle économique différent.
En plus de réduire la dépendance stratégique des entreprises, les logiciels libres peuvent également
avoir un impact important sur l'économie et l'emploi, souvent bien supérieur à ceux des logiciels
contrôlés par des acteurs propriétaires. Au même degré que les distributeurs de solutions basées sur
GNU/Linux, les logiciels libres sont créateurs d'emplois décentralisés de services (PME). De plus, de
nombreuses petites sociétés se créent dans la maintenance ou dans le développement personnalisé.
En supprimant le coût des licences, le logiciel libre autorise une marge supplémentaire en termes
d'adaptation, de réactivité et de fiabilité. La simple économie des licences peut permettre de payer des
ingénieurs pour adapter le logiciel libre aux besoins de l'entreprise mais aussi pour former les
utilisateurs. On peut ainsi penser que le logiciel libre (et adapté sur place) est à l'origine d'une création
d'emplois localement supérieure à celle du logiciel propriétaire importé.
30
Ce schéma reste valable au niveau national pour des pays dont les ressources financières sont
limitées, mais qui disposent d'une main d’œuvre bien formée ou pouvant l'être. Le logiciel libre semble
donc tout à fait viable comme modèle économique pour des entreprises éditrices de logiciels.
La valeur ajoutée du CSTB n’est pas dans le développement de solutions informatiques généralistes
et encore moins dans le développement de codes de calculs déjà existants. La valeur ajouté du CSTB
est plutôt dans la traduction sous forme logicielle de compétences métiers liées au bâtiment. En
utilisant le levier du code libre, le CSTB pourrait acquérir à moindre frais des solutions standard sur
lesquelles il pourrait bâtir des solutions spécifiques pour le secteur du bâtiment. L’utilisateur se verrait
facturer au final que la valeur ajoutée apportée par le CSTB (l’intégration et l’adaptation de solutions
standard au secteur du bâtiment).
De nombreux travaux de recherche s’appuient sur des logiciels de calcul commerciaux. L’utilisation
généralisée de codes libres permettrait d’augmenter les possibilités de valorisation et de diffusion de
ces travaux, et de garantir le maîtrise du code. Ainsi le code libre ASTER (www.code-aster.org )
développé par EDF pourrait être un support aux développements de DSSF. L’environnement libre
SCILAB (INRIA / ENPC) http://scilabsoft.inria.fr/ qui est soutenu par un consortium de 12 partenaires
http://www.inria.fr/presse/pre98.en.html devrait pouvoir permettre à SIMBAD de s’affranchir de
l’environnement propriétaire MATLAB http://www.mathworks.com/ .
Quelques mots des futurs OS
Introduction
La prochaine version du système d’exploitation des PC qui sera commercialisée par Microsoft est pour
l’instant connue sous le nom de code « Longhorn », et ne devrait pas être disponible avant 2006,
même si depuis le début de l’année, des bribes de cette plate-forme ont été divulguées y compris à
des EOM. De son côté, Microsoft commence également à livrer des détails sur ce qu’il estime être son
plus grand pari depuis Windows 95, et l’on pourra consulter le site qui a déjà été mentionné
http://msdn.microsoft.com/longhorn/ pour se faire une idée de l’ampleur du chantier.
Ainsi, lors de la conférence des développeurs, qui s’est tenue à la fin du mois d’octobre 2004 à Los
Angeles, l’éditeur a distribué une version très préliminaire de Longhorn. Ont également été présentés
les changements apportés au système d’exploitation ainsi que des outils de programmation connexes
tels que Visual Studio et SQL Server.
Tout en demeurant compatible avec les logiciels actuels, Longhorn constitue un changement complet
tant d’un point de vue esthétique que dans la façon de stocker et de retrouver les fichiers, ou de
protéger le PC. Ce nouveau système d’exploitation devrait également fournir une base permettant le
développement d’applications Windows plus innovantes.
Longhorn pour des machines surpuissantes
D’après Bill Gates dont les visions sont toujours fort intéressantes – je renvoie le lecteur à la « Route
du Futur » de 1995, d’ici à la sortie de Longhorn, les PC seront dotés de processeurs cadencés entre
4 et 6 GHz. Ils disposeront de plus de 2 Go de mémoire vive, d’une capacité de stockage d’au moins
un téra octet et de cartes graphiques trois fois plus puissantes. Le système est conçu pour tirer parti
de toutes ces ressources. L’interface tridimensionnelle nommée « Aero » , riche en fonctionnalités, en
est l'une des illustrations les plus évidentes.
Aero dépend d’Avalon, le nouveau moteur de traitement graphique qui s’appuie sur le langage XML
tout en empruntant également aux technologies DirectX et ClearType de Microsoft. Le résultat est une
interface plus sophistiquée avec des menus transparents, une animation fluide et des fenêtres
capables de se réduire à la taille d’une vignette ou de s’agrandir, tout en préservant le contenu.
Ce nouveau moteur permet également de créer et d’afficher des éléments actifs ("Tiles") sur le
31
Bureau, ces éléments utilisent le XML de façon à pouvoir présenter aussi bien des informations en
ligne — titres d’actualités, cotations boursières, etc. — que des renseignements provenant d’un
disque local — liste de fichiers MP3 ou d’interlocuteurs importants, par exemple. La barre de
tâches ou "Sidebar" — l’une des nouveautés de Longhorn — se présente sous la forme d’une
collection d’éléments actifs tels que l’horloge, la liste des contacts favoris, les actualités, les contrôles
de Windows Media Player, et les touches de lancement rapide des applications principales. Cette
barre peut se positionner verticalement sur l’un des côtés de l’écran ou horizontalement, en haut ou
en bas. Certains prototypes de cette Sidebar comportent également des éléments de synchronisation
et de recherche.
L’interface utilisateur rassemble un grand nombre des possibilités offertes actuellement par les
tablettes PC, les unités mobiles et les PC Media Center. Récemment, Microsoft a par ailleurs présenté
des technologies de reconnaissance d’écriture manuelle et de la voix telles qu’elles devraient être
traitées par Longhorn. À l’instar d’Internet Explorer, devenu il y a quelques années un composant à
part entière de Windows, Media Player se transforme progressivement en élément omniprésent,
cessant de n’être qu’une application autonome.
Les fonctionnalités requièrent non seulement un PC performant mais également un moniteur de
grande taille et d’une résolution très fine. Mais le système semble aussi prévu pour offrir différents
niveaux de fonctionnement, certains désactivant les effets les plus gourmands d’Aero, de façon à
obtenir des résultats satisfaisants sur les PC moins performants.
WinFS , le nouveau système de fichiers de Longhorn, fonctionne selon le principe des base de
données relationnelle et toute vision du système de fichier ressemble ainsi à une « vue » sur une base
de données. Ce qui n’est pas étonnant puisqu’il s’appuie sur la même technologie que Yukon, la
prochaine version de SQL Server. Plutôt que de classer les données dans des dossiers et sous-
dossiers, WinFS offre la perspective d’organiser et de rechercher les fichiers en fonction de leur
contenu ou d’autres attributs.
En d’autres termes, l’emplacement physique des fichiers n’est plus véritablement important. Au
contraire, ces dossiers virtuels présentent des fichiers ou des données qui partagent des propriétés
communes et sont construits à l’aide de filtres qu’il est possible de créer et modifier. Il sera ainsi
envisageable de créer des "piles" réunissant tous les morceaux de musique d’un auteur ou d’une
durée déterminée, ou affichant les photos prises au cours du dernier mois ou tous les contacts triés en
fonction de leur adresse électronique.
Le système WinFS devrait rendre le mécanisme de recherche plus efficace en faisant disparaître les
stocks d’information qui résident aujourd’hui dans des fichiers dont le format dépend des applications.
À titre d’exemple, l’utilisateur pourra obtenir à partir d’une simple boîte de recherche, tous les
messages électroniques, pages web et documents Office liés à un sujet donné.
La sécurité a été le talon d’Achille de Microsoft. L’un des objectifs majeurs de Longhorn sera donc de
l’améliorer. Toutefois, la façon dont l’éditeur envisage de s’y prendre sans imposer de mesures
draconiennes aux utilisateurs, reste floue. À titre d’exemple, Microsoft réfléchit à la possibilité d’activer
par défaut le pare-feu intégré. Si certains prétendent que Longhorn intégrera son propre antivirus, il
semble plus probable que Microsoft trouvera le moyen d’enfouir des solutions existantes plus
profondément dans le système, afin d’inciter un plus grand nombre d’utilisateurs à les installer et les
mettre à jour régulièrement. Des prototypes du système permettent aux parents de restreindre l’accès
au PC ou à l’internet à certaines plages horaires.
À un niveau plus global, Microsoft développe une architecture de sécurité baptisée NGSCB (Next-
Generation Secure Computing Base). Celle-ci introduit deux modes de fonctionnement du système: le
mode standard, dans lequel fonctionnent les matériels et logiciels actuels et le mode sécurisé, qui
requiert des authentifications plus rigoureuses et un cryptage. Une telle conception impose des
modifications aux matériels et logiciels tiers. Intel a d’ores et déjà annoncé que sa prochaine
génération de puces et jeux de composants Prescott, disponible au début de 2004, supporterait cette
nouvelle architecture.
L’importance de ce nouveau système d’exploitation est qu’il va ouvrir de nouvelles perspectives à
ceux qui vont être en mesure de s’adapter rapidement au changement et d’en tirer parti. Pour ce faire,
deux pré requis paraissent importants : le premier est de s’appuyer sur des environnements de
32
développement Microsoft (comme .NET et Visual Studio) plutôt que sur les concurrents ou que sur du
logiciel libre, car ces environnements Microsoft faciliteront la migration et la genèse d’applications
dans le nouvel environnement de par la nécessité même pour Microsoft de garantir à tous ses
développeurs une portabilité ascendante des applications, le deuxième pré requis étant de bien
connaître XML et de s’être préparé à une migration de grands volumes de données en XML, sachant
qu’XML sera au cœur même de Longhorn. En effet, XML d’après Microsoft, permet d’introduire «de
riches schémas utilisateur au sein même de la plate-forme». En d’autres termes, il s’agit de prendre
les données stockées dans des formats de fichiers propriétaires et de les transformer en fichiers XML
qu’il est alors possible de partager en les rendant éléments de l’architecture globale du système
d’exploitation.
L’exemple le plus évident pour nous est la base de donnée du CD-REEF, aujourd’hui en SGML,
demain en XML et qui deviendrait alors utilisable par n’importe quel élément de l’architecture
Longhorn, etc. La nouvelle interface de programmation WinFX ainsi que des outils tels que la plate-
forme de communications Indigo vont standardiser la façon dont les applications interagissent avec
les données XML. Microsoft croit si fermement aux possibilités de Longhorn qu’il investit la plupart de
ses ressources Office dans la création d’une version de sa suite qui ne fonctionnera que sous ce
nouveau système. Microsoft prévoit naturellement de rendre disponible de nouvelles versions de
Visual Studio facilitant le développement d’applications Longhorn.
Microsoft demeure encore très flou sur la date de livraison de son nouveau système d’exploitation. Et
ce d’autant que l’éditeur annonce une disponibilité «pilotée par la technologie», façon élégante de
sous-entendre que la date de 2006 initialement prévue a de bonnes chances d’être décalée. Une
version bêta du système client est toutefois prévue pour l’été 2004. Selon Bill Gates, le prix de
Longhorn sera comparable à celui de Windows XP.
Passer à côté de Longhorn et de la panoplie d’outils Microsoft qui l’accompagnera, depuis la
technologie de gestion des données par vues selon une approche « BD », la gestion avancée de
corpus XML, l’intégration à VS et à la suite « Office » de toutes les ressources « Longhorn », etc. sera
se décaler durablement voire définitivement par rapport aux standards de qualité et de fonctionnalités
que la plupart des utilisateurs attendront du logiciel et des applications métiers opérant sur la
prochaine génération de machines.
De ce point de vue, l’offre sera encore plus bi-polaire que jamais : Microsoft et sa panoplie complète -
le reste du monde du moins ce qu’il va en survivre…
Pour le CSTB il semble assez facile de conclure de quel côté penche la balance, quand on cherche
des solutions intégrées, faciles à déployer et à maintenir, sur l’ensemble du cycle de vie du logiciel, et
qui soient « scalable », i.e. qui puissent monter en puissance en tirant parti à la fois de machines plus
puissantes mais aussi de volumes de données devenant considérables.
33
Portée juridique et implication légales
Introduction
L’objet de cette partie est d’aborder les questions qui touchent à la protection de la propriété
intellectuelle du CSTB dans le cadre du développement de logiciels, à la portée juridique et aux
implications légales qui accompagnent l’acte de commercialiser des logiciels.
Parmi les points essentiels sur lesquels nous allons revenir par la suite, il convient de citer la définition
et la mise en oeuvre :
de procédures administratives adaptées à l’établissement des droits patrimoniaux et à la
protection de la propriété intellectuelle du CSTB, i.e. conservation de tous les documents
permettant de tracer la propriété intellectuelle (contrats de R&D, accords spécifiques, contrats
de travail adaptés, etc.) et de la protéger (i.e. marques, brevets US/JP, EU) ;
de procédures techniques alimentant les contrats de licences (e.g. limites d’usage technique,
hypothèses de modélisation et techniques de résolutions doivent être explicitées et faire
l’objet de clauses contractuelles spécifiques des licences octroyées) ;
de procédures juridiques avec une assistance adaptées à l’établissement des contrats de
licences et à l’activité de certification des logiciels (e.g. limites d’usage contractuelles,
limitation de la responsabilité du CSTB en cas de dysfonctionnements (en particulier logiciels
1/3 certifiés)
Notion de protection des logiciels
L’objet de cette partie du document est d’évaluer la pertinence d’une démarche de protection des
logiciels en fonction des situations rencontrées, d’en mesurer l’intérêt économique, et de présenter les
options techniques et juridiques qui s’offrent aux organismes qui développent des logiciels et au CSTB
en particulier. Il existe en effet différentes formes de protection possibles, qu’elles soient formelles ou
informelles et ces dernières entraînent des niveaux de protection mais aussi des coûts bien différents
selon les approches mises en œuvre.
Le CSTB, à l’instar de très nombreux autres agents économiques, développe du logiciel à différentes
finalités, et se pose en fait des questions que l’on pourrait qualifier de classiques afin de veiller à
protéger sa propriété intellectuelle. Protéger le logiciel, quels que soient les moyens employés, est
l’une des décisions les plus importantes si l’on souhaite générer des profits ou tout simplement
empêcher des tiers de le faire sur des créneaux que l’on souhaite protéger quelles qu’en soient les
raisons.
Il existe quatre types essentiels de protection ayant une portée juridique à savoir les droits d’auteurs
ou « copyrights », les dépôts de marques ou « trademarks », les licences d’utilisation et leur octroi
contractualisé et les brevets. Il existe par ailleurs d’autres manières plus informelles de protéger du
logiciel.
Bien sûr ces différents types de protection peuvent se compléter les unes les autres et un logiciel
bénéficiant d’un brevet – nous verrons que cela devient une pratique courante dans certaines parties
du monde – peut également s’appuyer sur un dépôt de marque pour mieux protéger les
investissements marketing qui peuvent être faits pour promouvoir une certaine image du produit, un
certain « packaging », un positionnement, etc. Néanmoins, il faut garder présent à l’esprit que toute
forme de protection s’assortit d’un coût qu’il est important d’évaluer et qui sera précisé par la suite.
C’est donc la recherche d’un optimum entre les dépenses engagées et le niveau de protection obtenu
qui devra être recherché, ce au cas par cas en fonction des situations.
34
Pour ce qui concerne le logiciel, les entreprises ont deux positionnements différents, celles qui
développent pour leurs besoins propres et qui réalisent – souvent à posteriori - que les logiciels en
question ont une valeur de marché qu’elles souhaitent ensuite exploiter et celles qui d’entrée de jeu
cherchent à dégager des revenus de la vente de logiciels à des tiers. Le CSTB est plutôt dans la
première de ces deux situations, en ce sens où la majorité des logiciels dont il est l’auteur ou le co-
auteur est un résultat annexe d’une recherche ou d’une étude, annexe ne voulant pas dire sans
importance, mais simplement ne constituant que rarement l’objet central ou plus exactement
contractuel du travail fourni. Néanmoins, de plus en plus de connaissances n’existent que sous forme
logicielle ou ne peuvent être produites qu’en ayant recours à des logiciels. En ce sens, et dans la
mesure ou le logiciel est un générateur essentiel de la connaissance dans les champs de compétence
et d’expertise du CSTB, il ne saurait être une préoccupation « annexe ».
Vient désormais la question centrale, le CSTB doit-il protéger ses logiciels et si oui sous quelle forme
doit-il le faire ?
Quel besoin de protection ?
Il existe de toutes évidences trois raisons pour lesquelles une entreprise peut souhaiter protéger ses
logiciels.
afin de s’assurer des revenus
afin d’éviter que d’autres puissent en tirer une source de revenus
afin d’en empêcher l’utilisation par des tiers
Certaines situations peuvent ne pas justifier que l’on protège les logiciels par d’autres moyens que le
signalement du droit d’auteur. Il en est ainsi des projets dits « open source » pour lesquels un certain
nombre d’organismes (souvent n’ayant pas des contraintes économiques très liées au marché)
s’associent pour proposer des logiciels libres de droits d’usage. Compte tenu du besoin pour le CSTB
de générer des ressources financières à partir des travaux qui se matérialisent sous une forme
logicielle, il est peu probable que ce type de « signalement » soit approprié à la majorité des
situations.
Nous allons plutôt considérer les moyens formels et informels de protection. Les moyens formels
dotent le détenteur de telles protections d’une capacité juridique pour faire respecter ses droits le cas
échéant. Il en va ainsi des droits d’auteurs, des marques, des licences et des brevets, chacun offrant
des possibilités particulières de recours contre les contrefacteurs ou les utilisateurs pirates. Il existe
également tout un ensemble de moyens informels permettant de se protéger même s’ils n’offrent pas
la capacité juridique. Ces derniers sont d’ailleurs souvent utilisés par les petites structures n’ayant pas
les moyens financiers de se doter de protections formelles.
Les protections techniques qu’elles soient logicielles (e.g. obfuscateurs afin d’éviter la décompilation
des exécutables en codes sources, clefs en tous genres, etc.) ou matérielles (e.g. dongles et autres)
offrent une sécurité souvent raisonnablement satisfaisante mais qui ne garantit pas la protection du
marché ni l’éventuelle entrée de concurrents sur un tel marché, objet des protections formelles. Tous
les autres avantages concurrentiels qui peuvent être dérivés d’une bonne connaissance du marché,
de savoirs techniques spécifiques, d’une clairvoyance d’emploi par des utilisateurs potentiels, d’une
adéquation entre l’image de l’entreprise et les créneaux envisagés sont autant de protections
informelles que nous considèrerons davantage sous l’angle de barrières d’entrée plus de réelles
protections.
Une brève analyse des comportements des petits acteurs logiciels, en particulier dans le monde du
BTP, montre qu’ils font usage des deux types de protections que nous venons de citer, tout en
sachant que les brevets en raison de leurs coûts d’obtention (et d’extension à de larges marchés qui
sont souvent ceux des logiciels) et de la complexité des procédures de délivrance ainsi que leur
relative nouveauté dans l’arsenal européen des protections sont souvent délaissés bien qu’ils offrent
les moyens les plus efficaces d’éliminer d’éventuels concurrents.
35
Les protections formelles
Il existe donc quatre manières formelles de protéger les logiciels, que nous citerons par ordre
croissant de garantie qu’elles offrent mais également de complexité et de coûts, les droits d’auteurs,
les marques, les licences et les brevets – également applicables au logiciel y compris en Europe
contrairement à une croyance répandue.
Le droit d’auteur
Le droit d’auteur également connu internationalement sous le terme de « copyright » est automatique
et peut donc être facilement utilisé pour autant qu’une revendication en droit d’auteur ait été énoncée.
L’usage de marques déposées est relativement peu coûteux et considéré comme une forme efficace
de protection par un grand nombre de développeurs de logiciels. Les marques s’appuient sur les
droits d’auteurs et les complètent. Les usages de licences et de brevets sont plus complexes bien que
les premières soient très courantes et tombent davantage dans le champ des protections
contractuelles.
Le droit d’auteur est la forme juridique de protection qui est automatiquement accordée aux œuvres
de l’esprit, qu’il s’agisse de littérature, de musique, d’œuvres d’art, de bases de données ou de
programmes informatiques. A peu d’exceptions près, le fait de se déclarer – et nous verrons les
formes que cela peut revêtir – auteur d’une création de l’esprit donne automatiquement accès aux
protections offertes par le droit d’auteur, ce pour autant que l’on appartienne à l’un des pays
signataires de la convention de Berne sur les droits d’auteurs, c’est à dire la vaste majorité des pays y
compris les pays européens, les états unis d’Amérique, le Japon et bien d’autres encore. La
revendication peut prendre n’importe quelle forme écrite qu’elle soit électronique ou non et qu’elle
accompagne le logiciel ou non. Le droit d’auteur est donc accordé automatiquement, facile à apposer
et à faire valoir et reconnu de manière quasi universelle. Il est donc recommandé de faire apparaître
de manière très visible les revendications et avertissements de droits d’auteurs sur les
conditionnements des logiciels livrés aux utilisateurs, qu’il s’agisse des manuels utilisateurs, des
supports physiques ou de tout autre dispositif livré à l’utilisateur. Le logiciel doit également lors de son
exécution afficher © [nom] [auteur] tous droits réservés.
Le droit d’auteur permet de poursuivre quiconque ferait un usage non autorisé du logiciel et de
demander des dommages et intérêts en guise de compensation financière. Ce droit protège
également les graphiques, les interfaces et les représentations externes produites par le logiciel bien
que dans certaines juridictions l’enregistrement de telles formes externes puisse être séparément fait
sous la forme de « design » et garantisse des protections complémentaires. Engager des poursuite
pour le non respect du droit d’auteur peut être plus rapide et meilleur marché que de faire respecter
les droits attachés aux brevets. La plupart des cas commencent par une injonction qui prend le plus
souvent la forme d’une signification faite par un huissier de justice afin de faire cesser l’usage illicite et
non autorisé. Cependant en cas de non obtempération les poursuites juridiques sont généralement
plus longues et difficiles.
Il est important que la propriété du droit d’auteur soit établie irréfutablement. En effet, et bien que -
sauf exception contractuellement énoncée par les parties - le droit d’auteur soit la propriété de
l’employeur du salarié auteur, il n’en est pas de même dans le cas où l’entreprise a recours à des
consultants