IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ミミック・テクノロジー・インコーポレイテッドの特許一覧

特許7466156分散型エッジクラウドコンピューティングのための方法およびシステム
<>
  • 特許-分散型エッジクラウドコンピューティングのための方法およびシステム 図1
  • 特許-分散型エッジクラウドコンピューティングのための方法およびシステム 図2
  • 特許-分散型エッジクラウドコンピューティングのための方法およびシステム 図3
  • 特許-分散型エッジクラウドコンピューティングのための方法およびシステム 図4
  • 特許-分散型エッジクラウドコンピューティングのための方法およびシステム 図5
  • 特許-分散型エッジクラウドコンピューティングのための方法およびシステム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-04
(45)【発行日】2024-04-12
(54)【発明の名称】分散型エッジクラウドコンピューティングのための方法およびシステム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240405BHJP
   H04L 67/288 20220101ALI20240405BHJP
【FI】
G06F9/50 150A
H04L67/288
【請求項の数】 23
(21)【出願番号】P 2021560380
(86)(22)【出願日】2020-04-06
(65)【公表番号】
(43)【公表日】2022-07-20
(86)【国際出願番号】 IB2020053285
(87)【国際公開番号】W WO2020202126
(87)【国際公開日】2020-10-08
【審査請求日】2022-03-09
(31)【優先権主張番号】62/830,249
(32)【優先日】2019-04-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/926,455
(32)【優先日】2019-10-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521440965
【氏名又は名称】ミミック・テクノロジー・インコーポレイテッド
【氏名又は名称原語表記】MIMIK TECHNOLOGY INC.
【住所又は居所原語表記】321 WATER STREET, SUITE 320, VANCOUVER, BRITISH COLUMBIA V6B 1B8, CANADA
(74)【代理人】
【識別番号】110001818
【氏名又は名称】弁理士法人R&C
(72)【発明者】
【氏名】アラマウティ,シアヴァッシュ・エム
(72)【発明者】
【氏名】アージョマンディ,フェイ
(72)【発明者】
【氏名】バーガー,マイケル
【審査官】漆原 孝治
(56)【参考文献】
【文献】国際公開第2018/144060(WO,A1)
【文献】特開2018-148470(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
H04L 67/288
(57)【特許請求の範囲】
【請求項1】
一つ以上の他のエッジクラウドコンピューティングに関連するネットワーク種別に関わらず、前記一つ以上の他のエッジクラウドコンピューティングデバイスの存在を見つけることにより、第一のパラメータのセットに基づいて、前記一つ以上の他のエッジクラウドコンピューティングデバイスを見つけて、それらの間の接続を確立するように、および、
一つ以上のエッジクラウドコンピューティングデバイス間で確立された前記接続に関連する一つ以上のマイクロサービスを実行するためのマイクロサービスランタイム環境を提供するように構成されたエッジノード作動モジュールを備えるエッジクラウドコンピューティングデバイスであって、
前記エッジクラウドコンピューティングデバイスは、インターネットを介して到達可能なサーバー上にホストされるバックエンドサービスモジュールが提供する発見サービスと情報をやり取りするように構成され、
前記エッジクラウドコンピューティングデバイスは、それ自体をスーパーエッジクラウドコンピューティングデバイスに指定し、前記エッジクラウドコンピューティングデバイスから前記発見サービスに前記エッジクラウドコンピューティングデバイスの存在を伝え、
前記発見サービスから、前記エッジクラウドコンピューティングデバイスの範囲内の一つ以上のエッジクラウドコンピューティングデバイスのリストを受け取るエッジクラウドコンピューティングデバイス。
【請求項2】
前記エッジノード作動モジュールは、
前記一つ以上の他のエッジクラウドコンピューティングデバイスに関連するオペレーティングシステムに関わらず、前記一つ以上の他のエッジクラウドコンピューティングデバイスの存在を見つけるように、
前記一つ以上の他のエッジクラウドコンピューティングデバイスに関連する能力および挙動を見つけるように、および、
前記一つ以上の他のエッジクラウドコンピューティングデバイスによってサポートされている一つ以上のマイクロサービスを見つけるように構成される、請求項1に記載のエッジクラウドコンピューティングデバイス。
【請求項3】
前記第一のパラメータのセットは、
前記一つ以上の他のエッジクラウドコンピューティングデバイスの各々のユーザアカウントと、
該一つ以上の他のエッジクラウドコンピューティングデバイスに関連するネットワークと、
該一つ以上の他のエッジクラウドコンピューティングデバイスの近接性と、を含む、請求項1に記載のエッジクラウドコンピューティングデバイス。
【請求項4】
前記エッジノード作動モジュールはさらに、
前記一つ以上のエッジクラウドコンピューティングデバイスによって一つ以上のクラスターを動的に構成するように、および、
前記一つ以上のクラスター間で直接、または、他のエッジクラウドコンピューティングデバイスを介して、マイクロサービスレベルで、前記一つ以上の他のエッジクラウドコンピューティングデバイスと通信するように構成される、請求項1に記載のエッジクラウドコンピューティングデバイス。
【請求項5】
前記エッジノード作動モジュールはさらに、前記見つかった一つ以上の他のエッジクラウドコンピューティングデバイスが、データ、サービスおよび/またはリソースを共有することを選択した場合に、該見つかった一つ以上の他のエッジクラウドコンピューティングデバイスと接続するように構成される、請求項1に記載のエッジクラウドコンピューティングデバイス。
【請求項6】
前記エッジノード作動モジュールはさらに、共通の組込みウェブサーバーを介して、前記一つ以上のマイクロサービスのサービスを呈示するように構成される、請求項1に記載のエッジクラウドコンピューティングデバイス。
【請求項7】
各マイクロサービス用の一つ以上のAPIエンドポイントは、APIゲートウェイを介してクラスター内の前記一つ以上のエッジクラウドコンピューティングデバイスからアクセス可能である、請求項1に記載のエッジクラウドコンピューティングデバイス。
【請求項8】
前記エッジノード作動モジュールはさらに、前記一つ以上の他のエッジクラウドコンピューティングデバイスに関連するそれぞれのコンピューティング環境に少なくとも部分的に基づいて、フレキシブルなコンテナ能力を提供するように構成され、該それぞれのコンピューティング環境は、前記一つ以上のマイクロサービスをダウンロードし、展開しおよび稼働させるためのコンテナデーモンを作動させる、請求項1に記載のエッジクラウドコンピューティングデバイス。
【請求項9】
前記エッジノード作動モジュールは、中に組み込まれたウェブサーバーを備え、該ウェブサーバーは、前記エッジクラウドコンピューティングデバイスに関連するオペレーティングシステムに基づく固有言語を用いてコンテナ管理APIを提供するように構成される、請求項1に記載のエッジクラウドコンピューティングデバイス。
【請求項10】
PC、セットトップボックス、IoTゲートウェイ、TVに接続されたゲームコンソール、自動車インフォテインメントシステム、スマートフォン、ラップトップ、スマートウォッチ、PDAおよびこれらの組合せのうちの一つ以上として構成された、請求項1に記載のエッジクラウドコンピューティングデバイス。
【請求項11】
サーバーコンピューティングデバイスと情報をやり取りする一つ以上のエッジクラウドコンピューティングデバイスを備える、通信ネットワーク内での動作のために構成された前記サーバーコンピューティングデバイスであって、
前記一つ以上のエッジクラウドコンピューティングデバイスをサポートするための一つ以上のバックエンドサービスを提供するように構成されたバックエンドサービスモジュールであって、該一つ以上のバックエンドサービスが、
前記一つ以上のエッジクラウドコンピューティングデバイスから成る一つ以上のクラスターを構成するための情報を提供するように構成された発見サービスであって、該一つ以上のクラスターの各々が、少なくとも一つのスーパーエッジクラウドコンピューティングデバイスを備える発見サービスと、
前記発見サービスからの要求を受けたときに、前記一つ以上のクラスターのためのシグナリングエンドポイント(SEP)およびベアラエンドポイント(BEP)を動的に展開するように構成されたシグナリングサービスと、
前記一つ以上のエッジクラウドコンピューティングデバイスの認証プロファイルを形成して維持するように構成されたアイデンティティサービスと、を備える、サーバーコンピューティングデバイス。
【請求項12】
一旦、第一のクラスターが構成されると、前記発見サービスは、該第一のクラスターの一部ではない新たなエッジクラウドコンピューティングデバイスが、該第一のクラスターに対応する前記スーパーエッジクラウドコンピューティングデバイスに登録することを可能にするように構成される、請求項11に記載のサーバーコンピューティングデバイス。
【請求項13】
前記発見サービスはさらに、前記スーパーエッジクラウドコンピューティングデバイスの各々が、それ自体を登録することを可能にするように構成される、請求項11に記載のサーバーコンピューティングデバイス。
【請求項14】
前記一つ以上のクラスターを構成するための前記情報は、
前記一つ以上のクラスターのプロファイルと、一つ以上のクラスターを構成する前記一つ以上のエッジクラウドコンピューティングデバイスに関連するコンピューティングリソースの詳細と、
該一つ以上のクラスターを構成する該一つ以上のエッジクラウドコンピューティングデバイスのステータスおよび位置と、
該一つ以上のクラスターを構成する該一つ以上のエッジクラウドコンピューティングデバイス上で利用可能な一つ以上のサービスと、
該一つ以上のクラスターを構成する各エッジクラウドコンピューティングデバイスに到達するためのエンドツーエンドネットワークトポロジーと、
該一つ以上のクラスターの到達可能性と、を含む、請求項11に記載のサーバーコンピューティングデバイス。
【請求項15】
前記発見サービスはさらに、リアルタイムで、前記通信ネットワーク内の任意の利用可能なエッジクラウドコンピューティングデバイス上に前記一つ以上のサービスを動的に展開するように、前記通信ネットワーク内で利用可能なリソースに関連する情報を提供するように構成される、請求項11に記載のサーバーコンピューティングデバイス。
【請求項16】
前記シグナリングサービスは、前記一つ以上のクラスター内のコンピューティングリソースに対する要求に基づいて、前記シグナリングエンドポイント(SEP)およびベアラエンドポイント(BEP)を動的に展開するように構成される、請求項11に記載のサーバーコンピューティングデバイス。
【請求項17】
前記シグナリングエンドポイント(SEP)はシグナリング通信に用いられ、前記ベアラエンドポイント(BEP)はデータ通信に用いられ、該シグナリングエンドポイント(SEP)およびベアラエンドポイント(BEP)の動的展開は、前記一つ以上のクラスター内の前記一つ以上のエッジクラウドコンピューティングデバイスのためのシグナリング帯域幅およびデータ帯域幅を増加させる、請求項11に記載のサーバーコンピューティングデバイス。
【請求項18】
前記シグナリングサービスは、前記一つ以上のサービスの稼働開始の時間、前記一つ以上のクラスター内での同時接続の数、および該一つ以上のクラスター内の前記一つ以上のエッジクラウドコンピューティングデバイスに関連する一つ以上の通信プロトコルを含む一つ以上のパラメータに基づいて、前記シグナリングエンドポイント(SEP)およびベアラエンドポイント(BEP)を動的に展開するように構成される、請求項11に記載のサーバーコンピューティングデバイス。
【請求項19】
前記アイデンティティサービスは、各エッジクラウドコンピューティングデバイス内のエッジノード作動モジュール、該エッジノード作動モジュールを用いるマイクロサービス、該エッジノード作動モジュールを用いるアプリケーション開発者、および該エッジノード作動モジュールによってサポートされるアプリケーションのエンドユーザのうちの一つ以上のためのトークンを生成して維持するように構成さる、請求項11に記載のサーバーコンピューティングデバイス。
【請求項20】
前記アイデンティティサービスは、トークンホルダーのクレデンシャルおよび正当性を確認して、前記バックエンドサービスモジュールによって提供される前記一つ以上のサービスへの該トークンホルダーのアクセスを承認するように構成される、請求項11に記載の前記サーバーコンピューティングデバイス。
【請求項21】
少なくとも一つのサーバーコンピューティングデバイスと情報をやり取りする一つ以上のエッジクラウドコンピューティングデバイスを備える通信ネットワーク内にエッジクラウドコンピューティングインフラストラクチャを提供する方法であって、
第一のエッジクラウドコンピューティングデバイスにより、エッジノード作動モジュールを実行することと、
前記第一のエッジクラウドコンピューティングデバイスにより、他のエッジクラウドコンピューティングデバイスに関連するオペレーティングシステムおよびネットワークとは無関係に、該他のエッジクラウドコンピューティングデバイスを動的に見つけることと、
前記第一のエッジクラウドコンピューティングデバイスにより、見つけた他のエッジクラウドコンピューティングデバイスのリソースの可用性、能力および機能性を呈示することと、
前記第一のエッジクラウドコンピューティングデバイスにより、前記見つけた他のエッジクラウドコンピューティングデバイスの一つ以上のクラスターを構成して編成することと、
前記第一のエッジクラウドコンピューティングデバイスにより、前記一つ以上のクラスター内で、および該一つ以上のクラスターの全域で通信することと、を含み、さらに
前記サーバーコンピューティングデバイスによって形成されるバックエンドサービスモジュールは、前記一つ以上のエッジクラウドコンピューティングデバイスから成る一つ以上のクラスターを構成するための情報を提供するように構成された発見サービスを提供するように構成されており、
前記エッジノード作動モジュールの実行の後に、前記第一のエッジクラウドコンピューティングデバイスにより、スーパーエッジクラウドコンピューティングデバイスを探索することと、
前記探索することの間に、前記スーパーエッジクラウドコンピューティングデバイスが見つからない場合に、前記第一のエッジクラウドコンピューティングデバイスにより、それ自体を該スーパーエッジクラウドコンピューティングデバイスに指定することと、
前記第一のエッジクラウドコンピューティングデバイスから前記第一のエッジクラウドコンピューティングデバイスの存在を前記発見サービスに伝えることと、
前記第一のエッジクラウドコンピューティングデバイスが、前記発見サービスから、前記第一のエッジクラウドコンピューティングデバイスの範囲内の一つ以上のエッジクラウドコンピューティングデバイスのリストを受け取ることと、
を含む、方法。
【請求項22】
前記スーパーエッジクラウドコンピューティングデバイスは、前記発見サービスを管理するように構成される、請求項21に記載の前記方法。
【請求項23】
前記第一のエッジクラウドコンピューティングデバイスにより、後に前記一つ以上のクラスターに入る一つ以上のエッジクラウドコンピューティングデバイスから登録のための要求を受信することと、
前記第一のエッジクラウドコンピューティングデバイスにより、前記登録された一つ以上のエッジクラウドコンピューティングデバイスに、該第一のエッジクラウドコンピューティングデバイスの範囲内の一つ以上の他のエッジクラウドコンピューティングデバイスのリストを送信することと、をさらに含む、請求項21に記載の前記方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にクラウドコンピューティングに関する。具体的には、該開示は、分散型エッジクラウドコンピューティングのための方法およびシステムに関する。
【背景技術】
【0002】
センサおよびマシンを含むコネクテッドデバイスの大きな成長は、人の生活のあらゆる側面を変えている。このような成長の社会経済的なインパクトは、大きな影響を与えるものであり、限定するものではないが、放送、旅行、輸送、銀行業および小売等のさまざまな産業を既に一変させている。デバイスの爆発的増加や、個人的なデジタルコンテンツおよびマシンで生成されたデータの指数関数的増加に関連する課題が、このような成長と同時に発生する。クラウドおよびクラウドコンピューティングは、このような成長に対する主要なイネーブラーになっている。今日、ほとんどのポピュラーな民生用および企業向けアプリケーションおよびソリューションは、一般的に「クラウド」と呼ばれているデータセンターにホストされている。クラウドコンピューティングは、Facebook(登録商標)、YouTube(登録商標)、Instagram(登録商標)、DropBox(登録商標)等のアプリケーションを操作可能にするのに必要不可欠になってきている。基本的なアーキテクチャは、いくつかのノードまたはコンピューティングデバイスがサーバーの機能を果たし、その他のノードまたはコンピューティングデバイスがクライアントの機能を果たすクライアントサーバアーキテクチャと一致する。今日のほとんどのコンピューティングノードは、該サーバーの大部分が、世界中に点在しているサーバファームで構成されているデータセンター内にあるクライアントサーバーモードで作動する。該クライアントサーバアーキテクチャは、該サーバーから複数のクライアントノードに対してコンテンツおよび情報にアクセスできるようにしているアプリケーションのホスティングに対して高性能なものである。アプリケーションは、計算集中タスクを処理する該サーバー上にホストされ、エッジノード上のクライアントソフトウェアは、エンドユーザのためのレンダリング情報等のより単純な機能に用いられる。既存のアーキテクチャの主な利点は、仮想化およびオーケストレーション技術を用いて多くのアプリケーション間で共有される汎用サーバー上の(コンピューティングおよび/またはストレージ集中)アプリケーションに関する迅速で低コストの展開である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
既存の中央クラウドインフラストラクチャは、限定された中央クラウドリソースおよびネットワーク接続性(または帯域幅)により、近い将来の高まる需要に応えることができない可能性がある。換言すると、該現在のアーキテクチャは、中央クラウドリソースおよび該中央クラウドに対するネットワーク接続性を、将来の成長に対するボトルネックにしてしまう。さらに、いくつかのアプリケーションに関するレイテンシ要件は、既存のクラウドインフラストラクチャによって満たされない可能性がある。加えて、数十億のエッジノードから数百万の集中型クラウドサーバーへのデータ送信は、帯域幅やエネルギーを浪費し、これは、深刻な社会的および経済的影響がある。
【0004】
中央クラウドアーキテクチャのまた別の欠点は、それらのサーバーに格納されたか、または該サーバーで処理される該アプリケーションおよび該データにアクセスできるクラウドサービスプロバイダへの依存である。その結果として、今日では、一握りの巨大な会社が、消費者や企業のデータの大部分を支配している。また、すべての洗練されたセキュリティ対策にもかかわらず、データの蓄積およびアプリケーションをサードパーティーリソースにホストすることは、情報の所有者を危険にさらす。クラウドリソースは、数百万の開発者およびアプリケーションサービスプロバイダへの容易なアクセスのために設計されてきたが、それらの開発者やプロバイダも同様に脆弱性やセキュリティホールが増加している。このことは、消費者および企業のデータのプライバシーおよびセキュリティの悪用をもたらしている。
【課題を解決するための手段】
【0005】
上記の強調した課題および欠点に対処する有効で実行可能なアプローチを実施するシステムおよび方法が開示されている。実施形態において、該システムは、任意のコンピューティングデバイスをクラウドサーバーに変えることによって、該クラウドの分散化を実施する。中央ホスティングサービスは、多くのアプリケーションにとって必要ではないため、コンピューティングデバイスをクラウドサーバーに変えることにより、ディジタル媒介者およびサードパーティーの信頼要素の役割を減らすことが可能である。このようにして、現在の「中央クラウド」ファブリックよりも潜在的に桁違いに大きい物理的なエッジクラウドファブリックが形成される。
【0006】
エッジクラウドコンピューティングデバイスの実施形態が開示されている。実施形態において、該エッジクラウドコンピューティングデバイスは、第一のパラメータのセットに基づいて、一つ以上の他のエッジクラウドコンピューティングデバイスを見つけて、それらの間の接続を確立するように構成されたエッジノード作動モジュールを含む。該エッジノード作動モジュールはさらに、一つ以上のエッジクラウドコンピューティングデバイス間で確立された前記接続に関連する一つ以上のマイクロサービスを実行するためのマイクロサービスランタイム環境を提供するように構成されている。実施形態において、該エッジノード作動モジュールは、前記一つ以上のエッジクラウドコンピューティングデバイスに関連するオペレーティングシステムおよび/またはネットワーク種別に関わらず、前記一つ以上のエッジクラウドコンピューティングデバイスの存在を見つけるように構成されている。該エッジノード作動モジュールはさらに、前記一つ以上のエッジクラウドコンピューティングデバイスに関連する能力および挙動を見つけるように、および前記一つ以上のエッジクラウドコンピューティングデバイスによってサポートされている一つ以上のマイクロサービスを見つけるように構成されている。実施形態において、該第一のパラメータのセットは、前記一つ以上のエッジクラウドコンピューティングデバイスの各々に関連するユーザアカウントと、該一つ以上のエッジクラウドコンピューティングデバイスに関連するネットワークと、該一つ以上のエッジクラウドコンピューティングデバイスの近接性とを含む。
【0007】
前記エッジノード作動モジュールはさらに、前記一つ以上のエッジクラウドコンピューティングデバイスによって一つ以上のクラスターを動的に構成するように、および前記一つ以上のクラスター間で直接、または、他のエッジクラウドコンピューティングデバイスを介して、マイクロサービスレベルで、前記一つ以上のエッジクラウドコンピューティングデバイスと通信するように構成されている。実施形態において、前記エッジノード作動モジュールはさらに、前記見つかった一つ以上のエッジクラウドコンピューティングデバイスが、データ、サービスおよび/またはリソースを共有することを選択した場合に、該見つかった一つ以上のエッジクラウドコンピューティングデバイスと接続するように構成されている。前記エッジノード作動モジュールはさらに、共通の組込みウェブサーバーを介して、前記一つ以上のマイクロサービスのサービスを呈示するように構成されている。実施形態において、各マイクロサービス用の一つ以上のAPIエンドポイントは、APIゲートウェイを介してクラスター内の前記一つ以上のエッジクラウドコンピューティングデバイスからアクセス可能である。前記エッジノード作動モジュールはさらに、前記一つ以上のエッジクラウドコンピューティングデバイスに関連するそれぞれのコンピューティング環境に少なくとも部分的に基づいて、フレキシブルなコンテナ能力を提供するように構成されている。該それぞれのコンピューティング環境は、前記一つ以上のマイクロサービスをダウンロードし、展開しおよび稼働させるためのコンテナデーモン(container daemon)を作動させる。
【0008】
実施形態において、前記コンピューティング環境は、前記一つ以上のエッジクラウドコンピューティングデバイスから成るアドホッククラスターを管理するためのコンテナデーモンを作動させる。該エッジノード作動モジュールは、中に組込まれたウェブサーバーをさらに含む。該ウェブサーバーは、前記エッジクラウドコンピューティングデバイスに関連するオペレーティングシステムに基づく固有言語を用いてコンテナ管理APIを提供するように構成されている。該エッジノード作動モジュールは、一つ以上のソフトウェアライブラリおよび対応するAPIをさらに含む。
【0009】
また、コンピューティングデバイス、および本願明細書に記載されているさまざまな技術を実施する命令を有するコンピュータ可読媒体も開示されている。実施例のコンピュータ可読媒体は、プロセッサにより実行可能なコンピュータが実行可能な命令を有する有形の非一時的なコンピュータ可読記憶媒体から成っていてもよく、該命令は、該プロセッサによって実行される際、該プロセッサに、本願明細書に記載されているさまざまな方法およびアプローチの任意の組合せを実行させる。実例のコンピューティングデバイスは、プロセッサ、記憶装置、クライアントアプリケーション、および/または本願明細書に記載されている該方法を実行するように構成されたネットワークサービスを備えているサーバーまたはクライアント装置を含んでもよい。
【0010】
上記の概要は、例示的なものにすぎず、および決して限定しようとするものではない。上述した該例示的な態様、実施形態および形状構成に加えて、さらなる態様、実施形態および形状構成は、図面および以下の詳細な説明を参照することによって明らかになるであろう。
【図面の簡単な説明】
【0011】
図1】エッジクラウドコンピューティングネットワークの実施形態を示す図である。
図2】実施形態によるエッジクラウドアーキテクチャの基本的な構成ブロックを示す図である。
図3】実施形態によるエッジクラウドコンピューティングデバイスを示す図である。
図4】実施形態による例示的なエッジクラウドアーキテクチャを示す図である。
図5】エッジクラウドアーキテクチャの同じユーザIDに属する二つのエッジクラウドコンピューティングデバイスの場合の発見、接続および通信に関する例示的な実施形態を示す図である。
図6】クラウドコンピューティングインフラストラクチャを提供する方法の例示的な実施形態を示す図である。
【発明を実施するための形態】
【0012】
該以下の詳細な説明は、当業者は誰でも本発明を実行および利用できるようにするために提示されている。説明の目的のため、該本発明の十分な理解を実現できるように、具体的な詳細が記載されている。しかし、それらの具体的な詳細が該本発明を実施するのに必要なものではないことは当業者には明らかであろう。具体的な適用の説明は、典型的な実施例として記載されているにすぎない。該好適な実施形態に対するさまざまな変更は、当該技術分野の熟練者には容易に明らかになるであろうし、また、本願明細書で定義されている一般的原理は、該本発明の範囲から逸脱することなく、他の実施形態および適用にも当てはめることができる。該本発明は、示されている該実施形態に限定されることを意図するものではないが、本願明細書に開示されている該原理および形状構成に一致する最も広範で可能な範囲に一致すべきである。
【0013】
これまでの十年間では、既存のクライアントサーバアーキテクチャの効率を良くしない二つの基本的なトレンドが見られた。第一のトレンドは、コンピューティングデバイスおよび組込みコンピューティングの急増、および該エッジクラウドコンピューティングデバイスの能力の急激な向上である。例えば、今日の携帯電話には、ちょうど十年前の強力なサーバーよりも多くのコンピューティング、メモリおよびストレージが利用可能になっている。このトレンドは、ムーアの法則に従って、しばらくの間続くであろう。第二のトレンドは、該エッジクラウドコンピューティングデバイス上で生成される膨大な量のデータである。モバイル端末上でのソーシャルメディアの出現で、クラウド内の中央サーバーにホストされた大手の映画会社や放送局からの上質なコンテンツよりも非常に膨大な量の個人的なマルチメディアコンテンツ(写真、ビデオ、センサデータ等)が端末上に生成される。該サーバー・クライアントアーキテクチャを用いる既存のクラウドコンピューティングシステムにおいては、該エッジクラウドコンピューティングデバイス上で生成される該データの大部分は、処理するために、および共有を容易にするために、該中央クラウドに返送される。
【0014】
一例として、現在、人々の家庭には、八千万台を超えるSony PlayStation 4(PS4(商標))のコンソールがある。このことは、六億のプロセッサコアおよび約四万ペタバイトのストレージを表している。比較すると、これは、全体として、Amazon Web Services(AWS(登録商標))全体のインフラストラクチャよりもかなり大きなコンピューティング、ストレージおよびメモリリソースに相当する。潜在的にクラウドサーバーとして機能することができ、および該既存の「中央クラウド」よりも桁違いに多くの計算能力を集合的に有することができる数十億のPC、セットトップボックス、ゲームコンソール、ストリーミングプレーヤー、ルーター、スマートフォン、タブレットおよびその他のコンピューティングデバイスが存在する。該本開示は、該既存の中央クラウドよりも桁違いに多い数十億のエッジクラウドコンピューティングデバイス(またはノード、または、エッジノード)で構成されたクラウドファブリックを形成するためのシステムおよび方法を提供する。
【0015】
分散型クラウドアーキテクチャの実施形態が開示されている。開示されているアプローチは、専用ハードウェアを用いた新たなネットワークノードの形成を必要としない。その代わりに、該開示されているアーキテクチャは、PC、タブレット、セットトップボックス(STB)、または、ホームルーター等の既存のコンピューティングデバイスが、妥当な場合に該クラウドネットワークのエッジにおいて、クラウドサーバノードとして機能することを可能にしている。該開示されているアプローチは、それらのデバイスの低レベルのデザインへの何らかの変更を必要としない。必要なのは、既存のデバイスのハードウェアまたはOSカーネルへの何らかの変更を伴うことなく、既存のオペレーティングシステムをコントロールして作動するダウンロード可能なアプリケーションだけである。開発者が該既存のクラウドインフラストラクチャを分散化するための強力な持ち球を与えることの他に、該開示されているアーキテクチャは、コンシューマーの個人的データに関するより多くのコントロールをコンシューマーに与える。さらに、特に、該開示されているアプローチは、アプリケーションおよびサービスのホスティングおよび配布に関するコストを最小限にし、ネットワークの能力を向上させ、およびレイテンシを最小限にする。
【0016】
エッジクラウドプラットフォームの実施形態が開示されている。該開示されているクラウドプラットフォームは、該分散化をコンピューティングの次の改革として加速させる。クラウド分散化における最初のステップは、サーバーがデータセンター内でしか存在することができないという制限を外すことである。これは、今日のインターネットの支配的なクライアントサーバインフラストラクチャを定義する基本的な制限である。該本開示は、任意のコンピューティングデバイスが、アプリケーションのリアルタイムの必要性に基づいて、クライアントまたはサーバーのいずれかとして機能することを可能にすることによってこれを実現する代替的なアーキテクチャ/プラットフォームおよび実際的なアプローチを提供する。また、エッジノード作動モジュールおよび一つ以上のバックエンドサービスを用いて該エッジクラウドファブリックを形成するためのクラウドプラットフォームも開示されている。
【0017】
開示されているアーキテクチャの恩恵および利点は、低減されたクラウドホスティングコスト、低減された通信帯域幅、ネットワーク効率の向上、エネルギー消費および炭素排出量の低減、レイテンシの低減、プライバシーの向上、および消費者および企業のデータに関するより良好な管理を含む。
【0018】
エッジクラウドコンピューティングインフラストラクチャ(または、プラットフォーム)を提供する方法の実施形態が開示されている。該方法は、サーバーコンピューティングデバイスまたは中央クラウドと情報をやり取りする一つ以上のエッジクラウドコンピューティングデバイスを含む通信ネットワーク内で実施される。該方法は、第一のエッジクラウドコンピューティングデバイスによって、エッジノード作動モジュールを実行することを含む。該方法は、該第一のエッジクラウドコンピューティングデバイスによって、他のエッジクラウドコンピューティングデバイスに関連する該オペレーティングシステムおよびネットワークに無関係な該他のエッジクラウドコンピューティングデバイスを動的に見つけることをさらに含む。該方法は、該第一のエッジクラウドコンピューティングデバイスによって、該見つかった他のエッジクラウドコンピューティングデバイスのリソースの可用性、能力および機能性を呈示することをさらに含む。該方法は、該第一のエッジクラウドコンピューティングデバイスによって、該見つかった他のエッジクラウドコンピューティングデバイスの一つ以上のクラスターを構成して組織化することをさらに含む。また、該方法は、該第一のエッジクラウドコンピューティングデバイスによって、該一つ以上のクラスター内で、および該一つ以上のクラスターにわたって通信することも含む。
【0019】
実施形態において、該方法は、該エッジノード作動モジュールの実行の後に、該第一のエッジクラウドコンピューティングデバイスによって、(進行中の説明においては「スーパーノード」とも呼ぶ)スーパーエッジクラウドコンピューティングデバイスを探索することを含む。該スーパーエッジクラウドコンピューティングデバイスは、ノードまたはエッジクラウドコンピューティングデバイスのグローバルディスカバリーを管理するように構成される。
【0020】
該探索中に、スーパーエッジクラウドコンピューティングデバイスが見つからない場合、該方法は、該第一のエッジクラウドコンピューティングデバイスによって、それ自体を該スーパーエッジクラウドコンピューティングデバイスに指定することをさらに含む。該方法は、該第一のエッジクラウドコンピューティングデバイスによって、その存在をグローバルディスカバリーに伝えることと、該第一のエッジクラウドコンピューティングデバイスによって、該第一のエッジクラウドコンピューティングデバイスの範囲内の一つ以上のエッジクラウドコンピューティングデバイスのリストを受信することと、をさらに含む。
【0021】
該方法は、該第一のエッジクラウドコンピューティングデバイスによって、後に該一つ以上のクラスターに入る一つ以上のエッジクラウドコンピューティングデバイスから登録のための要求を受信することと、該第一のエッジクラウドコンピューティングデバイスによって、該登録された一つ以上のエッジクラウドコンピューティングデバイスに、該第一のエッジクラウドコンピューティングデバイスの範囲内の、および/または該登録された一つ以上のエッジクラウドコンピューティングデバイスの範囲内の一つ以上の他のエッジクラウドコンピューティングデバイスのリストを送信することと、をさらに含む。
【0022】
図1は、エッジクラウドコンピューティングネットワーク100の実施形態を示す。該既存の「中央クラウド」モデルにおいて、より多くのデバイスが追加され、または、より多くのコンテンツがデバイスによって生成されるため、データセンター内により多くのサーバーを、それらをサポートするために追加しなければならない。図1に示すような分散型エッジクラウドコンピューティングネットワーク100の場合、エッジデバイスの数に伴って拡大するクラウドファブリックを形成することができる。このことは、エッジデバイスの該数およびエッジデバイスによって生成されるコンテンツが増大する際のデータセンター内の追加サーバーに対する必要性を低減する。
【0023】
該進行中の説明において、該「エッジデバイス」は、「ノード」または「エッジノード」または「エッジクラウドコンピューティングデバイス」と置換え可能に呼ばれる。したがって、該「クラウド」能力は、エッジクラウドコンピューティングデバイスの該数が増大するにつれて増加する。さらに、該データの大部分が該エッジで生じると仮定すると、輸送コストおよびアプリケーションに対するレイテンシが最小限になる。該開示したアプローチにおいて、該処理の大部分は、該エッジで実行され、通信は、可能な限りローカルで維持され、およびエッジクラウドコンピューティングデバイスは、コンピューティングリソースおよびその他のリソースと協働しおよびそれらを共有する。該進行中の説明の目的のために、該「中央クラウド」は、データセンター内の一つ以上のサーバーを参照し、それらが、中央ストレージまたは処理を要求する多くのアプリケーションにとって不可欠である可能性がある場合、役に立つリソースとして留まる。しかし、提案されたエッジクラウドプラットフォームおよびアーキテクチャにおいて、該中央クラウドはもはやボトルネックまたは「必要な」信頼要素になっているであろうし、およびエッジノードに比例して増大する必要もない。
【0024】
図1に示すように、該エッジクラウドコンピューティングネットワーク100は、ラップトップ102、タブレットPC104、中央「クラウド」106、自動車インフォテインメントシステム108、防犯カメラ110、サーバーコンピューティングデバイス112、モバイル端末114およびテレビゲーム機116等の複数のエッジクラウドコンピューティングデバイスを含む。例示的な実施形態において、該エッジクラウドコンピューティングデバイスの各々は、該エッジクラウドコンピューティングネットワーク100の該必要性に従って、クライアントまたはサーバーとして機能するように構成することができる。さらに、図1は、該エッジクラウドコンピューティングデバイス間の接続経路または通信経路を点線で示す。当業者には正しく認識されるであろうが、該アーキテクチャは、一つ以上のデバイスが、常に「サーバー」として機能するように指定され、およびその他のデバイスは、常に「クライアント」として機能する従来のクライアントサーバーモードに従わない。
【0025】
該エッジクラウドコンピューティングネットワーク100の該提案されたアーキテクチャにおいては、該提案されたアーキテクチャを実行可能にするための課題になる可能性のある、オペレーティングシステムおよびネットワークにおける断片化がある。例えば、該エッジクラウドコンピューティングデバイスの各々は、Linux(登録商標)、アンドロイド、iOS(登録商標)、macOS(登録商標)、Windows(登録商標)、Fedora(商標)等の多数のバージョン等の異なるオペレーティングシステムを利用する可能性がある。さらに、該エッジクラウドコンピューティングデバイスは、固定(イーサネット、ファイバ、xDSL、DOCSIS(登録商標)、USB等)、モバイルWAN(2G、3G、4G等)、無線LAN(WiFi(登録商標)等)、無線PAN(Bluetooth(登録商標)、WiGig、ZWave(登録商標)、ZigBee(登録商標)、IrDA等)およびマシンネットワーク(SigFox(登録商標)、LoRa(登録商標)、RPMA等)等の異なるネットワーキング技術を用いて作動するように構成することができる。この課題に対処するために、該提案されたクラウドアーキテクチャは、作動時に、多くの断片化されたオペレーティングシステムおよびネットワーク技術にわたって、他のエッジクラウドコンピューティングデバイスと接続し、通信しおよび協働するように構成されるエッジクラウドコンピューティングデバイス(例えば、符号114)を含む。
【0026】
該開示の別の態様において、ネットワークリソースの該可用性は、該エッジクラウドコンピューティングネットワーク100において課題になる可能性がある。したがって、一旦、エッジクラウドコンピューティングデバイス(例えば、符号112、114)がサーバーとして機能すると、それらは、アップリンクネットワークリソースを用いて、他のエッジノードと接続して通信することができる。ネットワーク接続性は、徐々に対称になるが、典型的には、アップリンクリソースよりもダウンリンクの方がより多く利用可能である。例示的な実施例として、三つの他のエッジノードによって消費されるエッジノードから該中央クラウドへの動画の投稿は、該ソースから宛先ノードへ該動画を(直接)ストリーミングするのと比較して、異なるアップリンク/ダウンリンクリソースを直接的に必要とする。集中型クラウドネットワークにおいては、アップリンクの一つのインスタンスと、ダウンリンクの三つのインスタンスとがあり、該提案された分散型エッジクラウドコンピューティングネットワーク100では、(ファイアウォールの後方に何もないと仮定すると)アップリンクの三つのインスタンスがある。そのため、ネットワークリソースの可用性は、実行可能にされる該分散型エッジクラウドプラットフォームにとって重要な側面になるであろう。これに対する解決策は、後に説明する「メリトクラシー(meritocracy)」の原理に関連して説明する。
【0027】
該開示のまた別の態様においては、データセンター内のサーバーとは違って、大部分のエッジノードは、本質的に非永続型であってもよい。特にバッテリーで作動するモバイル端末の場合、可用性および信頼性に関するコントロールはあまりない。該提案されたエッジクラウドコンピューティングアーキテクチャは、以下で説明する「マイクロサービス」アプローチによって、この課題を克服している。
【0028】
該分散型エッジクラウドの場合、該「中央クラウド」(例えば、図1の符号106)を含むすべてのノードはクラウドサーバーとして機能することができ、指定された永続的な信頼要素はない。エッジノードまたはエッジクラウドコンピューティングデバイスは、第三者の信頼要素に頼ることなく、直接通信して、リソースと直接的に協働しおよび共有するように構成されている。さらに、ソフトウェア業界で進行中のトレンドは、該提案された分散化を簡単に実行可能にする。過去の非常に多くのコンポーネントから成るソフトウェアソリューションの管理に関する複雑性は、モノリシックなソリューションをもたらした。しかし、Docker(登録商標)&CoreOS(登録商標)、オンデマンドITのコンシューマライゼーションおよびリッチコミュニケーション(API)の容易さのような軽いコンテナ管理プラットフォームに関する仮想化技術の進化は、該複雑性を著しく低減した。良好なソフトウェア設計の実践は、本願明細書において以後「マイクロサービス」と呼ぶ専用の明確に定義されたコンポーネントの多数のインスタンスから成る集団としてソリューションを開発することである。該提案されたアーキテクチャにおける該ソフトウェアソリューションのより高い効率性を実現するために、マイクロサービスが、該マイクロサービス自体に対して実行されたAPIコールに基づいてインスタンス化(開始されて作動)される、「サーバーレス」アーキテクチャとも呼ばれるエフェメラルな(ephemeral)マイクロサービスを用いたプログラミングが実施される。
【0029】
例示的な実施形態において、該クラウドは、コンピューティングリソースを認識して呈示し、および利用可能なときに、それらを便宜主義的方法で利用することによって該エッジまで拡張される。さらに、途中にアナリティクスを付加すると、エフェメラルなマイクロサービスは、該可用性、ポリシーおよび(ソーシャルなイベントおよび他のアプリケーションレベルのイベントを含む)コンテキストに基づいて展開され、該エッジクラウドコンピューティングネットワーク100上のアプリケーションの最適な展開が可能になる。
【0030】
該開示されているアーキテクチャは、既存のエッジクラウドコンピューティングデバイスを、エッジクラウドサーバー(または、エッジクラウドサーバーコンピューティングデバイス)に容易に変えることができると仮定している。該説明の範囲内で、開発者は、可能な限り少しの努力で、(該エッジクラウドによってサポートされる)アプリケーションを構築できるはずであることが想定されている。該開示されているアプローチは、該エッジクラウドコンピューティングデバイスの異種の性質を前提として、デバイスの能力に基づいて機能的役割を割り当てる。開発者によるアプリケーションの開発を容易にするために、該中央クラウドと同様のAPIセマンティクス、例えば、AWS(Amazon Web Services(登録商標))またはMicrosoft Azure(登録商標)が実装されてフォローされる。さらに、該マイクロサービスを作動させるための軽いコンテナと、例えば、Docker(登録商標)またはCoreOS(登録商標)等の既存のコンテナ技術のセマンティクスが実装される。
【0031】
該開示されているアプローチにおいて、エッジノードまたはエッジクラウドコンピューティングデバイスは、潜在力のあるエッジクラウドサーバーまたはエッジクラウドサーバーコンピューティングデバイスになるように複数の能力を実演するように構成されている。該複数の能力は、それらのデバイスに関連する該オペレーティングシステム(OS)またはネットワークにかかわらず、他のエッジノードまたはエッジクラウドコンピューティングデバイスの該存在を見つける該能力を含む。また、該複数の能力は、他のノードの能力および挙動(例えば、ハードウェアのスペック、OS、永続性等)を見つける該能力も含む。さらに、該複数の能力は、他のエッジノードまたはエッジクラウドコンピューティングデバイスによってサポートされる一つ以上のマイクロサービスを見つけて、他のエッジノードまたはエッジクラウドコンピューティングデバイスとともにクラスターを動的に構成する該能力を含む。
【0032】
別の実施形態において、該複数の能力は、異なるクラスターにわたって、該マイクロサービスレベルで直接的に、または他のノードを介して、他のノードと通信し、およびそれらがデータ、サービスおよび/またはリソースを共有することを選択した場合に、他のノードと接続する該能力をさらに含む。さらなる実施形態において、該複数の能力は、リソースおよび能力に基づいて、機能および役割を割り当てるように適合し、およびデータをローカルに処理して分析する該能力をさらに含む。さらに、該複数の能力は、該中央クラウドと同程度に安全で信頼できるものとなる該能力をさらに含む。
【0033】
実施形態において、該複数の能力を実演するための該エッジノードまたは該エッジクラウドコンピューティングデバイスの構成は、プラットフォームに依存しないアプローチで実現される。実施形態においては、任意のエッジクラウドコンピューティングデバイスをエッジクラウドサーバーに変えて、その結果として、エンドツーエンドのエッジクラウドプラットフォームを構築する、ダウンロード可能なアプリケーションレベルのソフトウェア(例えば、エッジノード作動モジュール)が設けられている。当業者は、該提案されたアプローチが、該デバイスのハードウェア、OSカーネルまたはドライバへの変更、およびほとんどの現代のハードウェア(PC、STB、ルータタブレット、スマートフォン等)上での作業を必要としないことに留意すべきである。また、該提案されているソフトウェアレベルのアプリケーションは、非常に小さなメモリフットプリントを有し、および該エッジクラウドコンピューティングデバイスにわたって容易にロードし、作動させおよび停止することができるマイクロサービスをサポートすることに留意すべきである。
【0034】
さらに、該開示されているアプローチは、多数のカスタマーをサポートするためのソフトウェアの単一のインスタンスによって、マルチテナンシー、多数のアプリケーションおよびマイクロサービスをサポートする。該開示されているクラウドプラットフォームは、「中央クラウド」(例えば、図1の符号106)にホストされた軽いが高度にスケーラブルなバックエンド(サービス)を有し、該ノードまたは他のエッジクラウドコンピューティングデバイスの登録のためにブートストラップメカニズムを用いる。該開示されているクラウドプラットフォームは、同じネットワーク、近接性および(ユーザ)アカウント内でエッジノードの動的クラスターを形成する能力、およびクラスター間およびクラスター内のノードの(現れているおよび隠れている)移動特性を管理する能力を与える。
【0035】
実施形態において、該エッジクラウドコンピューティングネットワーク100は、直接的または中間ノードを介したいずれかの該エッジノードまたはエッジクラウドコンピューティングデバイス間の通信の管理と、該エッジノードからの要求に基づくバックエンドリソースまたはサービスの動的インスタンス化とを実行できる。さらに、エッジクラウドコンピューティングネットワーク100は、協働するエッジノードおよび/またはリソースを動的に取出すことにより、効率的な永続性を生み出す。
【0036】
エッジノードの能力を利用して、巨大な分散型エッジクラウドを作り出すために、該開示されているアプローチは、該エッジクラウドアーキテクチャ内でさまざまな原理を考慮して実施する。該開示されているアプローチによって実施される分散化の第一の原理は、「メリトクラシー」である。すべてのノードは、該エッジクラウドコンピューティングネットワーク100内において関与する等しい機会を有している。ノードは、それらの能力に基づいて任意の役割を担うことができる。ノードオーナーによって有効にされる能力は、ノードプロファイルに格納される。例えば、大きなストレージを伴うノードは、「キャッシュノード」または「バックアップストレージノード」になることができ、大きなネットワーク接続性を伴うノードは、「プロキシノード」にすることができ、永続的ノードは、ノードのクラスターのための情報(例えば、デバイスおよび能力/役割プロファイル)の所有者になることができる等々である。メリトクラシーは、ノードの階層構造をもたらす所定の役割を中央要素に与える必要性を防ぐ。
【0037】
実施形態において、メリトクラシーが作用するのに必要である「トランスペアレンシー」等の他の原理も該開示されているアプローチで実施される。例えば、該ノードは、それらのプロファイルに関する真実を透明性のある方法で知らせるべきであり、そうでなければ、メリトクラシーの該原理を有効に適用することができない。該開示されているアーキテクチャは、嘘をつく(例えば、何らかのノード固有の特権または権利を与えない)誘因を取り除く。嘘をつく(例えば、虚偽の情報、誤解を与える情報または偽情報を与える)明白な誘因がない場合であっても、該開示されているアーキテクチャは、それらのノードのプロファイルに関して嘘をついて、該エッジクラウドコンピューティングネットワーク100内のクラスターの動作に危害を加えるそれらのノードをブラックリストに載せるメカニズムを実施する。さらに、該メリトクラシーは、時間とともに変化してもよく、およびノードは、それらの能力およびプロファイルをアップグレードまたはダウングレードしてもよい。該開示されているアーキテクチャは、該ノードに関するどのような変化に対してもリアルタイムで適応する。
【0038】
該開示されているアプローチによって実施される分散化の第二の原理は、「分散型発見」である。該エッジクラウドコンピューティングネットワーク100内のノードは、他のノードを見つける必要がある。進行中の開示において、発見は、ある範囲に基づいた「フィルタ処理された探索」であることを意図されている。ある範囲の例示的かつ非限定的な実施例は、ユーザアカウント(同じアカウントIDで登録されたノード)と、ネットワーク(同じリンクローカルクラスターネットワークのメンバーであるノード)と、近接性(地理的位置において、または、地理空間的クエリによって定義されたエリア内で物理的に存在するとそれ自体が報告されているノード)とを含む。実施形態において、該発見プロセスは、専用中央ノード、例えば、プレゼンスサーバーとして機能する中央ノードを要することなく、それらまたは他の範囲の任意の組合せを用いる。ノードがファイアウォールの後方に位置し、および外部から到達可能でない場合、該ノードは、発見可能になるように到達可能である任意のノードに依存しなくてはならない。
【0039】
該開示されているアプローチによって実施される分散化の第三の原理は、「クラスタリング」である。ノードは、大部分が(制限された)クラスター内で通信する。そのため、該開示されている該エッジクラウド内の通信フレームワークは、役割および責任をクラスター内のノードに割り当てる際に、このことを考慮する。クラスターは、所定の範囲に基づいて、第一のアクティブノード(または、第一のエッジクラウドコンピューティングデバイス)によって形成される。ノードが作動されている場合、該ノードは先ず、(該進行中の説明において「スーパーエッジクラウドコンピューティングデバイス」とも呼ばれる)「スーパーノード」を探す。該スーパーノードは、グローバルディスカバリーを監視し、および該エッジクラウドの情報を保持する。スーパーノードが見つからない場合は、該第一のノード(または、該第一のエッジクラウドコンピューティングデバイス)は、それ自体を該スーパーノードとして宣言し、または指定する。そして、通信ネットワークが利用可能である場合には、該スーパーノードは、その存在をグローバルディスカバリーに知らせて、定義された範囲内のノードのリストを受け取る。効率を維持するために、該スーパーノードは、その範囲内の他のノードに知らせる。その後、より良好なスーパーノードを識別することができ、および該より良好なスーパーノードは、その存在をグローバルディスカバリーに知らせることができ、そして、該スーパーノードとして機能することができる。
【0040】
一旦、クラスターが該スーパーノードによって形成されると、該クラスターに入る後続のノードは、既存のスーパーノードを見つけて、それら自体を該スーパーノードに登録し、およびそれらの範囲内のノードのリストを受け取るように構成される。新たなノードは、それらの存在をそれらの範囲内の他のノードに知らせる。該開示されているエッジクラウドは、グローバルローカルかにかかわらず、任意のノードのオーバーローディングを避けるためにこのブートストラップモデルを実施し、それによって、トラフィックおよびチャティネス(chattiness)を低減し、および軽くてスケーラブルなアーキテクチャを形成する。該ノードの潜在的な移動性を考慮すると、存在の通知は、それが知らせたがっているのは他のどのノードかを判断する責任とともに、該ノードそれ自体の機能である。したがって、該開示されているエッジクラウドアーキテクチャは、単一のグローバルなプレゼンスサーバーまたは該開示されているエッジクラウドコンピューティングネットワーク内での登録の地点を実施しない。同様に、該開示されているアーキテクチャは、該ノード間のインフラストラクチャレベルにおいて、「キープアライブ」メカニズムを有していない。実施形態において、このようなメカニズムは、特定の状況において必要な場合に、マイクロサービスに委託することができる。
【0041】
該開示されているアプローチによって実施される分散化の第四の原理は、「マイクロサービス間のコミュニケーション」である。分散型エッジクラウドファブリックを形成するために、エッジクラウドコンピューティングデバイスまたはノード上のアプリケーションは、第三者の信頼要素を要することなく、情報を直接やり取りすることができる。このことは、該デバイスが、ネットワークレベルにおいて、まとめて該エッジノードに接続することを可能にすることができる。該エッジノード上で作動するマイクロサービスは、情報を直接やり取りする必要がある。さらに、エッジノードは、該エッジクラウドコンピューティングネットワーク100内の他の任意のエッジノード上でマイクロサービスをロードし、始動し、および停止するように構成されている。この構成は、該開示されているクラウドプラットフォームにわたるマイクロサービスの管理が、中央エンティティを要することなく、分散型のままであることを確実にする。
【0042】
実施形態において、該エッジノード上で有効にされた該マイクロサービスは、共通の組込みウェブサーバーを介して、それらのサービスを呈示する。各サービス用のAPIエンドポイントは、エッジクラスター内のすべての他のエッジノードからアクセス可能である。コンテナデーモンを作動させることのできる環境(例えば、Linux)において、該開示されているエッジクラウドプラットフォームは、エッジノードのアドホッククラスターを管理する機能性を与える。コンテナデーモンを作動させることができない環境(例えば、スマートフォン)においては、該開示されているエッジクラウドプラットフォームは、マイクロサービスをダウンロードし、展開し、および稼働する該能力を備えた、追加的な「軽い」コンテナ能力を与える。
【0043】
該開示されているアプローチによって実施される分散化の第五の原理は、「動的なリソースインスタンス化」である。効率的である分散化の場合、クラスターに合流し、クラスターから離れ、またはリソースが割り当てられる該ノードに関連するオーバーヘッドが極めて少ないことが望ましい。該進行中の説明の目的のために、該開示されているエッジクラウドアーキテクチャによって実施される該ソリューションは、「動的なリソースインスタンス化」と呼ぶ。この原理に従って、シグナリングおよびデータリソースは、一つ以上のクラスター内のエッジノードからの要求に基づいて、(バックエンドサービスによって)動的に展開され、それによって、コンピューティングリソースを用意しておく必要性をなくす。このことは、効率を高め、および必要な場合にのみインスタンス化される該エンドポイント(例えば、SEP、BEP)を動的に展開することによってコストを低減する。該開示されているクラウドプラットフォームは、該エッジノードが、シグナリングおよびデータ帯域幅効率を増加させるようにトンネリングを適時的に設定するのを支援する。リソースは、限定するものではないが、稼働開始の時間、同時接続の数、および通信プロトコル(HTTP、SSH、ウェブソケットまたはUDPトンネリング)等のパラメータに基づいて展開される。必要に応じて、既定のクラスターの最も近い近接性の範囲内の利用可能なコンピューティングリソース上にエンドポイントを展開することができる。
【0044】
該開示されているアプローチによって実施される分散化の第六の原理は、「協働(collaboration)」である。該分散型エッジクラウドネットワーク内のエッジノードの集団的能力を活用するためには、該エッジノードが協働してリソースを共有することが望ましい。該分散型クラウドリソースの共有は、中央クラウドの場合と同じくらいシームレスになることが望ましい。第一のステップとして、該開示されているクラウドアーキテクチャは、すべての該エッジクラウドコンピューティングデバイスの該集団的リソースを用いることができる。例えば、ビデオは、HDフォーマットで該携帯電話114に記録され、該記録されたコンテンツは、該ラップトップ102、または接続されているストレージドングルにシームレスに格納される。次のステップとして、該開示されているアーキテクチャは、友人および家族とのリソースの共有を可能にする。例えば、家族の一員が、ネットワークアタッチドストレージ(Network Attached Storage:NAS)を家族リソースとして共有することを可能にする。実施形態において、また、該開示されているアーキテクチャは、コンピューティングリソースを他人に貸す能力も与える。このように、クラウドファブリックは、該中央クラウドよりも桁違いに大きい多数のエッジノードから形成される。
【0045】
該開示されているアプローチによって実施される分散化の第七の原理は、「インフラストラクチャの独立性」である。前述したように、クラウド分散化の場合、該開示されているクラウドプラットフォームは、オペレーティングシステム、ネットワーク(タイプおよび技術)および場所に依存しないことが望ましい。さまざまな理由により、多くの産業界が、ノード間の分散型通信を標準化する試みに失敗してきた。そのため、該提案された分散型クラウドプラットフォームは、該オペレーティングシステムおよびネットワークの進化とは無関係である。換言すると、該開示されているクラウドプラットフォームは、アプリケーション層において、既存のオペレーティングシステムおよびネットワーキング規格をコントロールして作動する。この原理は、該開示されているクラウドプラットフォームが、最小限の依存関係で、または、依存関係なしで、長期間、展開および維持されることを確実にする。
【0046】
図2は、分散型エッジクラウドプラットフォーム200の実施形態によるエッジクラウドコンピューティングアーキテクチャの基本的な構成ブロックを示す。該開示されている分散型エッジクラウドプラットフォーム200は、上述した原理に基づいて設計および開発される。あらゆるエッジクラウドコンピューティングデバイスを、エッジクラウドサーバーとして機能するように構成することにより、エッジクラウドを可能にするという実用的な方法であることが想定されている。前述したように、このような構成は、ハードウェアプラットフォーム、オペレーションシステムおよび基本的なネットワーキング技術に依存しない完全に分散化された方法で実行される。該開示されているクラウドプラットフォーム、マイクロサービス、エッジノード(または、エッジクラウドコンピューティングデバイス)およびクラウドクラスターは、任意のオペレーティングシステム上で作動するように、および任意のネットワークを通じて通信するように構成されている。さらに、該開示されているクラウドプラットフォームおよび分散型クラウドサービスは、どのインフラストラクチャとも無関係である。
【0047】
図2に示すように、該分散型エッジクラウドプラットフォーム200は、その基本的な構成ブロックである中央要素およびエッジ要素を含むエンドツーエンドシステムである。該中央要素は、サーバーコンピューティングデバイスによって形成されるバックエンドサービスモジュール202を含み、該エッジ要素は、該エッジノード作動モジュール222と、一つ以上のマイクロサービス(例えば、図3に関連して後述する符号318、320、322)とを含む。当業者には、該開示されているアーキテクチャが分散されることが意図されていること、および(中央またはエッジの)該要素は、到達可能な任意のエッジクラウドコンピューティングデバイス(例えば、符号102、104、106、112)上のどこででも存在することができることは正しく認識されるであろう。
【0048】
該分散型エッジクラウドプラットフォーム200の該中央要素に言及すると、該バックエンドサービスモジュール202は、インターネットを介して到達可能なサーバー上にホストされ、および該エッジクラウド全域の該エッジノードまたはエッジクラウドコンピューティングデバイスをサポートするための必要なサービスを提供する。該進行中の説明の目的のために、エッジクラウドは、コンテキストまたは特定のデバイスの能力の範囲に基づいて、各々がグローバルな固有IDを有するノード(例えば、符号102、104)の集団として定義される。実施形態において、既定のノードは、多数のクラスターのメンバー(例えば、図4のノード426を参照)であってもよい。例えば、第一のクラスターは、該ノードを登録した該ユーザに属するノードから成る該クラスターであるユーザアカウントクラスターに対応させることができる。第二のクラスターは、それが物理的に接続されているリンクローカルネットワーククラスターであるネットワーククラスターに対応させることができる。第三のクラスターは、特定の周囲エリア内の該ノードから成るクラスターである近接クラスターに対応させることができる。
【0049】
実施形態において、該バックエンドサービスモジュール202は、発見サービス206と、シグナリングサービス208と、アイデンティティサービス210とを含む一つ以上のバックエンドサービスを提供するように構成されている。該シグナリングサービス208は、シグナリングエンドポイント(signaling endpoint:SEP)212およびベアラエンドポイント(bearer endpoint:BEP)214等のリソースをさらに提供する。該バックエンドサービスモジュール202は、限定するものではないが、該サーバーコンピューティングデバイス(例えば、符号112)内の、または、該クラウド106内のAmazon Web Services(登録商標)(AWS)等のクラウドウェブサービス216を用いてホストされる。
【0050】
実施形態において、該発見サービス206および該シグナリングサービス208の断片または一部は、該バックエンドサーバー(例えば、符号112)上、およびエッジノード(例えば、符号102)上の両方に実装される。例えば、各クラスター内のネットワークプロキシ(または、ノード)は、該シグナリングサービス208の一部であり、また、各クラスター内のスーパーノード(または、スーパーエッジクラウドコンピューティングデバイス)は、該発見サービス206の一部である。当業者には正しく認識されるように、該開示されているクラウドアーキテクチャは、「該クラウドと該エッジ上のクライアント間でのサービス」という既存の概念から逸脱している。その価値は、(図4に関連して後述するように)中央クラウド(例えば、符号106)から該エッジノードまでの全範囲にわたるサービスの分散に由来する。
【0051】
該発見サービス206は、一つ以上のクラスター、該クラスターの全体のステータスおよびそれらの範囲内の該ノードを構成するための情報を保持し、および提供するように構成されている。一旦、クラスターが構成されると、どの新たなノードも、後に該スーパーノードを介して該発見サービス206に知らせる該スーパーノードを登録する。スケーラビリティのためにトラフィックを低減するために、該スーパーノードから該発見サービス206へのアップデートは、適時的に行われ、および該一つ以上のクラスターにおいて変化が生じた場合にのみ行われる。
【0052】
実施形態において、該発見サービス206は、スーパーノードに対して到達可能性テストを実行するように構成されている。スーパーノードがそれ自体を登録する場合、該発見サービス206は、到達可能性をテストする。該スーパーノードは、ファイアウォールの後方にある可能性があり、該スーパーノードは、該発見サービス206の呼出しを開始することができるが、該発見サービスまたは他の外部ノードは、該スーパーノードの呼出しを開始することができない可能性がある。このような場合に、該発見サービス206は、該クラスターに対してシグナリングエンドポイント(SEP)(例えば、符号212)を動的に展開するように、該シグナリングサービス208に要求することになる。その後、該発見サービス206は、該SEPアドレスを該スーパーノードに戻す。
【0053】
さらに別の実施形態において、該発見サービス206は、ノードおよびクラスターのプロファイルの完全な一覧表を格納するように構成されている。この一覧表は、すべての該ノード上のコンピューティングリソースの詳細と、各ノードのステータスと、各ノードの位置と、各ノード上で利用可能なサービスとを含む。該一覧表は、各ノードおよび該クラスターに到達するためのエンドツーエンドネットワークトポロジーと、該クラスターの該到達可能性と、リソースおよび他の関連情報の該可用性とをさらに含む。換言すると、該発見サービス206は、該エッジクラウドコンピューティングネットワーク100の全域のすべてのリソースに対する完璧な可視性を有し、およびリアルタイムで該ネットワーク内の任意の利用可能なリソース上でサービスを動的に展開するためにこの情報を提供することができる。実施形態において、該開示されているアーキテクチャは、開発者にとって容易にするために標準的なアマゾンセマンティクスを用いて、中央クラウドリソースの場合と同様の方法で該リソースを呈示する。
【0054】
実施形態において、該アイデンティティサービス210は、例えば、パブリッククラウド内に存在して、ノードの認証プロファイルを形成して維持するOAuth2.0に基づく、サードパーティーアイデンティティSaaS(software as a service)に相当する。実施形態において、該開示されているクラウドプラットフォームは、トークン生成を用いたノードの承認および一つ以上のトークンホルダーの管理のために、該アイデンティティサービス210を用いる。該トークンホルダーは、該エッジノード作動モジュール(例えば、符号222、308)、該エッジノード作動モジュールを用いる該マイクロサービス(例えば、符号318、320、322)、該エッジノード作動モジュールを用いるアプリケーション開発者ならびに該アプリケーションのエンドユーザとすることができる。該開示されているクラウドプラットフォームは、該トークンを用いて該トークンホルダーのクレデンシャル、正当性を確認して、該バックエンドサービスモジュール202によって提供される一つ以上の該バックエンドサービスへのアクセスを承認する。実施形態において、該承認は、Jason Web Tokens(JWT)および該トークンホルダーの該アイデンティティを確認するための標準「クレーム」の一部を利用することによって実行される。
【0055】
該シグナリングエンドポイント(SEP)212と該ベアラエンドポイント(BEP)214はともに、動的にかつ、例えば、該発見サービス206または該シグナリングサービス208から受けた要求に基づいてオンデマンドで展開されるリソースである。
【0056】
次に、該分散型エッジクラウドプラットフォームの該エッジ要素を見てみると、該エッジコンピューティングデバイス204は、エッジノード作動モジュール222を含む。前述したように、該エッジノード作動モジュール222は、OS層224の上部に位置し、およびマイクロサービスランタイム環境モジュール220を用いて、該一つ以上のマイクロサービスを実行するマイクロサービスランタイム環境を提供する。また、一つ以上のサードパーティーアプリケーション218も、該エッジノード作動モジュール222によってサービスを受ける該エッジクラウドコンピューティングデバイス204にホストされている。
【0057】
実施形態において、該エッジノード作動モジュール222は、任意のエッジデバイス(または、エッジクラウドコンピューティングデバイス)をクラウドサーバーに変えて、該クラウドコンピューティングインフラストラクチャを該新たなエッジまで拡張するように構成されている。エッジデバイスは、ラップトップ(例えば、符号102)、セットトップボックス、レジデンシャルおよびIoTゲートウェイ、TVに接続されたゲームコンソール、自動車情報システム(例えば、符号108)、スマートフォン(例えば、符号114)等の、基本的なコンピューティング能力を備えた何らかのデバイスとすることができる。どのエッジデバイスも、該エッジノード作動モジュール222をダウンロードし、クラウドサーバーになるようにそれを実行することができる。該進行中の説明の目的のために、該エッジノード作動モジュール222を実行した任意のエッジデバイスを、「ノード」と呼ぶことにする。このようなノードは、該開示されているエッジクラウドプラットフォームおよびアーキテクチャのために意図されている一つ以上の特性を有している。該一つ以上の特性は、該OSおよびネットワークと無関係に、互いに(または、他のノードを)動的に発見する該能力を含み、および該コンピューティングおよび利用可能な能力および機能性を互いに呈示する該能力を含む。該一つ以上の特性は、クラスター(エッジクラスター)を構成して組織化し、およびインターネットの可用性がなくとも該クラスター内で、およびクラスター全域で通信する該能力をさらに含む。
【0058】
該開示されているエッジクラウドプラットフォームは、上述したようなクラスタリングの該第三の原理に従って、クラスターノードの該構成によって作動する。一つ以上のクラスターが、特定の範囲に基づいて、第一のアクティブノード(または、第一のエッジクラウドコンピューティングデバイス)によって構成される。ノード(例えば、第一のエッジクラウドコンピューティングデバイス)が作動されている(エッジノード作動モジュール222によって有効になっている)場合、該ノードは、まず、グローバルディスカバリーを監視して、該エッジクラウドの該情報を保持するスーパーノードを探す。スーパーノードが見つからない場合は、該第一のノードは、それ自体を該スーパーノードとして宣言する。インターネットが利用可能である場合には、該スーパーノードは、その存在をグローバルディスカバリーに知らせて、該所定の範囲内のノードの該リストを受け取る。効率を維持するために、該スーパーノードは、その範囲内の他のノードに知らせる。
【0059】
該スーパーノードによるクラスターの形成に続いて、該クラスターに入る後のノードは、該既存のスーパーノードを見つけて、それらを該スーパーノードに登録し、およびそれらの範囲内のノードの該リストを受け取る。該新たなノードは、それらの範囲内の他のノードに存在を知らせる。このブートストラップモデルは、グローバルローカルかにかかわらず、任意のノードのオーバーローディングを避けるように、およびそれによって、トラフィックおよびチャティネスを低減するように、該開示されているクラウドアーキテクチャによって用いられる。該ノードの潜在的な非永続性を考慮すると、存在の通知は、それが知らせたがっているのは他のどのノードかを判断する責任とともに、該ノードそれ自体の機能性として意図されている。
【0060】
上述したように、該エッジノード作動モジュール222は、任意のエッジクラウドコンピューティングデバイスまたはサーバー上に存在することができ、およびさまざまなハードウェアプラットフォームおよびオペレーティングシステムに対して利用可能にすることができる。実施形態において、該エッジノード作動モジュール222は、アプリケーションレベルのソフトウェアに対応し、そのため、多くの種類のエッジクラウドコンピューティングデバイス上にダウンロードすることができる。該バックエンドサービスモジュール202は、中央クラウド(例えば、符号106)または任意の到達可能で信頼性のあるコンピューティングリソースにホストされている一つ以上のバックエンドサービスに、十分なコンピューティングおよびメモリを提供し、および該エッジノードをサポートするための必要なサービスを提供する。
【0061】
図3は、実施形態によるエッジクラウドコンピューティングデバイス300を示す。図示されているように、該エッジクラウドコンピューティングデバイス300は、記憶装置304に結合されたプロセッサ302を含む。該記憶装置は、本願明細書に記載されている該さまざまな技術を実施する命令を有する非一時的なコンピュータ可読媒体に相当する。実施例のコンピュータ可読媒体は、プロセッサ302により実行可能なコンピュータが実行可能な命令を有する有形の非一時的なコンピュータ可読記憶媒体から成っていてもよく、該命令は、該プロセッサによって実行される際、該プロセッサに、本願明細書に記載されている該さまざまな方法およびアプローチの任意の組合せを実行させる。図示されてはいないが、すべての該エッジクラウドコンピューティングデバイス(符号102、104、108、110、112、114、116、204)および該中央クラウド(例えば、符号106)が、少なくともプロセッサ(例えば、符号302)と、記憶装置(例えば、符号304)と、および/または該プロセッサによって実行される際に、本願明細書に記載されている該方法およびアプローチを実行する、該記憶装置に格納された他のさまざまなアプリケーションまたはモジュールを含むことは正しく認識することができる。
【0062】
該記憶装置304は、OS層306と、エッジノード作動モジュール308とを含む。該エッジ作動モジュール308は、APIゲートウェイを有するネットモジュール310をさらに含む。また、該エッジ作動モジュール308は、コンテナマネージャーマイクロサービス(μS)イメージリポジトリ312と、HTTPリクエストラッパー(lib)314と、組込みウェブサーバー316も含む。前述したように、該エッジノード作動モジュール308は、一つ以上のマイクロサービスを一つ以上のエッジノードに呈示するように構成されている。実施形態において、該エッジノード作動モジュール308は、該エッジクラウド内の任意のサービスを開始/停止し、ダウンロードし、展開するように、および該サービスを該APIゲートウェイを用いて呈示するように構成されている。この目的を達成するために、該エッジノード作動モジュール308は、一つ以上のクラスター内(中または全域)の他のエッジノードを見つけて、接続して通信するように構成されている。該記憶装置304は、図3の符号318、符号320および符号322で示す一つ以上のマイクロサービス(μS)も含む。該マイクロサービス322は、ユーザインタフェース(UI)アプリケーション324の一部であるように図示されている。該記憶装置304は、マイクロサービスがその中にない他のUIアプリケーション326も含む。すべての該マイクロサービス(符号318、320および322)および該UIアプリケーション(符号324、符号324)は、図3の符号328で示すサードパーティーが提示したAPIを介してアクセス可能である。
【0063】
実施形態において、該エッジノード作動モジュール308は、ソフトウェアライブラリおよび対応するAPIから成る集団に相当する。開発者が、新たなハイパーコネクテッドで高移動性の分散型エッジコンピューティングワールド内でのネットワーキングノードに関する基本的な課題を効率的に解決するために、該ソフトウェアライブラリおよびAPIも利用できることが意図されている。該エッジノード作動モジュール308は、任意のエッジクラウドコンピューティングデバイスに関連するOS、製造会社および接続ネットワークに関係なく、異機種環境に供給することができる。さらに、該エッジノード作動モジュール308は、該アプリケーションのユースケースにより、任意のPC、サーバー、モバイル端末、固定ゲートウェイ、自動運転車ゲートウェイ、コネクテッドTV上でまたは該クラウド内で作動させる(実行させる)ことができる。前述したように、一旦、該エッジノード作動モジュール308がエッジデバイス上にロードされると、該デバイスは、エッジクラウドノードになる。
【0064】
図3に示すように、該エッジノード作動モジュール308は、該オペレーティングシステム層306と該エンドユーザアプリケーション(例えば、符号324、符号326)との間に存在する。該エッジノード300から利用可能ないくつかのマイクロサービス(例えば、符号318、320、322)があり、該エッジノード作動モジュール308は、サードパーティーが、それら自身のマイクロサービスを開発するための該能力を与える。また、該エッジノード作動モジュール308は、マイクロサービスランタイム環境も提供する。前述したように、該エッジノード作動モジュール308を組み込むことにより、コンピューティングデバイスは、一つ以上のクラスターを構成することができるインテリジェントネットワークノードまたはエッジノードに変換される。該エッジノード作動モジュール308は、分散型エッジクラウドノード内でのネットワーキングに関する複雑性を取り除き、それによって、開発者が、小さなモバイル端末(例えば、符号114)であっても、マイクロサービスモデルにおけるそれらのソリューションに注力することを可能にしている。
【0065】
クラスター内のノードは、物理的なハードウェア能力、OS、アタッチドネットワーク接続性、各ノード上で作動するマイクロサービスの種類および使用法/プライバシーポリシー設定により、特定の役割または役割の組合せを担うように構成されている。いくつかの役割は、いつでも該クラスター内の他のノードを考慮して、選出のプロセスを介して割り当てられるが、その他の役割は、選択のプロセスを介して割り当てられる。前述したように、クラスター内の最も重要な役割のうちの一つは、ノードがすべてのメンバーのノードによって選出される該スーパーノード(または、スーパーエッジクラウドコンピューティングデバイス)の役割である。シングルノードクラスターの自明なケースにおいては、ノードは、それ自体がスーパーノードとして機能する。スーパーノードは、クラスターおよびすべてのそのメンバーのノードに関する情報のベアラになるように構成されている。それは、該クラスターにとっての「唯一の信頼できる情報源(single source of truth)」である。該スーパーノードは、他のノードに関連する情報、各ノード上に展開されたマイクロサービス、ならびにエッジノード作動モジュール308の動作からのヒストリカルアーチファクトを維持するように構成されている。該スーパーノードは、リンクローカルプロキシおよびリンクローカルキャッシュ等の役割を、該クラスター内の他のノードに割り当てるように構成されている。リンクローカルプロキシノードは、クラスターノードがファイアウォールの後方に存在する場合に通信をサポートする。一方で、大量の物理的ストレージを有するノードには、該クラスターのための該リンクローカルキャッシュを割り当てることができる。
【0066】
各ノードに対して、該エッジノード作動モジュール308は、固有ユーザおよび多数のマイクロサービス、およびアプリケーションプロバイダ(「テナント」とも呼ぶ)をサポートする。換言すると、ユーザが、そのすべてが該エッジノード作動モジュール308を採用している、モバイル端末上にロードされた多数のアプリケーションを有している場合であっても、機能性および能力は、当該ユーザに関連している(および当該ユーザのために承認される)。
【0067】
実施形態において、該エッジノード作動モジュール308は、物理的レベルおよびマイクロサービスレベルの両方において、エッジデバイス間での発見、接続および通信を実行できる。例えば、該エッジノード作動モジュール308は、ローカルネットワークおよびグローバルネットワークにおけるエッジノード作動モジュールのインスタンスを用いた、すべてのノードに対する自動検出および自動ルーティングによって、ノードおよびサービスの発見を実行することができる。同様に、該エッジノード作動モジュール308は、ノードフォームの自己編成クラスターのアドホックエッジクラウド内でノードおよびサービス接続を提供する。実施形態において、該エッジノード作動モジュール308は、マイクロサービスインスタンスをローディングし、作動させおよび管理することにより、該一つ以上のマイクロサービスを管理するように構成されている。前述したように、該エッジノード作動モジュール308は、マイクロサービスランタイム環境を提供するエッジウェブサーバーを含む。
【0068】
前述したように、該エッジノード作動モジュール308を有するノードは、互いに発見し、接続して通信するように構成されている。実施形態において、発見は、ユーザアカウントに対応する一つ以上の範囲、すなわち、同じアカウントIDで登録されたノードに基づく「フィルタ処理された探索」である。実施形態において、該エッジノード作動モジュール308は、(該バックエンドサービスモジュール202によって提供される該アイデンティティサービス210として用いられる)サードパーティーのアイデンティティSaaSプロバイダを介した該OAuth2.0ベースのオープンID規格を採用している。該範囲は、同じリンクローカルクラスターネットワークのメンバーであるノード等のネットワークと一致していてもよい。この場合の該リンクローカル識別子は、パブリックIPアドレスとリンクローカルネットワークアドレスを組合せることによって形成されている。該範囲は、地理的位置において、または、地理空間クエリによって定義されたエリア内において、それら自体が物理的な存在として報告しているノード等の近接性に一致していてもよい。該エッジノード作動モジュール308によって実行される該発見プロセスは、該上述した範囲の任意の組合せを用いることができる。さらに、ノードと、ノード上で作動するマイクロサービスは、固有の識別子を有し、例えば、特定のノード上の特定のマイクロサービス(例えば、ドライブ)は、固有に、ローカルにおよびグローバルに対処可能である。
【0069】
さらに、該エッジノード作動モジュール308は、共通の組込みウェブサーバーを介したマイクロサービスに関連する該サービスを呈示するためにマイクロサービスランタイム環境を提供する。各サービスのためのAPIエンドポイントは、該ネットモジュール310の一部であるAPIゲートウェイを介して、エッジクラスター内の他のすべてのノードからアクセス可能である。該エッジノード作動モジュール308は、コンテナデーモン(または、Docker(登録商標))を二つの異なる方法で補足する。コンテナデーモンを作動させることができる環境(例えば、Linux(登録商標))において、該エッジノード作動モジュール308は、前述したように、エッジノードのアドホッククラスターを管理する機能を提供する。コンテナデーモンを作動させることができない環境(例えば、スマートフォン)においては、該エッジノード作動モジュール308は、マイクロサービスをダウンロードし、展開しておよび機能させる該能力を有する追加的な「軽い」コンテナ能力を提供する。該組込みウェブサーバー(例えば、符号316)は、コンテナ管理(例えば、Docker(登録商標))APIの一部に、一つ以上の制約を与える。該一つ以上の制約は、基本的なOS(アンドロイドの場合のjava、iOS(登録商標)の場合のオブジェクティブc等)に基づく特定の言語の使用を含む。該一つ以上の制約は、基礎となるプラットフォーム上での限定されたリソースの利用法を最適化するように、(エッジノード作動モジュール308によって提供される)該「軽い」コンテナ環境で作動する該マイクロサービスにより該エッジノード作動モジュール308によって提供される該ウェブサーバーの使用をさらに含む。
【0070】
該エッジノード作動モジュール308は、開発者が、マイクロサービスを構築して、任意のノードにホストすることを可能にする。該開示されているクラウドアーキテクチャは、該エッジノード作動モジュール308を利用して、アプリケーション開発の速度を上げて、開発者が、該分散型エッジクラウドプラットフォームを直ちに活用することを可能にするためのさまざまなマイクロサービスも用意している。例えば、ドライブマイクロサービスの場合、エッジノード上で利用可能なストレージへのアブストラクトなアクセスと、ポピュラーなAPIを介した分散型ファイル管理とを提供することができる。別の例示的な実施例においては、ノードからノードへ、および/またはノードからサービスへコンテンツをピアツーピアで、一対一で、および一対多数で送るビーム(beam)マイクロサービスが提供される。
【0071】
前述したように、該SEPおよびBEPは、該要求に動的に基づいて、または、クラスター内のノードに基づいて、該シグナリングサービスによって動的に展開することができるリソースである。その結果として、コンピューティングリソースを用意しておく必要はない。このことは、効率を向上させ、および必要なときにだけ、該エンドポイントを展開することによってコストを低減する。該SEPは、シグナリング通信に用いられるが、BEPはデータ通信に用いられ、そしてそれらは一緒に、該ノードが、シグナリングおよびデータ帯域幅効率を向上させるようにトンネリングを適時的に構成するのを支援する。SEPおよびBEPは、限定するものではないが、稼働開始の時間、同時接続の数、および通信プロトコル(HTTP、SSH、ウェブソケットまたはUDPトンネリング)等のパラメータに基づいて展開される。必要に応じて、クラスターの最も近い近接性の範囲内の利用可能なコンピューティングリソース上にエンドポイントを展開することができる。
【0072】
図4は、実施形態による例示的なエッジクラウドアーキテクチャ400を示す。前述したように、分散型クラウドの価値は、中央クラウド(例えば、符号106)から該エッジノードまでの幅広い全範囲にわたるサービスの配分によってもたらされる。図4は、発見サービス402と、シグナリングサービス404と、アイデンティティサービス410とを含む一つ以上のバックエンドサービスを提供するように構成されているバックエンドサービスモジュール414を示す。該シグナリングサービス404は、シグナリングエンドポイント(SEP)406およびベアラエンドポイント(BEP)408を提供するように構成されている。該一つ以上のバックエンドサービスは、クラウドウェブサービス416にホストされる。開示されているクラウドアーキテクチャは、該バックエンドサービスモジュール414と該クラウド内の該一つ以上のノードの共同作業が一つ以上のクラスターを構成することを可能にする。
【0073】
例えば、図4は、三つのクラスター、すなわち、ネットワーククラスター1(符号422)、ネットワーククラスター2(符号428)および近接クラスター3(符号432)を示す。該ネットワーククラスター1(符号422)は、三つのノード、すなわち、スーパーノード(符号416)であるノード1と、ノード2(符号418)と、ネットワークプロキシノード(符号420)であるノード3とを含む。該ネットワーククラスター2(符号428)は、二つのノード、すなわち、スーパーノードでありおよびネットワークプロキシノード424であるノード5と、キャッシュプロキシノード426であるノード6とを含む。該近接クラスター3(符号432)は、二つのノード、すなわち、ノード4(符号430)と、キャッシュプロキシノード426であるノード6とを含む。前述したように、これらのノードの各々は、エッジノード作動モジュールと、一つ以上のマイクロサービスと、一つ以上のサードパーティーアプリケーションとを含む。上述したクラスターは、前述したように、一つ以上の範囲に基づいて形成されている。該ネットワーククラスター1および2(符号422および428)は、範囲としてのネットワークに基づいて形成され、該近接クラスター3は、範囲としての近接性に基づいて形成されている。また、図4に示すように、既定のノードは、二つのクラスターの一部、例えば、ネットワーククラスター2(符号428)および近接クラスター3(符号432)の一部であるキャッシュプロキシノード426であるノード6とすることができる。さまざまな役割が、前述した考察に基づいてさまざまなノードに割り当てられている。
【0074】
該シグナリングエンドポイント(SEP)およびベアラエンドポイント(BEP)の構造は、図5に示す該実施例によって最も良く示すことができる。図5は、同じユーザIDに属する二つのエッジクラウドコンピューティングデバイスのための発見、接続および通信を有するシステム500の例示的な実施形態を示す。図4と同様に、図5は、クラウドウェブサービス516にホストされている発見サービス502、シグナリングサービス504およびアイデンティティサービス510を含む一つ以上のバックエンドサービスを提供するように構成されたバックエンドサービスモジュール514を示す。該シグナリングサービス504は、シグナリングエンドポイント(SEP)506およびベアラエンドポイント(BEP)508等のリソースを動的に展開するように構成されている。
【0075】
また、図5は、二つのクラスター、すなわち、ネットワーククラスター1(符号522)およびネットワーククラスター2(符号528)も示している。該ネットワーククラスター1(符号522)は、三つのノード、すなわち、スーパーノード(符号516)であるノード1と、ノード2(符号518)と、ネットワークプロキシノード(符号520)であるノード3とを含む。該ネットワーククラスター2(符号528)は、二つのノード、すなわち、スーパーノードであり、およびネットワークプロキシノード524であるノード5と、キャッシュプロキシノード526であるノード6とを含む。
【0076】
該進行中の説明の目的のために、二つのノード(ネットワーククラスター1内に符号518として図示されているノード2と、ネットワーククラスター2内に符号526として図示されているノード6)が、同じユーザ(アカウント)に属しており、およびそれらそれぞれのリンクローカルネットワーククラスターが既に登録されていることが前提とされている。該同じユーザアカウントに属しているこれら二つのノードでも、二つの異なるクラスターの一部であることに留意すべきである。該開示されているエッジアーキテクチャは、それが直接的にアクセス可能になっているかのようにノード2(符号518)と通信するのに用いることができる、ノード6(符号526)のための到達可能なエンドポイントとして該SEP506を提供する。それら二つのノード間の通信は、該SEP506を用いたインタークラスター的に実行される。該シグナリングが確立された後、該BEP508は、該二つのノード518および526間での交換の大部分を実行できる。シグナリングチャネルとベアラチャネルを分けるという柔軟性は、HTTPベースのサービス配布に限定されない「サービス固有の」BEPの形成を可能にする。
【0077】
前述したように、ノード間の発見、接続および通信のプロセスは、ある範囲(例えば、ネットワーク)に属するノードのための該スーパーノード(例えば、符号516)に対する(新たなノードによる)発見要求を送信する第一のステップを含む。該プロセスは、該スーパーノードからの適切なシグナリング情報とともにノードのリストを取得するステップをさらに含む。該プロセスは、SEP(例えば、符号406、符号506)を介して、(異なるクラスター内の)リモートノードに要求を送信することをさらに含む。また、該プロセスは、リモートノードに、あるサービスを提供するためのBEP(例えば、符号408、符号508)を要求させることも含む。該プロセスは、該準備したBEPを介して該サービスを消費するために接続および通信するステップで終わる。
【0078】
図6は、クラウドコンピューティングインフラストラクチャまたはプラットフォームを提供する方法600の例示的な実施形態を示す。図1から図6を参照すると、該エッジクラウドコンピューティングインフラストラクチャは、サーバーコンピューティングデバイス(例えば、符号112)と情報をやり取りする一つ以上のエッジクラウドコンピューティングデバイス(例えば、符号102、符号104)を含む通信ネットワーク(例えば、エッジクラウドコンピューティングネットワーク100)内で実施される。
【0079】
該方法は、ステップ602において、第一のエッジクラウドコンピューティングデバイス(例えば、符号204、符号300)により、エッジノード作動モジュール(例えば、符号222、308)を実行することを含む。実施形態において、該エッジ作動モジュールは、該第一のエッジクラウドコンピューティングデバイスによってダウンロード可能なソフトウェアレベルのアプリケーションである。該方法は、ステップ604において、該第一のエッジクラウドコンピューティングデバイスにより、他のエッジクラウドコンピューティングデバイスに関連する該オペレーティングシステムおよびネットワークとは無関係に、該他のエッジクラウドコンピューティングデバイス(例えば、符号110)を動的に見つけることをさらに含む。該方法は、ステップ606において、該第一のエッジクラウドコンピューティングデバイスにより、見つけた他のエッジクラウドコンピューティングデバイス(例えば、符号110)のリソースの可用性、能力および機能性を呈示することをさらに含む。該方法は、ステップ608において、該第一のエッジクラウドコンピューティングデバイスにより、該見つけた他のエッジクラウドコンピューティングデバイスの一つ以上のクラスター(例えば、符号422、符号432)を構成して編成することをさらに含む。また、該方法は、ステップ610において、該第一のエッジクラウドコンピューティングデバイスにより、該一つ以上のクラスター内で、および該一つ以上のクラスターの全域で通信することも含む。
【0080】
実施形態において、該方法は、該エッジノード作動モジュール(例えば、符号222)を実行した後に、該第一のエッジクラウドコンピューティングデバイスにより、スーパーエッジクラウドコンピューティングデバイス(または、スーパーノード)を探索することをさらに含む。前述したように、該スーパーエッジクラウドコンピューティングデバイスは、グローバルディスカバリーを管理するように構成されている。該方法は、該探索中に、スーパーエッジコンピューティングデバイスが見つからない場合に、該第一のエッジクラウドコンピューティングデバイスにより、それ自体を該スーパーエッジコンピューティングデバイスとして指定することをさらに含む。別の実施形態においては、該方法は、該第一のエッジクラウドコンピューティングデバイスにより、その存在をグローバルディスカバリーに伝えることと、該第一のエッジコンピューティングデバイスにより、該第一のエッジコンピューティングデバイスの範囲内の一つ以上のエッジクラウドコンピューティングデバイスのリストを受け取ることとを含む。
【0081】
さらに別の実施形態において、該方法は、該第一のエッジクラウドコンピューティングデバイスにより、後に該一つ以上のクラスターに入る一つ以上のエッジクラウドコンピューティングデバイスからの登録の要求を受けることをさらに含む。また、該方法は、該第一のエッジコンピューティングデバイスにより、該第一のエッジコンピューティングデバイスの範囲内の一つ以上の他のエッジクラウドコンピューティングデバイスのリストを、該登録された一つ以上のエッジクラウドコンピューティングデバイスに送信することも含む。
【0082】
サーバーコンピューティングデバイスの実施形態が開示されている。該実施形態は、該サーバーコンピューティングデバイスと情報をやり取りする一つ以上のエッジクラウドコンピューティングデバイスを含む通信ネットワークに関連している。実施形態において、該サーバーコンピューティングデバイスは、該一つ以上のエッジクラウドコンピューティングデバイスをサポートするための一つ以上のサービスを提供するように構成されたバックエンドサービスモジュールを含む。該一つ以上のバックエンドサービスは、該一つ以上のエッジクラウドコンピューティングデバイスから成る一つ以上のクラスターを構成するための情報を提供するように構成された発見サービスを含む。該一つ以上のクラスターの各々は、少なくとも一つのスーパーエッジクラウドコンピューティングデバイス(または、スーパーノード)を含む。該一つ以上のバックエンドサービスは、該発見サービスから要求を受けたときに、該一つ以上のクラスターに対して、シグナリングエンドポイント(SEP)およびベアラエンドポイント(BEP)を動的に展開するように構成されたシグナリングサービスをさらに含む。該一つ以上のバックエンドサービスは、該一つ以上のエッジクラウドコンピューティングデバイスの認証プロファイルを形成して維持するように構成されたアイデンティティサービスをさらに含む。
【0083】
一旦、第一のクラスターが構成されると、該発見サービスは、該第一のクラスターの一部ではない新たなエッジクラウドコンピューティングデバイスが、該第一のクラスターに対応する該スーパーエッジクラウドコンピューティングデバイスに登録することを可能にするように構成される。実施形態において、該発見サービスはさらに、該スーパーエッジクラウドコンピューティングデバイスの各々が、それ自体を登録することを可能にするように構成されている。実施形態において、一つ以上のクラスターを構成するための該情報は、該一つ以上のクラスターのプロファイルと、該一つ以上のクラスターを構成する該一つ以上のエッジクラウドコンピューティングデバイスに関連するコンピューティングリソースの詳細と、該一つ以上のクラスターを構成する該一つ以上のエッジクラウドコンピューティングデバイスのステータスおよび位置と、該一つ以上のクラスターを構成する該一つ以上のエッジクラウドコンピューティングデバイス上で利用可能な一つ以上のサービスと、該一つ以上のクラスターを構成する各エッジクラウドコンピューティングデバイスに到達するためのエンドツーエンドネットワークトポロジーと、該一つ以上のクラスターの到達可能性とを含む。
【0084】
別の実施形態において、該発見サービスはさらに、リアルタイムで該通信ネットワーク内の任意の利用可能なエッジクラウドコンピューティングデバイス上に該一つ以上のサービスを動的に展開するための、該通信ネットワーク内で利用可能なリソースに関連する情報を提供するように構成されている。さらに別の実施形態において、該シグナリングサービスは、該一つ以上のクラスター内のコンピューティングリソースに対する要求に基づいて、該シグナリングエンドポイント(SEP)およびベアラエンドポイント(BEP)を動的に展開するように構成されている。
【0085】
さらに別の実施形態において、該シグナリングエンドポイント(SEP)は、シグナリング通信に用いられ、また、該ベアラエンドポイント(BEP)は、データ通信に用いられる。該シグナリングエンドポイント(SEP)およびベアラエンドポイント(BEP)の動的展開は、該一つ以上のクラスター内の該一つ以上のエッジクラウドコンピューティングデバイスのためのシグナリング帯域幅およびデータ帯域幅を増加させる。該シグナリングサービスはさらに、一つ以上のパラメータに基づいて、該シグナリングエンドポイント(SEP)およびベアラエンドポイント(BEP)を動的に展開するように構成されている。該一つ以上のパラメータは、該一つ以上のサービスの稼働開始の時間、該一つ以上のクラスター内での同時接続の数、および該一つ以上のクラスター内の該一つ以上のエッジクラウドコンピューティングデバイスに関連する一つ以上の通信プロトコルを含む。
【0086】
実施形態において、該シグナリングサービスはさらに、該一つ以上のクラスターの該最も近い近接性の範囲内で、利用可能なエッジクラウドコンピューティングデバイス上に該シグナリングエンドポイント(SEP)およびベアラエンドポイント(BEP)を動的に展開するように構成されている。該アイデンティティサービスは、各エッジクラウドコンピューティングデバイス内のエッジノード作動モジュール、該エッジノード作動モジュールを用いるマイクロサービス、該エッジノード作動モジュールを用いるアプリケーション開発者、および該エッジノード作動モジュールによってサポートされるアプリケーションのエンドユーザのうちの一つ以上のためのトークンを生成して維持するように構成されている。また別の実施形態において、該アイデンティティサービスは、トークンホルダーのクレデンシャルおよび正当性を確認して、該バックエンドサービスモジュールによって提供される該一つ以上のサービスへの該トークンホルダーのアクセスを承認するように構成されている。
【0087】
「備えている(comprising)」、「含んでいる(including)」および「有している(having)」という用語は、本願明細書のクレームおよび明細書で用いる場合、指定されていない他の要素を含んでもよいオープングループを示すものと見なすべきである。「一つの(a)」、「一つの(an)」および言葉の単数形は、該用語が、一つ以上の何かが設けられていることを意味するように、同じ言葉の複数形を含むように解釈すべきである。「一つの(one)」または「単一の」という用語は、何かの一つおよび一つだけが意図されていることを示すのに用いることができる。同様に、「二つの」等の他の具体的な整数値は、ものの具体的な数が意図されている場合に用いることができる。「好ましくは」、「好適な」、「好む」、「必要に応じて」、「であってもよい」という用語および同様の用語は、言及されているアイテム、状態またはステップが、本発明の任意の(必要とされない)形状構成であることを示すのに用いられる。
【0088】
ここまで、本発明を、さまざまな特定の好適な実施形態および技術に関連して説明してきた。しかし、本発明の趣旨および範囲内にとどまりながら、多くの変形および変更を行うことができることを理解すべきである。当業者には、本願明細書に具体的に記載されているもの以外の方法、デバイス、デバイス要素、材料、処理手順および手法を、過度な実験に頼ることなく、本願明細書に広範に開示されているような本発明の実施に適用することができることは明白であろう。本願明細書に記載されている方法、デバイス、デバイス要素、材料、処理手順および手法に関するすべての公知の基本的な等価物は、この発明によって包含されることが意図されている。範囲が開示されているときは常に、すべての部分的範囲および個別の値は、包含されることが意図されている。この発明は、例として挙げられている、および限定するものではない、図面に示されている、または該明細書で例証されている任意のものを含めて、該開示されている実施形態によって限定すべきではない。
【0089】
本発明を、限られた数の実施形態に関して説明してきたが、この開示の恩恵を有する当業者は、本願明細書に記載されているような本発明の該範囲から逸脱しない他の実施形態を考案できることは正しく認識するであろう。したがって、本発明の該範囲は、添付クレームによってのみ限定すべきである。
【0090】
この明細書全体を通してすべての参考文献、例えば、発行されたかまたは付与された特許または等価物、特許出願公報を含む特許文書、および非特許文献の文書またはその他の基礎資料は、各参考文献が、該本出願における該開示に少なくとも部分的に矛盾していない限り、あたかも参照によって個別に組み込まれるように、参照により、それらの全体が本願明細書に組み込まれるものとする(例えば、部分的に矛盾している参考文献は、該参考文献の部分的に矛盾している部分を除いて、参照によって本願明細書に組み込まれる)。
図1
図2
図3
図4
図5
図6