![見出し画像](https://assets.st-note.com/production/uploads/images/75402822/rectangle_large_type_2_088d081ef3b62d8f7012f7ce98aba457.png?width=1200)
デジタルツイン#3 エッジコンピューティング
今回はデジタルツイン編の最終回となります、エッジ側でのデータ処理"エッジコンピューティング"について紹介します。
デジタルツインにおいて、このエッジコンピューティングは最も注目すべき要素の一つです。なぜなら、エッジコンピューティングは最初のフェーズとなるデータ収集からはじまり、データの蓄積、分析や予測、最後のフェーズとなる現場へのフィードバック(制御など)までの一連のサイクルを支える直接的な技術だからです。
![](https://assets.st-note.com/img/1648547310373-tz735j2vNp.png?width=1200)
このデジタルツイン全体の肝となるエッジコンピューティングについて大きく3つの観点で説明していきます。
①ストリームプロセッシング
収集されたデータをリアルタイムに処理するのがストリームプロセッシングです。一定期間データを貯めて一気に処理するバッチ処理と比べ、データの鮮度を保ちながら迅速な意思決定を行うことができます。
製造業の生産現場はリアルタイムで稼働しているため、AIによる設備の異常検知や制御をする上でこのストリームプロセッシングが必要となります。
Edgeコンピュータを使ってPLCのデジタル情報を取得・設定する場合に使用するツールとしてオープンソースであるNode-Redがあります。
Node-REDはパレットにある機能"ノード"を配置して処理を順番に繋ぐことでデータ処理フローを簡単に作成することができます。
各ノードのプロパティとして処理を設定し、フロー内を流れるデータはノードごとに加工されmessage(json)としてノード間を流れます。
データベースへ格納するノードもあり、プログラムコードを記入せずNode-Red画面でのフロー作成でデータ処理が可能になります。
![](https://assets.st-note.com/img/1648286181424-hVdqr5e3JB.png)
②データ転送とブローカー
Edgeコンピュータ上で収集/一時処理したデータを上位システム(Cloud)へ転送する場合はブローカーを仲介役として使用することが推奨されます。ブローカを介すことによりEdgeコンピュータ側の起動/停止時にデータロスト無くデータ転送することが可能となり、データ転送時にシステムの障害が発生してもデータロストしない強固なシステム構築が可能になります。
対象のデバイス接続によるデータ転送の負荷が増大した場合にスケールアウト構成をとりシステム負荷を分散します。
ブローカーはオープンソースのKafkaに代表されます。
Kafkaは複数のBrokerでクラスタを構成し、このクラスタ上にTopicと呼ばれる分散キューを構成します。Kafkaのメッセージはキーバリュー形式でRecordと呼ばれます。1つのTopicは複数のBrokerに分散配置されたPartitionで構成されており、このPartition単位でRecordの書き込み/読み込みを行うことで1つのTopicに対する並列書き込み/読み出しを実現します。Broker同士はクラスタコーディネータであるZooKeeperを使用して連携し、Brokerの1つがリーダーとなりBrokerクラスタを管理します。
![](https://assets.st-note.com/img/1648700461659-g7I2xq9VXk.png?width=1200)
![](https://assets.st-note.com/img/1648539849208-ftlTouhuYs.png?width=1200)
工場でのPLC制御においては、連続するストリーミングデータを処理しつつ、メンテナンス等が発生しても止めないシステムが必要です。この"止めない仕組み"を実現するためにKafkaによるクラスタ化構成が採用されます。
![](https://assets.st-note.com/img/1648539943848-TYnq7NPqf3.png?width=1200)
③Edge/Cloud環境における処理
データ処理のフローを加味した実行環境の設計も重要なポイントです。
Edge環境でのデータ処理を実行する大きな目的はリアルタイム性ですが、データ活用の側面からはローカルのデータのみでの活用には限界があるため、データを集中的に集めて分析するCloud環境も併せて検討する必要があります。
※Cloud環境とはAWS/Azure/Googleに代表されるパブリッククラウトによるサービスおよび仮想マシンを指します
Edge側の処理とCloud側の処理は、例えばそれぞれ以下のようなものがあります。
Edge側の処理
・デバイスからのデータ収集
(定期的・計測的にデバイスからデータを読み出す)
・収集したデータのクレンジング
(データの欠損判定、データの一時保持、変換)
・収集したデータからの特徴量抽出(集計、計算、画像判定などを含む)
・収集・クレンジング・特徴量データのCloudへの転送
・処理後のデータの判定(AI判定モデルの実行を含む)
・デバイスの制御(AI判定結果に基づくデバイスのコントロール)
・デバイスの監視
Cloud側処理
・Edgeデータの受付と蓄積(時系列データとして整理して管理)
・Edgeデータと外部データの結び付けによるデータ統合・意味づけ
・モニタリング(デバイス、Edge、サイト)リアルタイム監視
・データ活用として分析(予測値、スコアリング値)
・AI予測モデルの作成(Edge側で実行用のモデル作成)
・Edgeコンピュータの監視・管理
データ処理の観点においては、基本的な住み分けとして、データ解析やAIモデルの開発はCloud側で行い、作成されたモデルを実際に稼働させるのはEdge側ということになります。
それぞれの環境で異なる役割を理解し、それを踏まえたうえで一連のデータサイクルをスムーズに流すことがエッジコンピューティングの役割になります。
最後に
デジタルツインにおける重要な要素として今回はエッジコンピューティングを深堀って紹介させていただきました。
単なるデータ分析やAI予測をするだけではなく、それらの処理がスピーディーに遅延なく実行されることではじめて本当の意味でのデジタルツインの価値が出てくると思います。
一方で、"データをどう使うか"という話は、デジタルツインに限らず一般的な議題になってくると思いますので、また別のトピックとしてご紹介できればと考えております。
デジタルツインをテーマに計3回にわたってご紹介しましたが、今回で最後となります。少しでも知識を深める材料にしていただけたら幸いです。
最後まで読んでいただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?