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 dapplications Rebol. Reprenant les fonctionnalités des autres versions du langage (Core, View et Command), il permet la création dune communauté dutilisateurs 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 dun 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 à laide dun 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 quil vous permet de vous passer totalement dun encombrant navigateur, est que ce dispositif gère naturellement la notion de synchronisation. A chaque fois quun 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 lon 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 lutilisateur 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 à laide 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 lutilisateur, 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 dinformations entre les clients Link et le serveur dapplications. Il est ici inutile dajouter quoi que ce soit au produit : IOS sait gérer seul sa sécurité. La première chose à savoir est quun client Link ne peut se connecter quau 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 linté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. Lidentification se repose sur le classique login accompagné dun 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 quils existent et nauront dailleurs 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 cur du dispositif est constitué par le serveur nommé REBOL/SERVE. Ce produit sinstalle 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.
Larchive 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. Cest un simple exécutable denviron 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 denviron 35 Ko est présente dans le répertoire PROXY de larchive 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 lutilité de ce proxy ? En fait, pour faire fonctionner IOS sur Internet, vous avez besoin dun 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 dintermé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. Larchitecture est très flexible et vous permet dadapter 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 cur 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 à laide 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 cur 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