3. Les serveurs, postes de travail, applications...

Les serveurs

Qu'est-ce qu'un serveur ?

Un serveur est un ordinateur qui fournit un service : partage de fichiers, base de données, etc. Un ordinateur qui souhaite accéder à un service est appelé client.

Si tout ordinateur peut, aujourd'hui, avoir des fonctions de serveur (par exemple, pour se connecter à distance à une machine pour faire de l'assistance, on utilise un service spécialisé qui fournit cet accès), le terme de serveur est en général réservé à des machines dont la fonction première est de fournir un service défini à un ensemble d'autres ordinateurs.

Un serveur peut être une très grosse machine (un super-calculateur, par exemple), ou un composant très simple, qui ne réalisera qu'une tâche... Certains serveurs sont reliés entre eux pour mettre en commun leur puissance et réalise des tâches très complexes.

Les systèmes d'exploitation

Le système d'exploitation est le programme qui permet de faire fonctionner une machine. Il comprend différentes instructions qui permettent de dialoguer avec les composants physiques de l'ordinateur, pour leur faire exécuter un certain nombre d'instructions.

Les premiers systèmes d'exploitations ne comprenaient que des commandes en format binaire. Aujourd'hui, on utilise des interfaces beaucoup plus simples d'emploi, certains étant même graphiques1.

Les systèmes d'exploitation sont très nombreux, sans compter les versions qui évoluent régulièrement. Pour essayer d'y voir clair, en voici une petite classification...

On distingue d'abord deux types de systèmes d'exploitation : ceux qui sont propriétaires (et la plupart du temps payants), et ceux qui sont « Open Source » (le code est publié), et qui sont gratuits (mais il existe des exceptions).

Parmi les systèmes propriétaires, le plus connu est Microsoft Windows Server (versions 2003, 2008 et 2012), mais on peut également citer Mac OS X (Apple), ou des systèmes spécifiques des serveurs d'entreprise (z/OS dans les gros systèmes IBM, par exemple). Cisco, fabricant d'équipements réseaux, a également développé son propre système pour faire fonctionner ses matériels.

Dans le domaine de la virtualisation, VMWARE a créé un système (ESX) qui est soit payant, soit gratuit selon la version installée.

À partir de 1969, une nouvelle famille de systèmes d'exploitation est apparue : UNIX. Même si les spécifications de départ étaient ouvertes, il s'agit de systèmes propriétaires, chaque grand fabricant ayant créé sa propre version (AIX pour IBM, par exemple). Parmi les variantes, BSD est très réputé, et ses multiples évolutions, publiées au format Open Source, sont connues pour leur fiabilité et leur sécurité.

