SystemLink™アーキテクチャ

SystemLink™アーキテクチャ

概要

このドキュメントでは、リモートシステム管理、ネットワークデータ交換、データストレージ、Webアプリケーションホスティングなどの機能を実現するテクノロジーと設計を含む、SystemLinkソフトウェアアーキテクチャの概要を説明します。その他のリソースと製品ドキュメントについては、以下のNational Instrumentsリンクを参照してください。

※このページはペリテックのパートナー企業National InstrumentsのSystemLinkページ(英語)を基に日本語訳して掲載しています。

目次

製品とテクノロジーの概要

SystemLinkソフトウェアは、自動テストおよび自動測定システムに接続されたインテリジェンスを提供します。中央管理インターフェイスと強力なデータアーキテクチャを備えたSystemLinkは、システム管理コストを削減し、データ管理を合理化し、自動テストレポートを改善し、運用効率を高めます。

SystemLinkを使用すると、テストチームと測定チームは次のタスクを実行できます。

  • システムのグループを中央のインターフェースに接続して、リモート設定と監視を行う 
  • コンポーネントレベルの更新を含むソフトウェアを1つまたは複数のリモートシステムに展開する
  • 自動テストシステムのグループからテストデータを収集、集約、報告する
  • テストシステムから中央リポジトリへのファイルデータの転送を自動化
  • 分散データファイル全体の測定チャネルを検索および分析
  • さまざまなシステムのテストデータを標準化して、共通のモデルに合わせる
  • データ処理イベントとレポート生成のスケジュール

SystemLinkテクノロジのアーキテクチャ

SystemLinkは、市場をリードするソフトウェアインフラストラクチャと、テストおよび測定のユースケースに特化したNI設計のソフトウェアサービスおよびアプリケーションを組み合わせています。NIは、テストおよび測定アクティビティに従事するエンジニアが、大量のデータを操作するための柔軟なツールと、このデータを操作するためのユーザー定義のアプリケーションインターフェイスを作成する機能が必要であることを理解しています。SystemLinkは、この柔軟性に加えて、以下のアーキテクチャー品質を提供します。

  • 開放性と拡張性
  • スケーラビリティとパフォーマンス
  • モジュール性
  • 安全保障

テストおよび測定用に設計

多くの組織が、分散システム管理、エンタープライズデータ管理、およびビジネスインテリジェンスをサポートするソフトウェアツールを採用しています。ただし、これらの製品は通常、幅広いITユースケースと一般的なビジネス機能向けに設計されています。自動テストシステムと測定データを管理する重要な機能が欠けています。対照的に、SystemLinkは自動テストおよび自動測定用に設計された多数の機能を導入しています。

テストと測定のユースケースSystemLinkのメリット  
システム管理インストールされた機器とデータ収集デバイスの発見と追跡を自動化自己校正やセルフテストなどのリモート診断および構成タスクを実行する
リアルタイムのデバイス管理NI Linux Real-Timeを実行する分散デバイスやリモートデバイスを管理する時間設定、ネットワーク設定、デバイスセキュリティなどのデバイス情報を構成する
ソフトウェアの導入リモートインストール用のソフトウェアパッケージを一元化、整理、および配布するLabVIEWアプリケーション、TestStandシーケンス、デバイスドライバー、およびユーザー定義アプリケーションなどのソフトウェアをデプロイ
データサービス運用監視(「タグサービス」)およびファイルの取り込み(「ファイルサービス」)のためのデータサービスを使用してデータを収集および送信するLabVIEWとWebサービスに直感的なAPIを活用
データの可視化正確な要件に基づいて、ネットワークシステムのタグデータをグラフィカルWebインターフェイスに接続することにより、ユーザー定義のデータダッシュボードを作成しますブラウザー内のファイルデータビューアーでファイルデータを視覚化する
テスト結果の報告SystemLinkテストモジュールを使用して、TestStandを実行しているテストシステムからのテスト結果を集約する中央のレポートインターフェイスでテストデータを表示する  
データマイニングとインデックス作成NI DataFinder Serverを使用して、複数の分散リポジトリに保存されているデータを含む、テストアクティビティ中に生成されたファイルからチャネルデータとメタデータをインデックス化および検索します   
自動データ処理NI Analysis Serverを使用してプログラムでデータを処理し、使いやすいレポートの生成をスケジュールするDIAdemまたはLabVIEWなどの追加オプションを使用して、VBScriptで自動化スクリプトを記述します。Python; MathWorks、Inc.MATLAB®ソフトウェア。とR.

