Rebol/IOS : Premier contact

Article paru dans le magazine Login numéro 95

Reproduction interdite. Tous droits réservés à Posse Press et Olivier Auverlot



Rebol/IOS (Internet Operating System) est le serveur d’applications Rebol. Reprenant les fonctionnalités des autres versions du langage (Core, View et Command), il permet la création d’une communauté d’utilisateurs partageant aisément des documents et applications. Rebol/IOS est un produit extrêmement dense mais toujours aussi incroyablement léger. Il est la sublimation des concepts de Rebol : la matérialisation d’un Internet vivant, interactif et dynamique.

IOS : un concept détonnant
Rebol/IOS permet à un groupe de personnes de communiquer, de manipuler et de partager des informations. Utilisant le protocole de transport http, il peut être utilisé sur un intranet mais également sur Internet. Les clients se connectent sur le serveur à l’aide d’un client dédié nommé Link, qui constitue un véritable environnement de travail et que l'on peut qualifier de bureau virtuel. Authentifiés par leur compte utilisateur, ils peuvent consulter ou fournir des données au serveur mais également utiliser les applications que celui-ci héberge.
La principale particularité de IOS, en dehors du fait qu’il vous permet de vous passer totalement d’un encombrant navigateur, est que ce dispositif gère naturellement la notion de synchronisation. A chaque fois qu’un client se connecte, son environnement est mis à jour selon les changements qui ont été opérés sur le serveur. Si une application Rebol, que l’on nomme ici une Reblet, ou le client Link lui-même ont été modifiés, le poste client récupère et installe automatiquement les nouvelles versions.
Ce mécanisme de miroir, et le fait que les reblets sont exécutés par le poste sur lequel est installé Link, font que l’utilisateur a pour la première fois la possibilité de travailler on-line ou off-line : dans ce dernier cas, le client synchronisera à sa prochaine connexion, les opérations qu'il a réalisées. Un utilisateur itinérant peut donc se connecter à son serveur IOS et charger des informations. Durant la journée, il peut travailler dans son bureau virtuel à l’aide des applications écrites en Rebol. Le soir, il lui suffit de se reconnecter pour envoyer ses données et éventuellement mettre à jour son environnement de travail. Pour le programmeur comme pour l’utilisateur, toutes ces opérations sont rendues totalement transparentes et surtout, sont réalisées en toute sécurité.

