(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-14
(45)【発行日】2024-11-22
(54)【発明の名称】クラウドデグレードモードにおいてデバイス動作信頼性を継続的に確保するための方法および装置
(51)【国際特許分類】
H04L 43/10 20220101AFI20241115BHJP
【FI】
H04L43/10
【外国語出願】
(21)【出願番号】P 2023044054
(22)【出願日】2023-03-20
(62)【分割の表示】P 2021519613の分割
【原出願日】2019-10-01
【審査請求日】2023-04-06
(32)【優先日】2018-10-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ヒース,タリバー
(72)【発明者】
【氏名】ハリソン,ケイト
(72)【発明者】
【氏名】バーギース,マシュー
(72)【発明者】
【氏名】ヨギースワラン,カーシック
(72)【発明者】
【氏名】シュエン,イー
【審査官】吉田 歩
(56)【参考文献】
【文献】特表2013-544408(JP,A)
【文献】特表2022-504548(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 43/10
(57)【特許請求の範囲】
【請求項1】
通信デバイスと、第1のネットワークの第1のネットワークデバイスと、第2のネットワークの第2のネットワークデバイスとによって実行される方法であって、
前記通信デバイスが、前記第1のネットワークデバイスに、前記第1のネットワークデバイスからの第1のハートビート確認信号を要求する第1のハートビート要求を送信することと、
前記通信デバイスが、閾値期間にわたって前記第1のネットワークデバイスから前記第1のハートビート確認信号を受信できなかった後、故障状態が存在すると判断することと、
前記通信デバイスが、前記故障状態が存在すると判断したことに応答して、
前記第2のネットワークデバイスに、前記第2のネットワークデバイスからの第2のハートビート確認信号を要求する第2のハートビート要求を送信することとを備え、前記第2のネットワークは前記第1のネットワークとは異なり、前記
方法はさらに、
前記通信デバイスが、前記第2のネットワークデバイスから、前記第2のハートビート確認信号を受信することと、
前記通信デバイスが、前記第2のハートビート確認信号を受信したことに応答して、デバイス動作を実行することとを備え
、
前記第2のハートビート要求を送信することは、前記デバイス動作を実行する許可を要求することを備え、
前記第2のハートビート要求は、前記第2のネットワークデバイスに、前記通信デバイスに対応付けられたデバイス状態データに基づいて、前記通信デバイスが前記デバイス動作の実行を許可されていると判断させるように構成され、
前記第1のネットワークデバイスが、
前記故障状態の前に、前記通信デバイスに対応付けられた前記デバイス状態データを前記前記第2のネットワークデバイスにプッシュすること、または
前記第2のネットワークデバイスによるプル動作に応答して、前記通信デバイスに対応付けられた前記デバイス状態データを送信すること、
のうちの少なくとも一方を行うように構成される、方法。
【請求項2】
前記デバイス状態データは、
前記通信デバイスを識別するデバイス識別子、
前記通信デバイスが前記デバイス動作を実行する能力を無効にする無効化データ
、または
支払状況
、
のうちの少なくとも1つを含む、請求項
1に記載の方法。
【請求項3】
前記デバイス状態データは、前記通信デバイスが前記デバイス動作を実行してもよいという前記第1のネットワークの前記第1のネットワークデバイスからの許可を示すハートビート確認データを含む、請求項
1に記載の方法。
【請求項4】
前記故障状態は、前記通信デバイスと前記第1のネットワーク上の前記第1のネットワークデバイスとの間の通信を妨げるネットワーク故障状態を含む、請求項1~
3のいずれか1項に記載の方法。
【請求項5】
前記
方法はさらに、
前記通信デバイスが、前記第2のネットワークデバイスに、前記第2のネットワークデバイスからの第3のハートビート確認信号を要求する第3のハートビート要求を送信することと、
前記通信デバイスが、前記閾値期間にわたって前記第2のネットワークデバイスから前記第3のハートビート確認信号を受信できなかった後、前記デバイス動作の実行を停止することとを備える、請求項1~
4のいずれか1項に記載の方法。
【請求項6】
前記
方法はさらに、
前記通信デバイスが、前記第2のネットワークデバイスに、前記第2のネットワークデバイスからの第3のハートビート確認信号を要求する第3のハートビート要求を送信することと、
前記通信デバイスが、前記第2のネットワークデバイスから、前記第3のハートビート確認信号を受信することと、
前記通信デバイスが、前記第3のハートビート確認信号を受信したことに応答して、前記デバイス動作を実行し続けることとを備える、請求項1~
4のいずれか1項に記載の方法。
【請求項7】
前記
方法はさらに、
前記通信デバイスが、前記第1のネットワークの前記第1のネットワークデバイスに前記第1のハートビート要求を送信する前に、ハートビート確認信号を受信するように前記第1のネットワークデバイスに登録することを備える、請求項1~
6のいずれか1項に記載の方法。
【請求項8】
システムであって、
通信デバイス
と、
第1のネットワークの第1のネットワークデバイスと、
第2のネットワークの第2のネットワークデバイスとを備え、
前記通信デバイスは、
前記第1のネットワークデバイスに、前記第1のネットワークデバイスからの第1のハートビート確認信号を要求する第1のハートビート要求を送信
し、
閾値期間にわたって前記第1のネットワークデバイスから前記第1のハートビート確認信号を受信できなかった後、故障状態が存在すると判断
し、
前記故障状態が存在すると判断したことに応答して、
前記第2のネットワークデバイスに、前記第2のネットワークデバイスからの第2のハートビート確認信号を要求する第2のハートビート要求を送信
し、前記第2のネットワークは前記第1のネットワークとは異なり、
前記通信デバイスは、
前記第2のネットワークデバイスから、前記第2のハートビート確認信号を受信
し、
前記第2のハートビート確認信号を受信したことに応答して、デバイス動作を実行
し、
前記第2のハートビート要求を送信することは、前記デバイス動作を実行する許可を要求することを備え、
前記第2のハートビート要求は、前記第2のネットワークデバイスに、前記通信デバイスに対応付けられたデバイス状態データに基づいて、前記通信デバイスが前記デバイス動作の実行を許可されていると判断させるように構成され、
前記第1のネットワークデバイスは、
前記故障状態の前に、前記通信デバイスに対応付けられた前記デバイス状態データを前記第2のネットワークデバイスにプッシュすること、または
前記第2のネットワークデバイスによるプル動作に応答して、前記通信デバイスに対応付けられた前記デバイス状態データを送信すること、
のうちの少なくとも一方を行うように構成される、システム。
【請求項9】
前記デバイス状態データは、
前記通信デバイスを識別するデバイス識別子、
前記通信デバイスが前記デバイス動作を実行する能力を無効にする無効化データ、
または
支払状況
、
のうちの少なくとも1つを含む、請求項
8に記載のシステム。
【請求項10】
前記デバイス状態データは、前記通信デバイスが前記デバイス動作を実行してもよいという前記第1のネットワークの前記第1のネットワークデバイスからの許可を示すハートビート確認データを含む、請求項
8に記載のシステム。
【請求項11】
前記故障状態は、前記通信デバイスと前記第1のネットワーク上の前記第1のネットワークデバイスとの間の通信を妨げるネットワーク故障状態を含む、請求項
8~10のいずれか1項に記載のシステム。
【請求項12】
前記通信デバイスは、前記第2のネットワークデバイスに、前記第2のネットワークデバイスからの第3のハートビート確認信号を要求する第3のハートビート要求を送信
し
前記通信デバイスは、前記閾値期間にわたって前記第2のネットワークデバイスから前記第3のハートビート確認信号を受信できなかった後、前記デバイス動作の実行を停止する
、請求項
8~11のいずれか1項に記載のシステム。
【請求項13】
前記通信デバイスは、前記第2のネットワークデバイスに、前記第2のネットワークデバイスからの第3のハートビート確認信号を要求する第3のハートビート要求を送信
し、
前記通信デバイスは、前記第2のネットワークデバイスから、前記第3のハートビート確認信号を受信
し、
前記通信デバイスは、前記第3のハートビート確認信号を受信したことに応答して、前記デバイス動作を実行し続ける、請求項
8~11のいずれか1項に記載のシステム。
【請求項14】
前記通信デバイスは、前記第1のネットワークの前記第1のネットワークデバイスに前記第1のハートビート要求を送信する前に、ハートビート確認信号を受信するように前記第1のネットワークデバイスに登録する
、請求項
8~13のいずれか1項に記載のシステム。
【請求項15】
前記通信デバイス、
前記第1のネットワークデバイス、および前記第2のネットワークデバイスに請求項1~
7のいずれか1項に記載の方法を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、クラウドデグレードモード(cloud-degraded mode)におけるネットワーク
接続されたデバイスの高信頼性動作に関する。
【背景技術】
【0002】
背景
モノのインターネット(IoT)デバイスおよび他のデバイスをサポートするために非常に高度の動作信頼性を必要とするクラウドサービスがある。デバイスは、進行中であったタスクまたは動作をデバイスが確実に実行し続けることができるように、クラウド環境からのハートビート(キープアライブ信号とも呼ばれる)の返信を必要とする傾向がある。デバイスがクリティカルになる点で、クラウドサービスが全システムの信頼性の大部分になるという問題が生じる。
【0003】
クラウドサービスの信頼性を高める方法の1つは、システム全体を2つ以上の場所で複製してN+1の冗長性を効果的に提供することである。しかしながら、この技術は管理が困難であり、2つのシステム間の完全な一貫性は複雑かつ高価であり得る。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
1次クラウドネットワークなどの1次ネットワークは1つ以上のサーバなどのネットワークデバイスを含み、ネットワークデバイスは、1次ネットワークと通信するさまざまなデバイスについてのデバイス状態データを格納する。たとえば、デバイスは、モノのインターネット(IoT)デバイス、無線基地局、エンドユーザデバイス(無線モバイルデバイスおよび有線デバイス)、またはその他のデバイスを含む。一例における、2次クラウドネットワークなどの2次ネットワーク内の1つ以上のサーバなどのバックアップネットワークデバイスは、より小さいシステムであり、1次ネットワークが保持する状態データのサブセットをバックアップする。いくつかの実現例では、2次ネットワーク内のバックアップデバイスは、1次ネットワークから取得される有効なハートビート確認データ(キープアライブ信号データ)のコピーを保持する。一例では、キープアライブ信号データのみが2次ネットワークによってバックアップされる。しかしながら、ハートビート確認データとも呼ばれるキープアライブデータのバックアップを含む限り、デバイス状態データの任意のサブセットがバックアップされればよい。
【0005】
いくつかの実現例では、システムは、1次クラウドインフラストラクチャ内の1つ以上のサーバによって提供される1次サービスと、2次クラウドインフラストラクチャ内のバックアップデバイスを通して維持されるハートビート専用システム(heartbeat-only system)(HBO)とによって構成される。2次ネットワークは、1次ネットワークに関連
して発生する故障状態の間に用いられる。いくつかの実現例におけるシステム、方法、および装置では、故障状態の前、間、または後に無効化エージェントがハートビート確認データを無効にすることもできる。
【0006】
ハートビート確認データは、デバイスが1次クラウドとの動作の継続を許可されていることを示すデータである。一例では、ハートビート確認データが2次ネットワーク内のテーブルに格納されることにより、第2のシステムは、完全に書き換えられたソフトウェアサービスがなくても最大分離(maximum separation)を提供することができる。これに
より、複数のクラウドインフラストラクチャにまたがる状態データの完全な一貫したコピーが常になくても、およびクラウドネットワークの一部にわたって信頼性を確保するためのより小さい独立したサービスがなくても、1次ネットワークの故障状態中でもIoTデバイスまたは他のデバイスの一貫した動作を維持することができる。ハートビートの提供は、場合によっては静的ウェブページハンドラと言えるほど、大幅に単純化された状態で再現され得る。しかしながら、任意の適切な動作を使用してハートビートを提供すればよい。1次クラウドシステムによってデバイスハートビート確認データで更新される2次クラウドシステムにより、一貫した状態を維持することが大幅に単純化される。
【0007】
本開示の態様は、クラウドデグレードモードにおけるネットワーク接続されたデバイスの高信頼性動作を提供する。本開示の一態様は、第1のネットワークと通信するように適合された通信デバイスの動作信頼性を提供するための方法を提供する。通信デバイスと第1のネットワークのネットワークデバイスとの間の通信を妨げるネットワーク故障状態が存在する場合、上記方法は、2次ネットワークのデータ処理ハードウェアにおいて、上記通信デバイスがデバイス動作を実行してもよいという許可を求めるハートビート要求を上記通信デバイスから受信することを含む。上記方法は、上記データ処理ハードウェアが、上記通信デバイスに対応付けられたデバイス状態データを取得することをさらに含む。上記方法は、上記データ処理ハードウェアが、上記通信デバイスに対応付けられた上記デバイス状態データに基づいて、上記通信デバイスが上記デバイス動作の実行を許可されているか否かを判断することをさらに含む。上記通信デバイスが上記デバイス動作の実行を許可されている場合、上記方法は、上記データ処理ハードウェアが、上記通信デバイスにハートビート確認信号を送信することをさらに含む。上記ハートビート確認信号は上記通信デバイスが上記デバイス動作を実行することを許可する。
【0008】
本開示の実現例は、以下の任意の特徴のうちの1つ以上を含んでもよい。上記デバイス状態データを取得することは、上記通信デバイスに対応付けられた上記デバイス状態データを上記第1のネットワークの上記ネットワークデバイスから受信することを含んでもよい。いくつかの実現例では、上記通信デバイスから上記ハートビート要求を受信する前に上記デバイス状態データを受信した場合、および上記ネットワーク故障状態が存在しない場合、上記方法は、上記デバイス状態データをバックアップデータストアに格納することと、上記通信デバイスを識別するデバイス識別子を用いて上記バックアップデータストアから上記デバイス状態データを取り出すことと、上記通信デバイスを上記バックアップデータストアに格納された上記デバイス状態データに対応付けることとを含む。いくつかの例では、上記通信デバイスが上記デバイス動作の実行を許可されているか否かを判断することは、上記デバイス状態データがハートビート確認データを含むか否かを判断することを含む。上記ハートビート確認データは、上記通信デバイスが上記動作を実行してもよいという上記第1のネットワークの上記ネットワークデバイスからの許可を示してもよい。上記デバイス状態データがハートビート確認データを含む場合、上記方法は、上記通信デバイスが上記デバイス動作の実行を許可されていると判断することを含んでもよい。上記デバイス状態データがハートビート確認データを含まない場合、上記方法は、上記通信デバイスが上記ハートビート確認信号の受信を許可されていないと判断することを含んでもよい。いくつかの例では、上記方法は、上記デバイス状態データがハートビート確認データを含まない場合、上記通信デバイスへの上記ハートビート確認信号の送信を防止することによって、上記通信デバイスが上記デバイス動作を実行しないようにすることを含む。
【0009】
いくつかの実現例では、上記通信デバイスが上記デバイス動作の実行を許可されていると判断することは、上記通信デバイスが上記デバイス動作を実行する能力を無効にする無効化データを上記デバイス状態データが含むか否かを判断することを含む。これらの実現例では、上記デバイス状態データがハートビート確認データを含み無効化データを含まない場合、上記方法は、上記通信デバイスが上記デバイス動作の実行を許可されていると判
断することを含む。しかし、上記デバイス状態データが無効化データおよびハートビート確認データを含む場合は、上記方法は、上記通信デバイスが上記デバイス動作を実行してもよいという許可を取り消すことと、上記通信デバイスへの上記ハートビート確認信号の送信を保留することによって、上記通信デバイスが上記動作を実行しないようにすることとを含んでもよい。上記無効化データは、上記通信デバイスのソフトウェア更新が必要であること、上記通信デバイスが契約上の合意に従っていないこと、および/または上記通信デバイスが上記デバイス動作を実行するために必要なリソースを上記通信デバイスが利用できないことを示してもよい。
【0010】
いくつかの例では、上記第1のネットワークの上記ネットワークデバイスは、上記ネットワーク故障状態の前に、上記通信デバイスに対応付けられたデバイス状態データを上記データ処理ハードウェアにプッシュするように構成される。これに加えてまたはこれに代えて、上記第1のネットワークの上記ネットワークデバイスは、上記データ処理ハードウェアによるプル動作に応答して、上記通信デバイスに対応付けられた上記デバイス状態データを送信するように構成されてもよい。上記デバイス状態データは、上記通信デバイスを識別するデバイス識別子、上記通信デバイスが上記デバイス動作を実行する能力を無効にする無効化データ、上記通信デバイスに対応付けられた動作信頼性情報、支払状況、上記通信デバイスが組織メタデータを更新する能力、および/または全体的な環境の健全性の集約計算(aggregation calculation of overall environment health)を含んでもよい。
【0011】
上記ネットワーク故障状態が存在しない場合、上記通信デバイスは、上記第1のネットワークの上記ネットワークデバイスにデバイス動作の実行の許可を求める上記ハートビート要求を送信するように構成されてもよく、上記第1のネットワークの上記ネットワークデバイスは、上記通信デバイスに上記ハートビート確認信号を送信するように構成されてもよい。上記ネットワークデバイスは、上記通信デバイスに送信された上記ハートビート確認信号を含むように、上記通信デバイスに対応付けられた上記デバイス状態データを更新するようにさらに構成されてもよい。いくつかの実現例では、上記通信デバイスが上記第1のネットワークの上記ネットワークデバイスにハートビート要求を送信してから閾値期間内に上記ネットワークデバイスからハートビート確認信号を受信しない場合、上記ネットワーク故障状態が存在する。上記通信デバイスは、モノのインターネット(IoT)デバイス、温度センサ、無線基地局、モバイルデバイス、および/またはスマートアプライアンスを含んでもよい。
【0012】
本開示の別の態様は、クラウドデグレードモードにおけるネットワーク接続されたデバイスの高信頼性動作のためのシステムを提供する。本開示の一態様は、バックアップネットワークのデータ処理ハードウェアと、上記データ処理ハードウェアと通信するメモリハードウェアとを含む。上記メモリハードウェアは、上記データ処理ハードウェア上で実行されると上記データ処理ハードウェアに動作を実行させる命令を格納してもよい。通信デバイスと第1のネットワークのネットワークデバイスとの間の通信を妨げるネットワーク故障状態が存在する場合、上記動作は、上記通信デバイスからハートビート要求を受信すること含む。上記ハートビート要求は、上記通信デバイスがデバイス動作を実行してもよいという許可を求める。上記動作は、上記通信デバイスに対応付けられたデバイス状態データを取得することと、上記通信デバイスに対応付けられた上記デバイス状態データに基づいて、上記通信デバイスが上記デバイス動作の実行を許可されているか否かを判断することとをさらに含む。上記通信デバイスが上記デバイス動作の実行を許可されている場合、上記動作は上記通信デバイスにハートビート確認信号を送信することを含む。上記ハートビート確認信号は上記通信デバイスが上記デバイス動作を実行することを許可する。
【0013】
本開示の実現例は、以下の任意の特徴のうちの1つ以上を含んでもよい。上記デバイス
状態データを取得することは、上記通信デバイスに対応付けられた上記デバイス状態データを上記第1のネットワークの上記ネットワークデバイスから受信することを含んでもよい。いくつかの実現例では、上記通信デバイスから上記ハートビート要求を受信する前に上記デバイス状態データを受信した場合、および上記ネットワーク故障状態が存在しない場合、上記動作は、上記デバイス状態データをバックアップデータストアに格納することと、上記通信デバイスを識別するデバイス識別子を用いて上記バックアップデータストアから上記デバイス状態データを取り出すことと、上記通信デバイスを上記バックアップデータストアに格納された上記デバイス状態データに対応付けることとを含む。いくつかの例では、上記通信デバイスが上記デバイス動作の実行を許可されているか否かを判断することは、上記デバイス状態データがハートビート確認データを含むか否かを判断することを含む。上記ハートビート確認データは、上記通信デバイスが上記デバイス動作を実行してもよいという上記第1のネットワークの上記ネットワークデバイスからの許可を示してもよい。上記デバイス状態データがハートビート確認データを含む場合、上記動作は、上記通信デバイスが上記デバイス動作の実行を許可されていると判断することを含んでもよい。上記デバイス状態データがハートビート確認データを含まない場合、上記動作は、上記通信デバイスが上記ハートビート確認信号の受信を許可されていないと判断することを含んでもよい。上記動作は、上記デバイス状態データがハートビート確認データを含まない場合、上記通信デバイスへの上記ハートビート確認信号の送信を防止することによって、上記通信デバイスが上記デバイス動作を実行しないようにすることを含んでもよい。
【0014】
いくつかの実現例では、上記通信デバイスが上記デバイス動作の実行を許可されていると判断することは、上記通信デバイスが上記デバイス動作を実行する能力を無効にする無効化データを上記デバイス状態データが含むか否かを判断することを含む。これらの実現例では、上記デバイス状態データがハートビート確認データを含み無効化データを含まない場合、上記動作は、上記通信デバイスが上記デバイス動作の実行を許可されていると判断することとを含む。しかし、上記デバイス状態データが無効化データおよびハートビート確認データを含む場合は、上記動作は、上記通信デバイスが上記デバイス動作を実行してもよいという許可を取り消すことと、上記通信デバイスへの上記ハートビート確認信号の送信を保留することによって、上記通信デバイスが上記動作を実行しないようにすることとを含んでもよい。上記無効化データは、上記通信デバイスのソフトウェア更新が必要であること、上記通信デバイスが契約上の合意に従っていないこと、および/または上記通信デバイスが上記デバイス動作を実行するために必要なリソースを上記通信デバイスが利用できないことを示してもよい。
【0015】
いくつかの例では、上記第1のネットワークの上記ネットワークデバイスは、上記ネットワーク故障状態の前に、上記通信デバイスに対応付けられたデバイス状態データを上記データ処理ハードウェアにプッシュするように構成される。これに加えてまたはこれに代えて、上記第1のネットワークの上記ネットワークデバイスは、上記データ処理ハードウェアによるプル動作に応答して、上記通信デバイスに対応付けられた上記デバイス状態データを送信するように構成されてもよい。上記デバイス状態データは、上記通信デバイスを識別するデバイス識別子、上記通信デバイスが上記デバイス動作を実行する能力を無効にする無効化データ、上記通信デバイスに対応付けられた動作信頼性情報、支払状況、上記通信デバイスが組織メタデータを更新する能力、および/または全体的な環境の健全性の集約計算を含んでもよい。
【0016】
上記ネットワーク故障状態が存在しない場合、上記通信デバイスは、上記第1のネットワークの上記ネットワークデバイスに上記ハートビート要求を送信するように構成されてもよく、上記第1のネットワークの上記ネットワークデバイスは、上記通信デバイスに上記ハートビート確認信号を送信するように構成されてもよい。上記ネットワークデバイスは、上記通信デバイスに送信された上記ハートビート確認信号を含むように、上記通信デ
バイスに対応付けられた上記デバイス状態データを更新するようにさらに構成されてもよい。いくつかの実現例では、上記通信デバイスが上記第1のネットワークの上記ネットワークデバイスにハートビート要求を送信してから閾値期間内に上記ネットワークデバイスからハートビート確認信号を受信しない場合、上記ネットワーク故障状態が存在する。上記通信デバイスは、モノのインターネット(IoT)デバイス、温度センサ、無線基地局、モバイルデバイス、および/またはスマートアプライアンスを含んでもよい。
【0017】
さまざまな図面における同様の参照符号は同様の要素を示す。
【図面の簡単な説明】
【0018】
【
図1】1次ネットワークおよび2次ネットワークを含むネットワークシステムの一例の概略図である。
【
図2】
図1のネットワークシステムの1次ネットワークにおいて使用されるネットワークデバイスの一例の概略図である。
【
図3】
図1のネットワークシステムの2次ネットワークにおいて使用されるバックアップデバイスの一例の概略図である。
【
図4】1次ネットワークと通信するように適合された通信デバイスの動作信頼性を提供する方法のための動作の構成の一例のフローチャート図である。
【
図5】1次ネットワークと通信するように適合された通信デバイスの動作信頼性を提供する方法のための動作の構成の一例のフローチャート図である。
【
図6】1次ネットワークと通信するように適合された通信デバイスの動作信頼性を提供する方法のための動作の構成の一例のフローチャート図である。
【
図7】コンピューティングデバイスの一例の概略図である。
【発明を実施するための形態】
【0019】
詳細な説明
図1は、1次ネットワーク102および2次ネットワーク104を使用するネットワークシステム100の一例を示す。一例では、1次ネットワーク102は第1のプロバイダによって運営されるクラウドネットワークインフラストラクチャであり、2次ネットワーク104は異なるサービスプロバイダによって運営される異なるクラウドネットワークインフラストラクチャである。しかしながら、任意の適切なネットワーク構成を使用すればよい。さまざまな通信デバイス106、106a~eが、無線または有線インターフェースを介するなどの技術によって1次ネットワーク102に登録して1次ネットワーク102と通信する。5つの異なるタイプの通信デバイス106の例が示されているが、任意の数の通信デバイス106が任意の所定の時間に1次ネットワーク102に登録して1次ネットワーク102と通信すればよい。たとえば、一部の通信デバイス106a、106b、106eは、建物内の温度センサもしくはスマートアプライアンス、またはモバイルコンピューティングデバイス(たとえば、スマートフォン、タブレット、ウェアラブル等)など、モノのインターネット(IoT)デバイスまたはユーザ機器(UE)デバイスを含んでもよい。他の通信デバイス106c、106dは無線基地局を含んでもよい。示されている例では、通信デバイス106の各々が、インターネットプロトコル(IP)ベースの通信プロトコルまたはその他の適切なプロトコルを介して1次ネットワーク102と通信する。一例では、1つ以上の通信デバイス106は、インターネットベースのクラウドネットワークシステムの一部としてのドメインネームシステム(DNS)を介して1次ネットワーク102および2次ネットワーク104と通信することができる。1次ネットワーク102は1次ネットワークデバイス200を含む。ネットワークデバイス200(たとえば
図1の1次ネットワークデバイス200)は、通信デバイス106のうちの1つ以上と通信するウェブサーバなどの1つ以上のサーバであってもよい。そのため、ネットワークデバイス200は、データ処理ハードウェア210と、データ処理ハードウェア210と通信するメモリハードウェア220とを含む。いくつかの例では、ネットワークデバ
イス200は、ウェブ登録サービス202などのソフトウェアアプリケーションまたはサービスを実行する。通信デバイス106はウェブ登録サービス202に登録して、通信デバイス106が進行中であったタスクまたは動作を実行し続けることを許可するハートビート確認信号126(ハートビート確認またはキープアライブ信号とも呼ばれる)を受信してもよい。通信デバイス106のすべては、すべてIoTタイプのデバイスなど、同じタイプであってもよく、またはスマートフォンおよび当該スマートフォンが通信のために使用することを望み得る無線基地局など、異なるタイプのデバイスのさまざまな組み合わせであってもよい。1次ネットワーク102の一例は市民ブロードバンド無線サービス(CBRS)システムを含むが、1次ネットワーク102は任意の適切なシステムであればよい。
【0020】
IoTデバイス106aなどの通信デバイス106は、ネットワークデバイス200からのハートビート確認信号126の返信を要求するハートビート要求128を、1次ネットワーク102内のネットワークデバイス200(たとえばデータ処理ハードウェア210)に送信する。ハートビート確認信号126はハートビート確認データ118を含んでもよい。IoTデバイス106aがハートビート確認信号126を受信すると、IoTデバイス106aは、ネットワーク故障状態130が存在しないので、1次ネットワーク102との現在のタスクまたは動作を実行し続ける。通信デバイスとネットワークデバイス200との間のハートビート要求128およびハートビート確認信号126の通信は、少なくとも20秒に1回、240秒に1回、または任意の適切な期間中に1回発生し得る。いくつかの実現例では、サーバ200は、各特定の通信デバイス106に発行されたハートビート確認データ118を示すデバイス状態データ110を記録し、デバイス状態データ110を、当該特定の通信デバイス106に対応付けられたデバイス識別子(ID)114とともに、ネットワークデバイス200と通信するデバイス状態データストア212に格納する。いくつかの例では、デバイス状態データストア212は、ネットワークデバイス200のメモリハードウェア220上に存在する。デバイス状態データストア212に格納されるデバイス状態データ110は、1次ネットワーク102との現在のタスクまたは動作の実行に関連する情報を含む他の情報を含む。デバイス状態データ110は、支払状況、組織メタデータを更新する能力、全体的な環境の健全性の集約計算を表すデータ、および/またはその他の適切なデータを含み得るが、これらに限定されるものではない。IoTデバイス106aが、ハートビート要求128の発行に応答して対応するハートビート確認信号126を受信する限り、IoTデバイス106aは、自身が1次ネットワーク102との動作を継続可能であると理解している。しかし、たとえば1次ネットワーク102からハートビート確認信号126を受信しない場合は、IoTデバイス106aは1次ネットワーク102にネットワーク故障状態130が発生したと認識する。いくつかの例では、ハートビート要求128を発行/送信してから予め定められた期間内にハートビート確認信号126を受信しない場合、通信デバイス106はネットワーク故障状態130が存在すると認識する。
【0021】
いくつかの例では、1次ネットワーク102は第1のプロバイダのクラウドネットワークである。クラウドネットワーク102(たとえば1次ネットワーク102(
図1))は1次ネットワークデバイス200を含んでもよい。1次ネットワークデバイスはウェブ登録サービス202を実行してもよい。いくつかの例では、通信デバイスはウェブ登録サービス202に登録して1次ネットワーク102との動作を実行する。デバイス状態データ110は、通信デバイス106が1次クラウドネットワークとの動作を実行している間に格納される状態データであってもよい。たとえば、IoTデバイス106aがCBRSシステム内で通信するモバイルデバイスであり、1次ネットワーク102がCBRSシステムのスペクトル分析システム(SAS)に対応する場合、IoTデバイス106aは、1次ネットワーク102の1次ネットワークデバイス200にハートビート要求128を送信し、IoTデバイス106aが1次ネットワーク102と通信可能であることを示す対
応するハートビート確認信号126を受信してもよい。そのため、1次ネットワーク102のネットワークデバイス200は、ハートビート確認データ118を、対応するデバイスID114を介してIoTデバイス106aにリンクされるデバイス状態データ110としてデバイス状態データストア212に格納してもよく、それによって、デバイス状態データ110は、1次ネットワーク102内のIoTデバイス106aの動作インスタンスが適切であることを示す。すなわち、IoTデバイス106aはウェブ登録サービス202に適切に登録される。
【0022】
いくつかの例では、2次ネットワーク104はバックアップネットワークデバイス300を含む。バックアップネットワークデバイス300は、フォールバックネットワークデバイス300、バックアップデバイス300、またはミラーネットワークデバイス300と呼ばれることもある。ネットワークデバイス300は、通信デバイス106のうちの1つ以上と通信するウェブサーバなどの1つ以上のサーバであってもよい。そのため、バックアップネットワークデバイス300は、データ処理ハードウェア310と、データ処理ハードウェア310と通信するメモリハードウェア320とを含む。メモリハードウェア320は、データ処理ハードウェア310上で実行されるとデータ処理ハードウェア310にフローチャート400、500、および600(
図4~
図6)に関して説明するような動作を実行させる命令を格納してもよい。この例では、2次ネットワーク104のバックアップネットワークデバイス300は、1次ネットワークデバイス200によって1次ネットワーク102のデータストア212に格納されているデバイス状態データ110のサブセットを格納またはミラーリングする。1次ネットワーク102から取得した状態データ110のサブセットは、バックアップネットワークデバイス300によってバックアップされ、バックアップ済みデバイス状態データ110として
図1に示されている。したがって、ネットワークデバイス300は、たとえば、通信デバイス106によって認識されるような、1次ネットワーク102に対応付けられたネットワーク故障状態130の間に、デバイス状態データ110のサブセットのためのバックアップデバイスまたはフォールバックデバイスとして機能する。状態データ110のサブセットは、クラウド内で実行されるアプリケーションのクラウドインスタンスに対応付けられたバックアップ動作の一部として2次ネットワーク104にプッシュされるまたは2次ネットワーク104によってプルされるなど、任意の適切なメカニズムを介して1次ネットワーク102によって提供される。バックアップデバイス300上で実行されるソフトウェアアプリケーションがバックアップ動作を実行してもよい。この例では、2次ネットワーク104は1次ネットワーク102のクラウドネットワークよりも小さいクラウドネットワークであるため、バックアップシステムのコストおよび動作の複雑さが低下する。また、2次ネットワーク104内のバックアップデバイス300は、1次ネットワーク102と通信しているデバイスの各々について1次ネットワーク102によって保持される状態データ110のサブセットのみをバックアップするので、ストレージコストおよび動作の複雑さが低下する。たとえば、2次ネットワーク104は、通信デバイス106が新たに登録することを許可しない場合がある。すなわち、いくつかの実現例では、バックアップデバイス300はウェブ登録サービスを実行しない。
【0023】
ネットワークシステム100は無効化エージェント120(たとえばハートビート無効化エージェント120(
図1))をさらに含み、無効化エージェント120は、1次ネットワーク102および2次ネットワーク104に関して通信デバイス106を無効にすることが認可されている任意の適切なデバイスであればよい。無効化エージェント120は、対応する無効化データ124、124aを1次ネットワーク102に対応付けられた1次ネットワークデバイス200に提供してもよく、および/または対応する無効化データ124、124bを2次ネットワーク104に対応付けられたバックアップデバイス300に提供してもよい。ソフトウェアサービスプロバイダ、システム管理者、または他の実体が、無効化エージェント120を使用して、特定の通信デバイス106からの(たとえ
ばハートビート要求128を介した)要求時にネットワーク102、104からハートビート確認信号126を受信すべきではないそれらの特定の通信デバイス106を識別してもよい。より具体的には、無効化データ124は、ハートビート確認信号126を特定の通信デバイス106に送信しないように1次ネットワークデバイス200および/またはバックアップデバイス300に命令することによって、当該特定の通信デバイス106がタスクまたは動作を実行する能力を無効にする。無効化エージェント120は、通信デバイス106がデバイス動作を実行するために必要なリソースを通信デバイス106が利用できないと判断してもよい。これは、たとえば、特定の周波数または周波数のセットを通信デバイス106bによる使用のために基地局106cから利用できないと無効化エージェント120が判断した場合に、CBRSシステムにおいて行われてもよい。たとえば、CBRSシステム内の1つ以上の基地局(たとえば106c)が使用する周波数または特定の周波数は、政府系機関が使用中であり非政府系デバイスは利用できないとシステムおよび/または無効化エージェント120によって判断されてもよい。通信デバイス106bがそれらの周波数へのアクセスを試みないようにすることができる。他のシステムでは、ソフトウェア更新が必要な場合、通信デバイスの所有者がソフトウェア使用に関連して結ばれた契約上の合意に従っていない場合、または他の判定基準に基づいて、モノのインターネット(IoT)デバイス106aに1次ネットワーク102を使用させないようにしてもよい。
【0024】
バックアップデバイス300は、ハートビート確認データ118を含むデバイス状態データ110のバックアップ済みサブセットを格納するバックアップデータストア318などのメモリを含む。ハートビート確認データ118は、1次ネットワーク102から取得される有効なハートビート確認データ118のコピーを含む。いくつかの実現例では、1次ネットワークデバイス200に提供される無効化データ124aは、バックアップデバイス300に伝搬されてバックアップデータストア318に格納される。たとえば、バックアップネットワークデバイス300によってバックアップされる状態データ110のサブセットは、通信デバイスと無効化エージェント120との間のデータのマッピングを表すデータを含んでもよい。いくつかの実現例では、バックアップネットワークデバイス300に提供される無効化データ124bはバックアップデータストア318に格納される。別の例では、キープアライブ信号データ118(ハートビート確認データ)のみが2次ネットワーク104によってバックアップされる。これにより、テーブルフォーマットなどにおいて少量のメモリの使用が可能になり得る。
【0025】
そのため、2次ネットワーク104のバックアップデバイス300は、1次ネットワーク102と通信中の特定の通信デバイスの動作信頼性情報のみをバックアップする。一例では、ハートビート確認データ118とも呼ばれるキープアライブ信号データのみが1次ネットワーク102からバックアップされる。ハートビート確認データ118は、デバイスが1次ネットワーク102と実行する進行中の通信またはタスクに対応付けられており、通信デバイス106と1次ネットワークデバイス200との間の通信を妨げるネットワーク故障状態130が存在する場合に通信デバイス106がタスクまたは動作を実行し続けることを1次ネットワーク102の1次ネットワークデバイス200が許可することを示してもよい。いくつかの実現例では、無効化データ124bは、1次ネットワーク102に対応付けられたネットワーク故障状態130の間にバックアップデバイス300に直接提供される。本明細書に記載されている動作は、1次ネットワーク102に対応付けられたネットワーク故障状態130の間に、ハートビート認可解除が引き続き伝搬して、通信デバイスがタスクまたは動作を実行し続けてもよいという許可を取り消すように、一種のIf This Then Thatレベルの機能を提供する。たとえば、無効化エージェント120が
1次ネットワーク102に対応付けられたネットワーク故障状態130を検出すると、無効化エージェント120はバックアップデバイス300に無効化メッセージ122を送信してもよい。ネットワークシステム100および方法400、500、600は、ハート
ビート信号プロトコルを構成および処理するための非常に単純な技術を提供する。上述のように、システムは、一例では、1次サービスとハートビート専用バックアップサービスとによって構成される。1次サービスは1次ネットワーク102のクラウドインフラストラクチャ上で実行されるのに対して、ハートビート専用サービスは完全に別個のクラウドインフラストラクチャ、すなわち2次ネットワーク104上で実行され、1次ネットワーク102に対応付けられたネットワーク故障状態130に応答してデバイス106に対する2次ネットワーク104による操作性を確認する能力を有する。
【0026】
図2を参照して、ネットワークデバイス200はウェブ登録サービス202を実行してもよく、通信デバイス106はウェブ登録サービス202に登録して、通信デバイス106がタスクまたは動作を開始するまたは実行し続けることを許可するハートビート信号126(ハートビート確認信号、キープアライブ信号、または単にハートビートとも呼ばれる)を受信してもよい。示されている例では、通信デバイス106はネットワークデバイス200にハートビート要求128を送信し、対応するハートビート確認信号126を受信してもよい。いくつかの実現例では、通信デバイス106はハートビート信号126を連続的に(たとえば定期的に)受信し、ハートビート信号126の受信に応答してタスクまたは動作を実行し続ける。いくつかの例では、(たとえば、ハートビート要求128および対応するハートビート確認信号126の通信を介して)ネットワークデバイス200と通信する特定の通信デバイス106について、ネットワークデバイス200は、デバイス状態データ110を、当該特定の通信デバイス106に対応付けられたデバイス識別子(ID)114とともに、デバイス状態データストア212に記録する。デバイスID114は通信デバイス106を一意に識別してもよい。デバイス状態データ110は、限定されないが、支払状況、組織メタデータを更新する能力、全体的な環境の健全性の集約計算を表すデータ、および/またはその他の適切なデータなど、通信デバイス106によって実行される動作またはタスクに関連する任意の情報を含んでもよい。デバイスID114は、たとえば、データストア212に格納されて特定の通信デバイス106に対応付けられたデバイス状態データ110を探索または識別するための索引として用いられてもよい。特定の通信デバイス106に対応付けられたデバイス状態データ110は、デバイスID114を索引として用いて時間とともに更新されてもよい。たとえば、通信デバイス106がネットワークデバイス200からのハートビート確認信号126の受信に応答してタスクまたは動作を実行し続けるにつれて、ネットワークデバイス200はデバイス状態データ110を更新してもよい。いくつかの例では、デバイス状態データ110は、通信デバイス106のタスクまたは動作の実行を許可するためにネットワークデバイス200によって通信デバイス106に送信されるハートビート確認信号126に対応付けられたハートビート確認データ118を含む。
【0027】
いくつかの実現例では、ネットワークデバイス200が通信デバイス106にハートビート信号126を送信するたびに、ネットワークデバイス200はハートビート確認データ118を更新する。そのため、ハートビート確認データ118は、通信デバイス106から受信したタイムスタンプ付きのハートビート要求128と、通信デバイス106に送信したタイムスタンプ付きのハートビート信号126とのログを提供してもよい。示されている例では、デバイス状態データ110は、ネットワークデバイス200が通信デバイス106にタスクまたは動作の開始または実行の継続を許可した直近の時間を反映してもよい。いくつかの例では、ネットワークデバイス200は無効化エージェント120から無効化メッセージ122を受信する。無効化メッセージ122は、通信デバイス106が1次ネットワークデバイス200からハートビート確認信号126を受信すべきではないことを示すハートビート無効化データ124、124aを含んでもよい。たとえば、モノのインターネット(IoT)デバイス106aが潜在的なセキュリティ脆弱性に対処するためにソフトウェア更新を必要としている場合、または、IoTデバイス106aの所有者が有効なソフトウェアライセンスを取得もしくは維持するなどの契約上の合意に従って
いない場合、IoTデバイス106aに1次ネットワーク102を使用させないようにしてもよい。無効化メッセージ122は、これらの判定基準、または通信デバイス106が1次ネットワークデバイス200からハートビート確認信号126を可能な限り受信すべきではないという他の判定基準の表示を含むハートビート無効化データ124、124aを含んでもよい。無効化データ124aは、特定の通信デバイス106がタスクまたは動作を実行してもよいという1次ネットワークデバイス200による(たとえばウェブ登録サービス202による)許可を示すハートビート確認データ118を含むハートビート確認信号126を受信すべきではない特定の通信デバイス106を識別するデバイス識別子114(たとえばデバイスID114(
図1))を含んでもよい。したがって、無効化エージェント120(たとえばハートビート無効化エージェント120(
図1))からの無効化メッセージ122に含まれている無効化データl24aの受信に応答して、ネットワークデバイス200は、無効化データl24aによって識別される通信デバイス106にハートビート確認信号126を送信することを拒否してもよい。たとえば、ネットワークデバイス200が、タスクまたは動作の実行を求めるハートビート要求128を通信デバイス106から受信すると、ネットワークデバイス200は、対応付けられたデバイスID114を用いてデータストア212に問い合わせることにより、通信デバイス106のデバイス状態データ110が無効化データ124を含むか否かを判断してもよい。無効化データ124が存在する場合、ネットワークデバイス200は、対応するハートビート確認信号126を通信デバイス106に送信することを拒否することによって、通信デバイス106にタスクまたは動作を実行させないようにしてもよい。いくつかの例では、ネットワークデバイス200が通信デバイス106へのハートビート確認信号126の送信を中止すると、ネットワークデバイス200はデバイス状態データ110内のハートビート確認データ118の更新を停止する。いくつかの例では、デバイス状態データ110は、受信した無効化データ124aを含む。そのため、ネットワークデバイス200は、特定の通信デバイス106がネットワークデバイス200からハートビート確認信号126を受信すべきではなくなったことを示す無効化エージェント120から受信した無効化データ124aでデバイス状態データ110を更新するように構成されてもよい。
【0028】
図3を参照して、バックアップデバイス300はバックアップコントローラ302および確認コントローラ304を実行してもよい。確認コントローラ304は、バックアップ確認コントローラ304またはハートビート確認コントローラ304と呼ばれることもある。いくつかの例では、通信デバイス106によって認識されるような、1次ネットワーク102に対応付けられたネットワーク故障状態130(
図1)が発生する場合がある。たとえば、通信デバイス106が1次ネットワーク102に接続できない、またはハートビート要求128を送信してから閾値期間内にハートビート確認126を受信できない場合がある。1次ネットワーク102に対応付けられたネットワーク故障状態130は、1次ネットワーク102に影響を及ぼす停電、または損傷した通信ケーブルもしくはファイバ、または通信デバイス106と1次ネットワーク102との間の通信を妨げるその他の障害によって引き起こされ得る。いくつかの例では、ネットワーク故障状態130は、1次ネットワーク102が他の点では動作可能であるにもかかわらず通信デバイス106が1次ネットワーク102と通信できないことに起因する。ネットワーク故障状態130の他の原因も当てはまり得る。いくつかの例では、通信デバイス106が閾値期間内にハートビート確認126を受信できない場合、通信デバイス106はウェブ登録サービス202への再登録を試みる。これらの例では、通信デバイス106が接続タイムアウト期間内にウェブ登録サービス202に再登録することができなければネットワーク故障状態130が確立されてもよい。通信デバイス106は、ネットワーク故障状態130の間は1次ネットワーク102からハートビート確認信号126を受信しない場合があるので、通信デバイス106は、周期的なハートビート確認信号126の受信が条件付けられているタスクまたは動作の実行を中止する。いくつかの例では、1次ネットワークに対応付けられたネットワーク故障状態130の間は、通信デバイス106は1次ネットワーク102に
代えて2次ネットワーク104との通信を開始するように構成される。すなわち、通信デバイス106が1次ネットワーク102の1次ネットワークデバイス200からハートビート確認信号126を受信できないネットワーク故障状態130の間、2次ネットワーク104は、通信デバイス106からハートビート要求128を提供するための、および通信デバイス106にハートビート確認信号126を発行するためのフォールバックを提供してもよい。示されている例では、通信デバイス106は、ネットワーク故障状態130の間、バックアップデバイス300のバックアップハートビート確認コントローラ304にハートビート要求128を送信し、通信デバイス106が1次ネットワーク102の1次ネットワークデバイス200と通信できないにもかかわらず、通信デバイス106がタスクまたは動作を実行し続けることを許可する対応するハートビート確認信号126(キープアライブ信号とも呼ばれる)を受信する。ここで、通信デバイス106にハートビート確認信号126を送信する前に、バックアップハートビート確認コントローラ304はまずバックアップコントローラ302に問い合わせることにより、通信デバイス106に対応付けられたバックアップ済みデバイス状態データ110が、通信デバイス106がハートビート確認信号126の受信を許可されていることを示すか否かを判断してもよい。
【0029】
示されている例では、デバイスハートビートバックアップコントローラ302は、少なくとも1次ネットワーク102の1次ネットワークデバイス200からデバイス状態データ110のサブセットを受信する。状態データ110のサブセットは、ハートビート確認データ118と、通信デバイス106に対応付けられたデバイスID114と、1次ネットワーク登録デバイス200(たとえば1次ネットワークデバイス200(
図1))がハートビート無効化エージェント120から受信した任意の無効化データ124aとを含んでもよい。いくつかの例では、受信した状態データ110(たとえばデバイス状態データ110(
図1))は、上述のように1次ネットワーク102のデバイス状態データストア212に格納されている通信デバイス106に対応付けられたすべての状態データ110を含む。いくつかの例では、受信した状態データ110はハートビート確認データ118のみを含む。状態データ110の他のサブセットがバックアップコントローラ302によって受信されてもよい。いくつかの実現例では、1次ネットワークデバイス200が通信デバイス106にハートビート確認信号126を送信している間、1次ネットワークデバイス200はデバイス状態データ110をバックアップコントローラ302にプッシュする。これらの実現例では、1次ネットワークデバイス200は、状態データ110が変化すると、またはその他の適切な状況下で、通信デバイス106に対応付けられたデバイス状態データ110をバックアップコントローラ302に周期的にプッシュしてもよい。さらなる実現例では、バックアップデバイス300のバックアップコントローラ302は、プル動作時に1次ネットワーク102からデバイス状態データ110をプルする。たとえば、バックアップコントローラ302は、スケジュールされたバックアップ動作の一部として、および/またはバックアップ確認コントローラ304が通信デバイスからハートビート要求128を受信したことに応答して、1次ネットワークデバイス200からデバイス状態データ110をプルしてもよい。たとえば、バックアップコントローラ302は、対応付けられた1つ以上のデバイスID114を用いて1次ネットワークデバイス200に問い合わせることによって、1つ以上の通信デバイス106の状態データ110のサブセットをプルしてもよい。いくつかの例では、バックアップコントローラ302は、1次ネットワークデバイス200から受信したデバイス状態データ110をバックアップデータストア318にバックアップする。
図2のデバイス状態データストア212と同様に、バックアップデータストア318は、デバイス状態データ110に対応付けられた通信デバイス106を識別するデバイスID114を用いて、バックアップデータストア318に格納されている受信したデバイス状態データ110に索引を付けてもよい。一例では、バックアップデバイス300は、デバイスID114によって索引を付けられたルックアップテーブルを含む。バックアップデータストア318から受信したデバイス状態データ110を格納し、索引を付け、探索し、取り出すための他の技術も可能である。
【0030】
図2を参照して上述したように、受信したデバイス状態データ110は、ネットワークデバイス200が通信デバイス106にタスクまたは動作の開始または実行の継続を許可した直近の時間を反映してもよい。したがって、バックアップデータストア318に格納されている受信したデバイス状態データ110は、ネットワークデバイス200が通信デバイス106にタスクまたは動作の開始または実行の継続を許可した直近の時間を反映してもよい。ここで、バックアップコントローラ302によって受信されるデバイス状態データ110は、無効化エージェント120からの無効化メッセージ122において1次ネットワーク102の1次ネットワークデバイス200によって以前に受信されたハートビート無効化データ124、124aをさらに含んでもよい。すなわち、デバイスハートビートバックアップコントローラ302は、無効化データ124、124aをハートビート無効化エージェント120から直接的にではなく、1次ネットワーク102を介して間接的に受信してもよい。したがって、バックアップデータストア318に格納されている受信したデバイス状態データ110は、通信デバイス106がハートビート確認信号126を受信すべきではないという指示を反映してもよい。いくつかの例では、バックアップコントローラ302は無効化メッセージ122を無効化エージェント120から直接的に受信する。無効化メッセージ122は、通信デバイス106がバックアップ確認コントローラ304にハートビート要求128を送信したことに応答して、通信デバイス106が2次ネットワーク104のバックアップ確認コントローラ304からハートビート確認信号126を受信すべきではないことを示すハートビート無効化データ124、124b(たとえば無効化データ124、124b(
図1))を含んでもよい。無効化データ124bは、その他の場合は特定の通信デバイス106がタスクまたは動作を実行することを許可するハートビート確認データ118を含むハートビート確認信号126を受信すべきではない特定の通信デバイス106を識別するデバイスID114を含んでもよい。無効化エージェント120は、対応する無効化データ124、124aを1次ネットワーク102に対応付けられた1次ネットワークデバイス200に提供してもよく、および/または対応する無効化データ124、124bを2次ネットワーク104に対応付けられたバックアップコントローラ302に提供してもよい。いくつかの例では、無効化エージェント120は、ネットワーク故障状態130が存在する場合にのみ、2次ネットワーク104のバックアップデバイス300に無効化メッセージ122を送信する。たとえば、無効化エージェント120が、特定の通信デバイス106と1次ネットワーク102の1次ネットワークデバイス200との間の通信を妨げるネットワーク故障状態130を検出すると、またはそうでなければ学習すると、無効化エージェント120は、無効化データ124bを含む無効化メッセージ122をバックアップコントローラ302に送信してもよい。いくつかの例では、特定の通信デバイス106に対応付けられた無効化メッセージ122の受信に応答して、バックアップコントローラ302は、たとえばデバイスID114によって索引を付けられるなど、通信デバイス106に対応付けられた無効化データ124bを含むように、バックアップデータストア318に格納されたデバイス状態データ110を更新する。示されている例では、ハートビート無効化エージェント120は、1次ネットワークに対応付けられたネットワーク故障状態130の間、通信デバイス106に対応付けられた無効化データ124を用いて、通信デバイス106に対応付けられたすべてのハートビート確認データ118を無効にすることによって、バックアップデバイス300のバックアップコントローラ302にハートビート確認信号を送信させないようにしてもよい。
【0031】
いくつかの例では、通信デバイス106からのハートビート要求128の受信に応答して、バックアップハートビート確認コントローラ304は、通信デバイス106にハートビート確認126を送信して通信デバイス106にタスクまたは動作の開始または実行の継続を許可すべきか否かを判断する。ハートビート確認コントローラ304は、バックアップデータストア318に格納されたバックアップ済みデバイス状態データ110に基づ
いて、通信デバイス106にハートビート確認信号126を送信すべきか否かを判断してもよい。ここで、バックアップ確認コントローラ304は、バックアップコントローラ302に問い合わせることにより、対応付けられたデバイスID114を用いてバックアップデータストア318からバックアップ済みデバイス状態データ110を取り出してもよい。いくつかの例では、バックアップハートビート確認コントローラ304は、ハートビート要求128および対応付けられたデバイスID114をバックアップコントローラ302に提供する。バックアップコントローラ302は、たとえば対応付けられたデバイスID114を用いてバックアップ済みデバイス状態データ110を取り出し、バックアップ済みデバイス状態データ110をバックアップハートビート確認コントローラ304に提供してもよい。いくつかの例では、バックアップハートビート確認コントローラ304は、バックアップ済みデバイス状態データ110をバックアップデータストア318から直接取り出す。バックアップハートビート確認コントローラ304は、他の技術を用いてバックアップ済みデバイス状態データ110を取り出してもよい。これに代えて、バックアップコントローラ302は、取り出したバックアップ済みデバイス状態データ110が、無効化データ124なしのハートビート確認データ118を含むと判断し、通信デバイス106がハートビート確認信号126を受信すべきであることを示す信号をバックアップ確認コントローラ304に提供してもよい。いくつかの例では、バックアップコントローラ302は、取り出したバックアップ済みデバイス状態データ110をバックアップハートビート確認コントローラ304に提供し、バックアップハートビート確認コントローラ304は、バックアップ済みデバイス状態データ110に基づいて、通信デバイス106にハートビート確認信号126を送信すべきか否かを判断する。たとえば、デバイス状態データ110がハートビート確認データ118を含み、無効化データ124が存在しない場合、バックアップ確認コントローラ304は通信デバイス106にハートビート確認信号126を送信すると決定してもよい。上述のように、ハートビート確認データ118は、ネットワークデバイス200が通信デバイス106にタスクまたは動作の開始または実行の継続を許可した直近の時間を反映してもよい。いくつかの例では、バックアップデータストア318内のハートビート確認データ118が、ネットワークデバイス200が通信デバイスにタスクまたは動作の開始または実行の継続を以前に許可したことを示す場合は、バックアップハートビート確認コントローラ304は通信デバイス106にハートビート確認126を送信すると決定してもよい。バックアップ済みデバイス状態データ110が通信デバイス106に対応付けられたハートビート確認データ118を含まない場合は、バックアップハートビート確認コントローラ304は通信デバイス106にハートビート確認126を送信しないと決定してもよい。ハートビート確認データ118に基づいて通信デバイス106にハートビート確認126を送信すべきか否かを判断するための他の技術が可能である。いくつかの例では、バックアップハートビート確認コントローラ304が通信デバイス106にハートビート確認信号126を送信すると、バックアップハートビート確認コントローラ304は、バックアップデータストア318内の通信デバイス106に対応付けられたハートビート確認データ118を更新する。
【0032】
バックアップ済みデバイス状態データ110は、プッシュもしくはプル動作時にバックアップコントローラ302によって受信されたデバイス状態データ110の一部として1次ネットワーク102の1次ネットワークデバイス200を介してバックアップコントローラ302によって間接的に受信されて、または無効化エージェント120から直接的に受信されて、バックアップデータストア318に格納された、無効化データ124を含んでもよい。同様に、コントローラ302がバックアップ済みデバイス状態データ110の取り出し動作を行っている間にハートビート無効化エージェント120が無効化データ124bをコントローラ302に提供する場合は、バックアップコントローラ302は、バックアップ確認コントローラ304に送信中のバックアップ済みデバイス状態データ110に無効化データ124を付加するだけでよい。いくつかの例では、無効化データ124に基づいて、バックアップ確認コントローラ304は、無効化データ124(たとえばハ
ートビート無効化データ124(
図1))によって識別される通信デバイス106にハートビート確認信号126を送信することを拒否してもよい。たとえば、バックアップ確認コントローラ304が、タスクまたは動作の実行を求めるハートビート要求128を通信デバイス106から受信すると、バックアップ確認コントローラ304(またはバックアップコントローラ302)は、デバイスID114を用いてバックアップデータストア318に問い合わせることにより、通信デバイス106に対応付けられたデバイス状態データ110が無効化データ124を含むか否かを判断してもよい。無効化データ124が存在する場合は、バックアップ確認コントローラ304は、通信デバイス106がデバイス動作を実行してもよいという許可を取り消し、対応するハートビート確認信号126を通信デバイス106に送信することを保留または拒否することによって、通信デバイス106にタスクまたは動作を実行させないようにしてもよい。
【0033】
図4は、1次ネットワーク102と通信するように適合された通信デバイス106の動作信頼性を提供する方法400のための動作の構成の一例のフローチャートである。動作402において、通信デバイス106と第1のネットワーク102(たとえば1次ネットワーク102(
図1))のネットワークデバイス200(たとえば1次ネットワークデバイス200(
図1))との間の通信を妨げるネットワーク故障状態130が存在する場合、方法400は、第2のネットワーク104(たとえばバックアップネットワーク104または2次ネットワーク104(
図1))のデータ処理ハードウェア310において、通信デバイス106がデバイス動作を実行してもよいという許可を求めるハートビート要求128を通信デバイス106から受信することを含む。いくつかの実現例では、通信デバイス106は、ネットワーク故障状態130が存在しない場合、第1のネットワーク102のネットワークデバイス200にハートビート要求128を送信し、対応するハートビート確認信号126をネットワークデバイス200から受信するように構成される。いくつかのシナリオでは、通信デバイス106が第1のネットワーク102のネットワークデバイス200にハートビート要求128を送信してから閾値期間内にネットワークデバイス200からハートビート確認信号126を受信しない場合、ネットワーク故障状態130が存在する。
【0034】
動作404において、方法400は、データ処理ハードウェア310が、通信デバイス106に対応付けられたデバイス状態データ110を取得することを含む。たとえば、データ処理ハードウェア310は、第1のネットワーク102のネットワークデバイス200から直接的にまたは間接的にデバイス状態データ110を受信してもよい。たとえば、通信デバイス106とネットワークデバイス200との間の通信がデグレードしていない(たとえば故障状態130が存在しない)場合は、ネットワークデバイス200はデバイス状態データ110をデータ処理ハードウェア310に周期的にプッシュしてもよく、データ処理ハードウェア310はデバイス状態データ110をバックアップデータストア318に格納してもよい。したがって、データ処理ハードウェア300は、ネットワーク故障状態130の間にバックアップデータストア318にアクセスして、特定の通信デバイス106についてバックアップデータストア318に格納されているデバイス状態データ110を取り出してもよい。これに加えてまたはこれに代えて、データ処理ハードウェア310は、プル動作を実行してネットワークデバイス200からデバイス状態データ110を取得してもよい。ここで、データ処理ハードウェア310は、ネットワークデバイス200に問い合わせて特定の通信デバイス106についてのデバイス状態データ110を取り出すことによって、プル動作を実行してもよい。問い合わせは、ネットワークデバイス200が対応付けられたデバイス状態データ110をデータストア212から取り出すことができるように通信デバイス106を識別するデバイス識別子114を含んでもよい。
【0035】
動作406において、方法400は、データ処理ハードウェア310が、通信デバイス
106に対応付けられたデバイス状態データ110に基づいて、通信デバイス106がデバイス動作の実行を許可されているか否かを判断することを含む。たとえば、通信デバイス106がデバイス動作を実行してもよいという第1のネットワーク102のネットワークデバイス200からの許可を示すハートビート確認データ118をデバイス状態データ110が含む場合は、方法400は、通信デバイス106がデバイス動作の実行を許可されていると判断してもよい。しかし、デバイス状態データ110がハートビート確認データ118を含まない場合は、方法400は、通信デバイス106がデバイス動作の実行を許可されていないと判断してもよい。さらに、デバイス状態データ110がハートビート確認データ118を有しているにも関わらず無効化データ124を含む場合は、方法400は、通信デバイス106がデバイス動作の実行を許可されていないと判断してもよい。
【0036】
動作408において、方法400は、通信デバイス106がデバイス動作の実行を許可されている場合、データ処理ハードウェア310が、通信デバイス106にハートビート確認信号126を送信することを含む。ここで、ハートビート確認信号126は、通信デバイス106がデバイス動作を実行することを許可する。これに代えて、通信デバイス106がデバイス動作の実行を許可されていない(たとえば、ハートビート確認データ118がない、および/またはデバイス状態データ110が無効化データ124を含む)シナリオでは、データ処理ハードウェア310は、通信デバイス106へのハートビート確認信号126の送信を保留することによって、通信デバイス106がデバイス動作を実行しないようにしてもよい。
【0037】
図5および
図6を参照して、バックアップデバイス300の動作の一例を説明する。いくつかの実現例では、デバイスハートビートバックアップコントローラ302は、1次ネットワーク102を使用する1つ以上の通信デバイス106、106a~106eについて、デバイス状態データ110として格納されたハートビート確認データ118を含む1次ネットワーク102からのデバイス状態データ110のサブセットをバックアップする。バックアップは、デバイス識別子114ごとに状態データ110のサブセットをデータストア318に格納することによって生じる。たとえば、データストアレコードは、通信デバイス106a~106eの各々のデバイス識別子114を、1次ネットワーク102がデバイス状態データ110として格納した対応するハートビート確認データ118とともに含んでもよい。IPアドレス障害によって示されるような、IoTデバイス106aが1次ネットワーク102に接続できないなどのネットワーク故障状態130が発生する場合があり、当該IPアドレス障害は、1次ネットワーク102に対してハートビート要求128を行う当該デバイスが1次ネットワーク102に接続しようとするDNS試行に起因する。
【0038】
一例では、ネットワーク故障状態130は、DNSを介して2次ネットワーク104にインターネットプロトコルアドレス要求を行う通信デバイスが、2次ネットワーク104(バックアップデバイス)300に接続された後にDNS試行を介して1次ネットワーク102への接続を試みた際に適切な応答を受信することができなかったという理由で、当該通信デバイスなどのデバイスによって示される。IoTデバイス106aは2次ネットワーク104にハートビート要求128を発行する。デバイスからのハートビート要求に応答して、バックアップハートビート確認コントローラ304は、デバイスからのハートビート要求128に対応付けられているバックアップ済みハートビート確認データ118に基づいて、通信デバイス106にハートビート確認126を提供する。一例では、バックアップハートビート確認コントローラ304は、ハートビート要求128の一部としてIoTデバイス106aによって提出されたデバイスID114を用いて、バックアップデータストア318内のデバイス状態データ110を探索する。ハートビート確認コントローラ304は、受信したデバイスID114が、デバイス状態データ110のサブセットの一部として格納されているデバイスID114と一致するか否かを判断してもよい。
デバイスID114がバックアップ済みの場合は、対応するバックアップ済みハートビート確認データ118を用いて通信デバイス106にハートビート確認126を返す。通信デバイスは次いで、1次ネットワーク102が動作中であることを要求しないメモリ内プログラムの実行を継続するなど、そのタスクを継続することができる。
【0039】
引き続き
図5および
図6を参照して、システム100において無効化エージェント120が使用される場合、ソフトウェアサービスプロバイダ、システム管理者、または他の実体が、無効化エージェント120を使用して、デバイス識別子114を用いて特定の通信デバイスを指定し、通信デバイス106からのハートビート確認要求128に応答して当該通信デバイスがネットワーク(たとえば1次ネットワーク102または2次ネットワーク104)からハートビート確認126を受信すべきはでないことを示すことができる。これは、たとえば、無効化エージェント120が、たとえば、特定の周波数または周波数のセットを通信デバイス106bによる使用のために基地局106cから利用できないと判断した場合に行われてもよい。通信デバイス106bが特定の周波数へのアクセスを試みないようにすることができる。これはCBRS式システムにおいて好適であり得る。たとえば、CBRSシステム内の1つ以上の基地局(たとえば106c)が使用する周波数または特定の周波数は、政府系機関またはデバイスが使用中であるため非政府系デバイスは利用できないとシステムおよび/または無効化エージェント120によって判断されてもよい。たとえば特定の周波数が基地局によって使用されていない場合は、当該周波数はユーザ機器による公共使用に利用できると見なされ、次いでハートビート確認126が2次ネットワーク104からそれぞれのIoTデバイス106aに送信されてもよい。他のシステムでは、ソフトウェア更新が必要な場合、通信デバイスの所有者がソフトウェア使用に関連して結ばれた契約上の合意に従っていない場合、または他の判定基準に基づいて、モノのインターネット(IoT)デバイスに1次ネットワーク102を使用させないようにしてもよい。デジタルポリシー証明書または他のメカニズムを使用して、無効化データ124aおよび/または124bをそれぞれのネットワークにいつ送信すべきかを判断してもよい。また、動作は、複数のエンドユーザ通信デバイス106の使用に関連して説明される。しかしながら、システムは、所望通りの任意の適切な数のエンドユーザ通信デバイス106とともに使用されればよい。また、
図5および
図6に関する説明は、状態データのサブセットがハートビート確認データ118よりも多くを含む他の例とは対照的に、状態データ110のサブセットが1次ネットワーク102を使用する複数のデバイスの各々に対応付けられたハートビート確認データ118のみであるという文脈においてなされる。
【0040】
ブロック502に示されるように、方法500は、バックアップデバイス300が、1次ネットワーク102を使用する複数のデバイスに対応付けられたハートビート確認データ118(および対応するデバイスID114)のみを1次ネットワークデバイス200から受信することを含む。バックアップされるハートビート確認データ118は、サーバ200がそれぞれのデバイスごとに維持するデバイス状態データ110のサブセットである。ブロック504に示されるように、当該方法は、1次ネットワーク102を使用する複数のデバイスについてのハートビート確認データ118のみをバックアップすることを含む。これは、デバイスハートビートバックアップコントローラ302が1次ネットワーク102からのハートビート確認データ118のみをバックアップすることによって行われる。ブロック506に示されるように、当該方法は、ネットワーク故障状態130に応答して、および複数のデバイスのうちの少なくとも1つからのハートビート要求128に応答して、バックアップされたハートビート確認データ118に基づくハートビート確認126を複数のデバイスのうちの少なくとも1つに提供することを含む。これは、この例ではバックアップハートビート確認コントローラ304によって行われる。
【0041】
ブロック508に示されるように、無効化エージェント120からの無効化メッセージ
122を介するなどして、2次ネットワーク104についての無効化データ124bを受信し、ネットワーク故障状態130に応答して、および少なくとも1つのデバイスからのハートビート要求128に応答して、無効化データ124bが通信デバイス106を無効にすることを指示している場合は要求側デバイスに対するハートビート確認126を否認する。換言すれば、無効化メッセージ122はいつでも来る可能性がある。ハートビート確認126がすでに送信された後に無効化メッセージ122が送信された場合は、無効化エージェント120は通信デバイスがハートビート確認126を有することをもはや望んでいないことが無効化データ124bを用いて示されるので、後続のハートビート要求128は否認される。
【0042】
別の例では、ネットワーク故障状態130が発生した後のデバイスからの最初のハートビート要求128時に、無効化データ124bが通信デバイスが無効であることを示す場合は、ハートビート確認126は送信されず、バックアップハートビート確認コントローラ304はハートビート確認126を発行しない。一例では、バックアップ済みデバイス状態データが、対象のデバイスごとのデバイス識別子114と、1次ネットワーク102からの対応するバックアップ済みハートビート確認データ118と、無効化エージェント120から特定の通信デバイスについて受信した任意の無効化データ124bとを含むように、無効化データ124はデバイスごとにデータレコードの一部として格納される。そのため、一例における無効化データ124bは、デバイスID114に、通信デバイス106を無効にすべきか否かを指示するデータを加えたものを含む。そのため、バックアップデバイス300は、無効化エージェント120からの無効化メッセージ122に基づいて、ハートビート要求128を行っている通信デバイスに対するハートビート確認126を否認する。
【0043】
図6を参照して、システムの観点から、ブロック602に示されるように、方法600は、デバイスがDNSアドレスを介して1次ネットワーク102に登録または接続することを含む。ブロック604に示されるように、接続が成功すると、当該方法はブロック606に進み、サーバ200(たとえば1次ネットワークデバイス200(
図1))は、デバイス状態データ110として格納されているハートビートOK(ハートビート確認データ)118テーブルを更新する。これは、たとえば、データをメモリテーブル、データベースレコードまたは他のフォーマットに置いて、ハートビート確認126がハートビートを要求したデバイスに送信されたことを示すことを含む。サーバ200はさらに、バックアップ動作の一部として2次ネットワーク104にハートビート確認データ118を提供する。ハートビート確認データ118は、1次ネットワーク102が適切に動作している限り、1次ネットワークによって継続的に提供される。しかし、IoTデバイス106aなどの通信デバイス106によって認識されるような、1次ネットワーク102に対応付けられたネットワーク故障状態130が存在する場合は、たとえばブロック608に示されるように、通信デバイスはDNSを介して2次ネットワーク104への接続を試みる。ブロック610に示されるように、バックアップデバイス300、およびこの例ではバックアップハートビート確認コントローラ304は、デバイスID114に基づいてバックアップデータストア318内のバックアップ済み状態データを確認して、ハートビート確認126がネットワーク故障状態130の前にデバイスによって1次ネットワーク102によって提供されたことを、1次ネットワーク102によって直近に格納されたハートビートが示すことを、バックアップ済みデータが示すか否かを判断する。ブロック612に示されるように、バックアップネットワークデバイス300はさらに、デバイスに対応付けられたデータベースレコードを確認して、無効化エージェント120がそのデバイスについての無効化メッセージ122を送信したか否かを調べる。送信した場合は、ブロック614に示されるように、2次ネットワーク104は要求側の通信デバイス106へのハートビート確認126を否認する。しかし、無効化エージェント120が通信デバイス106を無効にすることを指示していない場合は、ブロック616に示されるように、バッ
クアップネットワークデバイス300は、バックアップされたハートビート確認データ118に基づくハートビート確認126で、2次ネットワーク104からのハートビートを要求している通信デバイスに応答する。
【0044】
数ある利点の中でも特に、有効なハートビート情報のコピーをテーブルなどに保持する第2のより小さいクラウドシステムを使用することにより、第2のシステムは、完全に書き換えられたソフトウェアサービスがなくても最大分離を有することができる。2次ネットワーク104およびバックアップデバイス300により、システム全体が、データの完全な一定のコピーが常になくても、および信頼性を確保するためのより小さい独立したソフトウェアサービスがなくても、1次ネットワーク102内のデバイスの一貫したビューを維持することができる。一例では、動作の最も重要な態様、すなわちデバイスにハートビート確認信号126を提供することのみを記憶する静的ページハンドラが存在する。2次ネットワーク104は、1次ネットワーク102によってハートビート確認データ118で更新されるだけでよく、デバイスの一貫した状態の維持が従来の方法よりもはるかに単純化される。本明細書におけるデバイスID114および対応するハートビート確認データ118は同じデータであってもよい。たとえばテーブルを使用する場合は、テーブル内のデバイスID114の存在自体が、特定の通信デバイスに対するハートビート確認データ118となり得る。
【0045】
図7は、本明細書に記載されているシステム(たとえば、ネットワークデバイス200およびバックアップネットワークデバイス300)ならびに方法(たとえば、方法400、500、600)を実現するために使用され得るコンピューティングデバイス700の一例の概略図である。コンピューティングデバイス700は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、モバイルコンピューティングデバイス、ウェアラブルコンピューティングデバイス(たとえば、ヘッドセットおよび/または時計)、サーバ、ブレードサーバ、メインフレーム、ならびに他の適切なコンピュータなどのさまざまな形態のデジタルコンピュータを表すよう意図されている。ここに示されているコンポーネント、それらの接続および関係、ならびにそれらの機能は、単に例示的であるよう意図されており、本明細書に記載および/またはクレームされている発明の実現例を限定するよう意図されたものではない。
【0046】
コンピューティングデバイス700は、プロセッサ710(処理ハードウェアまたはデータ処理ハードウェアとも呼ばれる)と、メモリ720(メモリハードウェアとも呼ばれる)と、記憶装置730と、メモリ720および高速拡張ポート750に接続する高速インターフェイス/コントローラ740と、低速バス770および記憶装置730に接続する低速インターフェイス/コントローラ760とを含む。コンポーネント710、720、730、740、750および760の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上にまたは適宜他の態様で取り付けられていてもよい。プロセッサ710は、コンピューティングデバイス700内での実行のための命令を処理することができ、これらの命令は、グラフィカルユーザインターフェイス(GUI)のためのグラフィカル情報を、高速インターフェイス740に結合されたディスプレイ780などの外部入力/出力デバイス上に表示するための、メモリ720内または記憶装置730上に格納された命令を含む。他の実現例では、複数のメモリおよび複数のタイプのメモリとともに、複数のプロセッサおよび/または複数のバスが適宜使用されてもよい。また、複数のコンピューティングデバイス700が、各デバイスが(たとえば、サーババンク、ブレードサーバの群、またはマルチプロセッサシステムとして)必要なオペレーションの一部を提供する状態で、接続されてもよい。
【0047】
メモリ720は、情報をコンピューティングデバイス700内に非一時的に格納する。メモリ720は、コンピュータ読取可能媒体、揮発性メモリユニット、または不揮発性メ
モリユニットであってもよい。非一時的なメモリ720は、コンピューティングデバイス700による使用のために、プログラム(たとえば、命令のシーケンス)またはデータ(たとえば、プログラム状態情報)を一時的または永久的に格納するために使用される物理デバイスであってもよい。不揮発性メモリの例としては、フラッシュメモリおよびリードオンリメモリ(ROM)/プログラマブルリードオンリメモリ(PROM)/消去可能プログラマブルリードオンリメモリ(EPROM)/電子的消去可能プログラマブルリードオンリメモリ(EEPROM)(たとえば、一般に、ブートプログラムなどのファームウェアに使用される)が挙げられるが、これらに限定されるものではない。揮発性メモリの例としては、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)およびディスクまたはテープが挙げられるが、これらに限定されるものではない。
【0048】
記憶装置730は、コンピューティングデバイス700に対して大容量記憶を提供することができる。いくつかの実現例では、記憶装置730は、コンピュータ読取可能媒体である。さまざまな異なる実現例では、記憶装置730は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイスもしくはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはデバイスのアレイ(ストレージエリアネットワークもしくは他の構成のデバイスを含む)であってもよい。さらに他の実現例では、コンピュータプログラムプロダクトが情報担体の形で有形に具体化される。コンピュータプログラムプロダクトは、実行されると上記の方法などの1つ以上の方法を実行する命令を含む。情報担体は、メモリ720、記憶装置730、またはメモリオンプロセッサ710などの、コンピュータ読取可能媒体または機械読取可能媒体である。
【0049】
高速コントローラ740は、コンピューティングデバイス700のための帯域幅集中型オペレーションを管理するのに対して、低速コントローラ760は、より低い帯域幅集中型オペレーションを管理する。このようなデューティの割り当ては例示に過ぎない。いくつかの実現例では、高速コントローラ740は、メモリ720に結合され、ディスプレイ780に(たとえば、グラフィックスプロセッサまたはアクセレレータを介して)結合され、さまざまな拡張カード(図示せず)を受け付け得る高速拡張ポート750に結合されている。いくつかの実現例では、低速コントローラ760は、記憶装置730および低速拡張ポート790に結合されている。さまざまな通信ポート(たとえば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、ワイヤレスイーサネット)を含み得る低速拡張ポート790は、たとえばネットワークアダプタを介して、1つ以上の入力/出力デバイス(キーボード、ポインティングデバイス、スキャナ、またはネットワーキングデバイス(スイッチもしくはルータなど)など)に結合されてもよい。
【0050】
コンピューティングデバイス700は、図に示されているように、いくつかの異なる形態で実現されてもよい。たとえば、それは、標準的なサーバ700aとしてもしくはこのようなサーバ700aの群で複数回実現されてもよく、ラップトップコンピュータ700bとして実現されてもよく、またはラックサーバシステム700cの一部として実現されてもよい。
【0051】
本明細書に記載されているシステムおよび技術のさまざまな実現例は、デジタル電子および/もしくは光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/または、それらの組み合わせの形で実現可能である。これらのさまざまな実現例は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムの形での実現例を含むことができ、プログラマブルプロセッサは、特殊目的であってもよく、または汎用であってもよく、ストレージ
システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスに対してデータおよび命令を送受信するように結合されている。
【0052】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラマブルプロセッサのための機械命令を含み、高レベル手続き型プログラミング言語および/またはオブジェクト指向プログラミング言語および/またはアセンブリ/機械言語の形で実現可能である。本明細書における「機械読取可能媒体」および「コンピュータ読取可能媒体」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラムプロダクト、非一時的なコンピュータ読取可能媒体、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を意味するものとし、機械命令を機械読取可能信号として受信する機械読取可能媒体を含む。「機械読取可能信号」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を意味するものとする。
【0053】
本明細書に記載されているプロセスおよびロジックフローは、入力データ上で動作して出力を生成することによって機能を実行するように1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行可能である。これらのプロセスおよびロジックフローは、特殊目的論理回路(たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路))によっても実行可能である。コンピュータプログラムの実行に好適なプロセッサの例としては、汎用および特殊目的マイクロプロセッサ、ならびに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサが挙げられる。一般に、プロセッサは、リードオンリメモリまたはランダムアクセスメモリまたはそれら両方から命令およびデータを受信する。コンピュータの不可欠な要素は、命令を実行するためのプロセッサ、ならびに、命令およびデータを格納するための1つ以上のメモリデバイスである。一般に、コンピュータは、データを格納するための1つ以上の大容量記憶装置(たとえば、磁気ディスク、光磁気ディスク、または光ディスク)も含んでおり、または、1つ以上の大容量記憶装置からデータを受信したり、1つ以上の大容量記憶装置にデータを送信したり、1つ以上の大容量記憶装置に対してデータを送受信したりするように動作可能に結合される。しかし、コンピュータは、このような装置を有していなくてもよい。コンピュータプログラム命令およびデータの格納に好適なコンピュータ読取可能媒体は、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含み、これらの例としては、半導体メモリデバイス(たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス)、磁気ディスク(たとえば、内部ハードディスクまたはリムーバブルディスク)、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクが挙げられる。プロセッサおよびメモリは、特殊目的論理回路によって補完されてもよく、または特殊目的論理回路に組み込まれてもよい。
【0054】
ユーザとの対話を提供するために、本開示の1つ以上の局面は、情報をユーザに表示するためのディスプレイデバイス(たとえば、CRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーン)と、任意にユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)とを有するコンピュータ上で実現可能である。ユーザとの対話を提供するために他の種類のデバイスも使用されてもよい。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよく、ユーザからの入力は、音響入力、発話入力、または触覚入力を含む任意の形態で受信されてもよい。また、コンピュータは、ユーザによって使用されるデバイスに対してドキュメントを送受信することによって、たとえばウェブブラウザから受信した要求に応答してユーザのクライアントデバイス
上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【0055】
いくつかの実現例について説明してきた。しかし、本開示の精神および範囲から逸脱することなくさまざまな変更がなされ得ることが理解されるであろう。したがって、他の実現例は、以下の特許請求の範囲の範囲内である。たとえば、特許請求の範囲に記載の動作は、異なる順序で実行されても所望の結果を達成することができる。