NI Remote-Ability可通过gRPC远程过程调用(gRPC)技术实现与NI仪器的远程交互。NI投入了大量精力以确保其产品与gRPC兼容,从而使NI客户可借助gRPC与NI产品进行远程交互,以进行高质量、低延迟的测量。工程师可使用NI Remote-Ability灵活地利用现有测试工作流程。
NI Software Remote-Ability能够通过与NI硬件和服务进行远程交互,从而实现高质量、低延迟测量。NI Software Remote-Ability在整体上并不依赖于操作系统,而是使用预定义的独立应用程序和/或API和/或命令,并利用客户端/服务器架构。
NI Remote-Ability的根本在于gRPC。使用基于gRPC的服务器,可以从许多不同的编程环境、平台和操作系统访问和控制测试与测量设备。
gRPC使用Protocol buffers (Proto3)作为其消息交换格式。下图所示为gRPC服务器和Stub之间Proto请求和响应的发送方式。
图1: gRPC服务器的请求和响应
NI Remote-Ability可在Windows、Linux和Mac操作系统中运行,支持多种编程语言。有关受支持语言及操作系统的完整列表,请参阅gRPC支持资源。
gRPC是一种开源远程过程调用(RPC)框架,可以在任何环境中运行。该框架可以实现客户端和服务器应用程序之间的透明通信,同时简化了互联系统的远程构建过程。
在gRPC中,客户端应用程序可像调用本地对象一样直接调用其他机器的服务器应用程序中的方法,从而更轻松地创建分布式应用程序和服务。在服务器端,由服务器实现该接口,并运行一个gRPC服务器来处理客户端调用。 在客户端,客户端通过Stub(在某些语言中仅称为客户端)提供与服务器相同的方法。
选择gRPC的一个主要原因在于,其可在客户端灵活运行,不受操作系统和语言限制,并且能适应当前操作系统或项目中已使用的编程语言。
通过将gRPC用于NI Remote-Ability,NI逐渐与众多知名公司展开合作,例如谷歌、网飞和Square等。gRPC的强大功能弥补了RPyC、SCPI和HiSLIP等其他协议的不足:
NI Remote-Ability使用gRPC的默认授权机制。可通过服务器端TLS或双向TLS(零信任)保护连接,从而确保加密通信并且客户端/服务器可信任。用户可通过与授权服务器集成来更新服务器以使其包含自定义授权。
使用NI Remote-Ability可确保在进行高质量测量时保持较低的延迟。下例显示了从带有NI-9207 C系列模块的仿真cDAQ-9179机箱读取模拟输入电压时的性能基准测试。
服务器向客户端流式传输数据:
Linux本地主机
Windows 10本地主机:4 GB/秒1
Linux至Linux:11 MB/s
Thunderbolt 3链接本地网络
1注意CISO AMP
带有仿真cDAQ-9179机箱和NI-9207模块的NI-DAQmx:
由上述基准测试可知,gRPC调用与本机驱动程序调用性能相当,并且延迟最小。NI客户可借助gRPC与NI产品进行远程交互,以利用现有的测试工作流程进行高质量、低延迟的测量。