Un système ultra-sécurisé
Les gens de chez Rebol ont poussé très loin la sécurité des transferts d’informations entre les clients Link et le serveur d’applications. Il est ici inutile d’ajouter quoi que ce soit au produit : IOS sait gérer seul sa sécurité. La première chose à savoir est qu’un client Link ne peut se connecter qu’au serveur auquel il est dédié. Tous deux intègrent un certificat qui bloque ainsi toute tentative de connexion. Un client Link de la société A ne pourra jamais se connecter au serveur IOS de la société B (sauf si bien sûr, l'opération est souhaitée par les deux parties).
Une fois la connexion établie, un client Link et son serveur échangent une clé de session dont le transfert est basé sur le modèle RSA (Rivest, Shamir et Adelman). Cela signifie que tous les échanges entre les deux machines seront cryptés automatiquement. Une personne peut tenter d’écouter votre réseau pour intercepter des informations mais rien ne sera exploitable.
Si vous poussez un peu plus loin la configuration standard, vous pouvez filtrer les adresses IP et les ports TCP des machines autorisées à se connecter sur le serveur. Vous avez également crypté les données qui sont enregistrées sur le poste client et sur le serveur. Rebol/IOS utilise également différentes méthodes pour assurer l’intégrité des données telles que le checksum SHA1.
Sur le serveur, les droits de chaque utilisateur sont déterminés selon le compte de celui-ci. L’identification se repose sur le classique login accompagné d’un mot de passe. Chaque utilisateur pouvant avoir des droits différents, son environnement de travail sera différent en fonction de ceux-ci. Vous pouvez cacher certains documents ou certaines applications aux utilisateurs non concernés : ils ne sauront jamais qu’ils existent et n’auront d’ailleurs aucun moyen pour le savoir. De plus, toutes les actions des utilisateurs et du serveur sont enregistrées dans un fichier journal qui vous permet de surveiller l'activité de IOS et de résoudre ainsi d'éventuels problèmes.

Le serveur Rebol/Serve
Le cœur du dispositif est constitué par le serveur nommé REBOL/SERVE. Ce produit s’installe en moins de cinq minutes et est déjà disponible pour Linux et Windows. Dans les semaines qui viennent, le serveur sera disponible pour une bonne vingtaine de systèmes dont les Unix BSD, AIX, Solaris, SGI, HP/UX et MaxOS X.
L’archive ZIP de la version Windows qui est à ma disposition, contient cinq répertoires. Le serveur lui-même est dans le répertoire REBOL-SERVE et se nomme REBOL-SERVE.EXE. C’est un simple exécutable d’environ 680 Ko. Pour l'activer, il vous suffit de saisir la commande REBOL-SERVE.EXE -WQS. Vous pouvez bien sûr créer un fichier batch pour le lancer ou encore, sur les systèmes Unix, utiliser les fichiers de commandes fournis dans le répertoire SCRIPTS : ils se nomment SERVEUP, SERVE et START. Il vous suffira de saisir dans votre shell les commandes SERVER START ou SERVER STOP afin de démarrer ou d'arrêter le serveur IOS.

Une fois le serveur en fonctionnement, vous devez installer le proxy. Cette petite application d’environ 35 Ko est présente dans le répertoire PROXY de l’archive sous sa forme compilée mais aussi sous la forme du code source du programme. Les différents fichiers make sont livrés pour le GNU Make et Microsoft Developer Studio, afin de vous permettre de recompiler ce programme pour une autre plate-forme. Quelle est l’utilité de ce proxy ? En fait, pour faire fonctionner IOS sur Internet, vous avez besoin d’un serveur Web quelconque. La seule condition est que ce dernier sache gérer les connexions http persistentes. Rassurez-vous, les deux leaders du marché (Apache et Microsoft IIS) font cela très bien et conviennent parfaitement pour IOS. Le but du programme proxy est de servir d’intermédiaire entre les clients Link qui communiquent en http sur le serveur Web et le serveur IOS qui utilise un port TCP spécifique. Le proxy étant un simple et minuscule script CGI, vous devez le placer dans le répertoire virtuel CGI-BIN de votre serveur web.
Il est très intéressant de remarquer que le serveur http et par extension, le script CGI, ne sont absolument pas obligés de fonctionner sur la même machine que le serveur IOS. Vous pouvez donc utiliser conjointement un serveur Linux/Apache pour recevoir les connexions des clients et un serveur 2000 hébergeant Rebol/IOS. L’architecture est très flexible et vous permet d’adapter au mieux le produit à vos besoins.



Le serveur en action.

Le client Rebol/Link
Une fois le serveur en fonctionnement, il ne vous reste plus qu'à vous connecter à l'aide du client Rebol/Link. Il s'agit d'une application légère d'environ 500 Ko dans sa version Windows. La configuration nécessaire pour son bon fonctionnement est un microprocesseur à 200 MHz, 64 Mo de mémoire vive et environ 4 Mo d'espace disque disponible. Le produit est également déjà disponible pour Microsoft Windows et Linux. Rebol annonce sa disponibilité sur environ 25 plate-formes dans les mois à venir. Même avec un simple modem, Rebol/Link peut être téléchargé en quelques dizaines de secondes par le poste client. Le produit contient sa propre procédure d'installation qui permet à l'utilisateur de saisir son nom de compte et son mot de passe mais également les informations relatives au réseau auquel il appartient (serveur de messagerie et proxy).
Une fois lancé, Rebol/Link se présente sous la forme d'un espace de travail divisé en trois zones :
· le haut de l'écran contient une barre de boutons permettant d'accéder aux applications d'usage courant,
· la colonne de gauche répertorie différents domaines d'activités,
· la zone principale de l'écran sert à l'affichage d'informations.




Ce bureau peut être assez largement personnalisé et adapté aux exigences graphiques d'une entreprise ou d'une organisation. Vous pouvez modifier ses couleurs ou encore ajouter un logo. Pour l'administrateur, ce travail consiste à créer un skin qui sera téléchargé par les postes clients lors d'une synchronisation.
L'utilisation de Rebol/Link est très intuitive puisque totalement basée sur l'usage de la souris. L'utilisateur n'a le plus souvent qu'à cliquer sur les différents icônes représentant les fonctionnalités accessibles. Le bouton droit permet de modifier les propriétés d'un élément mais également de publier des informations sur le serveur IOS.


Les utilisateurs peuvent déposer et partager des documents sur le serveur.


Ces documents peuvent être des fichiers, regroupés éventuellement dans des répertoires, des liens hypertextes vers des pages HTML ou encore des applications écrites en Rebol qui fonctionneront sur le poste client. Si vous déposez des documents bureautiques (Word, Excel, Visio, PDF, etc.), Rebol/Link utilisera les associations du poste client et lancera l'application adéquate pour lire le fichier (à la condition que celle-ci soit disponible sur la machine de l'utilisateur).



