Extensibilité de ThingWorx > Extensions > Accès à distance > ThingWorx Remote Access Client (RAC)
ThingWorx Remote Access Client (RAC)
Remote Access Client (RAC) est un mécanisme d'utilisation de la fonctionnalité d'accès à distance de ThingWorx à partir d'une application composite personnalisée ou du module Remote Access and Control de ThingWorx Asset Advisor. Pour qu'un utilisateur final puisse se connecter à un périphérique distant, un tunnel doit être créé entre l'ordinateur local et le périphérique distant. L'application RAC active ce tunnel. Vous pouvez télécharger RAC à partir de la page ThingWorx Remote Access Client Downloads (en anglais).
Cette rubrique comporte les sections suivantes :
Démarrage rapide
1. Dans ThingWorx Composer, configurez un objet, puis connectez-le à ThingWorx Platform. Lors de la configuration d'un objet, assurez-vous qu'il répond aux critères suivants pour l'accès à distance :
a. La forme d'objet RemoteAccessible doit être appliquée à cet objet. Cette forme doit être appliquée automatiquement aux objets Axeda eMessage Agent.
b. L'objet doit disposer du RemoteAccessProvider approprié configuré dans la propriété RemoteAccessProvider.
c. L'objet doit être de type "reporting", c.-à-.d que la valeur de la propriété isReporting doit être vraie, ce qui est indiqué par une icône de coche. Un objet de type "reporting" est généralement un appareil distant lié à ThingWorx Platform.
d. Un point de terminaison du tunnel doit être configuré pour l'objet. Les protocoles suivants sont recommandés pour effectuer des tests :
SSH : pour une machine sans composants bureau, port TCP 22
VNC : pour une machine avec bureau, port TCP port 5900
* 
Par conception, le tunnel créé par l'application RAC reste actif tant qu'aucun côté ne rompt la connexion. Pour cette raison, la tunnelisation de ThingWorx Edge ne prend pas en charge les protocoles qui effectuent plusieurs connexions et déconnexions sur l'Edge, comme l'utilisation d'un navigateur pour accéder à un serveur HTTP. Par exemple, les déclencheurs RDP se déconnectent lorsque vous utilisez des informations d'identification incorrectes et lorsque vous vous connectez à un serveur RDP qui n'est pas approuvé par votre ordinateur. Pour être plus efficace, assurez-vous de bien comprendre le comportement de connexion et de déconnexion du protocole que vous tentez de transmettre.
2. Téléchargez ThingWorx Remote Access Client (RAC) à partir de la page ThingWorx Remote Access Client Downloads (en anglais).
3. Accédez à l'emplacement où vous avez enregistré le package, puis exécutez-le pour installer RAC. Par exemple, sous Windows exécutez le fichier .exe. Sous Linux et OS X, installez le package.
4. Ajoutez le widget RAClientLinker à une application composite. Consultez la rubrique Ajout du widget à une application composite pour plus d'informations.
5. A l'aide de votre application composite, démarrez une session à distance à l'aide de l'objet Edge que vous avez configuré et connecté à l'étape 1. La séquence suivante se déroule :
a. Une session à distance est demandée pour l'objet sélectionné dans ThingWorx Platform en appelant le service StartSession sur l'objet.
b. L'application RAC (tw-ra-client) est lancée.
c. L'application RAC établit une connexion avec le serveur d'accès à distance et affiche les informations de la session.
* 
L'application RAC se connecte par défaut à WebSocket Secure (WSS). Si vous devez accéder à l'application composite via un point de terminaison HTTP en texte clair (non recommandé), le client RAC doit être configuré pour autoriser une connexion à un WebSocket non chiffré (WS). Pour ce faire, modifiez le fichier config.json pour qu'il contienne l'élément { "secure": false }. Reportez-vous à la liste à puces de l'étape 10 de la rubrique Tâches de configuration de l'administrateur pour l'accès à distance pour connaître l'emplacement du fichier sur votre système d'exploitation. La désactivation du chiffrement est une pratique non sécurisée et incorrecte. Ne l'utilisez donc pas, sauf si cela est absolument nécessaire. N'oubliez pas que l'application RAC peut se connecter à des points de terminaison WSS ou WS, mais pas aux deux en même temps.
6. Connectez votre application cliente au port local. L'application RAC transmet les données du client au serveur d'accès à distance (et vers le périphérique distant), et inversement.
Découverte de ThingWorx Remote Access Client (RAC)
Le client exécutable s'appelle ThingWorx Remote Access Client (RAC). Ce client est lancé lorsque vous appelez le service LaunchClient sur le widget RAClientLinker. Le reste de cette section décrit l'interface utilisateur de ce client.
Lorsqu'il est lancé à partir d'une application composite, l'interface utilisateur de l'application RAC peut être similaire à celle-ci au démarrage de la session :
L'objet auquel RAC est connecté dans la capture d'écran ci-dessus se nomme ra-test-agent. La fenêtre de message affiche le statut actuel qui, dans l'exemple ci-dessus, est Server ready: connect client to <localhost:38367>. Les icônes qui apparaissent à droite, au-dessus de la fenêtre de message, sont décrites ci-après :
 : indicateur du statut de connexion. La couleur jaune signifie que la connexion est établie. L'indicateur s'anime pour indiquer que le client est en train d'effectuer une opération.
