Environnement coopératif

Revenons un peu en arrière, un peu…

En septembre 1987 est apparut le protocole X. Celui-ci, dans sa version majeur X11, permet le dialogue entre un serveur X et un client X (on n’est pas en science naturelle mais en informatique), typiquement sous UNIX et affiliés, mais pas exclusivement.

Un de ses avantages, c’est la transparence réseau. Mais, étant finalement peu employée, c’est aussi un inconvénient.

A quoi sert donc cette transparence réseau?
Que gagne-t-on à la garder?
Quel aurait pu être son avenir?

X11

A quoi sert X11 et son protocole?
C’est le moteur de l’affichage graphique. Il fait le lien entre l’application que l’utilisateur manipule et la carte graphique qui fait afficher cette même application sur l’écran. Le lecteur vidéo (comme VLC par exemple) demande au serveur graphique X d’afficher à l’écran le contenu du film au fur et à mesure de la lecture de celui-ci. C’est l’application qui maîtrise ce qu’elle veut afficher, mais elle doit passer par l’intermédiaire du serveur graphique pour l’afficher à l’écran.

X11 permet cet affichage indifféremment sur l’écran de l’ordinateur qui lit la vidéo ou sur l’écran d’un autre ordinateur via le réseau, c’est la transparence réseau.

Il avait été créé pour répondre à des problématiques de l’époque. Les grosses applications tournaient sur un gros serveur et l’affichage de ces applications se faisaient sur l’écran des terminaux, eux-même aux capacités très limitées. Le protocole X répondait parfaitement à ce besoin. Aujourd’hui les terminaux sont presque aussi puissants que les serveurs et utilisent directement les applications. Se pose donc régulièrement la question du remplacement de X11. Les distributions Linux Ubuntu et Fedora travaillent à Wayland (voir 1 et 2). D’autres prétendants au remplacement de X11 ont vu le jour mais ne se sont pas vraiment imposés : DirectFB, NX, Y, etc…

Bien qu’étant à base d’UNIX , les systèmes embarqués (comme Google Android et Apple iOS) et des solutions résolument orientés utilisateurs (comme Apple MacOS X) n’utilisent plus X11. L’affichage se fait uniquement sur le matériel présent directement (localement) sur l’appareil.

Transparence réseau

Un des intérêts que l’on perd en remplaçant X11, c’est la transparence réseau. Peu de projets concurrents le proposent, d’où justement et paradoxalement leur intérêt pour certains. Les contraintes nécessaires à l’intégration de cette transparence réseau pénalisent les performances de l’ensemble.

Sous M$ Windows, quelque soit la version, cette capacité n’existe pas. Le déport d’affichage est total ou n’est pas. Que ce soit avec RDP et dérivés ou VNC et consorts, on se contente de déporter l’intégralité de l’écran. Il n’est pas possible de n’exporter qu’une seule fenêtre, qu’une seule application à l’intérieur de l’affichage. Mais il est vrai que son implémentation est plus simple et aujourd’hui plus performante (grâces aux différentes améliorations de ces produits et des protocoles associés). Et comme avec X11, ce déport d’affichage sert assez rarement.

Futur alternatif

Qu’aurions nous pu avoir si X11 et la transparence réseau avait évolué?

Regardons un peu le DLNA. Un consortium de producteurs de matériels essentiellement centré sur le multimédia à mis au point ce protocole d’échange de contenus. Dans le principe un server partage un flux (film, musique ou photo) vers un player (client) éventuellement via un renderer. Un controler permet de contrôler le flux diffusé ou de parcourir le server à la recherche d’autres flux à lire.
Le cœur de métier de ce protocole étant le multimédia, il est fortement adapté et donc performant. Sauf que tout ne semble pas rose non plus, notamment concernant la réelle interopérabilité des éléments. De plus, il est par nature incapable de servir à autre chose qu’au multimédia. Impossible par exemple de parcourir des pages web, de faire du traitement de texte, du dessin architectural, etc… En clair, permettre d’afficher une application sur un autre écran via le réseau, bref la fameuse transparence réseau.