Link gère les associations de fichiers.


En dehors du partage de documents au sein d'un groupe de travail, le rôle premier de Rebol/Link est bien évidemment d'exécuter des applications écrites en Rebol, c'est ce que l'on nomme des Reblets.

Les reblets
Ces applications ultra-légères sont le cœur de la stratégie dite du X-Internet de Rebol. Il s'agit ici de ne plus uniquement diffuser des pages HTML mais de véritables logiciels. Chaque poste client devient donc un élément actif du réseau et peut échanger des informations avec les autres membres de la communauté. Les applications ne fonctionnent plus uniquement sur le serveur mais sont construites selon une architecture distribuée. Il y a en fait trois conceptions différentes de cette répartition des rôles :
· Une reblet peut être exécutée uniquement par le poste client,
· Une reblet peut être exécutée à la fois sur le poste client et sur le serveur : dans ce cas, la reblet a recours à ce que l'on appelle une fonction POST située sur le serveur dans le répertoire APPLICATIONS,
· Une reblet peut également déclencher l'exécution de programmes externes sur le serveur et utiliser le résultat du traitement.
Cette intégration du poste client dans le processus de traitement et de présentation de l'information, fait que la charge du réseau et du serveur, est considérablement réduite par rapport aux solutions classiques actuelles (scripts CGI, servlet, JSP, PHP, etc.).
Pour démontrer les capacités de sa solution et pour positionner Rebol/IOS dans le domaine du travail collaboratif, Rebol fournit une dizaine de reblets prêtes à l'emploi et personnalisables (le code source de chacune d'entre-elles est accessible et peut être adapté à vos besoins).



Les reblets fournies peuvent être adaptées à vos besoins.


De nombreux domaines sont couverts et font de IOS une véritable plaque-tournante dans un réseau. Ainsi, pour remplacer la messagerie souvent peu sécurisée, l'application Messenger permet à deux interlocuteurs de dialoguer en direct ou en différé (les messages sont archivés et vous conservez donc l'historique de votre dialogue). Avec Conference, vous pouvez créer des thèmes de discussion et plusieurs personnes peuvent échanger simultanément leur avis. Pour les nostalgiques, Rebol/IOS propose également une petite reblet permettant d'envoyer un message, via le classique protocole SMTP.



Les utilisateurs peuvent dialoguer à l’aide de forums.


Dans le domaine de la bureautique légère, vous disposez d'un gestionnaire de contacts dont le contenu est partagé entre tous les utilisateurs. Chacun peut venir le consulter mais également le tenir à jour. Un calendrier (Calendar) et une gestion de projets (Taskmaster) permettent la coordination du travail entre différentes personnes.


Gérez vos projets avec Taskmater.


Une autre application, extrêmement pratique, est la reblet Who. Celle-ci permet de savoir qui est connecté au serveur et surtout quelle est la disponibilité de chaque utilisateur. Par l'intermédiaire de quelques boutons, vous pouvez ainsi préciser aux membres de votre communauté, si vous êtes disponible, occupé, en réunion ou si tout simplement vous êtes rentré chez vous. Il est même possible de savoir votre localisation : Who indique en effet si vous êtes connecté du bureau ou alors de votre domicile, à l'aide de votre portable.



