SystemLink™ Architecture

Aperçu

This document provides an overview of the SystemLink software architecture, including the technologies and designs that enable capabilities such as remote systems management, networked data exchange, data storage, and web application hosting. For additional resources and product documentation, refer to the links below:

Contents

Product and Technology Overview

SystemLink software provides connected intelligence for automated test and automated  measurement systems. With a central management interface and powerful data architecture, SystemLink reduces system administration costs, streamlines data management, improves automated test reporting, and enhances operational efficiency.

With SystemLink, test and measurement teams can accomplish the following tasks:

  • Connect a group of systems to a central interface for remote configuration and monitoring 
  • Deploy software with component-level updates to one or multiple remote systems
  • Collect, aggregate, and report test data from a group of automated test systems
  • Automate the transfer of file data from test systems to a central repository
  • Search and analyze measurement channels across distributed data files
  • Standardize test data from different systems to align with a common model
  • Schedule data processing events and report generation


SystemLink Technology Architecture

SystemLink combines market-leading software infrastructure with NI-designed software services and applications that align specifically with test and measurement use cases. NI understands that engineers engaged in test and measurement activities require flexible tools for working with large volumes of data as well as the ability to create user-defined application interfaces to work with this data. SystemLink provides this flexibility plus the following architecture qualities:

  • Openness and extensibility
  • Scalability and performance
  • Modularity
  • Security


Designed for Test and Measurement

Many organizations have adopted software tools to support distributed systems management, enterprise data management, and business intelligence. However, these products are typically designed for broad-based IT use cases and general business functions. They lack important capabilities to manage automated test systems and measurement data. In contrast, SystemLink introduces numerous capabilities designed for automated test and automated measurement.

 

Test and Measurement Use Case SystemLink Benefit to Customers  
System Administration
  • Automate the discovery and tracking of installed instruments and data acquisition devices
  • Perform remote diagnostics and configuration tasks such as self-calibrate and self-test
Real-Time Device Management
  • Manage distributed and/or remote devices running NI Linux Real-Time
  • Configure device information such as time settings, network settings, and device security
Software Deployment
  • Centralize, organize, and distribute software packages for remote installation
  • Deploy software such as LabVIEW applications, TestStand sequences, and device drivers as well as customer-defined applications
Data Services
  • Collect and transmit data using data services for operational monitoring (“tag service”) and file ingestion (“file service”)
  • Leverage intuitive APIs for LabVIEW and web services
Data Visualization
  • Create user-defined data dashboards by connecting tag data from networked systems to graphical web interfaces based on your precise requirements
  • Visualize file data through an in-browser  file data viewer
Test Results Reporting
  • Use the SystemLink Test Module to aggregate test results from test systems running TestStand
  • View test data in a central reporting interface  
Data Mining and Indexing
  • Use NI DataFinder Server to index and search channel data and metadata from files generated during test activities, including data stored in multiple distributed repositories   
Automated Data Processing
  • Use the NI Analysis Server to programmatically process data and schedule the generation of user-friendly reports
  • Write automation scripts in VBScript with DIAdem or additional options such as LabVIEW; Python; The MathWorks, Inc. MATLAB® software; and R.

 

Leveraging Open-Source Software Infrastructure

Rather than invent new technology for the SystemLink infrastructure, NI has incorporated market-leading, open-source tools that provide capabilities such as networked data communications, remote automation, data storage, and web application hosting. These software tools are used extensively throughout industry for IT and business applications. As a result, you can benefit from the extensive resources available to support these technologies and from the communities of users to share ideas for configuration, extensibility, and performance optimization. By incorporating open-source software, SystemLink empowers you with a product designed for test and measurement while aligning with best practices and standards recognized by IT departments.

Refer to the following sections of this document to learn more about specific technologies and their implementation in the SystemLink architecture.

 

Architecture Components

SystemLink implements a client-server architecture that is optimized for the exchange of data among computing nodes connected over a network and for application access through a web browser. The architecture includes the following software components:


SystemLink Web Application

SystemLink Web Application refers to the web browser-based user interface of SystemLink. Through the web UI, you can perform tasks such as remote systems administration, alarms configuration, test asset tracking, test results reporting, data mining, and scheduled data processing. SystemLink Web Application is hosted by the computer that runs SystemLink Server and the included NI Web Server.


