Simplify the Deployment and Replication of Distributed Systems

Visão geral

Deploying embedded devices to remote networks presents numerous management challenges, including monitoring system health, performing remote configurations, executing diagnostics and troubleshooting functions, and deploying software installations and updates. This document explores the options the NI software portfolio provides to tackle distributed system management challenges.


Web-Based Configuration and Monitoring Utility

The web-based configuration and monitoring utility installed in remote NI targets provides information on those targets using a commercial browser. You can use this utility to configure and monitor a device remotely. It provides information on the following:

  • System Settings—Configure system and startup settings and monitor system resources.
  • Remote File Browser—Access the file system of the remote device.
  • Security—Configure passwords, users, user groups, and permissions.
  • Web Services Management—Manage deployed web services.
  • Time Configuration—Configure the time and date of the target.
  • Software Management—Visualize software installed in the target.
  • Network Configuration—Configure the network adapter settings.

Learn more about the web-based configuration and monitoring utility


With the web-based configuration and monitoring utility, you can configure settings and visualize parameters on a remote target

Figure 1: With the web-based configuration and monitoring utility, you can configure settings and visualize parameters on a remote target. 


Replication and Deployment Utility

Imaging is an effective tool for managing the software deployments of real-time (RT) targets. Being able to replicate the image of an RT target makes deploying targets and systems easier and more efficient. Whether you are making periodic backups of a system, deploying from a developed system to many new ones, updating an image on a target, or giving someone else the tools to duplicate a working system, replicating an image makes all of these applications possible. However, building a robust application to automate application deployment and management of RT targets with imaging APIs is not a trivial undertaking. The Replication and Deployment (RAD) Utility provides a turnkey solution for automated RT image deployment, replication, and management. It is built using System Configuration VI functionality.

When replicating applications from one target to another, you retrieve the application image from one RT target and copy it to another. An application image comprises the contents (all the files and directories) of the hard drive of an RT target that define the behavior of the RT target as well as any bitfiles set to deploy to FPGA flash memory. You can organize application image versions by both creation date and version number and compare them using the RAD Utility to help the user reap the benefits of source code control for configuration management. To learn more about how to use this utility, refer to this example.

The Replication and Deployment Utility allows you to effectively manage the software deployments of real-time targets

Figure 2: The Replication and Deployment Utility allows you to effectively manage the software deployments of real-time targets. 

Systems Management Software

SystemLink provides centralized management capabilities for distributed test, measurement, and control solutions. An intuitive web application lets you manage a group of networked systems with functions that include software deployment, device configuration, and diagnostics. SystemLink also provides secure, scalable data services and LabVIEW APIs. Supported hardware includes PXI (Windows), CompactRIO (NI Linux Real-Time), and Windows PCs.

SystemLink and LabVIEW enable the mass coordination of connected devices, software deployments, and data communications throughout a distributed system.

Figure 3: SystemLink and LabVIEW enable the mass coordination of connected devices, software deployments, and data communications throughout a distributed system. 

Programmatically Incorporating Performance Monitoring in Remote Targets

When working with real-time systems, developers seek to ensure applications behave reliably by not overloading their system’s resources. While scheduling determines which tasks the real-time processor performs, it is impossible to predict how the system will behave if the processor is overloaded. As noted in the CompactRIO Developer’s Guide, National Instruments recommends keeping CPU usage below 70% while also ensuring enough system memory remains for desired system operations. To help users monitor their real-time targets, NI provides different methods to access system resource information.

Programmatic Access

O acesso programático aos recursos do target permitem que você crie código que pode ser adaptado a mudanças. Por exemplo, você pode modificar um projeto para que seu comportamento seja alterado se um determinado limite de utilização de recursos for atingido. Essa capacidade de alterar as demandas impostas a um target de tempo real pode ajudar a garantir que as tarefas de prioridade mais alta continuarão a ser executadas. Além disso, o acesso direto às informações de CPU e memória permite a você criar ferramentas customizadas de monitoramento e data logging. No LabVIEW, os VIs System Configuration API e RT Utility dão acesso aos recursos do sistema target.

VIs RT Utility

