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:
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:
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:
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 |
|
Real-Time Device Management |
|
Software Deployment |
|
Data Services |
|
Data Visualization |
|
Test Results Reporting |
|
Data Mining and Indexing |
|
Automated Data Processing |
|
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.
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 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 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 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 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.
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.
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.
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.
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.
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.
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.
DataFinder and Analysis Server incorporate a distinct database for capturing data interactions on the server. This data storage is based on MariaDB.
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.
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.
Tag history is stored in MongoDB, with a default time span of 30 days. You can configure this setting based on application requirements.
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.
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.
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.
For web application hosting, SystemLink offers NI Web Server. NI Web Server is based on the open-source Apache HTTP Server project.
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:
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.
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.
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.
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.
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.
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.
SystemLink does not require open ports on clients.
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.
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.
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:
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:
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:
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.
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.
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.
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.
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.
As an open architecture, SystemLink provides application programming interfaces (APIs) that enable programmatic access to server and client functions. Specific interfaces are listed below:
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.
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.
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.
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.
©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.