NECが公開するオープンソース

OSS貢献活動

FogFlow

FogFlow は、コンテキスト情報管理をネットワークのエッジにもたらす IoT エッジコンピューティングフレームワークです。FIWARE コンテキスト情報管理の機能を拡張し、オンデマンドのコンテキスト情報処理を可能にします。NEC Laboratories Europe GmbH が、開発しているオープンソースです。

コンテキスト情報管理 とは

スマートソリューションは、実世界の様々なソースから様々な情報を収集して、何が、いつ、どこで、なぜ起きているかを把握します。実世界のモノ・コトの状態をコンテキスト情報として管理するオープン標準に、FIWARE NGSI (Next Generation Service Interfaces)  (以下「NGSI」と記載) や new windowETSI NGSI-LD (以下「NGSI-LD」と記載) があります。

コンテキスト情報は、情報モデルで表現され、エンティティ (建物など) とそのプロパティ (住所や地理的位置など) およびリレーションシップ (所有者など) で構成されます。

NGSI の仕様では、コンテキスト情報をパブリッシュ、クエリ、サブスクライブおよびディスカバリーするための情報モデルと API の仕様が定義されています。

NGSI-LD は、NGSI の進化版で、リンクトデータ技術を取り入れることでセマンティックなデータ表現(語彙、データ間の関係等の表現)や管理を可能にした仕様です。仕様策定は new windowETSI (欧州電気通信標準化機構) の ISG (Industry specification group) CIM (Cross cutting context information management) で進められています。

NGSI および NGSI-LD API の主な機能は次のとおりです:

・コンテキスト情報を作成、更新、追加、および削除できます。

・コンテキスト情報のクエリができます。クエリにはフィルタリング、地理的スコープ、ページングなどの条件設定ができます。

・コンテキスト情報の変更をサブスクライブし、変更時に非同期のノーティフィケーションを受信できます。

・コンテキスト情報のソースをレジストレーションおよびディスカバリーできます。

NGSI と NGSI-LD は、new windowFIWARE プロジェクトで採用され、Context Broker と呼ばれる、各コンポーネント間でのコンテキスト情報の受け渡しを仲介するサーバーや周辺コンポーネントの開発が行われています。

FogFlow とは

FogFlow は、コンテキスト情報管理をネットワークのエッジにもたらす IoT エッジコンピューティングフレームワークです。FIWARE コンテキスト情報管理の機能を拡張し、オンデマンドのコンテキスト情報処理を可能にします。NEC Laboratories Europe GmbH が、開発している、new windowBSD 3-Clause license のオープンソースです。FogFlow は、FIWARE NGSIv2 および ETSI NGSI-LD のコンテキスト情報管理標準に準拠しており、FIWARE の Context Processing & Visualization の技術チャプターに位置付けられた、FIWARE Full member GE です。

FogFlow は、様々コンテキスト (context) に基づいて、クラウドとエッジ上の動的データ処理フローを自動的に調整します。複数の NGSI ベースのデータ処理タスクを動的かつ自動的に合成して高レベルの IoT サービスを形成し、共有クラウド エッジ環境内でそれらのサービスの展開を調整および最適化できます。

高度なインテント ベースのプログラミング モデル (intent-based programming) とコンテキスト駆動型のサービスオーケストレーションのおかげで、FogFlow は、最小限の開発労力とほぼゼロの運用オーバーヘッドで最適化された QoS を提供できます。現在、FogFlow は、小売、スマートシティ、スマートインダストリーの分野でさまざまなビジネスユースケースに適用されています。

FogFlow アーキテクチャ

FogFlow システムの全体的なアーキテクチャでは、インフラストラクチャリソースは、クラウド、 エッジ ノード、センサーデバイス、およびアクチュエーターとして垂直に分割されます。データ分析などの計算集約型タスクはクラウドサーバーで実行できますが、ストリーム処理などの一部のタスクはエッジノード (IoT ゲートウェイや計算機能を備えたエンドポイントデバイスなど) に効果的に移動できます。センサーは、(さまざまなセンサーデバイスによって観測された) 観測データをエッジノードに存在するブローカーと共有し、エッジノードはロジックに基づいてこのデータを計算し、アクチュエーターに応答を送信します。

システム概要

FogFlow クラウドエッジの共有環境は、次の図に示すように、1つの FogFlow クラウドノードと複数の FogFlow エッジノードで作成できます。この図では、FogFlow システムで実行されているすべての統合機能を確認できます。

モチベーション

FogFlow は IoT エッジコンピューティングフレームワークであり、次の課題に対処するように設計されています:

・クラウドのみのソリューションのコストは高すぎて、1000を超える地理分散デバイスで大規模な IoT システムを実行できません。

・多くの IoT サービスでは、エンド ツーエンドのレイテンシが10ミリ秒未満などの高速な応答時間が必要です。

・サービスプロバイダーは、クラウド エッジ環境で IoT サービスを迅速に設計および展開するために、非常に複雑でコストに直面しています。ビジネス需要は時間とともに急速に変化しており、サービスプロバイダーは、共有クラウドエッジインフラストラクチャ上で新しいサービスを速いスピードで試してリリースする必要があります。

・地理的に分散した ICT インフラストラクチャ上で IoT サービスを迅速に設計および展開するためのプログラミングモデルの欠如。

・さまざまなアプリケーション間でデータと派生した結果を共有および再利用するための相互運用性とオープン性の欠如。

FogFlow を使用すると、サービスプロバイダーは、最小限の開発労力で IoT サービスを簡単にプログラムでき、また、市場投入までの時間を短縮して新しい IoT サービスをリリースできます。一方、IoT プラットフォームのオペレーターにとって、FogFlow は、低運用コストと最適化された QoS を使用して、クラウドとエッジ上で遅延の影響を受けやすい IoT サービスをシームレスにサーバー化するのに役立ちます。

ハイレベルビュー

FogFlow の独自の機能はコンテキスト駆動型 (context-driven) です。次の3種類のコンテキストに基づいて、クラウドとエッジ上で動的なデータ処理フローを調整できます。

System context: 時間の経過とともに変化する利用可能なリソース
クラウドエッジ環境のリソースは本質的に地理的に分散しており、時間の経過とともに動的に変化します。クラウドコンピューティングと比較して、このようなクラウド エッジ環境のリソースはより異質で動的です。

Data context: 生のセンサーデータと中間データの両方を含む、利用可能なデータの構造と登録されたメタデータ
標準化され統合されたデータモデルと通信インターフェイス、つまり NGSI に基づいて、FogFlow は、データタイプ、属性、登録されたメタデータ、リレーション、および地理的位置など、システム内のセンサーおよびデータ処理タスクによって生成されたすべてのデータのコンテンツを表示できます。

Usage context: すべての異なるタイプのユーザー (開発者、サービス コンシューマー、データ プロバイダー) によって定義され、達成したいことを指定する高レベルのインテント (high level intents)
たとえば、サービスコンシューマーの場合、どのジオスコープ内のどのタイプの QoS でどのタイプの結果が期待されるかを指定できます。データプロバイダーの場合、データを誰がどのように利用するかを指定できます。FogFlow では、実行時にユーザーが定義できる目標を達成するために、オーケストレーションの決定が行われます。これらの新機能を有効にするために、より高度なアルゴリズムに取り組んでいます。

関連情報