JP2023545985A - エッジ・コンピューティング環境におけるタスク・フローの管理 - Google Patents
エッジ・コンピューティング環境におけるタスク・フローの管理 Download PDFInfo
- Publication number
- JP2023545985A JP2023545985A JP2023520456A JP2023520456A JP2023545985A JP 2023545985 A JP2023545985 A JP 2023545985A JP 2023520456 A JP2023520456 A JP 2023520456A JP 2023520456 A JP2023520456 A JP 2023520456A JP 2023545985 A JP2023545985 A JP 2023545985A
- Authority
- JP
- Japan
- Prior art keywords
- cluster
- edge devices
- task flow
- metadata information
- edge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000004590 computer program Methods 0.000 claims abstract description 14
- 230000000977 initiatory effect Effects 0.000 claims description 32
- 238000003860 storage Methods 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 21
- 239000003795 chemical substances by application Substances 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 13
- 238000004519 manufacturing process Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012517 data analytics Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
タスク・フローを管理するためのコンピュータ実施方法、コンピュータ・システムおよびコンピュータ・プログラム製品が提供される。当該コンピュータ実施方法によれば、定義者モジュールは、タスク・フローを実行するための要求を受信する。定義者モジュールは、エッジ・デバイスのセットからタスク・フローを実行するための、エッジ・デバイスのクラスタを決定する。定義者モジュールは、クラスタ内のタスク・フローおよびエッジ・デバイスについてのメタデータ情報を検索してもよく、ここで、メタデータ情報は、クラスタ内のタスク・フローをスケジュールするために使用される。次いで、クラスタ内のエッジ・デバイスは、メタデータ情報に従ってタスク・フローを実行することができる。
Description
本開示は、一般に、コンピュータ技術に関し、より詳細には、エッジ・コンピューティング環境においてタスク・フローを動的に管理するための方法、システム、およびコンピュータ・プログラム製品に関する。
クラウド・コンピューティングおよびIoTテクノロジの発達に伴い、エッジ・コンピューティングは、より強力な計算機能を達成するための新たな発展方向となる。モノのインターネット(IoT)の文脈では、「エッジ」または「エッジ・システム」は、データのソースの近くに存在するコンピューティング・インフラストラクチャを指す。そのようなコンピューティング・インフラストラクチャは、例えば、産業機械、産業用コントローラ、産業用センサ、モバイル・デバイス、または当業者が認識する任意のその他のインフラストラクチャ、あるいはそれらの組み合わせを含むことができ、データのソースの近くに存在することができる。データのソースとしてのマシンまたはデバイス、あるいはその両方は、「エッジ・デバイス」と呼ばれることがある。エッジ・デバイスは典型的には、クラウドにおいて利用可能な集中型のコンピューティング・リソースから離れて存在する。エッジ・システムは、アプリケーション、データ処理、およびモデルのうちの少なくとも1つを、集中型のクラウド・データ・センタからエッジ・デバイスに近いエッジ側に移動させ、それによってクラウド・データ・センタへのデータ・トラフィックの量を低減することができる。
本開示の一実施形態によれば、タスク・フローを管理するためのコンピュータ実施方法、コンピュータ・システム、およびコンピュータ・プログラム製品が提供される。コンピュータ実施方法によれば、定義者モジュール(definer module)は、タスク・フローを実行するための要求を受信することができる。定義者モジュールは、エッジ・デバイスのセットから、タスク・フローを実行するための、エッジ・デバイスのクラスタを決定することができる。定義者モジュールは、クラスタ内のタスク・フローおよびエッジ・デバイスについてのメタデータ情報を検索してもよく、ここで、メタデータ情報は、クラスタ内のタスク・フローをスケジュールするために使用される。次いで、クラスタ内のエッジ・デバイスは、メタデータ情報に従ってタスク・フローを実行することができる。
本発明のこれらおよびその他の目的、特徴および利点は、添付の図面と関係して読まれるべきである、以下の例示的な実施形態の詳細な説明から明らかになるであろう。図面の様々な特徴は、詳細な説明と併せて本発明を理解する際に当業者がわかりやすくするためであるので、縮尺どおりではない。
いくつかの実施形態を、本開示の実施形態が図示されている添付の図面を参照して、より詳細に説明する。しかしながら、本開示は様々な方法で実施することが可能であり、したがって、本明細書に開示された実施形態に限定して解釈されるべきではない。
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本開示の実施形態は、現在知られているか、または後に開発される、任意のその他のタイプのコンピューティング環境と組み合わせて実施することができる。
クラウド・コンピューティングは、最小限の管理作業またはサービスのプロバイダとの対話で、迅速にプロビジョニングおよびリリースができる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にする、サービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
特徴は次のとおりである。
オンデマンド・セルフサービス(On-demand self-service):クラウド・コンシューマは、サービスのプロバイダとの人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどの、コンピューティング機能を一方的にプロビジョニングできる。
幅広いネットワーク・アクセス(Broad network access):機能は、ネットワーク経由で利用可能であり、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(例えば、モバイル・フォン、ラップトップ、およびPDA)での使用を促進する、標準メカニズムを介してアクセスされる。
リソース・プーリング(Resource pooling):プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを使用して、複数のコンシューマに、需要に応じて、動的に割り当て、および再割り当てされる、異なる物理リソースおよび仮想リソースのサービスを提供するためにプールされている。コンシューマは一般に、提供されるリソースの正確な場所を制御することができないか、またはそれについての知識を持たないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で場所を指定できる可能性があるという点で、場所独立性の意味がある。
迅速な弾力性(Rapid elasticity):機能を迅速かつ弾力的に、場合によっては自動的に提供して、迅速にスケール・アウトするとともに、迅速にリリースして素早くスケール・インすることができる。コンシューマには、プロビジョニングに利用可能な機能は無制限に見えることが多く、いつでも任意の数量で購入できる。
測定サービス(Measured service):クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適したいくつかの抽象化レベルで計量機能を活用することにより、リソースの使用を自動的に制御し、最適化する。リソースの使用を監視、制御、および報告できるため、利用されるサービスのプロバイダとコンシューマとの両方に、透明性が提供される。
サービス・モデルは以下のとおりである。
サービスとしてのソフトウェア(SaaS:Software as a Service):コンシューマに提供される機能は、クラウド・インフラストラクチャで実行されているプロバイダのアプリケーションを使用することである。これらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェースを通して、様々なクライアント・デバイスからアクセス可能である。制限されたユーザ固有のアプリケーション構成設定が例外となる可能性を除き、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能をも含む、基盤となるクラウド・インフラストラクチャの管理または制御を行わない。
サービスとしてのプラットフォーム(PaaS:Platform as a Service):コンシューマに提供される機能は、プロバイダがサポートするプログラミング言語とツールを使用してコンシューマが作成または取得したアプリケーションを、クラウド・インフラストラクチャに展開することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージなどの基盤となるクラウド・インフラストラクチャの管理または制御は行わないが、展開されたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成に対する制御ができる。
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):コンシューマに提供される機能は、コンシューマがオペレーティング・システムやアプリケーションを含むことができる任意のソフトウェアを展開して実行できる処理、ストレージ、ネットワーク、およびその他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基盤となるクラウド・インフラストラクチャの管理または制御は行わないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対する制御を行うとともに、場合によっては選択ネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)の限定された制御を行う。
展開モデルは次のとおりである。
プライベート・クラウド:クラウド・インフラストラクチャは、組織専用に運用され、それは、組織またはサード・パーティによって管理され、オン・プレミスまたはオフ・プレミスに存在する可能性がある。
コミュニティ・クラウド:クラウド・インフラストラクチャは、複数の組織によって共有されて、懸念事項(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス考慮事項)を共有する、特定のコミュニティをサポートする。それは、組織またはサード・パーティによって管理されてもよく、オン・プレミスまたはオフ・プレミスに存在する可能性がある。
パブリック・クラウド:クラウド・インフラストラクチャは、一般の人々または大規模な業界グループに対して利用可能にされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データとアプリケーションの移植性を可能にする標準化されたテクノロジまたは独自のテクノロジ(例えば、クラウド間の負荷平均化のためのクラウド・バースティング(cloud bursting))によって結び付けられた、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成体である。
クラウド・コンピューティング環境は、無国籍性(statelessness)、低結合性(low coupling)、モジュール性、およびセマンティック相互運用性に重点を置いたサービス指向である。クラウド・コンピューティングの中心にあるのは、相互接続されたノードのネットワークを含む、インフラストラクチャである。
次に図1を参照すると、コンピュータ・システム/サーバ12の一例の概略図が示されており、これは、いくつかの実施形態では、多数の他の汎用または特殊目的のコンピューティング・システム環境または構成で動作可能な通信デバイスなどの、携帯型電子デバイスとすることができる。コンピュータ・システム/サーバ12との使用に適するよく知られているコンピューティング・システム、環境、または構成、あるいはそれらの組み合わせの例としては、それらに限定はされないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイス、その他のいずれかを含む、分散クラウド・コンピューティング環境が挙げられる。
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行される、プログラム・モジュールなど、コンピュータ・システム実行可能命令の一般的文脈において説明することができる。一般に、プログラム・モジュールには、特定のタスクを実行する、または特定のデータ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などが含まれる。コンピュータ・システム/サーバ12は、分散型クラウド・コンピューティング環境で実施することができ、この環境において、タスクは、通信ネットワークを介してリンクされたリモート処理デバイスによって実行される。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモート両方のコンピュータ・システム・ストレージ媒体中に配置することができる。
図1に示されるように、コンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ12のコンポーネントには、それらに限定はされないが、1つまたは複数のプロセッサまたは処理ユニット16、システム・メモリ28、およびシステム・メモリ28を含む様々なシステム・コンポーネントを1つまたは複数のプロセッサまたは処理ユニット16に結合する、バス18が含まれる。
バス18は、メモリ・バスまたはメモリ・コントローラ、周辺バス、加速グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のうちの、いずれか1つまたは複数を表わし得る。例としてであって限定ではなく、そのようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスが含まれる。
コンピュータ・システム/サーバ12は、一般に、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12がアクセス可能である任意の利用可能な媒体とすることができ、媒体には、揮発性および不揮発性両方の媒体に加えて、リムーバブルおよびノン・リムーバルな媒体も含まれる。
システム・メモリ28には、ランダム・アクセス・メモリ(RAM)30またはキャッシュ・メモリ32、あるいはその両方などの揮発性メモリの形態のコンピュータ・システム可読媒体を含めることができる。コンピュータ・システム/サーバ12には、その他のリムーバブル/ノン・リムーバブル、または揮発性/不揮発性、あるいはその両方のコンピュータ・システム・ストレージ媒体がさらに含まれる。例としてだけであるが、ストレージ・システム34を、ノン・リムーバブルで、不揮発性の磁気媒体(図示せず、通常は「ハード・ドライブ」と呼ばれる)との間で読み書きするために設けることができる。図示されていないが、リムーバブルで、不揮発性の磁気ディスク(例えば、「フロッピー・ディスク」)との間で読み書きするための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROMまたはその他の光媒体などの、リムーバブルで、不揮発性の光ディスクとの間で読み書きするための、光ディスク・ドライブを設けることができる。そのような場合、各々は、1つまたは複数のデータ媒体インターフェースによって、バス18に接続することができる。以下にさらに描写および説明されるように、システム・メモリ28には、本開示の実施形態の機能を実施するように構成された、プログラム・モジュールのセット(例えば、少なくとも1つ)を有する、少なくとも1つのプログラム製品を含むことができる。
1つまたは複数のプログラム・モジュール42を有するプログラム/ユーティリティ40は、例えば、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データに記憶させるのと同様に、システム・メモリ28に記憶させてもよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データまたはそれらのいくつかの組み合わせの各々には、ネットワーキング環境の実装が含まれ得る。1つまたは複数のプログラム・モジュール42は、一般に、本明細書に記載されるような本開示の実施形態の機能または方法、あるいはその両方を実施し得る。コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイス、ディスプレイ24、ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ12が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその両方などの、1つまたは複数の外部デバイス14と通信し得る。このような通信は、入出力(I/O)インターフェース22を介して行うことができる。さらには、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、一般ワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはそれらの組み合わせなどの、1つまたは複数のネットワークと通信することができる。図示されるように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12のその他のコンポーネントと通信し得る。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネント、あるいはその両方をコンピュータ・システム/サーバ12と組み合わせて使用することもできることを理解されたい。例としては、それらに限定はされないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムが挙げられる。図1に示されるコンピュータ・システム/サーバ12は、図2に示される1つまたは複数のクラウド・コンピューティング・ノード10のような、クラウド・コンピューティング・ノードであってもよい。図1に示されるコンピュータ・システム/サーバ12はまた、本開示の少なくとも1つの例示的な実施形態による、図4および図5に示される例示的なエッジ・コンピューティング環境におけるハードウェア・コンポーネントであってもよい。
ここで図2を参照すると、説明用のクラウド・コンピューティング環境50が描かれている。図示されているように、クラウド・コンピューティング環境50には、例えば、パーソナル・デジタル・アシスタント(PDA)またはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれらの組み合わせなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信し得る、1つまたは複数のクラウド・コンピューティング・ノード10が含まれ得る。1つまたは複数のノード10は、互いに通信し得る。それらは、本明細書で説明したようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウドなどの1つまたは複数のネットワーク、あるいはそれらの組み合わせに、物理的または仮想的にグループ化されてもよい(図示せず)。このグループ化によって、クラウド・コンピューティング環境50は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを維持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはそれらの組み合わせを提供することが可能になる。図2に示されるタイプのコンピューティング・デバイス54A~Nは、例示のみを目的としていること、ならびに1つまたは複数のコンピューティング・ノード10およびクラウド・コンピューティング環境50は、(例えば、ウェブ・ブラウザを使用して)任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続、あるいはその両方を介して、任意のタイプのコンピュータ化されたデバイスと通信できることが理解される。
次に図3を参照すると、クラウド・コンピューティング環境50(図2)によって提供される、機能的抽象化レイヤ300のセットが示されている。図3に示すコンポーネント、レイヤ、および機能は説明用にすぎず、本発明の実施形態はこれに限定されないことを予め理解されたい。図に示すように、以下のレイヤと、対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61;RISC(縮小命令セットコンピュータ)アーキテクチャ・ベース・サーバ62;サーバ63;ブレード・サーバ64;ストレージ・デバイス65;ならびにネットワークおよびネットワーキング・コンポーネント66が挙げられる。いくつかの実施形態では、ソフトウェア・コンポーネントとしては、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68が含まれる。
仮想化レイヤ70は抽象化レイヤを提供し、それから、仮想エンティティの以下の例:仮想サーバ71;仮想ストレージ72;仮想プライベートネットワークを含む、仮想ネットワーク73;仮想アプリケーションおよびオペレーティング・システム74;ならびに仮想クライアント75が提供され得る。
一例では、管理レイヤ80は、以下に説明する機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよびその他のリソースの動的調達を提供する。メータリングとプライシング(metering and pricing)82は、クラウド・コンピューティング環境内でリソースが使用される際のコスト追跡と、これらのリソースの消費に対するビリング(billing)またはインボイシング(invoicing)を提供する。一例では、これらのリソースには、アプリケーション・ソフトウェア・ライセンスが含まれることがある。セキュリティは、クラウド・コンシューマとタスクに対する本人確認(identity verification)に加えて、データやその他のリソースの保護を提供する。ユーザ・ポータル83は、コンシューマおよびシステム管理者に対するクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、必要なサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル・アグリーメント(SLA)計画と履行(planning and fulfillment)85は、SLAによって将来の要求がそれに対して予期される、クラウド・コンピューティング・リソースの事前手配と調達を提供する。
ワークロード・レイヤ(workloads layer)90は、クラウド・コンピューティング環境がそのために利用され得る、機能の例を提供する。このレイヤから提供され得るワークロードおよび機能の例としては:マッピングおよびナビゲーション91;ソフトウェア開発ならびにライフサイクル管理92;仮想教室教育配信93;データ分析処理94;トランザクション処理95;およびエッジ・コントローラ96が挙げられる。
図3の機能的抽象化レイヤは、例示にすぎない。必要なときには、1つまたは複数のレイヤをこれに追加することが可能であり、図3における1つまたは複数のレイヤを、合成するか、または省略することができる。さらに、図3の各レイヤにおいて、いくつかのコンポーネントを省略するか、または合成したり、1つまたは複数のコンポーネントを追加したりすることができる。
<例示的なコンピューティング環境>
前述のように、クラウド・コンピューティングとIoTテクノロジとの発達に伴い、エッジ・コンピューティングはより強力な計算機能を達成するための新たな発展方向となる。エッジ・コンピューティングは、急速に、デジタル・トランスフォーメーションを加速するための産業用モノのインターネット(IIoT)の重要な部分となりつつある。エッジ・コンピューティングは、産業機械などの「モノ」に実際に接続されているデバイスとテクノロジに焦点を当てている。インテリジェント・マニュファクチャリングは、エッジ・コンピューティングの典型的な例であり得る。エッジ・コンピューティングにより、データソースにおいて、分析とデータ収集を行うことが可能になり得る。
前述のように、クラウド・コンピューティングとIoTテクノロジとの発達に伴い、エッジ・コンピューティングはより強力な計算機能を達成するための新たな発展方向となる。エッジ・コンピューティングは、急速に、デジタル・トランスフォーメーションを加速するための産業用モノのインターネット(IIoT)の重要な部分となりつつある。エッジ・コンピューティングは、産業機械などの「モノ」に実際に接続されているデバイスとテクノロジに焦点を当てている。インテリジェント・マニュファクチャリングは、エッジ・コンピューティングの典型的な例であり得る。エッジ・コンピューティングにより、データソースにおいて、分析とデータ収集を行うことが可能になり得る。
エッジ・コンピューティングは、クラウド・コンピューティング・システムに対する最適化であって、クラウド・コンピューティングと共に動作し得ることが理解される。エッジ・コンピューティングが支配的になるシナリオには、低遅延の必要性、または帯域幅の制約がある場合が含まれる。エッジ・コンピューティングは、インターネットまたはセルラー接続が不安定な場合にも重要になる可能性がある。アクションが、マシンからの膨大なデータ量を効果的に管理するために大量のコンピューティング・パワーを必要とする場合に、クラウド・コンピューティングは、より支配的な位置を占める可能性がある。クラウド・コンピューティングとエッジ・コンピューティングとはどちらも、今日の高度で多様で大量のデータから最大の価値を得るために、産業経営に必要になる可能性がある。産業プロバイダやサーバ・プロバイダにとって、最適な運用を達成するために、エッジ・デバイスからのデータを、エッジ・デバイスに近いエッジ側で、クラウド内で、または両者の組み合わせにおいて、管理および処理することが有利な場合がある。
図4は、既存の例示的なエッジ・コンピューティング環境を示す。既存の例示的なエッジ・コンピューティング環境には、クラウド・レイヤおよびエッジ・レイヤの両方で実行される、コンポーネントまたはモジュール、あるいはその両方が含まれ得る。既存の例示的なエッジ・コンピューティング環境では、クラウドのデータ・センタは、典型的なクラウド・コンピューティング環境におけるコンピューティング・ノード/サーバと接続されるよりもむしろ、エッジ・システムおよびエッジ・デバイスと接続され得ることが理解できる。
図4に示されるように、例示的なエッジ・コンピューティング環境は、クラウド・レイヤのデータ・センタ410、エッジ・システム・レイヤ420、およびエッジ・デバイス・レイヤ430を備える。例示的なエッジ・コンピューティング環境における各レイヤにおけるハードウェア・コンポーネントは、図1に示されるコンピュータ・システム/サーバ12であってもよい。図1に示されるコンピュータ・システム/サーバ12は、例示的なエッジ・コンピューティング環境において、機能のいずれかを実装することができる。例示的なエッジ・コンピューティング環境における全てのコンポーネントまたはモジュール、あるいはその両方は、通信ネットワークを介して直接的または間接的に接続され得る。図4におけるネットワークには、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、電気通信ネットワーク、ワイヤレス・ネットワーク、公衆交換網または衛星網、あるいはそれらの組み合わせなどの、様々なタイプの通信ネットワークが含まれ得る。通信ネットワークは、例えば、ワイヤ、無線通信リンク、光ファイバ・ケーブル、または当業者が認識する任意のその他の接続、あるいはそれらの組み合わせなどの接続を含むことができ、通信ネットワークへのアクセスを可能にすることができる。
エッジ・コンピューティング環境全体にわたるレイヤおよびモジュール、ならびにエッジ・デバイスの数は、例示のみを目的として提示されていることが理解されるであろう。エッジ・コンピューティング環境には、1つまたは複数のその他のレイヤおよびモジュールが含まれてもよく、エッジ・デバイスの数は異なってもよく、また他の様式で配設されてもよい。
クラウド・レイヤのデータ・センタ410は、上記の図2~3を参照して説明した、既存のクラウド・コンピューティング環境に属してもよい。実際には、生産またはサービスの実際の要件および条件に従って、クラウド・コンピューティング・センタ410は、エッジ・デバイスの中央管理を実行するために、モデルおよびアプリケーションの一部などの、コンピューティング・パワーの一部をエッジ・システム420に送信することができる。
図4に示されるように、クラウド・レイヤのデータ・センタ410内の例示的なモジュールには、ストア・システム411、APIサーバ412、およびエッジ・コントローラ96が含まれ得る。ストア・システム411は、APIサーバ412によって必要とされるメタデータを記憶することができる。例えば、ストア・システム411は、一貫性のある分散型のキー・バリュー・ストア(key-value store)である。ストア・システム411内の記憶データは、マシンの分散システムまたはクラスタによってアクセス可能である。APIサーバ412は、APIオペレーションを処理するために使用されてもよく、またユーザによって呼び出されてもよい。クラウド・レイヤ410内のコンポーネントは、メッセージ配信のためにAPIサーバ412に依存し得る。エッジ・コントローラ96は、中央管理を実行するために、クラウド・レイヤのデータ・センタ410とエッジ・システム・レイヤ420との間の通信に用いられてもよい。
エッジ・システム・レイヤ420は、エッジ・デバイス・レイヤ430内のエッジ・デバイスを管理することができる。インテリジェント生産を例にとると、インテリジェント生産の工業団地の生産ラインの中央管理システムをエッジ・システムと称してもよく、工業団地の生産ラインの機械をエッジ・デバイスと称してもよい。基地局を別の例とすると、基地局の中央管理システムをエッジ・システムと称してもよく、基地局と通信しているモバイル・デバイスをエッジ・デバイスと称してもよい。
図4に示されるように、エッジ・システム・レイヤ420内の例示的なモジュールには、ストア・モジュール421、同期サービス・モジュール422、およびエッジ・エージェント・モジュール423が含まれ得る。ストア・モジュール421は、エッジ・システム420およびエッジ・デバイスのためのメタデータを記憶できる。同期サービス・モジュール422は、エッジ・システム420の中央データ処理モジュールであってよく、クラウド410とエッジ・システム420との間でモデルとデータを同期させるために使用されてもよく、エッジ・エージェント・モジュール423は、エッジ・デバイスの管理モジュールであってもよい。
「エッジ・デバイス」は、企業またはサービス・プロバイダのコア・ネットワークへのエントリ・ポイントとして定義できる。エッジ・システム420は、エッジ・デバイスのデータを処理してもよく、処理された、または中央処理に適したデータのみをネットワークを介してクラウド・データ・センタ410に送信してもよい。このようにして、ネットワークを介する未処理データの大量のデータ伝送を回避し、中央処理の時間を節約できる。図4に示されるように、例示的なエッジ・デバイス・レイヤ430には、デバイスA、B、C、DおよびEなどの、複数のエッジ・デバイスが含まれ得る。エッジ・デバイスの各々には、それぞれ、デバイスB、C、およびA内のコンテナ4321、4331、4311などのコンテナが含まれ得る。コンテナは、タスクの要求を実行するように構成されたサービス・グリッドまたはモジュールであってもよい。
産業/インテリジェント生産またはサービス機能は、エッジ・コンピューティング環境で実施または実現できることが理解され得る。エッジ・デバイスは、生産ミッションを達成するために、またはサービス機能を実装するために、に様々なタスクを実行してワークロードを満たすことを要求され得る。タスクは、一連のサブタスクを含むことがある。サブタスクは、複数のデバイス上で並列または直列に、あるいはその両方で実行されてもよい。このタスクは、本明細書においては「タスク・フロー」と称されることもある。生産またはサービスのプロセスは、エッジ・デバイス上で実行される一連のサブタスクを含む、タスク・フローを実行するプロセスであり得る。
また、実際の生産またはサービスの実践では、複数のタスク・フローを並行して実行できることも理解できる。タスク・フロー毎に、複数のデバイスが関与してもよい。エッジ・デバイスで並行して実行される2つの類似のタスク・フローがあるとすると、タスク・フローの1つには、デバイスB、C、およびAで実行される一連のサブタスクが含まれてもよい。デバイスB、C、およびAは、それぞれ、エッジ・エージェント423から割り当てられたサブタスクを受信し、線431、432、ならびに433によって示されるように、それぞれ、実行結果をエッジ・エージェント423に戻すことができる。他のタスク・フローは、デバイスD、E、およびAで実行される一連のサブタスクを含むことがある。同様に、デバイスD、E、およびAは、エッジ・エージェント423と通信して、点線434、435、ならびに436で示されるようなタスク・フローを実行してもよい。
タスク・フローに関与するエッジ・デバイスの各々は、タスク・フローを完了するためにエッジ・エージェント423と通信することを要求され得ることに留意されたい。エッジ・エージェント423は、タスク要求をエッジ・デバイスの各々に送信し、各デバイスから実行結果を受信することを要求され得る。別の言い方をすれば、エッジ・デバイスの各々は、エッジ・エージェント423からタスク要求を受信して、実行結果をエッジ・エージェント423に出力してもよい。図からわかるように、エッジ・システム・レイヤ420内のエッジ・エージェント423は、全てのタスク・フローの実行を制御してもよい。
実際の生産またはサービスの実践では、実行されるタスクは大規模で複雑であり、関連するエッジ・デバイスの数が多い場合がある。しかしながら、既存のエッジ・コンピューティング環境では、タスク・フローに対する管理は、上述したようにエッジ・エージェント423システムに主に焦点を当ててもよい。エッジ・エージェント423のワークロードは非常に重く、管理のボトルネックになる可能性がある。同時に、エッジ・エージェント423とエッジ・デバイスとの間の通信のための有線または無線の接続は不安定である可能性があり、このことは、管理のボトルネック、もしくはシステム障害を形成するリスクを増大させる場合がある。
本開示の実施形態は、上述した問題を解決することを目的としており、エッジ・エージェント423のワークロードを軽減するために、エッジ・システム・レイヤ420の代わりに、主にエッジ・デバイス・レイヤ430においてタスク・フローを動的に管理する解決策を提案する。
以下では、本開示の実施形態について、図5から図8を参照して詳細に説明する。
図5は、本開示の実施形態による例示的なエッジ・コンピューティング環境を示す。なお、図4における対応するモジュールまたは要素は、図5において同様の参照数字によって参照されており、本明細書では論じないことに留意されたい。
図5は、エッジ・コンピューティング環境の実装の図解のみを提供するものであり、異なる実施形態が実装され得る環境に関して、いかなる限定をも意味しないことを理解されたい。図解の環境には多くの修正が加えられる可能性がある。
ここで図5を参照すると、定義者モジュール5231、送信側モジュール5232および受信側モジュール5233は、エッジ・エージェント523内に構成され得る。図4に示す既存のコンピューティング環境と比較して、これらのモジュールは、機能が改善されており、これについては、以下で詳しく論ずる。さらに、プロキシ5312およびプロキシ5322などの、1つまたは複数のプロキシ・モジュールが、エッジ・デバイスの各々において構成され得る。例えば、プロキシ・モジュール5312はデバイスAにおいて構成されてもよく、プロキシ・モジュール5322はデバイスBにおいて構成されてもよく、以下同様である。本開示の実施形態によれば、定義者モジュール5231、送信側モジュール5232、および受信側モジュール5233、ならびに1つまたは複数のプロキシ・モジュールを使用して、タスク・フローを管理し、制御することができる。モジュールは説明のみを目的として提示されていると理解されたい。本開示のいくつかの実施形態による、エッジ・コンピューティング環境は、同様の機能または意図を達成するために、追加のモジュール、またはより少ないモジュールを備えてもよい。モジュールおよびその数は異なってもよく、他の方法で配設されてもよい。
既存のエッジ・コンピューティング環境では、エッジ・エージェント423は、タスク・フローを動的またはリアルタイムで実行するための、エッジ・デバイスを決定するように構成され得る。本開示の実施形態によれば、定義者モジュール5231は、タスク・フローの実行のためのエッジ・デバイスを動的に決定するように構成され得る。タスク・フローを実行するためのエッジ・デバイスは、クラスタ1やクラスタ2などのクラスタを形成してもよい。例えば、定義者モジュール5231が、デバイスB、C、およびA上で1つのタスク・フローが実行され得ると判断した場合、デバイスB、C、およびAのグループは、図5に示すようにクラスタ1と称され得る。同様に、定義者モジュール5231は、図5に示すように、他のタスク・フローがデバイスD、EおよびA上で並列に実行され得ると決定し、デバイスD、EならびにAのグループをクラスタ2と称してもよい。わかりやすくするために、クラスタ1で実行されるタスク・フローについてのみ、以下で詳しく論ずる。
定義者モジュール5231は、タスクを実行するクラスタ1のメタデータ情報を決定するようにさらに構成されてもよい。メタデータ情報は、クラスタ1の間でエッジ・デバイスによりタスク・フローを管理またはスケジュールするために使用できる。メタデータ情報の決定について、以下の図6と併せて詳細に説明する。
本開示の実施形態によれば、送信側モジュール5232は、タスクの実行を開始するために、クラスタ1に関与する1つまたは複数のエッジ・デバイスにメタデータ情報を含む要求を送信するように構成され得る。メタデータ情報は、要求と一緒に送信されてもよい。例えば、理解され得るように、要求には、要求ヘッダおよび要求本文が含まれる。メタデータ情報は、要求のヘッダに埋め込まれてもよい。このようにして、メタデータ情報は、要求と一緒に送信されてもよい。メタデータ情報は、個別に送信されてもよい。メタデータ情報を送信する方法は、本開示の範囲を不利に限定すべきではない。
各エッジ・デバイスのコンテナは、割り当てられたサブタスクを実行してもよく、各デバイスの1つまたは複数のプロキシ・モジュールは、タスク・フローのデータを管理してもよい。各エッジ・デバイス内の1つまたは複数のプロキシ・モジュールは、メタデータ情報に従ってタスク・フローを管理するか、またはルート設定してもよい。
本開示の実施形態によれば、受信側モジュール5233は、各デバイスから各サブタスクの実行結果を受信するよりもむしろ、クラスタ内の対応する最後のエッジ・デバイスから最終実行結果を受信するように構成されてもよい。
このようにして、本開示の提案された解決策は、タスク・フローがエッジ・システム・レイヤ520よりもむしろエッジ・デバイス・レイヤ530で制御されることを可能にすることによって、既存のエッジ・コンピューティング・アーキテクチャを強化し得る。これによりエッジ・エージェント523における管理のワークロード、およびデータ・センタ410においてボトルネックを形成するリスクが、低減される。
図6Aは、本開示のいくつかの実施形態による例示的なタスク・フローを示す。
ここで、図6Aを参照すると、例示的なタスク・フローは、2つのサブタスク、subtask_1(図示せず)およびsubtask_2を含む。subtask_1はさらに、subtask_1_1とsubtask_1_2との2つのサブタスクを含む。subtask_1_1およびsubtask_1_2は、2つのデバイスで並行して実行する必要がある場合がある。2つのサブタスクの実行結果は、次のサブタスク、つまりsubtask_2を実行するために、第3のデバイスへの入力として送信する必要がある。サブタスクを実行する最後のデバイスである可能性がある第3のデバイスは、subtask_2の実行結果を出力してもよい。次いで、タスク・フローが終了し得る。例示的なタスク・フローの情報は、図6Bに示す表において検索してもよい。
上述のように、実際の生産またはサービスの実践では、実行されるタスクは大規模で複雑になる可能性がある。図6Aに示すタスク・フローは、図解と単純化のための具体例として提供されるにすぎず、本開示に対する非限定を示唆している。本開示の実施形態は、同様の、類似の、または異なる定義を有する、あらゆる種類のタスク・フローに適用することができる。
以下では、図6Aに示すタスク・フローを例にとって、本開示の実施形態について、図5から図8までを参照して詳細に説明する。
<メタデータ情報決定>
簡単に上述したように、定義者モジュール5231は、タスク・フローおよびエッジ・デバイスの属性に基づいて、タスク・フローの実行のためのエッジ・デバイスのクラスタを動的に決定するように構成されて、クラスタ内のタスク・フローならびにエッジ・デバイスについてのメタデータ情報を作成してもよい。
簡単に上述したように、定義者モジュール5231は、タスク・フローおよびエッジ・デバイスの属性に基づいて、タスク・フローの実行のためのエッジ・デバイスのクラスタを動的に決定するように構成されて、クラスタ内のタスク・フローならびにエッジ・デバイスについてのメタデータ情報を作成してもよい。
例えば、図6Aに示すようなタスク・フローまたはタスクを受信すると、定義者モジュール5231は、タスク・フローの各サブタスクについてのタグを取得することができる。タグは、エッジ・デバイスの属性に対する基本要件を示してもよい。言い換えると、タスク・フローは、どのデバイスが、タグ内のタスクを実行するように適合されているかを示してもよい。図7Aは、本開示のいくつかの実施形態による、タグを有するタスク・フローの例示的な実施形態を示す。
エッジ・デバイスは、それら自身の属性または特性を有し、様々なタスクを実行するように適合され得ることが理解される。エッジ・デバイスの属性は、特性、タイプ、パワー、パラメータ、インデックス、構成などであり得る。わかりやすくするために、デバイスの属性をタグとしてマークすることもできる。定義者モジュール5231は、タスク・フローとエッジ・デバイスとの間のタグのマッピング関係に基づいて、タスク・フローの実行のためのエッジ・デバイスのクラスタを決定してもよい。ここで、図7Aおよび図7Bを参照すると、subTask_1_1は、デバイスCのものとマッピングされる、Tag_1を有してもよく、subTask_1_2もまた、デバイスBのものとマッピングされる、Tag_1を有してもよく、subTask_2は、デバイスAのものとマッピングされるTag_2を有してもよい。デバイスCおよびデバイスBは、同じ属性を有するデバイスであってもよく、相互交換可能であってもよい。したがって、定義者モジュール5231は、デバイスA、B、およびCがタスク・フローを実行するように適合されていると決定することができる。
本開示の実施形態によれば、定義者モジュール5231は、図5に示すように、タスク・フローを実行するためのクラスタ、すなわちクラスタ1として、デバイスA、B、およびCのグループを定義することができる。ネットワークの不安定性を考慮して、タスク・フローが受信されると、利用可能なエッジ・デバイス間でクラスタを動的に決定してもよい。タスク・フローが完了すると、クラスタを解消させることができる。タスク・フローを実行するように適合されたエッジ・デバイスは、履歴データ、慣例などに基づくなど、他の適切なアプローチでも決定され得ることに留意されたい。タスク・フローを実行するエッジ・デバイスの決定アプローチは、開示の範囲を不利に限定すべきではない。
本開示の実施形態によれば、定義者モジュール5231は、メタデータ情報として、決定されたクラスタ内のタスク・フローとエッジ・デバイスとの間のマッピング関係に基づいてメタデータをさらに検索することができる。タスク・フローの管理またはスケジュールに使用できる、その他の情報も、メタデータ情報として取得できる。例えば、本開示のいくつかの実施形態では、高性能の特定のデバイスを、クラスタ内のエッジ・デバイスを管理するためのコーディネータ・デバイスとして、クラスタから選択してもよい。この状況下では、メタデータ情報には、コーディネータ・デバイスの対応する情報が含まれ得る。
ここで、図7Cを参照すると、デバイスBは、性能考慮に基づいてメタデータ情報においてコーディネータ・デバイスとしてマークされてもよい。デバイスCおよびデバイスAは、コーディネータ・デバイスでなくてもよい。デバイスの性能は総合的な要因であって、簡略化のために、性能は、例としてCPU使用率によって表わされることが理解され得る。図7Bに見られるように、デバイスBのCPU使用率がクラスタ間で最も低いため、デバイスBを、コーディネータ・デバイスとして選択してもよい。コーディネータ・デバイスのプロキシは、クラスタ内の他のメンバーのステータスを定期的または不規則に取得してもよく、ステータス情報をエッジ・システム520に同期させてもよい。このようにして、エッジ・システム520は、不安定なネットワーク接続のためにクラスタ内の任意のデバイスが故障するなどの、何らかの例外がある場合に知らされることができる。
本開示の実施形態によれば、メタデータ情報は、タスク・フローを管理またはスケジュールするために使用することができる、任意の情報を含み得る。例えば、メタデータ情報には、以下のもの:タスク・フローのID、クラスタのID、クラスタに関与するエッジ・デバイスのID、クラスタ内のエッジ・デバイスによって実行されるタスク・フローのサブタスクのID、およびコーディネータ・エッジ・デバイスのID、のうちの少なくとも1つが含まれ得る。メタデータ情報は、図5におけるストア・モジュール521に記憶または維持されてもよい。各デバイスについての例示的メタデータ情報を、図7Cに示す。図7Cにおけるメタデータ情報は、説明および簡略化のためにのみ示されており、これは本開示に対する限定がないことを示唆する。
ここで図7Dを参照すると、タスク・フローの各サブタスクは、メタデータ情報に従ってクラスタの間の対応するデバイスと一致させてもよい。例えば、subtask_1_1はデバイスCと一致させ、subtask_1_2はデバイスBと一致させ、subtask_2はデバイスAと一致させてもよい。すなわち、デバイスCがsubtask_1_1を実行し、デバイスBがsubtask_1_2を実行し、デバイスAがsubtask_2を実行してもよい。デバイスCおよびデバイスBは、開始サブタスク、すなわち、それぞれsubtask_1_1およびsubtask_1_2に対応する、開始エッジ・デバイスであってもよい。デバイスAは、最後のサブタスク、すなわちsubtask_2、に対応する最後のデバイスであってもよい。デバイスAの実行結果は、タスク・フローの最終的な実行結果であり得る。したがって、クラスタ内の各デバイスは、メタデータ情報に従うサブタスクの実行のための対応するサブタスクと一致させられ得る。
<タスク・フローを動的に管理するプロセス>
本開示の実施形態によれば、メタデータ情報に従ってタスク・フローを動的に管理するプロセスを、以下において図5および図6と併せて説明することができる。
本開示の実施形態によれば、メタデータ情報に従ってタスク・フローを動的に管理するプロセスを、以下において図5および図6と併せて説明することができる。
ここで図5に戻ると、エッジ・エージェント523が図6Aに示すようなタスク・フローを実行する要求を受信すると、定義者モジュール5231は、利用可能なエッジ・デバイスとタスクの間のタグまたは属性のマッピング関係に基づいて、タスク・フローを実行するように適合された、エッジ・デバイスのクラスタを決定することができる。定義者モジュール5231は、図7Cに示すように、エッジ・デバイスの決定されたクラスタおよびタスク・フローについてのメタデータ情報をさらに作成してもよい。
次いで、送信側モジュール5232は、線531および532によって示されるように、メタデータ情報に従って、デバイスBならびにデバイスCに、タスク要求を送信することができる。送信側モジュール5232はまた、タスク要求のヘッダにメタデータ情報を埋め込むこともできるので、メタデータ情報は、要求と一緒にエッジ・デバイスに送信することができる。メタデータ情報を有する要求が受信されると、デバイスB内のコンテナ4321およびデバイスC内のコンテナ4331は、それぞれsubtask_1_1ならびにsubtask_1_2を実行することができる。次いで、デバイスBの実行結果は、線533によって示されるように、デバイスB内のプロキシ5322によって、デバイスAに送信され得る。並行して、デバイスCの実行結果は、線534によって示されるように、メタデータ情報に従って、デバイスC内のプロキシ5332によってデバイスAに送信され得る。デバイスA内のコンテナ4311は、デバイスBおよびデバイスCの両方から実行結果を受信すると、subtask_2を実行する。デバイスAの実行結果は、線535によって示されるように、デバイスA内のプロキシ5312によって受信側モジュール5233に送信され得る。その後、タスク・フローが完了し得る。線531~535は、クラスタ内の例示的なタスク・フローを実行するプロセスを示す。コーディネータ・デバイス情報がメタデータ情報に含まれる場合には、プロセスは、クラスタ内のステータス・フローをさらに含んでもよく、これについては以下で詳細に論ずる。
本開示の実施形態によれば、クラスタ内のデバイスBが、図7Cに示すメタデータ情報を示す、コーディネータ・デバイスとして選択され得る。コーディネータ・デバイスBは、デバイスCおよびデバイスAのステータス情報を、定期的または不定期に取得することができる。ステータス情報には、これらに限定はされないが、「実行中」、「終了」および「故障」が含まれ得る。ステータス情報は、コーディネータ・デバイスBによりデバイスCおよびデバイスAに問い合わせ、または確認することにより取得してもよい。また、デバイスCおよびデバイスAは、自身のステータス情報をコーディネータ・デバイスBに報告してもよい。ステータス情報の取得は、現在存在するまたは将来開発される、任意の適切なアプローチを利用してもよく、本発明の範囲を不利に限定すべきではない。
ここで、図5に戻ると、コーディネータ・デバイスB内のプロキシ5322は、それぞれ線536および537で示される、デバイスCならびにデバイスAのステータス情報を取得することができる。デバイスB内のプロキシ5322は、線538によって示されるように、受信したステータス情報を、受信側モジュール5233に送信する。線536~538は、クラスタ内のステータス・フローを示している。すなわち、クラスタ内のエッジ・デバイスのステータスは、クラスタ内のコーディネータ・デバイスによって管理されて、受信側モジュール5233に提供されてもよい。「故障」のステータス情報を取得すると、現在のクラスタを解消し、新しいクラスタを決定してもよい。
このようにして、送信側モジュール5232は、タスク・フローを開始するために、ヘッダ内のメタデータ情報を有する、タスク要求を送信することができる。受信側モジュール5233は、対応する最後のデバイスからのタスク・フローの最終実行結果、およびクラスタのコーディネータ・デバイスからのデバイスのステータス情報を受信することができる。最終実行結果以外の実行結果は、エッジ・デバイスとエッジ・システム520との間で転送する必要がない。例えば、デバイスCまたはデバイスBの実行結果は、受信側モジュール5233に送信する必要はないが、メタデータ情報に従ってデバイスAに送信してもよい。デバイスAの実行結果は、最終的な実行結果であってもよく、これは受信側モジュール5233に送信されてもよい。したがって、タスク・フローの管理またはスケジュールは、メタデータ情報に従って、エッジ・システム・レイヤ520においてよりもむしろ、エッジ・デバイス・レイヤ530において実現されてもよい。したがって、エッジ・システム・レイヤ520のワークロードは軽減され得る。
同様に、対応するメタデータ情報に従ってクラスタ2におけるタスク・フローを管理するプロセスを、図5に点線で示すことができる。図からわかるように、クラスタ2内のタスク・フローについては、タスク・フローの2つのサブタスクを、最初にデバイスDとデバイスEとで並列に実行してもよく、次にデバイスDおよびデバイスEの実行結果をデバイスAで実行してもよい。クラスタ2内のコーディネータ・デバイスは、デバイスEであってもよい。クラスタ2におけるタスク・フローの実行プロセスは同様であり、ここでは詳しくは論じない。
<例示的な方法>
図8は、本開示のいくつかの実施形態による、例示的な方法800のフローチャートを示す。方法800は、図5に示すようにエッジ・コンピューティング環境において実装することができる。考察の目的のために、図5を参照して方法800について説明する。
図8は、本開示のいくつかの実施形態による、例示的な方法800のフローチャートを示す。方法800は、図5に示すようにエッジ・コンピューティング環境において実装することができる。考察の目的のために、図5を参照して方法800について説明する。
810において、定義者モジュール5231は、タスク・フローを実行するための要求を受信する。820において、定義者モジュール5231は、エッジ・デバイスのセットから、タスク・フローを実行するための、エッジ・デバイスのクラスタを決定する。830において、定義者モジュール5231は、クラスタ内のタスク・フローおよびエッジ・デバイスについてのメタデータ情報を検索し、ここで、メタデータ情報は、クラスタ内のタスク・フローをスケジュールするのに使用される。840において、クラスタ内のエッジ・デバイスは、メタデータ情報に従ってタスク・フローを実行する。
本開示の一実施形態によれば、定義者モジュールは、エッジ・デバイスのセットから、タスク・フローを実行するための、エッジ・デバイスのクラスタを決定し、このことは:定義者モジュールが、タスク・フローおよびエッジ・デバイスのセットの属性を、それぞれ検索すること;ならびにタスク・フローとエッジ・デバイスのセットとの間の属性のマッピング関係に基づいて、タスク・フローを実行するための、エッジ・デバイスのクラスタとして、エッジ・デバイスのセットからエッジ・デバイスの群を選択することを含む。
本開示の一実施形態によれば、定義者モジュールは、エッジ・デバイスのセットから、タスク・フローを実行するための、エッジ・デバイスのクラスタを決定することができ、このことは:定義者モジュールが、クラスタ内のその他のエッジ・デバイスのステータスを管理するコーディネータ・デバイスとして、クラスタ内のエッジ・デバイスから1つのエッジ・デバイスを選択すること;および定義者モジュールが、メタデータ情報においてコーディネータ・デバイスの情報を指示することをさらに含む。
本開示の一実施形態によれば、クラスタ内のエッジ・デバイスは、メタデータ情報に従ってタスク・フローを実行することができ、このことは:送信側モジュールが、クラスタ内の1つまたは複数の開始エッジ・デバイスへ、メタデータ情報を有するタスク・フローを実行するための要求を送信することであって、タスク・フローは、一連のサブタスクを含み、1つまたは複数の開始エッジ・デバイスは、メタデータ情報に従って1つまたは複数の開始サブタスクに対応する、送信すること;クラスタ内の対応するエッジ・デバイスが、メタデータ情報に従って対応するサブタスクを実行すること;および1つまたは複数の最後のサブタスクが、1つまたは複数の最後のエッジ・デバイスによって完了されるのに応じて、1つまたは複数の最後のエッジ・デバイスが、受信側モジュールへ、1つまたは複数の最終実行結果を送信することを含む。
本開示の一実施形態によれば、クラスタ内のエッジ・デバイスが、メタデータ情報に従ってタスク・フローを実行することができ、このことは:送信側モジュールが、クラスタ内の1つまたは複数の開始エッジ・デバイスへ、メタデータ情報を有するタスク・フローを実行するための要求を送信することであって、タスク・フローは、一連のサブタスクを含み、1つまたは複数の開始エッジ・デバイスは、メタデータ情報に従って1つまたは複数の開始サブタスクに対応する、送信すること;クラスタ内の対応するエッジ・デバイスが、メタデータ情報に従って対応するサブタスクを実行すること;1つまたは複数の最後のサブタスクが、1つまたは複数の最後のエッジ・デバイスによって完了されるのに応じて、1つまたは複数の最後のエッジ・デバイスによって、受信側モジュールへ1つまたは複数の最終実行結果を送信すること;コーディネータ・デバイスが、クラスタ内のその他のエッジ・デバイスのステータス情報を取得すること;および受信側モジュールへ、ステータス情報を送信することを含む。
本開示の一実施形態によれば、クラスタ内の1つまたは複数の開始エッジ・デバイスへ、メタデータ情報を有するタスク・フローを実行するための要求を送信することが、送信側モジュールが、クラスタ内の1つまたは複数の開始エッジ・デバイスへ、要求のヘッダ内にメタデータ情報を有するタスク・フローを実行するための要求を送信することを含む。
本開示の一実施形態によれば、メタデータ情報は、以下のもの:タスク・フローのID、クラスタのID、クラスタに関与するエッジ・デバイスのID、クラスタ内のエッジ・デバイスによって実行されるタスク・フローのサブタスクのID、およびコーディネータ・デバイスのID、のうちの少なくとも1つを示すことができる。
本開示の一実施形態によれば、タスク・フローを実行するための、エッジ・デバイスのクラスタのメタデータ情報は、ストア・モジュールに記憶してもよい。
本開示の実施形態による、タスク・フローの処理は、図1のコンピュータ・システム/サーバ12によって実施することができることに留意されたい。
本開示は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであり得る。コンピュータ・プログラム製品には、プロセッサに本開示の態様を実施させるための、コンピュータ可読プログラム命令を有する、コンピュータ可読ストレージ媒体が含まれ得る。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用される命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読ストレージ媒体は、例えば、それに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または前述のものの任意の適切な組み合わせであってもよい。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、以下を含む:携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、そこに記録された命令を有する、パンチ・カードまたは溝の中の隆起構造などの機械的に符号化されたデバイス、および前記のものの任意の適切な組み合わせ。本明細書で使用される場合には、コンピュータ可読ストレージ媒体は、それ自体が一過性の信号、例えば、電波または他の自由に伝播する電磁波、導波路または他の伝送媒体を伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを介して伝送される電気信号であると解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードするか、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくはワイヤレス・ネットワーク、あるいはそれらの組み合わせを介して、外部コンピュータまたは外部ストレージ・デバイスへダウンロードすることができる。ネットワークには、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバ、あるいはそれらの組み合わせが含まれ得る。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶させるために、コンピュータ可読プログラム命令を転送する。
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、もしくはSmalltalk、C++、などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書かれた、ソース・コードもしくはオブジェクト・コードのいずれかである。コンピュータ可読プログラム命令は、スタンド・アロンのソフトウェア・パッケージとして、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、かつ部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてもよいし、または(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)外部コンピュータへの接続がなされてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行することができる。
本明細書において、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図解またはブロック図、あるいはその両方を参照して、本発明の態様が記述される。フローチャート図解またはブロック図、あるいはその両方の各ブロック、ならびにフローチャート図解またはブロック図、あるいはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実施できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実装する手段を作り出すように、コンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサに提供されて、マシンを生成するものであってもよい。これらのコンピュータ可読プログラム命令はまた、その中に記憶された命令を有するコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックに指定された機能/動作の態様を実装する命令を含む製品を構成するように、コンピュータ、プログラム可能なデータ処理装置、またはその他のデバイス、あるいはそれらの組み合わせに特定の方法で機能するように指示することができる、コンピュータ可読ストレージ媒体に記憶されてもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、その他のプログラマブル装置、もしくはその他のデバイス上で実行される命令が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックに指定された機能/行為を実装するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、もしくはその他のデバイス上で一連の動作ステップを実行させて、コンピュータ実施プロセスを生成してもよい。
図のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表わしてもよい。いくつかの代替的な実装形態では、ブロックに記された機能は、図に記された順序から外れて起こり得る。例えば、連続して示される2つのブロックは、実際には、同時に、実質的に同時に、部分的にまたは完全に時間的に重複する方法で実行される、1つのステップとして達成されてもよいし、関与する機能に応じて、ブロックが逆の順序で実行されることがある。ブロック図もしくはフローチャート図解、あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図解、あるいはその両方におけるブロックの組み合わせは、指定された機能または動作を実行するか、もしくは特殊目的ハードウェア命令とコンピュータ命令との組み合わせを実施する、特殊目的ハードウェア・ベースのシステムによって実装できることにも留意されたい。
本開示の様々な実施形態の記述は、説明の目的のために提示されたが、網羅的であったり、開示された実施形態に限定したりすることを意図するものではない。当業者には、記載された実施形態の範囲から逸脱することなく、多くの修正および変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、実際的な適用もしくは市場で見出される技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示される実施形態を理解できるようにするために選択された。
Claims (20)
- 定義者モジュールによって、タスク・フローを実行するための要求を受信することと、
前記定義者モジュールによって、エッジ・デバイスのセットから、前記タスク・フローを実行するための、エッジ・デバイスのクラスタを決定することと、
前記定義者モジュールによって、前記クラスタ内の前記タスク・フローおよび前記エッジ・デバイスについてのメタデータ情報を検索することであって、前記メタデータ情報は、前記クラスタ内の前記タスク・フローをスケジュールするのに使用される、前記検索することと、
前記クラスタ内の前記エッジ・デバイスによって、前記メタデータ情報に従って前記タスク・フローを実行することと、
を含む、コンピュータ実施方法。 - 前記エッジ・デバイスのセットから、前記タスク・フローを実行するために前記エッジ・デバイスのクラスタを決定することは、
前記定義者モジュールによって、前記タスク・フローおよび前記エッジ・デバイスのセットの属性を、それぞれ検索することと、
前記タスク・フローと前記エッジ・デバイスのセットの間の属性のマッピング関係に基づいて、前記タスク・フローを実行する前記エッジ・デバイスのクラスタとして、前記エッジ・デバイスのセットからエッジ・デバイスの群を選択することと、
をさらに含む、請求項1に記載の方法。 - 前記定義者モジュールによって、前記クラスタ内のその他のエッジ・デバイスのステータスを管理するコーディネータ・デバイスとして、前記クラスタ内の前記エッジ・デバイスから1つのエッジ・デバイスを選択することと、
前記定義者モジュールによって、前記メタデータ情報において前記コーディネータ・デバイスの情報を指示することと、
をさらに含む、請求項2に記載の方法。 - 前記メタデータ情報に従って前記タスク・フローを実行することは、
送信側モジュールによって、前記クラスタ内の1つまたは複数の開始エッジ・デバイスへ、前記メタデータ情報を有する前記タスク・フローを実行するための要求を送信することであって、前記タスク・フローは、一連のサブタスクを含み、前記1つまたは複数の開始エッジ・デバイスは、前記メタデータ情報に従って1つまたは複数の開始サブタスクに対応する、前記送信することと、
前記クラスタ内の対応するエッジ・デバイスによって、前記メタデータ情報に従って前記対応するサブタスクを実行することと、
1つまたは複数の最後のサブタスクが、1つまたは複数の最後のエッジ・デバイスによって完了されるのに応じて、前記1つまたは複数の最後のエッジ・デバイスによって、受信側モジュールへ、1つまたは複数の最終実行結果を送信することと、
を含む、請求項2に記載の方法。 - 前記メタデータ情報に従って前記タスク・フローを実行することは、
送信側モジュールによって、前記クラスタ内の1つまたは複数の開始エッジ・デバイスへ、前記メタデータ情報を有する前記タスク・フローを実行するための要求を送信することであって、前記タスク・フローは、一連のサブタスクを含み、前記1つまたは複数の開始エッジ・デバイスは、前記メタデータ情報に従って1つまたは複数の開始サブタスクに対応する、前記送信することと、
前記クラスタ内の対応するエッジ・デバイスによって、前記メタデータ情報に従って前記対応するサブタスクを実行することと、
1つまたは複数の最後のサブタスクが、1つまたは複数の最後のエッジ・デバイスによって完了されるのに応じて、前記1つまたは複数の最後のエッジ・デバイスによって、受信側モジュールへ、1つまたは複数の最終実行結果を送信することと、
前記コーディネータ・デバイスによって、前記クラスタ内の前記その他のエッジ・デバイスのステータス情報を取得することと、
前記コーディネータ・デバイスによって、前記受信側モジュールへ、前記ステータス情報を送信することと、
を含む、請求項3に記載の方法。 - 前記クラスタ内の前記1つまたは複数の開始エッジ・デバイスへ、前記メタデータ情報を有する前記タスク・フローを実行するための要求を送信することは、
前記送信側モジュールによって、前記クラスタ内の前記1つまたは複数の開始エッジ・デバイスへ、前記要求のヘッダ内の前記メタデータ情報を有する前記タスク・フローを実行するための前記要求を送信すること
を含む、請求項4に記載の方法。 - 前記メタデータ情報が、前記タスク・フローのID、前記クラスタのID、前記クラスタに関与するエッジ・デバイスのID、前記クラスタ内の前記エッジ・デバイスによって実行される前記タスク・フローのサブタスクのID、またはコーディネータ・デバイスのIDの少なくとも1つからなる群から選択される、請求項1に記載の方法。
- 1つまたは複数のプロセッサ、1つまたは複数のコンピュータ可読メモリ、1つまたは複数のコンピュータ可読有形ストレージ媒体、および前記1つまたは複数のメモリの少なくとも1つを介して、前記1つまたは複数のプロセッサによって実行するための前記1つまたは複数の有形ストレージ媒体の少なくとも1つに記憶されたプログラム命令を備える、コンピュータ・システムであって、前記コンピュータ・システムは、
定義者モジュールによって、タスク・フローを実行するための要求を受信することと、
前記定義者モジュールによって、エッジ・デバイスのセットから前記タスク・フローを実行するための、エッジ・デバイスのクラスタを決定することと、
前記定義者モジュールによって、前記クラスタ内の前記タスク・フローおよび前記エッジ・デバイスについてのメタデータ情報を検索することであって、前記メタデータ情報は、前記クラスタ内の前記タスク・フローをスケジュールするのに使用される、前記検索することと、
前記クラスタ内の前記エッジ・デバイスによって、前記メタデータ情報に従って前記タスク・フローを実行することと、
を含む方法を実施することのできる、コンピュータ・システム。 - 前記エッジ・デバイスのセットから、前記タスク・フローを実行するために前記エッジ・デバイスのクラスタを決定することは、
前記定義者モジュールによって、前記タスク・フローおよび前記エッジ・デバイスのセットの属性を、それぞれ検索することと、
前記タスク・フローと前記エッジ・デバイスのセットとの間の前記属性のマッピング関係に基づいて、前記タスク・フローを実行する前記エッジ・デバイスのクラスタとして、前記エッジ・デバイスのセットからエッジ・デバイスの群を選択することと、
をさらに含む、請求項8に記載のコンピュータ・システム。 - 前記定義者モジュールによって、前記クラスタ内のその他のエッジ・デバイスのステータスを管理するコーディネータ・デバイスとして、前記クラスタ内の前記エッジ・デバイスから1つのエッジ・デバイスを選択することと、
前記定義者モジュールによって、前記メタデータ情報において前記コーディネータ・デバイスの情報を指示することと、
をさらに含む、請求項9に記載のコンピュータ・システム。 - 前記メタデータ情報に従って前記タスク・フローを実行することは、
送信側モジュールによって、前記クラスタ内の1つまたは複数の開始エッジ・デバイスへ、前記メタデータ情報を有する前記タスク・フローを実行するための要求を送信することであって、前記タスク・フローは、一連のサブタスクを含み、前記1つまたは複数の開始エッジ・デバイスは、前記メタデータ情報に従って1つまたは複数の開始サブタスクに対応する、前記送信することと、
前記クラスタ内の対応するエッジ・デバイスによって、前記メタデータ情報に従って前記対応するサブタスクを実行することと、
1つまたは複数の最後のサブタスクが、1つまたは複数の最後のエッジ・デバイスによって完了されるのに応じて、前記1つまたは複数の最後のエッジ・デバイスによって、受信側モジュールへ、1つまたは複数の最終実行結果を送信することと、
を含む、請求項9に記載のコンピュータ・システム。 - 前記メタデータ情報に従って前記タスク・フローを実行することは、
送信側モジュールによって、前記クラスタ内の1つまたは複数の開始エッジ・デバイスへ、前記メタデータ情報を有する前記タスク・フローを実行するための要求を送信することであって、前記タスク・フローは、一連のサブタスクを含み、前記1つまたは複数の開始エッジ・デバイスは、前記メタデータ情報に従って1つまたは複数の開始サブタスクに対応する、前記送信することと、
前記クラスタ内の対応するエッジ・デバイスによって、前記メタデータ情報に従って前記対応するサブタスクを実行することと、
1つまたは複数の最後のサブタスクが、1つまたは複数の最後のエッジ・デバイスによって完了されるのに応じて、前記1つまたは複数の最後のエッジ・デバイスによって、受信側モジュールへ、1つまたは複数の最終実行結果を送信することと、
前記コーディネータ・デバイスによって、前記クラスタ内のその他のエッジ・デバイスのステータス情報を取得することと、
前記コーディネータ・デバイスによって、前記受信側モジュールへ、前記ステータス情報を送信することと、
を含む、請求項10に記載のコンピュータ・システム。 - 前記クラスタ内の前記1つまたは複数の開始エッジ・デバイスへ、前記メタデータ情報を有する前記タスク・フローを実行するための要求を送信することは、
前記送信側モジュールによって、前記クラスタ内の前記1つまたは複数の開始エッジ・デバイスへ、前記要求のヘッダ内の前記メタデータ情報を有する前記タスク・フローを実行するための前記要求を送信すること
を含む、請求項11に記載のコンピュータ・システム。 - 前記メタデータ情報が、前記タスク・フローのID、前記クラスタのID、前記クラスタに関与するエッジ・デバイスのID、前記クラスタ内の前記エッジ・デバイスによって実行される前記タスク・フローのサブタスクのID、またはコーディネータ・デバイスのIDの少なくとも1つからなる群から選択される、請求項8に記載のコンピュータ・システム。
- 1つまたは複数のコンピュータ可読有形ストレージ媒体、および1つまたは複数の有形ストレージ媒体の少なくとも1つに記憶された、プログラム命令を備える、コンピュータ・プログラム製品であって、プログラム命令は、方法を実施することのできるプロセッサによって実行可能であり、前記方法は、
定義者モジュールによって、タスク・フローを実行するための要求を受信することと、
前記定義者モジュールによって、エッジ・デバイスのセットから、前記タスク・フローを実行するための、エッジ・デバイスのクラスタを決定することと、
前記定義者モジュールによって、前記クラスタ内の前記タスク・フローおよび前記エッジ・デバイスについてのメタデータ情報を検索することであって、前記メタデータ情報は、前記クラスタ内の前記タスク・フローをスケジュールするのに使用される、前記検索することと、
前記クラスタ内の前記エッジ・デバイスによって、前記メタデータ情報に従って前記タスク・フローを実行することと、
を含む、コンピュータ・プログラム製品。 - 前記エッジ・デバイスのセットから、前記タスク・フローを実行するために前記エッジ・デバイスのクラスタを決定することは、
前記定義者モジュールによって、前記タスク・フロー、および前記エッジ・デバイスのセットの属性を、それぞれ検索することと、
前記タスク・フローと前記エッジ・デバイスのセットの間の前記属性のマッピング関係に基づいて、前記タスク・フローを実行するための、エッジ・デバイスのクラスタとして、エッジ・デバイスのセットからエッジ・デバイスの群を選択することと、
をさらに含む、請求項15に記載のコンピュータ・プログラム製品。 - 前記定義者モジュールによって、前記クラスタ内のその他のエッジ・デバイスのステータスを管理するコーディネータ・デバイスとして、前記クラスタ内の前記エッジ・デバイスから1つのエッジ・デバイスを選択することと、
前記定義者モジュールによって、前記メタデータ情報において前記コーディネータ・デバイスの情報を指示することと、
をさらに含む、請求項16に記載のコンピュータ・プログラム製品。 - 前記メタデータ情報に従って前記タスク・フローを実行することは、
送信側モジュールによって、前記クラスタ内の1つまたは複数の開始エッジ・デバイスへ、前記メタデータ情報を有する前記タスク・フローを実行するための要求を送信することであって、前記タスク・フローは、一連のサブタスクを含み、前記1つまたは複数の開始エッジ・デバイスは、前記メタデータ情報に従って1つまたは複数の開始サブタスクに対応する、前記送信することと、
前記クラスタ内の対応するエッジ・デバイスによって、前記メタデータ情報に従って前記対応するサブタスクを実行することと、
1つまたは複数の最後のサブタスクが、1つまたは複数の最後のエッジ・デバイスによって完了されるのに応じて、前記1つまたは複数の最後のエッジ・デバイスによって、受信側モジュールへ、1つまたは複数の最終実行結果を送信することと、
を含む、請求項16に記載のコンピュータ・プログラム製品。 - 前記メタデータ情報に従って前記タスク・フローを実行することは、
送信側モジュールによって、前記クラスタ内の1つまたは複数の開始エッジ・デバイスへ、前記メタデータ情報を有する前記タスク・フローを実行するための要求を送信することであって、前記タスク・フローは、一連のサブタスクを含み、前記1つまたは複数の開始エッジ・デバイスは、前記メタデータ情報に従って1つまたは複数の開始サブタスクに対応する、前記送信することと、
前記クラスタ内の対応するエッジ・デバイスによって、前記メタデータ情報に従って前記対応するサブタスクを実行することと、
1つまたは複数の最後のサブタスクが、1つまたは複数の最後のエッジ・デバイスによって完了されるのに応じて、前記1つまたは複数の最後のエッジ・デバイスによって、受信側モジュールへ、1つまたは複数の最終実行結果を送信することと、
前記コーディネータ・デバイスによって、前記クラスタ内のその他のエッジ・デバイスのステータス情報を取得することと、
前記コーディネータ・デバイスによって、前記受信側モジュールへ、前記ステータス情報を送信することと、
を含む、請求項17に記載のコンピュータ・プログラム製品。 - 前記クラスタ内の前記1つまたは複数の開始エッジ・デバイスへ、前記メタデータ情報を有する前記タスク・フローを実行するための前記要求を送信することは、
前記送信側モジュールによって、前記クラスタ内の前記1つまたは複数の開始エッジ・デバイスへ、前記要求のヘッダ内の前記メタデータ情報を有する前記タスク・フローを実行するための前記要求を送信することと、
を含む、請求項18に記載のコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/078,617 | 2020-10-23 | ||
US17/078,617 US11645111B2 (en) | 2020-10-23 | 2020-10-23 | Managing task flow in edge computing environment |
PCT/CN2021/115508 WO2022083293A1 (en) | 2020-10-23 | 2021-08-31 | Managing task flow in edge computing environment |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023545985A true JP2023545985A (ja) | 2023-11-01 |
Family
ID=81258360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023520456A Pending JP2023545985A (ja) | 2020-10-23 | 2021-08-31 | エッジ・コンピューティング環境におけるタスク・フローの管理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11645111B2 (ja) |
JP (1) | JP2023545985A (ja) |
CN (1) | CN116325705A (ja) |
DE (1) | DE112021004577T5 (ja) |
GB (1) | GB2615683A (ja) |
WO (1) | WO2022083293A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11645109B2 (en) * | 2020-10-25 | 2023-05-09 | International Business Machines Corporation | Managing failures in edge computing environments |
US11762743B2 (en) * | 2021-06-28 | 2023-09-19 | International Business Machines Corporation | Transferring task data between edge devices in edge computing |
CN115883268B (zh) * | 2022-11-21 | 2024-07-23 | 中国联合网络通信集团有限公司 | 工业生产算力网络服务计费方法、平台、设备及介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7810099B2 (en) * | 2004-06-17 | 2010-10-05 | International Business Machines Corporation | Optimizing workflow execution against a heterogeneous grid computing topology |
US8645454B2 (en) | 2010-12-28 | 2014-02-04 | Canon Kabushiki Kaisha | Task allocation multiple nodes in a distributed computing system |
JP6664961B2 (ja) | 2012-10-19 | 2020-03-13 | ビーエーエスエフ コーポレーション | 高温scr触媒としての8員環小孔分子ふるい |
WO2014207759A2 (en) * | 2013-06-20 | 2014-12-31 | Tata Consultancy Services Limited | System and method for distributed computation using heterogeneous computing nodes |
IN2013MU02180A (ja) * | 2013-06-27 | 2015-06-12 | Tata Consultancy Services Ltd | |
US9485197B2 (en) | 2014-01-15 | 2016-11-01 | Cisco Technology, Inc. | Task scheduling using virtual clusters |
US9826011B2 (en) * | 2014-07-31 | 2017-11-21 | Istreamplanet Co. | Method and system for coordinating stream processing at a video streaming platform |
JP6531473B2 (ja) * | 2015-04-02 | 2019-06-19 | 富士通株式会社 | 管理支援プログラム、管理支援装置、及び管理支援方法 |
US9848041B2 (en) | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
US9866637B2 (en) | 2016-01-11 | 2018-01-09 | Equinix, Inc. | Distributed edge processing of internet of things device data in co-location facilities |
CN110557419A (zh) | 2018-06-01 | 2019-12-10 | 杭州海康威视数字技术股份有限公司 | 一种任务处理方法、装置及云计算系统 |
US20200272899A1 (en) | 2019-02-22 | 2020-08-27 | Ubotica Technologies Limited | Systems and Methods for Deploying and Updating Neural Networks at the Edge of a Network |
CN109918205B (zh) | 2019-03-25 | 2023-11-17 | 深圳市网心科技有限公司 | 一种边缘设备调度方法、系统、装置及计算机存储介质 |
US11436051B2 (en) | 2019-04-30 | 2022-09-06 | Intel Corporation | Technologies for providing attestation of function as a service flavors |
US11146455B2 (en) * | 2019-12-20 | 2021-10-12 | Intel Corporation | End-to-end quality of service in edge computing environments |
-
2020
- 2020-10-23 US US17/078,617 patent/US11645111B2/en active Active
-
2021
- 2021-08-31 DE DE112021004577.6T patent/DE112021004577T5/de active Pending
- 2021-08-31 GB GB2306579.0A patent/GB2615683A/en active Pending
- 2021-08-31 JP JP2023520456A patent/JP2023545985A/ja active Pending
- 2021-08-31 CN CN202180067889.3A patent/CN116325705A/zh active Pending
- 2021-08-31 WO PCT/CN2021/115508 patent/WO2022083293A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
GB2615683A (en) | 2023-08-16 |
US20220129306A1 (en) | 2022-04-28 |
US11645111B2 (en) | 2023-05-09 |
GB202306579D0 (en) | 2023-06-21 |
WO2022083293A1 (en) | 2022-04-28 |
DE112021004577T5 (de) | 2023-08-17 |
CN116325705A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10972532B2 (en) | Dynamic shared server resource allocation | |
US11645582B2 (en) | Parameter sharing in federated learning | |
JP2023545985A (ja) | エッジ・コンピューティング環境におけるタスク・フローの管理 | |
US11582285B2 (en) | Asynchronous workflow and task api for cloud based processing | |
US12074918B2 (en) | Network-based Media Processing (NBMP) workflow management through 5G Framework for Live Uplink Streaming (FLUS) control | |
US11005951B2 (en) | Gateway device allowing multiple infrastructural services to access multiple IoT devices | |
US20200412837A1 (en) | Efficient and extensive function groups with multi-instance function support for cloud based processing | |
US20230164210A1 (en) | Asynchronous workflow and task api for cloud based processing | |
US10025640B2 (en) | Balancing work of tasks at a sending node of a transaction server | |
US20200153749A1 (en) | Biased selection of dedicated physical connections to provider network | |
US11082520B2 (en) | Process broker for executing web services in a system of engagement and system of record environments | |
US11765236B2 (en) | Efficient and extensive function groups with multi-instance function support for cloud based processing | |
WO2022148376A1 (en) | Edge time sharing across clusters via dynamic task migration | |
CN114731288B (zh) | 在集成系统中与应用流的通信 | |
EP4000239B1 (en) | 3rd generation partnership project (3gpp) framework for live uplink streaming (flus) sink capabilities determination | |
JP2023551157A (ja) | モバイルkube-edge自動構成 | |
US10158544B2 (en) | Selecting communication channels based on categorizations and measurements | |
WO2024032653A1 (en) | Reducing network overhead | |
US20230063113A1 (en) | Auto discovery protocol and virtual grouping of machine learning models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD16 | Notification of change of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7436 Effective date: 20230517 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240123 |