Aller au contenu

Services Web associés à VRmaze Lite

VRmaze Lite embarque un serveur Web permettant le contrôle du logiciel à distance. Ce serveur Web est lancé au démarrage de VRmaze Lite lorsque l'option Déployer les services Web est activée dans le panneau de configuration.

Image title 2

L'interface du Serveur Web.

Services Web de VRmaze Lite

Les services Web proposés par VRmaze Lite sont peu nombreux. Il s'agit d'un accès à un ensemble de commandes à distance.

Le serveur Web donne accès à ces fonctionnalités :

  • Créer un sujet (avec son nom et son prénom)
  • Lancer un protocole (en sélectionnant un sujet au préalable)
  • Envoyer une commande d'arrêt du protocole en cours
  • Arrêter brutalement le protocole en cours d'exécution
  • Voir les logs

Pour accéder au serveur Web, lorsque VRmaze Lite est lancé, il convient d'ouvrir un navigateur Internet et d'écrire l'adresse http://localhost/liteserver.

Pour accéder au serveur Web d'un ordinateur distant, il faut entrer l'adresse IP de l'ordinateur cible http://ADRESSE_IP_DISTANTE/liteserver

Obtenir des informations de logs

Le serveur Web renvoi les informations concernant VRmaze Lite, toutefois, il est dans l'incapacité d'avoir un retour d'état du protocole en cours. Le protocole doit, par lui même, renvoyer les informations au serveur de manière a ce que l'ensemble des clients du serveur se voient informés de l'état du protocole en cours.

Pour cela, VRmaze dispose d'un attribut d'entité nommé Lite Record Logger sous la catégorie Lite. Cet attribut recherchera le premier parent disponible contenant des enregistrements (DataRecords) et sortira à une fréquence variable la dernière donnée enregistrée connue sous forme d'une ligne de log dans le serveur.

Attribut Lite Record Logger

La fréquence d'envoi des logs doit volontairement être basse, de manière à ne pas surcharger les appel au serveur et le traitement du processus d'envoi au détriment de la rapidité d’exécution du protocole.

Gestion du signal d'arret

Par défaut, un protocole est indépendant, il n'est pas possible de l’arrêter depuis l'extérieur sans arrêter totalement le processus (au risque de n'obtenir aucun fichier résultat). Un attribut de protocole permet de gérer les signaux d’arrêt. Cet attribut Lite Server Signal Listener de la catégorie Lite va questionner régulièrement (une fois toutes les 3 secondes) le serveur sur l'état de sa commande Stop. Lorsque le signal est reçu, le protocole s’arrête normalement en procédant à l'enregistrement des données.

Gestion des triggers

Le serveur Web, destiné à être accessible depuis le réseau local permet de lancer des triggers manuellement à l'aide de la commande dédiée. Cette commande permet d'envoyer au protocole en cours d'expérimentation une valeur numérique. La valeur de ce trigger peut être capté par une entité MemoryMapperFloatRecorderEntity.

Cette entité permet la capture de valeur flottante dans un espace mémoire mappé. L'espace mémoire mappé dédié au serveur web de VRmaze Lite à pour nom LiteWebServer (Voir la section dédiée)

Erreur de lancement du Serveur Web

Il est possible que le lancement d'un serveur web au lancement de VRmaze Lite soit un échec. En effet, selon certaines configurations, il est possible que VRmaze Lite soit dans l'incapacité de lancer le serveur web. En cas de problème de lancement du logiciel un message s'affiche :

Image title 2

Le message d'erreur de lancement du serveur Web.

Erreur de lancement du serveur Web

Une erreur de lancement de serveur Web n'est pas bloquante pour l'utilisation de VRmaze Lite.

L'erreur s'explique par le fait que par défaut, Windows n'autorise pas l'ouverture de port de communication pour les utilisateurs non administrateurs.

  • La première solution consiste à lancer VRmaze Lite en tant qu'administrateur.

Cette première solution n'est pas toujours possible, la seconde solution consiste à déclarer l'ouverture du port de communication, utilisé par le serveur web, ouvert pour l'utilisateur lançant VRmaze Lite, ou pour tous les utilisateurs à défaut. L'opération consiste à lancer une action en ligne de commande en étant authentifié en administrateur :

Quelques pré-requis :

  • Cette commande doit être exécutée par un administrateur de la machine.
  • VRmaze Lite ne peut exécuter cette commande de manière interne.

Pour lancer une invite de commande en tant qu'administrateur, il faut exécuter la commande cmd et sélectionner l'option d'exécution administrateur :

Image title 2

L'invite de commande lancée en administrateur.

Ensuite, il faut taper une commande netsh ouvrant le port http en communication pour l'utilisateur enregistré ou tous les utilisateurs, dont voici deux exemples (Le premier exemple ouvre le port pour tous les utilisateurs de la machine tandis que le second l'ouvre pour l'utilisateur du domaine Domaine et de nom NomUtilisateur) :

  • netsh http add urlacl url=http://+:80/ user="tout le monde"
  • netsh http add urlacl url=http://+:80/ user=Domaine/NomUtilisateur

Cette commande n'est à effectué qu'une fois sur la machine et ne nécessite qu'un redémarrage de VRmaze Lite.

Connexion impossible au serveur depuis l'extérieur

En cas de soucis de connexion au serveur depuis un autre machine, il convient de vérifier les propriétés du pare-feu Windows et, dans certains cas, de permettre l'accès à la machine sur le port 80

Ouverture de port pour tout le monde

Attention, l'ouverture de port pour "Tout de monde" dépend de la version de Windows installé sur le poste. En effet, en fonction de la langue principale de Windows, "tous les utilisateurs" ont des noms différents (User="Everyone" en anglais, User="Todos" en espagnol etc.)

Blocage du port 80 par le pare-feu Windows

Le pare-feu de Windows bloque par défaut le port 80 en communication entrante et sortante. Pour accéder au serveur depuis un ordinateur du réseau, il convient :

  • De désactiver le pare-feu Windows (déconseillé pour cause de sécurité).
  • ouvrir le port 80 en communication entrante et sortante.

Pour ouvrir le port 80 en communication, il convient de créer deux règles, l'une pour la communication sortante, l'autre pour la communication entrante. De nombreux tutoriaux existent sur Internet, en voici un pour l'ouverture de port en connexion entrante. Il faut créer la même règle pour la connexion sortante.