ThingWorx 확장성 > 확장 프로그램 > 원격 액세스 > ThingWorx Remote Access Client (RAC)
ThingWorx Remote Access Client (RAC)
Remote Access Client (RAC)는 사용자 정의 매쉬업 또는 ThingWorx Asset AdvisorRemote Access and Control 모듈에 있는 ThingWorx Remote Access 기능을 사용하기 위한 메커니즘으로 제공됩니다. 모든 최종 사용자가 원격 장치에 연결하려면 로컬 시스템과 원격 장치 사이에 터널을 만들어야 합니다. RAC는 해당 터널을 활성화합니다. ThingWorx Remote Access Client 다운로드 페이지에서 RAC를 다운로드할 수 있습니다.
이 항목에는 다음 단원이 포함됩니다.
빠른 시작
1. ThingWorx Composer에서 사물을 설정한 다음 ThingWorx Platform에 연결합니다. 사물을 설정할 때 사물이 원격 액세스에 대한 다음 조건을 충족하는지 확인하십시오.
a. 사물에 RemoteAccessible 사물 형태가 적용되어 있어야 합니다. Axeda eMessage Agent 사물에는 이 형태가 자동으로 적용됩니다.
b. 사물의 RemoteAccessProvider 속성에 적합한 RemoteAccessProvider가 구성되어 있어야 합니다.
c. 사물을 보고해야 합니다. 즉, isReporting 속성의 값이 true여야 합니다(확인 표시 아이콘으로 표시). "보고" 사물은 일반적으로 ThingWorx Platform에 바인딩되는 원격 장치입니다.
d. 사물에는 터널 끝점이 구성되어 있어야 합니다. 테스트를 위한 적절한 후보는 다음과 같은 프로토콜입니다.
SSH - 데스크톱 구성 요소가 없는 시스템의 경우 TCP 포트 22
VNC - 데스크톱이 있는 시스템의 경우 TCP 포트 5900
* 
RAC에 의해 생성된 터널은 어느 쪽도 연결을 끊지 않는 한 활성 상태를 유지하도록 설계되었습니다. 이러한 이유로 ThingWorx Edge 터널링은 브라우저를 사용하여 HTTP 서버에 액세스하는 것과 같이 Edge와의 여러 연결을 설정하거나 연결을 끊기 위한 프로토콜을 지원하지 않습니다. 예를 들어, 잘못된 자격 증명을 사용하고 사용자의 컴퓨터에서 신뢰하지 않는 RDP 서버에 연결할 때 RDP 트리거가 연결 해제됩니다. 가장 효과적으로 사용하려면 전달하려는 프로토콜의 연결 및 연결 끊기 동작을 이해하고 있어야 합니다.
2. ThingWorx Remote Access Client 다운로드 페이지에서 ThingWorx Remote Access Client (RAC)를 다운로드합니다.
3. 패키지를 저장한 위치로 이동하고 해당 패키지를 실행하여 RAC를 설치합니다. 예를 들어, Windows에서 .exe 파일을 실행합니다. Linux 및 OS X에서 패키지를 설치합니다.
4. RAClientLinker 위젯을 매쉬업에 추가합니다. 자세한 내용은 매쉬업에 위젯 추가 을 참조하십시오.
5. 매쉬업을 사용하여 1단계에서 설정하고 연결한 에지 사물로 원격 세션을 시작합니다. 다음 시퀀스가 발생합니다.
a. 사물에서 StartSession 서비스를 호출하여 ThingWorx Platform에서 선택한 사물에 대한 원격 세션을 요청합니다.
b. RAC 응용 프로그램(tw-ra-client)이 실행됩니다.
c. RAC 응용 프로그램은 Remote Access Server와의 연결을 설정하고 세션 정보를 표시합니다.
* 
RAC 응용 프로그램은 기본적으로 WSS(WebSocket 보안)에 연결됩니다. 일반 텍스트 HTTP 끝점(권장하지 않음)을 통해 매쉬업에 액세스해야 하는 경우 암호화되지 않은 WS(WebSocket)에 연결할 수 있도록 RAC 클라이언트를 구성해야 합니다. 이렇게 하려면 { "secure": false } 요소를 포함하도록 config.json 파일을 수정합니다. 운영 체제의 파일 위치는 원격 액세스에 대한 관리자 설정 작업 항목의 10단계에 있는 글머리 기호 목록을 참조하십시오. 암호화 비활성화는 안전하지 않고 잘못된 습관이므로 절대적으로 필요한 경우가 아니면 사용하지 마십시오. RAC 응용 프로그램은 WSS 또는 WS 끝점에 연결할 수 있지만 동시에 두 끝점 모두에 연결할 수는 없습니다.
6. 클라이언트 응용 프로그램을 로컬 포트에 연결합니다. RAC 응용 프로그램은 클라이언트 데이터를 Remote Access Server에 전달(원격 장치에도 전달)하며 그 반대의 경우도 마찬가지입니다.
ThingWorx Remote Access Client (RAC) 탐색
실행될 수 있는 클라이언트를 ThingWorx Remote Access Client (RAC)라고 합니다. RAClientLinker 위젯에서 LaunchClient 서비스를 호출할 때 이 클라이언트가 실행됩니다. 이 단원의 나머지 부분에서는 이 클라이언트의 사용자 인터페이스를 설명합니다.
매쉬업에서 실행되는 경우 세션 시작 시 RAC 사용자 인터페이스가 다음과 같이 표시될 수 있습니다.
위의 스크린샷에서 RAC가 연결 중인 사물의 이름은 ra-test-agent입니다. 메시지 창에 현재 상태가 표시됩니다(위 예에서는 서버 준비됨: 클라이언트를 <localhost:38367>에 연결). 메시지 창의 오른쪽 위에 있는 아이콘에 대한 설명은 다음과 같습니다.
- 연결 상태의 표시기입니다. 노란색 색상은 연결 중임을 의미합니다. 클라이언트가 어떤 작업을 수행 중임을 나타내기 위해 표시기에 애니메이션이 적용됩니다.
상태 메시지 아래의 매개 변수 목록은 다음과 같습니다.
원격 엔티티 - ThingWorx에서 원격 장치를 나타내는 사물의 이름입니다. 위의 예에서 사물 이름은 ra-test-agent입니다.
원격 서버 - 원격 세션을 설정하는 데 사용되는 RemoteAccessProvider의 이름입니다. 위 예에서 원격 서버는 이름이 gas.ptciot.ioAxeda Global Access Server (GAS)입니다.
원격 끝점 - 이 원격 세션에 대한 원격 인터페이스의 유형입니다. 위의 예에서 원격 인터페이스의 유형은 SSH 또는 텔넷 인터페이스를 참조하는 TERMINAL입니다.
작성자 - 이 원격 세션을 시작한 사용자의 이름입니다. 위의 예에서 사용자 이름은 Administrator입니다.
시작 시간 - 원격 서버에서 원격 세션을 시작한 요일, 날짜, 시간 및 시간대입니다. 위의 예에서는 세션이 2018년 11월 5일 월요일 17:13:14(오후 5:13:14)(GMT 시간대)에 시작되었습니다.
기간 - 원격 세션이 초기화부터 연결 해제까지 유지된 기간(시간, 분 및 초)입니다. 위의 예에서 세션은 6초 동안 설정되었습니다.
전송된 바이트 수 - RACRAClient가 시작된 컴퓨터와 원격 장치 간에 교환되는 바이트 수입니다. ThingWorxInternal 터널의 경우 장치측 서버가 준비되면 값이 처음에는 0이 아닌 값이 됩니다. 위 예에서 원격 장치는 Axeda eMessage 에이전트를 실행하고 있습니다. 세션이 준비되었지만 Axeda eMessage 에이전트를 사용하여 완전히 설정되지 않았으므로 이 숫자는 0입니다.
세션이 준비되면 이 표시기가 변경되어 녹색 백그라운드에서 사용 중인 포트 번호와 Remote Access Server가 장치에 연결할 준비가 되었다는 메시지가 표시됩니다.
* 
포트 번호를 클릭하여 복사한 후 클라이언트 응용 프로그램에 붙여넣을 수 있습니다.
- 현재 세션을 중지하려면 검정색 사각형 아이콘을 클릭합니다.
- 화면에서 세션을 제거하려면 이 아이콘을 클릭합니다. 세션을 아직 중지하지 않은 경우 이 아이콘을 클릭하면 세션이 중지되고 화면에서 제거됩니다.
상단 막대의 오른쪽에 있는 아이콘은 다음과 같습니다.
- 이 아이콘은 ThingWorx Platform에 대한 연결 상태를 나타냅니다. 녹색 클라우드에 확인 표시가 나타나면 연결된 것입니다.
- RAC에 대한 메뉴를 표시하려면 이 아이콘을 클릭합니다.
모든 세션을 중지하려면 메뉴에서 모든 세션 중지 옵션을 선택합니다. 각 세션에 대한 정보는 을 클릭하여 제거할 때까지 표시됩니다.
컴퓨터와 원격 장치 간에 프록시 서버를 사용해야 하는 경우 메뉴에서 프록시 설정 옵션을 선택하여 사용할 호스트 이름 및 포트 번호를 지정할 수 있습니다.
* 
프록시 설정을 지정하기 위해 인수 없이 RAC를 시작할 수 있다는 점에 유의해야 합니다. 설정이 저장되면 RAC는 ThingWorx 매쉬업에서 시작할 때 구성된 프록시 설정을 계속 사용합니다.
RAC에 대한 버전 정보를 표시하려면 메뉴에서 정보 옵션을 선택합니다.
클라이언트를 닫을 준비가 되면 메뉴에서 종료 옵션을 선택합니다. 종료하면 모든 활성 세션(있는 경우)을 종료하라는 메시지가 표시됩니다.
UI를 통해 프록시 설정 구성
ThingWorx Remote Access Client (RAC)에서는 프록시 구성이 질의 매개 변수로 지정되지 않은 경우 프록시 설정을 수정 및 저장하는 것이 지원됩니다.
* 
RAC는 현재 인증된 프록시를 지원하지 않습니다.
다음과 같이 RAC 사용자 인터페이스를 통해 설정을 구성할 수 있습니다.
1. RAC를 로컬로 시작하거나 ThingWorx에서 시작합니다.
* 
로컬로 시작하는 경우 ThingWorx에 연결되지 않지만 프록시 설정을 계속 구성하고 저장할 수 있습니다.
2. 메뉴 아이콘(세 개의 점)을 선택합니다.
3. 메뉴에서 프록시 설정을 선택합니다.
4. 설정에 대한 창이 나타나면 사용할 호스트 이름 및 포트 번호를 지정합니다.
5. 저장을 클릭합니다.
RAC에 의해 프록시된 연결
RAC에 프록시 구성이 지정된 경우 프록시 서버를 통해 다음 아웃바운드 연결이 터널링됩니다.
AlwaysOn 프로토콜을 사용하는 ThingWorx Platform입니다.
TCP를 사용하는 Axeda Global Access Server (GAS)
AlwaysOn 프로토콜을 사용하는 ThingWorx Internal Remote Access Provider
원격 세션 상태
Remote Access Client(RAC)는 원격 세션 상태에서 CLOSE_REQUESTED에 대한 변경을 감지할 수 있습니다. 이 변경은 원격 세션이 활성 상태를 유지할 수 있는 최대 시간을 초과했다는 것을 RemoteAccessSubsystem에서 확인했을 때 발생합니다.
원격 세션에 대한 lastActivityTime을 새로 고치기 위해 RAC는 주기적으로(20초마다) 세션을 업데이트하여 다음 조건을 충족하는 모든 세션에 대해 bytesTransferred를 새로 고칩니다.
RAC가 추적하는 전송된 바이트가 0보다 큽니다.
RAC가 추적하는 전송된 바이트가 세션에 대한 마지막 업데이트 이후 변경되었습니다.
세션 상태가 TERMINATED가 아닙니다.
세션이 더 이상 존재하지 않기 때문에 세션 업데이트가 실패하는 경우 세션 상태는 강제로 TERMINATED 상태가 됩니다. 이 변경으로 인해 바이트 새로 고침 처리가 효과적으로 중지됩니다.
* 
이 타이머는 ThingWorxInternalRemoteAccessProvider의 클라이언트에만 활성화되고 필요합니다. Axeda Global Access Server(GAS)에서 주기적인 상태 업데이트를 ThingWorx eMessage 커넥터에 전송하므로 GASRemoteAccessProvider의 클라이언트에 이 타이머가 필요하지 않습니다. GAS 클라이언트 세션에 대한 lastActivityTime이 자동으로 새로 고쳐집니다.