Reprenons ce même besoin d’affichage d’un flux vidéo à partir d’un serveur vers un client, le tout via X11. Nous n’avons pas les problèmes d’interopérabilité du DLNA. A partir du moment où server et player gèrent X11 et la transparence réseau, ils savent afficher l’application. Le contrôle du flux de la vidéo se fait directement dans l’application, là où elle s’affiche, plus besoin de controler.

Si on ajoute à la transparence réseau de X11 les capacités de partage du DLNA, et plus encore, on obtient une capacité unique de :

  • travailler sur un écran de télévision mais avec les applications de son téléphone, qui sert pour l’occasion d’ordinateur, de clavier et de souris ;
  • basculer une application d’un écran à l’autre sans avoir à brancher un autre câble ;
  • afficher une vidéo sur plusieurs écrans dans la maison, la bande son de la vidéo sur d’autres appareils encore comme un téléphone portable avec un casque audio HiFi ;
  • faire du multi-écrans depuis un ordinateur en exploitant le moniteur à haute résolution, la télévision à côté, et pourquoi pas la tablette tactile comme troisième écran avec les commandes de l’application en cours ;
  • etc…

Ainsi, en fonction des capacités (affichage, son, puissance de calcul, réseau), on peut exploiter indifféremment tous les appareils de la maison ou du travail.

Notre espace numérique ne serait plus un enchevêtrement d’appareils qui s’ignorent mais un espace unique constitué de plusieurs périphériques.

Canal alpha

On peut aller encore plus loin pour X11. Par exemple le canal alpha n’est pas exploité. C’est la gestion de la transparence (qui n’a rien à voir avec la transparence réseau). Habituellement un écran n’est pas transparent, mais il pourrait l’être, des lunettes de vue améliorées par exemple.

Aujourd’hui, l’image que l’on envoie à un écran est un bloc rectangulaire complètement opaque avec toute la palette de couleurs. Et si l’on veux voir au travers à certains endroits? C’est le rôle du canal alpha, la gestion de la transparence des pixels.

Par exemple, l’appareil photo :

  • Il peut n’être réduit qu’à la partie optique, mécanique et au capteur numérique.
  • La visualisation de la photo capturée se fait dans les lunettes, sans transparence.
  • Les paramètres de la prise de vue comme l’histogramme peuvent s’afficher aussi dans les lunettes, mais en transparence partielle et en temps réel.
  • Et le téléphone peut enfin servir de contrôle pour l’appareil photo et l’affichage qu’il déporte vers les lunettes.

Conclusion

Que manque-t-il?
Il faut qu’une norme unique soit proposée, que tout le monde l’accepte, et que les industriels ne la détournent pas à leur avantage exclusif (comme M$ IE6 avec le HTML).

Bref, de tout ça, avec les orientations actuelles de la technologie, on n’est pas prêt de les voir de si tôt chez nous…

Liens

– X Windows System – http://en.wikipedia.org/wiki/X_Window_System
– Unity on Wayland – http://www.markshuttleworth.com/archives/551
– Move to Wayland – http://lists.fedoraproject.org/pipermail/devel/2010-November/145273.html
– Wayland – http://wayland.freedesktop.org/
– DLNA – http://fr.wikipedia.org/wiki/Digital_Living_Network_Alliance

Tags: , , , , , ,

One Response to “Environnement coopératif”

  1. Nebule » Blog Archive » nous = toi + moi Says:

    […] Une des possibilité est d’avoir un bureau vide et sans menu d’applications. Le nouveau fichier hérite des droits de l’utilisateur de l’application qui le crée. Et les programmes sont lancés depuis un périphérique plus… personnel comme le téléphone ou une extension de l’ordinateur dédiée à un seul utilisateur. Dans ce cas l’écran de l’ordinateur redevient un écran indifférencié, comme une télévision en somme. Les applications, les ressources et les fichiers sont liées à un utilisateur du système mais elles sont en partie contrôlées par un périphérique externe. On retrouve un la même logique d’un environnement coopératif. […]