Modèle en couches
15 novembre 2002
Le « modèle en couches » a
été conçu par des techniciens pour penser un objet du monde réel dans lequel
plusieurs logiques s’articulent. Ainsi dans un ordinateur on rencontre des phénomènes
électromagnétiques (des électrons se déplacent, des tensions se modifient) ;
ces phénomènes reçoivent une interprétation logique (ils sont traduits en 0
ou 1) ; les suites binaires représentent des instructions ou des données ;
les règles qui gouvernent le codage des données et instructions sont fournies
par les langages de programmation ; le langage le plus proche de la machine
étant incommode pour l’être humain, des « langages de haut niveau »
sont élaborés pour faciliter la programmation ; enfin, des « applications
» sont réalisées pour satisfaire les utilisateurs. Or le mouvement des électrons
ne peut pas être décrit selon la même grille conceptuelle que les
applications, ni que le « compilateur » qui traduit un langage de haut
niveau en instructions exécutables. Néanmoins tous ces phénomènes jouent
conjointement.
Un autre modèle en couches, le
modèle OSI de l’ISO,
est utilisé pour représenter les réseaux de télécommunications : il
organise en sept couches les diverses fonctions que remplit un réseau, de la
couche physique (transport des bits) jusqu’à la couche « application ».
Le modèle en couches ne
s’applique pas qu’à la technique. Des philosophes ont raisonné en couches.
Saussure
a décrit les couches psychologique, linguistique, neurologique, phonétique,
sonore etc. par lesquelles passe la conversation entre deux personnes (cf.
ci-dessous). Pour comprendre comment fonctionne une conversation on doit
identifier ces couches et examiner le protocole qui règle le
fonctionnement de chacune d’elles, ainsi que les interfaces qui leur
permettent de communiquer. On peut citer aussi Karl Popper et son « modèle
des trois mondes »
qui distingue et articule le « monde 1 » des objets et forces physiques,
le « monde 2 » des états mentaux et le « monde 3 » des symboles,
théories, problèmes, langages etc. Maurice Blondel évoque un modèle en
couches lorsqu’il dit, dans une phrase d’une remarquable densité, « entre
(la science, la morale et la métaphysique), il n’y a point de contradictions,
parce que là où l’on a vu des réalités incompatibles il n’y a (…) que
des phénomènes hétérogènes et solidaires ».
Michel Foucault a décrit l’événement
qui, à la fin du XVIIIème siècle, marqua le passage de la représentation
classificatoire à la représentation organique de la nature : « Cuvier
fera main basse sur les bocaux du Muséum, il les cassera et dissèquera toute
la grande conserve classique de la visibilité animale ».
La classification des êtres vivants est une opération ensembliste : l’évaluation
des ressemblances et différences permet de définir une « distance »
puis une relation d’équivalence entre espèces, les espèces « semblables »
étant celles qui sont proches selon la distance choisie. L’approche organique
considère par contre non des collections d’êtres semblables, mais
l’articulation, le « système » d’organes qui remplissent des
fonctions complémentaires dans un même organisme. Si l’on peut définir le
corps d’un animal comme un ensemble de cellules, il est souvent plus pertinent
de le représenter comme un système d’organes : l’appartenance d’un
bras ou d’un poumon au corps d’un être humain n’est pas de type
ensembliste (ce n’est pas une inclusion), mais de type organique ou systémique
(l’organe a une fonction particulière, en relation avec les fonctions des
autres organes). De même on peut définir un système d’information comme un
ensemble de lignes de code source, mais il sera souvent plus pertinent de le
représenter comme un organisme - ce que le mot « système » indique
d’ailleurs exactement.
Le modèle en couche, qui
articule des logiques différentes, relève de l’approche systémique ou
organique. Bien que son explicitation soit d’origine technique, elle constitue
une innovation philosophique ; mais il ne semble pas que les philosophes
ait vu dans cette catégorie de modèles un outil au service du travail
intellectuel, même s’ils l’utilisent à l’occasion. Ce modèle est utile,
plus généralement, à la pensée engagée dans la vie quotidienne. Ainsi
dans un paysage comme « La montagne Sainte-Victoire vue de Bellevue »,
de Cézanne,
on trouve une montagne (géologie) ; des arbres (botanique) ; un pont,
des routes, des champs cultivés (action humaine) ; des nuages (météorologie).
Ce paysage articule donc des êtres relevant chacun d’une logique et d’un
rythme spécifiques. L’unité de temps est pour la géologie le million
d’années, pour la couverture végétale le millénaire ou le siècle, pour
les constructions humaines le siècle ou la dizaine d’années, pour le déplacement
des animaux ou des nuages l’heure ou la journée. Chacune de ces couches se
relie aux autres tout en obéissant à sa propre logique. Il serait impossible
de rendre compte d’un paysage selon une seule logique, si ce n’est celle de
la superposition des couches qui le composent : le modèle en couches
permet de penser l’articulation de diverses logiques et de divers
rythmes.
Couches de l’ordinateur
Le processeur d'un ordinateur
fonctionne très vite mais il ne peut reconnaître et exécuter qu'un nombre
limité d'instructions élémentaires comme « copier dans un registre
l’enregistrement stocké dans la mémoire à telle adresse», « additionner
le contenu de deux registres et noter le résultat dans un troisième »,
« vérifier si le contenu d’un registre est égal ou non à zéro »,
« vérifier si le contenu d’un registre est supérieur à celui d’un
autre registre », « stocker le contenu d’un registre dans un
enregistrement ayant telle adresse » etc.
L'ensemble de ces instructions
constitue le langage machine que nous noterons L1. L1
est pauvre ; ses instructions s’écrivent sous forme de 0 et de 1 et il
est très pénible de l'utiliser pour programmer. On écrit donc en L1
un ensemble d'instructions plus riche et plus proche du langage naturel et on
construit à partir de ces instructions un nouveau langage L2 (« assembleur
») qui sera plus facile à utiliser.
Il existe deux façons d'exécuter
un programme écrit en L2
-
un programme en L1 (traducteur ou compilateur,
ces deux termes sont synonymes) remplace chaque instruction du programme en L2
par la suite équivalente des instructions en L1 (traduction ou
compilation). L'ordinateur exécute ensuite le programme en L1
ainsi obtenu.
-
on utilise un programme en L1 (interpréteur) capable,
après avoir lu une instruction en L2, d'exécuter immédiatement la
séquence en L1 équivalente. L'interprétation évite de générer
un programme en L1 mais elle est plus lente que l’exécution d’un
programme compilé en L1.
Du point de vue de
l'utilisateur, l'ordinateur doté d'un traducteur ou d'un interpréteur obéit
aux instructions écrites en L2 aussi docilement que si elles étaient
écrites en L1 : l'ensemble constitué de la machine physique M1,
des langages L1 et L2 et de l'interpréteur (ou du
traducteur) constitue la « machine virtuelle » M2. Pour celui
qui écrit un programme en L2, M2 est aussi « réelle
» que M1.
Il existe cependant des limites
à la complexité acceptable pour un traducteur ou un interpréteur. L2,
bien que plus commode que L1, peut ne pas être encore le langage le
plus convenable pour programmer. On écrit donc en L2 un ensemble
d'instructions et on construit un nouveau langage plus commode, L3,
qui définit la nouvelle machine virtuelle M3. Langages et machines
virtuelles s'empilent ainsi jusqu'à la couche n.
Dans les années 40, les
ordinateurs n'avaient que deux couches (ou « niveaux ») : le niveau
machine traditionnel, dans lequel on programmait, et le niveau physique qui exécutait
les programmes. Les circuits de ce dernier niveau étaient complexes, difficiles
à construire et peu fiables.
Maurice Wilkes conçut en 1951
un ordinateur à trois couches pour simplifier le matériel. La machine
disposait d'un interpréteur qui exécutait les programmes du niveau machine
traditionnel. Le matériel ne devait plus alors exécuter que des
microprogrammes dont le répertoire d'instructions était limité, et non des
programmes en langage machine. Les assembleurs et compilateurs furent écrits
dans les années 50. En 1954, le premier système d'exploitation (gestion
automatique de la mémoire, gestion des répertoires de fichiers) fut conçu par
Gene Amdahl pour l’IBM 704.
La plupart des ordinateurs
actuels possèdent six couches :
Quelqu'un qui utilise un
ordinateur pour faire du traitement de texte met donc en oeuvre un programme
dont les instructions parviennent à la couche physique de l'ordinateur
(processeur et mémoires) après avoir parcouru une cascade de traductions et
d'interprétations. Mais l'utilisateur peut ignorer ces opérations : pour lui,
et dans le cadre de cette application, l'ordinateur fonctionne comme une machine
de traitement de texte et il n'a à connaître que cette machine. C’est
pourquoi il est inexact de dire que son activité est « numérisée »
même si l’ordinateur, pour exécuter ses ordres, les transcrit sous la forme
de suites de 0 et 1.
Une instruction du niveau
applicatif, traduite ou interprétée en cascade, engendre dans la couche
microprogrammée de nombreuses instructions. Le temps d’exécution d’un
programme peut s’évaluer en additionnant les temps unitaires d’exécution
de chacune de ces dernières : ce calcul est une étape importante de l’évaluation
d’un algorithme.
Si l'on veut optimiser le délai de traitement, il faut maîtriser la succession
des instructions et pour cela programmer dans les « couches basses ».
Cependant l'accroissement des performances des processeurs et de la taille des mémoires
limite l'utilité de cette optimisation sauf pour certaines applications où la
rapidité est cruciale. Les programmes sont presque tous écrits dans des
langages de niveau élevé ; l’art du programmeur s’appuie alors sur
une connaissance des propriétés du langage de programmation suffisante pour
pouvoir évaluer les conséquences « physiques » des choix faits
dans les couches hautes.
L’utilisateur d’un
ordinateur n’a à se soucier que du service rendu par la couche dont il se
sert et qu'il considère comme une ressource physique (« matériel et
logiciel sont équivalents ») ; celui qui programme un ordinateur optimise
l’utilisation des ressources couche par couche, et non en considérant le
processus d'ensemble : la simplicité que l’on gagne ainsi fait plus que
compenser une éventuelle perte en efficacité physique.
Portée du modèle en couches
Pour montrer à quel point le
modèle en couches est présent (le plus souvent de façon implicite) dans notre
vie quotidienne, considérons une activité des plus courantes : la
conversation entre deux personnes.
Elle emprunte les couches suivantes : conception et compréhension des idées à
communiquer (logique) ; expression et décodage de ces idées dans un langage (sémantique) ;
expression et décodage de ce langage dans des phonèmes (phonétique) ; mécanismes
de l'articulation et de l'audition (physiologie) ; émission et réception
d'ondes sonores (physique).
Deux personnes qui conversent
font fonctionner ces diverses couches alternativement dans les deux sens mais
elles ne s'intéressent qu'aux idées qu'elles émettent ou reçoivent. Les
couches inférieures n'attirent l’attention que si elles fonctionnent mal : le
passage de la couche phonétique à la couche sémantique se fait mal si l'un
des locuteurs parle une langue ignorée de l'autre ; des interfaces peuvent être
détériorées : c’est le cas si l'un des deux interlocuteurs est sourd ou
aphasique ; les ondes sonores ne sont utilisables que si les deux
interlocuteurs sont assez proches l’un de l’autre et si le milieu sonore
ambiant n’est pas trop perturbé par le bruit.
Il suffirait d’ajouter
quelques couches en bas du modèle pour représenter une conversation téléphonique :
l’onde sonore est codée sous la forme d’une onde électromagnétique, puis
numérisée, transportée par le réseau et décodée à l’arrivée.
Cet exemple montre que le modèle
en couches décrit un empilage de conditions toutes simultanément et également
nécessaires. Si, dans un produit qui comprend des 0 et des 1, tous les termes
sont égaux à 1 sauf l’un d’entre eux qui est égal à 0, le produit est
nul. De même, lorsqu’un phénomène obéit à plusieurs conditions simultanément
nécessaires, elles doivent toutes êtres respectées pour que le phénomène
puisse se produire. Dès lors il serait vain de se demander laquelle de ces
couches est « la plus importante » ou de tenter d’établir entre elles
une « hiérarchie » : le phénomène ne peut avoir lieu que si elles
fonctionnent et communiquent toutes ensemble.
Le modèle en couches permet
ainsi de faire l’économie de certaines réflexions stériles. On tente
parfois de déterminer l'origine et le responsable de la réussite d'un
processus, mais cet effort est vain puisque le processus a traversé plusieurs
couches toutes nécessaires à sa réussite. Si le stratège doit concentrer son
attention sur la question la plus importante du moment il n'en doit pas moins
rester attentif à la coopération de diverses couches toutes indispensables au
processus ; son aptitude à coordonner des activités diverses se fonde sur
sa connaissance de leur articulation. Cette coordination n'est pas mélodique
(une seule ligne dont il faut suivre le déroulement dans le temps), mais
polyphonique (plusieurs lignes qu’il faut suivre ensemble et qui
s’articulent entre elles).
La
conception d'un ordinateur (Tracy Kidder, The Soul of a New Machine,
Atlantic-Little, Brown 1981)
Ce
livre raconte les étapes de la conception du mini-ordinateur Eclipse MV/8000
lancé par Data General en avril 1980.
Projet,
réalisation, intégration, déboguage, sont autant d'aventures qui s'articulent
lors de la conception sous une contrainte de délai toujours présente, toujours
violée, toujours renouvelée. La mise au point des langages et celle du matériel
se renvoient la balle ; des spécialités diverses, aux psychologies contrastées,
s'entrecroisent. Assurer la compatibilité du produit avec la gamme de
l'entreprise, le respect des interfaces, suppose des compromis fondés sur le
sens du marketing et du possible technique.
Les
hommes qui font ce travail sont des ingénieurs au sens complet du terme : ils réalisent
de façon ingénieuse un travail d'ingénierie. Ils se trouvent au front de
taille de la recherche pratique, au point où elle pose des problèmes
intellectuels d'une extrême subtilité, où elle rencontre la limite de notre
connaissance de la nature. Ce sont des rêveurs pratiques, des passionnés.
L'argent n'est pas leur moteur, ils le disent avec insistance et s'en étonnent
eux-mêmes : ils ressemblent plutôt à ces alpinistes qui se lancent des défis.
La limite qu'ils cherchent, ce n'est pas tant une limite individuelle qu'une
limite humaine : ils veulent voir jusqu'où un être humain peut aller
dans la clarté de la conception, la maîtrise de la complexité, la
concentration de la pensée, la rapidité d'exécution, l'élégance de la démarche.
Ce ne sont pas des égoïstes, mais des explorateurs de la nature humaine.
L'animateur
de l'équipe, Tom West, manifeste son respect pour ses collaborateurs en étant
froid et distant ; « pas de tapes dans le dos », dit-il : mais il
leur délègue des responsabilités qu'ils n'auraient jamais pu avoir ailleurs,
et conduit en stratège l'affaire vers le succès en assumant le poids des
reproches et des frustrations de l'équipe.
On
trouve dans ce livre la meilleure description intime de l'ordinateur, de la façon
dont il est perçu, pensé, voulu par ceux qui le conçoivent. Les pages consacrées
au microcode, à l'assembleur, à la conception des cartes, sont les plus pédagogiques
que l’on puisse lire. L'articulation des couches de l'ordinateur devient
intuitive, palpable.
Les
concepteurs de l'ordinateur en restent cependant à « la machine ».
Ils ne s'intéressent pas à la diversité de ses utilisations potentielles
(c'est une autre question, elle devra être traitée par d'autres personnes à
un autre moment que celui de la conception), mais ils veillent à la doter des
performances qui lui permettront d’être efficace dans la plus grande diversité
d'utilisations. Ils créent et balisent ainsi l'espace où devra se conduire une
recherche postérieure à la leur : la recherche sur les usages, sur
l'assistance qu'apporte « la machine » au travail humain organisé.
Le livre, qui s'arrête au moment où « la machine » quitte les
mains des ingénieurs pour passer dans celles des vendeurs (la rencontre entre
ces deux populations est décrite avec humour), ne considère pas cette autre
phase de la recherche, celle qui se déroule chez les utilisateurs, les clients,
les intégrateurs.
Un
changement du rapport avec la nature
On peut représenter l’effet
des NTIC
sur l’économie selon un modèle à trois couches :
A la source se
trouvent les techniques fondamentales : d’une part la
fabrication des microprocesseurs et mémoires ; d’autre part les systèmes
d’exploitation, langages et outils de programmation. Ces deux sous-ensembles
sont d’ailleurs reliés entre eux (on n’utilise pas les mêmes langages de
programmation selon la ressource de mémoire ou de puissance disponible).
Immédiatement en aval de cette
source, se trouvent des équipements qui mettent en œuvre les techniques
fondamentales (ordinateurs, réseaux, terminaux etc.), ainsi que les logiciels
et progiciels applicatifs.
En aval des équipements et
logiciels, se trouve leur mise en œuvre par les entreprises, associée
à la maîtrise des processus de production, à la définition de la relation
avec les clients, fournisseurs et partenaires, ainsi qu’à des formes spécifiques
de concurrence.
Pour étudier les effets des
NTIC sur l’économie on doit situer la frontière entre ce qui est appelé
« NTIC » et ce qui est appelé « reste de l’économie ».
On peut la placer de deux façons : la plus courante consiste à considérer
que les ordinateurs et autres machines utilisant les techniques fondamentales
relèvent des NTIC, et que la frontière se situe donc au niveau B ci-dessus.
Personne ne peut nier que les
ordinateurs, commutateurs etc. ne soient des représentants éminents des NTIC.
Cependant les évolutions de ces machines résultent, pour l’essentiel, des
progrès des techniques fondamentales. Par exemple l’évolution exponentielle
des performances des microprocesseurs et mémoires dont la « loi de Moore »
rend compte est déterminante pour l’évolution des performances des
ordinateurs.
Dans la couche finale, celle
des utilisations, il s’agit de tirer le meilleur parti des évolutions
permises par les ordinateurs, réseaux etc. ; dans la couche intermédiaire
des équipements, il s’agit de tirer le meilleur parti des ressources offertes
par les techniques fondamentales. Si chacune de ces deux couches obéit à sa
logique propre, le moteur de leur évolution se trouve en amont. Si l’on
souhaite isoler la source de l’évolution, qui réside dans les
techniques fondamentales, il faut donc placer la frontière au niveau A.
Dans la couche initiale, celle
des techniques fondamentales, il ne s’agit pas d’utiliser des ressources
produites en amont, mais de créer des ressources par la maîtrise des
propriétés physiques du silicium, et (osons nous dire) par la maîtrise
des conditions mentales de la production et de l’utilisation des
langages informatiques, le terme « mental » recouvrant un ensemble
de dimensions intellectuelles, psychologiques et sociologiques.
Ainsi, alors que les deux
autres couches résolvent un problème économique (il s’agit de faire
au mieux avec les ressources dont elles disposent), la couche initiale considère
la nature elle-même, sous les deux aspects de la physique du
silicium et de la « matière grise » des êtres humains,
aspects dont elle vise à faire fructifier la synergie. Dans la couche des
techniques fondamentales s’opère le changement des rapports avec la nature ;
dans les deux autres couches s’opère l’adaptation à ce changement.
Élargir, par des procédés de
mieux en mieux conçus, les ressources que fournit la nature, c’est une tâche
analogue à la découverte ou plutôt à l’exploration progressive d’un
continent nouveau que des pionniers transformeraient et équiperaient pour
produire des biens utiles. Or découvrir un continent, puis l’explorer pour le
mettre en exploitation, c’est transformer les prémisses de la réflexion et
de l’action économiques, c’est modifier les conditions de la vie en société.
Tout raisonnement économique
est fondé sur des exogènes (techniques, ressources naturelles, fonctions
d’utilité, dotations initiales). Il en tire les conséquences, élucide les
conditions de leur utilisation optimale, mais il ne tente pas d’expliquer leur
origine. Sans doute la recherche du profit n’est pas pour rien dans l’ardeur
des pionniers ou des chercheurs ; mais cette ardeur se dépenserait en pure
perte si elle ne pouvait pas mettre en exploitation une ressource naturelle féconde
(ici le silicium, la « matière grise », et leur synergie).
On rencontre ainsi dans les
techniques fondamentales un phénomène qui n’est ni économique ni
sociologique, même s’il a des conséquences économiques et sociales :
un changement du rapport entre les êtres humains et la nature.
L’innovation qui se déverse dans l’économie, dans la société, à partir
des techniques fondamentales est analogue à un phénomène naturel, extérieur
à l’action humaine qu’il conditionne comme le font le climat, les courants
océaniques, la reproduction des êtres vivants, les gisements légués par
l’histoire géologique de la Terre etc.
Est-ce à dire que l’économie
ou la sociologie n’ont rien à voir avec les NTIC ? certes non,
puisqu’elle doit répondre aux problèmes que pose leur bonne utilisation :
les exogènes étant modifiées, comment « faire au mieux avec ce que
l’on a », et qui est nouveau ? comment faire évoluer des
institutions adaptées aux exogènes antérieures, mais qui ne le sont pas nécessairement
aux exogènes nouvelles ? comment définir le « savoir vivre »
nouveau qui permettra de préserver la cohésion sociale dans une société
bouleversée par l’innovation ?
La tâche n’est pas facile.
Considérons les efforts que doivent réaliser les entreprises pour
modifier les processus et les conditions de travail des opérationnels de la
première ligne ; adapter les périmètres des directions, les missions et
les espaces de légitimité des dirigeants, les indicateurs de pilotage ;
équiper et faire évoluer les relations avec les clients, partenaires et
fournisseurs, etc.
|