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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7410157クラウド側のロールをデバイスへ委譲(デリゲーション)
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-25
(45)【発行日】2024-01-09
(54)【発明の名称】クラウド側のロールをデバイスへ委譲(デリゲーション)
(51)【国際特許分類】
   H04W 4/02 20180101AFI20231226BHJP
   H04W 4/50 20180101ALI20231226BHJP
   H04W 4/44 20180101ALI20231226BHJP
   H04W 24/04 20090101ALI20231226BHJP
【FI】
H04W4/02
H04W4/50
H04W4/44
H04W24/04
【請求項の数】 9
(21)【出願番号】P 2021542568
(86)(22)【出願日】2020-02-12
(65)【公表番号】
(43)【公表日】2022-03-25
(86)【国際出願番号】 IB2020051131
(87)【国際公開番号】W WO2020170076
(87)【国際公開日】2020-08-27
【審査請求日】2022-07-25
(31)【優先権主張番号】16/279,818
(32)【優先日】2019-02-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】齊藤 昭
(72)【発明者】
【氏名】上ノ原 勇人
(72)【発明者】
【氏名】横山 智史
(72)【発明者】
【氏名】山本 学
(72)【発明者】
【氏名】古市 実裕
(72)【発明者】
【氏名】岩崎 礼江
【審査官】野村 潔
(56)【参考文献】
【文献】特表2016-511408(JP,A)
【文献】米国特許出願公開第2017/0332344(US,A1)
【文献】特開2011-061713(JP,A)
【文献】米国特許出願公開第2015/0244784(US,A1)
【文献】特開2006-080579(JP,A)
【文献】特開2013-186121(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24- 7/26
H04W 4/00-99/00
(57)【特許請求の範囲】
【請求項1】
クラウド側の役割をデバイスに委譲するためのクラウド・コンピュータで実施される方法であって、
ネットワークのネットワーク品質情報を複数のデバイスから受信すること、
受信された前記ネットワーク品質情報の送信元の地域では前記ネットワークが利用できないことを決定すること、さらに、
新たなデバイスについて、
前記新たなデバイスの軌道経路を予測すること、
前記ネットワークが利用できない地域に前記新たなデバイスが入りそうであることを前記軌道経路に基づいて決定すること、
前記ネットワークが利用できない地域で実行される必要があるソフトウェア・モジュールおよび当該ソフトウェア・モジュールによるデータ処理機能で用いるデータを特定すること、および
記ソフトウェア・モジュールおよび前記データを前記新たなデバイスへ送信して同期すること
を含み、前記新たなデバイスが、前記ネットワークが利用できない地域に入った後に前記データを用いて前記ソフトウェア・モジュールを実行する、クラウド・コンピュータで実施される方法。
【請求項2】
前記ネットワーク品質情報を前記新たなデバイスへ送信することをさらに含み、前記新たなデバイスは、前記新たなデバイスが前記軌道経路に沿って新たな地域へ移動したときに前記ネットワークが利用可能になったことを決定するために、前記ネットワーク品質情報を使用する、請求項1に記載のクラウド・コンピュータで実施される方法。
【請求項3】
ネットワーク帯域およびネットワーク待ち時間を含む前記ネットワーク品質情報を用いて、時系列データを生成すること、
前記時系列データを使用して平均ネットワーク帯域および平均ネットワーク待ち時間を決定すること、ならびに、
前記平均ネットワーク帯域および前記平均ネットワーク待ち時間から前記地域のネットワーク品質スコアを生成することをさらに含み、受信された前記ネットワーク品質情報の送信元の地域では前記ネットワークが利用できないことを決定するために、前記ネットワーク品質スコアが使用される、請求項1に記載のクラウド・コンピュータで実施される方法。
【請求項4】
前記ネットワーク品質スコアに環境係数を乗じることをさらに含む、請求項3に記載のクラウド・コンピュータで実施される方法。
【請求項5】
記ソフトウェア・モジュールおよび前記データが、ある持続期間の後に前記新たなデバイスから削除される、請求項1に記載のクラウド・コンピュータで実施される方法。
【請求項6】
前記新たなデバイスが、センサ情報を1つまたは複数のセンサ・デバイスからクラウド・コンピュータへ送信する、請求項1に記載のクラウド・コンピュータで実施される方法。
【請求項7】
前記新たなデバイスが車両を含むモノのインターネット(IoT)デバイスである、請求項1に記載のクラウド・コンピュータで実施される方法。
【請求項8】
プロセッサに、
ネットワークのネットワーク品質情報を1つまたは複数のデバイスから受信する動作と、
受信された前記ネットワーク品質情報の送信元の地域では前記ネットワークが利用できないことを決定する動作と、さらに、
新たなデバイスについて、
前記新たなデバイスの軌道経路を予測する動作と、
前記ネットワークが利用できない地域に前記新たなデバイスが入りそうであることを前記軌道経路に基づいて決定する動作と、
前記ネットワークが利用できない地域で実行される必要があるソフトウェア・モジュールおよび当該ソフトウェア・モジュールによるデータ処理機能で用いるデータを特定する動作と、
記ソフトウェア・モジュールおよび前記データを前記新たなデバイスへ送信して同期する動作と、
を実行させるためのプログラムであって、前記新たなデバイスが、前記ネットワークが利用できない地域に入った後に前記データを用いて前記ソフトウェア・モジュールを実行する、プログラム。
【請求項9】
クラウド側の役割をデバイスに委譲するためのクラウド・コンピュータであって、
ロセッサ、コンピュータ可読メモリ、およびコンピュータ可読で有形の記憶デバイスを備え、
前記プロセッサが、
ネットワークのネットワーク品質情報を1つまたは複数のデバイスから受信すること、
受信された前記ネットワーク品質情報の送信元の地域では前記ネットワークが利用できないことを決定すること、さらに、
新たなデバイスについて、
前記新たなデバイスの軌道経路を予測すること、
前記ネットワークが利用できない地域に前記新たなデバイスが入りそうであることを前記軌道経路に基づいて決定すること、
前記ネットワークが利用できない地域で実行される必要があるソフトウェア・モジュールおよび当該ソフトウェア・モジュールによるデータ処理機能で用いるデータを特定すること、および
記ソフトウェア・モジュールおよび前記データを前記新たなデバイスへ送信して同期すること
を実行し、前記新たなデバイスが、前記ネットワークが利用できない地域に入った後に前記データを用いて前記ソフトウェア・モジュールを実行する、クラウド・コンピュータ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、クラウド・ノードとデバイスの間のネットワークが利用できない間、クラウド側の役割をデバイスに委譲することに関する。
【背景技術】
【0002】
モノのインターネット(IoT)とは、互いに通信するために使用されるソフトウェアおよびハードウェアを有するデバイスのネットワークであると言うことができる。すなわち、デバイス(たとえば、家庭内のサーモスタット、または車内のナビゲーションシステム)はデータを交換することができる。
【0003】
クラウド・ノードとは、クラウド・インフラストラクチャ内のコンピュータであると言うことができる。
【0004】
IoT技術が広範に使用されるようになっているので、クラウド・ノードがデータをIoTデバイスから収集し、そのデータを処理するシステムがある。クラウド・ノードはまた、IoTデバイスを制御する。
【0005】
一方で、コネクテッド車両などのモバイルIoTデバイスはときおり、クラウド・ノードにつなぐために使用されているネットワークとの接続を失ったり、地理的特徴、環境、電波状態などによりネットワークとの接続が不安定になったりする。このような状況下では、IoTデバイスのユーザは、クラウド・ノードから提供されるサービスを使用できないことがある。
【0006】
ネットワークが使用できない状況下でIoTデバイスに対するサービスを維持するために、クラウド・ノードの機能の全部または一部がデバイスで実行される。このような場合には、別のIoTデバイスから送信されたデータに依存する、またはクラウドで行われた解析の結果に依存する処理が実行されないことがある。
【発明の概要】
【0007】
実施形態によれば、クラウド側の役割をデバイスに委譲するための、コンピュータで実施される方法が提供される。このコンピュータで実施される方法には、動作が含まれる。ネットワークのネットワーク品質情報が1つまたは複数のデバイスから受信される。受信されたネットワーク品質情報の送信元の地域ではネットワークが利用できないことが決定される。新たなデバイスについて、新たなデバイスの軌道経路が予測される。新たなデバイスがその地域に入りそうであることが軌道経路に基づいて決定される。1つまたは複数のソフトウェア・モジュールおよびデータが特定される。1つまたは複数のソフトウェア・モジュールおよびデータは新たなデバイスへ送信され、新たなデバイスは、1つまたは複数のソフトウェア・モジュールを実行して、データから1つまたは複数の洞察を生成する。こうすることにより、有利なことに、デバイスは、1つまたは複数のソフトウェア・モジュールを引き続き実行して、データから1つまたは複数の洞察を生成し、たとえば、ネットワークが利用できないときでさえもルートを予測できるようになる。
【0008】
別の実施形態によれば、クラウド側の役割をデバイスに委譲するためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、動作を行うために少なくとも1つのプロセッサによって実行可能なプログラム・コードが具現化されている、コンピュータ可読記憶媒体を含む。ネットワークのネットワーク品質情報が1つまたは複数のデバイスから受信される。受信されたネットワーク品質情報の送信元の地域ではネットワークが利用できないことが決定される。新たなデバイスについて、新たなデバイスの軌道経路が予測される。新たなデバイスがその地域に入りそうであることが軌道経路に基づいて決定される。1つまたは複数のソフトウェア・モジュールおよびデータが特定される。1つまたは複数のソフトウェア・モジュールおよびデータは新たなデバイスへ送信され、新たなデバイスは、1つまたは複数のソフトウェア・モジュールを実行して、データから1つまたは複数の洞察を生成する。こうすることにより、有利なことに、デバイスは、1つまたは複数のソフトウェア・モジュールを引き続き実行して、データから1つまたは複数の洞察を生成し、たとえば、ネットワークが利用できないときでさえもルートを予測できるようになる。
【0009】
さらに別の実施形態によれば、クラウド側の役割をデバイスに委譲するためのコンピュータ・システムが提供される。コンピュータ・システムは、1つまたは複数のプロセッサ、1つまたは複数のコンピュータ可読メモリ、および1つまたは複数のコンピュータ可読で有形の記憶デバイス、ならびに、1つまたは複数のメモリのうちの少なくとも1つを介して1つまたは複数のプロセッサのうちの少なくとも1つによって実行するための、1つまたは複数のコンピュータ可読で有形の記憶デバイスのうちの少なくとも1つに記憶されたプログラム命令を、動作を行うために備える。ネットワークのネットワーク品質情報が1つまたは複数のデバイスから受信される。受信されたネットワーク品質情報の送信元の地域ではネットワークが利用できないことが決定される。新たなデバイスについて、新たなデバイスの軌道経路が予測される。新たなデバイスがその地域に入りそうであることが軌道経路に基づいて決定される。1つまたは複数のソフトウェア・モジュールおよびデータが特定される。1つまたは複数のソフトウェア・モジュールおよびデータは新たなデバイスへ送信され、新たなデバイスは、1つまたは複数のソフトウェア・モジュールを実行して、データから1つまたは複数の洞察を生成する。こうすることにより、有利なことに、デバイスは、1つまたは複数のソフトウェア・モジュールを引き続き実行して、データから1つまたは複数の洞察を生成し、たとえば、ネットワークが利用できないときでさえもルートを予測できるようになる。
【0010】
追加の実施形態では、ネットワーク品質情報は新たなデバイスへ送信され(ネットワーク品質情報を新たなデバイスへ送信すること)、新たなデバイスは、デバイスが軌道経路に沿って新たな地域へ移動したときにネットワーク品質が改善したことを決定するために、ネットワーク品質情報を使用する。こうすることにより、有利なことに、新たなデバイスは、新たなデバイスがクラウド・ノードと通信することができるように、ネットワークがいつ利用可能になるかを決定できるようになる。
【0011】
さらに追加の実施形態では、時系列データが、ネットワーク帯域およびネットワーク待ち時間を含むネットワーク品質情報を用いて生成される。平均ネットワーク帯域および平均ネットワーク待ち時間が、時系列データを使用して決定される。地域のネットワーク品質スコアが、平均ネットワーク帯域および平均ネットワーク待ち時間から生成され、受信されたネットワーク品質情報の送信元の地域ではネットワークが利用できないことを決定するために、ネットワーク品質スコアが使用される。こうすることにより、有利なことに、異なる時間に(時系列データを用いて)、ネットワーク帯域およびネットワーク待ち時間を使用してネットワーク品質スコアを生成することができるようになる。
【0012】
別の実施形態では、ネットワーク品質スコアに環境係数が乗じられる。こうすることにより、有利なことに、ネットワーク品質スコアは環境係数を考慮に入れたものにすることができる。
【0013】
さらに別の実施形態では、1つまたは複数のソフトウェア・モジュールおよびデータが、ある持続期間の後に新たなデバイスから削除される。こうすることにより、有利なことに、クラウド・ノードが持続期間を設定できるようになり、デバイスは、1つまたは複数のソフトウェア・モジュールおよびデータを削除してローカル記憶を改善できるようになる。
【0014】
別の実施形態では、新たなデバイスは、センサ情報を1つまたは複数のセンサ・デバイスからクラウド・ノードへ送信する。こうすることにより、リアルタイム・データが新たなデバイスからクラウド・ノードへ送信されることが可能になる。
【0015】
さらに別の実施形態では、新たなデバイスはモノのインターネット(IoT)デバイスである。このことにより、有利なことに、IoTデバイスは本発明の実施形態を実現できるようになる。いくつかの実施形態では、サービスとしてのソフトウェア(SaaS)が、この方法の動作を行うように構成される。こうすることにより、有利なことに、動作がクラウド環境におけるサービスとして提供されることが可能になる。
【0016】
次に、同じ参照番号が対応する部品を全体にわたって示している図面を参照する。
【図面の簡単な説明】
【0017】
図1】いくつかの実施形態による、コンピューティング環境を示すブロック図である。
図2】いくつかの実施形態による、コンピューティング環境のさらなる詳細を示すブロック図である。
図3】いくつかの実施形態による、クラウド・ノードにおいてネットワーク品質情報記憶装置を更新するための流れを示す図である。
図4】いくつかの実施形態による、クラウド・ノードにおいてネットワーク分断を予測し同期を開始するための流れを示す図である。
図5】いくつかの実施形態による、デバイス内のソフトウェア・モジュールを使用してデータを同期させ洞察を生成するための流れを示す図である。
図6】いくつかの実施形態による、論理記憶装置の論理表を示す図である。
図7】いくつかの実施形態による、データ記憶装置のデータ表を示す図である。
図8】いくつかの実施形態による、ネットワーク品質情報記憶装置を示す図である。
図9】いくつかの実施形態による地図を示す図である。
図10A】いくつかの実施形態による、クラウド・ノードにおいて1つまたは複数のソフトウェア・モジュール、データ、およびネットワーク品質情報を選択するための動作を示す流れ図である。
図10B】いくつかの実施形態による、クラウド・ノードにおいて1つまたは複数のソフトウェア・モジュール、データ、およびネットワーク品質情報を選択するための動作を示す流れ図である。
図11A】いくつかの実施形態による、クラウド・ノードにおいてネットワーク品質情報記憶装置を更新するための動作を示す流れ図である。
図11B】いくつかの実施形態による、クラウド・ノードにおいてネットワーク品質情報記憶装置を更新するための動作を示す流れ図である。
図12】いくつかの実施形態による、デバイスからクラウド・ノード上のクラウド・サービスに向けて1つまたは複数の洞察を送信するための動作を示す流れ図である。
図13】いくつかの実施形態による、デバイスからクラウド・ノード上のクラウド・サービスへセンサデータを送信するための動作を示す流れ図である。
図14】いくつかの実施形態による、デバイスにおいてコマンドを処理するための動作を示す流れ図である。
図15】いくつかの実施形態による、例示的なルートを示す図である。
図16A】いくつかの実施形態による、例示的なルートに対する流れを示す図である。
図16B】いくつかの実施形態による、例示的なルートに対する流れを示す図である。
図16C】いくつかの実施形態による、例示的なルートに対する流れを示す図である。
図16D】いくつかの実施形態による、例示的なルートに対する流れを示す図である。
図17A】いくつかの実施形態による、例示的なルートのクラウド・ノードにおける解析を示す図である。
図17B】いくつかの実施形態による、例示的なルートのクラウド・ノードにおける解析を示す図である。
図18】いくつかの実施形態による、コンピューティング・ノードを示す図である。
図19】いくつかの実施形態による、クラウド・コンピューティング環境を示す図である。
図20】いくつかの実施形態による、抽象化モデル層を示す図である。
【発明を実施するための形態】
【0018】
本発明の様々な実施形態についての記述は説明の目的で提示されているが、網羅的なものでも開示された実施形態に限定されるものでもない。説明された実施形態の範囲および思想から逸脱しない多くの修正および変形が業者には明らかであろう。本明細書で使用された術語は、実施形態の原理、実際的な適用もしくは市場で見出される技術についての技術的改善を最善に説明するように、または他の当業者が本明細書に開示された実施形態を理解できるように、選択された。
【0019】
実施形態は、モノのインターネット(IoT)デバイスまたは他のモバイル・デバイスなどの、車両内のデバイスを対象とする。実施形態では、各位置でのネットワーク品質情報から、およびデバイスの現在の位置から、スケジュールされたルートでのネットワーク切断の可能性を予測する。次に、実施形態では、クラウド・ノードのデータ処理機能のうちの1つまたは複数をデバイスに委譲する。データ処理機能は、ソフトウェア・モジュールによって実行される。
【0020】
機能が委譲されると、実施形態では、ネットワークが一時的に利用できなくなった後の特定の期間中にサービスがデバイスで維持され得るように、ソフトウェア・モジュール(すなわち、データ処理機能を実行するための論理)と、ネットワーク切断地域で処理する必要があるクラウド・ノードからのデータとを選択し、デバイスに同期させる。ある地域でネットワークが不安定である場合(たとえば、そのネットワークの地域内のデバイスがクラウド・ノードにつながり、データを送信したりコマンドを受信したりすることができない)、またはネットワークがその地域内で切断されている場合にネットワークは、その地域で利用できないと決定され得る。
【0021】
図1は、いくつかの実施形態によるコンピューティング環境をブロック図で示す。図1で、クラウド・サービス102は、クラウド・ノード100から提供されている。クラウド・サービス102(クラウド側にある)は、ネットワーク190を介してデバイス152a...152nと通信することができる。省略ならびに「a」および「n」を用いることにより、任意の数のデバイスがクラウド・サービス102と通信できることを示している。
【0022】
デバイス152a...152nのそれぞれがネットワーク機能を有する。すなわち、デバイス152a...152nのそれぞれは、ネットワーク190を介してクラウド・ノード100のクラウド・サービス102と通信することができる。いくつかの実施形態では、デバイス152a...152nは互いに通信することができる。いくつかの実施形態では、デバイス152a...152nは、クラウド・ノード100と通信できる、また場合によっては互いに通信できる、IoTデバイスまたはモバイル・デバイスである。
【0023】
図2は、いくつかの実施形態によるコンピューティング環境のさらなる詳細をブロック図で示す。特に、図2は、クラウド・サービス102およびデバイス152aのさらなる詳細を示す。ネットワーク190を介してクラウド・サービス102と通信する各デバイス152a...152nは、図2でデバイス152aについて示された構成要素を含む。
【0024】
デバイス152aは、リアルタイムでデータを収集するための1つまたは複数のセンサ158を含む。いくつかの実施形態では、センサ158のうちの1つまたは複数は、たとえば温度、湿度、大気圧などを検出する気象センサである。いくつかの実施形態では、センサ158のうちの1つまたは複数は、たとえば速度、加速度、全地球測位システム(GPS)位置などを検出する車両内センサである。実施形態では、デバイス152aでセンサ・デバイス158によって生成されたデータは、データ・プロセッサ160で処理され、処理されたデータは次に、クラウド・データ処理プロキシ162およびデータ送信機164を介して、クラウド・サービス102のデータ受信機110へ送信される。
【0025】
クラウド側のクラウド・サービス102は、収集データを処理し、サービス・ユーザにサービスを提供する。加えて、クラウド・サービス102は、コマンド送信機108を介してコマンドをデバイス152aへ送出しており、デバイス152aのセンサ158を制御することができる。
【0026】
クラウド側のデータ受信機110は、デバイス152aから受信したデータをデータ・プロセッサ106へ転送し、デバイス152aの位置についての情報、およびネットワークの状態についての情報(たとえば、ネットワーク帯域およびネットワーク待ち時間)をネットワーク品質情報(「情報」)更新機112に提供する。
【0027】
実施形態では、複数のデバイス152a...152nがセンサからのデータをクラウド・サービス102に提供し、ネットワーク品質情報更新機112は、デバイス152a...152nの位置、およびネットワークの状態についての情報を複数のデバイス152a...152nから受信する。後で、ネットワーク品質情報のサブセットが複数のデバイス152a...152nのうちの1つへ送信されるとき、そのネットワーク品質情報のサブセットは、複数のデバイス152a...152nからのネットワークの状態についての情報を含む。
【0028】
ネットワーク品質情報更新機112は、データ受信機110から受信した情報を使用して、ネットワーク品質情報および位置情報を更新する。ネットワーク品質情報更新機112はまた、更新されたネットワーク品質情報および位置情報をネットワーク品質情報(「情報」)記憶装置114に記憶する。
【0029】
ネットワーク品質情報は、マッピングとして表現することができる。どんなレベルのネットワーク品質が得られているかを示し、またそのレベルが得られている位置を示すマッピングが生成される。マッピングは、受信されたデータの送信元であるデバイス152aの位置情報、ネットワーク帯域、およびネットワーク待ち時間から生成される。
【0030】
いくつかの実施形態では、ネットワーク品質情報は、多くのデバイス152a...152nから収集されたネットワーク情報に基づいて構成される。各デバイス152a...152nがデータを送信するとき、そのデバイス152a...152nは、デバイス152a...152nがネットワーク190につながってデータを送信することができなかった地域についての情報を加えることができる。いくつかの実施形態では、各位置のネットワーク品質情報は、通信キャリアなどの外部組織から得ることができる。
【0031】
いくつかの実施形態では、デバイス152a...152nは、車両内にある車両ナビゲーション・デバイスとすることができる。その車両は、自動車、ボート、航空機、オートバイ、自転車などであり得る。車両ナビゲーション・デバイスは、専用の通信デバイスとすることができる。
【0032】
ネットワーク品質情報更新機112は、デバイス152aの位置情報をネットワーク品質予測機116へ送信する。
【0033】
ネットワーク品質予測機116は、受信位置情報、およびネットワーク品質情報記憶装置114内の追加情報に基づいて、デバイス152aの近辺のネットワーク品質を予測する。ネットワーク品質がネットワーク品質閾値未満に低下することをネットワーク品質予測機116が予測した場合、ネットワーク品質予測機116は、クラウド・ノード100のデータ処理機能がデバイス152aに委譲されるべきであることを決定する。いくつかの実施形態では、ネットワーク品質閾値は、たとえば、電波強度、パケット損失率、ジッタ、待ち時間などに基づいている。データ処理機能の例には、たとえば、画像認識、センサデータの数値解析、運転挙動解析などが含まれる。
【0034】
処理機能が委譲されるべきであることをネットワーク品質予測機116が決定した場合、ネットワーク品質予測機116は、同期マネージャ118に同期を実行するように指示する。
【0035】
同期マネージャ118は、処理機能が委譲される地域において処理機能をデバイス152aで実行するためのソフトウェア・モジュールおよびデータを、論理記憶装置104(データ処理のためにクラウド側で使用されるソフトウェア・モジュールが記憶されている)およびデータ記憶装置120(データ処理のためにクラウド側で使用されるデータが記憶されている)から選択する。次に、同期マネージャ118は、選択されたソフトウェア・モジュールを論理シンカ(syncer)124へ送信し、選択されたデータをデータ・シンカ126へ送信する。加えて、同期マネージャ118は、クラウド側のネットワーク品質情報記憶装置114から情報を選択し、その情報をネットワーク品質情報シンカ122へ送信する。いくつかの実施形態では、ネットワーク品質情報記憶装置114からの情報は、情報を受信することになるデバイス152の位置と、デバイス152aの軌道経路とに基づいて選択される。
【0036】
論理シンカ124は、選択されたソフトウェア・モジュールをデバイス152aの論理シンカ170へ送信する。ソフトウェア・モジュールは、デバイス152aのクラウド・データ処理プロキシ162で実行されるべきプログラム・コードまたはルールとすることができる。いくつかの実施形態では、ルール・エンジンがクラウド・データ処理プロキシ162の下位構成要素になっており、ソフトウェア・モジュールを実行する。いくつかの実施形態では、複数のソフトウェア・モジュールに優先順位が割り当てられ、優先順位が高いソフトウェア・モジュールをデバイス152aの状態に応じて選択的に送信することができる。
【0037】
同期マネージャ118は、ソフトウェア・モジュールおよび関連データごとに有効持続期間を設定することができる。その持続期間が終わると、各ソフトウェア・モジュールおよび関連データは満期になり、デバイス152aから自動的に削除される。
【0038】
データ・シンカ126は、選択されたデータをデバイス152aのデータ・シンカ176へ送信する。このデータは、別のデバイスからのデータを含むことがあり、また、クラウド・ノード100で行われた解析の結果を含むこともある。
【0039】
ネットワーク品質情報シンカ122は、選択されたネットワーク品質情報をデバイス152aのネットワーク品質情報シンカ166へ送信する。
【0040】
論理シンカ170は、受信ソフトウェア・モジュールを論理アプライヤ172へ送信する。論理アプライヤ172は、ソフトウェア・モジュールをクラウド・データ処理プロキシ162に適用する。論理アプライヤ172はまた、ソフトウェア・モジュールを論理記憶装置174に記憶することもでき、そのソフトウェア・モジュールは状況に応じて変更することができる。
【0041】
データ・シンカ176は、受信データをデータ記憶装置178に記憶する。
【0042】
ネットワーク品質情報シンカ166は、受信情報をネットワーク品質情報記憶装置168に記憶する。
【0043】
クラウド・データ処理プロキシ162はソフトウェア・モジュールを実行して、データから1つまたは複数の洞察を生成する(「得る」または「特定する」)。クラウド・データ処理プロキシ162は、1つまたは複数の洞察をデータ記憶装置178に記憶することができる。
【0044】
データ処理の結果としてコマンドが送出されることになる場合、クラウド・データ処理プロキシ162は、そのコマンドをコマンド・エグゼクタ156へ送信する。
【0045】
クラウド・データ処理プロキシ162は、ネットワーク品質情報記憶装置168内の情報から、現在の位置でクラウド・ノード100との通信を試みるべきかどうかを決定する。クラウド・データ処理プロキシ162が、通信が試みられるべきと決定した場合、クラウド・データ処理プロキシ162は、クラウド・データ処理プロキシ162によるデータ処理の結果として、データ記憶装置178に記憶された洞察をクラウド・ノード100へデータ送信機164を介して送信する。
【0046】
いくつかの実施形態では、優先順位が洞察に割り当てられ、優先順位が高い洞察を、他の洞察を転送することなく、または他の洞察を転送する前に、転送することができる。たとえば、デバイス152aが次のネットワーク切断地域に近づいているときに、優先順位が高い洞察をクラウド・ノード100へ転送することができる。
【0047】
クラウド・ノード100がデバイス152aの再接続を検出すると、クラウド・ノード100は、ネットワーク品質予測機116による新たな決定に基づいて機能委譲を取り消す。
【0048】
ネットワーク品質予測機116および品質情報更新機112は、状況に応じて更新の頻度を変えることができ、更新の頻度を実際の環境によって設定することができ得る。実際の環境とは、現時刻におけるデバイス152aまわりのネットワーク接続の安定性であると言うことができる。実施形態では、デバイス152aの位置およびその周囲の環境に依存する地域内のネットワーク安定性に基づいて、更新頻度を動的に調整する。
【0049】
より具体的には、ネットワーク接続が利用できない地域の近くに位置するデバイス152aからのデータ送信の頻度は、その地域でのネットワーク接続安定性予測の精度が向上するように増大させることができる。
【0050】
図3は、いくつかの実施形態による、クラウド・ノード100においてネットワーク品質情報記憶装置114を更新するための流れ300を示す。最初に、デバイス1およびデバイス2がデータをデータ受信機110へ送信する。データ受信機110は、データをデータ・プロセッサ106へ送信する。データ・プロセッサ106は、そのデータを処理し、処理データをデータ記憶装置120に記憶し、コマンドをコマンド送信機108介して各デバイス(デバイス1およびデバイス2)へ送信する。いくつかの実施形態では、このコマンドは、そのデバイスを動作させるために、またはデバイスの状態を変更するために各デバイスに与えられる命令である(たとえば、光源をオンにする、画面にメッセージを示すなど)。いくつかの実施形態では、送信される特定のコマンドは、ルールに基づいて動的に決定される。いくつかの実施形態では、処理データは、デバイスから受信されたデータから生成された洞察を含む。
【0051】
データ受信機110は、各デバイスの位置、ネットワーク帯域、およびネットワーク待ち時間をネットワーク品質情報更新機112へ送信する。ネットワーク品質情報更新機112は、各デバイスの位置、ネットワーク帯域、およびネットワーク待ち時間をネットワーク品質情報記憶装置114内で更新する。
【0052】
図4は、いくつかの実施形態による、クラウド・ノード100においてネットワーク分断を予測し同期を開始するための流れ400を示す。最初に、デバイス1はデータをデータ受信機110へ送信する。データ受信機110は、デバイス1の位置をネットワーク品質情報更新機112へ送信し、更新機は、そのデバイス1の位置をネットワーク品質予測機116へ送信する。ネットワーク品質予測機116は解析を実行して、デバイス1が(ネットワーク分断により)すぐにオフラインに移行するという予測をし、同期メッセージを同期マネージャ118へ送信する。同期マネージャ118は、データ、ソフトウェア・モジュール、およびネットワーク品質情報を選択する。次に、同期マネージャ118は、データをデータ・シンカ126へ送信せよというコマンドを送信し、ソフトウェア・モジュールを論理シンカ124へ送信せよというコマンドを送信し、ネットワーク品質情報をネットワーク品質情報シンカ122へ送信せよというコマンドを送信する。データ・シンカ126は、データをデータ記憶装置120から取り出し、そのデータをデバイス1へ送信する。論理シンカ124は、ソフトウェア・モジュールを論理記憶装置104から取り出し、そのソフトウェア・モジュールをデバイスへ送信する。ネットワーク品質情報シンカ122は、ネットワーク品質情報をネットワーク品質情報記憶装置114から取り出し、そのネットワーク品質情報をデバイス1へ送信する。
【0053】
図5は、いくつかの実施形態による、デバイス内のソフトウェア・モジュールを使用してデータを同期させ洞察を生成するための流れ500を示す。データを同期させるために、1)データ・シンカ176はデータを受信し、そのデータをデータ記憶装置178に記憶し、2)論理シンカ170はソフトウェア・モジュールを受信し、そのソフトウェア・モジュールを論理アプライヤ172へ送信し、3)ネットワーク品質情報シンカ166はネットワーク品質情報を受信し、そのネットワーク品質情報をネットワーク品質情報記憶装置168に記憶する。論理アプライヤ172は、ソフトウェア・モジュールを論理記憶装置174に記憶し、そのソフトウェア・モジュールをクラウド・データ処理プロキシ162へ送信する。クラウド・データ処理プロキシ162は、データを使用してソフトウェア・モジュールを実行する。
【0054】
洞察を生成するために、センサ・デバイス158は、データをデータ・プロセッサ160へ送信し、データ・プロセッサは、そのデータをクラウド・データ処理プロキシ162へ送信する。クラウド・データ処理プロキシ162は、クラウド・ノード100から以前に送信されたデータである、以前にデータ記憶装置178に記憶されたデータを取り出す。クラウド・データ処理プロキシ162は、ソフトウェア・モジュールを実行して、データから1つまたは複数の洞察を生成し、その1つまたは複数の洞察をデータ記憶装置178に保存し、コマンドをコマンド・エグゼクタ156へ送信する。コマンド・エグゼクタ156は、そのコマンドをセンサ・デバイス158へ送信する。クラウド・データ処理プロキシ162は、ネットワーク品質情報をネットワーク品質情報記憶装置168から取得し、そのネットワーク品質情報に基づいて、1つまたは複数の洞察がクラウド・ノードに送信されるべきであると決定し、その1つまたは複数の洞察をデータ送信機164へ送信する。データ送信機164は、その洞察をクラウド・ノード100へ送信する。
【0055】
図6は、いくつかの実施形態による、論理記憶装置の論理表600を示す。論理表600は、各行の識別子の列、ソフトウェア・モジュール選択のメタ論理の列、データ選択のメタ論理の列、および論理コンテンツの列を含む。メタ論理とは、同期マネージャ118によって実行されるべきプログラム・コードまたはルールであると言うことができる。論理記憶装置104および論理記憶装置174は、論理表600を記憶することができる。
【0056】
ソフトウェア・モジュール選択のためのメタ論理は、論理記憶装置104への入力ごとに実行され、その入力で、デバイスへ送信するためのソフトウェア・モジュールを選択すべきかどうかについての決定が行われる。論理選択のためのメタ論理は、データ記憶装置120内のデータを使用して処理を行う。この処理をする際に、ソフトウェア・モジュール選択に使用されるべきデータは、ネットワーク品質情報と、デバイスが移動する先の地域についての情報とに基づいて絞り込むことができる。たとえば、ソフトウェア・モジュールは、デバイスが移動する先の低ネットワーク品質の地域に属するデータを使用して選択することができる。あるいは、その地域、およびその地域に隣接する地域に属するデータを使用することができる。データを絞り込むための具体的な技術は、メタ論理に記述することができる。
【0057】
選択された入力に対するデータ選択のためのメタ論理が実行されて、データが選択される。ソフトウェア・モジュール選択のためにメタ論理を実行する結果として、ソフトウェア・モジュール(または入力)の優先順位を得ることができる。いくつかの実施形態では、優先順位は、データ選択のためにメタ論理に埋め込まれる。いくつかの実施形態では、優先順位は様々な要因に基づいて決定される。
【0058】
図7は、いくつかの実施形態による、データ記憶装置のデータ表700を示す。データ表700は、各行の識別子の列、経度の列、緯度の列、リンク識別子(たとえば、道路識別子)の列、タイムスタンプの列、リンクのタイプの列、および(データである)ペイロードの列を含む。経度および緯度により、デバイスの位置が得られる。データ記憶装置120およびデータ記憶装置178は、データ表700を含むことができる。
【0059】
図8は、いくつかの実施形態による、ネットワーク品質情報記憶装置800を示す。ネットワーク品質情報記憶装置800には、地域識別子の列、タイムスタンプの列、平均ネットワーク帯域の列、平均ネットワーク待ち時間の列、ネットワーク品質スコアの列、および時系列データの参照付きの列がある。たとえば、時系列データ850には、タイムスタンプ、ネットワーク帯域の列、およびネットワーク待ち時間の列がある。平均ネットワーク帯域は、時系列データのネットワーク帯域に基づいた平均値である。平均ネットワーク待ち時間は、時系列データのネットワーク待ち時間に基づいた平均値である。
【0060】
図8で、「Mbps」はメガビット/秒を表し、「kbps」はキロビット/秒を表し、「ms」はミリ秒を表す。
【0061】
図9は、いくつかの実施形態による地図900を示す。いくつかの実施形態では、地図900は格子状の正方形領域に分割される。これらの地域への位置情報のマッピングは、計算公式を使用して行うことができる(たとえば、オープン・ストリート・マップ(OSM)タイル番号付けなどにより、緯度および経度に基づいて番号を地域に割り当てることができる)。
【0062】
デバイスから送信されたネットワーク帯域およびネットワーク待ち時間についての情報が、地域ごとの時系列データとして記憶され、各地域の平均ネットワーク帯域および平均ネットワーク待ち時間が計算され記憶される。
【0063】
これらの地域のネットワーク品質スコアは、平均ネットワーク帯域および平均ネットワーク待ち時間から計算される。
【0064】
各地域の悪天候または渋滞状況などの環境要因による、利用可能なネットワーク品質情報の変化に対応するために、これらの環境要因に対応する環境係数を定義することができ、計算されたネットワーク品質スコアにその環境係数を乗じて、最終のネットワーク品質スコアを生成することができる。
【0065】
図10Aおよび図10Bは、いくつかの実施形態による、クラウド・ノードにおいて1つまたは複数のソフトウェア・モジュール、データ、およびネットワーク品質情報を選択するための動作を流れ図で示す。制御はブロック1000で開始し、クラウド・サービス102がデータをデバイス152aから受信する。ブロック1002で、クラウド・サービス102は、デバイス152aの軌道経路(ルート)を予測する。ブロック1004で、クラウド・サービス102は、デバイス152aのネットワーク品質を軌道経路に沿って予測する。予測軌道経路は、車両が1つまたは複数の地域を通って取りそうなルートとして記述することができる。車両のデバイスの軌道経路は、車両のナビゲーション・デバイスに入力されたルートに基づいて、車両のデバイスが過去のおおよそ同じ時刻に(たとえば、出勤して、またはその日の終わりに帰宅して)移動したルートに基づいて、または、車両が向かっている可能性がある興味の対象などの他の情報に基づいて、予測することができる。
【0066】
ブロック1006で、クラウド・サービス102は、デバイス152aが、軌道経路に沿ってネットワークが利用できないことにより接続を断つかどうかを決定する。接続を断つと決定した場合、処理はブロック1008へ進み、そうでなければ処理はブロック1000へ進む。
【0067】
ブロック1008で、クラウド・サービス102は、軌道経路に基づいて、ネットワーク品質情報のサブセットを生成してデバイス152aへ送信する。ブロック1008(図10A)から、処理はブロック1010(図10B)へ進む。いくつかの実施形態では、ネットワーク品質情報のサブセットは、デバイス152a...152nのうちの1つまたは複数からの、1つまたは複数の地域のネットワーク品質についての情報を含む。
【0068】
ブロック1010で、クラウド・サービス102は、論理表で次の入力を選択して、第1の入力から開始する。ブロック1012で、クラウド・サービス102は、その入力でメタ論理を実行して、ソフトウェア・モジュールがデバイス152aへ送信されるべきかどうかを決定し、ネットワーク品質情報記憶装置114からのネットワーク品質情報のサブセットと、データ記憶装置120からのデータとが入力として使用される。
【0069】
ブロック1014で、クラウド・サービス102は、ソフトウェア・モジュールがデバイス152aへ送信されるべきかどうかを決定する。送信されるべきと決定した場合、処理はブロック1016へ進み、そうでなければ処理はブロック1022へ進む。
【0070】
ブロック1016で、クラウド・サービス102はソフトウェア・モジュールを、デバイス152aへ送信されるべきソフトウェア・モジュールのサブセットに追加する。ブロック1018で、クラウド・サービス102は、その入力でメタ論理を実行して、デバイス152aへ送信されるべきデータを選択する。ブロック1020で、クラウド・サービス102は選択されたデータを、デバイス152aへ送信されるべきデータのサブセットに追加する。
【0071】
ブロック1022で、クラウド・サービス102は、すべての入力が選択されたかどうかを決定する。選択されたと決定した場合、処理はブロック1024へ進み、そうでなければ処理はブロック1010へ進む。ブロック1024で、クラウド・サービス102は、ソフトウェア・モジュールのサブセット、データのサブセット、およびネットワーク品質情報のサブセットをデバイス152aへ送信する。
【0072】
図11Aおよび図11Bは、いくつかの実施形態による、クラウド・ノードにおいてネットワーク品質情報記憶装置を更新するための動作を流れ図で示す。制御はブロック1100で開始し、クラウド・サービス102がデータをデバイス152aから受信し、このデータはネットワーク帯域およびネットワーク待ち時間を含む。ブロック1102で、クラウド・サービス102は、デバイスの位置から地域を特定する。
【0073】
ブロック1104で、クラウド・サービス102は、ネットワーク帯域およびネットワーク待ち時間を含む時系列データを生成し、このデータを地域の時系列データ・セットに追加する。ブロック1106で、クラウド・サービス102は、任意選択で、古いデータを地域の時系列データ・セットから取り除く。
【0074】
ブロック1108で、クラウド・サービス102は、時系列データ・セットからの地域の平均ネットワーク帯域およびネットワーク待ち時間を更新する。ブロック1108(図11A)から、処理はブロック1110(図11B)へ進む。
【0075】
ブロック1110で、クラウド・サービス102は、地域のネットワーク品質スコアを平均ネットワーク帯域および平均ネットワーク待ち時間から生成する。ブロック1112で、クラウド・サービス102は、任意選択で、環境係数が存在する場合に、その環境係数をネットワーク品質スコアに乗じる。ブロック1114で、クラウド・サービス102は、ネットワーク品質情報装置114をネットワーク品質スコアによって更新する。いくつかの実施形態では、ネットワーク品質情報はネットワーク品質スコアを含む。
【0076】
ブロック1116で、クラウド・サービス102は、デバイス152aがアクティブである(たとえば、ネットワークを介して通信しており、データをクラウド・サービス102へ送信している)かどうかを決定する。アクティブであると決定した場合、処理はブロック1100へ進み、そうでなければ処理が行われる。
【0077】
図12は、いくつかの実施形態による、デバイス152aからクラウド・ノード100上のクラウド・サービス102に向けて1つまたは複数の洞察を送信するための動作を流れ図で示す。制御はブロック1200で開始し、デバイス152aが、ソフトウェア・モジュールのサブセット、データのサブセット、およびネットワーク品質情報のサブセットをクラウド・ノードから受信する。いくつかの実施形態では、ネットワーク品質情報のサブセットは、デバイス152a...152nのうちの1つまたは複数からの、1つまたは複数の地域のネットワーク品質についての情報を含む。
【0078】
ブロック1202で、デバイス152aは、1つまたは複数のソフトウェア・モジュールを実行して、1つまたは複数の洞察をデータから生成する(たとえば、デバイス152aを備えた車両のルートに関する洞察)。ブロック1204で、デバイス152aは、ネットワーク品質がネットワーク品質情報のサブセットに基づいて改善したかどうかを決定する。たとえば、(車両の一部としての)デバイスが、異なる地域を通過しているとき、ネットワーク品質情報に基づいて、デバイスは、特定の位置においてネットワーク可用性があるかどうかを決定することができる。可用性があると決定した場合、処理はブロック1206へ進み、そうでなければ処理はブロック1202へ進む。ブロック1206で、デバイス152aは、1つまたは複数の洞察をクラウド・サービス102へ送信する。ブロック1208で、ソフトウェア・モジュールのサブセットおよびデータのサブセットの持続期間の終了時に、デバイス152aは、ソフトウェア・モジュールのサブセットおよびデータのサブセットを削除する。いくつかの実施形態では、ネットワーク品質情報のサブセットもまた、ある持続期間の終了に基づき削除される。
【0079】
図13は、いくつかの実施形態による、デバイスからクラウド・ノード100のクラウド・サービス102へセンサデータを送信するための動作を流れ図で示す。制御はブロック1300で開始し、デバイス152aが1つまたは複数のセンサからデータを収集する。ブロック1302で、デバイス152aは、そのデータをクラウド・サービス102へ送信する。
【0080】
図14は、いくつかの実施形態による、デバイスにおいてコマンドを処理するための動作を流れ図で示す。制御はブロック1400で開始し、デバイス152aがクラウド・サービス102からコマンドを受信する。ブロック1402で、デバイス152aはそのコマンドを実行する。ブロック1404で、コマンドによりデータを生成した場合、デバイス152aは、その生成データをクラウド・サービス102へ返す。
【0081】
クラウド・ノード100とデバイス152aの間でソフトウェア・モジュール、データ、およびネットワーク品質情報を同期させることによって、実施形態では有利なことに、クラウド・ノード100とデバイス152aが互いに通信するのにネットワークが利用できないときでさえも、クラウド・ノード100で行われるのと同じ処理がデバイス152aで行われることが可能になる。
【0082】
有利なことに、クラウド・ノード100は、デバイス152aが軌道経路に沿って移動するときに、ネットワーク品質が低下しそうであること、およびネットワークが利用できなくなり得ることを予測することができる。ネットワークが利用できなくなる前に、クラウド・ノード100は有利なことに、ソフトウェア・モジュール、データ、およびネットワーク品質情報をデバイス152aと同期させる。
【0083】
同期されたデータは、データ(たとえば、データを受信しているデバイス以外のデバイスから送出されたデータ)と、クラウドについての解析の結果とを含むので、データを受信しているデバイス向けのデータが送信される場合と比較して、広範囲の処理が行われ得る。
【0084】
ソフトウェア・モジュールのサブセットとデータのサブセットが選択的に同期されるので、ネットワーク・トラフィック、およびデバイス152aのリソース(中央処理装置(CPU)、メモリ、および記憶装置など)に及ぼす影響は最小限にすることができる。
【0085】
ただ単に実施形態についての理解を高めるために、洞察は提案されたルートである例が本明細書には提供されている。しかし、別の実施形態では、別の洞察が生成されることがある。
【0086】
図15は、いくつかの実施形態による例示的なルート1500を示す。この例では、道路情報が、ネットワーク接続が利用できない山岳地帯の地域で提供されている。この地域では、車両内のデバイスが地域に入る前に障害物(たとえば、落石、落下物、および動物など)についての情報の同期が行われ、それによって、車両が障害物に近づいているときに、およびネットワーク接続が利用できなくなる前に、適切な情報がデバイスに提供される。図15で、13:15、13:20、13:25、および13:30のタイムスタンプが、移動する熊の位置と関連付けられている。さらに、13:35のタイムスタンプが車両と関連付けられている。
【0087】
図16A、16B、16Cおよび16Dは、いくつかの実施形態による例示的なルートに対する流れ1600を示す。この例では、タイムスタンプ13:33において、山岳地帯に入る前に車両が、別の車両から13:31に報告された「路上に動物」事象に対するソフトウェア・モジュールおよびデータを受信する。その結果、ネットワーク接続が失われたときでさえも、車両は、その動物を回避するルートを選択することができる。
【0088】
図17Aおよび図17Bは、いくつかの実施形態による、例示的なルートのクラウド・ノードにおける解析1700を示す。実施形態では、クラウド側論理は、各車両からの受信事象を解析し、それが新たに報告された事象であるのか、それとも既知の事象の更新であるのかどうかを検出する。この例では、クラウド側論理は画像解析を実行し、報告された動物がすでに報告されたものと同じであるかどうかを検出する。
【0089】
追加の例では、ネットワーク接続が利用できない山岳地帯の悪天候についての情報が提供される。山岳地帯で霧の発生を検出した車両内デバイスは、ネットワークが利用できる場所まで移動してから、デバイスが霧を検出した時間および位置を示すデータをクラウド・ノード100へ送信する。複数の車両のデバイスがこの動作を行い、霧が発生した時間および位置を示すデータをクラウド・ノード100へ送信することができ、クラウド・ノードはこのデータを蓄積する。
【0090】
次に、新たな車両が山岳地帯に入る直前に、霧が発生した時間および位置を示すデータと霧予測ソフトウェア・モジュールとが、クラウド・ノードから新たな車両のデバイスに同期される。次に、新たな車両のデバイスは、同期データおよび霧予測ソフトウェア・モジュールを使用して、霧が発生する時間および位置を予測する。デバイスは、予測された時間および位置を運転支援のために、および霧を回避するルートを選択するために用いる。実施形態ではまた、他の天候問題(たとえば、竜巻)または他の障害(たとえば、雪崩)を回避するための情報も提供する。
【0091】
別の例では、ネットワーク接続が利用できないトンネル内の歩行者(または自転車)についての目撃報告が提供される。トンネル内で歩行者を目撃した車両のデバイスは、車両がトンネルを出た後に、車両が歩行者を目撃した時間および位置をクラウドに送信する。複数の車両のデバイスがこの動作を行い、歩行者が目撃された時間および位置を示すデータをクラウド・ノード100へ送信し、クラウド・ノードはこのデータを蓄積する。
【0092】
新たな車両がトンネルに入る直前に、歩行者が目撃された時間および位置を示すデータと歩行者位置予測ソフトウェア・モジュールとが、クラウド・ノード100から新たな車両のデバイスに同期される。新たな車両のデバイスは、この同期データおよび歩行者位置予測ソフトウェア・モジュールを使用して歩行者の現在位置を予測し、予測された歩行者の現在位置を運転支援のために用いる。
【0093】
さらに別の例では、自然災害のためにネットワーク接続が利用できなくなった地域の道路状況についての情報が提供される。ある地域のネットワーク接続が、台風または集中豪雨などの災害により基地局が故障するために、またはネットワークへのアクセスが急増するために利用できなくなる。その地域を通過した車両のデバイスが、ネットワークが利用可能な場所まで移動し、通信状況および道路状況(道路分断または冠水)ならびに時間および位置についての最新のデータをクラウド・ノード100へ送信する。複数の車両のデバイスがこの動作を行い、ネットワーク接続が利用できない地域および道路状況を示すデータをクラウド・ノード100へ送信し、クラウド・ノードはこのデータを蓄積する。
【0094】
新たな車両が地域に入る直前に、道路状況についてのデータと関連論理がクラウド・ノード100から同期される。新たな車両のデバイスは、その同期されたデータとソフトウェア・モジュールを使用して通行可能な道路を推定し、その推定をルート選択のために用いて、分断または冠水した道路を回避する。
【0095】
このようにして、いくつかの実施形態では、クラウド・ノード100は、ネットワークを介して複数の車両のデバイスと通信する。クラウド・ノード100は、車両の位置および事象情報(滑りやすい道路、事故、動物などを示す)に関連したネットワーク品質情報(ネットワーク帯域またはネットワーク待ち時間あるいはその両方を示す)を、車両の各位置において複数の車両のデバイスから受信する。クラウド・ノード100は、ネットワーク切断地域を複数のネットワーク品質情報から決定する。クラウド・ノード100は、新たな車両がネットワーク切断地域に入ることが予測されたときに、ネットワーク切断地域の事象情報に基づいて、その地域内で実行されるべき1つまたは複数のソフトウェア・モジュールを選択する。クラウド・ノード100は、新たな車両がネットワーク切断地域に入る前に、選択された1つまたは複数のソフトウェア・モジュールとネットワーク切断地域内の事象情報とを新たな車両に送信する。
【0096】
実施形態では、クラウド・ノード100は、(1)選択要件を複数のソフトウェア・モジュールのそれぞれと前もって関連付け、(2)ネットワーク切断地域内の複数の事象情報が選択要件を満たしたとき(たとえば、所与の事象情報の数が閾値を超えるとき)、選択要件と関連付けられたソフトウェア・モジュールを選択する。
【0097】
実施形態では、クラウド・ノード100は、受信した複数の事象情報を解析し、その複数の事象情報が同じ事象カテゴリ内にあるかどうかを決定する(たとえば、事象が同じ種類の動物についての事象であるかどうかを画像解析に基づいて決定する)。
【0098】
実施形態では、クラウド・ノード100は、新たな車両がネットワーク切断地域に入るかどうかを、第1の車両が進行している方向に基づいた移動予測によって決定する。
【0099】
図18は、いくつかの実施形態によるコンピューティング環境1810を示す。いくつかの実施形態では、コンピューティング環境は、クラウド・コンピューティング環境である。図18を参照すると、コンピュータ・ノード1812は、適切なコンピューティング・ノードの単なる一例であり、本明細書に記載の本発明の実施形態の使用または機能の範囲に関して、いかなる制限も示唆するものではない。それとは関係なく、コンピュータ・ノード1812は、実施すること、または上記の機能のいずれかを実行すること、あるいはその両方を行うことができる。
【0100】
コンピュータ・ノード1812は、コンピュータ・システムとすることができ、他の多数の汎用または専用のコンピューティング・システム環境または構成と一緒に動作可能である。コンピュータ・ノード1812と一緒に使用するのに適し得る、よく知られているコンピューティング・システム、環境、または構成あるいはその組み合わせの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能消費者電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが、これらだけには限らないが挙げられる。
【0101】
コンピュータ・ノード1812は、プログラム・モジュールなどの、コンピュータ・システムによって実行されるコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象的なデータ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、論理回路、データ構造などを含み得る。コンピュータ・ノード1812は、通信ネットワークを介してリンクされている遠隔処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境において実践することができる。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶デバイスを含む局所と遠隔の両方のコンピュータ・システム記憶媒体に設置することができる。
【0102】
図18に示されるように、コンピュータ・ノード1812が、汎用コンピューティング・デバイスの形で示されている。コンピュータ・ノード1812の構成要素には、1つまたは複数のプロセッサまたは処理ユニット1816と、システム・メモリ1828と、システム・メモリ1828を含む様々なシステム構成要素を1つまたは複数のプロセッサまたは処理ユニット1816に結合するバス1818とが、これらだけには限らないが含まれ得る。
【0103】
バス1818は、メモリ・バスまたはメモリ・コントローラと、周辺バスと、アクセラレイテッド・グラフィックス・ポートと、様々なバス・アーキテクチャのいずれかを使用するプロセッサ・バスまたはローカル・バスとを含む、いくつかのタイプのバス構造のいずれかのうちの1つまたは複数を表す。限定ではなく例として、このようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダード・アソシエーション(VESA)ローカル・バス、および周辺構成要素相互接続(PCI)バスが含まれる。
【0104】
コンピュータ・ノード1812は通常、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・ノード1812によってアクセス可能な、任意の入手可能な媒体とすることができ、これには揮発性媒体と不揮発性媒体、取り出し可能媒体と固定型可能媒体の両方が含まれる。
【0105】
システム・メモリ1828は、ランダム・アクセス・メモリ(RAM)1830またはキャッシュ・メモリ1832あるいはその両方などの揮発性メモリの形のコンピュータ・システム可読媒体を含み得る。コンピュータ・ノード1812はさらに、他の取り外し可能/固定型、揮発性/不揮発性のコンピュータ・システム記憶媒体を含み得る。単なる例として、記憶システム1834は、固定型不揮発性磁気媒体(図示されていないが通常は「ハード・ドライブ」と呼ばれる)との間で読み出しおよび書き込みをするために設けられることがある。図示されていないが、取り外し可能な不揮発性磁気ディスク(たとえば、「フロッピー(R)ディスク」)との間で読み出しおよび書き込みをするための磁気ディスクドライブと、CD-ROM、DVD-ROMまたは他の光学媒体などの、取り外し可能な不揮発性光学ディスクの間で読み出しまたは書き込みをするための光ディスクドライブとが設けられることがある。このような場合、それぞれのディスクドライブは、1つまたは複数のデータ媒体インターフェースによってバス1818につなぐことができる。以下でさらに描写および説明されるように、システム・メモリ1828は、本発明の実施形態の機能を実行するように構成されているプログラム・モジュールのセット(たとえば、少なくとも1つ)を有する、少なくとも1つのプログラム製品を含み得る。
【0106】
プログラム・モジュール1842のセット(少なくとも1つ)を有するプログラム/ユーティリティ1840は、限定ではなく例として、システム・メモリ1828に、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、記憶することができる。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組み合わせのそれぞれは、ネットワーキング環境の一実施態様を含み得る。プログラム・モジュール1842は一般に、本明細書に記載された本発明の実施形態の機能または手法あるいはその両方を実行する。
【0107】
コンピュータ・ノード1812はまた、キーボード、ポインティング・デバイス、ディスプレイ1824などの1つまたは複数の外部デバイス1814、ユーザがコンピュータ・ノード1812と対話できるようにする1つまたは複数のデバイス、またはコンピュータ・ノード1812が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(たとえば、ネットワーク・カード、モデムなど)と、あるいはこれらの組み合わせと通信することもできる。このような通信は、入出力(I/O)インターフェース1822を介して行われ得る。さらに、コンピュータ・ノード1812は、ネットワーク・アダプタ1820を介して、ローカル・エリア・ネットワーク(LAN)、一般広域ネットワーク(WAN)、または公衆ネットワーク(たとえばインターネット)あるいはこれらの組み合わせなどの、1つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ1820は、バス1818を介してコンピュータ・ノード1812の他の構成要素と通信する。図示されていないが、他のハードウェアまたはソフトウェアの、あるいはその両方の構成要素が、コンピュータ・ノード1812と組み合わせて使用できることを理解されたい。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイバル記憶システムなどが、これらだけには限らないが挙げられる。
【0108】
いくつかの実施形態では、コンピューティング・ノード100または各デバイス152a...152nあるいはその両方は、コンピュータ・ノード1812のアーキテクチャを有する。
【0109】
クラウド実施形態
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に列挙された教示の実施態様は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている、または今後開発される他の任意のタイプのコンピューティング環境と組み合わせて実施することができる。
【0110】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話によって迅速にセットアップおよびリリースすることができる、構成可能なコンピューティング・リソース(たとえば、ネットワーク、ネットワーク帯域、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想機械、およびサービス)の共用プールへの、便利でオンデマンドのネットワーク・アクセスを可能にするためのサービス・デリバリの1つのモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの配置モデルを含み得る。
【0111】
特徴は以下の通りである。
オンデマンド・セルフサービス:クラウド消費者は、サーバ時間およびネットワーク記憶装置などのコンピューティング機能を必要に応じて自動的に、サービス・プロバイダとの人的対話を必要とせずに一方的にセットアップすることができる。
広範なネットワーク・アクセス:機能が、ネットワークを通じて利用可能であり、異種の薄いまたは厚いクライアント・プラットフォームによって使用を促進する標準的な機構(たとえば、携帯電話、ラップトップ、およびPDA)を介してアクセスされる。
リソース・プール:プロバイダのコンピューティング・リソースが、マルチテナント・モデルを使用して複数の消費者にサービスするためにプールされ、異なる物理的リソースおよび仮想リソースが、要求に応じて動的に割り当てられ、再割り当てされる。消費者には一般に、提供されるリソースの正確な位置に対する制御権または知識がないが、高レベルの抽象的概念(たとえば、国、州、またはデータセンタ)で位置を指定することができるという点で、位置独立の観念がある。
高速弾性:機能が高速かつ弾性的に、場合によっては自動的にセットアップされて速くスケール・アウトすることができ、迅速にリリースされて速くスケール・インすることができる。消費者には、セットアップするのに利用可能な機能は無制限のように見えることが多く、任意の時間に任意の分量で購入することができる。
測定されるサービス:クラウド・システムは、サービスのタイプ(たとえば、記憶、処理、帯域、およびアクティブ・ユーザ・アカウント)に適している抽象化のレベルで計測機能を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用は監視、制御、および報告して、利用されるサービスのプロバイダと消費者の両方に透明性をもたらすことができる。
【0112】
サービス・モデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用するものである。これらのアプリケーションは、ウェブ・ブラウザ(たとえば、ウェブベースのeメール)などの薄いクライアント・インターフェースを介して、様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、記憶装置、さらには個々のアプリケーション機能さえ含む、基礎をなすクラウド・インフラストラクチャを管理または制御せず、限定されたユーザ固有のアプリケーション構成設定を除外する可能性がある。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされたプログラミング言語およびツールを用いて生成された、消費者生成または取得のアプリケーションをクラウド・インフラストラクチャに配置することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、または記憶装置を含む、基礎をなすクラウド・インフラストラクチャは管理したり制御したりしないが、配置されたアプリケーション、および場合により環境構成をホストするアプリケーションに対しては制御権を有する。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを消費者が配置および実行できる処理、記憶装置、ネットワーク、およびその他の基本的なコンピューティング・リソースをセットアップすることである。消費者は、基礎をなすクラウド・インフラストラクチャは管理したり制御したりしないが、オペレーティング・システム、記憶装置、配置されたアプリケーションに対する制御権、および場合により、選択されたネットワーキング構成要素(たとえば、ホスト・ファイアウォール)に対する限定された制御権を有する。
【0113】
配置モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、1つの組織に限って動作する。プライベート・クラウドは、その組織またはサード・パーティによって管理され、オンプレミスまたはオフプレミスで存在し得る。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、関心事(たとえば、ミッション、セキュリティ要件、方針、およびコンプライアンス考慮事項)が共有されている特定のコミュニティをサポートする。コミュニティ・クラウドは、その組織またはサード・パーティによって管理され、オンプレミスまたはオフプレミスで存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模業界団体が利用できるようになっており、クラウド・サービスを販売する組織に所有されている。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)からなる構成体であり、これらのクラウドは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準的または独自の技術(たとえば、クラウド間で負荷バランスを取るためのクラウド・バースティング)によってともに結合されている。
【0114】
クラウド・コンピューティング環境はサービス指向型であり、無国籍、低結合、モジュール性、意味相互運用性に焦点を合わせている。クラウド・コンピューティングの中心には、相互接続されたノードからなるネットワークを含む、インフラストラクチャがある。
【0115】
次に図19を参照すると、説明のためのクラウド・コンピューティング環境1950が描かれている。図示のように、クラウド・コンピューティング環境1950は、1つまたは複数のコンピューティング・ノード1910を含み、これらのノードと、たとえば、携帯情報端末(PDA)もしくはセルラ電話1954A、デスクトップ・コンピュータ1954B、ラップトップ・コンピュータ1954C、または自動車コンピュータ・システム1954Nあるいはその組み合わせなどの、クラウド消費者によって使用されるローカル・コンピューティング・デバイスとが通信することができる。ノード1910は、互いに通信することができる。これらのノードは、上述のプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、またはこれらの組み合わせなどの1つまたは複数のネットワークに物理的または仮想的にグループ化することができる(図示せず)。こうすることにより、クラウド・コンピューティング環境1950は、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組み合わせを、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提供することが可能になる。図19に示されたタイプのコンピューティング・デバイス1954A~Nは単に説明のためのものであること、ならびにコンピューティング・ノード1910およびクラウド・コンピューティング環境1950は、任意のタイプのネットワーク、またはネットワーク・アドレス指定可能な接続あるいはその両方を介して(たとえば、ウェブ・ブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
【0116】
図20を参照すると、クラウド・コンピューティング環境1950(図19)によって提供された機能抽象化層のセットが示されている。図20に示された構成要素、層、および機能は単に説明のためのものであり、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示のように、以下の層および対応する機能が提供される。
【0117】
ハードウェアおよびソフトウェア層2060は、ハードウェアおよびソフトウェアの構成要素を含む。ハードウェア構成要素の例としては、メインフレーム2061、RISC(縮小命令セット・コンピュータ)アーキテクチャをベースとするサーバ2062、サーバ2063、ブレード・サーバ2064、記憶デバイス2065、ならびにネットワークおよびネットワーキング構成要素2066が挙げられる。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア2067、およびデータベース・ソフトウェア2068を含む。
【0118】
仮想化層2070は、以下の仮想エンティティの例、すなわち、仮想サーバ2071、仮想記憶装置2072、仮想プライベート・ネットワークを含む仮想ネットワーク2073、仮想アプリケーションおよびオペレーティング・システム2074、ならびに仮想クライアント2075をもたらし得る抽象化層を提供する。
【0119】
1つの例では、管理層2080が下記の機能を提供することができる。リソース・セットアップ2081が、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的調達を行う。計測および価格付け2082は、クラウド・コンピューティング環境内でリソースが利用されるときに原価管理を行い、これらのリソースの消費に対して課金およびインボイス作成を行う。1つの例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティにより、クラウド消費者およびタスクの識別検証、ならびにデータおよびその他のリソースの保護を行う。ユーザ・ポータル2083は、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス・レベル管理2084では、必要なサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割り当ておよび管理を行う。サービス品質保証制度(SLA)計画および履行2085では、SLAに応じた要件が将来予期されるクラウド・コンピューティング・リソースの事前構成および調達を行う。
【0120】
作業負荷層2090では、クラウド・コンピューティング環境を利用できる機能の例を提供する。この層から提供できる作業負荷および機能の例としては、マッピングおよびナビゲーション2091、ソフトウェア開発およびライフサイクル管理2092、仮想教室教育デリバリ2093、データ解析処理2094、トランザクション処理2095、ならびにクラウド側役割のデバイスへの委譲2096が挙げられる。
【0121】
このようにして、いくつかの実施形態では、本明細書に記載の実施形態による、クラウド側役割のデバイスへの委譲を実施するソフトウェアまたはプログラムが、クラウド環境におけるサービスとして提供される。
【0122】
追加の実施形態詳細
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはその組み合わせであり得る。コンピュータ・プログラム製品には、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体が含まれ得る。
【0123】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶できる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、それだけには限らないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組み合わせでよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録された溝の形の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適切な組み合わせが挙げられる。本明細書では、コンピュータ可読記憶媒体は、それ自体で、電波または他の自由伝搬する電磁波、導波管または他の伝送媒体を介して伝搬する電磁波(たとえば、光ファイバ・ケーブルを進む光パルス)、または電線を介して伝送される電気信号などの、一時的な信号であると解釈されるべきではない。
【0124】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング・デバイス/処理デバイスに、またはネットワーク、たとえば、インターネット、ローカル・エリア・ネットワーク、広域ネットワークまたは無線ネットワークあるいはその組み合わせを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組み合わせを含み得る。各コンピューティング・デバイス/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング・デバイス/処理デバイスの中のコンピュータ可読記憶媒体に記憶するために転送する。
【0125】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または1つもしくは複数のプログラム言語の任意の組み合わせで書かれたソース・コードまたはオブジェクト・コードとすることができ、このプログラム言語には、Smalltalk(R)、C++などのオブジェクト指向プログラム言語、および「C」プログラム言語または同様のプログラム言語などの従来の手続き型プログラム言語が含まれる。コンピュー可読プログラム命令は、ユーザのコンピュータ上で全部を、ユーザのコンピュータ上で一部を、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で一部を、かつリモート・コンピュータ上で一部を、またはリモート・コンピュータもしくはサーバ上で全部を実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータとつなぐことができ、あるいは、この接続を外部のコンピュータと行うことができる(たとえば、インターネット・サービス・プロバイダを用いてインターネット介して)。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人専用にすることによってコンピュータ可読プログラム命令を実行することができる。
【0126】
本発明の態様が、本発明の実施形態による、流れ図または方法のブロック図あるいはその両方、装置(システム)、およびコンピュータ・プログラム製品に関して本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施できることを理解されたい。
【0127】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロック内に指定された機能/動作を実施する手段を生成すべく、汎用コンピュータ、専用コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを生み出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロック内で指定された機能/動作の態様を実施する命令を含んだ製品を備えるべく、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイスあるいはその組み合わせに特定の方法で機能するように指示できるものであってもよい。
【0128】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロック内で指定された機能/動作を実施するように、コンピュータで実施されるプロセスを作り出すべく、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置または他のデバイス上で、一連の動作ステップを実行させるものであってもよい。
【0129】
図の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の実現可能な実施形態のアーキテクチャ、機能および動作を示す。この関連で、流れ図またはブロック図の各ブロックは、命令のモジュール、セグメントまたは一部分を表すことができ、指定された論理機能を実施するための1つまたは複数の実行可能な命令を含む。いくつかの代替実施形態では、ブロック内に示された機能は、図に示された順序から外れて行われることがある。たとえば、連続して示された2つのブロックが、実際には、実質的に同時に実行されることがあり、あるいは場合によってブロックが、含まれる機能に応じて逆の順序で実行されることがある。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方のブロックの組み合わせは、特定の機能または動作を行う、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する、専用ハードウェアベースのシステムによって実現できることもまた理解されたい。
【0130】
上記の説明は、本発明の実施形態の例を提供するものであり、別の実施形態では変形および置き換えが行われることがある。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図11A
図11B
図12
図13
図14
図15
図16A
図16B
図16C
図16D
図17A
図17B
図18
図19
図20