En 1991, le noyau Linux est créé par un étudiant finlandais, Linus Torvald, et est distribué sous licence Open Source. Une des premières distributions existantes est DEBIAN, qui continue à être réputée pour sa fiabilité (elle équipe l'ensemble des ordinateurs de la station spatiale). D'autres distributions vont voir le jour : REDHAT (payante), CENTOS (version gratuite de REDHAT), MANDRIVA (basée initialement sur REDHAT), UBUNTU (basée initialement sur DEBIAN). La liste est loin d'être complète !

La virtualisation

Aujourd'hui, les ordinateurs sont de plus en plus puissants, mais sont rarement utilisés au maximum de leurs capacités2. Et c'est normal : si vous créez un serveur web dans une petite structure, seules quelques requêtes seront traitées par seconde, bien loin de la capacité intrinsèque de la machine.

Pour exploiter au mieux la puissance des machines, la virtualisation a été popularisée dès la fin des années 1990. Elle consiste à faire fonctionner plusieurs serveurs différents dans la même machine physique, en utilisant un logiciel spécialisé (l'hyperviseur) qui va se charger de partager les ressources de la machine entre chaque instance (ou serveur) virtuelle.

Les hyperviseurs sont maintenant capables de faire fonctionner la plupart des systèmes d'exploitation classiques : on peut ainsi faire cohabiter dans la même machine physique des serveurs Windows et des serveurs Linux.

VMWARE a été le premier à commercialiser une solution de virtualisation. D'autres solutions (payantes ou non) sont maintenant disponibles.

Aujourd'hui, le marché se répartit principalement entre :

    • VMWARE ESX (version payante) et ESXi (version gratuite, cette dernière étant largement déployée au sein du MAAF). La gamme Vmware s'appelle maintenant vSphere ;
    • Microsoft Hyper-V, dédié à l'environnement Microsoft ;
    • QEMU/KVM, solution Open Source fonctionnant sous Linux ;
    • XEN, également Open Source, et également sous Linux.

Centres de traitement, hébergement, l'informatique dans les nuages

Un des enjeux majeurs dans le domaine des serveurs est la sécurisation de l'infrastructure. En simplifiant, il faut que :

    • les serveurs soient toujours disponibles (le temps de disponibilité est adapté aux besoins réels) ;
    • en cas de surcroît d'activité, on puisse augmenter la puissance disponible pour assurer le fonctionnement ;
    • les données soient protégées, tant d'un point de vue physique que pour éviter qu'elles soient piratées, modifiées, etc.

Les centres d'hébergement

Les centres d'hébergement, qu'ils soient internes à l'entreprise ou publics, sont conçus pour limiter les risques, avec des alimentations électriques redondantes, des accès réseaux multiples, des salles blindées et protégées contre l'incendie, etc. Au final, ces centres présentent souvent des avantages majeurs vis à vis de la disponibilité et de la sécurité. De plus, comme les investissements sont mutualisés entre les différents clients de la plate-forme d'hébergement, les coûts sont réduits.

Par contre, ils représentent un investissement non négligeable au départ. Ils nécessitent une structuration forte du système d'information pour éviter une explosion des coûts induite par des données non optimisées ou des processus trop coûteux (les hébergeurs facturent en général d'une part au volume stocké, et d'autre part en fonction de la puissance informatique consommée).

L'informatique dans les nuages

On parle également beaucoup de « l'informatique dans les nuages », ou cloud. Le principe de base est de s'appuyer sur des centres d'hébergement, qui fournissent non pas des machines, mais des processus « clé en main », par exemple l'hébergement de la messagerie, voire des outils bureautiques en ligne ou des applications comptables. Un des exemples, dans le grand public (mais également utilisé par des sociétés), ce sont les services fournis par Google : messagerie, mais également modification de documents, stockage, etc. Les données sont stockées dans les serveurs de Google, et c'est ce dernier qui est chargé de fournir le service.

Certains fournisseurs de Cloud proposent également des architectures qui permettent d'écrire des applications, en respectant un certain nombre de contraintes (mode d'accès aux données, par exemple).

Les avantages du Cloud sont nombreux : prix faible, pas d'infrastructure serveur à maintenir, etc. Mais les inconvénients aussi... En général, les prestataires s'engagent sur très peu de choses, et ne garantissent que rarement la sécurité totale des données. Il peut également être difficile de récupérer ses données quand on veut changer de fournisseur.

L'accès aux données bureautiques

Le stockage des fichiers dans les serveurs

Les systèmes de fichiers

Traditionnellement, les fichiers sont stockés dans les disques durs des serveurs. Pour que les systèmes d'exploitations arrivent à accéder aux informations stockées dans ces disques durs, des opérations de formatage sont réalisées.

Le formatage permet d'organiser le disque dur de telle manière qu'on puisse y retrouver les informations stockées (on appelle partition l'espace de stockage ainsi créé). Plusieurs modèles d'organisation existent, qui sont décrits dans ce qu'on appelle des systèmes de fichiers. Le stockage est organisé la plupart du temps sous forme arborescente, mais il existe (ou a existé) des systèmes qui fonctionnaient différemment3.

Chaque système de fichiers a ses propres caractéristiques, ses avantages et ses inconvénients. Certains, anciens, étaient limités en terme de longueur de nom de fichier (FAT, par exemple, limitait les noms des fichiers à 8 caractères plus une extension de 3 caractères). D'autres permettent, ou non, la gestion de droits d'accès. Il en existe également qui peuvent gérer des quotas par utilisateur, groupe..., ou sont plus ou moins sécurisés (possibilité de reprise des écritures en cours en cas d'arrêt brutal, support du multi-disques...), ou peuvent être capable de fonctionner à travers le réseau.

En bref, il en existe pour chaque usage !

Voici un bref aperçu des systèmes de fichiers les plus courants (liste non limitative !) :

    • NTFS : système créé par Microsoft, qui supporte des noms de fichiers de plus de 8 caractères, et qui permet de gérer des droits d'accès, de manière hiérarchique ;
    • ISO 9660 : format utilisé dans les CDROM ;
    • UDF : format utilisé dans les DVD ;
    • EXT3, EXT4 : systèmes de fichiers les plus usuels avec Linux. Les droits sont attachés aux fichiers et aux dossiers, et ne sont pas hiérarchiques comme pour NTFS. Ils supportent l'attribution de quotas (aux utilisateurs, aux groupes) et peuvent être chiffrés.

Les systèmes redondants

L'une des plus grosses craintes des informaticiens est de perdre des données suite au crash d'un disque. Pour limiter le risque, des systèmes redondants ont été mis en place, les systèmes RAID (regroupement redondant de disques indépendants). Il en existe principalement 2 types :

    • le RAID 1 fonctionne avec 2 disques : le second disque est l'exacte image du premier ;
    • le RAID 5 fonctionne avec 3, 4 ou 5 disques. L'information est répartie sur chaque disque, et il est possible de reconstruire un disque en panne à partir des autres.

Il en existe des variantes, qui incorporent ou non des disques supplémentaires pour pallier la panne successive de 2 disques...

Les RAID peuvent être gérés soit de manière physique, avec une carte « contrôleur » adaptée, soit directement par le système d'exploitation. Chaque technique présente des avantages et des inconvénients.

Il existe également des systèmes qui permettent de répliquer l'information de manière immédiate entre deux serveurs (et non plus entre deux disques du même serveur), pour augmenter la fiabilité globale. Les serveurs peuvent être plus ou moins éloignés (de quelques mètres à plusieurs centaines de mètres, voire kilomètres...), selon les technologies employées.

Augmenter la taille des espaces de stockage

Historiquement, il était impossible d'augmenter la taille d'un système de fichiers, même en rajoutant un disque supplémentaire. Des mécanismes complémentaires ont été rajoutés pour permettre, justement, l'augmentation de la taille d'une partition. Dans le monde Linux, on parle alors du composant LVM (Logical Volume Manager) qui permet cette gestion de manière simple.

D'autres approches sont parfois mises en œuvre : plutôt que de prévoir un espace de stockage dans chaque serveur, on peut également décider de créer un seul espace de stockage pour l'ensemble des serveurs, chacun pouvant utiliser l'espace dont il a besoin.

Ces serveurs de stockage sont souvent redondants entre eux, et nécessitent, en règle générale, un réseau informatique dédié pour garantir la rapidité des échanges. On parle alors de technologie SAN (Storage Area Network)4.

L'accès aux fichiers : la bureautique traditionnelle

Les fichiers, nous l'avons vu, sont stockés dans des serveurs, dans des arborescences.

Pour y accéder à distance, on utilise alors divers protocoles de communication, qui vont permettre d'ouvrir un fichier depuis un poste du réseau, voire le modifier ou le supprimer.

Là encore, il existe de nombreux protocoles. Le plus connu, celui utilisé par Microsoft, s'appelle SMB. Un autre protocole est capable d'accéder aux fichiers en utilisant la technologie web : on parle alors de webdav. Dans le monde Linux, c'est NFS qui est le plus fréquemment utilisé.

Il existe d'autres protocoles, comme SSHFS, qui permettent d'ouvrir des arborescences de manière sécurisée, l'ensemble du flux réseau étant chiffré.

Accès en mode SMB

Par défaut, les ordinateurs fonctionnant avec Microsoft Windows ne sont capables d'accéder à des fichiers distants qu'en utilisant le protocole créé par Microsoft, SMB. Au départ, ce protocole ne savait pas fonctionner entre deux réseaux, il ne pouvait être utilisé qu'au sein du même réseau local. Ses dernières évolutions l'ont rendu plus rapide et plus robuste.

Il a été porté vers Linux (projet SAMBA).

Même s'il présente de nombreux défauts, il reste toutefois le mode d'accès principal aux fichiers bureautiques dans une infrastructure locale, en raison de son support natif par les systèmes d'exploitation Windows.

Accès en mode web – le protocole webdav

Pour remédier au problème d'accès aux fichiers depuis des sites distants, une des solutions envisagées a été d'utiliser la même technologie que celle utilisée pour consulter les sites web.

Toutefois, cette technologie ne permet nativement que de consulter (un navigateur ne vous permet pas de modifier le site, mais simplement de consulter les informations qu'il vous propose), et n'autorise donc pas la modification de documents. Elle a donc été étendue avec le protocole webdav, qui permet, lui, la modification des fichiers.

Le logiciel LibreOffice, à partir de la version 4, est capable d'ouvrir nativement des fichiers selon le protocole webdav.

La gestion électronique de documents

La gestion des documents depuis des arborescences bureautiques n'est pas adapté à tous les cas de figure, et notamment quand il faut collaborer à plusieurs sur un même dossier.

C'est dans ce contexte qu'ont été mis en place des logiciels de gestion électronique de documents. Les fichiers, plutôt que d'être stockés au sein d'arborescences, sont organisés selon une thématique particulière : dossier, projet, etc. De plus, il est possible de conserver les différentes versions générées : on sait alors qui a modifié quoi, quel que soit le document ou le logiciel qui l'a créé. Enfin, la GED peut intégrer des circuits de validation, qui permettent aux différents intervenants de valider chacune des parties les concernant.

Les postes de travail

Une complexification des plates-formes

Il y a 30 ans, dans les services déconcentrés l'informatique se limitait, au mieux, à quelques terminaux reliés à un mini-ordinateur central. Les terminaux étaient « passif », en ce sens qu'ils ne faisaient qu'afficher les messages transmis depuis le serveur.

L'arrivée des premiers micro-ordinateurs remonte aux années 80. Fonctionnant initialement avec le système d'exploitation MS/DOS, ils ont été dotés d'une interface graphique avec Windows, puis le réseau a été installé dans les années 90, conjointement avec l'arrivée des premiers serveurs bureautiques. Microsoft Windows a été en quasi situation de monopole, les autres systèmes ayant totalement disparus des postes de travail ou sont restés marginaux (Apple).

Les années 2000 ont vu l'essor des connexions sans fil : wifi, puis connexion via GSM (3G, 4G bientôt...). La mobilité a connu son envol, ce qui s’est traduit, pendant cette décennie 2010, par une multiplication des modèles de terminaux : on est passé des téléphones mobiles aux smartphones, aux tablettes, on parle de lunettes connectées, les consoles de jeux peuvent se brancher à internet, etc.

De fait, si le système d'exploitation Microsoft Windows reste prépondérant pour les postes de travail traditionnels, il est largement concurrencé par les systèmes d'exploitation développés spécifiquement pour les nouveaux terminaux : IOS chez Apple, Android chez Google. Ces nouveaux venus essaient de se faire une « place au soleil », comme la fondation Mozilla qui a lancé son propre système fonctionnant à partir de Firefox, ou Ubuntu, qui adapte son Linux aux smartphones. L'hégémonie de Microsoft, telle qu'on a pu la connaître dans les années 1990-2000, est probablement terminée.

Au niveau de l'entreprise, ces nouveaux terminaux induisent de nouveaux usages : les cadres, les techniciens sont progressivement dotés de smartphones qui leur permettent de relever leurs courriels, de consulter leur agenda. Les ultra-portables facilitent le travail en situation de mobilité.

Par contre, ces nouveaux usages complexifient le travail des équipes informatiques, tant pour maîtriser les nouveaux terminaux que pour assurer la sécurité du système d'informations. Plus il y a d'équipements différents à gérer, plus cela devient complexe.

Des évolutions fortes

Au niveau des applications métiers

Jusqu'à la fin des années 90, les applications métiers étaient développées avec des logiciels spécifiques. Ces programmes étaient installés dans les postes de travail concernés. Les bases de données étaient hébergées dans les serveurs, et le poste de travail permettait de les manipuler via l'application spécifique installée. On parle d'architecture client-serveur et d'applications en mode « client lourd ».

Cette architecture était bien adaptée quand le réseau était lent : les volumes de données échangés étaient faibles. Mais elle avait beaucoup d'inconvénients : chaque nouvelle version imposait de passer dans chaque poste de travail pour réaliser la mise à jour. De plus, la vitesse de traitement était directement dépendante de la puissance de la machine. Plus le logiciel devenait complexe, plus la puissance des micro-ordinateurs devait augmenter (mémoire, processeur, disque...).

Au début des années 2000, l'essor du web et l'augmentation des débits du réseau étendu5 a permis d'envisager d'écrire les applications directement en langage web (en fait, plusieurs langages coexistent). Le programme tourne uniquement dans les serveurs centraux, et l'application est accessible de partout avec un navigateur (Firefox, par exemple). Les mises à jour ne se font que dans les serveurs, les utilisateurs ayant alors tous la même version.

Par contre, la moindre coupure du réseau rend l’application indisponible.

Avec les évolutions des technologies web (on parle de HTML5, le langage qui permet d'afficher les pages dans les navigateurs web, ou du javascript, qui permet, entre autres, de réaliser des animations graphiques – glisser-déposer, etc.), il n'y a plus guère d'applications métiers qui soient écrites en mode « client lourd ». Le passage au mode web permet, en outre, une utilisation plus indépendante du type de terminal : que votre tablette fonctionne avec Android, ou que vous disposiez de la toute dernière version de Windows dans votre portable, votre application fonctionnera de la même manière dans vos deux terminaux.

Une augmentation importante des solutions Open Source

Si les solutions Open Source ne faisaient pas très « sérieux » dans les années 90, ce n'est plus le cas aujourd'hui. La Gendarmerie nationale a migré vers Linux Ubuntu et OpenOffice depuis des années.

Les politiques des éditeurs privés sont souvent source de nombreuses déconvenues. Dans de nombreux cas, les tarifs négociés lors du premier marché n'ont jamais pu être maintenus lors de leur renouvellement. La tentation de se tourner vers des solutions Open Source est alors forte pour pouvoir accompagner la croissance des besoins dans les services, tout en maîtrisant la dépense financière.

Des stratégies de virtualisation des postes de travail ?

La virtualisation, nous l'avons vu, est très fréquemment utilisée dans les serveurs. On a également tenté de l'implanter dans les postes de travail, pour deux raisons principales :

    • soit pour supporter une autre version du système d'exploitation, celui installé initialement étant incompatible avec une ou plusieurs applications ;
    • soit pour isoler le fonctionnement de plusieurs applications entre elles, et ainsi limiter les risques au niveau de la sécurité.

Aujourd'hui, cette approche reste très marginale.

Un peu de prospective ?

Pour des raisons sécuritaires, les administrations voudront conserver la gestion de leur parc de micro-ordinateurs, et limiter la connexion de matériels externes. Il est toutefois probable, comme cela se fait déjà avec des nomades ou des sociétés tierces, que des accès soient ouverts à un nombre limité d'applications métiers ou d'applications web, via des connexions sécurisées.

Pour des raisons de facilité d'usage, et on le voit bien avec les smartphones et les tablettes, les applications dédiées devraient continuer à coexister avec les applications web. La mobilité ira en grandissant, chacun voudra pouvoir accéder à son environnement de travail de partout. Il n'y aura plus un seul système d'exploitation pour faire fonctionner les postes de travail, mais probablement plusieurs ; une fois toutes les applications métiers réécrites en mode web, le bénéfice de conserver des machines avec Microsoft Windows deviendra négligeable, la plupart des applications bureautiques existant sous d'autres systèmes, comme Linux ou Android.

Néanmoins, l'enjeu majeur restera la maîtrise de la sécurité, et ce sera probablement le frein le plus important aux évolutions futures.

Les applications métiers

La gestion des dossiers repose, aujourd'hui, sur l'utilisation de logiciels écrits spécifiquement, les applications métiers.

Les programmes sont conçus pour accéder aux mêmes données, centralisées dans des serveurs, en utilisant une connexion réseau. C'est l'architecture client-serveur.

L'architecture client-serveur

Le serveur peut contenir :

    • les données (on parle alors de système de gestion de bases de données, ou SGBD) ;
    • des programmes de traitement, qui sont utilisés pour réaliser des opérations lourdes (envoi des lots de paiement, création de statistiques, etc.).

Le client réalise des opérations (saisie d'informations, par exemple), et quand l'opérateur valide l'opération en cours, les données sont transmises au serveur, qui pourra les stocker, déclencher des traitements, etc.

Dans les années 90, les programmes étaient installés dans les micro-ordinateurs, et utilisaient la puissance des machines locales : on parle alors d'une architecture en « client lourd ». L'inconvénient majeur est qu'il faut passer dans chaque ordinateur à chaque nouvelle version du programme. Néanmoins, cela permet d'avoir des interfaces totalement adaptées au micro-ordinateur, souvent plus pratiques.

Pour simplifier les déploiements, et avec l’avènement d'internet, on a commencé à déployer les applications non pas dans les postes de travail, mais dans des serveurs dédiés. Les utilisateurs accèdent à l'application via un navigateur : on parle alors de client léger.

Client lourd, client léger

Une application en mode « client lourd » est réalisée de manière à s'exécuter nativement dans le poste de travail. Elle est écrite spécifiquement pour un système d'exploitation6. Elle présente plusieurs avantages : ergonomie parfaitement adaptée au système d'exploitation, pas de besoin de puissance particulière au niveau des serveurs, fonctionnement même en cas d'indisponibilité du réseau... On le voit avec les smartphones : les applications spécifiques sont largement préférées aux applications en mode web.

Toutefois, cela pose des problèmes de gestion : il faut assurer les mises à jour pour l'ensemble du parc d'ordinateurs, ce qui peut être assez compliqué. Elles nécessitent également une certaine maîtrise des postes des utilisateurs : c'est souvent le cas7 pour les postes des collaborateurs, mais pas du tout pour les clients ou les administrés.

A contrario, les applications écrites en mode « client léger » s'exécutent dans un navigateur internet. Tous les systèmes d'exploitation disposent d'un navigateur : l'application est donc théoriquement utilisable à partir de n'importe quel terminal.

Elles posent néanmoins d'autres problèmes : l'ergonomie est celle du navigateur, et malgré l'emploi de langages spécifiques (javascript), elle reste largement en deçà de ce qu'on peut faire avec les applications en client lourd. De plus, si elles doivent être utilisées depuis des smartphones, il faut créer des pages à la taille et à l'ergonomie adaptées, ce qui complexifie le développement.

Les serveurs doivent également être dimensionnés pour supporter l'ensemble des clients qui vont se connecter.

Enfin, l'accès en mode déconnecté, quand le réseau n'est plus disponible, n'est pas possible8.

Voici un tableau récapitulatif des avantages et des inconvénients de chaque type de client :

En milieu professionnel, aujourd'hui, les applications « client lourd » sont plutôt réservées aux outils de productivité quotidienne (traitement de texte, client de messagerie, et également navigateur) ou aux applications qui nécessitent de la puissance de calcul et une ergonomie de bonne qualité (outils de retouche d'image, SIG, …), et les applications « client léger » sont en général conçues pour le traitement des dossiers (applications métiers).

Il ne s'agit pas d'une règle absolue, on retrouve des exceptions dans les deux cas...

Applications Open Source ou propriétaires ?

Une application open source est une application dont le code est mis à la disposition de tous. Le code peut être modifié, reproduit, intégré à d'autres logiciels le cas échéant, selon les conditions de la licence. Il en existe de nombreuses, mais les trois principales sont les suivantes :

    • La licence GPL (GNU General Public license),aujourd'hui en version 3, autorise tout utilisateur à recevoir une copie du logiciel publié sous celle-ci. Il est possible de modifier le logiciel, à condition que toutes les modifications, dès lors qu'elles ne sont pas conservées pour un usage privé, soient également publiées sous cette même licence. Elle autorise l'usage commercial du logiciel. un logiciel qui inclut un composant GPL doit être publié également sous licence GPL.
    • La licence LGPL (GNU Lesser General Public license) est moins contraignante (Lesser signifie moindre en anglais) : le composant fourni selon celle-ci peut être associé à du code qui n'est pas publié sous cette licence ; l'aspect héritage de la licence GPL n'est plus obligatoire. La seule obligation consiste à publier les modifications du composant sous licence LGPL.
    • La licence BSD (Berkeley software distribution license) est la moins restrictive : en gros, on peut faire ce qu'on veut du code récupéré. Le code source publié sous licence BSD peut être incorporé dans des solutions propriétaires. De ce fait, des modifications de code BSD peuvent être propriétaires

Les licences CeCill ont été créées à l'initiative du CEA, du CNRS et de l'INRIA, pour que les organismes publics puissent publier les logiciels qu'ils ont conçus. Il existe 3 licences CeCill : la licence CECILL-A, compatible avec la licence GPL, la licence CECILL-B, compatible avec la licence BSD, et la licence CECILL-C, destinée aux composants, est compatible avec la licence LGPL.

L'open source a largement investit de grands secteurs du développement logiciel. C'est un des moyens de mutualiser la recherche et le développement (R&D) avec des partenaires, voire des concurrents qui se différencieront sur les usages ou l'intégration proposée. De grandes sociétés participent à des projets open source (IBM, YAHOO, GOOGLE...), la plupart issues du monde informatique, mais pas seulement : par exemple, les constructeurs automobiles mettent également au point une plate-forme commune pour gérer l'informatique embarquée dans les automobiles, chacun n'ayant pas les moyens de créer la sienne, et l'open source évite qu'un concurrent puisse s'approprier exclusivement le travail des autres.

L'open source gagne tous les pans de l'informatique, et particulièrement les domaines de l'infrastructure. Linux est open source, tout comme Apache (le serveur web archi-dominant), MySQL ou PostGreSQL, deux bases de données largement répandues, par exemple. On le retrouve également dans les postes de travail, avec Firefox, Thunderbird, LibreOffice, GIMP (retouche d'image), VLC (lecteur vidéo), etc.

L'avantage majeur de l'open source, en dehors du fait que les coûts acquisition sont limités, est qu'il repose sur des formats standards, ce qui facilite l'interopérabilité.

Des études ont montré que la qualité du code est équivalente (nombre d'erreurs de codage) entre les produits open source ou propriétaires. On ne peut considérer qu'une approche est meilleure que l'autre, de ce point de vue.

Les logiciels commerciaux ont tendance à se cantonner, de plus en plus, soit à des situations héritées du passé (Windows en est un parfait exemple), soit à des marchés de niche ou à de nouvelles innovations créées par de petites sociétés, qui ne peuvent se passer des coûts de licence pour supporter le développement de leurs produits. Très souvent, dans ce second cas, elles publient une version limitée en terme de fonctionnalités en open source (version appelée communautaire), et réservent leurs innovations, leur support et leur formation, leur documentation, à une version commerciale. Les petites sociétés sont toutefois, à un moment donné, confrontées à des problèmes de taille : le rajout de fonctionnalités, l'intégration de nouveaux besoins, impose souvent des moyens humains dont elles ne disposent pas, et leur produit, innovant lors de sa sortie, risque de devenir moins performant ; les utilisateurs peuvent s'en détourner, compte-tenu des prix de licences, pour opter vers des solutions open source équivalentes8. Le risque est en général moindre pour les grosses sociétés, qui disposent des ressources internes adéquates.

Pour éviter cet écueil, les petites sociétés se font souvent racheter par plus grosses qu'elles. Une autre solution serait de passer à une diffusion open source, mais cela peut entraîner la disparition de la société si sa stratégie commerciale n'est pas adaptée !

La presse fait état régulièrement de procès liés à des brevets logiciels, principalement aux États Unis. En fait, les brevets portent non sur le code lui-même, mais sur un procédé : on pourrait breveter le fait de cliquer sur un lien web, et non pas le code qui permette d'obtenir celui-ci9. C'est totalement improductif (si on avait breveté un procédé expliquant comment transporter des personnes ou des marchandises dans un boite montée sur 4 roues et entraînée par un moteur, on n'aurait jamais eu d'innovation dans le domaine automobile...), mais cela permet aux sociétés détentrices de brevets de faire payer les petites sociétés (les grosses peuvent se défendre !) pour leur « éviter » des procès. Heureusement, la réglementation européenne n'autorise pas les brevets portant sur le logiciel... pour le moment.

En résumé, les logiciels open source sont de plus en plus utilisés dans tous les pans de l'économie. Les logiciels commerciaux ne sont achetés que s'ils présentent des avantages particuliers (rentes de situation évitant d'avoir à changer toute son infrastructure ou à reformer tout son personnel, etc., innovation technique suffisamment intéressante pour en justifier l'achat, …). Pour les gros projets d'infrastructure, le développement open source devient la règle, en raison de la complexité de développement et de la nécessité de mutualiser les ressources disponibles, même entre sociétés concurrentes : l'informatique n'est qu'un outil au service du métier de l'entreprise.

1Les interfaces en mode texte sont toutefois souvent préférées aux interfaces graphiques pour gérer les composants de base des serveur ; elles sont généralement jugées plus simples d'emploi au quotidien, et permettent une meilleure maîtrise des configurations, même si elles sont plus complexes à aborder (phase d'apprentissage un peu plus longue).

2En 1965, puis en 1975, Gordon Moore, un ingénieur travaillant dans une des sociétés à l'origine d'Intel, le plus grand fabriquant de processeurs mondial, a élaboré des prédictions sur l'évolution du nombre de composants, puis de transistors, dans les micro-processeurs (doublement du nombre de transistors tous les 2 ans). Cette prédiction (1975) s'est révélée étonnamment exacte, et devrait perdurer jusqu'en 2015. Au-delà de cette date, les effets quantiques (interactions au niveau de l'atome) font qu'il sera de plus en plus difficile d'augmenter le nombre de transistors dans les processeurs, sachant qu'ils en contiendront quelques 15 milliards... D'autres pistes sont étudiées, mais les considérations écologiques (consommation électrique des processeurs) font qu'il est tout à fait possible que cette prédiction soit abandonnée pour des raisons économiques.

3C'est notamment le cas pour les systèmes de gestion des bases de données (SGBD), qui ne stockent pas les données dans des arborescences, mais dans des tables. Les premiers SGBD mettaient en place leur propre formatage dans des partitions « vides » pour améliorer les performances.

4À ne pas confondre avec NAS (network attached storage) : ce sont des serveurs classiques configurés exclusivement pour le stockage de fichiers. Beaucoup moins chers que les technologies NAS, ils sont également moins performants, et présentent souvent des limites en terme de sécurisation.

5Réseau d'interconnexion entre les réseaux locaux

6Aujourd'hui, avec la multiplication des différents systèmes d'exploitation, les applications sont écrites dans un langage de programmation, puis peuvent être compilées (le code est transformé en instructions compréhensibles par les machines) pour plusieurs systèmes d'exploitation différents, au prix, parfois, de quelques adaptations.

7À l'exception des enseignants, qui se dotent eux-mêmes de leur matériel quand ils travaillent à leur domicile

8Avec le langage HTML5, il est maintenant possible, sous certaines réserves, de créer des applications qui sont téléchargées localement, par exemple dans les smartphones, et qui peuvent alors avoir la richesse fonctionnelle des applications natives classiques

8Une bonne idée est souvent reprise à zéro en Open Source, et le logiciel produit, du fait d'une communauté virtuellement illimitée, peut devenir rapidement aussi performant que le logiciel commercial initial. Si la société n'est plus capable d'investir et d'être en avance de phase par rapport au produit Open Source, son logiciel peut être marginalisé, puis abandonné.

La seule exception que je connaisse concerne le logiciel Business Object, dont l'invention initiale, l'univers, est parfaitement protégé par le droit d'auteur. Aucune solution Open Source n'a pu recréer une technologie équivalente.

9Le code lui-même est régi par la réglementation concernant la propriété intellectuelle, tout comme peut l'être un livre, un article... ou ce document.