Les paramètres suivants peuvent apparaître sous le message de statut :
Remote Entity : nom de l'objet qui représente le périphérique distant dans ThingWorx. Dans l'exemple ci-dessus, l'objet a pour nom ra-test-agent.
Remote Server : nom du RemoteAccessProvider utilisé pour établir la session à distance. Dans l'exemple ci-dessus, le serveur distant est un serveur Axeda Global Access Server (GAS) (GAS) nommé gas.ptciot.io.
Remote Endpoint : type d'interface distante pour cette session à distance. Dans l'exemple ci-dessus, le type d'interface distante est TERMINAL, ce qui fait référence à des interfaces SSH ou Telnet.
Créé par : nom de l'utilisateur qui a démarré cette session à distance. Dans l'exemple ci-dessus, le nom d'utilisateur est Administrator.
Heure de début : jour de la semaine, date, heure et fuseau au moment où la session à distance a été initialisée par le serveur distant. Dans l'exemple ci-dessus, la session a été démarrée le lundi 5 novembre 2018 à 17:13:14 (17 h 13 et 14 s), heure GMT.
Durée : durée en heures, minutes et secondes de la session à distance, depuis son initialisation jusqu'à la déconnexion. Dans l'exemple ci-dessus, la session a été établie pendant six secondes.
Octets transférés : nombre d'octets échangés entre le périphérique distant et l'ordinateur à partir duquel RAC a été démarré. Pour les tunnels ThingWorxInternal, la valeur est initialement non nulle une fois que le serveur côté appareil est prêt. Dans l'exemple ci-dessus, l'appareil distant exécute un agent Axeda eMessage. La session est prête mais n'a pas été entièrement établie avec l'agent Axeda eMessage. Cette valeur est donc égale à 0.
Lorsque la session est prête, cet indicateur change pour afficher le numéro de port utilisé sur un arrière-plan vert et le message indiquant que le serveur d'accès à distance est prêt pour la connexion au périphérique :
* 
Vous pouvez cliquer sur le numéro de port pour le copier et le coller dans votre application cliente.
 : cliquez sur l'icône carrée noire pour arrêter la session en cours.
 : cliquez sur cette icône pour supprimer la session de l'écran. Si vous n'avez pas encore arrêté la session, le fait de cliquer sur cette icône arrête la session, puis l'enlève de l'écran.