SystemLink Server

SystemLink Server includes a collection of software programs and services that run on a computer that is the central hub of application and data interactions. SystemLink Server includes NI-defined software application features, technology services, and server-side APIs that together execute the functions of the product. The server incorporates NI Web Server and open-source software infrastructure technologies that are described later in this document.


NI Web Server

NI Web Server provides the application server host for SystemLink Web Application. With NI Web Server, you can configure server settings such as user roles and permissions, user authentication, and security. NI Web Server is included in the SystemLink Server installation. Note that NI Web Server is also used by the LabVIEW NXG Web Module.


SystemLink Client

SystemLink Client is a software program that you install on the machines  that you want to use in a SystemLink distributed computing environment. The client manages the connection to SystemLink Server and executes commands based on instructions from the server (either from the Web Application or from API commands). Functions that rely on the installation of the client include software deployment, test asset management, and test results reporting. SystemLink features that do not require the client include data exchange through HTTP APIs and interactions with DataFinder or Analysis Server.


SystemLink Nodes   

A node is a distinct processing unit that you use with a SystemLink Server to conduct networked data exchange. Typical nodes in an NI solution include Windows PCs (remote or embedded in a PXI chassis) and CompactRIO controllers. SystemLink Nodes also represent a licensing mechanism to enable the server to count the number of managed systems.

Note: SystemLink Nodes used in this article do not refer to the SystemLink Nodes palette in LabVIEW NXG. 

 

Data Communications

The SystemLink data architecture is designed to communicate data efficiently and securely among connected nodes. To accomplish this, SystemLink incorporates an open-source message broker known as RabbitMQ. For data communications from managed nodes, SystemLink implements the Advanced Message Queue Protocol, or AMQP. An industry standard for many middleware applications, AMQP is used by many large-scale distributed systems for high-performance data transmission and processing.

Using this data architecture, SystemLink provides native data services that are accessible through APIs. These include a File Service and a Tag Service. In addition, SystemLink offers an API to help you interface directly with AMQP through a Message API. For each of these services, SystemLink provides LabVIEW, Python, and Web Service APIs.

Note that developers can use the Tag and Message HTTP APIs  to interact directly with customer-defined web applications. This method is often used to program data communications for WebVIs developed with the LabVIEW NXG Web Module.


File Service

Use the file service to capture and communicate file data from applications that write measurement data or test results to files. Using the file service, you can write files as TDMS or the file format of your choice (for example, CSV) and efficiently transfer files from connected nodes to the SystemLink Server. In the Web Application, SystemLink provides a File Viewer interface that helps you search, view, and download files.


Tag Service

Use the tag service to report the values of a data point that you are reading and reporting with an application running at the node. Typically, applications broadcast tags to the server to support a monitoring use case. Tags are appropriate for data points that you intend to update at 1 Hz or less. Tags are not appropriate for streaming high-speed measurement data.


Message API

Use the Message API to publish any string data to developer-defined topics. You can use any node in any managed system    to receive messages by subscribing to the established topics. The message service can stream high-volume and high-speed data, even video. The ability for an application to adequately process messages for display and visualization depends on network speeds and application design. Note that the Message service enables direct interaction with the RabbitMQ messaging layer and is not a proprietary service offered by NI.

 

Data Storage

Central Server Storage for Application Data

SystemLink offers a variety of services and tools to help you store data. The primary use case for the central database is the storage and retrieval of application data, such as systems, assets, jobs, and tests. For most of this information, SystemLink stores data in a server-side instance of MongoDB, an open-source NoSQL database.

Learn more about MongoDB.

DataFinder and Analysis Server incorporate a distinct database for capturing data interactions on the server. This data storage is based on MariaDB.


File Data

For applications that implement the file service to automate file transfer, SystemLink stores file data at a location you can configure on disk. To access files, application users can download them from the Web UI and developers can access them programmatically using LabVIEW, Python, and Web Service APIs. Refer to SystemLink manuals and the product support forum for details on file locations and configuration options. SystemLink stores file metadata in MongoDB, and you can use this metadata to query files through the Web Application or through your programmatic access to files with Web Service APIs.


Tag Data

Storage of Current Values

To accelerate the retrieval of current tag values, SystemLink stores current values in Redis. Redis is a popular open-source data store implemented as an in-memory cache.

