lundi 24 février 2014

Choix techniques

Un certain nombre de choix ont été faits quant aux outils utilisés pour construire Ome. La base n'est plus FirefoxOS. Au coeur du projet, le langage de programmation Io de Steve Dekorte, qui implémente de belle façon des concepts simples et puissants. Au-dessus de Io, la couche réseau sera motorisée par Raknet, qui est à l'origine conçu pour le développement de jeux MMO, un gage d'efficacité. Pour l'interface, à la fois pour le rendu visuel et la capture des actions utilisateurs, on utilisera Clutter, qui intègre notamment Gecko et Webkit, dont nous avons absolument besoin. Enfin, nous devrons utiliser OpenCV pour la reconnaissance visuelle des éléments dont on veut automatiser la manipulation, puisqu'on ne veut pas de java.

L'architecture sera similaire à celle d'un jeu massivement multijoueur, classiquement client/serveur. Il se trouve que Clutter est capable de construire une interface à partir de messages JSON, et c'est donc sans doute ce langage qui sera retenu pour les communications client-serveur.

Pour les communications serveur-serveur, c'est à dire entre les Ome de différents utilisateurs, on utilisera tout simplement cette caractéristique naturelle de Io qui est de tout faire par émission de messages. Les objets contenus dans un serveur pourront envoyer des messages à des objets contenus dans d'autres serveurs, à condition bien sûr qu'ils en aient l'autorisation. Les serveurs eux-mêmes sont des lobbys, dans la terminologie Io.

La seule modification du langage Io qui soit prévue pour l'instant est l'ajout d'un slot "before", qui serait activé automatiquement, s'il existe, avant même la recherche d'un slot correspondant au message reçu. Cela permettra de vérifier si l'expéditeur du message a l'autorisation d'atteindre le slot cible. J'ai évoqué l'idée de ce slot "before" sur la mailing list de Io, et elle semble avoir été appréciée.

Pour l'instant, nous en sommes là.

Aucun commentaire:

Enregistrer un commentaire