Sur le côté droit de la barre supérieure figurent les icônes suivantes :
 : cette icône indique le statut de votre connexion à ThingWorx Platform. Lorsqu'une coche apparaît dans le nuage vert, vous êtes connecté.
 : cliquez sur cette icône pour afficher le menu de RAC :
Pour arrêter toutes les sessions, sélectionnez l'option Stop All Sessions dans le menu. Notez que les informations de chaque session restent visibles jusqu'à ce que vous cliquiez sur pour les supprimer.
Si vous devez utiliser un serveur proxy entre votre ordinateur et le périphérique distant, vous pouvez spécifier le nom d'hôte et le numéro de port à utiliser en sélectionnant l'option Proxy Settings dans le menu :
* 
Il est important de noter que l'application RAC peut être lancée sans aucun argument afin de définir les paramètres proxy. Une fois les paramètres enregistrés, l'application RAC continue d'utiliser les paramètres proxy qui ont été configurés lors du lancement par une application composite ThingWorx.
Pour afficher les informations de version de RAC, sélectionnez l'option About dans le menu :
Lorsque vous êtes prêt à fermer le client, sélectionnez l'option Exit dans le menu. En quittant, vous êtes invité à arrêter toutes les sessions actives, le cas échéant.
Configuration des paramètres de proxy via l'interface utilisateur
ThingWorx Remote Access Client (RAC) prend en charge la modification et l'enregistrement des paramètres proxy si la configuration de proxy n'a pas été spécifiée en tant que paramètre de requête.
* 
L'application RAC ne prend pas en charge les serveurs proxy authentifiés à ce moment-là.
Vous pouvez configurer les paramètres via l'interface utilisateur de l'application RAC, comme suit :
1. Lancez l'application RAC localement ou à partir de ThingWorx.
* 
Si vous la lancez en local, elle ne se connecte pas à ThingWorx, mais vous pouvez toujours configurer les paramètres proxy et les enregistrer.
2. Sélectionnez l'icône de menu (trois points) :
3. Dans le menu, sélectionnez Proxy Settings.
4. Lorsque la fenêtre des paramètres s'affiche, spécifiez le nom d'hôte (Hôte) et le numéro de port (Port) à utiliser :
5. Cliquez sur Enregistrer.
Connexions établies par proxy par RAC
Si la configuration du proxy est spécifiée dans RAC, les connexions sortantes suivantes sont établies par tunnel via le serveur proxy :
ThingWorx Platform, à l'aide du protocole AlwaysOn.
Axeda Global Access Server (GAS) à l'aide de TCP.
ThingWorx Internal Remote Access Provider, à l'aide du protocole AlwaysOn.
Statut des sessions à distance
Remote Access Client (RAC) peut détecter une modification apportée à CLOSE_REQUESTED dans le statut d'une session à distance. Cette modification se produit lorsque RemoteAccessSubsystem détermine qu'une session à distance a dépassé le temps maximum d'activité.
Pour actualiser le paramètre lastActivityTime d'une session à distance, l'application RAC met à jour régulièrement (toutes les 20 secondes) la session afin d'actualiser la valeur de bytesTransferred pour toutes les sessions qui remplissent les conditions suivantes :
Le nombre d'octets transférés suivi par l'application RAC est supérieur à 0.
Le nombre d'octets transférés suivi par l'application RAC a changé depuis la dernière mise à jour de la session.
Le statut de la session n'est pas TERMINATED.
Si la mise à jour de la session échoue, car elle n'existe plus, son statut est défini sur TERMINATED. Cette modification est efficace pour interrompre l'actualisation des octets.
* 
Ce timer est uniquement activé/requis pour les clients de ThingWorxInternalRemoteAccessProvider. Etant donné que le serveur Axeda Global Access Server (GAS) envoie régulièrement une mise à jour de statut à ThingWorx eMessage Connector, ce timer n'est pas nécessaire pour un client de GASRemoteAccessProvider. Le paramètre lastActivityTime des sessions du client GAS est automatiquement actualisé.