オープンソースソフトウェアインフラストラクチャの活用

NIは、SystemLinkインフラストラクチャの新しいテクノロジーを発明するのではなく、ネットワークデータ通信、リモートオートメーション、データストレージ、Webアプリケーションホスティングなどの機能を提供する、市場をリードするオープンソースツールを組み込んでいます。これらのソフトウェアツールは、ITおよびビジネスアプリケーションのために業界全体で広く使用されています。その結果、これらのテクノロジをサポートするために利用できる豊富なリソースと、ユーザーのコミュニティから構成、拡張性、およびパフォーマンスの最適化のアイデアを共有することができます。SystemLinkは、オープンソースソフトウェアを組み込むことで、IT部門が認めたベストプラクティスと標準に合わせながら、テストと測定用に設計された製品を提供します。

特定のテクノロジーとそれらのSystemLinkアーキテクチャーでの実装の詳細については、このドキュメントの以下のセクションを参照してください。

アーキテクチャコンポーネント

SystemLinkは、ネットワーク経由で接続されたコンピューティングノード間でのデータ交換と、Webブラウザーを介したアプリケーションアクセス用に最適化されたクライアント/サーバーアーキテクチャを実装しています。アーキテクチャには、次のソフトウェアコンポーネントが含まれています。

SystemLink Webアプリケーション

SystemLink Webアプリケーションは、SystemLinkのWebブラウザーベースのユーザーインターフェイスを指します。Web UIを介して、リモートシステム管理、アラーム設定、テストアセットトラッキング、テスト結果レポート、データマイニング、スケジュールされたデータ処理などのタスクを実行できます。SystemLink Webアプリケーションは、SystemLink Serverおよび付属のNI Web Serverを実行するコンピューターによってホストされます。

SystemLinkサーバー

SystemLink Serverには、アプリケーションとデータの相互作用の中心的なハブであるコンピューター上で実行されるソフトウェアプログラムとサービスのコレクションが含まれています。SystemLink Serverには、製品の機能を一緒に実行するNI定義のソフトウェアアプリケーション機能、テクノロジーサービス、およびサーバー側APIが含まれています。このサーバーには、このドキュメントで後述するNI Webサーバーとオープンソースソフトウェアインフラストラクチャテクノロジーが組み込まれています。

NI Webサーバー

NI Webサーバーは、SystemLink Webアプリケーション用のアプリケーションサーバーホストを提供します。NI Webサーバーを使用すると、ユーザーの役割と権限、ユーザー認証、セキュリティなどのサーバー設定を構成できます。NI Webサーバーは、SystemLink Serverのインストールに含まれています。NI WebサーバーはLabVIEW NXG Webモジュールでも使用されることに注意してください。

SystemLinkクライアント

SystemLinkクライアントは、SystemLink分散コンピューティング環境で使用するマシンにインストールするソフトウェアプログラムです。クライアントはSystemLink Serverへの接続を管理し、サーバー(WebアプリケーションまたはAPIコマンドのいずれか)からの指示に基づいてコマンドを実行します。クライアントのインストールに依存する機能には、ソフトウェアの導入、テスト資産管理、およびテスト結果レポートが含まれます。クライアントを必要としないSystemLink機能には、HTTP APIを介したデータ交換や、DataFinderまたはAnalysis Serverとの対話が含まれます。

SystemLinkノード   

ノードは、ネットワークデータ交換を行うためにSystemLink Serverで使用する別個の処理ユニットです。NIソリューションの一般的なノードには、Windows PC(リモートまたはPXIシャーシに埋め込まれている)とCompactRIOコントローラーが含まれます。SystemLinkノードは、サーバーが管理対象システムの数をカウントできるようにするライセンスメカニズムも表します。

