65
FASCICULE INFORMATIQUE GENERALE Technologies logiciels Généralités

Technologies logiciels - Généralités

Embed Size (px)

Citation preview

Page 1: Technologies logiciels - Généralités

FASCICULE INFORMATIQUE GENERALE

Technologies logiciels Généralités

Page 2: Technologies logiciels - Généralités

AVERTISSEMENT

CET OUVRAGE CONTIENT DES REPRODUCTIONS EFFECTUEES PAR L'IGPDE AVEC L'AUTORISATION DU CENTRE FRANÇAIS D'EXPLOITATION DU DROIT DE COPIE (CFC).

TOUTE NOUVELLE REPRODUCTION EST SOUMISE A L'AUTORISATION PREALABLE DU CFC .

Page 3: Technologies logiciels - Généralités

Sommaire

Toute reproduction même partielle interdite IGPDE page 3

SOMMAIRE

ASPECTS DIVERS DU DOMAINE LOGICIEL ................................................................................. 5 1. Notions générales ................................................................................................................... 6

1.1. Le programme................................................................................................................... 6 1.2. L'instruction....................................................................................................................... 6 1.3. La notion de logiciel .......................................................................................................... 6

2. Typologies................................................................................................................................ 7 2.1. Les programmes système ................................................................................................ 7 2.2. Les applications ................................................................................................................ 8 2.3. Les logiciels ...................................................................................................................... 8 2.4. Les progiciels .................................................................................................................... 9

LES APPLICATIONS....................................................................................................................... 11 1. Typologie des applications .................................................................................................. 11

1.1. Les applications de traitement par lots ........................................................................... 11 1.2. Les applications transactionnelles .................................................................................. 13

2. La portabilité des applications............................................................................................. 14 2.1. Les facteurs de la portabilité des applications................................................................ 15 2.2. Effectuer les choix adaptés............................................................................................. 16 2.3. Méthode de développement ........................................................................................... 17 2.4. Organisation des programmes ....................................................................................... 20 2.5. L'architecture du code exécutable .................................................................................. 22 2.6. Conclusion ...................................................................................................................... 22

3. L'interopérabilité des applications ...................................................................................... 23 3.1. Les développements spécifiques : les applications interfaces ....................................... 24 3.2. Les middlewares (intergiciels) ........................................................................................ 24

4. L'intégration d'application (EAI - Enterprise Application Integration)............................. 25 5. La distribution des applications (applications distribuées) ............................................. 26

5.1. L'origine de l'architecture client-serveur ......................................................................... 26 5.2. L'architecture client-serveur "effacée" par l'architecture Web ........................................ 27 5.3. Les architectures applicatives "Web-to-Host"................................................................. 28 5.4. Les applications client-serveur sont en voie de disparition ............................................ 29

LES LOGICIELS.............................................................................................................................. 31 1. Les logiciels éducatifs .......................................................................................................... 31

1.1. Les didacticiels................................................................................................................ 31 1.2. Les logiciels à base d’informations ................................................................................. 31 1.3. Les logiciels bureautiques .............................................................................................. 32 1.4. Les outils complets de la bureautique ............................................................................ 35

2. Les systèmes experts ........................................................................................................... 36 3. Les logiciels collaboratifs..................................................................................................... 37

3.1. Le concept de "groupware"............................................................................................. 38 3.2. Le concept de "workflow"................................................................................................ 39

LES PROGICIELS ........................................................................................................................... 43

Page 4: Technologies logiciels - Généralités

Sommaire

page 4 Toute reproduction même partielle interdite IGPDE

1. Les progiciels de gestion intégrés (PGI) ............................................................................. 43 2. XRP, le futur des PGI ............................................................................................................. 44

L'INFORMATIQUE DECISIONNELLE............................................................................................. 45 1. Quelques définitions ............................................................................................................. 45

1.1. Système informatisé d'aide à la décision SIAD (DSS, Decision support system) .......... 45 1.2. Informatique décisionnelle (BI, Business Intelligence).................................................... 45

2. Le processus décisionnel ..................................................................................................... 46 3. Les différents outils logiciels ............................................................................................... 47

3.1. Datawarehouse - Datamart ............................................................................................. 47 3.2. L'extraction (ETL) ............................................................................................................ 47 3.3. Le Data Mining ................................................................................................................ 47 3.4. Le reporting ..................................................................................................................... 48 3.5. L'analyse multi-dimensionnelle : Le cube OLAP............................................................. 48

LE LOGICIEL LIBRE ("L'OPEN SOURCE")................................................................................... 49 1. Qu’est-ce qu’un logiciel libre ?............................................................................................. 50

1.1. Présentation générale et synthétique des logiciels libres ............................................... 50 1.2. Définitions........................................................................................................................ 50 1.3. Différences de terminologie ............................................................................................ 52

2. Aspects juridiques................................................................................................................. 52 2.1. Les logiciels propriétaires................................................................................................ 52 2.2. Les logiciels libres ........................................................................................................... 53

3. Mode de fonctionnement du logiciel libre........................................................................... 55 3.1. Le partage de logiciels : l’approche collaborative et pragmatique .................................. 55 3.2. Modèle économique des logiciels libres.......................................................................... 56

4. Utilisation des logiciels libres .............................................................................................. 58 4.1. L’intérêt des logiciels libres ............................................................................................. 58 4.2. Précautions d’emploi ....................................................................................................... 59 4.3. Domaines d'utilisation des logiciels libres ....................................................................... 60 4.4. Un enjeu pour l'administration......................................................................................... 62 4.5. Bénéfices et risques pour l'administration....................................................................... 62

Page 5: Technologies logiciels - Généralités

Aspects divers du domaine logiciel

Toute reproduction même partielle interdite IGPDE page 5

ASPECTS DIVERS DU DOMAINE LOGICIEL

Remarque :

Ce fascicule n'aborde que des notions propres à l'informatique de gestion et exclus d'autres aspects propres aux domaines :

♦ scientifiques (calcul, simulation, … ; ♦ et industriels (conduite de processus de fabrication, …) ;

En matière d'informatique de gestion, un traitement automatisé peut être défini comme un processus composé d'actions et de conditions, s'enchaînant dans un ordre préétabli afin de faire passer un référentiel de donnée d'un état initial à un état final.

Pour pouvoir être réalisé, un traitement automatisé nécessite la présence de 2 éléments, le "matériel" et le "logiciel" : ♦ l'élément "matériel" est composé du processeur, de la mémoire centrale et des périphériques

(et leurs supports) ; ♦ l'élément "logiciel", concrétisé par un programme, applique ces actions et ces conditions sur

des données à partir d'une suite d'instructions.

L'élément "logiciel" formalise le traitement, l'élément "matériel" réalise son exécution selon un processus automatisé.

Mais pour réaliser l'automatisation de cette exécution, il a été nécessaire de définir un mode de fonctionnement automatisé de l'ordinateur, que l'on a appelé ordinateur à "programme interne" (1). Cette architecture (2) a été formalisée pour la première fois en 1945 par le mathématicien d'origine hongroise John von Neumann que l'on peut résumer ainsi : ♦ le programme est implanté en mémoire pendant toute la durée de son exécution par le

processeur ; ♦ les instructions du programme (codées sous forme numérique - binaire) sont agencées selon

un ordre d'exécution séquentiel ; ♦ le processeur peut être amené à modifier cet ordre séquentiel grâce à la présence

d'instructions (dans le programme) permettant des "ruptures de séquence".

L'automatisation de l'exécution du programme est réalisée dans la mesure où , le programme résidant en mémoire centrale, toutes les instructions sont directement accessibles au processeur, soit dans l'ordre séquentiel, soit par rupture de séquence (à la suite d'une instruction de branchement conditionnel ou inconditionnelle).

Remarque :

(1) Par opposition aux premiers calculateurs scientifiques qui étaient à programme externes.

(2) Les principes de "l'architecture de von Neumann" guideront la conception des ordinateurs jusqu'à nos jours.

Page 6: Technologies logiciels - Généralités

Aspects divers du domaine logiciel

page 6 Toute reproduction même partielle interdite IGPDE

1. NOTIONS GENERALES

1.1. Le programme

Le programme est destiné à décrire l'ensemble des actions consécutives qu'un ordinateur (processeur) doit exécuter. Il est constitué : ♦ d'une suite d'instructions s’exécutant en mémoire centrale; ♦ faisant elle-mêmes référence (selon des adresses) aux données à manipuler.

Le processeur exécute séquentiellement les instructions jusqu'à ce qu'il rencontre une instruction (appelée parfois instruction de branchement) provoquant une "rupture de la séquence" pour permettre l'exécution d'une instruction se situant à un autre endroit du programme.

Il s'agit donc d'une sorte de jeu de piste dans lequel la machine doit suivre le fil conducteur et exécuter les instructions qu'elle rencontre jusqu'à ce qu'elle arrive à la fin du programme et celui-ci s'arrête.

1.2. L'instruction

L'instruction est l'élément clé de l'ordinateur car c'est elle qui permet de spécifier au processeur l'action à effectuer. Les instructions à effectuer sont indiquées dans le fichier source et l'ordinateur passe d'une instruction à une autre en suivant les instructions indiquées de haut en bas (car la lecture d'un fichier se fait de haut en bas).

Une instruction est généralement composée de deux éléments: ♦ l'opérateur : action à effectuer par le processeur ♦ la ou les opérandes : une ou plusieurs données (adresse mémoire) sur lequel on va effectuer

l'opération opérateur opérande(s) opérande(s)

1.3. La notion de logiciel

