NI Remote-Ability : accès à l’instrumentation NI grâce à gRPC

Aperçu

NI Remote-Ability permet une interaction à distance avec l’instrumentation NI, en utilisant la technologie Remote Procedure Calls (gRPC). NI a investi pour garantir que ses produits fonctionnent avec la technologie gRPC, afin que nos clients puissent interagir à distance avec les produits NI en vue de prendre des mesures de haute qualité et à faible latence. NI Remote-Ability permet aux ingénieurs d’exploiter les workflows de test existants avec flexibilité.

Contenu

Qu’est-ce que NI Remote-Ability ?

Le logiciel Remote-Ability de NI permet d’interagir à distance avec le matériel et les services de NI afin d’effectuer des mesures de haute qualité à faible latence. Il utilise des applications autonomes et/ou des API et/ou des commandes prédéfinies de manière globale et indépendante du système d’exploitation, tout en tirant parti d’une architecture client/serveur. 

NI Remote-Ability utilise la technologie gRPC « sous le capot ». L’utilisation d’un serveur basé sur gRPC vous offre la possibilité d’accéder aux équipements de test et de mesure et de les contrôler à partir de nombreux environnements de programmation, plates-formes et systèmes d’exploitation différents. 

La technologie gRPC utilise les buffers de protocole (Proto3) comme format d’échange de messages. La figure ci-dessous illustre la manière dont les requêtes et les réponses de protocole sont envoyées entre le serveur gRPC et les stubs. 

Figure 1 : Requêtes et réponses du serveur gRPC

NI Remote-Ability est pris en charge sous Windows, Linux et Mac, pour une gamme de langages de programmation. Pour obtenir une liste complète des langages et des systèmes d’exploitation pris en charge, reportez-vous à nos ressources de support gRPC.

Qu’est-ce que la technologie gRPC ?

La technologie gRPC est un framework d’appels de procédure à distance (RPC, Remote Procedure Calls) open source qui peut s’exécuter n’importe où. Elle permet aux applications client et serveur de communiquer de manière transparente, tout en facilitant la construction de systèmes connectés à distance.

Avec gRPC, une application client peut appeler directement une méthode sur une application serveur sur une autre machine, comme s’il s’agissait d’un objet local, ce qui facilite la création d’applications et de services distribués. Côté serveur, le serveur implémente cette interface et exécute un serveur gRPC afin de gérer les appels client. Côté client, le client dispose d’un stub (appelé simplement client dans certains langages) qui fournit les mêmes méthodes que le serveur.

L’un des principaux aspects de l’utilisation de la technologie gRPC est qu’elle est indépendante du système d’exploitation et du langage côté client, qu’elle vous offre de la flexibilité et qu’elle peut être adaptée au système d’exploitation actuel ou aux langages de programmation déjà utilisés dans votre projet.

NI Remote-Ability rejoint d’autres entreprises de premier plan en adoptant la technologie gRPC

En utilisant gRPC pour NI Remote-Ability, NI rejoint d’autres grandes entreprises telles que Google, NetFlower et Square. La technologie gRPC présente d’importantes capacités que d’autres options telles que RPyC, SCPI et HiSLIP n’offrent pas :

  • Communauté et développement très actifs, avec le soutien de Google 
  • Bonnes performances et fonctionnalités par défaut
  • Langage de définition d’interface bien établi : Protobuf
  • Prise en charge de nombreux langages et systèmes d’exploitation, en particulier si l’on inclut le support client non officiel ou de tiers
  • Fonctionne bien dans une configuration où une connexion à distance indépendante du langage et du système d’exploitation est requise

 

Authentification/autorisation gRPC

NI Remote-Ability utilise les mécanismes d’autorisation par défaut de gRPC. La connexion peut être sécurisée par un protocole TLS côté serveur ou TLS mutuel (Zero Trust), ce qui garantit que la communication est chiffrée et que le client/serveur est fiable. Il est possible de mettre à jour le serveur pour inclure une autorisation personnalisée en intégrant un serveur d’autorisations.

Performances attendues de NI Remote-Ability

Utiliser NI Remote-Ability constitue un bon moyen de minimiser la latence lorsque vous effectuez des mesures de haute qualité. L’exemple suivant montre des résultats de test de performances lors de la lecture d’une tension d’entrée analogique à partir d’un châssis cDAQ-9179 simulé avec un module NI-9207 de la Série C.

Performances gRPC avec transfert en continu

Transfert en continu des données du serveur au client :

  • 200 000 doubles par message transféré en continu depuis le serveur
  • Configuration par défaut avec Protobuf
  • Informations d’identification non sécurisées
  • Connexion client unique
  • Ethernet 1 Gbit via commutateur

Localhost Linux

  • Flux unique de 4 Go/s
  • 8 Go/s avec flux multiples
  • Ligne de base : sockets bruts localhost Linux : environ 10 Go/s 

Localhost Windows 10 : 4 Go/s1

Linux à Linux : 11 Mb/s

  • 93 % du maximum théorique 

Réseau local de liaison Thunderbolt 3

  • Client Windows, serveur Linux : 1,2 Go/s
  • Client Linux, serveur Linux : 1,6 Go/s
  • Linux via SSH : 850 Mb/s

1 Attention à CISO AMP

Performances gRPC avec NI-DAQmx

NI-DAQmx avec châssis cDAQ-9179 simulé et modules NI-9207 :

  • Appels NI-DAQmx directs d’une application C++ : 121,6 ms
  • Client Windows gRPC, serveur localhost : 121,9 ms
  • Aucune connexion directe pour le client Linux gRPC sur le réseau (1 Go) : 123,9 ms

Comme le montrent ces tests de performances, les appels gRPC sont comparables aux appels de drivers natifs et présentent une latence minimale. Grâce à la technologie gRPC, les clients NI peuvent interagir à distance avec les produits NI pour effectuer des mesures de haute qualité à faible latence, mais aussi tirer parti des workflows de test existants.