この記事で使用するSystemLinkノードは、LabVIEW NXGのSystemLinkノードパレットを指していません。

データ通信

SystemLinkデータアーキテクチャは、接続されたノード間でデータを効率的かつ安全に通信するように設計されています。これを実現するために、SystemLinkにはRabbitMQと呼ばれるオープンソースのメッセージブローカーが組み込まれています。管理対象ノードからのデータ通信のために、SystemLinkはAdvanced Message Queue Protocol(AMQP)を実装しています。多くのミドルウェアアプリケーションの業界標準であるAMQPは、高性能のデータ伝送と処理のために多くの大規模分散システムで使用されています。

このデータアーキテクチャを使用して、SystemLinkはAPIを通じてアクセス可能なネイティブデータサービスを提供します。これらには、ファイルサービスとタグサービスが含まれます。さらに、SystemLinkは、メッセージAPIを介してAMQPと直接インターフェースするのに役立つAPIを提供します。これらの各サービスに対して、SystemLinkはLabVIEW、Python、およびWebサービスAPIを提供します。

開発者はタグおよびメッセージHTTP APIを使用して、顧客定義のWebアプリケーションと直接対話することができます。この方法は、LabVIEW NXG Webモジュールで開発されたWebVIのデータ通信のプログラミングによく使用されます。

ファイルサービス

ファイルサービスを使用して、測定データまたはテスト結果をファイルに書き込むアプリケーションからファイルデータをキャプチャして通信します。ファイルサービスを使用すると、ファイルをTDMSまたは選択したファイル形式(CSVなど)として書き込み、接続されたノードからSystemLinkサーバーにファイルを効率的に転送できます。SystemLinkは、Webアプリケーションで、ファイルの検索、表示、ダウンロードに役立つファイルビューアインターフェイスを提供します。

タグサービス

タグサービスを使用して、ノードで実行中のアプリケーションで読み取り、レポートしているデータポイントの値を報告します。通常、アプリケーションはタグをサーバーにブロードキャストして、モニタリングのユースケースをサポートします。タグは、1 Hz以下で更新する予定のデータポイントに適しています。タグは、高速測定データのストリーミングには適していません。

メッセージAPI

Message APIを使用して、開発者が定義したトピックに文字列データを公開します。確立されたトピックにサブスクライブすることにより、任意の管理対象システムの任意のノードを使用してメッセージを受信できます。メッセージサービスは、ビデオでさえ、大量かつ高速のデータをストリーミングできます。アプリケーションがメッセージを適切に処理して表示および視覚化できるかどうかは、ネットワーク速度とアプリケーション設計に依存します。メッセージサービスは、RabbitMQメッセージングレイヤーとの直接対話を可能にするものであり、NIが提供する独自のサービスではないことに注意してください。トップに戻る

データストレージ

アプリケーションデータ用の中央サーバーストレージ

SystemLinkは、データの保存に役立つさまざまなサービスとツールを提供します。中央データベースの主な使用例は、システム、資産、ジョブ、テストなどのアプリケーションデータの保存と取得です。この情報のほとんどについて、SystemLinkはオープンソースのNoSQLデータベースであるMongoDBのサーバー側インスタンスにデータを格納します。

DataFinderとAnalysis Serverには、サーバー上のデータのやり取りをキャプチャするための個別のデータベースが組み込まれています。このデータストレージはMariaDBに基づいています。

ファイルデータ

ファイル転送を自動化するファイルサービスを実装するアプリケーションの場合、SystemLinkはファイルデータをディスク上の構成可能な場所に格納します。ファイルにアクセスするには、アプリケーションユーザーはWeb UIからファイルをダウンロードでき、開発者はLabVIEW、Python、およびWebサービスAPIを使用してプログラムでファイルにアクセスできます。ファイルの場所と構成オプションの詳細については、SystemLinkのマニュアルと製品サポートフォーラムを参照してください。SystemLinkはファイルメタデータをMongoDBに保存します。このメタデータを使用して、Webアプリケーションを通じて、またはWebサービスAPIを使用したファイルへのプログラムによるアクセスを通じて、ファイルにクエリを実行できます。