Un logiciel est un ensemble des moyens fournis pour utiliser un ordinateur et composés de programmes de diverses natures (éditeurs, compilateurs, traducteurs de langages, éditeurs de liens, systèmes d'exploitation, utilitaires, etc. ).

Page 7: Technologies logiciels - Généralités

Aspects divers du domaine logiciel

Toute reproduction même partielle interdite IGPDE page 7

2. TYPOLOGIES

Le domaine du logiciel peut se répartir en deux grandes catégories : ♦ les logiciels système (ou logiciels de base) ; ♦ et les applications, les logiciels et les progiciels.

Le schéma ci-dessous récapitule les différents niveaux présentés.

Tout le reste (ordinateur, périphériques et séquences d’instructions s’exécutant hors de la mémoire centrale) sera considéré comme du "matériel".

Parmi les séquences d’instructions ne s’exécutant pas en mémoire centrale, on pourra trouver la partie basse du logiciel de base qui se trouve généralement dans les mémoires mortes et qui contrôle les différents dispositifs physiques de la machine.

Les logiciels système (ou logiciels de base) permettent le fonctionnement de l’ordinateur.

Les applications, les logiciels et les progiciels sont destinés à répondre aux besoins des utilisateurs. Ils réalisent les traitements automatisés.

2.1. Les programmes système

Parmi les logiciels de base, le système d’exploitation est le plus important.

Le système d’exploitation est un ensemble de logiciels qui permettent aux différents composants internes et externes de l’ordinateur, en particulier les périphériques de stockage (d'où le nom de système d'exploitation de disques), de communiquer entre eux. Ces logiciels permettent de donner des instructions à l’ordinateur à l’aide de commandes pour effectuer certaines tâches, comme créer, changer, renommer et supprimer les répertoires et sous-répertoires et les fichiers, en afficher la liste, en examiner le contenu, effacer l’écran, formater une disquette, un disque dur, copier des fichiers, une disquette ou un disque dur, etc.

L’objectif est de masquer la complexité de gestion des différentes composantes de l’ordinateur (processeurs, mémoires, horloge, périphériques…) en offrant une couche logicielle intermédiaire entre la machine et les programmes d’application, qui propose un ensemble d’instructions pour l’exploitation des ressources de la machine et prend en charge la gestion du système. Ainsi, lorsque l’on conçoit un programme d’application, "lire un bloc de fichier" ne nécessite pas d’avoir à se préoccuper du déplacement des têtes de lecture des disques, de leur positionnement, du nombre d’octets à transférer, etc.

Logiciels de base

Application

Système d'exploitation

Autres logiciels système

Matériel

Logiciel/Progiciel

Page 8: Technologies logiciels - Généralités

Aspects divers du domaine logiciel

page 8 Toute reproduction même partielle interdite IGPDE

Les autres logiciels système sont les interpréteurs de commande, les compilateurs, les éditeurs et tout autre programme, qui ne sont pas des programmes d’application. Ils ne font pas partie du système d’exploitation. S’ils ne conviennent pas à l’utilisateur, rien ne l’empêche d’en changer ou d’en écrire un qui lui convienne mieux. En revanche, il ne peut écrire son propre gestionnaire des interruptions du disque, car celui-ci fait partie du système d’exploitation.

Remarque :

Les logiciels système font l'objet d'un fascicule spécifique.

2.2. Les applications

Les applications sont développées spécifiquement pour couvrir des besoins d'automatisation propres à un domaine fonctionnelle particulier d'une entreprise ou d'une administration. Une application comprend : ♦ des traitements (programmes) qui intègrent les règles de gestion du domaine automatisé ; ♦ et l'organisation de la mémorisation des données propres à ces traitements.

2.3. Les logiciels

Les logiciels sont conçus pour couvrir des besoins génériques comme par exemple les suites bureautiques (traitements de textes, tableurs ...

Les logiciels ne réalisent que des traitements. Certains logiciels sont indispensables à l'utilisation de l'ordinateur (le système d'exploitation, les environnements d'exploitation, les programmes d'application. . . ).

Quelques grands éditeurs (Microsoft, Lotus, etc.) émergent du marché des logiciels. Leurs produits couvrent de multiples domaines. Les applications qu'ils développent, concernent divers types d'activités et s'appuient sur les configurations matérielles adaptées.

Ils sont commercialisés (sous forme de licence d'utilisation).

Certains sont livrés avec le matériel; c'est très souvent le cas du système d'exploitation. Les autres doivent être installés en fonction des besoins de l'utilisateur.

Ils sont livrés sur différents supports. Parfois des disquettes, mais plus couramment sur Cédérom. Ils peuvent même être téléchargés à partir d'un site fournisseur.

Les logiciels évoluent parfois. Lorsque les éditeurs améliorent leurs produits, qu'ils s'agissent de fonctionnalités ou de corrections d'erreurs , ils sont identifiables, grâce à leur numéro de version ou leur identification commerciale (Word 2000 ; Netscape 6.1 ; Office XP).

L'utilisation d'un logiciel (d'un progiciel ou d'une application) nécessite un apprentissage à l'aide d'une formation, d'un didacticiel ou d'un manuel. La documentation des éditeurs de logiciels se fait de plus en plus rare ou est réduite au minimum, car une aide en ligne est souvent intégrée à l'application. On peut se procurer des ouvrages dans des magasins ou des librairies spécialisées.

Il existe une adaptation du logiciel au matériel, même si cette relation ne semble pas impérative au premier abord. La plupart des logiciels qui connaissent un franc succès sont très sophistiqués. Si l'on suit les recommandations des éditeurs, chaque application nécessite une configuration

Page 9: Technologies logiciels - Généralités

Aspects divers du domaine logiciel

Toute reproduction même partielle interdite IGPDE page 9

minimale. Les éléments essentiels qui permettent de décrire cette configuration sont le plus souvent : ♦ Le type ou la gamme du processeur ; ♦ La capacité minimale de la mémoire vive ; ♦ La capacité de stockage des disques durs ; ♦ La version du système d'exploitation ; ♦ Le type de cartes vidéo et l'écran ; ♦ Les équipements multimédias (carte son, lecteur de cédéroms, …).

2.4. Les progiciels

Les progiciels (ou "produit-logiciel" - package) sont constitués d'un ensemble de programme. Ils sont comparables à des applications. Paramétrables et modulables, ils sont développés et commercialisés par des éditeurs afin de couvrir l'automatisation des fonctions courantes ou habituelles pour de nombreuses entreprises, comme par exemple : ♦ la comptabilité ; ♦ la gestion des stocks ; ♦ la gestion des ressources humaines …

On trouve sur le marché de l'informatique, des logiciels évolués remplissant des fonctions standards. Ce sont les progiciels généralistes ou encore progiciels horizontaux. Ils sont diffusés en plusieurs millions d'exemplaires. On les classe dans une catégorie définie par la tâche principale qu'ils permettent de réaliser, même s'ils empiètent sur d'autres domaines .

D'autres ont des fonctionnalités spécifiques. Ce sont des logiciels spécialisés ou encore progiciels verticaux.

Page 10: Technologies logiciels - Généralités
Page 11: Technologies logiciels - Généralités

Les applications

Toute reproduction même partielle interdite IGPDE page 11

LES APPLICATIONS Les applications sont développées spécifiquement pour couvrir des besoins d'automatisation propres à un domaine fonctionnelle particulier d'une entreprise ou d'une administration.

Les applications assurent l’acquisition, la gestion et la restitution des informations. Pour ce faire, elles comprennent : ♦ des traitements (programmes) qui intègrent les règles de gestion du domaine automatisé ; ♦ et l'organisation de la mémorisation des données propres à ces traitements.

Les besoins d'automatisation ne sont connus qu’au sein de l’entreprise ou de l'administration qui les a formalisé et qui en assure le suivi. Ils évoluent au gré des demandes des utilisateurs, souvent de façon à compléter ou à étendre leurs fonctionnalités. Les applications sont développées à partir de compétences informatiques internes ou par appel à un prestataire externe.

La connaissance du type d’application à développer conditionne le choix de l'environnement de développement (langage).

1. TYPOLOGIE DES APPLICATIONS

Elles sont de deux types (le type d’une application dépend de la nature des besoins qu’elle doit satisfaire) : ♦ les applications de traitement par lots; ♦ les applications transactionnelles.

1.1. Les applications de traitement par lots

Les applications de traitement par lots (batch) fonctionnent en mode différé et laissent une large part à l’automatisation des traitements, sans autre intervention de l’opérateur (que le lancement, le suivi du déroulement et la récupération des résultats). Les opérations à réaliser sont groupées dans une même unité et portent sur un ensemble de données déclarées pour être utilisées de façon spécifique à ce lot.

Le déroulement des traitements est indépendant de l'utilisateur. Les applications de traitement par lots sont très fréquentes dans les grands systèmes où elles permettent de traiter de grands volumes d’information.

Les traitements contenus dans cette unité sont réalisés les uns après les autres. Ils utilisent, pour ce faire, des fichiers permanents contenant les données principales de l’application, des fichiers mouvements contenant les données de mise à jour, des fichiers de paramétrage et des fichiers mouvements ou temporaires.

On appelle chaîne de traitement une telle unité. Elle est structurée en phases comprenant chacune un ensemble de programmes.

Elle est décrite globalement par un schéma de chaîne et, pour chaque phase, par un exposé de phase décrivant la nature de traitement, leur paramétrage ainsi que la structure des fichiers en entrée et en sortie.

Page 12: Technologies logiciels - Généralités

Les applications

page 12 Toute reproduction même partielle interdite IGPDE

Un traitement par lot peut être décrit de la manière suivante :

Fichier

M-CLIENT recyclé

Fichier

M-CLIENT Dept 75

Fichier

M-CLIENTDept 94

Fusion des fichiers M-CLIENT

Fichier

M-CLIENT

Compte rendu

d'exécution

DESCRIPTION DE LA CHAINE DE TRAITEMENT

PHASE 1 : FUSION

Fusion de tous les fichiers mouvements en un seul.

S'il existe, le fichier issu du recyclage des anomalies

détectées lors du traitement précédent est traité

Mise à jour du fichier P-CLIENT Fichier

P-CLIENT

Fichier

ANOMALIE

Compte rendu

d'exécution

PHASE 2 : MISE A JOUR

Mise à jour directe du fichier permanent.

Chaque article du fichier mouvement est répercuté sur

le fichier permanent. Cette mise à jour est contrôlée et les articles en anomalie sont écrits sur le fichier "ANOMALIE".

Recyclage des anomalies

Fichier ANOMALIE

recyclé

Compte rendu

d'exécution

PHASE 3 : RECYCLAGE

Recyclage des articles mis en anomalie.

Un traitement particulier permet de reprendre les

articles pour lesquels des anomalies "légères" ont été détectées (modification ou

suppression d'article inexistant par exemple).

Page 13: Technologies logiciels - Généralités

Les applications

Toute reproduction même partielle interdite IGPDE page 13

Les fichiers doivent être décrits en même temps que les traitements :

Fichier P-CLIENTSNom de zone Type * Longueur Commentaire

P-ARTP-NUM-CLIENT N 10 Identification du client par un n° uniqueP-NOM C 20 Nom du clientP-PRENOM C 20 Prénom du clientP-DATENAISS N 8 Date de naissance sur 8 car, par ex 01011899P-ADRESSE X 50 Adresse du client

(*) N : numérique, C : caractère, X : alphanumérique

Fichier M-CLIENTSNom de zone Type * Longueur Commentaire

M-ARTM-NUM-CLIENT N 10 Identification du client par un n° uniqueM-COD-MAJ C 1 Code de mise à jour (C = création, M =

Modification, S = Suppression)M-NOM C 20 Nom du clientM-PRENOM C 20 Prénom du clientM-DATENAISS N 8 Date de naissance sur 8 car, par ex 01011899M-ADRESSE X 50 Adresse du client

(*) N : numérique, C : caractère, X : alphanumérique

Description des fichiers

Un fichier particulier contient la trace des anomalies détectées lors du traitement ainsi que les données correspondantes, en vue de leur recyclage.

Un compte-rendu d’exécution est écrit dans un fichier de façon à être lu après édition ou utilisé par un traitement automatique. Il contient les résultats de comptages réalisés dans les programmes de l’application.

1.2. Les applications transactionnelles

Les applications transactionnelles fonctionnent en temps réel (mode conversationnel) accordent une place centrale à l'utilisateur dans le cadre de procédures interactives (à cet effet, on emploie souvent le terme de "conversationnelles" en lieu et place de "transactionnelles"). Elles permettent un dialogue entre l’homme et la machine. Les applications transactionnelles sont de plus en plus répandues et favorisent la gestion, sous forme électronique, des objets habituels utilisés par les organisations tels que les dossiers, les moyens de paiement et le courrier. Le déroulement des traitements est dépendant de l'utilisateur.

Les applications transactionnelles sont utilisées pour l’automatisation de transactions telles que la consultation, la création, la mise à jour ou la suppression d’un dossier géré sous forme magnétique.

Ce type d’application est basé sur la notion de processus interactif impliquant un dialogue entre l’utilisateur et l’application mise en œuvre dans le cadre de ce processus. Généralement, ce dialogue a pour but de s’assurer que les données fournies à l’application seront syntaxiquement correctes. Un dialogue spécifique de correction des erreurs remplace le fichier des anomalies utilisé dans les traitements par lots.

Page 14: Technologies logiciels - Généralités

Les applications

page 14 Toute reproduction même partielle interdite IGPDE

Une aide à la saisie et, en particulier, à la résolution des erreurs détectées doit être prévue et spécifiée dès le développement de ce dialogue. L’utilisation de contrôles sur la validité des données saisies, par rapport à leur type (numérique ou caractère, par exemple), et sur la cohérence entre rubriques, la fourniture d’une aide en ligne, accompagnant la saisie et la conception de messages d’erreurs explicites sont des facteurs d’amélioration de la qualité de ces applications.

Un fichier de journalisation mémorise toutes les opérations réalisées. Il permet de retrouver une image cohérente des données dans le cas où une transaction n’aboutirait pas.

Une application transactionnelle peut être décrite de la manière suivante :

La définition du dialogue entre l’opérateur humain et l’ordinateur doit faire l’objet d’une attention particulière. Elle doit prendre en compte les règles de définition des interfaces statiques (visibles à l’écran ou dans une fenêtre) et dynamiques (concernant l’enchaînement des écrans ou des grilles de saisie).

On trouve également dans cette catégorie des applications faisant appel à des algorithmes très complexes, tels ceux dédiés à l’analyse statistique. La prépondérance de l’effort de calcul, par rapport au faible volume de données, inciterait plutôt à les classer dans la catégorie des applications orientées vers les traitements, mais leur principal but est de traiter des informations issues du domaine de la gestion.

2. LA PORTABILITE DES APPLICATIONS

La diversité des architectures matérielles et des systèmes d'exploitation pose le problème général de la portabilité des logiciels.

La définition de la portabilité est donnée par la norme NF ISO/CEI 9126 267-133 de 1992 :

"un ensemble d'attributs portant sur l'aptitude du logiciel à être transféré d'un environnement à l'autre, l'environnement pouvant être organisationnel, matériel ou logiciel".

Mise à jour du fichier P-CLIENT Fichier

P-CLIENT

Compte rendu

d'exécution

Saisie / consultation

SCHEMA DE LA PHASE INTERACTIVE

Fichier de

journalisation(LOG)

Page 15: Technologies logiciels - Généralités

Les applications

Toute reproduction même partielle interdite IGPDE page 15

Cette définition, bien vague, recouvre des problèmes conceptuels et techniques qui n'ont pas de solutions définitives et absolues. Si le but à atteindre est évident, les problèmes, les moyens et les solutions sont mal identifiés car trop fréquemment dépendants du logiciel concerné.

La portabilité des applications (et des logiciels) est un facteur économique majeur de l'industrie informatique et les méthodes permettant de l'obtenir représentent un acquis fondamental du génie logiciel. Au sein de tout organisme, le problème de la portabilité se pose avec acuité car il est à présent rare qu'il se contente d'un seul constructeur, de ses machines et de ses systèmes d'exploitation propriétaires.

Il importe donc que les applications développées dans tout organisme ou acquises par lui soient portables. De même, pour toute société désirant commercialiser un logiciel de sa conception, la rentabilité de son développement et de sa commercialisation suppose la portabilité.

Pour les constructeurs, l'effet induit est une uniformisation obligée de leurs gammes de machines et de leurs systèmes d'exploitation. L'AUA (Architecture Unifiée d'Applications) du constructeur IBM, est un exemple typique de cette approche puisqu'elle propose un ensemble d'outils, de langages et de services disponibles sur une gamme complète d'ordinateurs.

Les développeurs, quant à eux, sont conduits à utiliser des méthodes permettant à leurs programmes de s'exécuter dans des contextes variés.

Ce chapitre abordera la portabilité des logiciels tant du point de vue technique de la programmation et des langages que de celui plus méthodologique de l'organisation du logiciel et de son développement.

2.1. Les facteurs de la portabilité des applications

La portabilité n'est pas liée à l'application mais induite par la conception et la mise en œuvre du logiciel. Le choix d'un langage et de méthodes de programmation en fonction des contraintes de l'application est déterminant. Une bonne organisation des programmes et les principes respectés durant le développement détermineront le degré de portabilité. Si la phase de conception inclut des objectifs de portabilité, d’autres facteurs influent sur la portabilité.

La dépendance du logiciel par rapport à un système d'exploitation ou à un matériel donné est un facteur pouvant en restreindre la portabilité. Elle résulte souvent d'un choix volontaire.

Un logiciel de simulation avec images de synthèse peut nécessiter un type d'écran particulier disponible uniquement sur une machine donnée et son système d'exploitation. La portabilité n'est pas recherchée et l’objectif est de tirer parti des caractéristiques de l'architecture.

Ce type de logiciels a une fonction particulière dans un domaine précis et les critères de portabilité y ont peu d'importance car les systèmes informatiques sont dédiés à des domaines spécifiques tels que l’aéronautique, les systèmes de simulation, le contrôle de centrales nucléaires, le pilotage de machines, ...

Pour des raisons d'économie ou d'efficacité, on utilise des outils particuliers à un système, par exemple les fonctions de gestion d'écran. Dans ce cas, c'est la portabilité de l'interface utilisateur qui est perdue. Souvent, le défaut de portabilité induit concerne les interfaces à travers les méthodes d'accès aux périphériques. Cela ne remet pas fondamentalement en cause la portabilité du logiciel.

Page 16: Technologies logiciels - Généralités

Les applications

page 16 Toute reproduction même partielle interdite IGPDE

Une conception modulaire des programmes (cf. ci-après) permet de minimiser l'impact de cette dépendance en isolant les fonctions non portables. Porter le logiciel sur un autre système revient à remplacer ces modules par d'autres.

Enfin, les systèmes d'exploitation récents tendent à supporter autant que possible des outils natifs d'autres systèmes afin d'amener les développeurs d'application à effectuer, à un coût peu élevé, un portage leur offrant un nouveau marché.

Un facteur commun entravant la portabilité d'un logiciel est sa dépendance vis-à-vis d'outils existants et nécessaires à son fonctionnement. C'est le cas par exemple de l'utilisation des systèmes de gestion de bases de données. Cependant, ce type d'outils subit généralement un processus d'uniformisation de ses interfaces jusqu'à l'obtention d'une norme. On observe des stratégies de commercialisation basées sur la normalisation de leurs interfaces de programmation ou du langage d'accès.

De ces remarques préliminaires, il ressort que la portabilité totale d'une application (d'un logiciel) est une qualité pratiquement impossible à obtenir. Un logiciel peut être plus ou moins portable, c'est-à-dire que son portage demandera plus ou moins d'efforts selon les choix qui ont présidé à sa conception et les méthodes qui ont été utilisées pour son développement.

2.2. Effectuer les choix adaptés

Lors de la conception d'un logiciel, il importe de faire les bons choix et d'utiliser des méthodes de programmation et de développement permettant d'accroître son degré de portabilité. Résumons-les avant d'y revenir de manière plus détaillée : ♦ le choix des plates-formes visées : tous les logiciels n'ont pas besoin d'être disponibles sur

toutes les architectures et sur tous les systèmes d'exploitation ; ♦ le choix du niveau d'intégration dans le système : en fonction de certaines contraintes,

généralement de performances, il peut être nécessaire d'utiliser les fonctions particulières d'un système d'exploitation ;

♦ le choix des outils : une application utilise souvent des outils logiciels et il est important de bien les choisir ;

♦ les méthodes de développement : dans cette catégorie, on retrouve les aspects techniques du génie logiciel : choix des langages, du style de programmation, organisation des programmes, architecture du code exécutable.

Alors que les trois premiers points sont parfois déterminés par l'application, le dernier point se révèle crucial car il s'agit de méthodes pouvant être appliquées à toute réalisation.

2.2.1. LES PLATES-FORMES

Une plate-forme désigne une architecture matérielle et son système d'exploitation. Une application (un logiciel) n'a pas toujours de vocation universelle et le nombre des plates-formes sur lesquelles il doit être disponible est à déterminer.

Un développeur peut être amené à cibler un constructeur et l'une de ses gammes. Cela se révélera rentable si cette gamme de matériel possède des caractéristiques matérielles et logicielles communes.

Effectuer un tel choix suppose la pérennité des orientations techniques du constructeur mais aussi une informatisation cohérente de la part des utilisateurs. On peut cibler une gamme surtout si le logiciel est destiné à un secteur informatique bien précis.

Page 17: Technologies logiciels - Généralités

Les applications

Toute reproduction même partielle interdite IGPDE page 17

Dans certains secteurs publics, industriels ou économiques (comme ceux des assurances ou des banques par exemple) il existe de grandes organisations (administrations, entreprises) dont le parc informatique est relativement uniforme.

2.2.2. NIVEAUX D'INTEGRATION

Les systèmes d'exploitation possèdent des particularités à prendre en compte afin d'améliorer les performances ou l'ergonomie d'un logiciel. Ainsi certains gèrent très efficacement les méthodes d'accès direct aux enregistrements d'un fichier (VM/CMS par exemple) alors que certains autres ne supportent pleinement que la méthode d'accès séquentiel (Unix ou OS/2 par exemple).

Utiliser l'accès direct peut rendre le logiciel performant sur le premier type de systèmes mais pas sur le second. Dans cette catégorie, on peut également placer les outils particuliers à un système d'exploitation ou l'utilisation de certaines fonctions typiques du système.

Choisir de restreindre la portabilité à des machines couvertes par un même système d'exploitation permet d'aller loin dans cette voie sans entamer la portabilité recherchée.

Il convient d'être prudent quant à la disponibilité réelle de telles fonctions. Il est courant que les paramètres d'utilisation de la fonction diffèrent sensiblement en haut et en bas de la gamme matérielle.

2.2.3. OUTILS

Il peut être nécessaire, voire intéressant, d'utiliser certains outils qui ne sont pas partie intégrante d'un système d'exploitation. Les gestionnaires de bases de données sont un exemple typique de ce genre d'outils.

Il faut vérifier la disponibilité de l'outil sur tous les systèmes d'exploitation visés sinon la portabilité de l'application sera considérablement affaiblie.

Il faut vérifier les performances de l'outil sur les différents systèmes. Tel outil conçu pour un système d'exploitation donne peut se révéler très peu adapté aux caractéristiques d'un autre.

Finalement, il convient de contrôler les interfaces de programmation de l'outil, c'est-à-dire la description par le détail des appels de programmes qui permettent d'utiliser cet outil. Il est possible que les paramètres de ces programmes diffèrent beaucoup d'un système à l'autre. Dans les cas les plus insidieux, c'est la philosophie même de l'utilisation de l'outil qui peut être changée.

2.3. Méthode de développement

Alors que les choix précédents relèvent du bon sens et de l'information, les principes suivants relèvent de la méthodologie et sont relativement indépendants de l'application.

2.3.1. LANGAGES

Le choix des langages dans lesquels sera développée l'application est très important. Si ces langages ne sont pas portés, l'application ne le sera pas non plus sans une réécriture.

2.3.1.1. UTILISER UN LANGAGE NORMALISE

Une première solution est d'utiliser un langage connu pour sa portabilité.

Page 18: Technologies logiciels - Généralités

Les applications

page 18 Toute reproduction même partielle interdite IGPDE

Il faut prendre garde que les meilleures réputations sont parfois surfaites. Certaines données techniques du langage sont souvent dépendantes de l'architecture matérielle qui les supporte. Ainsi, un entier peut être représenté sur 16, 32 ou 64 bits selon les processeurs. De même, on peut utiliser certaines caractéristiques relatives aux appels de sous-programmes qui ne seront pas universellement respectées par tous les compilateurs.

Si le choix se porte sur un langage existant, il est nécessaire de vérifier les différentes versions du compilateur qui seront utilisées, d'en mesurer les performances et d'en isoler les caractéristiques techniques : format des données, réalisation des appels de sous-programmes, limitations diverses telles que taille des programmes et des sous-programmes, taille de l'espace mémoire adressable, taille des fichiers, etc. En effet, elles peuvent influer sur l'algorithmique utilisée donc sur la portabilité.

Il faut étudier la cohérence des sous-programmes des bibliothèques du langage à travers ses différentes mises en œuvre. Il n'est pas rare que deux sous-programmes devant réaliser la même action diffèrent très peu mais de manière gênante sur deux machines différentes. Ce peut être le cas des fonctions d'accès aux fichiers mais parfois aussi et de manière surprenante le cas des fonctions numériques.

Enfin, le choix doit se porter sur un langage normalisé. La norme est une garantie très forte de la portabilité des programmes écrits dans le langage même si cette garantie ne peut être absolue. Les facteurs limitatifs peuvent rendre un programme non portable.

Il faut négliger les extensions non-standards du langage bien que, très fréquemment, celles-ci existent pour pallier les insuffisances de la norme.

2.3.1.2. UTILISER UNE MACHINE VIRTUELLE

Une approche moins classique du langage consiste en la définition d'un langage conçu spécialement pour l'écriture du logiciel et uniquement pour cela. Un tel langage est, en général, de bas niveau et porte le nom de machine virtuelle ou de machine abstraite car il ressemble syntaxiquement et sémantiquement à un langage d'assemblage conventionnel.

C'est le cas par exemple de la machine virtuelle LLM3 utilisée pour l'écriture du système LeLisp. L'utilisation du langage LLM3 permet le portage du système LeLisp en deux mois avec une équipe très réduite. Pour porter le système LeLisp sur une architecture particulière, il suffit de porter la machine virtuelle LLM3, c'est-à-dire le compilateur du langage LLM3 ciblant le langage d'assemblage de l'architecture.

Une machine virtuelle peut comporter des instructions de très haut niveau décrivant des actions spécifiques à l'application.

Si l'application gère des interfaces utilisateurs, une instruction de la machine virtuelle peut, par exemple, décrire les caractéristiques et l'ouverture d'une fenêtre. Ces instructions peuvent aussi être des structures de contrôle. Lorsque ces structures sont utilisées, le problème principal devient la compilation optimisée.

Les principes peuvent varier d'une architecture à l'autre ; un compilateur ciblant une architecture RISC (Reduced Instructions Set Computer) a une structure différente d'un compilateur visant une architecture plus classique.

Le dernier point concerne la mise en œuvre des machines virtuelles. Les programmes de la machine virtuelle peuvent être compilés en langage d'assemblage pour des raisons d'efficacité. Ils peuvent aussi être interprétés, éventuellement après transformation sous une forme plus accessible. Enfin, ils peuvent être interprétés tout en ayant certaines parties compilées pour des raisons d'efficacité.

Page 19: Technologies logiciels - Généralités

Les applications

Toute reproduction même partielle interdite IGPDE page 19

La raison de ce choix mixte est que le code interprété est en règle générale plus compact mais moins efficace tandis que le code résultat de la compilation devient bien plus rapide mais au prix d'une occupation mémoire pouvant devenir un facteur bloquant.

La technique de la machine virtuelle nécessite un investissement relativement important et des compétences précises en matière de langages, grammaires, interprétation et compilation. Cependant, l'expérience montre que cet investissement réduit d'un ordre de grandeur le temps et la main-d'œuvre nécessaires à un portage.

2.3.2. LA PROGRAMMATION

La programmation regroupe l’ensemble des tâches qui concourent à écrire les programmes et en particulier à utiliser les outils du langage.

2.3.2.1. SOUS-PROGRAMME

Une première règle conseille de factoriser au maximum le code par l'utilisation de sous-programmes qui peuvent être des procédures ou des fonctions. Il est en effet important d'avoir aussi peu que possible de copies d'une portion de code. Et lorsque celle-ci est paramétrable, il est nécessaire d'en faire un sous-programme, pour des raisons de maintenance.

L'effet induit est évidemment positif : plus le code est factorisé, moins il y aura d'occurrences de code susceptibles de devoir être modifiées pour un portage. Un effet négatif est la réduction des performances car l'appel de sous-programme et la transmission de paramètres sont rarement gratuits.

2.3.2.2. MACRO

Une manière de contrer cet effet négatif est d'utiliser des macros.

Une macro est une définition purement syntaxique d'un sous-programme : elle identifie une suite paramétrée d'instructions qui sont recopiées par le compilateur en lieu et place de l'appel au sous-programme.

Beaucoup de langages, tant impératifs qu'applicatifs ou logiques, permettent au programmeur d'utiliser des macros.

Cependant, l'expérience démontre que l'utilisation intensive de macros est génératrice de problèmes et d'ambiguïtés difficiles à identifier. En effet, le programme tel qu'il a été écrit et tel que le programmeur peut le relire n'est pas une image fidèle du programme qui est compilé ou interprété. Il est donc préférable de réserver les macros à l'identification de portions de code simples et relativement courtes.

2.3.2.3. OUTILS DE HAUT NIVEAU

Un deuxième principe généralement admis en programmation est d'utiliser, autant que faire se peut, les outils programmatiques de très haut niveau du langage à condition qu'ils soient standards et, de préférence, normalisés. Ces outils sont, par exemple, les échappements du langage C (setjmp/longjmp) ou ceux similaires du langage Lisp.

Réaliser un échappement signifie retourner à un point préalablement et dynamiquement désigné du calcul en cours. En théorie, le calcul reprend à ce point comme si rien n'avait eu lieu.

Les programmes d'ordre supérieur sont un autre outil de haut niveau, ce sont des sous-programmes admettant d'autres sous-programmes en paramètres : pointeur sur des procédures ou des fonctions en langage C, fonctionnelle du langage Lisp ou métaprédicat de Prolog.

Page 20: Technologies logiciels - Généralités

Les applications

page 20 Toute reproduction même partielle interdite IGPDE

L'utilisation de tels outils, à l'instar des "intouchables "goto"", permet de simplifier le code et de le rendre compact. Mais il ne faut pas négliger le fait que ces outils soient basés sur des mécanismes parfois difficiles à comprendre et à maîtriser tant pour le programmeur que pour celui qui les a mis en œuvre dans un langage particulier.

L'exemple des échappements est, à ce titre, significatif.

Les outils de très haut niveau posent des problèmes de portabilité et de compatibilité pour ceux qui mettent en œuvre les langages. Leur utilisation requiert une grande maîtrise et une excellente compréhension de leurs sémantiques, surtout si plusieurs de ces outils sont utilisés conjointement. La tentation peut être grande de négliger ces outils.

De la même façon qu'il peut être plus facile de se dispenser de la recherche d'un bon test d'arrêt dans une boucle par l'utilisation d'un "goto" bien placé, il est aussi facile de se dispenser des outils de haut niveau par des artifices de programmation qui n'utilisent que les éléments de base du langage.

En agissant ainsi, on accroît la portabilité du logiciel mais au prix d'une complexification des programmes.

2.4. Organisation des programmes

Un des objets du génie logiciel est l'organisation des composants d'un logiciel. Le mot clé est modularité.

Pour faciliter le portage, les programmes doivent être logiquement organisés en couches hiérarchisées et physiquement disposés en modules. Différentes méthodes de développement, qu'elles soient fonctionnelles ou orientées objet, permettent d'atteindre ces caractéristiques.

2.4.1. COUCHES LOGICIELLES

Dans une organisation logique en couches hiérarchiques des programmes, les programmes d'une couche n'utilisent comme sous-programmes que les programmes de la couche elle-même et ceux des couches inférieures.

Si nous prenons l'exemple classique des interfaces graphiques d'un système, nous savons que le système repose sur l'utilisation d'éléments périphériques tels que l'écran, le clavier et la souris. Ces éléments sont physiques. La manière dont on y accède est très dépendante du matériel. L'accès à ces éléments formera donc la première couche appelée GPI (Graphic Programming Interface).

Puis la réalisation du système d'interface graphique formera une deuxième couche utilisant les programmes de la première couche. Cette deuxième couche appelée API (Application Programming Interface) contiendra des programmes qui peuvent être utilisés par toute application.

Plus une couche est basse, moins elle est portable.

Porter une application construite en couches revient alors à porter les couches les plus basses jusqu'à atteindre une couche qui ne soit dépendante ni de l'architecture ni du système d'exploitation. L'organisation logique en couches permet une identification aisée des sous-programmes qui doivent être modifiés lors du portage de l'application.

Page 21: Technologies logiciels - Généralités

Les applications

Toute reproduction même partielle interdite IGPDE page 21

2.4.2. MODULES

A l'intérieur d'une couche, les programmes doivent être physiquement disposés en modules.

Un module est un composant logiciel défini par une interface de programmation et dont le code est inaccessible au programmeur qui utilise le module pour développer son application.

La spécification de l'interface décrit quels sont les sous-programmes du module accessibles aux programmeurs, comment les utiliser et quelles sont leurs fonctions et cela indépendamment de leur mise en œuvre.

Un module est également une entité fonctionnelle conçue pour couvrir les besoins dans un domaine précis. Un module pourra, par exemple, être spécifiquement conçu pour permettre des accès aux enregistrements d'une base de données particulière.

Dans le Graphic Programming Interface de notre exemple, un module peut contenir les fonctions de gestion de la souris, un autre les fonctions d'affichage élémentaire, un autre les fonctions de consultation du clavier, etc ...

Si l'on désire remplacer l'écran de l’ordinateur, le portage de l'application est réalisé par le remplacement du module Ecran dans la première couche logique. Une organisation aussi idéale du point de vue des portages peut avoir des aspects négatifs.

Si les interfaces de programmation définissant les modules peuvent être abstraites, certaines limitations sont souvent imposées par les systèmes et les architectures. Le concepteur est alors obligé, pour respecter le schéma en couches, de ne considérer que les conditions les plus limitatives.

Dans notre exemple, si nous désirons que notre application soit utilisée sur une gamme d'écrans, nous devons considérer l'écran à la résolution la plus faible et à la palette de couleurs la moins étendue. Les programmes ne sauront utiliser toutes les possibilités des écrans haut de gamme, au risque de dévaluer l'application.

Le discours idéaliste doit donc être tempéré car certaines parties de l'application peuvent dépendre étroitement des couches basses et des modifications doivent parfois être apportées dans les couches hautes. Ainsi, un masque de saisie qui tient physiquement en une seule fenêtre sur un écran de grande taille et à la résolution très fine peut devoir être réparti sur deux fenêtres lorsque l'écran est de petite taille.

2.4.3. GESTION DES CONFIGURATIONS

La programmation modulaire est un acquis du génie logiciel dont la réalisation est supportée par les gestionnaires de configurations tels que CVS sous Unix, Change Man sous MVS ou CMS sur VAX/VMS .

Un gestionnaire de configuration est indispensable lorsque l'on désire gérer le code d'une application devant être exécutée dans plusieurs environnements. Il assure le choix et l'assemblage des composants logiciels (les modules) en fonction de la plate-forme visée (architecture et système d'exploitation) et de la version demandée du logiciel.

Il garantit la cohérence du logiciel construit.

Page 22: Technologies logiciels - Généralités

Les applications

page 22 Toute reproduction même partielle interdite IGPDE

2.5. L'architecture du code exécutable

Le développement très rapide des réseaux et de l'informatique répartie ou distribuée apporte une contribution significative à la problématique de la portabilité. L'efficacité des réseaux locaux est telle qu'il est rarement nécessaire que l'utilisateur d'une application doive exécuter cette application sur son propre poste de travail.

Une architecture intéressante du point de vue de la portabilité est l'architecture client-serveur. Le cœur de l'application est exécuté sur un certain type de plates-formes (les serveurs) alors que l'interface utilisateur peut être exécutée sur d'autres types de plates-formes (les clients), les différentes plates-formes étant reliées par un réseau. Seuls l'interface utilisateur et le protocole de communication entre la plate-forme utilisateur et les plates-formes d'exécution doivent être portés sur les architectures clientes.

Cela suppose, bien entendu, une organisation matérielle à base de postes de travail disposés en réseau. Ce type d'organisation est de plus en plus courant. On peut alors schématiser la configuration matérielle et logicielle ainsi : deux machines (A et B) supportent l'exécution du corps de l'application tandis que les quatre autres machines (C, D, E et F) sont des postes de travail intelligents gérant l'interface avec les utilisateurs de l'application.

Les architectures client-serveur amènent le problème de l'intégration de nouvelles machines clientes sur un réseau existant. Il existe des outils permettant de porter les interfaces et qui supportent les principaux environnements : Windows, OS/2-PM, Motif, Open Look, DEC Windows ... Le même type d'outils équipe la gamme AUA d'IBM.

En utilisant ces progiciels, le portage peut dans les meilleurs cas être réalisé sans réécriture de code, l'outil se chargeant de la totalité du portage. Parfois ces outils dispensent même le programmeur du développement de la gestion du réseau.

Dans le schéma client-serveur, le corps de l'application est exécuté sur la machine serveur tandis que seule l'interface utilisateur est exécutée sur la machine cliente. Ce n'est pas une nécessite et l'un des problèmes qui se posent souvent aux concepteurs de telles architectures est celui de la répartition des traitements entre les deux machines. Certains outils tels Uniface et Supernova permettent également l'indépendance de la programmation par rapport aux bases de données en assurant la portabilité des programmes d'accès à ces bases.

2.6. Conclusion

La portabilité d'un logiciel ne relève pas d'une technique bien formalisée. Le bon sens et la recherche d'information guident le développeur dans les choix préalables.

Savoir quel niveau d'intégration dans le système d'exploitation est possible ou bien quels sont les outils externes à utiliser est le résultat d'une étude sérieuse pour éviter les déconvenues.

Le choix des langages est un élément clé.

La machine abstraite représente une solution lorsque le logiciel développé est appelé à vivre longtemps. Mais cette technique demande des compétences et des moyens importants. Dans le cas contraire, le langage normalisé est alors un bon choix.

Il faut également tenter de respecter des techniques de programmation propres et d'organiser soigneusement son code. L'expérience démontre que les impasses en ce domaine se révèlent toujours coûteuses lors des portages du logiciel.

Page 23: Technologies logiciels - Généralités

Les applications

Toute reproduction même partielle interdite IGPDE page 23

Enfin, il peut être intéressant de rechercher sur le marché des outils de génération de code qui garantissent la portabilité des modules de l'application qui auront été construits de cette manière.

Mais en fin de compte, le facteur le plus limitatif de la portabilité des logiciels est la pression sans cesse exercée sur les équipes en charge de la conception et du développement.

"Concevoir portable" nécessite une bonne information et beaucoup de réflexion. Or, les délais préalables sont toujours trop courts pour permettre cela.

Par ailleurs, les impératifs de calendrier et de performances dont les origines sont le plus souvent commerciales et politiques interdisent malheureusement une conception portable des applications. Les objectifs de rentabilité immédiate prennent trop souvent le pas sur les investissements à plus long terme que nécessite la portabilité.

3. L'INTEROPERABILITE DES APPLICATIONS

La construction des systèmes d’information s’est faite progressivement, en satisfaisant à chaque étape à des besoins fonctionnels nouveaux ou complémentaires à l’existant. Si au début des opérations d’informatisation, chaque système était dédié à un ensemble distinct, les applications ont de nos jours besoin de communiquer, d’échanger des données.

Aujourd'hui, la complexité et l'extrême diffusion des systèmes informatiques (ubiquitous computing) autant que l'environnement économique compétitif à l'extrême rendent nécessaire le développement d'architectures logicielles supportant des applications hétérogènes tant dans les modèles d'informations traitées que dans les modes d'échange et de coopération.

L'interopérabilité des applications (ou la communication inter-applicative) regroupe l'ensemble des moyens mis en œuvre afin de faire coexister des applications conçues indépendamment les unes des autres, sur des technologies hétérogènes. De plus ces applications possèdent bien souvent leur propre cycle de vie, c'est-à-dire une évolution à leur propre rythme pour répondre aux besoins de leurs utilisateurs et pour intégrer les nouvelles technologies de l'informatique.

Remarque :

L'interopérabilité peut être définie comme l'aptitude de deux ou plusieurs systèmes (logiciels ou matériels) à fonctionner ensemble en utilisant des standards communs.

L'interopérabilité des applications peut être réalisée de différentes façons : ♦ à l'aide d'un développement spécifique dans chaque application. Ceci représente un travail

important de réalisation. ♦ Une autre manière consiste à mettre en place un middleware qui assure l'interopérabilité pour

toutes les applications via des interfaces. Cela constitue plutôt la tendance actuelle afin de limiter les développement et assurer une meilleure souplesse.

♦ Une troisième solution consiste à utiliser une plate-forme EAI (Enterprise Application Integration - "intégration des applications d'entreprise") qui offre à la fois des solutions et des méthodes destinées à assurer l'intégration des différentes composantes du système d'information.

Page 24: Technologies logiciels - Généralités

Les applications

page 24 Toute reproduction même partielle interdite IGPDE

3.1. Les développements spécifiques : les applications interfaces

La mise en place d'interfaces spécifiques (point à point entre deux applications, ou deux système d'information) nécessite la définition et de développement de structure de données accompagnées de traitements de contrôle.

Pour qu’elles soient intelligibles par les systèmes émetteur et récepteur, la mise en forme des données nécessite la mise en œuvre de protocoles d’échange de données qui permettront le dialogue entre applications.

Soient deux applications "A" et "B". Ce dialogue s'articule autour d'une interface dite "sortante" (de application "A" vers "B") et éventuellement (selon les besoins de communication) "entrante" entre "B" et "A".

De telles solutions peuvent se présentées dans divers domaines : ♦ entre un système informatique existant (et relativement ancien) et une nouvelle application (un

logiciel de gestion de la relation client par exemple) ; ♦ ou dans le domaine des échanges de données informatisées (EDI), par exemple pour la

transmission de messages économiques, tels que les factures, les catalogues et les moyens de paiement.

3.2. Les middlewares (intergiciels)

Plutôt que d'agir directement sur les applications par le développement de traitements spécifiques, une autre manière d'envisager l'interopérabilité des applications consiste à faire appel à une couche logicielle intermédiaire. Les middlewares, ou "les logiciels du milieu" (que l'on traduit par "intergiciels") apportent aux applications les services d'interopérabilité.