Localizado na paleta RT Utilities, o ​RT Get CPU Loads VI​ oferece uma grande quantidade de informações sobre a utilização da CPU. Esse VI permite a você ver mais do que apenas a utilização total da CPU, publicando a atividade computacional associada a diferentes tarefas de prioridade. Com essas informações em mãos, você pode verificar se determinados processos estão recebendo recursos adequados e isolar problemas em projetos maiores. Como visto na Figura 4, esse VI fornece um array de clusters no qual cada elemento fornece informações sobre o seu núcleo correspondente.

Figura 4: Uso dos VIs RT Utilities.


API de configuração do sistema

Quando você estiver utilizando hardware NI, a NI System Configuration API oferece a você a capacidade de configurar, localizar, criar imagens e se comunicar com os seus dispositivos. Para trabalhar com essa API, você precisará ter o software System Configuration instalado em seus targets de tempo real. Figura 5 mostra como instalar esse add-on pelo assistente LabVIEW Real-Time Software Wizard.


Figura 5: Instalação da API de configuração do sistema.


Você pode utilizar um property node System Session, Property Node (System).vi , para acessar informações sobre a memória volátil e não volátil de um dispositivo. A Figura 6 mostra como o Initialize Session VI oferece a referência apropriada do target para esse property node. Quando for configurar o property node System Session, você pode encontrar informações sobre a memória em System Resources.


Figura 6:​ Property Node System Session.



Além disso, você pode utilizar o ​​​ ​para extrair as referências de hardware necessárias para os property nodes System Hardware, como o ​Propery Node (Hardware).vi​. A Figura 7 mostra como os property nodes System Hardware oferecem maiores informações sobre o comportamento do target. Entretanto, você precisa tomar cuidado sobre quais recursos de hardware passar aos property nodes.


Figura 7:​ Uso de property nodes para monitorar o comportamento de um target


Quando for trabalhar com property nodes, siga as melhores práticas de programação e feche referências usando o da System Configuration API. Além disso, o fornecimento de informações de memória para targets com o sistema operacional NI Linux Real-Time é diferente do comportamento esperado, como descrito nesse artigo de KnowledgeBase.


Real-Time Trace Viewer

The NI Real-Time Trace Viewer, included with the LabVIEW Real-Time Module, provides developers with a low-level analysis and benchmarking tool. With the Real-Time Trace Viewer, users can identify memory allocation, view specific thread activity, and closely review execution and timing data for individual CPUs.

Working with the Real-Time Trace Viewer involves both adding the appropriate VIs to the code executing on a particular target and then reviewing with the files created by the RT Execution Trace Viewer VIs. The system traces created while code executes on the target can either be stored locally or sent to a host computer. For an overview of how to use this low-level, system resource analysis tool, please look through one of the related examples in the LabVIEW Example Finder.


Real-Time Trace Viewer.

Figure 8: Real-Time Trace Viewer. 



Moreover, the toolkit allows developers to generate custom event flags that are viewable while reviewing trace sessions. You can use the TraceTool Log User to help focus your attention when looking to identify system resource allocation in a specific area of a program.

Notice that in LabVIEW Real-Time Module versions 2013 and earlier, the packaged the Real-Time Trace Viewer was a separate toolkit (Real-Time Execution Trace Toolkit).


Distributed System Manager

Instead of developing custom monitoring software, users can rely upon the LabVIEW ecosystem’s monitoring tools- such as the Distributed System Manager. The Distributed System Manager (DSM) allows engineers and technicians to view information published to the network by different NI products. When used in conjunction with the System State Publisher software, a user can view critical CPU and memory availability information. Not only does the DSM provide users with detailed information such as the percent of CPU used by Time Structures and the largest contiguous memory block available, the total memory and CPU data is tracked by twin charts.

Distributed System Manager

Figure 9: Distributed System Manager 


To use the DSM, the System State Publisher must be installed on the real-time target of interest. As seen below, the LabVIEW Real-Time Software Wizard allows you to install System State Publisher add-on, which publishes all of the required information to the DSM.

Installing the Distributed System Manager

Figure 10: Installing the Distributed System Manager 


NI MAX System Information

While NI MAX does not provide the depth of information made available by the Distributed System Manager, it can provide a helpful system health snapshot. To access this information, please open MAX and select a real-time system from the Remote Systems heading. The System Resources section can be found in the System Settings tab, which displays by default after selecting a target.

NI MAX System Information

Figure 11: NI MAX System Information