英語|简体中文
Neuronは、インダストリー4.0のパワーを活用するための最新のビッグデータテクノロジー向けのインダストリアルIoT(IIoT)エッジインダストリアルゲートウェイです。数十の産業用プロトコルへのワンストップアクセスをサポートし、それらをMQTTプロトコルに変換してIIoTプラットフォームにアクセスします。
バージョン2.0は、バージョン1.xの必須ではない機能の一部を合理化し、IIoTプラットフォームのより効率的で柔軟なワンストッププロトコルアクセスと管理を提供するために、産業用プロトコルのデータ収集と転送に重点を置いています。
Neuronは、IIoTのデータ収集、転送、集約に重点を置くように設計されています。さまざまなプロトコルタイプのさまざまな産業用デバイスからのデータを統合された標準MQTTメッセージに変換して、これらの個々のデバイスを相互接続し、より大きなIoTシステムに統合します。直接リモートコントロールと情報アクセス用。
Neuronが、ローエンドの組み込みLinuxデバイスとより大きなメモリを備えたLinuxワークステーションの両方で実行され、多数の接続されたデバイスと大量のデータポイントをサポートできることを願っています。したがって、Neuronは、さまざまなオペレーティングリソースのニーズを満たすようにスケーラブルでありながら、メモリフットプリントが非常に少なくCPUフットプリントが非常に低いように設計されています。
Neuronのいくつかの重要な機能は次のとおりです。
新機能の完全なリストについては、アプリケーションとドライバーの説明をお読みください。
詳細については、ホームページをご覧ください。
最新のCPUのほとんどはすでにマルチコアであり、組み込みシステムで使用されているローエンドのARMおよびRisc-VアーキテクチャCPUでさえ、そのほとんどにマルチコアチップが搭載されています。したがって、これらのマルチコアCPUを最大限に活用できる必要があります。つまり、Neuronは非常に優れたマルチコアおよびマルチスレッドのパフォーマンスを備えている必要があります。ライブラリNNGを使用します。これは、マルチスレッドIO処理とメッセージパッシング用の非同期並行ライブラリであり、CPUの複数のコアを最大限に活用できます。
組織形態としてスターバスモードを使用しており、メッセージルーティングセンターがあります。このメッセージルーティングはNNGに基づいており、高効率のメッセージ転送を提供します。メッセージの送受信は、スレッド間の通信です。共有バッファとスマートポインタを使用することにより、メモリコピーがなくなり、非常に効率的です。このルーティングセンターの周りにはノードがあり、すべてのノードにアダプターとプラグインが含まれています。これらのノードは、軽量WebサーバーなどのNeuronに組み込まれている場合もあれば、さまざまなデバイスドライバー、MQTTクライアント、eKuiperインターフェイスなどのように動的に追加されている場合もあります。この設計により、各デバイスドライバーとノースバウンドアプリケーション間の結合を分離します。さらに、サブスクリプション公開メカニズムを使用して、データストリームの分散と収集を実現し、Neuronを非常に柔軟にします。ユーザーは、サイトの作業負荷に応じて、デバイス駆動型ノードを動的に増減でき、優れた構成が可能です。さらに、Neuronを実行しているハードウェアCPUのパフォーマンスが高く、コアが多く、メモリが大きい場合、Neuronは、より多くのデバイスドライバーノード、大量のデータポイント、より高いデータスループット、およびより短い応答時間をサポートできます。システムのスケーラビリティが優れています。
Neuronは、プラグインされたメカニズムを使用して、ユーザーの機能要件の変更をサポートします。ユーザーは、アプリケーションシナリオの機能要件に応じて、さまざまな機能を備えたプラグインを動的にロードできます。デバイスドライバーにバグ修正があり、アップグレードする必要がある場合は、新しいプラグインを動的に更新して問題を解決し、新しい機能を取得することもできます。各ノードの実行状態は独立しています。1つのノードのプラグインをアップグレードしても、他のノードの実行状態に影響を与えることはなく、Neuronを再起動する必要はありません。
Neuronのアーキテクチャの概要を次の図に示します。
Neuronのバスのトポロジとデータフローの分散/収集を次の図に示します。
Neuronの階層レイヤー図を次の図に示します。
$ git clone https://github.com/emqx/neuron
$ cd neuron
$ git submodule update --init
$ mkdir build && cd build
$ cmake .. && make
$ cd build
$ ./neuron
すべてのユニットテスターを実行するには
$ cd build
$ ctest --output-on-failure
すべての機能テスターを実行するには
mosquitto -v &
pip3 install -r ft/requirements.txt
python3 -m robot -P ft/ --variable neuron_api:http -d ft/http_reports ft
ディレクトリに圧力テスト用のデータセットがあります
ft/data/persistence/。
圧力テストを実行するには
# python dependencies
pip3 install -r ft/requirements.txt
# through http api, on dataset total-10k
python3 -m robot -P ft/ --variable neuron_api:http --variable dataset:total-10k -d ft/http-total-10k ft/pressure.test
# through http api, on dataset total-50k
python3 -m robot -P ft/ --variable neuron_api:http --variable dataset:total-50k -d ft/http-total-50k ft/pressure.test
# A MQTT broker is needed if using the mqtt api, mosquitto in this example
mosquitto -v &
# through mqtt api, on dataset simple-1k
python3 -m robot -P ft/ --variable neuron_api:mqtt --variable dataset:simple-1k -d ft/mqtt-simple-1k ft/pressure.test
Neuronコミュニティおよび開発者とは次の方法で接続できます。