3.2.1. DEFINITION

Un middleware peut être défini comme l'ensemble du logiciel qui, dans une architecture Client/Serveur, réside entre le client ou le serveur et le système d'exploitation des plates-formes sur lesquelles il s'exécute. Le middleware a pour objectif de rendre l'environnement physique transparent et sans objet pour les applications. Dans un tel environnement, on ne voit plus que des réseaux : on n'adresse plus des plates-formes mais des services, des données, des objets.

Le middleware s'inscrit complètement dans la dynamique des systèmes ouverts avec ses deux principes fondamentaux : ♦ Portabilité des applications: celle-ci est possible à travers des API (Application Programming

Interface). Une API est un ensemble de commandes paramétrables à insérer dans un programme pour permettre au client d'accéder à un service sur un serveur. Elle permet d'accéder au middleware ;

♦ Interopérabilité des applications : celle-ci est possible à travers un protocole qui est constitué d'un ensemble de règles de communication. Ces règles assurent le dialogue entre un middleware client et un middleware serveur.

3.2.2. LES TYPES DE MIDDLEWARE

Il existe trois grands types de middleware :

Interface "sortante"

Interface "entrante"

Application "A" Application "B"

Page 25: Technologies logiciels - Généralités

Les applications

Toute reproduction même partielle interdite IGPDE page 25

♦ MOM (Message Oriented Middleware) ; ♦ MOT (Message Oriented Transaction) ; ♦ MOO (Message Oriented Object).

3.2.2.1. LE MOM

Les middlewares MOM sont orientés "donnée". Ils véhiculent les données entre les applications : les échanges entre les applications se font à travers les données. Il s'appuie sur un serveur de messages et réalise ainsi de la messagerie inter-applicative. Tout le problème consiste à gérer les files d'attente et à assurer la transparence des données entre les applications.

Parmi les produits du marché, on peut citer: MQS (IBM), Flowbus (Bull), règle du jeu (SOPRA), MSQ (Microsoft) ou encore Rendezvous de Tibco ...

3.2.2.2. LE MOT

Les middlewares MOT sont de type traitement. Ils réalisent les échanges entre les applications au travers de transactions. Ils s'appuient sur un moniteur transactionnel et réalisent ainsi un dialogue entre transactions distribuées. Celui-ci peut être : ♦ à deux niveaux (2LTP). Dans ce cas, deux moniteurs transactionnels communiquent, mais l'un

d'entre eux est considéré comme un terminal. La mise à jour des données est entièrement à la charge de l'autre transactionnel. Cela revient à un système centralisé.

♦ coopératif (CTP). Les deux transactionnels sont au même niveau et se synchronisent l'un par rapport à l'autre. Chacun doit assurer la mise à jour des données avec possibilité de journalisation.

♦ distribué (DTP). Plusieurs transactionnels peuvent communiquer entre eux et des mécanismes permettent d'assurer la synchronisation et la mise à jour des données avec possibilité de journalisation.

Parmi les produits du marché, on peut citer Tuxedo (BEA), CICS (IBM), TDS/TP8 (Bull), MTS (Microsoft).

3.2.2.3. LE MOO

Les middlewares MOO sont de type objet. Ils Les MOO organisent les échanges entre les applications au travers des objets. Ils s'appuient sur une architecture à objets distribués et réalisent ainsi un dialogue entre objets distribués Celle-ci est caractérisée par un modèle objet, des composants objets et des services.

Parmi les produits du marché, on peut citer: COM (Microsoft) et les différentes implémentations de CORBA (OMG) : Orbix, Visiobroker, Tuxedo (BEA), CICS (IBM), TDS/TP8 (Bull), MTS (Microsoft).

4. L'INTEGRATION D'APPLICATION (EAI - ENTERPRISE APPLICATION INTEGRATION)

Les middlewares ne représentent en fait que le premier étage d'une offre d'EAI.Il s'agit de gagner en souplesse et de baisser les coûts de maintenance des interfaces inter-applicatives.

Pour répondre à ce besoin d'interopérabilité, les différents protagonistes du logiciel (consortium ou de grands groupes) ont apporté diverses techniques cherchant à améliorer l'interopérabilité des systèmes distribués aussi bien au niveau des modèles de conception, des formats d'échange de données que des intergiciels à l'exécution.

Page 26: Technologies logiciels - Généralités

Les applications

page 26 Toute reproduction même partielle interdite IGPDE

EAI signifie Enterprise Application Integration, ce que l'on pourrait traduire par "intégration des applications d'entreprise". Les éditeurs qui affirment oeuvrer dans le domaine de "l'EAI" proposent donc des logiciels pour instaurer des échanges entre des applications qui n'ont jamais été conçues pour s'entendre.

L'abréviation "EAI" désigne autant une offre logicielle que les projets d'intégration d'applications. De plus en plus, on a tendance à parler de "projets EAI" pour désigner des intégrations assez complexes, entre une nouvelle application (un logiciel de gestion de la relation client par exemple) et un existant informatique.

Les industriels proposent aujourd'hui différentes réponses en terme de concepts (composants, infrastructures), de technologies (langages intermédiaires, conteneurs, services Web), de services (persistance, transactions, sécurité, courtage) mais aussi de modèles (nomenclatures), voire des métamodèles avec la démarche Model Driven Architecture (MDA).

