(57)【要約】      （修正有）【課題】ファンクション・アズ・ア・サービス（ＦａａＳ）関数要求についてのセキュリティ要件を、該セキュリティ要件に一致するセキュリティ機能を有するエッジリソースに一致させるための技術を提供する。【解決手段】システムにおいて、エッジゲートウェイデバイスは、エッジデバイスから、加速関数を実行する要求を受け取る。エッジゲートウェイデバイスは、エッジデバイスによって要求される１つ以上のセキュリティ要件に応じて、要求を満たすエッジリソースを選択する。エッジゲートウェイデバイスは、１つ以上のセキュリティ要件に従って、エッジデバイスの要求を満たすために、エッジリソースに要求を送信する。【選択図】図４
2020167666.tif 000002
【特許請求の範囲】
【請求項１】
エッジデバイスから関数を実行する要求を受け取り、
前記エッジデバイスによって要求された１つ以上のセキュリティ要件に応じて、前記要求を満たす複数のエッジリソースのうちの１つを選択し、
前記１つ以上のセキュリティ要件に従って前記エッジデバイスの前記要求を満たすエッジリソースに前記要求を送信する、
回路を備える、コンピューティングデバイス。
【請求項２】
前記回路は更に、前記エッジデバイスから前記関数に関連付けられる前処理コードを受け取る、
請求項１に記載のコンピューティングデバイス。
【請求項３】
前記要求を満たす前記複数のエッジリソースのうちの前記１つを選択することは、前記前処理コードを実行することを含み、前記前処理コードの実行は、デバイスに、前記要求で指定された前記１つ以上のセキュリティ要件を満たすセキュリティ機能を有する前記複数のエッジリソースのうちの１つを識別させる、
請求項２に記載のコンピューティングデバイス。
【請求項４】
前記前処理コードの前記実行は、前記デバイスに更に、ロードバランシングポリシーに基づいて、前記複数のエッジリソースのうちの前記１つを識別させる、
請求項３に記載のコンピューティングデバイス。
【請求項５】
前記回路は更に、前記エッジリソースから、前記関数の実行の結果を受け取る、
請求項１に記載のコンピューティングデバイス。
【請求項６】
前記回路は更に、前記結果を要求側の前記エッジデバイスに提供する、
請求項５に記載のコンピューティングデバイス。
【請求項７】
前記結果を要求側の前記エッジデバイスに提供することは、ネットワーク接続を介して前記結果を要求側の前記エッジデバイスに送信することを含む、
請求項６に記載のコンピューティングデバイス。
【請求項８】
前記結果を要求側の前記エッジデバイスに提供することは、前記エッジデバイスによる取り出しのために前記結果をリポジトリのキューに格納することを含む、
請求項６に記載のコンピューティングデバイス。
【請求項９】
前記回路は更に、前記要求に関連付けられる前記エッジデバイスを認証する、
請求項１に記載のコンピューティングデバイス。
【請求項１０】
前記回路は更に、前記要求に関連付けられる前記エッジデバイスの認証に失敗すると、前記エッジデバイスにエラーを返す、
請求項９に記載のコンピューティングデバイス。
【請求項１１】
エッジゲートウェイデバイスによって、エッジデバイスから関数を実行する要求を受け取るステップと、
前記エッジゲートウェイデバイスによって、前記エッジデバイスによって要求された１つ以上のセキュリティ要件に応じて、前記要求を満たす複数のエッジリソースのうちの１つを選択するステップと、
前記エッジゲートウェイデバイスによって、前記１つ以上のセキュリティ要件に従って前記エッジデバイスの前記要求を満たすエッジリソースに前記要求を送信するステップと、
を含む、方法。
【請求項１２】
前記エッジゲートウェイデバイスによって、前記エッジデバイスから前記関数に関連付けられる前処理コードを受け取るステップ、
を更に含む、請求項１１に記載の方法。
【請求項１３】
前記エッジゲートウェイデバイスによって、前記要求を満たす前記複数のエッジリソースのうちの前記１つを選択するステップは、前記エッジゲートウェイデバイスによって前記前処理コードを実行することを含み、前記前処理コードを実行することは、前記エッジゲートウェイデバイスに、前記要求で指定された前記１つ以上のセキュリティ要件を満たすセキュリティ機能を有する前記複数のエッジリソースのうちの１つを識別させる、
請求項１２に記載の方法。
【請求項１４】
前記エッジゲートウェイデバイスによって前記前処理コードを実行することは、前記エッジゲートウェイデバイスに更に、ロードバランシングポリシーに基づいて、前記複数のエッジリソースのうちの前記１つを識別させる、
請求項１３に記載の方法。
【請求項１５】
前記エッジゲートウェイデバイスによって、前記エッジリソースから前記関数の実行の結果を受け取るステップ、
を更に含む、請求項１１に記載の方法。
【請求項１６】
前記エッジゲートウェイデバイスによって、前記結果を要求側の前記エッジデバイスに提供するステップ、
を更に含む、請求項１５に記載の方法。
【請求項１７】
前記エッジゲートウェイデバイスによって、前記結果を要求側の前記エッジデバイスに提供することは、ネットワーク接続を介して、前記エッジゲートウェイデバイスによって、前記結果を要求側の前記エッジデバイスに送信することを含む、
請求項１６に記載の方法。
【請求項１８】
前記エッジゲートウェイデバイスによって、前記結果を要求側の前記エッジデバイスに提供することは、前記エッジデバイスによる取り出しのために、前記エッジゲートウェイデバイスによって、前記結果をリポジトリのキューに格納することを含む、
請求項１６に記載の方法。
【請求項１９】
前記エッジゲートウェイデバイスによって、前記要求に関連付けられる前記エッジデバイスを認証するステップと、
前記要求に関連付けられる前記エッジデバイスの認証に失敗すると、前記エッジゲートウェイデバイスによって、前記エッジデバイスにエラーを返すステップと、
を更に含む、請求項１１に記載の方法。
【請求項２０】
実行されていることに応答して、デバイスに請求項１１乃至１９のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【請求項２１】
請求項２０に記載のコンピュータプログラムを記憶する１つ以上の機械読取可能な記憶媒体。
【請求項２２】
請求項１１乃至１９のいずれか一方に記載の方法を実行するための手段を備えるコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
エッジコンピューティングは、クラウドネットワーク内の集中型の場所とは対照的に、要求側のデバイスにより近いネットワークの場所で処理リソースを提供する。そのようにすることにより、デバイスが重要なデータを比較的迅速に受け取ることを確実にする。さらに、エッジネットワーク内のサービスプロバイダは、様々なアプリケーションのためにエッジデバイスによってアクセス可能なサービスを提供してよい。例えばサービスプロバイダは、エッジデバイスが要求することができるファンクション・アズ・ア・サービス（ＦａａＳ：Function-as-a-Service）サービスを実装することができる。特に、エッジデバイスは、サービスプロバイダによってホストされるアクセラレータデバイス上で加速関数（accelerated  function）を実行するよう、ＦａａＳサービスに要求を送信することができる。そのようにすることにより、エッジデバイスが、従来のプロセッサ上で演算を実行した場合よりも、ワークロード演算を比較的高速に実行することが可能になる。さらに、加速関数がエッジネットワーク上で実行されるので、エッジデバイスは、比較的低いレイテンシで加速関数の結果を受け取ることができる。
【０００２】
複数のサービスプロバイダが、１つの所与の加速関数をホストすることがある。しかしながら、各サービスプロバイダは、他のサービスプロバイダによって提供される機能とは異なるセキュリティ機能を割り当てることがある。例えばサービスプロバイダＡは、所与のタイプの指定されたビットサイズ仕様までの暗号化アルゴリズムを提供することがあり、一方、サービスプロバイダＢは、異なるタイプ及び異なるビットサイズ仕様の暗号化アルゴリズムを提供する。別の例として、サービスプロバイダＡは、特定の組織によって、信頼できるプロバイダとして認証される可能性があるが、サービスプロバイダＢは、同じ認証を有していない可能性がある。エッジデバイスに対する多くのユースケース（例えば拡張及び仮想現実、アシスト及び自律運転、工場自動化、近接トリガサービス等）を考慮すると、各ユースケースのワークロードの多様性は、互いに異なるセキュリティ機能を必要とすることがある。
【図面の簡単な説明】
【０００３】
本明細書で説明される概念は、添付の図面において、限定ではなく例として示されている。説明の簡潔性及び明確性のために、図面に示されている要素は、必ずしも縮尺通りに描かれていない。適切と考えられる場合、参照ラベルは、対応する要素又は類似の要素を示すために図面の中で繰り返される。
【０００４】
【図１】要求された加速関数のセキュリティ要件をファンクション・アズ・ア・サービスのプロバイダに一致（matching）させるためのシステムの少なくとも１つの実施形態の簡略化された図である。
【０００５】
【図２】図１に関連して説明されたシステムに含まれるエッジゲートウェイデバイスの少なくとも１つの実施形態の簡略化されたブロック図である。
【０００６】
【図３】図１及び図２のエッジゲートウェイデバイスによって確立され得る環境の簡略化されたブロック図である。
【０００７】
【図４】要求された加速関数に関するセキュリティ要件をファンクション・アズ・ア・サービスのプロバイダに一致させるために、図１及び図２のエッジゲートウェイデバイスによって実行され得る方法の少なくとも１つの実施形態の簡略化されたブロック図である。
【０００８】
【図５】図１のシステムで利用され得る、フォグ及びモバイルエッジコンピューティング（ＭＥＣ）ネットワークトポロジの簡略化されたブロック図である。
【発明を実施するための形態】
【０００９】
本開示の概念は、種々の修正及び代替形態の影響を受けやすいが、その特定の実施形態が、図面において例示として図示され、本明細書において詳細に説明される。しかしながら、本開示の概念を、開示された特定の形態に限定する意図はなく、反対に、本開示及び添付の特許請求の範囲と整合性のあるすべての修正、均等物及び代替物を網羅するよう意図していることを理解されたい。
【００１０】
明細書における「一実施形態」、「実施形態」、「例示的実施形態」等への言及は、説明される実施形態が、特定の特徴、構造又は特性を含むことがあるが、すべての実施形態が、その特定の特徴、構造又は特性を含んでもよく、あるいは必ずしも含んでいなくてもよいことを示す。さらに、このようなフレーズは、必ずしも同じの実施形態を指すものではない。さらに、特定の特徴、構造又は特性がある実施形態に関連して記載されているとき、明示的に説明されているか否かにかかわらず、他の実施形態に関連して、そのような特徴、構造又は特性を得ることができることは当業者の知識内であると言える。加えて、「Ａ、Ｂ及びＣの少なくとも１つ」の形のリストに含まれる項目は、（Ａ）；（Ｂ）；（Ｃ）；（Ａ及びＢ）；（Ａ及びＣ）；（Ｂ及びＣ）又は（Ａ、Ｂ及びＣ）を意味すると解釈されるべきである。同様に、「Ａ、Ｂ又はＣの少なくとも１つ」の形で列挙される項目は、（Ａ）；（Ｂ）；（Ｃ）；（Ａ及びＢ）；（Ａ及びＣ）；（Ｂ及びＣ）又は（Ａ、Ｂ及びＣ）を意味し得る。
【００１１】
開示される実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア又はそれらの任意の組合せで実装されてよい。また、開示される実施形態は、一時的又は非一時的な機械読取可能（例えばコンピュータ読取可能）記憶媒体によって搬送されるか又はその上に記憶される命令として実装されてもよく、１つ以上のプロセッサによって読み取られて実行されてよい。機械読取可能な記憶媒体は、機械により読取可能な形態で情報を格納又は伝送するための任意のストレージデバイス、機構又は他の物理的構造（例えば揮発性又は不揮発性メモリ、メディアディスク又は他のメディアデバイス）として具現化されてよい。
【００１２】
開示される実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア又はそれらの任意の組合せで実装されてよい。また、開示される実施形態は、一時的又は非一時的な機械読取可能（例えばコンピュータ読取可能）記憶媒体によって搬送されるか又はその上に記憶される命令として実装されてもよく、１つ以上のプロセッサによって読み取られて実行されてよい。さらに、開示される実施形態は、宛先デバイス上で実行するための命令を準備するために予備処理演算を必要とし得る予備命令のセットとして最初に符号化（例えば機械読取可能な記憶媒体上に符号化）されてよい。予備処理は、命令をデバイス上に存在するデータと組み合わせること、命令を異なるフォーマットに変換すること、圧縮、圧縮解除、暗号化及び／又は復号を実行すること、命令の異なるセクションを含む複数のファイルを組み合わせること、命令を、ライブラリ、オペレーティングシステム等のようなデバイス上に存在する他のコードと統合すること又は同様の演算を含んでよい。予備処理は、ソースコンピューティングデバイス（例えば命令を送信するデバイス）、宛先コンピュータデバイス（例えば命令を実行するデバイス）又は中間デバイスによって実行されてよい。機械読取可能な記憶媒体は、機械により読取可能な形態で情報を格納又は伝送するための任意のストレージデバイス、機構又は他の物理的構造（例えば揮発性又は不揮発性メモリ、メディアディスク又は他のメディアデバイス）として具現化されてよい。
【００１３】
次に、図１を参照すると、要求された加速関数のセキュリティ要件をファンクション・アズ・ア・サービス（ＦａａＳ）プロバイダに一致させるためのシステム１００は、エッジゲートウェイデバイス１１４と通信するエッジデバイス１１０を含む。エッジゲートウェイデバイス１１４は、エッジデバイス１１０と、１つ以上のエッジリソース１５０、１５２、１５４（例えばセルラーネットワークオペレータのような１つ以上のサービスプロバイダ１４０、１４２、１４４によって、それぞれ所有及び／又は操作されるコンピュータデバイス及びその構成要素のようなリソース）又はクラウド内に位置する他のコンピュータデバイスとの間でデータを通信する能力を有する任意のコンピューティングデバイスとして具体化されてよい。さらに、エッジゲートウェイデバイス１１４は、例示的な実施形態では、エッジリソース１５０、１５２、１５４の特性に関する要求、例えばエッジリソース１５０、１５２、１５４内（例えばエッジリソース１５０、１５２、１５４を形成するコンピュータデバイス内）のプロセッサ、アクセラレータデバイス及び／又は他の構成要素のアーキテクチャ、これらのエッジリソース１５０、１５２、１５４の利用に関連付けられるレイテンシ、電力使用及びコスト（例えば金銭的コスト）等に関する要求をエッジデバイス１１０から受け取り、応答するように構成される。エッジゲートウェイデバイス１１４及びエッジリソース１５０、１５２、１５４は、例示的な実施形態では、クラウドのエッジに沿った（例えばエッジネットワーク内の）１つ以上の位置（例えば小セル、基地局内等）に配置される。
【００１４】
エッジネットワークは、無線アクセスネットワーク（ＲＡＮ）対応型のエンドポイントデバイス（例えばモバイルコンピューティングデバイス、ＩｏＴ（Internet  of  Things）デバイス、スマートデバイス等）に近接して配置される、エッジコンピューティング及び／又はストレージリソースを提供する任意のタイプのネットワークとして具現化されてよい。言い換えると、エッジネットワークは、キャリアネットワーク（例えばＧＳＭ（登録商標）（Global  System  for  Mobile  Communications）ネットワーク、ＬＴＥ（Long-Term  Evolution）ネットワーク、５Ｇネットワーク等）を含むサービスプロバイダコアネットワークへの入口点として機能し、同時に記憶及び／又は計算能力も提供する、エンドポイントデバイスと従来のモバイルネットワークアクセスポイントとの間の「エッジ」に配置される。したがって、エッジネットワークは、エンタープライズアプリケーション（例えばリモートクラウド、データセンタ等に収容される）及び／又は他のネットワークベースのサービスへの無線アクセスインタフェースを提供することができ、また、ストレージ／コンピュータリソースをエンドポイントデバイスにより近くに持ってくることができる。一部の計算／処理をエッジネットワークで実行することができるので、低減されたレイテンシ、帯域幅等といった効率性（すなわち、リモートクラウド、データセンタ等で実行されているそのような計算／処理に対して）を実現することができる。エッジネットワークの意図された目的／能力に応じて、エッジネットワークは、１つ以上のエッジコンピューティングデバイスを含んでもよい。１つ以上のエッジコンピューティングデバイスは、１つ以上のゲートウェイ、サーバ、モバイルエッジコンピューティング（ＭＥＣ）機器等を含んでもよい。さらに、システム１００は、複数の層を有する階層構造に編成されてもよい。例えば所与の層は、上述のエッジコンピューティングデバイス、例えばエッジデバイス１１０に相対的に近いネットワークの位置にあるエッジコンピューティングデバイスを含んでもよい。次の層は、エッジリソースを提供するセルタワー及び基地局を含んでよい。続く層は、コアデータセンタ１９０内の中央オフィスステーションを含んでよい。
【００１５】
いくつかの実施形態において、エッジネットワークは、フォグネットワーク（例えばフォグ又はエッジノード１８０）の一部を形成するか又は他の方法でフォグネットワークへの入口点を提供してよいことを理解されたい。フォグネットワークは、コアデータセンタ１９０（例えばエッジリソース１５０、１５２、１５４よりも更に離れていてシステム１００の階層のより高いレベルにあり、かつ、１つ以上のサービス（例えば１つ以上のクライアントの代わりのプロセス）を実行することができる複数のコンピュータデバイスを含む、データセンタ）と、エンドポイントデバイス（例えばエッジデバイス１１０）との間のいずれかの場所にコンピューティング、ストレージ、制御及びネットワーキングのリソース及びサービスを分散する、システムレベルの水平アーキテクチャとして具現化されてよい。
【００１６】
一実施形態では、エッジデバイス１１０は、（例えばプロセッサ及び／又はアクセラレータデバイスを使用して）その中に含まれるアプリケーション１１２を実行する。アプリケーション１１２は、処理するための１つ以上のサービス又はワークロードを含んでよい。例えばエッジデバイス１１０が、システム１００を形成するエッジネットワークに接続される自律車両を表すと仮定する。アプリケーション１１２は、車両を動作させるために使用されるロケーション、ナビゲーション及び他の機能のような、自律車両の正常な動作を保証するための様々な機能（functions）を含むことができる。さらに、アプリケーション１１２は、エッジリソース１５０、１５２又は１５４によって提供されるサービスからのデータを要求することがある。一般に、エッジゲートウェイデバイス１１４は、このような要求を受け取ることができる。その後、エッジゲートウェイデバイス１１４は、その要求を評価して、サービスプロバイダ１４０、１４２、１４４のうちの１つによって操作される適切なサービスに（あるいはフォグ又はエッジノード１８０又はコアデータセンタ１９０に）要求を転送してよい。他のエッジデバイス１１０及びアプリケーション１１２のユースケースは、スマートシティにおけるＩｏＴデバイス、拡張現実（ＡＲ）／仮想現実（ＶＲ）、アシスト運転車両、工場自動化、近接トリガサービス等を含むことができる。
【００１７】
さらに、エッジデバイス１１０は、エッジリソース１５０、１５２、１５４の一部として含まれるＦａａＳサービス１６０、１６２、１６４に要求を送信してもよい。各ＦａａＳサービス１６０、１６２、１６４は、アプリケーション１１２が、サービスプロバイダ１４０、１４２、１４４によってホストされる加速関数にアクセスすることを可能にする。加速関数は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、グラフィクス処理ユニット（ＧＵＩ）等のような、エッジリソース１５０、１５２、１５４によって提供されるアクセラレータデバイスにおいて実行される、所定のビットストリームデータとして具体化されてよい。有利には、アプリケーション１１２は、ワークロード演算（例えばＡＲ／ＶＲ機能、機械学習機能、マトリックス演算等）の実行を加速するように加速関数を要求してよい。
【００１８】
またさらに、各サービスプロバイダ１４０、１４２、１４４は、それぞれ、各ＦａａＳサービス１６０、１６２、１６４について１つ以上のセキュリティ機能を定義してよい。加えて、セキュリティ機能は、各ＦａａＳサービス１６０、１６２及び１６４にわたって異なってよい。例えばＦａａＳサービス１６０は、１２８ビットのＡＥＳ（Advanced  Encryption  Standard）暗号化のみを所与の加速関数へのデータ入力に適用することができ、一方、ＦａａＳサービス１６２は、１２８ビット、１９２ビット、２５６ビットのＡＥＳ暗号化を可能にする。別の例として、ＦａａＳサービス１６０は、認証局Ａによって信頼できるプロバイダとして認証されてもよく、一方、ＦａａＳサービス１６４は、認証局Ｂによって信頼できるプロバイダとして認証されてもよい。サービスプロバイダ１４０、１４２、１４４にわたって異なる可能性のある機能の他の例には、加速関数のバージョン、加速関数に渡されるデータをセキュアにするために使用されるセキュリティアルゴリズムのタイプ、所与の加速関数への最新の更新日等が含まれる。
【００１９】
典型的には、アプリケーション１１２は、ユースケースに基づいて及び所望の加速関数に基づいて、特定のレベルのセキュリティ要件を必要とする。このような要件を指定するための１つのアプローチは、エッジネットワークへの要求を各加速関数について要件の静的リストとともにコアデータセンタ１９０に送信し、次に、コアデータセンタが、それに応じて、要求を所与のサービスプロバイダ１４０、１４２、１４４にマッピングすることを含む。しかしながら、そうする際に、コアデータセンタ１９０は、アプリケーション１１２による要求の変化に応じてマッピングを更新する必要があり、その結果、クライアントとデータセンターレベルの両方において相当なオーバヘッドと、リソースフラグメンテーションが生じることになる。別のアプローチは、所与の要求を満たすために適切なＦａａＳサービスを選択する前に、コアデータセンタ１９０が、確認応答（acknowledgement）を受け取るためにアプリケーション１１２とのハンドシェイク動作を実行することを含む。しかしながら、そうすることは、タイムクリティカルなＦａａＳ要求がサービス品質の期限内に完了することを妨げる可能性があり、リソースの積極的な確保及び断片化を必要とすることがある。
【００２０】
本明細書で更に説明されるように、実施形態は、一致するセキュリティ要件に基づいてＦａａＳサービスに要求を動的に割り当てるための技術を提供する。一実施形態では、例示的なエッジゲートウェイデバイス１１４は、ＦａａＳセキュリティ管理論理ユニット１１６を含む。ＦａａＳセキュリティ管理論理ユニット１１６は、エッジデバイス１１０と、異種のセキュリティ機能を有することがあるＦａａＳサービス１６０、１６２、１６４との間のインタフェースを提供するように構成される任意のデバイス及び／又は回路（例えばコプロセッサ、ＦＰＧＡ、ＡＳＩＣ等）として具現化されてよい。ＦａａＳセキュリティ管理論理ユニット１１６によって提供されるインタフェースは、利用可能なセキュリティ機能及び他のポリシー（例えばロードバランシングポリシー、ＱｏＳ要件、ＳＬＡ要件等）に基づいて、所与のＦａａＳサービス１６０、１６２及び１６４に要求を割り当てる際に使用されてよい。より具体的には、インタフェースは、アプリケーション１１２が、エッジゲートウェイデバイス１１４に、加速関数を実行するＦａａＳサービス要求とともに、その加速関数に関連付けられる前処理コード（例えばエッジゲートウェイデバイス１１４上のアクセラレータデバイスによって実行可能な実行可能ファイル、バイナリ、ビットストリームデータ）を送信することを可能にする。一実施形態では、前処理コードは、エッジゲートウェイデバイス１１４によって公開されるアプリケーションプログラミングインタフェース（ＡＰＩ）を呼び出して、サービスプロバイダ１４０、１４２、１４４の構成可能なリストにアクセスする。リストは、各サービスプロバイダ１４０、１４２、１４４において加速関数に関連付けられるセキュリティ機能を指定する。実行されると、エッジゲートウェイデバイス１１４は、１つ以上のエッジリソース１５０、１５２、１５４、より詳細には、ＦａａＳサービス１６０、１６２、１６４に対するセキュリティ要件の一致（matching）を受け取る。一旦一致すると、エッジゲートウェイデバイス１１４は、ＦａａＳ要求を、一致するＦａａＳサービス１６０、１６２、１６４のうちの１つにマッピングすることができる（例えばマッピングは更に、ロードバランシングポリシー及びＱｏＳ要件のような他の基準に対して決定されている）。
【００２１】
有利には、このようなアプローチは、クライアント側のエッジデバイス１１０に対してより大きな柔軟性を提供する。例えばこのアプローチは、クライアントに対して、あるいはシステム１００内のオーケストレーションのために構成されるデバイスに対してさえも、多くの管理オーバヘッドは追加しない。さらに、エッジデバイス１１０は、サービスプロバイダ上で実行すべきすべてのチェック及びセキュリティが前処理コードによる粒度で実施されることを確実にする。例えばＦａａＳサービスは、１つ以上の追加機能で定期的に更新されてよい。次に、そのような更新は潜在的に、セキュリティ機能を追加する又は危険にさらす（compromise）可能性がある。このアプローチは、エッジデバイス１１０が、そのような更新されたバージョンに対してチェックを実施するための前処理コードを提供し得ることを確実にする。さらに、このアプローチは、エッジデバイス１１０がＦａａＳ要求の異なるインスタンスに対して異なるセキュリティ要件をシームレスに指定することを可能にするので、エッジゲートウェイデバイス１１０は、エッジリソース１５０、１５２、１５４の割り当てを多様化して、ＦａａＳ要求を比較的より効率的に提供することができる。
【００２２】
図２を参照すると、エッジゲートウェイデバイス１１４は、１つ以上の物理コンピュータデバイス又は仮想化システム（例えば基礎となるハードウェアリソースが、仮想化環境内で実行しているソフトウェアには物理的なハードウェアとして見えるが、抽象化層によってソフトウェアから分離される、仮想マシン又は仮想コンテナのような仮想化環境内で実行される、１つ以上の機能）として具現化され得る。例示的に、エッジゲートウェイデバイス１１４は、計算エンジン（本明細書では「計算エンジン回路」とも呼ばれる）２１０、入力／出力（Ｉ／Ｏ）サブシステム２１６、通信回路２１８及び１つ以上のデータストレージデバイス２２２を含む。本明細書で説明されるように、エッジゲートウェイデバイス１１４は、１つ以上のアクセラレータデバイス２２４も含んでよい。当然、他の実施形態では、エッジゲートウェイデバイス１１４は、コンピュータに一般的に見られるような他の又は追加の構成要素（例えばディスプレイ、周辺装置等）を含んでもよい。加えて、いくつかの実施形態において、例示的な構成要素の１つ以上は、別の構成要素に組み込まれてもよく又は他の方法で別の構成要素の一部を形成してもよい。計算エンジン２１０は、以下で説明される様々な計算機能を実行することができる任意のタイプのデバイス又はデバイスの集合として具現化されてもよい。いくつかの実施形態において、計算エンジン２１０は、集積回路、埋め込みシステム、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、システムオンチップ（ＳＯＣ）又は他の統合システム又はデバイスのような単一デバイスとして具現化されてもよい。例示的な実施形態では、計算エンジン２１０は、プロセッサ２１２及びメモリ２１４を含むか又はそれらとして具現化される。さらに、計算エンジンは、図１に関連して上述したＦａａＳセキュリティ管理ユニット１１６を含む。プロセッサ２１２は、本明細書で説明される機能を実行する（例えばエッジデバイス１１０のエッジリソースに対するサービス要求を処理する）ことができる任意のタイプのプロセッサとして具現化されてよい。例えばプロセッサ２１２は、マルチコアプロセッサ、マイクロコントローラ又は他のプロセッサ又は処理／制御回路として具現化されてよい。いくつかの実施形態において、プロセッサ２１２は、ＦＰＧＡ、特定用途向け集積回路（ＡＳＩＣ）、再構成可能なハードウェア又はハードウェア回路、本明細書で説明される機能の実行を容易にするための他の特別なハードウェア又はその仮想化バージョンとして具現化されてもよく、それらを含んでもよく、あるいはそれらに結合されてもよい。
【００２３】
メモリ２１４は、本明細書で説明される機能を実行することができる任意のタイプの揮発性（例えば動的ランダムアクセスメモリ（ＤＲＡＭ）等）又は不揮発性メモリ又はデータストレージとして具現化されてよい。揮発性メモリは、記憶媒体によって記憶されているデータの状態を維持するために電力を必要とする記憶媒体であってもよい。揮発性メモリの非限定的な例は、動的ランダムアクセスメモリ（ＤＲＡＭ）又は静的ランダムアクセスメモリ（ＳＲＡＭ）のような種々のタイプのランダムアクセスメモリ（ＲＡＭ）を含んでよい。メモリモジュールにおいて使用され得るＤＲＡＭの１つの特定のタイプは、同期動的ランダムアクセスメモリ（ＳＤＲＡＭ）である。特定の実施形態において、メモリ構成要素のＤＲＡＭは、ＪＥＤＥＣによって公表されている規格、例えばＤＤＲ  ＳＤＲＡＭ用のＪＥＳＤ７９Ｆ、ＤＤＲ２  ＳＤＲＡＭ用のＪＥＳＤ７９−２Ｆ、ＤＤＲ３  ＳＤＲＡＭ用のＪＥＳＤ７９−３Ｆ、ＤＤＲ４  ＳＤＲＡＭ用のＪＥＳＤ７９−４Ａ、低電力ＤＤＲ（ＬＰＤＤＲ）用のＪＥＳＤ２０９、ＬＰＤＤＲ２用のＪＥＳＤ２０９−２、ＬＰＤＤＲ３用のＪＥＳＤ２０９−３、ＬＰＤＤＲ４用のＪＥＳＤ２０９−４に準拠することができる。そのような規格（及び類似の規格）は、ＤＤＲベースの規格と呼ばれることがあり、そのような規格を実装するストレージデバイスの通信インタフェースは、ＤＤＲベースのインタフェースと呼ばれることがある。
【００２４】
一実施形態において、メモリデバイスは、ＮＡＮＤ又はＮＯＲ技術に基づくようなブロックアドレス指定可能メモリデバイスである。メモリデバイスはまた、三次元クロスポイントメモリデバイス（例えばＩｎｔｅｌ  ３Ｄ  ＸＰｏｉｎｔ（登録商標）メモリ）又は他のバイトアドレス指定可能なライトインプレース（write-in-place）不揮発性メモリデバイスを含んでもよい。一実施形態では、メモリデバイスは、カルコゲナイドガラス、マルチ閾値レベル（multi-threshold  level）のＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、単一又はマルチレベルの相変化メモリ（ＰＣＭ）、抵抗性メモリ、ナノワイヤメモリ、強誘電体トランジスタのランダムアクセスメモリ（ＦｅＴＲＡＭ）、反強誘電体メモリ、メモリスタ技術を組み込んだ磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）メモリ、金属酸化物ベース、酸素空孔ベース及び導電ブリッジランダムアクセスメモリ（ＣＢ−ＲＡＭ）又はあるいはスピン移動トルク（ＳＴＴ）−ＭＲＡＭを含む抵抗性メモリ、スピントロニック磁気接合（spintronic  magnetic  junction  memory）ベースのデバイス、磁気トンネル接合（ＭＴＪ）ベースのデバイス、ＤＷ（Domain  Wall）及びＳＯＴ（Spin  Orbit  Transfer）ベースのデバイス、サイリスタベースのメモリデバイス、あるいは上記又は他のメモリの任意の組合せを使用するメモリデバイスであり得るか、これらを含んでもよい。メモリデバイスは、ダイ自体を指してもよく、かつ／又はパッケージ化されたメモリ製品を指してよい。
【００２５】
いくつかの実施形態では、３Ｄクロスポイントメモリ（例えばインテル３Ｄ  ＸＰｏｉｎｔ（登録商標）メモリ）は、トランジスタレス（transistor-less）スタック可能クロスポイントアーキテクチャを有してよい。このアーキテクチャでは、メモリセルは、ワードラインとビットラインとの交点に位置し、個々にアドレス指定可能であり、ビットストレージは、バルク抵抗における変化に基づく。一部の実施形態では、メモリ２１４のすべて又は一部がプロセッサ２１２に統合されてもよい。動作において、メモリ２１４は、１つ以上のアプリケーション、アプリケーションによって操作されるデータ、ライブラリ及びドライバのように、動作中に使用される様々なソフトウェア及びデータを格納してよい。
【００２６】
計算エンジン２１０は、Ｉ／Ｏサブシステム２１６を介してエッジゲートウェイデバイス１１４の他の構成要素と通信可能に結合される。Ｉ／Ｏサブシステム２１６は、計算エンジン２１０と（例えばプロセッサ２１２及び／又はメモリ２１４と）及びエッジゲートウェイデバイス１１４の他の構成要素との入出力動作を容易にするための回路及び／又は構成要素として具現化され得る。例えばＩ／Ｏサブシステム２１６は、メモリコントローラハブ、入力／出力制御ハブ、統合センサハブ、ファームウェアデバイス、通信リンク（例えばポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路基板トレース等）及び／又は入出力動作を容易にするための他の構成要素及びサブシステムとして具現化されるか、そうでなければこれらを含んでもよい。いくつかの実施形態において、Ｉ／Ｏサブシステム２１６は、システムオンチップ（ＳｏＣ）の一部を形成してよく、プロセッサ２１２、メモリ２１４及びエッジゲートウェイデバイス１１４の他の構成要素のうちの１つ以上とともに、計算エンジン２１０に組み込まれてもよい。
【００２７】
通信回路２１８は、エッジゲートウェイデバイス１１４と別のコンピュータデバイス（例えばエッジデバイス１１０、エッジリソース１５０、１５２、１５４等）との間のネットワークを介した通信を可能にすることができる任意の通信回路、デバイス又はそれらの集合として具現化されてよい。通信回路２１８は、任意の１つ以上の通信技術（例えば有線又は無線通信）及び関連するプロトコル（例えばセルラネットワーキングプロトコル、Ｗｉ−Ｆｉ（登録商標）、ＷｉＭＡＸ、Ｅｔｈｅｒｎｅｔ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等）を使用して、そのような通信を行うように構成されてもよい。
【００２８】
例示的な通信回路２１８は、ホストファブリックインタフェース（ＨＦＩ）とも呼ばれることがあるネットワークインタフェースコントローラ（ＮＩＣ）２２０を含む。ＮＩＣ２２０は、１つ以上のアドインボード、ドーターカード、ネットワークインタフェースカード、コントローラチップ、チップセットとして、あるいはエッジゲートウェイデバイス１１４によって別のコンピュータデバイス（例えばエッジデバイス１１０、エッジリソース１５０、１５２、１５４等）に接続するために使用され得る他のデバイスとして具現化されてよい。いくつかの実施形態では、ＮＩＣ２２０は、１つ以上のプロセッサを含むシステムオンチップ（ＳｏＣ）の一部として具現化されてもよく、あるいは１つ以上のプロセッサも含むマルチチップ・パッケージ上に含まれてもよい。いくつかの実施形態において、ＮＩＣ２２０は、ローカルプロセッサ（図示せず）及び／又はローカルメモリ（図示せず）を含んでもよく、これらは両方ともＮＩＣ２２０に対してローカルである。そのような実施形態では、ＮＩＣ２２０のローカルプロセッサは、本明細書で説明される計算エンジン２１０の機能の１つ以上を実行する能力を有してよい。追加又は代替的に、そのような実施形態において、ＮＩＣ２２０のローカルメモリは、基板レベル、ソケットレベル、チップレベル及び／又は他のレベルでエッジゲートウェイデバイス１１４の１つ以上の構成要素に統合されてよい。
【００２９】
１つ以上の例示的なデータストレージデバイス２２２は、例えばメモリデバイス及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ又は他のデータストレージデバイスのような、データの短期間又は長期間の記憶のために構成される任意のタイプのデバイスとして具現化されてよい。各データストレージデバイス２２２は、データストレージデバイス２２２のためのデータ及びファームウェアコードを格納するシステム区画を含んでよい。各データストレージデバイス２２２はまた、オペレーティングシステムのためのデータファイル及び実行可能プログラムを格納する１つ以上のオペレーティングシステム区画も含んでよい。
【００３０】
各アクセラレータデバイス２２４は、プロセッサ２１２が同じ演算を実行するよりも早く、機械学習又は人工知能演算のような一組の演算を実行するように構成される、任意のデバイス又は回路として具現化されてよい。アクセラレータデバイス２２４は、１つ以上のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）２３０を含んでもよく、それらの各々が、所定の構成（例えばビットストリーム）に従って一組の演算を実行するように構成されることができる論理ゲートのセット（例えばマトリックス）として具現化されてもよい。特に、所与のアクセラレータデバイス２２４は１つ以上のスロットを含んでよく、その各々が、関数（例えばファンクション・アズ・ア・サービス（ＦａａＳ）関数、加速ファンクション・アズ・ア・サービス（ＡＦａａＳ）関数）を示すカーネルビットストリームを用いてプログラムされてよい。サービス要求に応答して、アクセラレータデバイスは、所与のビットストリームを実行して関数の実行を加速してよい。アクセラレータデバイス２２４は、追加又は代替的に、グラフィクス関連演算（例えばマトリックス乗算、ベクトル演算等）を実行するように構成される任意のデバイス又は回路（例えばプログラマブル論理チップ、プロセッサ等）として具現化され得る、グラフィクス処理ユニット（ＧＰＵ）２３２を含んでもよい。追加又は代替的に、アクセラレータデバイス２２４は、機械ビジョンに関連する演算を実行するように構成される、任意のデバイス又は回路（例えばプログラマブル論理チップ、プロセッサ等）として具現化され得るビジョン処理ユニット（ＶＰＵ）２３４を含んでもよい。
【００３１】
エッジリソース１５０、１５２、１５４（例えばコンピュータデバイス１６０、１６２、１６４、１６６、１６８、１７０）、エッジデバイス１１０、フォグノード１８０及びコアデータセンタ１９０は、エッジゲートウェイデバイス１１４を参照して図２で説明したものと同様の構成要素を有してよい。エッジゲートウェイデバイス１１４のこれらの構成要素の説明は、いくつかの実施形態では、ＦａａＳセキュリティ管理論理ユニット１１６がエッジゲートウェイデバイス１１４以外のデバイスに含まれない点を除いて、エッジリソース１５０、１５２、１５４（例えばＦａａＳサービスを実行しているデバイス１６０、１６２、１６４、１６６、１６８、１７０）、エッジデバイス１１０、フォグノード１８０及びコアデータセンタ１９０の構成要素の説明に等しく適用可能である。さらに、エッジリソース１５０、１５２、１５４（例えばＦａａＳサービスを実行しているデバイス１６０、１６２、１６４、１６６、１６８、１７０）、エッジデバイス１１０、フォグノード１８０及びコアデータセンタ１９０のいずれかは、エッジゲートウェイデバイス１１４に関して上述されておらず、説明の明確性のために本明細書では説明されていない、コンピュータデバイスで一般的に見られる他の構成要素、サブ構成要素及びデバイスを含んでもよいことが理解されるべきである。さらに、コンピュータデバイスの１つ以上の構成要素は、任意の距離にわたって分散されてもよく、必ずしも同じ物理的ユニット内に収容されるわけではないことを理解されたい。
【００３２】
エッジゲートウェイデバイス１１４、エッジリソース１５０、１５２、１５４（例えばＦａａＳサービスを実行しているデバイス１６０、１６２、１６４、１６６、１６８、１７０）、エッジデバイス１１０、フォグノード１８０及びコアデータセンタ１９０は、例示的にネットワークを介して通信される。ネットワークは、任意のタイプの有線又は無線通信ネットワーク、あるいはそれらのハイブリッド又は組合せとして具現化されてよく、グローバルネットワーク（例えばインターネット）、ローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）、エッジネットワーク、フォグネットワーク、セルラネットワーク（例えばＧＳＭ（登録商標）（Global  System  for  Mobile  Communications）、３Ｇ、ＬＴＥ（Long  Term  Evolution）、ＷｉＭＡＸ（Worldwide  Interoperability  for  Microwave  Access）等）無線アクセスネットワーク（ＲＡＮ）、デジタル加入者回線（ＤＳＬ）ネットワーク、ケーブルネットワーク（例えば同軸ネットワーク、ファイバネットワーク等）又はそれらの任意の組合せを含む。
【００３３】
次に図３を参照すると、エッジゲートウェイデバイス１１４は、動作中に環境３００を確立してよい。例示的な環境３００は、ＦａａＳセキュリティマネージャ３１０、ＦａａＳサービスリスト３２０及びセキュリティ及びポリシーデータ３２２を含む。ＦａａＳセキュリティマネージャ３１０は、エッジデバイス１１０からＦａａＳ要求を受け取ること、前処理コードを実行して、ＦａａＳ要求で指定されたセキュリティ要件に一致する１つ以上のＦａａＳサービスを識別すること、識別されたＦａａＳサービスにＦａａＳ要求を送信すること、要求側のエッジデバイス１１０に結果を返すこと等のような、本明細書で説明される機能を実行するように構成される。
【００３４】
図示のように、ＦａａＳセキュリティマネージャ３１０は、許可コンポーネント３１２、管理インタフェースコンポーネント３１４、前処理コード実行コンポーネント３１６、そしてロードバランシング及びスイッチコンポーネント３１８を含む。環境３００のコンポーネントの各々は、ハードウェア、ファームウェア、ソフトウェア又はそれらの組合せとして具体化されてよい。いくつかの実施形態では、環境３００のコンポーネントのうちの１つ以上は、回路又は電気デバイスの集合（例えばＦａａＳセキュリティマネージャ回路３１０、許可コンポーネント回路３１２、管理インタフェースコンポーネント回路３１４、前処理コード実行コンポーネント回路３１６、ロードバランシング及びスイッチコンポーネント回路３１８等）として具体化されてもよい。このような実施形態では、ＦａａＳセキュリティマネージャ回路３１０、許可コンポーネント回路３１２、管理インタフェースコンポーネント回路３１４、前処理コード実行コンポーネント回路３１６又はロードバランシング及びスイッチコンポーネント回路３１８のうちの１つ以上が、ＦａａＳセキュリティ管理論理ユニット１１６（又はエッジゲートウェイデバイス１１４の他の構成要素）の一部を形成することができることを理解されたい。
【００３５】
例示的な実施形態では、ＦａａＳサービスリスト３２０は、システム１００内の各サービスプロバイダによって、例えばサービスプロバイダ１４０、１４２及び１４４によって提供される、現在利用可能なＦａａＳサービスを示す任意のデータとして具体化されてよい。ＦａａＳサービスに加えて、リストは、各々列挙されるＦａａＳサービスに関連付けられるセキュリティ機能（例えばＦａａＳバージョン、使用されるセキュリティアルゴリズム、使用される各セキュリティアルゴリズムで使用されるビットサイズ、ＦａａＳバージョンに関連付けられる日付、証明書（certification）等）も指定する。ＦａａＳサービスリスト３２０は、リレーショナルデータベース、ＣＳＶファイル、マークアップ言語ファイル（例えばＪａｖａＳｃｒｉｐｔ（登録商標）Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎファイル、拡張マークアップ言語ファイル等）として具体化されてよい。ポリシーデータ３２２は、特定のＦａａＳサービスへのＦａａＳ要求のルーティングに関連付けられるロードバランシング及びスイッチングポリシーを示す任意のデータとして具体化されてよい。例えばポリシーデータ３２２は、１つ以上のＦａａＳサービスが、要求された加速関数に対する所与の一組のセキュリティ要件に一致するように識別された後に、着信ＦａａＳ要求に使用する特定のロードバランシング技術を指定することができる。加えて、ポリシーデータ３２２は、所与のＦａａＳ要求のサービスに適用される（例えばレイテンシやスループット等についての）ＱｏＳ要件を示す任意のデータとして具体化されてよい。
【００３６】
例示的な認可コンポーネント３１２は、エッジデバイス１１０による着信要求を処理するように構成される。許可コンポーネント３１２は、それに供給される証明書（例えばデバイスＩＤ、ログイン証明書、認証証明書（attestation  credential））に対する要求を評価して、要求を認証することができる。さらに、許可コンポーネント３１２は、要求を受け取ると、ユーザ要求ロジックによって初期化されたキューに一時的に記憶することができる。キューは、ロードバランシング及びスイッチコンポーネント３１８が、選択されたＦａａＳサービスに要求をディスパッチする前に要求を格納する。
【００３７】
管理インタフェースコンポーネント３１４は、現在利用可能なＦａａＳサービス及び対応するセキュリティ機能でＦａａＳサービスリスト３２０を更新するように構成される。サービスプロバイダ１４０、１４２、１４４は、管理インタフェースコンポーネント３１４によって提供されるＡＰＩを介して、エッジゲートウェイデバイス１１４に更新を伝達してよい。
【００３８】
前処理コード実行コンポーネント３１６は、要求とともに受け取った前処理コードを実行するように構成される。例えば許可コンポーネント３１２は、要求及び要求側のエッジデバイス１１０を認証した後、要求とともにエッジデバイス１１０によって送信された前処理コードを、前処理コード実行コンポーネント３１６に送信することができる。例えば前処理コード実行コンポーネント３１６は、（例えば前処理コードがＦＰＧＡビットストリームとして具現化される場合に）前処理コードを実行するようにエッジゲートウェイデバイス１１４上の加速されたデバイスをプログラムすることができる。
【００３９】
ロードバランシング及びスイッチコンポーネント３１８は、１つ以上のサービスプロバイダによってホストされる、識別されたＦａａＳサービスにＦａａＳ要求を配信するように構成される。そうするために、例えばロードバランシング及びスイッチコンポーネント３１８は、前述のユーザ要求ロジックキューから要求を取り出してよい。取り出された要求は、既に実行された前処理コードに関連付けられ、一致する１つ以上のＦａａＳサービスが識別されている。ロードバランシング及びスイッチコンポーネント３１８は、ポリシーデータ３２２に従って適切なＦａａＳサービス提供ユニットに要求を一致させることができる。サービスによる加速関数のＦａａＳ実行が完了すると、ロードバランシング及びスイッチコンポーネント３１８は、加速関数の結果をエッジデバイス１１０に向けてよい。他の場合には、ロードバランシング及びスイッチコンポーネント３１８は、エッジデバイス１１０による取り出しのために、リポジトリのキューに結果を格納してよい。
【００４０】
次に、図４を参照すると、エッジゲートウェイデバイス１１４は、動作中に、要求された加速関数のセキュリティ要件をＦａａＳサービスプロバイダに一致させるための方法４００を実行することができる。一実施形態では、方法４００は、エッジゲートウェイデバイス１１４の種々のハードウェア及び／又はソフトウェア構成要素によって、例えばＦａａＳセキュリティマネージャ３１０に関連して説明されたそれらの構成要素によって実行されてよい。別の実施形態では、方法４００は、仮想化されたハードウェア構成要素によって実行されてもよい。
【００４１】
図示されるように、方法４００はブロック４０２で始まり、ここで、エッジゲートウェイデバイス１１４は、エッジデバイス１１０から、加速関数をホストする複数のサービスプロバイダのうちの１つによる関数の実行のための要求を受け取る。例えばブロック４０４において、エッジゲートウェイデバイス１１４は、エッジデバイス１１０から、加速関数を実行するための要求と、加速関数に関連付けられる前処理コードも受け取ることができる。別の例として、ブロック４０６では、エッジゲートウェイデバイス１１４は、エッジデバイス１１０から、加速関数を実行する要求を受け取ることができ、この要求は、加速関数を実行するための１つ以上のセキュリティ要件を指定する。例えば前処理コードは、所与の認証局によって認証されたサービスプロバイダからの所与の加速関数の最新バージョンについてＦａａＳサービスリストにクエリするように含まれることがある。
【００４２】
ブロック４０８において、エッジゲートウェイデバイス１１４は、要求に関連付けられるエッジデバイスを認証する。例えばエッジゲートウェイデバイス１１４は、エッジデバイス１１０及び要求を認証するために要求内に提供された証明書を評価してよい。このような証明書は、デバイス識別子、ユーザとパスワードの組合せ、公開鍵データ等を含んでよい。ブロック４１０において、エッジゲートウェイデバイス１１４は、認証が成功したかどうかを判断する。認証が成功しなかった場合、次いでブロック４１２において、エッジゲートウェイデバイス１１４は、要求側のエッジデバイス１１０にエラーを返す。
【００４３】
そうでなければ、ブロック４１４において、エッジゲートウェイデバイス１１４は、ＦａａＳサービスリスト及び１つ以上のポリシーに応じて、関数要求を満たすエッジリソースを選択する。より詳細には、そうするために、ブロック４１６において、エッジゲートウェイデバイス１１４は、前処理コードを実行して、ロードバランシングポリシー、セキュリティポリシー及びＦａａＳサービスリストに基づいてエッジリソースを識別する。前処理コードの実行により、エッジゲートウェイデバイス１１４に、要求で指定されたセキュリティ要件基準に一致するセキュリティ機能について、エッジサービスプロバイダ又はＦａａＳサービスのリストを評価させることができる。
【００４４】
ブロック４１８において、エッジゲートウェイデバイス１１４は、サービスプロバイダによってホストされている識別されたエッジリソースに、関数を実行するための要求を送信する。２つ以上のエッジリソースが識別された場合、エッジゲートウェイデバイス１１４は、ロードバランシングポリシー及びＱｏＳ要件等の１つ以上のポリシーを適用して、識別されたエッジリソースのうちのどれが要求をサービスすべきかを判断してよい。
【００４５】
次に、識別されたエッジリソース（特に、要求されたセキュリティ要件に一致するセキュリティ機能を有する識別されたＦａａＳサービス）は、エッジデバイス１１０の代わりに加速関数を実行する。ＦａａＳサービスは、エッジゲートウェイデバイス１１４に結果を返すことができる。ブロック４２０において、エッジゲートウェイデバイス１１４は、識別されたエッジリソースから結果を受け取る。ブロック４２２において、エッジゲートウェイデバイス１１４は、要求側のエッジデバイス１１０に要求を提供する。例えばそうするために、ブロック４２４において、エッジゲートウェイデバイス１１４は、結果を要求側のデバイスに直接送信する。別の例として、ブロック４２６では、エッジゲートウェイデバイス１１４は、エッジデバイス１１０による取り出しのためにリポジトリのキューに結果を格納する。
【００４６】
図５を簡単に参照すると、ＭＥＣ及びフォグネットワークトポロジ５００が図示されている。ネットワークトポロジ５００は、エンドポイント（エンドポイント／モノ（things）ネットワーク層５５０にある）、ゲートウェイ（ゲートウェイ層５４０にある）、アクセス又はエッジコンピューティングノード（例えば近隣ノード層５３０にある）、コアネットワーク又はルータ（例えば地域又は中央オフィス層５２０にある）を含む。（例えばゲートウェイ層５４０で確立される）フォグネットワークは、（例えばフォグノードについての）ニアユーザ・エッジデバイスの密集した地理的分布を表してよい。そのようなエッジデバイスは、とりわけ、（例えばクラウドデータセンタにデータを記憶する必要性を回避する）記憶能力、（例えばインターネットバックボーン上でルーティングされるのではなく）通信能力、制御能力、構成能力、（５ＧコアネットワークのＬＴＥ内のもののようにネットワークゲートウェイによって主に制御されるのではなく）測定及び管理能力を備えてよい。このコンテキストにおいて、図５は、（それらの位置、接続及び処理能力等に基づいて）異なる層に分類される多数のＭＥＣ及びフォグノードを統合する一般的なアーキテクチャを図示する。しかしながら、そのようなフォグノードは、エッジ演算処理ノードによって置き換えられてもよく又は増強されてもよいことが理解されるであろう。
【００４７】
フォグノードは、トポロジ及びそれらが位置する層に応じて分類されてよい。対照的に、ＭＥＣ標準の観点から、各フォグノードは、モバイルエッジ（ＭＥ）ホスト又はＭＥアプリ及び軽量ＭＥプラットフォームをホストする単純なエンティティとして考慮され得る。一例では、ＭＥＣ又はフォグノードは、ＭＥプラットフォームをホストしているデバイス（ＭＥホスト）に接続されているか又はそのデバイス上で実行するアプリケーションインスタンスとして定義されてよい。このように、アプリケーションはＭＥＣサービスを消費し、システム内のＭＥホストに関連付けられてよい。ノードは、マイグレーションされ、異なるＭＥホストに関連付けられ、あるいは他の（ローカル又はリモートの）ＭＥプラットフォームからのＭＥＣサービスを消費することがある。
【００４８】
エッジを使用することとは対照的に、上述のように、従来のアプリケーションは、情報を交換し調整するために、リモートクラウドのデータストレージ及び処理に依存することがある。クラウドデータ配置は、長期のデータ収集及び格納を可能にするが、非常に時間的に変化するデータには最適ではなく、レイテンシの課題に対処しようとする試み（例えば子供が道路に飛び出したときに車を止めること）に失敗する可能性がある。上述のようなエッジリソースの使用は、低レイテンシ方式でサービス（例えば関数の実行）を提供することを可能にし、いくつかの実施形態では、最小のオーバヘッドを提供する既存のＭＥＣサービスにおける特徴を利用することができる。
【００４９】
上述のＭＥＣの実装に加えて、前述のシステム及び方法は、個々のデバイスの名前は実装毎に異なってよいが、デバイスが図１を参照して説明したものと同様の方法で配置されて相互運用される、任意の環境（例えばスマートファクトリ、スマートシティ、スマートビルディング等）において実装されてもよいことを認識されたい。例えばスマートファクトリにおいて、上記のシステム及び方法は、特に、動作がリアルタイム又はほぼリアルタイムで実施される場合（例えば低レイテンシが重要である場合）において、１つ以上の製造動作が実施される精度、効率及び／又は安全性を改善することができる。スマートシティにおいては、上記のシステム及び方法は、トラフィック制御システム、環境モニタリングシステム及び／又は他の自動化又は半自動化システムの動作における精度、効率及び／又は安全性を改善することができる。同様に、スマートビルディングにおいて、上記開示は、センサに依拠して、収集情報（例えば脅威検出及び避難管理システム、ビデオモニタリングシステム、エレベータ制御システム等）を収集し、それらに対する作用を行う、任意のシステムの動作を改善するために適用され得る。
【００５０】
実施例
本明細書で開示される技術の例示的な例が、以下に提供される。技術の実施形態は、以下に記載される実施例のいずれか１つ以上及びそのいずれかの組合せを含んでよい。
【００５１】
実施例１は、エッジデバイスから関数を実行する要求を受け取り、エッジデバイスによって要求された１つ以上のセキュリティ要件に応じて、要求を満たす複数のエッジリソースのうちの１つを選択し、１つ以上のセキュリティ要件に従ってエッジデバイスの要求を満たすエッジリソースに要求を送信する回路を備える、コンピューティングデバイスを含む。
【００５２】
実施例２は、実施例１の主題を含み、回路は更に、エッジデバイスから関数に関連付けられる前処理コードを受け取る。
【００５３】
実施例３は、実施例１及び２のいずれかの主題を含み、要求を満たす、複数のエッジリソースのうちの１つを選択することは、前処理コードを実行することを含み、前処理コードの実行は、デバイスに、要求で指定された１つ以上のセキュリティ要件を満たすセキュリティ機能を有する複数のエッジリソースのうちの１つを識別させる。
【００５４】
実施例４は、実施例１〜３のいずれかの主題を含み、前処理コードの実行は、デバイスに更に、ロードバランシングポリシーに基づいて、複数のエッジリソースのうちの１つを識別させる。
【００５５】
実施例５は、実施例１〜４のいずれかの主題を含み、回路は更に、エッジリソースから関数の実行の結果を受け取る。
【００５６】
実施例６は、実施例１〜５のいずれかの主題を含み、回路は更に、結果を要求側のエッジデバイスに提供する。
【００５７】
実施例７は、実施例１〜６のいずれかの主題を含み、結果を要求側のエッジデバイスに提供することは、ネットワーク接続を介して結果を要求側のエッジデバイスに送信することを含む。
【００５８】
実施例８は、実施例１〜７のいずれかの主題を含み、結果を要求側のエッジデバイスに提供することは、エッジデバイスによる取り出しのために結果をリポジトリのキューに格納することを含む。
【００５９】
実施例９は、実施例１〜８のいずれかの主題を含み、回路は更に、要求に関連付けられるエッジデバイスを認証する。
【００６０】
実施例１０は、実施例１〜９のいずれかの主題を含み、回路は更に、要求に関連付けられるエッジデバイスの認証に失敗すると、エッジデバイスにエラーを返す。
【００６１】
実施例１１は、エッジゲートウェイデバイスによって、エッジデバイスから関数を実行する要求を受け取るステップと、エッジゲートウェイデバイスによって、エッジデバイスによって要求された１つ以上のセキュリティ要件に応じて、要求を満たす複数のエッジリソースのうちの１つを選択するステップと、エッジゲートウェイデバイスによって、１つ以上のセキュリティ要件に従ってエッジデバイスの要求を満たすエッジリソースに要求を送信するステップと、を含む、方法を含む。
【００６２】
実施例１２は、実施例１１の主題を含み、エッジゲートウェイデバイスによって、エッジデバイスから関数に関連付けられる前処理コードを受け取るステップを更に含む。
【００６３】
実施例１３は、実施例１１及び１２のいずれかの主題を含み、エッジゲートウェイデバイスによって、要求を満たす複数のエッジリソースのうちの１つを選択するステップは、エッジゲートウェイデバイスによって前処理コードを実行することを含み、前処理コードを実行することは、エッジゲートウェイデバイスに、要求で指定された１つ以上のセキュリティ要件を満たすセキュリティ機能を有する複数のエッジリソースのうちの１つを識別させる。
【００６４】
実施例１４は、実施例１１〜１３のいずれかの主題を含み、エッジゲートウェイデバイスによって前処理コードを実行することは、エッジゲートウェイデバイスに更に、ロードバランシングポリシーに基づいて、複数のエッジリソースのうちの１つを識別させる。
【００６５】
実施例１５は、実施例１１〜１４のいずれかの主題を含み、エッジゲートウェイデバイスによって、エッジリソースから関数の実行の結果を受け取るステップを更に含む。
【００６６】
実施例１６は、実施例１１〜１５のいずれかの主題を含み、エッジゲートウェイデバイスによって、結果を要求側のエッジデバイスに提供するステップを更に含む。
【００６７】
実施例１７は、実施例１１〜１６のいずれかの主題を含み、エッジゲートウェイデバイスによって、結果を要求側のエッジデバイスに提供することは、ネットワーク接続を介して、エッジゲートウェイデバイスによって、結果を要求側のエッジデバイスに送信することを含む。
【００６８】
実施例１８は、実施例１１〜１７のいずれかの主題を含み、エッジゲートウェイデバイスによって、結果を要求側のエッジデバイスに提供することは、エッジデバイスによる取り出しのために、エッジゲートウェイデバイスによって、結果をリポジトリのキューに格納することを含む。
【００６９】
実施例１９は、実施例１１〜１８のいずれかの主題を含み、エッジゲートウェイデバイスによって、要求に関連付けられるエッジデバイスを認証するステップと、要求に関連付けられるエッジデバイスの認証に失敗すると、エッジゲートウェイデバイスによって、エッジデバイスにエラーを返すステップとを更に含む。
【００７０】
実施例２０は、実行されると、デバイスに：エッジデバイスから、関数を実行する要求を受け取らせ；エッジデバイスによって要求された１つ以上のセキュリティ要件に応じて、要求を満たす複数のエッジリソースのうちの１つを選択させ；１つ以上のセキュリティ要件に従ってエッジデバイスの要求を満たすエッジリソースに要求を送信させる；複数の命令を備える、１つ以上の機械読取可能な記憶媒体。
【図１】
2020167666.tif 000003
【図２】
2020167666.tif 000004
【図３】
2020167666.tif 000005
【図４】
2020167666.tif 000006
【図５】
2020167666.tif 000007
【外国語明細書】
2020167666000001.pdf