Learn more about Redis.


Tag History

Tag history is stored in MongoDB, with a default time span of 30 days. You can configure this setting based on application requirements.


Interfacing with SystemLink Data

To exchange data with SystemLink, you should use the documented APIs. The APIs provide common structures and procedures that shield developers from future modifications to the underlying data structures.

 

Remote Job Execution

SystemLink includes a job execution system to perform remote functions on managed systems. Examples of remote functions include installing software packages and restarting a device.

To achieve remote job execution, SystemLink incorporates a popular remote execution engine known as Salt or Salt Open in its open-source variation. Salt is a Python-based framework that many large-scale data center providers use to manage configuration functions and task orchestration. Designed for scale and performance, Salt can help you manage thousands of nodes and thousands of jobs running simultaneously.

Learn more about Salt.

The architecture of Salt is similar to that of SystemLink in that it incorporates a master program on a central computer (“server”) to coordinate interactions among a group of connected nodes. On each node, Salt includes a minion service that manages local device processing. SystemLink users are not required to interface directly with Salt since SystemLink manages these interactions on the users’ behalf.

Developers interested in extending SystemLink’s remote execution capabilities can access Salt components for writing extensions and customizing automation.

 

Web Server

For web application hosting, SystemLink offers NI Web Server. NI Web Server is based on the open-source Apache HTTP Server project.

Learn more about Apache.

Along with the Apache web server, NI Web Server includes an administrative program called the NI Web Server configuration tool. This configuration utility helps you:

  • Establish roles and permissions
  • Set authentication options such as LDAP or native Windows
  • Secure NI Web Server using either a self-signed certificate or a certificate from a valid certificate authority

To learn more about NI Web Server configuration, watch Installing and Getting Started with the Systemlink Server. To learn more about the security options of NI Web Server, refer to Security in NI Web Technology.

 

Web Application Framework

The primary user interface for SystemLink is a browser-based application. Supported by most standard web browsers, SystemLink Web Application provides you with remote access to distributed systems, automated tests, and measurement data.

Based on HTML and JavaScript technology, SystemLink Web Application is developed using Sencha Ext JS. Sencha is a commercial framework for developing cross-platform, graphical web applications.

Learn more about Sencha.


Plug-In Architecture

SystemLink features an interface framework that hosts a collection of application plug-ins. The software includes a collection of standard applications, such as Systems Manager, Package Repository, Tag Viewer, and File Viewer.


Extending the Framework to Host Custom Apps

You can add custom plug-in applications to SystemLink to take advantage of the underlying web application architecture. By hosting custom web applications with SystemLink, you can focus on custom user workflows and business logic while SystemLink provides reusable services such as web server application hosting, networked data services, user management, and security. To learn more about developing custom applications and hosting with SystemLink, refer to the appropriate GitHub repository.

 

Networking and Installation Options

To interact with distributed systems or remote computing nodes, SystemLink requires a TCP/IP connection between the nodes and the SystemLink Server. SystemLink does not require external Internet access on the server or the clients.

 

Network Ports

SystemLink uses the following ports on the server to enable data communication and remote execution. In some cases, you may need to configure firewall settings to allow network traffic over these ports.

  • 80/443 for web server communications
  • 5673 and 15672 for transferring files, tags, health data, and test results
  • 4505 and 4506 to execute remote procedures such as software installations

SystemLink does not require open ports on clients.

 

Primary Installation Options for SystemLink 

On-Premise Installation

Many customers choose to install SystemLink on a server within the corporate network. Ideally, this server has external Internet access to ni.com so administrators can easily obtain SystemLink updates using NI Package Manager. Access to ni.com is also beneficial for customers who want to use SystemLink to replicate NI product software, such as device drivers and runtime engines to their servers, for distribution to remote systems. Note that SystemLink computing nodes require network access to the SystemLink Server, but they do not require external Internet access.


Isolated Network Option

The security policies of some organizations may mandate that you run test and measurement systems on an isolated network with no external Internet access. For these use cases, you can still install and use SystemLink, provided that the managed nodes have network access to the server. NI offers product installers on physical media for customers who require isolated network installations.


Cloud Computing Option

