(57)【要約】  エッジでのインテリジェンスを可能にするための方法である。特徴は、以下を含む。ゲートウェイデバイスまたは組込まれたシステム上でホストされるソフトウェア層においてセンサデータによってトリガすること。ソフトウェア層はローカルエリアネットワークに接続される。サービス、アプリケーション、およびデータ処理エンジンのリポジトリが、ソフトウェア層によってアクセス可能にされる。ソフトウェア層によって利用可能にされた式言語を通して、センサデータを特定条件の発生の意味論的記述と整合させること。式を連続的に実行することによってパターンイベントを自動的に発見すること。アプリケーションおよび解析式をつなぐために、ソフトウェア層によって管理されるネットワーク全体のゲートウェイデバイスおよび組込まれたシステムを越えて、サービスおよびアプリケーションをインテリジェントに構成すること。リソース利用可能性に基づいてアプリケーションおよび解析のレイアウトを最適化すること。ソフトウェア層の健全性を監視すること。未加工のセンサデータまたは式の結果を、ローカル時系列データベースまたはクラウドストレージに格納すること。サービスおよびコンポーネントは、どのゲートウェイ環境でも円滑な動作を保証するために、コンテナ化され得る。
2018534651.tif 000002
【特許請求の範囲】
【請求項１】
複数のセンサデータストリームと、
複数のセンサと通信ネットワークとの間に物理的に配置されたソフトウェア層とを含み、前記ソフトウェア層は、前記センサから受信された未加工データに基づいて計算を行なうように構成される、エッジコンピューティングプラットフォームシステム。
【請求項２】
前記ソフトウェア層は、データ処理層および通信ネットワークの観点から見てプログラマブルな仮想センサを含む、請求項１に記載のシステム。
【請求項３】
前記ソフトウェアは、ストリーム処理のための複合イベント処理エンジンと式言語とを含むデータ処理層を含む、請求項２に記載のシステム。
【請求項４】
前記データ処理層は、データ強化層と、アプリケーションと対話してアプリケーションを開発するためのソフトウェア開発キットとを含む、請求項３に記載のシステム。
【請求項５】
前記ソフトウェアは、選択されるローカル時系列データベースまたはクラウドストレージのうちの少なくとも１つにおいて、前記式からの前記センサデータストリームまたは導き出されたデータまたはメタデータを発行するためのデータ発行層を含む、請求項３に記載のシステム。
【請求項６】
アプリケーションリポジトリをさらに含み、前記ソフトウェア層は、前記アプリケーションリポジトリからアプリケーションを格納し、検索し、デプロイメントするように構成され、前記アプリケーションは、ハードウェア層上のセンサデータの処理のために構成され、前記アプリケーションリポジトリは、前記ハードウェア層上で利用可能なリソースに基づいてアプリケーションコンテナをカスタマイズするように構成される、請求項１に記載のシステム。
【請求項７】
複数のセンサと、
前記複数のセンサと通信ネットワークとの間に物理的に配置されたハードウェア層とを含み、前記ハードウェア層は、前記複数のセンサから受信された未加工データに基づいて計算を行なうように構成される、センサシステム。
【請求項８】
前記ハードウェア層は、前記通信ネットワークの観点から見て仮想センサとしてプログラマブルであるように構成される、請求項７に記載のシステム。
【請求項９】
前記仮想センサは、前記ハードウェア層におけるプログラミングによって特定されるＡＰＩを含む、請求項８に記載のシステム。
【請求項１０】
アプリケーションリポジトリをさらに含み、前記ハードウェア層は、前記アプリケーションリポジトリからアプリケーションを受信するように構成され、前記アプリケーションは、前記ハードウェア層上のセンサデータの処理のために構成され、前記アプリケーションリポジトリは、前記ハードウェア層上で利用可能なリソースに基づいてアプリケーションコンテナをカスタマイズするように構成される、請求項７に記載のシステム。
【請求項１１】
エッジプラットフォームシステムのデータ取込みエージェントで、第１のネットワーク接続タイプを通してセンサデータストリームを受信するステップと、
前記データ取込みエージェントから、取込まれたストリームデータを前記システムのデータバスへ配信するステップと、
取込まれた前記データをデータ強化コンポーネントを通してリアルタイムで強化し、取込まれた前記データを前記データバス上で利用可能にするステップと、
前記データバスからデータをサブスクライブしている解析エンジンで、取込まれた前記ストリームデータを処理するステップとを含み、前記処理するステップは、取込まれた前記ストリームデータからインテリジェンス情報を生成するために、式言語で提供される解析式を実行するステップを含み、さらに、
前記データバス上で前記インテリジェンス情報を発行するステップを含む、方法。
【請求項１２】
前記データバスからの前記インテリジェンス情報をデータパブリッシャコンポーネントで受信するステップと、
前記データパブリッシャコンポーネントを介して、前記インテリジェンス情報を時系列データベースに格納するステップとを含む、請求項１１に記載の方法。
【請求項１３】
前記データパブリシャコンポーネントを介して、前記インテリジェンス情報の少なくとも一部を、第２のネットワーク接続タイプを通して転送し、クラウドストレージに格納するステップを含む、請求項１２に記載の方法。
【請求項１４】
前記第２のネットワーク接続タイプは、前記第１のネットワーク接続タイプとは異なっており、前記第２のネットワーク接続タイプは、前記第１のネットワーク接続タイプに比べて、センサデータストリームデータへのより低い帯域幅接続を有する、請求項１３に記載の方法。
【請求項１５】
前記第１のネットワーク接続タイプは、ＭＱＴＴ、ＯＰＣ統一アーキテクチャ、またはモドバスプロトコルのうちの少なくとも１つを含む、請求項１３に記載の方法。
【請求項１６】
前記第２のネットワーク接続タイプは、インターネットプロトコルを含む、請求項１５に記載の方法。
【請求項１７】
前記データ取込みエージェントは、プッシュプロトコルを介して第１のネットワーク接続タイプを通してセンサストリームデータにアクセスする、請求項１１に記載の方法。
【請求項１８】
前記データ取込みエージェントは、プルプロトコルを介して第１のネットワーク接続タイプを通してセンサストリームデータにアクセスする、請求項１１に記載の方法。
【請求項１９】
ユーザが前記エッジプラットフォームシステム用のアプリケーションを開発することを可能にするソフトウェア開発キットを提供するステップと、
前記ソフトウェア開発キットを介して、前記データバスから利用可能な前記インテリジェンス情報にアクセスして前記インテリジェンス情報を処理することができる第１のコンテナ化されたアプリケーションを開発するステップとを含む、請求項１１に記載の方法。
【請求項２０】
前記データバスからの前記インテリジェンス情報をデータパブリッシャコンポーネントで受信するステップと、
前記データパブリッシャコンポーネントを介して、前記インテリジェンス情報を時系列データベースに格納するステップと、
前記ソフトウェア開発キットを介して、前記時系列データベースに格納された前記インテリジェンス情報にアクセスして前記インテリジェンス情報を処理することができる第２のコンテナ化されたアプリケーションを開発するステップとを含む、請求項１９に記載の方法。
【請求項２１】
前記エッジプラットフォームシステムのアプリケーションストアを提供するステップを含み、前記第１および第２のコンテナ化されたアプリケーションは、他のユーザが前記アプリケーションストアを通してアクセスするために利用可能である、請求項２０に記載の方法。
【請求項２２】
前記式言語を使用して、第１の物理センサに結合された第１の入力と、前記第１の入力の第１の関数である第１の出力とを有する第１の仮想センサを作成するステップを含み、前記第１の関数は前記式言語で特定され、
前記第１の仮想センサは、前記第１の物理センサからの第１のストリームデータを受信し、前記第１の出力で、前記第１の仮想センサは、前記第１の関数に従って演算される前記第１のストリームデータである第２のストリームデータを出力し、
前記インテリジェンス情報は前記第２のストリームデータを含む、請求項１１に記載の方法。
【請求項２３】
前記式言語を使用して、第１の物理センサに結合された第１の入力と、第２の物理センサに結合された第２の入力と、前記第１および第２の入力の第１の関数である第１の出力とを有する第１の仮想センサを作成するステップを含み、前記第１の関数は前記式言語で特定され、
前記第１の仮想センサは、前記第１の物理センサからの第１のストリームデータと、前記第２の物理センサからの第２のストリームデータとを受信し、前記第１の出力で、前記第１の仮想センサは、前記第１の関数に従って演算される前記第１および第２のストリームデータである第３のストリームデータを出力し、
前記インテリジェンス情報は前記第３のストリームデータを含む、請求項１１に記載の方法。
【請求項２４】
エッジコンピューティングプラットフォームシステムの取込みエージェントで、第１のネットワーク接続タイプを通してセンサストリームデータを受信するステップと、
データ取込みエージェントから、取込まれたストリームデータを前記システムのデータバスへ配信するステップと、
取込まれた前記データをデータ強化コンポーネントを通して強化し、取込まれた前記データを前記データバス上で利用可能にするステップと、
データバスからデータをサブスクライブしている解析エンジンで、取込まれた前記ストリームデータを処理するステップとを含み、前記処理するステップは、取込まれた前記ストリームデータからインテリジェンス情報を生成するために、式言語で提供される解析式を実行するステップを含み、さらに、
第１の物理センサに結合された入力と、前記入力の第１の関数である出力とを有する第１の仮想センサを提供するステップを含み、前記第１の関数は前記式言語で特定され、前記第１の仮想センサは、前記第１の物理センサからの第１のストリームデータを受信し、前記出力で、前記第１の仮想センサは、前記第１の関数に従って演算される前記第１のストリームデータである第２のストリームデータを出力し、前記インテリジェンス情報は前記第２のストリームデータを含み、さらに、
第２の物理センサに結合された第１の入力と、前記第１の仮想センサの前記出力に結合された第２の入力と、前記第１および第２の入力の第２の関数である出力とを有する第２の仮想センサを提供するステップを含み、前記第２の関数は前記式言語で特定され、前記第２の仮想センサは、前記第２の物理センサからの第３のストリームデータと、前記第１の仮想センサからの前記第２のストリームデータとを受信し、第１の出力で、前記第２の仮想センサは、前記第２の関数に従って演算される前記第２および第３のストリームデータである第４のストリームデータを出力し、前記インテリジェンス情報は前記第４のストリームデータを含み、さらに、
前記データバス上で前記第２および第４のストリームデータを含む前記インテリジェンス情報を発行するステップと、
前記データバスからの前記インテリジェンス情報をデータパブリッシャコンポーネントで受信するステップと、
前記データパブリッシャコンポーネントを介して、前記インテリジェンス情報を時系列データベースに格納するステップとを含む、方法。
【請求項２５】
前記第２の仮想センサは、前記データバスからの前記第２のストリームデータを受信する、請求項２４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
説明
関連出願との相互参照
この特許出願は、２０１５年８月２７日に出願された米国特許出願第６２／２１０，９８１号の利益を主張する。当該特許出願は、本願で引用されたすべての他の引例とともに、引用により援用される。２０１６年３月２３日に出願された米国特許出願第６２／３１２，１０６号、第６２／３１２，１８７号、第６２／３１２，２２３号、および第６２／３１２，２５５号が、引用により援用される。
【背景技術】
【０００２】
発明の背景
この発明はコンピューティングの分野に関し、より具体的には、産業用機械によって生成される大量のデータを取扱うためのエッジコンピューティングに関する。
【０００３】
従来の企業ソフトウェアアプリケーションホスティングは、規模の経済性およびシステム効率を活用するために、データセンターまたは「クラウド」インフラストラクチャに依拠してきた。しかしながら、これらのデータセンターは、企業がそのビジネス活動のほとんどを行なう物理的活動地点（たとえば工場、倉庫、小売店など）から任意に離れている場合がある。産業用インターネット・オブ・シングス（industrial Internet of things ：ＩＩｏＴ）とは、非常に高頻度でイベントを追跡するセンサを用いた物理的活動の計測に依拠するデバイスまたは使用事例の集合を指す。
【０００４】
多くのセクターにおける産業用機械が、製造、石油およびガス、採鉱、運輸、電力および水、再生可能エネルギー、ヘルスケア、小売、スマートビルディング、スマートシティ、および接続された車両を含むこのインターネット・オブ・シングス（ＩｏＴ）の下に入る。クラウドコンピューティングの成功にもかかわらず、多くの欠点が存在する。そのデータのすべてをクラウドストレージへ送信することは実用的ではない。なぜなら、接続性が常にそこにあるとは限らず、帯域幅が十分ではなく、または、帯域幅が存在していたとしても、それは法外なコストがかかるためである。接続性、帯域幅、およびコストが問題ではなかったとしても、リアルタイムの意思決定および予測保守はなく、それは機械への著しい損傷をもたらし得る。
【０００５】
したがって、改良されたエッジ解析を含む改良されたコンピューティングシステム、アーキテクチャ、および手法が、産業用機械によって生成される大量のデータを取扱うために必要とされる。
【発明の概要】
【課題を解決するための手段】
【０００６】
発明の簡単な概要
エッジでのインテリジェンスを可能にするための方法である。特徴は、以下を含む。ゲートウェイデバイスまたは組込まれたシステム上でホストされるソフトウェア層においてセンサデータによってトリガすること。ソフトウェア層はローカルエリアネットワークに接続される。サービス、アプリケーション、およびデータ処理エンジンのリポジトリが、ソフトウェア層によってアクセス可能にされる。ソフトウェア層によって利用可能にされた式言語を通して、センサデータを特定条件の発生の意味論的記述と整合させること。式を連続的に実行することによってパターンイベントを自動的に発見すること。アプリケーションおよび解析式をつなぐために、ソフトウェア層によって管理されるネットワーク全体のゲートウェイデバイスおよび組込まれたシステムを越えて、サービスおよびアプリケーションをインテリジェントに構成すること。リソース利用可能性に基づいてアプリケーションおよび解析のレイアウトを最適化すること。ソフトウェア層の健全性を監視すること。未加工のセンサデータまたは式の結果を、ローカル時系列データベースまたはクラウドストレージに格納すること。サービスおよびコンポーネントは、どのゲートウェイ環境でも円滑な動作を保証するために、コンテナ化され得る。
【０００７】
エッジインテリジェンスは、インターネット・オブ・シングス（ＩｏＴ）データのソースでイネーブルにされる。システムは、リアルタイムのエッジ解析およびアプリケーションのために、ＩｏＴデバイスセンサデータへの強化（enrich）されたアクセス（ストリームモードまたはバッチモード、または双方）を提供する。システムは、低メモリフットプリント機械で動作する高性能解析エンジンを通して解析関数および解析式を実行するための高効率で表現的なコンピュータ言語を含む。システムは、さらなる機械学習のために収集データをクラウドへ発行することを可能にする。システムは、エッジアプリを開発するためのソフトウェア開発キットを含む。クラウドベースの管理コンソールが、エッジデプロイメント、構成、アプリケーション、および解析式の管理を可能にする。
【０００８】
エッジインフラストラクチャおよびプラットフォームの特定の一実現化例は、フォグホーン・システムズ・インコーポレイテッド（FogHorn Systems, Inc）（フォグホーン）による。フォグホーンのウェブサイト、www.foghorn-systems.com、出版物（白書、ユーザガイド、指導書、ビデオなどを含む）、ならびに、フォグホーンの技術および製品についての他の出版物が、引用により援用される。
【０００９】
フォグホーンは、産業用および商業用インターネット・オブ・シングス（ＩｏＴ）データのためのエッジインテリジェンスを可能にするためのプラットフォームを提供する。何百億もの産業用および商業用ＩｏＴデバイスによって生成されるデータの量は、インターネット全体を圧倒するのに十分莫大になるであろう。フォグホーンのプラットフォームはＩｏＴデータを、それがまさしく生じるところ、すなわちネットワークのエッジで処理し、解析し、それに応答する。フォグホーンの「インテリジェントエッジ」ソフトウェアプラットホームは、前例がないレベルの自動化、業務効率、コスト削減などを可能にする。
【００１０】
産業用インターネット・オブ・シングス（ＩＩｏＴ）は、センサ、機械類、およびコンピュータといった、相互接続された産業用および商業用デバイスからなる。ＩＩｏＴの目標は、分散された企業全体にわたって、より優れたデバイス制御、データ管理、機械自動化、および業務効率を可能にすることである。会社は、システム全体の管理および最適化のためにクラウドコンピューティングを活用しながら、リアルタイムの解析および自動化応答を使用してグリーンフィールドＩＩｏＴ機会を捕らえるためにエッジでフォグコンピューティングを適用することができる。フォグホーンのエッジコンピューティングプラットフォームはまた、追加のコンピューティングリソースを追加することが実行できない場合に、既存のプログラマブルロジックコントローラ（programmable logic controller：ＰＬＣ）（たとえば、ブラウンフィールド機会）において動作するように設計される。ブラウンフィールドとは、確立されたシステムを勘案しながら情報技術（information technology：ＩＴ）問題領域を解決するための新しいシステムの実現を指す。新しいソフトウェアアーキテクチャは、既存のおよび動作中のソフトウェアを考慮する。
【００１１】
エッジインテリジェンスプラットフォームとは、ＩＩｏＴデバイスが存在するエッジのより近くまでデータ処理および解析を拡張する、フォグコンピューティング概念に基づいたソフトウェアベースのソリューションである。遠くの集中型クラウドへすべてのデータを送信する代わりに、エッジデバイスとの近接性を維持することは、待ち時間を最小化し、最大性能、より速い応答時間、ならびにより効果的な保守および業務戦略を可能にする。それはまた、全体的な帯域幅要件と、広範に分散されたネットワークを管理するコストとを著しく減少させる。
【００１２】
エッジでのＩＩｏＴ操作に焦点を合わせることは、全体的な帯域幅要件を減少させ、時間依存の条件への即時の自動化応答を可能にする。産業界は何十億もの新しいＩＩｏＴデバイスを追加しており、これらのデバイスは集団で、毎日多くのペタバイトのデータを生成する。このデータのすべてをクラウドに送信することは、法外なコストがかかるだけでなく、より大きいセキュリティリスクも生み出す。エッジで動作することは、はるかにより速い応答時間、リスクの減少、および全体的コストの低下を保証する。
【００１３】
一実現化例では、エッジコンピューティングプラットフォームシステムは、複数のセンサデータストリームと、センサと通信ネットワークとの間に物理的に配置されたソフトウェア層とを含み、ソフトウェア層は、センサから受信された未加工データに基づいて計算を行なうように構成される。ソフトウェア層は、データ処理層および通信ネットワークの観点から見てプログラマブルな仮想センサを含み得る。
【００１４】
ソフトウェアは、ストリーム処理のための複合イベント処理エンジンと式言語とを含むデータ処理層を含み得る。データ処理層は、データ強化層と、アプリケーションと対話してアプリケーションを開発するためのソフトウェア開発キットとを含み得る。ソフトウェアは、選択されるローカル時系列データベースまたはクラウドストレージのうちの少なくとも１つにおいて、式からのセンサデータストリームまたは導き出されたデータまたはメタデータを発行するためのデータ発行層を含み得る。
【００１５】
システムは、アプリケーションリポジトリを含み得る。ソフトウェア層は、アプリケーションリポジトリからアプリケーションを格納し、検索し、デプロイメントするように構成される。アプリケーションは、ハードウェア層上のセンサデータの処理のために構成される。アプリケーションリポジトリは、ハードウェア層上で利用可能なリソースに基づいてアプリケーションコンテナをカスタマイズするように構成される。
【００１６】
一実現化例では、センサシステムは、複数のセンサと、当該センサと通信ネットワークとの間に物理的に配置されたハードウェア層とを含み、ハードウェア層は、当該センサから受信された未加工データに基づいて計算を行なうように構成される。ハードウェア層は、通信ネットワークの観点から見て仮想センサとしてプログラマブルであるように構成され得る。仮想センサは、ハードウェア層におけるプログラミングによって特定されるアプリケーションプログラムインターフェイス（application program interface：ＡＰＩ）を含み得る。
【００１７】
システムは、アプリケーションリポジトリを含み得る。ハードウェア層は、アプリケーションリポジトリからアプリケーションを受信するように構成される。アプリケーションは、ハードウェア層上のセンサデータの処理のために構成される。アプリケーションリポジトリは、ハードウェア層上で利用可能なリソースに基づいてアプリケーションコンテナをカスタマイズするように構成される。
【００１８】
一実現化例では、方法は、エッジプラットフォームシステムのデータ取込みエージェントで、第１のネットワーク接続タイプを通してセンサデータストリームデータを受信するステップと、データ取込みエージェントから、取込まれたストリームデータを当該システムのデータバスへ配信するステップと、データバスに接続された（たとえば、データバスからデータをサブスクライブしている）解析エンジンで、取込まれたストリームデータを処理するステップとを含み、処理するステップは、取込まれたストリームデータからインテリジェンス情報を生成するために、式言語で提供される解析式を実行するステップを含み、方法はさらに、データバス上でインテリジェンス情報を発行するステップを含む。方法は、取込まれたデータをデータ強化コンポーネントを通してリアルタイムで強化し、取込まれたデータをデータバス上で利用可能にするステップを含み得る。強化は、データ復号、メタデータ装飾、データ正規化などを含み得るが、それらに限定されない。
【００１９】
方法は、データバスからのインテリジェンス情報をデータパブリッシャコンポーネントで受信するステップと、データパブリッシャコンポーネントを介して、インテリジェンス情報を時系列データベースに格納するステップとを含み得る。また、方法は、データパブリシャコンポーネントを介して、インテリジェンス情報の少なくとも一部を、第２のネットワーク接続タイプを通して転送し、クラウドストレージに格納するステップを含み得る。第２のネットワーク接続タイプは、第１のネットワーク接続タイプとは異なっており、第２のネットワーク接続タイプは、第１のネットワーク接続タイプに比べて、センサデータストリームデータへのより低い帯域幅接続を有する。
【００２０】
たとえば、第１のネットワーク接続タイプは、ＭＱＴＴ、ＯＰＣ統一アーキテクチャ、またはモドバスプロトコルなどの産業用ＩＯＴプロトコル、およびカスタムプロトコルを使用できる。第２のネットワーク接続タイプは、ＴＣＰ／ＩＰ、ハイパーテキスト転送プロトコル（hypertext transfer protocol：ＨＴＴＰ）、ウェブソケット（WebSocket）、ＷｅｂＨＤＦＳ、またはアパッチ・カフカ（Apache Kafka）、またはこれらの任意の組合せなどのインターネットプロトコルを使用できる。第２のネットワーク接続タイプは、第１のネットワーク接続タイプについて上述されたプロトコルも使用できる。
【００２１】
データ取込みエージェントは、プッシュプロトコルを介して第１のネットワーク接続タイプを通してセンサデータストリームデータにアクセスできる。データ取込みエージェントは、プルプロトコルを介して第１のネットワーク接続タイプを通してセンサデータストリームデータにアクセスできる。
【００２２】
方法は、ユーザがエッジプラットフォームシステム用のアプリケーションを開発することを可能にするソフトウェア開発キットを提供するステップと、ソフトウェア開発キットを介して、データバス上で利用可能なインテリジェンス情報にアクセスしてインテリジェンス情報を処理することができる第１のコンテナ化されたアプリケーションを開発するステップとを含み得る。方法は、データバスからのインテリジェンス情報をデータパブリッシャコンポーネントで受信するステップと、データパブリッシャコンポーネントを介して、インテリジェンス情報を時系列データベースに格納するステップと、ソフトウェア開発キットを介して、時系列データベースに格納されたインテリジェンス情報にアクセスしてインテリジェンス情報を処理することができる第２のコンテナ化されたアプリケーションを開発するステップとを含み得る。
【００２３】
方法は、エッジプラットフォームシステムのアプリケーションストアを提供するステップを含み得る。第１および第２のコンテナ化されたアプリケーションは、他のユーザがアプリケーションストアを通してアクセスするために利用可能である。
【００２４】
第１のコンテナ化されたアプリケーションはエッジプラットフォームシステム内で実行可能であり、そこでは、第１のコンテナ化されたアプリケーションはデータバスへの直接接続を有する。第１のコンテナ化されたアプリケーション（変更なし）はクラウド環境でも実行可能であり、そこでは、第１のコンテナ化されたアプリケーションは、データバスへの直接接続を有していないが、第２のネットワーク接続タイプを介してインテリジェンス情報にアクセスする。
【００２５】
方法は、式言語を使用して、第１の物理センサに接続された第１の入力と、第１の入力の第１の関数である第１の出力とを有する第１の仮想センサを作成するステップを含み得る。第１の関数は式言語で特定される。第１の仮想センサは、第１の物理センサからの第１のストリームデータを受信する。第１の出力で、第１の仮想センサは、第１の関数に従って演算される第１のストリームデータである第２のストリームデータを出力する。インテリジェンス情報は第２のストリームデータを含む。
【００２６】
方法は、式言語を使用して、第１の物理センサに接続された第１の入力と、第２の物理センサに接続された第２の入力と、第１および第２の入力の第１の関数である第１の出力とを有する第１の仮想センサを作成するステップを含み得る。第１の関数は式言語で特定される。第１の仮想センサは、第１の物理センサからの第１のストリームデータと、第２の物理センサからの第２のストリームデータとを受信する。第１の出力で、第１の仮想センサは、第１の関数に従って演算される第１および第２のストリームデータである第３のストリームデータを出力する。インテリジェンス情報は第３のストリームデータを含む。
【００２７】
一実現化例では、方法は、エッジプラットフォームシステムのデータ取込みエージェントで、第１のネットワーク接続タイプを通してセンサデータストリームデータを受信するステップと、データ取込みエージェントから、取込まれたストリームデータを当該システムのデータバスへ配信するステップと、データバスに接続された解析エンジンで、取込まれたストリームデータを処理するステップとを含み、処理するステップは、取込まれたストリームデータからインテリジェンス情報を生成するために、式言語で提供される解析式を実行するステップを含み、方法はさらに、第１の物理センサに接続された入力と、入力の第１の関数である出力とを有する第１の仮想センサを提供するステップを含み、第１の関数は式言語で特定され、第１の仮想センサは、第１の物理センサからの第１のストリームデータを受信し、出力で、第１の仮想センサは、第１の関数に従って演算される第１のストリームデータである第２のストリームデータを出力し、インテリジェンス情報は第２のストリームデータを含む。
【００２８】
方法はさらに、第２の物理センサに接続された第１の入力と、第１の仮想センサの出力に接続された第２の入力と、第１および第２の入力の第２の関数である出力とを有する第２の仮想センサを提供するステップを含み、第２の関数は式言語で特定され、第２の仮想センサは、第２の物理センサからの第３のストリームデータと、第１の仮想センサからの第２のストリームデータとを受信し、第１の出力で、第２の仮想センサは、第２の関数に従って演算される第２および第３のストリームデータである第４のストリームデータを出力し、インテリジェンス情報は第４のストリームデータを含み、方法はさらに、データバス上でインテリジェンス情報を発行するステップと、データバスからのインテリジェンス情報をデータパブリッシャコンポーネントで受信するステップと、データパブリッシャコンポーネントを介して、インテリジェンス情報を時系列データベースに格納するステップとを含む。
【００２９】
一実現化例では、方法は、エッジプラットフォームの式言語で第１の仮想センサを特定するステップを含み、第１の仮想センサは、入力の第１の関数である出力を含み、第１の入力は第１の物理センサの第１のストリームに接続され、第１の仮想センサは第２のストリームを出力し、方法はさらに、式言語での第２の仮想センサの特定を可能にするステップを含み、第２の仮想センサは、第１および第２の入力の第２の関数である出力を含み、第１の入力は第２の物理センサの第２のストリームに接続され、第２の入力は第１の仮想センサからの第２のストリームに接続される。
【００３０】
本発明の他の目的、特徴、および利点は、以下の詳細な説明および添付図面を考慮すれば明らかになるであろう。図面では、図全体を通し、同じ参照記号は同じ特徴を表わす。
【図面の簡単な説明】
【００３１】
【図１】クライアント−サーバシステムおよびネットワークのブロック図である。
【図２】クライアントまたはサーバのより詳細な図である。
【図３】コンピュータシステムのシステムブロック図である。
【図４】センサストリームとクラウドとの間にあるエッジコンピューティングプラットフォームのブロック図である。
【図５】エッジ解析を含むエッジコンピューティングプラットフォームのより詳細なブロック図である。
【図６】エッジインフラストラクチャとクラウドインフラストラクチャとの間の動作フローを示す図である。
【図７】物理センサを使用してセンサ式言語エンジンを介していくつかの仮想センサを作成する一例を示す図である。
【発明を実施するための形態】
【００３２】
発明の詳細な説明
図１は、本発明の一実施形態を取入れる分散型コンピュータネットワーク１００の簡略ブロック図である。コンピュータネットワーク１００は、複数の通信リンク１２８を介して通信ネットワーク１２４に結合された、複数のクライアントシステム１１３、１１６、および１１９と、サーバシステム１２２とを含む。通信ネットワーク１２４は、分散型ネットワーク１００のさまざまなコンポーネントが互いに通信して情報を交換することを可能にするためのメカニズムを提供する。
【００３３】
通信ネットワーク１２４はそれ自体、多くの相互接続されたコンピュータシステムおよび通信リンクで構成されてもよい。通信リンク１２８は、配線リンク、光リンク、衛星または他の無線通信リンク、波動伝搬リンク、もしくは、情報の通信のための他のメカニズムであってもよい。通信リンク１２８は、ＤＳＬ、ケーブル、イーサネット（登録商標）または他の配線リンク、受動または能動光リンク、３Ｇ、３．５Ｇ、４Ｇおよび他のモビリティ、衛星または他の無線通信リンク、波動伝搬リンク、もしくは、情報の通信のための任意の他のメカニズムであってもよい。
【００３４】
図１に示すさまざまなシステム間の通信を容易にするために、さまざまな通信プロトコルが使用されてもよい。これらの通信プロトコルは、ＶＬＡＮ、ＭＰＬＳ、ＴＣＰ／ＩＰ、トンネリング、ＨＴＴＰプロトコル、無線アプリケーションプロトコル（wireless application protocol：ＷＡＰ）、ベンダー固有プロトコル、カスタマイズされたプロトコルなどを含んでいてもよい。一実施形態では、通信ネットワーク１２４はインターネットであり、他の実施形態では、通信ネットワーク１２４は、ローカルエリアネットワーク（local area network：ＬＡＮ）、ワイドエリアネットワーク（wide area network：ＷＡＮ）、無線ネットワーク、イントラネット、私的ネットワーク、公的ネットワーク、スイッチドネットワーク、およびこれらの組合せなどを含む、任意の好適な通信ネットワークであってもよい。
【００３５】
図１の分散型コンピュータネットワーク１００は、本発明を取入れる実施形態の単なる例示であり、請求項に記載されるようなこの発明の範囲を限定しない。当業者であれば、他の変形、変更、および代替物を認識するであろう。たとえば、２つ以上のサーバシステム１２２が通信ネットワーク１２４に接続されてもよい。別の例として、複数のクライアントシステム１１３、１１６、および１１９は、アクセスプロバイダ（図示せず）を介して、または何らかの他のサーバシステムを介して、通信ネットワーク１２４に結合されてもよい。
【００３６】
クライアントシステム１１３、１１６、および１１９は典型的には、情報を提供するサーバシステムから情報を要求する。この理由により、サーバシステムは典型的には、クライアントシステムよりも多いコンピューティングおよびストレージ容量を有する。しかしながら、特定のコンピュータシステムは、そのコンピュータシステムが情報を要求しているか、または提供しているかに依存して、クライアントまたはサーバとして、双方として機能してもよい。加えて、この発明の局面はクライアント−サーバ環境を使用して説明されてきたが、この発明はスタンドアロンコンピュータシステムにおいても具現化され得ることが明らかであるはずである。
【００３７】
サーバ１２２は、クライアントシステム１１３、１１６、および１１９から情報要求を受信し、要求を満たすために必要とされる処理を行ない、要求に対応する結果を要求元クライアントシステムへ送り返す役割を担う。要求を満たすために必要とされる処理は、サーバシステム１２２によって行なわれてもよく、またはそれに代えて、通信ネットワーク１２４に接続された他のサーバに委任されてもよい。
【００３８】
クライアントシステム１１３、１１６、および１１９は、ユーザが、サーバシステム１２２によって格納された情報にアクセスし、情報をクエリすることを可能にする。特定の一実施形態では、クライアントシステムは、デスクトップアプリケーション、もしくはモバイルスマートフォンまたはタブレットアプリケーションなどのスタンドアロンアプリケーションとして動作可能である。別の実施形態では、クライアントシステム上で実行される「ウェブブラウザ」アプリケーションが、ユーザが、サーバシステム１２２によって格納された情報を選択し、情報にアクセスし、情報を検索し、またはクエリすることを可能にする。ウェブブラウザの例は、マイクロソフト社（Microsoft Corporation）によって提供されるインターネットエクスプローラ（Internet Explorer）ブラウザプログラム、モジラ（Mozilla）によって提供されるファイアーフォックス（Firefox）（登録商標）ブラウザ、グーグル（Google）によって提供されるクローム（Chrome）ブラウザ、アップル（Apple）によって提供されるサファリ（Safari）ブラウザなどを含む。
【００３９】
クライアント−サーバ環境では、いくつかのリソース（たとえばファイル、音楽、ビデオ、またはデータ）はクライアントで格納され、一方、他のリソースは、サーバなどネットワークにおけるどこか他のところに格納されるかまたはそこから配信され、ネットワーク（たとえばインターネット）を介してアクセス可能である。したがって、ユーザのデータは、ネットワークまたは「クラウド」に格納され得る。たとえば、ユーザは、クラウド（たとえばサーバ）上にリモートに格納されている、クライアントデバイス上の文書に対して作業することができる。クライアントデバイス上のデータは、クラウドと同期され得る。
【００４０】
図２は、本発明の例示的なクライアントまたはサーバシステムを示す。一実施形態では、ユーザは、図２に示すようなコンピュータワークステーションシステムを通して、システムとインターフェイス接続する。図２は、モニタ２０３と、スクリーン２０５と、筐体２０７（システムユニット、キャビネット、またはケースとも呼ばれてもよい）と、キーボードまたは他の人間入力デバイス２０９と、マウスまたは他のポインティングデバイス２１１とを含む、コンピュータシステム２０１を示す。マウス２１１は、マウスボタン２１３などの１つ以上のボタンを有していてもよい。
【００４１】
本発明は、特定のフォームファクタ（たとえば、デスクトップコンピュータのフォームファクタ）のどのコンピューティングデバイスにも限定されず、さまざまなフォームファクタのあらゆるタイプのコンピューティングデバイスを含み得る、ということが理解されるべきである。ユーザは、スマートフォン、パーソナルコンピュータ、ラップトップ、電子タブレットデバイス、全地球測位システム（global positioning system：ＧＰＳ）受信機、ポータブルメディアプレイヤー、携帯情報端末（personal digital assistant：ＰＤＡ）、他のネットワークアクセスデバイス、および、データを送受信できる他の処理デバイスを含む、任意のコンピューティングデバイスとインターフェイス接続することができる。
【００４２】
たとえば、特定の一実現化例では、クライアントデバイスは、アップルｉＰｈｏｎｅ（登録商標）（たとえば、アップルｉＰｈｏｎｅ６）、アップルｉＰａｄ（登録商標）（たとえば、アップルｉＰａｄ、またはアップルｉＰａｄ  ｍｉｎｉ）、アップルｉＰｏｄ（登録商標）（たとえば、アップルｉＰｏｄ  Ｔｏｕｃｈ）、サムスン（Samsung）ギャラクシー（Galaxy）製品（たとえば、ギャラクシーＳシリーズ製品、またはギャラクシーノート（Galaxy Note）シリーズ製品）、グーグル（登録商標）ネクサス（Nexus）デバイス（たとえば、グーグルネクサス６、グーグルネクサス７、またはグーグルネクサス９）、およびマイクロソフトデバイス（たとえば、マイクロソフトサーフェス（Surface）タブレット）といった、スマートフォンまたはタブレットデバイスであり得る。典型的には、スマートフォンは、電話部分（および関連付けられた無線機）とコンピュータ部分とを含み、それらはタッチスクリーンディスプレイを介してアクセス可能である。
【００４３】
電話部分のデータ（たとえば、連絡先および電話番号）と、コンピュータ部分のデータ（たとえば、ブラウザを含むアプリケーションプログラム、画像、ゲーム、ビデオ、および音楽）とを格納するための不揮発性メモリがある。スマートフォンは典型的には、写真およびビデオを撮るためのカメラ（たとえば、前向きのカメラまたは後部カメラ、もしくは両方）を含む。たとえば、スマートフォンまたはタブレットは、１つ以上の他のデバイスにストリーミングされ得るライブビデオを撮るために使用され得る。
【００４４】
筐体２０７は、プロセッサ、メモリ、大容量ストレージデバイス２１７などといった、よく知られたコンピュータコンポーネント（それらのうちのいくつかは図示されず）を収容する。大容量ストレージデバイス２１７は、大容量ディスクドライブ、フロッピー（登録商標）ディスク、磁気ディスク、光ディスク、光磁気ディスク、固定ディスク、ハードディスク、ＣＤ−ＲＯＭ、書込可能ＣＤ、ＤＶＤ、書込可能ＤＶＤ（たとえば、ＤＶＤ−Ｒ、ＤＶＤ＋Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、ＨＤ−ＤＶＤ、またはブルーレイ（登録商標）ディスク）、フラッシュおよび他の不揮発性ソリッドステートストレージ（たとえば、ＵＳＢフラッシュドライブまたはソリッドステートドライブ（solid state drive：ＳＳＤ））、バッテリによってバックアップされた揮発性メモリ、テープストレージ、リーダ、および他の同様の媒体、ならびにこれらの組合せを含んでいてもよい。
【００４５】
この発明の、コンピュータにより実現される、またはコンピュータにより実行可能なバージョン、もしくはコンピュータプログラム製品が、コンピュータ読取可能媒体を使用して具現化され、コンピュータ読取可能媒体上に格納され、またはコンピュータ読取可能媒体に関連付けられてもよい。コンピュータ読取可能媒体は、命令を実行のために１つ以上のプロセッサに提供することに関与する任意の媒体を含んでいてもよい。そのような媒体は、不揮発性媒体、揮発性媒体、および伝送媒体を含むものの、それらに限定されない多くの形を取ってもよい。不揮発性媒体は、たとえば、フラッシュメモリ、もしくは、光学ディスクまたは磁気ディスクを含む。揮発性媒体は、キャッシュメモリまたはＲＡＭなどのスタティックメモリまたはダイナミックメモリを含む。伝送媒体は、同軸ケーブル、銅線、光ファイバー線、およびバスに配置されたワイヤを含む。伝送媒体はまた、無線波および赤外線データ通信中に生成されるような電磁波、無線周波、音響波、または光波の形を取り得る。
【００４６】
たとえば、本発明のソフトウェアの、機械により実行可能なバイナリバージョンが、ＲＡＭまたはキャッシュメモリ内に、もしくは大容量ストレージデバイス２１７上に格納されてもよく、または存在してもよい。本発明のソフトウェアのソースコードも、大容量ストレージデバイス２１７（たとえば、ハードディスク、磁気ディスク、テープ、またはＣＤ−ＲＯＭ）上に格納されてもよく、または存在してもよい。さらに別の例として、この発明のコードは、ワイヤ、無線波を介して、または、インターネットなどのネットワークを通して伝送されてもよい。
【００４７】
図３は、本発明のソフトウェアを実行するために使用されるコンピュータシステム２０１のシステムブロック図を示す。図２と同様に、コンピュータシステム２０１は、モニタ２０３と、キーボード２０９と、大容量ストレージデバイス２１７とを含む。コンピュータシステム５０１はさらに、中央プロセッサ３０２、システムメモリ３０４、入力／出力（Ｉ／Ｏ）コントローラ３０６、ディスプレイアダプタ３０８、シリアルまたはユニバーサルシリアルバス（universal serial bus：ＵＳＢ）ポート３１２、ネットワークインターフェイス３１８、およびスピーカ３２０といったサブシステムを含む。この発明はまた、追加の、またはより少ないサブシステムを有するコンピュータシステムで使用されてもよい。たとえば、あるコンピュータシステムは２つ以上のプロセッサ３０２を含んでいてもよく（すなわち、マルチプロセッサシステム）、または、あるシステムはキャッシュメモリを含んでいてもよい。
【００４８】
３２２などの矢印は、コンピュータシステム２０１のシステムバスアーキテクチャを表わす。しかしながら、これらの矢印は、サブシステム同士をリンクするよう機能する任意の相互接続スキームの例示である。たとえば、スピーカ３２０は、ポートを通して他のサブシステムに接続されてもよく、または、中央プロセッサ３０２への内部直接接続を有していてもよい。プロセッサは、複数のプロセッサまたはマルチコアプロセッサを含んでいてもよく、それは、情報の並列処理を許可してもよい。図２に示すコンピュータシステム２０１は、本発明での使用にとって好適なコンピュータシステムの単なる一例である。本発明での使用にとって好適なサブシステムの他の構成は、当業者には容易に明らかになるであろう。
【００４９】
コンピュータソフトウェア製品は、Ｃ、Ｃ＋＋、Ｃ＃、パスカル（Pascal）、フォートラン（Fortran）、パール（Perl）、（マスワークス（MathWorks）、www.mathworks.comからの）マトラボ（Matlab）、ＳＡＳ、ＳＰＳＳ、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＡＪＡＸ、Ｊａｖａ（登録商標）、パイソン（Python）、アーラン（Erlang）、およびルビー・オン・レイルズ（Ruby on Rails）といった、さまざまな好適なプログラミング言語のうちのいずれで書かれてもよい。コンピュータソフトウェア製品は、データ入力モジュールおよびデータ表示モジュールを有する独立したアプリケーションであってもよい。これに代えて、コンピュータソフトウェア製品は、分散オブジェクトとしてインスタンス化され得るクラスであってもよい。コンピュータソフトウェア製品はまた、（オラクル社（Oracle Corporation）からの）Ｊａｖａ  Ｂｅａｎｓ、またはエンタープライズＪａｖａ  Ｂｅａｎｓ（オラクル社からのＥＪＢ）といったコンポーネントソフトウェアであってもよい。
【００５０】
システム用のオペレーティングシステムは、マイクロソフトウィンドウズ（登録商標）ファミリーのシステム（たとえば、ウィンドウズ（登録商標）９５、９８、Ｍｅ、ウィンドウズＮＴ、ウィンドウズ２０００、ウィンドウズＸＰ、ウィンドウズＸＰ  ｘ６４エディション、ウィンドウズビスタ（Vista）、ウィンドウズ７、ウィンドウズ８、ウィンドウズ１０、ウィンドウズＣＥ、ウィンドウズモバイル、ウィンドウズＲＴ）、シンビアン（Symbian）ＯＳ、タイゼン（Tizen）、リナックス（登録商標）、ＨＰ−ＵＸ、ＵＮＩＸ（登録商標）、サン（Sun）ＯＳ、ソラリス（Solaris）、Ｍａｃ  ＯＳ  Ｘ、アップルｉＯＳ、アンドロイド（登録商標）、アルファ（Alpha）ＯＳ、ＡＩＸ、ＩＲＩＸ３２、またはＩＲＩＸ６４のうちの１つであってもよい。他のオペレーティングシステムが使用されてもよい。マイクロソフトウィンドウズは、マイクロソフト社の商標である。
【００５１】
また、コンピュータはネットワークに接続されてもよく、このネットワークを使用して他のコンピュータにインターフェイス接続されてもよい。ネットワークは、とりわけ、イントラネット、またはインターネットであってもよい。ネットワークは、有線ネットワーク（たとえば、銅を使用）、電話網、パケットネットワーク、光学ネットワーク（たとえば、光ファイバーを使用）、または無線ネットワーク、もしくはこれらの任意の組合せであってもよい。たとえば、データおよび他の情報は、Ｗｉ−Ｆｉ（数例を挙げると、ＩＥＥＥ規格８０２．１１、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｅ、８０２．１１ｇ、８０２．１１ｉ、８０２．１１ｎ、８０２．１１ａｃ、および８０２．１１ａｄ）、近距離無線通信（near field communication：ＮＦＣ）、無線自動識別（radio-frequency identification：ＲＦＩＤ）、モバイルまたはセルラー無線（たとえば、２Ｇ、３Ｇ、４Ｇ、３ＧＰＰ  ＬＴＥ、ＷｉＭＡＸ、ＬＴＥ、ＬＴＥアドバンスト、フラッシュＯＦＤＭ、ＨＩＰＥＲＭＡＮ、アイバースト（iBurst）、ＥＤＧＥエボリューション、ＵＭＴＳ、ＵＭＴＳ−ＴＤＤ、１ｘＲＤＤ、およびＥＶ−ＤＯ）といったプロトコルを使用した無線ネットワークを使用して、コンピュータとこの発明のシステムのコンポーネント（またはステップ）との間で渡されてもよい。たとえば、あるコンピュータからの信号が、コンポーネントまたは他のコンピュータへ、少なくとも部分的に無線で転送されてもよい。
【００５２】
ウェブブラウザがコンピュータワークステーションシステム上で実行される一実施形態では、ユーザは、インターネットなどのネットワークを通して、ワールド・ワイド・ウェブ（World Wide Web：ＷＷＷ）上のシステムにアクセスする。ウェブブラウザは、ＨＴＭＬ、ＸＭＬ、テキスト、ＰＤＦ、およびポストスクリプトを含むさまざまなフォーマットのウェブページまたは他のコンテンツをダウンロードするために使用されており、システムの他の部分へ情報をアップロードするために使用されてもよい。ウェブブラウザは、ウェブ上のリソースを識別するためにユニフォーム・リソース・アイデンティファイヤ（uniform resource identifier：ＵＲＬ）を使用してもよく、ウェブ上のファイルを転送する際にハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用してもよい。
【００５３】
他の実現化例では、ユーザは、ネイティブアプリケーションおよび非ネイティブアプリケーションのいずれかまたは双方を通して、システムにアクセスする。ネイティブアプリケーションは、特定のコンピューティングシステム上にローカルにインストールされ、そのコンピューティングシステムのオペレーティングシステムまたは１つ以上のハードウェアデバイス、もしくはこれらの組合せに固有である。これらのアプリケーション（「アプリ」と呼ばれる場合もある）は、直接インターネットアップグレードパッチングメカニズムを介して、またはアプリケーションストア（たとえば、アップルｉＴｕｎｅｓおよびＡｐｐ  ｓｔｏｒｅ、グーグルプレイ（Google Play）ストア、ウィンドウズフォン（Windows Phone）ストア、およびブラックベリー（登録商標）Ａｐｐ  Ｗｏｒｌｄストア）を通して、（たとえば周期的に）アップデートされ得る。
【００５４】
システムは、プラットフォームから独立した非ネイティブアプリケーションで動作可能である。たとえば、クライアントは、１つ以上のサーバから、当該サーバとのネットワーク接続を使用して、ウェブアプリケーションを通してシステムにアクセスし、当該ウェブアプリケーションをウェブブラウザにロードすることができる。たとえば、ウェブアプリケーションは、ウェブブラウザによって、アプリケーションサーバからインターネットを通してダウンロードされ得る。非ネイティブアプリケーションも、ディスクなどの他のソースから得られ得る。
【００５５】
図４は、典型的にはセンサ４０９とクラウド４１２との間にあるエッジゲートウェイまたは同等物上で動作するエッジコンピューティングプラットフォーム４０６のブロック図を示す。エッジコンピューティングプラットフォームは、産業用機械および他の産業用インターネット・オブ・シングスを管理し最適化するために重要であるエッジインテリジェンスを導き出すことを可能にする。エッジゲートウェイのコンポーネントは、取込み４２１と、強化４２５と、複合イベント処理（complex event processing：ＣＥＰ）エンジン４２９と、適用４３２と、式言語を通した解析４３５と、移送４３８とを含む。クラウドは、エッジプロビジョニングおよびオーケストレーション４４３と、クラウドおよびエッジ解析ならびにアプリポータビリティ４４６とを含み得る。
【００５６】
上述のように、エッジコンピューティングプラットフォームの特定の一実現化例は、フォグホーンからのものである。フォグホーンは、「エッジインテリジェンス」という急速に台頭してきているドメインにおけるリーダーである。制御システムおよび物理センサのより近くで高性能処理、解析、および異種アプリケーションをホストすることにより、フォグホーンの画期的なソリューションは、閉ループデバイス最適化のためのエッジインテリジェンスを可能にする。これは、製造、石油およびガス、電力および水、運輸、採鉱、再生可能エネルギー、スマートシティなどにおける法人顧客のために、ビッグデータおよび現場でのリアルタイム処理をもたらす。フォグホーンの技術は、世界の有力な産業用インターネットイノベータ、ならびに、クラウドコンピューティング、高性能エッジゲートウェイ、およびＩｏＴシステムインテグレーションにおける主要事業者によって採用されている。
【００５７】
フォグホーンは、ストリームモードおよびバッチモード双方でのエッジアプリのための強化されたＩｏＴデバイスおよびセンサデータアクセス；解析関数を実行するための非常に効率的で表現的なＤＳＬ；低フットプリント機械上で動作可能である強力な小型解析エンジン；さらなる機械学習のために収集されたデータをクラウドへ送信するための発行機能；エッジアプリを開発するためのＳＤＫ（多言語）；構成のエッジデプロイメント、アプリ、および解析式を管理するための管理コンソールを提供する。
【００５８】
フォグホーンは、産業用機械からのセンサデータのリアルタイムの現場ストリーム処理を可能にする、効率的で非常にスケーラブルなエッジ解析プラットフォームを提供する。フォグホーンのソフトウェアスタックは、エッジおよびクラウド上で動作するサービスの組合せである。
【００５９】
「エッジ」ソリューションは、未処理のデータをオフライン解析のためにクラウド環境へ発行するオプションを用いて、ローカルストレージリポジトリへのセンサデータの取込みをサポートしてもよい。しかしながら、多くの産業環境および産業デバイスはインターネット接続性がなく、このデータを使用できなくしている。しかし、インターネット接続性があったとしても、生成されるデータの純然たる量は、利用可能な帯域幅を容易に上回るであろう。または、あまりに法外なコストがかかるためにクラウドに送信できないであろう。加えて、データがクラウドにアップロードされ、データセンターで処理され、結果がエッジに送り返される時までに、行動を取るには遅すぎるかもしれない。
【００６０】
フォグホーンのソリューションは、解析エンジンとしても公知である超小型の複合イベント処理（ＣＥＰ）エンジンと、多くの着信センサストリームのデータに関する規則を表現する強力で表現的なドメイン固有言語（domain specific language：ＤＳＬ）とを提供することによって、この問題に対処する。これらの表現からの出力は次に、高くつく機械故障またはダウンタイムを防止するために、ならびに、リアルタイムの産業活動およびプロセスの効率および安全性を高めるために、直ちに使用され得る。
【００６１】
フォグホーンのプラットフォームは、低フットプリント環境および高スループットまたはゲートウェイ環境で動作する能力；着信ストリーミングセンサデータに作用できる非常にスケーラブルで高性能のＣＥＰエンジン；強化されたデータアクセスを用いた異種アプリの開発およびエッジへのデプロイメント；クラウドおよびエッジを越えるアプリケーションモビリティ；進んだ機械学習（machine learning：ＭＬ）およびクラウドとエッジとの間のモデル転送を含む。独創的に、フォグホーンは、主な産業用データ取込みプロトコル（たとえば、ＯＰＣ−ＵＡ、モドバス（Modbus）、ＭＱＴＴ、ＤＤＳなど）、および他のデータ転送プロトコルをサポートする。加えて、ユーザは、カスタムプロトコルアダプタを、フォグホーンのデータ取込み層へ容易にプラグインすることができる。
【００６２】
フォグホーンのエッジサービスは、ＩＩｏＴデバイスが存在するネットワークのエッジで動作する。エッジソフトウェアスタックは、センサおよび産業用デバイスからのデータを高速データバス上へ取込み、次にユーザ定義の解析式をストリーミングデータに対して実行して、洞察を得てデバイスを最適化する役割を担う。これらの解析式は、フォグホーンの非常にスケーラブルで小フットプリントの複合イベント処理（ＣＥＰ）エンジンによって実行される。
【００６３】
フォグホーンのエッジサービスはまた、時間ベースのセンサデータクエリについてのローカル時系列データベースと、ストリームモードおよびバッチモード双方でデータを消費できるアプリケーションを開発するための多言語ＳＤＫとを含む。オプションで、このデータはまた、顧客が選んだクラウド格納先へ発行され得る。
【００６４】
フォグホーンのプラットフォームはまた、エッジをリモートに構成し管理するためにクラウド環境または構内環境で動作するサービスを含む。フォグホーンのクラウドサービスは、解析式を開発およびデプロイメントし、ドッカー（Docker）（www.docker.com）として公知であるアプリケーションを使用してアプリケーションをエッジへデプロイメントし、顧客のアイデンティティアクセス管理および持続性ソリューションとのサービスの統合を管理するための管理ＵＩを含む。プラットフォームはまた、クラウドで開発された機械学習モデルを、エッジで実行され得るセンサ式へ変換することもできるであろう。
【００６５】
フォグホーンは、エッジインテリジェンスコンピューティングプラットフォームを小フットプリントのエッジデバイスへ直接組込むことにより、産業用インターネット・オブ・シングスに革新的な次元をもたらす。ソフトウェアの極めて少ないオーバヘッドは、それが広範囲のエッジデバイスおよび非常に制約された環境へ組込まれることを可能にする。
【００６６】
ゲートウェイエディションおよびマイクロエディションで利用可能であるフォグホーンソフトウェアは、高性能エッジ処理、最適化された解析、および異種アプリケーションが、産業界に普及している制御システムおよび物理センサインフラストラクチャのできるだけ近くでホストされることを可能にする。遠くの集中型クラウドへすべてのデータを送信する代わりに、エッジデバイスとの近接性を維持することは、待ち時間を最小化し、最大性能、より速い応答時間、ならびにより効果的な保守および業務戦略を可能にする。それはまた、全体的な帯域幅要件と、広範に分散されたネットワークを管理するコストとを著しく減少させる。
【００６７】
フォグホーンゲートウェイエディション：フォグホーンゲートウェイエディションは、広範囲の産業にわたる産業用ＩｏＴの使用事例のための包括的なフォグコンピューティングソフトウェアスイートである。複数の産業用機械またはデバイスを有する中〜大規模環境用に設計されたこのエディションは、ユーザ構成可能なセンサデータの取込みおよび解析式を可能にし、進んだアプリケーション開発およびデプロイメントをサポートする。
【００６８】
フォグホーンマイクロエディション：フォグホーンマイクロエディションは、フォグコンピューティングのパワーを、より小さいフットプリントのエッジゲートウェイおよび他のＩｏＴ機械へもたらす。ゲートウェイエディションに含まれるものと同じＣＥＰ解析エンジンおよび非常に表現的なＤＳＬが、マイクロエディションで利用可能である。このエディションは、組込まれたシステムまたは任意のメモリ制約デバイスにおいて進んだエッジ解析を可能にするために理想的である。
【００６９】
例として、あるアプリケーションは、キャビテーションイベントによるポンプへの高くつく損傷を防止するために、リアルタイムデータ監視および解析、予測保守スケジューリング、ならびに自動化された流れの方向転換を適用する。別の例は、発電を最大化し、機器の寿命を延ばし、正確なエネルギー予測のために履歴解析を適用するためにフォグホーンエッジインテリジェンスソフトウェアを使用した、風力エネルギー管理システムである。
【００７０】
図５は、エッジコンピューティングプラットフォームのより詳細なブロック図を示す。このプラットフォームは、データ取込み５１２、データ処理５１５、およびデータ発行５１８という３つの論理層または区分を有する。データ取込みコンポーネントは、データを生成するセンサまたはデバイス５２３に接続されるエージェント５２０を含む。エージェントは、それぞれのプロトコルサーバからの１つ以上のプロトコルを介して、センサからデータを集め、または取込む。エージェントは、とりわけ、ＭＱＴＴ、ＯＰＣ  ＵＡ、モドバス、およびＤＤＳといったプロトコル用のクライアントまたはブローカーであり得る。センサによって提供または出力されるデータは典型的には、バイナリデータストリームである。センサからエージェントへのこのデータの伝送または配信は、プッシュ法またはプル法によるものであり得る。
【００７１】
プッシュは、所与のトランザクションに対する要求が送信側（たとえばセンサ）によって開始される通信のスタイルを記述する。プル（またはゲット）は、情報の伝送に対する要求が受信側（たとえばエージェント）によって開始される通信のスタイルを記述する。別の通信手法は、受信側またはエージェントが、センサが送信するべきデータを持っているか周期的に問合せるかまたはチェックする、ポーリングである。
【００７２】
ＭＱＴＴ（以前はＭＱテレメトリトランスポート（Telemetry Transport））とは、ＴＣＰ／ＩＰプロトコルに加えて使用するための、ＩＳＯ規格の発行−サブスクライブベースの「軽量」メッセージ通信プロトコルである。代替的なプロトコルは、アドバンストメッセージキューイングプロトコル、ＩＥＴＦ制約アプリケーションプロトコル、ＸＭＰＰ、およびウェブアプリケーションメッセージングプロトコル（Web Application Messaging Protocol：ＷＡＭＰ）を含む。
【００７３】
ＯＰＣ統一アーキテクチャ（OPC Unified Architecture：ＯＰＣ  ＵＡ）とは、ＯＰＣ協議会（OPC Foundation）によって開発された、相互運用性のための産業用Ｍ２Ｍ通信プロトコルである。それは、オープンプラットフォーム通信（Open Platform Communications：ＯＰＣ）の後継版である。
【００７４】
モドバスとは、元々１９７９年にモディコン（Modicon）（現在のシュナイダーエレクトリック（Schneider Electric））によってそのプログラマブルロジックコントローラ（ＰＬＣ）とともに使用するために発行された、シリアル通信プロトコルである。単純かつ頑強であるため、それはそれ以降、すべての意図および目的のために標準通信プロトコルとなった。それは現在、産業用電子デバイスを接続する、一般に利用可能な手段である。
【００７５】
データ処理５１５はデータバス５３２を含み、それは、データ取込み層のエージェント５２０に接続される。データバスは、すべての接続されたコンポーネント間のデータおよび制御メッセージ双方のための中央バックボーンである。コンポーネントは、データバスを通って流れるデータおよび制御メッセージをサブスクライブする。解析エンジン５３５は、１つのそのような重要なコンポーネントである。解析エンジンは、式言語５３８で開発された解析式に基づいて、センサデータの解析を行なう。データバスに接続する他のコンポーネントは、構成サービス５４１と、メトリックサービス５４４と、エッジマネージャ５４７とを含む。データバスはまた、未加工のバイナリデータを消費可能なデータフォーマット（ＪＳＯＮなど）へ復号するとともに、必要で有用な追加のメタデータで装飾することによって、センサからの着信データを強化する「デコーダサービス」を含む。また、強化は、データ復号、メタデータ装飾、データ正規化などを含み得るが、それらに限定されない。
【００７６】
ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔオブジェクト表記法とも呼ばれる）とは、属性値ペアからなるデータオブジェクトを伝送するために人間が読めるテキストを使用する、オープンスタンダードフォーマットである。ＪＳＯＮは、非同期ブラウザまたはサーバ通信（ＡＪＡＪ）または双方のために使用される共通データフォーマットである。ＪＳＯＮの代替例はＸＭＬであり、それはＡＪＡＸによって使用される。
【００７７】
エッジマネージャはクラウド４１２に、特にクラウドマネージャ５５２に接続する。クラウドマネージャは、同様にクラウドにある、顧客アイデンティティおよびアクセス管理（identity and access management：ＩＡＭ）用プロキシ５５５とユーザインターフェイスコンソール５５８とに接続される。また、クラウドを介してアクセス可能なアプリ５６１もある。アイデンティティおよびアクセス管理とは、正しい個人が正しい時間に正しい理由で正しいリソースにアクセスすることを可能にする、セキュリティおよびビジネス規律である。
【００７８】
データ処理５１５内では、ソフトウェア開発キット（software development kit：ＳＤＫ）５６４コンポーネントもデータバスに接続し、それは、エッジゲートウェイ上にデプロイメントされ得る、機能するアプリケーション５６７の作成を可能にする。ソフトウェア開発キットはまた、データを取出すためにローカル時系列データベースに接続する。アプリケーションは、ドッカーなどのコンテナ技術を使用することなどによってコンテナ化され得る。
【００７９】
ドッカーコンテナは、１つのソフトウェアを完全なファイルシステムで包み、ファイルシステムは、コード、ランタイム、システムツール、およびシステムライブラリといった、それが動作するために必要なものすべてを含み、サーバにインストールされ得るものを何でも含む。これは、ソフトウェアが、それが動作している環境にかかわらず、常に同じように動作することを保証する。
【００８０】
データ発行５１８は、クラウド内の格納位置５７３に接続されるデータパブリッシャ５７０を含む。また、ソフトウェア開発キット５６４のアプリケーション５６７は、時系列データベース５７６内のデータにアクセスできる。時系列データベース（time-series database：ＴＳＤＢ）とは、時系列データ、時間によって索引付けされた数の配列（たとえば、日付−時刻、または日付−時間範囲）を取扱うために最適化されたソフトウェアシステムである。時系列データベースは典型的には、新しい情報がデータベースに追加されると最も古い情報が除去される、回転または循環バッファまたはキューである。データパブリッシャ５７０もデータバスに接続し、ローカル時系列データベースに、またはクラウドストレージに格納される必要があるデータをサブスクライブする。
【００８１】
図６は、エッジインフラストラクチャ６０２とクラウドインフラストラクチャとの間の動作フローを示す。いくつかの特定のエッジインフラストラクチャは上に説明された。センサ６０６からデータが集められる。これらのセンサは、産業用デバイス、小売デバイス、ヘルスケアデバイス、または医療デバイス、もしくは、電力または通信用途、もしくは、これらの任意の組合せのためのものであり得る。
【００８２】
エッジインフラストラクチャはソフトウェアプラットホーム６０９を含み、それは、データ処理６１２と、ローカル時系列データベース６１５と、クラウドシンク６１８と、解析複合イベント処理エンジン（ＣＥＰ）６２１と、解析リアルタイムストリーミングドメイン固有言語（ＤＳＬ）６２４（たとえば、フォグホーンによるＶｅｌ言語）と、リアルタイムアグリゲーションおよびアクセス６２７とを有する。プラットフォームは、以下により詳細に説明される仮想センサ６３０を含み得る。仮想センサは、強化されたリアルタイムデータアクセスを提供する。
【００８３】
プラットフォームは、ソフトウェア開発キットまたはＳＤＫを使用して開発され得る、アプリまたはアプリケーション１、２および３などの１つ以上のアプリケーション６３３を介してアクセス可能である。アプリは（たとえば、複数の異なる言語で開発された）異種であってもよく、複合イベント処理エンジン６２１を活用するとともに、機械学習を行なうことができる。アプリは、アプリストア６３７を使用して配布可能であり、アプリストア６３７は、エッジプラットフォーム開発者またはエッジプラットフォームの顧客（パートナーと呼ばれてもよい）によって提供されてもよい。アプリストアを通して、ユーザは、アプリをダウンロードし、他人と共有することができる。アプリは、機械学習、遠隔監視、予測保守、または動作インテリジェンス、またはこれらの任意の組合せを含む、解析および適用６３９を行なうことができる。
【００８４】
アプリについては、エッジとクラウドとの間に動的アプリモビリティがある。たとえば、フォグホーンのソフトウェア開発キットを使用して開発されたアプリケーションは、エッジ上に、またはクラウド内にデプロイメント可能であり、それにより、エッジとクラウドとの間にアプリモビリティを達成する。アプリは、エッジの一部として、またはクラウドの一部として使用され得る。一実現化例では、この特徴はアプリがコンテナ化されることによって可能になり、そのため、アプリは、それらが実行されるプラットフォームから独立して動作可能である。同じことが解析式についても言える。
【００８５】
クラウドまたは私的データセンター６４４でのデータの監視または格納を含む、統合運営および管理６４０を可能にするデータアプリがある。
【００８６】
エッジアプリケーションインフラストラクチャは、リアルタイムのフィードバックおよび自動化制御システムを、最も過酷で最もリモートにある産業環境のうちのいくつかに提供することができる。いくつかの特定の用途を、以下に説明する。
【００８７】
製造：半導体の作成から巨大な産業用機械の組立てまで、エッジインテリジェンスプラットフォームは、リアルタイムの監視および診断、機械学習、および作業最適化を使用して、製造歩留りおよび効率を高めることを可能にする。エッジインテリジェンスの即時性は、製造プロセスにおける自動化フィードバックループ、ならびに、機器および組立てラインのアップタイムおよび寿命を最大化するための予測保守を可能にする。
【００８８】
石油およびガス：石油およびガス抽出は、機器故障および環境被害に対して先を見越した監視および保護を提供するためにリアルタイムの現場インテリジェンスに依存する、いちかばちかの技術主導の作業である。これらの作業は非常にリモートであるとともに、集中型データセンターへの信頼できる高速アクセスがないため、エッジインテリジェンスは、進んだ解析の現場配信を提供し、最大の生産および安全性を保証するのに必要なリアルタイム応答を可能にする。
【００８９】
採鉱：採鉱は、インターネットへのアクセスがほとんどまたはまったくない非常にリモートにある位置で、極端な環境条件に直面する。その結果、採鉱作業は、安全性、作業効率を最大化し、コストおよびダウンタイムを最小化するために、リアルタイムの現場監視および診断、警告管理、ならびに予測保守についてエッジインテリジェンスにますます依拠している。
【００９０】
運輸：産業用インターネットの台頭の一環として、列車およびトラック、バス、航空機、および船舶は、解析およびリアルタイム応答のために追加のインテリジェンスを必要とするであろうペタバイトのデータを生成する新しい世代の機器およびセンサを備えつつある。エッジインテリジェンスは、このデータをローカルに処理して、リアルタイムの資産監視および管理を可能にし、作業リスクおよびダウンタイムを最小化することができる。それはまた、エンジンアイドル時間を監視および制御し、摩滅を前もって検出し、追跡問題を検出し、潜在的侵入物を検出するために使用されて、排気を減少させ、燃料を節約し、利益を最大化することができる。
【００９１】
電力および水：発電所の予期しない故障は、下流の送電網にかなりの混乱をもたらし得る。配水機器およびポンプが何の前触れもなく故障した場合についても同じことが言える。これを避けるために、エッジインテリジェンスは、予測保守およびリアルタイム応答性という、先を見越した利点を可能にする。それはまた、待ち時間および帯域幅コストを減少させるために、クラウドではなくソースのより近くでのセンサデータの取込みおよび解析を可能にする。
【００９２】
再生可能エネルギー：新しい太陽光、風力、および水力発電は、非常に有望なクリーンエネルギー源である。しかしながら、絶えず変化する気象条件は、送電網への電気の確実な供給を予測することおよび送出すること双方について大きな課題を提示する。エッジインテリジェンスは、発電を最大化するためのリアルタイム調節、ならびに、正確なエネルギー予測および送出のための進んだ解析を可能にする。
【００９３】
ヘルスケア：ヘルスケア産業では、新しい診断機器、患者監視ツール、および操作技術が、前例がないレベルの患者ケアだけでなく、莫大な量の機密性の高い患者データを提供している。より多くのデータをソースで処理し解析することによって、医療施設はサプライチェーン業務を最適化し、はるかに低コストで患者のサービスおよびプライバシーを強化することができる。
【００９４】
小売：オンラインショッピングと競合するために、小売業者は、オンラインストアが提供できない強化された顧客体験およびサービスレベルを生み出しつつ、コストを下げなければならない。エッジインテリジェンスは、リアルタイムのオムニチャネル個人化およびサプライチェーン最適化を提供することによって、ユーザ体験を豊かにすることができる。それはまた、さらにより高いレベルの個人化およびセキュリティを提供するために、顔認識などのより新しい技術を可能にする。
【００９５】
スマートビルディング：スマートビルディング技術の多くの利点には、より低いエネルギー消費、よりよいセキュリティ、入居者の快適性および安全性の増加、ならびに、ビルディング資産およびサービスのよりよい利用がある。膨大な量のビルディングデータを解析のためにクラウドへ送信する代わりに、スマートビルディングは、帯域幅コストおよび待ち時間を減少させつつ、エッジインテリジェンスをより応答性が高い自動化のために使用することができる。
【００９６】
スマートシティ：地方自治体システム（たとえば、道路照明、交通情報、駐車、公共安全など）の多様な集合からのデータを、対話型の管理およびコミュニティアクセスのために統合することは、スマートシティイニシアチブにとって共通のビジョンである。しかしながら、生成されるデータの純然たる量は、クラウドベースのシステムのためにあまりにも多くの帯域幅および処理を必要とする。エッジインテリジェンスは、センサおよびデータソースが位置するエッジへデータ処理および解析を分散させる、より効果的なソリューションを提供する。
【００９７】
接続された車両：接続された車両の技術は、外部ネットワークおよびシステムを含むように車両操作および制御をドライバーを超えて拡張することによって、まったく新しい次元を運輸に追加する。エッジインテリジェンスおよびフォグコンピューティングは、交通規制、車速管理、通行料徴収、駐車支援などといった分散された道路サービスを可能にするであろう。
【００９８】
ＩｏＴのための産業用アプリストア
インターネット・オブ・シングス（ＩｏＴ）は、ソフトウェアおよび解析が、（工場、倉庫、小売店などの）計測された物理的活動からのセンサデータに適用されることに対する要求を有する。システムは、アプリケーション配布設備またはアプリケーションストア（アプリストア）と、ＩｏＴのための産業用アプリストアと呼ばれるソフトウェアプラットフォーム装置において産業用ＩｏＴの使用事例の独自の信頼性、セキュリティ、デプロイメント、およびデータ管理のニーズに対処するそのようなアプリストアマーケットプレースのための方法とを含む。
【００９９】
１．アプリケーションマニフェスト：産業用ＩｏＴアプリケーションは、メタデータとして捕捉され、アプリケーションとともに格納され得る、深いデプロイメントコンテキストを有する。このコンテキストは、エッジハードウェア仕様、デプロイメント位置、互換システムについての情報、セキュリティおよびプライバシーについてのデータアクセスマニフェスト、所与のデプロイメントにおいて利用できないデータフィールドをモデル化するためのエミュレータ、およびバージョン管理を含む。エッジハードウェアは、物理センサと外部通信チャネルとの間に物理層を含む。エッジコンピューティングプラットフォームは、仮想センサまたはソフトウェアプログラマブルセンサを定義するために使用され得る。エッジコンピューティングプラットフォームは、ソフトウェア、ハードウェア、ファームウェア、組込みハードウェア、スタンドアロンハードウェア、特定用途向けハードウェア、またはこれらの任意の組合せで実現されてもよい。
【０１００】
２．マニフェスト整合：エッジプラットフォームからの所与の要求に基づき、アプリストアは、上に列挙されたパラメータに基づいて、正しいマニフェストをデプロイメントシナリオと整合させるように構成される。
【０１０１】
３．デプロイメント操作：産業用アプリストアプラットフォームはまた、データ一貫性、アプリケーション状態ハンドオフ、およびセキュリティクレデンシャル管理を含む、産業用エッジデプロイメントシナリオに特有の操作タスクを行なう。これらは、アプリケーションコンテナオブジェクトとしてクラウドまたはデータセンター位置からエッジまで動くアプリケーションのための移動プロセスの必須の段階である。
【０１０２】
プログラマブルソフトウェア定義センサまたは仮想センサ
物理センサは電子変換器であり、それは、その環境のいくつかの特性をアナログまたはデジタル測定値として測定する。アナログ測定値は典型的には、アナログ／デジタル変換器を使用してデジタル量に変換される。センサデータは、必要ベースで測定（ポーリング）されるか、または、一定速度のストリームとして利用可能である。典型的なセンサ仕様は、範囲、精度、解像度、ずれ、安定性、および他の属性である。多くの測定システムおよびアプリケーションは、処理、移送、または格納のためにセンサデータを直接利用し、または通信する。
【０１０３】
システムは、解析式言語を使用して作成されたソフトウェアベースのセンサである、仮想センサとも呼ばれる「プログラマブルソフトウェア定義センサ」を有する。一実現化例では、解析式言語は、フォグホーンの解析式言語である。この式言語はＶｅｌとして公知であり、他の特許出願により詳細に記載されている。Ｖｅｌ言語は、実行の待ち時間が少ない制約された低フットプリント環境においてリアルタイムストリーミング解析をサポートするために効率的に実現される。たとえば、システムの待ち時間は約１０ミリ秒以下であり得る。
【０１０４】
一実現化例では、プログラマブルソフトウェア定義センサは、「センサ式言語」（sensor expression language）またはＳＸＬと呼ばれる宣言型アプリケーションプログラムインターフェイス（ＡＰＩ）を用いて作成される。ＳＸＬ言語の特定の一実現化例は、フォグホーンからのＶｅｌである。ＳＸＬセンサは、この構成を通して作成されたＳＸＬセンサであり、物理センサおよびＳＸＬセンサを含む複数のソースによって生成されたデータを処理することから導き出された測定値を提供する。本願では、ＳＸＬおよびＶｅｌは交換可能に使用される。
【０１０５】
ＳＸＬ（たとえばＶｅｌ）センサは、これら３つのソースのうちのいずれか１つまたはそれらの組合せから導き出され得る。
【０１０６】
１．単一のセンサデータ。
１．１．単一の物理センサから導き出される仮想センサまたはＳＸＬセンサは、任意の組合せの動的較正、信号処理、数式、データ圧縮またはデータ解析を使用して、着信センサデータを変換し得る。
【０１０７】
２．複数の物理センサデータ。
２．１．複数の異種物理センサから（上述の方法を使用して）変換として導き出された仮想センサまたはＳＸＬセンサ。
【０１０８】
３．ＳＸＬセンサ（たとえばＶｅｌ）装置の実現にとって利用可能にされた、物理センサデータと仮想センサデータとの組合せ。
【０１０９】
ＳＸＬ（たとえばＶｅｌ）センサはドメイン固有であり、特定のアプリケーションを念頭に置いて作成される。ＳＸＬプログラミングインターフェイスの特定の一実現化例は、アプリケーションが、変換（たとえば数式）およびアグリゲーションを通してデータ解析を定義することを可能にする。ＳＸＬ（たとえばＶｅｌ）は、典型的にはプログラミング言語に基づいた１組の数学演算子を含む。ＳＸＬセンサは、ＳＸＬ構成またはプログラムを実行することによって、ランタイムにデータに作用する。
【０１１０】
ＳＸＬセンサの作成：ＳＸＬセンサは、データをリアルタイムで利用可能にするためのソフトウェア装置として設計される。これは、アプリケーションによって必要とされるレートでＳＸＬセンサデータを生成するために、ＳＸＬで開発されたアプリケーションが、組込まれたコンピュートハードウェアに対してリアルタイムで実行されることを必要とする。これを達成するために、システムは高効率の実行エンジンを含む。
【０１１１】
ＳＸＬセンサの利点は、以下を含む。
１．プログラム可能性：ＳＸＬは、ＳＸＬセンサをプログラマブルにして、データを合成し、データ品質、頻度および情報についての特定のアプリケーション要件に整合させる。ＳＸＬセンサは、物理センサおよび他の（たとえば、前から存在する）ＳＸＬセンサから供給されたデータにプラグインするための無線ソフトウェアアップグレードとして広く分散され得る。このため、アプリケーション開発者は、物理インフラストラクチャのレイアウトから独立したビジネスロジックの効率的実行の助けとなるデジタルインフラストラクチャを作成することができる。
【０１１２】
２．保守性または透明性：ＳＸＬセンサは、アプリケーションと物理センサとの間にデジタル抽象化層を作成し、それは、物理センサへのアップグレードおよびサービスによる物理インフラストラクチャの変化から開発者を隔離する。
【０１１３】
３．効率：ＳＸＬセンサは、物理センサからの未加工データをそれらに含まれる情報の正確な表現へ変換することによって、情報管理における効率を生み出す。この効率は、アプリケーションにおける下流での計算、ネットワーキング、および格納のようなＩＴリソースの効率的な利用につながる。
【０１１４】
４．リアルタイムデータ：ＳＸＬセンサは、実在または物理センサデータストリームから計算されるリアルタイムセンサデータを提供する。これは、データを最小の時間遅延でアプリケーションにとって利用可能にする。
【０１１５】
実現化例：システムは、ＳＸＬインターフェイスに基づいて、ＳＸＬセンサのスケーラブルでリアルタイムの実現化例を設計した。ＳＸＬは、Ｊａｖａ言語によってサポートされる演算子を含み、物理センサおよびそれらのプロトコルと良好に統合される。
【０１１６】
システムは、実行される物理センサのデータに対する演算を正確に表現するための新規の方法をもたらす。この宣言型の式は、デジタル抽象化の定義を、物理センサに対する実現から隔てる。
【０１１７】
表Ａは、物理センサ、およびＳＸＬで作成されたＳＸＬセンサの一例を提供する。
表Ａ
【０１１８】
【表１−１】
2018534651.tif 000003
【０１１９】
【表１−２】
2018534651.tif 000004
【０１２０】
上述の例では、１組のＳＸＬセンサを作成するために、４つの物理センサが使用される。ＳＸＬセンサデータは、さらなる解析のために、ローカルストレージまたはアプリケーションへ、およびまたは他のリモートサービス（たとえばクラウド）へ送信され得る。
【０１２１】
特定の一例として、表Ａには、「pressure_differential」という名前の仮想センサがある。出力である（圧力差についての）変数pressure_differentialがある。仮想センサへの入力は、（入口圧力についての）inlet_pressureおよび（出口圧力についてのoutlet_pressureである。この仮想センサは、関数inlet_pressureマイナスoutlet_pressureに基づいて、pressure_differentialを出力する。
【０１２２】
表Ａは、「temperature_kelvin」という名前の別の仮想センサを有する。出力は、(temperature+459.67)*(5.0/9.0)という関数であるtemperature_kelvinであり、式中、temperatureはセンサへの入力である。
【０１２３】
表Ａは、「vapor_pressure」という名前の別の仮想センサを有する。出力は、exp(20.386-(5132.0/temperature_kelvin)という関数であるvapor_pressureであり、式中、temperature_kelvinはセンサへの入力である。変数temperature_kelvinは、temperature_kelvinセンサからの出力である。
【０１２４】
表Ｂは、フォグホーンのＶｅｌ式言語を使用して仮想センサを定義する一例を提供する。
【０１２５】
表Ｂ
【０１２６】
【表２−１】
2018534651.tif 000005
【０１２７】
【表２−２】
2018534651.tif 000006
【０１２８】
上述の例では、ポンプキャビテーションシナリオを検出するために後に使用される１組の仮想センサを作成するために、３つの物理センサデータストリームが使用される。仮想センサは、ローカルストリームであってもよく、または、データバス上の第１のクラスのデータストリームとして発行されてもよい。
【０１２９】
図７は、入力から仮想センサを作成するために使用されるセンサ式言語エンジン７０７を示す。センサ式言語エンジンは、物理センサまたは他の仮想センサから入力を得る。入力のいくつかの例は、入口圧力７１１、出口圧力７１４、温度７１７、および流れ７２０を含む。任意の数の入力または入力の組合せが、仮想センサへの入力として使用され得る。入力に基づき、センサ式言語エンジンは、圧力差７３１、温度７３４（単位はケルビンであってもよい）、および蒸気圧７３７などの出力を有する仮想センサを生成することができる。任意の数の仮想センサおよび出力があり得る。説明されたように、出力は、仮想センサへの入力の数学関数であり得る。
【０１３０】
図７は仮想センサを表すボックス（たとえば、７３１、７３４、および７３７）を示すが、仮想センサは複数の出力を有し得る。たとえば、仮想センサ７３１および７３４は、２つの出力を有する単一の仮想センサへと組合され得る。仮想センサ７３１、７３４、および７３７は、３つの出力を有する単一の仮想センサへと組合され得る。
【０１３１】
エッジとクラウドとの間のアプリケーションモビリティ
従来の企業ソフトウェアアプリケーションホスティングは、規模の経済性およびシステム効率を活用するために、データセンターまたは「クラウド」インフラストラクチャに依拠してきた。しかしながら、これらのデータセンターは、企業がそのビジネス活動のほとんどを行なう物理的活動地点（工場、倉庫、小売店、および他の設備など）から任意に離れている場合がある。インターネット・オブ・シングス（ＩｏＴ）は、非常に多い頻度でイベントを追跡するセンサを用いた物理的活動の計測に依拠する使用事例の集合である。
【０１３２】
システムは、バックエンドデータセンターまたはクラウドとフロントラインエッジインフラストラクチャ層との間のソフトウェアアプリケーションのシームレスな相互運用性およびモビリティのための方法および装置を含む。
【０１３３】
１．装置は、物理的活動に対するデータ管理、データ解析、および管理タスクを達成するためにアプリケーションが使用できる同じ１組のアプリケーションプログラムインターフェイス（ＡＰＩ）を用いて、クラウド、中型コンピュートサーバ、および小型コンピュートサーバを越えて異なるフォームファクタでデプロイメントされ得る、ソフトウェアプラットホームである。
【０１３４】
１．１．データ管理は、エッジ層での複数のネットワークインターフェイスからのデータのストリームの取込み、データ強化、格納、ハードウェアおよびソフトウェア故障に対する回復力、およびデータの一貫性を含む。
【０１３５】
１．２．データ解析は、エッジでの複合イベント処理（ＣＥＰ）エンジン、解析またはストリーム処理または双方のための式言語、アグリゲーション、規則、および選択機械学習ワークフローを含む。
【０１３６】
１．３．管理能力は、エッジ層でのリソースプロビジョニング、構成および設定、ならびに、アプリケーションライフサイクルタスク管理を含む。
【０１３７】
２．システムはまた、管理されるアプリケーションおよびデータの状態において一貫性を維持しながら、これらのアプリケーションをクラウドとエッジインフラストラクチャ層との間でインターネットを通して移動させるための方法を含む。
【０１３８】
３．方法は、異なるプラットフォームを越える一貫した移動または実行にとって必要とされるソフトウェアライブラリを実装するためのアプリケーションコンテナ技術を活用する。
【０１３９】
４．方法はまた、クラウドとインフラストラクチャのエッジ層との間のそのような移動をスケジュールするために、リソース利用可能性、アプリケーションサービス品質（quality-of-service：ＱｏＳ）要求、および優先順位を考慮に入れる、レコメンダーシステムを有し得る。
【０１４０】
５．方法はまた、協働するアプリケーションが、クラウドおよびインフラストラクチャのエッジ層の双方で実行され、装置（たとえば、エッジプラットフォーム）を活用してアプリケーション間通信を管理することを許可する。
【０１４１】
エッジ上で開発されたアプリケーションはクラウドにおいて動作可能であり、逆もまた同様である。これは、機械学習用途についても同様である。
【０１４２】
リモートで管理されるワークフロー
エッジコンピューティングソフトウェアの一部である上述のシステムの部分は、いくつかのマイクロサービスによって支持される管理コンソールを通してリモートで管理され得る。このリモート管理コンソールを通して、複数の異なるエッジインストレーションが構成され、デプロイメントされ、管理され、監視され得る。
【０１４３】
エッジでのインテリジェンスを可能にするための方法である。特徴は、以下を含む。ゲートウェイデバイスまたは組込まれたシステム上でホストされるソフトウェア層においてセンサデータによってトリガすること。ソフトウェア層はローカルエリアネットワークに接続される。サービス、アプリケーション、およびデータ処理エンジンのリポジトリが、ソフトウェア層によってアクセス可能にされる。ソフトウェア層によって利用可能にされた式言語を通して、センサデータを特定条件の発生の意味論的記述と整合させること。式を連続的に実行することによってパターンイベントを自動的に発見すること。アプリケーションおよび解析式をつなぐために、ソフトウェア層によって管理されるネットワーク全体のゲートウェイデバイスおよび組込まれたシステムを越えて、サービスおよびアプリケーションをインテリジェントに構成すること。リソース利用可能性に基づいてアプリケーションおよび解析のレイアウトを最適化すること。ソフトウェア層の健全性を監視すること。未加工のセンサデータまたは式の結果を、ローカル時系列データベースまたはクラウドストレージに格納すること。サービスおよびコンポーネントは、どのゲートウェイ環境でも円滑な動作を保証するために、コンテナ化され得る。
【０１４４】
一実現化例では、ゲートウェイデバイス上でホストされ、ワイドエリアネットワークに接続されたソフトウェア装置においてセンサデータによってトリガされたサービス呼出しのための方法であって、サービス、アプリケーション、およびデータ処理エンジンのリポジトリが当該装置によってアクセス可能にされ、方法は、センサデータを、当該装置によってアクセス可能にされたデータの意味論的記述と整合させるステップと、整合されたデータの意味論タイプのパターン用に設計されたすべてのアプリケーションを発見するステップと、整合されたすべてのアプリケーションおよび解析をつなぐために、ソフトウェア装置によって管理されるワイドエリアネットワーク全体に分散されたサーバおよびゲートウェイデバイスを越えて、サービスをインテリジェントに構成するステップと、ゲートウェイデバイスでのリソース利用可能性に基づいて、アプリケーションおよび解析のレイアウトを最適化するステップとを含む。
【０１４５】
１．技術分野：本発明は、インターネット・オブ・シングス、特に、センサからリアルタイムのデータ駆動型の決定を導き出すための分散ソフトウェアの分野に関する。
【０１４６】
２．考察：インターネット・オブ・シングスとして総称されるセンサおよびネットワークのコストを下げることによって設定されるセンサデータの爆発的増加がある。データの抽象化は、製造、エネルギーおよび公益事業、都市のインフラストラクチャ、ヘルスケア、小売、農業および資源、ホームオートメーション、ならびに消費者ウェアラブルデバイスを含むさまざまな業種を越えて、インターネット・オブ・シングスを一般化する。しかしながら、ソフトウェア開発、試験、デプロイメント、および管理の増大するコストは、プロセス効率、ビジネス収益性、および収益貨幣化に関する価値を生み出すためにこれらのセンサデータを取込み、収集し、管理し、処理することに、経済的障害を追加する。インターネット・オブ・シングス用のソフトウェアへのこれらの経済的障害は、４つのタイプに分類され得る。
【０１４７】
１．異種：物質界におけるデータソースは本質的に異種であり、ソフトウェア開発および試験のコストを増大させる。
【０１４８】
２．ラストマイルのギャップ：これらのギャップは、ソフトウェアアプリケーションを高いサービス品質で確実にデプロイメントするために、データセンターと物理センサとの間にある。
【０１４９】
３．セキュリティ：センサは、あまり定義されていないデータ統治およびセキュリティポリシーを用いて新しい情報経路を切り開くデータの新しいソースである。
【０１５０】
４．サイロ：アプリケーションのサイロを越えた反復性データ取得、処理、および管理は、ハードウェアリソースおよび開発リソースの非効率的使用につながる。
【０１５１】
システムは、センサに近いラストマイルでこれらの課題に対処するために設計された方法およびソフトウェア装置を提供する。発明された装置におけるインテリジェンスは、センサデータの意味論を発見し、サービスおよび解析の構成をカスタマイズし、ソフトウェアアプリケーションのデプロイメントをつなぐことができる。
【０１５２】
この発明のいくつかの実施形態は、ソフトウェアアプリケーションが、広範囲に広がるさまざまなセンサからのデータにアクセスし、データおよび解析に基づいてリアルタイムの応答およびメッセージを提供することを可能にするための方法および装置を含む。装置は、センサの近くの組込まれたゲートウェイデバイス、および、企業またはクラウドサービスプロバイダによって管理されるデータセンターにおけるサーバインフラストラクチャ上にデプロイメントされるように設計される。アプリケーション開発者は、自分のソフトウェアが使用するデータ意味論をこの装置へ表現し、自分のアプリケーションのリポジトリをそれに公開する。ゲートウェイデバイスは、それらのハードウェアシステムにおけるネットワークインターフェイスを通して、物理センサへのアクセスを有する。
【０１５３】
請求される方法は、ＩｏＴソフトウェアの異種、ラストマイルのギャップ、セキュリティ、およびデータサイロの課題を、以下のように解決する。
【０１５４】
１．１．センサデータは、ゲートウェイデバイスにおけるネットワークインターフェイスを通してソフトウェア装置に到達する。ソフトウェア装置は、サポートされる公知のデータプロトコルを示すパターンがないか、メッセージヘッダを検査する。
【０１５５】
１．２．サポートされるプロトコルのパターンを発見すると、装置は、関連するプロトコルブローカーサービスを構成の第１の段階にロードする。
【０１５６】
２．ソフトウェア装置は、プロトコルブローカーを通してデータストリーミングにおけるデータ意味論の次元を発見し、アプリケーション開発者によって表現された意味論でパターンを整合させ、整合されたエレメントの得点リストを作成する。開発者が整合中のデータへのアクセスを有することを保証するために、すべての整合する走査は、トークン交換プロトコルによって保護される。装置は、最も高い整合得点を有するデータ意味論をロードするか、または、それを手動確認のために人間機械インターフェイスを通して推薦することができる。サービス構成は、開発者データ意味論を追加する。
【０１５７】
３．ソフトウェア装置は次に、データ意味論のアプリケーション定義を整合させるために、異なる物理ソースからのセンサデータを混合する。
【０１５８】
４．アプリケーションの解析サービス依存性が、ソフトウェア装置によって解析され、センサの近くのゲートウェイデバイス上に、および、同じ装置の管理下にあるデータセンターにおける他のサーバ上にプロビジョニングされる。
【０１５９】
５．適切な意味論でストリーミングするデータは、当該データをアプリケーションによって必要とされるように変換するために、ソフトウェア装置によってデータ処理パイプラインを通って流される。
【０１６０】
６．装置はまた、地理的に広がる解析処理パイプライン間の一貫性のために保護されたリンクを通してワイドエリアネットワークを越えるデータの転送を管理する。
【０１６１】
７．アプリケーションは、ソフトウェア装置のマニュアルで開発者に開示された（トークン交換ベースのセキュリティを有する）プログラムＡＰＩを通して、変換されたデータに安全にアクセスすることができる。アプリケーションは、そのインスタンスでのリソースの利用可能性および必要なサービス品質に基づいて、適切な場所（ゲートウェイデバイス、データセンターサーバ）でサービス構成につながれる。
【０１６２】
上述の段階１〜７は、センサデータからの動的コンテキストおよびリポジトリにおけるアプリケーションを活用することによってサービスチェーンをインテリジェントに構成するためにソフトウェア装置によって使用される方法を説明する。この方法およびソフトウェア装置はこのように、上述のＩｏＴについてのソフトウェア工学の課題を解決する。
【０１６３】
異種センサに依存しないソフトウェアおよびデータ管理
インターネット・オブ・シングス（ＩｏＴ）は、高感度センサを用いた物理的活動の計測を通してビジネス活動に価値をもたらして、活動中にイベントを高頻度で追跡し、ソフトウェアおよびサービスを通してセンサデータを実施可能な解析洞察に変える。しかしながら、（工場、倉庫、小売店、および他の設備のような）日常業務の物理的設定は、センサハードウェア、ネットワーキングトポロジ、データプロトコル、およびデータフォーマットが極めて異種である。この異種は、ソフトウェア開発、試験、およびデプロイメントに対して高コストのオーバーヘッドをもたらし、ハードウェア−ネットワーキング−データプロトコル−データフォーマットの組合せごとにコードモジュールを再開発する必要がある。システムは、この異種設定においてソフトウェアおよびデータを管理するための方法およびソフトウェア装置を提供する。
【０１６４】
ソフトウェア装置はオプションで、たとえば、センサネットワークにおいて配列された中型サーバ（たとえば、デュアルコアプロセッサおよび４ギガバイトのメモリ）〜小型サーバ（たとえば、１ギガバイト未満のメモリを有するシングルコアプロセッサコア）を含むコンピュートインフラストラクチャ上でホストされるように設計される。以下に説明される方法は、ソフトウェア装置上でホストされるアプリケーションとセンサとの間のデジタルインターフェイスの層を通して、センサネットワークにおける異種を抽象化する。
【０１６５】
１．ブローカー（たとえば、図５のブローカー５２０）：センサが接続されると、接続されたセッションが生じ、次に、それぞれのクライアントが次にトピック名を発行してサブスクライブするであろう。これは、データの大量取込みを読取るために最適化されたマルチプロトコルブローカーである。ブローカーは、セキュリティクレデンシャルでアクセスを保護するための内蔵セキュリティを有する。ブローカーは、特定ユーザのログインおよびパスワードを有する設定ファイルを有する。ブローカーはまた、トピックにアクセスするための内蔵ポリシーを有する。システムは、ＭＱＴＴ、ＣｏＡＰ、ＡＭＱＰ、またはＤＮＰ３などの内蔵およびシードプロトコルブローカーだけでなく、カスタムプロトコルについてもこれらを適用するのに十分包括的である。プロトコルブローカーのプラグインアーキテクチャは、カスタムプロトコルのためにブローカーを開発することを非常に容易にする。内部では、ブローカーは非常に高性能であり、超高速処理のためにゼロコピーバッファリングを使用する。ブローカー層は、いかなる単一障害点も回避するための軽量で高可用性の実現化例である。それは、それをフレキシブルおよび直観的にする、力学計算ドメイン固有言語（ＤＳＬ）ベースの有向非巡回グラフ（directed acyclic graph：ＤＡＧ）である。メッセージはタイムスタンプ順に到着しないかもしれないため、計算用の時間窓をいつ閉じるべきかを知ることが難しい。ブローカーは、アプリケーションクロックの低基準値を追跡することによって、このモデルをサポートすることができる。
【０１６６】
２．ストリーム処理グラフ：システムは、ストリームに関連付けられた処理ユニット間の生産者−消費者関係を説明するために、「ストリーム処理グラフ」である有向非巡回グラフ（ＤＡＧ）を使用する。グラフには、ソースノード、シンクノード、および処理ノードがあり、有向エッジは、さまざまなノード間の情報フローを表わす。ソースノードは、入力データストリームのソースに対応する。これらのノードは外に向かうエッジのみを有し、それらの間にエッジを全く有していない。シンクノードは、最終的な処理情報の受信側に対応する。これらのノードはそれらに向かうエッジのみを有し、それらの間にエッジを全く有していない。処理ノードは、処理ユニットを表わす。処理ユニットは、複数のデータストリームからの入力を同時に必要とし、１つまたは多くの有用な出力ストリームを生成してもよい。そのようなグラフは、すべての有向エッジが下方を指しているような態様でプロットされ得る。システムは、上部から来て中央で処理ユニットを通過し、最終的に底部で出力ストリームにつながる情報として設計される。
【０１６７】
３．キューイングシステム：異なるレベルを越えるスループットと待ち時間との関係は、リトルの法則（Little's law）によって定義されるように非常に複雑である。各システムを全体として見ると、それらは多くのサブシステムを含み、それらの間には複雑な依存性があるであろう。各サブシステムは、スループットによって、または待ち時間によって、システムの残りに結合するであろう。システムを設計する際、これらの対話を考慮してから、より大きいシステムを妨げないシステムを作成することが有用である。受信側（のうちの１つ）がメッセージを処理できるペースよりも速いペースでセンサがメッセージを送信する場合、フロー制御の問題が非同期通信で生じる。
【０１６８】
開発されたシステムは、高容量非同期システムにおける背圧問題に取組む多くの実験を行ない、その結果、頑強な反応性ストリーム処理およびキューイングメカニズムを作成した。これらの反応性ストリームイニシアチブの開始の背後にある主な推進力は、無限バッファを必要とすることなく、非同期境界インメモリを越えてデータを損失なく移送することである。継続通過スタイル（たとえば、アクターモデル）が使用されている。下流の要求がゼロストリームに到達すると、アクターは単に、それら自体の上流からより多くを引っ張らないであろう。それらはメッセージ駆動型であるため、それらは単に、ずっと下流からより多くの要求が到達するまでスケジュールされないであろう。このためスレッドはブロックされず、呼出しスタックは保存されないが、アクターは、それがストリームのどこにいたかを覚えている。この設計は、メッセージ処理における非決定性の新しい考え方を容易にする。
【０１６９】
４．エッジミキサー：各センサは、それら自体のトピックについて通知する。測定値が通知される間隔は、センサに依存する。最後に、センサを混合するために正規化が必要とされる。センサ測定値は、時間ベースのチャネルに通知される。測定値は、循環する態様でこれらのキューに通知される。いくつかまたはすべてのセンサ測定値は、時間次元上でつなぎ合わされ得る。システムのセンサミキサーは、以下のセンサ時系列正規化のうちの１つ以上を行なう。
【０１７０】
４．１．間隔への正規化。
４．２．合計１への正規化。
【０１７１】
４．３．ユークリッドノルム１への正規化。
４．４．ゼロ平均への正規化。
【０１７２】
４．５．ゼロ平均および単位標準偏差への正規化。
５．センサ式言語：アプリケーションは、センサ式言語と呼ばれる言語を通して、エッジミキサーにおけるパイプラインワークフローを定義する。この言語は、データ管理および解析のアプリケーション側抽象化を定義し、このため、センサ異種を抽象化するためのエンドツーエンド方法を制御する。センサ式言語の特定の一実現化例はＶｅｌ（登録商標）と呼ばれ、引用により援用される、２０１６年３月２３日に出願された米国特許出願第６２／３１２，１０６号、第６２／３１２，１８７号、第６２／３１２，２２３号、および第６２／３１２，２５５号に記載されている。Ｖｅｌは、フォグホーン・システムズ・インコーポレイテッドの商標である。
【０１７３】
エッジおよびデバイスタイプに基づいたインテリジェントなコンテナ作成および管理
コンテナ技術は、テナントごとにＯＳカーネル全体の複製を必要とすることなく（よって、ハイパーバイザー技術とは異なり）、管理されたオペレーティングシステム（operating system：ＯＳ）である、メモリ、ＣＰＵ、およびストレージのようなコンピュータサーバリソースを、ごくわずかなオーバーヘッドで仮想化する。コンテナは、普及しているリナックスオープンソースオペレーティングシステムの一部として開発されたものであり、ドッカーおよびコアＯＳ（Core OS）のような進んだ管理フレームワークの利用可能性とともに、ソフトウェア開発およびデータセンター運用（ＤｅｖＯｐｓ）において著しい牽引力を得てきた。（工場、倉庫、小売店、および他の設備のような物理的位置を含む）インターネット・オブ・シングス（ＩｏＴ）の使用事例では、物理センサネットワークに非常に近いニアラインコンピュートインフラストラクチャを通してセンサデータを処理するためのソフトウェアおよび解析を消費することへの高まる要求がある。これらのコンピュートノードは、たとえば、インターネットに接続され、活動中にデプロイメントされたさまざまな異種センサデバイスおよび制御システムへのアクセスを有する、中型（たとえば、デュアルコアプロセッサおよび４ギガバイトのメモリ）〜小型（たとえば、１ギガバイト未満のメモリを有するシングルコアプロセッサコア）のサーバを含む。システムは、これらのエッジコンピュートインフラストラクチャ設定においてコンテナ技術をインテリジェントにデプロイメントし管理するための方法を提供する。
【０１７４】
以下の構成要素は、エッジインフラストラクチャ設定においてコンテナを管理するための方法を説明しており、ソフトウェア装置の形で実現される。
【０１７５】
１．集中管理：システムは、そのＩｏＴのための産業用アプリストア（Industrial AppStore for IoT：商標）においてソフトウェアアプリケーションを管理し、すべてのデプロイメント決定は、この集中設定において制御され管理される。ＩｏＴのためのアプリストア（AppStore for IoT）は、フォグホーン・システムズ・インコーポレイテッドの商標である。
【０１７６】
２．デプロイメントトポロジテンプレート：システムは、ソフトウェアアプリケーションモジュールごとにテンプレートを有しており、それは、エッジインフラストラクチャ上でのデプロイメントのためのすべての必要なトポロジ詳細および実行ライブラリを有する自己完結型である。これは、必要とされるネットワークプロトコル、メッセージプロトコルおよびデータフォーマットパーサーライブラリを、センサネットワークにおけるシステムからのデータにアクセスするためにアプリケーションが使用できるサービスチェーンへと構成することを含む。サービス構成は、宛先エッジインフラストラクチャにおけるシステム構成の知識を使用して、インテリジェントで自動化された態様で行なわれる。
【０１７７】
３．アプリケーションコンテナのモビリティ：システムは、構成されたアプリケーションを含むデプロイメントテンプレートオブジェクトをシリアル化し、それらを、エッジインフラストラクチャでのソフトウェア装置におけるエージェントに到達するように、インターネットを通してストリーミングする。
【０１７８】
４．エッジでのゼロタッチデプロイメント：エッジでのシステムのソフトウェア装置は、ＩｏＴのための産業用アプリストアから受信された、構成されたコンテナオブジェクトを解釈し、それを、プラットフォームにおいて実現されるすべての解析およびデータ管理サービスを用いてデプロイメントすることができる。構成に何らかの手動労力があるかもしれないが、デプロイメントプロセスは手動介入なしで完全に自動化される。
【０１７９】
５．アプリケーションコンテナの監視：システムは、各コンテナにおいてテレメトリエージェントを実現するエッジでのソフトウェアプラットホーム（装置）に、マイクロサービスベースのアーキテクチャをデプロイメントする。このエージェントは、コンテナにおけるアプリケーションの性能および利用可能性についての詳細なメトリックを測定し、報告する。プラットフォームはまた、これらのメトリックのうちのいずれかが変則的に挙動した場合に警告を発することができる。
【０１８０】
６．コンテナの応答性移動：システムは、テレメトリエージェントがリソース競合およびサービス劣化を観察した場合に、エッジプラットフォームからクラウドへ戻るコンテナの移動をトリガするための方法を提供する。この応答性移動は、制約されたエッジインフラストラクチャにおいてリソースを解放し、ホストされるアプリケーションのサービス品質全体を高めることが見込まれるであろう。アプリケーションの優先順位も、そのような移動をスケジュールする際に誘導基準として機能する。
【０１８１】
超大型センサネットワーク用の自動化モデル並列機械学習のための方法、および、センサネットワークとデータセンターとの間のデータ並列転送学習のための装置
機械学習は、データにおけるパターンの発見を自動化し、さまざまな業種においてインテリジェントな予測をするために構築されたモデルを使用する上で、主要計算構成として進化してきた。センサデータに対する機械学習の適用は、インターネット・オブ・シングス（ＩｏＴ）マーケットセグメント全体におけるデータ駆動型のビジネスおよび業務計画の使用事例に関連する。しかしながら、センサデータは、機械学習ワークフローのスケーラビリティおよび効率にいくつかの課題を提示する。
【０１８２】
１．大量のストリーミングデータ：活動中にデプロイメントされた制御システムおよび機械は、機械学習解析のためのアグリゲーションに対してコストおよび物流上の制限を提示する、非常に大量の連続的にストリーミングされるデータを生成する。
【０１８３】
２．データの品質および複雑性：産業用システムからのデータには、蔓延するデータ破損および欠損値に関連付けられた構造およびメタデータがほとんどない。生成されたデータを構成する特徴は、同様のオペレーショナルシステムの異なるインスタンス間で大きく異なる。これは、従来の機械学習解析を通して開発されたモデルの忠実度を著しく減少させる。
【０１８４】
３．データ前処理におけるギャップ：データをそれらのソースのより近くでインテリジェントで効率的な態様で前処理するためのコンピュートインフラストラクチャはない。
【０１８５】
４．地理的分布：ＩｏＴシナリオにおける産業活動は、コンピュートおよびデータの任意の分布に対してコスト、帯域幅および待ち時間の制約を課す大きい地理的エリアにデプロイメントされたシステムを伴う。
【０１８６】
システムは、データセンターまたは「クラウド」、および、センサネットワークまたは「エッジ」の近くで利用可能なコンピュートリソース、たとえば、中型サーバ（たとえば、デュアルコアプロセッサおよび４ギガバイトのメモリ）〜小型サーバ（たとえば、１ギガバイト未満のメモリを有するシングルコアプロセッサコア）を越えて機械学習ワークフローを行なうように設計されたプラットフォームの形をしたソフトウェア装置を提供する。システムの方法は、以下のコンポーネントを含み得る。
【０１８７】
１．機械学習解析へとフィードされ得る未加工データの連続ストリームを前処理するためのエッジでのストリームデータ処理およびネットワーク内アグリゲーション：この処理方法は、その機械学習解析を構成した開発者によって、ＡＰＩを通してプログラマブルである。
【０１８８】
２．前処理されたデータをエッジで実行し、実行の結果をモデル評価のためにクラウドへ放出するように機械学習ワークフローによって構成されたモデルについてのセンサデータクエリ処理。
【０１８９】
３．未加工データをそれらの構成特徴集合に基づいて分割するためのエッジでのセンサデータセグメント化、および、機械学習ワークフローによって構築されたモデルとのインテリジェントな整合。
【０１９０】
４．前処理、クエリベースのモデル実行、および特徴ベースのデータセグメント化という上述のワークフローに基づいた、エッジでのソフトウェアプラットホームにおけるリアルタイムのモデル訓練および選択。
【０１９１】
３つのコンポーネントを含む上述の方法は、サービスとして機械学習のシステム構成を構成する。フォグホーン・システムズによる特定の一実現化例は、フォグホーン・コーテックス（FogHorn Cortex）として公知である。
【０１９２】
１．システムのソフトウェア装置は、エッジインフラストラクチャのインスタンスを越えて（広い地理を越えて）モデル実行を調整する。これらのモデルは、異なる特徴空間のセグメントを越えて、データに対して実行される。装置は、特徴空間を越えて学習される知識を、転送される学習用のプラットフォームとしてクラウドを使用することによって転送する。これは、データラベル化を回避し、異種ラベルを有するデータを活用することによって、機械学習プロセスにおいて多くの効率をもたらす。
【０１９３】
エッジコンピューティングプラットフォームシステムの一使用事例は、工場歩留り最適化である。たとえば、現代の製造プラントは、組立てラインにおける不可逆段階の前の訂正を可能にするための潜在的欠陥の早期発見によって、歩留りを最大化することを望んでいる。エッジコンピューティングプラットフォームシステムを使用するいくつかの利点は、フォグホーンのリアルタイムデータ処理、ＶＥＬ式エンジンの組合せ、および、ビッグデータ解析のためのアパッチ・ハドゥープ（Apache Hadoop）との統合を適用して、製造がスクラップを少なくとも５０パーセント減少させる見込みがある、ということを含む。
【０１９４】
いくつかのソリューションは、以下を含む。
１．機器コントローラからの何百ものＭＱＴＴおよびＯＰＣ−ＵＡデータ値と個別部品についてのＲＦＩＤデータとが、エッジでリアルタイムで集められ、変換される。
【０１９５】
２．ＶＥＬ式を使用して、測定値を正規化して収集し、それらを仕様と比較する。
３．未加工の増強されたデータをハドゥープに転送し、そこで、データ科学者は、欠陥検出につながり得る測定値のシーケンスを特徴付けるためのモデルを構築することができる。
【０１９６】
４．ＶＥＬ式を使用して、加熱、乾燥、および塗装などの不可逆ステップの前に製品を却下または再加工するように技術者へ警告を送信する。
【０１９７】
リアルタイムの解析およびインテリジェンスは、測定値および識別子またはＩＤを集めて変換すること、測定値をＶＥＬで計算して収集することを含む。履歴解析は、予測特徴を識別すること、スクラップのためのシーケンスマイニングモデルを構築して試験することを含む。
【０１９８】
エッジコンピューティングプラットフォームシステムの一使用事例は、機関車燃料効率である。たとえば、運輸会社は、燃料消費を減少させるために、列車および乗員の性能を先を見越して監視し最適化するためのカスタマイズ可能なソリューションを必要とする。エッジコンピューティングプラットフォームシステムを使用するいくつかの利点は、リアルタイムのエンジンおよび地理位置情報データに基づいて過度のアイドリング状態の非効率的なスロットル位置を検出することによって、すべてのエンジンについて何千ガロンもの燃料を節約すること、異常状況時のみビデオアップロードをトリガすることによって、モバイルネットワークコストを減少させることを含む。
【０１９９】
いくつかのソリューションは、以下を含む。
１．センサデータおよびＧＰＳデータが、搭載された強化されたデータ収集システムから取込まれる。
【０２００】
２．ＶＥＬ式を使用して、位置、速度、時間、および他のパラメータに基づいてアイドリングおよびスロットル調整における条件を判断する。
【０２０１】
３．警告をコマンドセンターへ送信し、そこで、オペレータは、最適な列車取扱いを維持しながら燃料消費を減少させるために先を見越した行動を取ることができる。
【０２０２】
４．リアルタイムアプリケーションを使用して、安全でない条件を検出し、解析のためにデータセンターへのビデオストリームのアップロードをトリガする。
【０２０３】
リアルタイムの解析およびインテリジェンスは、データ収集、規則および警告、データ転送のトリガを含む。履歴解析は、列車運行、安全性、および燃料消費についての規則および予測モデルを含む。
【０２０４】
エッジコンピューティングプラットフォームシステムの一使用事例は、ポンプキャビテーション警告である。たとえば、機器メーカーは、そのポンプへの損傷をもたらし得るキャビテーションイベントを検出し、工場および発電所に設置された弁製品を制御するためのソリューションを必要とする。エッジコンピューティングプラットフォームシステムを使用するいくつかの利点は、キャビテーションが生じた場合に是正措置を取ることによって機器寿命を改良すること、予測保守によって計画外のダウンタイムおよび突発故障を回避することを含む。
【０２０５】
いくつかのソリューションは、以下を含む。
１．入口および出口圧力、流れ、および温度などの測定値が、機器に取付けられた複数のセンサから集められる。
【０２０６】
２．ＶＥＬ式を使用して、蒸気差異をリアルタイムで計算し、キャビテーション形成を検出する。
【０２０７】
３．警告を技術者へ送信し、流体圧力または流れを増加させるかまたは温度を減少させて、シール、軸受、および羽根車への損傷を回避する。
【０２０８】
４．技術者が故障の前にキャビテーションを検出すること、または保守をスケジュールすることを可能にするように、履歴情報を解析してパターンを識別する。
【０２０９】
リアルタイムの解析およびインテリジェンスは、リアルタイムで測定値を集めて変換すること、ＶＥＬでキャビテーションにつながる蒸気差異を計算することを含む。履歴解析は、時系列測定値を解析して、キャビテーションイベントについてのパターンを識別することを含む。
【０２１０】
エッジコンピューティングプラットフォームシステムの一使用事例は、風力エネルギー予測である。たとえば、再生可能エネルギー会社は、政府規制により、次の２４時間にわたって発電を正確に予測し、報告し、満たすことを必要とする。エッジコンピューティングプラットフォームシステムを使用するいくつかの利点は、２４時間エネルギー発生予測を満たすことができないタービンについて少なくとも９０分前に警告を生成し、それを適用してタービン設定を最適化するかまたは予測を修正するための能力を含む。
【０２１１】
いくつかのソリューションは、以下を含む。
１．６か月以上の履歴データおよびリアルタイムデータが、各タービン上のＳＣＡＤＡコントローラシステムから集められ、天気データ、大気データおよび地勢データで増強される。
【０２１２】
２．２０個以上の属性に基づいてモデルを訓練し、１５分の間隔にわたって発電を予測する。
【０２１３】
３．エッジでモデルを適用して、発電についてのリアルタイム得点を生成する。ＶＥＬ式を使用して、予測に対して実績を比較し、警告を生成する。
【０２１４】
４．技術者がタービン設定を微調節すること、または予測を修正することを可能にする。
【０２１５】
リアルタイムの解析およびインテリジェンスは、データを集めて変換すること、モデルを採点してアップデートすること、ＶＥＬで条件を識別することを含む。履歴解析は、統計的解析、特徴の抽出、モデルの構築および試験を含む。
【０２１６】
発明のこの説明は、例示および説明のために提示されてきた。それは、網羅的であるよう、または、この発明を説明された形そのものに限定するよう意図されておらず、上述の教示に鑑みて多くの変更および変形が可能である。実施形態は、この発明の原理およびその実用的用途を最良に説明するために選択され説明された。この説明は、他の当業者がこの発明をさまざまな実施形態で、および特定の使用に適するようにさまざまな変更を加えて最良に利用し実践することを可能にするであろう。この発明の範囲は請求項によって定義される。
【図１】
2018534651.tif 000007
【図２】
2018534651.tif 000008
【図３】
2018534651.tif 000009
【図４】
2018534651.tif 000010
【図５】
2018534651.tif 000011
【図６】
2018534651.tif 000012
【図７】
2018534651.tif 000013
【国際調査報告】
2018534651.tif 000014
2018534651.tif 000015
2018534651.tif 000016
2018534651.tif 000017