タグデータ

現在値の保存

現在のタグ値の取得を高速化するために、SystemLinkは現在の値をRedisに保存します。Redisは、インメモリキャッシュとして実装される人気のあるオープンソースのデータストアです。

タグ履歴

タグの履歴はMongoDBに保存され、デフォルトの期間は30日です。この設定は、アプリケーションの要件に基づいて構成できます。

SystemLinkデータとのインターフェース

SystemLinkとデータを交換するには、文書化されたAPIを使用する必要があります。APIは、基礎となるデータ構造への将来の変更から開発者を保護する共通の構造と手順を提供します。トップに戻る

リモートジョブの実行

SystemLinkには、管理対象システムでリモート機能を実行するジョブ実行システムが含まれています。リモート機能の例には、ソフトウェアパッケージのインストールやデバイスの再起動が含まれます。

リモートジョブの実行を実現するために、SystemLinkは、SaltまたはSalt Openと呼ばれる一般的なリモート実行エンジンをオープンソースのバリエーションに組み込んでいます。Saltは、多くの大規模なデータセンタープロバイダーが構成機能とタスクオーケストレーションの管理に使用するPythonベースのフレームワークです。規模とパフォーマンスを重視して設計されたSaltは、数千のノードと数千のジョブを同時に実行するのに役立ちます。

Saltのアーキテクチャは、中央のコンピュータ(「サーバー」)にマスタープログラムを組み込んで、接続されたノードのグループ間の相互作用を調整するという点で、SystemLinkのアーキテクチャに似ています。Saltには、各ノードでローカルデバイスの処理を管理するミニオンサービスが含まれています。SystemLinkはユーザーに代わってこれらの対話を管理するため、SystemLinkユーザーは、Saltと直接やり取りする必要はありません。

SystemLinkのリモート実行機能の拡張に関心のある開発者は、Saltコンポーネントにアクセスして、拡張機能を記述し、自動化をカスタマイズできます。

ウェブサーバー

Webアプリケーションホスティング用に、SystemLinkはNI Webサーバーを提供しています。NI Web Serverは、オープンソースのApache HTTP Serverプロジェクトに基づいています。

Apache Webサーバーに加えて、NI Webサーバーには、NI Webサーバー構成ツールと呼ばれる管理プログラムが含まれています。この構成ユーティリティは、次のことに役立ちます。

  • 役割と権限を確立する
  • LDAPやネイティブWindowsなどの認証オプションを設定する
  • 自己署名証明書または有効な認証局からの証明書を使用してNI Webサーバーを保護する

NI Webサーバー構成の詳細については、システムリンクサーバーのインストールと使用開始をご覧ください。NI Webサーバーのセキュリティオプションの詳細については、NI Webテクノロジーのセキュリティ(NI)を参照してください。

Webアプリケーションフレームワーク

SystemLinkの主要なユーザーインターフェイスは、ブラウザーベースのアプリケーションです。ほとんどの標準WebブラウザーでサポートされているSystemLink Webアプリケーションは、分散システム、自動テスト、および測定データへのリモートアクセスを提供します。

HTMLおよびJavaScriptテクノロジーに基づいたSystemLink Webアプリケーションは、Sencha Ext JSを使用して開発されています。Senchaは、クロスプラットフォームのグラフィカルなWebアプリケーションを開発するための商用フレームワークです。

プラグインアーキテクチャ

SystemLinkは、アプリケーションプラグインのコレクションをホストするインターフェースフレームワークを備えています。ソフトウェアには、Systems Manager、Package Repository、Tag Viewer、File Viewerなどの標準アプリケーションのコレクションが含まれています。

フレームワークを拡張してカスタムアプリをホストする

