(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】エッジクラウドにおけるファンクション・アズ・ア・サービスのセキュリティ要件を一致させるための技術
(51)【国際特許分類】
H04L 45/00 20220101AFI20240925BHJP
G06F 21/44 20130101ALI20240925BHJP
【FI】
H04L45/00
G06F21/44
【外国語出願】
(21)【出願番号】P 2020028056
(22)【出願日】2020-02-21
【審査請求日】2023-02-20
(32)【優先日】2019-03-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】クシティジ ドーシ
(72)【発明者】
【氏名】フランセスク ギム ベルナト
(72)【発明者】
【氏名】スーラジ プラバカラン
(72)【発明者】
【氏名】ネッド エム. スミス
【審査官】小林 義晴
(56)【参考文献】
【文献】米国特許出願公開第2019/0044886(US,A1)
【文献】国際公開第2015/163799(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/00
G06F 21/44
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスであって、
エッジデバイスから関数を実行する要求
及び前記関数に関連付けられる前処理コードを受け取
ることであって、前記要求は1つ以上のセキュリティ要件を指定することと、
前記前処理コードを実行することであって、前記前処理コードの実行は、当該コンピューティングデバイスに、前記要求で指定された前記1つ以上のセキュリティ要件を満たすセキュリティ機能を有する、複数のエッジリソースのうちの1つを識別させることと、
前記1つ以上のセキュリティ要件に従って前記エッジデバイスの前記要求を満たすエッジリソースに前記要求を送信する
ことと、
を実行する回路を備える、コンピューティングデバイス。
【請求項2】
前記前処理コードの前記実行は、
当該コンピューティングデバイスに更に、ロードバランシングポリシーに基づいて、前記複数のエッジリソースのうちの前記1つを識別させる、
請求項
1に記載のコンピューティングデバイス。
【請求項3】
前記回路は更に、前記エッジリソースから、前記関数の実行の結果を受け取る、
請求項1に記載のコンピューティングデバイス。
【請求項4】
前記回路は更に、前記結果を要求側の前記エッジデバイスに提供する、
請求項
3に記載のコンピューティングデバイス。
【請求項5】
前記結果を要求側の前記エッジデバイスに提供することは、ネットワーク接続を介して前記結果を要求側の前記エッジデバイスに送信することを含む、
請求項
4に記載のコンピューティングデバイス。
【請求項6】
前記結果を要求側の前記エッジデバイスに提供することは、前記エッジデバイスによる取り出しのために前記結果をリポジトリのキューに格納することを含む、
請求項
4に記載のコンピューティングデバイス。
【請求項7】
前記回路は更に、前記要求に関連付けられる前記エッジデバイスを認証する、
請求項1に記載のコンピューティングデバイス。
【請求項8】
前記回路は更に、前記要求に関連付けられる前記エッジデバイスの認証に失敗すると、前記エッジデバイスにエラーを返す、
請求項
7に記載のコンピューティングデバイス。
【請求項9】
エッジゲートウェイデバイスによって、エッジデバイスから関数を実行する要求
及び前記関数に関連付けられる前処理コードを受け取るステップ
であって、前記要求は1つ以上のセキュリティ要件を指定するステップと、
前記エッジゲートウェイデバイスによって、
前記前処理コードを実行するステップであって、前記前処理コードの実行は、前記エッジゲートウェイデバイスに、前記要求で指定された前記1つ以上のセキュリティ要件を満たすセキュリティ機能を有する、複数のエッジリソースのうちの1つを識別させるステップと、
前記エッジゲートウェイデバイスによって、前記1つ以上のセキュリティ要件に従って前記エッジデバイスの前記要求を満たすエッジリソースに前記要求を送信するステップと、
を含む、方法。
【請求項10】
前記エッジゲートウェイデバイスによって前記前処理コードを実行することは、前記エッジゲートウェイデバイスに更に、ロードバランシングポリシーに基づいて、前記複数のエッジリソースのうちの前記1つを識別させる、
請求項
9に記載の方法。
【請求項11】
前記エッジゲートウェイデバイスによって、前記エッジリソースから前記関数の実行の結果を受け取るステップ、
を更に含む、請求項
9に記載の方法。
【請求項12】
前記エッジゲートウェイデバイスによって、前記結果を要求側の前記エッジデバイスに提供するステップ、
を更に含む、請求項
11に記載の方法。
【請求項13】
前記エッジゲートウェイデバイスによって、前記結果を要求側の前記エッジデバイスに提供することは、ネットワーク接続を介して、前記エッジゲートウェイデバイスによって、前記結果を要求側の前記エッジデバイスに送信することを含む、
請求項
12に記載の方法。
【請求項14】
前記エッジゲートウェイデバイスによって、前記結果を要求側の前記エッジデバイスに提供することは、前記エッジデバイスによる取り出しのために、前記エッジゲートウェイデバイスによって、前記結果をリポジトリのキューに格納することを含む、
請求項
12に記載の方法。
【請求項15】
前記エッジゲートウェイデバイスによって、前記要求に関連付けられる前記エッジデバイスを認証するステップと、
前記要求に関連付けられる前記エッジデバイスの認証に失敗すると、前記エッジゲートウェイデバイスによって、前記エッジデバイスにエラーを返すステップと、
を更に含む、請求項
9に記載の方法。
【請求項16】
実行されていることに応答して、デバイスに請求項
9乃至
15のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【請求項17】
請求項
16に記載のコンピュータプログラムを記憶する1つ以上の機械読取可能な記憶媒体。
【請求項18】
請求項
9乃至
15のいずれか一方に記載の方法を実行するための手段を備えるコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
エッジコンピューティングは、クラウドネットワーク内の集中型の場所とは対照的に、要求側のデバイスにより近いネットワークの場所で処理リソースを提供する。そのようにすることにより、デバイスが重要なデータを比較的迅速に受け取ることを確実にする。さらに、エッジネットワーク内のサービスプロバイダは、様々なアプリケーションのためにエッジデバイスによってアクセス可能なサービスを提供してよい。例えばサービスプロバイダは、エッジデバイスが要求することができるファンクション・アズ・ア・サービス(FaaS:Function-as-a-Service)サービスを実装することができる。特に、エッジデバイスは、サービスプロバイダによってホストされるアクセラレータデバイス上で加速関数(accelerated function)を実行するよう、FaaSサービスに要求を送信することができる。そのようにすることにより、エッジデバイスが、従来のプロセッサ上で演算を実行した場合よりも、ワークロード演算を比較的高速に実行することが可能になる。さらに、加速関数がエッジネットワーク上で実行されるので、エッジデバイスは、比較的低いレイテンシで加速関数の結果を受け取ることができる。
【0002】
複数のサービスプロバイダが、1つの所与の加速関数をホストすることがある。しかしながら、各サービスプロバイダは、他のサービスプロバイダによって提供される機能とは異なるセキュリティ機能を割り当てることがある。例えばサービスプロバイダAは、所与のタイプの指定されたビットサイズ仕様までの暗号化アルゴリズムを提供することがあり、一方、サービスプロバイダBは、異なるタイプ及び異なるビットサイズ仕様の暗号化アルゴリズムを提供する。別の例として、サービスプロバイダAは、特定の組織によって、信頼できるプロバイダとして認証される可能性があるが、サービスプロバイダBは、同じ認証を有していない可能性がある。エッジデバイスに対する多くのユースケース(例えば拡張及び仮想現実、アシスト及び自律運転、工場自動化、近接トリガサービス等)を考慮すると、各ユースケースのワークロードの多様性は、互いに異なるセキュリティ機能を必要とすることがある。
【図面の簡単な説明】
【0003】
本明細書で説明される概念は、添付の図面において、限定ではなく例として示されている。説明の簡潔性及び明確性のために、図面に示されている要素は、必ずしも縮尺通りに描かれていない。適切と考えられる場合、参照ラベルは、対応する要素又は類似の要素を示すために図面の中で繰り返される。
【0004】
【
図1】要求された加速関数のセキュリティ要件をファンクション・アズ・ア・サービスのプロバイダに一致(matching)させるためのシステムの少なくとも1つの実施形態の簡略化された図である。
【0005】
【
図2】
図1に関連して説明されたシステムに含まれるエッジゲートウェイデバイスの少なくとも1つの実施形態の簡略化されたブロック図である。
【0006】
【
図3】
図1及び
図2のエッジゲートウェイデバイスによって確立され得る環境の簡略化されたブロック図である。
【0007】
【
図4】要求された加速関数に関するセキュリティ要件をファンクション・アズ・ア・サービスのプロバイダに一致させるために、
図1及び
図2のエッジゲートウェイデバイスによって実行され得る方法の少なくとも1つの実施形態の簡略化されたブロック図である。
【0008】
【
図5】
図1のシステムで利用され得る、フォグ及びモバイルエッジコンピューティング(MEC)ネットワークトポロジの簡略化されたブロック図である。
【発明を実施するための形態】
【0009】
本開示の概念は、種々の修正及び代替形態の影響を受けやすいが、その特定の実施形態が、図面において例示として図示され、本明細書において詳細に説明される。しかしながら、本開示の概念を、開示された特定の形態に限定する意図はなく、反対に、本開示及び添付の特許請求の範囲と整合性のあるすべての修正、均等物及び代替物を網羅するよう意図していることを理解されたい。
【0010】
明細書における「一実施形態」、「実施形態」、「例示的実施形態」等への言及は、説明される実施形態が、特定の特徴、構造又は特性を含むことがあるが、すべての実施形態が、その特定の特徴、構造又は特性を含んでもよく、あるいは必ずしも含んでいなくてもよいことを示す。さらに、このようなフレーズは、必ずしも同じの実施形態を指すものではない。さらに、特定の特徴、構造又は特性がある実施形態に関連して記載されているとき、明示的に説明されているか否かにかかわらず、他の実施形態に関連して、そのような特徴、構造又は特性を得ることができることは当業者の知識内であると言える。加えて、「A、B及びCの少なくとも1つ」の形のリストに含まれる項目は、(A);(B);(C);(A及びB);(A及びC);(B及びC)又は(A、B及びC)を意味すると解釈されるべきである。同様に、「A、B又はCの少なくとも1つ」の形で列挙される項目は、(A);(B);(C);(A及びB);(A及びC);(B及びC)又は(A、B及びC)を意味し得る。
【0011】
開示される実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア又はそれらの任意の組合せで実装されてよい。また、開示される実施形態は、一時的又は非一時的な機械読取可能(例えばコンピュータ読取可能)記憶媒体によって搬送されるか又はその上に記憶される命令として実装されてもよく、1つ以上のプロセッサによって読み取られて実行されてよい。機械読取可能な記憶媒体は、機械により読取可能な形態で情報を格納又は伝送するための任意のストレージデバイス、機構又は他の物理的構造(例えば揮発性又は不揮発性メモリ、メディアディスク又は他のメディアデバイス)として具現化されてよい。
【0012】
開示される実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア又はそれらの任意の組合せで実装されてよい。また、開示される実施形態は、一時的又は非一時的な機械読取可能(例えばコンピュータ読取可能)記憶媒体によって搬送されるか又はその上に記憶される命令として実装されてもよく、1つ以上のプロセッサによって読み取られて実行されてよい。さらに、開示される実施形態は、宛先デバイス上で実行するための命令を準備するために予備処理演算を必要とし得る予備命令のセットとして最初に符号化(例えば機械読取可能な記憶媒体上に符号化)されてよい。予備処理は、命令をデバイス上に存在するデータと組み合わせること、命令を異なるフォーマットに変換すること、圧縮、圧縮解除、暗号化及び/又は復号を実行すること、命令の異なるセクションを含む複数のファイルを組み合わせること、命令を、ライブラリ、オペレーティングシステム等のようなデバイス上に存在する他のコードと統合すること又は同様の演算を含んでよい。予備処理は、ソースコンピューティングデバイス(例えば命令を送信するデバイス)、宛先コンピュータデバイス(例えば命令を実行するデバイス)又は中間デバイスによって実行されてよい。機械読取可能な記憶媒体は、機械により読取可能な形態で情報を格納又は伝送するための任意のストレージデバイス、機構又は他の物理的構造(例えば揮発性又は不揮発性メモリ、メディアディスク又は他のメディアデバイス)として具現化されてよい。
【0013】
次に、
図1を参照すると、要求された加速関数のセキュリティ要件をファンクション・アズ・ア・サービス(FaaS)プロバイダに一致させるためのシステム100は、エッジゲートウェイデバイス114と通信するエッジデバイス110を含む。エッジゲートウェイデバイス114は、エッジデバイス110と、1つ以上のエッジリソース150、152、154(例えばセルラーネットワークオペレータのような1つ以上のサービスプロバイダ140、142、144によって、それぞれ所有及び/又は操作されるコンピュータデバイス及びその構成要素のようなリソース)又はクラウド内に位置する他のコンピュータデバイスとの間でデータを通信する能力を有する任意のコンピューティングデバイスとして具体化されてよい。さらに、エッジゲートウェイデバイス114は、例示的な実施形態では、エッジリソース150、152、154の特性に関する要求、例えばエッジリソース150、152、154内(例えばエッジリソース150、152、154を形成するコンピュータデバイス内)のプロセッサ、アクセラレータデバイス及び/又は他の構成要素のアーキテクチャ、これらのエッジリソース150、152、154の利用に関連付けられるレイテンシ、電力使用及びコスト(例えば金銭的コスト)等に関する要求をエッジデバイス110から受け取り、応答するように構成される。エッジゲートウェイデバイス114及びエッジリソース150、152、154は、例示的な実施形態では、クラウドのエッジに沿った(例えばエッジネットワーク内の)1つ以上の位置(例えば小セル、基地局内等)に配置される。
【0014】
エッジネットワークは、無線アクセスネットワーク(RAN)対応型のエンドポイントデバイス(例えばモバイルコンピューティングデバイス、IoT(Internet of Things)デバイス、スマートデバイス等)に近接して配置される、エッジコンピューティング及び/又はストレージリソースを提供する任意のタイプのネットワークとして具現化されてよい。言い換えると、エッジネットワークは、キャリアネットワーク(例えばGSM(登録商標)(Global System for Mobile Communications)ネットワーク、LTE(Long-Term Evolution)ネットワーク、5Gネットワーク等)を含むサービスプロバイダコアネットワークへの入口点として機能し、同時に記憶及び/又は計算能力も提供する、エンドポイントデバイスと従来のモバイルネットワークアクセスポイントとの間の「エッジ」に配置される。したがって、エッジネットワークは、エンタープライズアプリケーション(例えばリモートクラウド、データセンタ等に収容される)及び/又は他のネットワークベースのサービスへの無線アクセスインタフェースを提供することができ、また、ストレージ/コンピュータリソースをエンドポイントデバイスにより近くに持ってくることができる。一部の計算/処理をエッジネットワークで実行することができるので、低減されたレイテンシ、帯域幅等といった効率性(すなわち、リモートクラウド、データセンタ等で実行されているそのような計算/処理に対して)を実現することができる。エッジネットワークの意図された目的/能力に応じて、エッジネットワークは、1つ以上のエッジコンピューティングデバイスを含んでもよい。1つ以上のエッジコンピューティングデバイスは、1つ以上のゲートウェイ、サーバ、モバイルエッジコンピューティング(MEC)機器等を含んでもよい。さらに、システム100は、複数の層を有する階層構造に編成されてもよい。例えば所与の層は、上述のエッジコンピューティングデバイス、例えばエッジデバイス110に相対的に近いネットワークの位置にあるエッジコンピューティングデバイスを含んでもよい。次の層は、エッジリソースを提供するセルタワー及び基地局を含んでよい。続く層は、コアデータセンタ190内の中央オフィスステーションを含んでよい。
【0015】
いくつかの実施形態において、エッジネットワークは、フォグネットワーク(例えばフォグ又はエッジノード180)の一部を形成するか又は他の方法でフォグネットワークへの入口点を提供してよいことを理解されたい。フォグネットワークは、コアデータセンタ190(例えばエッジリソース150、152、154よりも更に離れていてシステム100の階層のより高いレベルにあり、かつ、1つ以上のサービス(例えば1つ以上のクライアントの代わりのプロセス)を実行することができる複数のコンピュータデバイスを含む、データセンタ)と、エンドポイントデバイス(例えばエッジデバイス110)との間のいずれかの場所にコンピューティング、ストレージ、制御及びネットワーキングのリソース及びサービスを分散する、システムレベルの水平アーキテクチャとして具現化されてよい。
【0016】
一実施形態では、エッジデバイス110は、(例えばプロセッサ及び/又はアクセラレータデバイスを使用して)その中に含まれるアプリケーション112を実行する。アプリケーション112は、処理するための1つ以上のサービス又はワークロードを含んでよい。例えばエッジデバイス110が、システム100を形成するエッジネットワークに接続される自律車両を表すと仮定する。アプリケーション112は、車両を動作させるために使用されるロケーション、ナビゲーション及び他の機能のような、自律車両の正常な動作を保証するための様々な機能(functions)を含むことができる。さらに、アプリケーション112は、エッジリソース150、152又は154によって提供されるサービスからのデータを要求することがある。一般に、エッジゲートウェイデバイス114は、このような要求を受け取ることができる。その後、エッジゲートウェイデバイス114は、その要求を評価して、サービスプロバイダ140、142、144のうちの1つによって操作される適切なサービスに(あるいはフォグ又はエッジノード180又はコアデータセンタ190に)要求を転送してよい。他のエッジデバイス110及びアプリケーション112のユースケースは、スマートシティにおけるIoTデバイス、拡張現実(AR)/仮想現実(VR)、アシスト運転車両、工場自動化、近接トリガサービス等を含むことができる。
【0017】
さらに、エッジデバイス110は、エッジリソース150、152、154の一部として含まれるFaaSサービス160、162、164に要求を送信してもよい。各FaaSサービス160、162、164は、アプリケーション112が、サービスプロバイダ140、142、144によってホストされる加速関数にアクセスすることを可能にする。加速関数は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィクス処理ユニット(GUI)等のような、エッジリソース150、152、154によって提供されるアクセラレータデバイスにおいて実行される、所定のビットストリームデータとして具体化されてよい。有利には、アプリケーション112は、ワークロード演算(例えばAR/VR機能、機械学習機能、マトリックス演算等)の実行を加速するように加速関数を要求してよい。
【0018】
またさらに、各サービスプロバイダ140、142、144は、それぞれ、各FaaSサービス160、162、164について1つ以上のセキュリティ機能を定義してよい。加えて、セキュリティ機能は、各FaaSサービス160、162及び164にわたって異なってよい。例えばFaaSサービス160は、128ビットのAES(Advanced Encryption Standard)暗号化のみを所与の加速関数へのデータ入力に適用することができ、一方、FaaSサービス162は、128ビット、192ビット、256ビットのAES暗号化を可能にする。別の例として、FaaSサービス160は、認証局Aによって信頼できるプロバイダとして認証されてもよく、一方、FaaSサービス164は、認証局Bによって信頼できるプロバイダとして認証されてもよい。サービスプロバイダ140、142、144にわたって異なる可能性のある機能の他の例には、加速関数のバージョン、加速関数に渡されるデータをセキュアにするために使用されるセキュリティアルゴリズムのタイプ、所与の加速関数への最新の更新日等が含まれる。
【0019】
典型的には、アプリケーション112は、ユースケースに基づいて及び所望の加速関数に基づいて、特定のレベルのセキュリティ要件を必要とする。このような要件を指定するための1つのアプローチは、エッジネットワークへの要求を各加速関数について要件の静的リストとともにコアデータセンタ190に送信し、次に、コアデータセンタが、それに応じて、要求を所与のサービスプロバイダ140、142、144にマッピングすることを含む。しかしながら、そうする際に、コアデータセンタ190は、アプリケーション112による要求の変化に応じてマッピングを更新する必要があり、その結果、クライアントとデータセンターレベルの両方において相当なオーバヘッドと、リソースフラグメンテーションが生じることになる。別のアプローチは、所与の要求を満たすために適切なFaaSサービスを選択する前に、コアデータセンタ190が、確認応答(acknowledgement)を受け取るためにアプリケーション112とのハンドシェイク動作を実行することを含む。しかしながら、そうすることは、タイムクリティカルなFaaS要求がサービス品質の期限内に完了することを妨げる可能性があり、リソースの積極的な確保及び断片化を必要とすることがある。
【0020】
本明細書で更に説明されるように、実施形態は、一致するセキュリティ要件に基づいてFaaSサービスに要求を動的に割り当てるための技術を提供する。一実施形態では、例示的なエッジゲートウェイデバイス114は、FaaSセキュリティ管理論理ユニット116を含む。FaaSセキュリティ管理論理ユニット116は、エッジデバイス110と、異種のセキュリティ機能を有することがあるFaaSサービス160、162、164との間のインタフェースを提供するように構成される任意のデバイス及び/又は回路(例えばコプロセッサ、FPGA、ASIC等)として具現化されてよい。FaaSセキュリティ管理論理ユニット116によって提供されるインタフェースは、利用可能なセキュリティ機能及び他のポリシー(例えばロードバランシングポリシー、QoS要件、SLA要件等)に基づいて、所与のFaaSサービス160、162及び164に要求を割り当てる際に使用されてよい。より具体的には、インタフェースは、アプリケーション112が、エッジゲートウェイデバイス114に、加速関数を実行するFaaSサービス要求とともに、その加速関数に関連付けられる前処理コード(例えばエッジゲートウェイデバイス114上のアクセラレータデバイスによって実行可能な実行可能ファイル、バイナリ、ビットストリームデータ)を送信することを可能にする。一実施形態では、前処理コードは、エッジゲートウェイデバイス114によって公開されるアプリケーションプログラミングインタフェース(API)を呼び出して、サービスプロバイダ140、142、144の構成可能なリストにアクセスする。リストは、各サービスプロバイダ140、142、144において加速関数に関連付けられるセキュリティ機能を指定する。実行されると、エッジゲートウェイデバイス114は、1つ以上のエッジリソース150、152、154、より詳細には、FaaSサービス160、162、164に対するセキュリティ要件の一致(matching)を受け取る。一旦一致すると、エッジゲートウェイデバイス114は、FaaS要求を、一致するFaaSサービス160、162、164のうちの1つにマッピングすることができる(例えばマッピングは更に、ロードバランシングポリシー及びQoS要件のような他の基準に対して決定されている)。
【0021】
有利には、このようなアプローチは、クライアント側のエッジデバイス110に対してより大きな柔軟性を提供する。例えばこのアプローチは、クライアントに対して、あるいはシステム100内のオーケストレーションのために構成されるデバイスに対してさえも、多くの管理オーバヘッドは追加しない。さらに、エッジデバイス110は、サービスプロバイダ上で実行すべきすべてのチェック及びセキュリティが前処理コードによる粒度で実施されることを確実にする。例えばFaaSサービスは、1つ以上の追加機能で定期的に更新されてよい。次に、そのような更新は潜在的に、セキュリティ機能を追加する又は危険にさらす(compromise)可能性がある。このアプローチは、エッジデバイス110が、そのような更新されたバージョンに対してチェックを実施するための前処理コードを提供し得ることを確実にする。さらに、このアプローチは、エッジデバイス110がFaaS要求の異なるインスタンスに対して異なるセキュリティ要件をシームレスに指定することを可能にするので、エッジゲートウェイデバイス110は、エッジリソース150、152、154の割り当てを多様化して、FaaS要求を比較的より効率的に提供することができる。
【0022】
図2を参照すると、エッジゲートウェイデバイス114は、1つ以上の物理コンピュータデバイス又は仮想化システム(例えば基礎となるハードウェアリソースが、仮想化環境内で実行しているソフトウェアには物理的なハードウェアとして見えるが、抽象化層によってソフトウェアから分離される、仮想マシン又は仮想コンテナのような仮想化環境内で実行される、1つ以上の機能)として具現化され得る。例示的に、エッジゲートウェイデバイス114は、計算エンジン(本明細書では「計算エンジン回路」とも呼ばれる)210、入力/出力(I/O)サブシステム216、通信回路218及び1つ以上のデータストレージデバイス222を含む。本明細書で説明されるように、エッジゲートウェイデバイス114は、1つ以上のアクセラレータデバイス224も含んでよい。当然、他の実施形態では、エッジゲートウェイデバイス114は、コンピュータに一般的に見られるような他の又は追加の構成要素(例えばディスプレイ、周辺装置等)を含んでもよい。加えて、いくつかの実施形態において、例示的な構成要素の1つ以上は、別の構成要素に組み込まれてもよく又は他の方法で別の構成要素の一部を形成してもよい。計算エンジン210は、以下で説明される様々な計算機能を実行することができる任意のタイプのデバイス又はデバイスの集合として具現化されてもよい。いくつかの実施形態において、計算エンジン210は、集積回路、埋め込みシステム、フィールドプログラマブルゲートアレイ(FPGA)、システムオンチップ(SOC)又は他の統合システム又はデバイスのような単一デバイスとして具現化されてもよい。例示的な実施形態では、計算エンジン210は、プロセッサ212及びメモリ214を含むか又はそれらとして具現化される。さらに、計算エンジンは、
図1に関連して上述したFaaSセキュリティ管理ユニット116を含む。プロセッサ212は、本明細書で説明される機能を実行する(例えばエッジデバイス110のエッジリソースに対するサービス要求を処理する)ことができる任意のタイプのプロセッサとして具現化されてよい。例えばプロセッサ212は、マルチコアプロセッサ、マイクロコントローラ又は他のプロセッサ又は処理/制御回路として具現化されてよい。いくつかの実施形態において、プロセッサ212は、FPGA、特定用途向け集積回路(ASIC)、再構成可能なハードウェア又はハードウェア回路、本明細書で説明される機能の実行を容易にするための他の特別なハードウェア又はその仮想化バージョンとして具現化されてもよく、それらを含んでもよく、あるいはそれらに結合されてもよい。
【0023】
メモリ214は、本明細書で説明される機能を実行することができる任意のタイプの揮発性(例えば動的ランダムアクセスメモリ(DRAM)等)又は不揮発性メモリ又はデータストレージとして具現化されてよい。揮発性メモリは、記憶媒体によって記憶されているデータの状態を維持するために電力を必要とする記憶媒体であってもよい。揮発性メモリの非限定的な例は、動的ランダムアクセスメモリ(DRAM)又は静的ランダムアクセスメモリ(SRAM)のような種々のタイプのランダムアクセスメモリ(RAM)を含んでよい。メモリモジュールにおいて使用され得るDRAMの1つの特定のタイプは、同期動的ランダムアクセスメモリ(SDRAM)である。特定の実施形態において、メモリ構成要素のDRAMは、JEDECによって公表されている規格、例えばDDR SDRAM用のJESD79F、DDR2 SDRAM用のJESD79-2F、DDR3 SDRAM用のJESD79-3F、DDR4 SDRAM用のJESD79-4A、低電力DDR(LPDDR)用のJESD209、LPDDR2用のJESD209-2、LPDDR3用のJESD209-3、LPDDR4用のJESD209-4に準拠することができる。そのような規格(及び類似の規格)は、DDRベースの規格と呼ばれることがあり、そのような規格を実装するストレージデバイスの通信インタフェースは、DDRベースのインタフェースと呼ばれることがある。
【0024】
一実施形態において、メモリデバイスは、NAND又はNOR技術に基づくようなブロックアドレス指定可能メモリデバイスである。メモリデバイスはまた、三次元クロスポイントメモリデバイス(例えばIntel 3D XPoint(登録商標)メモリ)又は他のバイトアドレス指定可能なライトインプレース(write-in-place)不揮発性メモリデバイスを含んでもよい。一実施形態では、メモリデバイスは、カルコゲナイドガラス、マルチ閾値レベル(multi-threshold level)のNANDフラッシュメモリ、NORフラッシュメモリ、単一又はマルチレベルの相変化メモリ(PCM)、抵抗性メモリ、ナノワイヤメモリ、強誘電体トランジスタのランダムアクセスメモリ(FeTRAM)、反強誘電体メモリ、メモリスタ技術を組み込んだ磁気抵抗ランダムアクセスメモリ(MRAM)メモリ、金属酸化物ベース、酸素空孔ベース及び導電ブリッジランダムアクセスメモリ(CB-RAM)又はあるいはスピン移動トルク(STT)-MRAMを含む抵抗性メモリ、スピントロニック磁気接合(spintronic magnetic junction memory)ベースのデバイス、磁気トンネル接合(MTJ)ベースのデバイス、DW(Domain Wall)及びSOT(Spin Orbit Transfer)ベースのデバイス、サイリスタベースのメモリデバイス、あるいは上記又は他のメモリの任意の組合せを使用するメモリデバイスであり得るか、これらを含んでもよい。メモリデバイスは、ダイ自体を指してもよく、かつ/又はパッケージ化されたメモリ製品を指してよい。
【0025】
いくつかの実施形態では、3Dクロスポイントメモリ(例えばインテル3D XPoint(登録商標)メモリ)は、トランジスタレス(transistor-less)スタック可能クロスポイントアーキテクチャを有してよい。このアーキテクチャでは、メモリセルは、ワードラインとビットラインとの交点に位置し、個々にアドレス指定可能であり、ビットストレージは、バルク抵抗における変化に基づく。一部の実施形態では、メモリ214のすべて又は一部がプロセッサ212に統合されてもよい。動作において、メモリ214は、1つ以上のアプリケーション、アプリケーションによって操作されるデータ、ライブラリ及びドライバのように、動作中に使用される様々なソフトウェア及びデータを格納してよい。
【0026】
計算エンジン210は、I/Oサブシステム216を介してエッジゲートウェイデバイス114の他の構成要素と通信可能に結合される。I/Oサブシステム216は、計算エンジン210と(例えばプロセッサ212及び/又はメモリ214と)及びエッジゲートウェイデバイス114の他の構成要素との入出力動作を容易にするための回路及び/又は構成要素として具現化され得る。例えばI/Oサブシステム216は、メモリコントローラハブ、入力/出力制御ハブ、統合センサハブ、ファームウェアデバイス、通信リンク(例えばポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路基板トレース等)及び/又は入出力動作を容易にするための他の構成要素及びサブシステムとして具現化されるか、そうでなければこれらを含んでもよい。いくつかの実施形態において、I/Oサブシステム216は、システムオンチップ(SoC)の一部を形成してよく、プロセッサ212、メモリ214及びエッジゲートウェイデバイス114の他の構成要素のうちの1つ以上とともに、計算エンジン210に組み込まれてもよい。
【0027】
通信回路218は、エッジゲートウェイデバイス114と別のコンピュータデバイス(例えばエッジデバイス110、エッジリソース150、152、154等)との間のネットワークを介した通信を可能にすることができる任意の通信回路、デバイス又はそれらの集合として具現化されてよい。通信回路218は、任意の1つ以上の通信技術(例えば有線又は無線通信)及び関連するプロトコル(例えばセルラネットワーキングプロトコル、Wi-Fi(登録商標)、WiMAX、Ethernet(登録商標)、Bluetooth(登録商標)等)を使用して、そのような通信を行うように構成されてもよい。
【0028】
例示的な通信回路218は、ホストファブリックインタフェース(HFI)とも呼ばれることがあるネットワークインタフェースコントローラ(NIC)220を含む。NIC220は、1つ以上のアドインボード、ドーターカード、ネットワークインタフェースカード、コントローラチップ、チップセットとして、あるいはエッジゲートウェイデバイス114によって別のコンピュータデバイス(例えばエッジデバイス110、エッジリソース150、152、154等)に接続するために使用され得る他のデバイスとして具現化されてよい。いくつかの実施形態では、NIC220は、1つ以上のプロセッサを含むシステムオンチップ(SoC)の一部として具現化されてもよく、あるいは1つ以上のプロセッサも含むマルチチップ・パッケージ上に含まれてもよい。いくつかの実施形態において、NIC220は、ローカルプロセッサ(図示せず)及び/又はローカルメモリ(図示せず)を含んでもよく、これらは両方ともNIC220に対してローカルである。そのような実施形態では、NIC220のローカルプロセッサは、本明細書で説明される計算エンジン210の機能の1つ以上を実行する能力を有してよい。追加又は代替的に、そのような実施形態において、NIC220のローカルメモリは、基板レベル、ソケットレベル、チップレベル及び/又は他のレベルでエッジゲートウェイデバイス114の1つ以上の構成要素に統合されてよい。
【0029】
1つ以上の例示的なデータストレージデバイス222は、例えばメモリデバイス及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ又は他のデータストレージデバイスのような、データの短期間又は長期間の記憶のために構成される任意のタイプのデバイスとして具現化されてよい。各データストレージデバイス222は、データストレージデバイス222のためのデータ及びファームウェアコードを格納するシステム区画を含んでよい。各データストレージデバイス222はまた、オペレーティングシステムのためのデータファイル及び実行可能プログラムを格納する1つ以上のオペレーティングシステム区画も含んでよい。
【0030】
各アクセラレータデバイス224は、プロセッサ212が同じ演算を実行するよりも早く、機械学習又は人工知能演算のような一組の演算を実行するように構成される、任意のデバイス又は回路として具現化されてよい。アクセラレータデバイス224は、1つ以上のフィールドプログラマブルゲートアレイ(FPGA)230を含んでもよく、それらの各々が、所定の構成(例えばビットストリーム)に従って一組の演算を実行するように構成されることができる論理ゲートのセット(例えばマトリックス)として具現化されてもよい。特に、所与のアクセラレータデバイス224は1つ以上のスロットを含んでよく、その各々が、関数(例えばファンクション・アズ・ア・サービス(FaaS)関数、加速ファンクション・アズ・ア・サービス(AFaaS)関数)を示すカーネルビットストリームを用いてプログラムされてよい。サービス要求に応答して、アクセラレータデバイスは、所与のビットストリームを実行して関数の実行を加速してよい。アクセラレータデバイス224は、追加又は代替的に、グラフィクス関連演算(例えばマトリックス乗算、ベクトル演算等)を実行するように構成される任意のデバイス又は回路(例えばプログラマブル論理チップ、プロセッサ等)として具現化され得る、グラフィクス処理ユニット(GPU)232を含んでもよい。追加又は代替的に、アクセラレータデバイス224は、機械ビジョンに関連する演算を実行するように構成される、任意のデバイス又は回路(例えばプログラマブル論理チップ、プロセッサ等)として具現化され得るビジョン処理ユニット(VPU)234を含んでもよい。
【0031】
エッジリソース150、152、154(例えばコンピュータデバイス160、162、164、166、168、170)、エッジデバイス110、フォグノード180及びコアデータセンタ190は、エッジゲートウェイデバイス114を参照して
図2で説明したものと同様の構成要素を有してよい。エッジゲートウェイデバイス114のこれらの構成要素の説明は、いくつかの実施形態では、FaaSセキュリティ管理論理ユニット116がエッジゲートウェイデバイス114以外のデバイスに含まれない点を除いて、エッジリソース150、152、154(例えばFaaSサービスを実行しているデバイス160、162、164、166、168、170)、エッジデバイス110、フォグノード180及びコアデータセンタ190の構成要素の説明に等しく適用可能である。さらに、エッジリソース150、152、154(例えばFaaSサービスを実行しているデバイス160、162、164、166、168、170)、エッジデバイス110、フォグノード180及びコアデータセンタ190のいずれかは、エッジゲートウェイデバイス114に関して上述されておらず、説明の明確性のために本明細書では説明されていない、コンピュータデバイスで一般的に見られる他の構成要素、サブ構成要素及びデバイスを含んでもよいことが理解されるべきである。さらに、コンピュータデバイスの1つ以上の構成要素は、任意の距離にわたって分散されてもよく、必ずしも同じ物理的ユニット内に収容されるわけではないことを理解されたい。
【0032】
エッジゲートウェイデバイス114、エッジリソース150、152、154(例えばFaaSサービスを実行しているデバイス160、162、164、166、168、170)、エッジデバイス110、フォグノード180及びコアデータセンタ190は、例示的にネットワークを介して通信される。ネットワークは、任意のタイプの有線又は無線通信ネットワーク、あるいはそれらのハイブリッド又は組合せとして具現化されてよく、グローバルネットワーク(例えばインターネット)、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)、エッジネットワーク、フォグネットワーク、セルラネットワーク(例えばGSM(登録商標)(Global System for Mobile Communications)、3G、LTE(Long Term Evolution)、WiMAX(Worldwide Interoperability for Microwave Access)等)無線アクセスネットワーク(RAN)、デジタル加入者回線(DSL)ネットワーク、ケーブルネットワーク(例えば同軸ネットワーク、ファイバネットワーク等)又はそれらの任意の組合せを含む。
【0033】
次に
図3を参照すると、エッジゲートウェイデバイス114は、動作中に環境300を確立してよい。例示的な環境300は、FaaSセキュリティマネージャ310、FaaSサービスリスト320及びセキュリティ及びポリシーデータ322を含む。FaaSセキュリティマネージャ310は、エッジデバイス110からFaaS要求を受け取ること、前処理コードを実行して、FaaS要求で指定されたセキュリティ要件に一致する1つ以上のFaaSサービスを識別すること、識別されたFaaSサービスにFaaS要求を送信すること、要求側のエッジデバイス110に結果を返すこと等のような、本明細書で説明される機能を実行するように構成される。
【0034】
図示のように、FaaSセキュリティマネージャ310は、許可コンポーネント312、管理インタフェースコンポーネント314、前処理コード実行コンポーネント316、そしてロードバランシング及びスイッチコンポーネント318を含む。環境300のコンポーネントの各々は、ハードウェア、ファームウェア、ソフトウェア又はそれらの組合せとして具体化されてよい。いくつかの実施形態では、環境300のコンポーネントのうちの1つ以上は、回路又は電気デバイスの集合(例えばFaaSセキュリティマネージャ回路310、許可コンポーネント回路312、管理インタフェースコンポーネント回路314、前処理コード実行コンポーネント回路316、ロードバランシング及びスイッチコンポーネント回路318等)として具体化されてもよい。このような実施形態では、FaaSセキュリティマネージャ回路310、許可コンポーネント回路312、管理インタフェースコンポーネント回路314、前処理コード実行コンポーネント回路316又はロードバランシング及びスイッチコンポーネント回路318のうちの1つ以上が、FaaSセキュリティ管理論理ユニット116(又はエッジゲートウェイデバイス114の他の構成要素)の一部を形成することができることを理解されたい。
【0035】
例示的な実施形態では、FaaSサービスリスト320は、システム100内の各サービスプロバイダによって、例えばサービスプロバイダ140、142及び144によって提供される、現在利用可能なFaaSサービスを示す任意のデータとして具体化されてよい。FaaSサービスに加えて、リストは、各々列挙されるFaaSサービスに関連付けられるセキュリティ機能(例えばFaaSバージョン、使用されるセキュリティアルゴリズム、使用される各セキュリティアルゴリズムで使用されるビットサイズ、FaaSバージョンに関連付けられる日付、証明書(certification)等)も指定する。FaaSサービスリスト320は、リレーショナルデータベース、CSVファイル、マークアップ言語ファイル(例えばJavaScript(登録商標)Object Notationファイル、拡張マークアップ言語ファイル等)として具体化されてよい。ポリシーデータ322は、特定のFaaSサービスへのFaaS要求のルーティングに関連付けられるロードバランシング及びスイッチングポリシーを示す任意のデータとして具体化されてよい。例えばポリシーデータ322は、1つ以上のFaaSサービスが、要求された加速関数に対する所与の一組のセキュリティ要件に一致するように識別された後に、着信FaaS要求に使用する特定のロードバランシング技術を指定することができる。加えて、ポリシーデータ322は、所与のFaaS要求のサービスに適用される(例えばレイテンシやスループット等についての)QoS要件を示す任意のデータとして具体化されてよい。
【0036】
例示的な認可コンポーネント312は、エッジデバイス110による着信要求を処理するように構成される。許可コンポーネント312は、それに供給される証明書(例えばデバイスID、ログイン証明書、認証証明書(attestation credential))に対する要求を評価して、要求を認証することができる。さらに、許可コンポーネント312は、要求を受け取ると、ユーザ要求ロジックによって初期化されたキューに一時的に記憶することができる。キューは、ロードバランシング及びスイッチコンポーネント318が、選択されたFaaSサービスに要求をディスパッチする前に要求を格納する。
【0037】
管理インタフェースコンポーネント314は、現在利用可能なFaaSサービス及び対応するセキュリティ機能でFaaSサービスリスト320を更新するように構成される。サービスプロバイダ140、142、144は、管理インタフェースコンポーネント314によって提供されるAPIを介して、エッジゲートウェイデバイス114に更新を伝達してよい。
【0038】
前処理コード実行コンポーネント316は、要求とともに受け取った前処理コードを実行するように構成される。例えば許可コンポーネント312は、要求及び要求側のエッジデバイス110を認証した後、要求とともにエッジデバイス110によって送信された前処理コードを、前処理コード実行コンポーネント316に送信することができる。例えば前処理コード実行コンポーネント316は、(例えば前処理コードがFPGAビットストリームとして具現化される場合に)前処理コードを実行するようにエッジゲートウェイデバイス114上の加速されたデバイスをプログラムすることができる。
【0039】
ロードバランシング及びスイッチコンポーネント318は、1つ以上のサービスプロバイダによってホストされる、識別されたFaaSサービスにFaaS要求を配信するように構成される。そうするために、例えばロードバランシング及びスイッチコンポーネント318は、前述のユーザ要求ロジックキューから要求を取り出してよい。取り出された要求は、既に実行された前処理コードに関連付けられ、一致する1つ以上のFaaSサービスが識別されている。ロードバランシング及びスイッチコンポーネント318は、ポリシーデータ322に従って適切なFaaSサービス提供ユニットに要求を一致させることができる。サービスによる加速関数のFaaS実行が完了すると、ロードバランシング及びスイッチコンポーネント318は、加速関数の結果をエッジデバイス110に向けてよい。他の場合には、ロードバランシング及びスイッチコンポーネント318は、エッジデバイス110による取り出しのために、リポジトリのキューに結果を格納してよい。
【0040】
次に、
図4を参照すると、エッジゲートウェイデバイス114は、動作中に、要求された加速関数のセキュリティ要件をFaaSサービスプロバイダに一致させるための方法400を実行することができる。一実施形態では、方法400は、エッジゲートウェイデバイス114の種々のハードウェア及び/又はソフトウェア構成要素によって、例えばFaaSセキュリティマネージャ310に関連して説明されたそれらの構成要素によって実行されてよい。別の実施形態では、方法400は、仮想化されたハードウェア構成要素によって実行されてもよい。
【0041】
図示されるように、方法400はブロック402で始まり、ここで、エッジゲートウェイデバイス114は、エッジデバイス110から、加速関数をホストする複数のサービスプロバイダのうちの1つによる関数の実行のための要求を受け取る。例えばブロック404において、エッジゲートウェイデバイス114は、エッジデバイス110から、加速関数を実行するための要求と、加速関数に関連付けられる前処理コードも受け取ることができる。別の例として、ブロック406では、エッジゲートウェイデバイス114は、エッジデバイス110から、加速関数を実行する要求を受け取ることができ、この要求は、加速関数を実行するための1つ以上のセキュリティ要件を指定する。例えば前処理コードは、所与の認証局によって認証されたサービスプロバイダからの所与の加速関数の最新バージョンについてFaaSサービスリストにクエリするように含まれることがある。
【0042】
ブロック408において、エッジゲートウェイデバイス114は、要求に関連付けられるエッジデバイスを認証する。例えばエッジゲートウェイデバイス114は、エッジデバイス110及び要求を認証するために要求内に提供された証明書を評価してよい。このような証明書は、デバイス識別子、ユーザとパスワードの組合せ、公開鍵データ等を含んでよい。ブロック410において、エッジゲートウェイデバイス114は、認証が成功したかどうかを判断する。認証が成功しなかった場合、次いでブロック412において、エッジゲートウェイデバイス114は、要求側のエッジデバイス110にエラーを返す。
【0043】
そうでなければ、ブロック414において、エッジゲートウェイデバイス114は、FaaSサービスリスト及び1つ以上のポリシーに応じて、関数要求を満たすエッジリソースを選択する。より詳細には、そうするために、ブロック416において、エッジゲートウェイデバイス114は、前処理コードを実行して、ロードバランシングポリシー、セキュリティポリシー及びFaaSサービスリストに基づいてエッジリソースを識別する。前処理コードの実行により、エッジゲートウェイデバイス114に、要求で指定されたセキュリティ要件基準に一致するセキュリティ機能について、エッジサービスプロバイダ又はFaaSサービスのリストを評価させることができる。
【0044】
ブロック418において、エッジゲートウェイデバイス114は、サービスプロバイダによってホストされている識別されたエッジリソースに、関数を実行するための要求を送信する。2つ以上のエッジリソースが識別された場合、エッジゲートウェイデバイス114は、ロードバランシングポリシー及びQoS要件等の1つ以上のポリシーを適用して、識別されたエッジリソースのうちのどれが要求をサービスすべきかを判断してよい。
【0045】
次に、識別されたエッジリソース(特に、要求されたセキュリティ要件に一致するセキュリティ機能を有する識別されたFaaSサービス)は、エッジデバイス110の代わりに加速関数を実行する。FaaSサービスは、エッジゲートウェイデバイス114に結果を返すことができる。ブロック420において、エッジゲートウェイデバイス114は、識別されたエッジリソースから結果を受け取る。ブロック422において、エッジゲートウェイデバイス114は、要求側のエッジデバイス110に要求を提供する。例えばそうするために、ブロック424において、エッジゲートウェイデバイス114は、結果を要求側のデバイスに直接送信する。別の例として、ブロック426では、エッジゲートウェイデバイス114は、エッジデバイス110による取り出しのためにリポジトリのキューに結果を格納する。
【0046】
図5を簡単に参照すると、MEC及びフォグネットワークトポロジ500が図示されている。ネットワークトポロジ500は、エンドポイント(エンドポイント/モノ(things)ネットワーク層550にある)、ゲートウェイ(ゲートウェイ層540にある)、アクセス又はエッジコンピューティングノード(例えば近隣ノード層530にある)、コアネットワーク又はルータ(例えば地域又は中央オフィス層520にある)を含む。(例えばゲートウェイ層540で確立される)フォグネットワークは、(例えばフォグノードについての)ニアユーザ・エッジデバイスの密集した地理的分布を表してよい。そのようなエッジデバイスは、とりわけ、(例えばクラウドデータセンタにデータを記憶する必要性を回避する)記憶能力、(例えばインターネットバックボーン上でルーティングされるのではなく)通信能力、制御能力、構成能力、(5GコアネットワークのLTE内のもののようにネットワークゲートウェイによって主に制御されるのではなく)測定及び管理能力を備えてよい。このコンテキストにおいて、
図5は、(それらの位置、接続及び処理能力等に基づいて)異なる層に分類される多数のMEC及びフォグノードを統合する一般的なアーキテクチャを図示する。しかしながら、そのようなフォグノードは、エッジ演算処理ノードによって置き換えられてもよく又は増強されてもよいことが理解されるであろう。
【0047】
フォグノードは、トポロジ及びそれらが位置する層に応じて分類されてよい。対照的に、MEC標準の観点から、各フォグノードは、モバイルエッジ(ME)ホスト又はMEアプリ及び軽量MEプラットフォームをホストする単純なエンティティとして考慮され得る。一例では、MEC又はフォグノードは、MEプラットフォームをホストしているデバイス(MEホスト)に接続されているか又はそのデバイス上で実行するアプリケーションインスタンスとして定義されてよい。このように、アプリケーションはMECサービスを消費し、システム内のMEホストに関連付けられてよい。ノードは、マイグレーションされ、異なるMEホストに関連付けられ、あるいは他の(ローカル又はリモートの)MEプラットフォームからのMECサービスを消費することがある。
【0048】
エッジを使用することとは対照的に、上述のように、従来のアプリケーションは、情報を交換し調整するために、リモートクラウドのデータストレージ及び処理に依存することがある。クラウドデータ配置は、長期のデータ収集及び格納を可能にするが、非常に時間的に変化するデータには最適ではなく、レイテンシの課題に対処しようとする試み(例えば子供が道路に飛び出したときに車を止めること)に失敗する可能性がある。上述のようなエッジリソースの使用は、低レイテンシ方式でサービス(例えば関数の実行)を提供することを可能にし、いくつかの実施形態では、最小のオーバヘッドを提供する既存のMECサービスにおける特徴を利用することができる。
【0049】
上述のMECの実装に加えて、前述のシステム及び方法は、個々のデバイスの名前は実装毎に異なってよいが、デバイスが
図1を参照して説明したものと同様の方法で配置されて相互運用される、任意の環境(例えばスマートファクトリ、スマートシティ、スマートビルディング等)において実装されてもよいことを認識されたい。例えばスマートファクトリにおいて、上記のシステム及び方法は、特に、動作がリアルタイム又はほぼリアルタイムで実施される場合(例えば低レイテンシが重要である場合)において、1つ以上の製造動作が実施される精度、効率及び/又は安全性を改善することができる。スマートシティにおいては、上記のシステム及び方法は、トラフィック制御システム、環境モニタリングシステム及び/又は他の自動化又は半自動化システムの動作における精度、効率及び/又は安全性を改善することができる。同様に、スマートビルディングにおいて、上記開示は、センサに依拠して、収集情報(例えば脅威検出及び避難管理システム、ビデオモニタリングシステム、エレベータ制御システム等)を収集し、それらに対する作用を行う、任意のシステムの動作を改善するために適用され得る。
【0050】
実施例
本明細書で開示される技術の例示的な例が、以下に提供される。技術の実施形態は、以下に記載される実施例のいずれか1つ以上及びそのいずれかの組合せを含んでよい。
【0051】
実施例1は、エッジデバイスから関数を実行する要求を受け取り、エッジデバイスによって要求された1つ以上のセキュリティ要件に応じて、要求を満たす複数のエッジリソースのうちの1つを選択し、1つ以上のセキュリティ要件に従ってエッジデバイスの要求を満たすエッジリソースに要求を送信する回路を備える、コンピューティングデバイスを含む。
【0052】
実施例2は、実施例1の主題を含み、回路は更に、エッジデバイスから関数に関連付けられる前処理コードを受け取る。
【0053】
実施例3は、実施例1及び2のいずれかの主題を含み、要求を満たす、複数のエッジリソースのうちの1つを選択することは、前処理コードを実行することを含み、前処理コードの実行は、デバイスに、要求で指定された1つ以上のセキュリティ要件を満たすセキュリティ機能を有する複数のエッジリソースのうちの1つを識別させる。
【0054】
実施例4は、実施例1~3のいずれかの主題を含み、前処理コードの実行は、デバイスに更に、ロードバランシングポリシーに基づいて、複数のエッジリソースのうちの1つを識別させる。
【0055】
実施例5は、実施例1~4のいずれかの主題を含み、回路は更に、エッジリソースから関数の実行の結果を受け取る。
【0056】
実施例6は、実施例1~5のいずれかの主題を含み、回路は更に、結果を要求側のエッジデバイスに提供する。
【0057】
実施例7は、実施例1~6のいずれかの主題を含み、結果を要求側のエッジデバイスに提供することは、ネットワーク接続を介して結果を要求側のエッジデバイスに送信することを含む。
【0058】
実施例8は、実施例1~7のいずれかの主題を含み、結果を要求側のエッジデバイスに提供することは、エッジデバイスによる取り出しのために結果をリポジトリのキューに格納することを含む。
【0059】
実施例9は、実施例1~8のいずれかの主題を含み、回路は更に、要求に関連付けられるエッジデバイスを認証する。
【0060】
実施例10は、実施例1~9のいずれかの主題を含み、回路は更に、要求に関連付けられるエッジデバイスの認証に失敗すると、エッジデバイスにエラーを返す。
【0061】
実施例11は、エッジゲートウェイデバイスによって、エッジデバイスから関数を実行する要求を受け取るステップと、エッジゲートウェイデバイスによって、エッジデバイスによって要求された1つ以上のセキュリティ要件に応じて、要求を満たす複数のエッジリソースのうちの1つを選択するステップと、エッジゲートウェイデバイスによって、1つ以上のセキュリティ要件に従ってエッジデバイスの要求を満たすエッジリソースに要求を送信するステップと、を含む、方法を含む。
【0062】
実施例12は、実施例11の主題を含み、エッジゲートウェイデバイスによって、エッジデバイスから関数に関連付けられる前処理コードを受け取るステップを更に含む。
【0063】
実施例13は、実施例11及び12のいずれかの主題を含み、エッジゲートウェイデバイスによって、要求を満たす複数のエッジリソースのうちの1つを選択するステップは、エッジゲートウェイデバイスによって前処理コードを実行することを含み、前処理コードを実行することは、エッジゲートウェイデバイスに、要求で指定された1つ以上のセキュリティ要件を満たすセキュリティ機能を有する複数のエッジリソースのうちの1つを識別させる。
【0064】
実施例14は、実施例11~13のいずれかの主題を含み、エッジゲートウェイデバイスによって前処理コードを実行することは、エッジゲートウェイデバイスに更に、ロードバランシングポリシーに基づいて、複数のエッジリソースのうちの1つを識別させる。
【0065】
実施例15は、実施例11~14のいずれかの主題を含み、エッジゲートウェイデバイスによって、エッジリソースから関数の実行の結果を受け取るステップを更に含む。
【0066】
実施例16は、実施例11~15のいずれかの主題を含み、エッジゲートウェイデバイスによって、結果を要求側のエッジデバイスに提供するステップを更に含む。
【0067】
実施例17は、実施例11~16のいずれかの主題を含み、エッジゲートウェイデバイスによって、結果を要求側のエッジデバイスに提供することは、ネットワーク接続を介して、エッジゲートウェイデバイスによって、結果を要求側のエッジデバイスに送信することを含む。
【0068】
実施例18は、実施例11~17のいずれかの主題を含み、エッジゲートウェイデバイスによって、結果を要求側のエッジデバイスに提供することは、エッジデバイスによる取り出しのために、エッジゲートウェイデバイスによって、結果をリポジトリのキューに格納することを含む。
【0069】
実施例19は、実施例11~18のいずれかの主題を含み、エッジゲートウェイデバイスによって、要求に関連付けられるエッジデバイスを認証するステップと、要求に関連付けられるエッジデバイスの認証に失敗すると、エッジゲートウェイデバイスによって、エッジデバイスにエラーを返すステップとを更に含む。
【0070】
実施例20は、実行されると、デバイスに:エッジデバイスから、関数を実行する要求を受け取らせ;エッジデバイスによって要求された1つ以上のセキュリティ要件に応じて、要求を満たす複数のエッジリソースのうちの1つを選択させ;1つ以上のセキュリティ要件に従ってエッジデバイスの要求を満たすエッジリソースに要求を送信させる;複数の命令を備える、1つ以上の機械読取可能な記憶媒体。