Who permet de connaître la disponibilité de chaque utilisateur.


Il existe de nombreuses reblets et Rebol annonce la disponibilité de beaucoup d'autres qui seront livrées avec le serveur ou vendues séparément. L'application Sales vous permettra de suivre les ventes d'un produit. Survey est destiné à l'organisation de sondages auquels participeront les utilisateurs. Avec Plot, vous allez pouvoir créer des courbes et des histogrammes à partir de sources de données. Presenter est un logiciel autorisant la diffusion de présentation interactive sur un réseau. Ce ne sont là que quelques exemples et la liste est encore longue. De toute façon, si vous ne trouvez pas votre bohneur parmi ces produits, rien de vous empêche de programmer vous-même ou de faire développer des reblets, parfaitement adaptées à vos besoins.

Les outils d'administration
Les reblets sont tellement polyvalentes que l'administration du serveur leur est confiée. Il vous suffit de vous connecter en tant qu'administrateur avec le compte "admin" pour avoir accès aux fonctions de gestion de Rebol/IOS. Un administrateur peut donc se connecter à partir de n'importe quel poste disposant d'un client Link.
Parmi les nombreux outils disponibles, les trois principaux sont sans consteste Alert pour l'envoi de messages aux utilisateurs, User-admin pour la gestion des utilisateurs et Reg-edit pour la mise à jour des filessets.
Alert permet d'envoyer un message à chaque utilisateur connecté au serveur. Sur le bureau du client, une fenêtre s'ouvre alors pour afficher l'alerte. Cette fonction est bien sûr très utile pour avertir les utilisateurs d'un événement important tel que l'annonce de l'indisponibilité d'une machine ou d'un service.
Avec User-admin, vous disposez d'un excellent outil de création et de gestion des comptes utilisateurs. Pour chacun d'entre-eux, vous devez saisir le nom et l'adresse e-mail. Vous pouvez également rattacher un utilisateur à un ou plusieurs groupes et définir des droits particuliers parmi les neufs critères de base disponibles. Le système est très souple et permet un contrôle très fin des droits de chacun. Il vous est également possible d'importer des utilisateurs dans la base des comptes de Rebol/IOS, à l'aide d'un simple script Rebol. Il est ainsi parfaitement envisageable d'intégrer automatiquement des éléments provenant d'un annuaire LDAP.



Le gestionnaire des utilisateurs.


Le Reg-edit est destiné à l'administration des filesets de Rebol/IOS. Il s'agit du système de fichiers utilisé par le serveur. Chaque fichier manipulé, que ce soit une application ou des données, appartient à un fileset définissant les caractèristiques du document, les droits d'accès et d'utilisation qui lui sont appliqués ainsi que de nombreuses autres informations telles que les icônes utilisés par le bureau Link. La publication sur le serveur d'une reblet utilisant une fonction POST, se résume en fait à la création d'un nouveau fileset sur le serveur.



Reg-Edit permet de manipuler le système de fichiers.


Conclusion
Rebol/IOS est un produit étonnant et sans véritable équivalent. Il suffit de l'utiliser quelques secondes pour comprendre que Carl Sassenrath réussit ici son pari de révolutionner l'usage d'Internet. Capable de s'intégrer à une architecture existante et de s'y substituer progressivement, Rebol/IOS peut devenir le cœur des systèmes d'information. La livraison de solutions construites autour d'un serveur IOS, spécifiquement configuré sur le plan du visuel et du fonctionnel, selon les besoins d'une entreprise, représente sans aucun doute un marché d'avenir pour les développeurs. Le portage annoncé de Link sur des systèmes aussi divers que les consoles de jeux Xbox, Playstation 2, Nintendo ou encore les PDA Sharp sous Linux et les Pocket PC, devrait faciliter la diffusion massive de ce concept fondamentalement novateur.




Olivier Auverlot

Retour