カスタムプラグインアプリケーションをSystemLinkに追加して、基盤となるWebアプリケーションアーキテクチャを利用できます。SystemLinkでカスタムWebアプリケーションをホストすることにより、SystemLinkがWebサーバーアプリケーションホスティング、ネットワークデータサービス、ユーザー管理、セキュリティなどの再利用可能なサービスを提供しながら、カスタムユーザーワークフローとビジネスロジックに集中できます。カスタムアプリケーションの開発とSystemLinkでのホスティングの詳細については、適切なGitHubリポジトリを参照してください。
トップに戻る

ネットワークとインストールのオプション

分散システムまたはリモートコンピューティングノードと対話するために、SystemLinkはノードとSystemLinkサーバー間のTCP / IP接続を必要とします。SystemLinkは、サーバーまたはクライアントでの外部インターネットアクセスを必要としません。

ネットワークポート

SystemLinkは、サーバー上の次のポートを使用して、データ通信とリモート実行を可能にします。場合によっては、ファイアウォール設定を構成して、これらのポートを介したネットワークトラフィックを許可する必要があります。

  • Webサーバー通信には80/443
  • 5673および15672(ファイル、タグ、ヘルスデータ、およびテスト結果の転送用)
  • ソフトウェアのインストールなどのリモート手順を実行する4505および4506

SystemLinkでは、クライアントでポートを開く必要はありません。

SystemLinkの主要なインストールオプション 

オンプレミスインストール

多くのお客様は、企業ネットワーク内のサーバーにSystemLinkをインストールすることを選択しています。理想的には、このサーバーはni.comへの外部インターネットアクセスを備えているため、管理者はNI Package Managerを使用してSystemLinkアップデートを簡単に入手できます。ni.comへのアクセスは、SystemLinkを使用してデバイスドライバやランタイムエンジンなどのNI製品ソフトウェアをサーバーに複製し、リモートシステムに配布する場合にも役立ちます。SystemLinkコンピューティングノードはSystemLinkサーバーへのネットワークアクセスを必要としますが、外部インターネットアクセスを必要としないことに注意してください。

分離ネットワークオプション

一部の組織のセキュリティポリシーでは、外部インターネットアクセスのない分離されたネットワーク上でテストおよび測定システムを実行するように義務付けている場合があります。これらの使用例でも、管理対象ノードがサーバーにネットワークアクセスできる場合は、SystemLinkをインストールして使用できます。NIは、分離されたネットワークインストールを必要とするお客様向けに、物理メディアで製品インストーラを提供しています。

クラウドコンピューティングオプション

SystemLink Serverは、Amazon Web Services(AWS)やMicrosoft Azureなどのパブリックまたはプライベートクラウドコンピューティング環境で実行できます。これらの使用例では、サーバーインスタンスをクラウドにインストールして管理するか、このサービスを提供するビジネスパートナーに契約する必要があります。クラウドベースのサーバーの利点は次のとおりです。

  • 外部サブネット上のノードは、VPN接続なしでサーバーに接続できます
  • クラウドサービスは、業界をリードする稼働時間メトリックを備えた高可用性サーバーを提供します
  • クラウドプロバイダーは、自動化された冗長性、バックアップ、およびリカバリ機能を提供します

SystemLink Cloudオファリング:NIのサービスとしてのソフトウェア(SaaS)

NIは、SystemLink Cloudを介してホストされたデータ視覚化サービスを提供します。WebVIホスティングとタグベースのデータダッシュボードに適切なSystemLink Cloudは、リモートシステム管理、テスト結果レポート、またはファイルベースのデータマイニングを提供しません。これらの機能が必要な場合は、SystemLink Serverをオンプレミスまたは顧客管理のクラウド環境にインストールする必要があります。SystemLink Cloudのデータ視覚化サービスには、次のものがあります。

  • LabVIEW NXG Webモジュールを使用して設計されたホストWebVI。で説明したタグとメッセージサービスを使用してWebVIsにデータを送信するデータ通信
  • 分散ノードから通信されたタグデータを表示するホストSystemLinkデータダッシュボード

トップに戻る

安全保障