You can run SystemLink Server in a public or private cloud computing environment such as Amazon Web Services (AWS) or Microsoft Azure. In these use cases, you are responsible for installing and managing the server instance in the cloud or for contracting a business partner to provide this service. Benefits of a cloud-based server include the following:

  • Nodes on external subnets can connect to the server without a VPN connection
  • Cloud services provide high-availability servers with industry-leading uptime metrics
  • Cloud providers offer automated redundancy, back-up, and recovery features


SystemLink Cloud Offering: Software as a Service (SaaS) from NI

NI offers a hosted data visualization service through SystemLink Cloud. Appropriate for WebVI hosting and tag-based data dashboards, SystemLink Cloud does not provide remote systems management, test results reporting, or file-based data mining. If you need these capabilities, you must install the SystemLink Server either on-premise or in a customer-managed cloud environment. The data visualization services of SystemLink Cloud include the following:

  • Host WebVIs designed using the LabVIEW NXG Web Module. Send data to WebVIs using the Tag and Message services described in Data Communications
  • Host SystemLink data dashboards that display tag data communicated from distributed nodes

 

Security

NI has designed SystemLink from the ground up with security as a primary objective. Understanding that security includes multiple facets, NI has implemented specific technologies and techniques for security in the following categories:


System/Node Authentication

Managed systems must provide valid authentication credentials to a SystemLink Server. The exchange of these credentials occurs when an administrator uses the SystemLink Web Application to approve a node that has requested registration. The SystemLink Client program on the node initiates the request and manages the connection with the server.


User Authentication

SystemLink provides an authentication framework for application users. Based on corporate IT standards, administrators can easily configure the NI Web Server to authenticate users based on LDAP or Active Directory or on native Windows authentication.


User Roles

SystemLink implements user roles and permissions, which are configured on the NI Web Server. Using a configuration utility, administrators can associate preconfigured application permissions to user roles and add individual users to appropriate roles. For example, an administrator can enable software deployment for one user role and read-only access to software information for another user role.


Web Server Security

NI Web Server provides preconfigured options for setting up the security of the web server. Securing a web server involves installing a certificate that manages the encryption keys and enables applications to run in HTTPS mode. Using the NI Web Server configuration tool, you can implement a self-signed certificate or install a certificate provided by a certification authority. You can also run the web server in nonsecure mode for noncritical systems or installations with sufficient network security. Work with your IT department to select the appropriate security option.


Data Encryption and Authentication

SystemLink data services feature Transport Layer Security (TLS), an industry standard for securing and encrypting data that is transmitted over TCP/IP networks. When a managed system is approved, SystemLink automatically creates a unique RabbitMQ user and password for that specific system and transfers the certificate and settings for connecting to the server to the remote system. Removing a system from SystemLink automatically revokes the credentials and prevents the system from connecting to the server in the future. In practical terms, if a malicious party intercepts SystemLink data transmissions, this party cannot interpret the data without also hacking the system and solving the encryption key.

 

APIs  

As an open architecture, SystemLink provides application programming interfaces (APIs) that enable programmatic access to server and client functions. Specific interfaces are listed below:


Web Service APIs

SystemLink functions through Web Service APIs that conform to a REST architecture for alignment with web development standards. NI documents and publishes Web Service APIs through Swagger, a popular open-source tool.   


LabVIEW APIs

SystemLink data services such as file and tag are available as LabVIEW APIs. Refer to the SystemLink Manual for detailed instructions on how to access and use the APIs.


Python APIs

SystemLink introduces an add-on to incorporate JupyterHub, which you can use to develop interactive web reports with Jupyter Notebook. To support this feature, NI has developed Python APIs for test results reporting, tags, and files. Refer to the SystemLink GitHub repository for Python API documentation and examples.

 

Conclusion

Understanding the SystemLink architecture is important when planning for a distributed systems and data management solution that is secure, scalable, and extensible. The power and flexibility of this architecture provides customers with the ability to meet the application needs of today, as well as a strong technology foundation to align with future challenges.

 

Additional Resources

 

©2018 NI. All rights reserved. CompactRIO, DIAdem, LabVIEW, National Instruments, NI, ni.com, and NI TestStand are trademarks of NI. Other product and company names listed are trademarks or trade names of their respective companies.

MATLAB®  is a registered trademarks of The MathWorks, Inc.

The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a worldwide basis.