5. LA DISTRIBUTION DES APPLICATIONS (APPLICATIONS DISTRIBUEES)

La tendance est d'aller vers une informatique distribuée pour bénéficier des possibilités apportées par l'évolution des technologies en particulier au niveau des postes clients, des serveurs et des réseaux. Tout ceci s'inscrit dans le cadre de l'interopérabilité des applications. La distribution des applications s'inscrit naturellement dans le cadre des architectures distribuées.

Dans ce domaine, il existe plusieurs possibilités d'architectures, avec pour chacune des spécificités qui répondent à des besoins particuliers faisant appel à différentes techniques que nous allons décrire ci-dessous.

5.1. L'origine de l'architecture client-serveur

Les années 70 et 80, que ce soit sur terminaux ou sur PC, n'offraient que des interfaces en mode caractère (saisie au clavier). L’architecture client-serveur fut une évolution majeure de l’informatique pour deux raisons : ♦ une interface graphique (sur le pixel) plus conviviale permettant à l’utilisateur un apprentissage

plus aisé des applications qui lui sont fournies ; ♦ une amélioration considérable de la productivité des développeurs liés aux outils de

développement proposés qui ont permis d’offrir une plus grande réactivité aux entreprises dans la mise en service de ses nouvelles applications. Ce qui demandait des mois, voire des années de développement en Cobol pouvait être mis en service en quelques mois, et de plus avec une interface graphique plus conviviale et donc plus intuitive pour l’utilisateur.

Avec une manipulation plus conviviale des applications, sans perdre les avantages des applications "caractère", ces interfaces ont, dans un premier temps, été freinées par une complexité d'utilisation accrue, et bien entendu, par des postes utilisateur pas toujours à la hauteur en termes de performance (mémoire et puissance insuffisantes).

Mais assez rapidement (dès le début des années 90) les nouveaux projets se sont majoritairement orientés vers l'architecture client-serveur, alors qu'une partie du parc applicatif a commencé à migrer du mode caractère vers le client-serveur.

Page 27: Technologies logiciels - Généralités

Les applications

Toute reproduction même partielle interdite IGPDE page 27

Bien avant l’arrivé du navigateur Web sur le poste client, sont apparus des produits dits de "deuxième génération" dont les traitements n’étaient plus positionnés sur le client mais centralisés sur un serveur intermédiaire tel que l’ont peu le voir aujourd’hui avec des serveurs d’applications comme WebLogic de Bea ou WebSphere d'IBM. Le fer de lance de la deuxième génération avait pour nom l'éditeur Forte dont l'offre est aujourd'hui maintenue par Sun. Ces produits ont comblé une partie des lacunes de la première génération, notamment multi-plateforme, architecture distribuée, programmation objet.

En fait, même les produits de seconde génération n’ont pas eu le succès auquel ont pouvait s’attendre, en grande partie à cause d’une complexité de mise en œuvre très structurante (notation UML, programmation objet, architecture distribuée).

Or les clients étaient habitués à une mise en œuvre rapide d’applications (d’où l’arrivé de méthodes de type RAD), et c’est ce qu’ils ont retrouvé dans les développements adossés aux technologies Intranet.

5.2. L'architecture client-serveur "effacée" par l'architecture Web

A peine l'architecture client-serveur s'est-elle répandue qu'elle fut remise en question par l'arrivée d'une nouvelle technologie : le Web.

Sans apport d'un point de vue fonctionnel, c'est surtout grâce à sa standardisation qu'Internet a réussi à aller au-delà de sa vocation originelle et a pu percer dans un domaine où on ne l'attendait pas : la gestion informatique.

Des développements adossés aux technologies Internet/Intranet répondaient aux exigences des maîtrise d'ouvrage : moins de contraintes, une plus grande rapidité de mise en œuvre, une centralisation des traitements et un client ... enfin "léger".

En quelques années, l'architecture Web a pris le pas sur le client-serveur, reléguant aux oubliettes une technologie qui n'a même pas eu le temps de s'imposer massivement et durablement dans les entreprises. Pourtant, un rapide étude comparative des mérites respectifs de ces deux architectures n'est pas dénuée d'intérêt …

L'architecture Web s'apparente en effet aux applications mainframe, le poste de l'utilisateur faisant quasiment office de terminal passif. L'architecture client-serveur classique, ou client-serveur de données, est à l'inverse fondée sur la présence des applications sur le poste des utilisateurs.

Passons sous silence les architectures "hybrides", qu'il s'agisse du client-serveur dit "de seconde génération" ou des applications graphiques Java multi-niveaux arrivées un peu plus tard et qui n'ont pu s'imposer en cumulant les écueils de chacune des approches.

Page 28: Technologies logiciels - Généralités

Les applications

page 28 Toute reproduction même partielle interdite IGPDE

En synthétisant les expériences de ces dernières années, on peut relever les éléments suivants pour chacune des architectures :

Point forts de l'architecture Web Points forts de l'architecture client-serveur - Déploiement - Cinématique - Cible utilisateur élargie - Accès distant - Gestion centralisée - Intégration de l'existant - Evolutivité de l'architecture - Standardisation des traitements - Pérennité - Réutilisation

- Richesse de l'interface graphique - Dialogue avec applications clientes - Saisie de masse, saisie complexe - Disponibilité au niveau application - Sécurité - Impressions - Maturité des solutions - Maîtrise des applications

Les deux architectures, fondamentalement différentes, ne répondent pas aux mêmes besoins. Pour cette raison, il paraît un peu hâtif d'enterrer le client-serveur qui présente toujours des atouts conséquents pour les applications mettant en œuvre des problématiques fortes de saisie, d'impression ou qui doivent présenter des capacités graphiques évoluées.

