NIリモート機能は、gRPCリモートプロシージャコール (gRPC) テクノロジを使用して、NIの計測器とのリモート操作を可能にします。NIは、製品がgRPCと動作することを確実にするために投資を行い、お客様がNI製品をリモートで操作し、高品質かつ低レイテンシの測定を行うことができるようになりました。NIリモート機能を使用すると、エンジニアは既存のテストワークフローを柔軟に活用できます。
NIソフトウェアリモート機能は、NIハードウェアおよびサービスをリモートで操作して、高品質で低レイテンシの測定を行う機能です。NIソフトウェアリモート機能は、事前定義されたスタンドアロンアプリケーション、API、コマンドを包括的かつOSに依存しない方法で使用し、クライアント/サーバアーキテクチャを活用します。
NIリモート機能は、内部でgRPCを使用します。gRPCベースのサーバを使用すると、さまざまなプログラミング環境、プラットフォーム、オペレーティングシステムからテストおよび測定装置にアクセスして制御することができるようになります。
gRPCは、メッセージ交換形式としてプロトコルバッファ (Proto3) を使用します。以下の図は、gRPCサーバとスタブ間でプロト要求と応答がどのように送信されるかを示しています。
図1: gRPCサーバからの要求と応答
NIリモート機能は、Windows、Linux、Macでさまざまなプログラミング言語でサポートされています。サポートされている言語とそのオペレーティングシステムの完全なリストについては、gRPCサポートリソースを参照してください。
gRPCは、どこでも実行できるオープンソースのリモートプロシージャコール (RPC) フレームワークです。これにより、クライアントアプリケーションとサーバアプリケーションが透過的に通信できるようになり、接続されたシステムをリモートで簡単に構築できます。
gRPCでは、クライアントアプリケーションはローカルオブジェクトであるかのように別のマシンにあるサーバアプリケーションのメソッドを直接呼び出すことができるため、分散アプリケーションやサービスを簡単に作成できます。サーバ側では、サーバはこのインタフェースを実装し、gRPCサーバを実行してクライアント呼び出しを処理します。 クライアント側では、クライアントにはサーバと同じメソッドを提供するスタブ (一部の言語ではクライアントと呼ばれる) があります。
gRPCを使用する主な特徴は、クライアント側でOSや言語に依存せず、柔軟性があり、プロジェクトですでに使用されている現在のOSまたはプログラミング言語に適応できることです。
NIリモート機能にgRPCを使用することで、NIはGoogle、Netflix、Squareなどの大企業に加わります。gRPCには、RPyC、SCPI、HiSLIPなどの他のオプションにはない強力な機能があります。
NIリモート機能は、gRPCのデフォルト認証メカニズムを使用します。接続は、サーバ側TLSまたは相互TLS (ゼロトラスト) によって保護されることで、通信が暗号化され、クライアント/サーバの信頼性が確保されます。認証サーバと統合することで、カスタム認可を組み込むようにサーバを更新できます。
NIリモート機能を使用すると、高品質の測定を行う際にレイテンシを低く抑えることができます。以下の例は、NI-9207 Cシリーズモジュールを搭載したシミュレーションされたcDAQ-9179シャーシからアナログ入力電圧を読み取る際のパフォーマンスベンチマークを示します。
サーバはクライアントにデータをストリーミング:
Linux localhost
Windows 10 localhost:4 GB/s1
LinuxからLinux:11 MB/s
Thunderbolt 3リンクローカルネットワーク
1 CISO AMPに注意
シミュレーションされたcDAQ-9179シャーシおよびNI-9207モジュールを搭載したNI-DAQmx:
これらのベンチマークで分かるように、gRPC呼び出しはネイティブドライバ呼び出しと同等であり、レイテンシは最小化されています。gRPCを使用すると、NIのお客様はNI製品をリモートで操作して高品質で低レイテンシの測定を行うことができ、既存のテストワークフローを活用できます。