JP2022069420A - コンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム製品(エッジコンピューティング環境における障害管理) - Google Patents
コンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム製品(エッジコンピューティング環境における障害管理) Download PDFInfo
- Publication number
- JP2022069420A JP2022069420A JP2021172268A JP2021172268A JP2022069420A JP 2022069420 A JP2022069420 A JP 2022069420A JP 2021172268 A JP2021172268 A JP 2021172268A JP 2021172268 A JP2021172268 A JP 2021172268A JP 2022069420 A JP2022069420 A JP 2022069420A
- Authority
- JP
- Japan
- Prior art keywords
- task
- edge device
- result
- received
- 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 title claims abstract description 120
- 238000004590 computer program Methods 0.000 title claims abstract description 17
- 230000008569 process Effects 0.000 claims abstract description 79
- 230000006870 function Effects 0.000 claims description 34
- 238000003860 storage Methods 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 16
- 239000003795 chemical substances by application Substances 0.000 description 34
- 238000007726 management method Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 238000002360 preparation method Methods 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
- 238000003491 array Methods 0.000 description 1
- 230000009172 bursting Effects 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
- 238000013480 data collection Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 238000005303 weighing 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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2048—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
【課題】エッジコンピューティング環境における障害を動的に管理する。【解決手段】エッジコンピューティング環境における障害を動的に管理するためのコンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム製品が提供される。方法によれば、エッジ装置上で実行されるタスクをスケジュールするのに用いられる定義されたプロセスに従って、タスクの実行要求を第1のエッジ装置に送信することができる。第1のエッジ装置がタスクの実行に失敗した場合に、定義されたプロセスを一時中断することができる。そして、タスクの実行要求を第2のエッジ装置に送信することができる。第1のエッジ装置または第2のエッジ装置のいずれかからのタスク結果であって最初に受信したタスク結果を、タスクのタスク結果とすることができる。そして、定義されたプロセスの残りの部分を続行することができる。【選択図】図9
Description
本開示は、コンピュータ技術全般に関し、より具体的には、エッジコンピューティング環境における障害(failure)を動的に管理するための方法、システムおよびコンピュータプログラム製品に関する。
クラウドコンピューティングやインターネットオブシングス(IoT:Internet of Things)技術の発展に伴い、より強力な計算能力を実現するための新たな方向性として、エッジコンピューティングが注目されつつある。IoTの分野において「エッジ(edge)」とは、例えば、産業機械、産業用コントローラ、産業用センサ、モバイル装置などのデータの発生源(sources of data)に近いところに存在するコンピューティングインフラストラクチャを指す。データの発生源である機械/装置を、エッジ装置と呼ぶ場合がある。エッジ装置は通常、クラウドで利用可能な集中型のコンピューティングリソースから離れた場所に存在する。エッジコンピューティングにおいて、情報技術(IT)管理者は、一部のアプリケーション、データ処理、およびモデルを中央のクラウドデータセンタからエッジ装置に近いエッジ側に移動させることで、クラウドデータセンタへのデータトラフィック量を削減することができる。
本開示は、エッジコンピューティング環境においてエッジ装置に発生する障害を動的に管理するための方法、システムおよびコンピュータプログラム製品を提供することを目的とする。
本開示の一の実施形態によれば、エッジコンピューティング環境における障害を動的に管理するためのコンピュータ実装方法が提供される。このコンピュータ実装方法によれば、エッジ装置上で実行されるタスクをスケジュールするのに用いられる定義されたプロセスに従って、タスクの実行要求を第1のエッジ装置に送信することができる。第1のエッジ装置がタスクの実行に失敗した場合に、定義されたプロセスは一時中断される。そして、タスクの実行要求が第2のエッジ装置に送信される。第1のエッジ装置または第2のエッジ装置のいずれかからのタスク結果であって最初に受信したタスク結果を、タスクのタスク結果とすることができる。方法はさらに、定義されたプロセスの残りの部分を続行することを含む。
本開示の他の実施形態によれば、エッジコンピューティング環境における障害を動的に管理するためのコンピュータシステムが提供される。このコンピュータシステムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに接続されたコンピュータ可読メモリとを含む。コンピュータ可読メモリは、1つまたは複数のプロセッサによって実行されることで上記の方法における動作を実行する命令を含む。
本開示のさらに他の実施形態によれば、エッジコンピューティング環境における障害を動的に管理するためのコンピュータプログラム製品が提供される。このコンピュータプログラム製品は、プログラム命令が実装されたコンピュータ可読記憶媒体を含む。プログラム命令はプロセッサによって実行可能であり、プロセッサに上記の方法における動作を実行させる。
以下、本開示の上記および他の目的、特徴ならびに効果をより明らかにするため、添付図面を参照して、本開示のいくつかの実施形態についてより詳細に説明する。本開示の実施形態における類似の要素については、基本的に同一の符号を用いることとする。
以下、添付図面を参照して、本開示のいくつかの実施形態についてより詳細に説明する。添付図面は、本開示のいくつかの実施形態を図示したものである。ただし、本開示は種々の態様で実施することができるため、ここに開示する実施形態に限定されるものと解釈すべきではない。
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装形態はクラウドコンピューティング環境に限定されない。むしろ、本発明の実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
特性は以下の通りである。
・オンデマンド・セルフサービス:クラウドのコンシューマは、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
・ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
・リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数のコンシューマに提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般にコンシューマは、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただしコンシューマは、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
・迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。コンシューマにとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
・測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
・オンデマンド・セルフサービス:クラウドのコンシューマは、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
・ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
・リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数のコンシューマに提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般にコンシューマは、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただしコンシューマは、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
・迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。コンシューマにとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
・測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
サービスモデルは以下の通りである。
・サービスとしてのソフトウェア(SaaS):コンシューマに提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
・サービスとしてのプラットフォーム(PaaS):コンシューマに提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、コンシューマが作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
・サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアをコンシューマが展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。コンシューマは、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
・サービスとしてのソフトウェア(SaaS):コンシューマに提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
・サービスとしてのプラットフォーム(PaaS):コンシューマに提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、コンシューマが作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
・サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアをコンシューマが展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。コンシューマは、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
展開モデルは以下の通りである。
・プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織またはサードパーティーによって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
・コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
・パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
・ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
・プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織またはサードパーティーによって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
・コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
・パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
・ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
図1は、コンピュータシステム/サーバの例を示す概略図である。いくつかの実施形態において、コンピュータシステム/サーバは、他の数多くの汎用または専用のコンピューティングシステム環境または構成と共に動作可能な、通信装置などの携帯型電子装置としてもよい。コンピュータシステム/サーバ12と共に使用するのに適した周知のコンピューティングシステム、環境もしくは構成またはその組み合わせの一例としては、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電製品、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、上記のシステムまたはデバイスのいずれかを含む分散型クラウドコンピューティング環境などが挙げられる。
コンピュータシステム/サーバ12のいくつかの実施形態について、コンピュータシステムによって実行されるプログラムモジュールなどの、コンピュータシステム実行可能命令との一般的な関連において説明する。一般に、プログラムモジュールは、特定のタスクを実行するかまたは特定のデータ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含むことができる。コンピュータシステム/サーバ12は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散型クラウドコンピューティング環境で実施することができる。分散型クラウドコンピューティング環境において、プログラムモジュールは、メモリ記憶装置を含む、ローカルおよびリモート両方のコンピュータシステム記憶媒体に記憶することができる。
図1では、コンピュータシステム/サーバ12を汎用コンピュータ装置として示している。コンピュータシステム/サーバ12のコンポーネントの一例としては、1つ以上のプロセッサまたは処理ユニット16、システムメモリ28、およびシステムメモリ28を含む種々のシステムコンポーネントをプロセッサ16に接続するバス18が挙げられる。
バス18は、種々のバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート(AGP)、およびプロセッサまたはローカルバスを含む複数種類のバス構造のうち1つ以上の任意のものを表すことができる。一例として、かかるアーキテクチャは、インダストリスタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、およびペリフェラルコンポーネントインターコネクト(PCI)バスを含む。
コンピュータシステム/サーバ12は、種々のコンピュータシステム可読媒体を含むことができる。かかる媒体は、コンピュータシステム/サーバ12によってアクセス可能な任意の利用可能な媒体でよく、揮発性媒体および不揮発性媒体の両方と、取り外し可能媒体および取り外し不能媒体の両方とを含むことができる。
システムメモリ28は、RAM30もしくはキャッシュメモリ32またはその両方など、揮発性メモリとしてのコンピュータシステム可読媒体を含むことができる。コンピュータシステム/サーバ12はさらに、他の取り外し可能/取り外し不能コンピュータシステム可読媒体および揮発性/不揮発性コンピュータシステム可読媒体を含んでもよい。一例として、ストレージシステム34は、取り外し不能な不揮発性磁気媒体(不図示。一般に「ハードドライブ」と呼ばれる)への読み書きのために設けることができる。また、図示は省略するが、取り外し可能な不揮発性磁気ディスク(例えば、フロッピーディスク)への読み書きのための磁気ディスクドライブ、および取り外し可能な不揮発性光学ディスク(CD-ROM、DVD-ROMや他の光学媒体など)への読み書きのための光学ディスクドライブを設けることができる。これらの例において、それぞれを、1つ以上のデータ媒体インタフェースによってバス18に接続することができる。以下でさらに図示および説明するように、メモリ28は、本開示の実施形態の機能を実行するように構成可能なプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
一例として、プログラムモジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40は、オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータと同様に、メモリ28に記憶することができる。オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータ、またはそれらのいくつかの組み合わせの各々は、ネットワーク環境またはそのコンポーネントの実装形態を含むことができる。プログラムモジュール42は一般に、本開示の実施形態の機能もしくは方法またはその両方を実行する。
また、コンピュータシステム/サーバ12は、キーボードやポインティングデバイスなどの1つ以上の外部装置14、ディスプレイ24、ユーザとコンピュータシステム/サーバ12との対話を可能にする1つ以上の装置、もしくはコンピュータシステム/サーバ12と1つ以上の他のコンピュータ装置との通信を可能にする1つ以上の装置(例えば、ネットワークカードやモデムなど)またはこれらの組み合わせと通信することができる。かかる通信は、入力/出力(I/O)インタフェース22を介して行うことができる。さらに、コンピュータシステム/サーバ12は、ネットワークアダプタ20を介して1つ以上のネットワーク(ローカルエリアネットワーク(LAN)、汎用広域ネットワーク(WAN)、もしくはパブリックネットワーク(例えばインターネット)またはこれらの組み合わせなど)と通信することができる。図示するように、ネットワークアダプタ20は、バス18を介してコンピュータシステム/サーバ12の他のコンポーネントと通信することができる。なお、図示は省略するが、他のハードウェアコンポーネントもしくはソフトウェアコンポーネントまたはその両方を、コンピュータシステム/サーバ12と併用することができる。それらの一例としては、マイクロコード、デバイスドライバ、冗長化処理ユニット、外付けディスクドライブアレイ、RAIDシステム、テープドライブ、データアーカイブストレージシステムなどがある。
図1に示すコンピュータシステム/サーバは、図2に示すクラウドコンピューティングノード10などのクラウドコンピューティングノードであってもよい。また、図1に示すコンピュータシステム/サーバは、本開示のいくつかの実施形態例に従って、図4および図5に示すエッジコンピューティング環境例におけるハードウェアコンポーネントであってもよい。
図2に、本開示のいくつかの実施形態に係る例示的なクラウドコンピューティング環境50を示す。図示するように、クラウドコンピューティング環境50は1つ以上のクラウドコンピューティングノード10を含む。これらに対して、クラウドコンシューマが使用するローカルコンピュータ装置(例えば、PDAもしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つ以上のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウドコンシューマはこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、図2に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
次に、本開示のいくつかの実施形態に係る、クラウドコンピューティング環境50(図2)によって提供される機能的抽象化レイヤのセットを図3に示す。なお、図3に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含むことができる。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含むことができる。
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75などの仮想エンティティを提供することができる。
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含むことができる。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
ワークロードレイヤ90は、クラウドコンピューティング環境の利用が可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、ならびに、エッジコントローラ96が含まれる。
なお、図3に示す機能的抽象化レイヤは例示に過ぎない。必要に応じて、1つ以上のレイヤを追加してもよいし、図3に示す1つ以上のレイヤを統合したり削除したりしてもよい。さらに、図3の各レイヤにおいて、一部のコンポーネントを統合したり削除したりしてもよいし、1つ以上のコンポーネントを追加してもよい。
(コンピューティング環境の例)
上述したように、クラウドコンピューティングやIoT技術の発展に伴い、より強力な計算能力を実現するための新たな方向性として、エッジコンピューティングが注目されつつある。エッジコンピューティングは、インダストリアルIoT(IIOT:Industrial Internet of Things)における重要性を急速に高めており、デジタルトランスフォーメーション(digital transformation)の加速に貢献している。このトレンドの代表例として、インテリジェントマニュファクチャリング(intelligent manufacture)が挙げられる。一般的にエッジコンピューティングは、データの発生源として機能する産業機械などの「物」に実際に取り付け可能な装置や技術に着目することができる。エッジコンピューティングにより、データの発生源においてデータ分析や収集を行うことが可能になる。
上述したように、クラウドコンピューティングやIoT技術の発展に伴い、より強力な計算能力を実現するための新たな方向性として、エッジコンピューティングが注目されつつある。エッジコンピューティングは、インダストリアルIoT(IIOT:Industrial Internet of Things)における重要性を急速に高めており、デジタルトランスフォーメーション(digital transformation)の加速に貢献している。このトレンドの代表例として、インテリジェントマニュファクチャリング(intelligent manufacture)が挙げられる。一般的にエッジコンピューティングは、データの発生源として機能する産業機械などの「物」に実際に取り付け可能な装置や技術に着目することができる。エッジコンピューティングにより、データの発生源においてデータ分析や収集を行うことが可能になる。
いくつかの用途および実施形態において、エッジコンピューティングは、クラウドコンピューティングシステムに対する最適化技術として機能することができ、クラウドコンピューティングと協働することができる。エッジコンピューティングがメリットをもたらすシナリオとして、低レイテンシ(latency)を必要とする状況や、帯域幅に制約がある状況が挙げられる。また、インターネット接続やセルラー接続が不安定(spotty)な場合にも、エッジコンピューティングが重要となり得る。一方、クラウドコンピューティングは、機械から送られる膨大なデータ量を効率的に管理するために大きな計算能力(computing power)が必要な場合に、より優位となることが多い。しかし、多くの産業活動にとって、今日の高度かつ多岐にわたる大量のデータを最大限活用するためには、クラウドコンピューティングとエッジコンピューティングの両方が望ましいと言える。産業界やサーバプロバイダはこの両者を組み合わせることにより、エッジ装置からのデータをエッジにおいて、クラウドにおいて、またはこの2つの組み合わせにおいて柔軟に管理および処理し、最適な運用を実現することができる。
図4は、いくつかの実施形態に係るエッジコンピューティング環境の一例を示す図である。この例のエッジコンピューティング環境は、クラウドレイヤとエッジシステムレイヤの両方で動作するコンポーネントもしくはモジュールまたはその両方を含むことができる。この例のエッジコンピューティング環境では、データセンタまたはクラウドは、一般的なクラウドコンピューティング環境のようにコンピューティングノード/サーバと接続されているのではなく、エッジシステムおよびエッジ装置と接続することができる。
図4に示すように、この例のエッジコンピューティング環境は、クラウドレイヤ410のデータセンタ、エッジシステムレイヤ420、およびエッジ装置レイヤ430を含むことができる。この例のエッジコンピューティング環境における各レイヤのハードウェアコンポーネントは、図1に示すコンピュータシステム/サーバ12であってもよい。図1に示すコンピュータシステム/サーバ12は、この例のエッジコンピューティング環境におけるいずれかの機能として実装される、もしくはいずれかの機能を実行する、またはその両方とすることができる。この例のエッジコンピューティング環境におけるすべてのコンポーネントもしくはモジュールまたはその両方は、通信ネットワークを介して直接的または間接的に接続することができる。図4のネットワークは、WAN、LAN、電気通信ネットワーク、無線ネットワーク、公衆交換ネットワークもしくは衛星ネットワークまたはこれらの組み合わせなど、種々のタイプの通信ネットワークを含むことができる。また、通信ネットワークは、有線、無線通信リンク、または光ファイバケーブルなどの接続部(connections)を含むことができる。
図示のエッジコンピューティング環境全体のレイヤとモジュール、およびエッジ装置の数は、あくまでも例示である。いくつかのエッジコンピューティング環境の実施形態において、1つ以上の他のレイヤおよびモジュールが存在してもよく、またエッジ装置の数や配置態様が異なっていてもよい。
クラウドレイヤ410のデータセンタは、図2および図3を参照して上述した既存のクラウドコンピューティング環境50の一部でもよい。実際には、製造またはサービスにおける実際の要件および条件に応じて、クラウドコンピューティングセンタは、所望の計算能力の一部(例えば、モデルおよびアプリケーションの一部)をエッジシステム420に配置してエッジ装置430の管理を実行してもよい。
図4に示すように、クラウドレイヤ410のデータセンタ内のモジュールは例えば、ストアシステム411、APIサーバ412、およびエッジコントローラ96を含むことができる。ストアシステム411は、APIサーバ412が必要とするメタデータを格納することができる。例えば、ストアシステム411は、一貫性のある(consistent)分散キーバリューストア(distributed key-value store)とすることができる。ストアシステム411に格納されたデータは、分散システムまたは機械によってアクセスすることができる。APIサーバ412は、API操作の処理に用いてもよく、ユーザによって呼び出されてもよい。クラウドレイヤ410のコンポーネントは、メッセージ配信(message delivery)をAPIサーバ412に依存してもよい。エッジコントローラ96は、中央管理(central management)を実行するために、クラウドレイヤ410のデータセンタとエッジシステムレイヤ420との間の通信に用いることができる。
図4の実施形態において、エッジシステムレイヤ420のモジュールは例えば、ストアモジュール421、同期サービスモジュール422、エッジエージェントモジュール423、およびイベントモジュール424を含むことができる。ストアモジュール421は、エッジシステム420およびエッジ装置430のためのメタデータを格納することができる。同期サービスモジュール422は、エッジシステム420の中央データ処理モジュールとすることができ、クラウド410とエッジシステム420間でのモデルおよびデータの同期に用いることができる。エッジエージェントモジュール423およびイベントモジュール424は、エッジ装置430上で実行されるタスクの管理モジュールとすることができる。エッジエージェント423は、タスクの実行要求のためのプロセスを定義することができる。定義されたプロセスは、タスクと、当該タスクを実行するように適合(adapted)された各エッジ装置との間のマッピング関係(mapping relationship)を示すことができる。また、定義されたプロセスは、対応するエッジ装置上で実行されるタスクをスケジュールするのに用いることができる。実行されるタスクは、製造ミッションを達成することであってもよいし、サービス機能を実行することであってもよい。イベントモジュール424は、レシーバモジュール4241およびディスパッチャ(dispatcher)モジュール4242をさらに含むことができる。レシーバモジュール4241は、エッジ装置からのタスクの実行結果(running result)の受信に用いることができる。ディスパッチャモジュール4242は、定義されたプロセスに従って、次のタスクを対応するエッジ装置に割り当てるために、エッジエージェント423を呼び出すことができる。なお、図4に示すエッジシステム420の実施形態は実装環境の例示に過ぎず、これとは異なる実施形態を実装可能な環境に対していかなる制限を行うものでもよい。図示の環境に対して多くの変更が可能である。
エッジ装置は、企業やサービスプロバイダのコアネットワークへのエントリーポイントとすることができる。エッジシステムは、エッジ装置のデータを処理することができ、処理済みのデータまたは中央処理に適したデータを、ネットワーク上でクラウドのデータセンタに送信することができる。このようにして、未処理のデータをネットワーク上で大量に送信することを回避すると共に、中央処理の時間を節約することができる。図4に示すように、エッジ装置レイヤ430は例えば、デバイスA、B、C、D、およびEなどの複数のエッジ装置を含むことができる。一方、本実施形態のエッジ装置は例えば、コンテナおよびプロキシモジュールを含むことができる。コンテナは、サービスグリッド、またはタスクの要求を実行するモジュールとすることができる。プロキシモジュールは、タスクの管理および制御に用いることができる。
図4に示すこの例のエッジコンピューティング環境は、サーバレスコンピューティング環境(serverless computing environment)またはプラットフォームとすることができ、その一例はサービスとしての機能(FaaS)である。サーバレスコンピューティング環境は、イベントによって発生(trigger)させてもよい。エッジコンピューティング環境において、製造ミッションやサービス機能を実行または実現することができる。製造ミッションを達成するため、またはサービス機能を実行するために、エッジ装置に対して種々のタスクの実行を要求することができる。そして、各エッジ装置は対応するタスクを実行することができる。このように、製造ミッションまたはサービス機能を実現するプロセスは、対応するエッジ装置上で一連のタスクを実行するプロセスとすることができる。
上述したように、エッジエージェントは、タスクを実行するためのプロセスを定義することができる。エッジエージェントは、タスクの実行要求を受信すると、どのエッジ装置が当該タスクの実行に適合するかを動的に決定することができる。例えば、適合するエッジ装置は、各エッジ装置の属性およびタスクの要件に基づいて決定することができる。各タスクは、対応するエッジ装置に割り当てることができる。エッジエージェントは、定義されたプロセスに従って、対応するエッジ装置上で実行されるタスクをスケジュールすることができる。また、適合するエッジデバイスは、履歴データや慣例などに基づいて決定するなど、他の適切な方法で決定してもよい。決定の方法によって本開示の範囲が不当に限定されるものではない。
次に、図4を参照して、例えば4つのタスク(タスク1、タスク2、タスク3、およびタスク4)があり、これらのタスクが、本明細書における定義されたプロセスに従って、それぞれエッジ装置A、B、C、およびD上で順番に実行されるように適合されているとする。なお、これらのタスクは例示に過ぎず、説明と簡略化のために具体例として示すものであり、本開示に対する限定を何ら示唆するものではない。実際の製造やサービスの実施においては、実行されるタスクは膨大かつ複雑な場合がある。本開示の実施形態は、あらゆる種類のタスクに適用することができる。
エッジエージェント423は、上述した例のタスクの実行要求を受信し、プロセスを定義すると、線431で示すように、タスク1の実行要求をエッジ装置Aに送信することができる。そして、エッジ装置Aのコンテナがタスク1を実行し、エッジ装置Aのプロキシが、線432で示すように、タスクの実行結果をレシーバモジュール4241に送信することができる。本明細書において、タスクの実行結果を、当該タスクのタスク結果と呼ぶ場合がある。各タスクは、対応するタスク結果を有することができる。次に、ディスパッチャモジュール4242がエッジエージェント423を呼び出し、線433で示すように、タスク2を実行する次の要求をエッジ装置Bに送信し、定義されたプロセスを続行することができる。エッジ装置Bは、同様にタスク2を実行し、線434で示すように、タスク結果をレシーバモジュール4241に送信することができる。次に、ディスパッチャモジュール4242がエッジエージェント423を呼び出し、線435で示すように、タスク3を実行する別の要求をエッジ装置Cに送信し、定義されたプロセスの実行を続行することができる。エッジ装置Cは、線436で示すように、タスク結果をレシーバモジュール4241に送信することができ、エッジエージェント423は、線437で示すように、タスク4を実行する次の要求をエッジ装置Dに送信することができる。線438で示すように、エッジ装置Dがタスク4のタスク結果をレシーバモジュール4241に送信すると、定義されたプロセスを完了することができる。この例のタスクを実行して製造ミッションを達成またはサービス機能を実行するための定義されたプロセスを、線431~438にて示すことができる。
この例において、エッジ装置A、B、C、Dでのタスクの実行中に、エッジ装置A、B、C、Dのいずれかが対象タスクの実行または完了に失敗した場合、定義されたプロセスの中断(interruption)が発生する可能性がある。実行プロセスを続行するために、エッジエージェント423は、未完了のタスクを別のエッジ装置に再割り当てして、障害が発生している装置を置き換える場合がある。例えば、装置Bが不安定な接続や他の不具合により故障し、エッジエージェント423が、線439で示すように装置Bからステータス情報を取得できなかった場合、エッジエージェント423は、装置Eなど別のエッジ装置を、装置Bの代替として決定することがある。そして、破線433’で示すように、タスク2をエッジ装置Eに再割り当てすることがある。装置Eによるタスク2の実行中に装置Bが復旧し、装置Bが装置Eよりも先にタスク結果を送信したとしても、装置Bのタスク結果はレシーバモジュール4241によって採用されない場合がある。そして、破線434’で示すように、レシーバモジュール4241は装置Eからのタスク2のタスク結果を依然として待っている場合があり、リソースの浪費につながる可能性がある。
この例において、定義されたプロセスに関係する各エッジ装置の可用性(availability)が、全体としての実行効率にとって重要である。すなわち、いずれか1つの装置の障害または不具合が、プロセス全体の実行に影響を及ぼす可能性がある。この既存のエッジコンピューティング環境の実施形態では、エッジ装置は、分散型または点在型(spotted)の装置の場合もあるし、工業団地内の機械やモバイル装置のように移動している状態の場合もある。さらに、エッジ装置のインターネット接続やセルラー接続は、不安定であったり途切れたりする場合がある。このような状況は、エッジ装置の障害発生につながりやすく、それにより、タスクの実行が失敗する可能性がある。これらの障害は、長時間続く場合もあれば、短時間しか続かず、すぐに復旧して前回の実行を続行できる場合もある。さらに、割り当てられたタスクを完了する前に、代替のエッジ装置も障害を起こす可能性がある。したがって、エッジ環境におけるエッジ装置の障害は、頻繁に発生しかつ複雑である可能性があり、エッジ装置の高可用性および高耐故障性(fault tolerance)を確保するために、エッジ環境において実行に失敗したタスクを管理することが望ましい。また、既存のエッジコンピューティング環境において、リソースを節約し、エッジサービスの高可用性を確保するために、実行に失敗したタスクを自動的に管理することが望ましい。
したがって、本開示の特徴および効果の1つは、いくつかの実施形態によって、エッジコンピューティング環境において失敗したタスクを自動的に管理する手法の一部として、上述した問題を解決できることである。
以下、図5~図8を参照して、本開示の実施形態を詳細に説明する。
図5は、本開示の実施形態による、エッジコンピューティング環境の一例を示す図である。図4のモジュールや要素に類似する、もしくは対応する、またはその両方に該当するモジュールや要素は、図5において同様の符号で示し、その説明は省略する。なお、図5は、実装環境の例示に過ぎず、これとは異なる実施形態を実装可能な環境に対していかなる限定を行うものでもよい。図示の環境に対して多くの変更が可能である。
図5に示すように、エッジエージェント423内にタスクラッパ(task wrapper)モジュール5231を構成することができる。また、レシーバモジュール4241内に、タスクチェッカ(task checker)モジュール5243およびタスクキャンセラ(task canceler)モジュール5244を構成することができる。図4に示す既存のコンピューティング環境と比較して、これら3つのモジュールは、実行に失敗したタスクを管理するように構成することができ、ソフトウェア、ハードウェア、ファームウェアもしくはこれらのいずれかの組み合わせまたはその両方で実装することができる。実行に失敗したタスクを管理するプロセスを、本明細書では障害管理プロセス(failure management process)と呼ぶ。なお、これらのモジュールは例示に過ぎない。本開示のいくつかの実施形態に係るエッジコンピューティング環境において、同様の機能または意図を達成するために、これより多い数のモジュールやこれより少ない数のモジュールが構成されていてもよい。また、モジュールは、その数だけでなく、異なる種類でもよく、他の態様で配置されていてもよい。
本開示の実施形態によれば、タスクラッパモジュール5231、タスクチェッカモジュール5243、およびタスクキャンセラモジュール5244は、障害の発生時にタスク実行プロセスを管理するように構成することができる。エッジエージェント423は、定義されたプロセス中にいずれかの装置からステータス情報を取得できなかった場合、定義されたプロセスを一時中断(suspend)し、タスクラッパモジュール5231を呼び出して、障害管理プロセスを開始することができる。同時に、障害に関係するメタデータ情報を取得し、ストアモジュール421に格納することができる。タスクラッパモジュール5231は、障害が発生した装置の代替となるエッジ装置を決定し、実行に失敗したタスクを当該代替装置に再割り当てすることができる。タスクチェッカモジュール5243は、受信したタスク結果を、当該タスクのタスク結果としてよいか否かを確認するように構成することができる。タスクキャンセラモジュール5244は、タスクが完了した場合、代替装置による実行をキャンセルするように構成することができる。タスクが完了すると、障害管理プロセスは終了し、ディスパッチャモジュール4242がエッジエージェントを呼び出し、定義されたプロセスに従って残りのタスクの実行を続行させることができる。
いくつかの実施形態および用途において、タスクの実行中に代替装置にも障害が発生した場合、タスクラッパモジュール5231は、実行に失敗したタスクをさらに別の装置に送信するなどしてもよい。タスクラッパモジュール5231は、タスクを実行するのにどの装置が適切であるかを決定することができるが、これについては本明細書では詳細な説明を省略する。実際の製造やサービスの実施は複雑な場合があり、代替装置にも障害が発生することがあり得るため、エッジコンピューティング環境においては、障害が発生した装置の頻繁な置き換えが必要な場合がある。説明を簡略化するために、本開示では代替装置にはそれ以上障害が発生しない状況のみを説明がするが、それによって本開示の範囲が不当に限定されるものではない。
(定義されたプロセスおよび障害管理プロセス)
本開示の実施形態によれば、タスクを実行するための定義されたプロセスとは、障害の発生を考慮することなく、エッジエージェントが決定した適合エッジ装置によってタスクを実行するプロセスを意味することができる。タスクを実行するための定義されたプロセスは、タスクの実行要求が受信されると、エッジエージェント423によって作成することができる。図示の例のタスクの場合、定義されたプロセスは順にタスク1、タスク2、タスク3、タスク4であり、図4の線431~438で示すように、それぞれエッジ装置A、B、C、Dによって実行される。障害管理プロセスとは、タスクを実行するためのプロセス全体の中で、実行に失敗したタスクの管理に特化したサブプロセスを意味することができる。障害が発生しない場合には、定義されたプロセスに従ってタスクを実行することができる。しかし、障害発生時には、エッジエージェントは障害管理プロセスを呼び出して、対応する定義されたプロセスを置き換えることができる。障害管理プロセスは、図5に示すタスクラッパモジュール5231、タスクチェッカモジュール5243、およびタスクキャンセラモジュール5244によって実行することができ、これらを総称して「障害管理システム(failure management system)」と呼ぶ場合がある。
本開示の実施形態によれば、タスクを実行するための定義されたプロセスとは、障害の発生を考慮することなく、エッジエージェントが決定した適合エッジ装置によってタスクを実行するプロセスを意味することができる。タスクを実行するための定義されたプロセスは、タスクの実行要求が受信されると、エッジエージェント423によって作成することができる。図示の例のタスクの場合、定義されたプロセスは順にタスク1、タスク2、タスク3、タスク4であり、図4の線431~438で示すように、それぞれエッジ装置A、B、C、Dによって実行される。障害管理プロセスとは、タスクを実行するためのプロセス全体の中で、実行に失敗したタスクの管理に特化したサブプロセスを意味することができる。障害が発生しない場合には、定義されたプロセスに従ってタスクを実行することができる。しかし、障害発生時には、エッジエージェントは障害管理プロセスを呼び出して、対応する定義されたプロセスを置き換えることができる。障害管理プロセスは、図5に示すタスクラッパモジュール5231、タスクチェッカモジュール5243、およびタスクキャンセラモジュール5244によって実行することができ、これらを総称して「障害管理システム(failure management system)」と呼ぶ場合がある。
例示したタスクを実行するのに適した障害管理システムの実施形態例を、図6に示す。障害管理プロセスのいくつかの実施形態によれば、タスクチェッカモジュール5243は、装置Bの実行結果を考慮せずに単に装置Bを装置Eに置き換えるのではなく、装置Bおよび装置Eの両方からのタスク結果を確認することができる。本開示の実施形態によれば、最初に受信したタスク結果を、そのタスクのタスク結果とすることができる。以下、障害管理プロセスの具体的な実施方法について詳細に説明する。
例示したタスクについて、各タスクの実行中に、装置Bによって実行されるタスクが完了していないのに装置Bが利用できない(not available)ことをエッジエージェント423が発見した場合、エッジエージェント423は、定義されたプロセスを一時中断し、タスクラッパモジュール5231を呼び出して障害管理プロセスを開始することができる。タスクラッパモジュール5231は、直前の装置(すなわち装置B)の代替として別の装置(例えば、装置E)を決定し、図5の線533’で示すように、タスク2の実行要求を当該別の装置(例えば、装置E)に再割り当てすることができる。エッジエージェントは、タスクの実行要求を送信した後に、有効期間(TTL:time to live)を設定してもよい。エッジ装置のプロキシは、TTLの間にエッジエージェントに応答し、「実行中」や「完了」などの自身のステータスを送信することが求められる。例えば、TTLの間に装置Bからステータス報告を受信できなかった場合、エッジエージェント423は、デバイスBに障害が発生しているか、または利用できないと判定し、故障管理プロセスを開始してよい。なお、ステータス情報の取得は、任意の適切な方法で行うことができる。
エッジ装置Eはタスク2を実行し、線534’で示すように、タスク結果をレシーバモジュール4241に送信することができる。いくつかのエッジコンピューティング環境においては、装置の多くの障害が、接続が不安定であったり途切れたりすることが原因で発生する可能性がある。このような環境においては、装置Bが短時間で動作を再開し、線534で示すように、タスク結果をレシーバモジュール4241に送信する可能性がある。例示したタスクについては、次の3つのシナリオが考えられる。
1つ目の可能なシナリオを図7Aに示す。このシナリオでは、装置Bは常に障害発生状態にあり、装置Eはタスク結果をレシーバモジュール4241に送信することができ、エッジシステムは、装置Eからのタスク結果をタスク2のタスク結果として用いることができる。
2つ目の可能なシナリオを図7Bに示す。このシナリオでは、装置Bが短時間で動作を再開し、タスク結果をレシーバモジュール4241に送信する。装置Eはまだタスク2を実行中であり、装置Bの方が先にタスク2のタスク結果をレシーバモジュール4241に送信することができる。そして、エッジシステムは、装置Bのタスク結果をタスク2のタスク結果として用いることができる。タスク2を実行中の装置Eは、キャンセルすることができる。このシナリオでは、リソースを節約することができる。
3つ目の可能なシナリオを図7Cに示す。このシナリオでは、装置Bが動作を再開し、タスク結果をレシーバモジュール4241に送信する。しかし、タスク2は完了済み、すなわち、装置Eが装置Bよりも先にタスク結果をレシーバモジュール4241に既に送信している。このシナリオの場合、エッジシステムは装置Bからのタスク結果を無視することができる。
(方法例)
図8は、本開示のいくつかの実施形態による、エッジコンピューティング環境においてタスクを動的に管理するための一例としての方法800を示すフローチャートである。方法800は、図5に示す環境において実施することができる。また、方法800は、工程802~818を含むことができる。このうち、工程802および818は、定義されたプロセスに従った工程とすることができ、工程804~816は、図7A~7Cに示した3つのシナリオに対応する障害管理プロセスの工程とすることができる。工程804~816は、図6に示す障害管理システムによって実行することができる。
図8は、本開示のいくつかの実施形態による、エッジコンピューティング環境においてタスクを動的に管理するための一例としての方法800を示すフローチャートである。方法800は、図5に示す環境において実施することができる。また、方法800は、工程802~818を含むことができる。このうち、工程802および818は、定義されたプロセスに従った工程とすることができ、工程804~816は、図7A~7Cに示した3つのシナリオに対応する障害管理プロセスの工程とすることができる。工程804~816は、図6に示す障害管理システムによって実行することができる。
図4および図5を参照して上述したように、工程802にて、エッジエージェント423はタスクの実行要求を受信すると、対応するエッジ装置上でタスクを実行するために、上述の定義されたプロセスを定義することができる。そして、エッジエージェント423は、定義されたプロセスに従って、対応する装置上で実行される各タスクをスケジュールすることができる。
工程804にて、装置Bによって実行されるタスク2が完了していないのに装置Bが利用できないことをエッジエージェント423が発見した場合、エッジエージェント423は、定義されたプロセスを一時中断し、タスクラッパモジュール5231を呼び出して障害管理プロセスを開始することができる。そして、タスクラッパモジュール5231は、装置Bの代替として、装置Eなどの別のエッジ装置にタスク2を送信することができる。
工程806にて、レシーバモジュール4241は、タスク結果を受信することができる。当該タスク結果は、装置Eからのタスク2のタスク結果の場合もあるし、装置Bが障害から復旧してタスク2の実行を続行している可能性があるため、装置Bからのタスク2のタスク結果の場合もある。
工程808にて、タスクチェッカモジュール5243は、タスク2が完了済みとしてマーク(mark)されているか否かを確認することができる。
タスク2が完了済みとしてマークされていない場合、工程810にて、タスクチェッカモジュール5243は、受信したタスク結果が、最初に受信したタスク結果であると判定することができる。そして、タスクチェッカモジュール5243は、受信したタスク結果をタスク2のタスク結果とし、タスク2を完了済みとしてマークすることができる。
工程812にて、タスクチェッカモジュール5243はさらに、ストアモジュール421内のメタデータ情報を用いて、受信したタスク結果が装置Bからのものであるか否かを確認することができる。メタデータ情報は、表1に示すようなものとすることができる。なお、表1に示すデータ構造はあくまでも例示であり、何らの限定も意図していない。XMLファイルやテキスト(.txt)ファイルなど、他のデータ構造も適用可能である。
タスク結果が装置Bからのものでない場合、方法800は、工程818に直接進むことができる。この分岐は、図7Aに示すシナリオに対応することができる。受信したタスク結果が装置Bからのものである場合、タスクチェッカモジュール5243は、変数「cancel_other_device」を真に設定することができる。変数「cancel_other_device」が真に設定されたことに応じて、タスクキャンセラモジュール5244は、工程814にて、装置Eにキャンセル要求を送信することができる。その後、方法800は、工程818に進むことができる。この分岐は、図7Bに示すシナリオに対応する。タスク2が完了済みとしてマークされると、障害管理プロセスは終了し、ディスパッチャモジュール4242がエッジエージェントを呼び出して、定義されたプロセスの残りを続行させることができる。
タスク2が完了済みとしてマークされている場合、工程816にて、受信したタスク結果を無視することができる。装置Eによってタスク2が完了済みであり、装置Bが装置Eよりも後にタスク結果を送信していると判定することができる。この分岐は、図7Cに示すシナリオに対応する。
図9は、本開示のいくつかの実施形態による、エッジコンピューティング環境においてタスクを動的に管理するための他の例としての方法900を示すフローチャートである。説明のために、図5を参照しながら方法900について説明する。
工程910にて、エッジエージェント423は、定義されたプロセスに従って、タスクの実行要求を第1のエッジ装置に送信することができる。ここで、定義されたプロセスは、エッジ装置上で実行されるタスクをスケジュールするために用いることができる。第1のエッジ装置がタスクの実行に失敗した場合、工程920にて、エッジエージェント423は、定義されたプロセスを一時中断することができる。工程930にて、タスクラッパモジュール5231は、当該タスクの実行要求を第2のエッジ装置に送信することができる。工程940にて、タスクチェッカモジュール5243は、最初に受信したタスク結果を、当該タスクのタスク結果とすることができる。ここで、タスク結果は、第1のエッジ装置または第2のエッジ装置のいずれかからのものである。工程950にて、ディスパッチャモジュール4242はエッジエージェント423を呼び出して、定義されたプロセスの残りの部分を続行させることができる。
いくつかの実施形態では、工程940にて、タスクのタスク結果を受信した場合、タスクチェッカモジュール5243は、当該タスクが完了済みとしてマークされているか否かを確認してもよい。タスクが完了済みとしてマークされていない場合、タスクチェッカモジュール5243は、受信したタスク結果が、最初に受信したタスク結果であると判定し、当該タスクを完了済みとしてマークすることができる。タスクが完了済みとしてマークされている場合、タスクチェッカモジュール5243は、受信したタスク結果が、最初に受信したタスク結果ではないと判定し、受信したタスク結果を無視することができる。
いくつかの実施形態では、工程940にて、タスクチェッカモジュール5243は、受信したタスク結果が第1のエッジ装置からのものであるか否かを確認してもよい。受信したタスク結果が第1のエッジ装置からのものである場合、タスクチェッカモジュール5243は、第2のエッジ装置に対してタスクの実行を中止する命令を送信することができる。
いくつかの実施形態では、方法900において、ストアシステム511が、タスクおよびエッジ装置のメタデータ情報を取得し、記憶してもよい。メタデータ情報は、タスクのID、第1のエッジ装置のID、および第2のエッジ装置のIDのうち少なくとも1つの識別子を含むことができる。
本開示の実施形態によるタスク管理プロセスは、図1のコンピュータシステム/サーバ12によって実施してもよい。
本開示の実施態様は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本開示の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体を含むものとして解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピュータ装置/処理装置へダウンロードすることができる。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部記憶装置へダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピュータ装置/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信することができ、当該コンピュータ可読プログラム命令を、各々のコンピュータ装置/処理装置におけるコンピュータ可読記憶媒体に記憶するために転送することができる。
いくつかの実施形態における動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかを含むことができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本開示の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
本開示の各態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行することができる。
上記のコンピュータ可読プログラム命令は、機械を生産するために、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサに提供してよい。これにより、かかるコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行できるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行できる。上記のコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶してよい。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行できる命令を含む製品を構成する。
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作を当該コンピュータ、他のプログラマブル装置、または他の装置に実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
図面におけるフローチャートおよびブロック図は、本開示の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行してもよい。例えば、連続して示される2つのブロックは、実際には、関係する機能に応じて、1つの工程として達成してもよいし、同時もしくは略同時に実行してもよいし、部分的もしくは全体的に時間的に重複した態様で実行してもよいし、または場合により逆順で実行してもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能または動作を行う専用ハードウェアベースのシステムによって、または専用ハードウェアとコンピュータ命令との組み合わせによって実行することができる。
本開示の種々の実施形態を例示として説明してきたが、網羅的であることや、これらの実施形態に限定することを意図したものではない。当業者には明らかなように、記載した各実施形態の範囲および要旨から逸脱することなく、多くの変更および変形が可能である。本明細書で用いられる用語は、各実施形態の原理、実際の用途、または市場で確認される技術に対する技術的な改善を説明するために、または、当業者が本明細書に開示する各実施形態を理解できるように選択されたものである。
したがって、本明細書に記載の実施形態は、あらゆる点で例示的なものであり、本開示を限定するものと見なすべきではない。本開示の範囲を決定するにあたっては、添付の特許請求の範囲を参照されたい。
Claims (20)
- コンピュータ実装方法であって、1つまたは複数のプロセッサによって、
エッジ装置上で実行されるタスクをスケジュールするのに用いられる定義されたプロセスに従って、タスクの実行要求を第1のエッジ装置に送信することと、
前記第1のエッジ装置が前記タスクの実行に失敗した場合に、前記定義されたプロセスを一時中断することと、
前記タスクの実行要求を第2のエッジ装置に送信することと、
前記第1のエッジ装置または前記第2のエッジ装置のいずれかからのタスク結果であって最初に受信したタスク結果を、前記タスクのタスク結果とすることと、
前記定義されたプロセスの残りの部分を続行することと、
を含む、方法。 - 前記最初に受信したタスク結果を前記タスクのタスク結果とすることは、
前記タスクのタスク結果を受信した場合に、当該タスクが完了済みとしてマークされているか否かを確認することと、
前記タスクが完了済みとしてマークされていない場合に、前記受信したタスク結果を前記最初に受信したタスク結果であると判定することと、
前記タスクを完了済みとしてマークすることと、を含む、
請求項1に記載の方法。 - 前記タスクが完了済みとしてマークされている場合に、前記受信したタスク結果を前記最初に受信したタスク結果ではないと判定することと、
前記受信したタスク結果を無視することと、をさらに含む、
請求項2に記載の方法。 - 前記受信したタスク結果が前記第1のエッジ装置からのものであるか否かを確認することと、
前記受信したタスク結果が前記第1のエッジ装置からのものである場合に、前記第2のエッジ装置に対して前記タスクの実行を中止する命令を送信することと、をさらに含む、
請求項2に記載の方法。 - 前記受信したタスク結果が前記第1のエッジ装置からのものであるか否かを確認するために、前記タスク結果から前記タスクの情報を取得することをさらに含む、
請求項4に記載の方法。 - 前記情報は、前記タスクのIDおよび前記エッジ装置のIDからなるグループから選択される情報を含む、
請求項5に記載の方法。 - エッジエージェントによって、
前記第1のエッジ装置に関するステータス情報を要求することと、
前記ステータス情報の受信に失敗した場合に、タスクラッパモジュールを呼び出して障害管理プロセスを開始することと、をさらに含む、
請求項1に記載の方法。 - 前記タスクラッパモジュールによって、
前記第1のエッジ装置の代替として前記第2のエッジ装置を決定することと、
前記タスクを前記第2のエッジ装置に再割り当てすることと、をさらに含む、
請求項7に記載の方法。 - 1つまたは複数のプロセッサと、
前記プロセッサに接続されたコンピュータ可読メモリと、を含むコンピュータシステムであって、当該コンピュータ可読メモリは命令を含み、当該命令は当該プロセッサによって実行されることで、
エッジ装置上で実行されるタスクをスケジュールするのに用いられる定義されたプロセスに従って、タスクの実行要求を第1のエッジ装置に送信することと、
前記第1のエッジ装置が前記タスクの実行に失敗した場合に、前記定義されたプロセスを一時中断することと、
前記タスクの実行要求を第2のエッジ装置に送信することと、
前記第1のエッジ装置または前記第2のエッジ装置のいずれかからのタスク結果であって最初に受信したタスク結果を、前記タスクのタスク結果とすることと、
前記定義されたプロセスの残りの部分を続行することと、
を実行する、コンピュータシステム。 - 前記最初に受信したタスク結果を前記タスクのタスク結果とすることは、
前記タスクのタスク結果を受信した場合に、当該タスクが完了済みとしてマークされているか否かを確認することと、
前記タスクが完了済みとしてマークされていない場合に、前記受信したタスク結果を前記最初に受信したタスク結果であると判定することと、
前記タスクを完了済みとしてマークすることと、を含む、
請求項9に記載のコンピュータシステム。 - 前記タスクが完了済みとしてマークされている場合に、前記受信したタスク結果を前記最初に受信したタスク結果ではないと判定することと、
前記受信したタスク結果を無視することと、をさらに含む、
請求項10に記載のコンピュータシステム。 - 前記受信したタスク結果が前記第1のエッジ装置からのものであるか否かを確認することと、
前記受信したタスク結果が前記第1のエッジ装置からのものである場合に、前記第2のエッジ装置に対して前記タスクの実行を中止する命令を送信することと、をさらに含む、
請求項10に記載のコンピュータシステム。 - 前記受信したタスク結果が前記第1のエッジ装置からのものであるか否かを確認するために、前記タスク結果から前記タスクの情報を取得することをさらに含む、
請求項12に記載のコンピュータシステム。 - 前記情報は、前記タスクのIDおよび前記エッジ装置のIDからなるグループから選択される情報を含む、
請求項13に記載のコンピュータシステム。 - プログラム命令が実装されたコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、当該プログラム命令はプロセッサによって実行可能であり、当該プロセッサに、
エッジ装置上で実行されるタスクをスケジュールするのに用いられる定義されたプロセスに従って、タスクの実行要求を第1のエッジ装置に送信する機能と、
前記第1のエッジ装置が前記タスクの実行に失敗した場合に、前記定義されたプロセスを一時中断する機能と、
前記タスクの実行要求を第2のエッジ装置に送信する機能と、
前記第1のエッジ装置または前記第2のエッジ装置のいずれかからのタスク結果であって最初に受信したタスク結果を、前記タスクのタスク結果とする機能と、
前記定義されたプロセスの残りの部分を続行する機能と、
を実行させる、コンピュータプログラム製品。 - 前記最初に受信したタスク結果を前記タスクのタスク結果とする機能は、
前記タスクのタスク結果を受信した場合に、当該タスクが完了済みとしてマークされているか否かを確認する機能と、
前記タスクが完了済みとしてマークされていない場合に、前記受信したタスク結果を前記最初に受信したタスク結果であると判定する機能と、
前記タスクを完了済みとしてマークする機能と、を含む、
請求項15に記載のコンピュータプログラム製品。 - 前記タスクが完了済みとしてマークされている場合に、1つまたは複数のプロセッサによって、前記受信したタスク結果を前記最初に受信したタスク結果ではないと判定する機能と、
1つまたは複数のプロセッサによって、前記受信したタスク結果を無視する機能と、をさらに含む、
請求項16に記載のコンピュータプログラム製品。 - 前記受信したタスク結果が前記第1のエッジ装置からのものであるか否かを確認する機能と、
前記受信したタスク結果が前記第1のエッジ装置からのものである場合に、前記第2のエッジ装置に対して前記タスクの実行を中止する命令を送信する機能と、をさらに含む、
請求項16に記載のコンピュータプログラム製品。 - 前記受信したタスク結果が前記第1のエッジ装置からのものであるか否かを確認するために、前記タスク結果から前記タスクの情報を取得する機能をさらに含む、
請求項18に記載のコンピュータプログラム製品。 - 前記情報は、前記タスクのIDおよび前記エッジ装置のIDからなるグループから選択される情報を含む、
請求項19に記載のコンピュータプログラム製品。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/079,476 US11645109B2 (en) | 2020-10-25 | 2020-10-25 | Managing failures in edge computing environments |
US17/079,476 | 2020-10-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022069420A true JP2022069420A (ja) | 2022-05-11 |
Family
ID=78497888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021172268A Pending JP2022069420A (ja) | 2020-10-25 | 2021-10-21 | コンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム製品(エッジコンピューティング環境における障害管理) |
Country Status (4)
Country | Link |
---|---|
US (1) | US11645109B2 (ja) |
JP (1) | JP2022069420A (ja) |
DE (1) | DE102021124335A1 (ja) |
GB (1) | GB2604203B (ja) |
Families Citing this family (2)
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 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2344906A (en) * | 1998-12-19 | 2000-06-21 | Int Computers Ltd | Object-oriented job scheduler |
US7756919B1 (en) * | 2004-06-18 | 2010-07-13 | Google Inc. | Large-scale data processing in a distributed and parallel processing enviornment |
US9307048B2 (en) * | 2010-12-28 | 2016-04-05 | Microsoft Technology Licensing, Llc | System and method for proactive task scheduling of a copy of outlier task in a computing environment |
US9442760B2 (en) * | 2014-10-03 | 2016-09-13 | Microsoft Technology Licensing, Llc | Job scheduling using expected server performance information |
US9690623B2 (en) * | 2015-11-06 | 2017-06-27 | International Business Machines Corporation | Regulating hardware speculative processing around a transaction |
RU2018123325A (ru) | 2015-11-30 | 2020-01-09 | Хуавэй Текнолоджиз Ко., Лтд. | Способ, устройство и система для переключения мобильной граничной платформы |
TWI674780B (zh) | 2018-11-23 | 2019-10-11 | 財團法人工業技術研究院 | 網路服務系統及網路服務方法 |
US11109202B2 (en) | 2018-11-28 | 2021-08-31 | Verizon Patent And Licensing Inc. | Method and system for intelligent routing for mobile edge computing |
US11711268B2 (en) * | 2019-04-30 | 2023-07-25 | Intel Corporation | Methods and apparatus to execute a workload in an edge environment |
US11146455B2 (en) | 2019-12-20 | 2021-10-12 | Intel Corporation | End-to-end quality of service in edge computing environments |
US11645111B2 (en) * | 2020-10-23 | 2023-05-09 | International Business Machines Corporation | Managing task flow in edge computing environment |
US11645109B2 (en) | 2020-10-25 | 2023-05-09 | International Business Machines Corporation | Managing failures in edge computing environments |
-
2020
- 2020-10-25 US US17/079,476 patent/US11645109B2/en active Active
-
2021
- 2021-09-21 DE DE102021124335.1A patent/DE102021124335A1/de active Granted
- 2021-10-01 GB GB2114079.3A patent/GB2604203B/en active Active
- 2021-10-21 JP JP2021172268A patent/JP2022069420A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
GB202114079D0 (en) | 2021-11-17 |
US20220129303A1 (en) | 2022-04-28 |
US11645109B2 (en) | 2023-05-09 |
GB2604203B (en) | 2023-02-15 |
GB2604203A (en) | 2022-08-31 |
DE102021124335A1 (de) | 2022-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566541B (zh) | 容器网络资源分配方法、系统、存储介质和电子设备 | |
US10324799B2 (en) | Enhanced application write performance | |
US20180253246A1 (en) | Method and system for memory allocation in a disaggregated memory architecture | |
CN113783922A (zh) | 负载均衡的方法、系统和装置 | |
US10972586B2 (en) | Reusable message flow between applications of a message broker integrated systems environment | |
US11481243B1 (en) | Service access across Kubernetes clusters | |
US11816469B2 (en) | Resolving the version mismatch problem when implementing a rolling update in an open-source platform for container orchestration | |
JP2022069420A (ja) | コンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム製品(エッジコンピューティング環境における障害管理) | |
US8543680B2 (en) | Migrating device management between object managers | |
US10341181B2 (en) | Method and apparatus to allow dynamic changes of a replica network configuration in distributed systems | |
WO2022083293A1 (en) | Managing task flow in edge computing environment | |
KR20150082932A (ko) | 가상 머신의 구성 관리 지원 장치 및 방법과, 그 구성 관리 지원 장치를 이용한 클라우드 서비스 중개 장치 및 방법 | |
CN115428514A (zh) | 在多个运营商的相邻mec主机之间共享地理集中的工作负荷 | |
CN109743202B (zh) | 数据的管理方法、装置、设备及可读存储介质 | |
AU2021398915B2 (en) | Coordinating requests actioned at a scalable application | |
JP2022105295A (ja) | マイクロサービスのシーケンスをアップグレードするための、コンピュータ実装方法システム、およびコンピュータ・プログラム(クラウド・コンピューティング環境におけるマイクロサービスのシーケンスのアップグレード) | |
CN112152988B (zh) | 用于异步nbmp请求处理的方法、系统以及计算机设备和介质 | |
US11637737B2 (en) | Network data management framework | |
US20220295390A1 (en) | Deploying containers on a 5g slice network | |
CN113726638B (zh) | 一种多云多芯容器管理的方法、装置及设备、存储介质 | |
US9977761B2 (en) | Virtualizing TCP/IP services with shared memory transport | |
US20180123999A1 (en) | Tracking client location using buckets | |
CN112148935A (zh) | 用于多实例的nbmp功能执行的方法和装置 | |
US11875202B2 (en) | Visualizing API invocation flows in containerized environments | |
US11954506B2 (en) | Inspection mechanism framework for visualizing application metrics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD16 | Notification of change of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7436 Effective date: 20211208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20211208 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220518 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240319 |