Sans aucun doute, l'arrivée du Web, et plus généralement des applications multi-canaux, a permis la refonte de systèmes d'informations composés d'applications mode caractère et client-serveur, et la mise en place de nouveaux types d'application (sites institutionnels, applications B2C, portails d'entreprise...).

Mais il reste des contextes particuliers où les technologies Web se révèlent trop inadaptées, où la migration n'est pas envisageable.

Dans ces cas de figure, généralement dans les situations où la productivité constitue un facteur déterminant pour la réussite du projet, le client-serveur reste la solution la plus à même de répondre au mieux aux attentes des entreprises. Même s'il ne s'agit pas de l'architecture la plus récente …

5.3. Les architectures applicatives "Web-to-Host"

Les solutions de Web-to-host sont constituées par l'ensemble des procédés qui permettent d'accéder depuis un navigateur Web à des ressources (applications, données, etc.) hébergées sur un ordinateur central (mainframe) d'entreprise.

Ces outils ouvrent des passerelles entre applications trois-niveaux et systèmes centraux d'entreprise. Deux types de solutions qui s'appuient sur des technologies pour le moins différentes.

Les premières, qui ont pris leur essor suite à l'émergence du client/serveur puis du Web, inaugurent la structuration des applications en couches (interface client/logique applicative/accès aux données) et l'exploitation d'un modèle relationnel de structuration des données.

Les secondes se composent généralement de programmes d'ancienne génération (principalement en langages Cobol et Fortran) dont les contenus sont le plus souvent stockés au sein de bases hiérarchiques, le tout accessible par le biais de postes de travail propriétaires.

Page 29: Technologies logiciels - Généralités

Les applications

Toute reproduction même partielle interdite IGPDE page 29

5.3.1. FONCTIONNEMENT DE CES TECHNOLOGIES

Les dispositifs de Web-to-host mis au point à l'origine se connectent aux grands systèmes en passant par les écrans verts de ces derniers.

A la manière de simples utilisateurs, ils commencent par renseigner les champs de saisie des interfaces en question en fonction des requêtes Web qui leur sont adressées. Ils analysent ensuite les chaînes de caractères constituant la réponse, avant de les traduire au format HTML (ou XML). Ces middleware d'intégration sont comparables à des "passe-plats" liant deux univers technologiques.

5.3.2. LES GRANDS DOMAINES D'APPLICATION

On compte principalement trois catégories de projets de Web-to-host : ♦ la publication dans des formats Web de documents en provenance d'un système central

d'abord, ♦ l'invocation de bases de données hiérarchiques ensuite, ♦ et enfin l'ouverture depuis un serveur d'applications de connexions interactives avec des

logiciels sous mainframe.

Confrontée à cette triple problématique, la méthode du Web-to-host a donné naissance à plusieurs sortes d'outils, dont le plus populaire est sans doute le "traducteur" d'applications en mode Web (nouvelle interface, alternative à "l'écran vert").

Mentionnons également les émulateurs (d'écrans verts) pour postes PC - le plus souvent basés sur des machines virtuelles Java, et enfin l'utilisation du Web-to-host comme moyen d'intégration inter-applicative (des applications Web sont construites à partir de diverses applications existantes sur systèmes centraux).

5.3.3. L'APPORT DES TECHNOLOGIES XML ET LES WEB SERVICES

XML et les Web Services fournissent une technologie d'intégration non-intrusive qui pourrait offrir une alternative plus qu'intéressante aux mécanismes de Web-to-host (décrits ci-dessus). Mais encore faudrait-il que les systèmes actuellement en production soient mis à jour en ce sens. Ce qui est loin d'être le cas chez la plupart des utilisateurs qui se recrutent notamment dans les secteurs bancaire, administratifs et industriel.

Une fois cette étape réalisée, parions que le Web-to-host tel que nous le connaissons n'aura plus lieu d'être. L'implémentation des services Web par les environnements centraux nécessite en effet la mise en oeuvre d'un serveur d'applications, une fonction que propose depuis 2001 le système d'exploitation commercialisé par IBM sur ce terrain (zSeries) ...

5.4. Les applications client-serveur sont en voie de disparition

Il est vrai qu'il reste encore un parc installé important d’applications client-serveur en fonctionnement qui remplissent leurs devoirs. Mais elles sont en attente d’une réécriture future ...

Les outils de développements sont apparus à la fin des années 80 ou début 90. Ces produits ont rencontré plusieurs obstacles dans leurs évolutions. Ils n'était pas multi-plateforme (peu ou pas de versions Unix).

Page 30: Technologies logiciels - Généralités

Les applications

page 30 Toute reproduction même partielle interdite IGPDE

Le développement du client lourd (le poste utilisateur) a conduit à une course effrénée vers la puissance du poste client (Intel peut dire merci aux applications client-serveur). Les réseaux ont connu une grosse croissance de leur trafic, liée à des accès peu optimisés aux bases de données.

Enfin, n'oublions pas le problème le plus rédhibitoire pour les grandes entreprises, à savoir la difficile mise à jour des postes clients sur lesquels étaient installées toutes ces applications.

Toutefois les projets fondées sur des technologies de l'ère Internet comme les EJB ont dû mal à s'épanouir.

Tous les éditeurs ont misé sur les serveurs d’applications Java et surtout sur les composants EJB (Enterprise Java Beans), mais l’ont voit encore que les entreprises ont préféré le développement de Servlets ou de JSP (Java Server Pages) bien plus faciles à mettre en œuvre.

Page 31: Technologies logiciels - Généralités

Les logiciels

Toute reproduction même partielle interdite IGPDE page 31

LES LOGICIELS Les logiciels sont conçus pour couvrir des besoins génériques comme par exemple les suites bureautiques (traitements de textes, tableurs ...

Les logiciels ne réalisent que des traitements.

Ils sont commercialisés (sous forme de licence d'utilisation) par des éditeurs.

1. LES LOGICIELS EDUCATIFS

Certains logiciels sont dits éducatifs parce qu'il ont été conçus pour le monde scolaire ou l'éducation en général. En éducation, on distingue plusieurs grands types de logiciels.

1.1. Les didacticiels

Les didacticiels sont des logiciels éducatifs dont le but est d’enseigner un contenu. Jusqu'à l'apparition des CD-Rom, les didacticiels étaient la plupart du temps enregistrés sur des disquettes qu'on pouvait utiliser tel quel, dans certains cas, ou en les installant sur le disque rigide du micro-ordinateur. On distingue quatre types de ces didacticiels : ♦ les exerciseurs : ils présentent une série de questions et de réponses sur une matière donnée

qui servent à répéter des éléments de connaissance ou à développer des automatismes (ex.: Pentathlon intellectuel, Puces numériques) ;

♦ les tutoriels : ils se présentent généralement sous la forme de pages-écrans qui présentent tour à tour les éléments d’une matière donnée ; celles-ci sont suivies généralement de questions et de réponses pour vérifier la compréhension du contenu enseigné ;

♦ les simulateurs : ils visent à simuler une réalité dans une discipline donnée sur laquelle l’usager peut agir par la modification de différentes variables dont les effets s’affichent à l’écran ;

♦ les jeux éducatifs : ils présentent les éléments d‘apprentissage d’une matière donnée sous forme ludique (ex.: Jeux de calcul, Les petites espadrilles, Campagne électorale, Voyage en Nouvelle-France). La plupart des didacticiels se présentent aujourd'hui sous support CD-ROM et la plupart sont maintenant de type multimédia, c'est-à-dire qu'ils comportent du texte, des images, du son, etc.

1.2. Les logiciels à base d’informations

Ce sont des logiciels qui contiennent des informations sur un ou des sujets donnés. Il y en a deux grands types : ♦ les banques de données : elles contiennent des informations stockées dans des champs reliés

entre eux, auxquelles l'utilisateur peut avoir accès, éventuellement à distance, et par des procédés de recherche par rubrique, mots-clefs, etc.

♦ les hypermédias ou multimédias : ce sont des banques de données dont les informations peuvent être aussi bien textuelles, sonores, iconographiques ou vidéographiques qui sont organisées selon un système associatif plutôt que hiérarchique. L'utilisateur les parcourt grâce

Page 32: Technologies logiciels - Généralités

Les logiciels

page 32 Toute reproduction même partielle interdite IGPDE

à un système de navigation à base de boutons qui relient entre elles les informations (Encyclopédie, dictionnaire, etc…).

1.3. Les logiciels bureautiques Quatre types d'application forment la base de la bureautique : ♦ le traitement de texte, ♦ le tableur grapheur, ♦ le gestionnaire de bases de données, ♦ et le logiciel de présentation.

1.3.1. LE TRAITEMENT DE TEXTE

Les traitements de texte les plus connus sont Word (Microsoft), WordPerfect (Corel), Word Pro (Lotus), Mac Write Pro.

Le traitement texte sert à l'élaboration de documents de natures différentes : lettres, rapports, manuels, bulletins, brochures, curriculum vitae, ouvrage littéraire, etc …

Les fonctions très nombreuses permettent de travailler sur un texte et de changer la présentation ou l'apparence d'un document : ♦ saisie et modification de texte ; ♦ organisation des paragraphes ; ♦ mise en forme de pages, de paragraphes, de caractères ; ♦ définition et utilisation de styles ; ♦ création et mise en forme de tableau ; ♦ création et utilisation de modèles de document ; ♦ correction des fautes et du sens du texte.

Le document peut contenir des objets comme des graphiques, des Images, des tableaux, de la couleur, et même des liens .

La mise en forme peut être visualisée à l'écran avant impression. Le document peut être imprimé en un ou plusieurs exemplaires .

Le traitement de texte offre également les fonctions de publipostage (lettres personnalisées pour chaque destinataire) , de création d'enveloppes et d'étiquettes .

Des outils de synthèse automatique, de mise en forme automatique, d'insertion automatique (glossaire, champ, etc.) sont des fonctions courantes.

Les styles définissent l'apparence de plusieurs éléments du texte d'un document, tels que les en-têtes, les légendes et le corps de texte. Les styles facilitent la mise en forme des documents. Appliquer un style, c'est obtenir instantanément l'ensemble de mises en forme de paragraphes et/ou de caractères.

Ils servent aussi de base pour la création des plans et des tables des matières.

Le modèle sert de base à un nouveau document. Il peut contenir du texte, les insertions automatiques, les macros, les barres d'outils , ainsi que les touches de raccourci et les paramètres de menus personnalisés .

Page 33: Technologies logiciels - Généralités

Les logiciels

Toute reproduction même partielle interdite IGPDE page 33

Les tableaux sont utilisés pour structurer les informations et créer des mises en page attrayantes avec, par exemple, des colonnes de texte et de graphismes disposés côte à côte.

1.3.2. LE TABLEUR

Le tableur sert à effectuer des calculs, mais permet également de faire des analyses de données et à présenter des informations chiffrées. Son rôle dominant est la gestion des données chiffrées ou calculées : gestion financière liste de données présentation de valeurs gestion de stock calcul (amortissement, planification, statistiques, etc.).

Les tableurs les plus connus sont: Excel ( MICROSOFT), 1-2-3 (LOTUS), Quattro Pro.

Les fonctions principales d'un tableur sont : ♦ les modifications (ajout, déplacement, copie) de données ; ♦ la mise en forme et la présentation ; ♦ la création de formules de calcul élaborées ; ♦ la création de graphiques de plusieurs types (courbes, secteurs, etc.).

La présentation en liste de données permet de stocker une grande quantité d'informations sous un aspect compréhensible.

Les données sont saisies sur une feuille de calcul sous forme de tableau (lignes, colonnes).

L'intersection d'une ligne et d'une colonne est appelée cellule. Elle peut recevoir une valeur ou une formule de calcul.

Les différents outils du tableur facilitent l'organisation, la gestion, le tri, la recherche de données. Le tableur intègre souvent des fonctions de gestion de base de données.

1.3.3. LE GESTIONNAIRE DE BASE DE DONNEES

En micro-informatique, les bases de données les plus répandues sont: Access (Microsoft), Paradox (Borland), FoxPro (Microsoft) Approach (Lotus), Visual Basic, Clipper, Dbase.

Une base de données sert en principe à manipuler des données, pour gérer des listes, des répertoires, pour faire la gestion d'informations diverses concernant un sujet précis : ♦ présenter des données sous différentes formes (tableaux, formulaires, états) . ♦ stocker et gérer des informations ; ♦ retrouver des informations ; ♦ analyser des volumes de données ; ♦ imprimer les résultats d'une demande sous une forme appropriée.

Le gestionnaire de base de données offre les fonctionnalités suivantes : ♦ conception de bases de données . ♦ protection et administration de bases de données . ♦ création et personnalisation de tables . ♦ création et personnalisation de requêtes . ♦ création et personnalisation de formulaires et d'états . ♦ création et utilisation de macros . ♦ manipulation de données .

Page 34: Technologies logiciels - Généralités

Les logiciels

page 34 Toute reproduction même partielle interdite IGPDE

♦ mise en oeuvre de filtres . ♦ programmation . ♦ aperçus et impressions d'états . ♦ travail sur Internet ou sur un réseau intranet . ♦ conversion de bases de données . ♦ importation et exportation de données . ♦ attachement de tables externes à une base

On constitue une base de données en créant une ou plusieurs fichiers (ou table) de données qui regroupent l'information par sujet précis. Des relations entre les fichiers permettent de fournir les informations cohérentes reprises sur plusieurs fichiers.

Un fichier est constituée de champs et d'enregistrements (colonnes et ligne d'un tableau). Le champ est une catégorie précise concernant le sujet de regroupement. Par exemple : le champ "nom" du fichier des clients.

L'enregistrement est un regroupement de champs concernant un enregistrement du fichier (une occurrence d'une table). Par exemple: le nom, l'adresse, le numéro de téléphone d'un client. On peut comparer un enregistrement à une ligne d'un tableau.

On utilise un formulaire pour insérer des données dans une fichier, les consulter ou les modifier .

On utilise une requête pour afficher, modifier ou analyser les données de différentes manières ou pour les utiliser comme source d'un formulaire ou d'un état.

On applique un filtre aux données afin d'isoler un sous-ensemble d'enregistrements.

Une macro comporte une ou plusieurs actions effectuant chacune une opération particulière (ouverture de formulaire ou impression d'état) . Les macros permettent d'automatiser les tâches habituelles .

Un module est un ensemble de déclarations et procédures associées pour former une unité.

1.3.4. LE LOGICIEL DE GRAPHISME (PRESENTATION)

Un programme de présentation permet de créer, concevoir, organiser des présentations pour des exposés ou des conférences.

La présentation est une succession de diapositives à afficher au fur et à mesure d'un scénario. La diapositive peut contenir du texte mis en forme, des images, des graphiques, des photos, des sons.

Les animations rendent la présentation plus attractive. Des liens hypertextes facilite la navigation entre diapositives. Certains paramètres comme la durée d'affichage, le passage automatique d'une diapositive à l'autre enrichissent le scénario.

Lors de l'affichage, l'outil de pointage (souris ou autres) permet d'inscrire du texte sur la vue présentée, de souligner ou de raturer des zones. Le lancement d'application ou l'accès à des pages HTML font partie des fonctionnalités apportées aux dernières versions .

Les logiciels de graphisme les plus connus sont: Persuasion (ALDUS), Powerpoint (MICROSOFT), Draw Perfect, Harward Graphics, Freelance Graphics.

Page 35: Technologies logiciels - Généralités

Les logiciels

Toute reproduction même partielle interdite IGPDE page 35

Les logiciels de graphisme permettent d'effectuer pour des spectateurs une présentation ou faire un exposé sur un sujet donné en s'appuyant sur une succession de diapositives contenant du texte, des images fixes ou animées et même du son.

Ces logiciels proposent les fonctionnalités suivantes : ♦ création de présentations ; ♦ ajout d'objets, de graphismes, de tableaux ; ♦ utilisation de diapositives ; ♦ programmation de scénarios ; ♦ ajout et mise en forme de textes, de paragraphes ; ♦ vérification orthographique ; ♦ création de pages de commentaires ; ♦ utilisation d'objets, de sons, d'images ; ♦ animation de texte et d'objets ; ♦ minutage des vues ; ♦ masquage de certaines vues ; ♦ ajout de musique, de son, de film ; ♦ ajout de transitions ; ♦ projection de présentations ; ♦ Prise en charge du multimédia et du Web.

Le logiciel de présentation est l'outil du formateur, du conférencier ou du simple amateur de présentation agréable. Pour une présentation multimédia, les périphériques adéquats sont nécessaires.

Pour une présentation à un groupe, l'utilisation d'un projecteur connecté à l'ordinateur est du plus bel effet.

1.4. Les outils complets de la bureautique

Ces ensembles sont sensés fournir à l'utilisateur tous les outils de base. C'est à dire un traitement de texte, un tableur grapheur, un gestionnaire de bases de données. Un logiciel de présentation ou de communication complète la gamme. Si un seul logiciel compose l'ensemble, on parle alors de logiciel intégré.

1.4.1. LES SUITES (OU PACK) LOGICIELLES

Les suites sont constituées de plusieurs logiciels complémentaires et offrent à l'utilisateur un panel des logiciels les plus utilisés en bureautique. Le plus souvent l'offre de l'éditeur est composée d'un traitement de texte, d'un tableur / grapheur, d'un logiciel de gestion de bases de données, d'un logiciel de présentation.

Les suites les plus connues sont: Office (MICROSOFT), SmartSuite (LOTUS), Star Office, Perfect Office

Certaines suites comme SmartSuite de Lotus sont composées d'outils bureautiques classiques (traitement de texte, tableur, base de données), mais comprennent également des utilitaires pour publier des documents pour l'intranet de l'entreprise. SmartSuite inclut en standard un logiciel de reconnaissance vocale.

Page 36: Technologies logiciels - Généralités

Les logiciels

page 36 Toute reproduction même partielle interdite IGPDE

Les fonctionnalités sont celles correspondant à chacun des logiciels fournis.

L'avantage d'un tel choix réside dans le fait que chaque application est issue du même éditeur et par conséquent, offre la même ergonomie, les mêmes logiques d'emploi, répond au même standard, ce qui facilite ou simplifie l'échange de données entre les applications.

Chaque logiciel de la suite est indépendant et peut être installé ou non.

1.4.2. LES LOGICIELS INTEGRES

Comme les suites, les logiciels intégrés sont constitués de plusieurs logiciels complémentaires utilisés en bureautique. L'offre est souvent composée d'un traitement de texte, d'un tableur / grapheur, d'un logiciel de gestion de bases de données, d'un logiciel de communication.

Les logiciels intégrés les plus connus sont: Frame Work, GEM, SYMPHONY (Lotus), WORKS (Microsoft).

Les fonctionnalités sont celles correspondant à chacun des logiciels fournis dans l'ensemble indissociable. En effet, l'installation de l'intégré impose la totalité des applications livrées.

Les logiciels intégrés offrent comme avantage une interconnexion directe entre applications qui se fait au sein même du logiciel, sans faire appel à l'interface graphique ou au système d'exploitation.

Autre avantage, chaque application offre la même ergonomie, les mêmes logiques d'emploi, répond au même standard, et autorise forcément l'échange de données entre les applications.

Comme inconvénient, les logiciels non exploités occupent de la place inutilement et un logiciel ne peut être remplacé par une version plus récente sans inévitablement installer l'ensemble.

2. LES SYSTEMES EXPERTS

Les applications utilisées dans le domaine de l’aide à la décision ont pour principal objet l’identification des problèmes en vue de leur résolution. Les systèmes experts sont des applications informatiques qui tentent d’automatiser les capacités de raisonnement ainsi que les connaissances d’un ou de plusieurs experts dans un domaine spécifique.

Des processus de raisonnement automatisés permettent l’analyse des caractéristiques d’une application pour donner des conseils, recommander des actions ou fournir des conclusions.

Un système expert est constitué de quatre composants principaux : ♦ une base de connaissances, qui est la codification sous forme automatisée de la connaissance

d’un expert et de ses règles d’emploi, ♦ un module d’acquisition des connaissances, qui alimente la base de connaissance par des

faits et des règles heuristiques, ♦ un moteur d’inférence, ou base de règles, qui simule le raisonnement de l’expert en activant

les règles de la base de connaissances qui sont pertinentes pour résoudre le problème posé, ♦ un module de trace, fournissant la démarche suivie par le système, ce qui permet d’expliquer

le résultat produit.

Page 37: Technologies logiciels - Généralités

Les logiciels

Toute reproduction même partielle interdite IGPDE page 37

Pleine de promesses, la technologie des systèmes experts s’est heurtée à la complexité de sa mise en œuvre et aux limites du raisonnement par inférence qui ne peut remplacer, à lui seul, le raisonnement d’un expert humain.

Une évolution des systèmes experts vers des systèmes moins complexes, les systèmes à base de connaissances (SBC, ou KBS "Knowledge Based Systems"), a permis d’automatiser la résolution de problèmes de complexité moyenne.

L’aide à la sélection, en fonction de critères qualitatifs et quantitatifs, de dossiers ou de candidatures, est rendue possible.

Dans les domaines relevant de l’application de règles de gestion évoluant constamment, telles que les règles juridiques ou fiscales du fait des changements de législation et de la jurisprudence, les SBC se révèlent plus faciles à mettre en œuvre que les systèmes traditionnels qui font l’objet d’une maintenance lourde.

3. LES LOGICIELS COLLABORATIFS

La notion de logiciel collaboratif est très vaste. Trop vaste ?

Elle recouvre en effet tout ce qui permet de communiquer et de travailler ensemble dans une entreprise, une administration, du simple dispositif qui permet de s'échanger des mails à la plate-forme d'ingénierie partagée.

Ces outils peuvent présenter de nombreux avantages. Ils accélèrent la circulation de l'information entre les collaborateurs. Ils permettent à plusieurs personnes de travailler sur une même application (groupware), de faire progresser un document, un projet vers un but commun. Ils peuvent encore faire gagner du temps en autorisant le partage de savoir-faire, en évitant de recréer des procédures. Avec la notion de workflow enfin, ils permettent de contrôler et d'accélérer les interactions entre les différents intervenants qui participent à une tâche.

De plus, à l'heure d'Internet, l'utilisation de logiciels collaboratifs pourrait largement dépasser le cadre de l'entreprise et de l'administration pour lui permettre de se synchroniser avec ses partenaires. Les tâches de planification pourraient en particulier être améliorées (établissement de plannings collaboratifs).

Les avantages du travail collaboratif, en particulier les réductions de coût qu'il peut entraîner, sont donc bien perçus. Pourtant, leur utilisation n'est pas encore généralisée. Il faut peut-être leur laisser le temps de s'implanter. Pourtant, même quand les outils sont largement diffusés, on semble les bouder. Combien d'entre nous utilisent toutes les fonctions collaboratives d'un logiciel de messagerie (agenda partagé, affectation et suivi des tâches, etc.), les fonctions avancées de révision d'un logiciel de traitement de texte ?

Il y a au moins trois raisons qui peuvent expliquer cet usage frileux : ♦ La première tient sans doute à une absence de formation. Si l'on n'utilise pas ces fonctions,

c'est peut-être tout simplement que l'on ignore leur fonctionnement, voire leur existence. ♦ La deuxième tient à la motivation que l'on reçoit de la part du management : est-on

suffisamment incité à utiliser des outils collaboratifs ? Leur rentabilité a-t-elle été effectivement démontrée au sein de l'entreprise ? Leur usage est-il encadré dans le cadre de nouvelles méthodes de travail ? A-t-on vraiment envie de changer ses habitudes ?

Page 38: Technologies logiciels - Généralités

Les logiciels

page 38 Toute reproduction même partielle interdite IGPDE

♦ La troisième tient à la culture de l'entreprise. Les outils collaboratifs respectent rarement la hiérarchie. Ils ne fonctionneront que dans des structures où les organigrammes auront été considérablement aplatis et où chacun accepte de collaborer sur un pied d'égalité.

Comme souvent, c'est ce facteur humain qui est le plus difficile à maîtriser...

3.1. Le concept de "groupware"

Le groupware recouvre un ensemble de fonctions fournies pour assister les membres d’un groupe dans leurs tâches d’intérêt général. Messagerie, bases de données et de documents communes et forums électroniques sont les composants de base d’une solution groupware.

Au delà des économies de temps et d’espace, le groupware permet de favoriser la mise en commun du savoir et des expériences pour un approfondissement des traitements et des décisions dans des limites de coûts raisonnables.

3.1.1. DEFINITION

Le groupware signifie littéralement "travail de groupe".

Un projet de groupware résume (ou contient) à lui seul, tous les systèmes de management qui ont fleuri ces dernières années (reenginering, total quality management, lean management,...), en cherchant à faire autrement, mieux, plus vite et avec moins.

Outre la dimension culturelle et organisationnelle qu’il suppose, le groupware bénéficie des dernières technologies de traitement de l’information : réseaux, messagerie, multimédia, architecture client/serveur,...

Il s’insère également dans des techniques connexes : workflow, gestion électronique de données, échange électronique d’informations, gestion de bases de données, outils d’aide à la décision.

Le groupware contraint à dépasser un concept de taylorisation assistée par ordinateur pour aller vers une responsabilisation et une autonomie croissante des utilisateurs, au travers d’une mise à disposition plus grande de l’information.

Une chose est claire : le groupware repose essentiellement sur le facteur humain de nos organisations... Il est donc hors de question de le considérer comme purement informatique !

3.1.2. MISE EN ŒUVRE D’UN PROJET DE "GROUPWARE"

Techniquement, il suppose l’existence d’une configuration en réseau des postes de travail. Il est donc nécessaire a priori d’effectuer un mini-audit : ♦ des matériels en place ; ♦ du réseau et du système d’exploitation ; ♦ des logiciels d’application (production et bureautique) ; ♦ des procédures en œuvre au sein du cabinet ; ♦ des utilisateurs et de leurs besoins (et droits d’accès induits).

Culturellement, l’introduction d’un environnement groupware entraîne inéluctablement : ♦ une culture organisationnelle orientée vers le partage de l’information ; ♦ des besoins de formation sur l’applicatif groupware ;

Page 39: Technologies logiciels - Généralités

Les logiciels

Toute reproduction même partielle interdite IGPDE page 39

♦ un apprentissage des processus et procédures ("reengineering" éventuel).

La mise en place d’un groupware est un projet d’investissement stratégique pour l’entreprise. L’investissement initial ne débouchera sur des résultats probants qu’à moyen terme (6 mois à un an minimum), résultats qu’il faut savoir quantifier et contrôler.

3.2. Le concept de "workflow"

Outil informatique d'origine industrielle, le workflow propose des solutions d'optimisation et de rationalisation des flux d'informations, que ces informations soient des documents, des procédures ou des messages complémentant les systèmes de gestion électronique de documents et d'informations.

3.2.1. DEFINITION

Le workflow fait aujourd'hui partie de ces appellations non contrôlées, au sens mouvant, qui recouvrent un ensemble de notions plus ou moins floues..

Les concepts et technologies du workflow sont issus du monde industriel, et plus exactement de la fabrication. On y retrouve en effet les schémas classiques de production que sont les activités séquentielles et les activités simultanées. C'est dans ce secteur d'activité qu'ont été appliqués les principes d'optimisation du type JIT (Just In Time ou Juste à temps) et TQM (Total Quality Management ou gestion de la qualité totale) avec, entre autres conséquences, le travail à flux tendus, la suppression des tâches et des stocks intermédiaires, la recherche de la diminution des taux d'erreurs.

Des travaux théoriques tels que ceux d'Ellis, les modèles de Petri ou les méthodes ICN, associés aux approches industrielles, ont donné naissance aux premiers outils workflow. Aujourd'hui encore, tous les outils workflow sont sous-tendus pour des concepts industriels, notamment l'optimisation des procédures.

En l'absence de définition officielle du workflow, il règne une certaine confusion et un mélange des concepts avec le groupware, la GED, etc. Nous proposons comme définition du workflow celle d'outil décisionnel coopératif dont les paramètres sont les suivants : ♦ un nombre limité de personnes ; ♦ devant accomplir en un temps limité ; ♦ des tâches articulées autour d'une procédure définie ; ♦ et ayant un objectif global.

Nous pouvons donc dire que le workflow est un système: ♦ pro-actif : le champ est défini a priori; le workflow guide la procédure ; ♦ déterministe : la finalité est connue.

Il y a donc lieu de bien souligner que le côté déterministe du workflow, avec des limites dans le temps, le distingue nettement du groupware qui est un lieu d'accueil ré-actif et circonstanciel, sans contraintes de temps et d'espace et qu'il n'y a pas de lien systématique avec la GED (Gestion Electronique de Document). Enfin, la gestion éventuelle n'est qu'un sous-produit du workflow.

3.2.2. LES FONCTIONS PRINCIPALES DU WORKFLOW

3.2.2.1. FONCTIONNALITES DE BASE

Généralement, les workflows prennent en charge les trois tâches de base suivantes :

Page 40: Technologies logiciels - Généralités

Les logiciels

page 40 Toute reproduction même partielle interdite IGPDE

♦ gérer les procédures de travail ; ♦ coordonner les charges et les ressources ; ♦ et superviser le déroulement des opérations.

La réalisation de ces tâches s'exécute au travers des multiples fonctionnalités disponibles, parmi lesquelles on peut citer : ♦ la manipulation d'objets organisationnels de base : processus, procédure, rôle, cas à traiter ; ♦ les scripts, les simulations et la gestion des procédures ; ♦ les fonctions d'organisation standard : re-routage, affectation multiple, mise en attente avec

gestion des délais, gestion des priorités, affectation de status, suivi des événements ; ♦ la gestion des documents composites : données, fichiers, messages, images, EDI ; ♦ l'intégration en environnement de développement, en amont, par la définition de liens avec les

AGL et en aval, par la gestion des bibliothèques d'API ; ♦ des outils de suivi et d'exploitation des activités.

3.2.2.2. FONCTIONS SPECIALISEES

Le workflow présente quatre fonctions spécialisées : ♦ la simulation ; ♦ la modélisation ; ♦ l'analyse ; ♦ le monitorat

La simulation permet de tester des hypothèses de fonctionnement, soit en jouant sur des paramètres simples, à savoir le temps, le stock à traiter, le nombre d'acteurs nécessaires, soit en jouant sur des paramètres complexes: l'optimisation des fiches d'attente, le travail en flux tendus, la gestion des absences. Il s'agit d'un outil très prisé des organisateurs et des consultants, notamment dans le cadre de démarches de type "Process Re-Engineering" que l'on peut traduire par re-conception des processus.

La modélisation permet de dessiner et d'écrire des procédures avec un outil graphique. On représente le schéma général d'une procédure, les objets manipulés (par exemple des documents), les contraintes de temps, de délais et de stocks. La modélisation peut être utilisée comme base de tests pour vérifier des hypothèses (fonction de simulation) puis comme référentiel de l'organisation.

L'analyse est liée à la simulation. Cette fonction permet de mettre en application des standards et des unités d'œuvre administratives tels que des temps moyens de traitement pour une procédure donnée, le coût de traitement d'un dossier, le coût d'un acte de gestion. Cette fonction s'apparente à la théorie statistique de gestion des fiches d'attente. La bonne utilisation de ce module a au moins trois retombées. Elle permet: ♦ de mettre en oeuvre des principes de comptabilité analytique dans le secteur tertiaire ; ♦ de faire l'analyse de la valeur sur les processus, base de toutes les démarches dite de

"Business Process Re-Engineering" ou re-conception des processus ; ♦ de mettre en oeuvre des indicateurs de pilotage d'activité (par exemple, le nombre de dossiers

en cours de traitement).

Quant au monitorat, il permet de savoir qui fait quoi dans une procédure. Cette fonction permet donc d'intervenir, notamment pour redistribuer des tâches, ré-affecter des priorités, mettre des situations en attente. On y trouve également des outils statistiques et des indicateurs d'alerte qui permettent de formaliser les procédures de gestion, rationaliser les flux d'information, gérer et optimiser les ressources et les charges, simuler des modèles d'organisation, contrôler l'exécution des tâches et gagner en efficience (efficacité administrative) et en productivité.

Page 41: Technologies logiciels - Généralités

Les logiciels

Toute reproduction même partielle interdite IGPDE page 41

3.2.3. LES APPLICATIONS DU WORKFLOW

Il existe plusieurs applications du workflow.

Les exigences de la norme ISO 9000 d'ISO 9000 en termes d'auditabilité, de traçabilité de l'information, de mise à jour des circuits de décision et de délégation en font un terrain idéal pour la mise en oeuvre d'un workflow orienté procédure. Il est d'ailleurs vraisemblable que des fournisseurs se spécialisent dans ce marché très porteur.

Par ailleurs, le Business Process Re-Engineering (ou B.P.R.) vise à passer d'une approche fonctionnelle à une approche par processus multi-fonctionnels et d'une perspective interne à une perspective client. Les objectifs sont des améliorations très nettes en matière de coût, de délai, de qualité. Le workflow constitue un support idéal du B.P.R. en permettant l'élimination de couches de management et l'amélioration de deux ratios clés qui sont le taux de succès au 1er passage et la valeur active d'un processus (c'est-à-dire le temps effectivement travaillé).

Il permet également: ♦ d'introduire du parallélisme dans le travail et l'élimination des boucles; ♦ de contrôler des sources de blocage; ♦ de redéfinir certains métiers et d'effectuer le déport vers des fonctions commerciales; ♦ de centraliser du back-office; ♦ de décentraliser du front-office.

Les solutions de workflow s'adaptent à de nombreux besoins dans les entreprises comme dans les administrations. Elles répondent au besoin de gérer de gros volumes d'informations en automatisant les tâches administratives liées aux réclamations, aux commandes mais également aux transferts de fonds. Elles s'avèrent aussi un élément primordial pour la gestion de procédures, parmi lesquelles l'on peut citer les dépenses, les règlements, les souscriptions et le traitement des demandes.

De même, le workflow est un auxiliaire efficace dans le processus de management pour l'organisation de réunions et le partage de l'information.

Sous forme d'application générique, le workflow répond aux besoins de la majorité des entreprises. Parmi les exemples les plus significatifs, la gestion du courrier entrant ou sortant et celle des télécopies et des appels téléphoniques constitue une première phase d'utilisation de ces techniques. Il en est de même pour la gestion de pièces ou de documents administratifs, par exemple des factures ou des réclamations, pour lesquelles les procédures permettent le suivi permanent d'un dossier.

Des solutions de workflow peuvent s'adapter à des applications spécifiques ou verticalisées conçues pour répondre à un besoin d'une entreprise ou d'une administration. Dans le cas de services publics, le workflow s'applique à la gestion des actes et des registres comme à celle des dossiers de cotisations ou de prestations.

Il en est de même dans le monde bancaire pour la gestion des mouvements et des dossiers de prêts, depuis l'instruction jusqu'aux opérations purement financières. Il existe ainsi des banques à réseau qui, pour une partie de leurs crédits aux entreprises, ont mis en oeuvre un workflow couplé à la GED dans des agences bancaires, avec dématérialisation complète des supports papier.

Le monde des assurances est un des secteurs où le workflow complète les autres techniques de gestion notamment pour le suivi des dossiers des assurés et celui des sinistres.

Enfin, pour terminer cette liste des champs d'application possibles, mentionnons que l'industrie peut utiliser le workflow pour un bon nombre de suivis de procédures ou la gestion de configuration.

Page 42: Technologies logiciels - Généralités

Les logiciels

page 42 Toute reproduction même partielle interdite IGPDE

3.2.4. LES TENDANCES FUTURES DU WORKFLOW

Le marché du workflow a vu arriver de grands éditeurs de logiciels avec des produits génériques peu onéreux mais avec un coût de l'intégration significatif.

Par ailleurs, le workflow s'est enrichit de compléments comme l'EDI et la messagerie X400 puis s'est ouvert à une coopération "inter-workflow" à laquelle s'est ajouté la disponibilité de workflows imbriqués.

A moyen terme, ces techniques s'enrichiront de systèmes à base de connaissances, c'est-à-dire capable de travailler sur le sens de l'information, première évolution vers l'ingénierie de la connaissance. Le workflow devrait aussi mettre en oeuvre le concept du "Bus Applicatif Interactif", véritable colonne vertébrale applicative des architectures futures.

Lui-même s'ouvrira en tant qu'outil de conception et de programmation des organisations. Le workflow se présente donc bien comme le support des futures applications du "décisionnel applicatif".

Page 43: Technologies logiciels - Généralités

Les progiciels

Toute reproduction même partielle interdite IGPDE page 43

LES PROGICIELS Les progiciels (ou "produit-logiciel" - package) sont comparables à des applications.

Paramétrables et modulables, ils sont développés et commercialisés par des éditeurs afin de couvrir l'automatisation des fonctions courantes ou habituelles pour de nombreuses entreprises, comme par exemple : ♦ La comptabilité ; ♦ La gestion des stocks ; ♦ La gestion des ressources humaines …

Les fonctionnalités des progiciels sont clairement délimitées et évoluent peu au fur et à mesure des versions du fait du fort taux de couverture des besoins de leurs utilisateurs.

1. LES PROGICIELS DE GESTION INTEGRES (PGI)

Alors que les applications répondent à des besoins spécifiques, les PGI (en anglais : ERP – Entreprise Ressource Planning) répondent à des besoins globaux et généralistes des entreprises ou des administrations.

Les premiers PGI intégraient dans leur concept : les gestions commerciale, comptable, financière et de production. Ce concept s’est ensuite généralisé en y ajoutant : la gestion des ressources humaines, la gestion administrative, la gestion des ventes, la gestion des achats et la gestion de la logistique. Le but est d’optimiser l’ensemble pour une meilleure productivité.

Certains PGI fonctionnent depuis 20 ans. Ils ont fait l’objet d’adaptations constantes aux nouvelles technologies et aux nouveaux besoins des entreprises. Aujourd’hui c’est Internet et le développement par composants qui conditionnent l’avenir des PGI.

Ils s’introduisent dans les entreprises en se substituant aux applications développées spécifiquement et permettent une gestion standardisée, plus efficace et moins coûteuse.

Ce sont des systèmes d’information globaux qui imposent de nouveaux modèles de structures et d’organisations du travail, à l’intérieur comme à la périphérie de l’entreprise. Leurs caractéristiques d’intégration et de travail en temps réel provoquent des changements dans le travail en modifiant les fonctions et les tâches à la fois dans le domaine des contenus des qualifications et dans celui des conditions de travail. Elles induisent aussi une transparence et une traçabilité qui facilitent l’identification des responsabilités, les contrôles automatisés et la comparaison en continu des performances et des coûts.

La mise en place d’un PGI s'inscrit dans un projet global de réorganisation complète de l’entreprise qui concerne tant les structures, les flux ou les fonctions que les organisations du travail et le management.

Page 44: Technologies logiciels - Généralités

Les progiciels

page 44 Toute reproduction même partielle interdite IGPDE

2. XRP, LE FUTUR DES PGI

Le PGI de première génération (celui des années 90) amorce un tournant majeur vers l’externalisation avec Internet.

Ainsi, il ne devra plus nécessairement être implanté dans l’entreprise utilisatrice, ses services pourront être utilisés, partiellement ou totalement, via le réseau Internet, d’où le concept d’eXternal Resource Planning (XRP).

L’XRP englobe de nouvelles fonctionnalités tels que le commerce électronique (e-commerce), l’Intranet, l’aide à la décision, la gestion de la relation client, les ressources humaines ou la gestion de la chaîne logistique. Les entreprises pourront ainsi communiquer et travailler en temps réel avec leurs clients et fournisseurs.

Page 45: Technologies logiciels - Généralités

L'informatique décisionnelle

Toute reproduction même partielle interdite IGPDE page 45

L'INFORMATIQUE DECISIONNELLE Si la gestion des données de production est assurée par les applications transactionnelles ou de traitement par lots, l’exploitation de ces données à des fins de pilotage est facilitée par la mise en œuvre des systèmes d’aide à la décision.

Les données ne naissent pas pertinentes; elles le deviennent.

Si le principe d'une informatique de gestion est unanimement acquis, transformer des données chiffrées en informations stratégiques, en les regroupant et en les recoupant tel est l'objectif des systèmes informatisés d’aide à la décision (SIAD), encore appelés systèmes de pilotage (EIS).

1. QUELQUES DEFINITIONS

1.1. Système informatisé d'aide à la décision SIAD (DSS, Decision support system)

Système informatique intégré, conçu spécialement pour la prise de décision, et qui est destiné plus particulièrement aux dirigeants d'entreprise.

Le système d'aide à la décision est un des éléments du système d'information de gestion. Il se distingue du système d'information dans la mesure où sa fonction première est de fournir non seulement l'information, mais les outils d'analyse nécessaires à la prise de décision.

Ainsi, il est habituellement constitué de programmes, d'une ou de plusieurs bases de données, internes ou externes, et d'une base de connaissances. Il fonctionne avec un langage et un programme de modélisation qui permettent aux dirigeants d'étudier différentes hypothèses en matière de planification et d'en évaluer les conséquences.

1.2. Informatique décisionnelle (BI, Business Intelligence)

Système interprétant des données complexes permettant aux décideurs (dirigeants d'entreprise) de prendre des décisions en connaissance de cause. Les données sont analysées selon plusieurs dimensions (type de produits, régions et saisons par exemple).

L'informatique décisionnelle permet la recherche active et l'exploitation, sur le plan décisionnel, de l'ensemble des renseignements stratégiques essentiels qu'une entreprise doit posséder, si elle veut faire face à la concurrence et occuper la première place, dans son secteur d'activités.

L'informatique décisionnelle propose une vision d'ensemble des outils d'aide à la décision allant de la base de données relationnelle, en passant par le DW (Data Warehouse), au DM (Data Mining) et finalement au KDD (Knowledge Discovery in Databases). Il nous permet d'observer leur positionnement dans la chaîne de production d'information et de connaissances.

Quatre sociétés principales se partagent ce marché : - les deux leaders, qui sont Cognos et Business Objects - deux entreprises de taille plus réduite et qui connaissent actuellement quelques difficultés (Brio technology et Microstrategy). Business Objects, leader du secteur, conserve néanmoins un bon nombre d'atouts, dont l'intercommunicabilité liée au vecteur de l'Internet, pour pérenniser sa position

Page 46: Technologies logiciels - Généralités

L'informatique décisionnelle

page 46 Toute reproduction même partielle interdite IGPDE

En 2003, selon Gartner Dataquest, l'informatique décisionnelle sera l'un des critères les plus importants que les entreprises prendront en compte dans l'évaluation de leurs éventuelles solutions informatiques. Elles considéreront les dépenses d'informatique décisionnelle comme un impératif concurrentiel inhérent aux processus décisionnels.

L'informatique décisionnelle sera la tendance montante des prochaines années parce que les entreprises (et administrations) visent une meilleure exploitation de leurs applications opérationnelles et notamment des progiciels de gestion intégrée, de gestion de la relation client et de gestion de la chaîne logistique.

Ce sont les services de production, de contrôle, de vente, de marketing et de gestion qui en manifestent généralement le besoin. Il n'est donc pas surprenant que la plupart des grandes entreprises aient déjà mis des solutions appropriées en œuvre ou soient en passe de le faire.

Cependant, les multiples défis à relever empêchent encore nombre d'entre elles d'intégrer ces solutions dans leurs services et entraînent surtout les difficultés suivantes : ♦ Une expérience insuffisante de l'informatique décisionnelle pour tirer des connaissances

exploitables à partir d'informations non structurées ; ♦ Un manque de ressources humaines pour la mise en œuvre et l'exploitation des solutions

d'informatique décisionnelle ; ♦ Un coût d'entrée élevé du matériel, des logiciels, de la maintenance et de l'exploitation (dans la

plupart des cas, plus de 50 % des coûts informatiques actuels) ; ♦ Une lacune de compétences diversifiées en ingénierie des processus, en construction

d'entrepôts de données et en administration de bases de données.

2. LE PROCESSUS DECISIONNEL

Le processus décisionnel comporte quatre grandes étapes : ♦ Etape 1 : extraction des données. Pour produire les indicateurs voulus, il convient d'aller

chercher les données où elles se trouvent. Connecté aux différentes applications et bases de données, l'outil d'ETL se charge de récupérer ces données et de les centraliser dans une base de données particulière, l'entrepôt de données.

♦ Etape 2 : consolidation. Une fois les données centralisées, celles-ci doivent être structurées au sein de l'entrepôt de données. Il s'agit d'un pré-traitement permettant aux outils d'analyse d'y accéder plus facilement, sachant que ces entrepôts ne sont pas nourris à la main.

♦ Etape 3 : traitement. En fonction d'une question plus ou moins complexe posée à l'aide d'un formulaire, l'outil d'analyse recueille la requête et confronte les données correspondantes, de façon à produire les indicateurs voulus.

♦ Etape 4 : restitution. Egalement appelée reporting, cette étape se charge de diffuser et de présenter les informations à valeur ajoutée de telle sorte qu'elles apparaissent de la façon la plus lisible possible pour le décideur.

Page 47: Technologies logiciels - Généralités

L'informatique décisionnelle

Toute reproduction même partielle interdite IGPDE page 47

3. LES DIFFERENTS OUTILS LOGICIELS

3.1. Datawarehouse - Datamart

Le datawarehouse est un ensemble de données historisées variant dans le temps, organisé par sujets, consolidé dans une base de données unique, géré dans un environnement de stockage particulier, aidant à la prise de décision dans l’entreprise.

Il assure trois fonctions essentiels : ♦ la collecte de données de bases existantes et chargement ; ♦ la gestion des données dans l’entrepôt ; ♦ l'analyse de données pour la prise de décision.

Le datawarehouse regroupe, historise et résume les données de l’entreprise.

D'un point de vue technologique, il n'y a à priori que très peu de différences entre un datawarehouse et un datamart. Les deux sont des entrepôts de données à part entière.

Mais sur son utilisation, le datawarehouse s'avère complètement centralisé, et regroupe des informations en provenance d'applications transversales ou disséminées à travers l'entreprise, en vue de produire une vision plus globale lors de l'étape de restitution.

De l'autre côté, le datamart est plus spécialisé suivant une fonction ou un domaine vertical de l'entreprise. Et l'on trouve, par exemple, des datamarts spécifiques reliés aux centres d'appels afin d'analyser le service client.

3.2. L'extraction (ETL)

L'ETL (Extract Transform and Load) permet de récupérer des données stockées par différentes applications de l'entreprise.

Pour en extraire les données utiles, l'outil d'ETL (Extraction transfer loading) doit pouvoir se connecter aux sources, qu'il s'agisse des applications ou des bases en production. En ce sens, il joue un rôle d'intégration au niveau des données.

De son côté, l'EAI (Enterprise application integration) est un domaine général qui regroupe toutes les formes d'intégration entre des applications, des processus ou/et des interfaces. Par voie de conséquence, l'ETL est donc un sous-ensemble de l'EAI positionné sur l'intégration des données.

3.3. Le Data Mining

Les entreprises ne s'intéressent pas seulement à leurs activités passées, mais cherchent aussi à anticiper l'avenir. A cette phase, elles commencent à utiliser des outils de data mining pour

Page 48: Technologies logiciels - Généralités

L'informatique décisionnelle

page 48 Toute reproduction même partielle interdite IGPDE

identifier les interrelations de séries de données aux caractéristiques similaires, établissent des rapports entre leurs différents produits et services et découvrent ainsi de nouvelles opportunités commerciales.

En général plus anciens que les algorithmes d'analyse multi-dimensionnelle, ceux de data mining emploient une approche statistique pour dessiner des courbes dans le temps. A partir d'un certains nombre d'événements observés et historisés, il est parfois possible de prévoir selon les critères entrés au préalable comment la courbe va évoluer. Par exemple, le data mining est souvent utilisé par les opérateurs pour prévenir le "churn", c'est à dire le moment même où les abonnés d'un réseau de télécommunication vont devenir infidèles. Dans ce cadre, seule une historisation du comportement de l'utilisateur (achat de services, degré d'utilisation...) permet de définir des probabilités en fonction de critères tirés d'observations préalables.

3.4. Le reporting

L'utilisation des rapports de l'entrepôt de données (le reporting) permet aux décideurs d'obtenir des réponses relatives à l'historique de l'entreprise. Le regroupement des données en provenance des principales sources d'information peut étayer des décisions qui affectent l'ensemble de l'entreprise.

3.5. L'analyse multi-dimensionnelle : Le cube OLAP

Pour pouvoir analyser des données représentant l'activité d'une entreprise, il faut pouvoir les modéliser suivant des axes. Ainsi, pour prendre l'exemple le plus courant, le chiffre d'affaires par catégorie de client sur un produit donné se décline en trois axes au minimum : chiffre d'affaires, catégorie de clients, et produit. De nombreux autres axes peuvent être définis, notamment en fonction de la zone géographique, du prix, ou d'un commercial de l'équipe en charge des opérations.

Ici, le cube est une vue de l'esprit car il comporte en général plus de trois dimensions. Le "cube" en question représente les axes de l'entreprise évoqués dans l'exemple précédente. Ensuite, OLAP (OnLine Analytical Processing) qualifie la méthode analytique en tant que telle, qui s'applique à ce modèle multi-dimensionnel.

Page 49: Technologies logiciels - Généralités

Le logiciel libre

Toute reproduction même partielle interdite IGPDE page 49

LE LOGICIEL LIBRE ("L'OPEN SOURCE") C'est le projet GNU (1), initié par Richard Stallman et développé par des "hackers" (2), qui est à l'origine des logiciels libres.

De très nombreuses communautés de développeurs, dont des fondations, se sont ensuite créées dans le monde, composées de bénévoles, d'étudiants, de chercheurs, etc. Elles ont ensuite évolué - pour certaines - vers des ensembles de contributeurs constitués en société.

Parmi les premiers producteurs de logiciels libres on trouve l'université de Californie, Berkeley (sous licence BSD) et le Massachusetts Institute of Technology (sous licence MIT) soucieux de faire profiter l'administration et les entreprises américaines des développements réalisés par leurs laboratoires. Des entreprises pionnières, d'abord aux Etats-Unis puis dans le monde entier, ont alors contribué à l'essor des logiciels libres, adoptés ensuite par des entreprises majeures du domaine informatique comme IBM qui a intégré Linux à son offre et Sun Microsystems qui a contribué à l'élaboration de la suite bureautique OpenOffice.org.

Le succès et le développement massif des connexions de réseaux à l'Internet sont en grande partie dus aux logiciels libres qui servent à gérer les bases techniques des échanges d'information.

Ce choix de favoriser la circulation de la technologie à travers la mise en commun des logiciels est un changement profond qui aboutit à des modèles économiques nouveaux pour les entreprises produisant ou utilisant du logiciel libre et à des contextes nouveaux pour les administrations.

Les logiciels libres ("Open Source") constituent une nouvelle tendance de l'industrie du logiciel.

Remarque :

(1) Le projet GNU (GNU is Not Unix - acronyme récursif) a démarré en 1984, sous l'impulsion de Richard Stallman, avec la mission de développer un système Unix complètement libre. Des centaines de logiciels ont été développés à ce jour par cette organisation regroupant de nombreux volontaires bénévoles. Le projet GNU est probablement le pilier fondamental du mouvement des logiciels libres. La Free Software Fondation est très respectée au sein de la communauté du logiciel libre pour cette raison. Tout les outils GNU sont bien sur placés sous licence GPL.

(2) En traduction littérale, "hacker" signifie "mordu d’informatique". A la base, ce mot a été lancé dans les années 1980 par une communauté désirant se différencier des crackers (ou pirates), notamment en termes de finalité d’action. En effet, à la différence des crackers dont le seul objectif est de casser les systèmes de sécurité, les hackers pénètrent un environnement pour le connaître, et ainsi faire progresser les méthodes de protection utilisées.

Page 50: Technologies logiciels - Généralités

Le logiciel libre

page 50 Toute reproduction même partielle interdite IGPDE

1. QU’EST-CE QU’UN LOGICIEL LIBRE ?

1.1. Présentation générale et synthétique des logiciels libres

D’un point de vue technique, un logiciel libre est un logiciel dont le code source est librement disponible, duplicable, modifiable et redistribuable. Cependant, la disponibilité du code source n’implique pas à elle seule la qualification de "libre" pour un logiciel.

D'un point de vue juridique, un logiciel libre est avant tout un logiciel protégé par le droit d'auteur et soumis à une licence qui le réglemente et en délimite les droits et obligations afférents . Souvent opposé au logiciel propriétaire, qui habituellement ne comporte que des droits d'usage, le logiciel libre s'en distingue par les droits plus importants accordés par l'auteur du logiciel aux bénéficiaires de la licence.

Un logiciel libre est donc bien soumis au droit d'auteur et au code de la propriété intellectuelle. Sa licence permet ainsi d'utiliser un logiciel, mais elle permet également au bénéficiaire de la licence d'étudier le fonctionnement du logiciel - ce qui est parfois possible sous certaines conditions avec les logiciels propriétaires - de modifier le logiciel pour son usage propre et de redistribuer les modifications qu'il a effectuées sur le logiciel - ce qui est généralement interdit avec les logiciels propriétaires. Elle préserve cependant les droits de l'auteur du logiciel qui reste libre de le diffuser sous d'autres licences.

La mise en œuvre de certains de ces droits implique cependant le plus souvent des devoirs. Ces droits et devoirs peuvent être parfois difficiles à appréhender pour les personnes parties prenantes dans le projet. Cette méconnaissance pourrait devenir un frein à l’usage des logiciels. L’appréhension de ces droits nécessite de bien comprendre la nature du phénomène des logiciels libres et d’en mesurer les forces et les limites.

1.2. Définitions

Des définitions des logiciels libres ont été produites par deux organismes : la Free Software Foundation et l’Open Source Initiative. Ces définitions sont en pratique équivalentes.

Pour la Free Software Foundation (FSF), un logiciel est considéré comme libre si sa licence accorde les quatre libertés suivantes à l’utilisateur : ♦ La liberté d'exécuter le programme, pour tous les usages ; ♦ La liberté d'étudier le fonctionnement du programme, et de l'adapter à ses besoins. Pour ceci

l'accès au code source est une condition requise ; ♦ La liberté de redistribuer des copies ; ♦ La liberté d'améliorer le programme et de publier ses améliorations, pour en faire profiter toute

la communauté d’utilisateurs et de développeurs. Pour ceci l'accès au code source est une condition requise.

La FSF a créé le concept de "gauche d’auteur" (copyleft). Celui-ci définit une licence qui reprend les quatre libertés décrites ci-dessus et dont les termes doivent être repris à l’identique en cas de nouvelle distribution. Ceci permet d’éviter qu’une distribution du logiciel modifié restreigne les droits initiaux.

Page 51: Technologies logiciels - Généralités

Le logiciel libre

Toute reproduction même partielle interdite IGPDE page 51

C'est donc le contenu de la licence qui permet de qualifier le logiciel de libre ou de propriétaire, et non la simple disponibilité des sources.

Alors que la définition de la FSF place l’accent sur les grands principes à respecter pour qu’un logiciel puisse être qualifié de logiciel libre, les critères de l’Open Source Initiative (OSI) sont plus pratiques et plus techniques. Ils permettent de déterminer la nature libre ou propriétaire d’une licence de logiciel. Ils se décomposent selon les neuf points suivants.

1.2.1. LA REDISTRIBUTION LIBRE

La licence ne doit pas restreindre la vente ou la distribution du logiciel libre intégré dans un autre logiciel contenant des programmes de différentes origines. La licence ne doit pas exiger de compensation d'aucune sorte en échange de cette intégration.

1.2.2. CODE SOURCE

Le programme doit inclure le code source, et doit autoriser la distribution du code source comme de l'exécutable compilé. Quand une forme quelconque du produit est distribuée sans le code source, il doit être clairement indiqué par quel moyen il est possible d'obtenir le code source, pour une somme qui ne doit pas excéder un coût raisonnable de reproduction, ou en le chargeant gratuitement via Internet. Le code source doit être la forme privilégiée par laquelle un programmeur modifie le programme. Un code source délibérément confus est interdit. Les formes intermédiaires de code source, telles que celles résultant d'un pré-processeur ou d'un traducteur, sont interdites.

1.2.3. TRAVAUX DERIVES

La licence doit autoriser les modifications et les travaux dérivés, et doit permettre leur distribution dans les mêmes termes que la licence du logiciel d'origine.

1.2.4. INTEGRITE DU CODE SOURCE DE L'AUTEUR

La licence peut restreindre la distribution du code source modifié seulement si elle autorise la distribution de fichiers patchs avec le code source, dans le but de modifier le programme à la compilation. L’auteur peut ainsi garantir l’intégrité de son code source dans le processus de diffusion successive du logiciel. La licence doit explicitement permettre la distribution de logiciels obtenus à partir du code source modifié. La licence peut exiger que les travaux dérivés portent un nom ou un numéro de version différents du logiciel d'origine.

1.2.5. ABSENCE DE DISCRIMINATION ENVERS DES PERSONNES OU DES GROUPES

La licence ne doit pas être discriminante à l'encontre de personnes ou de groupes de personnes.

1.2.6. ABSENCE DE DISCRIMINATION ENVERS DES DOMAINES D'ACTIVITE

La licence ne doit pas restreindre ni interdire l'usage du logiciel à un quelconque domaine d'activité. Par exemple, il ne peut interdire l'usage du logiciel dans le cadre d'une activité professionnelle, ou en exclure l'usage pour la recherche génétique.

1.2.7. DISTRIBUTION DE LICENCE

Les droits attachés au programme doivent s'appliquer à tous ceux à qui il est distribué sans qu'il leur soit besoin de se conformer à des termes de licence complémentaires.

1.2.8. LA LICENCE NE DOIT PAS ETRE SPECIFIQUE A UN PRODUIT

Les droits attachés au programme ne doivent pas dépendre du fait que le programme fait partie d'un logiciel en particulier. Si le programme est séparé du logiciel dans lequel il est intégré, et

Page 52: Technologies logiciels - Généralités

Le logiciel libre

page 52 Toute reproduction même partielle interdite IGPDE

utilisé ou distribué selon les termes de la licence, toutes les parties à qui le programme est redistribué doivent avoir les mêmes droits que ceux accordés avec le logiciel dans lequel il est intégré à l'origine.

1.2.9. LA LICENCE NE DOIT PAS IMPOSER DE RESTRICTIONS SUR D'AUTRES LOGICIELS

La licence ne doit pas imposer de restrictions sur d'autres logiciels distribués avec le programme sous licence. Par exemple, la licence ne doit pas exiger que les autres programmes distribués sur le même support physique soient aussi des logiciels libres.

1.3. Différences de terminologie

Ces différences de terminologie n’impliquent aucune différence pratique. Les logiciels libres et les logiciels à code source ouvert (Open Source) désignent la même réalité. La différence se situe à un niveau théorique.

Les tenants du logiciel libre emploient ce terme pour insister sur les quatre libertés attachées à un logiciel. Ces quatre libertés sont des critères mais également des justifications éthiques à l’existence des logiciels libres.

Les tenants de l’emploi du terme "code source ouvert" (Open Source) insistent sur les caractéristiques opérationnelles, et en particulier la disponibilité du code source sans tenter de fournir de justification éthique.

2. ASPECTS JURIDIQUES

L’avènement des supports de distribution bon marché – comme l’Internet et le cédérom – a favorisé la diffusion de logiciels développés en dehors des canaux habituels de la profession.

Selon le niveau de contribution demandé à l’utilisateur (gratuité), la disponibilité du code source (transparence) ou encore l’importance accordée à la notion de propriété (droits d’auteur), ces logiciels sont qualifiés de domaine public, logiciel libre, gratuiciel ("Freeware"), partagiciel ("Shareware") ou encore propriétaires. C’est la nature de la licence associée au logiciel qui détermine l’appartenance à l’une de ces familles de produits. Le concept de logiciel libre est ainsi rattaché à l’ensemble des logiciels couverts par un type de licence particulier : les licences de logiciels libres.

2.1. Les logiciels propriétaires

2.1.1. LES LOGICIELS PROPRIETAIRES "CLASSIQUES"

En règle générale, les logiciels propriétaires sont distribués sous forme d’exécutable binaire et ne fournissent pas de moyen d’accès au code source. Pour défendre ses intérêts (commerciaux ou autres), le développeur d’une solution propriétaire interdit notamment (souvent) la libre redistribution de son produit et veille (très souvent) à ce qu’il constitue une boîte noire pour ses utilisateurs, en interdisant notamment l'analyse du code source. En conséquence, ces derniers n’ont pas la possibilité d’adapter le logiciel à leurs besoins, d’en corriger les éventuels bogues ou

Page 53: Technologies logiciels - Généralités

Le logiciel libre

Toute reproduction même partielle interdite IGPDE page 53

d’y apporter des améliorations. En général, ils passent par un club d'utilisateurs pour que leurs demandes d'évolutions soient éventuellement prises en compte.

2.1.2. LE "FREEWARE"

Souvent développés à titre de hobby par un développeur unique, ces logiciels sont (comme leur nom l’indique) gratuits. Le terme "free" est ici associé à la notion de gratuité. En revanche, la disponibilité du code source est laissée à la discrétion du développeur qui demeure propriétaire de son œuvre (notion de "copyright"). Dans la pratique, on constate que le code source d’un "freeware" est rarement disponible.

2.1.3. LE "SHAREWARE"

Le concept de "shareware" est très similaire à celui de freeware. Il s’en différencie par le niveau de contribution demandé à l’utilisateur. Un "shareware" n’est pas gratuit, mais son prix reste toutefois modeste (souvent quelques euros). De plus, la licence contient en général des limitations dans le nombre de copies, la durée de l'utilisation et le territoire concerné.

Il existe de nombreux dérivés de l’approche "shareware", comme le "postware" - où l’auteur demande pour seule rétribution de lui envoyer une carte postale. Là aussi, le code source est rarement disponible.

2.1.4. SYNTHESE

"Freewares" et "sharewares" sont donc des logiciels à caractère propriétaire. Leur domaine d’application reste principalement axé sur les accessoires de bureau. Le monde du Macintosh ou de Microsoft Windows en proposent de nombreux.

Ces deux familles de logiciels ne sont pas directement liées à la notion de licence – au sens où nous l’entendons lorsque l’on parle de logiciels libres.

L’appartenance à l’une de ces familles renseigne avant tout sur la gratuité ou la modicité du prix du produit. La licence qui s’y rattache est propre au logiciel et se réduit le plus souvent à quelques lignes rédigées par l’auteur indiquant les restrictions qu’il souhaite imposer à la distribution comme à l’utilisation du produit.

2.2. Les logiciels libres

Par réaction aux droits jugés trop restreints associés aux logiciels propriétaires, les développeurs de logiciels libres ont opté pour l’appellation "logiciel libre" ("Free Software") – "free" étant associé à la notion de liberté et non de gratuité.

L’ambiguïté contenue en anglais dans le terme "free" pourrait laisser supposer qu’un logiciel libre est forcément gratuit. Or il n’en est rien. Le support physique de distribution, l'assistance fonctionnelle et technique, la formation ou encore l'adaptation du produit peuvent être soumis à rétribution, et c'est généralement le cas.

La promotion du terme Open Source tente (entre autres) de résoudre ce problème d'interprétation. Il se veut le vecteur des notions de transparence et d’ouverture mises en avant dans la communauté des développeurs et clients de logiciels libres.

Page 54: Technologies logiciels - Généralités

Le logiciel libre

page 54 Toute reproduction même partielle interdite IGPDE

Ainsi, la licence qui accompagne un logiciel libre concède de nombreux droits à ses utilisateurs au nom de l’intérêt commun. L’utilisateur se voit autorisé à modifier le code du programme, à le distribuer librement, et même à vivre de cette activité.

L’objet juridique d’une licence de logiciels libres est de garantir à l’utilisateur un accès libre au code source. Certaines licences, comme la GPL (General Public License, licence produite par la FSF), souhaitent rendre l’accès au code source permanent afin de lutter contre toute "propriétarisation" abusive du logiciel ainsi publié. Avec les licences de logiciels libres les plus courantes, la distribution d’un logiciel n'est pas limitée dans le temps, sauf interruption liée au non respect des clauses de la licence. L’auteur, qui conserve ses droits, pourra toutefois en distribuer une version dérivée par ses soins sous des clauses plus restrictives – la version initiale restant libre. Il est de même possible, pour un auteur, de mettre le même logiciel sous deux licences libres différentes.

Certaines licences, comme la licence GPL, interdisent de construire une solution propriétaire à partir de logiciels libres. D’autres licences, comme les licences de type MIT (Massachusetts Institute of Technology, désigne la licence établie par le MIT) ou BSD (Berkeley Software Design, désigne la licence établie par l'université de Californie, Berkeley), permettent les travaux dérivés propriétaires. Cette possibilité offerte à l’exploitation propriétaire d’une base de code constitue la principale distinction entre les différentes licences de logiciels libres.

Juridiquement, le logiciel libre n’est pas un logiciel sans droit. En effet, celui-ci reste régi par les dispositions de la licence et l’auteur du logiciel reste titulaire de l’ensemble des droits d’auteur.

En effet, comme il a précédemment été rappelé, la qualité de logiciel libre se déduit de la nature des droits et obligations décrits dans la licence. Ainsi, l’objet des licences de logiciels libres consiste en une mise à disposition du logiciel et sa cause est la volonté de permettre la libre évolution du logiciel. Elle n’a pas pour objet de transférer un droit de propriété ou la renonciation au droit d’auteur ou encore de "faire tomber" le logiciel dans le domaine public.

Ainsi, en diffusant son logiciel libre, l’auteur peut s’assurer que la libre utilisation du logiciel n’est pas perturbée par les agissements des licenciés.

À l’échelle internationale, les textes de lois en matière de protection du logiciel sont très dissemblables. Selon les pays, les logiciels relèvent du droit d’auteur, du droit des marques, de celui des brevets, de la propriété intellectuelle, ou encore de textes spécifiques aux logiciels. En règle générale, la distribution et l’utilisation des logiciels sont régies par une combinaison de tout ou partie de ces textes.

Dans le domaine public, le logiciel n'appartient à personne mais tout le monde peut l'utiliser. Il est même permis de construire une offre propriétaire sur la base d'un code issu du domaine public.

Un élément "tombe dans le domaine public" principalement : ♦ du fait du titulaire des droits qui les abandonne (par exemple : le titulaire d’un brevet cesse de

payer les redevances de maintien de la protection accordée par le titre de brevet. L’objet du brevet tombe ainsi dans le domaine public),

♦ du fait de l’extinction de la protection par arrivée de son terme (par exemple, un logiciel est protégé par le droit d’auteur jusqu’à 70 ans après la mort de son auteur ; passé ce délai, le logiciel tombe dans le domaine public).

Dans le droit français du logiciel, l’auteur qui divulgue le code objet et le code source du logiciel qu’il a créé, sans pour autant associer le logiciel à une licence, ne perd pas ses droits d'auteur sur ce logiciel, tant qu'il n'y a pas renoncé explicitement.

Il est important de souligner que les remarques faites sur les licences de logiciels libres peuvent parfois s’appliquer également aux licences de logiciels propriétaires, comme par exemple la limitation des garanties apportées à l’utilisateur d’un logiciel.

Page 55: Technologies logiciels - Généralités

Le logiciel libre

Toute reproduction même partielle interdite IGPDE page 55

Les licences - notamment la GPL - offrent un cadre légal très précis aux logiciels libres. Des tribunaux ont récemment reconnu leur validité.

Cela étant, l'utilisateur doit être particulièrement vigilant au statut des composants estampillés "logiciels libres" qui lui sont fournis et à l'obligation de redistribution des développements qu'il effectue, sauf à se procurer des composants sous une autre licence (BSD par exemple). Par ailleurs, la licence GPL n'implique aucunement un support de l'auteur, et encore moins une garantie contre d'éventuels problèmes.

3. MODE DE FONCTIONNEMENT DU LOGICIEL LIBRE

La licence des logiciels libres permet en pratique de partager le code source d'un logiciel, accompagné de tous les éléments permettant de parvenir au logiciel final exécutable par l’utilisateur.

Cette simple particularité dans la licence du logiciel fait basculer vers un modèle de développement logiciel particulier, vers un modèle de développement économique différent et vers une nouvelle répartition des responsabilités dans le secteur de l’industrie logicielle.

3.1. Le partage de logiciels : l’approche collaborative et pragmatique

L’émergence des logiciels libres repose sur un phénomène simple : la volonté de mutualiser les logiciels. Les logiciels sont un bien essentiellement immatériel et reproductible à peu de frais. La mutualisation de leur développement est une approche naturelle pour réduire les coûts ou améliorer la qualité d’un logiciel en accroissant son caractère générique, sa souplesse, sa richesse fonctionnelle et sa modularité.

Cette idée de mutualisation est à l’origine des logiciels libres. Développés selon un mode de travail collaboratif, les logiciels libres sont élaborés grâce aux contributions des membres de la communauté.

Un "core team" - composé de contributeurs de haut niveau - effectue les contrôles, assure la cohérence et la qualité des développements.

Cette organisation permet de produire des logiciels dont le coût est limité et la technicité élevée. De plus, la communauté joue un rôle important dans le déboguage (d'autant plus rapide que les contributeurs sont nombreux) des nouvelles versions, assurant un contrôle qualité à (parfois) grande échelle et réactif.

Un projet de logiciel libre se déroule habituellement selon les trois phases suivantes.

3.1.1. LA PHASE DE DEVELOPPEMENT INITIAL

Un projet de logiciel libre est le résultat de l’implémentation d’un besoin par un utilisateur donné (un développeur individuel ou une société). Dans une optique de mutualisation de l’effort, l’utilisateur/développeur initial du projet décide de partager le résultat du développement. Il publie alors le programme accompagné de son code source sous une licence de logiciels libres.

Page 56: Technologies logiciels - Généralités

Le logiciel libre

page 56 Toute reproduction même partielle interdite IGPDE

3.1.2. LA PHASE D’ESSOR

La phase d’essor est la phase durant laquelle le développeur initial du projet reçoit des contributions permettant d’améliorer son développement initial. Le logiciel du développeur initial remplit un besoin réel pour plusieurs autres utilisateurs / développeurs, qui choisissent de l’utiliser, mais également de l’améliorer pour l’adapter à leur besoin. Ces contributions permettent de faire évoluer le code en terme de fonctionnalité et de généricité.

3.1.3. LA PHASE D’ORGANISATION

La phase d’organisation est atteinte lorsqu'une équipe se met en place autour du développeur initial pour rationaliser, coordonner les évolutions du code, prendre en compte les besoins de nouveaux utilisateurs/développeurs, etc. Le code devient un standard pour sa communauté de développeurs, et les coûts de maintenance sont répartis dans la communauté de développeurs (mais il y a un coût lié au travail de coordination et au maintien de la cohérence d’ensemble).

La caractéristique des logiciels libres est d’émaner parfois de personnes physiques, parfois d’être la propriété conjointe de plusieurs personnes ou entités. Par ailleurs, les projets sont souvent des projets internationaux regroupant des contributeurs issus de différents pays.

3.2. Modèle économique des logiciels libres

3.2.1. LES MOTEURS DE LA PRODUCTION DE LOGICIEL LIBRE

Les entités qui contribuent au niveau mondial à la production de logiciel libre relèvent du secteur public aussi bien que du secteur privé.

3.2.1.1. LE SECTEUR PUBLIC

Dans le secteur public les premiers contributeurs ont été les laboratoires de recherche et les universités, qui ont été rejoints par les administrations centrales et les collectivités locales. Pour un chercheur dans un laboratoire ou une université, le cadre du logiciel libre permet de diffuser des travaux innovants à une large communauté ou aussi d'effectuer une contribution ponctuelle qui vient s'ajouter à un ensemble déjà élaboré. Dans les deux cas, la contribution du chercheur reste identifiable et peut accroître sa notoriété. Pour les administrations centrales et les collectivités locales, une des motivations est la mise en place d'interfaces ou d'outils utilisables par des entités connexes mais non reliées hiérarchiquement, une autre motivation est la diffusion parmi les fournisseurs d'interfaces standardisées comme, par exemple, pour le transfert de contenus multimédias.

3.2.1.2. LE SECTEUR PRIVE

Dans le secteur privé les facteurs décidant les sociétés à produire du logiciel libre sont liés au rôle de la société en tant que constructeur informatique, éditeur de logiciels, distributeur ou intégrateur de systèmes. Certaines sociétés combinent plusieurs de ces rôles.

La majorité des constructeurs informatiques voit Linux comme une façon d'élargir la diffusion de leurs matériels. Certains constructeurs vont même jusqu'à contribuer aux logiciels libres, soit pour accroître les fonctionnalités et les performances de Linux, soit, pour élargir l'offre de logiciels sur leurs plates formes Linux ainsi qu'Unix.

Certains éditeurs de logiciels qui veulent percer sur un marché contrôlé par un petit nombre d'acteurs placent leur logiciel sous licence libre afin de lui assurer une diffusion maximale. Leurs

Page 57: Technologies logiciels - Généralités

Le logiciel libre

Toute reproduction même partielle interdite IGPDE page 57

revenus proviennent de la fourniture de services connexes : formation, support ou même fourniture anticipée de la dernière version moyennant une redevance.

Les distributeurs de logiciels libres prennent des engagements de maintenance de ces logiciels. Ils sont donc directement intéressés à contribuer à la communauté de développement constituée autour d'un logiciel.

Les sociétés de services intègrent dans les systèmes qu'elles réalisent des composants en logiciel libre. Elles sont ainsi amenées à contribuer à la maintenance de ces composants. Par ailleurs les sociétés de services réalisent des logiciels libres pour le compte d'administrations ou de sociétés.

3.2.2. LES REVENUS TIRES DES LOGICIELS LIBRES

3.2.2.1. LES REVENUS DIRECTS

Les revenus directs liés aux logiciels libres sont de deux ordres.

Des revenus liés à la distribution des logiciels libres. Contrairement à un avis couramment répandu, la gratuité n’est pas une caractéristique intrinsèque du logiciel libre. Il est possible pour un logiciel libre d'être diffusé moyennant une contrepartie monétaire. C'est le cas par exemple pour les distributions de Linux. On constate cependant fréquemment une diffusion gratuite par publication sur un site web.

Des compétences fortes en termes notamment d'intégration sont le plus souvent nécessaires. Des revenus liés à la fourniture de services connexes par les distributeurs ou par les sociétés de service.

Les services fournis autour des logiciels libres sont notamment l'intégration, le développement d'extensions, la formation, le support et la maintenance, ce qui constitue une autre forme de dépenses (fixes), à moins de posséder ses propres équipes en interne,

La réalisation de logiciels libres par une société de services pour le compte d'un donneur d'ordres peut aussi entrer dans cette catégorie de revenus.

D'une manière générale, les coûts sont déportés vers le service.

Dans l'hexagone, des sociétés de services spécialisées dans les logiciels libres (SSLL) se sont créées, mais peu parviennent pour le moment à sortir du lot.

Les grandes SSII ont pris le train en marche avec un certain succès. Des fournisseurs tels que IBM, Oracle, HP ou Dell fondent eux aussi une large partie de leur stratégie sur Linux et les logiciels libres. Globalement, l'offre est variée.

3.2.2.2. LES REVENUS INDIRECTS

Les revenus indirects découlent des avantages concurrentiels qu'une société acquiert en s'appuyant sur le logiciel libre.

Ces avantages varient suivant le profil de la société : ♦ un constructeur qui intègre des logiciels libres élargit son offre de systèmes d'exploitation et de

logiciels, ce qui contribue à son effort de vente ; ♦ une société de services peut accroître sa productivité en intégrant des composants libres.

Page 58: Technologies logiciels - Généralités

Le logiciel libre

page 58 Toute reproduction même partielle interdite IGPDE

4. UTILISATION DES LOGICIELS LIBRES

4.1. L’intérêt des logiciels libres

L’intérêt des logiciels libres peut se décomposer selon les sept points suivants.

4.1.1. COUT D'INVESTISSEMENT

Le coût des licences est nul ou, dans le cas d'un distributeur, faible.

Les logiciels libres ne nécessitent pas en général d'acquisitions de matériel spécifiques, ils peuvent généralement fonctionner avec du matériel standard de type PC, ainsi que sur de nombreuses plates-formes matérielles. Ils se caractérisent souvent par une demande de ressources matérielles moins importante que pour les logiciels propriétaires, pour obtenir une réponse équivalente en terme de performances.

4.1.2. COUT DE FONCTIONNEMENT

En terme de maintenance, la participation aux évolutions réalisées par la communauté de développeurs favorise la mutualisation des travaux et donc la réduction des coûts.

4.1.3. QUALITE ET PERFORMANCE

La qualité technique du code, écrit en mettant l'accent sur la fiabilité et la performance, relu et corrigé est assurée par de nombreux programmeurs qui prennent en compte les remarques d'une communauté d'utilisateurs active.

La libre disposition du code source et la logique de composants permettent d'adapter le logiciel (llexibilité) au type d'utilisation, donc, le cas échéant, de l'alléger et d'en optimiser les performances.

4.1.4. SECURITE

L'accès au code source facilite la détection d'éventuels trous de sécurité intentionnels ("backdoors") dans un logiciel libre, bien que ceux-ci soient habituellement extrêmement difficiles à détecter.

4.1.5. OUVERTURE ET INTEROPERABILITE

Les logiciels libres sont "ouvert" car ils respectent généralement les standards édictés par les instances de standardisation et de normalisation alors que certains éditeurs importants s'en écartent.

Le respect des standards par les logiciels libres implique que l'offre de logiciels libres respecte les critères du cadre commun d'interopérabilité.

Page 59: Technologies logiciels - Généralités

Le logiciel libre

Toute reproduction même partielle interdite IGPDE page 59

4.1.6. PERENNITE

Le gage de la pérennité pour les logiciels libres repose notamment sur la taille de la communauté de développeurs et de clients.

4.1.7. INDEPENDANCE

L’indépendance à l’égard d’un éditeur est favorisée par la libre disponibilité du source, ainsi que la possibilité de le modifier et le redistribuer, permettant, si nécessaire, une personnalisation d’un logiciel par une organisation. Le logiciel peut ainsi évoluer indépendamment de son développeur, soit par des évolutions effectuées par des équipes internes à l’organisation, soit par sous-traitance.

De même, l’indépendance est également vraie à l’égard des prestataires. Le logiciel libre est un moyen d’accroître la concurrence pour le service autour des logiciels libres par un accès plus large à la connaissance autour d’un produit donné.

À ce titre, l’emploi des logiciels libres dans les administrations permet de stimuler la concurrence dans les marchés publics. Dans les marchés de réalisation de logiciels passés par l'administration, l’emploi de logiciels libres et la diffusion du résultat comme logiciel libre, permettent à d’autres prestataires de prendre connaissance des travaux effectués et de se positionner sur les marchés ultérieurs de maintenance corrective ou évolutive.

4.2. Précautions d’emploi

Les logiciels libres présentent de nombreux avantages, mais leur usage suppose quelques précautions d’emploi. Ils demandent notamment de connaître la manière dont fonctionne le secteur du logiciel libre. La licence d'un logiciel libre autorise en pratique son bénéficiaire à être utilisateur de l’outil mais également producteur d’évolutions du logiciel. Chaque utilisateur de logiciel est donc potentiellement un contributeur. Dans ce schéma le rôle de l’éditeur est tenu par un groupe de contributeurs, coordonnés, en général, par l'auteur.

L’utilisateur d’un logiciel libre doit donc comprendre que la transformation du rôle d’éditeur dans la relation triangulaire entre société de services, éditeur et clients entraîne une responsabilité accrue pesant sur le couple client/prestataire de service.

Ces responsabilités accrues doivent être prises en compte : ♦ soit par un accroissement du rôle de l’utilisateur, par exemple en devenant lui-même

développeur/contributeur, ou en effectuant la veille technologique nécessaire pour comprendre les évolutions d’un logiciel libre ;

♦ soit par un accroissement de la responsabilité des prestataires de service, afin qu’ils assurent et se partagent des rôles nouveaux (support de type éditeur, assistance à la publication de code libre, animation d’une communauté autour d’un logiciel, etc.).

Dans tous les cas il faut bien comprendre que le pendant à cette gratuité des licences est une reprise en main de responsabilités théoriquement assurées par l’éditeur.

Il faut donc choisir une solution logiciel libre en étant conscient de cette contrainte et disposer de solutions permettant de gérer cette situation (équipe interne, sous-traitance, etc).

En revanche, il n’est pas nécessaire d’être contributeur de logiciels libres, c’est-à-dire diffuseur de modification pour bénéficier des avantages des logiciels libres présentés plus haut.

Page 60: Technologies logiciels - Généralités

Le logiciel libre

page 60 Toute reproduction même partielle interdite IGPDE

4.3. Domaines d'utilisation des logiciels libres

Il est aujourd’hui difficile de cantonner les logiciels libres à un domaine d’application particulier. Les logiciels libres s’appliquent donc potentiellement à tous les domaines d’activité du logiciel. Ils se développent particulièrement rapidement dès lors qu’échange de données et interopérabilité sont en jeu.

Les performances et la réputation de stabilité des logiciels libres en font aujourd'hui des concurrents sérieux pour les solutions propriétaires.

Partant de domaines extrêmement techniques comme les noyaux de systèmes d’exploitation et les services d’infrastructure réseau, le champ d’application des logiciels libres s’étend aujourd’hui progressivement aux applications métiers et utilisateurs. Ce champ englobe les applications orientées Web, comme les applications d’enseignements à distance, de gestion de contenus et les applications destinées à être utilisées sur le poste de l’utilisateur final, comme la suite bureautique "OpenOffice" par exemple.

Une liste non exhaustive est présentée à titre d'illustration.

4.3.1. POSTE DE TRAVAIL ET SERVEUR

Produit nature Linux (sous diverses distributions) Système d'exploitation (poste de travail et serveur) "OpenOffice" Suite bureautique

4.3.2. SYSTEMES D'EXPLOITATION EMBARQUES/TEMPS REEL

Produit nature Linux Sous diverses distributions Jaluna-1 Basé sur le noyau libre C5 eCos Hérité du rachat de Cygnus en 1999

4.3.3. DEVELOPPEMENT/PUBLICATION DE CONTENU

Produit nature Cocoon Moteur de publication de documents XML Strusts Framework pour application Java Eclipse Plate-forme de développement soutenue par IBM Lido Community Edition Accès aux données, s'adosse à JDO NetBeans Plate-forme de développement soutenue par Sun Joram Middleware de messagerie asynchrone Perl Langage de programmation interprété PHPNuke Moteur de publication Python Langage de programmation interprété Appli-Bus Bus applicatif pour l'EAI Hibernate Outil de mapping objet-relationnel Spip Moteur de publication de contenu Zope Publication de contenu

Page 61: Technologies logiciels - Généralités

Le logiciel libre

Toute reproduction même partielle interdite IGPDE page 61

4.3.4. OUTILS DE CLUSTERING ET DE GRID

Produit nature Globus Toolkit Pour bâtir des architecture Grid Clic Administration de clusters Kimberlite Pour environnements à tolérance de panne Oscar Installation et exploitation de clusters Cluster Suite Haute disponibilité, équilibrage de charge IP Scyld Beowulf Solution de mise en clusters, supportée par la Nasa

4.3.5. SYSTEMES DE GESTION DE BASE DE DONNEES (SGBD)

Produit nature MaxDB Base de données relationnelle MySQL Base de données transactionnelle PostGreSQL Base de données transactionnelle

4.3.6. INFRASTRUCTURE RESEAU

Produit nature Bind Serveur de noms de domaine NMAP Logiciel de cartographie réseau Nagios Outil de monitoring réseau Ximian Red Carpet Gestion centralisée des PC et serveurs VNC Prise de contrôle à distance Network Gestion de l'infrastructure Red Hat Samba Serveur de fichier sous Linux Squid Serveur proxy-cache sur Unix et Linux

4.3.7. AUTHENTIFICATION / ANNUAIRE / PKI

Produit nature EuPKI Solution de PKI FreeRadius Serveur Radius IDX-PKI Infrastructure à clé publique OpenLDAP Annuaire LDAP

4.3.8. SERVEURS D'APPLICATION ET SERVEURS WEB

Produit nature Apache Serveur Web utilisé par la majorité des sites PHP Serveur de page Web dynamiques Tomcat Moteur de servlets et d'application JSP JBoss Serveur d'application J2EE Enhydra Serveur d'application Java/XML Jonas Serveur d'application J2EE Zend Engine Moteur d'exécution PHP

4.3.9. SECURITE

Produit nature Security Linux Pare-feu, filtrage de contenu … Bastille Renforce la sécurité sous Linux IPCop Firewall Pare-feu disponible en français Nessus Scanner de vulnérabilités SmoothWall Pare-feu requérant peu de ressources Snort Logiciel de détection d'intrusion

Page 62: Technologies logiciels - Généralités

Le logiciel libre

page 62 Toute reproduction même partielle interdite IGPDE

4.3.10. MESSAGERIE

Produit nature Sympa Gestion de liste de diffusion IMP Outils de webmail écrit en PHP Sendmail Serveur SMTP très répandu Qmail Serveur SMTP

4.4. Un enjeu pour l'administration

Dans le cadre de la modernisation des systèmes d’information de l’État, les administrations sont incitées à privilégier le recours aux solutions ouvertes proposées par le marché.

Aujourd’hui, la qualité de certains logiciels libres a permis de répandre leur utilisation et contribue à la diffusion des concepts sous-jacents. Le périmètre fonctionnel couvert par les logiciels s’accroît régulièrement et s’étend maintenant des serveurs aux applications clientes. L'offre de services s'est multipliée et diversifiée. Ce développement en France s'inscrit dans un développement des logiciels libres dans l'Union européenne et au niveau international.

Les ministères aussi bien que les collectivités territoriales sont maintenant des utilisateurs significatifs des logiciels libres mais aussi des producteurs de logiciels libres. Cette multiplication des projets ainsi que la nouveauté de l'approche en matière de licences des logiciels impliquent que l'administration progresse dans la construction d'un cadre, notamment administratif et juridique, cohérent et sûr.

C'est pourquoi le Comité Interministériel pour la Réforme de l’État a donné mission à l'ATICA (Agence pour les Technologies de l’Information et de la Communication dans l’Administration) de proposer aux administrations une démarche de choix et d’usage de licences de logiciels libres.

4.5. Bénéfices et risques pour l'administration

Le recours aux logiciels libres constitue un des leviers de la modernisation des systèmes d’information de l’État. La possibilité de recourir selon les circonstances tant aux logiciels libres que propriétaires élargit les possibilités de choix des administrations ; les bénéfices pour les administrations de l’État, les établissements publics de l’État et les collectivités locales sont de plusieurs ordres.

4.5.1. Accéder a un patrimoine considérable de logiciels souvent de qualité et conformes aux normes.

4.5.2. Maîtriser le rapport coût total de la solution/adéquation aux besoins par le renforcement de la concurrence, afin de maintenir ce ratio a un niveau le plus bas possible.

4.5.3. Maîtriser les logiciels eux-mêmes et pouvoir s’assurer de leur pérennité.

La maîtrise du logiciel s’entend ici à deux niveaux, un premier niveau – technique - où l’administration est capable de comprendre et de modifier le logiciel afin de faciliter son intégration et/ou son évolution, un second niveau où l’administration dispose d’un meilleur contrôle sur la

Page 63: Technologies logiciels - Généralités

Le logiciel libre

Toute reproduction même partielle interdite IGPDE page 63

politique d’évolution de son parc applicatif et d’une manière générale sur la maîtrise de la gestion des biens publics.

Cet argument prend une résonance particulière dans des domaines touchant à la sécurité tel que l’authentification et l’identité du citoyen ou ceux relatifs à l’intégrité, à la confidentialité et à l’accessibilité au cours du temps des données.

4.5.4. Capitaliser les nombreux développements réalises par et pour l'administration afin de faire bénéficier rapidement l'ensemble des administrations d'un logiciel d'intérêt général développé pour une entité administrative donnée.

Cette capitalisation peut concerner des entités majeures de l'administration, comme par exemple les administrations centrales ou les collectivités locales mais aussi se situer au niveau européen en faisant bénéficier des développements, sur des domaines transverses, les services concernés des pays de l'Union européenne.

4.5.5. Tout développement et déploiement de logiciels comporte des risques.

L’utilisation des logiciels libres, en donnant une plus grande marge de manœuvre aux utilisateurs, nécessite aussi de leur part une compréhension claire des implications nouvelles liées à leur plus grand contrôle sur le logiciel. Il convient d'éviter les principaux facteurs de risque suivants : ♦ Réaliser des développements en utilisant des composants logiciels libres dont les licences sont

incompatibles entre elles. La disponibilité du code source permet techniquement de composer un logiciel en utilisant le code source de composants ou des logiciels tout entiers soumis à des licences différentes. Les maîtrises d’ouvrages doivent veiller à la compatibilité des composants afin de garantir la légalité du produit résultant.

♦ L'implication de l'administration comme responsable des logiciels développés ou modifiés, en ce qui concerne la problématique du respect du droit d’auteur ou de la garantie. La diffusion publique de logiciels réalisés ou modifiés par l’administration nécessite de s’assurer que les droits des auteurs soient respectés et de préciser les garanties qui sont fournies avec ces logiciels (qu’il s’agisse de logiciels libres ou propriétaires). La disponibilité du code source rend plus aisée la vérification d’éventuelles violations du droit d’auteur et elle demande donc une plus grande attention à la provenance du code source qui est incorporé dans le logiciel.

Page 64: Technologies logiciels - Généralités
Page 65: Technologies logiciels - Généralités

Institut de la Gestion Publique

et du Développement Economique 20, allée Georges Pompidou

94306 Vincennes cedex SERVEUR PEDAGOGIQUE INTRANET

http://alize.alize/crp/tic

2004