Extensibilidad de ThingWorx > Extensiones > Acceso remoto > ThingWorx Remote Access Client (RAC)
ThingWorx Remote Access Client (RAC)
Remote Access Client (RAC) se proporciona como mecanismo para utilizar las funciones de acceso remoto de ThingWorx de un mashup personalizado o desde el módulo de Remote Access and Control de ThingWorx Asset Advisor. Para que un usuario final se conecte a un dispositivo remoto, se debe crear un túnel entre el equipo local y el dispositivo remoto. RAC permite el túnel. RAC se puede descargar desde la página ThingWorx Remote Access Client Downloads.
En este tema se incluyen las siguientes secciones:
Inicio rápido
1. En ThingWorx Composer, configure una cosa y conéctela a ThingWorx Platform. Al configurar una cosa, asegúrese de que cumpla los siguientes criterios para el acceso remoto:
a. La cosa debe tener aplicada la definición de cosa RemoteAccessible. En las cosas de Axeda eMessage Agent, esta definición se aplica automáticamente.
b. La cosa debe tener el elemento RemoteAccessProvider adecuado configurado en la propiedad RemoteAccessProvider.
c. La cosa debe generar informes. Es decir, el valor de la propiedad isReporting debe ser verdadero, lo que se indica mediante un icono de marca de verificación. Una cosa que "genera informes" suele ser un dispositivo remoto enlazado a ThingWorx Platform.
d. La cosa debe tener configurado un extremo de túnel. Los buenos candidatos para las pruebas son los protocolos, tales como:
SSH: para un ordenador sin componentes del escritorio, puerto TCP 22
VNC: para ordenador con escritorio, puerto TCP 5900
* 
Por diseño, el túnel creado por RAC permanece activo siempre y cuando ninguno de los lados interrumpa la conexión. Por este motivo, la tunelización de ThingWorx Edge no soporta protocolos que realicen varias conexiones y desconexiones desde el dispositivo Edge, como el uso de un explorador para acceder a un servidor HTTP. Por ejemplo, los activadores de RDP se desconectan cuando se utilizan credenciales incorrectas y cuando se conecta a un servidor RDP que no es de confianza para el ordenador. Para ser más eficaz, asegúrese de comprender el comportamiento de la conexión y la desconexión del protocolo que se está intentando reenviar.
2. Descargue ThingWorx Remote Access Client (RAC) desde la página ThingWorx Remote Access Client Downloads.
3. Navegue hasta la ubicación en la que se ha guardado el paquete y ejecute este para instalar RAC. Por ejemplo, en Windows ejecute el fichero .exe. En Linux y OS X, instale el paquete.
4. Añada el widget RAClientLinker a un mashup. Para obtener información detallada, consulte Adición del widget a un mashup .
5. Con el mashup, inicie una sesión remota con una cosa Edge que se haya configurado y conectado en el paso 1. Tiene lugar la siguiente secuencia:
a. Se solicita una sesión remota para la cosa seleccionada en ThingWorx Platform mediante la invocación del servicio StartSession en la cosa.
b. Se inicia la aplicación RAC(tw-ra-client).
c. La aplicación RAC establece una conexión con el servidor de acceso remoto y muestra la información de la sesión.
* 
La aplicación RAC se conecta por defecto a WebSocket Secure (WSS). Si se debe acceder al mashup a través de un extremo HTTP de texto no cifrado (no se recomienda), se debe configurar el cliente RAC para permitir una conexión a un WebSocket no cifrado (WS). Para ello, modifique el fichero config.json para que contenga el elemento { "secure": false }. Consulte la lista con viñetas del paso 10 del tema Tareas del administrador para la configuración del acceso remoto para averiguar la ubicación del fichero en el sistema operativo. La desactivación de la codificación es una práctica no segura e incorrecta, por lo que no se debe utilizar a menos que sea absolutamente necesario. Se debe tener en cuenta que la aplicación RAC se puede conectar a extremos WSS o WS, pero no a ambos a la vez.
6. Conecte la aplicación cliente al puerto local. La aplicación RAC reenvía los datos de cliente al servidor de acceso remoto (y al dispositivo remoto) y viceversa.
Exploración de ThingWorx Remote Access Client (RAC)
El cliente que se puede iniciar se denomina ThingWorx Remote Access Client (RAC). Este cliente se iniciará al invocar el servicio LaunchClient en el widget RAClientLinker. En el resto de esta sección se explica la interfaz de usuario de este cliente.
Cuando se inicia desde un mashup, la interfaz de usuario de RAC puede tener el siguiente aspecto al iniciar la sesión:
El nombre de la cosa a la que se conecta RAC en la captura de pantalla anterior es ra-test-agent. En la ventana de mensajes se muestra el estado actual, que en el ejemplo anterior es Server ready: connect client to <localhost:38367. A continuación, se describen los iconos que aparecen a la derecha, encima de la ventana de mensajes:
: un indicador del estado de conexión. El color amarillo significa que se está conectando. El indicador se anima para indicar que el cliente está haciendo algo.
En la lista de parámetros debajo del mensaje de estado se incluye:
Entidad remota: el nombre de la cosa que representa el dispositivo remoto en ThingWorx. En el ejemplo anterior, el nombre de cosa es ra-test-agent.
Remote Server: nombre del elemento RemoteAccessProvider que se utiliza para establecer la sesión remota. En el ejemplo anterior, el servidor remoto es una instancia de Axeda Global Access Server (GAS), con el nombre gas.ptciot.io.
Extremo remoto: el tipo de interfaz remota para esta sesión remota. En el ejemplo anterior, el tipo de interfaz remota es TERMINAL, que hace referencia a las interfaces SSH o Telnet.
Creado por: el nombre del usuario que ha iniciado esta sesión remota. En el ejemplo anterior, el nombre de usuario es Administrator.
Hora de inicio: el día de la semana, la fecha, la hora y la zona horaria en que el servidor remoto ha iniciado la sesión remota. En el ejemplo anterior, la sesión se inició el lunes 5 de noviembre de 2018, a las 17:13:14 (5:13:14 PM) en la zona horaria GMT.
Duración: número de horas, minutos y segundos que ha durado la sesión remota, desde la inicialización hasta la desconexión. En el ejemplo anterior, la sesión se ha establecido durante seis segundos.
Bytes transferidos: número de bytes intercambiados entre el dispositivo remoto y el ordenador desde el que se ha iniciado RAC. Para los túneles ThingWorxInternal, el valor es distinto de cero inicialmente, después de que el servidor del lado del dispositivo esté listo. En el ejemplo anterior, el dispositivo remoto ejecuta un agente de AXEDA eMessage. La sesión está lista, pero no se ha establecido completamente con el agente de AXEDA eMessage, por lo que este número es 0.
Cuando la sesión está lista, este indicador cambia para mostrar el número de puerto que se utiliza sobre un fondo verde y el mensaje de que el servidor de acceso remoto está listo para conectarse al dispositivo:
* 
Se puede pulsar en el número de puerto para copiarlo y pegarlo en la aplicación cliente.
: pulse en el icono de cuadrado negro si desea detener la sesión actual.
: pulse en este icono para quitar la sesión de la pantalla. Si todavía no se ha detenido la sesión, al pulsar en este icono se detiene la sesión y se quita de la pantalla.
En el lado derecho de la barra superior se incluyen los siguientes elementos:
: este icono indica el estado de la conexión a ThingWorx Platform. Cuando aparece una marca en la nube verde, el usuario está conectado.
: pulse en este icono para mostrar el menú de RAC:
Para detener todas las sesiones, seleccione la opción Stop All Sessions del menú. Se debe tener en cuenta que la información de cada sesión permanece visible hasta que se pulsa en para quitarla.
Si se debe utilizar un servidor proxy entre el ordenador y el dispositivo remoto, se puede especificar el nombre de host y el número de puerto que se utilizarán seleccionando la opción Configuración de proxy del menú:
* 
Es importante tener en cuenta que RAC se puede iniciar sin argumentos con el fin de definir la configuración de Proxy. Una vez guardada la configuración, RAC seguirá utilizando la configuración de Proxy que se había configurado al iniciar un mashup de ThingWorx.
Para mostrar información sobre la versión de RAC, seleccione la opción Acerca de del menú:
Cuando esté listo para cerrar el cliente, seleccione la opción Salir del menú. Al salir se solicita que se cierren todas las sesiones activas, si las hay.
Configuración de las opciones de proxy a través de la interfaz de usuario
ThingWorx Remote Access Client (RAC) permite modificar y guardar la configuración de Proxy si esta NO se especifica como parámetro de consulta.
* 
En estos momentos, RAC no soporta Proxy autenticados.
La configuración se puede definir a través de la interfaz de usuario de RAC, tal como se indica a continuación:
1. Inicie RAC localmente o desde ThingWorx.
* 
Si se inicia localmente, no se conecta a ThingWorx, pero se puede definir la configuración de Proxy y guardarla.
2. Seleccione el icono de menú (puntos suspensivos):
3. En el menú, seleccione Configuración proxy.
4. Cuando aparezca la ventana de la configuración, especifique el nombre en el campo Host y el valor de Puerto que se deben utilizar:
5. Pulse en Guardar.
Conexiones con proxy de RAC
Si la configuración de proxy se especifica en RAC, las siguientes conexiones de salida se tunelizan a través del servidor proxy:
ThingWorx Platform, mediante el protocolo AlwaysOn.
Axeda Global Access Server (GAS), mediante TCP.
ThingWorx Internal Remote Access Provider, mediante el protocolo AlwaysOn.
Estado de las sesiones remotas
Remote Access Client (RAC) puede detectar un cambio a CLOSE_REQUESTED en el estado de una sesión remota. Este cambio se produce cuando RemoteAccessSubsystem determina que una sesión remota ha sobrepasado el tiempo máximo que puede permanecer activo.
Para renovar lastActivityTime de una sesión remota, RAC actualiza periódicamente (cada 20 segundos) la sesión para que se renueva bytesTransferred de cualquier sesión que cumpla las siguientes condiciones:
Los bytes transferidos de los que RAC ha realizado el seguimiento son superiores a 0.
Los bytes transferidos de los que RAC ha realizado el seguimiento han cambiado desde la última actualización de la sesión.
El estado de la sesión no es TERMINATED.
Si la actualización de la sesión falla debido a que la sesión ya no existe, el estado de la sesión se fuerza al estado TERMINATED. Este cambio detiene eficazmente el procesamiento de bytes de renovación.
* 
Este temporizador solo se activa o es obligatorio para los clientes de ThingWorxInternalRemoteAccessProvider. Puesto que AXEDA Global Access Server (GAS) envía una actualización de estado periódica al conector de ThingWorx eMessage, este temporizador no es necesario para un cliente de GASRemoteAccessProvider. lastActivityTime para sesiones de cliente de GAS se renueva automáticamente.