NIは、セキュリティを主な目的としてSystemLinkを一から設計しました。セキュリティには複数の側面が含まれることを理解し、NIは次のカテゴリのセキュリティのための特定のテクノロジーとテクニックを実装しました。

システム/ノード認証

管理対象システムは、有効な認証資格情報をSystemLinkサーバーに提供する必要があります。これらの資格情報の交換は、管理者がSystemLink Webアプリケーションを使用して、登録を要求したノードを承認するときに発生します。ノード上のSystemLinkクライアントプログラムが要求を開始し、サーバーとの接続を管理します。

ユーザ認証

SystemLinkは、アプリケーションユーザーに認証フレームワークを提供します。企業のIT標準に基づいて、管理者は簡単にNI Webサーバーを構成して、LDAP、Active Directory、またはネイティブWindows認証に基づいてユーザーを認証できます。

ユーザーの役割

SystemLinkは、NI Webサーバーで構成されるユーザーの役割と権限を実装します。管理者は、構成ユーティリティを使用して、事前構成されたアプリケーション権限をユーザーロールに関連付け、個々のユーザーを適切なロールに追加できます。たとえば、管理者は、あるユーザーロールのソフトウェア展開と、別のユーザーロールのソフトウェア情報への読み取り専用アクセスを有効にすることができます。

Webサーバーのセキュリティ

NI Webサーバーには、Webサーバーのセキュリティを設定するための事前構成済みオプションが用意されています。Webサーバーを保護するには、暗号化キーを管理し、アプリケーションをHTTPSモードで実行できるようにする証明書をインストールする必要があります。NI Webサーバー構成ツールを使用すると、自己署名証明書を実装したり、認証局から提供された証明書をインストールしたりできます。重要でないシステムや、十分なネットワークセキュリティを備えたインストールでは、Webサーバーを非セキュアモードで実行することもできます。IT部門と協力して、適切なセキュリティオプションを選択します。

データの暗号化と認証

SystemLinkデータサービスは、TCP / IPネットワークを介して送信されるデータを保護および暗号化するための業界標準であるトランスポート層セキュリティ(TLS)を特徴としています。管理対象システムが承認されると、SystemLinkはその特定のシステムに固有のRabbitMQユーザーとパスワードを自動的に作成し、サーバーに接続するための証明書と設定をリモートシステムに転送します。SystemLinkからシステムを削除すると、資格情報が自動的に取り消され、システムがサーバーに接続できなくなります。実際には、悪意のある当事者がSystemLinkデータ送信を傍受した場合、この当事者はシステムをハッキングして暗号化キーを解くことなくデータを解釈できません。トップに戻る

API

SystemLinkは、オープンアーキテクチャとして、サーバーおよびクライアント機能へのプログラムによるアクセスを可能にするアプリケーションプログラミングインターフェイス(API)を提供します。特定のインターフェースを以下に示します。

WebサービスAPI

SystemLinkは、RESTアーキテクチャーに準拠するWebサービスAPIを介して機能し、Web開発標準との整合を図ります。NI は、人気のあるオープンソースツールであるSwaggerを介してWebサービスAPIを文書化して公開しています。   

LabVIEW API

ファイルやタグなどのSystemLinkデータサービスは、LabVIEW APIとして利用できます。APIにアクセスして使用する方法の詳細については、SystemLinkのマニュアル(NI)を参照してください。

Python API

SystemLinkは、JupyterHubを組み込むアドオンを導入します。これを使用して、Jupyter NotebookでインタラクティブなWebレポートを開発できます。この機能をサポートするために、NIはテスト結果のレポート、タグ、およびファイル用のPython APIを開発しました。Python APIのドキュメントと例については、SystemLink GitHubリポジトリ(NI)を参照してください。

結論

安全でスケーラブルで拡張可能な分散システムとデータ管理ソリューションを計画する場合、SystemLinkアーキテクチャを理解することが重要です。このアーキテクチャのパワーと柔軟性は、今日のアプリケーションニーズを満たす能力と、将来の課題に対応する強力なテクノロジー基盤をお客様に提供します。