Opera a annoncé il y a quelques temps l’arrivée imminente du « web réinventé ». Faute de réinvention, c’est quand même un concept intéressant qui a fait son apparition, sous la forme de Opera Unite.
Une idée simple pour beaucoup de possibilités
Concrètement, l’idée c’est que chaque utilisateur est aussi diffuseur de contenu. Par le biais de petits web-services hébergés sur sa machine, l’utilisateur peut mettre à disposition des galeries photo, des fichiers, de la musique en streaming, des pages web, une messagerie, ou même un frigo sur lequel n’importe qui peut venir coller un post-it. Le tout restant sur sa machine, pas besoin de passer par un serveur tiers.
Le fonctionnement est plutôt simple, Opera a pris son navigateur web et a mis un serveur web dedans. Le serveur, qui tourne donc sur la machine de l’utilisateur, reçoit des requêtes par le biais d’un proxy (operaunite.com) qui fait le routage. Une fois la requête reçue, celle-ci est passée à une application javascript qui s’occupe du traitement (afficher une galerie d’images, afficher le frigo, fournir un fichier, afficher une page web).
En pratique, on accède à la page Unite de quelqu’un grace à une adresse de la forme : http://nomMachine.nomUtilisateur.operaunite.com/nomApplication/
Par exemple, pour accéder à mon frigo il faudra aller à cette url : http://home.dalsh.operaunite.com/fridge/.
Quelques détails techniques
L’intention d’Opera est clairement de créer une communauté aussi bien d’utilisateurs, que de développeurs capables de créer de nouvelles applications Unite, à la manière de firefox et ses extensions. Une application Unite se présente sous la forme d’un fichier .us (Unite Service) qui n’est en fait qu’une archive. À l’intérieur, un fichier config.xml qui contient le nom du service, sa description, le nom de l’auteur etc, et un fichier index.html, point d’entrée du service qui en contient toute la logique. Alors bien sur on peut diviser le code en autant de fichiers que l’on veut, mais au minimum il ne faut que cela, 2 fichiers dans une archive.
Pour communiquer avec le serveur intégré au navigateur, opera fourni une API toute simple. Voici un petit Hello World pour illustrer :
config.xml
1 2 3 4 5 6 7 8 9 10 11 | <widget> <widgetname>Hello World</widgetname> <description>Hello World pour Opera Unite</description> <author> <name>Dalsh</name> </author> <feature name="http://xmlns.opera.com/webserver"> <param name="type" value="service"/> <param name="servicepath" value="helloworld"/> </feature> </widget> |
index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <!DOCTYPE html> <script> var webserver; window.onload = function () { webserver = opera.io.webserver if (webserver) { webserver.addEventListener('_index', helloWorld, false); } } function helloWorld(e) { var response = e.connection.response; response.write( '<!DOCTYPE html>' + '<html><head><title>HelloWorld!</title></head>' + '<body><h1>Hello World !</h1></body>' + '</html>' ); response.close(); } </script> |
C’est de l’event-based, donc assez simple.
11 | webserver.addEventListener('_index', helloWorld, false); |
addEventListener permet de d’associer un événement à un callback. Ici, quand la racine du module est demandée on éxecutera la fonction helloWorld
17 18 | var response = e.connection.response; response.write(...); |
Les fonctions callback prennent un événement en argument. Cet événement contient la requête ( e.connection.request ) et la réponse dans laquelle il va falloir écrire le résultat à envoyer au client.
Pour tester il suffit de zipper les deux fichiers dans une archive helloworld.us et de glisser l’archive dans Opera. Ensuite, on va à l’adresse http://machine.utilisateur.operaunite.com/helloworld/.
A noter, il est aussi possible de ne pas utiliser le serveur operaunite.com. Le serveur web est configuré par défaut pour écouter le port 8840 et rien ne vous empêche d’y accéder directement via http://votreip:8840/, à condition que votre routeur soit configuré correctement ou compatible UPnP.
Au final, même si Unite est prometteur Opera risque de souffrir de la faiblesse de sa base d’utilisateurs, plutôt réduite. Personnellement je me servais déjà d’Opera et je trouve ces nouvelles fonctionnalités tout à fait bienvenues, mais je doute que les utilisateurs habitués à firefox ou safari soient près à changer leurs habitudes uniquement pour Unite.
En tous cas je vous invite à tester, en téléchargeant Opera Unite

Mots-clefs :