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 によって有効になります。RACThingWorx Remote Access Client のダウンロードページからダウンロードできます。
このトピックは、以下のセクションで構成されています。
クイックスタート
1. ThingWorx Composer で Thing をセットアップし、それを ThingWorx Platform に接続します。Thing を設定するとき、以下のリモートアクセスのための基準を満たしていることを確認してください。
a. Thing に RemoteAccessible Thing Shape が適用されていることが必要です。この Shape は Axeda eMessage Agent Thing には自動的に適用されます。
b. RemoteAccessProvider プロパティで、Thing に対して適切な RemoteAccessProvider が設定されていることが必要です。
c. Thing はレポートを実行していなければなりません。つまり、isReporting プロパティの値が true で、それがチェックマークアイコンによって示されていなければなりません。通常、"レポート" Thing は、ThingWorx Platform にバインドされているリモートデバイスです。
d. Thing に対してトンネルのエンドポイントが設定されていることが必要です。以下のようなプロトコルがテストに適しています。
SSH - 対象はデスクトップコンポーネントがないマシン、TCP ポートは 22
VNC - 対象はデスクトップがあるマシン、TCP ポートは 5900
* 
RAC によって作成されたトンネルは、両側で接続が維持されるかぎり、アクティブを継続するように設計されています。このため、ThingWorx Edge のトンネリングでは、ブラウザを使用して HTTP サーバーにアクセスするなど、Edge との間で複数の接続および切断を行うプロトコルはサポートされていません。たとえば、正しくない資格証明を使用したり、コンピュータで信頼されていない RDP サーバーに接続したりすると、RDP は切断をトリガーします。これに最も効果的に対応するには、転送しようとしているプロトコルの接続と切断の動作を理解しておくことが重要です。
2. ThingWorx Remote Access Client (RAC)ThingWorx Remote Access Client のダウンロードページからダウンロードします。
3. パッケージを保存した場所に移動し、それを実行して RAC をインストールします。たとえば、Windows では .exe ファイルを実行します。Linux と OS X ではパッケージをインストールします。
4. RAClientLinker ウィジェットをマッシュアップに追加します。詳細については、 マッシュアップへのウィジェットの追加 を参照してください。
5. マッシュアップを使用して、手順 1 でセットアップし、接続した Edge Thing でリモートセッションを開始します。以下の順序で処理が行われます。
a. ThingWorx Platform で選択した Thing に対して、Thing で StartSession サービスを呼び出すことにより、リモートセッションが要求されます。
b. RAC アプリケーション (tw-ra-client) が起動されます。
c. RAC アプリケーションがリモートアクセスサーバーとの接続を確立し、セッション情報を表示します。
* 
RAC アプリケーションは、デフォルトでは WebSocket Secure (WSS) に接続します。平文の HTTP エンドポイントを介してマッシュアップにアクセスしなければならない場合 (非推奨)、暗号化されていない WebSocket (WS) への接続を許可するように RAC クライアントを設定しなければなりません。これを行うには、{ "secure": false } エレメントが含まれるように config.json ファイルを修正します。オペレーティングシステム上のファイルの場所については、トピック リモートアクセスの管理者セットアップタスクの手順 10 の箇条書きを参照してください。暗号化を無効にすることは安全ではなく推奨されないので、絶対に必要な場合以外は無効にしないでください。RAC アプリケーションは、WSS エンドポイントまたは WS エンドポイントのどちらにも接続できますが、同時には接続できないことに注意してください。
6. クライアントアプリケーションをローカルポートに接続します。クライアントデータが RAC アプリケーションからリモートアクセスサーバー (およびリモートデバイス) に転送され、また逆方向にも転送されます。
ThingWorx Remote Access Client (RAC) について
起動可能なクライアントを ThingWorx Remote Access Client (RAC) と呼びます。このクライアントは、「RAClientLinker」ウィジェットで LaunchClient サービスを起動すると起動されます。このセクションの残りの部分では、このクライアントのユーザーインタフェースについて説明します。
マッシュアップから起動した RAC のユーザーインタフェースは、セッションを起動するとこのように表示されます。
上のスクリーンショットで RAC が接続されている Thing の名前は ra-test-agent です。メッセージウィンドウに現在のステータスが表示されます。上の例では、Server ready: connect client to <localhost:38367> です。メッセージウィンドウの上にある右側のアイコンの説明は以下のとおりです。
- 接続ステータスのインジケータ。黄色は接続されていることを意味します。クライアントが処理を実行しているとき、このインジケータはアニメーションになります。
ステータスメッセージの下に表示されるパラメータのリストは以下のとおりです。
Remote Entity - ThingWorx でリモートデバイスを表す Thing の名前。上の例では、Thing 名は「ra-test-agent」です。
Remote Server - リモートセッションの確立に使用される RemoteAccessProvider の名前。上の例では、リモートサーバーは gas.ptciot.io という名前の Axeda Global Access Server (GAS) です。
Remote Endpoint - このリモートセッションのリモートインタフェースのタイプ。上の例では、リモートインタフェースのタイプは端末であり、これは SSH または Telnet インタフェースを指します。
Created By - このリモートセッションを開始したユーザーの名前。上の例では、ユーザー名は管理者です。
Start Time - リモートサーバーによってリモートセッションが開始された曜日、日付、時刻、およびタイムゾーン。上の例では、セッションは GMT タイムゾーンで 2018 年 11 月 5 日月曜日の 17:13:14 (5:13:14 PM) 開始されました。
Duration - リモートセッションが持続した時間、分、および秒数 (初期化から切断まで)。上の例では、セッションは 6 秒間にわたって確立されました。
Bytes Transferred - RAC が開始されたコンピュータとリモートデバイスの間で交換されたバイトの数。ThingWorxInternal トンネルの場合、デバイス側のサーバーの準備が完了すると、最初はゼロ以外の値になります。上の例では、リモートデバイスは Axeda eMessage Agent を実行しています。セッションの準備は完了していますが、Axeda eMessage Agent では完全にはセッションが確立されていないので、この数は 0 です。
セッションの準備が完了すると、このインジケータが変わり、使用されているポート番号が緑色の背景で表示され、リモートアクセスサーバーをデバイスに接続する準備が完了したことを示すメッセージが表示されます。
* 
このポート番号は、クリックしてコピーし、クライアントアプリケーションに貼り付けることができます。
- 現在のセッションを停止するには、黒色の正方形のアイコンをクリックします。
- このアイコンをクリックすると、セッションが画面から除去されます。まだセッションを停止していない場合、このアイコンをクリックすると、セッションが停止し、画面から除去されます。
上部のバーの右側には以下が表示されます。
- このアイコンは、ThingWorx Platform への接続のステータスを示します。緑色の雲にチェックマークが表示されていれば、接続されていることを意味します。
- このアイコンをクリックすると、RAC のメニューが表示されます。
すべてのセッションを停止するには、このメニューから「Stop All Sessions」オプションを選択します。各セッションの情報は、 をクリックして除去するまで表示されたままになります。
コンピュータとリモートデバイスの間でプロキシサーバーを使用しなければならない場合は、このメニューから「Proxy Settings」オプションを選択して、使用するホスト名とポート番号を指定できます。
* 
RAC は、プロキシ設定をセットアップする目的では引数なしで起動できることに注意してください。設定が保存されると、RAC は ThingWorx マッシュアップによって起動されたときに設定されたプロキシ設定を引き続き使用します。
RAC のバージョン情報を表示するには、このメニューの「About」オプションを選択します。
クライアントを閉じるには、このメニューの「Exit」オプションを選択します。終了すると、アクティブなセッションがある場合は、すべてのセッションを終了するかどうかを尋ねるプロンプトが表示されます。
UI を介したプロキシの設定
ThingWorx Remote Access Client (RAC) では、プロキシコンフィギュレーションがクエリーパラメータとして指定されていない場合、プロキシ設定の修正および保存をサポートしています。
* 
現時点では、RAC は認証済みのプロキシをサポートしていません。
これらの設定は次のように RAC ユーザーインタフェースで行うことができます。
1. RAC をローカルで、または ThingWorx から起動します。
* 
ローカルで起動した場合は、ThingWorx に接続されませんが、プロキシ設定を設定して保存することはできます。
2. メニューアイコン (3 つの点) を選択します。
3. このメニューから「プロキシ設定」を選択します。
4. 設定のウィンドウが表示された後、使用する「ホスト」名と「ポート」番号を指定します。
5. 「保存」をクリックします。
RAC による接続のプロキシ
RAC でプロキシコンフィギュレーションが指定されている場合、プロキシサーバーを経由して以下の送信接続がトンネリングされます。
ThingWorx Platform、AlwaysOn プロトコルを使用。
Axeda Global Access Server (GAS)、TCP を使用。
ThingWorx Internal Remote Access Provider、AlwaysOn プロトコルを使用。
リモートセッションのステータス
Remote Access Client (RAC) は、リモートセッションのステータスで CLOSE_REQUESTED への変更を検出できます。この変更は、リモートセッションがアクティブな状態を維持できる最大時間を超えたと RemoteAccessSubsystem が判断すると発生します。
RAC は、リモートセッションの lastActivityTime を再表示するため、定期的に (20 秒間隔で) セッションを更新して、以下の条件を満たすセッションの bytesTransferred を再表示します。
RAC によって追跡されている転送されたバイトが 0 より大きい
RAC によって追跡されている転送されたバイトが、セッションの前回の更新以降に変更されている
セッションのステータスが TERMINATED ではない。
セッションが存在しなくなったことが原因でセッションの更新が失敗した場合、そのセッションのステータスは強制的に TERMINATED 状態になります。この変更によって、バイトの再表示の処理は実質的に停止します。
* 
このタイマーは、ThingWorxInternalRemoteAccessProvider のクライアントに対してのみ有効/必要です。Axeda Global Access Server (GAS) は定期的なステータスの更新を ThingWorx eMessage Connector に送信するため、このタイマーは GASRemoteAccessProvider のクライアントには不要です。GAS クライアントセッションの lastActivityTime は自動的に再表示されます。