(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-21
(54)【発明の名称】ローカルクラウドのためのローカルエリアネットワーク(LAN)を備えた高可用性コントローラを使用するための方法、装置及びコンピュータプログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20240313BHJP
【FI】
G06F9/50 150D
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023560167
(86)(22)【出願日】2022-11-01
(85)【翻訳文提出日】2023-09-28
(86)【国際出願番号】 US2022048605
(87)【国際公開番号】W WO2023101784
(87)【国際公開日】2023-06-08
(32)【優先日】2021-11-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-10-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】ポール・スペンサー・ドーキンス
(72)【発明者】
【氏名】ロヒト・アビシェーク
(72)【発明者】
【氏名】アリアンヌ・ハインズ
(57)【要約】
1つまたは複数の追加のネットワークノードに接続されたネットワークノードによって実行される方法であって、ネットワークノードおよび1つまたは複数の追加のネットワークノードは、クラウドを形成する。本方法は、第1のタイマを第1の値に設定するステップを含み、第1のタイマは、1つまたは複数の追加のネットワークノードからの別のネットワークノードがクラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる。本方法は、第1のタイマが満了する前に、1つまたは複数の追加のネットワークノードからの別のネットワークノードがアクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定するステップをさらに含む。本方法は、第1のタイマが満了する前に第1のメッセージが受信されたとの決定に基づいて、第1のタイマを再起動するステップをさらに含む。本方法は、第1のタイマが満了する前に第1のメッセージが受信されていないとの決定に基づいて、1つまたは複数のタスクを少なくとも1つのネットワークノードに割り当てるステップをさらに含む。
【特許請求の範囲】
【請求項1】
ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続されたネットワークノードの少なくとも1つのプロセッサによって実行される方法であって、前記ネットワークノードおよび前記1つまたは複数の追加のネットワークノードがクラウドを形成し、前記方法が、
第1のタイマを第1の値に設定するステップであって、前記第1のタイマが、前記1つまたは複数の追加のネットワークノードからの別のネットワークノードが前記クラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる、ステップと、
前記第1のタイマを起動するステップと、
前記第1のタイマが満了する前に、前記1つまたは複数の追加のネットワークノードからの別のネットワークノードが前記アクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定するステップと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されたとの決定に基づいて、前記第1のタイマを再起動するステップと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されていないとの決定に基づいて、1つまたは複数のタスクを、前記クラウド内の前記アクティブコントローラとして、前記1つまたは複数の追加のネットワークノードからの少なくとも1つのネットワークノードに割り当てるステップと
を含む、方法。
【請求項2】
第2のタイマを第2の値に設定するステップと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されていないとの決定に基づいて、前記第2のタイマを起動するステップと、
前記第2のタイマの満了に基づいて、または前記アクティブコントローラの識別を要求する第3のメッセージの前記複数のネットワークノード内の別のネットワークノードからの受信に基づいて、前記1つまたは複数の追加のネットワークノードからの各ネットワークノードに、前記ネットワークノードが前記クラウド内の前記アクティブコントローラであることを示す第2のメッセージをブロードキャストするステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記第1のタイマが前記第2のタイマよりも長い、請求項2に記載の方法。
【請求項4】
前記ネットワークノードが前記アクティブコントローラである間に、
利用可能なコントローラを発見するために、第4のメッセージを前記1つまたは複数の追加のネットワークノードからの各ネットワークノードにブロードキャストするステップと、
前記第4のメッセージに基づいて、前記1つまたは複数の追加のネットワークノードからの利用可能なネットワークノードから、前記利用可能なネットワークノードが利用可能なコントローラであることを示す第5のメッセージを受信するステップと
をさらに含む、請求項1に記載の方法。
【請求項5】
前記第5のメッセージの受信に基づいて、
前記利用可能なネットワークノードの1つまたは複数のリソースを指定するように前記利用可能なネットワークノードに要求する第6のメッセージを前記利用可能なネットワークノードに送信するステップと、
前記第6のメッセージに基づいて、前記利用可能なネットワークノードの前記1つまたは複数のリソースのうちの少なくとも1つのリソースを指定する第7のメッセージを受信するステップと、
前記第6のメッセージの受信に基づいて、1つまたは複数のタスクを前記少なくとも1つのリソースに基づく前記利用可能なネットワークノードに割り当てるステップと
をさらに含む、請求項4に記載の方法。
【請求項6】
前記利用可能なネットワークノードがもはや前記利用可能なコントローラではないことを示す第7のメッセージを前記利用可能なネットワークノードから受信するステップと、
前記第7のメッセージの受信に基づいて、完了していない1つまたは複数のタスクが前記利用可能なネットワークノードに割り当てられているかどうかを決定するステップと
をさらに含む、請求項5に記載の方法。
【請求項7】
完了していない1つまたは複数のタスクが前記利用可能なネットワークノードに割り当てられているとの決定に基づいて、前記利用可能なネットワークノードとの接続を切断する前に、前記利用可能なネットワークノードが前記1つまたは複数のタスクを完了させるまで待機するステップ
をさらに含む、請求項6に記載の方法。
【請求項8】
完了していない1つまたは複数のタスクが前記利用可能なネットワークノードに割り当てられているとの決定に基づいて、前記1つまたは複数のタスクを前記1つまたは複数の追加のネットワークノードから別の利用可能なネットワークノードに移行するステップ
をさらに含む、請求項6に記載の方法。
【請求項9】
ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続された装置であって、前記装置および前記1つまたは複数の追加のネットワークノードがクラウドを形成し、前記装置が、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって指示されたとおりに動作するように構成された少なくとも1つのプロセッサとを備え、前記コンピュータプログラムコードが、
前記少なくとも1つのプロセッサに第1のタイマを第1の値に設定させるように構成された第1の設定コードであって、前記第1のタイマが、前記1つまたは複数の追加のネットワークノードからの別のネットワークノードが前記クラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる、第1の設定コードと、
前記少なくとも1つのプロセッサに前記第1のタイマを起動させるように構成された第1の起動コードと、
前記少なくとも1つのプロセッサに、前記第1のタイマが満了する前に、前記1つまたは複数の追加のネットワークノードからの別のネットワークノードが前記アクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定させるように構成された第1の決定コードと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されたとの決定に基づいて、前記少なくとも1つのプロセッサに前記第1のタイマを再起動させるように構成された再起動コードと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されていないとの決定に基づいて、前記少なくとも1つのプロセッサに、前記クラウド内の前記アクティブコントローラとして、1つまたは複数のタスクを前記1つまたは複数の追加のネットワークノードからの少なくとも1つのネットワークノードに割り当てさせるように構成された第1の割り当てコードと
を含む、装置。
【請求項10】
前記コンピュータプログラムコードが、
前記少なくとも1つのプロセッサに第2のタイマを第2の値に設定させるように構成された第2の設定コードと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されていないとの決定に基づいて、前記少なくとも1つのプロセッサに前記第2のタイマを起動させるように構成された第2の起動コードと、
前記少なくとも1つのプロセッサに、前記第2のタイマの満了に基づいて、または前記アクティブコントローラの識別を要求する第3のメッセージの前記複数のネットワークノード内の別のネットワークノードからの受信に基づいて、前記1つまたは複数の追加のネットワークノードからの各ネットワークノードに、前記ネットワークノードが前記クラウド内の前記アクティブコントローラであることを示す第2のメッセージをブロードキャストさせるように構成された第1のブロードキャスティングコードと
をさらに含む、請求項9に記載の装置。
【請求項11】
前記第1のタイマが前記第2のタイマよりも長い、請求項10に記載の装置。
【請求項12】
前記コンピュータプログラムコードが、
前記ネットワークノードが前記アクティブコントローラである間に、
前記少なくとも1つのプロセッサに、利用可能なコントローラを発見するために、第4のメッセージを前記1つまたは複数の追加のネットワークノードからの各ネットワークノードにブロードキャストさせるように構成された第2のブロードキャストコードと、
前記少なくとも1つのプロセッサに、前記第4のメッセージに基づいて、前記1つまたは複数の追加のネットワークノードからの利用可能なネットワークノードから、前記利用可能なネットワークノードが利用可能なコントローラであることを示す第5のメッセージを受信させるように構成された第1の受信コードと
をさらに含む、請求項9に記載の装置。
【請求項13】
前記コンピュータプログラムコードが、
前記第5のメッセージの受信に基づいて、
前記少なくとも1つのプロセッサに、前記利用可能なネットワークノードの1つまたは複数のリソースを指定するように前記利用可能なネットワークノードに要求する第6のメッセージを前記利用可能なネットワークノードに送信させるように構成された第1の送信コードと、
前記少なくとも1つのプロセッサに、前記第6のメッセージに基づいて、前記利用可能なネットワークノードの前記1つまたは複数のリソースのうちの少なくとも1つのリソースを指定する第7のメッセージを受信させるように構成された第2の受信コードと、
前記少なくとも1つのプロセッサに、前記第6のメッセージの受信に基づいて、1つまたは複数のタスクを前記少なくとも1つのリソースに基づく前記利用可能なネットワークノードに割り当てさせるように構成された第2の割り当てコードと
をさらに含む、請求項12に記載の装置。
【請求項14】
前記コンピュータプログラムコードが、
前記少なくとも1つのプロセッサに、前記利用可能なネットワークノードがもはや前記利用可能なコントローラではないことを示す第7のメッセージを前記利用可能なネットワークノードから受信させるように構成された第2の受信コードと、
前記少なくとも1つのプロセッサに、前記第7のメッセージの受信に基づいて、完了していない1つまたは複数のタスクが前記利用可能なネットワークノードに割り当てられているかどうかを決定させるように構成された第2の決定コードと
をさらに含む、請求項13に記載の装置。
【請求項15】
前記コンピュータプログラムコードが、
前記少なくとも1つのプロセッサに、完了していない1つまたは複数のタスクが前記利用可能なネットワークノードに割り当てられているとの決定に基づいて、前記利用可能なネットワークノードとの接続を切断する前に、前記利用可能なネットワークノードが前記1つまたは複数のタスクを完了させるまで待機させるように構成された待機コード
をさらに含む、請求項14に記載の装置。
【請求項16】
前記コンピュータプログラムコードが、
前記少なくとも1つのプロセッサに、完了していない1つまたは複数のタスクが前記利用可能なネットワークノードに割り当てられているとの決定に基づいて、前記1つまたは複数のタスクを前記1つまたは複数の追加のネットワークノードからの別の利用可能なネットワークノードに移行させるように構成された移行コード
をさらに含む、請求項15に記載の装置。
【請求項17】
命令が記憶された非一時的コンピュータ可読媒体であって、ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続されたネットワークノードのプロセッサによって実行されると、前記ネットワークノードおよび前記1つまたは複数の追加のネットワークノードがクラウドを形成し、前記プロセッサに、
第1のタイマを第1の値に設定するステップであって、前記第1のタイマが、前記1つまたは複数の追加のネットワークノードからの別のネットワークノードが前記クラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる、ステップと、
前記第1のタイマを起動するステップと、
前記第1のタイマが満了する前に、前記1つまたは複数の追加のネットワークノードからの別のネットワークノードが前記アクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定するステップと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されたとの決定に基づいて、前記第1のタイマを再起動するステップと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されていないとの決定に基づいて、1つまたは複数のタスクを、前記クラウド内の前記アクティブコントローラとして、前記1つまたは複数の追加のネットワークノードからの少なくとも1つのネットワークノードに割り当てるステップと
を含む方法を実行させる、非一時的コンピュータ可読媒体。
【請求項18】
第2のタイマを第2の値に設定するステップと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されていないとの決定に基づいて、前記第2のタイマを起動するステップと、
前記第2のタイマの満了に基づいて、または前記アクティブコントローラの識別を要求する第3のメッセージの前記複数のネットワークノード内の別のネットワークノードからの受信に基づいて、前記1つまたは複数の追加のネットワークノードからの各ネットワークノードに、前記ネットワークノードが前記クラウド内の前記アクティブコントローラであることを示す第2のメッセージをブロードキャストするステップと
をさらに含む、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記第1のタイマが前記第2のタイマよりも長い、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記ネットワークノードが前記アクティブコントローラである間に、
利用可能なコントローラを発見するために、第4のメッセージを前記1つまたは複数の追加のネットワークノードからの各ネットワークノードにブロードキャストするステップと、
前記第4のメッセージに基づいて、前記1つまたは複数の追加のネットワークノードからの利用可能なネットワークノードから、前記利用可能なネットワークノードが利用可能なコントローラであることを示す第5のメッセージを受信するステップと
をさらに含む、請求項17に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年11月30日に出願された米国仮特許出願第63/284,529号および2022年10月28日に出願された米国特許出願第17/976,451号に基づいており、それらの優先権を主張し、それらの開示はその全体が参照により本明細書に組み込まれる。
【0002】
開示される主題は、エッジクラウドのための高可用性サービスとして使用されてもよい複数のデバイスで構成されるローカルクラウドを作成するための方法およびシステムに関する。
【背景技術】
【0003】
クラウドコンピューティングは、インターネットを介して、コンピューティングリソース、アプリケーション、サーバ、データ記憶装置、開発ツール、ネットワーキング機能へのオンデマンドアクセスであると定義されてもよい。クラウドコンピュータサービスは、クラウドサービスプロバイダ(CSP)によって管理されるリモートデータセンタでホストされてもよい。クラウドコンピューティングは、サブスクリプションベースのサービスであってもよく、クラウドベースのサブスクリプションは、購入、設置などのコストを削減することによってリソースコストを低減するのに役立つ。クラウドコンピューティングは、敏捷性および時間対価値を改善し、費用効果の高い方法でより容易にスケーリングされてもよい。
【0004】
現在、アプリケーションは、モノのインターネット(IoT)、人工知能(AI)、機械学習(MI)、没入型メディアの概念についてより多くの重点が置かれている。さらに、インターネットデバイスの数は飛躍的に増加している。データセンタもしくはクラウドサーバ(潜在的に地理的に離れた場所)で計算を実行することは、これらの計算が、ユーザからクラウドもしくはデータセンタにデータを移動して戻すためにかなりの帯域幅を必要とし、待ち時間も増えるため、効率的な手法ではない場合がある。
【0005】
エッジコンピューティングは、リソースをネットワークエッジに配置することによってコンピューティング能力をユーザにとってより身近なものとし、それによってネットワーク遅延を低減し、上位クラウドへの帯域幅要件を低減し、信頼性およびコスト削減を強化する。エッジコンピューティングは、複数のホップを通ってクラウドネットワークに依存するよりもさらに遠い距離を移動する代わりに、データの計算がユーザにとってより身近になることを可能にする。
【0006】
ネットワークオペレータがエッジコンピューティングの使用において考える主な利点は、ユーザにとってより身近なリアルタイムの動的コンピューティングであり、それによって待ち時間が低減され、ユーザがクラウドサーバにかける負荷が少ないためにコストが削減され、ローカルクラウドがユーザにとってより身近であるために体感品質(QoE)がより高くなり、したがってより速いトラフィック配信が可能になることである。
【0007】
ライトフィールド、拡張現実(AR)および仮想現実(VR)のような没入型技術の場合、高性能のハードウェアデバイスが必要とされる。この必要性は、これらのアプリケーションが、ユーザに真に没入した環境にいるという感覚を与えるために、膨大な量の処理能力および記憶装置を必要とする可能性が高いために生じる。さらに、これらのアプリケーションは、特定のオブジェクトを認識するためにリアルタイムのビデオストリーム処理を必要とし、いくつかのアプリケーションは、新しいビデオフレームの生成を必要とする場合さえある。
【0008】
したがって、没入型技術を使用する際の現在の課題は、処理容量、記憶容量、エネルギー消費、およびデバイスの重量を含む。これらの課題は全て、デバイス上で実行されるアプリケーションの大量の処理要件のために、より顕著になってきている。ユーザがヘッドセットを装着することを必要とする没入型技術では、重いデバイスはユーザに不快な体験を与え、高い処理能力は、アプリケーションの要件を満たすためにGPUに大きく依存するライトフィールドデバイスを含むデバイスを高価にする。デバイスにおけるリソースの可用性が限られていると、利用可能なリソースよりも多くを必要とする処理タスクは計算待ち時間を増やし、デバイスがバッテリ駆動である場合は、計算負荷が増加すると、デバイスのバッテリがより急速に消耗し、次の充電までのサービス間隔時間が短くなる。したがって、現在の最新技術の能力と将来のデバイスおよびシステムの要件との間には隔たりがある。
【0009】
没入型技術に使用されるデバイスが単独で存在する場合、デバイス自体は、許容可能なQoEをデバイスのユーザに提供するために必要な全てのリソースを提供しなければならない。デバイスがLANを使用して他のデバイスに接続されている場合、デバイスは、支援を要求するデバイスに対して非常にローカルな共有リソースを使用して、LAN上の他のデバイスから支援を要求してもよい。
【発明の概要】
【課題を解決するための手段】
【0010】
以下は、本開示の1つまたは複数の実施形態の基本的な理解を提供するために、そのような実施形態の簡略化された概要を提示する。本概要は、全ての企図された実施形態の広範な概要ではなく、全ての実施形態の主要な要素もしくは重要な要素を特定することも、いずれかもしくは全ての実施形態の範囲を線引きすることも意図されていない。その唯一の目的は、後で提示されるより詳細な説明の前置きとして、本開示の1つまたは複数の実施形態の一部の概念を簡略化された形で提示することである。
【0011】
エッジクラウドのための高可用性サービスとして使用されてもよい複数のデバイスで構成されるローカルクラウドを作成するための方法、デバイスおよび非一時的なコンピュータ可読媒体が、本開示によって開示される。
【0012】
例示的な実施形態によれば、方法は、ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続されたネットワークノードの少なくとも1つのプロセッサによって実行され、ネットワークノードおよび1つまたは複数の追加のネットワークノードはクラウドを形成する。本方法は、第1のタイマを第1の値に設定するステップを含み、第1のタイマは、1つまたは複数の追加のネットワークノードからの別のネットワークノードがクラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる。本方法は、第1のタイマを起動するステップをさらに含む。本方法は、第1のタイマが満了する前に、1つまたは複数の追加のネットワークノードからの別のネットワークノードがアクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定するステップをさらに含む。本方法は、第1のタイマが満了する前に第1のメッセージが受信されたとの決定に基づいて、第1のタイマを再起動するステップをさらに含む。本方法は、第1のタイマが満了する前に第1のメッセージが受信されていないとの決定に基づいて、1つまたは複数のタスクを、クラウド内のアクティブコントローラとして、1つまたは複数の追加のネットワークノードからの少なくとも1つのネットワークノードに割り当てるステップをさらに含む。
【0013】
例示的な実施形態によれば、装置は、ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続され、装置および1つまたは複数の追加のネットワークノードは、クラウドを形成する。本装置は、コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、コンピュータプログラムコードにアクセスし、コンピュータプログラムコードによって指示されたとおりに動作するように構成された少なくとも1つのプロセッサとを含む。コンピュータプログラムコードは、少なくとも1つのプロセッサに第1のタイマを第1の値に設定させるように構成された第1の設定コードを含み、第1のタイマは、1つまたは複数の追加のネットワークノードからの別のネットワークノードがクラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる。コンピュータプログラムコードは、少なくとも1つのプロセッサに第1のタイマを起動させるように構成された第1の起動コードをさらに含む。コンピュータプログラムコードは、少なくとも1つのプロセッサに、第1のタイマが満了する前に、1つまたは複数の追加のネットワークノードからの別のネットワークノードがアクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定させるように構成された第1の決定コードをさらに含む。コンピュータプログラムコードは、第1のタイマが満了する前に第1のメッセージが受信されたとの決定に基づいて、少なくとも1つのプロセッサに第1のタイマを再起動させるように構成された再起動コードをさらに含む。コンピュータプログラムコードは、第1のタイマが満了する前に第1のメッセージが受信されていないとの決定に基づいて、少なくとも1つのプロセッサに、クラウド内のアクティブコントローラとして、1つまたは複数のタスクを1つまたは複数の追加のネットワークノードからの少なくとも1つのネットワークノードに割り当てさせるように構成された第1の割り当てコードをさらに含む。
【0014】
例示的な実施形態によれば、命令が記憶された非一時的コンピュータ可読媒体であって、ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続されたネットワークノードのプロセッサによって実行されると、ネットワークノードおよび1つまたは複数の追加のネットワークノードはクラウドを形成し、プロセッサに、第1のタイマを第1の値に設定することを含む方法を実行させ、第1のタイマは、1つまたは複数の追加のネットワークノードからの別のネットワークノードがクラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる。本方法は、第1のタイマを起動するステップと、第1のタイマが満了する前に、1つまたは複数の追加のネットワークノードからの別のネットワークノードがアクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定するステップとをさらに含む。本方法は、第1のタイマが満了する前に第1のメッセージが受信されたとの決定に基づいて、第1のタイマを再起動するステップをさらに含む。本方法は、第1のタイマが満了する前に第1のメッセージが受信されていないとの決定に基づいて、1つまたは複数のタスクを、クラウド内のアクティブコントローラとして、1つまたは複数の追加のネットワークノードからの少なくとも1つのネットワークノードに割り当てるステップをさらに含む。
【0015】
追加の実施形態は、以下の説明に記載され、部分的には、説明から明らかになり、および/または本開示の提示された実施形態の実践によって習得されてもよい。
【0016】
上記および他の態様は、添付の図面と併せて行われる様々な実施形態の以下の説明から明らかになるであろう。
【図面の簡単な説明】
【0017】
【
図1】本開示の様々な実施形態による、アクティブコントローラおよび利用可能なコントローラを含むLANの図である。
【
図2】本開示の様々な実施形態による、コントローラ間の通信プロセスの図である。
【
図3】本開示の様々な実施形態による、アクティブコントローラワーカの接続セットアップの図である。
【
図4】本開示の様々な実施形態による、アクティブコントローラワーカのタスク割り当ての図である。
【
図5】本開示の様々な実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0018】
例示的な実施形態の以下の詳細な説明は、添付の図面を参照する。異なる図面における同じ参照番号は、同じまたは類似の要素を識別してもよい。
【0019】
前述の開示は、例示および説明を提供しているが、網羅的であることも、実装形態を厳密に開示の形態に限定することも意図されていない。修正形態および変形形態が上記の開示に照らして可能であり、または実装形態の実践から取得されてもよい。さらに、一実施形態の1つまたは複数の特徴または構成要素は、別の実施形態(または別の実施形態の1つまたは複数の特徴)に組み込まれるか、または組み合わされてもよい。さらに、以下に提供されるフローチャートおよび動作の説明では、1つまたは複数の動作が省略されてもよく、1つまたは複数の動作が追加されてもよく、1つまたは複数の動作が同時に(少なくとも部分的に)実行されてもよく、1つまたは複数の動作の順序が切り替えられてもよいことが理解される。
【0020】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、システムおよび/または方法の動作ならびに挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計されてもよいことが理解される。
【0021】
特定の特徴の組合せが、特許請求の範囲に記載され、および/または本明細書に開示されていても、これらの組合せは、可能な実装形態の開示を限定することを意図されたものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されておらず、および/または本明細書に開示されていない方法で組み合わされてもよい。以下に列挙されている各従属請求項は1つの請求項のみに直接従属してもよいが、可能な実装形態の開示は、請求項セット内の他の全ての請求項との組合せにおいて各従属請求項を含む。
【0022】
本明細書で使用される要素、動作または命令は、特に明記されない限り、重要または必須であると解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことが意図されており、「1つまたは複数」と交換可能に使用されてもよい。1つの項目のみが意図される場合、「1つ」という用語または同様の言葉が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有する(having)」、「含む(include)」、「含む(including)」などの用語は、オープンエンド用語であることが意図されている。さらに、「に基づいて」という語句は、特に明記されない限り、「に少なくとも部分的に基づいて」を意味することが意図されている。さらに、「[A]および[B]の少なくとも一方」または「[A]または[B]の少なくとも一方」などの表現は、Aのみ、Bのみ、またはAおよびBの両方を含むと理解されるべきである。
【0023】
本明細書を通して、「一実施形態」、「実施形態」、または同様の文言への言及は、記載の実施形態に関連して説明される特定の特徴、構造または特性が、本解決策の少なくとも1つの実施形態に含まれることを意味する。したがって、「一実施形態では」、「実施形態では」という語句、および本明細書全体を通して同様の文言は、必ずしもそうとは限らないが、全て同じ実施形態に言及していてもよい。
【0024】
さらに、本開示の記載された特徴、利点および特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わされてもよい。当業者であれば、本明細書の説明に照らして、特定の実施形態の1つまたは複数の特定の特徴もしくは利点なしで本開示が実施されてもよいことを認識するであろう。他の例では、本開示の全ての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴および利点が認められてもよい。
【0025】
本開示の実施形態は、LANに接続されたデバイスを、それらのデバイスの処理能力を共有するエッジクラウドのための高可用性サービスとして使用するという問題を解決する。本開示の実施形態は、(i)没入型技術を含む高い計算リソースを必要とする技術に使用されるが、これらの技術に必要な全ての計算タスクを単独で実行するのに十分なリソースを有さなくてもよいデバイスを含み、(ii)必要に応じてこれらの共有リソースを使用するために、一部のリソースをローカルクラウドに提供するのに十分なリソースを有するデバイスを含み、(iii)ローカルクラウドコントローラとして機能する用意がある少なくとも2つのデバイスを含む、任意のLANに適用可能な方法およびデバイスを含む。
【0026】
本開示では、「デバイス」という用語は、ローカルクラウドから利用可能なリソースにアクセスする能力を有するLANに接続された全てのデバイスを指してもよい。「アクティブコントローラ」という用語は、ローカルクラウドに利用可能なリソースを識別し、デバイスに代わってタスクを割り当てる任意のデバイスを指してもよい。「ワーカ」という用語は、アクティブコントローラによって割り当てられたタスクを実行している任意のデバイスを指してもよい。
【0027】
図1はLANネットワークの一実施形態を示しており、108はLAN101のゲートウェイルータであり、デバイス102、103、104、105、106および107はネットワークに接続された異なるデバイスである。いくつかの実施形態では、LAN101に接続された複数のデバイスからのリソースを使用して、ローカルクラウドを作成してもよい。セットアップは、LAN内の他のデバイスを登録することを担当し、それらのデバイスへのタスク割り当てを管理するアクティブコントローラ107として機能するLAN内の任意のデバイスを含んでもよい。「タスク割り当ての管理」は、ローカルクラウド内のワーカ間のタスクの移行を含む。
【0028】
要求を処理するためにアクティブコントローラを割り当て、高可用性ローカルクラウドサービスを提供するために、様々な実施形態が利用されてもよい。
図1では、デバイス6(107)がアクティブコントローラとして機能しているが、デバイス1(102)およびデバイス4(106)は、現在のアクティブコントローラが応答しなくなった場合にアクティブコントローラとして機能するように利用可能であってもよい。
【0029】
図2は、利用可能なコントローラが高可用性アクティブコントローラの選択プロセスに関与するプロセスの一実施形態のフローチャートを示す。プロセスは、利用可能なコントローラ(201)が2つのタイマを2つのタイマ値T1VおよびT2Vにそれぞれ初期化する動作201で開始してもよい。例えばタイマは、T1タイマおよびT2タイマであってもよい。いくつかの実施形態では、2つのタイマ値T1VおよびT2Vは、予め決定されていてもよい。タイマ値T1VおよびT2Vは、少なくとも1つのコントローラが利用可能である場合に、どのコントローラもアクティブでない時間量を制限するために使用されてもよい。タイマ値T1Vは、別のコントローラが既にアクティブであるという指示を利用可能なコントローラが待機する時間量に対応してもよい。タイマ値T2Vは、アクティブコントローラが既にアクティブコントローラであるという指示を送信する前にアクティブコントローラが待機する時間量に対応してもよい。いくつかの実施形態では、タイマ値T1Vはタイマ値T2Vよりも長い。T1VおよびT2Vのタイマ値、ならびにT1VとT2Vとの間の比は、供給されてもよく、実験的に決定されてもよく、適応的に決定されてもよい。いくつかの実施形態では、タイマ値T1Vとタイマ値T2Vとの間の3:1の比は、その前にアクティブコントローラがもはやアクティブでない場合を除いて、利用可能なコントローラが少なくとも2つの「アクティブです」メッセージを受信することを可能にし、その場合、利用可能なコントローラはアクティブコントローラの役割を担ってもよい。
【0030】
いくつかの実施形態では、(例えば、LAN上の全てのデバイスが同時に電源投入された後に)アクティブであると全て同時に宣言する可能性がある利用可能なコントローラ間の同期を回避するために、各利用可能なコントローラは、T1タイマをT1Vに設定した後に、不規則に選択された小さな時間間隔をT1タイマに追加してもよい。いくつかの実施形態では、自身を利用可能なコントローラとして最初に通知するデバイスは、アクティブコントローラになる優先順位を有していてもよい。
【0031】
プロセスは動作201から動作202に進み、利用可能なコントローラは、「どれがアクティブか?」メッセージを「全てのコントローラ」のマルチキャストグループに送信する。動作203において、利用可能なコントローラは、T1タイマをT1Vに設定する。動作204では、利用可能なコントローラは、現在のアクティブコントローラから「アクティブです」マルチキャストメッセージが到着するまで待機するか、またはT1タイマが満了するまで待機する。LANが既にアクティブコントローラを有することを示す「アクティブです」メッセージが受信された場合、プロセスは動作204から動作203に戻り、T1タイマをT1Vにリセットする。LANがアクティブコントローラを含まないことを示すT1タイマが満了した場合、プロセスは動作204から動作205に進む。
【0032】
動作205では、利用可能なコントローラは、アクティブコントローラとなるように、「アクティブです」メッセージを全てのコントローラにマルチキャストする。動作206では、アクティブコントローラは、T2タイマをT2Vに設定する(206)。動作207において、アクティブコントローラは、
図3および
図4で説明したようにアクティブコントローラの役割を実行する。動作208では、アクティブコントローラは、現在のアクティブコントローラから「どれがアクティブか?」マルチキャストメッセージが到着するまで待機するか、またはT2タイマが満了するまで待機する。これらの条件のいずれかが満たされる場合、プロセスは動作205に戻る。待機中、アクティブコントローラはまた、ローカルクラウドリソースの要求を受信し、それらの要求を満たすためのリソースを含むワーカを識別してもよい。「どれがアクティブか?」マルチキャストメッセージの受信またはT2タイマの満了によってアクティブコントローラの待機状態が解除されるかどうかにかかわらず、アクティブコントローラは、動作205で全ての利用可能なコントローラにマルチキャスト「アクティブです」メッセージを送信し、動作206でT2タイマをT2Vに設定し、次に動作207で以前と同様に待機する。利用可能なコントローラがアクティブコントローラになると、このコントローラは、無期限にアクティブコントローラとして動作し続けてもよい。
【0033】
図3は、アクティブコントローラ301とワーカ304との接続セットアップの一実施形態を示す。ローカルクラウドの要求が来ると、アクティブコントローラ301は、LANに接続されたワーカ304を発見するためにメッセージをブロードキャストしてもよい。デバイスがローカルクラウドにリソースを提供することに同意した場合、デバイスは、確認応答302をアクティブコントローラに送信してもよい。次いで、アクティブコントローラは、SLA要求306で応答してもよく、これは、リソース可用性時間および電力可用性を含むワーカのリソースを共有するためのワーカに対する要求を含んでもよい。ワーカが承諾した場合、ワーカはSLA回答303を送信してもよく、その後、アクティブコントローラは接続307をセットアップしてもよい。ワーカはまた、ワーカ上のアクティブアプリケーションの数およびワーカのエネルギー消費量などの情報を共有しなくてはならない場合がある。ワーカはまた、セッション中にこのような情報を共有することを要求される場合がある。
【0034】
アクティブコントローラがワーカからSLA回答を受信した後、アクティブコントローラは様々なワーカへのタスクの割り当てを開始してもよい。
図4は、アクティブコントローラワーカのタスク割り当ての一実施形態を示す。タスク411は、アクティブコントローラ412がワーカ403、405、407および408に割り当てる必要がある1つまたは複数のタスクに対応してもよい。アクティブコントローラは、1つまたは複数のタスクをサブタスク401、402、404、406、409および410に分割してもよい。
【0035】
いくつかの実施形態では、アクティブコントローラは、ワーカのリソース可用性(例えば、ワーカがリースすることを望むストレージ、ワーカの総ストレージ容量、ワーカの電力可用性など)を使用してタスクを割り当ててもよい。いくつかの実施形態では、ワーカは、限定はしないが、ワーカのリソースの一部を使用する無関係なローカル計算を含む様々な理由で、リソースを提供するワーカの意思を更新するようにアクティブコントローラに通知してもよい。
【0036】
いくつかの実施形態では、何らかの理由でワーカが使用されることをもはや望まない場合、ワーカは、この参加の変更をアクティブコントローラに通知してもよい。ワーカはすぐに切断しなくてもよい。代わりに、アクティブコントローラは、ワーカ上で実行されているアクティブタスクがあるかどうかを確認してもよい。ワーカは、切断する前に現在のタスクを終了することを選択してもよく、またはアクティブコントローラがネットワーク内の他のワーカにタスクを移行するまで待機してもよい。ネットワークの問題または他の問題に起因してワーカが切断した場合、アクティブコントローラは、切断されたワーカに割り当てられたタスクをネットワーク内の他のワーカに再割り当てしてもよい。
【0037】
いくつかの実施形態では、アクティブコントローラが無応答になり、かつ別のコントローラが利用可能になると、
図2に示すプロセスを使用して新しいアクティブコントローラが選択されてもよい。いくつかの実施形態では、ローカルクラウドは、LANの所有者が支払いの引き換えにコンピューティングリソースおよびストレージリソースをリースするサブスクリプションベースのサービスとして使用されてもよい。一例は、画像/ファイルを記憶するためにローカルクラウドを使用すること、またはいくつかの画像処理タスクを実行することであってもよい。ローカルエリアクラウドはまた、そのネットワーク内の任意のデバイスのための任意のタスクを実行するために使用されてもよい。例えば、ネットワーク内の任意のデバイスがストリーミング没入メディアであり、デバイスが着信メディアストリームを処理するのに十分なリソース(復号、ステッチング)を有していない場合、デバイスは、ネットワーク内のアクティブコントローラに、デバイスに代わってメディアを処理するように依頼してもよい。
【0038】
エッジクラウドのための高可用性サービスとしてLANを使用するための方法論は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶されてもよい。例えば
図5は、本開示の実施形態を実施するのに適したコンピュータシステム500の一実施形態を示す。
【0039】
コンピュータソフトウェアは、コンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接に、または解釈、マイクロコードの実行などを介して実行できる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構の適用を受け得る、任意の適切な機械コードまたはコンピュータ言語を使用して符号化されてもよい。
【0040】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、およびモノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはその構成要素上で実行されてもよい。
【0041】
コンピュータシステム500について
図5に示される構成要素は、例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲または機能に関する制限を示唆することを意図するものではない。構成要素の構成もまた、コンピュータシステム500の例示的な実施形態に示される構成要素のいずれか1つまたは組合せに関する依存性または要件を有すると解釈されるべきではない。
【0042】
コンピュータシステム500は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した、1人または複数の人間のユーザによる入力に応答してもよい。ヒューマンインタフェースデバイスを使用して、音声(発話、音楽、周囲音など)、画像(スキャン画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係ない特定のメディアをキャプチャしてもよい。
【0043】
入力ヒューマンインタフェースデバイスは、キーボード501、マウス502、トラックパッド503、タッチスクリーン510、データグローブ(図示せず)、ジョイスティック505、マイク506、スキャナ507、カメラ508のうちの1つまたは複数(それぞれ1つのみを図示)を含んでもよい。
【0044】
コンピュータシステム500はまた、特定のヒューマンインタフェース出力デバイスを含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光および匂い/味を介して、1人または複数の人間ユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン510、データグローブ(図示せず)、またはジョイスティック505による触覚フィードバック、しかし入力デバイスとして機能しない触覚フィードバックデバイスが存在してもよい)、音声出力デバイス(スピーカ509、ヘッドフォン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン510など、各々タッチスクリーン入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にかかわらず、それらのうちのいくつかは、ステレオグラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を介して2次元視覚出力または3次元以上の出力を出力してもよい)、ならびにプリンタ(図示せず)を含んでもよい。コンピュータシステム500は、CD/DVDを備えたCD/DVD ROM/RW Z20または同様の媒体521を含む光学媒体、サムドライブ522、リムーバブルハードドライブもしくはソリッドステートドライブ523、テープおよびフロッピーディスクなどのレガシー磁気媒体(描写せず)、セキュリティドングルなどの特殊なROM/ASIC/PLDベースのデバイス(描写せず)など、人間がアクセス可能な記憶デバイスおよびそれらに関連する媒体を含んでもよい。
【0045】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0046】
コンピュータシステム500はまた、1つまたは複数の通信ネットワークへのインタフェースを含んでもよい。ネットワークは、例えば、無線、有線、光であってもよい。ネットワークはさらに、ローカル、広域、都市、車両および産業、リアルタイム、遅延耐性などであってよい。ネットワークの例は、イーサネット、無線LANなどのLAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビおよび地上波放送テレビを含むテレビの有線もしくは無線広域デジタルネットワーク、CANBusを含む車両および産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(549)(例えば、コンピュータシステム500のUSBポートなど)に接続された外部ネットワークインタフェースアダプタを必要とし、他のものは一般に、以下に記載されるようにシステムバスへの接続によってコンピュータシステム500のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインタフェースまたはスマートフォンコンピュータシステムへのセルラネットワークインタフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム500は、他のエンティティと通信してもよい。このような通信は、単方向の受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルエリアまたは広域デジタルネットワークを使用する他のコンピュータシステムへの通信であり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明したように、それらのネットワークおよびネットワークインタフェースのそれぞれで使用されてもよい。
【0047】
前述のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインタフェースは、コンピュータシステム500のコア540に取り付けられてもよい。
【0048】
コア540は、1つまたは複数の中央処理装置(CPU)541、グラフィック処理装置(GPU)542、フィールドプログラマブルゲートエリア(FPGA)の形態の専用プログラマブル処理装置543、および特定のタスク用のハードウェアアクセラレータ544などを含んでもよい。これらのデバイスは、読み取り専用メモリ(ROM)545、ランダムアクセスメモリ546、ユーザがアクセスできない内蔵ハードドライブやSSDなどの内部大容量記憶装置547と共に、システムバス548を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス548は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であってもよい。周辺デバイスは、コアのシステムバス548に直接取り付けられてもよく、周辺バス549を介して取り付けられてもよい。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0049】
CPU541、GPU542、FPGA543およびアクセラレータ544は、組み合わせて上述のコンピュータコードを構成し得る特定の命令を実行してもよい。そのコンピュータコードは、ROM545またはRAM546に記憶されてもよい。一時データもまた、RAM546に記憶されてもよいが、永続データが、例えば内部大容量記憶装置547に記憶されてもよい。任意のメモリデバイスへの高速記憶および検索は、1つまたは複数のCPU541、GPU542、大容量記憶装置547、ROM545、RAM546などと密接に関連付けられ得るキャッシュメモリの使用によって可能にされてもよい。
【0050】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有してもよい。媒体およびコンピュータコードは、本開示の目的のために特別に設計されかつ構成されたものであってもよく、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであってもよい。
【0051】
限定ではなく一例として、アーキテクチャ500、特にコア540を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供してもよい。このようなコンピュータ可読媒体は、上述のようなユーザアクセス可能な大容量記憶装置、ならびにコア内部大容量記憶装置547またはROM545などの非一時的な性質のコア540の特定の記憶装置に関連付けられた媒体であってもよい。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶され、コア540によって実行されてもよい。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含んでもよい。ソフトウェアは、コア540、および具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM546に記憶されたデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することと、を含む、本明細書に記載された特定のプロセス、または特定のプロセスの特定の部分を実行させてもよい。加えて、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ544)に配線で接続された、または他の方法で具現化された論理の結果として機能性を提供してもよく、この回路はソフトウェアの代わりに、またはソフトウェアと共に動作して、本明細書に記載された特定プロセス、または特定プロセスの特定の部分を実行し得る。ソフトウェアへの言及は、論理を包含してもよく、その逆もまた同様である。コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具体化する回路、またはこれらの両方を包含してもよい。本開示は、ハードウェアとソフトウェアとの任意の適切な組合せを包含する。
【0052】
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換および様々な代替の均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないかまたは記載されていないが、本開示の原理を具体化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案できることが理解されよう。
【0053】
前述の開示は、例示および説明を提供しているが、網羅的であることも、実装形態を厳密に開示の形態に限定することも意図されていない。修正形態および変形形態が上記の開示に照らして可能であり、または実装形態の実践から取得されてもよい。
【0054】
本明細書に開示されるプロセス/フローチャートにおけるブロックの特定の順序または階層は、例示的な手法の例示であることが理解される。設計上の選好に基づいて、プロセス/フローチャート内のブロックの特定の順序または階層は再配置されてもよいことが理解される。また、いくつかのブロックが組み合わされたり、省略されたりしてもよい。添付の方法請求項は、サンプルの順序で様々なブロックの要素を提示し、提示された特定の順序または階層に限定されることを意味しない。
【0055】
いくつかの実施形態は、任意の可能な技術的詳細の統合レベルでシステム、方法および/またはコンピュータ可読媒体に関してもよい。さらに、上述した構成要素のうちの1つまたは複数は、コンピュータ可読媒体上に記憶され、かつ少なくとも1つのプロセッサによって実行可能な命令として実装されてもよい(および/または少なくとも1つのプロセッサを含んでもよい)。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読非一時的記憶媒体を含んでもよい。
【0056】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持し、かつ記憶し得る有形のデバイスであってもよい。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置または上記の任意の適切な組合せであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下のもの、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、命令が記録されたパンチカードまたは溝内の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組合せを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0057】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてもよく、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、広域ネットワーク、および/または無線ネットワークを介して外部コンピュータもしくは外部記憶デバイスにダウンロードされてもよい。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含んでもよい。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0058】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、またはSmalltalkもしくはC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソースコードもしくはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、かつリモートコンピュータ上で部分的に、またはリモートコンピュータもしくはサーバ上で完全に実行してもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよいし、または(例えば、インターネットサービスプロバイダを使用したインターネットを介して)外部コンピュータへの接続がなされてもよい。一部の実施形態では、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路が、態様または動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行してもよい。
【0059】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令が、フローチャートおよび/またはブロック図のブロックで指定された機能/動作を実装するための手段を作成するようにマシンを生成するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令はまた、記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートおよび/またはブロック図のブロックで指定された機能/動作の態様を実装する命令を含む製品を含むように、コンピュータ、プログラマブルデータ処理装置および/または他のデバイスに特定の方法で機能するように指示してもよいコンピュータ可読記憶媒体に記憶されてもよい。
【0060】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置もしくは他のデバイス上で実行される命令がフローチャートおよび/またはブロック図のブロックで指定された機能/動作を実装するように、コンピュータ実装プロセスを生成するために一連の動作ステップがコンピュータ、他のプログラマブル装置もしくは他のデバイス上で実行されるよう、コンピュータ、他のプログラマブルデータ処理装置もしくは他のデバイス上にロードされてもよい。
【0061】
図のフローチャートおよびブロック図は、様々な実施形態によるシステム、方法、およびコンピュータ可読媒体の可能な実装形態のアーキテクチャ、機能および動作を示す。これに関して、フローチャートもしくはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメントまたは命令の一部を表してもよい。方法、コンピュータシステムおよびコンピュータ可読媒体は、図に示されているものと比べて、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。一部の代替実装形態では、ブロックに記載された機能は、図に記載されているのとは異なる順序で実行されてもよい。例えば、連続して示されている2つのブロックは、実際には、同時にまたは実質的に同時に実行されてもよく、またはブロックは、関連する機能に応じて、場合によっては逆の順序で実行されてもよい。ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェアとコンピュータ命令との組合せを実現する、専用ハードウェアベースのシステムによって実装されてもよいことにも留意されたい。
【0062】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、システムおよび/または方法の動作ならびに挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計されてもよいことが理解される。
【0063】
上記の開示は、以下に列挙される実施形態も包含する。
【0064】
(1)ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続されたネットワークノードの少なくとも1つのプロセッサによって実行される方法であって、ネットワークノードおよび1つまたは複数の追加のネットワークノードがクラウドを形成し、本方法は、第1のタイマを第1の値に設定するステップであって、第1のタイマが、1つまたは複数の追加のネットワークノードからの別のネットワークノードがクラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる、ステップと、第1のタイマを起動するステップと、第1のタイマが満了する前に、1つまたは複数の追加のネットワークノードからの別のネットワークノードがアクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定するステップと、第1のタイマが満了する前に第1のメッセージが受信されたとの決定に基づいて、第1のタイマを再起動するステップと、第1のタイマが満了する前に第1のメッセージが受信されていないとの決定に基づいて、1つまたは複数のタスクを、クラウド内のアクティブコントローラとして、1つまたは複数の追加のネットワークノードからの少なくとも1つのネットワークノードに割り当てるステップとを含む。
【0065】
(2)第2のタイマを第2の値に設定するステップと、第1のタイマが満了する前に第1のメッセージが受信されていないとの決定に基づいて、第2のタイマを起動するステップと、第2のタイマの満了に基づいて、またはアクティブコントローラの識別を要求する第3のメッセージの複数のネットワークノード内の別のネットワークノードからの受信に基づいて、1つまたは複数の追加のネットワークノードからの各ネットワークノードに、ネットワークノードがクラウド内のアクティブコントローラであることを示す第2のメッセージをブロードキャストするステップとをさらに含む、特徴(1)に記載の方法。
【0066】
(3)第1のタイマが第2のタイマよりも長い、特徴(2)に記載の方法。
【0067】
(4)ネットワークノードがアクティブコントローラである間に、利用可能なコントローラを発見するために、第4のメッセージを1つまたは複数の追加のネットワークノードから各ネットワークノードにブロードキャストするステップと、第4のメッセージに基づいて、1つまたは複数の追加のネットワークノードからの利用可能なネットワークノードから、利用可能なネットワークノードが利用可能なコントローラであることを示す第5のメッセージを受信するステップとをさらに含む、特徴(1)から(3)のいずれか1つに記載の方法。
【0068】
(5)第5のメッセージの受信に基づいて、利用可能なネットワークノードの1つまたは複数のリソースを指定するように利用可能なネットワークノードに要求する第6のメッセージを利用可能なネットワークノードに送信するステップと、第6のメッセージに基づいて、利用可能なネットワークノードの1つまたは複数のリソースのうちの少なくとも1つのリソースを指定する第7のメッセージを受信するステップと、第6のメッセージの受信に基づいて、1つまたは複数のタスクを少なくとも1つのリソースに基づく利用可能なネットワークノードに割り当てるステップとをさらに含む、特徴(4)に記載の方法。
【0069】
(6)利用可能なネットワークノードがもはや利用可能なコントローラではないことを示す第7のメッセージを利用可能なネットワークノードから受信するステップと、第7のメッセージの受信に基づいて、完了していない1つまたは複数のタスクが利用可能なネットワークノードに割り当てられているかどうかを決定するステップとをさらに含む、特徴(5)に記載の方法。
【0070】
(7)完了していない1つまたは複数のタスクが利用可能なネットワークノードに割り当てられているとの決定に基づいて、利用可能なネットワークノードとの接続を切断する前に、利用可能なネットワークノードが1つまたは複数のタスクを完了させるまで待機するステップをさらに含む、特徴(6)に記載の方法。
【0071】
(8)完了していない1つまたは複数のタスクが利用可能なネットワークノードに割り当てられているとの決定に基づいて、1つまたは複数のタスクを1つまたは複数の追加のネットワークノードから別の利用可能なネットワークノードに移行するステップをさらに含む、特徴(6)に記載の方法。
【0072】
(9)ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続された装置であって、装置および1つまたは複数の追加のネットワークノードがクラウドを形成し、本装置は、コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、コンピュータプログラムコードにアクセスし、コンピュータプログラムコードによって指示されたとおりに動作するように構成された少なくとも1つのプロセッサとを備え、コンピュータプログラムは、少なくとも1つのプロセッサに第1のタイマを第1の値に設定させるように構成された第1の設定コードであって、第1のタイマが、1つまたは複数の追加のネットワークノードからの別のネットワークノードがクラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる、第1の設定コードと、少なくとも1つのプロセッサに第1のタイマを起動させるように構成された第1の起動コードと、少なくとも1つのプロセッサに、第1のタイマが満了する前に、1つまたは複数の追加のネットワークノードからの別のネットワークノードがアクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定させるように構成された第1の決定コードと、第1のタイマが満了する前に第1のメッセージが受信されたとの決定に基づいて、少なくとも1つのプロセッサに第1のタイマを再起動させるように構成された再起動コードと、第1のタイマが満了する前に第1のメッセージが受信されていないとの決定に基づいて、少なくとも1つのプロセッサに、クラウド内のアクティブコントローラとして、1つまたは複数のタスクを1つまたは複数の追加のネットワークノードからの少なくとも1つのネットワークノードに割り当てさせるように構成された第1の割り当てコードとを含む。
【0073】
(10)コンピュータプログラムコードが、少なくとも1つのプロセッサに第2のタイマを第2の値に設定させるように構成された第2の設定コードと、第1のタイマが満了する前に第1のメッセージが受信されていないとの決定に基づいて、少なくとも1つのプロセッサに第2のタイマを起動させるように構成された第2の起動コードと、少なくとも1つのプロセッサに、第2のタイマの満了に基づいて、またはアクティブコントローラの識別を要求する第3のメッセージの複数のネットワークノード内の別のネットワークノードからの受信に基づいて、1つまたは複数の追加のネットワークノードからの各ネットワークノードに、ネットワークノードがクラウド内のアクティブコントローラであることを示す第2のメッセージをブロードキャストさせるように構成された第1のブロードキャスティングコードとをさらに含む、特徴(9)に記載の装置。
【0074】
(11)第1のタイマが第2のタイマよりも長い、特徴(11)に記載の装置。
【0075】
(12)コンピュータプログラムコードが、ネットワークノードがアクティブコントローラである間に、少なくとも1つのプロセッサに、利用可能なコントローラを発見するために、第4のメッセージを1つまたは複数の追加のネットワークノードからの各ネットワークノードにブロードキャストさせるように構成された第2のブロードキャストコードと、少なくとも1つのプロセッサに、第4のメッセージに基づいて、1つまたは複数の追加のネットワークノードからの利用可能なネットワークノードから、利用可能なネットワークノードが利用可能なコントローラであることを示す第5のメッセージを受信させるように構成された第1の受信コードとをさらに含む、特徴(9)から(11)に記載の装置。
【0076】
(13)コンピュータプログラムコードが、第5のメッセージの受信に基づいて、少なくとも1つのプロセッサに、利用可能なネットワークノードの1つまたは複数のリソースを指定するように利用可能なネットワークノードに要求する第6のメッセージを利用可能なネットワークノードに送信させるように構成された第1の送信コードと、少なくとも1つのプロセッサに、第6のメッセージに基づいて、利用可能なネットワークノードの1つまたは複数のリソースのうちの少なくとも1つのリソースを指定する第7のメッセージを受信させるように構成された第2の受信コードと、少なくとも1つのプロセッサに、第6のメッセージの受信に基づいて、1つまたは複数のタスクを少なくとも1つのリソースに基づく利用可能なネットワークノードに割り当てさせるように構成された第2の割り当てコードとをさらに含む、特徴(12)に記載の装置。
【0077】
(14)コンピュータプログラムコードが、少なくとも1つのプロセッサに、利用可能なネットワークノードがもはや利用可能なコントローラではないことを示す第7のメッセージを利用可能なネットワークノードから受信させるように構成された第2の受信コードと、少なくとも1つのプロセッサに、第7のメッセージの受信に基づいて、完了していない1つまたは複数のタスクが利用可能なネットワークノードに割り当てられているかどうかを決定させるように構成された第2の決定コードとをさらに含む、特徴(13)に記載の装置。
【0078】
(15)コンピュータプログラムコードが、少なくとも1つのプロセッサに、完了していない1つまたは複数のタスクが利用可能なネットワークノードに割り当てられているとの決定に基づいて、利用可能なネットワークノードとの接続を切断する前に、利用可能なネットワークノードが1つまたは複数のタスクを完了させるまで待機させるように構成された待機コードをさらに含む、特徴(14)に記載の装置。
【0079】
(16)コンピュータプログラムコードが、少なくとも1つのプロセッサに、完了していない1つまたは複数のタスクが利用可能なネットワークノードに割り当てられているとの決定に基づいて、1つまたは複数のタスクを1つまたは複数の追加のネットワークノードからの別のネットワークノードに移行させるように構成された移行コードをさらに含む、特徴(15)に記載の装置。
【0080】
(17)命令が記憶された非一時的コンピュータ可読媒体であって、ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続されたネットワークノードのプロセッサによって実行されると、ネットワークノードおよび1つまたは複数の追加のネットワークノードがクラウドを形成し、プロセッサに、第1のタイマを第1の値に設定するステップであって、第1のタイマが、1つまたは複数の追加のネットワークノードからの別のネットワークノードがクラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる、ステップと、第1のタイマを起動するステップと、第1のタイマが満了する前に、1つまたは複数の追加のネットワークノードからの別のネットワークノードがアクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定するステップと、第1のタイマが満了する前に第1のメッセージが受信されたとの決定に基づいて、第1のタイマを再起動するステップと、第1のタイマが満了する前に第1のメッセージが受信されていないとの決定に基づいて、1つまたは複数のタスクを、クラウド内のアクティブコントローラとして、1つまたは複数の追加のネットワークノードからの少なくとも1つのネットワークノードに割り当てるステップとを含む方法を実行させる。
【0081】
(18)第2のタイマを第2の値に設定するステップと、第1のタイマが満了する前に第1のメッセージが受信されていないとの決定に基づいて、第2のタイマを起動するステップと、第2のタイマの満了に基づいて、またはアクティブコントローラの識別を要求する第3のメッセージの複数のネットワークノード内の別のネットワークノードからの受信に基づいて、1つまたは複数の追加のネットワークノードからの各ネットワークノードに、ネットワークノードがクラウド内のアクティブコントローラであることを示す第2のメッセージをブロードキャストするステップとをさらに含む、特徴(17)に記載の非一時的コンピュータ可読媒体。
【0082】
(19)第1のタイマが第2のタイマよりも長い、特徴(18)に記載の非一時的コンピュータ可読媒体。
【0083】
(20)ネットワークノードがアクティブコントローラである間に、利用可能なコントローラを発見するために、第4のメッセージを1つまたは複数の追加のネットワークノードから各ネットワークノードにブロードキャストするステップと、第4のメッセージに基づいて、1つまたは複数の追加のネットワークノードからの利用可能なネットワークノードから、利用可能なネットワークノードが利用可能なコントローラであることを示す第5のメッセージを受信するステップとをさらに含む、特徴(17)から(19)のいずれか1つに記載の非一時的コンピュータ可読媒体。
【符号の説明】
【0084】
101 ローカルエリアネットワーク(LAN)
102 デバイス
103 デバイス
104 デバイス
105 デバイス
106 デバイス
107 アクティブコントローラ
301 アクティブコントローラ
302 確認応答
303 SLA回答
304 ワーカ
306 SLA要求
307 接続
401 サブタスク
402 サブタスク
403 ワーカ
404 サブタスク
405 ワーカ
406 サブタスク
407 ワーカ
408 ワーカ
409 サブタスク
410 サブタスク
411 タスク
412 アクティブコントローラ
500 コンピュータシステム
501 キーボード
502 マウス
503 トラックパッド
505 ジョイスティック
506 マイク
507 スキャナ
508 カメラ
509 スピーカ
510 タッチスクリーン
521 媒体
522 サムドライブ
523 リムーバブルハードドライブもしくはソリッドステートドライブ
540 コア
541 中央処理装置(CPU)
542 グラフィック処理装置(GPU)
543 フィールドプログラマブルゲートエリア(FPGA)
544 ハードウェアアクセラレータ
545 読み取り専用メモリ(ROM)
546 ランダムアクセスメモリ
547 内部大容量記憶装置
548 システムバス
549 周辺バス
【手続補正書】
【提出日】2023-09-28
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続されたネットワークノードの少なくとも1つのプロセッサによって実行される方法であって、前記ネットワークノードおよび前記1つまたは複数の追加のネットワークノードがクラウドを形成し、前記方法が、
第1のタイマを第1の値に設定するステップであって、前記第1のタイマが、前記1つまたは複数の追加のネットワークノードからの別のネットワークノードが前記クラウド内のアクティブコントローラであるかどうかを決定することに関連付けられる、ステップと、
前記第1のタイマを起動するステップと、
前記第1のタイマが満了する前に、前記1つまたは複数の追加のネットワークノードからの別のネットワークノードが前記アクティブコントローラであることを示す第1のメッセージが受信されたかどうかを決定するステップと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されたとの決定に基づいて、前記第1のタイマを再起動するステップと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されていないとの決定に基づいて、1つまたは複数のタスクを、前記クラウド内の前記アクティブコントローラとして、前記1つまたは複数の追加のネットワークノードからの少なくとも1つのネットワークノードに割り当てるステップと
を含む、方法。
【請求項2】
第2のタイマを第2の値に設定するステップと、
前記第1のタイマが満了する前に前記第1のメッセージが受信されていないとの決定に基づいて、前記第2のタイマを起動するステップと、
前記第2のタイマの満了に基づいて、または前記アクティブコントローラの識別を要求する第3のメッセージの前記複数のネットワークノード内の別のネットワークノードからの受信に基づいて、前記1つまたは複数の追加のネットワークノードからの各ネットワークノードに、前記ネットワークノードが前記クラウド内の前記アクティブコントローラであることを示す第2のメッセージをブロードキャストするステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記第1のタイマが前記第2のタイマよりも長い、請求項2に記載の方法。
【請求項4】
前記ネットワークノードが前記アクティブコントローラである間に、
利用可能なコントローラを発見するために、第4のメッセージを前記1つまたは複数の追加のネットワークノードからの各ネットワークノードにブロードキャストするステップと、
前記第4のメッセージに基づいて、前記1つまたは複数の追加のネットワークノードからの利用可能なネットワークノードから、前記利用可能なネットワークノードが利用可能なコントローラであることを示す第5のメッセージを受信するステップと
をさらに含む、請求項1に記載の方法。
【請求項5】
前記第5のメッセージの受信に基づいて、
前記利用可能なネットワークノードの1つまたは複数のリソースを指定するように前記利用可能なネットワークノードに要求する第6のメッセージを前記利用可能なネットワークノードに送信するステップと、
前記第6のメッセージに基づいて、前記利用可能なネットワークノードの前記1つまたは複数のリソースのうちの少なくとも1つのリソースを指定する第7のメッセージを受信するステップと、
前記第6のメッセージの受信に基づいて、1つまたは複数のタスクを前記少なくとも1つのリソースに基づく前記利用可能なネットワークノードに割り当てるステップと
をさらに含む、請求項4に記載の方法。
【請求項6】
前記利用可能なネットワークノードがもはや前記利用可能なコントローラではないことを示す第7のメッセージを前記利用可能なネットワークノードから受信するステップと、
前記第7のメッセージの受信に基づいて、完了していない1つまたは複数のタスクが前記利用可能なネットワークノードに割り当てられているかどうかを決定するステップと
をさらに含む、請求項5に記載の方法。
【請求項7】
完了していない1つまたは複数のタスクが前記利用可能なネットワークノードに割り当てられているとの決定に基づいて、前記利用可能なネットワークノードとの接続を切断する前に、前記利用可能なネットワークノードが前記1つまたは複数のタスクを完了させるまで待機するステップ
をさらに含む、請求項6に記載の方法。
【請求項8】
完了していない1つまたは複数のタスクが前記利用可能なネットワークノードに割り当てられているとの決定に基づいて、前記1つまたは複数のタスクを前記1つまたは複数の追加のネットワークノードから別の利用可能なネットワークノードに移行するステップ
をさらに含む、請求項6に記載の方法。
【請求項9】
ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続された装置であって、前記装置および前記1つまたは複数の追加のネットワークノードがクラウドを形成し、前記装置が、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって指示されたとおりに動作するように構成された少なくとも1つのプロセッサとを備え、前記コンピュータプログラムコードが、
前記少なくとも1つのプロセッサに、請求項1から8のいずれか一項に記載の方法を実行させるコードを含む、装置。
【請求項10】
命令
を含むコンピュータプログラムであって、ローカルエリアネットワーク(LAN)を介して1つまたは複数の追加のネットワークノードに接続されたネットワークノードのプロセッサによって実行されると、前記ネットワークノードおよび前記1つまたは複数の追加のネットワークノードがクラウドを形成し、前記プロセッサに、
請求項1から8のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【国際調査報告】