Estendibilità di ThingWorx > Estensioni > Accesso remoto > ThingWorx Remote Access Client (RAC)
ThingWorx Remote Access Client (RAC)
Remote Access Client (RAC) viene fornito come meccanismo per utilizzare le funzionalità di ThingWorx Remote Access da un mashup personalizzato o dal modulo Remote Access and Control di ThingWorx Asset Advisor. Per potersi connettere a un dispositivo remoto, l'utente deve disporre di un tunnel creato tra il computer locale e il dispositivo remoto. RAC attiva tale tunnel. È possibile scaricare RAC dalla pagina ThingWorx Remote Access Client Downloads.
Questo argomento contiene le sezioni riportate di seguito.
Avvio rapido
1. In ThingWorx Composer impostare un oggetto e quindi connetterlo a ThingWorx Platform. Quando si imposta un oggetto, assicurarsi che soddisfi i criteri riportati di seguito per l'accesso remoto.
a. All'oggetto deve essere applicata la thing shape RemoteAccessible. Negli oggetti Axeda eMessage Agent è applicata automaticamente.
b. Nella proprietà RemoteAccessProvider dell'oggetto deve essere configurato il RemoteAccessProvider appropriato.
c. L'oggetto deve essere di tipo report. Il valore della proprietà isReporting deve pertanto essere true, come indicato da un'icona di segno di spunta. Un oggetto di tipo report in genere è un dispositivo remoto associato a ThingWorx Platform.
d. L'oggetto deve avere un endpoint di tunnel configurato. Candidati validi per il test sono protocolli come quelli indicati di seguito.
SSH - Per un computer senza componenti desktop, porta TCP 22
VNC - Per un computer con componenti desktop, porta TCP 5900
* 
La progettazione prevede che il tunnel creato da RAC rimanga attivo fintantoché nessuno dei due lati interrompe la connessione. Per questo motivo, il tunneling edge ThingWorx non supporta i protocolli che effettuano connessioni e disconnessioni multiple dall'edge, ad esempio utilizzando un browser per accedere a un server HTTP. Ad esempio, i trigger RDP si disconnettono quando si utilizzano le credenziali errate e quando si effettua la connessione a un server RDP non attendibile per il computer. Per maggiore efficacia, assicurarsi di comprendere il comportamento di connessione e disconnessione del protocollo che si sta tentando di inoltrare.
2. Scaricare ThingWorx Remote Access Client (RAC) dalla pagina ThingWorx Remote Access Client Downloads.
3. Passare alla posizione in cui è stato salvato il package ed eseguirlo per installare RAC. Ad esempio, in Windows eseguire il file .exe. In Linux e OS X installare il package.
4. Aggiungere il widget RAClientLinker a un mashup. Per dettagli, vedere Aggiunta del widget a un mashup .
5. Utilizzando il mashup, avviare una sessione remota con l'oggetto edge impostato e connesso al passo 1. Viene eseguita la sequenza riportata di seguito.
a. Viene richiesta una sessione remota per l'oggetto selezionato in ThingWorx Platform tramite una chiamata al servizio StartSession sull'oggetto.
b. Viene avviata l'applicazione RAC (tw-ra-client).
c. L'applicazione RAC stabilisce una connessione con il server di accesso remoto e visualizza le informazioni sulla sessione.
* 
L'applicazione RAC si connette per default a WebSocket Secure (WSS). Se è necessario accedere al mashup tramite un endpoint HTTP con testo in chiaro (non consigliato), il client RAC deve essere configurato in modo da consentire una connessione a un WebSocket (WS) non crittografato. A tale scopo, modificare il file config.json in modo che contenga l'elemento { "secure": false }. Fare riferimento all'elenco puntato nel passo 10 dell'argomento Task di impostazione dell'amministratore per l'accesso remoto per la posizione del file nel sistema operativo in uso. La disattivazione della crittografia è una pratica scorretta e poco sicura, pertanto va evitata, a meno che non sia assolutamente necessaria. Tenere presente che l'applicazione RAC può connettersi agli endpoint WSS o WS, ma non a entrambi contemporaneamente.
6. Connettere l'applicazione client alla porta locale. L'applicazione RAC inoltra i dati del client al server di accesso remoto e quindi al dispositivo remoto e viceversa.
ThingWorx Remote Access Client (RAC) in dettaglio
Il client che può essere avviato è denominato ThingWorx Remote Access Client (RAC). Il client viene avviato quando si esegue la chiamata al servizio LaunchClient nel widget RAClientLinker. Il resto di questa sezione descrive l'interfaccia del client.
Quando viene avviata da un mashup, l'interfaccia utente di RAC può avere aspetto simile al seguente all'avvio di una sessione:
L'oggetto a cui RAC si connette nella schermata precedente è denominato ra-test-agent. Nella finestra dei messaggi viene visualizzato lo stato corrente che, nell'esempio precedente, è Server ready: connect client to <localhost:38367. Le icone a destra, sopra la finestra dei messaggi, sono descritte di seguito.
- Indicatore dello stato di connessione. Il colore giallo indica che la connessione è in corso. L'indicatore è animato per indicare che il client sta eseguendo un'operazione.
Sotto il messaggio di stato sono visualizzati i seguenti parametri:
Remote Entity - Nome dell'oggetto che rappresenta il dispositivo remoto in ThingWorx. Nell'esempio precedente, il nome dell'oggetto è ra-test-agent.
Remote Server - Nome del RemoteAccessProvider utilizzato per stabilire la sessione remota. Nell'esempio precedente, il server remoto è Axeda Global Access Server (GAS) ed è denominato gas.ptciot.io.
Remote Endpoint - Tipo di interfaccia remota della sessione remota. Nell'esempio precedente, il tipo di interfaccia remota è TERMINAL, che fa riferimento alle interfacce SSH o Telnet.
Created By - Nome dell'utente che ha avviato la sessione remota. Nell'esempio precedente, il nome utente è Administrator.
Inizio - Giorno della settimana, data, ora e fuso orario in cui la sessione remota è stata avviata dal server remoto. Nell'esempio precedente, la sessione è stata avviata lunedì 5 novembre 2018 alle 17.13.14 GMT.
Duration - Numero di ore, minuti e secondi di durata della sessione remota, dall'inizializzazione alla disconnessione. Nell'esempio precedente, la sessione è stata stabilita per sei secondi.
Bytes Transferred - Numero di byte scambiati tra il dispositivo remoto e il computer da cui è stato avviato RAC. Per i tunnel ThingWorxInternal il valore è inizialmente diverso da zero, una volta che il server lato dispositivo è pronto. Nell'esempio precedente, il dispositivo remoto esegue un agente eMessage Axeda. La sessione è pronta ma non è stata completamente stabilita con l'agente eMessage Axeda, pertanto il numero è 0.
Quando la sessione è pronta, l'indicatore cambia in modo da visualizzare il numero di porta in uso su sfondo verde e il messaggio che il server di accesso remoto è pronto per la connessione al dispositivo:
* 
È possibile fare clic sul numero di porta per copiarlo e incollarlo nell'applicazione client.
- Fare clic sull'icona del quadratino nero se si desidera arrestare la sessione corrente.
- Fare clic su questa icona per rimuovere la sessione dalla schermata. Se la sessione non è già stata interrotta, se si fa clic su questa icona la si arresta e la si rimuove dalla schermata.
Sul lato destro della barra superiore sono disponibili i seguenti elementi:
- Questa icona indica lo stato della connessione a ThingWorx Platform. Quando viene visualizzato un segno di spunta nella nuvoletta verde, si è connessi.
- Fare clic su questa icona per visualizzare il menu di RAC:
Per arrestare tutte le sessioni, selezionare l'opzione Stop All Sessions dal menu. Le informazioni relative a ciascuna sessione rimangono visibili finché non si fa clic su per rimuoverle.
Se è necessario utilizzare un server proxy tra il computer e il dispositivo remoto, è possibile specificare il nome host e il numero di porta da utilizzare selezionando l'opzione Proxy Settings dal menu:
* 
È importante notare che RAC può essere avviato senza argomenti, allo scopo di configurare le impostazioni proxy. Una volta salvate le impostazioni, RAC continuerà a utilizzare le impostazioni proxy configurate quando viene avviato da un mashup ThingWorx.
Per visualizzare le informazioni sulla versione di RAC, selezionare l'opzione About nel menu:
Quando si è pronti per chiudere il client, selezionare l'opzione Exit dal menu. Quando si chiude il client, viene richiesto di terminare tutte le sessioni attive, se presenti.
Configurazione delle impostazioni del proxy tramite l'interfaccia utente
ThingWorx Remote Access Client (RAC) supporta la modifica e il salvataggio delle impostazioni proxy, se la configurazione proxy NON è specificata come parametro di interrogazione.
* 
Al momento RAC non supporta i proxy autenticati.
È possibile configurare le impostazioni tramite l'interfaccia utente RAC, come descritto di seguito.
1. Avviare RAC localmente o da ThingWorx.
* 
Se viene avviato localmente, non si connette a ThingWorx, ma è comunque possibile configurare le impostazioni proxy e salvarle.
2. Selezionare l'icona del menu (tre punti): .
3. Nel menu selezionare Proxy Settings.
4. Quando viene visualizzata la finestra delle impostazioni, in Host e Port specificare rispettivamente il nome host e il numero di porta da utilizzare:
5. Fare clic su Save.
Connessioni inviate al proxy da RAC
Se la configurazione del proxy è specificata in RAC, il tunneling delle connessioni in uscita elencate di seguito viene eseguito tramite server proxy.
ThingWorx Platform, con il protocollo AlwaysOn.
Axeda Global Access Server (GAS), con TCP
ThingWorx Internal Remote Access Provider, con il protocollo AlwaysOn
Stato delle sessioni remote
Remote Access Client (RAC) può rilevare una modifica a CLOSE_REQUESTED nello stato di una sessione remota. Questa modifica si verifica quando RemoteAccessSubsystem determina che una sessione remota ha superato il tempo massimo in cui può rimanere attiva.
Per aggiornare lastActivityTime per una sessione remota, RAC aggiorna periodicamente (ogni 20 secondi) la sessione per aggiornare bytesTransferred per tutte le sessioni che soddisfano le condizioni riportate di seguito.
I byte trasferiti monitorati da RAC sono maggiori di 0
I byte trasferiti monitorati da RAC sono cambiati dopo l'ultimo aggiornamento della sessione
Lo stato della sessione non è TERMINATED.
Se non è possibile aggiornare la sessione perché non esiste più, per la sessione viene forzato lo stato TERMINATED. Questa modifica interrompe efficacemente l'elaborazione dei byte di aggiornamento.
* 
Questo timer è attivato/richiesto solo per i client di ThingWorxInternalRemoteAccessProvider. Poiché il Global Access Server (GAS) Axeda invia un aggiornamento di stato periodico a ThingWorx eMessage Connector, questo timer non è necessario per un client di un GASRemoteAccessProvider. Il lastActivityTime per le sessioni client GAS viene aggiornato automaticamente.