Voilà l'intéropérabilité revenue sur le devant de la scène, grâce aux petits doigts boudinés[1] de Bill Gates qui tape sur son clavier la nouvelle encyclique de l'informaticien le plus riche du monde. Ca tombe bien, quand on s'appelle le Standblog et qu'on travaille sur les standards depuis plusieurs années... Je vous ai rebattu les oreilles à grands coups de standards du Web, je vous ai déjà expliqué pourquoi standardiser permettait la diversité. J'aurais l'occasion d'y revenir, car c'est plus fort que moi ! En attendant, quittons un peu le monde du Web pour aller au fin fond du réseau d'entreprise, dans ce qu'il a peut-être de moins glorieux, mais au moins aussi indispensable : le partage d'imprimante et de serveurs de fichiers.

A peu près toutes les entreprises de taille moyenne ou supérieure (et même certaines petites) ont un parc hétérogène. Même si les postes de travail sont très souvent sous Windows (monopole, installation par défaut et vente liée obligent), on se retrouve souvent avec des serveurs Unix ou Linux. Ces serveurs sont très souvent utilisés pour partager une ou plusieurs imprimante, ou encore des répertoires. Comment est-il possible de faire discuter des PC sous Windows avec des serveurs sous un autre système d'exploitation ? Avec un protocole qui s'appelle SMB (ou CIFS), intégré dans Windows. Comme Microsoft ne propose pas de solution tournant sous Unix, Linux ou OS X pour partager des fichiers et des imprimantes, comment fait-on ? On fait comme tout le monde, on utilise Samba, une implémentation (oui, c'est un anglicisme) Libre du protocole SMB/CIFS, qui tourne sur un nombre impressionnant de systèmes d'exploitation, dont Unix, Linux, IBM System 390 (oui, un mainframe !), OpenVMS et Apple OS X. Avec le slogan, Samba, Opening Windows to a Wider World! (Samba, ouvrir les Windows (fenêtres) vers un monde plus grand), les contributeurs ont une mission :

(...) oter les barrières à l'interopérabilité

Le souci, c'est que le protocole SMB/CIFS n'est pas documenté. Il a beau être indispensable à un nombre impressionnant d'entreprises, Microsoft refuse l'ouverture. Dans un article de Groklaw, les mythes à propos de Samba, l'un des contributeurs explique cela très bien :

De 1995 jusqu'il y a à peu près 5 ans, Microsoft a joué un rôle très important dans l'effort de standardisation du protocole SMB/CIFS. ILs ont lancé la série des conférences annuelles CIFS qui perdure aujourd'hui, il ont initié la standardisation du protocole auprès de l'IETF, et ils entretenaient une liste publique de discussion sur les différents aspects du protocole. Pour des raisons qui ne sont pas complètement expliquées encore aujourd'hui, ils se sont retirés de toutes ces activités, et semblent maintenant activement hostiles à toutes les volontés de standards ouverts.

Alors, comment fait-on quand on veut interopérer avec un protocole de Windows non documenté ? Andrew Tridgell, l'auteur de l'article mentionné précédemment, nous explique cela.

  • Méthode 1 : on cherche sur Internet. On y trouvera des documents périmés et incomplets, mais c'est un bon début ;
  • Méthode 2 : on déchiffre les données qui circulent sur le réseau lors d'une discussion entre client et serveur Microsoft. C'est ce qu'on appelle du Network Sniffing ;
  • Méthode 3 : on écrit un protocol scanner, un logiciel qui tente de dialoguer avec un des logiciels de Microsoft. A force de multiplier les tentatives (extrèmement nombreuses), on finit par comprendre un certain nombre de choses ;
  • Méthode 4 : la méthode différentielle, où l'on compare les réactions d'un serveur Samba avec un serveur Microsoft en réaction à des commandes aléatoires. On note les différences entre les deux logiciels, et on corrige le logiciel Samba en conséquence.

Conclusion d'Andrew Tridgell:

Imaginez maintenant l'utilisation de toutes ces techniques, plus d'autres que je n'ai pas mentionné ici, sur une période de douze ans (en 2003). Voilà comment a été écrit Samba.

Quatorze ans de transpiration pour retrouver une information qui existe dans les tiroirs de Microsoft, mais que ce dernier a décidé de ne plus partager.

Heureusement, tout cela sera résolu très rapidement, avec l'engagement de Bill Gates sur l'interopérabilité, d'autant que la Commission Européenne a obligé Microsoft à le faire.

On devrait voir ce problème technique résolu avec l'apparition de documentation ad-hoc. Quoique...L'accès à la documentation se fait dans des termes qui excluent d'office les logiciels Libres, comme l'indique très clairement le site Microsoft, dont voici une traduction :

ce programme rend disponible, sous licence, les protocoles de communication implémentés dans les systèmes d'exploitation Windows Server[2] et qui sont utilisés par un serveur Windows Work Group pour offrir des services de fichier et d'impression, ainsi que des services d'administration des utilisateurs (...) Toutes les licences disponibles sous le présent programme nécessitent de remplir les conditions d'entrée dans le programme, ainsi que le payment d'une redevance.

Comme c'est dommage, pour des bénévoles qui font un produit gratuit utile à des millions de personnes dans le monde :on va leur demander de payer une redevance pour chaque copie déployée de leur logiciel. Comme cela ne risque pas d'arriver, Microsoft, même obligé par la Commission Européenne, malgré les engagements du fondateur Bill Gates, bloque de facto l'interopérabilité...

Notes

[1] probablement moins que les miens, moi qui suis gras comme un loukoum...

[2] Windows 2000 Server Standard Edition et Windows Server 2003 Standard Edition.